private void OnCollisionEnter(Collision other) { BeachBall component = other.gameObject.GetComponent <BeachBall>(); BeachBallTarget.OnTargetHit(definition, component, this); if (!(component != null)) { return; } switch (definition.type) { case BeachBallTargetController.TargetType.Positive: component.EnableCollider(enable: false); onPositiveHit(); break; case BeachBallTargetController.TargetType.Negative: component.EnableCollider(enable: false); onNegativeHit(); break; case BeachBallTargetController.TargetType.Shielded: if (definition.blockerLevel > 0) { onShieldHit(); } break; } }
private void onTargetHit(BeachBallTarget.TargetDefinition definition, BeachBall ball, BeachBallTarget target) { switch (definition.type) { case TargetType.Positive: scoreTarget += definition.pointValue; target.ScorePopUp.InitFloatingScoreText(target.transform, definition.pointValue); CoroutineRunner.StopAllForOwner(target); CoroutineRunner.Start(hideVisibleTarget(target, exitDelay), target, "HideBeachBallTarget"); punchScale(target); break; case TargetType.Negative: CoroutineRunner.StopAllForOwner(target); CoroutineRunner.Start(hideVisibleTarget(target, exitDelay), target, "HideBeachBallTarget"); punchScale(target); break; case TargetType.Shielded: if (definition.blockerLevel == 0) { scoreTarget += definition.pointValue; target.ScorePopUp.InitFloatingScoreText(target.transform, definition.pointValue); CoroutineRunner.StopAllForOwner(target); CoroutineRunner.Start(hideVisibleTarget(target, exitDelay), target, "HideBeachBallTarget"); } break; } }
private void onHitTarget(BeachBallTarget.TargetDefinition definition, BeachBall ball, BeachBallTarget target) { if (ball == this) { switch (definition.type) { case BeachBallTargetController.TargetType.Positive: resetPosition(hitTarget: true); break; case BeachBallTargetController.TargetType.Negative: resetPosition(hitTarget: false); break; case BeachBallTargetController.TargetType.Shielded: break; } } }