public Cell(Cell cell, SeenState seenState, int controlledByFaction, byte borders) { Index = cell.Index; TerrainId = cell.TerrainId; Texture = cell.Texture; SeenState = seenState; ControlledByFaction = controlledByFaction; Borders = borders; }
public void SetCell(Cell cell, SeenState seenState, int controlledByFaction) { if (cell.Equals(Cell.Empty)) { return; } var newCell = new Cell(cell, seenState, controlledByFaction, cell.Borders); if (cell.SeenState != newCell.SeenState) { // raise event var args = new EventArgs(); OnNewCellSeen(args); } Cells[cell.Column, cell.Row] = newCell; }
private static Color[,] GetHexColors(Color seenColor, Color unseenColor, SeenState seenState) { Color[,] colors = new Color[7, 8]; for (var row = 0; row < 8; row++) { for (var column = 0; column < 7; column++) { Color colorToSet; if (seenState == SeenState.NeverSeen) { colorToSet = unseenColor; } else if (row >= 2 && row <= 5) { colorToSet = seenColor; } else if (row == 0 || row == 7) { colorToSet = column == 3 ? seenColor : Color.Transparent; } else if (row == 1 || row == 6) { if (column == 0 || column == 6) { colorToSet = Color.Transparent; } else { colorToSet = seenColor; } } else { throw new Exception(); } colors[column, row] = colorToSet; } } return(colors); }
public void SetCell(Cell cell, SeenState seenState) { SetCell(cell, seenState, cell.ControlledByFaction); }
public override int GetHashCode() { return(Index.GetHashCode() ^ TerrainId.GetHashCode() ^ Texture.GetHashCode() ^ SeenState.GetHashCode() ^ ControlledByFaction.GetHashCode()); }