curiousdannii-testing / inform7-imported-bugs

0 stars 0 forks source link

[I7-1923] [Mantis 1959] Turn counter for scene start sometimes mis-counts #161

Closed curiousdannii-testing closed 2 years ago

curiousdannii-testing commented 2 years ago

Reported by : FictitiousFrode

Description :

When using the "scene beings when the player is in location for the Xth turn", the scene sometimes starts a turn early. I've identified one condition under which it happens: When the player is a specific person, and is in the presence of another person. There might be others.

Steps to reproduce :

   Woodshed is a room.
[1] Larry is a man in Woodshed. The player is Larry.
[2] Moe is a man in Woodshed.
    Bug hunting is a scene.
[3] Bug hunting begins when the player is in Woodshed for the third turn.
    When bug hunting begins, end the story saying "A swarm of army ants come crawling out of the woodwork, devouring you."
Test me with "z / z".

Additional information :

The scene at [3] triggers after the first turn, but if line [1] or [2] is commented out, it correctly triggers after the second turn.

imported from: [Mantis 1959] Turn counter for scene start sometimes mis-counts
  • status: Closed
  • resolution: Won't Do
  • resolved: 2022-04-12T09:01:09+10:00
  • imported: 2022/01/10
curiousdannii-testing commented 2 years ago

557058:4c095ffd-6d6f-47ce-9e73-77c613347b86:

Comment by zarf :
This is true but it may be just the way the world model works.

In the startup rulebook, the "update chronological records rule" is run before the "position player in model" rule and the "when play begins stage" rule. This means that not all initial-play conditions are set up when history conditions are first checked.

curiousdannii-testing commented 2 years ago

557058:4c095ffd-6d6f-47ce-9e73-77c613347b86:

Comment by zarf :
I don't see the dependency on Moe. Whether Moe is defined or not (or defined in another room), the game ends after the first WAIT command.

As far as I can tell, the inconsistency depends entirely on the "The player is ..." declaration, which causes the player variable to change during the "position player in model" rule.

curiousdannii-testing commented 2 years ago

557058:4c095ffd-6d6f-47ce-9e73-77c613347b86:

Comment by curiousdannii :
The position player in model world rule can be moved earlier without issues - I do this in Alternative Startup Rules because for reasons I don't understand, that rule needs to run before some relations work.

curiousdannii-testing commented 2 years ago

557058:4c095ffd-6d6f-47ce-9e73-77c613347b86:

Comment by FictitiousFrode :
My main problem with this issue is how inconsistent it is. Adding another character to the starting room is not something you would expect to upset the timing of scenes, and can therefore be very hard to debug. There might be other triggers lurking in the woodwork as well.

curiousdannii-testing commented 2 years ago

61eedb62875fc10070240916:

Comment by Graham Nelson:
It's too complicated to reopen this now; it subtly changes the reading of too many rules.