New background property: if <croucheddefense> is set, enemy CTH is modified if they fire on us while we are crouched against thick cover (size >= 2) in the direction of the shot.

Backgrounds.xml tag was added in GameDir r2267.

git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@7933 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
Flugente
2015-07-25 12:49:37 +00:00
parent d682b28a31
commit 6aa4e1e6c6
15 changed files with 98 additions and 9 deletions
+18
View File
@@ -7255,6 +7255,15 @@ UINT32 CalcChanceToHitGun(SOLDIERTYPE *pSoldier, INT32 sGridNo, INT16 ubAimTime,
}
}
// Flugente: backgrounds
if ( pTarget && pTarget->GetBackgroundValue( BG_CROUCHEDDEFENSE ) )
{
if ( pTarget->IsCrouchedAgainstCoverFromDir( GetDirectionFromGridNo( pSoldier->sGridNo, pTarget ) ) )
{
iChance += pTarget->GetBackgroundValue( BG_CROUCHEDDEFENSE );
}
}
// Flugente: check for scope mode
if ( Item[(&(pSoldier->inv[pSoldier->ubAttackingHand]))->usItem].usItemClass == IC_GUN && !pSoldier->IsValidAlternativeFireMode( ubAimTime, sGridNo ) )
{
@@ -13023,6 +13032,15 @@ FLOAT CalcNewChanceToHitBaseTargetBonus(SOLDIERTYPE *pSoldier, SOLDIERTYPE *pTar
// Target has high Agility or Experience and is therefore harder to hit
FLOAT fTempPenalty = (FLOAT)__max((pTarget->stats.bExpLevel*10), pTarget->stats.bAgility);
fBaseModifier += (fTempPenalty * gGameCTHConstants.BASE_AGILE_TARGET) / 100;
// Flugente: backgrounds
if ( pTarget->GetBackgroundValue( BG_CROUCHEDDEFENSE ) )
{
if ( pTarget->IsCrouchedAgainstCoverFromDir( GetDirectionFromGridNo( pSoldier->sGridNo, pTarget ) ) )
{
fBaseModifier += pTarget->GetBackgroundValue( BG_CROUCHEDDEFENSE );
}
}
}
// INVIS TARGET