diff --git a/Tactical/Soldier Control.cpp b/Tactical/Soldier Control.cpp index d662d22d..1336971f 100644 --- a/Tactical/Soldier Control.cpp +++ b/Tactical/Soldier Control.cpp @@ -12161,7 +12161,8 @@ void SOLDIERTYPE::EVENT_SoldierBeginBladeAttack( INT32 sGridNo, UINT8 ubDirectio } else { - if ( Random( 50 ) > 25 ) + // sevenfm: always use STAB attack for bayonet + if ( Random( 50 ) > 25 || this->bWeaponMode == WM_ATTACHED_BAYONET) { this->EVENT_InitNewSoldierAnim( STAB, 0, FALSE ); } @@ -12394,6 +12395,12 @@ void SOLDIERTYPE::EVENT_SoldierBeginPunchAttack( INT32 sGridNo, UINT8 ubDirectio if ( this->IsZombie( ) ) nokick = TRUE; + // sevenfm: don't use kick when attacking with any weapon in hand + if( this->inv[ HANDPOS ].exists() ) + { + nokick = TRUE; + } + // Look at stance of target switch ( gAnimControl[pTSoldier->usAnimState].ubEndHeight ) { diff --git a/Tactical/UI Cursors.cpp b/Tactical/UI Cursors.cpp index f0560f33..7a432f61 100644 --- a/Tactical/UI Cursors.cpp +++ b/Tactical/UI Cursors.cpp @@ -178,7 +178,12 @@ UINT8 GetProperItemCursor( UINT8 ubSoldierID, UINT16 ubItemIndex, INT32 usMapPos case KNIFECURS: //Madd: quick hack to make wirecutter cursor appear when using a knife that can cut through wire - if ( Item[ubItemIndex].wirecutters && IsCuttableWireFenceAtGridNo( sTargetGridNo ) && pSoldier->pathing.bLevel == 0 ) + // sevenfm: check that not using bayonet attached to the gun + //if ( Item[ubItemIndex].wirecutters && IsCuttableWireFenceAtGridNo( sTargetGridNo ) && pSoldier->pathing.bLevel == 0 ) + if ( Item[ubItemIndex].wirecutters && + IsCuttableWireFenceAtGridNo( sTargetGridNo ) && + pSoldier->pathing.bLevel == 0 && + pSoldier->bWeaponMode != WM_ATTACHED_BAYONET) { ubCursorID = GOOD_WIRECUTTER_UICURSOR; } diff --git a/Tactical/Weapons.cpp b/Tactical/Weapons.cpp index a8b6ab65..da376390 100644 --- a/Tactical/Weapons.cpp +++ b/Tactical/Weapons.cpp @@ -3703,7 +3703,8 @@ BOOLEAN UseHandToHand( SOLDIERTYPE *pSoldier, INT32 sTargetGridNo, BOOLEAN fStea } // SANDRO - Enhanced Close Combat System - Notice merc after stealing - if (gGameExternalOptions.fEnhancedCloseCombatSystem) + // sevenfm: don't turn when lying prone + if (gGameExternalOptions.fEnhancedCloseCombatSystem && gAnimControl[ pTargetSoldier->usAnimState ].ubEndHeight != ANIM_PRONE) pTargetSoldier->EVENT_SetSoldierDesiredDirection( GetDirectionFromGridNo( pSoldier->sGridNo, pTargetSoldier ) ); // 0verhaul: Also handled in the animation transition @@ -10400,13 +10401,18 @@ INT32 HTHImpact( SOLDIERTYPE * pSoldier, SOLDIERTYPE * pTarget, INT32 iHitBy, BO // DAMAGE BONUS TO KNIFE ATTACK WITH MELEE SKILL else { - if ( HAS_SKILL_TRAIT( pSoldier, MELEE_NT ) && ( gGameOptions.fNewTraitSystem )) + // sevenfm: always give MELEE bonus when using bayonet + if( pSoldier->bWeaponMode == WM_ATTACHED_BAYONET ) + { + iBonus += gSkillTraitValues.ubMEDamageBonusBlades; // +30% damage + } + else if ( HAS_SKILL_TRAIT( pSoldier, MELEE_NT ) && ( gGameOptions.fNewTraitSystem )) { iBonus += gSkillTraitValues.ubMEDamageBonusBlades; // +30% damage if (pSoldier->usAnimState == FOCUSED_STAB) { - iBonus += gSkillTraitValues.usMEAimedMeleeAttackDamageBonus; // 50% incresed damage if focused melee attack + iBonus += gSkillTraitValues.usMEAimedMeleeAttackDamageBonus; // 50% increased damage if focused melee attack } } // Enhanced Close Combat System