Actor NaziPoltergeist
{
//Creator: Vast Unliking
//Origin: Nexus Infinity
//Sprite: SP8C
//Title: "Poltergeist" 
Monster
Scale 1.25
Health 2000
Height 64
Radius 30
Mass 5000
Speed 60
MaxStepHeight 32
MaxDropOffHeight 32
Reactiontime 24
PainChance 64
PainChance "Crush", 256
PainChance "Explosion", 100
PainChance "Mine", 100
PainChance "NuclearFire", 100
MeleeRange 150
+BOSS
+BOSSDEATH
+NOICEDEATH
+NOTIMEFREEZE
+DONTMORPH
+DONTRIP
+FLOORCLIP
+FLOAT
+NOGRAVITY
+NORADIUSDMG
-NOINFIGHTING
-NOPAIN
+NOBLOOD
+FLOORCLIP
+NOTARGET
+LOOKALLAROUND
+MISSILEMORE
+MISSILEEVENMORE
+QUICKTORETALIATE
+DONTHARMSPECIES
Species "SS"
Damagetype "SS"
DamageFactor "SS", 0.0
DamageFactor 0.55
DropItem "NemesisHealthBonusMax" 256 32
DropItem "NemesisArmorBonus32" 256
DropItem "NemesisHealthBonusMax" 256 32
DropItem "NemesisArmorBonus32" 256
DropItem "NemesisSuperSphere" 160
DropItem "LegendarySalvationSphere" 240
DropItem "NemesisGreaterDemonicEnergy" 256
DropItem "NemesisDemonicEnergy" 256
DropItem "BossLifeEssence" 256
DropItem "BossArmorBonusMax" 256
DropItem "PortableMedCell", 256, 1
DropItem "PortableMedCellPack", 256, 1
DropItem "ArmorPlate" 256
DropItem "ArmorPlate" 256
DropItem "ArmorPlate" 256
DropItem "AmmoPack", 256, 5
DropItem "ArmorCharge", 256, 5
DropItem "LegendaryRune" 200
//this is revolting
DamageFactor "Void", 0
DamageFactor "None", 0.3
DamageFactor "Sharp", 0
DamageFactor "Ice", 0.2
Damagefactor "Melee", 0.5
Damagefactor "Crush", 0.1
Damagefactor "Acid", 0.1
Damagefactor "Fire", 0.1
Damagefactor "Poison", 0.0
Damagefactor "PoisonCloud", 0.1
Damagefactor "Electric", 0.01
Damagefactor "Disintegrate", 0.01
DamageFactor "DrainLife", 0.0
DamageFactor "Extreme", 0.0
DamageFactor "Player", 0.3
DamageFactor "Players", 0.02
DamageFactor "PyroShot", 0.10
DamageFactor "PlayerPyro", 0.10
DamageFactor "PDTPuff", 0.0
DamageFactor "Explosion", 0.2
DamageFactor "NuclearFire", 0.01
DamageFactor "BFG9500Ball", 0.5
DamageFactor "BFGSplash", 0.5
DamageFactor "UpBFG9500Ball", 0.5
DamageFactor "UpBFGSplash", 0.4
DamageFactor "PDTBFG", 0.3
DamageFactor "PDTBFGTracer", 0.3
DamageFactor "PlayerDevBall", 0.2
DamageFactor "PlayerDevBall2", 0.2
DamageFactor "PlayerDevTracer", 0.30
DamageFactor "PlayerDBFG2", 0.2
DamageFactor "PlayerDBFG10K2", 0.2
DamageFactor "PlayerDBFGSplash2", 0.2
DamageFactor "PlayerBHole", 0.25
DamageFactor "LegendaryPlayer", 0.2
DamageFactor "PlayerHellfire", 0.1
DamageFactor "SuperWeapon", 0.1
DamageFactor "LegendaryGuruPlayer", 0.1
DamageFactor "Legendary", 0.0
DamageFactor "LegendaryGuru", 0.0
DamageFactor "LACGrenade", 0.0
DamageFactor "LSSGGrenade", 0.0
SeeSound "NaziGhost/sight"
ActiveSound "NaziGhost/active"
PainSound "NaziGhost/pain"
DeathSound "NaziGhost/death"
Tag "\c[b7]Poltergeist\c-"
Obituary "%o was buried 9 feet under."
HitObituary "%o's body was never found."
var int user_music;
var int user_missile;
States
	{
	Spawn:
		SP8C A 3 Bright A_Look
		Loop
	Idle:
		TNT1 A 0 A_GiveInventory("ResetMonsterInvul",1)
		TNT1 A 0 A_ChangeFlag("FRIGHTENED",0)
		TNT1 A 0 A_ChangeFlag("NOFEAR",1)
		TNT1 A 0 A_ChangeFlag("NOCLIP",0)
		TNT1 A 0 A_ChangeFlag("NOPAIN",0)
		SP8C AAAA 3 Bright A_Wander
		TNT1 A 0 A_Look
		SP8C BBBB 3 Bright A_Wander
		TNT1 A 0 A_Look
		SP8C AAAA 3 Bright A_Wander
		TNT1 A 0 A_Look
		SP8C BBBB 3 Bright A_Wander
		TNT1 A 0 A_Look
		Loop
	See:
		TNT1 A 0 A_GiveInventory("ResetMonsterInvul",1)
		TNT1 A 0 A_ChangeFlag("FRIGHTENED",0)
		TNT1 A 0 A_ChangeFlag("NOFEAR",1)
		TNT1 A 0 A_ChangeFlag("NOCLIP",1)
		TNT1 A 0 A_JumpIf(user_music == 1,3)
		TNT1 A 0 ACS_NamedExecuteAlways("StartMonsterMusic",0,2065)
		TNT1 A 0 A_SetUserVar("user_music",1)
		SP8C A 3 Fast A_Chase
		Loop
	Melee:
		SP8C C 1 Bright A_CustomMissile("NemesisTormentorDeathEffect",0,0,random(0,360),2,random(-5,30))
		TNT1 A 0 A_CustomMissile("NemesisTormentorDeathEffect",0,0,random(0,360),2,random(-5,30))
		TNT1 A 0 A_CustomMissile("NemesisTormentorDeathEffect",0,0,random(0,360),2,random(-5,30))
		TNT1 A 0 A_CustomMissile("NemesisTormentorDeathEffect",0,0,random(0,360),2,random(-5,30))
		TNT1 A 0 A_CustomMissile("NemesisTormentorDeathEffect",0,0,random(0,360),2,random(-5,30))
		TNT1 A 0 A_CustomMissile("NemesisTormentorDeathEffect",0,0,random(0,360),2,random(-5,30))
		TNT1 A 0 A_CustomMissile("NemesisTormentorDeathEffect",0,0,random(0,360),2,random(-5,30))
		TNT1 A 0 A_CustomMissile("NemesisTormentorDeathEffect",0,0,random(0,360),2,random(-5,30))
		TNT1 A 0 A_CustomMissile("NemesisTormentorDeathEffect",0,0,random(0,360),2,random(-5,30))
		TNT1 A 0 A_CustomMissile("NemesisTormentorDeathEffect",0,0,random(0,360),2,random(-5,30))
		TNT1 A 0 A_CustomMissile("NemesisTormentorDeathEffect",0,0,random(0,360),2,random(-5,30))
		TNT1 A 0 A_CustomMissile("NemesisTormentorDeathEffect",0,0,random(0,360),2,random(-5,30))
		TNT1 A 0 A_CustomMissile("NemesisTormentorDeathEffect",0,0,random(0,360),2,random(-5,30))
		TNT1 A 0 A_CustomMissile("NemesisTormentorDeathEffect",0,0,random(0,360),2,random(-5,30))
		TNT1 A 0 A_CustomMissile("NemesisTormentorDeathEffect",0,0,random(0,360),2,random(-5,30))
	Missile:
		TNT1 A 0 A_Jump(160,"SoulRelease","SpiritFire","PossessionAttack","SoulStorm")
	Pain:
		TNT1 A 0 A_Pain
		SP8C D 6 Bright
		Goto See
	SoulRelease: 
		TNT1 A 0 A_SetInvulnerable
		TNT1 A 0 A_SetUserVar("user_missile", 0)
		SP8C AAAA 4 Bright A_FaceTarget
	SoulLoop:
		TNT1 A 0 A_JumpIf(user_missile > 100,"SoulEnd")
		TNT1 A 0 A_SetUserVar(user_missile,user_missile+1)
		SP8C C 4 Bright A_FaceTarget
		SP8C CCCC 1 Bright A_CustomMissile("NemesisTormentorDeathEffect",0,0,random(0,360),2,random(-5,30))
		TNT1 A 0 A_CustomMissile("NemesisTormentorDeathEffect",0,0,random(0,360),2,random(-5,30))
		TNT1 A 0 A_CustomMissile("NemesisTormentorDeathEffect",0,0,random(0,360),2,random(-5,30))
		SP8C CCCC 1 Bright A_CustomMissile("NemesisTormentorDeathEffect",0,0,random(0,360),2,random(-5,30))
		TNT1 A 0 A_CustomMissile("NemesisTormentorDeathEffect",0,0,random(0,360),2,random(-5,30))
		TNT1 A 0 A_CustomMissile("NemesisTormentorDeathEffect",0,0,random(0,360),2,random(-5,30))
		SP8C CCCC 1 Bright A_CustomMissile("NemesisTormentorDeathEffect",0,0,random(0,360),2,random(-5,30))
		TNT1 A 0 A_CustomMissile("NemesisTormentorDeathEffect",0,0,random(0,360),2,random(-5,30))
		TNT1 A 0 A_CustomMissile("NemesisTormentorDeathEffect",0,0,random(0,360),2,random(-5,30))
	SoulEnd:
		TNT1 A 0 A_SpawnItemEx("TrueNemesisHellionSmokeSpawner")
		SP8C C 6 Bright
		TNT1 A 0 A_SpawnItemEx("TrueNemesisHellionSmokeSpawner")
		SP8C C 6 Bright
		TNT1 A 0 A_SpawnItemEx("TrueNemesisHellionSmokeSpawner")
		SP8C C 6 Bright
		TNT1 A 0 A_SpawnItemEx("TrueNemesisHellionSmokeSpawner")
		SP8C C 6 Bright
		TNT1 A 0 A_SpawnItem("NemesisDeathBall")
		Goto See
	SpiritFire:
		SP8C C 3 Bright A_CustomMissile("PoltergeistFireBall",32,0,random(-2,2),0)
		TNT1 A 0 A_CustomMissile("PoltergeistFireBall",32,0,random(-2,2),0)
		TNT1 A 0 A_CustomMissile("PoltergeistFireBall",32,0,random(-2,2),0)
		TNT1 A 0 A_CustomMissile("PoltergeistFireBall",32,0,random(-2,2),0)
	SoulStorm:
		TNT1 A 0 A_PlaySound("NaziGhost/Attack",1)
		TNT1 A 0 Radius_Quake(6,60,0,18,0)
		SP8C C 2 Bright A_FaceTarget
		SP8C CCCCCCC 2 Bright A_SpawnItem("TrueNemesisHellionSmokeSpawner",0,0,0,0)
		SP8C D 2 Bright A_FaceTarget
		SP8C DDDDDDD 2 Bright A_SpawnItem("TrueNemesisHellionSmokeSpawner",0,0,0,0)
		SP8C D 2 Bright A_FaceTarget
		TNT1 A 0 A_SetUserVar(user_missile,0)
	SoulStormLoop:
		TNT1 A 0 A_JumpIf(user_missile >= 10,"SoulStormEnd") //20
		TNT1 A 0 A_SetUserVar("user_missile",user_missile+1)
		SP8C D 2 Bright A_SpawnItemEx("NaziPoltergeistStorm",random(-800,800),random(-800,800),0,0,0,0,SXF_NOCHECKPOSITION,0)
		Loop
	SoulStormEnd:
		SP8C D 2 Bright A_FaceTarget
		SP8C DDDDDDDD 2 Bright A_SpawnItem("TrueNemesisHellionSmokeSpawner",0,0,0,0)
		Goto See
	PossessionAttack:
		TNT1 A 0 A_ChangeFlag("NOPAIN",1)
		TNT1 A 0 A_Jump(256,"MimicKrieger","MimicDeathKnight","MimicSchabbs")
		Goto See
	MimicKrieger:
		TNT1 A 0 A_PlaySound("NaziGhost/Attack",2)
		TNT1 A 0 A_PlaySound("LegKrieger/death",1)
		TNT1 A 0 A_CustomMissile("PoltergeistKriegerGhost",40)
		SP8C DDDDDDDDD 6 Bright A_FaceTarget
		TNT1 A 0 A_SetUserVar("user_missile",0)
	MimicKriegerLoop:
		TNT1 A 0 A_JumpIf(user_missile >= 15,"See")
		TNT1 A 0 A_SetUserVar(user_missile,user_missile+1)
		TNT1 A 0 A_FaceTarget
		TNT1 A 0 A_CustomMissile("Nemesis10kProjectile",62,18,random(4,-8),CMF_TRACKOWNER)
		SP8C D 2 Bright A_PlaySound("hitler/fire",1)
		TNT1 A 0 A_CustomMissile("Nemesis10kProjectile",62,18,random(4,-8),CMF_TRACKOWNER)
		SP8C D 2 Bright A_PlaySound("hitler/fire",1)
		Loop
	MimicDeathKnight:
		TNT1 A 0 A_PlaySound("NaziGhost/Attack",2)
		TNT1 A 0 A_PlaySound("DeathKnight/death",1)
		TNT1 A 0 A_CustomMissile("PoltergeistDeathKnightGhost",40)
		SP8C DDDDDDDDD 6 Bright A_FaceTarget
		TNT1 A 0 A_SetUserVar("user_missile",0)
	MimicDeathKnightLoop:
		TNT1 A 0 A_JumpIf(user_missile >= 5,"See")
		TNT1 A 0 A_SetUserVar(user_missile,user_missile+1)
		TNT1 A 0 A_FaceTarget
		TNT1 A 0 A_CustomMissile("DeathKnight15K",62,18,random(4,-8),CMF_TRACKOWNER)
		SP8C D 2 Bright A_PlaySound("hitler/fire",1)
		TNT1 A 0 A_CustomMissile("DeathKnight15K",62,18,random(4,-8),CMF_TRACKOWNER)
		SP8C D 2 Bright A_PlaySound("hitler/fire",1)
		TNT1 A 0 A_FaceTarget
		TNT1 A 0 A_CustomMissile("DeathKnight10K",62,18,random(4,-8),CMF_TRACKOWNER)
		SP8C D 2 Bright A_PlaySound("hitler/fire",1)
		TNT1 A 0 A_CustomMissile("DeathKnight10K",62,18,random(4,-8),CMF_TRACKOWNER)
		SP8C D 2 Bright A_PlaySound("hitler/fire",1)
		Loop
	MimicSchabbs:
		TNT1 A 0 A_PlaySound("NaziGhost/Attack",2)
		TNT1 A 0 A_PlaySound("Schabbs/Death",1)
		TNT1 A 0 A_CustomMissile("PoltergeistSchabbsGhost",40)
		SP8C DDDDDDDDD 6 Bright A_FaceTarget
		TNT1 A 0 A_CustomMissile("PoisonSyringe",62,18,random(4,-8),CMF_TRACKOWNER)
		SP8C D 2 Bright
		TNT1 A 0 A_CustomMissile("PoisonSyringe",62,18,random(4,-8),CMF_TRACKOWNER)
		SP8C D 2 Bright
		Goto PossessionAttack
	Death:
		SP8C D 10 Bright
		SP8C DEDEDEDEDEDEDEDEDEDEDEDE 2 Bright
		TNT1 A 0 A_SpawnItem("MiniNemesisDeathBall")
		SP8C FGFGFGFGFGFGFGFGFGFGFGFG 2 Bright 
		TNT1 A 0 A_SpawnItem("MiniNemesisDeathBall")
		SP8C GHGHGHGHGHGHGHGHGHGHGHGH 2 Bright
		TNT1 A 0 A_SpawnItem("MiniNemesisDeathBall")
		SP8C D 20 Bright
		TNT1 A 0 A_CustomMissile("NemesisTormentorDeathEffect",0,0,random(0,360),2,random(-5,30))
		TNT1 A 0 A_CustomMissile("NemesisTormentorDeathEffect",0,0,random(0,360),2,random(-5,30))
		TNT1 A 0 A_CustomMissile("NemesisTormentorDeathEffect",0,0,random(0,360),2,random(-5,30))
		TNT1 A 0 A_CustomMissile("NemesisTormentorDeathEffect",0,0,random(0,360),2,random(-5,30))
		TNT1 A 0 A_CustomMissile("NemesisTormentorDeathEffect",0,0,random(0,360),2,random(-5,30))
		TNT1 A 0 A_CustomMissile("NemesisTormentorDeathEffect",0,0,random(0,360),2,random(-5,30))
		TNT1 A 0 A_CustomMissile("NemesisTormentorDeathEffect",0,0,random(0,360),2,random(-5,30))
		TNT1 A 0 A_CustomMissile("NemesisTormentorDeathEffect",0,0,random(0,360),2,random(-5,30))
		TNT1 A 0 A_CustomMissile("NemesisTormentorDeathEffect",0,0,random(0,360),2,random(-5,30))
		TNT1 A 0 A_CustomMissile("NemesisTormentorDeathEffect",0,0,random(0,360),2,random(-5,30))
		TNT1 A 0 A_CustomMissile("NemesisTormentorDeathEffect",0,0,random(0,360),2,random(-5,30))
		TNT1 A 0 A_CustomMissile("NemesisTormentorDeathEffect",0,0,random(0,360),2,random(-5,30))
		TNT1 A 0 A_CustomMissile("NemesisTormentorDeathEffect",0,0,random(0,360),2,random(-5,30))
		TNT1 A 0 A_CustomMissile("NemesisTormentorDeathEffect",0,0,random(0,360),2,random(-5,30))
		TNT1 A 0 A_SpawnItem("NemesisDeathBall")
		SP8C DEFGH 2
		TNT1 A 0 A_PlaySound("NaziGhost/death")
		TNT1 A 0 A_Fall
		TNT1 A 0 A_BossDeath
		TNT1 A 0 A_SpawnItemEx("AmmoSphere",0,0,8,random(0,8),random(0,8),2,random(0,360),0,32)
		TNT1 A 0 A_Jump(5,"DeathRes")
		Stop
	}
}

