User Tools

Site Tools


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:

  1. Calculate the size of the battlefield in squares (this is normally 80x40 so 3200 squares total)
  2. If the aura value is less than 666: number of pulses is given by:
    1. X = floor(squares/6) + (squares » 31) [533 for a normal sized field]
    2. final = (X » 4) - (X » 31) [33 for a normal sized field]
  3. Otherwise: do the same, but final is instead (X » 3) - (X » 31) [66 for a normal sized field]
  4. Each pulse hits a completely random square on the battlefield.

For normal auras:

  1. If the aura value is less than or equal to a random number 0-23, do nothing.
  2. 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.
  3. With the number of pulses calculated, all that remains is to place them.
  4. 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: 2021/07/29 15:27 by loggy