From 06be86a4715547ee5ee5665e1f4918e0b24d3bbb Mon Sep 17 00:00:00 2001 From: Flugente Date: Tue, 5 Jul 2016 17:03:30 +0000 Subject: [PATCH] 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 --- Strategic/Assignments.cpp | 16 ++++++---------- Strategic/Player Command.cpp | 3 +++ 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/Strategic/Assignments.cpp b/Strategic/Assignments.cpp index abca4d19..40192fd3 100644 --- a/Strategic/Assignments.cpp +++ b/Strategic/Assignments.cpp @@ -3257,33 +3257,29 @@ FLOAT GetBestSAMOperatorCTH_Player( INT16 sSectorX, INT16 sSectorY, INT16 sSecto 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 ) return 0; - val = 3 * EffectiveExpLevel( pSoldier ) + EffectiveLeadership( pSoldier ); + INT16 val = 3 * EffectiveExpLevel( pSoldier ) + EffectiveLeadership( pSoldier ); if (gGameOptions.fNewTraitSystem) { val += 25 * NUM_SKILL_TRAITS( pSoldier, TEACHING_NT ); + + val += 10 * NUM_SKILL_TRAITS( pSoldier, DEMOLITIONS_NT ); } else { val += 25 * NUM_SKILL_TRAITS( pSoldier, TEACHING_OT ); } - // -5% for Aggressive people if ( DoesMercHavePersonality( pSoldier, CHAR_TRAIT_AGGRESSIVE ) ) - { val -= 5; - } - // +5% for Phlegmatic people else if ( DoesMercHavePersonality( pSoldier, CHAR_TRAIT_PHLEGMATIC ) ) - { val += 5; - } + + if ( DoesMercHaveDisability( pSoldier, CLAUSTROPHOBIC ) ) + val -= 5; // adjust for fatigue if ( val > 0 ) diff --git a/Strategic/Player Command.cpp b/Strategic/Player Command.cpp index 51cd1fa9..af34caa9 100644 --- a/Strategic/Player Command.cpp +++ b/Strategic/Player Command.cpp @@ -506,6 +506,9 @@ BOOLEAN SetThisSectorAsEnemyControlled( INT16 sMapX, INT16 sMapY, INT8 bMapZ, BO 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 NotifyPlayerWhenEnemyTakesControlOfImportantSector( sMapX, sMapY, 0, fContested ); }