I mean, other than creating a new variable and having the choice be dependent on that variable? My game uses “hubs” that you can return to over and over again to navigate the story. this means that players will often be returning to the same scene multiple times.
I have scenes for talking to each different companion character, and one of your options there is to ask their opinion on a previously completed quest/mission. There’s going to be a lot of missions, so rather than clutter the player’s view with sixty+ choices for each mission, I wanted to use *hide_reuse so that the option disappears after talking to them about any particular mission. The problem is, if you leave the scene and come back, the *hide_reuse resets.
I already know that one alternative would be creating a new startup variable for every single option, and again for every single character, so It’d be like:
*label choiceblock_character1
*fake_choice
*if character1_mission01_talked_about false #Talk about mission01
*set character1_mission01_talked_about true
*goto choiceblock_character1
*if character1_mission02_talked_about false #Talk about mission02
*set character1_mission02_talked_about true
*goto choiceblock_character1
*comment and-so-on...
*label choiceblock_character2
*fake_choice
*if character2_mission01_talked_about false #Talk about mission01
*set character2_mission01_talked_about true
*goto choiceblock_character2
*if character2_mission02_talked_about false #Talk about mission02
*set character2_mission02_talked_about true
*goto choiceblock_character2
but that’s like, a lot of variables and I already have a ton as it is. So, is there a way to permanently *hide_reuse, even across multiple scenes? Or am I doomed to make a disgusting amount of variables?
The other alternative I can think of is, making the choice dependent on whether or not the mission was just completed. I already have a variable for every mission called “current_mission”
So long as you don’t start a new mission, “current_mission” will continue to reflect the last mission you completed. So I could do:
*label choiceblock
*fake_choice
*if (current_mission = "mission01") #Talk about mission01
*goto choiceblock
*if (current_mission = "mission02") #Talk about mission02
*goto choiceblock
*comment or alternatively: (this one is favorable since it uses less choices, but the choice itself is pretty generic.
*label choiceblock
*fake_choice
#What did you think about our last mission?
*if (current_mission = "mission01")
Character gives their opinion on mission01
*if (current_mission = "mission02")
Character gives their opinion on mission02
*goto choiceblock
The only reason I don’t like this is because, once you start a new mission, the option to talk about a previously completed mission is gone forever. If a player missed that option, that dialogue is totally lost to them unless they start a new game.
This is actually how Mass Effect did things. You could ask your crewmates what they thought about the last job you did, but if you ever forget to talk to them immediately after a mission, that dialogue (usually) is already gone.
I really would like players to be able to explore how their companions fit in the world, and their stances on anything significant you do. Cutting them off from entire dialogues because they didn’t stop and talk to all their crew immediately after every mission is very counter-productive to that goal. In fact, for me in Mass Effect, it always felt like a chore. I would’ve much rather been able to do things at my own pace instead of having a mental checklist of characters I needed to speak to after every mission.