public void ApplyUpgrade(UpgradeBase upgrade) { this.Update(() => { _topology.ApplyUpgrade(upgrade); }); }
public void TryUpgrade() { var upgrades = new UpgradeBase[] { new Upgrade0To1(), new Upgrade1To2(), new Upgrade2To3(), new Upgrade3To4(), new Upgrade4To5(), new Upgrade5To6(AVATAR_COUNT), new Upgrade6To7(), new Upgrade7To8() }; var sortedUpgrades = upgrades.OrderBy(i => i.ToVersion); foreach (var upgrade in sortedUpgrades) { if (Version == upgrade.FromVersion) { upgrade.Upgrade(this); Version = upgrade.ToVersion; Save(); } } }
private void HandleUpgradeMouseExit(object sender, EventArgs e) { _current = null; _levelIndicator.UpdateColor(); GameState.Instance.UpdateCost(null); UpgradeDetails.UpdateTarget(null); }
private void OnSelect(UpgradeBase upgrade) { if (Ship.UpgradeSlotFree()) { Ship.ApplyUpgrade(upgrade); } Ended = true; }
//Add A Purchasable Upgrades public void AddUpgradable(UpgradeBase item) { //Create button prefab and attach it to the content panel GameObject buttonCreation = Instantiate(upgradeButton, contentPanel); UpgradeBuyButton buttonScript = buttonCreation.GetComponent <UpgradeBuyButton>(); buttonScript.Setup(item); //pass upgrade object into the button upgradeList.Add(item); }
public void SetUpgrades(UpgradeBase[] upgrades) { _upgrades.ForEach(Destroy); _upgrades.Clear(); UpgradeDetails.UpdateTarget(null); if (upgrades == null) { return; } foreach (var upgrade in upgrades) { var upgradeObject = Instantiate(upgrade.Icon, Vector2.zero, Quaternion.identity, UpgradesParent); upgradeObject.transform.localPosition = new Vector2(_upgrades.Count % 6 * _positionOffset, 0f); upgradeObject.transform.localScale = _scale; foreach (var spriteRenderer in upgradeObject.GetComponentsInChildren <SpriteRenderer>()) { spriteRenderer.sortingOrder = _sortingOrder; } upgradeObject.GetComponentInChildren <LevelIndicator>().Upgrade = upgrade; var interaction = upgradeObject.GetComponentInChildren <Interaction>(); interaction.OnClick += HandleUpgradeClick; interaction.OnEnter += (sender, o) => { _current = upgrade; _spriteRenderer = o.GetComponentInChildren <SpriteRenderer>(); _levelIndicator = o.GetComponentInChildren <LevelIndicator>(); GameState.Instance.UpdateCost(upgrade.NextCost); UpgradeDetails.UpdateTarget(upgradeObject, true, upgrade); }; interaction.OnExit += HandleUpgradeMouseExit; _upgrades.Add(upgradeObject.gameObject); } }
public void Select(UpgradeBase upgrade) { Unselect(); upgrade.Image.color = selectedColor; title.text = $"{upgrade.upgradeTitle} {upgrade.level}"; description.text = upgrade.upgradeDescription; if (upgrade.IsBought) { button.sprite = boughtImage; cost.text = "Bought"; } else { button.sprite = buyImage; cost.text = upgrade.cost.ToString(); } currentUpgrade = upgrade; upgradeUI.SetActive(true); }
//Setup on instantiate public void Setup(UpgradeBase item) { buttonText.text = item.name + ": " + item.description + " | Cost: " + item.cost.ToAbbreviatedString(); upgradeItem = item; Debug.Log(item.name + " is available to purchase!"); }
public void ApplyUpgrade(UpgradeBase upgrade) { Upgrades = Upgrades.Concat(new[] { upgrade }).ToArray(); }
public UpgradeMenuOption(UpgradeBase upgrade, Action <UpgradeBase> onSelect) { _upgrade = upgrade; _onSelect = onSelect; }