static string GetPlayerDirections(PlayerDirection direction) { var result = ""; if (direction.HasFlag(PlayerDirection.ToTheLeft)) { result += "<-"; } if (direction.HasFlag(PlayerDirection.Myself)) { result += "^"; } if (direction.HasFlag(PlayerDirection.ToTheRight)) { result += "->"; } return(result); }
private int GetCoinsForStructureType(IGamePlayer player, IGamePlayer rightNeighbor, IGamePlayer leftNeighbor, StructureType type, PlayerDirection direction) { var coins = 0; if (direction.HasFlag(PlayerDirection.Myself)) { coins += CountCards(player, type); } if (direction.HasFlag(PlayerDirection.ToTheLeft)) { coins += CountCards(leftNeighbor, type); } if (direction.HasFlag(PlayerDirection.ToTheRight)) { coins += CountCards(rightNeighbor, type); } return(coins); }
public static int GetVictoryPointsByConflictDefeat(IPlayer player, int quantity, StructureType structureType, PlayerDirection direction = PlayerDirection.Myself, IPlayer rightPlayer = null, IPlayer leftPlayer = null) { var total = 0; if (direction.HasFlag(PlayerDirection.Myself)) { total += player.ConflictTokens.Count(t => t == ConflictToken.Defeat) * quantity; } if (direction.HasFlag(PlayerDirection.ToTheRight)) { total += rightPlayer.ConflictTokens.Count(t => t == ConflictToken.Defeat) * quantity; } if (direction.HasFlag(PlayerDirection.ToTheLeft)) { total += leftPlayer.ConflictTokens.Count(t => t == ConflictToken.Defeat) * quantity; } return(total); }
public static int GetVictoryPointsByStructureType(IPlayer player, int quantity, StructureType structureType, PlayerDirection direction = PlayerDirection.Myself, IPlayer rightPlayer = null, IPlayer leftPlayer = null) { var total = 0; if (direction.HasFlag(PlayerDirection.Myself)) { total += player.Cards.Count(c => c.Type == structureType) * quantity; } if (direction.HasFlag(PlayerDirection.ToTheRight)) { total += rightPlayer.Cards.Count(c => c.Type == structureType) * quantity; } if (direction.HasFlag(PlayerDirection.ToTheLeft)) { total += leftPlayer.Cards.Count(c => c.Type == structureType) * quantity; } return(total); }
public static int GetVictoryPointsByWonderStage(IPlayer player, int quantity, PlayerDirection direction = PlayerDirection.Myself, IPlayer rightPlayer = null, IPlayer leftPlayer = null) { var total = 0; if (direction.HasFlag(PlayerDirection.Myself)) { total += player.Wonder.StagesBuilt * quantity; } if (direction.HasFlag(PlayerDirection.ToTheRight)) { total += rightPlayer.Wonder.StagesBuilt * quantity; } if (direction.HasFlag(PlayerDirection.ToTheLeft)) { total += leftPlayer.Wonder.StagesBuilt * quantity; } return(total); }
private int GetCoinsForWonderStage(IGamePlayer player, IGamePlayer rightNeighbor, IGamePlayer leftNeighbor, PlayerDirection direction) { var coins = 0; if (direction.HasFlag(PlayerDirection.Myself)) { coins += player.Wonder.StagesBuilt; } if (direction.HasFlag(PlayerDirection.ToTheLeft)) { coins += leftNeighbor.Wonder.StagesBuilt; } ; if (direction.HasFlag(PlayerDirection.ToTheRight)) { coins += rightNeighbor.Wonder.StagesBuilt; } return(coins); }