actor waverobespawner : randomspawner replaces ChainGunGuy
{
	dropitem "wavegunner", 255, 15
	dropitem "nazrobe", 255, 1
}
	

ACTOR WaveGunner : ChainGunGuy
{
	Speed 10
	Obituary "%o was shredded by a wavegunner."
	Dropitem "Droppedwavebeam"
	+DOHARMSPECIES
	States
	{
	Missile:
		CPOS E 10 A_FaceTarget
		CPOS F 4 Bright a_playsound ("monsters/waveshot",3,1,0,0.6)
		TNT1 A 0 a_custommissile ("badwavebeam",35,10, frandom(2,-2), CMF_OFFSETPITCH, frandom(1,-1))
		CPOS E 4 Bright a_playsound ("monsters/waveshot",3,1,0,0.6)
		TNT1 A 0 a_custommissile ("badwavebeam",35,10, frandom(2,-2), CMF_OFFSETPITCH, frandom(1,-1))
		CPOS F 3 a_monsterrefire (120,"see")
		Goto Missile+1
	Pain:
		CPOS G 1 a_playsound ("monsters/weakhurt",0)
		"####" "#" 1 bright Thing_SetTranslation(0, 4242)
		"####" "#" 2 bright A_Pain
		"####" "#" 1 bright 
		"####" "#" 1 Thing_SetTranslation(0, 0)
		"####" "#" 3 
		goto see
	pain.zelda:
		TNT1 A 0
		CPOS G 1 a_playsound ("monsters/zeldahurt",0)
		CPOS G 1 bright Thing_SetTranslation(0, 4242)
		CPOS G 2 bright A_Pain
		CPOS G 1 bright Thing_SetTranslation(0, 0)
		CPOS G 1 bright Thing_SetTranslation(0, 4242)
		CPOS G 1 bright Thing_SetTranslation(0, 0)
		CPOS G 1 bright Thing_SetTranslation(0, 4242)
		CPOS G 1 Thing_SetTranslation(0, 0)
		Goto See
	death:
	xdeath:
		TNT1 A 0
		TNT1 A 0 a_scream
		TNT1 A 0 a_noblocking
		TNT1 A 0 Thing_SetTranslation(0, 0)
		TNT1 A 0 a_playsound ("monsters/weakhurt",0)
		TNT1 A 0 a_spawnitemex("chaingunnergib1",0,0,0,frandom(-10,10),frandom(-10,10),frandom(8,11),0,SXF_NOCHECKPOSITION)
		TNT1 A 0 a_spawnitemex("chaingunnergib2",0,0,0,frandom(-10,10),frandom(-10,10),frandom(8,11),0,SXF_NOCHECKPOSITION)
		TNT1 A 0 a_spawnitemex("chaingunnergib2",0,0,0,frandom(-10,10),frandom(-10,10),frandom(8,11),0,SXF_NOCHECKPOSITION)
		TNT1 A 0 a_spawnitemex("chaingunnergib3",0,0,0,frandom(-10,10),frandom(-10,10),frandom(8,11),0,SXF_NOCHECKPOSITION)
		TNT1 A 0 a_spawnitemex("chaingunnergib3",0,0,0,frandom(-10,10),frandom(-10,10),frandom(8,11),0,SXF_NOCHECKPOSITION)
		TNT1 A 0 a_spawnitemex("chaingunnergib4",0,0,0,frandom(-10,10),frandom(-10,10),frandom(8,11),0,SXF_NOCHECKPOSITION)
		TNT1 A 0 a_spawnitemex("chaingunnergib4",0,0,0,frandom(-10,10),frandom(-10,10),frandom(8,11),0,SXF_NOCHECKPOSITION)
		TNT1 A 1 a_spawnitemex ("monsterdie",0,0,35)
		DEDM ABCDEFG 3
		DEDM H 2
		TNT1 A 0 a_spawnitemex ("droppeditemspawner",0,0,35)
		DEDM H -1
		stop
	death.beamice:
		CPOS G 1
		CPOS G 1
		TNT1 A 0 a_scream
		TNT1 A 0 a_noblocking
		CPOS G 1 bright Thing_SetTranslation(0, 4243)
		"####" "#" 40 bright
		TNT1 AAAAA 0 a_spawnitemex("shorticebeam",0,0,30,frandom(-40,40),frandom(-40,40),frandom(0,1))
		TNT1 A 0 a_playsound ("monsters/weakhurt",0)
		TNT1 A 0 a_spawnitemex("icechaingunnergib1",0,0,0,frandom(-10,10),frandom(-10,10),frandom(8,11),0,SXF_NOCHECKPOSITION)
		TNT1 A 0 a_spawnitemex("icechaingunnergib2",0,0,0,frandom(-10,10),frandom(-10,10),frandom(8,11),0,SXF_NOCHECKPOSITION)
		TNT1 A 0 a_spawnitemex("icechaingunnergib2",0,0,0,frandom(-10,10),frandom(-10,10),frandom(8,11),0,SXF_NOCHECKPOSITION)
		TNT1 A 0 a_spawnitemex("icechaingunnergib3",0,0,0,frandom(-10,10),frandom(-10,10),frandom(8,11),0,SXF_NOCHECKPOSITION)
		TNT1 A 0 a_spawnitemex("icechaingunnergib3",0,0,0,frandom(-10,10),frandom(-10,10),frandom(8,11),0,SXF_NOCHECKPOSITION)
		TNT1 A 0 a_spawnitemex("icechaingunnergib4",0,0,0,frandom(-10,10),frandom(-10,10),frandom(8,11),0,SXF_NOCHECKPOSITION)
		TNT1 A 0 a_spawnitemex("icechaingunnergib4",0,0,0,frandom(-10,10),frandom(-10,10),frandom(8,11),0,SXF_NOCHECKPOSITION)
		TNT1 A 1 a_spawnitemex ("monsterdie",0,0,35)
		DEDM ABCDEFG 3
		DEDM H 2
		TNT1 A 0 a_spawnitemex ("droppeditemspawner",0,0,35)
		DEDM H -1
		stop
	death.zelda:
		TNT1 A 0
		TNT1 A 0 Thing_SetTranslation(0, 0)
		TNT1 A 0 a_scream
		TNT1 A 0 a_noblocking
		CLTS H 0 a_playsound ("monsters/zeldahurt",0)
		TNT1 A 1 a_spawnitemex ("zeldamonsterdie",0,0,35)
		TNT1 A 0 a_playsound ("monsters/zeldadeath",0)
		TNT1 A 0 a_stop
		DEDM ABCDEFG 3
		DEDM H 2
		TNT1 A 0 a_spawnitemex ("droppeditemspawner",0,0,35)
		DEDM H -1
		wait
	raise:
		TNT1 A 0
		TNT1 A 0 Thing_SetTranslation(0, 0)
		DEDM H 1 a_spawnitemex ("chaingunnerrevive1",0,0,0,frandom(-10,10),frandom(-10,10),frandom(8,11),0,SXF_NOCHECKPOSITION)
		TNT1 A 0 a_spawnitemex("chaingunnerrevive2",0,0,0,frandom(-10,10),frandom(-10,10),frandom(8,11),0,SXF_NOCHECKPOSITION)
		TNT1 A 0 a_spawnitemex("chaingunnerrevive2",0,0,0,frandom(-10,10),frandom(-10,10),frandom(8,11),0,SXF_NOCHECKPOSITION)
		TNT1 A 0 a_spawnitemex("chaingunnerrevive3",0,0,0,frandom(-10,10),frandom(-10,10),frandom(8,11),0,SXF_NOCHECKPOSITION)
		TNT1 A 0 a_spawnitemex("chaingunnerrevive3",0,0,0,frandom(-10,10),frandom(-10,10),frandom(8,11),0,SXF_NOCHECKPOSITION)
		TNT1 A 0 a_spawnitemex("chaingunnerrevive4",0,0,0,frandom(-10,10),frandom(-10,10),frandom(8,11),0,SXF_NOCHECKPOSITION)
		TNT1 A 0 a_spawnitemex("chaingunnerrevive4",0,0,0,frandom(-10,10),frandom(-10,10),frandom(8,11),0,SXF_NOCHECKPOSITION)
		DEDM H 30
		DEDM GFEDCBA 2
		goto see
	}
}

