/// <summary> /// <para>Creates a new <see cref="CustomAbility"/> with the specified <paramref name="id"/>, <paramref name="sprite"/>, <paramref name="name"/> and <paramref name="description"/>.</para> /// </summary> public static CustomAbility CreateCustomAbility(string id, Sprite sprite, bool unlockedFromStart, CustomNameInfo name, CustomNameInfo description, Action <InvItem> setupDetails) { CustomAbility customAbility = GetCustomAbility(id); if (customAbility != null) { string message = string.Concat("A CustomAbility with Id \"", id, "\" already exists!"); Logger.LogError(message); throw new ArgumentException(message, nameof(id)); } CustomAbilities.Add(customAbility = new CustomAbility(id, CreateCustomName(id, "Item", name), CreateCustomName(id, "Description", description) )); customAbility.Unlocked = unlockedFromStart; customAbility.Sprite = sprite; customAbility.SetupDetails = setupDetails; sprite.name = id; PluginInstance.Setup(customAbility); Logger.LogDebug(string.Concat("A CustomAbility with Id \"", id, "\" was created.")); return(customAbility); }
/// <summary> /// <para>Finds an existing <see cref="CustomAbility"/> by its <paramref name="id"/>.</para> /// </summary> public static CustomAbility GetCustomAbility(string id) => CustomAbilities.Find(a => a.Id == id);