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
+1 -1
View File
@@ -1393,7 +1393,7 @@ UINT8 MoveAllInHelicopterToFootMovementGroup( INT8 bNewSquad )
}
// Flugente: we are leaving the helicopter and instantly deploy into combat - this must be an airdrop
pSoldier->bSoldierFlagMask |= SOLDIER_AIRDROP;
pSoldier->bSoldierFlagMask |= (SOLDIER_AIRDROP_TURN|SOLDIER_AIRDROP);
}
}
+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;
+3 -3
View File
@@ -374,13 +374,13 @@ enum
#define SOLDIER_REDOFLASHLIGHT 0x00008000 //32768 // this flag signifies that we somehow interacted with the items in our hands. Thus we have to possible redo lighting from flashlights
#define SOLDIER_LIGHT_OWNER 0x00010000 //65536 // we 'own' at least one light source (via flashlights)
#define SOLDIER_AIRDROP_BONUS 0x00020000 //131072 // backgrounds: special AP bonus during the first turn of an airdrop
#define SOLDIER_AIRDROP_TURN 0x00020000 //131072 // we are entering a sector via airdrop this turn
#define SOLDIER_ASSAULT_BONUS 0x00040000 //262144 // backgrounds: our first turn in an assault
#define SOLDIER_RADIO_OPERATOR_LISTENING 0x00080000 //524288 // radio operator is listening with his set
#define SOLDIER_RADIO_OPERATOR_JAMMING 0x00100000 //1048576 // radio operator is jamming frequencies
#define SOLDIER_RADIO_OPERATOR_SCANNING 0x00200000 //2097152 // radio operator is scanning for jammers
#define SOLDIER_AIRDROP 0x00400000 //4194304 // soldier is entering the sector via airdrop from a helicopter
#define SOLDIER_AIRDROP 0x00400000 //4194304 // soldier is entering the sector via airdrop from a helicopter. Sligthly different from SOLDIER_AIRDROP_TURN
/*#define PLAYER_NET_4_LVL_2 0x00800000 //8388608
#define PLAYER_NET_1_LVL_3 0x01000000 //16777216
@@ -535,7 +535,7 @@ enum
//Flugente skills from traits and other sources
enum{
// psyker skills
// first skill
SKILLS_FIRST = 0,
// radio operator
-10
View File
@@ -1935,16 +1935,6 @@ INT8 CalcInterruptDuelPts( SOLDIERTYPE * pSoldier, UINT8 ubOpponentID, BOOLEAN f
}
}
// Flugente: drugs can alter our perception
if ( pSoldier->drugs.bDrugEffect[ DRUG_TYPE_PERCEPTION ] )
{
iPoints += 1;
}
else if ( pSoldier->drugs.bDrugSideEffect[ DRUG_TYPE_PERCEPTION ] )
{
iPoints -= 1;
}
// Flugente: interrupt modifier from special stats
iPoints += pSoldier->GetInterruptModifier( ubDistance );