mercs entering combat via air who do not have the 'airdrop' background receive a penalty on their interrupt level

git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@6651 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
Flugente
2013-11-25 19:43:07 +00:00
parent d1e68b5216
commit 3e70a9d6dc
4 changed files with 16 additions and 16 deletions
+12 -2
View File
@@ -16896,7 +16896,7 @@ INT16 SOLDIERTYPE::GetAPBonus()
{
INT16 bonus = 0;
if ( this->bSoldierFlagMask & SOLDIER_AIRDROP_BONUS )
if ( this->bSoldierFlagMask & SOLDIER_AIRDROP_TURN )
bonus += this->GetBackgroundValue(BG_AIRDROP);
if ( this->bSoldierFlagMask & SOLDIER_ASSAULT_BONUS )
@@ -16975,9 +16975,19 @@ INT16 SOLDIERTYPE::GetInterruptModifier( UINT8 usDistance )
{
INT16 bonus = 0;
// drugs can alter our perception
if ( this->drugs.bDrugEffect[ DRUG_TYPE_PERCEPTION ] )
bonus += 2;
else if ( this->drugs.bDrugSideEffect[ DRUG_TYPE_PERCEPTION ] )
bonus -= 2;
// if we are listening on our radio, our mind will be somewhere else... we will be less focused
if ( this->IsRadioListening() )
bonus -= 3;
// if we are airdropping and do not have the 'airdrop' background, we receive a substantial malus to our interrupt level. Roping down takes a lot of attention
if ( this->bSoldierFlagMask & SOLDIER_AIRDROP_TURN && (this->GetBackgroundValue(BG_AIRDROP) == 0) )
bonus -= 8;
return bonus;
}
@@ -16985,7 +16995,7 @@ INT16 SOLDIERTYPE::GetInterruptModifier( UINT8 usDistance )
void SOLDIERTYPE::SoldierPropertyUpkeep()
{
// these flags are only used for the first turn, and thus always removed
this->bSoldierFlagMask &= ~(SOLDIER_AIRDROP_BONUS|SOLDIER_ASSAULT_BONUS);
this->bSoldierFlagMask &= ~(SOLDIER_AIRDROP_TURN|SOLDIER_ASSAULT_BONUS);
if ( HasBackgroundFlag( BACKGROUND_EXP_UNDERGROUND ) && this->bSectorZ )
++bExtraExpLevel;