//========================================================= // > 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