Exemple #1
0
        public void InitTest()
        {
            _field = new GameField();

            _meleeUnit = new Unit
            {
                CurrentHealth = 50,
                Damage        = 20,
                Defence       = 20,
                DisplayName   = "Knight",
                Health        = 200,
                Initiative    = 20,
                UnitType      = UnitType.Melee
            };

            _rangeUnit = new Unit()
            {
                CurrentHealth = 40,
                Damage        = 20,
                Defence       = 0,
                DisplayName   = "Archer",
                Health        = 120,
                Initiative    = 30,
                UnitType      = UnitType.Range
            };

            _field.AddUnit(_meleeUnit.GetUnitWithSide(Side.LeftSide), GamePosition.FrontCenter);
            _field.AddUnit(_meleeUnit.GetUnitWithSide(Side.LeftSide), GamePosition.FrontLeft);
            _field.AddUnit(_rangeUnit.GetUnitWithSide(Side.LeftSide), GamePosition.RearCenter);
            _field.AddUnit(_meleeUnit.GetUnitWithSide(Side.RightSide), GamePosition.FrontCenter);
            _field.AddUnit(_meleeUnit.GetUnitWithSide(Side.RightSide), GamePosition.FrontLeft);
            _field.AddUnit(_rangeUnit.GetUnitWithSide(Side.RightSide), GamePosition.RearCenter);
        }
Exemple #2
0
 /// <summary>
 /// Поглощение частицы
 /// </summary>
 /// <param name="gameUnit"></param>
 /// <param name="gameField"></param>
 public override bool Collision(GameUnit gameUnit, GameField gameField)
 {
     if (gameUnit.UnitStatus == Status.Passive)
     {
         return(false);
     }
     if (gameUnit == this)
     {
         return(false);
     }
     if (gameUnit.GetType() == this.GetType())
     {
         return(false);                                      // Столкновения между пызырями не учитываем
     }
     if ((gameUnit.X - X) * (gameUnit.X - X) + (gameUnit.Y - Y) * (gameUnit.Y - Y) <= Size * Size)
     {
         gameUnit.UnitStatus = Status.Passive;
         gameField.AddUnit(new Bubble(gameUnit.X, gameUnit.Y));
         return(true);
     }
     return(false);
 }