Пример #1
0
 public override void Cast_Spell(Summon s)
 {
     base.Cast_Spell(s);
     if (Random.Range(0, 101) > 90)
     {
         results += new Paralyze().Do_Ability(s);
     }
 }
Пример #2
0
        private static Paralyze ParseParalyzeCombatData(XElement element)
        {
            Paralyze paralyze = new Paralyze();

            if (element.Attribute("chance") is XAttribute minAttribute)
            {
                paralyze.Chance = new Percent(byte.Parse(minAttribute.Value));
            }

            if (element.Attribute("speedchange") is XAttribute maxAttribute)
            {
                paralyze.Change = short.Parse(maxAttribute.Value);
            }

            if (element.Attribute("duration") is XAttribute chanceAttribute)
            {
                paralyze.Duration = TimeSpan.FromMilliseconds(long.Parse(chanceAttribute.Value));
            }

            return(paralyze);
        }
Пример #3
0
        //======================================================
        #region Event Methods
        private void SpecialForm_Load(object sender, EventArgs e)
        {
            //Until I find a better way, this list is typed manually.

            //Rules attached to this ability should be added first, for editing.
            if (ability.SpecialRules != null)
            {
                foreach (SpecialRule rule in ability.SpecialRules)
                {
                    clbSpecials.Items.Add(rule, true);
                }
            }

            //Add the rest of the rules, but don't add ones already added from the ability.
            SpecialRule nRule = new Acid();

            if (!ability.SpecialRules.Contains(nRule))
            {
                clbSpecials.Items.Add(nRule);
            }
            nRule = new ArmorBuster();
            if (!ability.SpecialRules.Contains(nRule))
            {
                clbSpecials.Items.Add(nRule);
            }
            nRule = new Blast();
            if (!ability.SpecialRules.Contains(nRule))
            {
                clbSpecials.Items.Add(nRule);
            }
            nRule = new Blind();
            if (!ability.SpecialRules.Contains(nRule))
            {
                clbSpecials.Items.Add(nRule);
            }
            nRule = new ChangeSpeed();
            if (!ability.SpecialRules.Contains(nRule))
            {
                clbSpecials.Items.Add(nRule);
            }
            nRule = new ChangeStrength();
            if (!ability.SpecialRules.Contains(nRule))
            {
                clbSpecials.Items.Add(nRule);
            }
            nRule = new ChangeMarksmanship();
            if (!ability.SpecialRules.Contains(nRule))
            {
                clbSpecials.Items.Add(nRule);
            }
            nRule = new ChangeTech();
            if (!ability.SpecialRules.Contains(nRule))
            {
                clbSpecials.Items.Add(nRule);
            }
            nRule = new CounterAttack();
            if (!ability.SpecialRules.Contains(nRule))
            {
                clbSpecials.Items.Add(nRule);
            }
            nRule = new Deafen();
            if (!ability.SpecialRules.Contains(nRule))
            {
                clbSpecials.Items.Add(nRule);
            }
            nRule = new DrainTime();
            if (!ability.SpecialRules.Contains(nRule))
            {
                clbSpecials.Items.Add(nRule);
            }
            nRule = new Encase();
            if (!ability.SpecialRules.Contains(nRule))
            {
                clbSpecials.Items.Add(nRule);
            }
            nRule = new Explosion();
            if (!ability.SpecialRules.Contains(nRule))
            {
                clbSpecials.Items.Add(nRule);
            }
            nRule = new Fear();
            if (!ability.SpecialRules.Contains(nRule))
            {
                clbSpecials.Items.Add(nRule);
            }
            nRule = new GreaterAcid();
            if (!ability.SpecialRules.Contains(nRule))
            {
                clbSpecials.Items.Add(nRule);
            }
            nRule = new GreaterCounterAttack();
            if (!ability.SpecialRules.Contains(nRule))
            {
                clbSpecials.Items.Add(nRule);
            }
            nRule = new GreaterIndirect();
            if (!ability.SpecialRules.Contains(nRule))
            {
                clbSpecials.Items.Add(nRule);
            }
            nRule = new GreaterNoDeflect();
            if (!ability.SpecialRules.Contains(nRule))
            {
                clbSpecials.Items.Add(nRule);
            }
            nRule = new GreaterNoDodge();
            if (!ability.SpecialRules.Contains(nRule))
            {
                clbSpecials.Items.Add(nRule);
            }
            nRule = new Heal();
            if (!ability.SpecialRules.Contains(nRule))
            {
                clbSpecials.Items.Add(nRule);
            }
            nRule = new IdentifyFriendFoe();
            if (!ability.SpecialRules.Contains(nRule))
            {
                clbSpecials.Items.Add(nRule);
            }
            nRule = new Indirect();
            if (!ability.SpecialRules.Contains(nRule))
            {
                clbSpecials.Items.Add(nRule);
            }
            nRule = new Leap();
            if (!ability.SpecialRules.Contains(nRule))
            {
                clbSpecials.Items.Add(nRule);
            }
            nRule = new NoArmorReduction();
            if (!ability.SpecialRules.Contains(nRule))
            {
                clbSpecials.Items.Add(nRule);
            }
            nRule = new NoDeflect();
            if (!ability.SpecialRules.Contains(nRule))
            {
                clbSpecials.Items.Add(nRule);
            }
            nRule = new NoDodge();
            if (!ability.SpecialRules.Contains(nRule))
            {
                clbSpecials.Items.Add(nRule);
            }
            nRule = new Paralyze();
            if (!ability.SpecialRules.Contains(nRule))
            {
                clbSpecials.Items.Add(nRule);
            }
            nRule = new PoisonMalignant();
            if (!ability.SpecialRules.Contains(nRule))
            {
                clbSpecials.Items.Add(nRule);
            }
            nRule = new PoisonResilient();
            if (!ability.SpecialRules.Contains(nRule))
            {
                clbSpecials.Items.Add(nRule);
            }
            nRule = new Pull();
            if (!ability.SpecialRules.Contains(nRule))
            {
                clbSpecials.Items.Add(nRule);
            }
            nRule = new Range();
            if (!ability.SpecialRules.Contains(nRule))
            {
                clbSpecials.Items.Add(nRule);
            }
            nRule = new CharacterCreator.Classes.SpecialRules.Radius();
            if (!ability.SpecialRules.Contains(nRule))
            {
                clbSpecials.Items.Add(nRule);
            }
            nRule = new RerollMisses();
            if (!ability.SpecialRules.Contains(nRule))
            {
                clbSpecials.Items.Add(nRule);
            }
            nRule = new RerollHits();
            if (!ability.SpecialRules.Contains(nRule))
            {
                clbSpecials.Items.Add(nRule);
            }
            nRule = new Reach();
            if (!ability.SpecialRules.Contains(nRule))
            {
                clbSpecials.Items.Add(nRule);
            }
            nRule = new Roll();
            if (!ability.SpecialRules.Contains(nRule))
            {
                clbSpecials.Items.Add(nRule);
            }
            nRule = new Slam();
            if (!ability.SpecialRules.Contains(nRule))
            {
                clbSpecials.Items.Add(nRule);
            }
            nRule = new Stream();
            if (!ability.SpecialRules.Contains(nRule))
            {
                clbSpecials.Items.Add(nRule);
            }
            nRule = new Stun();
            if (!ability.SpecialRules.Contains(nRule))
            {
                clbSpecials.Items.Add(nRule);
            }
            nRule = new SuperbAcid();
            if (!ability.SpecialRules.Contains(nRule))
            {
                clbSpecials.Items.Add(nRule);
            }
            nRule = new SuperbCounterAttack();
            if (!ability.SpecialRules.Contains(nRule))
            {
                clbSpecials.Items.Add(nRule);
            }
            nRule = new SuperbIndirect();
            if (!ability.SpecialRules.Contains(nRule))
            {
                clbSpecials.Items.Add(nRule);
            }
            nRule = new SuperbNoDeflect();
            if (!ability.SpecialRules.Contains(nRule))
            {
                clbSpecials.Items.Add(nRule);
            }
            nRule = new SuperbNoDodge();
            if (!ability.SpecialRules.Contains(nRule))
            {
                clbSpecials.Items.Add(nRule);
            }
            nRule = new TechAttack();
            if (!ability.SpecialRules.Contains(nRule))
            {
                clbSpecials.Items.Add(nRule);
            }
            nRule = new TechBlast();
            if (!ability.SpecialRules.Contains(nRule))
            {
                clbSpecials.Items.Add(nRule);
            }
            nRule = new TechBlind();
            if (!ability.SpecialRules.Contains(nRule))
            {
                clbSpecials.Items.Add(nRule);
            }
            nRule = new TechDeafen();
            if (!ability.SpecialRules.Contains(nRule))
            {
                clbSpecials.Items.Add(nRule);
            }
            nRule = new TechExplosion();
            if (!ability.SpecialRules.Contains(nRule))
            {
                clbSpecials.Items.Add(nRule);
            }
            nRule = new TechEncase();
            if (!ability.SpecialRules.Contains(nRule))
            {
                clbSpecials.Items.Add(nRule);
            }
            nRule = new TechMelee();
            if (!ability.SpecialRules.Contains(nRule))
            {
                clbSpecials.Items.Add(nRule);
            }
            nRule = new TechParalyze();
            if (!ability.SpecialRules.Contains(nRule))
            {
                clbSpecials.Items.Add(nRule);
            }
            nRule = new TechRange();
            if (!ability.SpecialRules.Contains(nRule))
            {
                clbSpecials.Items.Add(nRule);
            }
            nRule = new Teleport();
            if (!ability.SpecialRules.Contains(nRule))
            {
                clbSpecials.Items.Add(nRule);
            }
            nRule = new Throw();
            if (!ability.SpecialRules.Contains(nRule))
            {
                clbSpecials.Items.Add(nRule);
            }
            nRule = new Trip();
            if (!ability.SpecialRules.Contains(nRule))
            {
                clbSpecials.Items.Add(nRule);
            }
        }