//=========================================================================
//
// Special Soldiers that don't fit in any category.
//
//==========================================================================
// Jetpack Pistole Soldat
//==========================================================================

ACTOR JETPSSDT
{
  +FLOORCLIP
  +NOTARGET
  +NOINFIGHTING
  +MISSILEMORE
  +FLOAT
  +NOGRAVITY
  +FLOATBOB
  MONSTER
  Scale 1.0
  Obituary "%o was eliminated by a Jet Soldat."
  Health 140
  Radius 20
  Height 56
  Mass 500
  Speed 15
  Seesound 			"enemies/nazi6/sight"
  Attacksound 		"enemies/nazi2/pistol"
  Painsound 		"enemies/nazi6/pain"
  Deathsound 		"enemies/nazi6/death"
  Activesound 		""
  Painchance 100
  Decal "bulletchip"
  Maxtargetrange 1024
  DropItem BonusHeal3, 64
  DropItem BOHC3 256
  DropItem BonusBoots, 156
  DropItem DualSpawner4, 156
  DamageFactor "NaziSoldier", 0.0
  var int user_crash;
  States
  {
	Spawn:
		NULL A 0 NoDelay A_PlaySound("enemies/robots/fly2",6,1,TRUE)
		NULL A 0 A_Jump(1,"Idle")
		NZ72 A 5 A_Look
		Loop
	Idle:
		NULL A 0 A_PlaySound("enemies/nazi6/idle",1,0.5)
		Goto Spawn
	See:
		NZ72 B 4 A_FastChase
		NZ72 B 4 
		NZ72 B 4 A_FastChase
		NZ72 B 4 
		NZ72 B 4 A_FastChase
		NZ72 B 4 
		Loop
	Missile:
		NZ72 CD 8 A_FaceTarget
	FirePistol:
		NULL A 0 A_PlaySound("enemies/nazi2/pistol")
		NZ72 E 4 BRIGHT A_CustomMissile("T1F5S5",32,6,frandom(3,-3))
		NZ72 D 6 A_FaceTarget
		NULL A 0 A_MonsterRefire(128,"See")
		Goto Missile+2
	Pain:
		NZ72 F 3
		NZ72 F 3 A_Pain
		Goto See
	Death:
		NULL A 0  A_ChangeFlag("FLOATBOB",0)
		NZ72 G 15 A_Scream
		NZ72 G -1 A_NoBlocking
		Wait
	XDeath:
		NULL A 0 A_SetUserVar("user_crash",1)
		NULL A 0 A_ChangeFlag("FLOATBOB",0)
		NULL A 0 A_StopSound(6)
		NULL A 0 A_NoBlocking
	Falling:
		NZ72 H 3 A_SpawnItem("GunSmokeSpawner")
		Loop
	Crash:
		NULL A 0 A_JumpIf(user_crash==1,"XCrash")
		NULL A 0 A_StopSound(6)
		NZ72 G 3
		NZ72 H 3
		NZ72 I 3
		NZ72 J 3 A_NoBlocking
		NULL A 0 A_PlaySound("misc/bodies/drop")
		NZ72 K -1 A_SetFloorClip
		Stop
	Death.Plas:
		NULL A 0 A_ChangeFlag("FLOATBOB",false)
		NULL A 0 A_ChangeFlag("FLOAT",false)
		NULL A 0 A_ChangeFlag("NOGRAVITY",true)
		NULL A 0 A_SetTranslucent(1.0)
		NULL A 0 A_SetScale(0.85)
		NULL A 0 A_StopSound(1)
		NULL A 0 A_SetFloorClip
		NULL A 0 A_PlaySound("enemies/nazi/disintegrate",6)
		NULL A 0 A_PlaySound("enemies/nazi/disintscream",CHAN_VOICE,7)
		NULL A 0 A_NoBlocking
		NZPL ABCD 3 BRIGHT 
		NZPL E 3 BRIGHT A_SetTranslucent(0.9,0)
		NZPL F 3 BRIGHT A_SetTranslucent(0.8,0)
		NZPL G 3 BRIGHT A_SetTranslucent(0.7,0)
		NZPL H 3 BRIGHT A_SetTranslucent(0.5,0)
		NZPL I 4 BRIGHT A_SetTranslucent(0.3,0)
		NZPL J 4 BRIGHT A_SetTranslucent(0.1,0)
		NULL A 0 A_StopSound(1)
		Stop
	Pain.Shock:
		NULL A 0 A_SetScale(0.45)
		"----" A 0 A_ChangeFlag("NoPain",1)
	ShockLoop:
		NULL A 0 A_PlaySound("weapons/ESK/spark")
		"NZSH" A 4 A_Pain
		"----" A 4 BRIGHT
		"----" A 0 A_SetScale(1)
		"----" A 0 A_ChangeFlag ("NoPain",0)
		"----" A 0 A_Jump(256,"See")
		Stop
	Death.Shock:
		"----" A 0 A_ChangeFlag ("NoPain",0)
		"----" A 0 A_SetScale(1)
		"----" A 0 A_Jump(256,"Death")
		Stop
	Death.SonicBlast:
		NULL A 0 A_ChangeFlag("FLOATBOB",false)
		NULL A 0 A_ChangeFlag("FLOAT",false)
		NULL A 0 A_ChangeFlag("NOGRAVITY",true)
		NULL A 0 A_SetTranslucent(1.0)
		NULL A 0 A_SetScale(0.5)
		NULL A 0 A_StopSound(1)
		NULL A 0 A_SetFloorClip
		NULL A 0 A_PlaySound("enemies/nazi/disintegrate",6)
		NULL A 0 A_PlaySound("enemies/nazi/disintscream",CHAN_VOICE,7)
		NULL A 0 A_Noblocking
		VAPO A 3 BRIGHT 
		VAPO B 3 BRIGHT
		VAPO C 3 BRIGHT
		VAPO D 3 BRIGHT
		VAPO E 3 BRIGHT
		VAPO F 4 BRIGHT
		VAPO G 4 BRIGHT
		VAPO H 4 BRIGHT
		NULL A 0 A_StopSound(1)
		Stop
	Death.Fire:
	XCrash:
		NULL A 0 A_ChangeFlag("FLOATBOB",0)
		NULL A 0 A_StopSound(6)
		NULL A 0 A_NoBlocking
		TNT1 A 0 A_SpawnItem("Detonation3")
	Death.Explode:
		NULL A 0 A_ChangeFlag("FLOATBOB",false)
		NULL A 0 A_ChangeFlag("FLOAT",false)
		NULL A 0 A_ChangeFlag("NOGRAVITY",false)
		NULL A 0 A_SetTranslucent(1.0)
		NULL A 0 A_SetScale(0.56)
		NULL A 0 A_StopSound(1)
		NULL A 0 A_Playsound("enemies/nazi/gibbed",5)
		NULL A 0 A_XScream
		NULL A 0 A_SetFloorClip
		NULL A 0 A_NoBlocking
		NULL A 0 A_SpawnDebris("BO_NashGore_Gib9",0)
		NULL A 0 A_SpawnDebris("BO_NashGore_Gib10",0)
		NULL A 0 A_SpawnDebris("BO_NashGore_Gib11",0)
		NULL A 0 A_SpawnDebris("BO_NashGore_Gib11",0)
		NULL A 0 A_SpawnItem("BO_NashGore_GibGenerator",0,0,0,0)
		NZEX A 4
		NULL A 0 A_SpawnItem("BO_NashGore_GibGenerator",0,0,0,0)
		NZEX B 3
		NULL A 0 A_SpawnItem("BO_NashGore_GibGenerator",0,0,0,0)
		NZEX C 3
		NULL A 0 A_SpawnItem("BO_NashGore_GibGenerator",0,0,0,0)
		NZEX DEF 3
		TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("JanitorToggle")==1,"ThisBodyOut")
		NZEX G -1
		NULL A 0 A_StopSound(1)
		Stop
	ThisBodyOut:
		NULL A 0 A_StopSound(1)
		NZEX G 1050
		Stop
	Raise:
		NZ72 KJIHG 5
		Goto See
  }
}

