コード例 #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;
            }
        }
コード例 #2
0
        public void TracksSpecialAttackAbilities()
        {
            var special = new SpecialAttacks();

            smallStats.ProcessSpecialAbilities(special);
            Assert.Greater(smallStats.OffensiveAbilities.Count(), 0);
        }
コード例 #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();
        }
コード例 #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));
 }
コード例 #5
0
        public void AddSpecial(SpecialAttacks id)
        {
            SpecialAttack s = GetSpecialAttack(id);

            if (s != null)
            {
                this.Specials.Add(s);
            }
        }
コード例 #6
0
 // 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);
         }
     }
 }
コード例 #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));
            });
        }
コード例 #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();
 }
コード例 #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);
            }
        }
コード例 #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;
 }
コード例 #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;
            }
コード例 #12
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) );
 }
コード例 #13
0
ファイル: XmlCustomAttacks.cs プロジェクト: jasegiffin/JustUO
 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;
 }
コード例 #14
0
 public XmlCustomAttacks(SpecialAttacks attack)
 {
     AddSpecial(attack);
 }
コード例 #15
0
            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;
            }
コード例 #16
0
ファイル: Mob.cs プロジェクト: natedahl32/EqEmulator-net
 internal virtual bool HasSpecialAttack(SpecialAttacks specAtt)
 {
     return false;   // TODO: implement
 }
コード例 #17
0
ファイル: Npc.cs プロジェクト: Unchated/pogee-3d-editor
        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;
            }
        }
コード例 #18
0
 private static SpecialAttack GetSpecialAttack(SpecialAttacks id)
 {
     return((SpecialAttack)AllSpecials[id]);
 }
コード例 #19
0
 private static void AddComboAttack( string name, ComboAttacks id, SpecialAttacks [] sequence)
 {
     AllCombos.Add(id, new ComboAttack( name, id,sequence) );
 }
コード例 #20
0
        public void AddSpecial( SpecialAttacks id )
        {
            SpecialAttack s = GetSpecialAttack(id);

            if(s != null)
                Specials.Add(s);
        }
コード例 #21
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);
            }
        }
コード例 #22
0
ファイル: Npc.cs プロジェクト: Unchated/pogee-3d-editor
        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;
            }
        }
コード例 #23
0
 public XmlCustomAttacks(SpecialAttacks attack)
 {
     this.AddSpecial(attack);
 }
コード例 #24
0
 private static SpecialAttack GetSpecialAttack( SpecialAttacks id )
 {
     return((SpecialAttack)AllSpecials[id]);
 }
コード例 #25
0
ファイル: NpcMob.cs プロジェクト: natedahl32/EqEmulator-net
 internal override bool HasSpecialAttack(SpecialAttacks specAtt)
 {
     return _specialAttacks[(int)specAtt];
 }
コード例 #26
0
 public ComboAttack( string name, ComboAttacks id, SpecialAttacks [] sequence)
 {
     Name = name;
     AttackID = id;
     AttackSequence = sequence;
 }