Ejemplo n.º 1
0
        private void addNewCargoStoreToShip(Ship ship, Agent o)
        {
            Store s = new Store();
            s.Owner = o;
            s.Location = ship;
            ship.Stores.Add(o.AgentId,s);
            o.Stores.Add(s);

            // seed with basic starter resource
            s.StoredResources.Add(ResourceTypeEnum.Spice, 10);
        }
Ejemplo n.º 2
0
        private void addNewStoreToPlanet(Planet p, Agent o)
        {
            Store s = new Store();
            s.Owner = o;
            s.Location = p;
            p.Stores.Add(o.AgentId,s);
            o.Stores.Add(s);

             // seed with basic starter resource
            s.StoredResources.Add(ResourceTypeEnum.Spice, 100);
            s.StoredResources.Add(ResourceTypeEnum.Platinum, 100);
        }
Ejemplo n.º 3
0
 private UInt64 getStoredResourceQtyFromStore(Store s, ResourceTypeEnum type)
 {
     return s.StoredResources[type];
 }
Ejemplo n.º 4
0
 private Store getOrCreateStoreForOwner(Agent owner)
 {
     Store s = getStoreForOwner(owner);
     if (s == null)
     {
         s = new Store();
         s.Location = _model;
         s.Owner = owner;
         _model.Stores.Add(owner.AgentId, s);
     }
     return s;
 }
Ejemplo n.º 5
0
        private bool checkResourcesAvailable(MessageRequestResources msg, Store s)
        {
            bool hasResources = true;
            foreach (ResourceQuantity resQ in msg.ResourcesRequested)
            {
                if (s.StoredResources.ContainsKey(resQ.Type))
                {
                    UInt64 storedResQ = getStoredResourceQtyFromStore(s, resQ.Type);
                    if (storedResQ < resQ.Quantity)
                    {
                        hasResources = false;
                        break;
                    }
                }
                else
                {
                    hasResources = false;
                    break;
                }
            }

            return hasResources;
        }
Ejemplo n.º 6
0
        private void addResourceQuantityToStore(Store s, MessageProducedResources msg)
        {
            foreach (ResourceQuantity resQ in msg.Resources)
            {
                if (s.StoredResources.ContainsKey(resQ.Type))
                {
                    s.StoredResources[resQ.Type] += resQ.Quantity;
                }
                else
                {
                    s.StoredResources.Add(resQ.Type, resQ.Quantity);
                }

                //_actorTextOutput.Tell("Store added " + resQ.Type + " " + resQ.Quantity);
            }
        }