Esempio n. 1
0
        /// <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);
        }
Esempio n. 2
0
 /// <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);