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); }
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); }
private UInt64 getStoredResourceQtyFromStore(Store s, ResourceTypeEnum type) { return s.StoredResources[type]; }
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; }
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; }
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); } }