**12-08-2022 addendum: this is disabled by default because it's really obnoxious 
**and gets in the way of the stuff that's actually interesting with no way to mitigate it
**to re-enable it, move it back into 010 Docking Station

**SPOOKY UNTESTED SORROW CODE

**Spawn a whole bunch of them all over the freaking place.
inst
reps 100
	loop
		addv va02 1
		setv va00 rand 0 1213
		setv va01 rand 0 1280
		new: simp 2 20 1 "sorrow" 15 0 5000
		doif tmvt va00 va01 eq 1
			attr 80
			velo rand -10 10 rand -10 10
			tick rand 40 60
			frat 2
			anim [0 1 2 1 255]
			rnge 200
			mvsf va00 va01
			setv va03 1
		else
			kill targ
		endi
	untl va03 eq 1 or va02 eq 10000
repe

scrp 2 20 1 9
	inst
	velo rand -10 10 rand -10 10

**If it's in the presence of sufficient light or unreasonable numbers of other clouds, be destroyed.
	esee 2 20 1
		addv va01 1
	next

	doif prop grap posx posy 1 ge 0.01 or va01 gt 10
**Get rid of the light and dissipate.
		altr grap posx posy 1 -0.01
		anim [3 4 5 6]
		over
		kill ownr
		stop
**Else if there's no light, try to do spooky sorrow stuff.
	else

**If it's touching a creature, be absorbed.
		ttar 4 0 0
		doif targ ne null
			doif crea targ eq 1
				chem 77 1
				targ ownr
				anim [3 4 5 6]
				over
				kill ownr
				stop
			endi
		else
			targ ownr
		endi
**Make sure there aren't too many clouds around.
		esee 2 20 1
			addv va01 1
		next
**And make sure to check the other side of doors as well so you're not committing atrocities all day.
		esee 2 2 1
			targ ov00
			esee 2 20 1
				addv va01 1
			next
		next
		esee 3 1 1
			seta va00 targ
			doif type ov00 ne 0
				targ ov00
				esee 2 20 1
					addv va01 1
				next
			endi
			targ va00
			doif type ov05 ne 0
				targ ov05
				esee 2 20 1
					addv va01 1
				next
			endi
		next
**If it's okay to multiply, do so.
		doif va01 le 5
			inst
			targ ownr
			setv va02 posl
			setv va03 post
			new: simp 2 20 1 "sorrow" 7 0 5000
			pose 6
			mvsf va02 va03
			attr 80
			velo rand -10 10 rand -10 10
			tick rand 40 60
			rnge 200
			frat 2
			anim [6 5 4 3]
			slow
			over
			anim [0 1 2 1 255]
		endi
	endi



**If it's in front of a door, just kinda seep through without activating it.
	ttar 2 2 1
	doif targ ne null
		targ ov00
		setv va00 posx
		setv va01 posy
		targ ownr
		anim [3 4 5 6]
		over
		mvsf va00 va01
		anim [6 5 4 3]
		over
		anim [0 1 2 1 255]
	else
**Do the same thing with lifts.
		ttar 3 1 1
		doif targ ne null
**Randomly decide whether to use the up link or the down link.
**If the link it picked doesn't exist, use the other one.
			setv va00 rand 0 1
			doif va00 eq 0
				doif type ov00 ne 0
					targ ov00
				else
					targ ov05
				endi
			else
				doif type ov05 ne 0
					targ ov05
				else
					targ ov00
				endi
			endi
			setv va00 posx
			setv va01 posy
			targ ownr
			anim [3 4 5 6]
			over
			mvsf va00 va01
			anim [6 5 4 3]
			over
			anim [0 1 2 1 255]
		endi
	endi
endm

rscr
enum 2 20 1
	kill targ
next
scrx 2 20 1 9