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 ); }