Example #1
0
    public void RepairRequest()
    {
        Debug.Log("RepairRequest");

        int missingStructurePoints = Mathf.FloorToInt(maxStructurePoints - currentStructurePoints);

        Debug.Log("MissingStructurePoints [" + missingStructurePoints + "]");

        int maxStructurePointsPossibleToRepair = missingStructurePoints;     // Change to infinity ?

        foreach (ResourcesManager.ResourceAmount resAmount in resourceCostPerStructurePointRepair)
        {
            int neededAmountPerStructurePoint = resAmount.amount;
            //int totalNeededAmount = neededAmountPerStructurePoint * missingStructurePoints;
            int availableResourceAmount = ResourcesManager.instance.GetCurrentResourceAmount(resAmount.resourceType);

            int maxStructurePointsAbleToRepairWithResource = availableResourceAmount / neededAmountPerStructurePoint;
            Debug.Log("maxStructurePointsAbleToRepairWithResource with [" + resAmount.resourceType.resourceName + "] is [" + maxStructurePointsAbleToRepairWithResource + "]");

            if (maxStructurePointsAbleToRepairWithResource < maxStructurePointsPossibleToRepair)
            {
                maxStructurePointsPossibleToRepair = maxStructurePointsAbleToRepairWithResource;
            }
        }

        Debug.Log("We can repair [" + maxStructurePointsPossibleToRepair + "] Structure points");

        foreach (ResourcesManager.ResourceAmount resAmount in resourceCostPerStructurePointRepair)
        {
            ResourcesManager.ResourceAmount resAmountToPay = new ResourcesManager.ResourceAmount(resAmount.resourceType, resAmount.amount * maxStructurePointsPossibleToRepair);
            ResourcesManager.instance.PayResourceAmount(resAmountToPay);
        }

        RepairStructurePoints(maxStructurePointsPossibleToRepair);
    }
    public void BuildRepairCostLayout(DysonSphere.DysonSphereSettings dysonSphereSettings)
    {
        EmptyRepairCostLayout();

        int structurePointsMissing = Mathf.FloorToInt(dysonSphereSettings.maxStructurePoint - dysonSphereSettings.currentStructurePoints);

        //Debug.Log("BuildRepairCostLayout | Structure Points missing [" + structurePointsMissing +"]");

        if (structurePointsMissing > 0)
        {
            foreach (ResourcesManager.ResourceAmount resourceAmount in DysonSphere.instance.resourceCostPerStructurePointRepair)
            {
                //Debug.Log("BuildRepairCostLayout | Resource [" + resourceAmount.resourceType.resourceName + "] | Amount [" + resourceAmount.amount + "]");

                // UI
                GameObject instantiatedResourceCostPanel = Instantiate(repairCostPrefab, new Vector3(0f, 0f, 0f), Quaternion.identity);
                instantiatedResourceCostPanel.transform.SetParent(repairCostLayout.transform, false);

                // Multiply resourceAmount amount by StructurePointsMissing
                ResourcesManager.ResourceAmount multipliedResourceAmount = new ResourcesManager.ResourceAmount(resourceAmount.resourceType, resourceAmount.amount * structurePointsMissing);

                instantiatedResourceCostPanel.GetComponent <ResourceCostPanel>().SetInfo(multipliedResourceAmount);

                repairCostIndicators.Add(instantiatedResourceCostPanel);
            }
        }
    }
    public void SetInfo(BuildingManager.BuildingType bType = null)
    {
        Debug.Log("BuildingShopItem | SetInfo");
        if (bType != null)
        {
            associatedBuildingType = bType;
        }
        if (associatedBuildingType != null)
        {
            buildingImage.sprite = associatedBuildingType.buildingImage;

            List <ResourcesManager.ResourceAmount> resourceCosts = bType.resourceCosts;

            ResourcesManager.ResourceAmount rCost_1 = null;
            ResourcesManager.ResourceAmount rCost_2 = null;

            if (resourceCosts.Count > 0)
            {
                rCost_1 = bType.resourceCosts[0];
            }
            resourceCost_1.GetComponent <ResourceCostPanelV2>().SetInfo(rCost_1);

            if (resourceCosts.Count > 1)
            {
                rCost_2 = bType.resourceCosts[1];
            }
            resourceCost_2.GetComponent <ResourceCostPanelV2>().SetInfo(rCost_2);

            Sprite backgroundImage = BuildingShopManager.instance.attackCircle;
            switch (bType.buildingCategory)
            {
            case BuildingManager.BuildingCategory.Attack:
            {
                backgroundImage = BuildingShopManager.instance.attackCircle;
                break;
            }

            case BuildingManager.BuildingCategory.Defense:
            {
                backgroundImage = BuildingShopManager.instance.defenseCircle;
                break;
            }

            case BuildingManager.BuildingCategory.Production:
            {
                backgroundImage = BuildingShopManager.instance.productionCircle;
                break;
            }

            default:
            {
                Debug.LogError("BuildingShopItem | SetInfo | Building category invalid");
                break;
            }
            }

            gameObject.GetComponent <Image>().sprite = backgroundImage;
        }
    }
Example #4
0
    public void SetInfo(ResourcesManager.ResourceAmount resourceAmount)
    {
        resourceType  = resourceAmount.resourceType;
        costAmount    = resourceAmount.amount;
        resourceType  = resourceAmount.resourceType;
        resourceImage = resourceAmount.resourceType.resourceImage;

        SetCostAmount();
        SetResourceImage();
        UpdateResourceAvailabilityIndicator();
    }
Example #5
0
 public void SetInfo(ResourcesManager.ResourceAmount rCost)
 {
     if (rCost != null && rCost.resourceType != null)
     {
         associatedResourceCost = rCost;
         resourceImage.sprite   = rCost.resourceType.resourceImage;
         resourceCostText.text  = rCost.amount.ToString();
         resourceCostText.color = (ResourcesManager.instance.CanPayResourceAmount(rCost)) ? canPayColor : cantPayColor;
     }
     else
     {
         associatedResourceCost = null;
         resourceImage.sprite   = null;
         resourceImage.color    = StyleManager.instance.transparentColor;
         resourceCostText.text  = "";
     }
 }