* Script  9 TIMER
scrp 2 19 5 9
	doif ov02 eq 0
		doif tmod eq 4
			doif ov07 eq 0
				gsub zpop
				doif var0 gt 5
					gsub come
					setv ov02 1
					setv ov03 30
					setv attr 64
					slim
				else
					setv ov07 1
				endi
			endi
		else
			setv ov07 0
		endi
		stop
	endi
	doif ov02 eq 1
		stim sign 200 10 200 0 27 200 0 0 0 0 0 0
		gsub watr
		doif ov03 ge 30
			gsub zpop
			doif var0 le 5
				setv ov02 2
				setv attr 0
				setv ov07 1
				stop
			endi
			setv ov03 0
			setv var1 0
			setv var2 0
			setv var3 0
			inst
			loop
				star 2 20 3
				addv var1 1
				doif var1 ge 10
					setv var2 1
				endi
				doif ov02 ne 0
					setv var2 1
					setv var3 1
				endi
			untl var2 eq 1
			setv var0 targ
			slow
			doif var3 eq 1
				targ ownr
				setv ov04 var0
			else
				setv ov02 2
				setv attr 0
				setv ov07 1
				stop
			endi
		endi
		inst
		doif xist ov04 eq 1
			targ ov04
			setv var0 relx
			setv var1 rely
			setv var2 velx
			targ ownr
			setv var9 1
		endi
		slow
		doif var9 eq 1
			gsub chas
			addv ov03 1
		else
			gsub swma
			setv ov03 30
		endi
		stop
	endi
	doif ov02 eq 2
		setv var0 ov05
		subv var0 posl
		setv var1 ov06
		subv var1 post
		doif var0 ge -10
			doif var0 le 10
				doif var1 ge -10
					doif var1 le 10
						setv velx 0
						setv vely 0
						gsub swmr
						base 0
						pose 8
						setv ov02 0
						stop
					endi
				endi
			endi
		endi
		doif var0 le 0
			setv ov00 0
		else
			setv ov00 1
		endi
		doif var1 le 0
			setv ov01 0
		else
			setv ov01 1
		endi
		gsub swdf
		gsub svel
		stop
	endi
	subr come
		setv ov00 1
		rndv ov01 0 1
		gsub swmr
		gsub svel
	retn
	subr chas
		setv var9 0
		doif var0 lt 0
			doif var0 ge -140
				doif var2 gt 1
					setv var8 1
					setv var9 1
				endi
			endi
			doif var9 eq 0
				setv var8 0
			endi
		else
			doif var0 le 140
				doif var2 lt -1
					setv var8 0
					setv var9 1
				endi
			endi
			doif var9 eq 0
				setv var8 1
			endi
		endi
		doif var8 eq 0
			setv ov00 0
			gsub swml
		else
			setv ov00 1
			gsub swmr
		endi
		doif ov00 eq 0
			addv var0 182
		else
			subv var0 182
		endi
		addv var1 32
		doif var0 ge -20
			doif var0 le 20
				doif var1 ge -10
					doif var1 le 10
						gsub grab
					endi
				endi
			endi
		endi
		doif var0 lt 0
			rndv velx -2 -1
		else
			rndv velx 1 2
		endi
		doif var1 lt 0
			rndv vely -2 -1
		else
			rndv vely 1 2
		endi
		doif var0 lt -20
			subv velx 2
		endi
		doif var0 gt 20
			addv velx 2
		endi
		doif var1 lt -10
			subv vely 2
		endi
		doif var1 gt 10
			addv vely 2
		endi
		doif vely lt 0
			setv ov01 0
		else
			setv ov01 1
		endi
	retn
	subr grab
		setv velx 0
		setv vely 0
		setv attr 0
		slim
		doif ov00 eq 0
			gsub grbl
		else
			gsub grbr
		endi
		setv attr 64
		slim
	retn
	subr grbl
		base 16
		inst
		pose 0
		mvby -124 0
		slow
		anim [123456]
		over
		setv var0 0
		enum 2 20 3
			doif var0 eq 0
				doif relx ge -140
					doif relx le -70
						doif rely ge -42
							doif rely le -22
								setv velx 0
								setv vely 0
								tick 0
								mesg writ targ 4
								setv var0 1
							endi
						endi
					endi
				endi
			endi
		next
		base 23
		anim [01234]
		snde grab
		over
		etch 2 20 3
		doif tcar eq ownr
			snde gulp
			kill targ
			setv var0 1
		endi
	next
	doif var0 eq 1
		setv ov03 30
	endi
	anim [5678]
	over
	base 0
	anim [0]
	mvby 124 0
retn
subr grbr
	base 32
	anim [0123456]
	over
	setv var0 0
	enum 2 20 3
		doif var0 eq 0
			doif relx ge 70
				doif relx le 140
					doif rely ge -42
						doif rely le -22
							setv velx 0
							setv vely 0
							tick 0
							mesg writ targ 4
							setv var0 1
						endi
					endi
				endi
			endi
		endi
	next
	base 39
	anim [01234]
	snde grab
	over
	etch 2 20 3
	doif tcar eq ownr
		snde gulp
		kill targ
		setv var0 1
	endi
next
doif var0 eq 1
	setv ov03 30
endi
anim [5678]
over
base 8
anim [0]
retn
subr swma
	rndv var0 0 9
	doif var0 eq 9
		gsub rndd
	endi
	gsub coll
	gsub swdf
	gsub svel
retn
subr rndd
	rndv ov00 0 1
	rndv ov01 0 1
retn
subr coll
	doif ov00 eq 0
		doif obst 0 lt 50
			setv ov00 1
		endi
	endi
	doif ov00 eq 1
		doif obst 1 lt 50
			setv ov00 0
		endi
	endi
	doif ov01 eq 0
		setv var0 0
		doif obst 2 lt 50
			setv var0 1
		endi
		doif rtyp ne 2
			setv var0 1
		endi
		doif var0 eq 1
			setv ov01 1
		endi
	endi
	doif ov01 eq 1
		doif obst 3 lt 50
			setv ov01 0
		endi
	endi
retn
subr swdf
	doif ov00 eq 0
		gsub swml
	else
		gsub swmr
	endi
retn
subr svel
	doif ov00 eq 0
		rndv velx -2 -1
	else
		rndv velx 1 2
	endi
	doif ov01 eq 0
		rndv vely -2 -1
	else
		rndv vely 1 2
	endi
retn
subr zpop
	setv var0 0
	esee 2 20 3
	doif ov02 ne 0
		addv var0 1
	endi
next
retn
subr swml
	base 0
	doif pose ge 8
		base 48
		anim [3210]
		over
	endi
	base 0
	anim [12345670R]
retn
subr swmr
	base 0
	doif pose le 7
		base 48
		anim [1234]
		over
	endi
	base 8
	anim [12345670R]
retn
subr watr
	doif rtyp ne 2
		setv attr 192
		setv grav 1
		loop
			wait 1
		untl rtyp eq 2
		setv grav 0
		setv attr 64
	endi
retn
endm