actor badwavebeam
{
	PROJECTILE
	scale 1
	Damage 2
	Speed 20
	Radius 8
	Height 8
	+bright
	States
	{
	Spawn:
		WVBM A 2
		WVBM A 1 a_jump (140, "waveflight2")
	waveflight:
		WVBM A 2 A_weave (18,0,1,0)
		WVBM B 2 A_weave (18,0,1,0)
		WVBM C 2 A_weave (18,0,1,0)
		WVBM D 2 A_weave (18,0,1,0)
		loop
	waveflight2:
		WVBM A 2 A_weave (18,0,-1,0)
		WVBM B 2 A_weave (18,0,-1,0)
		WVBM C 2 A_weave (18,0,-1,0)
		WVBM D 2 A_weave (18,0,-1,0)
		loop
	Death:
		WVBM EFGH 2 
		Stop
	Xdeath:
		TNT1 A 0
		TNT1 A 0 A_spawnitemex ("waveparticle1",0,0,0,0,5,-5)
		TNT1 A 0 A_spawnitemex ("waveparticle2",0,0,0,0,5,5)
		TNT1 A 0 A_spawnitemex ("waveparticle3",0,0,0,0,-5,5)
		TNT1 A 0 A_spawnitemex ("waveparticle4",0,0,0,0,-5,-5)
		WVBM EFGH 2 
		Stop
	}
}


