From 86bb8f7c7e6564fa6ab573e7907c8790b2450ef4 Mon Sep 17 00:00:00 2001 From: 1upD <1upderek@gmail.com> Date: Thu, 27 Sep 2018 14:29:34 -0400 Subject: [PATCH] Shadow Walker: Added experimental squad behavior --- sp/src/game/server/mod/npc_shadow_walker.cpp | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/sp/src/game/server/mod/npc_shadow_walker.cpp b/sp/src/game/server/mod/npc_shadow_walker.cpp index 60367d2e..ce2d08ea 100644 --- a/sp/src/game/server/mod/npc_shadow_walker.cpp +++ b/sp/src/game/server/mod/npc_shadow_walker.cpp @@ -356,9 +356,10 @@ int CNPC_ShadowWalker::SelectCombatSchedule() } // If I'm scared of this enemy and he's looking at me, run away - if (IRelationType(GetEnemy()) == D_FR) + // If in a squad, all but one Shadow walker must be afraid of the player + if (IRelationType(GetEnemy()) == D_FR || !OccupyStrategySlotRange(SQUAD_SLOT_ATTACK1)) { - if (HasCondition(COND_SEE_ENEMY) && HasCondition(COND_ENEMY_FACING_ME)) + if (HasCondition(COND_SEE_ENEMY) && HasCondition(COND_ENEMY_FACING_ME) && HasCondition(COND_HAVE_ENEMY_LOS)) { // TODO: Check if silent FearSound(); @@ -384,11 +385,17 @@ int CNPC_ShadowWalker::SelectCombatSchedule() // we can see the enemy - if (HasCondition(COND_CAN_MELEE_ATTACK1)) - return SCHED_MELEE_ATTACK1; + if (HasCondition(COND_CAN_MELEE_ATTACK1)) { + //if (OccupyStrategySlotRange(SQUAD_SLOT_ATTACK1, SQUAD_SLOT_ATTACK2)) + return SCHED_MELEE_ATTACK1; + //return SCHED_RUN_FROM_ENEMY; + } - if (HasCondition(COND_CAN_MELEE_ATTACK2)) - return SCHED_MELEE_ATTACK2; + if (HasCondition(COND_CAN_MELEE_ATTACK2)) { + //if (OccupyStrategySlotRange(SQUAD_SLOT_ATTACK1, SQUAD_SLOT_ATTACK2)) + return SCHED_MELEE_ATTACK2; + //return SCHED_RUN_FROM_ENEMY; + } if (HasRangedWeapon() && GetShotRegulator()->IsInRestInterval()) {