diff --git a/Strategic/Assignments.cpp b/Strategic/Assignments.cpp index b40b87c3..2e02f4e2 100644 --- a/Strategic/Assignments.cpp +++ b/Strategic/Assignments.cpp @@ -125,7 +125,7 @@ enum{ MOVEITEM_MENU_1 = 0, MOVEITEM_MENU_2, MOVEITEM_MENU_3, - MOVEITEM_MENU_4, // WANNE: Allow up to 6 vehicles + MOVEITEM_MENU_4, MOVEITEM_MENU_5, MOVEITEM_MENU_6, MOVEITEM_MENU_7, diff --git a/Strategic/Queen Command.cpp b/Strategic/Queen Command.cpp index 57d4ef0d..ba680f3f 100644 --- a/Strategic/Queen Command.cpp +++ b/Strategic/Queen Command.cpp @@ -2255,11 +2255,18 @@ void EnemyCapturesPlayerSoldier( SOLDIERTYPE *pSoldier ) } // adjust poison points - INT8 lifechanged = oldlife - pSoldier->stats.bLife; + INT8 lifechanged = pSoldier->stats.bLife - oldlife; if ( lifechanged < 0 ) - pSoldier->bPoisonLife = max(0, pSoldier->bPoisonLife - lifechanged); + { + // add a bit of poisoning... + pSoldier->bPoisonSum = min(pSoldier->bPoisonSum + 10, pSoldier->stats.bLifeMax); + + pSoldier->bPoisonLife = min(pSoldier->bPoisonSum, pSoldier->stats.bLife); + } else if ( lifechanged > 0) - pSoldier->bPoisonLife = max(pSoldier->bPoisonSum, pSoldier->bPoisonLife + lifechanged); + { + pSoldier->bPoisonLife = min(pSoldier->bPoisonSum, pSoldier->stats.bLife); + } // SANDRO - make the lost life insta-healable pSoldier->iHealableInjury = ((pSoldier->stats.bLifeMax - pSoldier->stats.bLife) * 100); diff --git a/Tactical/Soldier Control.cpp b/Tactical/Soldier Control.cpp index 2ba44cf9..5e96ecd4 100644 --- a/Tactical/Soldier Control.cpp +++ b/Tactical/Soldier Control.cpp @@ -16888,6 +16888,11 @@ void SOLDIERTYPE::SoldierPropertyUpkeep() if ( HasBackgroundFlag( BACKGROUND_EXP_UNDERGROUND ) && this->bSectorZ ) ++bExtraExpLevel; + + // Flugente: as pows received faulty poison values, we apply a very simple fix: + // remove in a few revisions - the code has already been fixed, so this won't be necessary anymore soon^^ + this->bPoisonLife = min(this->bPoisonLife, this->bPoisonSum ); + this->bPoisonBleeding = min(this->bPoisonBleeding, this->bBleeding); } INT32 CheckBleeding( SOLDIERTYPE *pSoldier )