i7 / kerkerkruip

Kerkerkruip - the interactive fiction roguelike game
kerkerkruip.org
84 stars 13 forks source link

Every turn rules don't run when you enter a room? #249

Open mciul opened 10 years ago

mciul commented 10 years ago

Is this the normal intended behavior? I had a heck of a time writing a test for #248 because I kept assuming that the every turn rules would run when I re-enter the Hall of the Raging Banshees. Apparently that was not the case - I had to wait one turn in the room for the banshees to do anything. The test is now written so this behavior is expected, but if this is not how Kerkerkruip is supposed to behave, please help!

Maybe this has something to do with the free retreat?

VictorGijsbers commented 10 years ago

I'm not sure I understand this. Every turn rules should run after entering a room. They might not run because going leads to looking, which is acting fast, but I'm sort-of assuming that I fixed that early on in the development of Kerkerkruip. I just did a quick test: I snorted ment, then moved between two rooms (w.e.w.e.w.e., and so on). The ment rush ended normally, so apparently the every turn rules were running.

In other words, I'm not sure what is going on in your test?

mciul commented 10 years ago

Here's a transcript from the test. I force the tension to be 10 and then enter the Hall of the Raging Banshees. But the banshees don't break loose from the walls until the next turn:

Entrance Hall
The vast entrance hall is empty, silent, foreboding. Skull-sized rubies project a red light far too bright for the eyes of a human.

You possess a scroll of mapping, a pickaxe, a cloak of shadows, a scroll labelled ANCHOLAIN and three packages of ment.

You can see two scrolls labelled SOUSPENOT, a scroll labelled SHALM SAWESAS and a fungicide contraption here.

Exits lead north and east (to the hall of the raging banshees).

****   next step:  banshee-returning
**** moving Reaper to entrance hall
**** Setting tension to 10
*** banshees gone wild, banshee-returning turn 4, assertion count=6 ***
[Player action: going east]
Deciding that discretion is the better part of valour, you bravely run away.

Hall Of The Raging Banshees
A shaded, grotesque hall, fully cut out of onyx. Deep within the blackness of its walls hideous female figures seem to scream at you. (Current tension modifier: +2 body, -2 mind.)

A small simian creature aggressively shows you its teeth.

You recognise a complicated stone contraption in a corner as a teleportation beacon. It seems to be inactive.

Exits lead south, east and west (to the entrance hall).

****   next step:  banshee-return-waiting
*** banshees gone wild, banshee-return-waiting turn 5, assertion count=7 ***
[Player action: waiting]
Time passes.

The banshees suddenly break loose from the onyx walls!  They start to incite all creatures in the hall, screaming and flying around them.

The blood ape swings at your head.
VictorGijsbers commented 10 years ago

Is it possible that the rule "Last every turn when the location is the Hall of the Raging Banshees (this is the activate banshees rule):" doesn't fire because the every turn rules don't consider the location to be the Hall of the Raging Banshees yet? What does the test look like when you add rule that prints "Every turn rules run" every turn?

mciul commented 10 years ago

I added this rule: First every turn: say "Every turn rules run.";

and here's from the latest transcript. You can see that the every turn rules run when you retreat into the empty Entrance Hall, but not when you go into the hall of raging banshees where the blood ape is:

****   next step:  banshee-fleeing
*** banshees gone wild, banshee-fleeing turn 3, assertion count=3 ***
[Player action: going west]
Deciding that discretion is the better part of valour, you bravely run away.

Entrance Hall
The vast entrance hall is empty, silent, foreboding. Skull-sized rubies project a red light far too bright for the eyes of a human.

You possess a scroll of mapping, a pickaxe, a cloak of shadows, a scroll labelled ANCHOLAIN and three packages of ment.

You can see two scrolls labelled SOUSPENOT, a scroll labelled SHALM SAWESAS and a fungicide contraption here.

Exits lead north and east (to the hall of the raging banshees).

Every turn rules run.

****   next step:  banshee-returning
*** banshees gone wild, banshee-returning turn 3, assertion count=6 ***
[moving Reaper to entrance hall]
[Setting tension to 10]
*** banshees gone wild, banshee-returning turn 3, assertion count=6 ***
[Player action: going east]
Deciding that discretion is the better part of valour, you bravely run away.

Hall Of The Raging Banshees
A shaded, grotesque hall, fully cut out of onyx. Deep within the blackness of its walls hideous female figures seem to scream at you. (Current tension modifier: +2 body, -2 mind.)

A small simian creature aggressively displays its strength.

You recognise a complicated stone contraption in a corner as a teleportation beacon. It seems to be inactive.

Exits lead south, east and west (to the entrance hall).

The blood ape swings at your head.

****   next step:  banshee-return-waiting
*** banshees gone wild, banshee-return-waiting turn 5, assertion count=7 ***
[Player action: waiting]
Time passes.

Rolling 3 + 5 (tension) = 8, the blood ape does not overcome your defence rating of 100.

Every turn rules run.

The banshees suddenly break loose from the onyx walls!  They start to incite all creatures in the hall, screaming and flying around them.