//MosEisley_D - spy state Base { Conditions { if Message "SpyState" == 0 goto Phase0_Start if Message "SpyState" == 1 goto Phase1_Start if Message "SpyState" == 2 goto Phase2_Start if Message "SpyState" == 3 goto Phase3_Start if Message "SpyState" > 3 goto Phase5_Start } Actions { DontPush SetSide "neutral" SetInvulnerable "TRUE" } } =====================Phase 0================= state Phase0_Start { Conditions { if NearestPlayerRange < 1 goto Phase0_Run } Actions { FacePlayer } } state Phase0_Run { Conditions { if EitherPlayerInTriggerArea "spy0" == 1 goto Phase1_Start } Actions { SetMessage "name=SpyState" "value=1" SetLocator "name=SpyA_1" GoToLocator FacePlayer } } =====================Phase 1================= state Phase1_Start { Conditions { if EitherPlayerInTriggerArea "spy1" == 1 goto Phase1_Run } Actions { SnapToLocator "name=SpyB_1" FacePlayer } } state Phase1_Run { Conditions { } Actions { SetMessage "name=SpyState" "value=2" SetLocator "name=SpyB_2" GoToLocator SetState "Phase2_Start" } } =====================Phase 2================= state Phase2_Start { Conditions { if EitherPlayerInTriggerArea "spy2" == 1 goto Phase2_Run } Actions { SnapToLocator "name=SpyC_1" SetLocator "name=SpyC_2" GoToLocator FacePlayer } } state Phase2_Run { Conditions { if ObstacleAtStart "big_gate" == 1 and if InTriggerArea "spycut" == 1 goto CloseBigGate } Actions { SetMessage "name=SpyState" "value=3" SetLocator "name=SpyE_1" GoToLocator } } state CloseBigGate { Conditions { } Actions { PlayObstacle "name=big_gate" SetState "Phase2_Run" } } =====================Phase 3================= state Phase3_Start { Conditions { } Actions { SnapToLocator "name=SpyE_1" FacePlayer //level.scp tells spy when to go into SpyCut } } state SpyCut { Conditions { } Actions { PlayObstacle "name=big_gate" OpenDoor "spy_door10" "stayopen" SnapToLocator "name=SpyE_1" CameraCut "range=5" "roty=300" "rotx=25" "tgt_character=ai_spy" "FollowTgt" "bXlend_in_time=0.5" "blend_out_time=0.5" "end_time=5.5" "nXo_borders" Idle "0.5" SetMessage "name=SpyState" "value=5" SetLocator "name=SpyE_2" GoToLocator SnapToLocator "name=SpyE_3" CloseDoor "spy_door10" SetLocator "name=SpyF_1" GoToLocator "0.1" "xz_rangecheck" Idle "1.5" SetState "Phase5_Start" } } =====================Minicut to stop player overtaking / comming in the side door =================== state wampratFixCut { Conditions { } Actions { cameracut "end_time=infinite" "tgt_character=myself" "FollowTgt" "range=3" "roty=110" "rotx=25" SnapToLocator "name=SpyC_1" SetLocator "name=SpyC_2" GoToLocator SetLocator "name=SpyE_1" GoToLocator PlayObstacle "name=big_gate" cameracut "end_time=1" "tgt_character=myself" "FollowTgt" "use_current_campos" SetState "Phase3_Start" } } =====================Phase 5================= state Phase5_Start { Conditions { } Actions { SnapToLocator "name=SpyOutOfWay" } } /// Hangar Fight - phase1 state StartFight_Phase1 { Conditions { ;if NearestPlayerRange < 3 goto FightMiniCut_Phase1 if EitherPlayerInTriggerArea "StartFight" == 1 goto FightMiniCut_Phase1 } Actions { SnapToLocator "name=SpyFight1_1" FacePlayer } } state FightMiniCut_Phase1 { Conditions { } Actions { PlayObstacle "name=falcon" CameraCut "range=5" "roty=220" "rotx=5" "tgt_character=ai_spy" "FollowTgt" "bXlend_in_time=0.5" "end_time=infinite" "nXo_borders" GoToLocator "name" "SpyFight1_2" "must_reach_destination" FaceCamera "0.5" PressSpecialButton FaceCamera "0.5" SetMessage "name=HangarSpawn" "value=1" SetMessage "name=HangarSpawnCount" "value=10" FaceCamera "4" GoToLocator "name" "SpyFight1_3" "must_reach_destination" CanOpenDoors "FALSE" CameraCut "use_current_campos" "tgt_character=ai_spy" "FollowTgt" "blend_out_time=0.5" "end_time=0.5" "nXo_borders" Idle "0.6" SnapToLocator "name=SpyOutOfWay" CanOpenDoors "TRUE" SetMessage "name=FightMiniCut" "value=0" } } state StartFight_Phase2 { Conditions { } Actions { Idle "2" SnapToLocator "name=SpyFight2_1" CameraCut "range=4" "roty=320" "rotx=10" "tgt_character=ai_spy" "FollowTgt" "bXlend_in_time=0.5" "end_time=infinite" "nXo_borders" GoToLocator "name" "SpyFight2_2" "must_reach_destination" FaceCamera "0.5" PressSpecialButton FaceCamera "0.5" SetMessage "name=HangarSpawn" "value=2" SetMessage "name=HangarSpawnCount" "value=15" FaceCamera "3" CameraCut "use_current_campos" "tgt_character=ai_spy" "FollowTgt" "blend_out_time=0.5" "end_time=1" "nXo_borders" GoToLocator "name" "SpyFight2_1" "must_reach_destination" CanOpenDoors "FALSE" Idle "1" SnapToLocator "name=SpyOutOfWay" CanOpenDoors "TRUE" SetMessage "name=FightMiniCut" "value=0" } } state StartFight_Phase3 { Conditions { } Actions { Idle "2" SnapToLocator "name=SpyFight3_0" CameraCut "range=5" "roty=220" "rotx=5" "tgt_character=ai_spy" "FollowTgt" "bXlend_in_time=0.5" "end_time=infinite" "nXo_borders" GoToLocator "name" "SpyFight3_2" "must_reach_destination" FaceCamera "0.5" PressSpecialButton FaceCamera "0.5" SetMessage "name=HangarSpawn" "value=3" SetMessage "name=HangarSpawnCount" "value=5" FaceCamera "2" CameraCut "use_current_campos" "tgt_character=ai_spy" "FollowTgt" "blend_out_time=0.5" "end_time=1" "nXo_borders" SetMessage "name=FightMiniCut" "value=0" SetInvulnerable "FALSE" SetSide "baddy" SetMessage "name=ShowHearts" "value=1" GoToLocator "name" "SpyFight3_3" "must_reach_destination" DontPush "FALSE" SetState "ChooseSide_Phase3" } } // state ChooseSide_Phase3 { Conditions { if CurrentLocatorIs "SpyRight_1" == 1 goto GoToLeft_Phase3 if AlwaysTrue == 1 goto GoToRight_Phase3 } Actions { } } state GoToRight_Phase3 { Conditions { } Actions { SetLocator "name=SpyFight1_3" GoToLocator SnapToLocator "name=SpyRight_0" SetLocator "name=SpyRight_1" GoToLocator SetState "WaitAtLocator_Phase3" } } state GoToLeft_Phase3 { Conditions { } Actions { SetLocator "name=SpyRight_0" GoToLocator SnapToLocator "name=SpyFight1_3" SetLocator "name=SpyLeft_1" GoToLocator SetState "WaitAtLocator_Phase3" } } state WaitAtLocator_Phase3 { Conditions { if Timer > 2 and if BeenHit == 1 goto ChooseSide_Phase3 if Timer > 2 and if OpponentRange < 2 goto ChooseSide_Phase3 if Timer > 2 and if NumInSetAlive "10" < 1 and if Message "HangarSpawnCount" < 1 goto CallReinforcements_Phase3 } Actions { ResetTimer FacePlayer } } state CallReinforcements_Phase3 { Conditions { } Actions { SetInvulnerable CameraCut "use_current_campos" "tgt_character=ai_spy" "FollowTgt" "blend_in_time=0.5" "blend_out_time=0.5" "end_time=3" "nXo_borders" PressSpecialButton FacePlayer "2" SetInvulnerable "FALSE" SetMessage "name=HangarSpawnCount" "value=10" SetState "ChooseSide_Phase3" } }