mirror of
https://github.com/1dot13/source.git
synced 2026-09-16 14:47: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
|
// limit base tolerance to 75% when having max morale and experience level
|
||||||
// calculate tolerance as percent of max tolerance from INI
|
// 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
|
else
|
||||||
{
|
{
|
||||||
@@ -10926,30 +10926,29 @@ INT8 CheckStatusNearbyFriendliesSimple(SOLDIERTYPE *pSoldier)
|
|||||||
{
|
{
|
||||||
sDistance = PythSpacesAway(pSoldier->sGridNo, pFriend->sGridNo);
|
sDistance = PythSpacesAway(pSoldier->sGridNo, pFriend->sGridNo);
|
||||||
|
|
||||||
// modifier depends on distance
|
iModifier = 1.0f;
|
||||||
iModifier = 1.0f * (FLOAT)sMinDistance / (FLOAT)max(sMinDistance, sDistance);
|
|
||||||
|
|
||||||
if (pFriend->stats.bLife >= OKLIFE)
|
if (pFriend->stats.bLife < OKLIFE)
|
||||||
{
|
|
||||||
// suppressed, half bonus
|
|
||||||
if(pFriend->IsCowering() || pFriend->IsUnconscious())
|
|
||||||
{
|
|
||||||
iModifier = iModifier / 2;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
{
|
||||||
// dying, negative effect
|
// 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;
|
iFriendBonus += iModifier;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Add no more than five points for nearby friends.
|
// Add no more than five points for nearby friends.
|
||||||
iFriendBonus = min(iFriendBonus, 3.0f);
|
iFriendBonus = min(iFriendBonus, 5.0f);
|
||||||
iFriendBonus = max(iFriendBonus, -3.0f);
|
iFriendBonus = max(iFriendBonus, -5.0f);
|
||||||
|
|
||||||
return (INT8)iFriendBonus;
|
return (INT8)iFriendBonus;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user