Example #1
0
 public SlideDownFlagDecorator(IMario mario, Vector2 locationOfBase) : base(mario)
 {
     this.locationOfBase = locationOfBase;
     slidingState        = SlidingStates.SLIDING_DOWN;
     ScoringSystem.Instance.AddPointsForFinalPole(mario.Box);
     LevelCounter.Instance.LevelUp();
     SoundManager.StopSong();
     SoundManager.Instance.PlaySoundEffect("clearStage");
 }
Example #2
0
        public override void Update()
        {
            switch (slidingState)
            {
            case SlidingStates.SLIDING_DOWN:
                Timer.StopTimer();
                if (Math.Abs(DecoratedMario.Position.Y - locationOfBase.Y) > DecoratorUtil.locationOffset)
                {
                    DecoratedMario.Position += Vector2.UnitY * DecoratorUtil.locationOffset;
                }
                else
                {
                    slidingState = SlidingStates.WALKING_RIGHT;
                }
                break;

            case SlidingStates.WALKING_RIGHT:
                if (DecoratedMario.Position.X > GameObjectManager.Instance.EndOfLevelXPosition + DecoratorUtil.walkRightOffset)
                {
                    slidingState = SlidingStates.HOLDING;
                }
                else
                {
                    this.DecoratedMario.GoRight();
                    this.DecoratedMario.Position += Vector2.UnitX * DecoratorUtil.Double;
                }

                break;

            case SlidingStates.HOLDING:
                if (holdingTime <= 0)
                {
                    holdingTime--;
                }
                else
                {
                    slidingState = SlidingStates.EXIT;
                }
                break;

            default:
                RemoveSelf();
                break;
            }
        }