void OnControllerColliderHit(ControllerColliderHit hit)
    {
        if (hit.gameObject.layer == LayerMask.NameToLayer("Item"))
        {
            ItemInterface item = (ItemInterface)hit.gameObject.GetComponent(typeof(ItemInterface));
            item.get();
            return;
        }

        Rigidbody body = hit.collider.attachedRigidbody;

        if (hit.gameObject.layer == LayerMask.NameToLayer("Enemy"))
        {
            Debug.Log("Enemy");
            EnemyInterface enemy = (EnemyInterface)hit.gameObject.GetComponent(typeof(EnemyInterface));
            int            dmg   = enemy.getEnemyDamage();
            gameManager.plusPower(-dmg);
        }

        if (body == null || body.isKinematic)
        {
            return;
        }


        if (hit.gameObject.layer == LayerMask.NameToLayer("Pushable"))
        {
            body.AddForceAtPosition(Vector3.down * pushPower, hit.point);
        }
    }
Beispiel #2
0
    //stunning
    void HandleStunning()
    {
        if (possessing == false)
        {
            if (Input.GetMouseButtonDown(0))
            {
                usingAbility = true;

                mousePosition = Camera.main.ScreenToWorldPoint(Input.mousePosition);
                relativeMouse = mousePosition - transform.position;

                stunEffect.SetActive(true);
                stunEffectDuration            = 0.25f;
                stunEffect.transform.rotation = Quaternion.LookRotation(relativeMouse.normalized, Vector3.forward);

                stunHit = Physics2D.Raycast(transform.position, new Vector2(relativeMouse.x, relativeMouse.y).normalized, stunRange, possessMask);

                if (stunHit.collider != null)
                {
                    source.clip = clips[2];
                    source.Play();
                    EnemyInterface enemy = stunHit.transform.gameObject.GetComponent <EnemyInterface>();
                    enemy.stunned = true;

                    stunHit.transform.gameObject.GetComponent <Rigidbody2D>().mass *= 10;

                    enemy.StartCoroutine(enemy.Unstun());


                    stunHit.transform.gameObject.GetComponent <Animator>().SetBool("stunned", true);
                }
            }
        }
    }
 public override void Start()
 {
     base.Start();
     rg            = GetComponent <Rigidbody2D>();
     enemBehaviour = GetComponent <EnemyInterface>();
 }
Beispiel #4
0
 // Use this for initialization
 void Start()
 {
     player = GameObject.FindGameObjectWithTag("Player").transform;
     enemy  = transform.parent.gameObject;
     script = enemy.GetComponent(typeof(EnemyInterface)) as EnemyInterface;
 }