actor chaingunnergib1 : zombiegib1
{
	states
	{
	spawn:
		CGB1 ABCD 1
		loop
	death:
		TNT1 A 1
		stop
	}
}

actor chaingunnergib2 : zombiegib1
{
	states
	{
	spawn:
		CGB2 ABCD 1
		loop
	}
}

actor chaingunnergib3 : zombiegib1
{
	states
	{
	spawn:
		CGB3 ABCD 1
		loop
	}
}

actor chaingunnergib4 : zombiegib1
{
	states
	{
	spawn:
		CGB4 ABCD 1
		loop
	}
}

actor icechaingunnergib1
{
	projectile
	+ripper
	+thruspecies
	+doombounce
	species "player"
	damage (3)
	-nogravity
	Radius 30
	Height 15
	damagetype "beamice"
	+bright
	bouncecount 4
	states
	{
	spawn:
        TNT1 A 0
        TNT1 A 0 Thing_SetTranslation(0, 4243)
        TNT1 A 0 A_Jump (256, "spawnmain")
	spawnmain:
		CGB1 ABCD 1
		loop
	death:
		TNT1 A 1
		stop
	}
}

actor icechaingunnergib2 : icechaingunnergib1
{
	states
	{
	spawnmain:
		CGB2 ABCD 1
		loop
	}
}

actor icechaingunnergib3 : icechaingunnergib1
{
	states
	{
	spawnmain:
		CGB3 ABCD 1
		loop
	}
}

actor icechaingunnergib4 : icechaingunnergib1
{
	states
	{
	spawnmain:
		CGB4 ABCD 1
		loop
	}
}


actor chaingunnerrevive1 : zombierevive1
{
	states
	{
	spawn:
		TNT1 A 10
		TNT1 A 1 a_scalevelocity (-1)
	flight:
		CGB1 ABCD 1
		loop
	death:
		TNT1 A 1
		stop
	}
}
	
actor chaingunnerrevive2 : zombierevive1
{
	states
	{
	spawn:
		TNT1 A 10
		TNT1 A 1 a_scalevelocity (-1)
	flight:
		CGB2 ABCD 1
		loop
	}
}

actor chaingunnerrevive3 : zombierevive1
{
	states
	{
	spawn:
		TNT1 A 10
		TNT1 A 1 a_scalevelocity (-1)
	flight:
		CGB3 ABCD 1
		loop
	}
}

actor chaingunnerrevive4 : zombierevive1
{
	states
	{
	spawn:
		TNT1 A 10
		TNT1 A 1 a_scalevelocity (-1)
	flight:
		CGB4 ABCD 1
		loop
	}
}

