Esempio n. 1
0
        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;
            }
        }