//HothEscape_B state InActive { Conditions { if FreePlay == 1 goto Activate if IAm "Chewbacca" == 0 goto Activate if Message "FoundChewy" == 1 goto Activate } Actions { } } state Activate { Conditions { } Actions { Activate ;Activate starts the creature. Will be started at position calculated in AllocatedPickup } } state Base { Conditions { if FreePlay == 1 goto UpdateFreePlay if IAm "C3PO" == 1 goto UpdateC3PO if AlwaysTrue == 1 goto UpdateNormal } Actions { } } state UpdateNormal { ReferenceScript { Script=GeneralParty Source=Global ReturnState=UpdateNormal Conditions { } } Conditions { } Actions { FollowPlayer "1" } } state UpdateFreePlay { ReferenceScript { Script=GeneralParty Source=Global ReturnState=UpdateFreePlay Conditions { if PlayerOnObject "force_lift_1" == 0 and if PlayerOnObject "force_lift_2" == 0 } } Conditions { if PlayerOnObject "force_lift_1" == 1 goto ForceLift1Help if PlayerOnObject "force_lift_2" == 1 goto ForceLift2Help } Actions { FollowPlayer "1" } } state ForceLift1Help { Conditions { if PlayerOnObject "force_lift_1" == 0 goto UpdateFreePlay } Actions { GoToLocator "name" "force_lift_1" UseForce "name=force_lift_1" } } state ForceLift2Help { Conditions { if PlayerOnObject "force_lift_2" == 0 goto UpdateFreePlay } Actions { GoToLocator "name" "force_lift_2" UseForce "name=force_lift_2" } } state UpdateC3PO { ReferenceScript { Script=GeneralParty Source=Global ReturnState=UpdateC3PO Conditions { } } Conditions { if InTriggerArea "C3PO_1" == 1 and if PlayerInTriggerArea "Corridor" == 0 goto C3POAreaUpdate if InTriggerArea "C3PO_2" == 1 and if PlayerInTriggerArea "Corridor" == 0 goto C3POAreaUpdate if InTriggerArea "C3PO_2" == 1 and if PlayerInTriggerArea "Corridor" == 0 goto C3POAreaUpdate if ObstaclePlaying "fan_1" == 1 and if UnderPlayerControl "snowmob_1" == 1 goto GetOnSnowMob if ObstaclePlaying "fan_2" == 1 and if UnderPlayerControl "snowmob_1" == 1 goto GetOnSnowMob } Actions { CatchUpForbidden DontAvoidCharacter "character=C3PO" "dont_avoid=snowmob" "FALSE" DontAvoidCharacter "character=snowmob" "dont_avoid=C3PO" "FALSE" FollowPlayer "1" } } state C3POAreaUpdate { Conditions { if PlayerInTriggerArea "Corridor" == 1 goto UpdateC3PO if InTriggerArea "C3PO_1" == 0 and if InTriggerArea "C3PO_2" == 0 and if InTriggerArea "C3PO_3" == 0 goto UpdateC3PO } Actions { GoToLocator "name" "C3PO_Panel" } } state GetOnSnowMob { Conditions { if OnObject "snowmob_1" == 1 goto StandingOnSnowMob if ObstaclePlaying "fan_1" == 0 goto GoToFan2 if ObstaclePlaying "fan_2" == 0 goto GoToFan1 if AlwaysTrue == 1 goto GoToNearestFan } Actions { DontAvoidCharacter "character=C3PO" "dont_avoid=snowmob" DontAvoidCharacter "character=snowmob" "dont_avoid=C3PO" } } //Set fan locator state GoToFan1 { Conditions { } Actions { SetLocator "name=fan_1" SetState "GoToFan" } } state GoToFan2 { Conditions { } Actions { SetLocator "name=fan_2" SetState "GoToFan" } } state GoToNearestFan { Conditions { } Actions { GetLocatorFromGroup "name=fan" SetState "GoToFan" } } state GoToFan { Conditions { if InTriggerArea "C3PO_1" == 1 goto C3POAreaUpdate if InTriggerArea "C3PO_2" == 1 goto C3POAreaUpdate if InTriggerArea "C3PO_2" == 1 goto C3POAreaUpdate if UnderPlayerControl "snowmob_1" == 0 goto UpdateC3PO } Actions { GoToLocator "xz_rangecheck" SetState "WaitAtFan" } } state WaitAtFan { Conditions { if InTriggerArea "C3PO_1" == 1 goto C3POAreaUpdate if InTriggerArea "C3PO_2" == 1 goto C3POAreaUpdate if InTriggerArea "C3PO_2" == 1 goto C3POAreaUpdate if UnderPlayerControl "snowmob_1" == 0 goto UpdateC3PO if LocatorRangeXZ "Snow_Mob" < 1 goto FallOntoSnowMob if LocatorRangeXZ > 0.25 goto GoToFan } Actions { } } state FallOntoSnowMob { Conditions { if InTriggerArea "C3PO_1" == 1 goto C3POAreaUpdate if InTriggerArea "C3PO_2" == 1 goto C3POAreaUpdate if InTriggerArea "C3PO_2" == 1 goto C3POAreaUpdate if UnderPlayerControl "snowmob_1" == 0 goto UpdateC3PO if OnObject "snowmob_1" == 1 goto StandingOnSnowMob if LocatorRangeY "Snow_Mob" < -0.1 goto UpdateC3PO } Actions { GoToLocator "name" "Snow_Mob" "ignore_path" "waittime=9999999" } } state StandingOnSnowMob { Conditions { if InTriggerArea "C3PO_1" == 1 goto C3POAreaUpdate if InTriggerArea "C3PO_2" == 1 goto C3POAreaUpdate if InTriggerArea "C3PO_2" == 1 goto C3POAreaUpdate if UnderPlayerControl "snowmob_1" == 0 goto UpdateC3PO if OnObject "snowmob_1" == 0 goto UpdateC3PO if LocatorRangeY "Snow_Mob" < -0.1 goto UpdateC3PO } Actions { GoToLocator "name" "Snow_Mob" "ignore_path" "waittime=9999999" } }