If enemy conquers a sector, remove workers.

git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@8268 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
Flugente
2016-07-05 17:03:30 +00:00
parent 951da7812d
commit 06be86a471
2 changed files with 9 additions and 10 deletions
+6 -10
View File
@@ -3257,33 +3257,29 @@ FLOAT GetBestSAMOperatorCTH_Player( INT16 sSectorX, INT16 sSectorY, INT16 sSecto
INT16 GetTrainWorkerPts(SOLDIERTYPE *pSoldier) INT16 GetTrainWorkerPts(SOLDIERTYPE *pSoldier)
{ {
// this is not an assignment. Simply being in the sector will allow us to be counted as guards
INT16 val = 0;
if ( pSoldier->flags.fMercAsleep ) if ( pSoldier->flags.fMercAsleep )
return 0; return 0;
val = 3 * EffectiveExpLevel( pSoldier ) + EffectiveLeadership( pSoldier ); INT16 val = 3 * EffectiveExpLevel( pSoldier ) + EffectiveLeadership( pSoldier );
if (gGameOptions.fNewTraitSystem) if (gGameOptions.fNewTraitSystem)
{ {
val += 25 * NUM_SKILL_TRAITS( pSoldier, TEACHING_NT ); val += 25 * NUM_SKILL_TRAITS( pSoldier, TEACHING_NT );
val += 10 * NUM_SKILL_TRAITS( pSoldier, DEMOLITIONS_NT );
} }
else else
{ {
val += 25 * NUM_SKILL_TRAITS( pSoldier, TEACHING_OT ); val += 25 * NUM_SKILL_TRAITS( pSoldier, TEACHING_OT );
} }
// -5% for Aggressive people
if ( DoesMercHavePersonality( pSoldier, CHAR_TRAIT_AGGRESSIVE ) ) if ( DoesMercHavePersonality( pSoldier, CHAR_TRAIT_AGGRESSIVE ) )
{
val -= 5; val -= 5;
}
// +5% for Phlegmatic people
else if ( DoesMercHavePersonality( pSoldier, CHAR_TRAIT_PHLEGMATIC ) ) else if ( DoesMercHavePersonality( pSoldier, CHAR_TRAIT_PHLEGMATIC ) )
{
val += 5; val += 5;
}
if ( DoesMercHaveDisability( pSoldier, CLAUSTROPHOBIC ) )
val -= 5;
// adjust for fatigue // adjust for fatigue
if ( val > 0 ) if ( val > 0 )
+3
View File
@@ -506,6 +506,9 @@ BOOLEAN SetThisSectorAsEnemyControlled( INT16 sMapX, INT16 sMapY, INT8 bMapZ, BO
UpdateRefuelSiteAvailability( ); UpdateRefuelSiteAvailability( );
} }
// Flugente: reduce workforce
SectorInfo[SECTOR( sMapX, sMapY )].usWorkers = SectorExternalData[SECTOR( sMapX, sMapY )][0].maxworkers * gGameExternalOptions.dInitialWorkerRate;
// ARM: this must be AFTER all resulting loyalty effects are resolved, or reduced mine income shown won't be accurate // ARM: this must be AFTER all resulting loyalty effects are resolved, or reduced mine income shown won't be accurate
NotifyPlayerWhenEnemyTakesControlOfImportantSector( sMapX, sMapY, 0, fContested ); NotifyPlayerWhenEnemyTakesControlOfImportantSector( sMapX, sMapY, 0, fContested );
} }