Ejemplo n.º 1
0
        public void ResetMovement(States.Direction direction)
        {
            int randomDirection = Game1.random.Next(0, 4);

            if (randomDirection == (int)direction)
            {
                randomDirection = Game1.random.Next(0, 4);
            }
            else
            {
                Self.Direction = (States.Direction)randomDirection;
                if (Self.State != States.MonsterState.Damaged)
                {
                    Self.State = States.MonsterState.Moving;
                    if (ResetCounter == ResetThreshold)
                    {
                        Pursue();
                    }
                    else
                    {
                        ResetCounter++;
                        SetPath();
                    }
                }
            }
        }
Ejemplo n.º 2
0
        public void ChangeDirection(States.Direction direction)
        {
            if (Direction != direction && State != States.LinkState.Damaged)
            {
                switch (direction)
                {
                case (States.Direction.Up):
                    directionName = "Up";
                    Sprite.ChangeSpriteAnimation("WalkUp");
                    break;

                case (States.Direction.Down):
                    directionName = "Down";
                    Sprite.ChangeSpriteAnimation("WalkDown");
                    break;

                case (States.Direction.Left):
                    directionName = "Left";
                    Sprite.ChangeSpriteAnimation("WalkLeft");
                    break;

                case (States.Direction.Right):
                    directionName = "Right";
                    Sprite.ChangeSpriteAnimation("WalkRight");
                    break;
                }
                Direction = direction;
            }
        }
Ejemplo n.º 3
0
        public void ChangeDirection(States.Direction direction)
        {
            if (Direction != direction)
            {
                switch (direction)
                {
                case (States.Direction.Up):
                    Direction = States.Direction.Up;
                    Sprite.ChangeSpriteAnimation("DamagedUp");
                    break;

                case (States.Direction.Down):
                    Direction = States.Direction.Down;
                    Sprite.ChangeSpriteAnimation("DamagedDown");
                    break;

                case (States.Direction.Left):
                    Direction = States.Direction.Left;
                    Sprite.ChangeSpriteAnimation("DamagedLeft");
                    break;

                case (States.Direction.Right):
                    Direction = States.Direction.Right;
                    Sprite.ChangeSpriteAnimation("DamagedRight");
                    break;
                }
                Direction = direction;
            }
        }
Ejemplo n.º 4
0
 public static void MonsterHitLink(Monster monster, ILink link)
 {
     if (monster.CanDamage && link.State != States.LinkState.Damaged && link.State != States.LinkState.Dead)
     {
         States.Direction knockbackDirection = DirectionResolution(monster, link);
         link.TakeDamage(knockbackDirection, monster.AttackDamage);
     }
 }
Ejemplo n.º 5
0
 public SwordBeam(Game1 game, IGameObject creator, States.Direction direction)
 {
     Game      = game;
     Creator   = creator;
     Position  = Creator.Position;
     Direction = direction;
     Damage    = 1;
 }
Ejemplo n.º 6
0
 public Bullet(Game1 game, IGameObject creator, States.Direction direction)
 {
     Game      = game;
     Creator   = creator;
     Position  = Creator.Position;
     Direction = direction;
     Damage    = 5;
 }
Ejemplo n.º 7
0
 public MovableBlock(Game1 game, Vector2 position, States.Direction movableDirection)
 {
     Position         = position;
     Sprite           = new StaticSprite(game, "Block", position, game.TileSpriteSheet, game.spriteBatch);
     Hitbox           = new Rectangle((int)Position.X, (int)Position.Y, (int)Sprite.Size.X, (int)Sprite.Size.Y);
     MovableDirection = movableDirection;
     SetSpeed();
 }
Ejemplo n.º 8
0
 /*
  * addes sound Effects
  * 0.LOZ_Arrow_Boomerang
  * 1 LOZ_Bomb_Blow
  * 2 LOZ_Bomb_Drop
  * 3 LOZ_Boss_Scream1
  * 4 LOZ_Candle
  * 5 LOZ_Door_Unlock
  * 6 LOZ_Enemy_Die
  * 7 LOZ_Enemy_Hit
  * 8 LOZ_Fanfare
  * 9 LOZ_Get_Heart
  * 10 LOZ_Get_Item
  * 11 LOZ_Get_Rupee
  * 12 LOZ_Key_Appear
  * 13 LOZ_Link_Die
  * 14 LOZ_Link_Hurt
  * 15 LOZ_Secret
  * 16 LOZ_Stairs
  * 17 LOZ_Sword_Shoot
  * 18 LOZ_Sword_Slash
  */
 public BlueCandle(Game1 game, IGameObject creator, States.Direction direction)
 {
     Game      = game;
     Creator   = creator;
     Position  = Creator.Position;
     Direction = direction;
     Damage    = 1;
 }
