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(); } } }
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); } } } }); } }