Beispiel #1
0
 public void AddUpgrade(BaseUpgrade loot)
 {
     if(!upgrades.Contains(loot))
     {
         upgrades.Add (loot);
     }
 }
Beispiel #2
0
    public void InitItems(List <UpgradeCategory> upgradesCategories)
    {
        for (int i = 0; i < upgradesCategories.Count; i++)
        {
            GameObject    container          = Instantiate(categroryContainerPrefab, _transform, false) as GameObject;
            Transform     containerTransform = container.GetComponent <Transform>();
            RectTransform containerRectTrans = container.GetComponent <RectTransform>();
            containerRectTrans.anchorMin = Vector2.zero;
            containerRectTrans.anchorMax = new Vector2(1, 1);

            for (int j = 0; j < upgradesCategories[i].upgrades.Count; j++)
            {
                BaseUpgrade upgradePrefab = upgradesCategories[i].upgrades[j];
                GameObject  itemGO        = Instantiate(shopItemPrefab, containerTransform, false) as GameObject;
                ShopItemUI  item          = itemGO.GetComponent <ShopItemUI>();
                Instantiate(upgradePrefab, itemGO.transform, false);
                item.Init(upgradePrefab, upgradeShop);

                items.Add(item);
            }

            container.SetActive(false);
            categoriesContainers.Add(upgradesCategories[i], container);
        }
    }
Beispiel #3
0
 public void RemoveUpgrade(BaseUpgrade loot)
 {
     if(upgrades.Contains(loot))
     {
         upgrades.Remove(loot);
     }
 }
Beispiel #4
0
    public void BuyItem(BaseUpgrade upgrade)
    {
        if (!upgrade.canBuy)
        {
            EventDispatcher.DispatchEvent(Events.UI_ERROR, null);
            return;
        }

        SaveData    data        = FileSaveLoad.Load();
        UpgradeInfo upgradeInfo = data.upgradesInfo[upgrade.saveDataIndex];

        data.money      -= upgrade.currentPrice;
        data.shipWeight += upgrade.wheight;
        upgradeInfo.currentUpgradeNb++;
        upgradeInfo.boughtUpgradeNb = Mathf.Max(upgradeInfo.currentUpgradeNb, upgradeInfo.boughtUpgradeNb);

        upgrade.Equip(data); // specialized save data modification. different for each Upgrade type.

        FileSaveLoad.Save(data);

        wheightUI.UpdateWheight();
        moneyUI.UpdateMoney();
        shopUI.UpdateAllItems();
        shopDetailsPane.UpdateDetails(upgrade);
        EventDispatcher.DispatchEvent(Events.UI_SUCCESS, null);

        if (isOverWheight && !CheckIfOverwheight(data))
        {
            overloadErrorUIAnimator.SetTrigger("Close");
        }
    }
Beispiel #5
0
    public void UnEquip(BaseUpgrade upgrade)
    {
        SaveData    data        = FileSaveLoad.Load();
        UpgradeInfo upgradeInfo = data.upgradesInfo[upgrade.saveDataIndex];

        if (!upgrade.canUnEquip || upgradeInfo.currentUpgradeNb <= 0)
        {
            EventDispatcher.DispatchEvent(Events.UI_ERROR, null);
            return;
        }

        data.shipWeight -= upgrade.wheight;
        upgradeInfo.currentUpgradeNb--;
        upgrade.UnEquip(data);

        FileSaveLoad.Save(data);

        wheightUI.UpdateWheight();
        shopUI.UpdateAllItems();
        shopDetailsPane.UpdateDetails(upgrade);
        EventDispatcher.DispatchEvent(Events.UI_SUCCESS, null);

        if (isOverWheight && !CheckIfOverwheight(data))
        {
            overloadErrorUIAnimator.SetTrigger("Close");
        }
    }
Beispiel #6
0
 void Awake()
 {
     b = GetComponentInChildren <BaseUpgrade> ();
     if (!(b))
     {
         b = GetComponent <BaseUpgrade> ();
     }
 }
Beispiel #7
0
    public void Init(BaseUpgrade data, UpgradesShop upgradeShop)
    {
        shop   = upgradeShop;
        button = GetComponent <Button>();
        button.onClick.AddListener(OnClicked);
        associatedUpgrade = GetComponentInChildren <BaseUpgrade>();

        UpdateItem();
    }
Beispiel #8
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);
    }
