mirror of
https://github.com/1dot13/source.git
synced 2026-09-09 14:46:05 +02:00
- added missing merc backgrounds calculation for BG_PERC_CTH_MAX to the reworked NCTH calculation
- changed skill handling for disarming bomb traps to rely more on explosives than mechanical in new skill system(old ratio 5:2, new 6:1). Mercs were blowing themselves up to often even when disarming own bombs (big bonus). In the old skill system this ratio is 7:0. - changed skill handling luck factor to make high skilled mercs rely less on luck and more on skill git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@6361 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
+13
-3
@@ -436,8 +436,13 @@ INT32 SkillCheck( SOLDIERTYPE * pSoldier, INT8 bReason, INT8 bChanceMod )
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
iSkill = EffectiveExplosive( pSoldier ) * 5;
|
// The part that Mechanical plays is a bit too high. A merc with 90+ explosives will still fail
|
||||||
iSkill += EffectiveMechanical( pSoldier ) * 2;
|
// a lot when his Mechanical is not in the 90+ as well. Even when disarming own mines which provides a bonus
|
||||||
|
// he will fail a lot which doesn't make sense. Let's change this from 5/2 to 6/1.
|
||||||
|
//iSkill = EffectiveExplosive( pSoldier ) * 5;
|
||||||
|
//iSkill += EffectiveMechanical( pSoldier ) * 2;
|
||||||
|
iSkill = EffectiveExplosive( pSoldier ) * 6;
|
||||||
|
iSkill += EffectiveMechanical( pSoldier );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -755,7 +760,12 @@ INT32 SkillCheck( SOLDIERTYPE * pSoldier, INT8 bReason, INT8 bChanceMod )
|
|||||||
iChance = 0;
|
iChance = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
iRoll = PreRandom( 100 );
|
// silversurfer: changed this a little. I think this is supposed to represent "luck".
|
||||||
|
// A soldier that has low skills, attributes and experience should have to rely more on luck
|
||||||
|
// than someone that knows exactly what he is doing. This will produce more stable results
|
||||||
|
// for those that are good at their job.
|
||||||
|
// iRoll = PreRandom( 100 );
|
||||||
|
iRoll = PreRandom( UINT32( 115 - iChance / 3 ) );
|
||||||
iMadeItBy = iChance - iRoll;
|
iMadeItBy = iChance - iRoll;
|
||||||
if (iMadeItBy < 0)
|
if (iMadeItBy < 0)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -5261,7 +5261,8 @@ if (gGameExternalOptions.fUseNewCTHCalculation)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Impose global limits.
|
// Impose global limits.
|
||||||
fFinalChance = __min(fFinalChance, gGameExternalOptions.ubMaximumCTH);
|
// Flugente: backgrounds
|
||||||
|
fFinalChance = __min(fFinalChance, min(100, gGameExternalOptions.ubMaximumCTH + (UINT8)(pSoldier->GetBackgroundValue(BG_PERC_CTH_MAX))) );
|
||||||
fFinalChance = __max(fFinalChance, gGameExternalOptions.ubMinimumCTH);
|
fFinalChance = __max(fFinalChance, gGameExternalOptions.ubMinimumCTH);
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user