Comment 4 for bug 895363

Revision history for this message
Marshall (m-edward) wrote :

Bravery as an inverse multiplier to morale damage received:
Yes, that does make more sense in RA2.

Morale.Damage
Yes, that sounds way better. Normal Damage + Morale.Damage = awesome. The finer adjustment for specific weapons being more scary does make much more sense put that way.
Further to that, we wouldn't then need any separate morale adjustment events for taking damage/being healed - units with more Strength should just be given a relatively higher Bravery than someone with lower Strength (i.e. tanks should be more brave because their driver is better protected), and healing weapons can dictate how much stimulant they provide.
So a unit with Bravery=20 hit by a weapon with Morale.Damage=10 would lose 8 morale points per hit from the weapon.
Verses should not affect Morale.Damage, however CellSpread and PercentAtMax should!

Veterans mitigating morale loss
I think this is a pretty minor thing compared to the rest of the system and also a bit complicated. Wish I hadn't mentioned it now!
Heroes using a morale-boosting weapon instead would be just fine.
HOWEVER, I have a new idea to simplify this and have Bravery affect the morale events (see very end of this note).

===========================================
===========================================
===========================================
So, to draw a line under the above and reiterate the proposals for this new system as simply as possible:

All units (except BuildingTypes) start with Morale=100 and always have between 0 and 100. This is not an INI flag.
All units have a Bravery= flag, between 0.0 and 1.0, defaults to 0.
Warheads have a Morale.Damage= flag that dictates how many Morale points to drain from the targets hit (default 0, can be negative to restore Morale).
Morale points drained from a target = Morale.Damage * (1.0-Bravery)
Unaffected by Verses/Prone/etc but should be affected by CellSpread and PercentAtMax.

[General] ;for morale events that are not related to Morale.Damage warheads
Morale.CellSpread=10 ;the CellSpread to use to find units that will be affected by another unit dying (-1 = infinite range, 0 = disable non-weapon morale events)
Morale.EnemyDeath=10 ;morale points gained (before Bravery modifier) when an enemy dies within Morale.CellSpread
Morale.FriendDeath=-20 ;morale points gained (before Bravery modifier) when a friend dies within Morale.CellSpread
Morale.NeutralDeath=-10 ;do we need this? how to distinguish between NeutralPassive and NeutralHostile? I'm thinking civilian casualties here
Morale.MyKillMult=3.0 ;multiplier to above morale gains if the unit gaining morale was the person who did the killing
Morale.PanicThreshold=50 ;Morale below which a unit has a chance to panic/berserk (0% chance at 50, 100% chance at 0)
Morale.BerserkChance=35% ;chance that a panicking unit will go berserk instead of just panic
Morale.PanicDuration=150 ;number of frames that a panicking/berserking unit will be panicked/berserk for

Bravery also needs to affect the death events - if a friendly unit dies with high Bravery then they should be a bigger loss to Morale (I'm thinking that a Tank loss will be more upsetting and a Building loss could be terrifying or unimportant, depending on the modder's wishes)
So a dying unit will actually give you (Morale.WhoeverDeath * (1.0 + Bravery of dying unit) * (1.0 - Bravery of surviving unit)

The emerging survivors of a destroyed building should be affected by that building's destruction.

Also add:
Bravery boost veteran ability
Bravery boost crate
Morale restore crate
Optional Morale bar (in purple), like Health bar.