public override void OnCast() { BardSpell spell = SkillMasterySpell.GetSpell(Caster, this.GetType()) as BardSpell; if (spell != null) { spell.Expire(); Caster.SendLocalizedMessage(1115774); //You halt your spellsong. } else if (CheckSequence()) { m_PropertyBonus = (int)((BaseSkillBonus * 12) + (CollectiveBonus * 3)); m_DamageBonus = (int)Math.Min(40, ((BaseSkillBonus * 30) + (CollectiveBonus * 10))); foreach (Mobile m in GetParty()) { m.FixedParticles(0x373A, 10, 15, 5018, EffectLayer.Waist); m.SendLocalizedMessage(1115736); // You feel inspired by the bard's spellsong. string args = String.Format("{0}\t{1}\t{2}", m_PropertyBonus, m_PropertyBonus, m_DamageBonus); BuffInfo.AddBuff(m, new BuffInfo(BuffIcon.Inspire, 1115683, 1115729, args.ToString())); } BeginTimer(); } FinishSequence(); }
public override void OnCast() { BardSpell spell = SkillMasterySpell.GetSpell(Caster, this.GetType()) as BardSpell; if (spell != null) { spell.Expire(); Caster.SendLocalizedMessage(1115774); //You halt your spellsong. } else if (CheckSequence()) { m_PropertyBonus = (int)((BaseSkillBonus * 16) + (CollectiveBonus * 6)); m_PropertyBonus2 = (int)((BaseSkillBonus * 4) + (CollectiveBonus * 2)); m_DamageMod = ((BaseSkillBonus * 16) + (CollectiveBonus * 6)) / 100; System.Collections.Generic.List <Mobile> list = GetParty(); foreach (Mobile m in list) { m.FixedParticles(0x373A, 10, 15, 5018, EffectLayer.Waist); m.SendLocalizedMessage(1115739); // The bard's spellsong fills you with a feeling of invincibility. string args = String.Format("{0}\t{1}\t{2}", m_PropertyBonus, m_DamageMod, m_PropertyBonus2); BuffInfo.AddBuff(m, new BuffInfo(BuffIcon.Perseverance, 1115615, 1115732, args.ToString())); } list.Clear(); list.TrimExcess(); BeginTimer(); } FinishSequence(); }
public override void OnCast() { BardSpell spell = SkillMasterySpell.GetSpell(Caster, this.GetType()) as BardSpell; if (spell != null) { spell.Expire(); Caster.SendLocalizedMessage(1115774); //You halt your spellsong. } else if (CheckSequence()) { m_HPBonus = (int)((20 * BaseSkillBonus) + (CollectiveBonus * 6)); m_StatBonus = (int)((BaseSkillBonus * 8) + (CollectiveBonus * 6)); System.Collections.Generic.List <Mobile> list = GetParty(); foreach (Mobile m in list) { m.FixedParticles(0x373A, 10, 15, 5018, EffectLayer.Waist); m.SendLocalizedMessage(1115737); // You feel invigorated by the bard's spellsong. string args = String.Format("{0}\t{1}\t{2}\t{3}", m_StatBonus, m_StatBonus, m_StatBonus, m_StatBonus); BuffInfo.AddBuff(m, new BuffInfo(BuffIcon.Invigorate, 1115613, 1115730, args.ToString())); } list.Clear(); list.TrimExcess(); BeginTimer(); } FinishSequence(); }
public void OnTarget(Mobile m) { if (!Caster.CanSee(m)) { Caster.SendLocalizedMessage(500237); // Target can not be seen. } else if (Caster == m) { Caster.SendMessage("You cannot target yourself!"); } else if (BardSpell.HasHarmfulEffects(m, this.GetType())) { Caster.SendLocalizedMessage(1115772); //Your target is already under the effect of this spellsong. } else if (CheckHSequence(m)) { SpellHelper.Turn(Caster, m); Target = m; //Caster.SendLocalizedMessage(1234567); //TODO: Message? HarmfulSpell(m); m.FixedParticles(0x374A, 10, 15, 5028, EffectLayer.Waist); m_PropertyBonus = (int)Math.Max(5, ((BaseSkillBonus * 23) + (CollectiveBonus * 8))) * -1; m_DamageChance = Math.Max(20.0, (Caster.Skills[DamageSkill].Value / 2.0)) / 100; m_SlayerBonus = 1; string args = String.Format("{0}\t{1}\t{2}", m_PropertyBonus, m_PropertyBonus, (int)(m_DamageChance * 100)); BuffInfo.AddBuff(m, new BuffInfo(BuffIcon.TribulationTarget, 1115740, 1115743, args.ToString())); BuffInfo.AddBuff(Caster, new BuffInfo(BuffIcon.TribulationCaster, 1115740, 1115742, args.ToString())); ISlayer slayer = Instrument as ISlayer; if (slayer != null) { SlayerEntry se1 = SlayerGroup.GetEntryByName(slayer.Slayer); SlayerEntry se2 = SlayerGroup.GetEntryByName(slayer.Slayer2); if ((se1 != null && se1.Slays(Target)) || (se2 != null && se2.Slays(Target))) { m_SlayerBonus = 1.5; } } BeginTimer(); } FinishSequence(); }
public override void OnCast() { BardSpell spell = SkillMasterySpell.GetSpell(Caster, this.GetType()) as BardSpell; if (spell != null) { spell.Expire(); Caster.SendLocalizedMessage(1115774); //You halt your spellsong. } else { Caster.Target = new InternalTarget(this); } }
public void OnTarget(Mobile m) { if (!Caster.CanSee(m)) { Caster.SendLocalizedMessage(500237); // Target can not be seen. } else if (!m.Alive) { Caster.SendLocalizedMessage(1115773); // Your target is dead. } else if (Caster == m) { // TODO: Message? } else if (BardSpell.HasHarmfulEffects(m, GetType())) { Caster.SendLocalizedMessage(1115772); //Your target is already under the effect of this spellsong. } else if (CheckHSequence(m)) { SpellHelper.Turn(Caster, m); Target = m; //Caster.SendLocalizedMessage(1234567); //TODO: Message? HarmfulSpell(m); m.FixedParticles(0x374A, 10, 15, 5028, EffectLayer.Waist); int rounds = 5 + (int)(BaseSkillBonus * .75); m_StatMod = (int)((BaseSkillBonus * 2) + CollectiveBonus); m_Damage = (int)((BaseSkillBonus * 4.5) + (CollectiveBonus * 2)); m_Rounds = 5 + (int)((BaseSkillBonus * .75) + (CollectiveBonus / 2)); string args = String.Format("{0}\t{1}", m_StatMod, m_Damage); BuffInfo.AddBuff(m, new BuffInfo(BuffIcon.DespairTarget, 1115741, 1115743, args.ToString())); BuffInfo.AddBuff(Caster, new BuffInfo(BuffIcon.DespairCaster, 1115741, 1115743, args.ToString())); BeginTimer(); } FinishSequence(); }
public override void OnCast() { BardSpell spell = SkillMasterySpell.GetSpell(Caster, GetType()) as BardSpell; if (spell != null) { spell.Expire(); Caster.SendLocalizedMessage(1115774); //You halt your spellsong. } else if (CheckSequence()) { m_PropertyBonus = (int)((BaseSkillBonus * 2) + CollectiveBonus); // 2 - 16 (22) UpdateParty(); BeginTimer(); } FinishSequence(); }
public void OnTarget(Mobile m) { if (!Caster.CanSee(m)) { Caster.SendLocalizedMessage(500237); // Target can not be seen. } else if (Caster == m) { Caster.SendMessage("You cannot target yourself!"); } else if (BardSpell.HasHarmfulEffects(m, GetType())) { Caster.SendLocalizedMessage(1115772); //Your target is already under the effect of this spellsong. } else if (CheckHSequence(m)) { SpellHelper.Turn(Caster, m); Target = m; HarmfulSpell(m); m.FixedParticles(0x374A, 10, 15, 5028, EffectLayer.Waist); double cast = Caster.Skills[CastSkill].Value; double dam = Caster.Skills[DamageSkill].Value; m_PropertyBonus = (int)((BaseSkillBonus * 2.75) + (CollectiveBonus * 1.667)); // 5 - 22 (32) m_DamageChance = (int)((BaseSkillBonus * 7.5) + (CollectiveBonus * 3)); // 15 - 60 (84) m_DamageFactor = (int)((BaseSkillBonus * 4) + (CollectiveBonus * 3)); // 8 - 32 (50) m_Rounds = 5 + (int)((BaseSkillBonus * .75) + (CollectiveBonus / 2)); // 5 - 11 (14) // ~1_HCI~% Hit Chance.<br>~2_SDI~% Spell Damage.<br>Damage taken has a ~3_EXP~% chance to cause additional burst of physical damage.<br> BuffInfo.AddBuff(m, new BuffInfo(BuffIcon.TribulationTarget, 1115740, 1115742, String.Format("{0}\t{1}\t{2}", m_PropertyBonus, m_PropertyBonus, (int)m_DamageChance))); // Target: ~1_val~ <br> Damage Factor: ~2_val~% <br> Damage Chance: ~3_val~% BuffInfo.AddBuff(Caster, new BuffInfo(BuffIcon.TribulationCaster, 1115740, 1151388, String.Format("{0}\t{1}\t{2}", m.Name, m_DamageFactor, (int)m_DamageChance))); BeginTimer(); } FinishSequence(); }
public override void OnCast() { BardSpell spell = GetSpell(Caster, GetType()) as BardSpell; if (spell != null) { spell.Expire(); Caster.SendLocalizedMessage(1115774); //You halt your spellsong. } else if (CheckSequence()) { m_StatBonus = (int)(BaseSkillBonus + CollectiveBonus); m_HPBonus = (int)((2.5 * BaseSkillBonus) + CollectiveBonus); UpdateParty(); BeginTimer(); } FinishSequence(); }
public override void OnCast() { BardSpell spell = GetSpell(Caster, GetType()) as BardSpell; if (spell != null) { spell.Expire(); Caster.SendLocalizedMessage(1115774); //You halt your spellsong. } else if (CheckSequence()) { m_PropertyBonus = (int)((BaseSkillBonus * 3) + CollectiveBonus); // 2 - 24 (30) m_PropertyBonus2 = (int)((BaseSkillBonus / 2) + (CollectiveBonus / 3)); // 1 - 4 (6) m_DamageMod = (int)((BaseSkillBonus * 3) + CollectiveBonus); // 2 - 24 (30) UpdateParty(); BeginTimer(); } FinishSequence(); }
public void OnTarget(Mobile m) { if (!Caster.CanSee(m)) { Caster.SendLocalizedMessage(500237); // Target can not be seen. } else if (Caster == m) { Caster.SendMessage("!You cannot target yourself."); } else if (BardSpell.HasHarmfulEffects(m, this.GetType())) { Caster.SendLocalizedMessage(1115772); //Your target is already under the effect of this spellsong. } else if (CheckHSequence(m)) { SpellHelper.Turn(Caster, m); Target = m; //Caster.SendLocalizedMessage(1234567); //TODO: Message? HarmfulSpell(m); m.FixedParticles(0x374A, 10, 15, 5028, EffectLayer.Waist); m_PropertyBonus = (int)((BaseSkillBonus * 25) + (CollectiveBonus * 8)) * -1; m_DamageChance = ((Caster.Skills[DamageSkill].Value / 5) / 100); string args = String.Format("{0}\t{1}\t{2}", m_PropertyBonus, m_PropertyBonus, (int)(m_DamageChance * 100)); BuffInfo.AddBuff(m, new BuffInfo(BuffIcon.TribulationTarget, 1115740, 1115743, args.ToString())); BuffInfo.AddBuff(Caster, new BuffInfo(BuffIcon.TribulationCaster, 1115740, 1115742, args.ToString())); BeginTimer(); } FinishSequence(); }
public void OnTarget(Mobile m) { if (!Caster.CanSee(m)) { Caster.SendLocalizedMessage(500237); // Target can not be seen. } else if (Caster == m) { Caster.SendMessage("You cannot target yourself!"); } else if (BardSpell.HasHarmfulEffects(m, this.GetType())) { Caster.SendLocalizedMessage(1115772); //Your target is already under the effect of this spellsong. } else if (CheckHSequence(m)) { SpellHelper.Turn(Caster, m); Target = m; HarmfulSpell(m); m.FixedParticles(0x374A, 10, 15, 5028, EffectLayer.Waist); double cast = Caster.Skills[CastSkill].Value; double dam = Caster.Skills[DamageSkill].Value; m_Rounds = (int)(5 + ((cast - 90) * .3667) + (14 * (int)CollectiveBonus)); // 5 - 11 (14) m_PropertyBonus = (int)((5 + ((cast - 90) * .567)) + (14 * (int)CollectiveBonus)); // 5 - 22 (36) m_DamageChance = Math.Max(15, ((dam / 10) * 5)) + (24 * (int)CollectiveBonus); // 15 - 60 (84) m_DamageFactor = Math.Max(8, ((cast / 10) * 2.667)) + (18 * (int)CollectiveBonus); // 8 - 32 (50) m_SlayerBonus = 1; ISlayer slayer = Instrument as ISlayer; if (slayer != null) { SlayerEntry se1 = SlayerGroup.GetEntryByName(slayer.Slayer); SlayerEntry se2 = SlayerGroup.GetEntryByName(slayer.Slayer2); if ((se1 != null && se1.Slays(Target)) || (se2 != null && se2.Slays(Target))) { m_SlayerBonus = 1.5; } } if (m.Player) { // ~1_HCI~% Hit Chance.<br>~2_SDI~% Spell Damage.<br>Damage taken has a ~3_EXP~% chance to cause additional burst of physical damage.<br> BuffInfo.AddBuff(m, new BuffInfo(BuffIcon.TribulationTarget, 1115740, 1115742, String.Format("{0}\t{1}\t{2}", m_PropertyBonus, m_PropertyBonus, (int)m_DamageChance))); } // Target: ~1_val~ <br> Damage Factor: ~2_val~% <br> Damage Chance: ~3_val~% BuffInfo.AddBuff(Caster, new BuffInfo(BuffIcon.TribulationCaster, 1115740, 1151388, String.Format("{0}\t{1}\t{2}", m.Name, (int)m_DamageFactor, (int)m_DamageChance))); BeginTimer(); } FinishSequence(); }