state InActive { Conditions { if ObstacleAtStart "Throne_Gate" == 1 goto Activate } Actions { } } state Activate { Conditions { } Actions { Activate ;Activate starts the creature. Will be started at position calculated in AllocatedPickup } } //Starts off on locator "Vader_OffScreen" state Base { Conditions { if EitherPlayerInTriggerArea "Start_Fight" == 1 goto StartFight } Actions { SetBoss SetHitPoints "8" SetLocator "name=Vader_OffScreen" SnapToLocator } } state StartFight { Conditions { } Actions { CameraCut "range=3" "rotx=20" "roty=0" "tgt_locator=Fight_1" "blend_in_time=1" "blend_out_time=0" "end_time=3" "nXo_borders" Idle "1.5" SetLocator "name=Fight_1" SnapToLocator AddDebris "type=CHAR_SMOKE2" Idle "1" KeepWeaponOut SetMessage "name=ShowHearts" "value=1" SetState "LowerFight" } } //////////////// state LowerFight { Conditions { if HitPoints > 2 and if HitPoints < 7 goto SetLocator2 if EitherPlayerInTriggerArea "Start_Fight" == 0 goto LowerFightWait } Actions { AttackOpponent "range 0.5" } } state LowerFightWait { Conditions { if HitPoints > 2 and if HitPoints < 7 goto SetLocator2 if EitherPlayerInTriggerArea "Start_Fight" == 1 goto LowerFight } Actions { GoToLocator FacePlayer } } //////////////// state Fight { Conditions { if HitPoints < 3 goto SetLocator1 if HitPoints < 5 and if CurrentLocatorIs "Fight_3" == 0 goto SetLocator3 if HitPoints > 4 and if HitPoints < 7 and if CurrentLocatorIs "Fight_2" == 0 goto SetLocator2 if OpponentToLocatorY > 0.5 goto Wait if OpponentToLocatorY < -0.5 goto Wait if OpponentToLocatorXZ > 1.5 goto Wait if LocatorRangeY < -1 goto BigJumpToLocator } Actions { AttackOpponent "range 0.5" } } state Wait { Conditions { if HitPoints < 3 goto SetLocator1 if HitPoints < 5 and if CurrentLocatorIs "Fight_3" == 0 goto SetLocator3 if HitPoints > 4 and if HitPoints < 7 and if CurrentLocatorIs "Fight_2" == 0 goto SetLocator2 if OpponentToLocatorY < 0.5 and if OpponentToLocatorY > -0.5 and if OpponentToLocator < 1 goto Fight if LocatorRangeY < -1 goto BigJumpToLocator } Actions { GoToLocator FacePlayer } } //////////////////////// state BigJumpToLocator { Conditions { } Actions { BigJumpToLocator SetState "Wait" } } state SetLocator1 { Conditions { } Actions { AddDebris "type=CHAR_SMOKE2" SnapToLocator "name=Vader_OffScreen" Idle "0.5" CameraCut "use_current_campos" "tgt_locator=Fight_1" "end_time=2" "blend_in_time=0.5" "blend_out_time=0.5" "no_borders" Idle "1" SetLocator "name=Fight_1" SnapToLocator AddDebris "type=CHAR_SMOKE2" SetState "LowerFightWait" } } state SetLocator2 { Conditions { } Actions { AddDebris "type=CHAR_SMOKE2" SnapToLocator "name=Vader_OffScreen" Idle "0.5" CameraCut "use_current_campos" "tgt_locator=Fight_2" "end_time=2" "blend_in_time=0.5" "blend_out_time=0.5" "no_borders" Idle "1" SetLocator "name=Fight_2" SnapToLocator AddDebris "type=CHAR_SMOKE2" SetState "Wait" } } state SetLocator3 { Conditions { } Actions { AddDebris "type=CHAR_SMOKE2" SnapToLocator "name=Vader_OffScreen" Idle "0.5" CameraCut "use_current_campos" "tgt_locator=Fight_3" "end_time=2" "blend_in_time=0.5" "blend_out_time=0.5" "no_borders" Idle "1" SetLocator "name=Fight_3" SnapToLocator AddDebris "type=CHAR_SMOKE2" SetState "Wait" } }