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 void DoPounce() { ArrayList topounce = new ArrayList(); foreach ( Item item in this.GetItemsInRange( 8 ) ) { if ( item is CheeseWheel || item is CheeseWedge ) topounce.Add( item ); } if ( topounce.Count == 1 ) { foreach ( Item item in topounce ) { this.Say( "*pounces*" ); Point3D from = this.Location; Point3D to = item.Location; this.Location = to; this.ProcessDelta(); this.Freeze(TimeSpan.FromSeconds(2.0)); PlaySound ( 59 ); item.Delete(); } } else if ( topounce.Count > 1 ) { foreach ( Item item in topounce ) { Rat rat = new Rat(); rat.Tamable = false; rat.Hue = this.Hue; rat.Name = "a lesser mouse"; rat.Controlled = true; rat.ControlMaster = this; rat.ControlOrder = OrderType.Follow; rat.ControlTarget = this; this.Freeze(TimeSpan.FromSeconds(2.0)); rat.MoveToWorld( item.Location, item.Map ); PlaySound ( 59 ); item.Delete(); rat.Freeze(TimeSpan.FromSeconds(1.0)); } } else { this.Say( "eeek" ); this.Freeze(TimeSpan.FromSeconds(2.0)); ArrayList toreclaim = new ArrayList(); foreach ( Mobile m in this.GetMobilesInRange( 15 ) ) { if ( m is Rat ) { Rat rat = (Rat)m; if ( rat.Hue == 1150 || rat.Hue == 1154 ) toreclaim.Add( m ); } } if ( toreclaim.Count > 0 ) { foreach ( Mobile m in toreclaim ) { PlaySound( 251 ); this.Hits += m.Hits; m.Delete(); } } } }
public void DoPounce() { ArrayList topounce = new ArrayList(); foreach (Item item in this.GetItemsInRange(8)) { if (item is CheeseWheel || item is CheeseWedge) { topounce.Add(item); } } if (topounce.Count == 1) { foreach (Item item in topounce) { this.Say("*pounces*"); Point3D from = this.Location; Point3D to = item.Location; this.Location = to; this.ProcessDelta(); this.Freeze(TimeSpan.FromSeconds(2.0)); PlaySound(59); item.Delete(); } } else if (topounce.Count > 1) { foreach (Item item in topounce) { Rat rat = new Rat(); rat.Tamable = false; rat.Hue = this.Hue; rat.Name = "a lesser mouse"; rat.Controlled = true; rat.ControlMaster = this; rat.ControlOrder = OrderType.Follow; rat.ControlTarget = this; this.Freeze(TimeSpan.FromSeconds(2.0)); rat.MoveToWorld(item.Location, item.Map); PlaySound(59); item.Delete(); rat.Freeze(TimeSpan.FromSeconds(1.0)); } } else { this.Say("eeek"); this.Freeze(TimeSpan.FromSeconds(2.0)); ArrayList toreclaim = new ArrayList(); foreach (Mobile m in this.GetMobilesInRange(15)) { if (m is Rat) { Rat rat = (Rat)m; if (rat.Hue == 1150 || rat.Hue == 1154) { toreclaim.Add(m); } } } if (toreclaim.Count > 0) { foreach (Mobile m in toreclaim) { PlaySound(251); this.Hits += m.Hits; m.Delete(); } } } }
public override bool Eat(Mobile from) { if (FillHunger(from, FillFactor)) { string tastemsg; int RatChances = (int)Taste; if (Poisoner == null) { if (RatChances > Utility.Random(8)) { BaseCreature rat = new Rat(); rat.MoveToWorld(from.Location, from.Map); switch (Utility.Random(4)) { case 2: { rat.FocusMob = from; rat.AI = AIType.AI_Predator; rat.Say("*Semble jaloux de votre fromage*"); break; } default: { rat.Controlled = true; rat.ControlMaster = from; rat.ControlOrder = OrderType.Come; rat.Say("*Couinant amoureusement près de vous*"); break; } } } string paste = "Vous mangez"; string taste = ""; switch (Paste) { case CheesePaste.Molle: paste = "Vous laissez fondre"; break; case CheesePaste.Normale: paste = "Vous dégustez"; break; case CheesePaste.Dure: paste = "Vous grignottez"; break; } switch (Taste) { case CheeseTaste.Faible: taste = "au goût subtil"; break; case CheeseTaste.Leger: taste = "au goût délicat"; break; case CheeseTaste.Modere: taste = "au goût agréable"; break; case CheeseTaste.Prononce: taste = "au goût bien présent"; break; case CheeseTaste.Fort: taste = "au goût persistant"; break; } tastemsg = String.Format("{0} ce fromage {1}", paste, taste); if (Quality == CheeseQuality.Exceptionnal) from.Say("*Semble subjugué{0} par le goût de ce fromage*", from.Female ? "e" : ""); } else { tastemsg = "Le goût de la moisissure vous dégoûte au plus haut point"; from.PlaySound(from.Female ? 813 : 1087); Point3D p = new Point3D(from.Location); switch (from.Direction) { case Direction.North: p.Y--; break; case Direction.South: p.Y++; break; case Direction.East: p.X++; break; case Direction.West: p.X--; break; case Direction.Right: p.X++; p.Y--; break; case Direction.Down: p.X++; p.Y++; break; case Direction.Left: p.X--; p.Y++; break; case Direction.Up: p.X--; p.Y--; break; default: break; } p.Z = from.Map.GetAverageZ(p.X, p.Y); bool canFit = Server.Spells.SpellHelper.AdjustField(ref p, from.Map, 12, false); if (canFit) { Puke puke = new Puke(); puke.Map = from.Map; puke.Location = p; } from.Say("*Recrache le fromage, l'air malade*"); } from.PrivateOverheadMessage(MessageType.Regular, 0x3B2, false, tastemsg, from.NetState); // Play a random "eat" sound from.PlaySound(Utility.Random(0x3A, 3)); if (from.Body.IsHuman && !from.Mounted) from.Animate(34, 5, 1, true, false, 0); if (Poison != null) from.ApplyPoison(Poisoner, Poison); Consume(); return true; } return false; }