mirror of
https://github.com/1dot13/source.git
synced 2026-07-29 13:52:17 +02:00
NEW_SUPPRESSION_CODE:
- increased min base value for suppression tolerance, so merc with low morale/level have higher base tolerance which can be reduced by other factors - NEARBY_FRIENDLIES_AFFECT_TOLERANCE: penalty -0.5 if friend is cowering or unconscious, increased limits to +-5 git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@9183 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
+14
-15
@@ -8753,7 +8753,7 @@ INT8 CalcSuppressionTolerance( SOLDIERTYPE * pSoldier )
|
||||
{
|
||||
// limit base tolerance to 75% when having max morale and experience level
|
||||
// calculate tolerance as percent of max tolerance from INI
|
||||
bTolerance = gGameExternalOptions.ubSuppressionToleranceMax * (pSoldier->aiData.bMorale + 20 * EffectiveExpLevel(pSoldier, TRUE)) / 400;
|
||||
bTolerance = gGameExternalOptions.ubSuppressionToleranceMax * (100 + pSoldier->aiData.bMorale + 10 * EffectiveExpLevel(pSoldier, TRUE)) / 400;
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -10926,30 +10926,29 @@ INT8 CheckStatusNearbyFriendliesSimple(SOLDIERTYPE *pSoldier)
|
||||
{
|
||||
sDistance = PythSpacesAway(pSoldier->sGridNo, pFriend->sGridNo);
|
||||
|
||||
// modifier depends on distance
|
||||
iModifier = 1.0f * (FLOAT)sMinDistance / (FLOAT)max(sMinDistance, sDistance);
|
||||
iModifier = 1.0f;
|
||||
|
||||
if (pFriend->stats.bLife >= OKLIFE)
|
||||
{
|
||||
// suppressed, half bonus
|
||||
if(pFriend->IsCowering() || pFriend->IsUnconscious())
|
||||
{
|
||||
iModifier = iModifier / 2;
|
||||
}
|
||||
}
|
||||
else
|
||||
if (pFriend->stats.bLife < OKLIFE)
|
||||
{
|
||||
// dying, negative effect
|
||||
iModifier = -iModifier;
|
||||
iModifier = -1.0f;
|
||||
}
|
||||
else if (pFriend->IsCowering() || pFriend->IsUnconscious())
|
||||
{
|
||||
// suppressed, negative modifier
|
||||
iModifier = -0.5f;
|
||||
}
|
||||
|
||||
// modifier depends on distance
|
||||
iModifier = iModifier * (FLOAT)sMinDistance / (FLOAT)max(sMinDistance, sDistance);
|
||||
|
||||
iFriendBonus += iModifier;
|
||||
}
|
||||
}
|
||||
|
||||
// Add no more than five points for nearby friends.
|
||||
iFriendBonus = min(iFriendBonus, 3.0f);
|
||||
iFriendBonus = max(iFriendBonus, -3.0f);
|
||||
iFriendBonus = min(iFriendBonus, 5.0f);
|
||||
iFriendBonus = max(iFriendBonus, -5.0f);
|
||||
|
||||
return (INT8)iFriendBonus;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user