- 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:
silversurfer
2013-09-05 09:35:36 +00:00
parent c78568cb2a
commit 5acabf4a82
2 changed files with 16 additions and 5 deletions
+14 -4
View File
@@ -48,7 +48,7 @@ INT16 EffectiveStrength( SOLDIERTYPE *pSoldier, BOOLEAN fTrainer )
{
iEffStrength = 0;
}
iEffStrength = (iEffStrength * (100 + pSoldier->GetBackgroundValue(BG_STRENGTH))) / 100;
// ATE: Make sure at least 2...
@@ -436,8 +436,13 @@ INT32 SkillCheck( SOLDIERTYPE * pSoldier, INT8 bReason, INT8 bChanceMod )
}
else
{
iSkill = EffectiveExplosive( pSoldier ) * 5;
iSkill += EffectiveMechanical( pSoldier ) * 2;
// The part that Mechanical plays is a bit too high. A merc with 90+ explosives will still fail
// 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
@@ -755,7 +760,12 @@ INT32 SkillCheck( SOLDIERTYPE * pSoldier, INT8 bReason, INT8 bChanceMod )
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;
if (iMadeItBy < 0)
{