Exemplo n.º 1
0
        public void RemoveAbility(WeaponAbility ability)
        {
            if (WeaponAbilities == null || !WeaponAbilities.Any(a => a == ability))
            {
                return;
            }

            var list = WeaponAbilities.ToList();

            list.Remove(ability);
            RemovePetAdvancement(ability);

            WeaponAbilities = list.ToArray();

            ColUtility.Free(list);
        }
Exemplo n.º 2
0
        public bool HasAbility(object o)
        {
            if (o is MagicalAbility)
            {
                return((MagicalAbility & (MagicalAbility)o) != 0);
            }

            if (o is SpecialAbility && SpecialAbilities != null)
            {
                return(SpecialAbilities.Any(a => a == (SpecialAbility)o));
            }

            if (o is AreaEffect && AreaEffects != null)
            {
                return(AreaEffects.Any(a => a == (AreaEffect)o));
            }

            if (o is WeaponAbility && WeaponAbilities != null)
            {
                return(WeaponAbilities.Any(a => a == (WeaponAbility)o));
            }

            return(false);
        }
Exemplo n.º 3
0
        public bool AddAbility(WeaponAbility ability, bool advancement = true)
        {
            if (WeaponAbilities == null)
            {
                WeaponAbilities = new WeaponAbility[] { ability };
            }
            else if (!WeaponAbilities.Any(a => a == ability))
            {
                var temp = WeaponAbilities;

                WeaponAbilities = new WeaponAbility[temp.Length + 1];

                for (int i = 0; i < temp.Length; i++)
                {
                    WeaponAbilities[i] = temp[i];
                }

                WeaponAbilities[temp.Length] = ability;
            }

            OnAddAbility(ability, advancement);

            return(true);
        }