Beispiel #1
0
    void Update()
    {
        List <Upgrade> toClear = null;

        foreach (Upgrade u in Upgrades)
        {
            if (u is ITimable)
            {
                ITimable timeUpgrade = u as ITimable;
                timeUpgrade.Process(Time.deltaTime);
            }
            if (removeUsedUpUpgrades && u is ConsumableUpgrade)
            {
                if ((u as ConsumableUpgrade).isUsedUp && !u.Active)
                {
                    if (toClear == null)
                    {
                        toClear = new List <Upgrade> ();
                    }
                    toClear.Add(u);
                }
            }
        }
        if (toClear != null && toClear.Count > 0)
        {
            foreach (Upgrade toRemove in toClear)
            {
                Upgrades.Remove(toRemove);
            }
            if (_delegate)
            {
                _delegate.RefreshUI();
            }
        }
    }
Beispiel #2
0
    void initialiseUI()
    {
        if (upgrade != null)
        {
            image.sprite = upgrade.Image;

            if (Upgrade is ConsumableUpgrade)
            {
                this.transform.Find("Uses").gameObject.SetActive(true);
                uses.text = (Upgrade as ConsumableUpgrade).Uses.ToString();
            }

            button.onClick.AddListener(() => {
                upgrade.Activate();
                if (upgrade is ITimable)
                {
                    ITimable timable = upgrade as ITimable;
                    if (timable is ISpammable)
                    {
                        ISpammable spamable = upgrade as ISpammable;
                        if (spamable.isSpammable)
                        {
                            Enable(false);
                        }
                    }
                }
            });
        }
    }