public override bool CanTeleport(Mobile m) { if (!base.CanTeleport(m)) { return(false); } if (m_QuestType != null) { PlayerMobile pm = m as PlayerMobile; if (pm == null) { return(false); } MLQuestContext context = MLQuestSystem.GetContext(pm); if (context == null || (!context.IsDoingQuest(m_QuestType) && !context.HasDoneQuest(m_QuestType))) { TextDefinition.SendMessageTo(m, m_Message); return(false); } } return(true); }
public override void OnMovement(Mobile m, Point3D oldLocation) { if (!Running) { return; } if (IsEmpty && End <= Core.Now && m.InRange(GetWorldLocation(), TriggerRange) && m.Location != oldLocation && ValidTrigger(m)) { TextDefinition.SendMessageTo(m, SpawnMessage); DoTimer(); Spawn(); if (InstantFlag) { foreach (var spawned in Spawned.Keys) { if (spawned is Mobile mobile) { mobile.Combatant = m; } } } } }
public override void OnResponse(NetState sender, RelayInfo info) { if (info.ButtonID != 1) { return; } var from = sender.Mobile; if (!m_Token.IsChildOf(from.Backpack)) { from.SendLocalizedMessage(1062334); // This item must be in your backpack to be used. } else { var i = m_Token.CreateItemFor(from); if (i != null) { from.BankBox.AddItem(i); TextDefinition.SendMessageTo(from, m_Token.ItemReceiveMessage); m_Token.Delete(); } } }
public override void OnMovement(Mobile m, Point3D oldLocation) { if (!Running) { return; } if (IsEmpty && End <= DateTime.UtcNow && m.InRange(GetWorldLocation(), m_TriggerRange) && m.Location != oldLocation && ValidTrigger(m)) { TextDefinition.SendMessageTo(m, m_SpawnMessage); DoTimer(); Spawn(); if (m_InstantFlag) { foreach (ISpawnable spawned in Spawned) { if (spawned is Mobile) { ((Mobile)spawned).Combatant = m; } } } } }
public void CheckComplete() { if (IsCompleted()) { m_Player.PlaySound(0x5B5); // public sound foreach (BaseObjectiveInstance obj in m_ObjectiveInstances) { obj.OnQuestCompleted(); } TextDefinition.SendMessageTo(m_Player, m_Quest.CompletionNotice, 0x23); /* * Advance to the ClaimReward=true stage if this quest has no * completion message to show anyway. This suppresses further * triggers of CheckComplete. * * For quests that require collections, this is done later when * the player double clicks the quester. */ if (!Removed && SkipReportBack && !m_Quest.RequiresCollection) // An OnQuestCompleted can potentially have removed this instance already { ContinueReportBack(false); } } }
public override void HandleInvalidTransfer(Mobile from) { if (InvalidTransferMessage != null) { TextDefinition.SendMessageTo(from, InvalidTransferMessage); } Delete(); }
public override void OnDoubleClick(Mobile from) { if (from.InRange(GetWorldLocation(), 1)) { TextDefinition.SendMessageTo(from, TargetMessage); from.Target = new InternalTarget(this); } else { from.SendLocalizedMessage(500446); // That is too far away. } }
public bool Check(Mobile from) { if (!IsChildOf(from.Backpack)) { from.SendLocalizedMessage(1047012); // The contract must be in your backpack to use it. } else if (!VerifyRegion(from)) { TextDefinition.SendMessageTo(from, RepairSkillInfo.GetInfo(m_Skill).NotNearbyMessage); } else { return(true); } return(false); }
protected override void OnTarget(Mobile from, object targeted) { if (targeted is Item) { Item item = (Item)targeted; if (!from.InRange(m_Tub.GetWorldLocation(), 1) || !from.InRange(item.GetWorldLocation(), 1)) { from.SendLocalizedMessage(500446); // That is too far away. } else if (targeted is MetalKiteShield && m_Tub is DyeTub) { m_Tub.Dye(from, item); } else if (targeted is HouseToHouseTeleporter && m_Tub is FurnitureDyeTub) { m_Tub.Dye(from, item); } else if (!item.Deleted && (item.Dyable || (m_Tub.UsesRemaining >= 0 && m_Tub.Redyable && item is BaseDyeTub && ((BaseDyeTub)item).Redyable && ((BaseDyeTub)item).UsesRemaining >= 0)) && m_Tub.IsDyable(item)) { if (m_Tub.Dye(from, item)) { if (m_Tub.UsesRemaining > 0) { m_Tub.UsesRemaining--; if (m_Tub.UsesRemaining == 0) { m_Tub.Delete(); from.SendMessage(54, "Your dye tub has run out of charges!"); } } } } else { TextDefinition.SendMessageTo(from, m_Tub.FailMessage); } } else { TextDefinition.SendMessageTo(from, m_Tub.FailMessage); } }
public virtual bool Dye(Mobile from, Item item) { if (item.Parent is Mobile) { from.SendMessage("You decided not to dye this while it is worn."); // Can't Dye clothing that is being worn. } else if (item.Dye(from, this)) { from.PlaySound(0x23E); return(true); } else { TextDefinition.SendMessageTo(from, FailMessage); } return(false); }
public static bool SetCurrentMove(Mobile m, SpecialMove move) { if (!Core.SE) { ClearCurrentMove(m); return(false); } if (move?.Validate(m) == false) { ClearCurrentMove(m); return(false); } var sameMove = move == GetCurrentMove(m); ClearCurrentMove(m); if (sameMove) { return(true); } if (move != null) { WeaponAbility.ClearCurrentAbility(m); Table[m] = move; move.OnUse(m); var moveID = SpellRegistry.GetRegistryNumber(move); if (moveID > 0) { m.Send(new ToggleSpecialAbility(moveID + 1, true)); } TextDefinition.SendMessageTo(m, move.AbilityMessage); } return(true); }
public override bool CanTeleport(Mobile m) { if (!base.CanTeleport(m)) { return(false); } if (m_TicketType != null) { Item ticket = null; Container pack = m.Backpack; if (pack != null) { ticket = pack.FindItemByType(m_TicketType, false); // Check (top level) backpack } if (ticket == null) { foreach (Item item in m.Items) // Check paperdoll { if (m_TicketType.IsAssignableFrom(item.GetType())) { ticket = item; break; } } } if (ticket == null) { TextDefinition.SendMessageTo(m, m_Message); return(false); } if (ticket is ITicket) { ((ITicket)ticket).OnTicketUsed(m); } } return(true); }
public override bool Dye(Mobile from, Item item) { if (!item.Movable) { from.SendMessage("You cannot dye spellbooks which are locked down."); } else if (item.Parent is Mobile) { from.SendMessage("You cannot dye spellbooks that are being worn."); } else if (item.Dye(from, this)) { from.PlaySound(0x23E); return(true); } else { TextDefinition.SendMessageTo(from, FailMessage); } return(false); }
protected override void OnTarget(Mobile from, object targeted) { if (targeted is Item) { Item item = (Item)targeted; if (!from.InRange(m_Tub.GetWorldLocation(), 1) || !from.InRange(item.GetWorldLocation(), 1)) { from.SendLocalizedMessage(500446); // That is too far away. } else if (!item.Deleted && item.Dyable && m_Tub.IsDyable(item)) { m_Tub.Dye(from, item); } else { TextDefinition.SendMessageTo(from, m_Tub.FailMessage); } } else { TextDefinition.SendMessageTo(from, m_Tub.FailMessage); } }
public virtual void SendAbilityMessage(Mobile m) { TextDefinition.SendMessageTo(m, AbilityMessage); }
public void SendSuccessTo(Mobile m) { TextDefinition.SendMessageTo(m, m_SuccessMessage); }