示例#1
0
    void MaxClickHandler(UpgradeMenuUI menuUI)
    {
        BaseUpgrade upgrade = GetUpgradeByUI(menuUI);
        int         count   = upgrade.GetPossibleUpgradeCount(coins.GetCoins(), out double cost);

        IncreaseUpgradeLevel(upgrade, menuUI, count);
        upgrade.ApplyUpgrade(count);
        config.SpentCoins(cost);
    }
示例#2
0
    void SingleClickHandler(UpgradeMenuUI menuUI)
    {
        BaseUpgrade upgrade      = GetUpgradeByUI(menuUI);
        double      current_cost = upgrade.GetPrice();

        IncreaseUpgradeLevel(upgrade, menuUI, 1);
        upgrade.ApplyUpgrade();
        config.SpentCoins(current_cost);
    }
示例#3
0
    void IncreaseUpgradeLevel(BaseUpgrade upgrade, UpgradeMenuUI menuUI, int value)
    {
        bool maxReached = upgrade.IncreaseLevel(value);

        if (maxReached)
        {
            ChangeUpgradeButtonsState(menuUI, false);
            upgrades.Remove(upgrade);
        }
        menuUI.UpdateLevelText(upgrade.GetLevel(), upgrade.GetMaxLevel());
        menuUI.UpdateProgressBar(upgrade.GetLevel(), upgrade.GetMaxLevel());
    }
示例#4
0
    void InitializeUpgrades()
    {
        all_upgradable = GetComponents <BaseUpgrade>();
        foreach (BaseUpgrade upgrade in all_upgradable)
        {
            GameObject menu = Instantiate(menuPrefab);
            menu.transform.SetParent(MenuContainer);
            menu.transform.localScale = Vector3.one;

            UpgradeMenuUI menuUI = menu.GetComponent <UpgradeMenuUI>();
            upgrades.Add(upgrade, menuUI);

            int upgradesCount = upgrade.GetPossibleUpgradeCount(coins.GetCoins(), out double cost);
            menuUI.SetInfo(upgrade.GetLevel(), upgrade.GetMaxLevel(), upgrade.GetName(), upgrade.GetDescription(),
                           upgrade.GetPrice(), upgradesCount, cost, upgrade.GetIconSprite());
            menuUI.OnSingleUpgradeClicked += SingleClickHandler;
            menuUI.OnMaxUpgradeClicked    += MaxClickHandler;
            menuUI.SetBlockScreenState(upgrade.IsLocked());
            upgrade.OnLockIsOff += menuUI.SetBlockScreenState;
            //Debug.Log($"{menuUI.name} is set to {!upgrade.IsLocked()}");
        }
    }
示例#5
0
 BaseUpgrade GetUpgradeByUI(UpgradeMenuUI menuUI)
 {
     return(upgrades.FirstOrDefault(x => x.Value == menuUI).Key);
 }
示例#6
0
 void ChangeUpgradeButtonsState(UpgradeMenuUI menuUI, bool state)
 {
     menuUI.MaxUpgradeButtonState(state);
     menuUI.SingleUpgradeButtonState(state);
 }