public void UpdateUpgrade() //such name very read { upgrade.ApplyUpgrade(); upgrade.IncreaseLevel(); levelText.text = upgrade.Level.ToString(); costText.text = upgrade.Cost.ToString(); EventScript.Instance.EventQueue.AddEvent(new ManageUpgradeEvent(upgrade)); }
// Applies all character upgrades. Useful in initializing the player entity protected void ApplyUpgrades() { for (int i = 0; i < playerUpgrades.Count; i++) { Upgrade u = playerUpgrades[i]; u.ApplyUpgrade(this); } }
public void ApplyUpgrade() { upgrade.ApplyUpgrade(); progress.value = (float)upgrade.stage / upgrade.maxStage; if (upgrade.stage == upgrade.maxStage) { upgradeBtn.gameObject.SetActive(false); } }
public void SetUpgrade(Upgrade upgrade, bool createNetworkEvent = false) { Upgrade existingUpgrade = GetUpgrade(upgrade.Identifier); if (existingUpgrade != null) { existingUpgrade.Level = upgrade.Level; existingUpgrade.ApplyUpgrade(); upgrade.Dispose(); } else { AddUpgrade(upgrade, createNetworkEvent); } DebugConsole.Log($"Set (ID: {ID} {prefab.Name})'s \"{upgrade.Prefab.Name}\" upgrade to level {upgrade.Level}"); }
/// <summary> /// Adds a new upgrade to the item /// </summary> public virtual bool AddUpgrade(Upgrade upgrade, bool createNetworkEvent = false) { if (this is Item item && !upgrade.Prefab.UpgradeCategories.Any(category => category.CanBeApplied(item, upgrade.Prefab))) { return(false); } if (disallowedUpgrades.Contains(upgrade.Identifier)) { return(false); } Upgrade existingUpgrade = GetUpgrade(upgrade.Identifier); if (existingUpgrade != null) { existingUpgrade.Level += upgrade.Level; existingUpgrade.ApplyUpgrade(); upgrade.Dispose(); } else { upgrade.ApplyUpgrade(); Upgrades.Add(upgrade); } // not used anymore #if SERVER // if (createNetworkEvent) // { // if (this is IServerSerializable serializable) // { // GameMain.Server.CreateEntityEvent(serializable, new object[] { NetEntityEvent.Type.Upgrade, upgrade }); // } // } #endif return(true); }