1 ;; landslide -- shake the map, drop some boulders, and damage any non-flying,
2 ;; non-phasing beings that get hit.
3 (define (drop-rock-on kbeing)
4 (cond ((and (not (can-fly? kbeing))
5 (not (can-phase? kbeing)))
6 (kern-log-msg (kern-obj-get-name kbeing)
7 " hit by falling rock!")
8 (kern-obj-apply-damage kbeing
10 (kern-dice-roll "1d10")))
13 (define (drop-boulder x loc)
14 (cond ((<= (modulo (random-next) 100) 50)
15 (kern-place-set-terrain loc t_boulder)
16 (map drop-rock-on (get-beings-at loc))
19 (define (landslide kbeing x y w h)
20 (kern-log-msg "LANDSLIDE!")
22 (foldr-rect (loc-place (kern-obj-get-location kbeing))
31 (define (mk-landslide x y w h)
32 (mk-step-trig 'landslide x y w h))