Ejemplo n.º 9
0
 public static void TrapHitLink(Game1 game, ITrap trap, ILink link)
 {
     if (trap.CanDamage)
     {
         States.Direction knockbackDirection = DirectionResolution(trap, link);
         link.TakeDamage(knockbackDirection, trap.Damage);
     }
     trap.OnHit();
 }
Ejemplo n.º 10
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.º 11
0
 public void PushBlock(States.Direction directionPushed)
 {
     if (directionPushed.Equals(MovableDirection) && MovableDistance != 0)
     {
         Sprite.UpdatePosition(Position);
         Position        += MoveSpeed;
         MovableDistance -= 0.5f;
     }
     else if (MovableDistance == 0)
     {
         TriggerDoor = true;
     }
 }
Ejemplo n.º 12
0
        public static void AttackHitMonster(IAttack attack, Monster monster)
        {
            if (attack.IsCreator(monster) && !attack.CanDamage)
            {
                attack.Sprite.Remove();
            }

            else if (!attack.IsCreator(monster) && attack.CanDamage && monster.State != States.MonsterState.Damaged && monster.State != States.MonsterState.Dead)
            {
                States.Direction knockbackDirection = DirectionResolution(attack, monster);
                monster.TakeDamage(knockbackDirection, attack.Damage);
                attack.OnHit();
            }
        }
Ejemplo n.º 13
0
 public static void AttackHitLink(Game1 game, IAttack attack, ILink link)
 {
     if (!attack.IsCreator(link))
     {
         if (attack.CanDamage)
         {
             States.Direction knockbackDirection = DirectionResolution(attack, link);
             link.TakeDamage(knockbackDirection, attack.Damage);
             attack.OnHit();
         }
     }
     else if (attack.Sprite.Name.Equals("BoomerangEffect") || attack.Sprite.Name.Equals("ProjectileHit"))
     {
         attack.Sprite.Remove();
     }
 }
Ejemplo n.º 14
0
        public void ResetMovement(States.Direction direction)
        {
            int randomDirection = Game1.random.Next(0, 4);

            if (randomDirection == (int)direction)
            {
                randomDirection = Game1.random.Next(0, 4);
            }
            else
            {
                Self.Direction = (States.Direction)randomDirection;
                if (Self.State != States.MonsterState.Damaged)
                {
                    Self.State = States.MonsterState.Moving;
                }
                SetPath();
            }
        }
Ejemplo n.º 15
0
 public void TakeDamage(States.Direction directionHit, int damage)
 {
     if (State != States.LinkState.Damaged)
     {
         HP -= damage;
         Game.hud.UpdateCurrentHealth(Game.Link.HP);
         if (HP < 1 && State != States.LinkState.Dead)
         {
             State = States.LinkState.Dead;
             StateMachine.DeadState();
         }
         else if (State != States.LinkState.Damaged)
         {
             Sprite.ChangeSpriteAnimation("Damaged" + directionName);
             Direction = directionHit;
             State     = States.LinkState.Damaged;
         }
     }
 }
Ejemplo n.º 16
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.º 17
0
        static private States.Direction ParseDirection(string direction)
        {
            States.Direction dir = States.Direction.None;

            switch (direction)
            {
            case "Up":
                dir = States.Direction.Up;
                break;

            case "Down":
                dir = States.Direction.Down;
                break;

            case "Left":
                dir = States.Direction.Left;
                break;

            case "Right":
                dir = States.Direction.Right;
                break;
            }
            return(dir);
        }
Ejemplo n.º 18
0
 public void ChangeDirection(States.Direction direction)
 {
     // Cannot move
 }
Ejemplo n.º 19
0
 public void ChangeDirection(States.Direction direction)
 {
     // He is dead, don't you see
 }
Ejemplo n.º 20
0
 public void TakeDamage(States.Direction directionHit, int damage)
 {
     // Cannot take damage in damaged state
 }
Ejemplo n.º 21
0
 public static void LinkMoveBlock(ILink link, MovableBlock block)
 {
     States.Direction direction = DirectionResolution(block, link);
     block.PushBlock(direction);
     GetOffBlock(link, block.Hitbox);
 }
Ejemplo n.º 22
0
 private ConcurrentBag <Passenger> GetAllPassengersOnCurrentFloorByDirection(int floorIndex, States.Direction direction)
 {
     lock (locker)
     {
         return(((IQueue)dispatcher.QueueManager).GetAllPassengersOnFloorByDirection(floorIndex, direction));
     }
 }
Ejemplo n.º 23
0
 public void TakeDamage(States.Direction directionHit, int damage)
 {
     RemoveDecorator();
     decoratedLink.TakeDamage(directionHit, damage);
 }