public MageGemTarget(Item mgem, TeiravonMobile from) : base(-1, false, TargetFlags.None) { m_Player = from; m_MGem = (MageStaffGem)mgem; if (from.IsAquamancer()) { MageClass = 1; } else if (from.IsAeromancer()) { MageClass = 2; } else if (from.IsPyromancer()) { MageClass = 3; } else if (from.IsNecromancer()) { MageClass = 4; } else if (from.IsGeomancer()) { MageClass = 5; } }
public MageSpell2Target(TeiravonMobile from) : base(-1, false, TargetFlags.Harmful) { if (from.IsGeomancer()) { MageClass = 1; } else if (from.IsPyromancer()) { MageClass = 2; } else if (from.IsAeromancer()) { MageClass = 3; } else if (from.IsAquamancer()) { MageClass = 4; } //else if (from.IsNecromancer()) // MageClass = 5; switch (MageClass) { case 1: phys = 100; fire = cold = pois = nrgy = 0; break; case 2: fire = 100; phys = cold = pois = nrgy = 0; break; case 3: nrgy = 100; phys = cold = pois = fire = 0; break; case 4: cold = 100; phys = fire = pois = nrgy = 0; break; //case 5: // pois = 100; phys = fire = cold = nrgy = 0; // effecthue = 2883; // break; } }
public void Target(IPoint3D p) { if (!Caster.CanSee(p)) { Caster.SendLocalizedMessage(500237); // Target can not be seen. } else if (SpellHelper.CheckTown(p, Caster) && CheckSequence()) { SpellHelper.Turn(Caster, p); if (p is Item) { p = ((Item)p).GetWorldLocation(); } ArrayList targets = new ArrayList(); double damage; Map map = Caster.Map; bool playerVsPlayer = false; if (Caster is TeiravonMobile) { TeiravonMobile tav = Caster as TeiravonMobile; if (tav.IsAeromancer()) { Elemental = Element.Air; damage = GetNewAosDamage(2, 2, 10, playerVsPlayer); DoMeteorFall(Caster, p, Elemental, damage); FinishSequence(); return; } else if (tav.IsAquamancer()) { Elemental = Element.Water; damage = GetNewAosDamage(1, 1, 6, playerVsPlayer); DoMeteorFall(Caster, p, Elemental, damage); FinishSequence(); return; } else if (tav.IsGeomancer()) { Elemental = Element.Earth; damage = GetNewAosDamage(2, 1, 4, playerVsPlayer); DoMeteorFall(Caster, p, Elemental, damage); FinishSequence(); return; } else if (tav.IsPyromancer()) { Elemental = Element.Fire; damage = GetNewAosDamage(12, 1, 5, playerVsPlayer); DoMeteorFall(Caster, p, Elemental, damage); FinishSequence(); return; } } if (map != null) { IPooledEnumerable eable = map.GetMobilesInRange(new Point3D(p), 2); foreach (Mobile m in eable) { if (Caster != m && SpellHelper.ValidIndirectTarget(Caster, m) && Caster.CanBeHarmful(m, false)) { targets.Add(m); if (m.Player) { playerVsPlayer = true; } } } eable.Free(); } if (Core.AOS) { damage = GetNewAosDamage(48, 1, 5, Caster.Player && playerVsPlayer); } else { damage = Utility.Random(27, 22); } if (targets.Count > 0) { Effects.PlaySound(p, Caster.Map, 0x160); if (Core.AOS && targets.Count > 1) { damage = (damage * 2) / targets.Count; } else if (!Core.AOS) { damage /= targets.Count; } for (int i = 0; i < targets.Count; ++i) { Mobile m = (Mobile)targets[i]; double toDeal = damage; if (!Core.AOS && CheckResisted(m)) { toDeal *= 0.5; m.SendLocalizedMessage(501783); // You feel yourself resisting magical energy. } Caster.DoHarmful(m); SpellHelper.Damage(this, m, toDeal, 0, 100, 0, 0, 0); Caster.MovingParticles(m, 0x36D4, 7, 0, false, true, 9501, 1, 0, 0x100); } } } FinishSequence(); }
public void Target(Mobile m) { if (!Caster.CanSee(m)) { Caster.SendLocalizedMessage(500237); // Target can not be seen. } else if (CheckHSequence(m)) { Mobile source = Caster; SpellHelper.Turn(source, m); SpellHelper.CheckReflect((int)this.Circle, ref source, ref m); double damage; if (Caster is TeiravonMobile) { TeiravonMobile tav = Caster as TeiravonMobile; if (tav.IsAeromancer()) { damage = GetNewAosDamage(19, 1, 5, Caster.Player && m.Player); source.MovingParticles(m, 0x3728, 12, 0, false, false, 9502, 4019, 0x160); source.PlaySound(0x5C7); SpellHelper.Damage(this, m, damage, 0, 0, 50, 0, 50); new Gust(tav, m).MoveToWorld(m.Location, m.Map); FinishSequence(); return; } if (tav.IsGeomancer()) { damage = GetNewAosDamage(21, 1, 5, Caster.Player && m.Player); int randRock = Utility.RandomList(0x1364, 0x1365, 0x1366, 0x1366); source.MovingParticles(m, randRock, 12, 0, false, false, 0x1E00, 0x1E00, 0x13B); source.PlaySound(0x5BF); SpellHelper.GeoDamage(this, m, damage); m.Freeze(TimeSpan.FromSeconds(1)); FinishSequence(); return; } if (tav.IsAquamancer()) { XmlData x = (XmlData)XmlAttach.FindAttachmentOnMobile(Caster, typeof(XmlData), "Cryomancer"); if (x != null && CheckSequence()) { damage = GetNewAosDamage(20, 1, 5, Caster.Player && m.Player); source.MovingParticles(m, 0x3678, 12, 5, false, false, 0x377a, 0x377a, 0x390); source.PlaySound(0x390); SpellHelper.Damage(this, m, damage, 0, 0, 100, 0, 0); FinishSequence(); m.Send(SpeedMode.Walk); TavChill chill = XmlAttach.FindAttachmentOnMobile(m, typeof(TavChill), "chill") as TavChill; if (chill != null) { chill.Expiration = TimeSpan.FromSeconds(3); chill.DoChill(); } else { TavChill newchill = new TavChill(5); newchill.Name = "chill"; XmlAttach.AttachTo(m, newchill); } return; } else { damage = GetNewAosDamage(25, 1, 5, Caster.Player && m.Player); source.MovingParticles(m, 0x34FF, 12, 5, false, false, 0x377a, 0x377a, 0x027); source.PlaySound(0x026); SpellHelper.Damage(this, m, damage, 0, 0, 100, 0, 0); FinishSequence(); return; } } if (tav.IsPyromancer()) { damage = GetNewAosDamage(5, 1, 5, Caster.Player && m.Player); source.MovingParticles(m, 0x36D4, 7, 0, false, true, 9502, 4019, 0x160); source.PlaySound(Core.AOS ? 0x15E : 0x44B); SpellHelper.Damage(this, m, damage, 0, 100, 0, 0, 0); int burntimes = 2 + Utility.Random(5); Timer m_Timer = new IgniteTimer(tav, m, 1, burntimes, DateTime.Now + TimeSpan.FromSeconds(0.5)); m_Timer.Start(); FinishSequence(); return; } } if (Core.AOS) { damage = GetNewAosDamage(19, 1, 5, Caster.Player && m.Player); } else { damage = Utility.Random(10, 7); if (CheckResisted(m)) { damage *= 0.75; m.SendLocalizedMessage(501783); // You feel yourself resisting magical energy. } damage *= GetDamageScalar(m); } source.MovingParticles(m, 0x36D4, 7, 0, false, true, 9502, 4019, 0x160); source.PlaySound(Core.AOS ? 0x15E : 0x44B); SpellHelper.Damage(this, m, damage, 0, 100, 0, 0, 0); } FinishSequence(); }
public MSGemGump(Mobile from, Item msgem, MageStaff mstaff) : base(0, 0) { m_Player = (TeiravonMobile)from; gem = (MageStaffGem)msgem; staff = (MageStaff)mstaff; m_Player.CloseGump(typeof(MSGemGump)); int x = 140; int y = 170; int x2 = 116; int y2 = 173; int i = 1; this.Closable = false; this.Disposable = false; this.Dragable = true; this.Resizable = false; AddPage(0); AddBackground(70, 80, 350, 325, 3600); AddBackground(95, 125, 300, 255, 9350); AddHtml(200, 100, 600, 20, "<basefont size=\"8\" color=\"#ffffff\">Mage Staff Gem</basefont>", false, false); AddLabel(155, 135, 150, "Choose your Mage Staff Power:"); AddLabel(x, y + (20 * i), 150, "Mana Reneration"); AddButton(x2, y2 + (20 * i), 2224, 2224, 1, GumpButtonType.Reply, 0); i++; AddLabel(x, y + (20 * i), 150, "Increased Spell Damage"); AddButton(x2, y2 + (20 * i), 2224, 2224, 2, GumpButtonType.Reply, 0); i++; if (staff.WeaponAttributes.MageWeapon < 30) { AddLabel(x, y + (20 * i), 150, "Mage Weapon"); AddButton(x2, y2 + (20 * i), 2224, 2224, 3, GumpButtonType.Reply, 0); i++; } AddLabel(x, y + (20 * i), 150, "Faster Casting"); AddButton(x2, y2 + (20 * i), 2224, 2224, 4, GumpButtonType.Reply, 0); i++; AddLabel(x, y + (20 * i), 150, "Faster Cast Recovery"); AddButton(x2, y2 + (20 * i), 2224, 2224, 5, GumpButtonType.Reply, 0); i++; if (m_Player.IsAquamancer()) { AddLabel(x, y + (20 * i), 150, "Hit Harm"); AddButton(x2, y2 + (20 * i), 2224, 2224, 6, GumpButtonType.Reply, 0); i++; AddLabel(x, y + (20 * i), 150, "Hit Cold Area"); AddButton(x2, y2 + (20 * i), 2224, 2224, 7, GumpButtonType.Reply, 0); i++; AddLabel(x, y + (20 * i), 150, "Cold Resist"); AddButton(x2, y2 + (20 * i), 2224, 2224, 8, GumpButtonType.Reply, 0); i++; } else if (m_Player.IsAeromancer()) { AddLabel(x, y + (20 * i), 150, "Hit Lightning"); AddButton(x2, y2 + (20 * i), 2224, 2224, 9, GumpButtonType.Reply, 0); i++; AddLabel(x, y + (20 * i), 150, "Hit Energy Area"); AddButton(x2, y2 + (20 * i), 2224, 2224, 10, GumpButtonType.Reply, 0); i++; AddLabel(x, y + (20 * i), 150, "Energy Resist"); AddButton(x2, y2 + (20 * i), 2224, 2224, 11, GumpButtonType.Reply, 0); i++; } else if (m_Player.IsPyromancer()) { AddLabel(x, y + (20 * i), 150, "Hit Fireball"); AddButton(x2, y2 + (20 * i), 2224, 2224, 12, GumpButtonType.Reply, 0); i++; AddLabel(x, y + (20 * i), 150, "Hit Fire Area"); AddButton(x2, y2 + (20 * i), 2224, 2224, 13, GumpButtonType.Reply, 0); i++; AddLabel(x, y + (20 * i), 150, "Fire Resist"); AddButton(x2, y2 + (20 * i), 2224, 2224, 14, GumpButtonType.Reply, 0); i++; } else if (m_Player.IsNecromancer()) { AddLabel(x, y + (20 * i), 150, "Hit Dispel"); AddButton(x2, y2 + (20 * i), 2224, 2224, 15, GumpButtonType.Reply, 0); i++; AddLabel(x, y + (20 * i), 150, "Hit Poison Area"); AddButton(x2, y2 + (20 * i), 2224, 2224, 16, GumpButtonType.Reply, 0); i++; AddLabel(x, y + (20 * i), 150, "Poison Resist"); AddButton(x2, y2 + (20 * i), 2224, 2224, 17, GumpButtonType.Reply, 0); i++; } else if (m_Player.IsGeomancer()) { AddLabel(x, y + (20 * i), 150, "Hit Magic Arrow"); AddButton(x2, y2 + (20 * i), 2224, 2224, 18, GumpButtonType.Reply, 0); i++; AddLabel(x, y + (20 * i), 150, "Hit Physical Area"); AddButton(x2, y2 + (20 * i), 2224, 2224, 19, GumpButtonType.Reply, 0); i++; AddLabel(x, y + (20 * i), 150, "Physical Resist"); AddButton(x2, y2 + (20 * i), 2224, 2224, 20, GumpButtonType.Reply, 0); i++; } }
public void Target(Mobile m) { if (!Caster.CanSee(m)) { Caster.SendLocalizedMessage(500237); // Target can not be seen. } else if (CheckHSequence(m)) { SpellHelper.Turn(Caster, m); SpellHelper.CheckReflect((int)this.Circle, Caster, ref m); double damage; if (Caster is TeiravonMobile) { TeiravonMobile tav = Caster as TeiravonMobile; if (tav.IsAeromancer()) { damage = GetNewAosDamage(48, 1, 5, Caster.Player && m.Player); //m.FixedParticles(0x37CC, 10, 202, 5052, EffectLayer.LeftFoot); m.FixedParticles(0x37C, 6, 15, 5052, 2693, 1, EffectLayer.LeftFoot); m.PlaySound(0x5CE); SpellHelper.Damage(this, m, damage, 0, 0, 50, 0, 50); new Gust(tav, m).MoveToWorld(m.Location, m.Map); FinishSequence(); return; } if (tav.IsGeomancer()) { damage = GetNewAosDamage(48, 1, 5, Caster.Player && m.Player); Caster.MovingParticles(m, 0x11B6, 5, 0, true, false, 0x1E00, 0x1E00, 0x13B); m.PlaySound(0x21E); SpellHelper.GeoDamage(this, m, damage); m.Freeze(TimeSpan.FromSeconds(2.5)); FinishSequence(); return; } if (tav.IsAquamancer()) { damage = GetNewAosDamage(45, 1, 25, Caster.Player && m.Player); m.FixedParticles(0x3789, 30, 20, 5052, EffectLayer.CenterFeet); m.PlaySound(0x026); SpellHelper.Damage(this, m, damage, 0, 0, 100, 0, 0); FinishSequence(); return; } if (tav.IsPyromancer()) { damage = GetNewAosDamage(45, 1, 5, Caster.Player && m.Player); m.FixedParticles(0x3709, 10, 30, 5052, EffectLayer.LeftFoot); m.PlaySound(0x208); SpellHelper.Damage(this, m, damage, 0, 100, 0, 0, 0); int burntimes = 2 + Utility.Random(3); Timer m_Timer = new IgniteTimer(tav, m, 1, burntimes, DateTime.Now + TimeSpan.FromSeconds(1.5)); m_Timer.Start(); FinishSequence(); return; } } if (Core.AOS) { damage = GetNewAosDamage(48, 1, 5, Caster.Player && m.Player); } else { damage = Utility.Random(27, 22); if (CheckResisted(m)) { damage *= 0.6; m.SendLocalizedMessage(501783); // You feel yourself resisting magical energy. } damage *= GetDamageScalar(m); } m.FixedParticles(0x3709, 10, 30, 5052, EffectLayer.LeftFoot); m.PlaySound(0x208); SpellHelper.Damage(this, m, damage, 0, 100, 0, 0, 0); } FinishSequence(); }