public override void Cast_Spell(Summon s) { base.Cast_Spell(s); if (Random.Range(0, 101) > 90) { results += new Paralyze().Do_Ability(s); } }
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); }
//====================================================== #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); } }