/// <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> /// 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); }
/// <summary> /// Register <paramref name="entry"/> into the <see cref="LookupDirector"/> /// </summary> /// <param name="entry">Upgrade Entry to register</param> public static void RegisterUpgradeEntry(UpgradeDefinition entry) { switch (CurrentLoadingStep) { case LoadingStep.PRELOAD: upgradeEntriesToPatch.Add(entry); break; default: GameContext.Instance.LookupDirector.upgradeDefinitions.AddAndRemoveWhere(entry, (x, y) => x.upgrade == y.upgrade); GameContext.Instance.LookupDirector.upgradeDefinitionDict[entry.upgrade] = entry; break; } }
public void SetDefinition(string category, UpgradeDefinition definition) { this.mCategory = category; this.mDefinition = definition; this.UpdateButtonInteractable(); if (this.mDefinition != null) { this.nameText.text = this.mDefinition.Name; this.descriptionText.text = this.mDefinition.Description; this.costText.text = this.mDefinition.Cost.ToString("0.00"); } else { this.nameText.text = "[MAXED]"; this.descriptionText.text = "[MAXED]"; this.costText.text = "[ALL]"; } }