Version 1.0 -- 2000 October 20
Allright. I have discovered a (somewhat) serious flaw in my reasoning. I was wrong about the quick-with-quick-and-countermagic scenario.
I said that if A quicks B, and B counterquicks A, then A gets to go before the resultant mime cycle.
What is actually true is that the first character in the character_list with a quick-flag gets to go before the mime cycle. So if B is before A in the character list, B would get to take a turn before the resultant mime-cycle. (at least, this is what the debug mode does for me today. I could have sworn that I was right before though...). (nevertheless, I am pretty sure that everything else I said about the quick-with-quick-and-countermagic scenario is correct).
At any rate, now I will cover what I believe is a more general case. Namely, quick-turn resolution during SR phases.
The standard way events are resolved is:
Well, often during SR phases, steps 3 and 5 above are SKIPPED. That is, characters who should get quick turns are instead 'passed over' until later. (this is where I get to the quick-safety)... Once I explain this, it should generalize to the CR phases (and all the stuff I explained before in those earlier posts).
(If you think that steps 3 and 5 are basically the same step, then you're right. I am pretty sure that 3 and 5 both involve calling the same subroutine to resolve the first quick-turn on the character_list. The only difference is that skipping 3 leads to 4, whereas skipping 5 leads to 6 (a difference in the function call only, not the subroutine)).
So here are some rules to fix all this wackiness. First assume that the game ONLY looks at step 3 and 5 if the quick-safety is OFF. (that is, steps 3 and 5 are automatically skipped if the game is in 'safe' mode).
Well, now this explains everything I have observed so far. qs (and countermagic qs) will immediately put the game into quick mode. That means that somebody will get a quick-turn before the resulting mimecycle. cq will NOT put the game into quick-mode, until AFTER step 3 (at the beginning of step 4). That means that cq won't trigger a quick turn until after the resulting mimecycle.
In addition (and this is the most important part), mqs and mcq will NOT switch the game into quick mode. That means that if the game is in safe mode BEFORE the mimecycle, and then some mqs-flags or mcq-flags are applied, those quick-turns get skipped until later. (until the next 'step 3' comes around, to be more precise).
O.K. first of all, these steps can be rewritten as follows:
Now here is an easily reproducible example that illustrates the need for the quick-safety.
A,B and C all have CT 100, speed 99, and short-charge. D and E are mimes. A starts casting quick (targets an empty panel) B waits C waits (time passes, and every character's CT increments) A, B, C all wait (time passes) A's quick goes off, and misses D mimes A and hits C E mimes A and hits B (every character's CT increments) Now, during the subsequent CR phase, the turn order is B, C, A
As you can see, B and C definitely got quick-flags (mqs-flags, to be exact). But they did not get quick-turns until the following CR phase. In other words, they were ignored during the SR phase. There was a mime-cycle during the SR phase (after A's quick-spell went off). And yet B and C did NOT get quick-turns right after the mime-cycle. The reason is that at the beginning of the mime-cycle, nobody had any quick-flags, and so the game stayed in 'safe' mode.
Here is a slightly different example.
A,B and C all have CT 100, speed 99, and short-charge. D and E are mimes. A starts casting quick (targets an empty panel) B and C wait. (time passes, and every character's CT increments) B starts casting haste (targets an empty panel) C starts casting haste (targets an empty panel) (time passes) A's quick spell goes off, missing. D mimes A, and hits C with a quick spell E mimes A, and hits B with a quick spell B's haste spell goes off B gets a quick turn B waits D mimes B, and hits C with a haste spell E mimes B, and hits C with a haste spell C gets a quick turn C waits (every character's CT increments) Now, during the subsequent CR phase, the turn order is A, B, C
Now you can see the effect of the quick-safety. Since there were no quickflags during A's action, the game was left in safe mode. So after the resultant mime-cycle, C and B were ignored. However, at the beginning of B's haste spell, the game switched to 'quick' mode. Then, B got a quick-turn BEFORE the resultant mime-cycle. After B finished, the mime-cycle went off, and then C got a quick-turn. After C finished, every character's CT incremented.
Now I will go step by step through a complicated example, to illustrate what gets switched when.
AGRias, RAMza, RAD and ALIcia are all on the same team. AGR has critical quick RAM has counter magic RAD is a mime ALI is a mime RAFa, MELiadoul, LAVian and REIs are all on the same team. RAFa has counter magic MELiadoul has critical quick LAVian is a mime REIs has critical quick The character list is AGR, RAM, RAD, ALI, RAF, MEL, LAV, REI
Now, AGR,RAM,MEL,REI all charge up quick spells so they will go off in the same SR phase. Here is the SR phase:
(I will put actual observed events on the left. First is the actor, then the action, then the target. I will put reactions below actions, indenting them appropriately, as well as preceding the reactor's name with an 'r'. I will indent mimecycles, and precede the mime's name with an 'm'. My corresponding gameflow theory is on the right, in curly brackets)
AGR - qs - miss {qsafety ON, since nobody has any quick-flags {so we skip step 3, and go on to the mimecycle {now the mimecycle starts, qsafety still ON mRAD - mqs - REI {REI gets an mqs-flag mALI - mqs - miss { {qsafety is still ON, so step 5 is skipped {now, during step 6, RAM's qs is found RAM - qs - miss {qsafety turned OFF, due to REI's mqs-flag {since the qsafety is OFF, we go to step 3 REI - wait {this is a step 3 quick-turn {now the mimecycle starts, qsafety still OFF mRAD - mqs - miss { mALI - mqs - AGR {AGR gets an mqs-flag {since the qsafety is OFF, we go to step 5 AGR - wait {this is a step 5 quick-turn {now, during step 6, qsafety is turned back ON {and MEL's qs is found MEL - qs - miss {qsafety left ON, since nobody has any quick-flags {skip step 3, and go on to mimecycle {mimecycle starts, qsafety still ON mLAV - mqs - RAF {LAV mimes, giving RAF a mqs-flag rRAF - mqs - LAV {RAF countermagics, giving LAV a mqs-flag {since qsafety is still ON, skip step 5 {now, during step 6, qsafety is turned back ON {and REI's qs is found REI - qs - miss {qsafety turned OFF, due to RAF's mqs-flag {since qsafety is OFF, we go to step 3 RAF - wait {this is a step 3 quick-turn {now we go to the mimecycle, qsafety still OFF mLAV - mqs - RAF {LAV mimes, giving RAF a mqs-flag rRAF - mqs - LAV {RAF countermagics, giving LAV a mqs-flag {since qsafety is OFF, we go to step 5 RAF - wait {this is a step 5 quick-turn {we go back to step 4, then back to step 5 LAV - wait {this is another step 5 quick-turn
Now the SR phase ends, all characters increment CT, and the next CR phase starts.
Using the same team, here is another example.
Now AGR,MEL,REI are charging up quick spells, while RAM has a demi spell up his sleeve. They are timed so that they all go off in one SR phase. Here is the SR phase:
(again, actual observed events are on the left. My theory on the right)
AGR - qs - miss {qsafety ON, since nobody has any quick-flags {so no step 3, and on to the mimecycle {now the mimecycle starts, qsafety left ON mRAD - qs - REI {REI gets a mqs-flag mALI - qs - miss { {qsafety is still ON, so step 5 is skipped {now, during step 6, RAM's demi is found RAM - demi - miss {qsafety is turned OFF, due to REI's mqs-flag {since the qsafety is OFF, we go to step 3 REI - wait {this is a step 3 quick-turn {now the mimecycle starts, qsafety left OFF mRAD - demi - MEL,REI {RAD mimes rMEL - mcq {MEL gets an mcq-flag rREI - mcq {REI gets an mcq-flag mALI - demi - AGR {ALI mimes rAGR - mcq {AGR gets an mcq-flag {mimecycle ends, qsafety still OFF {so we go to step 5 AGR - attack - miss {this is a step 5 quick-turn. Since AGR {acted, this redefines the last_action, and {so we proceed back to step 4 mRAD - attack - miss { mALI - attack - AGR { rAGR - mcq {AGR gets an mcq-flag {mimecycle ends, qsafety still OFF {so we go to step 5 AGR - wait {this is a step 5 quick turn {we go back to step 4, then back to step 5 MEL - wait {this is a step 5 quick turn {we go back to step 4, then back to step 5 REI - wait {this is a step 5 quick turn {no more quickflags, we go to step 6 {now in step 6, qsafety turned back ON, and {MEL's qs is found MEL - qs - RAM {qsafety ON, since nobody has quickflags (yet) {then RAM gets a qs-flag rRAM - qs - MEL {RAM countermagics, and gives MEL a qs-flag {now, in step 2, the qsafety is turned OFF {since RAM got a qs-flag {so we proceed to step 3 RAM - attack - miss {this is a step 3 quick-turn. note that RAM {rewrote the last_action, and so the mimes will {mimick RAM and not MEL. this is evidenced as {we pass to the mimecycle (step 4) {mimecycle starts, qsafety left OFF mRAD - attack - miss { mALI - attack - AGR { rAGR - mcq {AGR gets an mcq-flag {mimecycle ends, qsafety still OFF {so we go to step 5 AGR - wait {this is a step 5 quick turn {we go back to step 4, then back to step 5 MEL - wait {this is a step 5 quick turn {no more quickflags, we go to step 6 {now in step 6, qsafety turned back ON, and {REI's qs is found REI - qs - miss {qsafety left ON, since nobody has quickflags {so we skip step 3, and head to the mimecycle {mimecycle starts, qsafety left ON mLAV - mqs - RAF {LAV mimes, RAF gets an mqs flag rRAF - mqs - LAV {RAF countermagics, LAV gets an mqs flag {mimecycle ends, and since the qsafety is still {ON, we skip step 5 and go straight to step 6 {now, during step 6, we turn the qsafet ON again {and look for the next slow-action. There are {no more slow actions, and so the SR phase ends. {we proceed to the C+ phase, and all character's {CT increments. Then we proceed to the next {CR phase. Since LAV and RAF still have quick {flags, the turn order in the subsequent CR {phase is RAF,LAV,AGR,RAM,...
Pretty neat, eh? My newfangled gameflow theory covers all the cases I have covered so far, as well as all the complicated examples I have tested so far. (I have a couple more, and they fit the bill too).