Ejemplo n.º 1
0
        public void SpawnManager_Timer()
        {
            if (Common.Clock - lastSpawn > Common.MS_PER_SECOND * Frequency && AliveMembers.Count < AmountMax)
            {
                var toSpawn = Math.Min(AmountPer, DeadMembers.Count);
                if (toSpawn > 0)
                {
                    lastSpawn = Common.Clock;
                    for (int i = 0; i < toSpawn; i++)
                    {
                        var mob = DeadMembers.Dequeue();
                        mob.Respawn();
                    }
                }
            }
            if (DyingMembers.Count > 0)
            {
                foreach (var m in DyingMembers)
                {
                    if (Common.Clock - m.Value.DiedAt > Common.MS_PER_SECOND * 3)
                    {
                        m.Value.Faded();
                    }
                }
            }

            if (AliveMembers.Count > 0)
            {
                foreach (var member in AliveMembers.Values)
                {
                    if (member.Alive)
                    {
                        member.Monster_Timer();
                    }
                }
            }
            //else
            //    Console.WriteLine("ERROR: Dead member {0} in alive collection", member.UID);
        }
        public void SpawnManager_Timer()
        {
            if (Common.Clock - lastSpawn > Common.MS_PER_SECOND * Frequency && AliveMembers.Count < AmountMax)
            {
                var toSpawn = Math.Min(AmountPer, DeadMembers.Count);
                if (toSpawn > 0)
                {
                    lastSpawn = Common.Clock;
                    for (int i = 0; i < toSpawn; i++)
                    {
                        var mob = DeadMembers.Dequeue();
                        mob.Respawn();
                    }
                }
            }
            if (DyingMembers.Count > 0)
            {
                foreach (var m in DyingMembers)
                {
                    if (Common.Clock - m.Value.DiedAt > Common.MS_PER_SECOND * 3)
                    {
                        m.Value.Faded();
                    }
                }
            }

            if (AliveMembers.Count > 0 && IsActive)
            {
                foreach (var member in AliveMembers.Values)
                {
                    if (member.Alive && member.IsActive)
                    {
                        member.Monster_Timer();
                        member.On_Entity_Timer();          //Added so effects/status on monsters can have a timer!
                    }
                }
            }
        }