Example #1
0
    private void OnTriggerEnter2D(Collider2D col)
    {
        GameObject objectHit = col.gameObject;

        if (objectHit != null)
        {
            RecieveDamage objectRecieveDamage = objectHit.GetComponent <RecieveDamage>();

            if (objectRecieveDamage != null)
            {
                print("City killed " + objectHit.name);

                PlayerHealthSystem pHeathSyst = objectHit.gameObject.GetComponent <PlayerHealthSystem>();

                if (pHeathSyst != null && !pHeathSyst.isDead)
                {
                    pHeathSyst.KillPlayer();
                }
                else
                {
                    objectRecieveDamage.GetHit(Vector2.left, 100f, 0, 0, 0);
                }

                PlayVariedOneShot(crushSound, crushVolume, false);
            }
            else
            {
                print("City ran over " + objectHit.name);
                SmashingWallEffect(objectHit.transform.position);
                PlayVariedOneShot(smashSound, smashVolume, true);
            }
        }
    }
Example #2
0
 private void Hitting(GameObject other)
 {
     if (IsOtherUnitWeapon(other))
     {
         RecieveDamage component = GetRecieveDamageComponent(other);
         component.DamageCalculation(this);
         attackEvent.Invoke();
     }
 }
    public virtual void OnTriggerExit2D(Collider2D other)
    {
        pRecieveDamage = other.GetComponent <RecieveDamage>();

        if (pRecieveDamage != null)
        {
            pRecieveDamage = null;
        }
    }
    public virtual void OnTriggerEnter2D(Collider2D other)
    {
        if (other.gameObject.tag == "Player")
        {
            pRecieveDamage = other.GetComponent <RecieveDamage>();

            if (pRecieveDamage == null)
            {
                Debug.LogWarning("No RecieveDamage component attached to player!");
            }
        }
    }
Example #5
0
    // Check to see if the player has left the trigger zone to get the sand ostrich back in to its hole
    // Set the target as null
    private void OnTriggerExit2D(Collider2D other)
    {
        pRecieveDamage = other.GetComponent <RecieveDamage>();

        if (pRecieveDamage != null)
        {
            print("go in hole");
            isTracking     = false;
            isInHole       = true;
            pRecieveDamage = null;
            target         = null;
            PlayOneShotAudio(enterExitSound, enterExitVolume);
            animator.SetTrigger("isGoingInHole");
        }
    }
Example #6
0
    // << ------------------------------------- CHECK FOR PROXIMITY -------------------------------- >> //

    // Check to see if the player has entered the trigger zone to get the sand ostrich out of its hole
    // Set the player as the target to be tracked
    private void OnTriggerEnter2D(Collider2D other)
    {
        pRecieveDamage = other.GetComponent <RecieveDamage>();

        if (pRecieveDamage != null)
        {
            if (isInHole)
            {
                target   = pRecieveDamage.gameObject;
                isInHole = false;
                PlayOneShotAudio(enterExitSound, enterExitVolume);
                animator.SetTrigger("isExitingHole");
                isTracking = true;
            }
        }
    }
Example #7
0
    // << --------------------------------------- COMBAT -------------------------------- >> //

    // Called from inside the animator during the "SandOstrich_Hit" animation
    // Cast happens when the sand ostrich's head swings back after being punched.
    public void PeckAtPlayerCast()
    {
        if (!objectHit)
        {
            RaycastHit2D[] hits = Physics2D.CircleCastAll(hitBoxPos.position, 0.5f, direction, 0.5f, playerLayerMask);
            foreach (RaycastHit2D hit in hits)
            {
                RecieveDamage hitObj = hit.collider.gameObject.GetComponent <RecieveDamage>();

                if (hitObj != null)
                {
                    print("hit: " + hitObj.name);

                    hitObj.GetComponent <RecieveDamage>().GetHit(direction, damageOutput, knockBack, knockUp, stunTime);
                    objectHit = true; // prevents enemy attacking the player every frame - gets reset in AfterAttackCooldown()
                    AttackCoolDown();
                }
            }
        }
    }
Example #8
0
    // << ------------------------------------- COLLISION CHECKS -------------------------------- >> //

    public void CastForPlayer() // Called every frame when in Attacking state
    {
        if (!objectHit)         // prevents enemy attacking the player every frame - gets reset in AfterAttackCooldown()
        {
            RaycastHit2D[] hits = Physics2D.CircleCastAll(hitBoxPos.position, 0.35f, direction, 0f, playerLayerMask);
            foreach (RaycastHit2D hit in hits)
            {
                RecieveDamage hitObj = hit.collider.gameObject.GetComponent <RecieveDamage>();

                if (hitObj != null)
                {
                    hitObj.GetComponent <RecieveDamage>().GetHit(direction, damageOutput, knockBack, knockUp, stunTime);
                    objectHit = true;
                    AfterAttackCooldown();
                }
                else
                {
                    Debug.Log("No Recieve Damage component on player!");
                }
            }
        }
    }
    public void CastForEnemies()
    {
        if (canCast)
        {
            Vector2        punchDir = pCon.spriteRenderer.flipX ? Vector2.left : Vector2.right;
            RaycastHit2D[] hits     = Physics2D.BoxCastAll(gameObject.transform.position, boxCast, 0, punchDir, castDistance, interactableLayerMask);

            //if (!isCasting)
            //{
            //    GameObject hitBox = GameObject.CreatePrimitive(PrimitiveType.Cube);
            //    hitBox.name = "PUNCH BOX";
            //    hitBox.transform.localScale = new Vector3(boxCast.x / 2 + castDistance, boxCast.y, 1);
            //    hitBox.transform.position = gameObject.transform.position + (Vector3)(punchDir) * hitBox.transform.localScale.x / 2;
            //    hitBox.transform.SetParent(gameObject.transform);


            //    isCasting = true;
            //    StartCoroutine(DestroyHitBox(hitBox));
            //}

            foreach (RaycastHit2D hit in hits)
            {
                RecieveDamage recieveDamage = hit.collider.gameObject.GetComponent <RecieveDamage>();

                if (recieveDamage != null && !hit.collider.isTrigger)
                {
                    print("hit: " + recieveDamage.name);
                    pAudio.PlayConnectSound(currentAttackNum);
                    recieveDamage.GetHit(punchDir, damage, knockback, knockup, stunTime);

                    canCast = false;
                    //pCon.PlayerKnocked(-pCon.accessibleDirection, 20, 0f, 0.2f);
                }
            }
        }
    }
Example #10
0
 private void Start()
 {
     DamageInfo = GetComponent <RecieveDamage>();
     Enemy      = (EnemyBaseData)DamageInfo.UnitStats;
 }