/// <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); }
/// <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 }); }
/// <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); }
public static void RegisterUpgradeEntry(PlayerState.Upgrade upgrade, Sprite icon, int cost) { RegisterUpgradeEntry(new LookupDirector.UpgradeEntry() { cost = cost, icon = icon, upgrade = upgrade }); }
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); }
public static void RegisterUpgradeCallback(PlayerState.Upgrade upgrade, ApplyUpgradeDelegate callback) { if (upgradeCallbacks.ContainsKey(upgrade)) { upgradeCallbacks[upgrade] += callback; } else { upgradeCallbacks[upgrade] = callback; } }
//+ 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; } }
/// <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); }
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);
public static void RegisterDefaultUpgrade(PlayerState.Upgrade upgrade) { RegisterUpgradeLock(upgrade, null); }
public static bool HasUpgrade(PlayerState.Upgrade upgrade) { return(player.HasUpgrade(upgrade)); }
private static bool IsGuuUpgrade(PlayerState.Upgrade id) => UpgradeRegistry.IsPlayerUpgradeRegistered(id);
public static bool IsModdedUpgrade(PlayerState.Upgrade upgrade) { return(moddedUpgrades.ContainsKey(upgrade)); }
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)); }