private void SuperHit() { Debug.Log("doing super hit"); playerStatsLogic.powerUpModeActive = PowerUpType.SUPERHIT; touch.SetDisableMovment(); movmentLogic.ResetRotation(); animationLogic.SetDashing(); LeanTween.cancel(character.gameObject, true); // var playerPosition = character.transform; var enemies = GameObject.FindGameObjectsWithTag("Enemy"); LeanTween.pauseAll(); Time.timeScale = 0f; originalStr = playerStatsLogic.Strength; playerStatsLogic.Strength = 100; Stack <GameObject> enemiesObject = new Stack <GameObject>(); foreach (var enemy in enemies) { if (insideScreen(enemy.transform)) { enemiesObject.Push(enemy); var enemyCollider = enemy.GetComponent <Collider2D>(); enemyCollider.enabled = false; } } punchEnemies(enemiesObject); if (enemiesObject.Count == 0) { finishedSuperHit(); } }
public void playerCollideWithEnemy(CollisionModel model) { if (playerStatsLogic.powerUpModeActive == PowerUpType.SUPERHIT) { playerStatsLogic.resetDash(); playerStatsLogic.addOneToCombo(); return; } movmentLogic.ResetRotation(); LeanTween.cancel(model.mainCollider.gameObject, true); //to remove secondary collisions if (model.CollidedWith != null) { Physics2D.IgnoreCollision(model.CollidedWith.GetComponent <Collider2D> (), model.mainCollider.GetComponent <Collider2D> ()); } var enemyPosition = model.CollidedWith.transform.position; var playerPosition = model.mainCollider.transform.position; var VectorForce = (Vector2)((playerPosition - enemyPosition).normalized); soundLogic.playSliceSound(); //if player hit some1 than he get back is dashes playerStatsLogic.resetDash(); playerStatsLogic.addOneToCombo(); //building path var sign = VectorForce.x > 0 ? 1 : -1; Vector3[] path = new Vector3[] { new Vector3(playerPosition.x + (-2.697063f * sign), playerPosition.y), new Vector3(playerPosition.x + (-1.397063f * sign), playerPosition.y + 5.108706f), new Vector3(playerPosition.x + (0.397063f * sign), playerPosition.y + 6.408706f), new Vector3(playerPosition.x + (1f * sign), playerPosition.y + 7.749998f), }; LeanTween.move(model.mainCollider.gameObject, path, impactTimeOnPlayer).setOnComplete(() => { stopAfterBounce(new StopAfterCollisionModel { collidedWith = model.CollidedWith.gameObject, subject = model.mainCollider.GetComponent <Rigidbody2D> () }); }); rollOver(model.mainCollider); animationLogic.UnSetDashing(); animationLogic.SetSlicing(); }