//SpeederChaseA //Main level flow. state Base { Conditions { } Actions { AddLocatorGroup "name=LockIn1Spawn" AddLocatorGroup "name=LockIn2Spawn" AddLocatorGroup "name=LockIn3Spawn" AddLocatorGroup "name=LockIn4Spawn" CnxController "from=start1_0" "to=start1_a" "off=BLOCK" "obj=raiseplat1_a1" "checkvisible" "on_frames=lastframeTOlastframe" "bothways" CnxController "from=start1_a" "to=start1_b" "off=BLOCK" "obj=raiseplat1_a1" "checkvisible" "on_frames=lastframeTOlastframe" "bothways" CnxController "from=start1_b" "to=start1_c" "off=BLOCK" "obj=raiseplat1_a1" "checkvisible" "on_frames=lastframeTOlastframe" "bothways" CnxController "from=start1_c" "to=start1_d" "off=BLOCK" "obj=raiseplat1_a1" "checkvisible" "on_frames=lastframeTOlastframe" "bothways" CnxController "from=zip1_a" "to=zip1_b" "on_flag=BLOCK" "obj=flowerbush_01" "checkvisible" "on_frames=1TOlastframe" CnxController "from=ramp1_a" "to=ramp1_b" "off_flag=BLOCK" "obj=force_slop1_1" "checkvisible" "on_frames=lastframeTOlastframe" CnxController "from=steps1_a" "to=steps1_b" "off_flag=BLOCK" "obj=cratestack01_02" "checkvisible" "on_frames=lastframeTOlastframe" CnxController "from=cl1ff1_a" "to=cl1ff1_b" "off_flag=BLOCK" "obj=clear1_ffield1" "checkvisible" "on_frames=lastframeTOlastframe" "bothways" CnxController "from=cl1ff2_a" "to=cl1ff2_b" "off_flag=BLOCK" "obj=clear1_ffield2" "checkvisible" "on_frames=lastframeTOlastframe" "bothways" CnxController "from=cl2ff1_a" "to=cl2ff1_b" "off_flag=BLOCK" "obj=clear2_ffield1" "checkvisible" "on_frames=lastframeTOlastframe" "bothways" CnxController "from=cl2ff2_a" "to=cl2ff2_b" "off_flag=BLOCK" "obj=clear2_ffield2" "checkvisible" "on_frames=lastframeTOlastframe" "bothways" CnxController "from=cl3ff1_a" "to=cl3ff1_b" "off_flag=BLOCK" "obj=clear3_ffield1" "checkvisible" "on_frames=lastframeTOlastframe" "bothways" CnxController "from=cl3ff2_a" "to=cl3ff2_b" "off_flag=BLOCK" "obj=clear3_ffield2" "checkvisible" "on_frames=lastframeTOlastframe" "bothways" CnxController "from=cl4ff1_a" "to=cl4ff1_b" "off_flag=BLOCK" "obj=clear4_ffield1" "checkvisible" "on_frames=lastframeTOlastframe" "bothways" CnxController "from=cl4ff2_a" "to=cl4ff2_b" "off_flag=BLOCK" "obj=clear4_ffield2" "checkvisible" "on_frames=lastframeTOlastframe" "bothways" //Turn off all the clearing force fields //Force field, clearing 1 PlayObstacle "name=clear1_ffield1" PlayObstacle "name=clear1_ffield2" //Force field, clearing 2 PlayObstacle "name=clear2_ffield1" PlayObstacle "name=clear2_ffield2" //Force field, clearing 3 PlayObstacle "name=clear3_ffield1" PlayObstacle "name=clear3_ffield2" //Force field, clearing 4 PlayObstacle "name=clear4_ffield1" PlayObstacle "name=clear4_ffield2" //Turn off socks. EnableSock "name=main_sock" "FALSE" EnableSock "name=melee_1" "FALSE" EnableSock "name=melee_2" "FALSE" EnableSock "name=melee_3" "FALSE" EnableSock "name=melee_4" "FALSE" //Init SetMessage "name=Stage" "value=1" SetMessage "name=Phase" "value=0" SetMessage "name=SpeedersToKill" "value=0" SetMessage "name=SpeedersKilled" "value=0" SetMessage "name=GenerateToChase" "value=0" SetMessage "name=KeepPlayersOnSpeeders" "value=0" DisableNarrowSocks SetState "StartOfLevel" } } //Messages // - "Stage" 1, 2, 3 and 4. // - "Phase" 0 == none // - "Phase" 1 == chase speeders // - "Phase" 2 == melee // - "SpeedersToKill" - How many speeders need killing // - "SpeedersKilled" - How many speeders have been killed // - "GenerateToChase" - if 1 then can generate speeder bikes to chase //AI Sets // 1 - Speeder bikes spawned to be riden towards player and stopped. // 2 - Speeder bikes spawned to be chased by player // 3 - Speeder bikes that enemy have got out of, basically the players speederbikes. // 4 - Troopers spawned in lockin. // 5 - Lockin walkers // 6 - Zip up troopers. //Main flow //Start //Stage 1 // - Chase // - LockIn //Stage 2 // - Chase // - LockIn //Stage 3 // - Chase // - LockIn //Stage 4 // - Chase // - LockIn //Open up final area. state StartOfLevel { Conditions { if EitherPlayerInTriggerArea "Start" == 1 goto CameraCutBikeApproaching if Message "test" > 0 goto TestJumpTo } Actions { SetMessage "name=GenerateToChase" "value=0" //SetMessage "name=test" "value=4" EnableSock "name=melee_4" } } state TestJumpTo { Conditions { if Message "test" == 1 goto Stage1_EndChase if Message "test" == 2 goto Stage2_EndChase if Message "test" == 3 goto Stage3_EndChase if Message "test" == 4 goto Stage4_EndChase if AlwaysTrue == 1 goto StartOfLevel } Actions { } } state CameraCutBikeApproaching { Conditions { } Actions { //First bike controls the intro cutscene //Look in rider_towards.scp CreateSplineCreatures "type=SPEEDERBIKE" "spline=revpath_01" "looping" "script=playerspeeder" "addtoset=1" "distance=40" "relative_to_locator=Intro" Idle "1" CreateSplineCreatures "type=SPEEDERBIKE" "spline=revpath_02" "looping" "script=playerspeeder" "addtoset=1" "distance=40" "relative_to_locator=Intro" SetState "InIntroMiniCut" } } state InIntroMiniCut { Conditions { if InMiniCut == 0 goto Intro_PlayersGetOnBikes } Actions { } } state Intro_PlayersGetOnBikes { Conditions { if OnSpeederBike "Player0" == 1 and if OnSpeederBike "Player1" == 1 goto Stage1_StartChase } Actions { SetMessage "name=KeepPlayersOnSpeeders" "value=1" } } //==Stage1== state Stage1_StartChase { Conditions { } Actions { CameraCut "use_current_campos" "tgt_obj=clear4_ffield1" "blend_in_time=0.5" "blend_out_time=0.5" "end_time=2" Idle "1" DisableNarrowSocks "FALSE" EnableSock "name=main_sock" EnableSock "name=melee_1" "FALSE" EnableSock "name=melee_2" "FALSE" EnableSock "name=melee_3" "FALSE" EnableSock "name=melee_4" "FALSE" PlayObstacle "name=clear4_ffield1" PlayObstacle "name=clear4_ffield2" Idle "3" SetMessage "name=Stage" "value=1" SetMessage "name=Phase" "value=1" SetMessage "name=SpeedersToKill" "value=2" SetMessage "name=SpeedersKilled" "value=0" SetMessage "name=GenerateToChase" "value=1" SetState "Stage1_UpdateChase" } } state Stage1_UpdateChase { Conditions { if Message "SpeedersKilled" > 1 goto Stage1_EndChase } Actions { } } state Stage1_EndChase { Conditions { } Actions { SetMessage "name=test" "value=0" SetMessage "name=Stage" "value=1" SetMessage "name=Phase" "value=0" SetMessage "name=SpeedersToKill" "value=0" SetMessage "name=SpeedersKilled" "value=0" SetMessage "name=GenerateToChase" "value=0" Idle "2" SetState "Stage1_StartLockIn" } } state Stage1_StartLockIn { Conditions { ;if PlayerInTriggerArea "Start_Lock_1" == 1 goto Stage1_StartLockInB if OnSpeederBike "Player0" == 0 and if OnSpeederBike "Player1" == 0 goto Stage1_StartLockInB } Actions { SetMessage "name=KeepPlayersOnSpeeders" "value=0" DisableNarrowSocks EnableSock "name=main_sock" "FALSE" EnableSock "name=melee_1" EnableSock "name=melee_2" "FALSE" EnableSock "name=melee_3" "FALSE" EnableSock "name=melee_4" "FALSE" PlayObstacle "name=clear1_ffield1" PlayObstacle "name=clear1_ffield2" "backwards" ReleaseTakeOver "character=Player0" ReleaseTakeOver "character=Player1" Kill "set=1" Kill "set=2" Kill "set=3" Kill "set=4" Kill "set=5" CreateSplineCreatures "type=SPEEDERBIKE" "spline=mainpath_01" "looping" "script=playerspeeder" "addtoset=3" "distance=-25" "relative_to_locator=Start_Lock_1" "ridden_by=Player0" CreateSplineCreatures "type=SPEEDERBIKE" "spline=mainpath_02" "looping" "script=playerspeeder" "addtoset=3" "distance=-30" "relative_to_locator=Start_Lock_1" "ridden_by=Player1" CreateCreatures "locator=LockIn1_ATST" "type=ATST" "script=melee_walker" "AddToSet=5" SetAIOverrideControl "character=Player0" SetScriptState "character=Player0" "state=Stage1_LockInIntro" SetAIOverrideControl "character=Player1" SetScriptState "character=Player1" "state=Stage1_LockInIntro" CameraCut "campos_x=51" "campos_y=3.6" "campos_z=7" "tgt_character=Player0" "FollowTgt" "blend_out_time=0.5" "end_time=10" "nXo_borders" } } state Stage1_StartLockInB { Conditions { } Actions { PlayObstacle "name=clear1_ffield1" "backwards" SetAIOverrideControl "character=Player0" "FALSE" SetScriptState "character=Player0" "state=Base" SetAIOverrideControl "character=Player1" "FALSE" SetScriptState "character=Player1" "state=Base" EndCameraCut "blend_out_time=0.5" "end_time=0.5" Idle "1" SetMessage "name=Phase" "value=2" SetState "Stage1_LockIn" } } state Stage1_LockIn { Conditions { if ObstacleAtStart "bigshield_down2" == 0 goto Stage1_PlayersGetOnBikes if Message "test" > 0 goto TestJumpTo } Actions { } } state Stage1_PlayersGetOnBikes { Conditions { if OnSpeederBike "Player0" == 1 and if OnSpeederBike "Player1" == 1 goto Stage2_StartChase } Actions { SetMessage "name=KeepPlayersOnSpeeders" "value=1" } } //==Stage2== state Stage2_StartChase { Conditions { } Actions { CameraCut "use_current_campos" "tgt_obj=clear1_ffield2" "blend_in_time=0.5" "blend_out_time=0.5" "end_time=2" Idle "1" DisableNarrowSocks "FALSE" EnableSock "name=main_sock" EnableSock "name=melee_1" "FALSE" EnableSock "name=melee_2" "FALSE" EnableSock "name=melee_3" "FALSE" EnableSock "name=melee_4" "FALSE" PlayObstacle "name=clear1_ffield1" PlayObstacle "name=clear1_ffield2" Idle "2" SetMessage "name=Stage" "value=2" SetMessage "name=Phase" "value=1" SetMessage "name=SpeedersToKill" "value=3" SetMessage "name=SpeedersKilled" "value=0" SetMessage "name=GenerateToChase" "value=1" SetState "Stage2_UpdateChase" } } state Stage2_UpdateChase { Conditions { if Message "SpeedersKilled" > 2 goto Stage2_EndChase } Actions { } } state Stage2_EndChase { Conditions { } Actions { SetMessage "name=test" "value=0" SetMessage "name=Stage" "value=2" SetMessage "name=Phase" "value=0" SetMessage "name=SpeedersToKill" "value=0" SetMessage "name=SpeedersKilled" "value=0" SetMessage "name=GenerateToChase" "value=0" Idle "2" SetState "Stage2_StartLockIn" } } state Stage2_StartLockIn { Conditions { ;if PlayerInTriggerArea "Start_Lock_2" == 1 goto Stage2_StartLockInB if OnSpeederBike "Player0" == 0 and if OnSpeederBike "Player1" == 0 goto Stage2_StartLockInB } Actions { SetMessage "name=KeepPlayersOnSpeeders" "value=0" DisableNarrowSocks EnableSock "name=main_sock" "FALSE" EnableSock "name=melee_1" "FALSE" EnableSock "name=melee_2" EnableSock "name=melee_3" "FALSE" EnableSock "name=melee_4" "FALSE" PlayObstacle "name=clear2_ffield1" PlayObstacle "name=clear2_ffield2" "backwards" ReleaseTakeOver "character=Player0" ReleaseTakeOver "character=Player1" Kill "set=1" Kill "set=2" Kill "set=3" Kill "set=4" Kill "set=5" CreateSplineCreatures "type=SPEEDERBIKE" "spline=mainpath_01" "looping" "script=playerspeeder" "addtoset=3" "distance=-25" "relative_to_locator=Start_Lock_2" "ridden_by=Player0" CreateSplineCreatures "type=SPEEDERBIKE" "spline=mainpath_02" "looping" "script=playerspeeder" "addtoset=3" "distance=-30" "relative_to_locator=Start_Lock_2" "ridden_by=Player1" SetAIOverrideControl "character=Player0" SetScriptState "character=Player0" "state=Stage2_LockInIntro" SetAIOverrideControl "character=Player1" SetScriptState "character=Player1" "state=Stage2_LockInIntro" //////ATST2/// SetObstacleChainPhase "AT1_chainbits" "phase=2" SetObstacleChainPhase "AT1_flow1" "phase=2" SetObstacleChainPhase "AT1_flow2" "phase=2" SetObstacleChainPhase "AT1_allbits" "phase=2" CameraCut "campos_x=-30" "campos_y=3.6" "campos_z=58" "tgt_character=Player0" "FollowTgt" "blend_out_time=0.5" "end_time=10" "nXo_borders" } } state Stage2_StartLockInB { Conditions { } Actions { PlayObstacle "name=clear2_ffield1" "backwards" SetAIOverrideControl "character=Player0" "FALSE" SetScriptState "character=Player0" "state=Base" SetAIOverrideControl "character=Player1" "FALSE" SetScriptState "character=Player1" "state=Base" EndCameraCut "blend_out_time=0.5" "end_time=0.5" Idle "1" SetMessage "name=Phase" "value=2" SetState "Stage2_LockIn" } } state Stage2_LockIn { Conditions { if ObstacleAtStart "bigshield_down3" == 0 goto Stage2_PlayersGetOnBikes if Message "test" > 0 goto TestJumpTo } Actions { } } state Stage2_PlayersGetOnBikes { Conditions { if OnSpeederBike "Player0" == 1 and if OnSpeederBike "Player1" == 1 goto Stage3_StartChase } Actions { SetMessage "name=KeepPlayersOnSpeeders" "value=1" } } //==Stage3== state Stage3_StartChase { Conditions { } Actions { CameraCut "use_current_campos" "tgt_obj=clear2_ffield2" "blend_in_time=0.5" "blend_out_time=0.5" "end_time=2" Idle "1" DisableNarrowSocks "FALSE" EnableSock "name=main_sock" EnableSock "name=melee_1" "FALSE" EnableSock "name=melee_2" "FALSE" EnableSock "name=melee_3" "FALSE" EnableSock "name=melee_4" "FALSE" PlayObstacle "name=clear2_ffield1" PlayObstacle "name=clear2_ffield2" Idle "2" SetMessage "name=Stage" "value=3" SetMessage "name=Phase" "value=1" SetMessage "name=SpeedersToKill" "value=4" SetMessage "name=SpeedersKilled" "value=0" SetMessage "name=GenerateToChase" "value=1" SetState "Stage3_UpdateChase" } } state Stage3_UpdateChase { Conditions { if Message "SpeedersKilled" > 3 goto Stage3_EndChase } Actions { } } state Stage3_EndChase { Conditions { } Actions { SetMessage "name=test" "value=0" SetMessage "name=Stage" "value=3" SetMessage "name=Phase" "value=0" SetMessage "name=SpeedersToKill" "value=0" SetMessage "name=SpeedersKilled" "value=0" SetMessage "name=GenerateToChase" "value=0" Idle "2" SetState "Stage3_StartLockIn" } } state Stage3_StartLockIn { Conditions { ;if PlayerInTriggerArea "Start_Lock_3" == 1 goto Stage3_StartLockInB if OnSpeederBike "Player0" == 0 and if OnSpeederBike "Player1" == 0 goto Stage3_StartLockInB } Actions { SetMessage "name=KeepPlayersOnSpeeders" "value=0" DisableNarrowSocks EnableSock "name=main_sock" "FALSE" EnableSock "name=melee_1" "FALSE" EnableSock "name=melee_2" "FALSE" EnableSock "name=melee_3" EnableSock "name=melee_4" "FALSE" PlayObstacle "name=clear3_ffield1" PlayObstacle "name=clear3_ffield2" "backwards" ReleaseTakeOver "character=Player0" ReleaseTakeOver "character=Player1" Kill "set=1" Kill "set=2" Kill "set=3" Kill "set=4" Kill "set=5" CreateSplineCreatures "type=SPEEDERBIKE" "spline=mainpath_01" "looping" "script=playerspeeder" "addtoset=3" "distance=-25" "relative_to_locator=Start_Lock_3" "ridden_by=Player0" CreateSplineCreatures "type=SPEEDERBIKE" "spline=mainpath_02" "looping" "script=playerspeeder" "addtoset=3" "distance=-30" "relative_to_locator=Start_Lock_3" "ridden_by=Player1" CreateCreatures "locator=LockIn3_ATST" "type=ATST" "script=melee_walker" "AddToSet=5" SetAIOverrideControl "character=Player0" SetScriptState "character=Player0" "state=Stage3_LockInIntro" SetAIOverrideControl "character=Player1" SetScriptState "character=Player1" "state=Stage3_LockInIntro" CameraCut "campos_x=-23" "campos_y=3.6" "campos_z=-62" "tgt_character=Player0" "FollowTgt" "blend_out_time=0.5" "end_time=10" "nXo_borders" } } state Stage3_StartLockInB { Conditions { } Actions { PlayObstacle "name=clear3_ffield1" "backwards" SetAIOverrideControl "character=Player0" "FALSE" SetScriptState "character=Player0" "state=Base" SetAIOverrideControl "character=Player1" "FALSE" SetScriptState "character=Player1" "state=Base" EndCameraCut "blend_out_time=0.5" "end_time=0.5" Idle "1" SetMessage "name=Phase" "value=2" SetState "Stage3_LockIn" } } state Stage3_LockIn { Conditions { if ObstacleAtStart "bigshield_down4" == 0 goto Stage3_PlayersGetOnBikes if Message "test" > 0 goto TestJumpTo } Actions { } } state Stage3_PlayersGetOnBikes { Conditions { if OnSpeederBike "Player0" == 1 and if OnSpeederBike "Player1" == 1 goto Stage4_StartChase } Actions { SetMessage "name=KeepPlayersOnSpeeders" "value=1" } } //==Stage4== state Stage4_StartChase { Conditions { } Actions { CameraCut "use_current_campos" "tgt_obj=clear3_ffield2" "blend_in_time=0.5" "blend_out_time=0.5" "end_time=2" Idle "1" DisableNarrowSocks "FALSE" EnableSock "name=main_sock" EnableSock "name=melee_1" "FALSE" EnableSock "name=melee_2" "FALSE" EnableSock "name=melee_3" "FALSE" EnableSock "name=melee_4" "FALSE" PlayObstacle "name=clear3_ffield1" PlayObstacle "name=clear3_ffield2" Idle "2" SetMessage "name=Stage" "value=4" SetMessage "name=Phase" "value=1" SetMessage "name=SpeedersToKill" "value=5" SetMessage "name=SpeedersKilled" "value=0" SetMessage "name=GenerateToChase" "value=1" SetState "Stage4_UpdateChase" } } state Stage4_UpdateChase { Conditions { if Message "SpeedersKilled" > 4 goto Stage4_EndChase } Actions { } } state Stage4_EndChase { Conditions { } Actions { SetMessage "name=test" "value=0" SetMessage "name=Stage" "value=4" SetMessage "name=Phase" "value=0" SetMessage "name=SpeedersToKill" "value=0" SetMessage "name=SpeedersKilled" "value=0" SetMessage "name=GenerateToChase" "value=0" Idle "2" SetState "Stage4_StartLockIn" } } state Stage4_StartLockIn { Conditions { ;if PlayerInTriggerArea "Start_Lock_4" == 1 goto Stage4_StartLockInB if OnSpeederBike "Player0" == 0 and if OnSpeederBike "Player1" == 0 goto Stage4_StartLockInB } Actions { SetMessage "name=KeepPlayersOnSpeeders" "value=0" DisableNarrowSocks EnableSock "name=main_sock" "FALSE" EnableSock "name=melee_1" "FALSE" EnableSock "name=melee_2" "FALSE" EnableSock "name=melee_3" "FALSE" EnableSock "name=melee_4" PlayObstacle "name=clear4_ffield1" "backwards" PlayObstacle "name=clear4_ffield2" ReleaseTakeOver "character=Player0" ReleaseTakeOver "character=Player1" Kill "set=1" Kill "set=2" Kill "set=3" Kill "set=4" Kill "set=5" CreateSplineCreatures "type=SPEEDERBIKE" "spline=mainpath_01" "looping" "script=playerspeeder" "addtoset=3" "distance=-25" "relative_to_locator=Start_Lock_4" "ridden_by=Player0" CreateSplineCreatures "type=SPEEDERBIKE" "spline=mainpath_02" "looping" "script=playerspeeder" "addtoset=3" "distance=-30" "relative_to_locator=Start_Lock_4" "ridden_by=Player1" SetAIOverrideControl "character=Player0" SetScriptState "character=Player0" "state=Stage4_LockInIntro" SetAIOverrideControl "character=Player1" SetScriptState "character=Player1" "state=Stage4_LockInIntro" //////ATST1/// SetObstacleChainPhase "clear4_ATflow1" "phase=2" SetObstacleChainPhase "clear4_ATflow2" "phase=2" SetObstacleChainPhase "clear4_spin1" "phase=2" SetObstacleChainPhase "clear4_ATbits1" "phase=2" SetObstacleChainPhase "clear4_allAT1" "phase=2" CameraCut "campos_x=54" "campos_y=3.6" "campos_z=-82" "tgt_character=Player0" "FollowTgt" "blend_out_time=0.5" "end_time=10" "nXo_borders" } } state Stage4_StartLockInB { Conditions { } Actions { PlayObstacle "name=clear4_ffield2" "backwards" SetAIOverrideControl "character=Player0" "FALSE" SetScriptState "character=Player0" "state=Base" SetAIOverrideControl "character=Player1" "FALSE" SetScriptState "character=Player1" "state=Base" EndCameraCut "blend_out_time=0.5" "end_time=0.5" Idle "1" SetMessage "name=Phase" "value=2" SetState "Stage4_LockIn" } } state Stage4_LockIn { Conditions { if ObstacleAtStart "bigshield_down1" == 0 goto StagesComplete if Message "test" > 0 goto TestJumpTo } Actions { } } state StagesComplete { Conditions { if PlayerInTriggerArea "End_Bit" == 1 goto PlayerInEndBit } Actions { } } state PlayerInEndBit { Conditions { if PlayerInTriggerArea "End_Bit" == 0 goto StagesComplete } Actions { Kill "set=1" Kill "set=2" Kill "set=3" Kill "set=4" Kill "set=5" } }