private void UpdateResources(PlayerState p, Card c) { //_logger.UpdatingPlayersResources(p,c); //_logger.DisplayResourceCost(p,c); if (c is CommerceCard) { KensUtilityfunctions k = new KensUtilityfunctions(); int income = k.calcCommerceIncome(c, gameState, p.getSeatNumber()); p.updateCoins(income); return; } if (c is ResourceCard) { //_logger.CheckResourceCard(p,c); //_logger.DisplayPlayersResources(p, hashtable); List<int> current = baseResources[p.getName()]; if (((ResourceCard)c).hasTradableResources()) { if ((((ResourceCard)c).getNumber() > 7) && (((ResourceCard)c).getNumber() < 14)) { //populate Special Resource Hashmap if the Card is a special resource List<ResourceCard> srlst = SResources[p.getName()]; srlst.Add((ResourceCard)c); SResources[p.getName()] = srlst; System.Console.WriteLine(p.getName() + " is adding Special Resource Card: {" + ((ResourceCard)c).getResources()[0] + "," + ((ResourceCard)c).getResources()[1] + "," + ((ResourceCard)c).getResources()[2] + "," + ((ResourceCard)c).getResources()[3] + "," + ((ResourceCard)c).getResources()[4] + "," + ((ResourceCard)c).getResources()[5] + "," + ((ResourceCard)c).getResources()[6] + "}"); } else { int[] tradableResources = ((ResourceCard)c).getResources(); for (int index = 0; index < tradableResources.Count(); index++) { switch (index) { case (int)Resource.Wood: current[(int)Resource.Wood] += tradableResources[index]; break; case (int)Resource.Stone: current[(int)Resource.Stone] += tradableResources[index]; break; case (int)Resource.Clay: current[(int)Resource.Clay] += tradableResources[index]; break; case (int)Resource.Ore: current[(int)Resource.Ore] += tradableResources[index]; break; case (int)Resource.Glass: current[(int)Resource.Glass] += tradableResources[index]; break; case (int)Resource.Loom: current[(int)Resource.Loom] += tradableResources[index]; break; case (int)Resource.Paper: current[(int)Resource.Paper] += tradableResources[index]; break; } } System.Console.WriteLine(p.getName() +" is adding: {" + tradableResources[0] + "," + tradableResources[1] + "," + tradableResources[2] + "," + tradableResources[3] + "," + tradableResources[4] + "," + tradableResources[5] + "," + tradableResources[6] + "}"); baseResources[p.getName()] = current; //_logger.DisplayPlayersResources(p, hashtable); } } return; } //_logger.CheckDictionary(p,hashtable); //_logger.DisplayPlayersResources(p, hashtable); }
private void UpdateResources(PlayerState p, Card c) { //_logger.UpdatingPlayersResources(p,c); //_logger.DisplayResourceCost(p,c); if (c is CommerceCard) { //Coin Transaction from playing a commerce Card KensUtilityfunctions k = new KensUtilityfunctions(); int income = k.calcCommerceIncome(c, gameState, p.getSeatNumber()); p.updateCoins(income); //Adding commerce card if it affects trade/resources if (((c.getNumber() > 30) && (c.getNumber() < 37)) || ((c.getNumber() > 70) && (c.getNumber() < 77))) { ComCards[p.getName()].Add((CommerceCard)c); } return; } if (c is ResourceCard) { //_logger.CheckResourceCard(p,c); //_logger.DisplayPlayersResources(p, hashtable); List <int> current = baseResources[p.getName()]; if (((ResourceCard)c).hasTradableResources()) { if ((((ResourceCard)c).getNumber() > 7) && (((ResourceCard)c).getNumber() < 14)) { //populate Special Resource Hashmap if the Card is a special resource List <ResourceCard> srlst = SResources[p.getName()]; srlst.Add((ResourceCard)c); SResources[p.getName()] = srlst; //System.Console.WriteLine(p.getName() + " is adding Special Resource Card: {" + ((ResourceCard)c).getResources()[0] + "," + ((ResourceCard)c).getResources()[1] + "," + ((ResourceCard)c).getResources()[2] + "," + ((ResourceCard)c).getResources()[3] + "," + ((ResourceCard)c).getResources()[4] + "," + ((ResourceCard)c).getResources()[5] + "," + ((ResourceCard)c).getResources()[6] + "}"); } else { int[] tradableResources = ((ResourceCard)c).getResources(); for (int index = 0; index < tradableResources.Count(); index++) { switch (index) { case (int)Resource.Wood: current[(int)Resource.Wood] += tradableResources[index]; break; case (int)Resource.Stone: current[(int)Resource.Stone] += tradableResources[index]; break; case (int)Resource.Clay: current[(int)Resource.Clay] += tradableResources[index]; break; case (int)Resource.Ore: current[(int)Resource.Ore] += tradableResources[index]; break; case (int)Resource.Glass: current[(int)Resource.Glass] += tradableResources[index]; break; case (int)Resource.Loom: current[(int)Resource.Loom] += tradableResources[index]; break; case (int)Resource.Paper: current[(int)Resource.Paper] += tradableResources[index]; break; } } //System.Console.WriteLine(p.getName() +" is adding: {" + tradableResources[0] + "," + tradableResources[1] + "," + tradableResources[2] + "," + tradableResources[3] + "," + tradableResources[4] + "," + tradableResources[5] + "," + tradableResources[6] + "}"); baseResources[p.getName()] = current; //_logger.DisplayPlayersResources(p, hashtable); } } return; } //_logger.CheckDictionary(p,hashtable); //_logger.DisplayPlayersResources(p, hashtable); }