mirror of
https://github.com/1dot13/source.git
synced 2026-09-02 14:36:06 +02:00
New Trait: SURVIVAL (new minor trait) gets the non-weapon parts of the ranger trait.
Requires GameDir >= r2213. git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@7756 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
@@ -5261,9 +5261,9 @@ void FatigueCharacter( SOLDIERTYPE *pSoldier )
|
||||
if( gGameOptions.fNewTraitSystem )
|
||||
{
|
||||
// bonus for ranger travelling between sectors
|
||||
if ( pSoldier->flags.fBetweenSectors && HAS_SKILL_TRAIT( pSoldier, RANGER_NT ) )
|
||||
if ( pSoldier->flags.fBetweenSectors && HAS_SKILL_TRAIT( pSoldier, SURVIVAL_NT ) )
|
||||
{
|
||||
bMaxBreathLoss = (bMaxBreathLoss * (100 - gSkillTraitValues.ubRABreathForTravellingReduction * NUM_SKILL_TRAITS( pSoldier, RANGER_NT ) ) / 100);
|
||||
bMaxBreathLoss = (bMaxBreathLoss * (100 - gSkillTraitValues.ubSVBreathForTravellingReduction * NUM_SKILL_TRAITS( pSoldier, SURVIVAL_NT )) / 100);
|
||||
}
|
||||
// primitive people get exhausted slower
|
||||
if ( gMercProfiles[pSoldier->ubProfile].bCharacterTrait == CHAR_TRAIT_PRIMITIVE )
|
||||
|
||||
@@ -1280,10 +1280,9 @@ void HourlyCamouflageUpdate( void )
|
||||
// first limit camo to valid values
|
||||
pSoldier->bCamo = __min( gGameExternalOptions.bCamoKitArea, pSoldier->bCamo );
|
||||
|
||||
if (HAS_SKILL_TRAIT( pSoldier, RANGER_NT ))
|
||||
if ( HAS_SKILL_TRAIT( pSoldier, SURVIVAL_NT ) )
|
||||
{
|
||||
pSoldier->bCamo -= (Chance(__max(0, 100 - gSkillTraitValues.ubRACamoWornountSpeedReduction * NUM_SKILL_TRAITS( pSoldier, RANGER_NT ))) ? 1 : 0 );
|
||||
// pSoldier->bCamo -= (Chance(__max(0, 100 - gSkillTraitValues.ubRACamoWornountSpeedReduction * NUM_SKILL_TRAITS( pSoldier, RANGER_NT ))) ? 1 : 0 );
|
||||
pSoldier->bCamo -= (Chance( __max( 0, 100 - gSkillTraitValues.ubSVCamoWornountSpeedReduction * NUM_SKILL_TRAITS( pSoldier, SURVIVAL_NT ) ) ) ? 1 : 0);
|
||||
}
|
||||
else
|
||||
pSoldier->bCamo -= 1; // 2
|
||||
@@ -1292,7 +1291,6 @@ void HourlyCamouflageUpdate( void )
|
||||
{
|
||||
pSoldier->bCamo = 0;
|
||||
camoWoreOff = TRUE;
|
||||
// ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, Message[STR_CAMMO_WORN_OFF], pSoldier->name );
|
||||
ScreenMsg( FONT_MCOLOR_LTYELLOW, MSG_INTERFACE, Message[STR_JUNGLE_WORN_OFF], pSoldier->name );
|
||||
|
||||
if (gGameExternalOptions.fShowCamouflageFaces == TRUE )
|
||||
@@ -1309,10 +1307,9 @@ void HourlyCamouflageUpdate( void )
|
||||
// first limit camo to valid values
|
||||
pSoldier->urbanCamo = __min( gGameExternalOptions.bCamoKitArea, pSoldier->urbanCamo );
|
||||
|
||||
if (HAS_SKILL_TRAIT( pSoldier, RANGER_NT ))
|
||||
if ( HAS_SKILL_TRAIT( pSoldier, SURVIVAL_NT ) )
|
||||
{
|
||||
pSoldier->urbanCamo -= (Chance(__max(0, 100 - gSkillTraitValues.ubRACamoWornountSpeedReduction * NUM_SKILL_TRAITS( pSoldier, RANGER_NT ))) ? 1 : 0 );
|
||||
// pSoldier->urbanCamo -= (Chance(__max(0, 100 - gSkillTraitValues.ubRACamoWornountSpeedReduction * NUM_SKILL_TRAITS( pSoldier, RANGER_NT ))) ? 1 : 0 );
|
||||
pSoldier->urbanCamo -= (Chance( __max( 0, 100 - gSkillTraitValues.ubSVCamoWornountSpeedReduction * NUM_SKILL_TRAITS( pSoldier, SURVIVAL_NT ) ) ) ? 1 : 0);
|
||||
}
|
||||
else
|
||||
pSoldier->urbanCamo -= 1; // 2
|
||||
@@ -1337,10 +1334,9 @@ void HourlyCamouflageUpdate( void )
|
||||
// first limit camo to valid values
|
||||
pSoldier->desertCamo = __min( gGameExternalOptions.bCamoKitArea, pSoldier->desertCamo );
|
||||
|
||||
if (HAS_SKILL_TRAIT( pSoldier, RANGER_NT ))
|
||||
if ( HAS_SKILL_TRAIT( pSoldier, SURVIVAL_NT ) )
|
||||
{
|
||||
pSoldier->desertCamo -= (Chance(__max(0, 100 - gSkillTraitValues.ubRACamoWornountSpeedReduction * NUM_SKILL_TRAITS( pSoldier, RANGER_NT ))) ? 1 : 0 );
|
||||
// pSoldier->desertCamo -= (Chance(__max(0, 100 - gSkillTraitValues.ubRACamoWornountSpeedReduction * NUM_SKILL_TRAITS( pSoldier, RANGER_NT ))) ? 1 : 0 );
|
||||
pSoldier->desertCamo -= (Chance( __max( 0, 100 - gSkillTraitValues.ubSVCamoWornountSpeedReduction * NUM_SKILL_TRAITS( pSoldier, SURVIVAL_NT ) ) ) ? 1 : 0);
|
||||
}
|
||||
else
|
||||
pSoldier->desertCamo -= 1; // 2
|
||||
@@ -1365,10 +1361,9 @@ void HourlyCamouflageUpdate( void )
|
||||
// first limit camo to valid values
|
||||
pSoldier->snowCamo = __min( gGameExternalOptions.bCamoKitArea, pSoldier->snowCamo );
|
||||
|
||||
if (HAS_SKILL_TRAIT( pSoldier, RANGER_NT ))
|
||||
if ( HAS_SKILL_TRAIT( pSoldier, SURVIVAL_NT ) )
|
||||
{
|
||||
pSoldier->snowCamo -= (Chance(__max(0, 100 - gSkillTraitValues.ubRACamoWornountSpeedReduction * NUM_SKILL_TRAITS( pSoldier, RANGER_NT ))) ? 1 : 0 );
|
||||
// pSoldier->snowCamo -= (Chance(__max(0, 100 - gSkillTraitValues.ubRACamoWornountSpeedReduction * NUM_SKILL_TRAITS( pSoldier, RANGER_NT ))) ? 1 : 0 );
|
||||
pSoldier->snowCamo -= (Chance( __max( 0, 100 - gSkillTraitValues.ubSVCamoWornountSpeedReduction * NUM_SKILL_TRAITS( pSoldier, SURVIVAL_NT ) ) ) ? 1 : 0);
|
||||
}
|
||||
else
|
||||
pSoldier->snowCamo -= 1; // 2
|
||||
|
||||
@@ -3465,7 +3465,7 @@ INT32 GetSectorMvtTimeForGroup( UINT8 ubSector, UINT8 ubDirection, GROUP *pGroup
|
||||
if ( pGroup->usGroupTeam == OUR_TEAM && !fAir && gGameOptions.fNewTraitSystem )
|
||||
{
|
||||
// see if we have any ranger here
|
||||
UINT8 ubRangerHere = 0;
|
||||
UINT8 ubSurvivalistHere = 0;
|
||||
UINT8 ustravelbackground_foot = 0;
|
||||
UINT8 ustravelbackground_car = 0;
|
||||
UINT8 ustravelbackground_air = 0;
|
||||
@@ -3474,8 +3474,8 @@ INT32 GetSectorMvtTimeForGroup( UINT8 ubSector, UINT8 ubDirection, GROUP *pGroup
|
||||
while( curr )
|
||||
{
|
||||
pSoldier = curr->pSoldier;
|
||||
if( HAS_SKILL_TRAIT( pSoldier, RANGER_NT ))
|
||||
ubRangerHere += NUM_SKILL_TRAITS( pSoldier, RANGER_NT );
|
||||
|
||||
ubSurvivalistHere += NUM_SKILL_TRAITS( pSoldier, SURVIVAL_NT );
|
||||
|
||||
// Flugente: backgrounds
|
||||
ustravelbackground_foot = max(ustravelbackground_foot, pSoldier->GetBackgroundValue(BG_TRAVEL_FOOT));
|
||||
@@ -3485,16 +3485,16 @@ INT32 GetSectorMvtTimeForGroup( UINT8 ubSector, UINT8 ubDirection, GROUP *pGroup
|
||||
curr = curr->next;
|
||||
}
|
||||
// yes, we have...
|
||||
if( ubRangerHere || ustravelbackground_foot || ustravelbackground_car || ustravelbackground_air )
|
||||
if ( ubSurvivalistHere || ustravelbackground_foot || ustravelbackground_car || ustravelbackground_air )
|
||||
{
|
||||
// no more than certain number of simultaneous bonuses
|
||||
ubRangerHere = min( gSkillTraitValues.ubRAMaxBonusesToTravelSpeed, ubRangerHere );
|
||||
ubSurvivalistHere = min( gSkillTraitValues.ubSVMaxBonusesToTravelSpeed, ubSurvivalistHere );
|
||||
|
||||
// on foot, the bonus should be higher
|
||||
if( fFoot )
|
||||
{
|
||||
// however, we cannot be quicker than the helicopter
|
||||
iBestTraverseTime = max( 10, (iBestTraverseTime * (100 - ( ubRangerHere * gSkillTraitValues.ubRAGroupTimeSpentForTravellingFoot )) / 100));
|
||||
iBestTraverseTime = max( 10, (iBestTraverseTime * (100 - (ubSurvivalistHere * gSkillTraitValues.ubSVGroupTimeSpentForTravellingFoot)) / 100) );
|
||||
|
||||
iBestTraverseTime = max( 10, (iBestTraverseTime * (100 - ustravelbackground_foot) / 100));
|
||||
}
|
||||
@@ -3502,7 +3502,7 @@ INT32 GetSectorMvtTimeForGroup( UINT8 ubSector, UINT8 ubDirection, GROUP *pGroup
|
||||
else if ( fAir )
|
||||
{
|
||||
// however, we cannot be quicker than the helicopter
|
||||
iBestTraverseTime = max( 10, (iBestTraverseTime * (100 - ( ubRangerHere * gSkillTraitValues.ubRAGroupTimeSpentForTravellingVehicle )) / 100));
|
||||
iBestTraverseTime = max( 10, (iBestTraverseTime * (100 - (ubSurvivalistHere * gSkillTraitValues.ubSVGroupTimeSpentForTravellingVehicle)) / 100) );
|
||||
|
||||
// yes, this background allows us to fly faster :-)
|
||||
iBestTraverseTime = max( 9, (iBestTraverseTime * (100 - ustravelbackground_air) / 100));
|
||||
@@ -3510,7 +3510,7 @@ INT32 GetSectorMvtTimeForGroup( UINT8 ubSector, UINT8 ubDirection, GROUP *pGroup
|
||||
else
|
||||
{
|
||||
// however, we cannot be quicker than the helicopter
|
||||
iBestTraverseTime = max( 10, (iBestTraverseTime * (100 - ( ubRangerHere * gSkillTraitValues.ubRAGroupTimeSpentForTravellingVehicle )) / 100));
|
||||
iBestTraverseTime = max( 10, (iBestTraverseTime * (100 - (ubSurvivalistHere * gSkillTraitValues.ubSVGroupTimeSpentForTravellingVehicle)) / 100) );
|
||||
|
||||
iBestTraverseTime = max( 10, (iBestTraverseTime * (100 - ustravelbackground_car) / 100));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user