Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
 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());
         }
     }
 }