Пример #1
0
    /// <summary>
    /// Consume a resource object.
    /// </summary>
    /// <param name="obj"></param>
    public virtual void Consume(ResourceObject resourceObj)
    {
        if (resourceObj != null)
        {
            ResourceStore req = mResourceStore.Find(res => res.Resource.Type == resourceObj.Resource.Type);

            if (req != null && req.Resource.Quantity != req.Capacity)
            {
                int qty = resourceObj.Resource.Quantity;

                req.Resource.Quantity = Mathf.Clamp(req.Resource.Quantity + qty, 0, req.Capacity);

                resourceObj.OnConsumption();
            }
            else
            {
                // So we can notify the player that this cannot be consumed, for whatever reason.
                resourceObj.OnConsumptionFailed();
            }
        }
    }