public static bool CheckItem(PlayerMobile player, Item item) { for (int i = player.Quests.Count - 1; i >= 0; i--) { BaseQuest quest = player.Quests[i]; for (int j = quest.Objectives.Count - 1; j >= 0; j--) { BaseObjective objective = quest.Objectives[j]; if (objective is ObtainObjective) { ObtainObjective obtain = (ObtainObjective)objective; if (obtain.Update(item)) { if (quest.Completed) { quest.OnCompleted(); } else if (obtain.Completed) { player.PlaySound(quest.UpdateSound); } return(true); } } } } return(false); }
public static bool CheckSkill(PlayerMobile player, Skill skill) { for (int i = player.Quests.Count - 1; i >= 0; i--) { BaseQuest quest = player.Quests[i]; for (int j = quest.Objectives.Count - 1; j >= 0; j--) { BaseObjective objective = quest.Objectives[j]; if (objective is ApprenticeObjective) { ApprenticeObjective apprentice = (ApprenticeObjective)objective; if (apprentice.Update(skill)) { if (quest.Completed) { quest.OnCompleted(); } else if (apprentice.Completed) { player.PlaySound(quest.UpdateSound); } } } } } return(false); }
public static bool OnCalmed(PlayerMobile player, Mobile target) { for (int i = player.Quests.Count - 1; i >= 0; i--) { BaseQuest quest = player.Quests[i]; for (int j = quest.Objectives.Count - 1; j >= 0; j--) { if (quest.Objectives[j] is CalmObjective) { CalmObjective obj = (CalmObjective)quest.Objectives[j]; if (obj.Update(target)) { if (quest.Completed) { quest.OnCompleted(); } if (obj.Completed) { player.PlaySound(quest.UpdateSound); } return(true); } } } } return(false); }
public static bool CheckCreature(PlayerMobile player, BaseCreature creature) { for (int i = player.Quests.Count - 1; i >= 0; i--) { BaseQuest quest = player.Quests[i]; for (int j = quest.Objectives.Count - 1; j >= 0; j--) { if (quest.Objectives[j] is SlayObjective) { SlayObjective slay = (SlayObjective)quest.Objectives[j]; if (slay.Update(creature)) { if (quest.Completed) { quest.OnCompleted(); } else if (slay.Completed) { player.PlaySound(quest.UpdateSound); } return(true); } } } } return(false); }
public static bool OnProvoked(PlayerMobile player, Mobile source, Mobile target) { for (int i = player.Quests.Count - 1; i >= 0; i--) { BaseQuest quest = player.Quests[i]; for (int j = quest.Objectives.Count - 1; j >= 0; j--) { if (quest.Objectives[j] is InciteObjective) { InciteObjective obj = (InciteObjective)quest.Objectives[j]; if (obj.SourceTypes.Any(t => t.IsAssignableFrom(source.GetType()))) { if (obj.Update(target)) { if (quest.Completed) { quest.OnCompleted(); } if (obj.Completed) { player.PlaySound(quest.UpdateSound); } return(true); } } } } } return(false); }
public override int CompleteMessage => 1157539; // // You've completed an Animal Training quest! Visit an Animal Trainer to continue! public static void CheckTame(PlayerMobile pm) { if (pm == null) { return; } BaseQuest quest = QuestHelper.GetQuest(pm, typeof(TamingPetQuest)); if (quest != null && !quest.Completed) { quest.Objectives[0].CurProgress++; quest.OnCompleted(); } }
public static void CompleteQuest(PlayerMobile from, BaseQuest quest) { if (quest == null) return; for (int i = 0; i < quest.Objectives.Count; i ++) { BaseObjective obj = quest.Objectives[i]; obj.Complete(); } from.SendLocalizedMessage(1046258, null, 0x23); // Your quest is complete. from.SendGump(new MondainQuestGump(quest, MondainQuestGump.Section.Complete, false, true)); from.PlaySound(quest.CompleteSound); quest.OnCompleted(); }
public static bool DeliveryArrived(PlayerMobile player, BaseVendor vendor) { for (int i = 0; i < player.Quests.Count; i++) { BaseQuest quest = player.Quests[i]; for (int j = 0; j < quest.Objectives.Count; j++) { BaseObjective objective = quest.Objectives[j]; if (objective is DeliverObjective) { DeliverObjective deliver = (DeliverObjective)objective; if (deliver.Update(vendor)) { if (quest.Completed) { player.SendLocalizedMessage(1046258, null, 0x23); // Your quest is complete. player.PlaySound(quest.CompleteSound); quest.OnCompleted(); player.CloseGump(typeof(BaseQuestGump)); if (vendor is MondainQuester) { player.SendGump(new MLQuestFinishGump(player, quest, (MondainQuester)vendor)); } else { player.SendGump(new MLQuestFinishGump(player, quest)); } } return(true); } } } } return(false); }
public static void CompleteQuest(PlayerMobile from, BaseQuest quest) { if (quest == null) { return; } for (int i = 0; i < quest.Objectives.Count; i++) { BaseObjective obj = quest.Objectives[i]; obj.Complete(); } from.SendLocalizedMessage(1046258, null, 0x23); // Your quest is complete. from.CloseGump(typeof(BaseQuestGump)); from.SendGump(new MLQuestFinishGump(from, quest)); from.PlaySound(quest.CompleteSound); quest.OnCompleted(); }
public bool HasQuest(PlayerMobile pm) { if (pm.Quests == null) { return(false); } for (int i = 0; i < pm.Quests.Count; i++) { BaseQuest quest = pm.Quests[i]; if (quest.Quester == this) { for (int j = 0; j < quest.Objectives.Count; j++) { if (quest.Objectives[j].Update(pm)) { quest.Objectives[j].Complete(); } } if (quest.Completed) { quest.OnCompleted(); pm.SendGump(new MondainQuestGump(quest, MondainQuestGump.Section.Complete, false, true)); } else { pm.SendGump(new MondainQuestGump(quest, MondainQuestGump.Section.InProgress, false)); quest.InProgress(); } return(true); } } return(false); }
public static void CompleteQuest(PlayerMobile from, BaseQuest quest) { if (quest == null) return; for (int i = 0; i < quest.Objectives.Count; i ++) { BaseObjective obj = quest.Objectives[i]; obj.Complete(); } from.SendLocalizedMessage(1046258, null, 0x23); // Your quest is complete. from.SendGump(new MondainQuestGump(quest, MondainQuestGump.Section.Complete, false, true)); from.PlaySound(quest.CompleteSound); quest.OnCompleted(); }