mirror of
https://github.com/1dot13/source.git
synced 2026-07-22 13:40:22 +02:00
New feature: bear traps are mechanical traps that function like bombs, cause no explosion, can be reused, deal significant damage to legs and pin down the target.
GameDir >= r2338 is recommended. For more info, see http://thepit.ja-galaxy-forum.com/index.php?t=msg&goto=346624&#msg_346624 git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@8287 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
@@ -445,6 +445,14 @@ INT32 SkillCheck( SOLDIERTYPE * pSoldier, INT8 bReason, INT8 bChanceMod )
|
||||
iSkill = (iSkill + 100 * (iSkill / 25) ) / (iSkill / 25 + 1);
|
||||
break;
|
||||
|
||||
case PLANTING_MECHANICAL_BOMB_CHECK:
|
||||
iSkill = EffectiveMechanical( pSoldier ) * 3;
|
||||
iSkill += EffectiveStrength(pSoldier, FALSE) * 5;
|
||||
iSkill += EffectiveDexterity( pSoldier, FALSE ) * 1.5f;
|
||||
iSkill += EffectiveExpLevel( pSoldier ) * 5;
|
||||
iSkill = iSkill / 10; // bring the value down to a percentage
|
||||
break;
|
||||
|
||||
case DISARM_TRAP_CHECK:
|
||||
|
||||
fForceDamnSound = TRUE;
|
||||
@@ -565,6 +573,44 @@ INT32 SkillCheck( SOLDIERTYPE * pSoldier, INT8 bReason, INT8 bChanceMod )
|
||||
}
|
||||
break;
|
||||
|
||||
case DISARM_MECHANICAL_TRAP_CHECK:
|
||||
fForceDamnSound = TRUE;
|
||||
|
||||
// SANDRO - electronic traps are based more on mechanical skill
|
||||
if ( gGameOptions.fNewTraitSystem)
|
||||
{
|
||||
// It is impossible without both skills
|
||||
if ( (EffectiveMechanical( pSoldier ) <= 0) || (EffectiveStrength( pSoldier, FALSE ) <= 0) )
|
||||
{
|
||||
iSkill = 0;
|
||||
break;
|
||||
}
|
||||
else
|
||||
{
|
||||
iSkill = EffectiveMechanical( pSoldier ) * 3;
|
||||
iSkill += EffectiveStrength( pSoldier, FALSE ) * 5;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
iSkill = __max( EffectiveMechanical( pSoldier ) , EffectiveStrength( pSoldier, FALSE ) ) * 7;
|
||||
if ( iSkill == 0 )
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
iSkill += EffectiveDexterity( pSoldier, FALSE ) * 1.5f;
|
||||
iSkill += EffectiveExpLevel( pSoldier ) * 5;
|
||||
iSkill = iSkill / 10; // bring the value down to a percentage
|
||||
|
||||
//JMich_SkillModifiers: Adding a Disarm Trap bonus
|
||||
bSlot = FindDisarmKit( pSoldier);
|
||||
if (bSlot != NO_SLOT)
|
||||
{
|
||||
iSkill += Item[pSoldier->inv[bSlot].usItem].DisarmModifier * pSoldier->inv[bSlot][0]->data.objectStatus / 100;
|
||||
}
|
||||
break;
|
||||
|
||||
case OPEN_WITH_CROWBAR:
|
||||
// Add for crowbar...
|
||||
//JMich_SkillModifiers: Changing the +20 to the crowbar's bonus.
|
||||
@@ -708,8 +754,10 @@ INT32 SkillCheck( SOLDIERTYPE * pSoldier, INT8 bReason, INT8 bChanceMod )
|
||||
case ELECTRONIC_LOCKPICKING_CHECK:
|
||||
case PLANTING_BOMB_CHECK:
|
||||
case PLANTING_REMOTE_BOMB_CHECK:
|
||||
case PLANTING_MECHANICAL_BOMB_CHECK:
|
||||
case DISARM_TRAP_CHECK:
|
||||
case DISARM_ELECTRONIC_TRAP_CHECK:
|
||||
case DISARM_MECHANICAL_TRAP_CHECK:
|
||||
case ATTACHING_SPECIAL_ITEM_CHECK:
|
||||
case ATTACHING_SPECIAL_ELECTRONIC_ITEM_CHECK:
|
||||
iChance -= 10;
|
||||
@@ -725,8 +773,10 @@ INT32 SkillCheck( SOLDIERTYPE * pSoldier, INT8 bReason, INT8 bChanceMod )
|
||||
case ELECTRONIC_LOCKPICKING_CHECK:
|
||||
case PLANTING_BOMB_CHECK:
|
||||
case PLANTING_REMOTE_BOMB_CHECK:
|
||||
case PLANTING_MECHANICAL_BOMB_CHECK:
|
||||
case DISARM_TRAP_CHECK:
|
||||
case DISARM_ELECTRONIC_TRAP_CHECK:
|
||||
case DISARM_MECHANICAL_TRAP_CHECK:
|
||||
case ATTACHING_SPECIAL_ITEM_CHECK:
|
||||
case ATTACHING_SPECIAL_ELECTRONIC_ITEM_CHECK:
|
||||
iChance += 5;
|
||||
@@ -758,6 +808,7 @@ INT32 SkillCheck( SOLDIERTYPE * pSoldier, INT8 bReason, INT8 bChanceMod )
|
||||
case ELECTRONIC_LOCKPICKING_CHECK:
|
||||
case DISARM_TRAP_CHECK:
|
||||
case DISARM_ELECTRONIC_TRAP_CHECK:
|
||||
case DISARM_MECHANICAL_TRAP_CHECK:
|
||||
case OPEN_WITH_CROWBAR:
|
||||
case SMASH_DOOR_CHECK:
|
||||
case ATTACHING_SPECIAL_ITEM_CHECK:
|
||||
|
||||
Reference in New Issue
Block a user