* Script  9 TIMER
scrp 2 20 3 9
	tick 10
	doif ov02 eq 3
		kill ownr
	endi
	doif ov02 eq 4
		gsub crot
		kill ownr
	endi
	gsub cage
	gsub stat
	gsub pegg
	gsub cegg
	doif rtyp ne 2
		gsub sgrv
	else
		gsub addr
		doif ov00 eq 1
			gsub scho
		endi
		gsub rock
		gsub food
		gsub limv
		gsub anmt
		setv velx ov50
		setv vely ov51
		doif ov02 gt 0
			rndv var0 0 4
			doif var0 eq 0
				gsub bubb
			endi
		endi
	endi
	subr crot
		setv var0 posl
		setv var1 post
		base 0
		doif pose le 7
			setv var2 0
		else
			setv var2 1
		endi
		inst
		new: simp zand 2 32 5999 0
		setv cls2 2 11 6
		setv attr 195
		setv rest 100
		setv accg 3
		setv puhl -1 15 13
		base 0
		pose var2
		mvto var0 var1
		setv grav 1
		tick 1000
		slow
	retn
	subr cage
		doif seav eq ov04
			addv ov04 5
			modv ov04 20
			subv ov03 1
			doif ov03 le 0
				doif ov02 eq 0
					setv ov03 14
					setv puhl -1 16 8
					bhvr 0 64
				endi
				doif ov02 eq 1
					setv ov03 4
				endi
				doif ov02 eq 2
					pose 0
					setv attr 195
					setv grav 1
					setv ov02 4
					tick ov11
					stop
				endi
				addv ov02 1
			endi
		endi
	retn
	subr stat
		doif ov00 eq 0
			doif sean eq 1
				doif seav eq 15
					setv ov00 1
				endi
			endi
		endi
	retn
	subr pegg
		doif sean eq 2
			doif seav eq 0
				doif ov00 eq 1
					rndv ov01 1 2
					gsub zpop
					doif var1 le 3
						addv ov01 2
					endi
					setv ov00 0
				endi
			endi
		endi
	retn
	subr zpop
		setv var1 0
		setv rnge 1000
		esee 2 20 3
		addv var1 1
	next
	setv rnge 40
retn
subr cegg
	doif ov01 gt 0
		setv var0 posx
		setv var1 posy
		inst
		new: simp zand 1 34 5999 0
		setv cls2 2 20 7
		setv attr 195
		rndv accg 3 5
		setv rest 0
		setv rnge 1000
		setv size 20
		mvto var0 var1
		slim
		setv grav 1
		tick 50
		slow
		targ ownr
		subv ov01 1
	endi
retn
subr sgrv
	negv ov51
	setv attr 195
	setv grav 1
	setv var0 0
	loop
		doif obst 3 le 0
			rndv var1 -10 10
			setv velx var1
			setv vely -5
			doif velx lt 0
				doif ov02 eq 0
					base 16
				else
					base 0
				endi
			else
				doif ov02 eq 0
					base 24
				else
					base 8
				endi
			endi
		endi
		wait 1
		addv var0 1
		doif var0 ge 300
			doif ov02 eq 0
				setv ov02 3
				pose 0
				tick 100
			else
				setv ov02 4
				pose 0
				tick ov11
			endi
			stop
		endi
	untl rtyp eq 2
	setv grav 0
	setv attr 67
	tick 1
retn
subr addr
	rndv var1 0 9
	doif var1 ge 6
		setv var0 -1
	else
		setv var0 1
	endi
	doif ov50 lt 0
		negv var0
	endi
	addv ov50 var0
	rndv var1 0 8
	doif var1 ge 4
		setv var0 -1
	else
		setv var0 1
	endi
	doif ov51 lt 0
		negv var0
	endi
	addv ov51 var0
retn
subr scho
	gsub gdat
	doif var9 gt 0
		setv ov50 0
		setv ov51 0
		gsub cent
		gsub near
		gsub velo
	endi
retn
subr gdat
	setv var0 0
	setv var1 0
	setv var2 0
	setv var3 0
	setv var4 rnge
	mulv var4 3
	setv var5 0
	setv var6 0
	setv var9 0
	esee 2 20 3
	doif attr eq 67
		addv var0 relx
		addv var1 rely
		setv var7 var0
		doif var7 lt 0
			negv var7
		endi
		setv var8 var1
		doif var8 lt 0
			negv var8
		endi
		addv var7 var8
		doif var7 lt var4
			setv var4 var7
			setv var2 var0
			setv var3 var1
		endi
		addv var5 velx
		addv var6 vely
		addv var9 1
	endi
