-
Notifications
You must be signed in to change notification settings - Fork 3
/
21834_eleplant.cos
249 lines (229 loc) · 4.05 KB
/
21834_eleplant.cos
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
**
** Elevator creator timer
**
scrp 3 1 21836 9
tick 0
inst
enum 3 1 21835
setv va00 ov00
setv va01 posl
setv va02 post
**family: 3 1 lift
new: comp 3 1 21834 "gp_eleplant_JESS" 1 0 rand 200 500
** set bhvr (act1 act2 = 3)
bhvr 3
* down(pull)/up(push)/disable
pat: butt 2 "gp_eleplant_JESS" 9 2 4 54 1 [1] 1 1
pat: butt 3 "gp_eleplant_JESS" 11 2 33 35 1 [1] 0 1
pat: butt 4 "gp_eleplant_JESS" 13 4 29 97 1 [1] 500 1
* plant/floweranim
pat: dull 5 "gp_eleplant_JESS" 1 0 78 1
pat: dull 6 "gp_eleplant_JESS" 4 0 0 1
mvto va01 va02
setv ov00 va00
setv ov01 room targ
** enabled/disabled
setv ov02 1
setv va00 grap posx posy
seta va98 targ
*animate parts
part 2
anim [0]
part 3
anim [0]
part 4
anim [0]
part 5
frat 25
anim [2 1 0 255]
part 6
frat 4
anim [0 0 0 0 0 1 2 3 4 255]
next
enum 3 1 21835
kill targ
next
endm
** Lifts
**
** LIFT EVENT SCRIPTS
**
**
*
** PULL (go down)
scrp 3 1 21834 2
lock
* Check if lift is enabled
doif ov02 ne 1
stop
endi
* Set lift variable to warp to
seta va50 targ
setv va00 ov00
setv va01 posy
setv va02 0
* Check all lifts to find one that's lower
inst
enum 3 1 21834
** check if same elevator group
doif ov00 eq va00
** check if enabled
doif ov02 eq 1
** check if posy > original lift (lower)
doif posy gt va01
** check if va02=0 or va02 greater than posy (lower lift available: take higher up one)
doif va02 eq 0 or va02 gt posy
seta va50 targ
setv va02 posy
endi
endi
endi
endi
next
targ ownr
* Check if there is an active lift under this lift
doif va02 eq 0
* If not, stim disappointment
stim writ from 0 1
urge writ from 26 -1 -1 2
else
* If yes, do stuff!
* Animate
part 2
anim [1 1]
over
anim [0 0]
* Check if comand from hand
doif from eq pntr
* animate pointer
mesg writ pntr 101
* move camera to other lift
targ va50
cmrp posx posy 1
endi
* Check if command from creature
targ from
doif fmly eq 4
targ va50
setv va00 posx
setv va01 posy
targ from
doif movs eq 0 and tmvf va00 va01 eq 1
** move creature
mvft va00 va01
** wait, stim writ travelled lift, stim writ, -go down
stim writ targ 75 1
stim writ targ 94 1
stim writ targ 52 -0.5
** Discourage from pulling elevator any further
urge writ targ 26 -2 -1 2
endi
endi
endi
unlk
endm
*
** PUSH (go up)
scrp 3 1 21834 1
lock
* Check if lift is enabled
doif ov02 ne 1
stop
endi
* Set lift variable to warp to
seta va50 targ
setv va00 ov00
setv va01 posy
setv va02 0
* Check all lifts to find one that's lower
inst
enum 3 1 21834
** check if same elevator group
doif ov00 eq va00
** check if enabled
doif ov02 eq 1
** check if posy < original lift (higher)
doif posy lt va01
** check if va02=0 or va02 smaller than posy (higher lift available: take lower one)
doif va02 eq 0 or va02 lt posy
seta va50 targ
setv va02 posy
endi
endi
endi
endi
next
targ ownr
* Check if there is an active lift above this lift
doif va02 eq 0
* If not, stim disappointment
stim writ from 0 1
urge writ from 26 -1 -1 2
else
* If yes, do stuff!
* Animate
part 3
anim [1 1]
over
anim [0 0]
* Check if comand from hand
doif from eq pntr
* animate pointer
mesg writ pntr 101
* move camera to other lift
targ va50
cmrp posx posy 1
endi
* Check if command from creature
targ from
doif fmly eq 4
targ va50
setv va00 posx
setv va01 posy
targ from
doif movs eq 0 and tmvf va00 va01 eq 1
** move creature
mvft va00 va01
** stim writ wait & travelled lift & -go up
stim writ targ 75 1
stim writ targ 94 10
stim writ targ 51 -0.5
** Discourage from pushing elevator any further
urge writ targ 26 -2 -1 2
endi
endi
endi
unlk
endm
*
** ENABLE/DISABLE
scrp 3 1 21834 500
doif ov02 eq 1
attr 16
setv ov02 0
part 4
base 2
anim [0]
else
attr 0
setv ov02 1
part 4
base 0
anim [0]
endi
endm
*
** Removal script
*
rscr
enum 3 1 21834
kill targ
next
enum 3 1 21835
kill targ
next
enum 3 1 21836
kill targ
next
scrx 3 1 21834 1
scrx 3 1 21834 2