Exemple #1
0
        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;
            }
        }