/// <summary> /// Set valid positions as active /// </summary> public void ValidatePositions() { ValidPositions .Where(vp => vp.X > GridLayer.ColumnDefinitions.Count || vp.Y > GridLayer.RowDefinitions.Count) .ToList() .ForEach(vp => ValidPositions.Remove(vp)); GridLayer.Placeholders .ToList() .ForEach(p => p.IsActive = false); GridLayer.Placeholders .Where(p => ValidPositions.Contains(p.Position)) .ToList() .ForEach(p => p.IsActive = true); if (!AllowOccupiedPositions) { GridLayer.Placeholders .Where(p => GetLayerData(p.Position) != null) .ToList() .ForEach(p => p.IsActive = false); } }
protected Boolean IsMovimentCorrect(Coordinates oldCoordinate , Coordinates newCoordinate) { int movimentPosition = ValidPositions.IndexOf(oldCoordinate); if (movimentPosition != -1) { foreach (Coordinates oldC in ValidPositionMoviments[movimentPosition]) { if (oldC.Position == newCoordinate.Position) { return(true); } } } return(false); }
private void SimulateAttack(bool highlight) { ValidPositions?.ForEach(p => SimulateAttack(highlight, p, this.DeltaHealth, this.Knockback, true)); }
public bool IsPositionValid(string position) { return(ValidPositions.Exists(delegate(Coordinates coordinates) { return coordinates.Position.Equals(position); })); }
public override void Execute() { SimulateAttack(false); ValidPositions?.ForEach(p => AttackPositions(p)); this.IsActive(false); }