Morale changes for AI soldiers:

- GetMoraleModifier: use bMorale for both player and AI.
- CalcSuppressionTolerance: use morale as a base for tolerance for AI soldiers.
- HandleSuppressionFire: morale loss for AI soldiers.
- EVENT_BeginMercTurn: increase morale for AI soldiers.
- TacticalCreateSoldier: Set morale = 60 + 2 * bExpLevel + Random(20) when creating AI soldier.

NEW_SUPPRESSION_CODE: UseGun, UseGunNCTH: reduce shock when firing gun.
AI_NEW_MORALE: limit AI morale depending on morale and shock level.

git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@9181 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
Sevenfm
2021-10-15 05:52:09 +00:00
parent 7a7f554908
commit 7978ad77f3
6 changed files with 98 additions and 32 deletions
+14 -2
View File
@@ -170,7 +170,19 @@ INT8 GetMoraleModifier( SOLDIERTYPE * pSoldier )
{
INT8 morale = 0;
if (pSoldier->flags.uiStatusFlags & SOLDIER_PC)
// sevenfm: use bMorale for both player and AI
if (pSoldier->aiData.bMorale > 50)
{
// give +1 at 55, +3 at 65, up to +5 at 95 and above
morale = (pSoldier->aiData.bMorale - 45) / 10;
}
else
{
// give penalties down to -20 at 0 (-2 at 45, -4 by 40...)
morale = (pSoldier->aiData.bMorale - 50) * 2 / 5;
}
/*if (pSoldier->flags.uiStatusFlags & SOLDIER_PC)
{
if (pSoldier->aiData.bMorale > 50)
{
@@ -199,7 +211,7 @@ INT8 GetMoraleModifier( SOLDIERTYPE * pSoldier )
default:
morale = 0;
}
}
}*/
// Flugente: morale modifiers
morale = max( morale, morale * pSoldier->GetMoraleModifier( ) );