Example #1
0
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);

            int version = reader.ReadInt();

            switch (version)
            {
            case 0:
                // version 0
                int count = reader.ReadInt();

                for (int i = 0; i < count; i++)
                {
                    string sname = reader.ReadString();

                    try
                    {
                        SpecialAttacks stype = (SpecialAttacks)Enum.Parse(typeof(SpecialAttacks), sname);
                        this.tmpSpecialsList.Add(stype);
                    }
                    catch
                    {
                    }
                }
                break;
            }
        }
Example #2
0
        public void TracksSpecialAttackAbilities()
        {
            var special = new SpecialAttacks();

            smallStats.ProcessSpecialAbilities(special);
            Assert.Greater(smallStats.OffensiveAbilities.Count(), 0);
        }
Example #3
0
        public void addAbility(Ability ability)
        {
            //Remove the ability from any list it may be in.
            if (BasicAttacks.Contains(ability))
            {
                BasicAttacks.Remove(ability);
            }
            if (SpecialAttacks.Contains(ability))
            {
                SpecialAttacks.Remove(ability);
            }
            if (SpecialAbilities.Contains(ability))
            {
                SpecialAbilities.Remove(ability);
            }

            //Add the ability to the appropriate container.
            if (ability.Type == Ability.AbilityType.Basic)
            {
                BasicAttacks.Add(ability);
            }
            if (ability.Type == Ability.AbilityType.Special)
            {
                SpecialAttacks.Add(ability);
            }
            if (ability.Type == Ability.AbilityType.Ability || ability.Type == Ability.AbilityType.Passive)
            {
                SpecialAbilities.Add(ability);
            }

            //Update the character points
            updateCharacterPoints();
        }
Example #4
0
 private static void AddSpecialAttack(string name, string description, SpecialAttacks id, int icon, IconTypes itype, TimeSpan duration,
                                      int mana, int stam, int hits, int karma, int minstr, int mindex, int minint,
                                      SkillName[] skills, int[] minlevel, Type[] reagents, int[] quantity)
 {
     AllSpecials.Add(id, new SpecialAttack(name, description, id, icon, itype,
                                           duration, mana, stam, hits, karma,
                                           minstr, mindex, minint, skills, minlevel, reagents, quantity));
 }
Example #5
0
        public void AddSpecial(SpecialAttacks id)
        {
            SpecialAttack s = GetSpecialAttack(id);

            if (s != null)
            {
                this.Specials.Add(s);
            }
        }
 // this constructor is intended to be called from within scripts that wish to define custom attack configurations
 // by passing it a list of SpecialAttacks
 public XmlCustomAttacks(SpecialAttacks [] attacklist)
 {
     if(attacklist != null)
     {
         foreach(SpecialAttacks sid in attacklist)
         {
             AddSpecial(sid);
         }
     }
 }
Example #7
0
        private void OnNewImage(object sender, Mat frame)
        {
            var bytes = frame.ToBytes(".png");

            ChangeUI(() =>
            {
                TheImage.Source = ImageHelper.ToImage(bytes);

                var attack = _customVisison.AnalyzeAsync(bytes).Result;
                WriteOutput(attack);
                ExecuteWhen.SameValueTwoTimes(attack, () => SpecialAttacks.Execute(attack));
            });
        }
Example #8
0
 public void removeAbility(Ability ability)
 {
     if (ability.Type == Ability.AbilityType.Basic)
     {
         BasicAttacks.Remove(ability);
     }
     if (ability.Type == Ability.AbilityType.Special)
     {
         SpecialAttacks.Remove(ability);
     }
     if (ability.Type == Ability.AbilityType.Ability || ability.Type == Ability.AbilityType.Passive)
     {
         SpecialAbilities.Remove(ability);
     }
     updateCharacterPoints();
 }
Example #9
0
        public static void AddAttack(object target, SpecialAttacks attack)
        {
            // is there an existing custom attacks attachment to add to?
            XmlCustomAttacks a = (XmlCustomAttacks)XmlAttach.FindAttachment(target, typeof(XmlCustomAttacks));

            if (a == null)
            {
                // add a new custom attacks attachment
                XmlAttach.AttachTo(target, new XmlCustomAttacks(attack));
            }
            else
            {
                // add the new attack to existing attack list
                a.AddSpecial(attack);
            }
        }
Example #10
0
 public int[] MinSkillLevel;     // minimum skill levels
 public SpecialAttack(string name, string description, SpecialAttacks id, int icon, IconTypes itype, TimeSpan duration,
                      int mana, int stam, int hits, int karma, int minstr, int mindex, int minint,
                      SkillName[] skills, int[] minlevel, Type[] reagents, int[] quantity)
 {
     this.Name          = name;
     this.Description   = description;
     this.AttackID      = id;
     this.ChainTime     = duration;
     this.Icon          = icon;
     this.IconType      = itype;
     this.ManaReq       = mana;
     this.StamReq       = stam;
     this.HitsReq       = hits;
     this.KarmaReq      = karma;
     this.StrReq        = minstr;
     this.DexReq        = mindex;
     this.IntReq        = minint;
     this.Reagents      = reagents;
     this.Quantity      = quantity;
     this.Skills        = skills;
     this.MinSkillLevel = minlevel;
 }
