After awhile player gets used to gui, so he doesn't even need strings to know where to click. Also we have tooltips, unlike AA, where you actually must remember what icons mean (and even that is not a big deal, surprisingly).
We could in theory use icons for main interactions menu but I'd prolly like to avoid even that... in any case, here are some thoughts for a coherent interactions concept that doesn't have to be rewritten again and should answer to all our/modders future needs:
=====
All interactions are handled by a Python class, menus and dropdowns should be constructed by it and it should be possible to add options to them by modders (similar to a way it is possible to add options to actions and events right now).
Every option that causes an option (button) to appear in the menu or dropdowns should appear on conditions.
Interactions should consist of chatting:
*Dark proposed different response labels (like bad, normal, good, very good) which may fall back to normal if bad/good/very good do not exist.
and actions like:
*Touch
*Sex
*Give money
*Assault
etc.
To make it more coherent, a system if “mood_state” needs to be created to pick replies. Normal replies can be determined by disposition, stats, traits and etc.
Special replies will override of mood state is set, for example if you just beat or seriously insulted a girl, her replies should reflect that even if disposition is still reasonably high.
All this will mean that current girlsmeets concept and interactions concept will have to be scraped (in code) while labels created by Dark/CW can be reused exactly as they are. It will prolly make sense to rename the labels themselves.
All chats and actions will consume interactions points (converted APs).
This system will be manageable and will have to be balanced once. It will also allow to remove some options from the menus (like some options may be appropriable only when player first meets the character while other only after some relationship has been established). Also options can be set to be displayed only in some specific areas.
=====