Ejemplo n.º 1
0
        /// <summary>
        /// Create and register an upgrade entry
        /// </summary>
        /// <param name="upgrade">Upgrade ID</param>
        /// <param name="icon">Icon that will show up in the upgrade shop</param>
        /// <param name="cost">The cost of the upgrade</param>
        public static void RegisterUpgradeEntry(PlayerState.Upgrade upgrade, Sprite icon, int cost)
        {
            UpgradeDefinition definition = ScriptableObject.CreateInstance <UpgradeDefinition>();

            definition.upgrade = upgrade;
            definition.icon    = icon;
            definition.cost    = cost;
            RegisterUpgradeEntry(definition);
        }
Ejemplo n.º 2
0
 /// <summary>
 /// Create and register an upgrade entry
 /// </summary>
 /// <param name="upgrade">Upgrade ID</param>
 /// <param name="icon">Icon that will show up in the upgrade shop</param>
 /// <param name="cost">The cost of the upgrade</param>
 public static void RegisterUpgradeEntry(PlayerState.Upgrade upgrade, Sprite icon, int cost)
 {
     RegisterUpgradeEntry(new UpgradeDefinition()
     {
         cost    = cost,
         icon    = icon,
         upgrade = upgrade
     });
 }
Ejemplo n.º 3
0
        /// <summary>
        /// Create and register an upgrade entry
        /// </summary>
        /// <param name="upgrade">Upgrade ID</param>
        /// <param name="icon">Icon that will show up in the upgrade shop</param>
        /// <param name="cost">The cost of the upgrade</param>
        public static void RegisterUpgradeEntry(PlayerState.Upgrade upgrade, Sprite icon, int cost)
        {
            var v = ScriptableObject.CreateInstance <UpgradeDefinition>();

            v.upgrade = upgrade;
            v.icon    = icon;
            v.cost    = cost;
            RegisterUpgradeEntry(v);
        }
Ejemplo n.º 4
0
 public static void RegisterUpgradeEntry(PlayerState.Upgrade upgrade, Sprite icon, int cost)
 {
     RegisterUpgradeEntry(new LookupDirector.UpgradeEntry()
     {
         cost    = cost,
         icon    = icon,
         upgrade = upgrade
     });
 }
Ejemplo n.º 5
0
        public static bool Prefix(PlayerModel __instance, PlayerState.Upgrade upgrade, bool isFirstTime)
        {
            if (PersonalUpgradeRegistry.upgradeCallbacks.TryGetValue(upgrade, out var callback))
            {
                callback(__instance, isFirstTime);
                return(false);
            }

            return(true);
        }
        /// <summary>
        /// Creates an Upgrade Definition
        /// </summary>
        /// <param name="upgrade">The upgrade for this definition</param>
        /// <param name="icon">The icon to be displayed</param>
        /// <param name="cost">The cost of this upgrade</param>
        public static UpgradeDefinition CreateUpgradeDefinition(PlayerState.Upgrade upgrade, Sprite icon, int cost)
        {
            UpgradeDefinition definition = ScriptableObject.CreateInstance <UpgradeDefinition>();

            definition.SetPrivateField("upgrade", upgrade);
            definition.SetPrivateField("icon", icon);
            definition.SetPrivateField("cost", cost);

            return(definition);
        }
Ejemplo n.º 7
0
 public static void RegisterUpgradeCallback(PlayerState.Upgrade upgrade, ApplyUpgradeDelegate callback)
 {
     if (upgradeCallbacks.ContainsKey(upgrade))
     {
         upgradeCallbacks[upgrade] += callback;
     }
     else
     {
         upgradeCallbacks[upgrade] = callback;
     }
 }
