Beispiel #1
0
 public bool IsPartnerContact()
 {
     if (null != PreventEnroll && PreventEnroll.Value)
     {
         var partnerEncounters = Encounters
                                 .Where(x => x.EncounterTypeId == new Guid("B262FDA4-877F-11E7-BB31-BE2E44B68B34") ||
                                        x.EncounterTypeId == new Guid("B262FDA4-877F-11E7-BB31-BE2E44B69B34"))
                                 .ToList();
         return(partnerEncounters.Count > 0);
     }
     return(false);
 }
Beispiel #2
0
        public bool IsPos()
        {
            var finalResultEnocunters = Encounters.Where(x => x.EncounterTypeId == new Guid("b262f4ee-852f-11e7-bb31-be2e44b06b34")).ToList();
            var obs = new List <ObsFinalTestResult>();

            foreach (var f in finalResultEnocunters)
            {
                obs.AddRange(f.ObsFinalTestResults);
            }

            if (obs.Count > 0)
            {
                return(obs.Any(x => x.FinalResult == new Guid("B25EFD8A-852F-11E7-BB31-BE2E44B06B34")));
            }

            return(false);
        }
Beispiel #3
0
        public void CheckQueue()
        {
            if (Queue.Count == 0)
            {
                return;
            }

            bool message = false;

            List <Mobile> copy = new List <Mobile>(Queue.Keys);

            for (int i = 0; i < copy.Count; i++)
            {
                Mobile m = copy[i];

                if (m.Map != Map.TerMur || m.NetState == null)
                {
                    RemoveFromQueue(m);

                    if (i == 0)
                    {
                        message = true;
                    }

                    continue;
                }

                foreach (ShadowguardEncounter inst in Encounters.Where(inst => inst.PartyLeader == m))
                {
                    if (i == 0)
                    {
                        message = true;
                    }

                    RemoveFromQueue(m);
                    continue;
                }

                if (Queue.Count > 0)
                {
                    message = true;

                    Timer.DelayCall(TimeSpan.FromMinutes(2), () =>
                    {
                        EncounterType type           = Queue[m];
                        ShadowguardInstance instance = GetAvailableInstance(type);

                        if (instance != null && instance.TryBeginEncounter(m, true, type))
                        {
                            RemoveFromQueue(m);
                        }
                    });
                }

                break;
            }

            if (message && Queue.Count > 0)
            {
                ColUtility.For(Queue.Keys, (i, mob) =>
                {
                    Party p = Party.Get(mob);

                    if (p != null)
                    {
                        p.Members.ForEach(info => info.Mobile.SendLocalizedMessage(1156190, i + 1 > 1 ? i.ToString() : "next"));
                    }
                    //A Shadowguard encounter has opened. You are currently ~1_NUM~ in the
                    //queue. If you are next, you may proceed to the entry stone to join.
                    else
                    {
                        mob.SendLocalizedMessage(1156190, i + 1 > 1 ? i.ToString() : "next");
                    }
                });
            }
        }