private static void Register(Mobile m, Hearthstone hs) { if (m == null || hs == null) { return; } Hearthstone cur = GetStone(m); if (cur == null) { if (_Registry.ContainsKey(m)) { _Registry[m] = hs; } else { _Registry.Add(m, hs); } } else if (cur != hs) { hs.Delete(); } }
public void Deserialize(GenericReader reader) { int version = reader.ReadInt(); _Link = (Hearthstone)reader.ReadItem(); _Name = reader.ReadString(); _Location = reader.ReadPoint3D(); _Map = reader.ReadMap(); }
private static void Register(Mobile m, Hearthstone hs) { if (m == null || hs == null) return; Hearthstone cur = GetStone(m); if (cur == null) { if (_Registry.ContainsKey(m)) _Registry[m] = hs; else _Registry.Add(m, hs); } else if (cur != hs) { hs.Delete(); } }
public HomeEntry(Hearthstone link, Point3D location, Map map) { _Link = link; Set(location, map); }
public HomeEntry(Hearthstone link) : this(link, Point3D.Zero, Map.Internal) { }
public HearthSpell(Hearthstone hs, Mobile caster) : base(caster, null, DefSpellInfo) { _Stone = hs; }
public static void HandleMobile_OnSpeech(Mobile m, SpeechEventArgs e) { if (e.Mobile != null && !e.Handled) { bool handle = false; for (int i = 0; i < DefVendorKeyPhrases.Length; i++) { if (e.Speech.ToLower().Contains(DefVendorKeyPhrases[i])) { handle = true; break; } } if (handle) { int thisNoto = Notoriety.Compute(m, m); bool neg = false; switch (Notoriety.Compute(m, e.Mobile)) { case Notoriety.Ally: { m.PrivateOverheadMessage(MessageType.Regular, m.SpeechHue, true, "Greetings, ally! I need to see your Hearthstone...", e.Mobile.NetState); } break; case Notoriety.Criminal: { if (thisNoto == Notoriety.Criminal) { m.PrivateOverheadMessage(MessageType.Regular, m.SpeechHue, true, "Be quiet, let me see your Hearthstone.", e.Mobile.NetState); } else { m.PrivateOverheadMessage(MessageType.Yell, m.SpeechHue, true, "Do you really think I'd want a criminal coming and going freely to my bar? Get out before I call the guards!", e.Mobile.NetState); e.Handled = true; return; } } break; case Notoriety.Enemy: { m.PrivateOverheadMessage(MessageType.Yell, m.SpeechHue, true, "Get lost before I kill you, scum.", e.Mobile.NetState); e.Handled = true; return; } //break; case Notoriety.Innocent: { if (thisNoto == Notoriety.Criminal || thisNoto == Notoriety.Murderer) { m.PrivateOverheadMessage(MessageType.Regular, m.SpeechHue, true, "Give me one good reason why I should serve you.", e.Mobile.NetState); e.Handled = true; return; } else { m.PrivateOverheadMessage(MessageType.Regular, m.SpeechHue, true, "One moment, I need to see your Hearthstone...", e.Mobile.NetState); } } break; case Notoriety.Murderer: { if (thisNoto == Notoriety.Criminal || thisNoto == Notoriety.Murderer) { m.PrivateOverheadMessage(MessageType.Regular, m.SpeechHue, true, "Just shut up and show me your damned Hearthstone!", e.Mobile.NetState); neg = true; } else if (thisNoto == Notoriety.Innocent) { m.PrivateOverheadMessage(MessageType.Yell, m.SpeechHue, true, "Get out of here before I call the guards or kill you, whichever comes first!", e.Mobile.NetState); } else if (thisNoto == Notoriety.Invulnerable) { m.PrivateOverheadMessage(MessageType.Regular, m.SpeechHue, true, "You caught me in a good mood, show me your Hearthstone and be gone!", e.Mobile.NetState); } else { m.PrivateOverheadMessage(MessageType.Regular, m.SpeechHue, true, "One moment, I need to see your Hearthstone...", e.Mobile.NetState); } } break; case Notoriety.Invulnerable: { m.PrivateOverheadMessage(MessageType.Regular, m.SpeechHue, true, "Anything you say, boss! I just need to see your Hearthstone...", e.Mobile.NetState); e.Handled = true; return; } //break; } Hearthstone hs = Hearthstone.GetStone(e.Mobile); if (hs != null) { if (hs.IsChildOf(e.Mobile.Backpack)) { hs.Home.Set(e.Mobile.Location, e.Mobile.Map); m.PrivateOverheadMessage(MessageType.Regular, m.SpeechHue, true, "There, your Hearthstone has been enchanted, allowing you to recall to " + hs.Home.Name + " every so often.", e.Mobile.NetState); e.Handled = true; return; } else { if (neg) { m.PrivateOverheadMessage(MessageType.Yell, m.SpeechHue, true, "You don't have your Hearthstone with you! You're wasting my time!", e.Mobile.NetState); } else { m.PrivateOverheadMessage(MessageType.Regular, m.SpeechHue, true, "You don't have your Hearthstone with you.", e.Mobile.NetState); } e.Handled = true; return; } } else { if (neg) { m.PrivateOverheadMessage(MessageType.Yell, m.SpeechHue, true, "Pathetic, you don't even have a Hearthstone.", e.Mobile.NetState); } else { m.PrivateOverheadMessage(MessageType.Regular, m.SpeechHue, true, "Sorry, but you don't have a Hearthstone.", e.Mobile.NetState); } e.Handled = true; return; } } } }