Exemplo n.º 1
0
        /// <summary>
        /// Adds the item ability with the specified type.
        /// </summary>
        /// <param name="characterLocomotion">The character to add the ability to.</param>
        /// <param name="abilityType">The type of ability to add.</param>
        /// <returns>The added ability.</returns>
        public static ItemAbility AddItemAbility(UltimateCharacterLocomotion characterLocomotion, Type abilityType, int index)
        {
            var itemAbilities = characterLocomotion.GetSerializedItemAbilities();

            if (itemAbilities == null)
            {
                itemAbilities = new ItemAbility[1];
            }
            else
            {
                Array.Resize(ref itemAbilities, itemAbilities.Length + 1);
            }
            var itemAbility = Activator.CreateInstance(abilityType) as ItemAbility;

            // Assign the default values specified by any added attribtes.
            SetAbilityDefaultValues(itemAbility);

            for (int i = itemAbilities.Length - 1; i > index; --i)
            {
                itemAbilities[i] = itemAbilities[i - 1];
            }
            itemAbilities[itemAbilities.Length - 1] = itemAbility;
            characterLocomotion.ItemAbilities       = itemAbilities;
            SerializeItemAbilities(characterLocomotion);
            return(itemAbility);
        }
Exemplo n.º 2
0
        /// <summary>
        /// Adds the item ability with the specified type.
        /// </summary>
        /// <param name="characterLocomotion">The character to add the ability to.</param>
        /// <param name="abilityType">The type of ability to add.</param>
        /// <returns>The added ability.</returns>
        public static ItemAbility AddItemAbility(UltimateCharacterLocomotion characterLocomotion, Type abilityType)
        {
            var itemAbilities = characterLocomotion.GetSerializedItemAbilities();
            var index         = itemAbilities == null ? 0 : itemAbilities.Length;

            return(AddItemAbility(characterLocomotion, abilityType, index));
        }