BONUS_NAME(SPELL_DAMAGE_REDUCTION)/*eg. golems; value - reduction in %, subtype - spell school; -1 - all, 0 - air, 1 - fire, 2 - water, 3 - earth*/ \
BONUS_NAME(NO_WALL_PENALTY) \
BONUS_NAME(NON_LIVING)/*eg. golems, cannot be rised or healed, only neutral morale */ \
BONUS_NAME(RANDOM_SPELLCASTER)/*eg. master genie, val - level*/ \
BONUS_NAME(BLOCKS_RETALIATION)/*eg. naga*/ \
BONUS_NAME(SPELL_IMMUNITY)/*subid - spell id*/ \
BONUS_NAME(MANA_CHANNELING)/*value in %, eg. familiar*/ \
BONUS_NAME(SPELL_LIKE_ATTACK)/*subtype - spell, value - spell level; range is taken from spell, but damage from creature; eg. magog*/ \
BONUS_NAME(THREE_HEADED_ATTACK)/*eg. cerberus*/ \
BONUS_NAME(GENERAL_DAMAGE_PREMY) \
BONUS_NAME(MIND_IMMUNITY) \
BONUS_NAME(FIRE_SHIELD) \
BONUS_NAME(UNDEAD) \
BONUS_NAME(HP_REGENERATION)/*creature regenerates val HP every new round*/ \
BONUS_NAME(MANA_DRAIN)/*value - spell points per turn*/ \
BONUS_NAME(LIFE_DRAIN) \
BONUS_NAME(DOUBLE_DAMAGE_CHANCE)/*value in %, eg. dread knight*/ \
BONUS_NAME(RETURN_AFTER_STRIKE) \
BONUS_NAME(SPELLCASTER)/*subtype - spell id, value - level of school, additional info - weighted chance. use SPECIFIC_SPELL_POWER, CREATURE_SPELL_POWER or CREATURE_ENCHANT_POWER for calculating the power*/ \
BONUS_NAME(ENCHANTER)/* for Enchanter spells, val - skill level, subtype - spell id, additionalInfo - cooldown */ \
BONUS_NAME(HEALER) \
BONUS_NAME(SIEGE_WEAPON) \
BONUS_NAME(HYPNOTIZED) \
BONUS_NAME(NO_RETALIATION)/*temporary bonus for basilisk, unicorn and scorpicore paralyze*/\
BONUS_NAME(ADDITIONAL_RETALIATION)/*value - number of additional retaliations*/ \
BONUS_NAME(MAGIC_MIRROR)/* value - chance of redirecting in %*/ \
BONUS_NAME(ALWAYS_MINIMUM_DAMAGE)/*unit does its minimum damage from range; subtype: -1 - any attack, 0 - melee, 1 - ranged, value: additional damage penalty (it'll subtracted from dmg), additional info - multiplicative anti-bonus for dmg in % [eg 20 means that creature will inflict 80% of normal minimal dmg]*/ \
BONUS_NAME(ALWAYS_MAXIMUM_DAMAGE)/*eg. bless effect, subtype: -1 - any attack, 0 - melee, 1 - ranged, value: additional damage, additional info - multiplicative bonus for dmg in %*/ \
BONUS_NAME(ATTACKS_NEAREST_CREATURE)/*while in berserk*/ \
BONUS_NAME(IN_FRENZY)/*value - level*/ \
BONUS_NAME(SLAYER)/*value - level*/ \
BONUS_NAME(FORGETFULL)/*forgetfulness spell effect, value - level*/ \
BONUS_NAME(NOT_ACTIVE)/* subtype - spell ID (paralyze, blind, stone gaze) for graphical effect*/ \
BONUS_NAME(NO_LUCK)/*eg. when fighting on cursed ground*/ \
BONUS_NAME(NO_MORALE)/*eg. when fighting on cursed ground*/ \
BONUS_NAME(DARKNESS)/*val = radius */ \
BONUS_NAME(SPECIAL_SPELL_LEV)/*subtype = id, val = value per level in percent*/\
BONUS_NAME(POISON)/*val - max health penalty from poison possible*/\
BONUS_NAME(BIND_EFFECT)/*doesn't do anything particular, works as a marker)*/\
BONUS_NAME(ACID_BREATH)/*additional val damage per creature after attack, additional info - chance in percent*/\
BONUS_NAME(RECEPTIVE)/*accepts friendly spells even with immunity*/\
BONUS_NAME(CASTS)/*how many times creature can cast activated spell*/ \
BONUS_NAME(SPECIFIC_SPELL_POWER)/* value used for Thunderbolt and Resurrection cast by units, subtype - spell id */\
BONUS_NAME(CREATURE_SPELL_POWER)/* value per unit, divided by 100 (so faerie Dragons have 800)*/ \
BONUS_NAME(CREATURE_ENCHANT_POWER)/* total duration of spells cast by creature */ \
BONUS_NAME(ENCHANTED)/* permanently enchanted with spell subID of level = val, if val > 3 then spell is mass and has level of val-3*/ \
BONUS_NAME(REBIRTH)/* val - percent of life restored, subtype = 0 - regular, 1 - at least one unit (sacred Phoenix) */\
BONUS_NAME(DISGUISED)/* subtype - spell level */\
BONUS_NAME(VISIONS)/* subtype - spell level */\
BONUS_NAME(NO_TERRAIN_PENALTY)/* subtype - terrain type */\
BONUS_NAME(SOUL_STEAL)/*val - number of units gained per enemy killed, subtype = 0 - gained units survive after battle, 1 - they do not*/ \
BONUS_NAME(TRANSMUTATION)/*val - chance to trigger in %, subtype = 0 - resurrection based on HP, 1 - based on unit count, additional info - target creature ID (attacker default)*/\
BONUS_NAME(SUMMON_GUARDIANS)/*val - amount in % of stack count, subtype = creature ID*/\
BONUS_NAME(CATAPULT_EXTRA_SHOTS)/*val - power of catapult effect, requires CATAPULT bonus to work*/\
BONUS_NAME(RANGED_RETALIATION)/*allows shooters to perform ranged retaliation*/\
BONUS_NAME(BLOCKS_RANGED_RETALIATION)/*disallows ranged retaliation for shooter unit, BLOCKS_RETALIATION bonus is for melee retaliation only*/\
BONUS_NAME(MANUAL_CONTROL)/* manually control warmachine with id = subtype, chance = val */ \
BONUS_NAME(FIRST_STRIKE)/* first counterattack, then attack if possible */\
BONUS_NAME(SYNERGY_TARGET)/* dummy skill for alternative upgrades mod */\
BONUS_NAME(SHOOTS_ALL_ADJACENT)/* H4 Cyclops-like shoot (attacks all hexes neighboring with target) without spell-like mechanics */\
BONUS_NAME(BLOCK_MAGIC_BELOW)/*blocks casting spells of the level < value */ \
BONUS_NAME(DESTRUCTION)/*kills extra units after hit, subtype = 0 - kill percentage of units, 1 - kill amount, val = chance in percent to trigger, additional info - amount/percentage to kill*/ \
BONUS_NAME(LIMITED_SHOOTING_RANGE)/*limits range of shooting creatures, doesn't adjust any other mechanics (half vs full damage etc). val - range in hexes, additional info - optional new range for broken arrow mechanic */\
BONUS_NAME(LEARN_BATTLE_SPELL_CHANCE)/*skill-agnostic eagle eye chance. subtype = 0 - from enemy, 1 - TODO: from entire battlefield*/\
BONUS_NAME(LEARN_BATTLE_SPELL_LEVEL_LIMIT)/*skill-agnostic eagle eye limit, subtype - school (-1 for all), others TODO*/\
BONUS_NAME(PERCENTAGE_DAMAGE_BOOST)/*skill-agnostic archery and offence, subtype is 0 for offence and 1 for archery*/\
BONUS_NAME(LEARN_MEETING_SPELL_LIMIT)/*skill-agnostic scholar, subtype is -1 for all, TODO for others (> 0)*/\
BONUS_NAME(SPELL_SCHOOL_IMMUNITY)/*This bonus will work as spell school immunity for all spells, subtype - spell school: 0 - air, 1 - fire, 2 - water, 3 - earth. Any is not handled for reducing overlap from LEVEL_SPELL_IMMUNITY*/\
BONUS_NAME(NEGATIVE_EFFECTS_IMMUNITY)/*This bonus will work as spell school immunity for negative effects from spells of school, subtype - spell school: -1 - any, 0 - air, 1 - fire, 2 - water, 3 - earth*/\
BONUS_NAME(FEROCITY)/*extra attacks, only if at least some creatures killed while attacking target unit, val = amount of additional attacks, additional info = amount of creatures killed to trigger (default 1)*/ \
BONUS_NAME(REVENGE)/*additional damage based on how many units in stack died - formula: sqrt((number of creatures at battle start + 1) * creature health) / (total health now + 1 creature health) - 1) * 100% */ \
BONUS_NAME(RESOURCES_CONSTANT_BOOST)/*Bonus that does not account for propagation and gives extra resources per day. val - resource amount, subtype - resource type*/ \
BONUS_NAME(RESOURCES_TOWN_MULTIPLYING_BOOST)/*Bonus that does not account for propagation and gives extra resources per day with amount multiplied by number of owned towns. val - base resource amount to be multiplied times number of owned towns, subtype - resource type*/ \