home *** CD-ROM | disk | FTP | other *** search
/ PC Gamer 13 / 1995-12_Disc_13.iso / abuse / lisp / general.lsp < prev    next >
Lisp/Scheme  |  1995-08-31  |  3KB  |  151 lines

  1. ;; Copyright 1995 Crack dot Com,  All Rights reserved
  2. ;; See licencing information for more details on usage rights
  3.  
  4. (defun pusher_cons () (set_aistate 4))
  5. (defun pusher_ai ()
  6.   (if (or (eq (total_objects) 0) (not (eq (with_object (get_object 0) (aistate)) 0)))
  7.       (progn
  8.     (next_picture)
  9.     (if (touching_bg)
  10.         (let ((xamount
  11.            (if (> (direction) 0)
  12.                (aistate)
  13.              (- 0 (aistate)))))
  14.           (with_object (bg) (try_move xamount 0)))))) T)
  15.  
  16.  
  17. (def_char PUSHER
  18.   (range 5 5)
  19.   (funs (ai_fun      pusher_ai)
  20. ;    (draw_fun    dev_draw)
  21.     (constructor pusher_cons))
  22.   (fields ("aistate" "push speed"))
  23.   (states "art/chars/push.spe"
  24.       (stopped (seq "push" 1 5))))
  25.  
  26. (defun spring_cons () (set_yvel -15))
  27. (defun spring_ai () 
  28.   (if (or (eq (total_objects) 0) (not (eq (with_object (get_object 0) (aistate)) 0)))
  29.       (select (aistate)
  30.           (0
  31.            (if (touching_bg)
  32.            (let ((add_yvel (yvel)))
  33.              (play_sound SPRING_SOUND 127 (x) (y))
  34.              (with_object (bg) 
  35.                   (progn
  36.                 (set_yvel (+ (yvel) add_yvel))
  37.                 (if (eq (gravity) 0)
  38.                     (progn
  39.                       (set_state run_jump)
  40.                       (set_gravity 1)))))
  41.          (set_state running)
  42.          (set_aistate 1))))
  43.       (1 (if (next_picture) nil
  44.            (progn
  45.          (set_aistate 0)
  46.          (set_state stopped))))))
  47.   T)
  48.  
  49.  
  50.  
  51. (def_char SPRING
  52.   (range 5 5)
  53.   (funs (ai_fun      spring_ai)
  54.     (constructor spring_cons))
  55.   (fields ("yvel" "set yvel to?"))
  56.   (states "art/misc.spe"
  57.       (stopped "spri0004.pcx")
  58.       (running (rep "spri0001.pcx" 4))))
  59.  
  60. (defun pr_draw () 
  61.   (draw_predator)
  62.  
  63.   )
  64.   
  65.  
  66. (defun train_ai ()
  67.   (if (eq (aistate) 0)
  68.       (if (activated)
  69.       (progn
  70.         (show_help (get_train_msg (aitype)))
  71.         (with_object (bg) (freeze_player 100))
  72.         (set_aistate 1)
  73.         T)
  74.     T)
  75.     (if (eq (aistate) 100)
  76.     nil
  77.       (progn
  78.     (show_help (get_train_msg (aitype)))
  79.     (set_aistate (+ (aistate) 1))
  80.     T))))
  81.  
  82.  
  83. (def_char TRAIN_MSG
  84.   (funs (ai_fun train_ai)
  85.     (draw_fun dev_draw))
  86.   (fields ("aitype" "message num"))
  87.   (states "art/misc.spe"
  88.       (stopped "bubble")))
  89.     
  90. (defun sball_damage (amount from hitx hity push_xvel push_yvel)  ; transfer damage to lower half
  91.   (if (eq (state) stopped)
  92.       (progn
  93.     (set_aistate 1)
  94.     (set_state running))))
  95.  
  96.  
  97. (def_char SWITCH_BALL
  98.   (funs (damage_fun sball_damage)
  99.     (ai_fun do_nothing))
  100.   (flags (hurtable T))
  101.   (states "art/misc.spe" 
  102.       (stopped (seq "swit" 1 9))
  103.       (running (seq "swit" 10 18))))
  104.  
  105. (def_char POINTER
  106.   (funs (ai_fun do_nothing))
  107.   (states "art/misc.spe"
  108.       (stopped "pointer")))
  109.  
  110. (defun shifter_cons () 
  111.   (set_xvel 300) 
  112.   (set_yvel 300) 
  113.   (set_xacel 0) 
  114.   (set_yacel -1))
  115.  
  116. (defun holder_ai ()
  117.   (select (total_objects)
  118.       (2 
  119.        (let ((newx (+ (with_object (get_object 1) (x)) (xvel)))
  120.          (newy (+ (with_object (get_object 1) (y)) (yvel))))
  121.          (with_obj0 (set_x newx) (set_y newy))
  122.          (set_x newx)
  123.          (set_y newy)
  124.          T))
  125.       (3  
  126.        (if (with_object (get_object 2) (not (eq (aistate) 0)))
  127.            (let ((newx (+ (with_object (get_object 1) (x)) (xvel)))
  128.              (newy (+ (with_object (get_object 1) (y)) (yvel))))
  129.          (with_obj0 (set_x newx) (set_y newy))
  130.          (set_x newx)
  131.          (set_y newy)
  132.          T)
  133.          (if (eq (xacel) 1) 
  134.          nil
  135.            T)))
  136.       (4 T)
  137.       (5 T)
  138.       (6 T)
  139.       (0 nil)
  140.       (1 nil)))
  141.   
  142.  
  143. (def_char OBJ_HOLDER
  144.   (funs (ai_fun holder_ai)
  145.     (draw_fun dev_draw))
  146.   (fields ("xvel" "x offset")
  147.       ("yvel" "y offset")
  148.       ("xacel" "delete if off (1=yes)"))
  149.   (states "art/misc.spe"
  150.       (stopped "o_hold")))
  151.