Beispiel #1
0
 public override void Load()
 {
     SetCostume("Moles/TestMole").YCenter = VerticalAlignments.Top;
     Scale = 0.3f;
     State = MoleStates.Waiting;
     Hide();
 }
Beispiel #2
0
 /// <summary>
 /// Start moving the mole down
 /// </summary>
 public void Drop()
 {
     // If it was hit, then it's already going down
     if (State != MoleStates.Hit)
     {
         State = MoleStates.Dropping;
         GlideTo(EndPosition, DropSeconds);
         Wait(DropSeconds, Done);
     }
 }
Beispiel #3
0
 public void Hit()
 {
     if (State != MoleStates.Dropping)
     {
         // If it was dropping, then Done has already been scheduled
         // Don't need to schedule it twice
         Wait(0.4f, Done);
     }
     State = MoleStates.Hit;
     SpriteColor = Color.Red;
     GlideTo(EndPosition, 0.4f);
 }
Beispiel #4
0
        public void ChangeMoleState(MoleStates state)
        {
            var previousState = State;

            State = state;

            switch (state)
            {
            case MoleStates.Hiding:

                SetImage(Properties.Resources.holeNoMole);

                break;

            case MoleStates.Shown:

                SetImage(Properties.Resources.holeWithMole);
                OnShow?.Invoke();

                break;

            case MoleStates.Hit:

                SetImage(Properties.Resources.holeWithMoleHit);
                OnHit?.Invoke();

                break;

            case MoleStates.Missed:

                SetImage(Properties.Resources.holeMissed);
                OnMiss?.Invoke();

                break;

            default:
                break;
            }

            ResetDurations();
        }
Beispiel #5
0
 public void Pop(int positionNum, bool colorDebugMode)
 {
     if (colorDebugMode)
     {
         Color[] colors = { Color.Green, Color.Aqua, Color.Blue, Color.Indigo, Color.Violet, Color.Red, Color.Orange, Color.Yellow};
         SpriteColor = colors[positionNum];
     }
     switch (positionNum)
     {
         case 0:
         case 1:
             Layer = 2;
             break;
         case 2:
         case 3:
             Layer = 4;
             break;
         case 4:
         case 5:
             Layer = 6;
             break;
         case 6:
         case 7:
             Layer = 8;
             break;
     }
     PositionNum = positionNum;
     State = MoleStates.Rising;
     Position = StartPosition;
     Position.Y -= 25;
     EndPosition = Position;
     Show();
     GlideTo(StartPosition, 1);
 }
Beispiel #6
0
 void Done()
 {
     if (State == MoleStates.Dropping)
     {
         State = MoleStates.Missed;
     }
     else
     {
         State = MoleStates.Done;
     }
     (Scene as PlayScreen).MolesNeedCleanup();
 }
Beispiel #7
0
 /// <summary>
 /// Mole update (60 times a second)
 /// </summary>
 public override void Update(Microsoft.Xna.Framework.GameTime gameTime)
 {
     if (State == MoleStates.Rising)
     {
         if (Position == StartPosition)
         {
             State = MoleStates.Up;
             Wait(UpSeconds, Drop);
         }
     }
 }
Beispiel #8
0
 void SetState(MoleStates newState)
 {
     currentState = newState;
 }
Beispiel #9
0
 void ChangeState(MoleStates nextState)
 {
     currentState = nextState;
 }