//==========================================================================
//
// Jetpack Maschinengewehr Kaptain
//
//==========================================================================

ACTOR JETMGKPT
{
  +FLOORCLIP
  +NOTARGET
  +NOINFIGHTING
  +MISSILEMORE
  +FLOAT
  +NOGRAVITY
  +FLOATBOB
  MONSTER
  Scale 1.0
  Obituary "%o was dog-fighted by a Jet Kaptain."
  Health 140
  Radius 20
  Height 56
  Mass 500
  Speed 15
  Seesound 			"enemies/nazi2/sight"
  Attacksound 		"enemies/nazi3/machinegun"
  Painsound 		"enemies/nazi2/pain"
  Deathsound 		"enemies/nazi2/death"
  Activesound 		""
  Painchance 100
  Decal "bulletchip"
  Maxtargetrange 1024
  DropItem BonusHeal3, 64
  DropItem BOHC3 256
  DropItem BonusBoots, 156
  DropItem DualSpawner1, 156  
  DamageFactor "NaziSoldier", 0.0
  var int user_crash;
  States
  {
	Spawn:
		NULL A 0 NoDelay A_PlaySound("enemies/robots/fly2",6,1,TRUE)
		NULL A 0 A_Jump(1,"Idle")
		NZ73 A 5 A_Look
		Loop
	Idle:
		NULL A 0 A_PlaySound("enemies/nazi2/idle",1,0.5)
		Goto Spawn
	See:
		NZ73 B 4 A_FastChase
		NZ73 B 4 
		NZ73 B 4 A_FastChase
		NZ73 B 4 
		NZ73 B 4 A_FastChase
		NZ73 B 4 
		Loop
	Missile:
		NZ73 CD 8 A_FaceTarget
	FirePistol:
		NULL A 0 A_PlaySound("enemies/nazi3/machinegun")
		NZ73 E 1 BRIGHT A_CustomMissile("T1F5S5",32,6,frandom(3,-3))
		NZ73 D 2 A_FaceTarget
		NULL A 0 A_PlaySound("enemies/nazi3/machinegun")
		NZ73 E 1 BRIGHT A_CustomMissile("T1F5S5",32,6,frandom(3,-3))
		NZ73 D 2 A_FaceTarget
		NULL A 0 A_PlaySound("enemies/nazi3/machinegun")
		NZ73 E 1 BRIGHT A_CustomMissile("T1F5S5",32,6,frandom(3,-3))
		NZ73 D 12 A_FaceTarget
		NULL A 0 A_MonsterRefire(64,"See")
		Goto Missile+2
	Pain:
		NZ73 F 3
		NZ73 F 3 A_Pain
		Goto See
	Death:
		NULL A 0  A_ChangeFlag("FLOATBOB",0)
		NZ73 G 15 A_Scream
		NZ73 G -1 A_NoBlocking
		Wait
	XDeath:
		NULL A 0 A_SetUserVar("user_crash",1)
		NULL A 0 A_ChangeFlag("FLOATBOB",0)
		NULL A 0 A_StopSound(6)
		NULL A 0 A_NoBlocking
	Falling:
		NZ73 H 3
		Loop
	Crash:
		NULL A 0 A_JumpIf(user_crash==1,"XCrash")
		NULL A 0 A_StopSound(6)
		NZ73 G 3
		NZ73 H 3
		NZ73 I 3
		NZ73 J 3 A_NoBlocking
		NULL A 0 A_PlaySound("misc/bodies/drop")
		NZ73 K -1 A_SetFloorClip
		Stop
	Death.Plas:
		NULL A 0 A_ChangeFlag("FLOATBOB",false)
		NULL A 0 A_ChangeFlag("FLOAT",false)
		NULL A 0 A_ChangeFlag("NOGRAVITY",false)
		NULL A 0 A_SetTranslucent(1.0)
		NULL A 0 A_SetScale(0.85)
		NULL A 0 A_StopSound(1)
		NULL A 0 A_SetFloorClip
		NULL A 0 A_PlaySound("enemies/nazi/disintegrate",6)
		NULL A 0 A_PlaySound("enemies/nazi/disintscream",CHAN_VOICE,7)
		NULL A 0 A_Noblocking
		NZPL ABCD 3 BRIGHT 
		NZPL E 3 BRIGHT A_SetTranslucent(0.9,0)
		NZPL F 3 BRIGHT A_SetTranslucent(0.8,0)
		NZPL G 3 BRIGHT A_SetTranslucent(0.7,0)
		NZPL H 3 BRIGHT A_SetTranslucent(0.5,0)
		NZPL I 4 BRIGHT A_SetTranslucent(0.3,0)
		NZPL J 4 BRIGHT A_SetTranslucent(0.1,0)
		NULL A 0 A_StopSound(1)
		Stop
	Pain.Shock:
		NULL A 0 A_SetScale(0.45)
		"----" A 0 A_ChangeFlag("NoPain",1)
	ShockLoop:
		NULL A 0 A_PlaySound("weapons/ESK/spark")
		"NZSH" A 4 A_Pain
		"----" A 4 BRIGHT
		"----" A 0 A_SetScale(1)
		"----" A 0 A_ChangeFlag ("NoPain",0)
		"----" A 0 A_Jump(256,"See")
		Stop
	Death.Shock:
		"----" A 0 A_ChangeFlag ("NoPain",0)
		"----" A 0 A_SetScale(1)
		"----" A 0 A_Jump(256,"Death")
		Stop
	Death.SonicBlast:
		NULL A 0 A_ChangeFlag("FLOATBOB",false)
		NULL A 0 A_ChangeFlag("FLOAT",false)
		NULL A 0 A_ChangeFlag("NOGRAVITY",false)
		NULL A 0 A_SetTranslucent(1.0)
		NULL A 0 A_SetScale(0.5)
		NULL A 0 A_StopSound(1)
		NULL A 0 A_SetFloorClip
		NULL A 0 A_PlaySound("enemies/nazi/disintegrate",6)
		NULL A 0 A_PlaySound("enemies/nazi/disintscream",CHAN_VOICE,7)
		NULL A 0 A_Noblocking
		VAPO A 3 BRIGHT 
		VAPO B 3 BRIGHT
		VAPO C 3 BRIGHT
		VAPO D 3 BRIGHT
		VAPO E 3 BRIGHT
		VAPO F 4 BRIGHT
		VAPO G 4 BRIGHT
		VAPO H 4 BRIGHT
		NULL A 0 A_StopSound(1)
		Stop
	Death.Fire:
	XCrash:
		NULL A 0 A_ChangeFlag("FLOATBOB",0)
		NULL A 0 A_StopSound(6)
		NULL A 0 A_NoBlocking
		TNT1 A 0 A_SpawnItem("Detonation3")
	Death.Explode:
		NULL A 0 A_ChangeFlag("FLOATBOB",false)
		NULL A 0 A_ChangeFlag("FLOAT",false)
		NULL A 0 A_ChangeFlag("NOGRAVITY",false)
		NULL A 0 A_SetTranslucent(1.0)
		NULL A 0 A_SetScale(0.56)
		NULL A 0 A_StopSound(1)
		NULL A 0 A_Playsound("enemies/nazi/gibbed",5)
		NULL A 0 A_XScream
		NULL A 0 A_SetFloorClip
		NULL A 0 A_NoBlocking
		NULL A 0 A_SpawnDebris("BO_NashGore_Gib9",0)
		NULL A 0 A_SpawnDebris("BO_NashGore_Gib10",0)
		NULL A 0 A_SpawnDebris("BO_NashGore_Gib11",0)
		NULL A 0 A_SpawnDebris("BO_NashGore_Gib11",0)
		NULL A 0 A_SpawnItem("BO_NashGore_GibGenerator",0,0,0,0)
		NZEX A 4
		NULL A 0 A_SpawnItem("BO_NashGore_GibGenerator",0,0,0,0)
		NZEX B 3
		NULL A 0 A_SpawnItem("BO_NashGore_GibGenerator",0,0,0,0)
		NZEX C 3
		NULL A 0 A_SpawnItem("BO_NashGore_GibGenerator",0,0,0,0)
		NZEX DEF 3
		TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("JanitorToggle")==1,"ThisBodyOut")
		NZEX G -1
		NULL A 0 A_StopSound(1)
		Stop
	ThisBodyOut:
		NULL A 0 A_StopSound(1)
		NZEX G 1050
		Stop
	Raise:
		NZ73 KJIHG 5
		Goto See
  }
}

