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 DisplayNewBuildingsInfo(List <BuildingManager.BuildingType> newBuildingTypes) { buildingType = newBuildingTypes[0]; // Temp SetInfo(); GameManager.instance.gameState = GameManager.GameState.Pause; //DisplayPanel(true); Already done in EventsInfoManager }
public void AddBuildingShopItem(BuildingManager.BuildingType buildingType) { BuildingShopPanel buildingShopPanel = null; switch (buildingType.buildingCategory) // Attack, Defense, Production { case BuildingManager.BuildingCategory.Attack: { buildingShopPanel = FindBuildingShopPanelByIndex(attackBuildingTypeIndex); break; } case BuildingManager.BuildingCategory.Defense: { buildingShopPanel = FindBuildingShopPanelByIndex(defenseBuildingTypeIndex); break; } case BuildingManager.BuildingCategory.Production: { buildingShopPanel = FindBuildingShopPanelByIndex(productionBuildingTypeIndex); break; } default: { Debug.LogError("AddBuildingShopItem | Wrong Building Type"); break; } } if (buildingShopPanel != null) { if (buildingShopPanel.currentUsedSlots < buildingShopPanel.maxSlots) { // Instantiation GameObject instantiatedBuildingShopItem = Instantiate(buildingShopItemPrefab, Vector3.zero, Quaternion.identity); instantiatedBuildingShopItem.transform.SetParent(buildingShopPanel.panel.transform, false); // Configuration instantiatedBuildingShopItem.GetComponent <BuildingShopItemV2>().SetInfo(buildingType); // Panel update buildingShopPanel.buildingShopItemsList.Add(instantiatedBuildingShopItem); buildingShopPanel.currentUsedSlots++; } else { Debug.LogError("AddBuildingShopItem | Max nb of BuildingItem in panel reached"); } } else { Debug.LogError("AddBuildingShopItem | No BuildingShopPanel selected"); } }
public void PayConstruction(BuildingManager.BuildingType bType) { foreach (var cost in bType.resourceCosts) { PayResource(GetResourceFromCurrentList(cost.resourceType).resourceType, cost.amount); } //ShopPanel.instance.UpdateShopItems(); BuildingInfoPanel.instance.UpdateInfo(); }
public void ActiveBuildPhase(BuildingManager.BuildingType buildingType) { ResourcesSpend(buildingType); testCube.SetActive(true); testCube.GetComponent <PreBuilding>().baseObject = buildingData.FirstOrDefault(a => a.GetBuildingType() == buildingType).GetBuildingData(); var tempMesh = buildingData.FirstOrDefault(a => a.GetBuildingType() == buildingType).GetMestFromState(0); testCube.GetComponent <MeshFilter>().sharedMesh = tempMesh; testCube.GetComponent <MeshCollider>().sharedMesh = tempMesh; }
private void ResourcesSpend(BuildingManager.BuildingType buildingType) { if (!ResourcesIsEnough(buildingType)) { throw new System.Exception("Resources not enought"); } var resourcesNeed = buildingData.FirstOrDefault(a => a.GetBuildingType() == buildingType).GetBuildingResources(); for (int i = 0; i < resourcesNeed.Length; i++) { ResourcesManager.instance.GetResources(resourcesNeed[i].resourcesType, resourcesNeed[i].count); } }
public bool ResourcesIsEnough(BuildingManager.BuildingType buildingType) { var resourcesNeed = buildingData.FirstOrDefault(a => a.GetBuildingType() == buildingType).GetBuildingResources(); for (int i = 0; i < resourcesNeed.Length; i++) { if (!ResourcesManager.instance.IsEnough(resourcesNeed[i].resourcesType, resourcesNeed[i].count)) { return(false); } } return(true); }
// Check if we have enough resources to build a building public bool CanPayConstruction(BuildingManager.BuildingType bType) { bool canPay = true; foreach (var cost in bType.resourceCosts) { //Debug.Log("Checking if we can pay the cost in: " + cost.resourceType.resourceName + " (" + cost.amount + ")."); if (cost.amount > GetResourceFromCurrentList(cost.resourceType).amount) { canPay = false; break; } } return(canPay); }
// Used to build new unlocked building shop item public void OnNewBuildingUnlocked(BuildingManager.BuildingType buildingType) { // Removed }