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); }
/// <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); }