ACTOR NaziPoltergeistStorm : MReimuDarkMatterRain
{
Renderstyle Shadow
States
{
Spawn:
	TNT1 AAAAAAAAAAAAAAAAAAAA 1 A_Wander
	MMRA ABCDEFGHIJABCDEFGHIJ 2 Bright A_Wander
    TNT1 A 0 A_CustomMissile("FallingSoul",-18,random(0,20),random(0,360),2)
	MMRA AAABBBCCC 1 Bright A_Wander
    TNT1 A 0 A_CustomMissile("FallingSoul",-18,random(0,20),random(0,360),2)
	MMRA EEEFFFGGG 1 Bright A_Wander
    TNT1 A 0 A_CustomMissile("FallingSoul",-18,random(0,20),random(0,360),2)
	MMRA HHHIIIJJJ 1 Bright A_Wander
	TNT1 A 0 A_CustomMissile("FallingSoul",-18,random(0,20),random(0,360),2)
	MMRA AAABBBCCC 1 Bright A_Wander
    TNT1 A 0 A_CustomMissile("FallingSoul",-18,random(0,20),random(0,360),2)
	MMRA EEEFFFGGG 1 Bright A_Wander
    TNT1 A 0 A_CustomMissile("FallingSoul",-18,random(0,20),random(0,360),2)
	MMRA HHHIIIJJJ 1 Bright A_Wander
	TNT1 A 0 A_CustomMissile("FallingSoul",-18,random(0,20),random(0,360),2)
FadeOut:
	MMRA ABCDEFGHIJ 2 Bright A_FadeOut(0.06)
    Goto FadeOut
	}
}

