Beispiel #1
0
 void OnHeadDied(EnemyAI_GleeokHead head)
 {
     if (--numHeads > 0)
     {
         SpawnAngryHead(head.transform.position);
     }
     else
     {
         _healthController.isIndestructible = false;
         _healthController.Kill(null, true);
     }
 }
Beispiel #2
0
    void SpawnHead(float phaseOffset)
    {
        GameObject head = Instantiate(headPrefab) as GameObject;

        head.name                    = headPrefab.name;
        head.transform.parent        = headsContainer;
        head.transform.localPosition = Vector3.zero;

        EnemyAI_GleeokHead gleeokHead = head.GetComponent <EnemyAI_GleeokHead>();

        gleeokHead.phaseOffset = phaseOffset;
        gleeokHead.neckMarker  = neckMarker;
        gleeokHead.gleeok      = this;
    }
Beispiel #3
0
    void Death(HealthController healthController, GameObject killer)
    {
        EnemyAI_Moldorm moldorm = GetComponent <EnemyAI_Moldorm>();

        if (moldorm != null)
        {
            OnMoldormDeath(moldorm);
            return;
        }

        EnemyAI_Vire vire = GetComponent <EnemyAI_Vire>();

        if (vire != null)
        {
            if (killer.name != "MagicSword_Weapon")
            {
                vire.SpawnKeese();
            }
        }

        EnemyAI_GleeokHead gleeokHead = GetComponent <EnemyAI_GleeokHead>();

        if (gleeokHead != null)
        {
            gleeokHead.gleeok.SendMessage("OnHeadDied", gleeokHead, SendMessageOptions.RequireReceiver);
        }

        EnemyAI_PatraSmall smallPatra = GetComponent <EnemyAI_PatraSmall>();

        if (smallPatra != null)
        {
            smallPatra.ParentPatra.SendMessage("OnSmallPatraDied", smallPatra, SendMessageOptions.RequireReceiver);
        }

        EnemyAI_DigdoggerSmall smallDigdogger = GetComponent <EnemyAI_DigdoggerSmall>();

        if (smallDigdogger != null)
        {
            smallDigdogger.ParentDigdogger.SendMessage("OnBabyDied", smallDigdogger, SendMessageOptions.RequireReceiver);
        }

        Enemy         e        = GetComponent <Enemy>();
        DungeonRoom   dr       = e.DungeonRoomRef;
        EnemyItemDrop itemDrop = GetComponent <EnemyItemDrop>();

        Enemy.EnemiesKilled++;
        Enemy.EnemiesKilledWithoutTakingDamage++;

        if (itemDrop != null)
        {
            itemDrop.DropRandomItem();
        }
        if (dr != null)
        {
            dr.OnRoomEnemyDied(e);
        }
        if (enemyAnim != null)
        {
            enemyAnim.PlayDeathAnimation();
        }

        SendMessage("OnEnemyDeath", SendMessageOptions.DontRequireReceiver);
    }