public void take_damage(int dmg, Player.states type)
    {
        health -= dmg;
        //Vector2 enemy_screen_location = Camera.main.WorldToScreenPoint(transform.position);
        GameObject new_damage = GameObject.Instantiate(damage_text, transform.position, Quaternion.Euler(Vector3.up));

        new_damage.transform.SetParent(Camera.main.transform);
        new_damage.GetComponent <DamageTextBehaviour>().SetDamage(dmg);
        if (type == Player.states.dark)
        {
            transform.Translate(Vector2.down * 0.2f);
        }
        if (health <= 0)
        {
            GameObject new_pickup = null;
            if (powerup_value != 0)
            {
                if (type == Player.states.light)
                {
                    new_pickup = GameObject.Instantiate(dark_pickup_prefab, transform.position, transform.rotation);
                    type       = Player.states.dark;
                }
                else
                {
                    new_pickup = GameObject.Instantiate(light_pickup_prefab, transform.position, transform.rotation);
                    type       = Player.states.light;
                }
            }
            if (new_pickup != null)
            {
                new_pickup.GetComponent <Spinny>().SetPickupValue((int)powerup_value, type);
            }
            GameController.UnregisterEnemy(gameObject);
            if (spawner != null)
            {
                spawner.GetComponent <SpawnerBehaviour>().Unregister(gameObject);
            }

            //Tutorial: Count down the number of enemies to kill before door opens
            if (door != null)
            {
                door.GetComponent <TutorialDoorController>().removeEnemy();
            }
            Destroy(gameObject);
        }
    }
示例#2
0
 public void SetPickupValue(int value, Player.states type)
 {
     this.value            = value;
     this.type             = type;
     transform.localScale *= Mathf.Sqrt(value) * 1 / 5;
 }