//Constructor public SpecialCard(string name, Enums.EnumType type, string effect) { Name = name; Type = type; Effect = effect; BuffType = null; }
//Constructor public CombatCard(string name, Enums.EnumType type, string effect, int attackPoints, bool hero) { Name = name; Type = type; Effect = effect; AttackPoints = attackPoints; Hero = hero; }
//Constructor public SpecialCard(string name, Enums.EnumType type, string effect) { Name = name; EnumType Type = type; Effect = effect; EnumType BuffType = EnumType.None; }
//Metodos public void AddCard(Card card, int playerId = -1, Enums.EnumType buffType = Enums.EnumType.None) { //Combat o Special if (card.GetType().Name == nameof(CombatCard)) { //Agregar la de combate a su fila correspondiente if (playerId == 0 || playerId == 1) { if (playerCards[playerId].ContainsKey(card.Type.ToString())) { playerCards[playerId][card.Type.ToString()].Add(card); } else { playerCards[playerId].Add(card.Type.ToString(), new List <Card>() { card }); } } else { throw new IndexOutOfRangeException("No player id given"); } } else { //Es capitan? if ((playerId == 0 || playerId == 1) && buffType == Enums.EnumType.None) { //Revisar si no se a agregado el capitan if (!playerCards[playerId].ContainsKey(card.Type.ToString())) { playerCards[playerId].Add(card.Type.ToString(), new List <Card>() { card }); } else { throw new FieldAccessException("Player already has captain"); } } //Es buffer? else if ((playerId == 0 || playerId == 1) && buffType != null) { //Revisar si no se a agregado un buffer en la fila primero. if (!playerCards[playerId].ContainsKey(card.Type.ToString() + buffType)) { playerCards[playerId].Add(card.Type.ToString() + buffType, new List <Card>() { card }); } else { throw new FieldAccessException($"Player has already played a buffer card in {buffType} row"); } } else { weatherCards.Add(card as SpecialCard); } } }