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;
        }
    }
示例#2
0
    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();
    }
示例#5
0
    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;
    }
示例#6
0
    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);
        }
    }
示例#7
0
    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
 }