Example #11
0
            public int [] MinSkillLevel;    // minimum skill levels

            public SpecialAttack(string name, string description, SpecialAttacks id, int icon, IconTypes itype, TimeSpan duration,
                                 int mana, int stam, int hits, int karma, int minstr, int mindex, int minint,
                                 SkillName [] skills, int [] minlevel, Type [] reagents, int [] quantity)
            {
                Name          = name;
                Description   = description;
                AttackID      = id;
                ChainTime     = duration;
                Icon          = icon;
                IconType      = itype;
                ManaReq       = mana;
                StamReq       = stam;
                HitsReq       = hits;
                KarmaReq      = karma;
                StrReq        = minstr;
                DexReq        = mindex;
                IntReq        = minint;
                Reagents      = reagents;
                Quantity      = quantity;
                Skills        = skills;
                MinSkillLevel = minlevel;
            }
 private static void AddSpecialAttack( string name, string description, SpecialAttacks id, int icon, IconTypes itype, TimeSpan duration,
 int mana, int stam, int hits, int karma, int minstr, int mindex, int minint,
 SkillName [] skills, int [] minlevel, Type [] reagents, int [] quantity)
 {
     AllSpecials.Add(id, new SpecialAttack( name, description, id, icon, itype,
     duration, mana, stam, hits, karma,
     minstr, mindex, minint, skills, minlevel, reagents, quantity) );
 }
Example #13
0
 public int[] MinSkillLevel;// minimum skill levels
 public SpecialAttack(string name, string description, SpecialAttacks id, int icon, IconTypes itype, TimeSpan duration,
     int mana, int stam, int hits, int karma, int minstr, int mindex, int minint,
     SkillName[] skills, int[] minlevel, Type[] reagents, int[] quantity)
 {
     this.Name = name;
     this.Description = description;
     this.AttackID = id;
     this.ChainTime = duration;
     this.Icon = icon;
     this.IconType = itype;
     this.ManaReq = mana;
     this.StamReq = stam;
     this.HitsReq = hits;
     this.KarmaReq = karma;
     this.StrReq = minstr;
     this.DexReq = mindex;
     this.IntReq = minint;
     this.Reagents = reagents;
     this.Quantity = quantity;
     this.Skills = skills;
     this.MinSkillLevel = minlevel;
 }
 public XmlCustomAttacks(SpecialAttacks attack)
 {
     AddSpecial(attack);
 }
            public int StrReq; // str requirements for this attack

            #endregion Fields

            #region Constructors

            public SpecialAttack( string name, string description, SpecialAttacks id, int icon, IconTypes itype, TimeSpan duration,
            int mana, int stam, int hits, int karma, int minstr, int mindex, int minint,
            SkillName [] skills, int [] minlevel, Type [] reagents, int [] quantity)
            {
                Name = name;
                Description = description;
                AttackID = id;
                ChainTime = duration;
                Icon = icon;
                IconType = itype;
                ManaReq = mana;
                StamReq = stam;
                HitsReq = hits;
                KarmaReq = karma;
                StrReq = minstr;
                DexReq = mindex;
                IntReq = minint;
                Reagents = reagents;
                Quantity = quantity;
                Skills = skills;
                MinSkillLevel = minlevel;
            }
Example #16
0
 internal virtual bool HasSpecialAttack(SpecialAttacks specAtt)
 {
     return false;   // TODO: implement
 }
Example #17
0
        public bool IsAttackSet(SpecialAttacks atk)
        {
            Func<string, bool> action = IsAttackSet;

            switch (atk)
            {
                case SpecialAttacks.Enrage:
                    return action("E");
                case SpecialAttacks.Flurry:
                    return action("F");
                case SpecialAttacks.Rampage:
                    return action("R");
                case SpecialAttacks.AreaRampage:
                    return action("r");
                case SpecialAttacks.Summon:
                    return action("S");
                case SpecialAttacks.Triple:
                    return action("T");
                case SpecialAttacks.Quad:
                    return action("Q");
                case SpecialAttacks.Bane:
                    return action("b");
                case SpecialAttacks.Magical:
                    return action("m");
                case SpecialAttacks.SlowImmune:
                    return action("u");
                case SpecialAttacks.MezImmune:
                    return action("M");
                case SpecialAttacks.CharmImmune:
                    return action("C");
                case SpecialAttacks.StunImmune:
                    return action("N");
                case SpecialAttacks.SnareImmune:
                    return action("I");
                case SpecialAttacks.FearImmune:
                    return action("D");
                case SpecialAttacks.MeleeImmune:
                    return action("A");
                case SpecialAttacks.FleeImmune:
                    return action("f");
                case SpecialAttacks.BaneMeleeOnly:
                    return action("O");
                case SpecialAttacks.MeleeNonMagicImmune:
                    return action("W");
                case SpecialAttacks.AggroImmune:
                    return action("H");
                case SpecialAttacks.AggroOnImmune:
                    return action("G");
                case SpecialAttacks.FeignDeathImmune:
                    return action("d");
                case SpecialAttacks.RangedAttack:
                    return action("Y");
                case SpecialAttacks.InnateDualWield:
                    return action("L");
                case SpecialAttacks.TunnelVision:
                    return action("t");
                case SpecialAttacks.NoBuffHealFriends:
                    return action("n");
                case SpecialAttacks.PacifyImmune:
                    return action("p");
                case SpecialAttacks.Leash:
                    return action("J");
                case SpecialAttacks.Tether:
                    return action("j");
                case SpecialAttacks.Destructible:
                    return action("o");
                case SpecialAttacks.NoHarmFromClient:
                    return action("Z");
                default:
                    return false;
            }
        }
