Esempio n. 1
0
 public void OnAttack()
 {
     if (!player.IsInvicibility)
     {
         player.TakeDamage(State.AttackDamage);
     }
 }
    public void OnOrcaAttack2()
    {
        Transform Attack2Point = GameObject.Find("Attack2Point").transform;

        Attack2Point.position = new Vector3(Attack2Point.transform.position.x, Attack2Point.transform.position.y, Attack2Point.transform.position.z);

        MemoryPoolManager.Instance.CreateObject("OrcaEffect", Attack2Point.position, new Quaternion(0, 0, 0, 0));

        int layerMask;

        string PlayerLayer = "Player";

        layerMask = LayerMask.GetMask(PlayerLayer);

        Collider[] colliders = Physics.OverlapSphere(Attack2Point.position, 4.0f, layerMask);

        for (int i = 0; i < colliders.Length; ++i)
        {
            FSMPlayer player = colliders[i].GetComponent <FSMPlayer>();
            if (!player.IsInvicibility)
            {
                player.TakeDamage(250);
            }
        }
    }
    public void OnIceAge()
    {
        MemoryPoolManager.Instance.CreateObject("IceAge", this.transform);

        int layerMask;

        string PlayerLayer = "Player";

        layerMask = LayerMask.GetMask(PlayerLayer);

        Collider[] colliders = Physics.OverlapSphere(this.transform.position, 6.0f, layerMask);

        for (int i = 0; i < colliders.Length; ++i)
        {
            FSMPlayer player = colliders[i].GetComponent <FSMPlayer>();

            player.TakeDamage(player.Health.maxHP.Value);
        }
    }
    private void OnTriggerEnter(Collider other)
    {
        if (other.CompareTag("Player"))
        {
            FSMPlayer player = other.GetComponent <FSMPlayer>();

            if (player != null)
            {
                if (player.IsAvoid())
                {
                    return;
                }
                if (player.IsDead())
                {
                    return;
                }
                if (player.IsInvicibility)
                {
                    return;
                }

                if (Name != null)
                {
                    MemoryPoolManager.Instance.CreateObject(Name, transform);
                }

                player.TakeDamage(AttackDamage);

                this.gameObject.SetActive(false);
            }
        }

        //For Plasma
        if (isGroundCollision)
        {
            if (other.gameObject.layer == 8)
            {
                MemoryPoolManager.Instance.CreateObject("Plasma", transform);
                this.gameObject.SetActive(false);
            }
        }
    }