Ejemplo n.º 1
0
        public void Update()
        {
            Hitbox = new Rectangle((int)Position.X, (int)Position.Y, (int)Sprite.Size.X, (int)Sprite.Size.Y);
            switch (State)
            {
            case (States.MonsterState.Spawning):
                StateMachine.SpawnState();
                break;

            case (States.MonsterState.Attacking):
                StateMachine.AttackState();
                break;

            case (States.MonsterState.Idle):
                StateMachine.IdleState();
                break;

            case (States.MonsterState.Moving):
                StateMachine.MoveState();
                break;

            case (States.MonsterState.Damaged):
                StateMachine.DamagedState();
                break;

            case (States.MonsterState.Dead):
                StateMachine.DeadState();
                break;

            default:
                State = States.MonsterState.Idle;
                break;
            }
        }
Ejemplo n.º 2
0
 public Monster(MonsterSprite sprite, Vector2 spawn, string name, Game1 game)
 {
     Sprite = sprite;
     Name   = name;
     Game   = game;
     sprite.UpdatePosition(spawn);
     Position  = spawn;
     Hitbox    = new Rectangle((int)Position.X, (int)Position.Y, (int)Sprite.Size.X, (int)Sprite.Size.Y);
     State     = States.MonsterState.Spawning;
     Direction = States.Direction.Up;
 }
Ejemplo n.º 3
0
 public void TakeDamage(States.Direction directionHit, int damage)
 {
     CanDamage = false;
     if (State == States.MonsterState.Attacking || State == States.MonsterState.Moving ||
         State == States.MonsterState.Idle)
     {
         HP -= damage;
         if (HP <= 0)
         {
             State = States.MonsterState.Dead;
         }
         else
         {
             Sprite.ChangeSpriteAnimation(Name + "Damaged");
             Direction = directionHit;
             State     = States.MonsterState.Damaged;
         }
     }
 }
Ejemplo n.º 4
0
 public void Unpause()
 {
     State     = States.MonsterState.Idle;
     BaseSpeed = BaseSpeedRestore;
 }
Ejemplo n.º 5
0
 public void Pause()
 {
     State            = States.MonsterState.Idle;
     BaseSpeedRestore = BaseSpeed;
     BaseSpeed        = 0f;
 }