コード例 #1
0
    internal static bool RetrieveResource(this Building buildingType, NPCManager manager, double takeAmount, ResourceType resourceType)
    {
        if (buildingType.HasResource(takeAmount, resourceType) && manager.CanCarry(takeAmount))
        {
            try
            {
                manager.Character.ResourceInventory[resourceType].Amount += (buildingType.StoredResources[resourceType].Amount - takeAmount < 0 ? buildingType.StoredResources[resourceType].Amount : takeAmount);

                buildingType.StoredResources[resourceType].Amount -= (buildingType.StoredResources[resourceType].Amount - takeAmount < 0 ? buildingType.StoredResources[resourceType].Amount : takeAmount);
                buildingType.InventorySpaceUsed -= (buildingType.InventorySpaceUsed - takeAmount < 0 ? buildingType.InventorySpaceUsed : takeAmount);


                return(true);
            }
            catch (Exception ex)
            {
                return(false);
            }
        }
        else
        {
            return(false);
        }
    }