public static void DoTasks() { MimesisHelpers.MimesisEvent evt = GetBestTask; if (evt.eType == MimesisHelpers.eventType.none) { return; // "new instance of MimesisEvent" => nothing to do } switch (evt.eType) { case MimesisHelpers.eventType.pickupQuest: case MimesisHelpers.eventType.turninQuest: List <WoWUnit> listU = ObjectManager.GetWoWUnitByEntry(evt.EventValue1); if (listU.Count > 0) { WoWUnit u = listU[0]; Npc quester = new Npc(); quester.Entry = evt.EventValue1; quester.Position = u.Position; quester.Name = u.Name; bool cancelPickUp = false; if (evt.eType == MimesisHelpers.eventType.pickupQuest && !Quest.GetQuestCompleted(evt.EventValue2) && !Quest.GetLogQuestId().Contains(evt.EventValue2)) { Quest.QuestPickUp(ref quester, evt.EventString1, evt.EventValue2, out cancelPickUp); } else if (evt.eType == MimesisHelpers.eventType.turninQuest && Quest.GetLogQuestId().Contains(evt.EventValue2) && Quest.GetLogQuestIsComplete(evt.EventValue2)) { Quest.QuestTurnIn(ref quester, Quest.GetLogQuestTitle(evt.EventValue2), evt.EventValue2); } CleanQuestEvents(cancelPickUp); } break; case MimesisHelpers.eventType.mount: switch ((MountCapacity)evt.EventValue1) { case MountCapacity.Ground: MountTask.MountingGroundMount(true); break; case MountCapacity.Fly: MountTask.MountingFlyingMount(true); break; case MountCapacity.Swimm: MountTask.MountingAquaticMount(true); break; default: MountTask.DismountMount(true); break; } myTaskList.Remove(evt); break; } }