Exemple #1
0
        public void OnDeath(BaseCreature bc)
        {
            if (bc == null || bc.Controlled || bc.Summoned)
            {
                return;
            }

            if (Spawn.ContainsKey(bc))
            {
                Spawn.Remove(bc);

                bool wavecomplete = true;
                foreach (KeyValuePair <BaseCreature, List <BaseCreature> > kvp in Spawn)
                {
                    if (kvp.Key != null && kvp.Key.Alive)
                    {
                        wavecomplete = false;
                        break;
                    }
                }

                if (wavecomplete)
                {
                    CompleteWave();
                }
            }
            else
            {
                foreach (KeyValuePair <BaseCreature, List <BaseCreature> > kvp in Spawn)
                {
                    if (kvp.Value.Contains(bc))
                    {
                        kvp.Value.Remove(bc);
                    }

                    int count = kvp.Value.Where(b => b != null && b.Alive).Count();

                    if (count == 0 && kvp.Key.Alive)
                    {
                        kvp.Key.Blessed = false;
                        kvp.Key.Delta(MobileDelta.Noto);
                    }
                }
            }
        }