mirror of
https://github.com/1dot13/source.git
synced 2026-09-02 14:36:06 +02:00
- Adjustment: Now it is possible for merc to sleep only 3 hours (instead of 6) (by Buggler)
o e.g: Razor should sleep only 3 hours git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@6357 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
+13
-10
@@ -4385,7 +4385,7 @@ void RestCharacter( SOLDIERTYPE *pSoldier )
|
|||||||
INT8 bDivisor = 0;
|
INT8 bDivisor = 0;
|
||||||
|
|
||||||
// Determine how many hours a day this merc must sleep. Normally this would range between 6 and 12 hours.
|
// Determine how many hours a day this merc must sleep. Normally this would range between 6 and 12 hours.
|
||||||
// Injuries and/or martial arts trait can change the limits to between 4 and 18 hours a day.
|
// Injuries and/or martial arts trait can change the limits to between 3 and 18 hours a day.
|
||||||
bDivisor = CalcSoldierNeedForSleep( pSoldier );
|
bDivisor = CalcSoldierNeedForSleep( pSoldier );
|
||||||
|
|
||||||
// HEADROCK HAM 3.6:
|
// HEADROCK HAM 3.6:
|
||||||
@@ -4413,14 +4413,14 @@ void RestCharacter( SOLDIERTYPE *pSoldier )
|
|||||||
|
|
||||||
|
|
||||||
// Re-enforce limits
|
// Re-enforce limits
|
||||||
bDivisor = __min(18, __max(4, bDivisor));
|
bDivisor = __min(18, __max(3, bDivisor));
|
||||||
|
|
||||||
bMaxBreathRegain = 50 / bDivisor;
|
bMaxBreathRegain = 50 / bDivisor;
|
||||||
|
|
||||||
// Limit so that characters can't regain faster than 4 hours, ever
|
// Limit so that characters can't regain faster than 3 hours, ever
|
||||||
if (bMaxBreathRegain > 12)
|
if (bMaxBreathRegain > 17)
|
||||||
{
|
{
|
||||||
bMaxBreathRegain = 12;
|
bMaxBreathRegain = 17;
|
||||||
}
|
}
|
||||||
|
|
||||||
// if breath max is below the "really tired" threshold
|
// if breath max is below the "really tired" threshold
|
||||||
@@ -14188,10 +14188,10 @@ UINT8 CalcSoldierNeedForSleep( SOLDIERTYPE *pSoldier )
|
|||||||
ubNeedForSleep = 12;
|
ubNeedForSleep = 12;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Enforce a minimum of 6 hours, before night/day considerations.
|
// Enforce a minimum of 3 hours, before night/day considerations.
|
||||||
if ( ubNeedForSleep < 6 )
|
if ( ubNeedForSleep < 3 )
|
||||||
{
|
{
|
||||||
ubNeedForSleep = 6;
|
ubNeedForSleep = 3;
|
||||||
}
|
}
|
||||||
// HEADROCK HAM 3.5: WTF! This calculation is NOT correct!
|
// HEADROCK HAM 3.5: WTF! This calculation is NOT correct!
|
||||||
//ubPercentHealth = pSoldier->stats.bLife / pSoldier->stats.bLifeMax;
|
//ubPercentHealth = pSoldier->stats.bLife / pSoldier->stats.bLifeMax;
|
||||||
@@ -14228,14 +14228,17 @@ UINT8 CalcSoldierNeedForSleep( SOLDIERTYPE *pSoldier )
|
|||||||
if (HAS_SKILL_TRAIT( pSoldier, NIGHT_OPS_NT ))
|
if (HAS_SKILL_TRAIT( pSoldier, NIGHT_OPS_NT ))
|
||||||
ubNeedForSleep -= gSkillTraitValues.ubNONeedForSleepReduction;
|
ubNeedForSleep -= gSkillTraitValues.ubNONeedForSleepReduction;
|
||||||
|
|
||||||
if ( ubNeedForSleep < 4 )
|
if ( ubNeedForSleep < 3 )
|
||||||
ubNeedForSleep = 4;
|
ubNeedForSleep = 3;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// HEADROCK HAM 3.6: This is now split and applied depending on whether the merc is resting or working.
|
// HEADROCK HAM 3.6: This is now split and applied depending on whether the merc is resting or working.
|
||||||
//ubNeedForSleep -= NUM_SKILL_TRAITS( pSoldier, NIGHTOPS );
|
//ubNeedForSleep -= NUM_SKILL_TRAITS( pSoldier, NIGHTOPS );
|
||||||
ubNeedForSleep -= NUM_SKILL_TRAITS( pSoldier, MARTIALARTS_OT );
|
ubNeedForSleep -= NUM_SKILL_TRAITS( pSoldier, MARTIALARTS_OT );
|
||||||
|
|
||||||
|
if ( ubNeedForSleep < 3 )
|
||||||
|
ubNeedForSleep = 3;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Flugente: ubNeedForSleep can now be influenced by our food situation
|
// Flugente: ubNeedForSleep can now be influenced by our food situation
|
||||||
|
|||||||
Reference in New Issue
Block a user