Example #18
0
 private static SpecialAttack GetSpecialAttack(SpecialAttacks id)
 {
     return((SpecialAttack)AllSpecials[id]);
 }
 private static void AddComboAttack( string name, ComboAttacks id, SpecialAttacks [] sequence)
 {
     AllCombos.Add(id, new ComboAttack( name, id,sequence) );
 }
        public void AddSpecial( SpecialAttacks id )
        {
            SpecialAttack s = GetSpecialAttack(id);

            if(s != null)
                Specials.Add(s);
        }
        public static void AddAttack(object target, SpecialAttacks attack)
        {
            // is there an existing custom attacks attachment to add to?
            XmlCustomAttacks a = (XmlCustomAttacks)XmlAttach.FindAttachment(target, typeof(XmlCustomAttacks));

            if(a == null)
            {
                // add a new custom attacks attachment
                XmlAttach.AttachTo(target, new XmlCustomAttacks(attack));
            } else
            {
                // add the new attack to existing attack list
                a.AddSpecial(attack);
            }
        }
Example #22
0
        public void SetSpecialAttack(SpecialAttacks atk,bool set)
        {
            Action<string> action;
            if (set)
            {
                action = SetAttack;
            }
            else
            {
                action = RemoveAttack;
            }

            switch (atk)
            {
                case SpecialAttacks.Enrage:
                    action("E");
                    break;
                case SpecialAttacks.Flurry:
                    action("F");
                    break;
                case SpecialAttacks.Rampage:
                    action("R");
                    break;
                case SpecialAttacks.AreaRampage:
                    action("r");
                    break;
                case SpecialAttacks.Summon:
                    action("S");
                    break;
                case SpecialAttacks.Triple:
                    action("T");
                    break;
                case SpecialAttacks.Quad:
                    action("Q");
                    break;
                case SpecialAttacks.Bane:
                    action("b");
                    break;
                case SpecialAttacks.Magical:
                    action("m");
                    break;
                case SpecialAttacks.SlowImmune:
                    action("u");
                    break;
                case SpecialAttacks.MezImmune:
                    action("M");
                    break;
                case SpecialAttacks.CharmImmune:
                    action("C");
                    break;
                case SpecialAttacks.StunImmune:
                    action("N");
                    break;
                case SpecialAttacks.SnareImmune:
                    action("I");
                    break;
                case SpecialAttacks.FearImmune:
                    action("D");
                    break;
                case SpecialAttacks.MeleeImmune:
                    action("A");
                    break;
                case SpecialAttacks.FleeImmune:
                    action("f");
                    break;
                case SpecialAttacks.BaneMeleeOnly:
                    action("O");
                    break;
                case SpecialAttacks.MeleeNonMagicImmune:
                    action("W");
                    break;
                case SpecialAttacks.AggroImmune:
                    action("H");
                    break;
                case SpecialAttacks.AggroOnImmune:
                    action("G");
                    break;
                case SpecialAttacks.FeignDeathImmune:
                    action("d");
                    break;
                case SpecialAttacks.RangedAttack:
                    action("Y");
                    break;
                case SpecialAttacks.InnateDualWield:
                    action("L");
                    break;
                case SpecialAttacks.TunnelVision:
                    action("t");
                    break;
                case SpecialAttacks.NoBuffHealFriends:
                    action("n");
                    break;
                case SpecialAttacks.PacifyImmune:
                    action("p");
                    break;
                case SpecialAttacks.Leash:
                    action("J");
                    break;
                case SpecialAttacks.Tether:
                    action("j");
                    break;
                case SpecialAttacks.Destructible:
                    action("o");
                    break;
                case SpecialAttacks.NoHarmFromClient:
                    action("Z");
                    break;
            }
        }
Example #23
0
 public XmlCustomAttacks(SpecialAttacks attack)
 {
     this.AddSpecial(attack);
 }
 private static SpecialAttack GetSpecialAttack( SpecialAttacks id )
 {
     return((SpecialAttack)AllSpecials[id]);
 }
Example #25
0
 internal override bool HasSpecialAttack(SpecialAttacks specAtt)
 {
     return _specialAttacks[(int)specAtt];
 }
 public ComboAttack( string name, ComboAttacks id, SpecialAttacks [] sequence)
 {
     Name = name;
     AttackID = id;
     AttackSequence = sequence;
 }