grenade.lsp 1.58 KB
(setq GREN_SND (make-array 2 :initial-contents
			     (list (def_sound "addon/leon/sfx/gren5.wav")
				   (def_sound "addon/leon/sfx/gren6.wav"))))

(defun grenade_ai ()
  (if (eq (hp) 6)
    (set_yvel (- (yvel) 7) )
  )
  (set_yacel 3)
  (if (eq (yvel) 0 )
    (set_yvel (+ (yvel) 1) )
    nil
  )
  (let ( (xv (xvel)) (yv (yvel)) (tk (tick)) )
    (if (and (eq tk 1) (< xv 0) )
      (progn
        (set_xvel (- 0 xv) )
        (play_sound (aref GREN_SND (random 2)) 127 (x) (y))
      )
      nil
    )
    (if (and (eq tk 2) (> xv 0) )
      (progn
        (set_xvel (- 0 xv) )
        (play_sound (aref GREN_SND (random 2)) 127 (x) (y))
      )
      nil
    )
    (if (and (eq tk 4) (< yv 0) )
      (progn
        (set_yvel (* (/ yv 7) -5) )
        (set_xvel (* (/ xv 7) 5) )
        (play_sound (aref GREN_SND (random 2)) 127 (x) (y))
      )
      nil
    )
    (if (and (eq tk 8) (> yv 0) )
      (progn
        (set_yvel (- 0 yv) )
        (set_xvel (* (/ xv 7) 5) )
        (if (eq (yvel) 0 )
          (set_xvel 0)
          nil )
        (set_gravity 1)
        (play_sound (aref GREN_SND (random 2)) 127 (x) (y))
      )
      nil
    )
  )
  (if (or (> (yvel) 0) (< (yvel) 0) (> (xvel) 0) (< (xvel) 0) )
    (next_picture)
    nil
  )
  (if (> (total_objects) 0)
    (let ( (mex (x)) (mey (y)) )
      (if (with_object (get_object 0) (find_object_in_area 	(- mex 7)
  								(- mey 7)
								(+ mex 7)
								(+ mey 7) bad_guy_list))

        (set_hp 31)
        nil
      )
    )
  )
  (if (> (hp) 30)
    (progn
      (do_explo 40 36)
      nil
    )
    (progn
      (add_hp 1)
      T
    )
  )
)