* 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
