mirror of
https://github.com/1dot13/source.git
synced 2026-07-29 13:52:17 +02:00
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:
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 );
|
||||
|
||||
|
||||
Reference in New Issue
Block a user