//Patroller - this is the trooper that goes down the corridor //closing doors and getting other storm troopers to chase him. state Base { Conditions { if Message "patroller" == 0 goto Phase0_Wait if Message "patroller" == 1 goto Phase1_SnapToStart if Message "patroller" == 2 goto Phase2_SnapToStart if Message "patroller" == 3 goto Phase3_SnapToStart if Message "patroller" == 4 goto Phase4_SnapToStart } Actions { SetInvulnerable SetRunSpeed "default" SetRunSpeed "multiply=1.4" } } //Phase0 state Phase0_Wait { Conditions { if EitherPlayerInTriggerArea "StartPatroller" == 1 goto Phase0_GoToPhase1 } Actions { FacePlayer } } state Phase0_GoToPhase1 { Conditions { if FreePlay == 1 goto Phase0_GoToPhase1Run if PartyUnderCover == 0 goto Phase0_GoToPhase1Run } Actions { SetLocator "name=Patrol_1" GoToLocator "Walk" "0.5" PlayObstacle "name=blowup_door_1" GoToLocator "Walk" SetState "Phase1_Wait" } } state Phase0_GoToPhase1Run { Conditions { if ObstacleFinished "blowup_door_1" == 1 goto Phase1_SnapToStart } Actions { SetLocator "name=Patrol_1" GoToLocator "0.5" PlayObstacle "name=blowup_door_1" SetLocator "name=Patrol_1a" GoToLocator SetState "Phase1_SnapToStart" } } //Phase1 state Phase1_SnapToStart { Conditions { } Actions { SetLocator "name=Patrol_1a" SnapToLocator SetState "Phase1_Wait" } } state Phase1_Wait { Conditions { if ForceComplete "blowup_door_1" == 1 goto Phase1_GoToPhase1Run } Actions { SetMessage "name=patroller" "value=1" FacePlayer } } state Phase1_GoToPhase1Run { Conditions { if ObstacleFinished "blowup_door_2" == 1 goto Phase2_SnapToStart } Actions { SetLocator "name=Patrol_2" GoToLocator "0.5" PlayObstacle "name=blowup_door_2" GoToLocator SetState "Phase2_SnapToStart" } } //Phase2 state Phase2_SnapToStart { Conditions { } Actions { SetLocator "name=Patrol_3a" SnapToLocator SetState "Phase2_Wait" } } state Phase2_Wait { Conditions { if ForceComplete "blowup_door_2" == 1 goto Phase2_GoToPhase3Run } Actions { SetMessage "name=patroller" "value=2" FacePlayer } } state Phase2_GoToPhase3Run { Conditions { } Actions { PlayObstacle "name=blowup_door_3" "stayopen" SetLocator "name=Patrol_3" GoToLocator "0.5" PlayObstacle "name=blowup_door_3" "backwards" GoToLocator SetState "Phase3_Wait" } } //Phase3 state Phase3_SnapToStart { Conditions { } Actions { SetLocator "name=Patrol_3" SnapToLocator SetState "Phase3_Wait" } } state Phase3_Wait { Conditions { if ForceComplete "blowup_door_3" == 1 goto Phase3_GoToMelee } Actions { SetMessage "name=patroller" "value=3" FacePlayer } } state Phase3_GoToMelee { Conditions { } Actions { //Melee is handled in level2.scp SetMessage "name=StartedMelee" "value=3000" SetState "Phase4_SnapToStart" } } //Phase3 state Phase4_SnapToStart { Conditions { } Actions { SetRunSpeed "clear" SetLocator "name=Patrol_3" SnapToLocator SetInvulnerable "FALSE" SetState "Phase4_Fight" } } state Phase4_StartFight { Conditions { } Actions { SetMessage "name=patroller" "value=4" SetState "Phase4_Fight" } } state Phase4_Fight { ReferenceScript { Script=SpawnAttack Source=Global ReturnState=Phase4_Fight Conditions { } } Conditions { } Actions { GoToLocator FacePlayer } }