next
retn
subr cent
	divv var0 var9
	divv var1 var9
	divv var0 30
	divv var1 30
	addv ov50 var0
	addv ov51 var1
retn
subr near
	doif var2 eq 0
		setv var2 1
	endi
	doif var3 eq 0
		setv var3 1
	endi
	setv var0 -5
	divv var0 var2
	doif var0 gt 2
		setv var0 2
	endi
	setv var1 -5
	divv var1 var3
	doif var1 gt 2
		setv var0 2
	endi
	addv ov50 var0
	addv ov51 var1
retn
subr velo
	divv var5 var9
	divv var6 var9
	setv var0 var5
	doif var0 lt 0
		negv var0
	endi
	setv var1 var6
	doif var1 lt 0
		negv var1
	endi
	addv var0 var1
	doif var0 eq 0
		setv var0 1
	endi
	mulv var5 8
	mulv var6 8
	divv var5 var0
	divv var6 var0
	addv ov50 var5
	addv ov51 var6
	divv ov50 2
	divv ov51 2
retn
subr rock
	doif obst 0 lt 20
		rndv ov50 1 2
	endi
	doif obst 1 lt 20
		rndv ov50 -2 -1
	endi
	doif obst 2 lt 20
		rndv ov51 1 2
	endi
	doif obst 3 lt 20
		rndv ov51 -2 -1
	endi
retn
subr food
	setv var9 0
	setv rnge 500
	esee 2 9 14
	doif ov00 eq 2
		setv var0 relx
		setv var1 rely
		setv var9 1
	endi
next
setv rnge 40
doif var9 eq 1
	doif var0 lt 0
		subv ov50 10
	else
		addv ov50 10
	endi
	doif var1 lt -116
		subv ov51 10
	else
		addv ov51 10
	endi
endi
retn
subr limv
	setv var0 ov50
	doif var0 lt 0
		negv var0
	endi
	setv var1 ov51
	doif var1 lt 0
		negv var1
	endi
	addv var0 var1
	doif var0 ge 5
		mulv ov50 5
		mulv ov51 5
		divv ov50 var0
		divv ov51 var0
	endi
	doif ov51 gt 1
		setv ov51 1
	endi
	doif ov51 lt -1
		setv ov51 -1
	endi
	doif ov50 eq 0
		rndv var0 0 1
		doif var0 eq 0
			setv ov50 -1
		else
			setv ov50 1
		endi
	endi
	doif ov51 eq 0
		rndv var0 0 1
		doif var0 eq 0
			setv ov51 -1
		else
			setv ov51 1
		endi
	endi
	rndv var0 0 1
	doif var0 gt 0
		setv ov51 0
	endi
retn
subr anmt
	doif ov50 lt 0
		doif ov02 eq 0
			base 16
		else
			base 0
		endi
	endi
	doif ov50 gt 0
		doif ov02 eq 0
			base 24
		else
			base 8
		endi
	endi
retn
subr bubb
	setv var0 posl
	doif ov50 lt 0
		subv var0 13
	else
		addv var0 21
	endi
	setv var9 ov50
	mulv var9 2
	addv var0 var9
	setv var1 post
	subv var1 12
	setv var9 ov51
	mulv var9 2
	addv var1 var9
	reps 10
		rtar 2 1 28
		doif ov00 eq 0
			mesg wrt+ targ 256 var0 var1 0
			stop
		endi
	repe
retn
endm

* Script 
scrp 2 20 3 12
	stim writ from 10 255 0 0 36 75 37 150 74 50 79 150
	gsub crot
	kill ownr
	subr crot
		setv var0 posl
		setv var1 post
		base 0
		doif pose le 7
			setv var2 0
		else
			setv var2 1
		endi
		inst
		new: simp zand 2 32 5999 0
		setv cls2 2 11 6
		setv attr 195
		setv rest 100
		setv accg 3
		base 0
		pose var2
		mvto var0 var1
		setv grav 1
		tick 1000
	retn
endm
