public override bool ValidateSelection(Entity entity) { if (entity.GetEntityType() != "Tile") { return(false); } Tile tile = entity as Tile; if (tile.Occupied) { return(false); } if (!tile.Walkable) { return(false); } Tile playerTile = character.currentTile; int xDif = Mathf.Abs(playerTile.X - tile.X); if (xDif > moveRange) { return(false); } int yDif = Mathf.Abs(playerTile.Y - tile.Y); if (yDif > moveRange) { return(false); } if ((xDif + yDif) > moveRange) { return(false); } return(character.GetActionPoints() > 0); }
public override bool ValidateSelection(Entity entity) { if (character.GetActionPoints() <= 0) { return(false); } switch (targetType) { case TargetType.Character: if (entity.GetEntityType() != "SlideCharacter") { return(false); } SlideCharacter ch = entity as SlideCharacter; switch (targetFilter) { case TargetFilter.Enemy: if (ch.Team == character.Team) { return(false); } break; case TargetFilter.Freindly: if (ch.Team != character.Team) { return(false); } break; default: break; } break; case TargetType.Tile: if (entity.GetEntityType() != "Tile") { return(false); } break; case TargetType.Either: if (entity.GetEntityType() != "Tile" && entity.GetEntityType() != "SlideCharacter") { return(false); } break; case TargetType.Self: if (entity != character) { return(false); } break; default: return(false); } var tile = entity.getCurrentTile(); int xDif = Mathf.Abs(tile.X - character.currentTile.X); if (xDif > range) { return(false); } int yDif = Mathf.Abs(tile.Y - character.currentTile.Y); if (yDif > range) { return(false); } int total = xDif + yDif; if (targetRange == TargetRange.Melee) { if (total > 2) { return(false); } } else { if (total > (range * 2)) { return(false); } } return(true); }