示例#1
0
 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));
 }
示例#2
0
 // 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);
     }
 }
示例#3
0
 public void ApplyUpgrade()
 {
     upgrade.ApplyUpgrade();
     progress.value = (float)upgrade.stage / upgrade.maxStage;
     if (upgrade.stage == upgrade.maxStage)
     {
         upgradeBtn.gameObject.SetActive(false);
     }
 }
示例#4
0
        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}");
        }
示例#5
0
        /// <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);
        }