public void SpawnBrigand(Mobile target) { Map map = Map; if (map == null) { return; } int brigands = 0; IPooledEnumerable eable = GetMobilesInRange(10); foreach (Mobile m in eable) { if (m is Brigand) { ++brigands; } } eable.Free(); if (brigands < 16) { PlaySound(0x3D); int newBrigands = Utility.RandomMinMax(3, 6); for (int i = 0; i < newBrigands; ++i) { BaseCreature brigand = new Brigand { Team = Team }; bool validLocation = false; Point3D loc = Location; for (int j = 0; !validLocation && j < 10; ++j) { int x = X + Utility.Random(3) - 1; int y = Y + Utility.Random(3) - 1; int z = map.GetAverageZ(x, y); if (validLocation = map.CanFit(x, y, Z, 16, false, false)) { loc = new Point3D(x, y, Z); } else if (validLocation = map.CanFit(x, y, z, 16, false, false)) { loc = new Point3D(x, y, z); } } brigand.MoveToWorld(loc, map); brigand.Combatant = target; } } }
public void SpawnBrigand(Mobile target) { Map map = this.Map; if (map == null) { return; } int brigands = 0; foreach (Mobile m in this.GetMobilesInRange(10)) { if (m is Brigand) { ++brigands; } } if (brigands < 16) { this.PlaySound(0x3D); int newBrigands = Utility.RandomMinMax(3, 6); for (int i = 0; i < newBrigands; ++i) { BaseCreature brigand = new Brigand(); brigand.Team = this.Team; bool validLocation = false; Point3D loc = this.Location; for (int j = 0; !validLocation && j < 10; ++j) { int x = this.X + Utility.Random(3) - 1; int y = this.Y + Utility.Random(3) - 1; int z = map.GetAverageZ(x, y); if (validLocation = map.CanFit(x, y, this.Z, 16, false, false)) { loc = new Point3D(x, y, this.Z); } else if (validLocation = map.CanFit(x, y, z, 16, false, false)) { loc = new Point3D(x, y, z); } } m_Instances.Add(brigand); brigand.MoveToWorld(loc, map); brigand.Combatant = target; } } }
public void SpawnBrigand(Mobile target) { Map map = this.Map; if (map == null) { return; } int newBrigand = 1; for (int i = 0; i < newBrigand; ++i) { Brigand Brigand = new Brigand(); Brigand.Team = this.Team; Brigand.FightMode = FightMode.Closest; bool validLocation = false; Point3D loc = this.Location; for (int j = 0; !validLocation && j < 10; ++j) { int x = X + Utility.Random(3) - 1; int y = Y + Utility.Random(3) - 1; int z = map.GetAverageZ(x, y); if (validLocation = map.CanFit(x, y, this.Z, 16, false, false)) { loc = new Point3D(x, y, Z); } else if (validLocation = map.CanFit(x, y, z, 16, false, false)) { loc = new Point3D(x, y, z); } } Brigand.MoveToWorld(loc, map); Brigand.Combatant = target; } }
public override void OnDoubleClick(Mobile from) { if (IsChildOf(from.Backpack)) { int hours, minutes; Clock.GetTime(Map, Location.X, Location.Y, out hours, out minutes); if (hours <= 19) { #region Spawn Random Ambush switch (Utility.Random(3)) { case 0: { from.SendMessage("*As your gaze scans the horizon, you notice a group of brigands closing in*"); #region Define Mobiles To Spawn // I've reserved spawn01-spawn09; however, you can add as many variables as you like as long as they are unique Mobile spawn01 = new Brigand(); Mobile spawn02 = new Brigand(); Mobile spawn03 = new Brigand(); Mobile spawn04 = new Brigand(); Mobile spawn05 = new Brigand(); Mobile spawn06 = new Brigand(); #endregion switch (Utility.Random(2)) { case 1: { /// <summary> /// Don't forget to plug in the spawn variables you add above below: /// </summary> spawn01.MoveToWorld(new Point3D(from.X + 10, from.Y, from.Z), from.Map); spawn02.MoveToWorld(new Point3D(from.X + 10, from.Y, from.Z), from.Map); spawn03.MoveToWorld(new Point3D(from.X + 15, from.Y, from.Z), from.Map); spawn04.MoveToWorld(new Point3D(from.X, from.Y + 10, from.Z), from.Map); spawn05.MoveToWorld(new Point3D(from.X, from.Y + 15, from.Z), from.Map); spawn06.MoveToWorld(new Point3D(from.X, from.Y + 15, from.Z), from.Map); break; } case 0: { switch (Utility.Random(4)) { case 0: from.SendMessage("*As your gaze scans the horizon, all seems too quiet*"); break; case 1: from.SendMessage("*As your gaze scans the horizon, you hear breaking branches in the distance*"); break; // Sometimes a subspawn is the perfect ambiance/ detail to role-playing on a server case 2: from.SendMessage("*You notice the ground moving beneath your feet*"); Mobile subspawn01 = new Rat(); subspawn01.MoveToWorld(new Point3D(from.X, from.Y, from.Z), from.Map); break; case 3: from.SendMessage("*As your gaze scans the horizon, you feel confident all is well*"); break; } break; } } break; } case 1: { from.SendMessage("*As your gaze scans the horizon, you notice an Ettin patrol nearby*"); #region Define Mobiles To Spawn // I've reserved spawn11-spawn19; however, you can add as many variables as you like as long as they are unique Mobile spawn11 = new Ettin(); Mobile spawn12 = new Ettin(); Mobile spawn13 = new Ettin(); Mobile spawn14 = new Ettin(); Mobile spawn15 = new Ettin(); Mobile spawn16 = new Ettin(); #endregion switch (Utility.Random(2)) { case 1: { /// <summary> /// Don't forget to plug in the spawn variables you add above below: /// </summary> spawn11.MoveToWorld(new Point3D(from.X + 10, from.Y, from.Z), from.Map); spawn12.MoveToWorld(new Point3D(from.X + 10, from.Y, from.Z), from.Map); spawn13.MoveToWorld(new Point3D(from.X + 15, from.Y, from.Z), from.Map); spawn14.MoveToWorld(new Point3D(from.X, from.Y + 10, from.Z), from.Map); spawn15.MoveToWorld(new Point3D(from.X, from.Y + 15, from.Z), from.Map); spawn16.MoveToWorld(new Point3D(from.X, from.Y + 15, from.Z), from.Map); break; } case 0: { switch (Utility.Random(2, 4)) { case 0: from.SendMessage("*As your gaze scans the horizon, all seems too quiet*"); break; case 1: from.SendMessage("*As your gaze scans the horizon, you hear breaking branches in the distance*"); break; // Sometimes a subspawn is the perfect ambiance/ detail to role-playing on a server case 2: from.SendMessage("*You notice the ground moving beneath your feet*"); Mobile subspawn11 = new Rat(); subspawn11.MoveToWorld(new Point3D(from.X, from.Y, from.Z), from.Map); break; case 3: from.SendMessage("*As your gaze scans the horizon, you feel confident all is well*"); break; } break; } } break; } case 2: // This case makes the Scout Spyglass act like a normal Spyglass { if (hours < 5 || hours > 17) { from.SendLocalizedMessage(1055040); // You gaze up into the glittering night sky. With great care, you compose a chart of the most prominent star patterns. } else { from.SendLocalizedMessage(1055039); // You gaze up into the sky, but it is not dark enough to see any stars. } break; } } #endregion } else { #region Spawn Random Ambush switch (Utility.Random(3)) { case 0: { from.SendMessage("*As your gaze scans the horizon, you notice a group of black bears closing in*"); #region Define Mobiles To Spawn // I've reserved spawn21-spawn29; however, you can add as many variables as you like as long as they are unique Mobile spawn21 = new BlackBear(); Mobile spawn22 = new BlackBear(); Mobile spawn23 = new BlackBear(); Mobile spawn24 = new BlackBear(); Mobile spawn25 = new BlackBear(); Mobile spawn26 = new BlackBear(); #endregion switch (Utility.Random(2)) { case 1: { /// <summary> /// Don't forget to plug in the spawn variables you add above below: /// </summary> spawn21.MoveToWorld(new Point3D(from.X + 10, from.Y, from.Z), from.Map); spawn22.MoveToWorld(new Point3D(from.X + 15, from.Y, from.Z), from.Map); spawn23.MoveToWorld(new Point3D(from.X + 20, from.Y, from.Z), from.Map); spawn24.MoveToWorld(new Point3D(from.X, from.Y + 10, from.Z), from.Map); spawn25.MoveToWorld(new Point3D(from.X, from.Y + 15, from.Z), from.Map); spawn26.MoveToWorld(new Point3D(from.X, from.Y + 20, from.Z), from.Map); break; } case 0: { switch (Utility.Random(4)) { case 0: from.SendMessage("*As your gaze scans the horizon, all seems too quiet*"); break; case 1: from.SendMessage("*As your gaze scans the horizon, you hear breaking branches in the distance*"); break; // Sometimes a subspawn is the perfect ambiance/ detail to role-playing on a server case 2: from.SendMessage("*You notice the ground moving beneath your feet*"); Mobile subspawn21 = new Rat(); subspawn21.MoveToWorld(new Point3D(from.X, from.Y, from.Z), from.Map); break; case 3: from.SendMessage("*As your gaze scans the horizon, you feel confident all is well*"); break; } break; } } break; } case 1: { from.SendMessage("*As your gaze scans the horizon, you notice an Fire Gargoyle patrol nearby*"); #region Define Mobiles To Spawn // I've reserved spawn31-spawn39; however, you can add as many variables as you like as long as they are unique Mobile spawn31 = new FireGargoyle(); Mobile spawn32 = new FireSteed(); Mobile spawn33 = new FireGargoyle(); Mobile spawn34 = new FireSteed(); Mobile spawn35 = new FireGargoyle(); Mobile spawn36 = new FireBeetle(); #endregion switch (Utility.Random(2)) { case 1: { /// <summary> /// Don't forget to plug in the spawn variables you add above below: /// </summary> spawn31.MoveToWorld(new Point3D(from.X + 10, from.Y, from.Z), from.Map); spawn32.MoveToWorld(new Point3D(from.X + 15, from.Y, from.Z), from.Map); spawn33.MoveToWorld(new Point3D(from.X + 15, from.Y, from.Z), from.Map); spawn34.MoveToWorld(new Point3D(from.X, from.Y + 10, from.Z), from.Map); spawn35.MoveToWorld(new Point3D(from.X, from.Y + 10, from.Z), from.Map); spawn36.MoveToWorld(new Point3D(from.X, from.Y + 15, from.Z), from.Map); break; } case 0: { switch (Utility.Random(4)) { case 0: from.SendMessage("*As your gaze scans the horizon, all seems too quiet*"); break; case 1: from.SendMessage("*As your gaze scans the horizon, you hear breaking branches in the distance*"); break; // Sometimes a subspawn is the perfect ambiance/ detail to role-playing on a server case 2: from.SendMessage("*You notice the ground moving beneath your feet*"); Mobile subspawn31 = new Rat(); subspawn31.MoveToWorld(new Point3D(from.X, from.Y, from.Z), from.Map); break; case 3: from.SendMessage("*As your gaze scans the horizon, you feel confident all is well*"); break; } break; } } break; } case 2: // This case makes the Scout Spyglass act like a normal Spyglass { if (hours < 5 || hours > 17) { from.SendLocalizedMessage(1055040); // You gaze up into the glittering night sky. With great care, you compose a chart of the most prominent star patterns. } else { from.SendLocalizedMessage(1055039); // You gaze up into the sky, but it is not dark enough to see any stars. } break; } } #endregion } --this.UsesRemaining; if (this.UsesRemaining == 0) { this.Delete(); } } else { from.SendLocalizedMessage(1042001); // That must be in your pack for you to use it. } }
public override void OnThink() { if (!boatspawn) { if (this is SailorOrkGuards || this is SailorElfGuards || this is SailorGuards) { TitleGuards(this); } Map map = Map; if (map == null) { return; } Server.Multis.BaseBoat.BuildShip(ship, this); boatspawn = true; if (Server.Multis.BaseBoat.IsNearOtherShip(this)) { this.Delete(); } else if (Worlds.TestShore(Map, X, Y, 15)) { this.Delete(); } } base.OnThink(); if (ship == null) { this.Delete(); } base.OnThink(); if (!crewspawn) { crewspawn = true; int crew = Utility.RandomMinMax(9, 12); BaseCreature pirate = new Brigand(); pirate.Delete(); bool evil = true; string toss = "stones"; while (crew > 0) { if (this is PirateCyclops || this is PirateDragonogre || this is PirateEttinMage || this is PirateTroll || this is PirateOgreLord || this is PirateMinotaur) { switch (Utility.RandomMinMax(1, 13)) { case 1: pirate = new Orc(); toss = "stones"; break; case 2: pirate = new Bugbear(); toss = "axes"; break; case 3: pirate = new Gnoll(); toss = "daggers"; break; case 4: pirate = new Goblin(); toss = "darts"; break; case 5: pirate = new Morlock(); toss = "stones"; break; case 6: pirate = new Neanderthal(); toss = "stones"; break; case 7: pirate = new Ratman(); toss = "daggers"; pirate.Body = 42; break; case 8: pirate = new Minotaur(); toss = "axes"; pirate.Body = 241; break; case 9: pirate = new Orc(); toss = "axes"; pirate.Body = 20; break; case 10: pirate = new Orc(); toss = "daggers"; pirate.Body = 182; break; case 11: pirate = new Orc(); toss = "arrows"; pirate.Body = 252; break; case 12: pirate = new Kobold(); toss = "daggers"; pirate.Body = 245; break; case 13: pirate = new Minotaur(); toss = "axes"; pirate.Body = 78; break; } } else if (this is PirateDaemon || this is PirateDemon || this is PirateDemoness || this is PirateDevil || this is PirateSuccubus) { switch (Utility.RandomMinMax(1, 5)) { case 1: pirate = new Demon(); toss = "fire"; pirate.Hue = 0; pirate.Body = 112; break; case 2: pirate = new Gargoyle(); toss = "fire"; pirate.Hue = 0; pirate.Body = 112; break; case 3: pirate = new Succubus(); toss = "energy"; pirate.Hue = 0; pirate.Body = 149; break; case 4: pirate = new Demon(); toss = "daggers"; pirate.Hue = 0; pirate.Body = 128; break; case 5: pirate = new Demon(); toss = "poison"; pirate.Hue = 0; pirate.Body = 136; break; } } else if (this is PirateGargoyle) { switch (Utility.RandomMinMax(1, 5)) { case 1: pirate = new Gargoyle(); pirate.Body = 112; break; case 2: pirate = new Gargoyle(); pirate.Body = 126; break; case 3: pirate = new Gargoyle(); pirate.Body = 113; break; case 4: pirate = new Gargoyle(); pirate.Body = 158; break; case 5: pirate = new Gargoyle(); break; } switch (Utility.RandomMinMax(1, 5)) { case 1: toss = "fire"; break; case 2: toss = "cold"; break; case 3: toss = "energy"; break; case 4: toss = "poison"; break; case 5: toss = "bolt"; break; } } else if (this is PirateGrathek || this is PirateSakleth) { switch (Utility.RandomMinMax(1, 4)) { case 1: pirate = new LizardmanArcher(); toss = "spear"; break; case 2: pirate = new Lizardman(); toss = "daggers"; pirate.Body = 33; break; case 3: pirate = new Lizardman(); toss = "rocks"; pirate.Body = 326; break; case 4: pirate = new Lizardman(); toss = "darts"; pirate.Body = 375; break; } } else if (this is PirateTitan) { switch (Utility.RandomMinMax(1, 4)) { case 1: pirate = new Tritun(); toss = "daggers"; break; case 2: pirate = new Tritun(); toss = "spear"; pirate.Body = 678; break; case 3: pirate = new Tritun(); toss = "poison"; pirate.Body = 676; break; case 4: pirate = new Tritun(); toss = "bolt"; pirate.Body = 677; break; } } else if (this is PirateOphidian) { pirate = new OphidianWarrior(); toss = "dagger"; pirate.Body = 87; } else if (this is PirateSnakeMan) { evil = false; switch (Utility.RandomMinMax(1, 2)) { case 1: pirate = new OphidianWarrior(); toss = "poison"; pirate.Body = 704; break; case 2: pirate = new OphidianWarrior(); toss = "daggers"; pirate.Body = 143; break; } } else if (this is PirateUndead) { switch (Utility.RandomMinMax(1, 5)) { case 1: pirate = new Zombie(); toss = "bones"; break; case 2: pirate = new Zombie(); toss = "bones"; pirate.Body = 304; break; case 3: pirate = new Ghoul(); toss = "bones"; break; case 4: pirate = new AquaticGhoul(); toss = "bones"; break; case 5: pirate = new Wight(); toss = "bones"; break; } } else if (this is PirateGhost) { switch (Utility.RandomMinMax(1, 5)) { case 1: pirate = new Spectre(); toss = "fire"; break; case 2: pirate = new Spectre(); toss = "cold"; break; case 3: pirate = new Spectre(); toss = "energy"; break; case 4: pirate = new Spectre(); toss = "bolt"; break; case 5: pirate = new Spectre(); toss = "poison"; break; } } else if (this is PirateDarkLord || this is PirateLich || this is PirateLichLord || this is PirateSkeleton) { switch (Utility.RandomMinMax(1, 14)) { case 1: pirate = new Zombie(); toss = "bones"; break; case 2: pirate = new Zombie(); toss = "bones"; pirate.Body = 304; break; case 3: pirate = new Spectre(); toss = "fire"; break; case 4: pirate = new Ghoul(); toss = "bones"; break; case 5: pirate = new AquaticGhoul(); toss = "bones"; break; case 6: pirate = new Skeleton(); toss = "bones"; pirate.Body = 50; break; case 7: pirate = new SkeletonArcher(); toss = "arrows"; break; case 8: pirate = new Wight(); toss = "bones"; break; case 9: pirate = new Skeleton(); toss = "bandages"; pirate.Body = 154; BaseSoundID = 471; break; case 10: pirate = new BoneMagi(); toss = "fire"; break; case 11: pirate = new BoneMagi(); toss = "cold"; break; case 12: pirate = new BoneMagi(); toss = "energy"; break; case 13: pirate = new BoneMagi(); toss = "poison"; break; case 14: pirate = new BoneMagi(); toss = "bolt"; break; } } else if (this is PirateDrow) { pirate = new ElfBerserker(); toss = "crossbow"; } else if (this is PirateMen) { pirate = new Berserker(); toss = "crossbow"; } else if (this is PirateNatives) { pirate = new Berserker(); toss = "harpoon"; } else if (this is PirateCult) { switch (Utility.RandomMinMax(1, 12)) { case 1: pirate = new Brigand(); toss = "daggers"; break; case 2: pirate = new Brigand(); toss = "stones"; break; case 3: pirate = new Brigand(); toss = "stars"; break; case 4: pirate = new Brigand(); toss = "darts"; break; case 5: pirate = new Brigand(); toss = "axes"; break; case 6: pirate = new Brigand(); toss = "bones"; break; case 7: pirate = new Brigand(); toss = "arrows"; break; case 8: pirate = new Brigand(); toss = "fire"; break; case 9: pirate = new Brigand(); toss = "cold"; break; case 10: pirate = new Brigand(); toss = "energy"; break; case 11: pirate = new Brigand(); toss = "poison"; break; case 12: pirate = new Brigand(); toss = "bolt"; break; } } else if (this is SailorElfGuards) { pirate = new ElfBerserker(); evil = false; switch (Utility.RandomMinMax(1, 3)) { case 1: toss = "crossbow"; break; case 2: toss = "bow"; break; case 3: toss = "harpoon"; break; } } else if (this is SailorGuards) { pirate = new Berserker(); evil = false; switch (Utility.RandomMinMax(1, 3)) { case 1: toss = "crossbow"; break; case 2: toss = "bow"; break; case 3: toss = "harpoon"; break; } } else if (this is SailorOrkGuards) { pirate = new OrkWarrior(); evil = false; switch (Utility.RandomMinMax(1, 3)) { case 1: toss = "crossbow"; break; case 2: toss = "bow"; break; case 3: toss = "harpoon"; break; } } else if (this is SailorElf) { pirate = new ElfBerserker(); evil = false; switch (Utility.RandomMinMax(1, 7)) { case 1: toss = "daggers"; break; case 2: toss = "harpoon"; break; case 3: toss = "stars"; break; case 4: toss = "darts"; break; case 5: toss = "axes"; break; case 6: toss = "arrows"; break; case 7: toss = "crossbow"; break; } } else if (this is SailorMerchant) { pirate = new Berserker(); evil = false; switch (Utility.RandomMinMax(1, 7)) { case 1: toss = "daggers"; break; case 2: toss = "harpoon"; break; case 3: toss = "stars"; break; case 4: toss = "darts"; break; case 5: toss = "axes"; break; case 6: toss = "arrows"; break; case 7: toss = "crossbow"; break; } } else if (this is SailorAngel || this is SailorAngelLord) { evil = false; switch (Utility.RandomMinMax(1, 5)) { case 1: pirate = new Pixie(); toss = "fire"; pirate.Body = Utility.RandomList(356, 128); break; case 2: pirate = new Fairy(); toss = "cold"; pirate.Body = 363; break; case 3: pirate = new Centaur(); toss = "arrows"; break; case 4: pirate = new Satyr(); toss = "daggers"; break; case 5: pirate = new Wisp(); toss = "energy"; break; } } SizeUpCrewMember(pirate, evil, EmoteHue, this, toss); crew--; } } }
public void SpawnBrigand( Mobile target ) { Map map = this.Map; if ( map == null ) return; int newBrigand = 1; for ( int i = 0; i < newBrigand; ++i ) { Brigand Brigand = new Brigand(); Brigand.Team = this.Team; Brigand.FightMode = FightMode.Closest; bool validLocation = false; Point3D loc = this.Location; for ( int j = 0; !validLocation && j < 10; ++j ) { int x = X + Utility.Random( 3 ) - 1; int y = Y + Utility.Random( 3 ) - 1; int z = map.GetAverageZ( x, y ); if ( validLocation = map.CanFit( x, y, this.Z, 16, false, false ) ) loc = new Point3D( x, y, Z ); else if ( validLocation = map.CanFit( x, y, z, 16, false, false ) ) loc = new Point3D( x, y, z ); } Brigand.MoveToWorld( loc, map ); Brigand.Combatant = target; } }