Ejemplo n.º 8
0
        //+ REGISTRATION
        /// <summary>
        /// Registers a new upgrade for te player
        /// </summary>
        /// <param name="upgrade">The upgrade to register</param>
        /// <param name="startAvailable">Should the upgrade start available?</param>
        /// <param name="startUnlocked">Should the upgrade start unlocked?</param>
        public static void RegisterPlayerUpgrade(PlayerState.Upgrade upgrade, bool startAvailable, bool startUnlocked = false)
        {
            if (ModLoader.CurrentStep != LoadingState.PRE_LOAD)
            {
                throw new Exception("Handlers need to be registered during 'Pre-Load'");
            }

            if ((startAvailable || startUnlocked) && !PLAYER_UPGRADE_LOCKS.ContainsKey(upgrade))
            {
                PLAYER_UPGRADES[upgrade] = startUnlocked;
            }
        }
Ejemplo n.º 9
0
        /// <summary>
        /// Registers the lock for a player upgrade
        /// </summary>
        /// <param name="upgrade">The upgrade to register the lock for</param>
        /// <param name="unlockCondition">The unlock condition</param>
        /// <param name="unlockDelayHrs">The amount of game hours to delay</param>
        public static void RegisterPlayerUpgradeLock(PlayerState.Upgrade upgrade, PlayerState.UnlockCondition unlockCondition, float unlockDelayHrs)
        {
            if (ModLoader.CurrentStep != LoadingState.PRE_LOAD)
            {
                throw new Exception("Handlers need to be registered during 'Pre-Load'");
            }

            if (PLAYER_UPGRADES.ContainsKey(upgrade))
            {
                PLAYER_UPGRADES.Remove(upgrade);
            }
            PLAYER_UPGRADE_LOCKS[upgrade] = new Tuple <PlayerState.UnlockCondition, float>(unlockCondition, unlockDelayHrs);
        }
        public override bool Execute(string[] args)
        {
            if (ArgsOutOfBounds(args.Length, 1, 1))
            {
                return(false);
            }

            PlayerState.Upgrade upg = EnumUtils.Parse <PlayerState.Upgrade>(args[0]);
            if (Player.upgradeLocks.ContainsKey(upg))
            {
                Player.upgradeLocks[upg].Unlock();
            }

            return(true);
        }
Ejemplo n.º 11
0
 public static bool CanBuyUpgrade(PlayerState.Upgrade upgrade)
 {
     return(player.CanGetUpgrade(upgrade));
 }
 //+ SAVE HANDLING
 internal static bool IsPlayerUpgradeRegistered(PlayerState.Upgrade upgrade) => PLAYER_UPGRADES.ContainsKey(upgrade);
 [UsedImplicitly] private static void AddUpgrade_Postfix(PlayerState @this, PlayerState.Upgrade upgrade, bool isFirstTime) => EventHandler.Instance.OnAddUpgrade_Trigger(@this, upgrade, isFirstTime);
 internal void OnAddUpgrade_Trigger(PlayerState player, PlayerState.Upgrade upgrade, bool isFirstTime) => OnAddUpgrade?.Handle(args: new object[] { player, upgrade, isFirstTime }, unique: true);
Ejemplo n.º 15
0
 public static void RegisterDefaultUpgrade(PlayerState.Upgrade upgrade)
 {
     RegisterUpgradeLock(upgrade, null);
 }
Ejemplo n.º 16
0
 public static bool HasUpgrade(PlayerState.Upgrade upgrade)
 {
     return(player.HasUpgrade(upgrade));
 }
Ejemplo n.º 17
0
 private static bool IsGuuUpgrade(PlayerState.Upgrade id) => UpgradeRegistry.IsPlayerUpgradeRegistered(id);
Ejemplo n.º 18
0
 public static bool IsModdedUpgrade(PlayerState.Upgrade upgrade)
 {
     return(moddedUpgrades.ContainsKey(upgrade));
 }
Ejemplo n.º 19
0
 public static void RegisterUpgradeLock(PlayerState.Upgrade upgrade, CreateUpgradeLockerDelegate del)
 {
     moddedLockers.Add(upgrade, del);
 }
 public static PersonalUpgradeTranslation GetTranslation(this PlayerState.Upgrade upgrade)
 {
     return(new PersonalUpgradeTranslation(upgrade));
 }