// ======================================================================== protected void OnEnable() { if (GameData.dataToLoad == null) { health = 100f; Wisp.Heal(this, false); DireWolf.Poisoning(this, false); } }
public override void Damage(Mobile m) { base.Damage(m); if (m.Alive) { Item item = m.FindItemOnLayer(Layer.OuterTorso); if (item is GMRobe) { AOS.Damage(m, 0, 0, 0, 0, 0, 0); } else { // Bank Music if (Utility.RandomDouble() < 0.001) { m.Send(Network.PlayMusic.GetInstance(MusicName.Stones2)); AOS.Damage(m, 0, 0, 0, 0, 0, 0); } // Flamestrike if (Utility.RandomDouble() < 0.01) { m.Stam -= 20; m.Mana -= 25; m.FixedParticles(0x3709, 10, 30, 5052, EffectLayer.LeftFoot); m.PlaySound(0x208); m.PlaySound(m.Female ? 814 : 1088); m.Say("*ahhhh!*"); AOS.Damage(m, Utility.Random(15, 25), 0, 100, 0, 0, 0); } // Forest Music if (Utility.RandomDouble() < 0.001) { m.Send(Network.PlayMusic.GetInstance(MusicName.Linelle)); AOS.Damage(m, 0, 0, 0, 0, 0, 0); } // Greater Heal if (Utility.RandomDouble() < 0.01) { m.Hits += (Utility.Random(250, 300)); m.Stam += (Utility.Random(250, 300)); m.Mana += (Utility.Random(250, 300)); m.FixedParticles(0x375A, 1, 30, 9966, 88, 2, EffectLayer.Head); m.FixedParticles(0x37B9, 1, 30, 9502, 85, 3, EffectLayer.Head); m.FixedParticles(0x376A, 1, 31, 9961, 80, 0, EffectLayer.Waist); m.FixedParticles(0x37C4, 1, 31, 9502, 88, 2, EffectLayer.Waist); m.PlaySound(0x202); AOS.Damage(m, 0, 0, 0, 0, 0, 0); } // Ice Blast if (Utility.RandomDouble() < 0.01) { m.Stam -= 10; m.Mana -= 20; m.FixedParticles(0x374A, 10, 30, 5013, 1153, 2, EffectLayer.Waist); m.PlaySound(0x0FC); AOS.Damage(m, Utility.Random(15, 25), 0, 0, 100, 0, 0); } // Lightning Strike if (Utility.RandomDouble() < 0.01) { m.PlaySound(Utility.RandomList(0x5CE)); m.BoltEffect(0x480); AOS.Damage(m, Utility.RandomMinMax(12, 35), 0, 0, 0, 0, 100); } // Random Encounter 1 if (Utility.RandomDouble() < 0.002) { if (m.Map == Map.Tokuno) { int x1 = m.X + 12; int y1 = m.Y + 12; int z1 = Map.Tokuno.GetAverageZ(x1, y1); if (Map.Tokuno.CanSpawnMobile(x1, y1, z1)) { BaseCreature encountera; switch (Utility.Random(3)) { default: case 0: encountera = new RunningPants(); break; case 1: encountera = new RunningPants(); break; case 2: encountera = new RunningPants(); break; } encountera.MoveToWorld(new Point3D(x1, y1, z1), Map.Tokuno); encountera.Combatant = m; IceFieldIceFlame ice = new IceFieldIceFlame(); ice.MoveToWorld(new Point3D(encountera.X + 5, encountera.Y, encountera.Z), encountera.Map); m.PlaySound(0x208); IceFieldIceFlame icea = new IceFieldIceFlame(); icea.MoveToWorld(new Point3D(encountera.X + 5, encountera.Y + 5, encountera.Z), encountera.Map); m.PlaySound(0x208); IceFieldIceFlame iceb = new IceFieldIceFlame(); iceb.MoveToWorld(new Point3D(encountera.X + 5, encountera.Y - 5, encountera.Z), encountera.Map); m.PlaySound(0x208); IceFieldIceFlame icec = new IceFieldIceFlame(); icec.MoveToWorld(new Point3D(encountera.X, encountera.Y + 5, encountera.Z), encountera.Map); m.PlaySound(0x208); IceFieldIceFlame iced = new IceFieldIceFlame(); iced.MoveToWorld(new Point3D(encountera.X, encountera.Y - 5, encountera.Z), encountera.Map); m.PlaySound(0x208); IceFieldIceFlame icee = new IceFieldIceFlame(); icee.MoveToWorld(new Point3D(encountera.X - 5, encountera.Y, encountera.Z), encountera.Map); m.PlaySound(0x208); IceFieldIceFlame icef = new IceFieldIceFlame(); icef.MoveToWorld(new Point3D(encountera.X - 5, encountera.Y - 5, encountera.Z), encountera.Map); m.PlaySound(0x208); IceFieldIceFlame iceg = new IceFieldIceFlame(); iceg.MoveToWorld(new Point3D(encountera.X - 5, encountera.Y + 5, encountera.Z), encountera.Map); m.PlaySound(0x208); IceFieldIceFlame iceh = new IceFieldIceFlame(); iceh.ItemID = 0x8e1; iceh.MoveToWorld(new Point3D(encountera.X, encountera.Y, encountera.Z + 19), encountera.Map); m.PlaySound(0x208); AOS.Damage(m, 0, 0, 0, 0, 0, 0); Timer.DelayCall(TimeSpan.FromMinutes(3.0), new TimerStateCallback(DeleteEncounterA), encountera); } } } // Random Encounter 2 if (Utility.RandomDouble() < 0.002) { if (m.Map == Map.Tokuno) { int x2 = m.X - 12; int y2 = m.Y - 12; int z2 = Map.Tokuno.GetAverageZ(x2, y2); if (Map.Tokuno.CanSpawnMobile(x2, y2, z2)) { BaseCreature encountera; switch (Utility.Random(3)) { default: case 0: encountera = new RunningPants(); break; case 1: encountera = new RunningPants(); break; case 2: encountera = new RunningPants(); break; } encountera.MoveToWorld(new Point3D(x2, y2, z2), Map.Tokuno); encountera.Combatant = m; IceFieldIceFlame ice = new IceFieldIceFlame(); ice.MoveToWorld(new Point3D(encountera.X + 5, encountera.Y, encountera.Z), encountera.Map); m.PlaySound(0x208); IceFieldIceFlame icea = new IceFieldIceFlame(); icea.MoveToWorld(new Point3D(encountera.X + 5, encountera.Y + 5, encountera.Z), encountera.Map); m.PlaySound(0x208); IceFieldIceFlame iceb = new IceFieldIceFlame(); iceb.MoveToWorld(new Point3D(encountera.X + 5, encountera.Y - 5, encountera.Z), encountera.Map); m.PlaySound(0x208); IceFieldIceFlame icec = new IceFieldIceFlame(); icec.MoveToWorld(new Point3D(encountera.X, encountera.Y + 5, encountera.Z), encountera.Map); m.PlaySound(0x208); IceFieldIceFlame iced = new IceFieldIceFlame(); iced.MoveToWorld(new Point3D(encountera.X, encountera.Y - 5, encountera.Z), encountera.Map); m.PlaySound(0x208); IceFieldIceFlame icee = new IceFieldIceFlame(); icee.MoveToWorld(new Point3D(encountera.X - 5, encountera.Y, encountera.Z), encountera.Map); m.PlaySound(0x208); IceFieldIceFlame icef = new IceFieldIceFlame(); icef.MoveToWorld(new Point3D(encountera.X - 5, encountera.Y - 5, encountera.Z), encountera.Map); m.PlaySound(0x208); IceFieldIceFlame iceg = new IceFieldIceFlame(); iceg.MoveToWorld(new Point3D(encountera.X - 5, encountera.Y + 5, encountera.Z), encountera.Map); m.PlaySound(0x208); IceFieldIceFlame iceh = new IceFieldIceFlame(); iceh.ItemID = 0x8e1; iceh.MoveToWorld(new Point3D(encountera.X, encountera.Y, encountera.Z + 19), encountera.Map); m.PlaySound(0x208); AOS.Damage(m, 0, 0, 0, 0, 0, 0); Timer.DelayCall(TimeSpan.FromMinutes(3.0), new TimerStateCallback(DeleteEncounterA), encountera); } } } // Tamable Encounter 1 if (Utility.RandomDouble() < 0.002) { if (m.Map == Map.Tokuno) { int x1 = m.X + 12; int y1 = m.Y + 12; int z1 = Map.Tokuno.GetAverageZ(x1, y1); if (Map.Tokuno.CanSpawnMobile(x1, y1, z1)) { BaseCreature tameable; switch (Utility.Random(5)) { default: case 0: tameable = new Bird(); break; case 1: tameable = new BlackBear(); break; case 2: tameable = new DireWolf(); break; case 3: tameable = new Goat(); break; case 4: tameable = new Horse(); break; } tameable.MoveToWorld(new Point3D(x1, y1, z1), Map.Tokuno); AOS.Damage(m, 0, 0, 0, 0, 0, 0); Timer.DelayCall(TimeSpan.FromMinutes(2.0), new TimerStateCallback(DeleteTameable), tameable); } } } // Tamable Encounter 2 if (Utility.RandomDouble() < 0.002) { if (m.Map == Map.Tokuno) { int x2 = m.X - 12; int y2 = m.Y - 12; int z2 = Map.Tokuno.GetAverageZ(x2, y2); if (Map.Tokuno.CanSpawnMobile(x2, y2, z2)) { BaseCreature tameable; switch (Utility.Random(5)) { default: case 0: tameable = new Bird(); break; case 1: tameable = new BlackBear(); break; case 2: tameable = new DireWolf(); break; case 3: tameable = new Goat(); break; case 4: tameable = new Horse(); break; } tameable.MoveToWorld(new Point3D(x2, y2, z2), Map.Tokuno); AOS.Damage(m, 0, 0, 0, 0, 0, 0); Timer.DelayCall(TimeSpan.FromMinutes(2.0), new TimerStateCallback(DeleteTameable), tameable); } } } } } }
public override void IncreaseTier() { base.IncreaseTier(); List <object> list = new List <object>(); BaseCreature c; // haven't got a clue if levels are OSI switch (this.Tier) { case 1: c = new Crane(); c.MoveToWorld(new Point3D(4500, 1382, 23), this.Map); c.Blessed = true; c.Tamable = false; list.Add(c); break; case 2: c = new DireWolf(); c.MoveToWorld(new Point3D(4494, 1370, 23), this.Map); c.Blessed = true; c.Tamable = false; list.Add(c); c = new DireWolf(); c.MoveToWorld(new Point3D(4494, 1360, 23), this.Map); c.Blessed = true; c.Tamable = false; list.Add(c); c = new WhiteWolf(); c.MoveToWorld(new Point3D(4491, 1366, 23), this.Map); c.Blessed = true; c.Tamable = false; list.Add(c); c = new WhiteWolf(); c.MoveToWorld(new Point3D(4497, 1366, 23), this.Map); c.Blessed = true; c.Tamable = false; list.Add(c); c = new GreyWolf(); c.MoveToWorld(new Point3D(4497, 1366, 23), this.Map); c.Blessed = true; c.Tamable = false; list.Add(c); break; case 3: c = new Quagmire(); c.MoveToWorld(new Point3D(4483, 1392, 23), this.Map); c.Blessed = true; c.Tamable = false; list.Add(c); c = new BogThing(); c.MoveToWorld(new Point3D(4486, 1385, 23), this.Map); c.Blessed = true; c.Tamable = false; list.Add(c); c = new PlagueBeast(); c.MoveToWorld(new Point3D(4486, 1379, 23), this.Map); c.Blessed = true; c.Tamable = false; list.Add(c); break; case 4: c = new PolarBear(); c.MoveToWorld(new Point3D(4513, 1395, 23), this.Map); c.Blessed = true; c.Tamable = false; list.Add(c); c = new PolarBear(); c.MoveToWorld(new Point3D(4508, 1393, 23), this.Map); c.Blessed = true; c.Tamable = false; list.Add(c); break; case 5: c = new Yamandon(); c.MoveToWorld(new Point3D(4498, 1393, 23), this.Map); c.Blessed = true; c.Tamable = false; list.Add(c); break; case 6: c = new Changeling(); c.MoveToWorld(new Point3D(4518, 1358, 23), this.Map); c.Blessed = true; c.Tamable = false; list.Add(c); break; case 7: c = new Wyvern(); c.MoveToWorld(new Point3D(4512, 1381, 23), this.Map); c.Blessed = true; c.Tamable = false; list.Add(c); break; case 8: c = new Dragon(); c.MoveToWorld(new Point3D(4511, 1372, 23), this.Map); c.Blessed = true; c.Tamable = false; list.Add(c); c = new Drake(); c.MoveToWorld(new Point3D(4516, 1371, 23), this.Map); c.Blessed = true; c.Tamable = false; list.Add(c); break; case 9: c = new Reptalon(); c.MoveToWorld(new Point3D(4530, 1387, 23), this.Map); c.Blessed = true; c.Tamable = false; list.Add(c); break; case 10: c = new SilverSteed(); c.MoveToWorld(new Point3D(4506, 1358, 23), this.Map); c.Blessed = true; c.Tamable = false; list.Add(c); /* * c = new Sphynx(); * c.MoveToWorld( new Point3D( 4506, 1358, 23 ), Map ); * c.Blessed = true; * c.Tamable = false; * list.Add( c );*/ break; } if (list.Count > 0) { this.Tiers.Add(list); } }
public override void Damage(Mobile m) { base.Damage(m); if (m.Alive) { Item item = m.FindItemOnLayer(Layer.OuterTorso); if (item is GMRobe) { AOS.Damage(m, 0, 0, 0, 0, 0, 0); } else if (item is GMRobeExplosion) { AOS.Damage(m, 0, 0, 0, 0, 0, 0); m.PlaySound(Utility.RandomList(0x307, 0x308)); } else if (item is GMRobeHoly) { AOS.Damage(m, 0, 0, 0, 0, 0, 0); m.FixedParticles(0x375A, 1, 30, 9966, 88, 2, EffectLayer.Head); m.FixedParticles(0x37B9, 1, 30, 9502, 85, 3, EffectLayer.Head); m.FixedParticles(0x376A, 1, 31, 9961, 80, 0, EffectLayer.Waist); m.FixedParticles(0x37C4, 1, 31, 9502, 88, 2, EffectLayer.Waist); } else if (item is GMRobeTrailfire) { AOS.Damage(m, 0, 0, 0, 0, 0, 0); m.FixedParticles(0x3709, 10, 30, 5052, EffectLayer.LeftFoot); } else { // Wind if (Utility.RandomDouble() < 0.09) { m.PlaySound(Utility.RandomList(0x014, 0x15, 0x016, 0x5C7)); AOS.Damage(m, 0, 0, 0, 0, 0, 0); } // Thunderstorm if (Utility.RandomDouble() < 0.06) { m.PlaySound(Utility.RandomList(0x028, 0x029, 0x206)); AOS.Damage(m, 0, 0, 0, 0, 0, 0); } // Lightning Strike if (Utility.RandomDouble() < 0.01) { m.PlaySound(Utility.RandomList(0x5CE)); m.BoltEffect(0x480); AOS.Damage(m, Utility.RandomMinMax(12, 35), 0, 0, 0, 0, 100); } // Random Encounter 1 if (Utility.RandomDouble() < 0.002) { if (m.Map == Map.Malas) { int x1 = m.X + 12; int y1 = m.Y + 12; int z1 = Map.Malas.GetAverageZ(x1, y1); if (Map.Malas.CanSpawnMobile(x1, y1, z1)) { BaseCreature encountera; switch (Utility.Random(3)) { default: case 0: encountera = new Ettin(); break; case 1: encountera = new Ogre(); break; case 2: encountera = new Troll(); break; } encountera.MoveToWorld(new Point3D(x1, y1, z1), Map.Malas); encountera.Combatant = m; AOS.Damage(m, 0, 0, 0, 0, 0, 0); Timer.DelayCall(TimeSpan.FromMinutes(3.0), new TimerStateCallback(DeleteEncounterA), encountera); } } } // Random Encounter 2 if (Utility.RandomDouble() < 0.002) { if (m.Map == Map.Malas) { int x2 = m.X - 12; int y2 = m.Y - 12; int z2 = Map.Malas.GetAverageZ(x2, y2); if (Map.Malas.CanSpawnMobile(x2, y2, z2)) { BaseCreature encountera; switch (Utility.Random(3)) { default: case 0: encountera = new Ettin(); break; case 1: encountera = new Ogre(); break; case 2: encountera = new Troll(); break; } encountera.MoveToWorld(new Point3D(x2, y2, z2), Map.Malas); encountera.Combatant = m; AOS.Damage(m, 0, 0, 0, 0, 0, 0); Timer.DelayCall(TimeSpan.FromMinutes(3.0), new TimerStateCallback(DeleteEncounterA), encountera); } } } // Tamable Encounter 1 if (Utility.RandomDouble() < 0.002) { if (m.Map == Map.Malas) { int x1 = m.X + 12; int y1 = m.Y + 12; int z1 = Map.Malas.GetAverageZ(x1, y1); if (Map.Malas.CanSpawnMobile(x1, y1, z1)) { BaseCreature tameable; switch (Utility.Random(5)) { default: case 0: tameable = new Bird(); break; case 1: tameable = new BlackBear(); break; case 2: tameable = new DireWolf(); break; case 3: tameable = new Goat(); break; case 4: tameable = new Horse(); break; } tameable.MoveToWorld(new Point3D(x1, y1, z1), Map.Malas); AOS.Damage(m, 0, 0, 0, 0, 0, 0); Timer.DelayCall(TimeSpan.FromMinutes(2.0), new TimerStateCallback(DeleteTameable), tameable); } } } // Tamable Encounter 2 if (Utility.RandomDouble() < 0.002) { if (m.Map == Map.Malas) { int x2 = m.X - 12; int y2 = m.Y - 12; int z2 = Map.Malas.GetAverageZ(x2, y2); if (Map.Malas.CanSpawnMobile(x2, y2, z2)) { BaseCreature tameable; switch (Utility.Random(5)) { default: case 0: tameable = new Bird(); break; case 1: tameable = new BlackBear(); break; case 2: tameable = new DireWolf(); break; case 3: tameable = new Goat(); break; case 4: tameable = new Horse(); break; } tameable.MoveToWorld(new Point3D(x2, y2, z2), Map.Malas); AOS.Damage(m, 0, 0, 0, 0, 0, 0); Timer.DelayCall(TimeSpan.FromMinutes(2.0), new TimerStateCallback(DeleteTameable), tameable); } } } } } }
public override void OnCast() { if (CheckSequence()) { double time = DamagingSkill(Caster) * 2; if (time > 480) { time = 480.0; } if (time < 120) { time = 120.0; } int creatures = Caster.FollowersMax - Caster.Followers; if (creatures > 3) { creatures = 3; } TimeSpan duration = TimeSpan.FromSeconds(time); BaseCreature m_Creature = new Rabbit(); while (creatures > 0) { creatures--; switch (Utility.RandomMinMax(0, 10)) { case 0: m_Creature = new BlackBear(); break; case 1: m_Creature = new BrownBear(); break; case 2: m_Creature = new DireWolf(); break; case 3: m_Creature = new Panther(); break; case 4: m_Creature = new Tiger(); break; case 5: m_Creature = new TimberWolf(); break; case 6: m_Creature = new Scorpion(); break; case 7: m_Creature = new GiantSpider(); break; case 8: m_Creature = new HugeLizard(); break; case 9: m_Creature = new GiantToad(); break; case 10: m_Creature = new Slime(); break; } m_Creature.ControlSlots = 1; SpellHelper.Summon(m_Creature, Caster, 0x216, duration, false, false); } m_Creature.FixedParticles(0x3728, 8, 20, 5042, Server.Items.CharacterDatabase.GetMySpellHue(Caster, 0), 0, EffectLayer.Head); Server.Misc.Research.ConsumeScroll(Caster, true, spellIndex, false); } FinishSequence(); }