Actor SSRocketMan 30321
{
Monster
Health 400
Height 56
Radius 20
Mass 200
Speed 8
PainChance 190
+FLOORCLIP
+DONTHURTSPECIES
+DONTHARMSPECIES
Species "SS"
Damagetype "SS"
DamageFactor "SS", 0.0
DropItem "PortableMedkit", 120
DropItem "ArmorPlate", 120
DropItem "AmmoPack", 80
DropItem "Missile", 256, 5
DropItem "HandGrenadeAmmo", 200, 1
DropItem "MineAmmo", 100, 1
SeeSound "guard/sight"
DeathSound "guard/death"
PainSound "monsters/nazipain"
Obituary "%o was splattered by a Nazi with a rocket launcher."
Tag "SS Rocket Man"
States
	{
	Spawn:
		OTTO A 10 A_Look
		Loop
	See:
		OTTO AAAABBBB 3 A_Chase
		TNT1 A 0 A_SpawnItem("FootStep",0,0,0,0)		
		OTTO CCCCDDDD 3 A_Chase
		TNT1 A 0 A_SpawnItem("FootStep",0,0,0,0)
		Loop
	Missile:
		TNT1 A 0
		TNT1 A 0 A_CheckFlag(FRIENDLY,5)
		TNT1 A 0 A_TakeInventory("ProjHitCheck1",1)
		TNT1 A 0 A_TakeInventory("ProjMissCheck1",1)
		TNT1 A 0 A_FaceTarget
		TNT1 A 0 A_CustomMissile("ss-hit-testing1",32,12,0,CMF_TRACKOWNER|CMF_CHECKTARGETDEAD)
		OTTO EEEEEEEEEE 1 A_FaceTarget
		TNT1 A 0 A_CheckFlag(FRIENDLY,4)
		TNT1 A 0 A_JumpIfInventory("ProjHitCheck1",1,"3")
		TNT1 A 0 A_JumpIfInventory("ProjMissCheck1",1,"See")
		TNT1 A 0 A_Jump(256,"MissileEnd")
		OTTO F 6 BRIGHT A_CustomMissile("SSRocket",32,12,random(-1,1))
		OTTO E 4 A_FaceTarget
		OTTO F 6 BRIGHT A_CustomMissile("SSRocket",32,12,random(-1,1))
		OTTO E 4 A_FaceTarget
		OTTO F 6 BRIGHT A_CustomMissile("SSRocket",32,12,random(-1,1))
		OTTO E 4 A_FaceTarget
		OTTO F 6 BRIGHT A_CustomMissile("SSRocket",32,12,random(-1,1))
		OTTO E 4 A_FaceTarget
		OTTO F 6 BRIGHT A_CustomMissile("SSRocket",32,12,random(-1,1))
	MissileEnd:
		OTTO E 4 A_FaceTarget
		Goto See
	Pain:
		TNT1 A 0
		OTTO K 6 A_Pain
		Goto See
	Death:
		TNT1 A 0
		OTTO G 5 A_SpawnItemEx("GibbedGenerator",0,0,0,0,0,0,0,128,0)
		OTTO H 5 A_Scream
		OTTO I 5 A_NoBlocking
		OTTO J 63000 CanRaise
		Stop
	Raise:
		TNT1 A 0
		TNT1 A 0 A_SpawnItemEx("VileHealEffect",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		OTTO JIHG 5
		Goto See
	}
}

Actor SSRocket : CadaverRocket
{
Projectile
Speed 24
FastSpeed 32
Damage 5
-SEEKERMISSILE
+DONTHURTSPECIES
+DONTHARMSPECIES
+MTHRUSPECIES
Damagetype ""
Damagetype "SS"
States
	{
	Spawn:
		TNT1 A 0 Bright A_CustomMissile("MissileTrail",0,Random(-2,2))
		CBRK A 1 Bright A_CustomMissile("ProjectileTrailParticleOrange",0,Random(-2,2))
		Loop
	XDeath:
	Death:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_SpawnItemEx("OrangeParticleSpawner",0,0,0,0,0,0,0,SXF_CLIENTSIDE,0)
		TNT1 AAA 0 Bright A_CustomMissile("Kaboom3",0,0,random(0,360),2,random(0,360))
		TNT1 AAA 0 Bright A_CustomMissile("SmokeFX2",0,0,random(0,360),2,random(0,360))
		TNT1 AAAA 0 Bright A_SpawnItemEx("Debris",0,0,0,Random(4,-4),Random(4,-4),Random(4,8),0,SXF_CLIENTSIDE,0)
		TNT1 A 0 Bright A_Explode(18,128,0)
		TNT1 A 1 Bright A_SpawnItem("RocketEx")
		Stop
	}
}

Actor SSBulletPuff : ModdedBulletPuff
{
+DONTHURTSPECIES
+DONTHARMSPECIES
+MTHRUSPECIES
DamageType "SS"
}

Actor SSSuperSoldier 30322
{
Monster
Health 1100
Height 64
Radius 24
Scale 1.25
Mass 5000
Speed 8
PainChance 20
+FLOORCLIP
+MISSILEMORE
+MISSILEEVENMORE
+DONTHURTSPECIES
+DONTHARMSPECIES
Species "SS"
Damagetype "SS"
DamageFactor "SS", 0.0
RadiusDamageFactor 0.5
DropItem "BulletBox", 256, 50
DropItem "PortableMedkit", 200
DropItem "ArmorPlate", 200
DropItem "HandGrenadeAmmo", 200, 1
DropItem "MineAmmo", 200, 1
DropItem "AmmoPack", 150
DropItem "ExtraArmor", 256, 1
SeeSound "supersoldier/see"
PainSound "supersoldier/pain"
DeathSound "supersoldier/death"
ActiveSound "supersoldier/idle"
Obituary "%o was terminated by a super soldier."
Tag "SS Super Soldier"
var int user_lcounter;
States
	{
	Spawn:
		HANS A 10 A_Look
		Loop
	See:
		HANS AAAABBBB 3 A_Chase
		TNT1 A 0 A_SpawnItem("FootStep",0,0,0,0)		
		HANS CCCCDDDD 3 A_Chase
		TNT1 A 0 A_SpawnItem("FootStep",0,0,0,0)
		Loop
	Missile:
		TNT1 A 0
		TNT1 A 0 A_CheckFlag(FRIENDLY,5)
		TNT1 A 0 A_TakeInventory("ProjHitCheck1",1)
		TNT1 A 0 A_TakeInventory("ProjMissCheck1",1)
		TNT1 A 0 A_FaceTarget
		TNT1 A 0 A_CustomMissile("ss-hit-testing1",32,0,0,CMF_TRACKOWNER|CMF_CHECKTARGETDEAD)
		HANS EEEEEEEEEEEEEEEEEEEE 1 A_FaceTarget
		TNT1 A 0 A_SetUserVar("user_lcounter",20)
		TNT1 A 0 A_CheckFlag(FRIENDLY,"Refire")
		TNT1 A 0 A_JumpIfInventory("ProjHitCheck1",1,"Refire")
		TNT1 A 0 A_JumpIfInventory("ProjMissCheck1",1,"See")
		TNT1 A 0 A_Jump(256,"MissileEnd")
	Refire:
		TNT1 A 0 A_CustomMissile("MonsterTracer",Random(36,44),0,Random(5,-5),0)
		TNT1 A 0 A_SpawnItemEx("RifleCasing",10,24,40,Random(2,6),0,Random(1,3),Random(80,90),128)
		TNT1 A 0 A_SpawnItemEx("RifleCasing",10,-24,40,Random(2,6),0,Random(1,3),Random(-80,-90),128)
		TNT1 AA 0 A_CustomBulletAttack(22.5,0,1,random(1,5)*5,"SSBulletPuff",0,CBAF_NORANDOM)
		HANS F 3 Bright A_PlaySoundEx("hitler/fire","Weapon")
		TNT1 A 0 A_FaceTarget
		TNT1 A 0 A_CustomMissile("MonsterTracer",Random(36,44),0,Random(5,-5),0)
		TNT1 A 0 A_SpawnItemEx("RifleCasing",10,24,40,Random(2,6),0,Random(1,3),Random(80,90),128)
		TNT1 A 0 A_SpawnItemEx("RifleCasing",10,-24,40,Random(2,6),0,Random(1,3),Random(-80,-90),128)
		TNT1 AA 0 A_CustomBulletAttack(22.5,0,1,random(1,5)*5,"SSBulletPuff",0,CBAF_NORANDOM)
		HANS G 3 Bright A_PlaySoundEx("hitler/fire","Weapon")
		TNT1 A 0 A_FaceTarget
		TNT1 A 0 A_CustomMissile("MonsterTracer",Random(36,44),0,Random(5,-5),0)
		TNT1 A 0 A_SpawnItemEx("RifleCasing",10,24,40,Random(2,6),0,Random(1,3),Random(80,90),128)
		TNT1 A 0 A_SpawnItemEx("RifleCasing",10,-24,40,Random(2,6),0,Random(1,3),Random(-80,-90),128)
		TNT1 AA 0 A_CustomBulletAttack(22.5,0,1,random(1,5)*5,"SSBulletPuff",0,CBAF_NORANDOM)
		HANS F 3 Bright A_PlaySoundEx("hitler/fire","Weapon")
		TNT1 A 0 A_FaceTarget
		TNT1 A 0 A_CustomMissile("MonsterTracer",Random(36,44),0,Random(5,-5),0)
		TNT1 A 0 A_SpawnItemEx("RifleCasing",10,24,40,Random(2,6),0,Random(1,3),Random(80,90),128)
		TNT1 A 0 A_SpawnItemEx("RifleCasing",10,-24,40,Random(2,6),0,Random(1,3),Random(-80,-90),128)
		TNT1 AA 0 A_CustomBulletAttack(22.5,0,1,random(1,5)*5,"SSBulletPuff",0,CBAF_NORANDOM)
		HANS G 3 Bright A_PlaySoundEx("hitler/fire","Weapon")
		TNT1 A 0 A_FaceTarget
		TNT1 A 0 A_CustomMissile("MonsterTracer",Random(36,44),0,Random(5,-5),0)
		TNT1 A 0 A_SpawnItemEx("RifleCasing",10,24,40,Random(2,6),0,Random(1,3),Random(80,90),128)
		TNT1 A 0 A_SpawnItemEx("RifleCasing",10,-24,40,Random(2,6),0,Random(1,3),Random(-80,-90),128)
		TNT1 AA 0 A_CustomBulletAttack(22.5,0,1,random(1,5)*5,"SSBulletPuff",0,CBAF_NORANDOM)
		HANS F 3 Bright A_PlaySoundEx("hitler/fire","Weapon")
		TNT1 A 0 A_FaceTarget
		TNT1 A 0 A_CustomMissile("MonsterTracer",Random(36,44),0,Random(5,-5),0)
		TNT1 A 0 A_SpawnItemEx("RifleCasing",10,24,40,Random(2,6),0,Random(1,3),Random(80,90),128)
		TNT1 A 0 A_SpawnItemEx("RifleCasing",10,-24,40,Random(2,6),0,Random(1,3),Random(-80,-90),128)
		TNT1 AA 0 A_CustomBulletAttack(22.5,0,1,random(1,5)*5,"SSBulletPuff",0,CBAF_NORANDOM)
		HANS G 3 Bright A_PlaySoundEx("hitler/fire","Weapon")
		TNT1 A 0 A_FaceTarget
		TNT1 A 0 A_CustomMissile("MonsterTracer",Random(36,44),0,Random(5,-5),0)
		TNT1 A 0 A_SpawnItemEx("RifleCasing",10,24,40,Random(2,6),0,Random(1,3),Random(80,90),128)
		TNT1 A 0 A_SpawnItemEx("RifleCasing",10,-24,40,Random(2,6),0,Random(1,3),Random(-80,-90),128)
		TNT1 AA 0 A_CustomBulletAttack(22.5,0,1,random(1,5)*5,"SSBulletPuff",0,CBAF_NORANDOM)		
		HANS F 3 Bright A_PlaySoundEx("hitler/fire","Weapon")
		TNT1 A 0 A_FaceTarget
		TNT1 A 0 A_CustomMissile("MonsterTracer",Random(36,44),0,Random(5,-5),0)
		TNT1 A 0 A_SpawnItemEx("RifleCasing",10,24,40,Random(2,6),0,Random(1,3),Random(80,90),128)
		TNT1 A 0 A_SpawnItemEx("RifleCasing",10,-24,40,Random(2,6),0,Random(1,3),Random(-80,-90),128)
		TNT1 AA 0 A_CustomBulletAttack(22.5,0,1,random(1,5)*5,"SSBulletPuff",0,CBAF_NORANDOM)		
		HANS G 3 Bright A_PlaySoundEx("hitler/fire","Weapon")
		TNT1 A 0 A_JumpIf(user_lcounter < 1,"MissileEnd")
		TNT1 A 0 A_SetUserVar("user_lcounter",user_lcounter-1)
		TNT1 A 0 A_MonsterRefire(0,"MissileEnd")
		Goto Refire
	MissileEnd:
		HANS E 15
		Goto See
	Pain:
		TNT1 A 0
		HANS H 6 A_Pain
		Goto See
	Death:
		TNT1 A 0
		HANS I 5 A_SpawnItemEx("GibbedGenerator",0,0,0,0,0,0,0,SXF_CLIENTSIDE,0)
		HANS J 5 A_Scream
		HANS K 5 A_SpawnItemEx("GibbedGenerator",0,0,0,0,0,0,0,SXF_CLIENTSIDE,0)
		TNT1 A 0 A_NoBlocking
		HANS L 63000 CanRaise
		Stop
	Raise:
		TNT1 A 0
		TNT1 A 0 A_SpawnItemEx("VileHealEffect",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		HANS LKJI 5
		Goto See
	}
}

Actor "ss-hit-testing1" : FastProjectile
{
Height 1
Radius 1
Speed 1000
Renderstyle None
Damage (0)
+NODAMAGETHRUST
+BLOODLESSIMPACT
+DONTREFLECT
+THRUSPECIES
+MTHRUSPECIES
Species "SS"
States
	{
	Spawn:
		TNT1 A 1
		Loop
	Death:
		TNT1 A 0
		TNT1 A 1 A_GiveToTarget("ProjMissCheck1",1)
		Stop
	Crash:
	XDeath:
		TNT1 A 0
		TNT1 A 1 A_GiveToTarget("ProjHitCheck1",1)
		Stop
	}
}