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; } }
public void SetInfo(ResourcesManager.ResourceAmount resourceAmount) { resourceType = resourceAmount.resourceType; costAmount = resourceAmount.amount; resourceType = resourceAmount.resourceType; resourceImage = resourceAmount.resourceType.resourceImage; SetCostAmount(); SetResourceImage(); UpdateResourceAvailabilityIndicator(); }
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 = ""; } }