public void AddRequest(RequestTaker requestTaker, CraftingResourceRequest craftingResourceRequest) { var contains = _currentRequests.ContainsKey(requestTaker); if (!contains) { _currentRequests[requestTaker] = new List <CraftingResourceRequest>(); } _currentRequests[requestTaker].Add(craftingResourceRequest); }
public override float[] GetSenses(AdventurerAgent agent) { var input = new float[CraftingResourceRequest.SensorCount + CraftingResourceRequest.SensorCount]; var itemList = agent.requestTaker.GetItemList(); var senseA = CraftingResourceRequest.GetSenses(itemList, 5); senseA.CopyTo(input, 0); var senseB = requestSystem.GetSenses(agent); senseB.CopyTo(input, senseA.Length); return(requestSystem.GetSenses(agent)); }
public void CompleteRequest(RequestTaker taker, CraftingResourceRequest request) { if (_currentRequests.ContainsKey(taker)) { if (_currentRequests[taker].Contains(request)) { taker.CompleteRequest(request.Reward); request.TransferResource(); _currentRequests[taker].Remove(request); var count = _currentRequests[taker].Count; if (count == 0) { _currentRequests.Remove(taker); } } } }
public void MakeRequest(CraftingResources resources, CraftingInventory inventory, EconomyWallet wallet) { void CheckExchange(CraftingResourceRequest request) { if (request.Price <= wallet.Money) { if (_craftingRequests[inventory].ContainsKey(resources)) { _craftingRequests[inventory][resources].Number++; } else { _craftingRequests[inventory].Add(resources, request); } wallet.SpendMoney(request.Price); } } CheckInventory(inventory); var requestNumber = GetRequestNumber(inventory, resources); var canRequest = requestNumber < 10; if (canRequest) { var containsKey = _craftingRequests[inventory].ContainsKey(resources); if (!containsKey) { Sprite icon = GetIconByResource(resources); var newResource = new CraftingResourceRequest(resources, inventory, defaultResourcePrices[resources], icon); _requestWallets.Add(newResource, wallet); CheckExchange(newResource); } else { CheckExchange(_craftingRequests[inventory][resources]); } } Refresh(); }
public void TakeRequest(RequestTaker requestTaker, CraftingResourceRequest takeRequest) { var inventory = takeRequest.Inventory; var containsResource = _craftingRequests[inventory].ContainsKey(takeRequest.Resource); Debug.Log("Contains resource " + containsResource); var currentRequests = craftingRequestRecord.GetCurrentRequests(requestTaker); var validRequests = currentRequests.Count < maxRequests; if (containsResource && validRequests) { Debug.Log("Took request"); craftingRequestRecord.AddRequest(requestTaker, takeRequest); _craftingRequests[inventory].Remove(takeRequest.Resource); } Refresh(); }
public override void TakeRequest(CraftingResourceRequest request) { requestSystem.TakeRequest(this, request); }
public override void TakeRequest(CraftingResourceRequest request) { // craftsMan.requestSystem.RemoveRequest(request, craftsMan.CraftingInventory); }
public abstract void TakeRequest(CraftingResourceRequest request);
public float[] GetSenses(ShopAgent agent) { var craftingRequests = GetAllCraftingRequests(agent.craftingInventory); return(CraftingResourceRequest.GetSenses(craftingRequests, 5)); }
public float[] GetSenses(AdventurerAgent agent) { var craftingRequests = GetAllCraftingRequests(); return(CraftingResourceRequest.GetSenses(craftingRequests, 5)); }