ACTOR FallingSoul : NemesisExileSkullShot
{
  Radius 6
  Height 6
  Speed 5
  -FLOAT
  -NOGRAVITY
  +SPAWNCEILING
  +MTHRUSPECIES
  +DONTHURTSPECIES
  +DONTHARMSPECIES
  +FLOORCLIP
}

ACTOR PoltergeistFireBall : VexedNemesisImpSuperFireball
{
  Radius 5
  Height 5
  Speed 20
  Damage 20
  Species "SS"
  DamageType "SS"
  RenderStyle Subtract
  Projectile
  +NODAMAGETHRUST
  Obituary "%o was buried 9 feet under."
  Seesound "weapons/diasht"
  DeathSound "weapons/firex3"   
}

ACTOR PoltergeistKriegerGhost : NemesisExileSoulGhost
{   
  Scale 1.2
  Renderstyle Subtract
  States
  {
  Spawn:
	HIML EEEEEEEE 5 A_FaceTracer
	TNT1 A 0 A_FaceTracer
	HIML E 5 A_FadeOut(0.1)
	Goto Spawn+8
	}
}

ACTOR PoltergeistDeathKnightGhost : NemesisExileSoulGhost
{   
  Scale 1.2
  Renderstyle Subtract
  States
  {
  Spawn:
	DTKN JJJJJJJJ 5 A_FaceTracer
	TNT1 A 0 A_FaceTracer
	DTKN J 5 A_FadeOut(0.1)
	Goto Spawn+8
	}
}

ACTOR PoltergeistSchabbsGhost : NemesisExileSoulGhost
{   
  Scale 1.2
  Renderstyle Subtract
  States
  {
  Spawn:
	SBBS HHHHHHHH 5 A_FaceTracer
	TNT1 A 0 A_FaceTracer
	SBBS H 5 A_FadeOut(0.1)
	Goto Spawn+8
	}
}