User Tools

Site Tools


user:loggy:misc

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
user:loggy:misc [2022/12/29 05:12]
loggy startage investigations
user:loggy:misc [2023/12/12 13:05] (current)
loggy digging for the apostasy bug
Line 3: Line 3:
 <color #666666>(gray items have already been incorporated into proper wiki pages)</color> <color #666666>(gray items have already been incorporated into proper wiki pages)</color>
  
-Things that are checked every round:  
- 
-  * affliction 2^40 makes you take 1 AN internal damage. Being undead makes it go up to 2. If you are taking 1, it has a 20% chance to end 
   * <color #666666>Hell power is 20% + 2% per mark to spawn a horror. It spawns in a random square in a 5x5 grid around you</color>   * <color #666666>Hell power is 20% + 2% per mark to spawn a horror. It spawns in a random square in a 5x5 grid around you</color>
-  * web is str + DRN vs 22, win means you break free + 
-  * <color #666666>Having the blink unit effect means you always successfully escape entangle, web, net, earth grip (but not bonds of fire or false fetters)</color> +  * CATEGORY Check to Win Things: 
-  * Affliction 2^50 (netted?is str + DRN vs 20 +    * web is str + DRN vs 22, win means you break free 
-  * False fetters is MR + DRN vs 20win to escape +    * Affliction 2^50 (netted?) is str + DRN vs 20 
-  Slime is 22+    * False fetters is MR + DRN vs 20, win to escape 
 +    * Slime is 22 
 +    * size/strength negate: 5+6 always immune, 4 is 66% to ignore, 3 is 33% to ignore, otherwise roll strength vs 14 + d20 (no DRN or openended). If strength wins (not ties) it is negated 
 +    * <color #666666>Having the blink unit effect means you always successfully escape entangle, web, net, earth grip (but not bonds of fire or false fetters)</color> 
 + 
 +  * CATEGORY Decompiler Nerd Things: 
 +    * Effect modifier 4611686018427387904 is 1/3 strength added 
 +    * Spec 0x100000000000000 or 72057594037927936 readds magic damage  
 +    * 0x4000000000000000 or 4611686018427387904 adds 1/3 strength 
 +    * 0x800000000 or 34359738368 is added to all effects with aoe > 0 
 +    * 0x40000000 or 1073741824 is simply added to all spells 
 +    * 144115188075855872 makes projectiles stick to the ground rather than fly normally 
 +    * 0x400000000 or 17179869184 is weapon #range050 
 +    * 0x8000000000000 or 2251799813685248 may be for flaming projectiles 
 +    * 141837069189120 is not construct immune, it actually prevents the user hitting themselves (but doesn't work on x% field AoEs) 
 + 
 + 
 +  * CATEGORY Behavior Afflictions: 
 +    * Rage: 50% chance to attack a random adjacent square 
 +    * Dementia: 25% to make units do nothing for 3650 ticks 
 +    * Confusion: 30% to stand and do nothing20% to attack a random adjacent square 
 +    Stupid: 10% chance to do nothing (and wait for half a round), 10% to attack something adjacent at random. 
 + 
   * Unknown affliction 2^38 is cleared every combat round and doesn't do anything when that happens   * Unknown affliction 2^38 is cleared every combat round and doesn't do anything when that happens
 +
 +  * affliction 2^40 makes you take 1 AN internal damage. Being undead makes it go up to 2. If you are taking 1, it has a 20% chance to end
 +
   * <color #666666>Commanders have a 50% chance to smart retreat. If they don't, they have make a morale check vs 10 to smart retreat. If they fail that and have appropriate survivals there's a 50% chance to still be smart</color>   * <color #666666>Commanders have a 50% chance to smart retreat. If they don't, they have make a morale check vs 10 to smart retreat. If they fail that and have appropriate survivals there's a 50% chance to still be smart</color>
     * <color #666666>This is likely where "pretenders never die on retreat" comes from because the safe retreat odds for any commander with 30 morale is going to be 99.92%!</color>     * <color #666666>This is likely where "pretenders never die on retreat" comes from because the safe retreat odds for any commander with 30 morale is going to be 99.92%!</color>
 +
   * <color #666666>Items on death either go into the anyone-pool or the owner's pool. The chance of going into the anyone pool is 90% for cursed items, and then %%((constrlevel/2)+1) * 15% after that%%. The victor then rolls for each nofind item in their own and anyone pools, picking a commander at random to try to pick up the stuff. This fails only if the commander in question has no free slots for the item it was allocated.</color>   * <color #666666>Items on death either go into the anyone-pool or the owner's pool. The chance of going into the anyone pool is 90% for cursed items, and then %%((constrlevel/2)+1) * 15% after that%%. The victor then rolls for each nofind item in their own and anyone pools, picking a commander at random to try to pick up the stuff. This fails only if the commander in question has no free slots for the item it was allocated.</color>
 +
   * <color #666666>BoT does something with scales and then has a (41 + death*4)% to add 1d4 nonexploding years to each unit.</color>   * <color #666666>BoT does something with scales and then has a (41 + death*4)% to add 1d4 nonexploding years to each unit.</color>
 +
   * <color #666666>Lanka's blood hunting bonus is +1 per turmoil</color>   * <color #666666>Lanka's blood hunting bonus is +1 per turmoil</color>
 +
   * <color #666666>Blood popkill is 10*floor%%((slaves + 4)/5)%%</color>   * <color #666666>Blood popkill is 10*floor%%((slaves + 4)/5)%%</color>
-  * Manifestation checks at most 8 random commanders. It has a 50% chance to skip any that are not horror marked+ 
 +  ??Manifestation#836?? checks at most 8 random commanders. It has a 50% chance to skip any that are not horror marked 
   * <color #666666>There is a 20% chance that each side in an assassination gets to pull 1d4+ blood slaves into the fight</color>   * <color #666666>There is a 20% chance that each side in an assassination gets to pull 1d4+ blood slaves into the fight</color>
-  * size/strength negate: 5+6 always immune, 4 is 66% to ignore, 3 is 33% to ignore, otherwise roll strength vs 14 + d20 (no DRN or openended). If strength wins (not ties) it is negated+
   * Looming Hell has a 5% chance per candle in the affected unit's province to not use one of its 5 "charges".   * Looming Hell has a 5% chance per candle in the affected unit's province to not use one of its 5 "charges".
-  * Dementia is 25% to make units do nothing for 3650 ticks+
   * Picus/Procas axes give +2 MR, +5 strength and +10 fear if used together   * Picus/Procas axes give +2 MR, +5 strength and +10 fear if used together
-  * Despite having the gender changing effect set at -1, the bear claw amulet does not function. Cat charm however does.+    * ??Picus's Axe of Rulership?? and ??Procas's Axe of Rulership?? 
 + 
 +  * Despite having the gender changing effect set at -1, the ??Bear Claw Talisman?? does not function. ??Cat Charm?? howeverdoes. 
   * The chance to spawn a guardian spirit in percent is (10 * holy level) + innate guardian spirit modifier + (1 * number of candles, negative if hostile).   * The chance to spawn a guardian spirit in percent is (10 * holy level) + innate guardian spirit modifier + (1 * number of candles, negative if hostile).
 +
   * There is a 15% chance per cold scale for a battle to take place in a snowstorm. If temp is between neutral and heat 2 inclusive, there is a (5 + growth*5)% chance for the battle to take place in a regular rain storm. UW, in the Void and in caves, there is always no natural weather.   * There is a 15% chance per cold scale for a battle to take place in a snowstorm. If temp is between neutral and heat 2 inclusive, there is a (5 + growth*5)% chance for the battle to take place in a regular rain storm. UW, in the Void and in caves, there is always no natural weather.
 +
   * Fatigue from flying is (flight distance * enc)/20, doubled in rain or snow (but only if you don't have storm immunity or storm power). Curse of stones is a flat 2d6 nonexploding every time you fly. Flight distance is simply dx + dy, capped to a maximum of 20 for this calculation.   * Fatigue from flying is (flight distance * enc)/20, doubled in rain or snow (but only if you don't have storm immunity or storm power). Curse of stones is a flat 2d6 nonexploding every time you fly. Flight distance is simply dx + dy, capped to a maximum of 20 for this calculation.
-  * Blood vortex: remembers where you cast it. Makes 3 remote checks, the first of which will always be an adjacent province to where it was cast. Further checks are provinces picked at random, that have nonzero population and are not UW. (Population here refers to /10 from the displayed game values)+ 
 +  ??Blood Vortex??: remembers where you cast it. Makes 3 remote checks, the first of which will always be an adjacent province to where it was cast. Further checks are provinces picked at random, that have nonzero population and are not UW. (Population here refers to /10 from the displayed game values)
     * Remote checks contribute (pop/20) + d50+, capped to the province's pop. This is halved if order 2 or 3, and doubled if turmoil 2 or 3. Affected provinces gain 1d10 nonexploding unrest and have their population reduced appropriately. Final population contribution to the vortex is half of what is drained.     * Remote checks contribute (pop/20) + d50+, capped to the province's pop. This is halved if order 2 or 3, and doubled if turmoil 2 or 3. Affected provinces gain 1d10 nonexploding unrest and have their population reduced appropriately. Final population contribution to the vortex is half of what is drained.
     * Local province: pop/10 + d100+, capped to pop. Population is drained, but scales have no impact.      * Local province: pop/10 + d100+, capped to pop. Population is drained, but scales have no impact. 
     * Final slave total = (local contribution + remote contribution + d10 nonexploding - 1)/9     * Final slave total = (local contribution + remote contribution + d10 nonexploding - 1)/9
-  * Fires from afar hit rate is 20% or (number of units in province*25)/number of effects, whichever is higher. The same unit cannot be hit more than once. + 
-  * Effect modifier 4611686018427387904 is 1/3 strength added+  ??Fires from Afar?? hit rate is 20% or (number of units in province*25)/number of effects, whichever is higher. The same unit cannot be hit more than once. 
   * <color #666666>Lingering effects technically do (x + 2)/3 rounded down damage</color>   * <color #666666>Lingering effects technically do (x + 2)/3 rounded down damage</color>
 +
   * <color #666666>Spy unrest is d20 exploding</color>   * <color #666666>Spy unrest is d20 exploding</color>
 +
   * <color #666666>Pretender awakening: Every turn these things are rolled again, and if less than the current turn number, you awaken. Dice here are exploding.</color>   * <color #666666>Pretender awakening: Every turn these things are rolled again, and if less than the current turn number, you awaken. Dice here are exploding.</color>
     * <color #666666>Dormant: 9 + d4</color>     * <color #666666>Dormant: 9 + d4</color>
Line 42: Line 80:
     * <color #666666>Dormant disciple: 4 + d4</color>     * <color #666666>Dormant disciple: 4 + d4</color>
     * <color #666666>Imprisoned disciple: 13 + d20</color>     * <color #666666>Imprisoned disciple: 13 + d20</color>
 +
   * AoE spread: get anything adjacent (including diagonal) to the last square hit. If you already hit the square, get another one adjacent to the square you just checked and try again. Upon finding an empty square, hit that, and then start again at the origin. Repeat until the desired number of squares are hit.   * AoE spread: get anything adjacent (including diagonal) to the last square hit. If you already hit the square, get another one adjacent to the square you just checked and try again. Upon finding an empty square, hit that, and then start again at the origin. Repeat until the desired number of squares are hit.
-  GfH deviates at most 1 square in any direction, including diagonals. (This is due to spell attrib 579 and is done once for each point of the attrib) + 
-  * Stupid is 10% chance to do nothing (and wait for half a round), 10% to attack something adjacent at random. +  ??Gifts from Heaven?? deviates at most 1 square in any direction, including diagonals. (This is due to spell attrib 579 and is done once for each point of the attrib) 
-  * Rage: 50% chance to attack a random adjacent square +
-  * Confusion: 30% to stand and do nothing, 20% to attack a random adjacent square+
   * Blood slave usage range looks to be 8 squares along either axis so the total usage area is square and not circular   * Blood slave usage range looks to be 8 squares along either axis so the total usage area is square and not circular
-  * Transformation's yellow text is nearly right. The checks really are 20% + misfortune scale to fail. Succeeding the first gives a good result. Upon failing the first check there is then a second identical check, succeeding this gives you a bad result (and feebleminds you if the new form is not mindless). Failing both checks kills you.+ 
 +  ??Transformation??'s yellow text is nearly right. The checks really are 20% + misfortune scale to fail. Succeeding the first gives a good result. Upon failing the first check there is then a second identical check, succeeding this gives you a bad result (and feebleminds you if the new form is not mindless). Failing both checks kills you. 
 +  * A bad result that is mindless lowers your paths to F4A4W4E4S3D4N3B4 if any of them were higher than that 
 +  * Even when you fail both and die, you still get transformed into something, which feebleminds you or applies the path limiting above anyway. 
 +  * %%The chance of getting a pathboost in percent is (can't push you above X10) is ((10 - drain scale) * attuned percentage * 10)/100. Magic scales count for negative drain. Attuned values are a chassis attribute, for instance cave drakes have 50% earth attuned.%% 
   * Spell interruption chance in percent is interruptdamage + 25 + (damage*100)/maxhp. Interruptdamage is from effect 129 only. Combat casters and mindless/slave vessels are halved, both conditions will half twice, rounding down after each.   * Spell interruption chance in percent is interruptdamage + 25 + (damage*100)/maxhp. Interruptdamage is from effect 129 only. Combat casters and mindless/slave vessels are halved, both conditions will half twice, rounding down after each.
 +
   * Effect order notes:   * Effect order notes:
     * Mirror image is bypassed by the following spec values: 131072 (no effect on mindless), 1073741824, 34359738368, 18014398509481984 (likely "true" damage, inflicted by BV and blood bond), 36028797018963968 (internal damage), or the damage being 900+     * Mirror image is bypassed by the following spec values: 131072 (no effect on mindless), 1073741824, 34359738368, 18014398509481984 (likely "true" damage, inflicted by BV and blood bond), 36028797018963968 (internal damage), or the damage being 900+
Line 100: Line 144:
     * If the unit died, it adds one to the province's armed corpse count if it is not an animal, undead, need not eat, naturally ethereal, or inanimate     * If the unit died, it adds one to the province's armed corpse count if it is not an animal, undead, need not eat, naturally ethereal, or inanimate
     * If the unit was not undead and not inanimate, and haunted forest is active, and the battle is taking place in the relevant dominion, you get a manikin for someone (probably the enchantment owner)     * If the unit was not undead and not inanimate, and haunted forest is active, and the battle is taking place in the relevant dominion, you get a manikin for someone (probably the enchantment owner)
-  * Spec 0x100000000000000 or 72057594037927936 readds magic damage  +
-  * 0x4000000000000000 or 4611686018427387904 adds 1/3 strength +
-  * 0x800000000 or 34359738368 is added to all effects with aoe > 0 +
-  * 0x40000000 or 1073741824 is simply added to all spells +
-  * 144115188075855872 makes projectiles stick to the ground rather than fly normally +
-  * 0x400000000 or 17179869184 is weapon #range050 +
-  * 0x8000000000000 or 2251799813685248 may be for flaming projectiles +
-  * 141837069189120 is not construct immune, it actually prevents the user hitting themselves (but doesn't work on x% field AoEs)+
   * Communion fatigue calc   * Communion fatigue calc
     * (Take spell fatigue * 10)/(num slaves + 1). If the casting master was innate, double this     * (Take spell fatigue * 10)/(num slaves + 1). If the casting master was innate, double this
Line 116: Line 153:
       * If slave path level == master's path, you get x1       * If slave path level == master's path, you get x1
     * The final fatigue added to the slave is (the above value + a random number between 0-9 inclusive) / 10, rounded down, to a minimum of 1     * The final fatigue added to the slave is (the above value + a random number between 0-9 inclusive) / 10, rounded down, to a minimum of 1
 +
   * Acid damage:   * Acid damage:
     * Chance of rust is 4% per damage     * Chance of rust is 4% per damage
     * The manual's description of rust on armour/weapons seems to be correct     * The manual's description of rust on armour/weapons seems to be correct
 +
   * Looks like death by homesickness, landdamage, uwdamage, disease, and such things will drop items into a lab. So will damage caster rituals.   * Looks like death by homesickness, landdamage, uwdamage, disease, and such things will drop items into a lab. So will damage caster rituals.
 +
   * Precision (all distance/range calcs here use pythagorean distance rounded down to integer):   * Precision (all distance/range calcs here use pythagorean distance rounded down to integer):
     * Roll a d100.     * Roll a d100.
Line 130: Line 170:
       * For each number of squares to deviate, offset each coordinate by a random number between -1 and 1       * For each number of squares to deviate, offset each coordinate by a random number between -1 and 1
       * Continue this process up to 100 times if the projectile would be landing more than 2 units out of the original range of the attack or spell       * Continue this process up to 100 times if the projectile would be landing more than 2 units out of the original range of the attack or spell
 +
   * Spells have their number of effects subtracted from their effective precision, to a maximum of -5 at 5+ effects.   * Spells have their number of effects subtracted from their effective precision, to a maximum of -5 at 5+ effects.
 +
   * Tartarians are 50% to feeblemind, 20% to be a commander. Then, 50% to add extra afflictions (equal odds of major and minor). Continue rolling 50%s until an affliction was not added.   * Tartarians are 50% to feeblemind, 20% to be a commander. Then, 50% to add extra afflictions (equal odds of major and minor). Continue rolling 50%s until an affliction was not added.
-  * Imprint souls:+ 
 +  ??Imprint Souls??:
     * Fails if targeted province has no population     * Fails if targeted province has no population
     * Final damage is (spell damage) or (province pop/10 * 5), whichever is less     * Final damage is (spell damage) or (province pop/10 * 5), whichever is less
Line 143: Line 186:
       * Land gives you Madmen, Flagellants and Mad Priests       * Land gives you Madmen, Flagellants and Mad Priests
       * Water gives Mad Deep One, Fanatic Deep One, Holy Deep One       * Water gives Mad Deep One, Fanatic Deep One, Holy Deep One
 +
   * Event req_minpd and req_maxpd variance is indeed ±25% as per the mod manual   * Event req_minpd and req_maxpd variance is indeed ±25% as per the mod manual
-  * req_mintroops and maxtroops also get this+    * req_mintroops and maxtroops also get this 
   * Being set on fire from fire damage is 4% per point of initial damage, but you cannot burn if you are ethereal, have unknown unit flag 0x10, fire immunity, chill aura by buff, mistform, or underwater, or have 5+ FR. Fatigue damage is 1% per point instead   * Being set on fire from fire damage is 4% per point of initial damage, but you cannot burn if you are ethereal, have unknown unit flag 0x10, fire immunity, chill aura by buff, mistform, or underwater, or have 5+ FR. Fatigue damage is 1% per point instead
 +
   * Being frozen by cold damage is 4% per point of initial damage, and you cannot be frozen if ethereal, undead, chill aura by buff, mistform, fire shield, or 5+ CR. Fatigue damage is 1% per point instead.   * Being frozen by cold damage is 4% per point of initial damage, and you cannot be frozen if ethereal, undead, chill aura by buff, mistform, fire shield, or 5+ CR. Fatigue damage is 1% per point instead.
     * The manual is also lying about the thaw rate, it is actually 25% + cold res + (cold scale*6), NOT 5x cold res, to a minimum of 25% thawing rate      * The manual is also lying about the thaw rate, it is actually 25% + cold res + (cold scale*6), NOT 5x cold res, to a minimum of 25% thawing rate 
 +
   * stun chance on salt vuln is (dmg * 500)/(max hp + 10) percent. This is done before salt vuln caps damage   * stun chance on salt vuln is (dmg * 500)/(max hp + 10) percent. This is done before salt vuln caps damage
   * stun chance on shock hp damage is (dmg * 200)/(max hp + 5) percent. This is done before any capped damage   * stun chance on shock hp damage is (dmg * 200)/(max hp + 5) percent. This is done before any capped damage
   * stun chance of shock fatigue damage is (dmg * 100)/(max hp + 5)   * stun chance of shock fatigue damage is (dmg * 100)/(max hp + 5)
     * ... so this is why tweaps stuns everything it touches (1 AN capped shock, 3 AN fatigue)     * ... so this is why tweaps stuns everything it touches (1 AN capped shock, 3 AN fatigue)
 +
   * Movement collisions:   * Movement collisions:
     * Calc chassis value for commanders and squads MOVING into each other. Units standing still don't count.     * Calc chassis value for commanders and squads MOVING into each other. Units standing still don't count.
Line 157: Line 205:
     * For each side, roll an openended d(total chassis value on this side). Divide the original number by 10 and add the die result to it.     * For each side, roll an openended d(total chassis value on this side). Divide the original number by 10 and add the die result to it.
     * Compare this value. The loser gets stopped and the fight happens where they are. In the very unlikely event of a tie, the one starting in the highest province ID wins and pushes the other.     * Compare this value. The loser gets stopped and the fight happens where they are. In the very unlikely event of a tie, the one starting in the highest province ID wins and pushes the other.
 +
   * Special province IDs   * Special province IDs
     * -18 - dead twiceborned commanders     * -18 - dead twiceborned commanders
Line 169: Line 218:
     * -6 - dead immortals     * -6 - dead immortals
     * -2 - special merc home province     * -2 - special merc home province
 +
   * Poison fatigue damage on size 3+ is reduced to (dmg*2)/size [or 2/<size> of the original damage]   * Poison fatigue damage on size 3+ is reduced to (dmg*2)/size [or 2/<size> of the original damage]
-  * Life after death fails on Undead, immortals, demons, inanimate beings, creatures that are inherently ethereal, pretenders, most kinds of animals (unknown checks)+ 
 +  ??Life after Death?? fails on Undead, immortals, demons, inanimate beings, creatures that are inherently ethereal, pretenders, most kinds of animals (unknown checks)
     * Sea fathers turn into soulless#197     * Sea fathers turn into soulless#197
     * Cyclops#156 turn into tartarian cyclops (!)     * Cyclops#156 turn into tartarian cyclops (!)
Line 258: Line 309:
     * if that kind of resource cost is 3-14, 914     * if that kind of resource cost is 3-14, 914
     * otherwise, 915     * otherwise, 915
-  Crossbreeding:+ 
 +  ??Cross Breeding??:
     * You get (nreff + crossbreeding bonus) creatures.     * You get (nreff + crossbreeding bonus) creatures.
     * Quality is (Luck * 5) + 17 + crossbreeding bonus.     * Quality is (Luck * 5) + 17 + crossbreeding bonus.
     * There is a (quality/10)% chance that you get one of the strong crossbreeds, otherwise you get weak ones     * There is a (quality/10)% chance that you get one of the strong crossbreeds, otherwise you get weak ones
 +
   * Hero arrival: chance is 3% + luck scale   * Hero arrival: chance is 3% + luck scale
     * First roll for normal heroes, if that misses you roll for multihero; if a normal hero is blocked by minimum arrival turn the roll is ignored as if it never succeeded     * First roll for normal heroes, if that misses you roll for multihero; if a normal hero is blocked by minimum arrival turn the roll is ignored as if it never succeeded
-  * Strands of arcane power:+ 
 +  ??Strands of Arcane Power??:
     * First, the site searching.     * First, the site searching.
       * Check each province that you own and has friendly dominion.       * Check each province that you own and has friendly dominion.
Line 278: Line 332:
       * If the victim is an astral mage, both sides roll current Astral level (this will include boosters) + closed d6. The global caster wins ties, and the loser is feebleminded. Unlike magic duel, a tie only feebleminds the victim and leaves the caster intact.       * If the victim is an astral mage, both sides roll current Astral level (this will include boosters) + closed d6. The global caster wins ties, and the loser is feebleminded. Unlike magic duel, a tie only feebleminds the victim and leaves the caster intact.
       * If the global caster got feebleminded, don't attack anyone else       * If the global caster got feebleminded, don't attack anyone else
-  * It looks like ravenous swarm will attack every 5120 ticks. It first aims for undead, then accept any target. Its damage is AN, ignores shields, nonmagical, and has no source for the sake of damage reversal.+ 
 +  * It looks like ??The Ravenous Swarm?? will attack every 5120 ticks. It first aims for undead, then accept any target. Its damage is AN, ignores shields, nonmagical, and has no source for the sake of damage reversal. 
   * Special AoE values:   * Special AoE values:
     * 666 all squares     * 666 all squares
Line 285: Line 341:
     * 663 50%     * 663 50%
     * 662 5%     * 662 5%
 +
   * Raid order:   * Raid order:
     * Get the lowest combat speed of all the raiders/raiding commanders. Flyers are considered to have 50 for this     * Get the lowest combat speed of all the raiders/raiding commanders. Flyers are considered to have 50 for this
Line 300: Line 357:
       * Message for the raider: "%s has raided in %s. %d people were killed and %d gold were confiscated."       * Message for the raider: "%s has raided in %s. %d people were killed and %d gold were confiscated."
       * Message for the raided: "An enemy force has raided %s. %d people were killed."       * Message for the raided: "An enemy force has raided %s. %d people were killed."
 +
   * Upkeep and desertion:   * Upkeep and desertion:
-    * Calc your upkeep for everything (units banished to other planes don't count). If your final gold total is negative and your upkeep was nonzero, it's desertion time.+    * Calc your upkeep for everything (units banished to other planes don't count). If your final gold total is negative and your upkeep was nonzero, it's desertion time. The "gold per year" displayed under the morale section on a unit card is actually (actual upkeep per turn*12 + 7)/15 rounded down
       * Calculate (negative gold total * -25) / (total upkeep). This is the desertion chance in %       * Calculate (negative gold total * -25) / (total upkeep). This is the desertion chance in %
       * If that was was 11+, set it to 10.       * If that was was 11+, set it to 10.
Line 309: Line 367:
         * Report the number of deserters in the message.         * Report the number of deserters in the message.
       * Set your gold count to 0 from whatever negative value it was.       * Set your gold count to 0 from whatever negative value it was.
 +
   * Pathfinding, AKA why bozmos2 is a lagfest:   * Pathfinding, AKA why bozmos2 is a lagfest:
     * When you click a commander, seemingly for each province on the map (some may be skipped, it's unclear what the criteria are for this though as the disassembler can't tell me what writes to the variable that is checked)     * When you click a commander, seemingly for each province on the map (some may be skipped, it's unclear what the criteria are for this though as the disassembler can't tell me what writes to the variable that is checked)
Line 328: Line 387:
         * Continue this process "depth" times         * Continue this process "depth" times
     * Side note, checking for cold scales iterates over the enchantment arrays twice, once for illwinter and again for second sun     * Side note, checking for cold scales iterates over the enchantment arrays twice, once for illwinter and again for second sun
-  * "Adds AN lingering heat" creates a cloud that lasts only two pulses, dealing the listed amount of AN heat fatigue damage.+ 
 +  <color #666666>"Adds AN lingering heat" creates a cloud that lasts only two pulses, dealing the listed amount of AN heat fatigue damage.</color> 
   * Lifedrain does 1/4 damage (rounded down) to inanimates   * Lifedrain does 1/4 damage (rounded down) to inanimates
 +
   * %%Bleeding inflicts 10 fatigue and ((max hp + closed d20 - 1)/20, rounded down) HP damage per tick, the chance of it stopping really is (10 + regen percentage)%, halved (and rounded down) if underwater. The manual is close to correct on the damage%%   * %%Bleeding inflicts 10 fatigue and ((max hp + closed d20 - 1)/20, rounded down) HP damage per tick, the chance of it stopping really is (10 + regen percentage)%, halved (and rounded down) if underwater. The manual is close to correct on the damage%%
 +
   * Therodos spectre reanimation is 4/9 for hoplites, 2/9 for archers, 2/9 for peltasts, 1/9 for kouretes   * Therodos spectre reanimation is 4/9 for hoplites, 2/9 for archers, 2/9 for peltasts, 1/9 for kouretes
 +
   * Target rear:   * Target rear:
     * For each unit in the game (in ascending ID order):     * For each unit in the game (in ascending ID order):
Line 342: Line 406:
         * Either you do not have a ranged weapon, your ranged weapon can affect mindless beings, or the target is not mindless         * Either you do not have a ranged weapon, your ranged weapon can affect mindless beings, or the target is not mindless
         * Either <something I don't understand> or there are more squares containing allies than enemies in a 3x3 box around the unit being considered         * Either <something I don't understand> or there are more squares containing allies than enemies in a 3x3 box around the unit being considered
 +
   * Popkill by events (eg, black death) generates 1 unarmed corpse per 10 pop killed   * Popkill by events (eg, black death) generates 1 unarmed corpse per 10 pop killed
 +
   * Summon animals rituals (in order of priority, so swamp/mountain acts as swamp):   * Summon animals rituals (in order of priority, so swamp/mountain acts as swamp):
     * Swamp: 2/3 giant spider, 1/3 horned serpent     * Swamp: 2/3 giant spider, 1/3 horned serpent
Line 375: Line 441:
       * 1/6: goat       * 1/6: goat
       * 1/6: deer       * 1/6: deer
 +
   * MA ctis miasma is <candles>/75 to disease things. It doesn't affect pretenders/disciples, sacreds, prophets, underwater provinces, units with swamp survival, coldblooded, or inanimates.   * MA ctis miasma is <candles>/75 to disease things. It doesn't affect pretenders/disciples, sacreds, prophets, underwater provinces, units with swamp survival, coldblooded, or inanimates.
 +
   * Supplies and starvation: This stuff is rolled independently for each non-commander that has to eat   * Supplies and starvation: This stuff is rolled independently for each non-commander that has to eat
     * Chance of bad things = %%min(90, ((supp usage - supplies) * 100)/supplies)%%     * Chance of bad things = %%min(90, ((supp usage - supplies) * 100)/supplies)%%
Line 391: Line 459:
       * If anyone was hurt due to already having disease, or someone started starving (and the above messages didn't trigger), "There is a lack of supplies in %s. Diseases are afflicting the troops."       * If anyone was hurt due to already having disease, or someone started starving (and the above messages didn't trigger), "There is a lack of supplies in %s. Diseases are afflicting the troops."
       * Otherwise, no message       * Otherwise, no message
-  * Beckoning targeting: goes for the main province owner. If that is the same as the caster's nation, it will target the fort's owner instead in the case of sieged provinces+
   * Precision:   * Precision:
     * First add together all modifiers except experience stars.     * First add together all modifiers except experience stars.
Line 399: Line 467:
       * Mist or mist of deception or both (don't do this twice for both)       * Mist or mist of deception or both (don't do this twice for both)
     * Add experience modifier     * Add experience modifier
 +
   * Innate Flyers (not by buff etc) can only be charged by other flyers (that can fly for any reason, incl buffs). Everyone else "uses" their charge but gets no bonus   * Innate Flyers (not by buff etc) can only be charged by other flyers (that can fly for any reason, incl buffs). Everyone else "uses" their charge but gets no bonus
 +
   * Pebbleskin suit is 2% per turn to transform you, but not if you're inanimate   * Pebbleskin suit is 2% per turn to transform you, but not if you're inanimate
-  * Vengeful waters:+ 
 +  ??Vengeful Water??:
     * UW always gets 409 = size 5 water     * UW always gets 409 = size 5 water
     * Cold 2 gets 833 = size 4 ice     * Cold 2 gets 833 = size 4 ice
Line 409: Line 480:
     * If the victim is inanimate or not in a freshwater province, you get 412 = size 2 water     * If the victim is inanimate or not in a freshwater province, you get 412 = size 2 water
     * Otherwise, 411 = size 3 water     * Otherwise, 411 = size 3 water
-  * Targeting for ffts/murdering winter:+ 
 +  * Targeting for ??Flames from the Sky??/??Murdering Winter??:
     * Total up the number of nonsneaking commanders of all nations in the target province, except those that are on the same team as the caster     * Total up the number of nonsneaking commanders of all nations in the target province, except those that are on the same team as the caster
     * Each nation rolls (closed d100 + 49) * number of commanders, the highest value "wins" and eats ffts to the face     * Each nation rolls (closed d100 + 49) * number of commanders, the highest value "wins" and eats ffts to the face
     * In the event of a tie, the lower nation ID takes precedence     * In the event of a tie, the lower nation ID takes precedence
     * If you have no nonsneaking commanders you cannot be hit     * If you have no nonsneaking commanders you cannot be hit
 +
   * Turmoil summon is an exploding d%%((turmoil * 3) + 5)%% every turn   * Turmoil summon is an exploding d%%((turmoil * 3) + 5)%% every turn
-  * Enchanted forests: All forests under neutral or enemy dominion act as if they were temples of the caster's pretender. When the dominion has become friendly it stops spreading. Each forest under friendly dominion picks make up to three attempts to pick a random adjacent province, each with a %%((candles + 4) * growth * 5)% chance of succeeding. Upon success, the province is attacked if it is a hostile non-wasteland non-sea province%%. + 
-  * Ghost ship armada:+  ??Enchanted Forests??: All forests under neutral or enemy dominion act as if they were temples of the caster's pretender. When the dominion has become friendly it stops spreading. Each forest under friendly dominion picks make up to three attempts to pick a random adjacent province, each with a %%((candles + 4) * growth * 5)% chance of succeeding. Upon success, the province is attacked if it is a hostile non-wasteland non-sea province%%. 
 + 
 +  * ??Ghost Ship Armada??:
     * For each unlocked armada...     * For each unlocked armada...
       * Pick a random province.       * Pick a random province.
Line 449: Line 524:
         * Possible bug: it seems like only the gold generated by the last armada counts... also the message only reports the last popkill value...         * Possible bug: it seems like only the gold generated by the last armada counts... also the message only reports the last popkill value...
     * Every 350 gold unlocks another armada, up to the max of 5     * Every 350 gold unlocks another armada, up to the max of 5
 +
   * Each step the AI goes from normal modifies the amount of design points they get by ±50   * Each step the AI goes from normal modifies the amount of design points they get by ±50
 +
   * Global enchantment dispelling/overcast is an exploding d20, not a d6 as stated by the manual   * Global enchantment dispelling/overcast is an exploding d20, not a d6 as stated by the manual
-  * Wild Hunt - all attackers belong to the casting nation and the casting nation sees all reports+ 
 +  ??Wild Hunt?? - all attackers belong to the casting nation and the casting nation sees all reports
     * Start with 10 attempts remaining     * Start with 10 attempts remaining
     * If attempts remaining & 1 == 0, look at province ID 1. Otherwise, look at a random province ID     * If attempts remaining & 1 == 0, look at province ID 1. Otherwise, look at a random province ID
Line 480: Line 558:
           * Dire Wolf commander, 1d10 + 10 Wolves           * Dire Wolf commander, 1d10 + 10 Wolves
         * If these lesser attacks fail, nothing happens to the global enchantment.         * If these lesser attacks fail, nothing happens to the global enchantment.
-  * Illwinter attacks:+ 
 +  ??Illwinter?? attacks:
     * 2 spawn chances. Pick a random province, it fails if provinces is UW, not cold, or owned by the caster or his team. Equal chances for:     * 2 spawn chances. Pick a random province, it fails if provinces is UW, not cold, or owned by the caster or his team. Equal chances for:
       * Niefel Giant commander with closed d4 - 1 Niefel Giant troops       * Niefel Giant commander with closed d4 - 1 Niefel Giant troops
Line 486: Line 565:
       * Werewolf commander with open ended 2d20 Wolf troops       * Werewolf commander with open ended 2d20 Wolf troops
       * Jotun Wolf commander with open ended 2d6 Dire Wolf troops       * Jotun Wolf commander with open ended 2d6 Dire Wolf troops
-  * Infernal breeding:+ 
 +  ??Infernal Breeding??:
     * Roll closed 2d6, add the game era [a range 1-3] and subtract 1. Going to call this the era value for now     * Roll closed 2d6, add the game era [a range 1-3] and subtract 1. Going to call this the era value for now
     * Roll open 1d4, subtract 2, add the number of effects, and half your adept crossbreeder value rounded down. This value can't be lower than 1. This turns out to be the number of units made     * Roll open 1d4, subtract 2, add the number of effects, and half your adept crossbreeder value rounded down. This value can't be lower than 1. This turns out to be the number of units made
Line 497: Line 577:
       * If exactly 7, you get Hell Spawn#2971-2974, chosen randomly at equal weighting, quantity as above       * If exactly 7, you get Hell Spawn#2971-2974, chosen randomly at equal weighting, quantity as above
       * If 8+ you get Hell Spawn#2968+2970, chosen randomly at equal weighting, quantity as above, with commander       * If 8+ you get Hell Spawn#2968+2970, chosen randomly at equal weighting, quantity as above, with commander
 +
   * UW flight needs:   * UW flight needs:
     * the innate chassis ability to fly, not via buff or item, AND...     * the innate chassis ability to fly, not via buff or item, AND...
     * either innate chassis aquatic or amphibiousness, NOT poor amphibian     * either innate chassis aquatic or amphibiousness, NOT poor amphibian
 +
   * Effects that trigger magic phase battles on the targeted province:   * Effects that trigger magic phase battles on the targeted province:
     * 37 remote summon permanent units     * 37 remote summon permanent units
Line 510: Line 592:
     * 19 teleport     * 19 teleport
     * 114 treelord     * 114 treelord
-  * Vafur flames will only affect things that can be set on fire. Rain gives a 50% chance to avoid its effects. Creatures can only be affected by the damage component once per battle, but will be set on fire every time they enter the flames (if they can be set on fire). + 
-  * Hidden in Snow:+  ??Vafur Flames?? will only affect things that can be set on fire. Rain gives a 50% chance to avoid its effects. Creatures can only be affected by the damage component once per battle, but will be set on fire every time they enter the flames (if they can be set on fire). 
 + 
 +  * ??Hidden in Snow??:
     * Always 1 unfrozen lord     * Always 1 unfrozen lord
     * You get (8 - drain) + turmoil + closed d8 unfrozen warriors     * You get (8 - drain) + turmoil + closed d8 unfrozen warriors
Line 517: Line 601:
     * %%There is a (3 * (25 - misfortune))% chance to get a mage%%     * %%There is a (3 * (25 - misfortune))% chance to get a mage%%
     * There is a second, independent (3*misfortune + 25)% chance to get a mage     * There is a second, independent (3*misfortune + 25)% chance to get a mage
-  * Hidden in Sand/Underneath:+ 
 +  ??Hidden in Sand??/??Hidden Underneath??:
     * Always 1 leader     * Always 1 leader
     * %%((8 - drain) - turmoil) + closed d8 good troops%%     * %%((8 - drain) - turmoil) + closed d8 good troops%%
Line 523: Line 608:
     * (-3 * misfortune + 85)% chance for a mage     * (-3 * misfortune + 85)% chance for a mage
     * second (-2 * misfortune + 15)% chance for a mage     * second (-2 * misfortune + 15)% chance for a mage
 +
   * Dome order:   * Dome order:
     * Celestial rainbow     * Celestial rainbow
Line 531: Line 617:
     * Air     * Air
     * Forest     * Forest
-  * Ritual of rebirth:+ 
 +  ??Ritual of Rebirth??:
     * Get first valid hero in HoF that is dead and owned by the caster's nation. Can't be inanimate (unless it is one of the three mummy types this spell makes).     * Get first valid hero in HoF that is dead and owned by the caster's nation. Can't be inanimate (unless it is one of the three mummy types this spell makes).
     * Get resource size, if set. Otherwise, use "normal" size.     * Get resource size, if set. Otherwise, use "normal" size.
Line 538: Line 625:
     * Otherwise: become the spell's damage attribute (which is normal mummy for ritual of rebirth)     * Otherwise: become the spell's damage attribute (which is normal mummy for ritual of rebirth)
     * Prophet status is removed if you made another prophet, but not H3.     * Prophet status is removed if you made another prophet, but not H3.
-  * Beckoning:+ 
 +  ??Beckoning??:
     * Final nreff = min(spell nreff, the number of units in the province belonging to the fort owner)     * Final nreff = min(spell nreff, the number of units in the province belonging to the fort owner)
     * Forest survival does provide immunity     * Forest survival does provide immunity
     * Otherwise, affected units roll morale + DRN vs 10 + DRN, victim wins ties     * Otherwise, affected units roll morale + DRN vs 10 + DRN, victim wins ties
     * If they fail that, they suffer the damage/spec of the spell as effect 2 (so for vanilla it's 999 damage, MRN, uses caster's pen bonus etc)     * If they fail that, they suffer the damage/spec of the spell as effect 2 (so for vanilla it's 999 damage, MRN, uses caster's pen bonus etc)
-  * Stygian Paths+ 
 +  ??Beckoning?? targeting: goes for the main province owner. If that is the same as the caster's nation, it will target the fort's owner instead in the case of sieged provinces 
 + 
 +  * ??Stygian Paths??
     * Stygian Guide value = the highest value of stygian guide of the commander and all troops under their leadership     * Stygian Guide value = the highest value of stygian guide of the commander and all troops under their leadership
     * All units take 1 AN magic damage     * All units take 1 AN magic damage
     * The stygian guide value offers a % chance to avoid the MR or die effect     * The stygian guide value offers a % chance to avoid the MR or die effect
     * If any given unit is stealthy, it has a (stealthy)% chance to avoid the MR or die effect, to a maximum of 90% evasion at 90+ stealth.     * If any given unit is stealthy, it has a (stealthy)% chance to avoid the MR or die effect, to a maximum of 90% evasion at 90+ stealth.
-  * Twiceborn shape logic+ 
 +  ??Twiceborn?? shape logic
     * Units with base twiceborn shapes defined use that     * Units with base twiceborn shapes defined use that
     * If you have a #firstshape, consider that instead of whatever shape you are in currently     * If you have a #firstshape, consider that instead of whatever shape you are in currently
Line 573: Line 665:
     * If the unit is size 1, not innately flying, and female, it becomes a Wight Mage#3449 [size 1 vaetti female]     * If the unit is size 1, not innately flying, and female, it becomes a Wight Mage#3449 [size 1 vaetti female]
     * Otherwise (the unit is size 1 and innately flying) it becomes a Wight Mage#3447 [zotz]     * Otherwise (the unit is size 1 and innately flying) it becomes a Wight Mage#3447 [zotz]
 +
   * Non-permenant affliction notes:   * Non-permenant affliction notes:
     * Slime     * Slime
Line 590: Line 683:
     * Encase in ice: set to 0     * Encase in ice: set to 0
     * Sleep: set to 0     * Sleep: set to 0
 +
   * Defence modifiers on action rate:   * Defence modifiers on action rate:
     * quickness x2     * quickness x2
Line 596: Line 690:
     * If final action rate > 1, +2 def     * If final action rate > 1, +2 def
     * If final action rate < 1, -2 def     * If final action rate < 1, -2 def
 +
   * Disease damage/afflictions: Non-regenerating creatures suffer (closed d10 - 1 + max hp)/10 damage per turn, rounded down, and have a base affliction chance of 15%. Regenerating creatures suffer no damage and have a base affliction chance of 10%. Holding a cursed item increases affliction chance by a flat +50%. If an affliction is rolled, there is the same chance again that it is a major affliction, otherwise a minor affliction is added.   * Disease damage/afflictions: Non-regenerating creatures suffer (closed d10 - 1 + max hp)/10 damage per turn, rounded down, and have a base affliction chance of 15%. Regenerating creatures suffer no damage and have a base affliction chance of 10%. Holding a cursed item increases affliction chance by a flat +50%. If an affliction is rolled, there is the same chance again that it is a major affliction, otherwise a minor affliction is added.
 +
   * Chain lightning spread:   * Chain lightning spread:
     * A new jump happens every 120 ticks     * A new jump happens every 120 ticks
     * Cannot hit the same victim twice in a row     * Cannot hit the same victim twice in a row
     * Will prefer to jump to a random target within 1 square reach, but can travel up to 2 squares (using pythagorus, rounding down)     * Will prefer to jump to a random target within 1 square reach, but can travel up to 2 squares (using pythagorus, rounding down)
 +
   * Independent gem regeneration:   * Independent gem regeneration:
     * Occurs immediately after player incomes are calculated. Happens for every alive commander with an owning nation of less than 5 (so will include special monsters) that has a positive province ID (so not commanders in other planes).     * Occurs immediately after player incomes are calculated. Happens for every alive commander with an owning nation of less than 5 (so will include special monsters) that has a positive province ID (so not commanders in other planes).
Line 607: Line 704:
       * Otherwise, add 1 gem, and repeat the above step again, EXCEPT deduct one from their path level.       * Otherwise, add 1 gem, and repeat the above step again, EXCEPT deduct one from their path level.
    * Example: a F3 mage has no gems. The first gem is added if 9 - 0 > a random number 0-19. If this happens, the check for the second gem is 6 [F3, minus one as one gem was added this turn] - 1 [one fire gem now owned]    * Example: a F3 mage has no gems. The first gem is added if 9 - 0 > a random number 0-19. If this happens, the check for the second gem is 6 [F3, minus one as one gem was added this turn] - 1 [one fire gem now owned]
 +
   * Projectiles and hitzones:   * Projectiles and hitzones:
     * This is for spells and ranged weapons with AoE: one person     * This is for spells and ranged weapons with AoE: one person
Line 615: Line 713:
     * 20% to hit arms, if no arms then hit body     * 20% to hit arms, if no arms then hit body
     * 10% to hit head, if no head then hit body     * 10% to hit head, if no head then hit body
 +
   * Melee hitzones:   * Melee hitzones:
     * Reduced weapon length = (length of weapon - 1), to a minimum of 0     * Reduced weapon length = (length of weapon - 1), to a minimum of 0
Line 634: Line 733:
       * If victim doesn't have hittable legs (eg Jinn or Misc bodyshapes), you successfully hit the body instead.       * If victim doesn't have hittable legs (eg Jinn or Misc bodyshapes), you successfully hit the body instead.
       * Otherwise, you successfully hit the legs.       * Otherwise, you successfully hit the legs.
 +
   * Defence negates rolls an openended 3d6. If this is less than the unit's defence skill, not including fatigue or modifiers from weapons, with shields subtracting their encumbrance value from the score (and not adding their parry value), the effect is negated. Trample's defence calculation also works this way (so shields are an active detriment to being trampled)   * Defence negates rolls an openended 3d6. If this is less than the unit's defence skill, not including fatigue or modifiers from weapons, with shields subtracting their encumbrance value from the score (and not adding their parry value), the effect is negated. Trample's defence calculation also works this way (so shields are an active detriment to being trampled)
 +
   * Retreating and death:   * Retreating and death:
     * For my benefit only because this is really confusing: flags initially set are 8, 9, c, d, e, f, 16, 17, 18... 12 can be set later, all others are not relevant for this     * For my benefit only because this is really confusing: flags initially set are 8, 9, c, d, e, f, 16, 17, 18... 12 can be set later, all others are not relevant for this
Line 644: Line 745:
       * If you have can't pass rivers (eg vampires), you die       * If you have can't pass rivers (eg vampires), you die
       * If you die when taken underwater, can't teleport, can't fly, lack the swimming tag, Sea of Ice is not active, or either side of the river is not cold 1+, you die       * If you die when taken underwater, can't teleport, can't fly, lack the swimming tag, Sea of Ice is not active, or either side of the river is not cold 1+, you die
 +
   * Ind's poptypes:   * Ind's poptypes:
     * The "random determinant" for a province is calculated as (province id / 3) + (province id / 23) + a random number 0-4294967295 that is fixed and generated on world creation. Only the even/oddness of this value matters at all. This is rounding down after all of the divisions.     * The "random determinant" for a province is calculated as (province id / 3) + (province id / 23) + a random number 0-4294967295 that is fixed and generated on world creation. Only the even/oddness of this value matters at all. This is rounding down after all of the divisions.
Line 656: Line 758:
       * In other cases, you get feminie if random determinant is even, or piconye if random determinant is odd       * In other cases, you get feminie if random determinant is even, or piconye if random determinant is odd
     * This means that you should in theory, after one piconye, feminie or mountain cyno fort, identify if the random component itself is even or odd, and be able to predict all randomness after that     * This means that you should in theory, after one piconye, feminie or mountain cyno fort, identify if the random component itself is even or odd, and be able to predict all randomness after that
 +
   * Mapmove function (IE: what the inspector needs to implement to show correct mapmoves)   * Mapmove function (IE: what the inspector needs to implement to show correct mapmoves)
     * If 0 or negative, it isn't changed     * If 0 or negative, it isn't changed
Line 682: Line 785:
     * Add mapspeed bonuses (eg from items), if any     * Add mapspeed bonuses (eg from items), if any
     * If you can fly, and have a value for unit effect 0xe6 (which seems to be only used for "flyingmapmove" for the flying carpet item), use this in place of your normal map move     * If you can fly, and have a value for unit effect 0xe6 (which seems to be only used for "flyingmapmove" for the flying carpet item), use this in place of your normal map move
 +
   * "Startage" (for, presumably, noncommanders only - commanders go a bit differently)   * "Startage" (for, presumably, noncommanders only - commanders go a bit differently)
     * This is seemingly identical (I have not looked TOO hard) to the function below for commanders, except it doesn't do the stuff involving provincial age rates and action/age rate modifiers     * This is seemingly identical (I have not looked TOO hard) to the function below for commanders, except it doesn't do the stuff involving provincial age rates and action/age rate modifiers
 +    * TODO check more carefully. I don't really know where my adventures in writing the below took me
 +
   * "Startagemagic" (for commanders only, has a lot in common with the above... but is a different function!?):   * "Startagemagic" (for commanders only, has a lot in common with the above... but is a different function!?):
     * Get base max age. If one isn't set on the chassis data:     * Get base max age. If one isn't set on the chassis data:
Line 711: Line 817:
     * If no startage modifier, and base RP cost is 500+:     * If no startage modifier, and base RP cost is 500+:
       * Get the unit's base gold cost. If it is 15000+, subtract 10000 from it. Calling this the reduced gold cost, I guess?       * Get the unit's base gold cost. If it is 15000+, subtract 10000 from it. Calling this the reduced gold cost, I guess?
-      * Get the unit's base recpoint cost, divide it by 1000. Calling this the reduced recpoint cost +      * Get the unit's base recpoint cost, add 500 then divide it by 1000. Calling this the reduced recpoint cost 
-      * Something4 = %%((reduced goldcost - reduced recpoints)*10)/reduced recpoints%%+      * Something4 = %%((reduced goldcost - reduced recpoints)*10)/reduced recpoints%% [what happens if this divides by zero?]
       * If the result is beyond the range -5 to 5, move it to the closest value       * If the result is beyond the range -5 to 5, move it to the closest value
       * Add to base start age.       * Add to base start age.
Line 718: Line 824:
     * If the chassis has undocumented 0x2a1 (this is on two Hag heroes with a value of 350), and this is MA or LA, add %%((closed d50 + 74)*attribute's value)/100. Multiply this by 2 if this is LA.%%     * If the chassis has undocumented 0x2a1 (this is on two Hag heroes with a value of 350), and this is MA or LA, add %%((closed d50 + 74)*attribute's value)/100. Multiply this by 2 if this is LA.%%
     * If the chassis has add random age:     * If the chassis has add random age:
-      * In [what context? it's some, but not newunit calls] some contexts, this always adds attribute value/3+      * In [what context? it's some, but not newunit calls] some contexts, this always adds attribute value/3. [This includes the recpoint autocalc algorithm]
       * Otherwise, add an openended d(value)       * Otherwise, add an openended d(value)
     * If you are a commander, and startage is not set:     * If you are a commander, and startage is not set:
Line 744: Line 850:
         * If the commander is not being viewed in a UI preview window, add (variance) + closed d(variance/5) - 1         * If the commander is not being viewed in a UI preview window, add (variance) + closed d(variance/5) - 1
         * If this is a UI preview window, add variance + (variance/10)          * If this is a UI preview window, add variance + (variance/10) 
 +
   * <color #666666>The arena is always {{scales>O0P0H1D3L0D2}}</color>   * <color #666666>The arena is always {{scales>O0P0H1D3L0D2}}</color>
 +
   * The arena is technically a wasteland, but I don't know any reason why this is important   * The arena is technically a wasteland, but I don't know any reason why this is important
 +
   * Arena fights always proceed like:   * Arena fights always proceed like:
     * Pick a random nation that entered     * Pick a random nation that entered
     * Pick a random nation that entered and that isn't the first nation     * Pick a random nation that entered and that isn't the first nation
     * Repeat until there's 0 or 1 nations left, then crown the winner or exit and say nothing     * Repeat until there's 0 or 1 nations left, then crown the winner or exit and say nothing
 +
   * Field sizes:   * Field sizes:
     * The Void, Inferno, Kokytos, Arenas, are always 40x20     * The Void, Inferno, Kokytos, Arenas, are always 40x20
Line 762: Line 872:
         * Width = 40 + (total size - 4400)/260         * Width = 40 + (total size - 4400)/260
         * Neither dimension may exceed 198         * Neither dimension may exceed 198
 +
   * Both kinds of corpses decay to 80% of their values every turn   * Both kinds of corpses decay to 80% of their values every turn
 +
   * Growth/death scale pop changes:   * Growth/death scale pop changes:
     * The scale growth mod (which is 20 by default but can be modded) is multiplied by the province's scale value, and is then divided by 2 if you have the half growth/death thing Abysia has     * The scale growth mod (which is 20 by default but can be modded) is multiplied by the province's scale value, and is then divided by 2 if you have the half growth/death thing Abysia has
     * the amount subtracted from the displayed ingame province's %%population is 10*((closed d10000 - 1) * (province current population/10 * the scale growth mod) / 10000), rounded towards zero%%     * the amount subtracted from the displayed ingame province's %%population is 10*((closed d10000 - 1) * (province current population/10 * the scale growth mod) / 10000), rounded towards zero%%
 +
   * <color #666666>Burning mountain eruption is 25% per turn at turn 30, +1% per turn until it happens</color>   * <color #666666>Burning mountain eruption is 25% per turn at turn 30, +1% per turn until it happens</color>
 +
   * Recpoint autocalc - applies to non-commanders, or commanders with a set RP cost of <7. Those with 7+ use different rules I don't understand yet   * Recpoint autocalc - applies to non-commanders, or commanders with a set RP cost of <7. Those with 7+ use different rules I don't understand yet
     * If set RP is less than 500, use that and don't do any more of this.     * If set RP is less than 500, use that and don't do any more of this.
Line 783: Line 897:
     * If E is less than 2, set it to 2.     * If E is less than 2, set it to 2.
     * E is the final RP cost.     * E is the final RP cost.
 +
   * Innate casters:   * Innate casters:
     * Operate on a clock that starts at 0, and goes up by 1 every 1880 ticks.     * Operate on a clock that starts at 0, and goes up by 1 every 1880 ticks.
Line 795: Line 910:
     * ... so a commander with a unit ID of 3014 would have a delay of 3014 mod 188 = 6; 6 - 1 * 10 = **50 ticks** from the above     * ... so a commander with a unit ID of 3014 would have a delay of 3014 mod 188 = 6; 6 - 1 * 10 = **50 ticks** from the above
     * Timestop changes all this, not looked at that yet     * Timestop changes all this, not looked at that yet
 +
   * The delay for a normal guy going from preparing to actually casting a spell is (75 * spell's cast time in percent, modified by fast cast modifiers)/2 + closed d1000 - 501   * The delay for a normal guy going from preparing to actually casting a spell is (75 * spell's cast time in percent, modified by fast cast modifiers)/2 + closed d1000 - 501
 +
   * Initial delay:   * Initial delay:
     * Units roll a (closed d1000 - 1) for each squad member, and get the lowest result     * Units roll a (closed d1000 - 1) for each squad member, and get the lowest result
     * Commanders just get one swing on a d1000-1     * Commanders just get one swing on a d1000-1
-  * Magic duel baiting:+ 
 +  ??Magic Duel?? baiting:
     * Spellcasting AI scans squares in lines going down the length of the battlefield. It starts at the top left corner, goes all the way right, then moves down a line, and repeats.     * Spellcasting AI scans squares in lines going down the length of the battlefield. It starts at the top left corner, goes all the way right, then moves down a line, and repeats.
     * This is relevant because in the case of a TIED score, the first square checked is always retained, making magic duel somewhat biased towards things on rows closer to the top of the battlefield (and to a lesser extent, things on the left of these rows).     * This is relevant because in the case of a TIED score, the first square checked is always retained, making magic duel somewhat biased towards things on rows closer to the top of the battlefield (and to a lesser extent, things on the left of these rows).
Line 807: Line 925:
     * Multiply score by 15, then divide by 15 or the distance to the target, whichever is greater, then round down.     * Multiply score by 15, then divide by 15 or the distance to the target, whichever is greater, then round down.
     * Being close to the caster and/or closer to the top of the screen will make you more likely to be the target of a magic duel.     * Being close to the caster and/or closer to the top of the screen will make you more likely to be the target of a magic duel.
 +
   * Tartarian/shattered soul orders:   * Tartarian/shattered soul orders:
     * This affects all types of order 63, which are: "Build mausoleum" "Call the dead" "All will be ashes" "Whisper to the dead" "Mutter" "Festival for the dead" "Open tomb" "All will end" "Attend funeral"     * This affects all types of order 63, which are: "Build mausoleum" "Call the dead" "All will be ashes" "Whisper to the dead" "Mutter" "Festival for the dead" "Open tomb" "All will end" "Attend funeral"
Line 817: Line 936:
       * Otherwise, there is a %%(((death path + 3) - candles) * 5)% chance%% to subtract 1 candle from the dominion strength of the province.       * Otherwise, there is a %%(((death path + 3) - candles) * 5)% chance%% to subtract 1 candle from the dominion strength of the province.
     * If the shattered souler was in a candleless province and there was no unholy nation, nothing happens.     * If the shattered souler was in a candleless province and there was no unholy nation, nothing happens.
 +
   * "Fhtagn" - insanity order   * "Fhtagn" - insanity order
     * This is all varieties of (regular insanity) order 62: "Heretic Preaching", "The stars are right" "Hear the void" "Hear my dreams of R'lyeh" "See the signs of R'lyeh" "R'lyeh is rising" "See the signs in the sky" "Fhtagn"      * This is all varieties of (regular insanity) order 62: "Heretic Preaching", "The stars are right" "Hear the void" "Hear my dreams of R'lyeh" "See the signs of R'lyeh" "R'lyeh is rising" "See the signs in the sky" "Fhtagn" 
     * The unholy nation this time is LA rlyeh/attrib 167     * The unholy nation this time is LA rlyeh/attrib 167
     * This is the same as the above, except %%((holy path * 2) + 2) is used to replace all instances of (death path + 3)%%     * This is the same as the above, except %%((holy path * 2) + 2) is used to replace all instances of (death path + 3)%%
 +
   * Ice fort melting:   * Ice fort melting:
     * Roll a random number -2 to 0 inclusive.     * Roll a random number -2 to 0 inclusive.
Line 829: Line 950:
     * If the fort has been damaged 10+ times, it permenantly becomes a half melted fort: "The %s in %s has mostly melted away due to the prolonged heat. The damage is now beyond repair and the half melted fort has to be destroyed so a new and better fort can be built."     * If the fort has been damaged 10+ times, it permenantly becomes a half melted fort: "The %s in %s has mostly melted away due to the prolonged heat. The damage is now beyond repair and the half melted fort has to be destroyed so a new and better fort can be built."
     * In cold 1+, a fort at any level of destruction instead gets (3 * cold scale) subtracted from its damage count. This cannot lower the damage count below 0. If this lowers the damage progress to zero and the fort is not half melted: "The %s in %s has fully recovered from the earlier melting."     * In cold 1+, a fort at any level of destruction instead gets (3 * cold scale) subtracted from its damage count. This cannot lower the damage count below 0. If this lowers the damage progress to zero and the fort is not half melted: "The %s in %s has fully recovered from the earlier melting."
 +
   * Mirror image and exact chances   * Mirror image and exact chances
     * Num images = max(1, 2 * air level), as would be expected     * Num images = max(1, 2 * air level), as would be expected
Line 837: Line 959:
       * 21 images: 4% [unrounded values would have you say 4.76%]       * 21 images: 4% [unrounded values would have you say 4.76%]
     * So I guess Really Stupid Large numbers of images get the most out of the slight rounding error...     * So I guess Really Stupid Large numbers of images get the most out of the slight rounding error...
 +
   * Assassinations and bodyguards:   * Assassinations and bodyguards:
     * The chance of each bodyguard showing up in percent is 50, +10 per bodyguard point the unit has, -10 per patience point the assassin has. The chance can't fall below 5% or exceed 95%. This is rolled individually per unit bodyguarding the commander.     * The chance of each bodyguard showing up in percent is 50, +10 per bodyguard point the unit has, -10 per patience point the assassin has. The chance can't fall below 5% or exceed 95%. This is rolled individually per unit bodyguarding the commander.
     * Warning doesn't do anything here except increase the number of bodyguards a commander is allowed to have.     * Warning doesn't do anything here except increase the number of bodyguards a commander is allowed to have.
 +
   * Reaper/Leper/BVC/Plague doctor   * Reaper/Leper/BVC/Plague doctor
     * Add up the total reaper/active plague doctors in the province.     * Add up the total reaper/active plague doctors in the province.
Line 852: Line 976:
       * Kill (total reaper and active plague doctors/2)% of the province population.       * Kill (total reaper and active plague doctors/2)% of the province population.
       * Add %%((killed population/10) - (((killed population/10) * 50) / 100)) unarmed corpses to the province%%       * Add %%((killed population/10) - (((killed population/10) * 50) / 100)) unarmed corpses to the province%%
 +
   * Marignon innate dompushing (nation attribute 41, MA/LA Marignon both have this with a value of 1)   * Marignon innate dompushing (nation attribute 41, MA/LA Marignon both have this with a value of 1)
     * Only in owned provinces in hostile (not neutral) dominion, also applies to friendly forts under siege     * Only in owned provinces in hostile (not neutral) dominion, also applies to friendly forts under siege
     * Chance to deduct a hostile dominion candle is 30%, or 60% if a temple is present. If there's only one red candle, it is removed leaving neutral dominion     * Chance to deduct a hostile dominion candle is 30%, or 60% if a temple is present. If there's only one red candle, it is removed leaving neutral dominion
     * This can also spread dominion to a max of 1 white candle (or 2 if a temple is present). The chance of adding one is 20%, or 40% if a temple is present.     * This can also spread dominion to a max of 1 white candle (or 2 if a temple is present). The chance of adding one is 20%, or 40% if a temple is present.
 +
   * On dominion spreading:   * On dominion spreading:
     * If the province has hostile dominion, there is a (50 + (5* dom conflict bonus) + (5 * pretender's effective dom score, capped at 20) - (5 * hostile dominion level in province))% chance that the dominion level is decreased by one point.     * If the province has hostile dominion, there is a (50 + (5* dom conflict bonus) + (5 * pretender's effective dom score, capped at 20) - (5 * hostile dominion level in province))% chance that the dominion level is decreased by one point.
Line 861: Line 987:
     * The chance to add to dominion in the province where the check originated is %%((10 - candles) * 3)%.%% This cannot happen if the province is already up to your current dominion strength.     * The chance to add to dominion in the province where the check originated is %%((10 - candles) * 3)%.%% This cannot happen if the province is already up to your current dominion strength.
     * Otherwise, pick an adjacent province and repeat up to 1500 times per temple check.     * Otherwise, pick an adjacent province and repeat up to 1500 times per temple check.
 +
   * Capital starting population (before the adjustment some nation like popkillers get) is 10 * (2950 + closed d100)   * Capital starting population (before the adjustment some nation like popkillers get) is 10 * (2950 + closed d100)
 +
   * Capital starting resources is 78 + closed d5   * Capital starting resources is 78 + closed d5
 +
   * Path loss on recall   * Path loss on recall
     * This whole section doesn't apply for nations with attribute 0x10c (Ur/Uruk). They also can't gain any paths from dying either.     * This whole section doesn't apply for nations with attribute 0x10c (Ur/Uruk). They also can't gain any paths from dying either.
Line 881: Line 1010:
         * If you are B3 or lower and you didn't lose blood, and didn't gain either death or astral, there is a 1% chance you gain 1 blood level         * If you are B3 or lower and you didn't lose blood, and didn't gain either death or astral, there is a 1% chance you gain 1 blood level
     * If losing candles, you do NOT roll to gain paths unless the above loop of 1000 attempts failed to find a path to remove from you and had to resort to taking a candle instead.     * If losing candles, you do NOT roll to gain paths unless the above loop of 1000 attempts failed to find a path to remove from you and had to resort to taking a candle instead.
 +
   * Passive unrest reduction due to dom/order/turmoil   * Passive unrest reduction due to dom/order/turmoil
     * First, PD does its thing: Reduces unrest by %%((pd / 10) - 15), the amount shown on the PD UI ingame%%     * First, PD does its thing: Reduces unrest by %%((pd / 10) - 15), the amount shown on the PD UI ingame%%
Line 890: Line 1020:
     * Subtract from the unrest total: (remaining unrest/divisor) rounded down     * Subtract from the unrest total: (remaining unrest/divisor) rounded down
     * Patrolling happens next.     * Patrolling happens next.
 +
   * The mod command domunrest (both Phlegras have this at 5) adds (closed d10 - 1 + candles * value)/10 rounded down unrest per turn.   * The mod command domunrest (both Phlegras have this at 5) adds (closed d10 - 1 + candles * value)/10 rounded down unrest per turn.
 +
   * Spec 70368744177664 (no effect on flyers/floaters) stops effects applying to   * Spec 70368744177664 (no effect on flyers/floaters) stops effects applying to
     * Units that are innately flying all the time     * Units that are innately flying all the time
Line 896: Line 1028:
     * Units with the flight buff     * Units with the flight buff
     * It does NOT care about flying by other means such as fly-when-blessed (eagle warriors)     * It does NOT care about flying by other means such as fly-when-blessed (eagle warriors)
 +
   * Casters and deciding how many gems to use   * Casters and deciding how many gems to use
     * The conservative gem usage setting is ignored and assumed to be off for the attacking side, in assassinations, and when on other planes     * The conservative gem usage setting is ignored and assumed to be off for the attacking side, in assassinations, and when on other planes
Line 922: Line 1055:
       * Upon adding an extra gem, recalculate the fatigue after casting (each extra gem increases the fatigue divisor by 1)       * Upon adding an extra gem, recalculate the fatigue after casting (each extra gem increases the fatigue divisor by 1)
       * Keep adding gems until one of the above three conditions are not met. If the number of total gems spent exceeds the caster's path level (including communion boost), they spend only the bare minimum, otherwise they spend the amount that resulted from the process above.       * Keep adding gems until one of the above three conditions are not met. If the number of total gems spent exceeds the caster's path level (including communion boost), they spend only the bare minimum, otherwise they spend the amount that resulted from the process above.
 +
   * Pillage   * Pillage
     * A unit's pillage strength is:     * A unit's pillage strength is:
Line 939: Line 1073:
       * The unrest generated is 4d(this size)       * The unrest generated is 4d(this size)
       * The gold generated is %%(final pillage strength - closed d(final pillage strength/2, rounded down))%%       * The gold generated is %%(final pillage strength - closed d(final pillage strength/2, rounded down))%%
 +
   * FIXME Does the pillage bonus trait just not do what the game says it does? I can't find anywhere where it's checked here   * FIXME Does the pillage bonus trait just not do what the game says it does? I can't find anywhere where it's checked here
  
 +  * Unit id allocation:
 +    * If the highest unit ID is less than 25000, simply increase highest unit ID by 1 and assign the next new unit the old highest value
 +    * Otherwise, go through all existing IDs in order until you find one for a unit that is dead and removable, then take that old unit's ID
 +
 +  * Pretenders at game creation are given consecutive unit IDs. These go in ascending order of nation IDs in the game. They are not the first things to be created though, so for the purposes of innate spellcasting offsets, a clean multiple of 188 might happen to fall in the middle of this process. It still very very heavily biases two innate pretenders' offsets towards the lower nation ID though...
 +
 +Undocumented hotkeys
 +
 +  * Many many not-really useful things, like "h" on the "pick a nation to play" will host if not multiplayer, tohfx will sort the in battle f1 display like clicking on the columns does, many alternative ways to close windows...
 +  * $ with -d or higher on the strategic map desplays your "kingdom value". Don't really know what this is useful for
 +  * C on the "Rejoice! X has ascended -> view scores/history" screen will host a new turn!
 +  * F9 on strategic map displays thrones
 +  * T on player setup tries to force teams of 4, with nations assigned by internal ID
 +  * d on send messages retracts all messages
 +  * i on the army setup screen will invert the selection of units in the selected squad
 +  * ctrl-p on army setup writes something to the blind log
 +  * r, s, m, l on the map selection screen for a new game do something. I'm not certain what, might be selecting random map sizes
 +
 +Armor defeating ("critical" hits)
 +
 +  * Looks a bit different to the dom4 stuff.
 +  * Applies only if:
 +    * Trying to do more than -900 damage (this likely has some internal significance)
 +    * The attack is not AN
 +    * One of the following:
 +      * Final prot DRN is 0-2 inclusive
 +      * Final prot DRN is 0-3 inclusive AND the victim's fatigue is 50+
 +      * Final prot DRN is 0-4 inclusive AND the victim is immobilised, but is not inherently an immobile unit type
 +    * The result is the victim's protection is reduced by (victim's protection+2)/4, rounded down
 +
 +Graphs. I am not too confident on these...
 +
 +  * Army size graph looks to plot (total size of all units you own)/4 to a max of 65000. This counts base unit type size, so enlarge/shrinking units has no effect.
 +  * Dominion graph looks to plot (total of all candles, +10 for each province that has your candles)/2 to a max of 65000.
 +
 +Melee weapons and items:
 +  * the first weapon is skipped if you have 2+ shields from items and the weapon is nonintrinsic
 +  * the second weapon is skipped if you have any shields from items and the weapon is nonintrinsic
 +  * the third weapon is skipped if you have 3+ shields from items and the weapon is nonintrinsic
 +  * the fourth weapon is skipped if you have 4+ shields from items the weapon is nonintrinsic
 +  * This looks backwards, but if you swapped 1st and 2nd consider that any human with a sword and shield would lose their shield if given a magic shield, it's weird but is what it is
 +  * Weapon attribute 657 seems to be "needs accessible horns to use" and weapons with this are removed if a crown is equipped
 +
 +It looks like moving off the field simulates 100 rounds of affliction and regen processing, this specifically includes poison, decay, That Mystery Affliction that Does More To Undead, uwdamage, landdamage, burning, bleeding, freezing, desiccation, plague, regen
 +
 +Assassinations:
 +  * This function processes all commanders in ascending commander ID order.
 +  * Infiltration for graphs: is just 50% to succeed
 +  * Cause unrest: creates openended d20 unrest
 +  * Seduction: two map commander orders (72, seduction; 58: corruptor) do this.
 +    * Get a commander to target. This looks properly randomised (builds a list on the stack and then picks one randomly). This respects Scale Walls. Sneaking commanders are not valid targets, as many players probably know from experience.
 +    * If dream seduction, penbase = 13 + (pen bonus from items, bless etc), moralebase = <value of dream seduction>
 +    * If nondream seduction (overwrites dream if you give a unit both), penbase = 99, moralebase = <value of seduction ability>
 +    * If the unit is female (including via cat charm):
 +      * Add the amount of the gender changing effect to the morale base
 +    * If action is corrupt: penbase=99, moralebase=<value of corruptor ability>, which will overwrite anything earlier
 +    * Make 1000 attempts to pick an adjacent province you can retreat to. I could look into this in more detail if required.
 +    * If no province found, you get "With nowhere to run with the victim afterwards, %s aborted the seduction attempt."
 +    * The MR check is always rolled, even for corruption and non-dream seduction (though with a base pen of 99 they probably can't really ever fail). Specifically, if MR + DRN >= penbase + DRN then it fails (result=0, result2=0) and you get "%s tried to project %s wonderful dreams at %s, but the target resisted and no real seduction could be done."
 +    * If you have nowhere to walk to, but can fly and your size is less than your target's, you fail (result=-3, result2=0).
 +    * If the seducer and victim are the same gender, you head towards a fail state that presumably corruption will undo later (result=-1, result2=1)
 +    * If the victim is something that can't be converted (ie is a god or prophet), result1=-1, result2=0
 +    * If the victim is immobile result=-3, result2=0
 +    * Otherwise you pass (result=1, result2=0)
 +    * Roll the morale check: if moralebase + DRN > victim's morale + DRN, you keep the result1 from above.
 +      * Otherwise, result1 becomes -1 if any of the following are true: this is corruption (not seduction), or the seducer's morale roll < (the victim's morale roll - 2), or result2 != 0. If none of that was true result1 becomes -2 instead
 +    * If result1 == 1: The seduction succeeded: "%s disappeared one night and was never seen again." etc.
 +    * If result1 == 0: The (dream) seduction failed. "%s tried to project %s wonderful dreams at %s, but the target resisted and no real seduction could be done." The victim's nation does NOT get a message for this one.
 +    * If result1 == -2: "%s tried to seduce %s, but %s could not shy away from %s duties. However %s did not want %s to get caught and did not give %s away.". But nothing else happens, and the victim's nation doesn't get told anything.
 +    * If result1 == -3: You failed due to "logistical reasons" and fight anyway.
 +    * If result1 is anything else, and result2==0, and the victim has less than 20 morale: "%s failed to %s %s and a battle ensued."
 +    * Any other case: "%s failed to %s %s and a battle ensued. In fact %s wasn't even remotely interested in the offer."
 +  * Order 61 (I think this is "Lure", the Siren/Jorogomu ability)
 +    * Pick a commander to assassinate.
 +    * This also requires mixed genders.
 +    * MR: attempt fails if 16 + DRN < victim MR + DRN
 +    * Morale: attempt fails if <lure ability value> + DRN < victim morale + DRN
 +    * Also fails if victim is prophet or god
 +    * If you succeeded this far:
 +      * If this attempt is using Jorogumo's 0x2a7 ability...
 +        * If victim's strength + DRN <= 15 + DRN, you end up fighting later.
 +      * If the victim does not die when taken underwater, you end up fighting later.
 +    * All fights take place underwater (add terrain mask 4) but seemingly without setting the assassination flag and the 50% chance of darkness. **This looks like it includes the Jorogumo fight if you pass the strength check, which is probably a bug**
 +    * Much like seduction, there's a range of messages:
 +      * MR/Morale checks passed:
 +        * Jorogumo type:
 +          * "%s encountered an alluring woman that tried to seduce %s. But %s did not leave %s post." - Victim gets this
 +          * "%s failed to lure %s into her trap." - user gets this if victim has <20 morale
 +          * "%s failed to lure an enemy called %s into her trap. In fact %s wasn't attracted at all to this most beautiful song." - victim has 20+ morale
 +        * Normal type:
 +          * "%s managed to resist a magically alluring song that was heard from the water."
 +          * "%s failed to lure %s into the sea."
 +      * Complete Success:
 +        * Jorogumo type:
 +          * "%s successfully lured %s into the her webs and dragged him into the water where he drowned." - User
 +          * The victim can get two messages, with a coin flip between them: "%s disappeared one night and was never seen again. This night some people say they saw a glimpse of an extraordinarily beautiful woman." and your normal boring "%s disappeared one night and was never seen again."
 +        * Normal lure:
 +          * "%s successfully lured %s into the sea where he drowned." - User
 +          * Victim can have two messages:
 +            * 75%: "%s disappeared one night and was never seen again. This night some people heard the most beautiful song."
 +            * 25%: "%s disappeared one night and was never seen again."
 +      * Other failures:
 +        * Jorogumo type:
 +          * "%s disappeared one night when he followed an enticing young woman. He suddenly found himself trapped in spider webs, but no web is strong enough to hold %s for long. After breaking free he attacked the woman that lured him into this trap." - Victim, passed strength check
 +          * "%s successfully lured an enemy commander called %s into her web. Unfortunately he broke free from the web and a battle ensued." - User, passed strength check
 +          * "%s successfully lured an enemy commander called %s into her web. All seemed well as she dragged the helpless victim into the nearby pool of water. Unfortunately the victim later emerged unharmed from the water and attacked her." - User, victim does not die underwater
 +          * "%s disappeared one night when he followed an enticing young woman. He suddenly found himself trapped in spider webs and dragged into a pool of water. Unable to drown, %s could free himself as the web started to dissolve. After breaking free he emerged from the water and attacked the woman that lured him into this trap." - Victim, if does not die underwater
 +        * Regular lure:
 +          * "%s successfully lured an enemy commander called %s into the sea. Unfortunately he didn't drown and a battle ensued." - User, victim does not die underwater
 +          * "%s disappeared one night and entered the sea. This night some people heard the most beautiful song. %s was disappointed to find a fish being instead of the beautiful female he had envisioned. He attacked her in rage and disappointment." - Victim, when not dying underwater
 +  * Regular assassination: does what it says. I can't see any surprises here.
 +  * Seduction/regular assassinations are 50% to add what I assume is the the nighttime darkness terrain flag.
 +  * Looks like Jorogumo's lure can be used anywhere that isn't a waste.
 +
 +  * A side's "max" hp calc (this is only for adjusting the saved value of "how much hp did my side start with", the actual work just does the hp calcs with modifications as below for slaves/pd) goes like this:
 +
 +      Get real total
 +      Get tempflag1 total - I added a note saying retinue gets this flag, but pd does NOT (it's tempflag3)
 +      "Permanent" total = real - tempflag1
 +      if "permanent" total <= tempflag1 total, templflag1 total = "permanent" total
 +      Actual total of the calc = permanent + tempflag1 total
 +   * This is really confusing, but it's maybe the basis of the one commander and their retinue line?
 +     * 1x 10hp guy, 100hp of retinue
 +       * real=110
 +       * tempflag1 = 100
 +       * permanent = 10
 +       * The conditionis true, so tempflag1=10
 +       * actual total = 20
 +   * pd (temp flag=3) contribute hp/4 rounded up
 +   * slaves contribute hp/2 rounded up
 +
 +Blastsquare (and the apostasy bug)
 +  * A = size points in square + open 2d6
 +  * A gets 999 added if battle enchant/timestop or the spell has ignore shields spec value
 +  * If spell doesn't have the nonmagical spec, add 2 more to A
 +  * %%B = (2 - victim fatigue/20 rounded down) + open 2d6%%
 +  * Get your shield defence/parry value, and double it.
 +  * If spec has either "flail spec" 4 or AN 128, shield defence/parry value = 0.
 +  * Calc effective shield prot: fetch the value, if spec has AP, halve it, if spell is AN or ignores shields then this is zero.
 +  * If spec has neither flail spec 4 or AN 128, and the victim is standing on a fort wall
 +    * If shield defence/parry was less than 10, set it to 10.
 +    * If shield prot was less than 30, set it to 30. Then, if the effect was AP, half it. (this seemingly introduces an order of operations bug - if you have a prot 36 shield vs AP, you'll use the wall bonus instead despite it being worse)
 +  * If you have air shield, there's a value% chance to add 100 to B.
 +  * If A < B, the victim avoids all damage.
 +  * If A < (B + the shield's parry value), you hit the shield.
  
 FIXME look at what sets the assassination flag, very likely there is a bug in the spells that don't use it (which will cause casting AI to not have the reduced buff preference) FIXME look at what sets the assassination flag, very likely there is a bug in the spells that don't use it (which will cause casting AI to not have the reduced buff preference)
user/loggy/misc.1672290743.txt.gz · Last modified: 2022/12/29 05:12 by loggy