diff options
Diffstat (limited to 'lisparuga/enemy.scm')
-rw-r--r-- | lisparuga/enemy.scm | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/lisparuga/enemy.scm b/lisparuga/enemy.scm index 9213890..dd298a6 100644 --- a/lisparuga/enemy.scm +++ b/lisparuga/enemy.scm @@ -98,13 +98,12 @@ (loop (+ i 1))))))) (define-method (on-collision (enemy <enemy>) bullet bullet-polarity hitbox) - ;; TODO: Distinguish between normal play bullets and homing shots - ;; that do more damage. - ;; - ;; Same polarity = 1 point of damage - ;; Opposite polarity = 2 points of damage - (let ((same-polarity? (eq? bullet-polarity (polarity enemy)))) - (damage enemy (if same-polarity? 1 2)) + ;; Same polarity = 1x damage + ;; Opposite polarity = 2x damage + (let* ((same-polarity? (eq? bullet-polarity (polarity enemy))) + (base-damage (if (eq? bullet ikaruga-missile) 10 1)) + (multiplier (if same-polarity? 1 2))) + (damage enemy (* base-damage multiplier)) (when (and same-polarity? (dead? enemy)) (set! (fire-parting-shots? enemy) #t))) #t) |