Making the story proceed when ALL choices have been seen by the player?

I have a section of the game where the player will need to exhaust all available choice options (looping back to the first option after each segment is completed) before the game allows them to proceed.

I know one solution is to add a *temp and have it at the end of each section which automatically diverts them to the new section of the story. But my question is more aimed at optimization of the existing code segments.

Is there a better way to do this?

2 Likes

*disable_reuse where you still leave one option that pushes things forward that is available even when the others are all exhausted?

I thought about that but that just makes it so they can select that option when they feel like it.

1 Like

Set up a temp variable that adds up each time they make another choice. Set it up so the one to go on can only be selected after that variable reaches a certain threshold.

1 Like

Yeah. Wait, if I used an *if (blah = blah) on the choice it hides it until that condition is met.

Does that work with temp variables? If so I think you might be able to make a *temp Count and do what you’re saying; that way all the count variables are in the same place.

I cannot remember if I ever used it with a temp, but I see no reason it wouldn’t work.

I’ll give it a shot. If it works we can put this question to bed. I’ve been wracking my brain over this one for a few days though so I think I’ll be understandably grumbling if it works.

1 Like

Hey, at least it’ll be fixed. That’s the main thing.

1 Like

Still, the best solution is most often the simplest one. I may or may not rigorously push a brick against my face if this works.

You can try *hide_reuse then have *selectable if for a certain requirement. Let’s say exhausting all options, so the choice appears to continue the story or using the former an an if statement that goes to the next scene after choosing all the available choices.

*label read_all

*choice
  *disable_reuse # Mandatory option 1
    *set read +1
    *goto read_all
  *disable_reuse # Mandatory option 2
    *set read +1
    *goto read_all
  *if (read >=2) # Continue
    *goto next

You can also just go

*label read_all
*if (read >= 2)
  *goto next
1 Like

It worked. I ended up doing basically what @will suggested.

This topic was automatically closed 24 hours after the last reply. If you want to reopen your WiP, contact the moderators.