user:loggy:auras
Loggy's Auras reverse engineering notes
(from 5.51b executable)
"Aura value" means the size of the aura ability. So for sleep cloud (10) the aura value would be 10.
All auras are checked every 320 ticks.
| Aura | Primary Effect | Notes |
|---|---|---|
| Poison cloud | Eff2007 Dmg2 (poison cloud with 1 damage ticks with lingering 2) | |
| Heat / UWHeat | Damage 4, eff variable (makes clouds with lingering 1 or 2 that do 2 AN heat fatigue damage) | Normal heat and UWHeat values are additive in overwater provinces. Heat scale is added to aura value. If raining, -2 to aura value. If final aura value is 6 or less, clouds generate with lingering 1 instead of 2. |
| Chill | Damage 5, eff variable (cloud with lingering 1 or 2 that do 2 AN cold fatigue damage) | Cold scale is added to aura value. If some condition I don't understand, extra +2 to aura value. If final aura value is 6 or less, clouds generate with lingering 1 instead of 2. |
| Mind Slimer | Slowness, no effect on mindless | |
| "Fatigue Sacred Aura" (unit effect 326) | 15AP fatigue damage to sacreds only | Unknown vanilla source. Generates the same green/cyan particles as sleep aura. |
| Sleep aura | Sleep, MR neg, no effect on friendlies/mindless/undead/inanimates | MR check is considered to be from a nature source |
| Disbelieve | 999 AN disbelieve damage, MR neg (to illusions only) | MR check is considered to be from an astral source |
| Soul Vortex | 1 AN life steal, MR negates, no effect on inanimate | Aura value generated by the spell is always 8. MR check is considered to be from a death source |
| Plague Carrier | Disease, MR neg | MR check is considered to be from a death source |
| Contagious aspect of Plague spell effect (affliction 8) | Plague, MR neg, no effect on inanimate | This aura always has an aura value of 2. MR check is not associated with any particular path |
| Fear | Fear, magnitude floor(aura value/5) + 3, enemies only | Does nothing if aura value is less than 5. Providing that is the case, the aura value is increased by 6. |
With that out the way, time to move on to…
Actual Aura Mechanics
In all cases, if the unit is somehow off the field (in a square where either coordinate is less than -1), do nothing.
If the aura value is over 600, it follows different rules:
- Calculate the size of the battlefield in squares (this is normally 80x40 so 3200 squares total)
- If the aura value is less than 666: number of pulses is given by:
- X = floor(squares/6) + (squares » 31) [533 for a normal sized field]
- final = (X » 4) - (X » 31) [33 for a normal sized field]
- Otherwise: do the same, but final is instead (X » 3) - (X » 31) [66 for a normal sized field]
- Each pulse hits a completely random square on the battlefield.
For normal auras:
- If the aura value is less than or equal to a random number 0-23, do nothing.
- Otherwise, add one to the pulse count and subtract 24 from the aura value. If a random number 0-23 is less than the new aura value, add another pulse. Repeat this step until a pulse is not added.
- With the number of pulses calculated, all that remains is to place them.
- If this is one of the first three pulses or the (now reduced) aura value is less than 10, pick a random square with a max distance of 1 (diagonals allowed). Otherwise, the max distance is 2. Repeat until the calculated number of pulses have been generated. Each time, set the origin coords to where the last pulse appeared.
user/loggy/auras.txt · Last modified: by loggy
