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);
                    }
                }
            }
        }
Esempio n. 4
0
        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();
        }
Esempio n. 5
0
        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();
        }
Esempio n. 6
0
 public override void TakeRequest(CraftingResourceRequest request)
 {
     requestSystem.TakeRequest(this, request);
 }
 public override void TakeRequest(CraftingResourceRequest request)
 {
     // craftsMan.requestSystem.RemoveRequest(request, craftsMan.CraftingInventory);
 }
Esempio n. 8
0
 public abstract void TakeRequest(CraftingResourceRequest request);
Esempio n. 9
0
        public float[] GetSenses(ShopAgent agent)
        {
            var craftingRequests = GetAllCraftingRequests(agent.craftingInventory);

            return(CraftingResourceRequest.GetSenses(craftingRequests, 5));
        }
Esempio n. 10
0
        public float[] GetSenses(AdventurerAgent agent)
        {
            var craftingRequests = GetAllCraftingRequests();

            return(CraftingResourceRequest.GetSenses(craftingRequests, 5));
        }