So many menus.Interface is practically identical:
pytfall.world_actions.location("city_beach")
pytfall.world_actions.menu("relax", "Relax")
pytfall.world_actions.add(("relax", "sunbathe"), "Sunbathe", "sunbathe_event")
pytfall.world_actions.add(("relax", "swim"), "Swim", "swim_event")
pytfall.world_actions.meet_girls()
pytfall.world_actions.look_around()
pytfall.world_actions.finish()
Just use the menu function to add a new menu, then use a tuple/list that contains the sub-menus and ends in the key for the action. The menus use the same properties as the actions (minus an actual action) so they can be customised to show/hide like normal.
I did change how the actions (and hence menus) use conditions however. Before it was solely based on flags. Now if you want to check a flag you need to create a GlobalFlagCheck instance and pass it to "condition".
condition="chr.fullname == \"Sakura Haruno\""
condition=GlobalFlagCheck("visited_sm")
condition=17
condition=["True", "7", "lol"]
Condition works with strings (by evaluating them via eval), functions (or classes with a __call__ function, like GlobalFlagCheck) and lists (where their contents are evaluated). Anything else is cast to bool. If you want to pass a list to cast its length to bool you'll need to wrap it in a len call.
Also I pushed the new Building/Job changes. I tested them and everything seemed to be working properly, but I can't promise that I got every possible combination of if statements so be prepared for errors in next_day.
I also fixed the char-creator from giving you the wrong appearance when you changed it, and if you select a new location for a girl that has the same action as their previous they keep it.
Also, how the hell do you use spoilers on here?