public override void Update(Player pPlayer, Player pOtherPlayer) { switch (pPlayer.mCurrentState) { case 0: //-----Zu Position bewegen----- if (Conditions.PlayerAtNearestActionPosition(pPlayer)) { ++pPlayer.mCurrentState; } Sequences.MovePlayerToNearestActionPosition(pPlayer); break; case 1: //-----Animation starten----- Sequences.StartAnimation(pPlayer, Hardcoded.Anim_SlipAway_Gretel); //Weg bewegen ++pPlayer.mCurrentState; break; case 2: //-----Weg bewegt?----- if (Conditions.AnimationComplete(pPlayer)) { Destination = rIObj.DistantActionPosition(pPlayer.SkeletonPosition); pPlayer.IsVisible = false; ++pPlayer.mCurrentState; } break; case 3: //-----Durch Felsspalt bewegen----- if (pPlayer.SkeletonPosition == Destination) { Sequences.StartAnimation(pPlayer, Hardcoded.Anim_SlipBack_Gretel); //Wieder "auftauchen" pPlayer.IsVisible = true; ++pPlayer.mCurrentState; break; } Sequences.MoveToPosition(pPlayer, Destination); break; case 4: //-----Wieder komplett da?----- if (Conditions.AnimationComplete(pPlayer)) { Sequences.SetPlayerToIdle(pPlayer); } break; } }