public List <ResourceManager.TradeResourceAmount> GenerateTradeResourceAmounts() { List <ResourceManager.TradeResourceAmount> tradeResourceAmounts = new List <ResourceManager.TradeResourceAmount>(); tradeResourceAmounts.AddRange(resourcesToTrade); List <ResourceManager.ResourceAmount> caravanResourceAmounts = inventory.resources; foreach (ResourceManager.ResourceAmount resourceAmount in caravanResourceAmounts) { ResourceManager.TradeResourceAmount existingTradeResourceAmount = tradeResourceAmounts.Find(tra => tra.resource == resourceAmount.resource); if (existingTradeResourceAmount == null) { tradeResourceAmounts.Add(new ResourceManager.TradeResourceAmount(resourceAmount.resource, resourceAmount.amount, this)); } else { existingTradeResourceAmount.Update(); } } List <ResourceManager.ResourceAmount> colonyResourceAmounts = new List <ResourceManager.ResourceAmount>(); if (traders.Count > 0) { colonyResourceAmounts = GameManager.resourceM.GetAvailableResourcesInTradingPostsInRegion(traders.Find(t => t != null).overTile.region); } foreach (ResourceManager.ResourceAmount resourceAmount in colonyResourceAmounts) { ResourceManager.TradeResourceAmount existingTradeResourceAmount = tradeResourceAmounts.Find(tra => tra.resource == resourceAmount.resource); if (existingTradeResourceAmount == null) { tradeResourceAmounts.Add(new ResourceManager.TradeResourceAmount(resourceAmount.resource, 0, this)); } else { existingTradeResourceAmount.Update(); } } tradeResourceAmounts = tradeResourceAmounts.OrderBy(tra => tra.resource.name).ToList(); return(tradeResourceAmounts); }
public void SetSelectedResource(ResourceManager.TradeResourceAmount tradeResourceAmount) { ResourceManager.TradeResourceAmount existingTradeResourceAmount = resourcesToTrade.Find(tra => tra.resource == tradeResourceAmount.resource); if (existingTradeResourceAmount == null) { resourcesToTrade.Add(tradeResourceAmount); } else { if (existingTradeResourceAmount.GetTradeAmount() == 0) { resourcesToTrade.Remove(tradeResourceAmount); } else { existingTradeResourceAmount.SetTradeAmount(tradeResourceAmount.GetTradeAmount()); } } }