Example #1
0
 public void Crash(Vector2 hit)
 {
     if (playerController.crashing && canCrash)
     {
         GetComponent <AudioSource>().Play();
         playerController.crashing = false;
         pushCol = Physics2D.OverlapCircleAll(hit, explosionRadious * playerController.rbBody.transform.localScale.x, colMask);
         foreach (var collidedWith in pushCol)
         {
             var cf = collidedWith.GetComponent <CrashForce>();
             if (cf != null && cf != this)
             {
                 cf.canCrash = false;
                 StartCoroutine(cf.ResetCrashTimer(1.0f));
                 var rb      = cf.gameObject.GetComponent <Rigidbody2D>();
                 var otherpc = cf.GetComponentInParent <PlayerConroller>();
                 wc.UseWeapon(otherpc);
                 otherpc.ChangeMaxVelocity();
                 rb.AddExplosionForce(playerController.GetExplosionForce(), mode: ForceMode2D.Impulse, explosionPosition: hit);
                 playerController.rbBody.velocity = Vector3.zero;
             }
         }
         var go = Instantiate(explosion, hit, Quaternion.identity);
         go.transform.localScale *= playerController.rbBody.transform.localScale.x;
         canCrash = false;
         StartCoroutine(ResetCrashTimer(1.0f));
     }
     playerController.crashBonus = 1.0f;
 }