Example #1
0
    private void OnCollisionEnter2D(Collision2D collision)
    {
        if (ramming)
        {
            if (!(collision.gameObject.layer == GlobalVariables.WALL_LAYER_INDEX))
            {
                if (!(collision.gameObject.GetComponent <LockableDoor>() != null))
                {
                    if (collision.gameObject.GetComponent <PlayerCharacter>() == null)
                    {
                        if ((collision.gameObject.transform.parent != null) &&
                            (collision.gameObject.transform.parent.parent != null) &&
                            (collision.gameObject.transform.parent.parent.gameObject.GetComponent <LockableDoor>() == null))
                        {
                            return;
                        }
                    }
                }
            }

            //if hit player, deal damage to player
            if (collision.gameObject.layer == GlobalVariables.PLAYER_LAYER_INDEX)
            {
                PlayerCharacter.instance.DamagablePlayer.ModifyHealth(-damage, DamageType.Physical);
                //play ram hit sound
                ramHitSfx.Play();
            }

            ramming = false;
            BossOwner.YieldPriority();
            rbody.velocity = Vector2.zero;
            CombatHandler.WalkingSuspended = false;
        }
    }
Example #2
0
 protected override void ExecuteInnerWorkings()
 {
     ramming = true;
     BossOwner.AquirePriority();
     rammingVector.Normalize();
     StartCoroutine(DashTowards(rammingVector));
 }
 public override void ExecuteAbility()
 {
     if (!BossOwner.IsPriorityTaken())
     {
         CombatHandler.WalkingSuspended = true;
         base.ExecuteAbility();
     }
 }
 protected override void ExecuteInnerWorkings()
 {
     if (!BossOwner.IsPriorityTaken())
     {
         BossOwner.AquirePriority();
         Animator anim = GetComponent <Animator>();
         anim.SetTrigger("coneChainAbility");
     }
 }
 //this is used as event call on animation
 public void YieldAbilityPrio()
 {
     CombatHandler.WalkingSuspended = false;
     BossOwner.YieldPriority();
 }