//===========================================================================
//
// Sniper Gewehr Soldat
//
//===========================================================================

ACTOR NZRFSNP : NaziSoldier
{
  obituary "%o was picked off by a Nacht Sniper."
  health 30
  radius 20
  height 56
  mass 100
  speed 8
  Painchance 135
  DropItem HDGewehr, 156
  DropItem BOHC3, 256
  DropItem BOGR1, 64
  DropItem BonusHelmet, 256
  decal "bulletchip"
  maxtargetrange 2048
  Seesound 		"enemies/nazi5/sight"
  Activesound 	"enemies/nazi5/active"
  Attacksound 	"enemies/nazi3/rifle"
  Painsound 	"enemies/nazi5/pain"
  Deathsound 	"enemies/nazi5/death"
  +NOTARGET
  +MISSILEMORE
  States
  {
  Spawn:
    NZ53 A 10 A_Look
    NULL A 0 A_Jump(1,"Idle")
	Loop
  Idle:
	TNT1 A 0 A_PlaySound("enemies/nazi5/idle",1,0.2)
	Goto Spawn
  See:
    NZ53 BBCCDDEE 3 A_Chase
    Loop
  Missile:
  	NZ53 A 1 A_JumpIfCloser(750,"FireRifle")
	Goto Sniping
  FireRifle:
	NZ53 FG 6 A_FaceTarget
	NZ53 G 0 A_PlayWeaponSound("enemies/nazi3/rifle")
    NZ53 H 2 BRIGHT A_CustomMissile("T1F6S6",40,9,random(-4,4))
    NZ53 G 8
	NZ53 GFA 6
	Goto See
  FireRifle:
	NZ53 FG 6 A_FaceTarget
	NZ53 G 0 A_PlayWeaponSound("enemies/nazi3/rifle")
    NZ53 H 2 BRIGHT A_CustomMissile("T1F6S6",40,9,random(-4,4))
    NZ53 G 8
	NZ53 GFA 6
	Goto See
  Sniping:
	NZ53 G 6 A_FaceTarget
  	NZ53 G 0 A_JumpIfCloser(540,"SnipingDone")
	NZ53 G 10 A_FaceTarget
  	NZ53 G 0 A_PlayWeaponSound("enemies/nazi3/rifle")
  	NZ53 H 2 BRIGHT A_CustomMissile("T1F6S6",40,9,random(-1,1))
	NZ53 G 4
	NZ53 G 16
	Goto See
  Pain:
    NZ53 I 3
    NZ53 I 3 A_Pain
    Goto See
  Death:
    NZ53 J 4 A_Scream
    NZ53 K 4 
    NZ53 L 4 A_NoBlocking
    NZ53 M 4 A_PlaySound("misc/bodies/drop")
    NZ53 N -1
    Stop
  }
}