mirror of
https://github.com/1dot13/source.git
synced 2026-08-05 14:00:23 +02:00
new disabilities:
- 'deaf' reduces hearing ability - 'shortsighted' reduces sight range git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@6049 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
@@ -11272,6 +11272,9 @@ INT16 GetTotalVisionRangeBonus( SOLDIERTYPE * pSoldier, UINT8 bLightLevel )
|
||||
bonus -= 10;
|
||||
}
|
||||
|
||||
// Flugente: add sight range bonus due to disabilities, traits etc. (not equipment)
|
||||
bonus += pSoldier->GetSightRangeBonus();
|
||||
|
||||
// SANDRO - STOMP traits - Scouting bonus for sight range with binoculars and similar
|
||||
if ( gGameOptions.fNewTraitSystem && HAS_SKILL_TRAIT( pSoldier, SCOUTING_NT ) && pSoldier->pathing.bLevel == 0 )
|
||||
{
|
||||
|
||||
@@ -13999,6 +13999,33 @@ INT32 SOLDIERTYPE::GetDamageResistance(BOOLEAN fAutoResolve, BOOLEAN fCalcBreath
|
||||
return( resistance );
|
||||
}
|
||||
|
||||
INT8 SOLDIERTYPE::GetHearingBonus()
|
||||
{
|
||||
INT8 bonus = 0;
|
||||
|
||||
INT8 bSlot = FindHearingAid(this);
|
||||
if ( bSlot != -1 )
|
||||
{
|
||||
// at 81-100% adds +5, at 61-80% adds +4, at 41-60% adds +3, etc.
|
||||
bonus += GetHearingRangeBonus(this); // pSoldier->inv[bSlot][0]->data.objectStatus / 20 + 1;
|
||||
}
|
||||
|
||||
if ( gMercProfiles[ this->ubProfile ].bDisability == DEAF )
|
||||
bonus -= 5;
|
||||
|
||||
return bonus;
|
||||
}
|
||||
|
||||
INT16 SOLDIERTYPE::GetSightRangeBonus()
|
||||
{
|
||||
INT16 bonus = 0;
|
||||
|
||||
if ( gMercProfiles[ this->ubProfile ].bDisability == SHORTSIGHTED )
|
||||
bonus -= 10;
|
||||
|
||||
return bonus;
|
||||
}
|
||||
|
||||
INT16 SOLDIERTYPE::GetSoldierCriticalDamageBonus( void )
|
||||
{
|
||||
INT16 val = 0;
|
||||
|
||||
@@ -1469,6 +1469,8 @@ public:
|
||||
|
||||
// returns damage resistance in percent
|
||||
INT32 GetDamageResistance( BOOLEAN fAutoResolve = FALSE, BOOLEAN fCalcBreathLoss = FALSE);
|
||||
INT8 GetHearingBonus();
|
||||
INT16 GetSightRangeBonus();
|
||||
|
||||
INT16 GetSoldierCriticalDamageBonus( void ); // Flugente: determines critical damage bonus depending on class, skill, etc.
|
||||
|
||||
|
||||
@@ -371,6 +371,10 @@ void RevealRoofsAndItems(SOLDIERTYPE *pSoldier, UINT32 itemsToo, BOOLEAN fShowLo
|
||||
else
|
||||
{
|
||||
range = pSoldier->bViewRange;
|
||||
|
||||
// Flugente: adjust sightrange
|
||||
range = (UINT16)( (range * (100 + pSoldier->GetSightRangeBonus()) ) / 100);
|
||||
|
||||
// balance item viewing range between normal and the limit set by opplist-type functions -- CJC
|
||||
range = (AdjustMaxSightRangeForEnvEffects( pSoldier, LightTrueLevel( pSoldier->sGridNo, pSoldier->pathing.bLevel), range ) + range) / 2;
|
||||
}
|
||||
|
||||
+1
-10
@@ -1539,8 +1539,6 @@ void TurnOffTeamsMuzzleFlashes( UINT8 ubTeam )
|
||||
INT8 DecideHearing( SOLDIERTYPE * pSoldier )
|
||||
{
|
||||
// calculate the hearing value for the merc...
|
||||
|
||||
INT8 bSlot;
|
||||
INT8 bHearing;
|
||||
|
||||
if ( TANK( pSoldier ) )
|
||||
@@ -1571,14 +1569,7 @@ INT8 DecideHearing( SOLDIERTYPE * pSoldier )
|
||||
bHearing += 1 * NUM_SKILL_TRAITS( pSoldier, NIGHTOPS_OT );
|
||||
}
|
||||
|
||||
//bSlot = FindObj( pSoldier, EXTENDEDEAR );
|
||||
//if ( bSlot == HEAD1POS || bSlot == HEAD2POS)
|
||||
bSlot = FindHearingAid(pSoldier);
|
||||
if ( bSlot != -1 )
|
||||
{
|
||||
// at 81-100% adds +5, at 61-80% adds +4, at 41-60% adds +3, etc.
|
||||
bHearing += GetHearingRangeBonus(pSoldier); // pSoldier->inv[bSlot][0]->data.objectStatus / 20 + 1;
|
||||
}
|
||||
bHearing += pSoldier->GetHearingBonus();
|
||||
|
||||
// adjust for dark conditions
|
||||
switch ( ubAmbientLightLevel )
|
||||
|
||||
@@ -216,6 +216,9 @@ typedef enum
|
||||
FEAR_OF_INSECTS,
|
||||
FORGETFUL,
|
||||
PSYCHO,
|
||||
// Flugente: more disabilities
|
||||
DEAF,
|
||||
SHORTSIGHTED,
|
||||
NUM_DISABILITIES
|
||||
} PersonalityTrait;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user