public void SpecialHit(HitQuality points) { specialSound.Play(); if (specialMultiplier <= multiplierThresholds.Length) { specialMultiplier++; } Hit(points); }
private void updateHitQuality() { if (!collision) { hitQuality = HitQuality.NULL; return; } float x = Mathf.Abs(transform.position.x - collisionObject.transform.position.x); if (x > 0.03) { hitQuality = HitQuality.NORMAL; } else if (x > 0.02) { hitQuality = HitQuality.GOOD; } else if (x <= 0.01) { hitQuality = HitQuality.PERFECT; } }
public void Hit(HitQuality points) { switch (points) { case HitQuality.NORMAL: break; case HitQuality.GOOD: spawnEffect(goodEffect, new Color(0.8f, 0.8f, 0.15f)); break; case HitQuality.PERFECT: particles.Play(); spawnEffect(perfectEffect, new Color(1f, 1f, 0.2f)); break; } hitStreak++; if (multiplier <= multiplierThresholds.Length && hitStreak >= multiplierThresholds[multiplier - 1]) { multiplier++; } score += multiplier * (int)points + specialMultiplier * (int)points; }