Beispiel #9
0
    void SingleClickHandler(UpgradeMenuUI menuUI)
    {
        BaseUpgrade upgrade      = GetUpgradeByUI(menuUI);
        double      current_cost = upgrade.GetPrice();

        IncreaseUpgradeLevel(upgrade, menuUI, 1);
        upgrade.ApplyUpgrade();
        config.SpentCoins(current_cost);
    }
Beispiel #10
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());
    }
Beispiel #11
0
 public void UpdateDetails(BaseUpgrade upgrade)
 {
     if (upgrade.isUnlocked)
     {
         header.text      = LocalizationManager.GetLocalizedText(upgrade.title);
         description.text = LocalizationManager.GetLocalizedText(upgrade.description);
         activeNb.text    = LocalizationManager.GetLocalizedText("SHIPS_UPGRADES_ACTIVE") + upgrade.currentEquipedNb + "/" + upgrade.numberOfUpgrade;
         price.text       = LocalizationManager.GetLocalizedText("SHIPS_UPGRADES_PRICE") + (int)upgrade.currentPrice + "$";
         wheight.text     = LocalizationManager.GetLocalizedText("SHIPS_UPGRADES_WHEIGHT") + upgrade.wheight;
         totalWeight.text = LocalizationManager.GetLocalizedText("SHIPS_UPGRADES_TOTAL_WHEIGHT") + (int)(upgrade.wheight * upgrade.currentEquipedNb);
     }
     else
     {
         header.text      = "?????";
         description.text = LocalizationManager.GetLocalizedText("SHIPS_UPGRADES_LOCKED_DESCRIPTION");
         activeNb.text    = LocalizationManager.GetLocalizedText("SHIPS_UPGRADES_ACTIVE") + LocalizationManager.GetLocalizedText("SHIPS_UPGRADES_ACTIVE_NONE");
         price.text       = LocalizationManager.GetLocalizedText("SHIPS_UPGRADES_PRICE") + "??";
         wheight.text     = LocalizationManager.GetLocalizedText("SHIPS_UPGRADES_WHEIGHT") + "???";
         totalWeight.text = LocalizationManager.GetLocalizedText("SHIPS_UPGRADES_TOTAL_WHEIGHT") + "0";
     }
 }
    void Start()
    {
        upgrades = new BaseUpgrade[upgradeTemplates.Length];
        for (int i = 0; i < upgradeTemplates.Length; i++)
        {
            GameObject  upgradeInstance  = GameObject.Instantiate(upgradeTemplates [i].gameObject, transform);
            BaseUpgrade upgradeComponent = upgradeInstance.GetComponent <BaseUpgrade> ();
            if (upgradeComponent != null)
            {
                upgrades [i] = upgradeComponent;
            }
            else
            {
                Debug.LogWarningFormat("UpgradeManager - Invalid upgrade template: {0}. Does not have BaseUpgrade script attached", upgradeInstance.name);
            }
        }
        // Build the UI
        for (int i = 0; i < upgrades.Length; i++)
        {
            BaseUpgrade upgrade = upgrades [i];
            if (upgrade == null)
            {
                continue;                 // Skip this upgrade, as it can't be put in the list
            }
            GameObject entry = upgrade.GetListEntryObject();
            if (entry == null)
            {
                continue;                 // Skip
            }

            entry.transform.SetParent(UpgradeListContent.transform);
            Button upgradeEntryButtonComponent = entry.GetComponent <Button> ();
            if (upgradeEntryButtonComponent != null)
            {
                int    upgradeToPurchase = i;              // Note, need to capture 'i' properly for the lambda below
                Button entityButton      = upgradeEntryButtonComponent;
                upgradeEntryButtonComponent.onClick.AddListener(() => PurchaseUpgrade(upgradeToPurchase, entityButton));
            }
        }
    }
Beispiel #13
0
 public void SetEffect(BaseUpgrade effect)
 {
     lootEffect = effect;
     this.ChangeGlow ();
 }
Beispiel #14
0
 bool QuerySingleUpgradePossibility(BaseUpgrade upgrade, double value)
 {
     return(upgrade.GetPrice() <= value);
 }
Beispiel #15
0
 /// <summary>
 /// Setze Upgrade auf bestimmtes Level.
 /// </summary>
 /// <param name="u">Upgrade</param>
 /// <param name="i">Level</param>
 public void setUpgradeLevel(BaseUpgrade u, int i)
 {
     u.setLevel(i);
 }
Beispiel #16
0
 //called from ShopItemUI.OnSelected event
 public void OnUpgradeSelected(BaseUpgrade associatedUpgrade)
 {
     selectedUpgrade = associatedUpgrade;
     shopDetailsPane.UpdateDetails(associatedUpgrade);
 }