diff options
Diffstat (limited to 'Northstar.CustomServers/scripts/aibehavior/common_schedules.txt')
-rw-r--r-- | Northstar.CustomServers/scripts/aibehavior/common_schedules.txt | 2681 |
1 files changed, 2681 insertions, 0 deletions
diff --git a/Northstar.CustomServers/scripts/aibehavior/common_schedules.txt b/Northstar.CustomServers/scripts/aibehavior/common_schedules.txt new file mode 100644 index 00000000..8ef03ec4 --- /dev/null +++ b/Northstar.CustomServers/scripts/aibehavior/common_schedules.txt @@ -0,0 +1,2681 @@ +//========================================================= +// > Fail +// This schedule itself can fail because the NPC may +// be unable to finish the stop moving. If so, fall back +// the a fail schedule that has no stop moving in it. +//========================================================= +Schedule + + SCHED_FAIL + + Tasks + TASK_SET_FAIL_SCHEDULE SCHEDULE:SCHED_FAIL_NOSTOP + TASK_STOP_MOVING 0 + TASK_SET_IDLE_ACTIVITY 0 + TASK_WAIT 0.5 + TASK_WAIT_PVS 0 + + Interrupts + COND_CAN_RANGE_ATTACK1 + COND_CAN_RANGE_ATTACK2 + COND_ANY_MELEE_ATTACK + COND_GIVE_WAY +End_Schedule + +//========================================================= +// > Fail without stop moving, which can fail. +//========================================================= +Schedule + + SCHED_FAIL_NOSTOP + + Tasks + TASK_SET_IDLE_ACTIVITY 0 + TASK_WAIT 0.5 + TASK_WAIT_PVS 0 + + Interrupts + COND_CAN_RANGE_ATTACK1 + COND_CAN_RANGE_ATTACK2 + COND_ANY_MELEE_ATTACK + COND_GIVE_WAY + End_Schedule + +//=============================================== +// > Idle_Stand +//=============================================== +Schedule + + SCHED_IDLE_STAND + + Tasks + TASK_STOP_MOVING 2 + TASK_FACE_ENEMY 5 + TASK_SET_IDLE_ACTIVITY 0 + TASK_WAIT 1 + + Interrupts + COND_NEW_ENEMY + COND_SEE_FEAR + COND_LIGHT_DAMAGE + COND_HEAVY_DAMAGE + COND_PROVOKED + COND_GIVE_WAY + COND_HEAR_PLAYER + COND_INSIDE_DANGEROUS_AREA + COND_HEAR_COMBAT + COND_HEAR_BULLET_IMPACT + COND_IDLE_INTERRUPT + COND_REACT_SURPRISED + COND_REACT_FRIENDLY_PLAYER +End_Schedule + +//=============================================== +// > IdleWalk +//=============================================== +Schedule + + SCHED_IDLE_WALK + + Tasks + TASK_WALK_PATH 9999 + TASK_WAIT_FOR_MOVEMENT 0 + TASK_WAIT_PVS 0 + + Interrupts + COND_NEW_ENEMY + COND_SEE_ENEMY // in deference to scripted schedule where the enemy was slammed, thus no COND_NEW_ENEMY + COND_LIGHT_DAMAGE + COND_HEAVY_DAMAGE + COND_PROVOKED + COND_HEAR_COMBAT + COND_HEAR_BULLET_IMPACT + COND_REACT_SURPRISED +End_Schedule + + +//=============================================== +// > SCHED_SWITCH_TO_PENDING_WEAPON +//=============================================== +Schedule + + SCHED_SWITCH_TO_PENDING_WEAPON + + Tasks + TASK_STOP_MOVING 2 + TASK_PLAY_SEQUENCE ACTIVITY:ACT_SWITCH_WEAPON + + Interrupts + COND_HEAVY_DAMAGE +End_Schedule + + +//=============================================== +// > RangeAttackWait +//=============================================== +Schedule + + SCHED_RANGE_ATTACK_WAIT + + Tasks + TASK_WAIT_BETWEEN_BURSTS 0 + + Interrupts + COND_NEW_ENEMY + COND_HEAVY_DAMAGE + COND_TOO_CLOSE_TO_ATTACK + COND_GIVE_WAY + COND_INSIDE_DANGEROUS_AREA + COND_SWITCH_WEAPON_REQUEST + COND_ANY_MELEE_ATTACK + COND_NOT_FACING_ENEMY + COND_REACT_SURPRISED + COND_REACT_CLOAK + COND_REACT_JUMPED_OVER +End_Schedule + + +//=============================================== +Schedule + + SCHED_RANGE_ATTACK1_EVASIVE + + Tasks + TASK_STOP_MOVING 2 + TASK_RANGE_ATTACK1_EVASIVE 0 + + Interrupts + COND_HEAVY_DAMAGE + COND_NO_PRIMARY_CLIP_AMMO + COND_TOO_CLOSE_TO_ATTACK + COND_GIVE_WAY + COND_INSIDE_DANGEROUS_AREA + COND_ANY_MELEE_ATTACK + COND_NOT_FACING_ENEMY + COND_REACT_SURPRISED + COND_REACT_CLOAK + COND_REACT_JUMPED_OVER +End_Schedule + + +//=============================================== +// > RangeAttack1 +//=============================================== +Schedule + + SCHED_RANGE_ATTACK1 + + Tasks + TASK_STOP_MOVING 2 + TASK_AIM_AT_ENEMY 0 + TASK_ANNOUNCE_ATTACK 1 // 1 = primary attack + TASK_RANGE_ATTACK1 0 + + Interrupts + COND_NEW_ENEMY + COND_HEAVY_DAMAGE + COND_NO_PRIMARY_CLIP_AMMO + COND_WEAPON_BLOCKED_BY_FRIEND + COND_WEAPON_SIGHT_OCCLUDED + COND_TOO_CLOSE_TO_ATTACK + COND_GIVE_WAY + COND_INSIDE_DANGEROUS_AREA + COND_SWITCH_WEAPON_REQUEST + COND_ANY_MELEE_ATTACK + COND_REACT_SURPRISED + COND_REACT_CLOAK + COND_REACT_JUMPED_OVER +End_Schedule + + +//=============================================== +// > RangeAttack2 +//=============================================== +Schedule + + SCHED_RANGE_ATTACK2 + + Tasks + TASK_STOP_MOVING 2 + TASK_FACE_ENEMY_STRICT 3 + TASK_AIM_AT_ENEMY 0 + TASK_RANGE_ATTACK2 0 + + Interrupts + COND_WEAPON_SIGHT_OCCLUDED +End_Schedule + +//=============================================== +Schedule + + SCHED_RANGE_ATTACK_TWITCH + + Tasks + TASK_STOP_MOVING 2 + TASK_PLAY_SEQUENCE ACTIVITY:ACT_RANGE_ATTACK_TWITCH + + Interrupts + COND_NEW_ENEMY + COND_HEAVY_DAMAGE + COND_NO_PRIMARY_CLIP_AMMO + COND_WEAPON_BLOCKED_BY_FRIEND + COND_WEAPON_SIGHT_OCCLUDED + COND_TOO_CLOSE_TO_ATTACK + COND_GIVE_WAY + COND_INSIDE_DANGEROUS_AREA + COND_SWITCH_WEAPON_REQUEST + COND_ANY_MELEE_ATTACK + COND_NOT_FACING_ENEMY + COND_REACT_SURPRISED + COND_REACT_CLOAK + COND_REACT_JUMPED_OVER +End_Schedule + + +//=============================================== +// > SpecialAttack +//=============================================== +Schedule + + SCHED_SPECIAL_ATTACK + + Tasks + TASK_STOP_MOVING 2 + TASK_FACE_ENEMY_STRICT 3 + TASK_PLAY_SEQUENCE ACTIVITY:ACT_SPECIAL_ATTACK_START + TASK_SPECIAL_ATTACK 0 + TASK_PLAY_SEQUENCE ACTIVITY:ACT_SPECIAL_ATTACK_END + + Interrupts + COND_GIVE_WAY +End_Schedule + + +//=============================================== +Schedule + + SCHED_THROW_GRENADE + + Tasks + TASK_STOP_MOVING 2 + TASK_FACE_ENEMY_STRICT 4 + TASK_SCRIPTED_DIALOGUE 10 // eCodeDialogueID.GRENADE_OUT + TASK_PLAY_SEQUENCE ACTIVITY:ACT_THROW_GRENADE + + Interrupts + COND_HEAVY_DAMAGE +End_Schedule + + +//=============================================== +Schedule + + SCHED_RODEO_ATTACK + + Tasks + TASK_RANGE_ATTACK1 0 + TASK_WAIT_BETWEEN_BURSTS 0 + Interrupts +End_Schedule + + +//========================================================= +// > Ambush - monster stands in place and waits for a new +// enemy or chance to attack an existing enemy. +//========================================================= +Schedule + + SCHED_AMBUSH + + Tasks + TASK_STOP_MOVING 0 + TASK_SET_IDLE_ACTIVITY 0 + TASK_WAIT_INDEFINITE 0 + + Interrupts + COND_NEW_ENEMY + COND_HEAVY_DAMAGE + COND_PROVOKED +End_Schedule + + +//========================================================= +// > AlertFace +//========================================================= +Schedule + + SCHED_ALERT_FACE + + Tasks + TASK_STOP_MOVING 2 + TASK_FACE_IDEAL 0 + TASK_SET_IDLE_ACTIVITY 0 + + Interrupts + COND_NEW_ENEMY + COND_PROVOKED +End_Schedule + +//========================================================= +// > AlertFace best sound +//========================================================= +Schedule + + SCHED_ALERT_FACE_BESTSOUND + + Tasks + TASK_STORE_BESTSOUND_REACTORIGIN_IN_SAVEPOSITION 0 + TASK_STOP_MOVING 2 + TASK_FACE_SAVEPOSITION 0 + TASK_SET_IDLE_ACTIVITY 0 + TASK_WAIT 1.5 + TASK_FACE_REASONABLE 0 + + Interrupts + COND_NEW_ENEMY + COND_SEE_FEAR + COND_HEAVY_DAMAGE + COND_PROVOKED +End_Schedule + + +//========================================================= +// > Alert_Scan +//========================================================= +Schedule + + SCHED_ALERT_SCAN + + Tasks + TASK_STOP_MOVING 0 + TASK_SET_ACTIVITY ACTIVITY:ACT_IDLE_SCAN + TASK_WAIT 1 + + Interrupts + COND_NEW_ENEMY + COND_SEE_ENEMY + COND_SEE_FEAR + COND_SQUAD_SEARCH + COND_LIGHT_DAMAGE + COND_HEAVY_DAMAGE + COND_HEAR_COMBAT + COND_HEAR_PLAYER + COND_INSIDE_DANGEROUS_AREA + COND_HEAR_BULLET_IMPACT + COND_REACT_SURPRISED + COND_IDLE_INTERRUPT + +End_Schedule + +//========================================================= +// > Alert_Area_Clear +//========================================================= +Schedule + + SCHED_ALERT_AREA_CLEAR + + Tasks + TASK_STOP_MOVING 0 + TASK_NOTIFY_ENEMY_ELUDED 0 + TASK_RESERVE_NEXT_SEARCH_POINT 0 + TASK_PLAY_SEQUENCE ACTIVITY:ACT_IDLE_SCAN + + Interrupts + COND_NEW_ENEMY + COND_SEE_ENEMY + COND_SEE_FEAR + COND_SQUAD_SEARCH + COND_LIGHT_DAMAGE + COND_HEAVY_DAMAGE + COND_HEAR_COMBAT + COND_HEAR_PLAYER + COND_INSIDE_DANGEROUS_AREA + COND_HEAR_BULLET_IMPACT + COND_REACT_SURPRISED + COND_IDLE_INTERRUPT + +End_Schedule + + +//========================================================= +// > AlertStand +//========================================================= +Schedule + + SCHED_ALERT_STAND + + Tasks + TASK_STOP_MOVING 0 + TASK_FACE_ENEMY 5 + TASK_SET_IDLE_ACTIVITY 0 + TASK_WAIT 1 + + Interrupts + COND_NEW_ENEMY + COND_SEE_ENEMY + COND_SEE_FEAR + COND_LIGHT_DAMAGE + COND_PROVOKED + COND_HEAR_COMBAT + COND_HEAR_PLAYER + COND_INSIDE_DANGEROUS_AREA + COND_HEAR_BULLET_IMPACT + COND_IDLE_INTERRUPT + COND_GIVE_WAY + COND_REACT_SURPRISED + COND_REACT_FRIENDLY_PLAYER + COND_IDLE_INTERRUPT + +End_Schedule + + + +//========================================================= +// > AlertWAlk +//========================================================= +Schedule + + SCHED_ALERT_WALK + + Tasks + TASK_WALK_PATH 0 + TASK_WAIT_FOR_MOVEMENT 0 + TASK_WAIT_PVS 0 + + Interrupts + COND_NEW_ENEMY + COND_SEE_ENEMY + COND_SEE_FEAR + COND_ENEMY_DEAD + COND_LIGHT_DAMAGE + COND_HEAVY_DAMAGE + COND_INSIDE_DANGEROUS_AREA + COND_CAN_RANGE_ATTACK1 + COND_CAN_RANGE_ATTACK2 + COND_ANY_MELEE_ATTACK + COND_REACT_SURPRISED +End_Schedule + +//========================================================= +// > InvestigateSound +// +// sends a monster to the location of the +// sound that was just heard to check things out. +//========================================================= +Schedule + + SCHED_INVESTIGATE_SOUND + + Tasks + TASK_STOP_MOVING 0 + TASK_STORE_BESTSOUND_IN_SAVEPOSITION 0 + TASK_GET_PATH_TO_SAVEPOSITION_LOS 0 + TASK_MOVE_PATH 0 + TASK_WAIT_FOR_MOVEMENT 0 + TASK_STOP_MOVING 0 + TASK_FACE_SAVEPOSITION 0 + TASK_LOOKAT_SAVEPOSITION 1.5 + TASK_SET_ACTIVITY ACTIVITY:ACT_SEARCH_LOOK_AROUND + TASK_WAIT 0.3 + TASK_NOTIFY_ENEMY_ELUDED 0 + TASK_WAIT 1.7 + + Interrupts + COND_NEW_ENEMY + COND_SEE_FEAR + COND_SEE_ENEMY + COND_HEAVY_DAMAGE + COND_REACT_SURPRISED + COND_REACT_CORPSE + COND_NEW_INVESTIGATE_SOUND +End_Schedule + +//========================================================= +// > InvestigateCorpse +//========================================================= +Schedule + + SCHED_INVESTIGATE_CORPSE + + Tasks + TASK_STOP_MOVING 0 + TASK_SCRIPTED_DIALOGUE 0 // eCodeDialogueID.MAN_DOWN + TASK_PLAY_SEQUENCE ACTIVITY:ACT_SIGNAL_GROUP + TASK_SET_TOLERANCE_DISTANCE 100 + TASK_STORE_CORPSE_POSITION_IN_SAVEPOSITION 0 + TASK_GET_PATH_TO_SAVEPOSITION 0 + TASK_NOTIFY_ENEMY_ELUDED 0 + TASK_RESERVE_NEXT_SEARCH_POINT 0 // must be done after path find or will be cleared + TASK_DISABLE_ARRIVAL_ONCE 0 + TASK_MOVE_PATH 0 + TASK_WAIT_FOR_MOVEMENT 0 + TASK_STOP_MOVING 0 + TASK_PLAY_SEQUENCE ACTIVITY:ACT_SEARCH_CORPSE + TASK_PLAY_SEQUENCE ACTIVITY:ACT_SIGNAL_GROUP + TASK_INIT_SEARCH_PATH 0 + TASK_SET_SCHEDULE SCHEDULE:SCHED_PATROL_PATH + + Interrupts + COND_NEW_ENEMY + COND_SEE_FEAR + COND_SEE_ENEMY + COND_LIGHT_DAMAGE + COND_HEAVY_DAMAGE + COND_HEAR_COMBAT + COND_REACT_SURPRISED +End_Schedule + + +//========================================================= +// > Stand up +//========================================================= +Schedule + + SCHED_STAND_UP + + Tasks + TASK_STOP_MOVING 0 + TASK_PLAY_SEQUENCE ACTIVITY:ACT_STAND + + Interrupts +End_Schedule + + +//========================================================= +// > Crouch down +//========================================================= +Schedule + + SCHED_CROUCH_DOWN + + Tasks + TASK_STOP_MOVING 0 + TASK_PLAY_SEQUENCE ACTIVITY:ACT_CROUCH + + Interrupts +End_Schedule + + +//========================================================= +// > CombatStand +//========================================================= +Schedule + + SCHED_COMBAT_STAND + + Tasks + TASK_STOP_MOVING 0 + TASK_SET_IDLE_ACTIVITY 0 + TASK_WAIT_INDEFINITE 0 + + Interrupts + COND_NEW_ENEMY + COND_ENEMY_DEAD + COND_LIGHT_DAMAGE + COND_HEAVY_DAMAGE + COND_SEE_ENEMY + COND_CAN_RANGE_ATTACK1 + COND_CAN_RANGE_ATTACK2 + COND_ANY_MELEE_ATTACK + COND_IDLE_INTERRUPT + COND_REACT_SURPRISED +End_Schedule + +//========================================================= +// > CombatWalk +//========================================================= +Schedule + + SCHED_COMBAT_WALK + + Tasks + TASK_WALK_PATH 0 + TASK_WAIT_FOR_MOVEMENT 0 + TASK_WAIT_PVS 0 + + Interrupts + COND_NEW_ENEMY + COND_ENEMY_DEAD + COND_LIGHT_DAMAGE + COND_HEAVY_DAMAGE + COND_INSIDE_DANGEROUS_AREA + COND_CAN_RANGE_ATTACK1 + COND_CAN_RANGE_ATTACK2 + COND_ANY_MELEE_ATTACK + COND_REACT_SURPRISED +End_Schedule + +//========================================================= +// > CombatFace +//========================================================= +Schedule + + SCHED_COMBAT_FACE + + Tasks + TASK_STOP_MOVING 2 + TASK_FACE_ENEMY 3 + TASK_WAIT_UNTIL_ATTACK_READY 0.5 + + Interrupts + COND_ANY_MELEE_ATTACK + COND_SQUAD_SEARCH + COND_INSIDE_DANGEROUS_AREA + COND_REACT_SURPRISED + COND_REACT_BULLET + COND_REACT_CLOAK + COND_REACT_JUMPED_OVER +End_Schedule + +//========================================================= +// COMBAT_SWEEP +// +// Do a small sweep of the area +//========================================================= +Schedule + + SCHED_COMBAT_SWEEP + + Tasks + TASK_STOP_MOVING 2 + TASK_PLAY_SEQUENCE ACTIVITY:ACT_SEARCH_LOOK_AROUND + + Interrupts + COND_SQUAD_SEARCH + COND_NEW_ENEMY + COND_SEE_ENEMY + COND_SEE_FEAR + COND_LIGHT_DAMAGE + COND_HEAVY_DAMAGE + COND_PROVOKED + COND_HEAR_COMBAT // sound flags + COND_HEAR_PLAYER + COND_INSIDE_DANGEROUS_AREA + COND_HEAR_BULLET_IMPACT + COND_GIVE_WAY + COND_REACT_SURPRISED + COND_REACT_BULLET + COND_REACT_CLOAK +End_Schedule + + +//========================================================= +// > Combat Wait facing current, reload if necessary +//========================================================= +Schedule + + SCHED_COMBAT_WAIT + + Tasks + TASK_STOP_MOVING 0 + TASK_RELOAD 0.5 + TASK_SCRIPTED_DIALOGUE 4 // script enum eCodeDialogueID.RELOADING + TASK_SET_IDLE_ACTIVITY 0 + TASK_WAIT_FACE_ENEMY 1 + + Interrupts + COND_IN_DANGER + COND_SEE_ENEMY + COND_LOS_TO_ENEMY_LKP + COND_CAN_RANGE_ATTACK1 + COND_CAN_RANGE_ATTACK2 + COND_ANY_MELEE_ATTACK + COND_INSIDE_DANGEROUS_AREA + COND_REACT_SURPRISED + COND_REACT_BULLET + COND_REACT_CLOAK + COND_REACT_JUMPED_OVER +End_Schedule + + + //========================================================= +// > Combat Wait facing enemy +//========================================================= +Schedule + + SCHED_WAIT_FACING_ENEMY + + Tasks + TASK_STOP_MOVING 0 + TASK_RELOAD 0.5 + TASK_FACE_REASONABLE 0 + TASK_SET_ACTIVITY ACTIVITY:ACT_IDLE_SCAN + TASK_WAIT 1 + + Interrupts + COND_IN_DANGER + COND_ENEMY_DEAD + COND_LIGHT_DAMAGE + COND_HEAVY_DAMAGE + COND_INSIDE_DANGEROUS_AREA + COND_NEW_ENEMY + COND_SEE_ENEMY + COND_CAN_RANGE_ATTACK1 + COND_CAN_RANGE_ATTACK2 + COND_REACT_SURPRISED + COND_REACT_BULLET + COND_REACT_CLOAK + End_Schedule + +//========================================================= +// SCHED_HIDE_AND_RELOAD +//========================================================= +Schedule + + SCHED_HIDE_AND_RELOAD + + Tasks + TASK_STOP_MOVING 0 + TASK_SET_FAIL_SCHEDULE SCHEDULE:SCHED_RELOAD + TASK_FIND_COVER_FROM_ENEMY_WITHIN_RADIUS 0 + TASK_SPRINT_PATH 0 + TASK_WAIT_FOR_MOVEMENT 0 + TASK_REMEMBER MEMORY:INCOVER + TASK_FACE_ENEMY 3 + TASK_RELOAD 0 + TASK_SCRIPTED_DIALOGUE 4 // script enum eCodeDialogueID.RELOADING + + Interrupts + COND_IN_DANGER + COND_ANY_MELEE_ATTACK + COND_HEAVY_DAMAGE + COND_INSIDE_DANGEROUS_AREA + COND_REACT_SURPRISED +End_Schedule + +//========================================================= +// > Reload +//========================================================= +Schedule + + SCHED_RELOAD + + Tasks + TASK_STOP_MOVING 0 + TASK_LOOKAT_ENEMY 1.0 + TASK_RELOAD 0 + TASK_SCRIPTED_DIALOGUE 4 // script enum eCodeDialogueID.RELOADING + + Interrupts + COND_IN_DANGER + COND_INSIDE_DANGEROUS_AREA + COND_ANY_MELEE_ATTACK + COND_REACT_SURPRISED +End_Schedule + +//========================================================= +// > Directional melee +//========================================================= +Schedule + + SCHED_DIRECTIONAL_MELEE + + Tasks + TASK_STOP_MOVING 0 + TASK_MELEE_DIRECTIONAL_ATTACK 0 + + Interrupts + COND_NEW_ENEMY + COND_ENEMY_DEAD + COND_HEAVY_DAMAGE + COND_ENEMY_OCCLUDED +End_Schedule + + +//========================================================= +// > Melee_Attack1 +//========================================================= +Schedule + + SCHED_MELEE_ATTACK1 + + Tasks + TASK_STOP_MOVING 0 + TASK_FACE_ENEMY_STRICT 1.5 + TASK_ANNOUNCE_ATTACK 1 // 1 = primary attack + TASK_MELEE_ATTACK1 0 + + Interrupts +End_Schedule + +//========================================================= +// > Melee_Charge +//========================================================= +Schedule + + SCHED_MELEE_CHARGE + + Tasks + TASK_FACE_ENEMY 1.5 + TASK_ANNOUNCE_ATTACK 2 // 2 = secondary attack + TASK_MELEE_CHARGE 0 + + Interrupts +End_Schedule + + +//========================================================= +// > Melee_Attack_Wait +//========================================================= +Schedule + + SCHED_MELEE_ATTACK_WAIT + + Tasks + TASK_FACE_ENEMY_STRICT 3 + TASK_SET_ACTIVITY ACTIVITY:ACT_MELEE_ATTACK_WAIT + TASK_WAIT 0.5 + + Interrupts + COND_ANY_MELEE_ATTACK +End_Schedule + + + //========================================================= + //========================================================= +Schedule + + SCHED_PRESS_ATTACK + + Tasks + TASK_SET_TOLERANCE_DISTANCE 0 + TASK_SET_PATH_CLUSTER_EXCLUDE 1 + TASK_GET_PATH_TO_ENEMY_LKP 0 + TASK_MOVE_PATH 0 + TASK_WAIT_FOR_MOVEMENT_FACE_TARGET_AT_END 0 + + Interrupts + COND_IN_DANGER + COND_VERY_DIFFERENT_NEW_ENEMY + COND_SQUAD_SEARCH + COND_ENEMY_DEAD + COND_ENEMY_UNREACHABLE + COND_NO_PRIMARY_AMMO + COND_TOO_CLOSE_TO_ATTACK + COND_ANY_MELEE_ATTACK + COND_ATTACK_SLOT_AVAILABLE + COND_INSIDE_DANGEROUS_AREA +End_Schedule + + +//========================================================= +// > ChaseEnemy +//========================================================= +Schedule + + SCHED_CHASE_ENEMY + + Tasks + TASK_SET_PATH_CLUSTER_EXCLUDE 1 + TASK_GET_PATH_TO_ENEMY 0 + TASK_RUN_PATH 0 + TASK_SCRIPTED_DIALOGUE 9 // script enum eCodeDialogueID.CHASE_ENEMY + TASK_WAIT_FOR_MOVEMENT_CHASE 0 + TASK_FACE_ENEMY 3 + + Interrupts + COND_NEW_ENEMY + COND_ENEMY_DEAD + COND_ENEMY_UNREACHABLE + COND_ANY_MELEE_ATTACK + COND_CAN_RANGE_ATTACK1 + COND_CAN_RANGE_ATTACK2 + COND_TOO_CLOSE_TO_ATTACK + COND_LOST_ENEMY + COND_INSIDE_DANGEROUS_AREA + COND_IN_DANGER + COND_GIVE_WAY + COND_REACT_SURPRISED + COND_REACT_CLOAK + COND_REACT_JUMPED_OVER +End_Schedule + + +//========================================================= +// > ChaseEnemyRangeAttacking +//========================================================= +Schedule + + SCHED_CHASE_ENEMY_RANGE_ATTACKING + + Tasks + TASK_SET_PATH_CLUSTER_EXCLUDE 1 + TASK_GET_PATH_TO_ENEMY 0 + TASK_RUN_PATH 0 + TASK_WAIT_FOR_MOVEMENT_CHASE 0 + + Interrupts + COND_NEW_ENEMY + COND_ENEMY_DEAD + COND_ENEMY_UNREACHABLE + COND_ANY_MELEE_ATTACK + COND_TOO_CLOSE_TO_ATTACK + COND_LOST_ENEMY + COND_INSIDE_DANGEROUS_AREA + COND_IN_DANGER + COND_GIVE_WAY + COND_REACT_SURPRISED + COND_REACT_CLOAK + COND_REACT_JUMPED_OVER +End_Schedule + +//========================================================= +// > ChargeAttackRun +//========================================================= +Schedule + + SCHED_CHARGE_ATTACK_RUN + + Tasks + TASK_GET_PATH_TO_ENEMY 0 + TASK_RUN_PATH 0 + TASK_WAIT_FOR_MOVEMENT_CHASE 0 + TASK_FACE_ENEMY 1.5 + + Interrupts + COND_NEW_ENEMY + COND_ENEMY_DEAD + COND_ENEMY_UNREACHABLE + COND_ANY_MELEE_ATTACK + COND_TOO_CLOSE_TO_ATTACK + COND_LOST_ENEMY + COND_INSIDE_DANGEROUS_AREA +End_Schedule + +//========================================================= +// > SCHED_BACK_AWAY_FROM_SAVE_POSITION +//========================================================= +Schedule + + SCHED_BACK_AWAY_FROM_SAVE_POSITION + + Tasks + TASK_FIND_BACKAWAY_FROM_SAVEPOSITION 0 + TASK_RUN_PATH 0 + TASK_WAIT_FOR_MOVEMENT 0 + + Interrupts +End_Schedule + +//========================================================= +// > BackAwayFromEnemy +//========================================================= +Schedule + + SCHED_BACK_AWAY_FROM_ENEMY + + Tasks + TASK_STORE_ENEMY_POSITION_IN_SAVEPOSITION 0 + TASK_FIND_BACKAWAY_FROM_SAVEPOSITION 0 + TASK_MOVE_PATH 0 + TASK_WAIT_FOR_MOVEMENT 0 + + Interrupts + COND_IN_DANGER + COND_NEW_ENEMY + COND_ANY_MELEE_ATTACK +End_Schedule + +//========================================================= +// > BigFlinch +// played when heavy damage is taken for the first time in a while +//========================================================= +Schedule + + SCHED_BIG_FLINCH + + Tasks + TASK_BIG_FLINCH 0 + TASK_REFRESH_REACT_TO_SOUND 0.5 + + Interrupts + COND_INTERRUPT_DAMAGE +End_Schedule + +//========================================================= +// > Die +//========================================================= +Schedule + + SCHED_DIE + + Tasks + TASK_STOP_MOVING 0 + TASK_DIE 0 + + Interrupts + COND_NO_CUSTOM_INTERRUPTS +End_Schedule + +//========================================================= +// > Die +//========================================================= +Schedule + + SCHED_DIE_RAGDOLL + + Tasks + TASK_STOP_MOVING 0 + + Interrupts + COND_NO_CUSTOM_INTERRUPTS +End_Schedule + +//========================================================= +// > VictoryDance +//========================================================= +Schedule + + SCHED_VICTORY_DANCE + + Tasks + TASK_STOP_MOVING 0 + TASK_PLAY_SEQUENCE ACTIVITY:ACT_VICTORY_DANCE + + Interrupts +End_Schedule + +//========================================================= +// > Wait for Anim +//========================================================= +Schedule + + SCHED_WAIT_FOR_SCRIPT_ANIM_END + + Tasks + TASK_WAIT_FOR_SCRIPT_ANIM_END 0 + + Interrupts +End_Schedule + +//========================================================= +// > Synced melee anim +//========================================================= +Schedule + + SCHED_WAIT_FOR_SYNCED_MELEE_ANIM_END + + Tasks + TASK_WAIT_FOR_SYNCED_MELEE_ANIM_END 0 + + Interrupts +End_Schedule + +//========================================================= +// > Path towards a place to start a Synced melee +//========================================================= +Schedule + + SCHED_PRESS_TO_INITIATE_SYNCED_MELEE_ATTACK + + Tasks + TASK_GET_PATH_TO_INITIATE_SYNCED_MELEE 0 + TASK_RUN_PATH 0 + TASK_DISABLE_ARRIVAL_ONCE 0 + TASK_WAIT_FOR_MOVEMENT 3 + + Interrupts + COND_CAN_SYNCED_MELEE_ATTACK + COND_INSIDE_DANGEROUS_AREA + COND_ENEMY_DEAD +End_Schedule + +//========================================================= +// > Cower +// +// This is what is usually done when attempts +// to escape danger fail. +//========================================================= +Schedule + + SCHED_COWER + + Tasks + TASK_STOP_MOVING 2 + TASK_FACE_ENEMY 2 + TASK_SET_NPC_FLAG FLAG:NPC_DIE_ON_ANY_DAMAGE + TASK_SET_NPC_FLAG FLAG:NPC_RAGDOLL_IMMEDIATE + TASK_PLAY_SEQUENCE ACTIVITY:ACT_COWER + TASK_CLEAR_NPC_FLAG FLAG:NPC_ALLOW_FLEE + TASK_CLEAR_NPC_FLAG FLAG:NPC_DIE_ON_ANY_DAMAGE + TASK_CLEAR_NPC_FLAG FLAG:NPC_RAGDOLL_IMMEDIATE + + Interrupts +End_Schedule + +//========================================================= +// > TakeCoverFromBestSound +// +// hide from the loudest sound source +//========================================================= +Schedule + + SCHED_TAKE_COVER_FROM_BEST_SOUND + + Tasks + TASK_SET_FAIL_SCHEDULE SCHEDULE:SCHED_FLEE_FROM_BEST_SOUND + TASK_STOP_MOVING 0 + TASK_FIND_COVER_FROM_BEST_SOUND 0 + TASK_SPRINT_RUNAWAY_PATH 0 + TASK_WAIT_FOR_MOVEMENT 0 + TASK_REMEMBER MEMORY:INCOVER + TASK_FACE_REASONABLE 0 + TASK_SET_IDLE_ACTIVITY 0 + TASK_WAIT 3 + + Interrupts + COND_NEW_ENEMY +End_Schedule + + +//========================================================= +// +//========================================================= +Schedule + + SCHED_FLEE_FROM_BEST_SOUND + + Tasks + TASK_SET_FAIL_SCHEDULE SCHEDULE:SCHED_COWER + TASK_GET_PATH_AWAY_FROM_BEST_SOUND 600 + TASK_SPRINT_PATH_TIMED 2 + TASK_STOP_MOVING 0 + + Interrupts + COND_NEW_ENEMY +End_Schedule + + +//========================================================= +// +//========================================================= +Schedule + + SCHED_TAKE_COVER_FROM_ENEMY + + Tasks + TASK_SCRIPTED_DIALOGUE 8 // script enum eCodeDialogueID.TAKE_COVER_FROM_ENEMY + TASK_STOP_MOVING 0 + TASK_FIND_COVER_FROM_ENEMY 0 + TASK_MOVE_PATH 0 + TASK_WAIT_FOR_MOVEMENT 0 + TASK_REMEMBER MEMORY:INCOVER + + Interrupts + COND_REACT_SURPRISED + COND_REACT_JUMPED_OVER + COND_DEFENSIVE_PLACEMENT + COND_INSIDE_DANGEROUS_AREA +End_Schedule + +//========================================================= +// +//========================================================= +Schedule + + SCHED_DISPLACE_FROM_DANGEROUS_AREA + + Tasks + TASK_SCRIPTED_DIALOGUE 11 // script enum eCodeDialogueID.DANGEROUS_AREA_DISPLACE + TASK_DISPLACE_FROM_DANGEROUS_AREA 0 + + Interrupts + COND_HEAVY_DAMAGE +End_Schedule + + +//========================================================= +// +//========================================================= +Schedule + + SCHED_MELEE_DISENGAGE + + Tasks + TASK_PLAY_SEQUENCE ACTIVITY:ACT_DISENGAGE + + Interrupts +End_Schedule + + +//========================================================= +// > RunFromEnemy +// +// Run to cover, but don't turn to face enemy and upon +// fail run around randomly +//========================================================= +Schedule + + SCHED_RUN_FROM_ENEMY + + Tasks + TASK_SCRIPTED_DIALOGUE 3 // script enum eCodeDialogueID.RUN_FROM_ENEMY + TASK_SET_RUNNING_FROM_ENEMY 0 + TASK_STOP_MOVING 0 + TASK_FIND_SAFE_HINT_FROM_ENEMY 1500 + TASK_FIND_COVER_FROM_ENEMY_LIMITLESS 300 + TASK_SPRINT_RUNAWAY_PATH 0 + TASK_WAIT_FOR_MOVEMENT 0 + TASK_SET_SCHEDULE SCHEDULE:SCHED_RUN_FROM_ENEMY_FALLBACK_COMPLETE + + Interrupts + COND_NEW_ENEMY + COND_ENEMY_DEAD +End_Schedule + + +//========================================================= +Schedule + + SCHED_RUN_FROM_ENEMY_FALLBACK + + Tasks + TASK_SET_RUNNING_FROM_ENEMY 0 + TASK_STOP_MOVING 0 + TASK_STORE_ENEMY_POSITION_IN_SAVEPOSITION 0 + TASK_FIND_BACKAWAY_FROM_SAVEPOSITION 0 + TASK_SPRINT_RUNAWAY_PATH 0 + TASK_WAIT_FOR_MOVEMENT 0 + TASK_SET_SCHEDULE SCHEDULE:SCHED_RUN_FROM_ENEMY_FALLBACK_COMPLETE + + Interrupts + COND_NEW_ENEMY + COND_ENEMY_DEAD +End_Schedule + +//========================================================= +Schedule + + SCHED_RUN_FROM_ENEMY_FALLBACK_COMPLETE + + Tasks + TASK_WAIT_RANDOM 1 + TASK_STOP_MOVING 0 + TASK_PLAY_SEQUENCE ACTIVITY:ACT_SIGNAL_ACKNOWLEDGE + TASK_RELOAD 0.5 + TASK_SCRIPTED_DIALOGUE 4 // script enum eCodeDialogueID.RELOADING + TASK_SET_IDLE_ACTIVITY 0 + TASK_FACE_ENEMY_IF_HAS_LOS 3 + TASK_PLAY_SEQUENCE ACTIVITY:ACT_SIGNAL_ACKNOWLEDGE + + Interrupts + COND_LOS_TO_ENEMY_LKP + COND_SEE_ENEMY + COND_LIGHT_DAMAGE + COND_HEAVY_DAMAGE + COND_INSIDE_DANGEROUS_AREA +End_Schedule + +//========================================================= +// > Forced_Go (Used for debug only) +//========================================================= +Schedule + + SCHED_FORCED_GO + + Tasks + TASK_SET_TOLERANCE_DISTANCE 0 + TASK_GET_PATH_TO_SAVEPOSITION 0 + TASK_MOVE_PATH 0 + TASK_WAIT_FOR_MOVEMENT 0 + + Interrupts + COND_ANY_MELEE_ATTACK + +End_Schedule + +//========================================================= +// > Forced_Go (Used for debug only) +//========================================================= +Schedule + + SCHED_FORCED_GO_RUN + + Tasks + TASK_SET_TOLERANCE_DISTANCE 0 + TASK_GET_PATH_TO_SAVEPOSITION 0 + TASK_RUN_PATH 0 + TASK_WAIT_FOR_MOVEMENT 0 + + Interrupts + COND_ANY_MELEE_ATTACK + +End_Schedule + + +//========================================================= +// SCHED_MOVE_TO_ENEMY +// different from SCHED_CHASE_ENEMY, uses LKP +//========================================================= +Schedule + + SCHED_MOVE_TO_ENEMY + + Tasks + TASK_SET_TOLERANCE_DISTANCE 72 + TASK_SET_PATH_CLUSTER_EXCLUDE 1 + TASK_GET_PATH_TO_ENEMY_LKP 0 + TASK_MOVE_PATH 0 + TASK_WAIT_FOR_MOVEMENT_FACE_TARGET_AT_END 0 + + Interrupts + COND_VERY_DIFFERENT_NEW_ENEMY + COND_SQUAD_SEARCH + COND_ENEMY_DEAD + COND_LOST_ENEMY + COND_CAN_RANGE_ATTACK1 + COND_CAN_RANGE_ATTACK2 + COND_ANY_MELEE_ATTACK + COND_INSIDE_DANGEROUS_AREA + COND_REACT_SURPRISED +End_Schedule + + +//========================================================= +// SCHED_MOVE_TO_ENGAGEMENT_RANGE +// +//========================================================= +Schedule + + SCHED_MOVE_TO_ENGAGEMENT_RANGE + + Tasks + TASK_SET_PATH_CLUSTER_EXCLUDE 1 + TASK_GET_PATH_TO_ENEMY_LKP_LOS 0 + TASK_MOVE_PATH 0 + TASK_WAIT_FOR_MOVEMENT_FACE_TARGET_AT_END 0 + + Interrupts + COND_IN_DANGER + COND_VERY_DIFFERENT_NEW_ENEMY + COND_SQUAD_SEARCH + COND_ENEMY_DEAD + COND_LOST_ENEMY + COND_ANY_MELEE_ATTACK + COND_INSIDE_DANGEROUS_AREA + COND_REACT_SURPRISED +End_Schedule + + +//========================================================= +// SCHED_MOVE_TO_WEAPON_RANGE +// +//========================================================= +Schedule + + SCHED_MOVE_TO_WEAPON_RANGE + + Tasks + TASK_SET_FAIL_SCHEDULE SCHEDULE:SCHED_CHASE_ENEMY + TASK_GET_PATH_TO_RANGE_ENEMY_LKP_LOS 0 + TASK_MOVE_PATH 0 + TASK_WAIT_FOR_MOVEMENT 0 + TASK_SET_SCHEDULE SCHEDULE:SCHED_COMBAT_FACE + + Interrupts + COND_IN_DANGER + COND_NEW_ENEMY + COND_ENEMY_DEAD + COND_LOST_ENEMY + COND_CAN_RANGE_ATTACK1 + COND_CAN_RANGE_ATTACK2 + COND_ANY_MELEE_ATTACK + COND_INSIDE_DANGEROUS_AREA + COND_REACT_SURPRISED +End_Schedule + +//========================================================= +// SCHED_MOVE_TO_SQUAD_RANGE +// +//========================================================= +Schedule + + SCHED_MOVE_TO_SQUAD_RANGE + + Tasks + TASK_SET_PATH_CLUSTER_EXCLUDE 1 + TASK_GET_PATH_TO_ENEMY_LKP 0 + TASK_MOVE_PATH 0 + TASK_WAIT_FOR_MOVEMENT_FACE_TARGET_AT_END 0 + + Interrupts + COND_IN_DANGER + COND_NEW_ENEMY + COND_SQUAD_SEARCH + COND_ENEMY_DEAD + COND_LOST_ENEMY + COND_CAN_RANGE_ATTACK1 + COND_CAN_RANGE_ATTACK2 + COND_ANY_MELEE_ATTACK + COND_INSIDE_DANGEROUS_AREA + COND_REACT_SURPRISED +End_Schedule + + +//========================================================= +Schedule + + SCHED_MOVE_TO_SQUAD_LEADER_GOAL + + Tasks + TASK_GET_PATH_TO_SQUAD_LEADER_GOAL 0 + TASK_SCRIPTED_DIALOGUE 6 // script enum eCodeDialogueID.MOVE_TO_SQUAD_LEADER + TASK_MOVE_PATH 0 + TASK_WAIT_FOR_MOVEMENT 0 + TASK_STOP_MOVING 0 + + Interrupts + COND_IN_DANGER + COND_SQUAD_SEARCH + COND_SQUAD_TAKING_POSITION + COND_ANY_MELEE_ATTACK + COND_SEE_ENEMY_VERY_CLOSE +End_Schedule + +//========================================================= +Schedule + + SCHED_MOVE_TO_SQUAD_ASSIGNED_NODE + + Tasks + TASK_GET_PATH_TO_SQUAD_ASSIGNED_NODE 0 + TASK_SCRIPTED_DIALOGUE 7 // script enum eCodeDialogueID.FAN_OUT + TASK_MOVE_PATH 0 + TASK_WAIT_FOR_MOVEMENT 0 + TASK_STOP_MOVING 0 + + Interrupts + COND_IN_DANGER + COND_SQUAD_SEARCH + COND_ANY_MELEE_ATTACK + COND_SEE_ENEMY_VERY_CLOSE +End_Schedule + + +//========================================================= +// ESTABLISH_LINE_OF_FIRE +// +// Go to a location from which I can shoot my enemy +//========================================================= +Schedule + + SCHED_ESTABLISH_LINE_OF_FIRE + + Tasks + TASK_SET_TOLERANCE_DISTANCE 0 + TASK_GET_PATH_TO_ENEMY_LKP_LOS 0 + TASK_MOVE_PATH 0 + TASK_WAIT_FOR_MOVEMENT_FACE_TARGET_AT_END 0 + + Interrupts + COND_IN_DANGER + COND_VERY_DIFFERENT_NEW_ENEMY + COND_SQUAD_SEARCH + COND_ENEMY_DEAD + COND_ANY_MELEE_ATTACK + COND_INSIDE_DANGEROUS_AREA + COND_REACT_SURPRISED +End_Schedule + + +//----------------------------------------------------------------------------- +//----------------------------------------------------------------------------- +Schedule + + SCHED_MOVE_TO_HIGH_GROUND + + Tasks + TASK_STOP_MOVING 0 + TASK_FIND_HIGH_GROUND_NODE_FROM_ORIGIN 150 + TASK_SPRINT_RUNAWAY_PATH 0 + TASK_WAIT_FOR_MOVEMENT 0 + TASK_SET_TOLERANCE_DISTANCE 0 + + Interrupts + COND_IN_DANGER + COND_CAN_MELEE_ATTACK1 +End_Schedule + + +//----------------------------------------------------------------------------- +//----------------------------------------------------------------------------- +Schedule + + SCHED_PREPARE_TO_SNIPE + + Tasks + TASK_GET_PATH_TO_ENEMY_LKP_LOS 0 + TASK_MOVE_PATH 0 + TASK_WAIT_FOR_MOVEMENT_FACE_TARGET_AT_END 0 + TASK_STOP_MOVING 2 + TASK_FACE_ENEMY 0 + TASK_SET_WEAPON_BLOCKED_TIMER 5 + TASK_PLAY_SEQUENCE ACTIVITY:ACT_ARM + + Interrupts + COND_IN_DANGER + COND_ANY_MELEE_ATTACK +End_Schedule + +//----------------------------------------------------------------------------- +//----------------------------------------------------------------------------- +Schedule + + SCHED_SNIPE_WAIT + + Tasks + TASK_AIM_AT_ENEMY 0 + TASK_WAIT_BETWEEN_BURSTS 0 + TASK_WAIT 0.2 + + Interrupts + COND_IN_DANGER + COND_CAN_RANGE_ATTACK1 + COND_CAN_RANGE_ATTACK2 + COND_ANY_MELEE_ATTACK + COND_WEAPON_BLOCKED_TIMER +End_Schedule + +//========================================================= +// > PATROL_PATH +// +// patrol a path, with option running scripts at each patrol point +//========================================================= + +Schedule + + SCHED_PATROL_PATH + + Tasks + TASK_GET_PATH_TO_NEXT_SEARCH_POINT 1500 + TASK_WALK_PATH 0 + TASK_WAIT_FOR_MOVEMENT 0 + TASK_RUN_VSCRIPT 0 + TASK_RESERVE_NEXT_SEARCH_POINT 0 + + Interrupts + COND_ENEMY_DEAD + COND_LOST_ENEMY + COND_LIGHT_DAMAGE + COND_HEAVY_DAMAGE + COND_HEAR_COMBAT + COND_INSIDE_DANGEROUS_AREA + COND_HEAR_BULLET_IMPACT + COND_NEW_ENEMY + COND_SEE_ENEMY + COND_CAN_RANGE_ATTACK1 + COND_CAN_RANGE_ATTACK2 + COND_REACT_SURPRISED + COND_REACT_BULLET + COND_REACT_CLOAK + COND_REACT_JUMPED_OVER + COND_REACT_CORPSE + COND_REACT_FRIENDLY_PLAYER + COND_SQUAD_ENGAGE + + End_Schedule + + +//========================================================= +// > PATROL_RUN +// +// Run around randomly until we detect an enemy +//========================================================= +Schedule + + SCHED_PATROL_RUN + + Tasks + TASK_SET_TOLERANCE_DISTANCE 0 + TASK_SET_ROUTE_SEARCH_TIME 5 // Spend 5 seconds trying to build a path if stuck + TASK_GET_PATH_TO_RANDOM_NODE 0 + TASK_MOVE_PATH 0 + TASK_WAIT_FOR_MOVEMENT 0 + + Interrupts + COND_GIVE_WAY + COND_NEW_ENEMY + COND_SEE_ENEMY + COND_SEE_FEAR + COND_HEAR_COMBAT + COND_INSIDE_DANGEROUS_AREA + COND_HEAR_PLAYER + COND_LIGHT_DAMAGE + COND_HEAVY_DAMAGE + COND_PROVOKED +End_Schedule + +//========================================================= +// > IDLE_WANDER +// +// Walk around randomly +//========================================================= +Schedule + + SCHED_IDLE_WANDER + + Tasks + TASK_SET_ROUTE_SEARCH_TIME 5 // Spend 5 seconds trying to build a path if stuck + TASK_WANDER 0 + TASK_WALK_PATH 0 + TASK_WAIT_FOR_MOVEMENT 0 + + Interrupts + COND_GIVE_WAY + COND_HEAR_COMBAT + COND_INSIDE_DANGEROUS_AREA + COND_NEW_ENEMY + COND_SEE_ENEMY + COND_SEE_FEAR + COND_LIGHT_DAMAGE + COND_HEAVY_DAMAGE + COND_IDLE_INTERRUPT +End_Schedule + +//========================================================= +// > FALL_TO_GROUND +//========================================================= +Schedule + + SCHED_FALL_TO_GROUND + + Tasks + TASK_FALL_TO_GROUND 0 + + Interrupts +End_Schedule + +//========================================================= +// > SCHED_MOVE_AWAY_FROM_ENEMY +//========================================================= +Schedule + + SCHED_MOVE_AWAY_FROM_ENEMY + + Tasks + TASK_SET_FAIL_SCHEDULE SCHEDULE:SCHED_MOVE_AWAY_FAIL + TASK_FACE_ENEMY 3 + TASK_MOVE_AWAY_PATH 120 + TASK_MOVE_PATH 0 + TASK_WAIT_FOR_MOVEMENT 0 + TASK_SET_SCHEDULE SCHEDULE:SCHED_MOVE_AWAY_END + + Interrupts + COND_VERY_DIFFERENT_NEW_ENEMY + COND_CAN_RANGE_ATTACK1 + COND_CAN_RANGE_ATTACK2 + COND_ANY_MELEE_ATTACK +End_Schedule + +//========================================================= +// > SCHED_MOVE_AWAY +//========================================================= +Schedule + + SCHED_MOVE_AWAY + + Tasks + TASK_SET_FAIL_SCHEDULE SCHEDULE:SCHED_MOVE_AWAY_FAIL + TASK_MOVE_AWAY_PATH 120 + TASK_MOVE_PATH 0 + TASK_WAIT_FOR_MOVEMENT 0 + TASK_SET_SCHEDULE SCHEDULE:SCHED_MOVE_AWAY_END + + Interrupts +End_Schedule + +//========================================================= +// > SCHED_MOVE_AWAY_FAIL +//========================================================= +Schedule + + SCHED_MOVE_AWAY_FAIL + + Tasks + TASK_STOP_MOVING 0 + + Interrupts +End_Schedule + +//========================================================= +// > SCHED_MOVE_AWAY_END (allows derived class to translate to appropriate behavior) +//========================================================= +Schedule + + SCHED_MOVE_AWAY_END + + Tasks + TASK_STOP_MOVING 0 + TASK_FACE_REASONABLE 0 + + Interrupts + COND_NEW_ENEMY + COND_SEE_ENEMY + COND_SEE_FEAR + COND_LIGHT_DAMAGE + COND_HEAVY_DAMAGE + COND_PROVOKED + COND_HEAR_COMBAT + COND_HEAR_PLAYER + COND_INSIDE_DANGEROUS_AREA + COND_HEAR_BULLET_IMPACT + COND_IDLE_INTERRUPT +End_Schedule + +//========================================================= +// > SCHED_DODGE_USE_DANGEROUS_AREA +//========================================================= +Schedule + + SCHED_DODGE_USE_DANGEROUS_AREA + + Tasks + TASK_STOP_MOVING 0 + TASK_PLAY_SEQUENCE_FACE_ENEMY ACTIVITY:ACT_DODGE_FORWARD + TASK_WAIT_FOR_ACTIVITY_TO_FINISH 5 + TASK_WAIT_RANDOM 0.35 + TASK_SET_SCHEDULE SCHEDULE:SCHED_DODGE_BACKWARD + + Interrupts + COND_HEAVY_DAMAGE +End_Schedule + +//========================================================= +// > SCHED_DODGE_FORWARD +//========================================================= +Schedule + + SCHED_DODGE_FORWARD + + Tasks + TASK_STOP_MOVING 0 + TASK_PLAY_SEQUENCE_FACE_ENEMY ACTIVITY:ACT_DODGE_FORWARD + + Interrupts + COND_HEAVY_DAMAGE +End_Schedule + +//========================================================= +// > SCHED_DODGE_BACKWARD +//========================================================= +Schedule + + SCHED_DODGE_BACKWARD + + Tasks + TASK_STOP_MOVING 0 + TASK_PLAY_SEQUENCE_FACE_ENEMY ACTIVITY:ACT_DODGE_BACKWARD + + Interrupts + COND_HEAVY_DAMAGE +End_Schedule + +//========================================================= +// > SCHED_DODGE +//========================================================= +Schedule + + SCHED_DODGE + + Tasks + TASK_STOP_MOVING 0 + TASK_DODGE 0 + + Interrupts + COND_HEAVY_DAMAGE +End_Schedule + + +//========================================================= +// > SCHED_STRAFE_DODGE +//========================================================= +Schedule + + SCHED_STRAFE_DODGE + + Tasks + TASK_STOP_MOVING 0 + TASK_STRAFE_DODGE 0 + + Interrupts + COND_HEAVY_DAMAGE +End_Schedule + +//========================================================= +// > SCHED_DODGE_PATH +//========================================================= +Schedule + + SCHED_DODGE_PATH + + Tasks + TASK_DODGE_PATH 0 + TASK_RUN_PATH 0 + TASK_WAIT_FOR_MOVEMENT 0 + + Interrupts + COND_HEAVY_DAMAGE +End_Schedule + + +//========================================================= +// > SCHED_STRAFE_DODGE_PATH +//========================================================= +Schedule + + SCHED_STRAFE_DODGE_PATH + + Tasks + TASK_STOP_MOVING 0 + TASK_DODGE_PATH 0 + TASK_RUN_PATH 0 + TASK_WAIT_FOR_MOVEMENT 0 + + Interrupts +End_Schedule + + +//========================================================= +// > SCHED_CIRCLE_STRAFE +//========================================================= +Schedule + + SCHED_CIRCLE_STRAFE + + Tasks + TASK_CIRCLE_STRAFE_PATH 0 + TASK_LOOKAT_ENEMY 0.5 + TASK_RUN_PATH 0 + TASK_WAIT_FOR_MOVEMENT_FACE_TARGET_AT_END 0 + + Interrupts + COND_ANY_MELEE_ATTACK + COND_IN_DANGER + COND_INSIDE_DANGEROUS_AREA + COND_REACT_SURPRISED + COND_REACT_JUMPED_OVER +End_Schedule + + +//========================================================= +// > SCHED_ATTACK_RUN +//========================================================= +Schedule + + SCHED_ATTACK_RUN + + Tasks + TASK_WAIT 0.5 + TASK_ATTACK_RUN_PATH 0 + TASK_SET_STOP_AT_GOAL 0 + TASK_RUN_PATH 0 + TASK_WAIT_FOR_MOVEMENT 0 + TASK_WAIT 0.5 + + Interrupts + COND_IN_DANGER +End_Schedule + + +//========================================================= +// > SCHED_SLEEP +//========================================================= +Schedule + + SCHED_SLEEP + + Tasks + TASK_STOP_MOVING 0 + TASK_WAIT 0.2 + + Interrupts +End_Schedule + +//========================================================= +// SCHED_TITAN_MOVE_TO_DEFENSIVE_PLACMENT +//========================================================= +Schedule + + SCHED_TITAN_MOVE_TO_DEFENSIVE_PLACMENT + + Tasks + TASK_STOP_MOVING 0 + TASK_GET_PATH_TO_SAVEPOSITION 0 + TASK_RUN_PATH 0 + TASK_WAIT_FOR_MOVEMENT 0 + TASK_REMEMBER MEMORY:INCOVER + TASK_SET_SCHEDULE SCHEDULE:SCHED_WAIT_FACING_ENEMY + + Interrupts +End_Schedule + + +//========================================================= +// > SCHED_REACT_JUMPED_OVER +//========================================================= +Schedule + + SCHED_REACT_JUMPED_OVER + + Tasks + TASK_PLAY_REACTION_SEQUENCE ACTIVITY:ACT_REACT_JUMPED_OVER + + Interrupts + COND_IN_DANGER +End_Schedule + +//========================================================= +// > SCHED_REACT_CLOAK_APPEAR +//========================================================= +Schedule + + SCHED_REACT_CLOAK_APPEAR + + Tasks + TASK_FACE_ENEMY 1 + TASK_PLAY_REACTION_SEQUENCE ACTIVITY:ACT_REACT_CLOAK_APPEAR_NEAR + + Interrupts + COND_IN_DANGER +End_Schedule + +//========================================================= +// > SCHED_REACT_CLOAK_DISAPPEAR +//========================================================= +Schedule + + SCHED_REACT_CLOAK_DISAPPEAR + + Tasks + TASK_FACE_ENEMY 1 + TASK_PLAY_REACTION_SEQUENCE ACTIVITY:ACT_REACT_CLOAK_DISAPPEAR_NEAR + + Interrupts + COND_SEE_ENEMY + COND_IN_DANGER + COND_INSIDE_DANGEROUS_AREA + COND_REACT_CLOAK +End_Schedule + + +//========================================================= +// > SCHED_REACT_SURPRISED +//========================================================= +Schedule + + SCHED_REACT_SURPRISED + + Tasks + TASK_STOP_MOVING 2 + TASK_SCRIPTED_DIALOGUE 12 // script enum eCodeDialogueID.REACT_SURPRISED + TASK_PLAY_REACTION_SEQUENCE ACTIVITY:ACT_REACT_SURPRISED + + Interrupts +End_Schedule + + +//========================================================= +// > SCHED_REACT_BULLET +//========================================================= +Schedule + + SCHED_REACT_BULLET + + Tasks + TASK_STORE_BESTSOUND_REACTORIGIN_IN_SAVEPOSITION 0 + TASK_STOP_MOVING 0 + TASK_PLAY_REACTION_SEQUENCE ACTIVITY:ACT_REACT_BULLET + TASK_REFRESH_REACT_TO_SOUND 0.5 + + Interrupts + COND_HEAVY_DAMAGE +End_Schedule + + +//========================================================= +// > SCHED_SIGNAL_ACKNOWLEDGE +//========================================================= +Schedule + + SCHED_SIGNAL_ACKNOWLEDGE + + Tasks + TASK_WAIT_RANDOM 0.7 + TASK_STOP_MOVING 0 + TASK_PLAY_SEQUENCE ACTIVITY:ACT_SIGNAL_ACKNOWLEDGE + + Interrupts + COND_NEW_ENEMY + COND_SEE_ENEMY + COND_LIGHT_DAMAGE + COND_HEAVY_DAMAGE + COND_INSIDE_DANGEROUS_AREA +End_Schedule + +//========================================================= +// > SCHED_SIGNAL_SALUTE +//========================================================= +Schedule + + SCHED_SIGNAL_SALUTE + + Tasks + TASK_STOP_MOVING 2 + TASK_FACE_PLAYER 0.5 + TASK_SCRIPTED_DIALOGUE 1 // script enum eCodeDialogueID.SALUTE + TASK_PLAY_SEQUENCE ACTIVITY:ACT_SIGNAL_SALUTE + + Interrupts + COND_VERY_DIFFERENT_NEW_ENEMY + COND_SEE_ENEMY + COND_LIGHT_DAMAGE + COND_HEAVY_DAMAGE +End_Schedule + + +//========================================================= +// > SCHED_SIGNAL_FORWARD +//========================================================= + Schedule + + SCHED_SIGNAL_FORWARD + + Tasks + TASK_STOP_MOVING 2 + TASK_FACE_IDEAL 0 + TASK_SCRIPTED_DIALOGUE 2 // script enum eCodeDialogueID.ENEMY_CONTACT + TASK_PLAY_SEQUENCE_FACE_ENEMY ACTIVITY:ACT_SIGNAL_FORWARD + + Interrupts + COND_IN_DANGER + COND_VERY_DIFFERENT_NEW_ENEMY + COND_LIGHT_DAMAGE + COND_HEAVY_DAMAGE + End_Schedule + + +//========================================================= +// > SCHED_SIGNAL_TAUNT +//========================================================= + Schedule + + SCHED_SIGNAL_TAUNT + + Tasks + TASK_STOP_MOVING 2 + TASK_FACE_ENEMY 3 + TASK_PLAY_SEQUENCE_FACE_ENEMY ACTIVITY:ACT_SIGNAL_TAUNT + + Interrupts + COND_IN_DANGER + COND_VERY_DIFFERENT_NEW_ENEMY + COND_LIGHT_DAMAGE + COND_HEAVY_DAMAGE + End_Schedule + + +//========================================================= +// > SCHED_KNOCK_AWAY_PHYS_ENTS +//========================================================= +Schedule + + SCHED_KNOCK_AWAY_PHYS_ENTS + + Tasks + TASK_STOP_MOVING 0 + TASK_FACE_BLOCKING_PHYS_ENT 0 + TASK_KNOCK_AWAY_PHYS_ENTS 0 + + Interrupts + +End_Schedule + +//========================================================= +// > SCHED_DANGEROUS_CLUSTER_STANDOFF +//========================================================= +Schedule + + SCHED_DANGEROUS_CLUSTER_STANDOFF + + Tasks + TASK_STOP_MOVING 0 + TASK_FACE_ENEMY 0 + TASK_SET_IDLE_ACTIVITY 0 + TASK_WAIT 7.5 + + Interrupts + COND_CAN_RANGE_ATTACK1 + COND_CAN_RANGE_ATTACK2 + COND_ANY_MELEE_ATTACK + COND_VERY_DIFFERENT_NEW_ENEMY + COND_SEE_ENEMY + +End_Schedule + +//========================================================= +// > SCHED_MOVE_TO_SHOOTING_COVER +//========================================================= +Schedule + + SCHED_MOVE_TO_SHOOTING_COVER + + Tasks + TASK_GET_PATH_TO_SHOOTING_COVER 0 + TASK_RUN_PATH 0 + TASK_WAIT_FOR_MOVEMENT 0 + TASK_ALIGN_WITH_SHOOTING_COVER_IDEAL_YAW 0 + + Interrupts + COND_ANY_MELEE_ATTACK + COND_INSIDE_DANGEROUS_AREA + COND_REACT_SURPRISED + COND_REACT_CLOAK + COND_REACT_JUMPED_OVER + COND_SHOOTING_COVER_HINT_COMPROMISED + COND_TOO_CLOSE_FOR_SHOOTING_COVER + +End_Schedule + +//========================================================= +// > SCHED_IDLE_INSIDE_SHOOTING_COVER +//========================================================= +Schedule + + SCHED_IDLE_INSIDE_SHOOTING_COVER + + Tasks + TASK_STOP_MOVING 0 + TASK_ALIGN_WITH_SHOOTING_COVER_IDEAL_YAW 0 + TASK_RELOAD 1 + TASK_SET_SHOOTING_COVER_ACTIVITY ACTIVITY:ACT_SHOOTING_COVER_IDLE + TASK_WAIT 0.5 + + Interrupts + COND_ANY_MELEE_ATTACK + COND_INSIDE_DANGEROUS_AREA + COND_REACT_SURPRISED + COND_REACT_CLOAK + COND_REACT_JUMPED_OVER + COND_SHOOTING_COVER_HINT_COMPROMISED + +End_Schedule + +//========================================================= +// > SCHED_CHECK_INSIDE_SHOOTING_COVER +//========================================================= +Schedule + + SCHED_CHECK_INSIDE_SHOOTING_COVER + + Tasks + TASK_STOP_MOVING 0 + TASK_ALIGN_WITH_SHOOTING_COVER_IDEAL_YAW 0 + TASK_SET_SHOOTING_COVER_ACTIVITY ACTIVITY:ACT_SHOOTING_COVER_CHECK + TASK_WAIT_FOR_ACTIVITY_TO_FINISH 5 + + Interrupts + COND_ANY_MELEE_ATTACK + COND_INSIDE_DANGEROUS_AREA + COND_REACT_SURPRISED + COND_REACT_CLOAK + COND_REACT_JUMPED_OVER + COND_SHOOTING_COVER_HINT_COMPROMISED + +End_Schedule + +//========================================================= +// > SCHED_ADVANCE_FROM_SHOOTING_COVER +//========================================================= +Schedule + + SCHED_ADVANCE_FROM_SHOOTING_COVER + + Tasks + TASK_SET_ADVANCE_FROM_SHOOTING_COVER_ACTIVITY 0 + TASK_WAIT_FOR_ACTIVITY_TO_FINISH 5 + TASK_BEGIN_SHOOTING_COVER_BURST_FIRE 0 + + Interrupts + COND_ANY_MELEE_ATTACK + COND_INSIDE_DANGEROUS_AREA + COND_REACT_SURPRISED + COND_REACT_CLOAK + COND_REACT_JUMPED_OVER + COND_SHOOTING_COVER_HINT_COMPROMISED + +End_Schedule + +//========================================================= +// > SCHED_RETREAT_TO_SHOOTING_COVER +//========================================================= +Schedule + + SCHED_RETREAT_TO_SHOOTING_COVER + + Tasks + TASK_SET_RETREAT_TO_SHOOTING_COVER_ACTIVITY 0 + TASK_WAIT_FOR_ACTIVITY_TO_FINISH 3 + TASK_ALIGN_WITH_SHOOTING_COVER_IDEAL_YAW 0 + TASK_RELOAD 0.3 + TASK_SET_SHOOTING_COVER_ACTIVITY ACTIVITY:ACT_SHOOTING_COVER_IDLE + TASK_WAIT 0.5 + + Interrupts + COND_ANY_MELEE_ATTACK + COND_INSIDE_DANGEROUS_AREA + COND_REACT_SURPRISED + COND_REACT_JUMPED_OVER + COND_SHOOTING_COVER_HINT_COMPROMISED + +End_Schedule + +//========================================================= +// > SCHED_GRENADE_FROM_SHOOTING_COVER +//========================================================= +Schedule + + SCHED_GRENADE_FROM_SHOOTING_COVER + + Tasks + TASK_SCRIPTED_DIALOGUE 10 // eCodeDialogueID.GRENADE_OUT + TASK_SET_SHOOTING_COVER_ACTIVITY ACTIVITY:ACT_SHOOTING_COVER_GRENADE + TASK_WAIT_FOR_ACTIVITY_TO_FINISH 5 + + Interrupts + COND_ANY_MELEE_ATTACK + COND_REACT_SURPRISED + COND_REACT_JUMPED_OVER + COND_SHOOTING_COVER_HINT_COMPROMISED + +End_Schedule + +//========================================================= +// > SCHED_GRENADE_ADVANCE_FROM_SHOOTING_COVER +//========================================================= +Schedule + + SCHED_GRENADE_ADVANCE_FROM_SHOOTING_COVER + + Tasks + TASK_SCRIPTED_DIALOGUE 10 // eCodeDialogueID.GRENADE_OUT + TASK_SET_SHOOTING_COVER_ACTIVITY ACTIVITY:ACT_SHOOTING_COVER_GRENADE_ADVANCE + TASK_WAIT_FOR_ACTIVITY_TO_FINISH 5 + TASK_BEGIN_SHOOTING_COVER_BURST_FIRE 0 + + Interrupts + COND_ANY_MELEE_ATTACK + COND_INSIDE_DANGEROUS_AREA + COND_REACT_SURPRISED + COND_REACT_JUMPED_OVER + COND_SHOOTING_COVER_HINT_COMPROMISED + +End_Schedule + +//========================================================= +// > SCHED_WAIT_WHILE_ADVANCED_FROM_SHOOTING_COVER +//========================================================= +Schedule + + SCHED_WAIT_WHILE_ADVANCED_FROM_SHOOTING_COVER + + Tasks + TASK_WAIT_UNTIL_ATTACK_READY 0.5 + + Interrupts + COND_ANY_MELEE_ATTACK + COND_INSIDE_DANGEROUS_AREA + COND_REACT_SURPRISED + COND_REACT_CLOAK + COND_REACT_JUMPED_OVER + COND_SHOOTING_COVER_HINT_COMPROMISED + +End_Schedule + +//========================================================= +// > SCHED_GRAPPLED +//========================================================= +Schedule + + SCHED_GRAPPLED + + Tasks + TASK_STOP_MOVING 0 + TASK_BIG_FLINCH 0 + + Interrupts + +End_Schedule + + +//========================================================= +// > SCHED_FOLLOWER_MOVE_AWAY_END +//========================================================= +Schedule + + SCHED_FOLLOWER_MOVE_AWAY_END + + Tasks + TASK_SET_FAIL_SCHEDULE SCHEDULE:SCHED_FOLLOWER_MOVE_AWAY_FAIL + TASK_STOP_MOVING 0 + TASK_FACE_FOLLOW_TARGET 0 + TASK_SET_FOLLOW_DELAY 2 + + Interrupts + COND_PLAYER_PUSHING +End_Schedule + +//========================================================= +// > SCHED_FOLLOWER_MOVE_AWAY_FAIL +//========================================================= +Schedule + + SCHED_FOLLOWER_MOVE_AWAY_FAIL + + Tasks + TASK_STOP_MOVING 0 + TASK_FACE_FOLLOW_TARGET 0 + TASK_SET_FOLLOW_DELAY 2 + + Interrupts + COND_PLAYER_PUSHING +End_Schedule + +//========================================================= +// > SCHED_FOLLOW +//========================================================= +Schedule + + SCHED_FOLLOW + + Tasks + TASK_GET_PATH_TO_FOLLOW_POSITION 0 + TASK_MOVE_PATH 0 + TASK_MOVE_TO_FOLLOW_POSITION 0 + TASK_WAIT_FOR_MOVEMENT 0 + + Interrupts + COND_VERY_DIFFERENT_NEW_ENEMY + COND_ANY_MELEE_ATTACK + COND_LIGHT_DAMAGE + COND_HEAVY_DAMAGE + COND_INSIDE_DANGEROUS_AREA + COND_REACT_SURPRISED + COND_PROVOKED +End_Schedule + +//========================================================= +// > SCHED_FOLLOW_NO_INTERRUPT +//========================================================= +Schedule + + SCHED_FOLLOW_NO_INTERRUPT + + Tasks + TASK_GET_PATH_TO_FOLLOW_POSITION 0 + TASK_MOVE_PATH 0 + TASK_MOVE_TO_FOLLOW_POSITION 0 + TASK_WAIT_FOR_MOVEMENT 0 + + Interrupts + COND_HEAVY_DAMAGE +End_Schedule + +//========================================================= +// > SCHED_FACE_FOLLOW_TARGET +//========================================================= +Schedule + + SCHED_FACE_FOLLOW_TARGET + + Tasks + TASK_SET_IDLE_ACTIVITY 0 + TASK_FACE_FOLLOW_TARGET 0 + TASK_SET_IDLE_ACTIVITY 0 + TASK_SET_SCHEDULE SCHEDULE:SCHED_FOLLOWER_IDLE_STAND + + Interrupts + COND_VERY_DIFFERENT_NEW_ENEMY + COND_LIGHT_DAMAGE + COND_HEAVY_DAMAGE + COND_INSIDE_DANGEROUS_AREA + COND_PROVOKED + COND_GIVE_WAY +End_Schedule + +//========================================================= +// > SCHED_FOLLOWER_GO_TO_WAIT_POINT +//========================================================= +Schedule + + SCHED_FOLLOWER_GO_TO_WAIT_POINT + + Tasks + TASK_LOCK_HINTNODE 0 + TASK_SET_FAIL_SCHEDULE SCHEDULE:SCHED_FOLLOWER_GO_TO_WAIT_POINT_FAIL + TASK_SET_TOLERANCE_DISTANCE 4 + TASK_GET_PATH_TO_FOLLOW_POINT 0 + TASK_SET_FOLLOW_TARGET_MARK 0 + TASK_WALK_PATH 0 + TASK_WAIT_FOR_MOVEMENT 0 + TASK_ARRIVE_AT_FOLLOW_POINT 0 + TASK_SET_FOLLOW_POINT_STAND_SCHEDULE 0 + + Interrupts + COND_VERY_DIFFERENT_NEW_ENEMY + COND_LIGHT_DAMAGE + COND_HEAVY_DAMAGE + COND_INSIDE_DANGEROUS_AREA + COND_PROVOKED + COND_PLAYER_PUSHING + COND_TARGET_MOVED_FROM_MARK +End_Schedule + +//========================================================= +// > SCHED_FOLLOWER_GO_TO_WAIT_POINT_FAIL +//========================================================= +Schedule + + SCHED_FOLLOWER_GO_TO_WAIT_POINT_FAIL + + Tasks + TASK_CLEAR_HINTNODE .5 + TASK_SET_FOLLOW_DELAY 1 + + Interrupts +End_Schedule + +//========================================================= +// > SCHED_FOLLOWER_STAND_AT_WAIT_POINT +//========================================================= +Schedule + + SCHED_FOLLOWER_STAND_AT_WAIT_POINT + + Tasks + TASK_BEGIN_STAND_AT_WAIT_POINT 0 + TASK_PLAY_HINT_ACTIVITY 0 + TASK_SET_SCHEDULE SCHEDULE:SCHED_FOLLOWER_STAND_AT_WAIT_POINT + + Interrupts + COND_VERY_DIFFERENT_NEW_ENEMY + COND_LIGHT_DAMAGE + COND_HEAVY_DAMAGE + COND_INSIDE_DANGEROUS_AREA + COND_REACT_SURPRISED + COND_PROVOKED + COND_PLAYER_PUSHING + COND_TARGET_MOVED_FROM_MARK + COND_GIVE_WAY + COND_FOLLOW_WAIT_POINT_INVALID +End_Schedule + +Schedule + + SCHED_FOLLOWER_IDLE_STAND + + Tasks + TASK_SET_FOLLOW_DELAY 0 + TASK_STOP_MOVING 2 + TASK_FACE_FOLLOW_TARGET 0 + TASK_SET_IDLE_ACTIVITY 0 + TASK_WAIT 3 + + Interrupts + COND_VERY_DIFFERENT_NEW_ENEMY + COND_SEE_FEAR + COND_CAN_RANGE_ATTACK1 + COND_NO_PRIMARY_AMMO + COND_LIGHT_DAMAGE + COND_HEAVY_DAMAGE + COND_PROVOKED + COND_GIVE_WAY + COND_INSIDE_DANGEROUS_AREA + COND_HEAR_COMBAT + COND_HEAR_BULLET_IMPACT + COND_REACT_SURPRISED + COND_PLAYER_PUSHING + COND_TARGET_MOVED_FROM_MARK + COND_FOLLOW_DELAY_EXPIRED + COND_FOUND_WAIT_POINT + COND_IDLE_INTERRUPT +End_Schedule + +Schedule + + SCHED_FOLLOWER_COMBAT_FACE + + Tasks + TASK_STOP_MOVING 2 + TASK_FACE_ENEMY 3 + TASK_WAIT_UNTIL_ATTACK_READY 0.5 + + Interrupts + COND_VERY_DIFFERENT_NEW_ENEMY + COND_SEE_FEAR + COND_CAN_RANGE_ATTACK1 + COND_CAN_RANGE_ATTACK2 + COND_ANY_MELEE_ATTACK + COND_NO_PRIMARY_AMMO + COND_LIGHT_DAMAGE + COND_HEAVY_DAMAGE + COND_PROVOKED + COND_GIVE_WAY + COND_INSIDE_DANGEROUS_AREA + COND_HEAR_BULLET_IMPACT + COND_PLAYER_PUSHING + COND_TARGET_MOVED_FROM_MARK + COND_FOLLOW_DELAY_EXPIRED + COND_FOUND_WAIT_POINT +End_Schedule + +Schedule + + SCHED_FOLLOWER_COVER_IDLE + + Tasks + TASK_STOP_MOVING 0 + TASK_FACE_HINTNODE 0 + TASK_SET_ACTIVITY ACTIVITY:ACT_COVER + TASK_WAIT 3 + + Interrupts + COND_VERY_DIFFERENT_NEW_ENEMY + COND_SEE_FEAR + COND_CAN_RANGE_ATTACK1 + COND_CAN_RANGE_ATTACK2 + COND_ANY_MELEE_ATTACK + COND_LIGHT_DAMAGE + COND_HEAVY_DAMAGE + COND_INSIDE_DANGEROUS_AREA + COND_REACT_SURPRISED + COND_PROVOKED + COND_PLAYER_PUSHING + COND_FOLLOW_DELAY_EXPIRED +End_Schedule + +//========================================================= +//========================================================= +Schedule + + SCHED_ASSAULT_FAILED_TO_MOVE + + Tasks + TASK_ASSAULT_DEFER_SCHEDULE_SELECTION 1 + + Interrupts +End_Schedule + + +//========================================================= +//========================================================= +Schedule + + SCHED_HOLD_ASSAULT_POINT + + Tasks + TASK_FACE_ASSAULT_POINT 0 + TASK_SET_IDLE_ACTIVITY 0 + TASK_WAIT 3 + + Interrupts + COND_VERY_DIFFERENT_NEW_ENEMY + COND_ENEMY_DEAD + COND_CAN_RANGE_ATTACK1 + COND_CAN_RANGE_ATTACK2 + COND_ANY_MELEE_ATTACK + COND_TOO_CLOSE_TO_ATTACK + COND_LOST_ENEMY + COND_INSIDE_DANGEROUS_AREA + COND_IN_DANGER + COND_HEAR_BULLET_IMPACT + COND_NO_PRIMARY_AMMO + COND_REACT_SURPRISED + COND_REACT_FRIENDLY_PLAYER +End_Schedule + +//========================================================= +//========================================================= +Schedule + + SCHED_MOVE_TO_ASSAULT_POINT + + Tasks + TASK_SET_FAIL_SCHEDULE SCHEDULE:SCHED_ASSAULT_FAILED_TO_MOVE + TASK_GATHER_CONDITIONS 0 + TASK_GET_PATH_TO_ASSAULT_POINT 0 + TASK_SET_ADJUST_MOVE_SPEED_TO_SQUAD 1 + TASK_SCRIPTED_DIALOGUE 5 // eCodeDialogueID.MOVE_TO_ASSAULT + TASK_MOVE_PATH 0 + TASK_WAIT_FOR_MOVEMENT 0 + TASK_FACE_ASSAULT_POINT 0 + + Interrupts + COND_PROVOKED + COND_SQUAD_TAKING_POSITION + COND_INSIDE_DANGEROUS_AREA + COND_IN_DANGER + COND_REACT_SURPRISED + COND_REACT_FRIENDLY_PLAYER + COND_ANY_MELEE_ATTACK + COND_PATH_INVOLVES_DANGEROUS_CLUSTER +End_Schedule + +//========================================================= +//========================================================= +Schedule + + SCHED_WALK_TO_ASSAULT_POINT + + Tasks + TASK_GET_PATH_TO_ASSAULT_POINT 0 + TASK_WALK_PATH 0 + TASK_WAIT_FOR_MOVEMENT 0 + TASK_FACE_ASSAULT_POINT 0 + + Interrupts + COND_GIVE_WAY + COND_HEAR_COMBAT + COND_INSIDE_DANGEROUS_AREA + COND_NEW_ENEMY + COND_SEE_ENEMY + COND_SEE_FEAR + COND_LIGHT_DAMAGE + COND_HEAVY_DAMAGE + COND_IDLE_INTERRUPT + COND_SQUAD_TAKING_POSITION + COND_IN_DANGER + COND_REACT_SURPRISED + COND_REACT_FRIENDLY_PLAYER + COND_ANY_MELEE_ATTACK + COND_PATH_INVOLVES_DANGEROUS_CLUSTER +End_Schedule + +//========================================================= +//========================================================= +Schedule + + SCHED_AT_ASSAULT_POINT + + Tasks + TASK_FACE_ASSAULT_POINT 0 + + Interrupts + COND_NO_PRIMARY_AMMO + COND_INSIDE_DANGEROUS_AREA + COND_IN_DANGER +End_Schedule + + +//========================================================= +//========================================================= +Schedule + + SCHED_ASSAULT_MOVE_AWAY + + Tasks + TASK_MOVE_AWAY_PATH 120 + TASK_MOVE_PATH 0 + TASK_WAIT_FOR_MOVEMENT 0 + + Interrupts +End_Schedule
\ No newline at end of file |