source: abuse/trunk/data-frabs/addon/leon/lisp/rain.lsp @ 582

Last change on this file since 582 was 582, checked in by Sam Hocevar, 10 years ago

data: remove \r and trailing spaces and tabs from all Lisp sources.

File size: 3.8 KB
Line 
1(defun rand_draw()
2  (let ( (x (x) ) (y (y) ) )
3    (set_x (- (+ x (random 16) ) 8) )
4    (set_y (- (+ y 3 ) (random 3) ) )
5    (draw)
6    (set_x x)
7    (set_y y)
8  )
9)
10
11(defun rain_cons ()
12  (set_fade_count 5)
13)
14
15(def_char RAIN
16  (funs (ai_fun do_nothing)
17        (constructor rain_cons)
18        (draw_fun   rand_draw))
19;;        (reload_fun lower_reload))
20  (flags (add_front T) )
21  (states "addon/leon/rain.spe"  (stopped (seq "rain" 1 4))))
22
23(def_char STILLRAIN
24  (funs (ai_fun do_nothing)
25        (reload_fun lower_reload))
26  (states "addon/leon/rain.spe"  (stopped (seq "rain" 1 4))))
27
28(defun lightning_ai()
29  (if (not (activated))
30    (set_aistate 4)
31  )
32
33  (select (aistate)
34    (0
35      (set_yvel (+ 100 (random 500) ) )
36      (set_yacel (random 3) )
37      (set_aistate 6)
38    )
39    (4 (if (activated)
40         (go_state 0)
41       )
42    )
43    (6 (if (eq (state_time) (yvel) )
44         (progn
45           (add_object THUNDER (with_object (bg) (x)) (with_object (bg) (y)))
46           (set_aistate 2)
47         )
48      )
49    )
50    (1 (if (eq (state_time) (yvel) )
51         (set_aistate 2)
52      )
53    )
54    (2 (set_yvel (+ 0 (random 2) ) )
55       (set_xvel (get_light_value) )
56       (set_light_value (+ (xvel) (+ 35 (random 15) ) ) )
57;;       (with_object (bg) (make_view_solid (find_rgb 192 192 255)) )
58       (set_aistate 3)
59    )
60    (3 ;; (with_object (bg) (make_view_solid (find_rgb 192 192 255)) )
61       (set_light_value (+ (xvel) (+ 15 (random 13) ) ) )
62       (if (eq (state_time) (yvel) )
63         (if (eq (yacel) 0)
64           (set_aistate 5)
65           (progn
66             (set_yacel (- (yacel) 1 ) )
67             (set_light_value (xvel) )
68             (set_yvel (+ 1 (random 2) ) )
69             (set_aistate 1)
70           )
71         )
72       )
73    )
74    (5
75       (set_light_value (xvel) )
76       (set_aistate 0)
77    )
78  )
79 T
80)
81
82(def_char LIGHTNING
83  (funs (ai_fun          lightning_ai)
84        (draw_fun        dev_draw))
85  (range 4000 4000)
86  (states "art/misc.spe"
87          (stopped "latter")))
88
89(setq THUNDER_SOUNDS (make-array 5 :initial-contents (list
90                               (def_sound "addon/leon/sfx/thunder.wav")   ;; 0
91                               (def_sound "addon/leon/sfx/thunder2.wav")   ;; 1
92                               (def_sound "addon/leon/sfx/thunder3.wav")   ;; 2
93                               (def_sound "addon/leon/sfx/thunder4.wav")  ;; 3
94                               (def_sound "addon/leon/sfx/thunder5.wav")   ;; 4
95                               )))
96
97(defun thunder_ai()
98  (if (eq (state_time) 20)
99    (play_sound (aref THUNDER_SOUNDS (random 5) ) 127 (x) (y))
100    T
101  )
102)
103
104(def_char THUNDER
105  (funs (ai_fun          thunder_ai)
106        (draw_fun        dev_draw))
107  (range 200 200)
108  (flags (unlistable T))
109  (states "art/misc.spe"
110          (stopped "latter")))
111
112(setq RAIN_SOUNDS (make-array 4 :initial-contents (list
113                               (def_sound "addon/leon/sfx/rain.wav")   ;; 0
114                               (def_sound "addon/leon/sfx/rain2.wav")   ;; 1
115                               (def_sound "addon/leon/sfx/rain3.wav")   ;; 2
116                               (def_sound "addon/leon/sfx/rain4.wav")  ;; 3
117                               )))
118
119(defun rain_sound_ai ()
120  (if (eq (aistate) 0)
121    (progn
122      (play_sound (aref RAIN_SOUNDS (random 4) ) 127 (x) (y))
123      (set_aistate 28)
124    )
125    (set_aistate (- (aistate) 1) )
126  )
127)
128
129(def_char RAIN_SND
130  (funs (ai_fun          rain_sound_ai)
131        (draw_fun        dev_draw))
132  (range 200 200)
133  (states "art/misc.spe"
134          (stopped "sfx_player")))
135
136(defun raincolumn_ai()
137  (if (eq (yvel) 20)
138    nil
139    (progn
140      (if (eq (xvel) 2)
141        (set_xvel 0)
142        (set_xvel 2)
143      )
144      (set_yvel (+ (yvel) 1) )
145      (set_y (+ (y) 30) )
146      (let ( (xv (xvel) ) )
147        (with_object (add_object RAIN (x) (y))
148          (set_current_frame xv)
149        )
150      )
151      (raincolumn_ai)
152    )
153  )
154)
155
156(def_char RAIN_COLUMN
157  (funs (ai_fun          raincolumn_ai)
158        (draw_fun        dev_draw))
159  (range 40 4000)
160  (states "art/misc.spe"
161          (stopped "marker")))
Note: See TracBrowser for help on using the repository browser.