public void DeHighlightOtherTeamTilePieces(List <PieceEV> alteredPieces, PlayerColor pieceTeam, IEntitiesDB entitiesDB) { HighlightState highlightStateToRemove = HighlightService.CalcClickHighlightState(pieceTeam); // TODO Remove team highlights based on Team Color, not piece ref id List <TileEV> tiles = tileService.FindAllTileEVs(entitiesDB) .Where(tile => tile.Highlight.IsHighlighted && tile.Highlight.CurrentColorStates.Contains(highlightStateToRemove) ).ToList(); foreach (TileEV tile in tiles) { entitiesDB.ExecuteOnEntity( tile.ID, (ref TileEV tileToChange) => { tileToChange.Highlight.CurrentColorStates.Remove(highlightStateToRemove); tileToChange.Tile.PieceRefEntityId = null; if (!tileToChange.Highlight.CurrentColorStates.Any()) { tileToChange.Highlight.IsHighlighted = false; } }); tile.ChangeColorTrigger.PlayChangeColor = true; } }
private void ClearPieceReferenceFromTiles() { TileEV[] tileEVs = tileService.FindAllTileEVs(entitiesDB); for (int i = 0; i < tileEVs.Length; ++i) { tileEVs[i].Tile.PieceRefEntityId = null; } }
public void Step(ref TurnStartStepState token, int condition) { TurnEV turnEV = turnService.GetCurrentTurnEV(entitiesDB); TileEV[] tiles = tileService.FindAllTileEVs(entitiesDB); FindAndHighlightTeamTiles(PlayerColor.BLACK, tiles, PlayerColor.BLACK == turnEV.TurnPlayer.PlayerColor); FindAndHighlightTeamTiles(PlayerColor.WHITE, tiles, PlayerColor.WHITE == turnEV.TurnPlayer.PlayerColor); PlayColorAllTiles(tiles); }
private void UnPressTiles() { TileEV[] tileEVs = tileService.FindAllTileEVs(entitiesDB); for (int i = 0; i < tileEVs.Length; ++i) { if (tileEVs[i].Highlight.IsPressed.value) { tileEVs[i].Highlight.IsPressed.value = false; // Will trigger a TilePressEngine, but IsPressed check will stop it } } }
private List <TileEV> FindTilesToChange(List <Vector2> affectedTiles) { List <TileEV> returnValue = new List <TileEV>(); // TODO Cache all Tiles, since they will not change var entityViews = tileService.FindAllTileEVs(entitiesDB); // TODO Use Linq Where() filtering for (int i = 0; i < entityViews.Length; ++i) { if (affectedTiles.Contains(entityViews[i].Location.Location)) { returnValue.Add(entityViews[i]); } } return(returnValue); }
private void UnHighlightTiles() { TileEV[] tileEVs = tileService.FindAllTileEVs(entitiesDB); for (int i = 0; i < tileEVs.Length; ++i) { // TODO Sloppy coding; if gated with an if statement, captured piece's range highlight remains. entitiesDB.ExecuteOnEntity( tileEVs[i].ID, (ref TileEV tileToChange) => { tileToChange.Highlight.IsHighlighted = false; tileToChange.Highlight.CurrentColorStates.Clear(); }); tileEVs[i].ChangeColorTrigger.PlayChangeColor = true; } }