//Weredragon

Actor NewBeast : Beast replaces Beast
{
	PainChance "Convert", 255
	+NODAMAGETHRUST
	//DropItem "NewMana1", 84, 30
	DropItem "ReagentRed", 64
	Meleerange 64
	Health 400
	Tag "Weredragon"
	Damagetype "Physical"
	States
	{
	Spawn:
		BEAS A 0
		BEAS A 0 ACS_ExecuteAlways(WOC_MONSTERSCRIPT,0,400,80,0)//increase health on higher difficulties
	Idle:
		BEAS AB 10 A_Look
		Loop
	Pain.Morale:
		TNT1 A 0 A_Changeflag("Frightened", 1)
		Goto Pain
	Pain.Convert:
		TNT1 A 0 A_JumpIfInTargetInventory("Visions",Random(0,6),"ConvertMe")
		goto Pain
	ConvertMe:
		TNT1 A 0 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,45)
		TNT1 A 0 ACS_ExecuteAlways(WOC_VISIONSSCRIPT,0,0,0,0)
		goto See
	Melee:
	Missile:
		BEAS H 8 A_FaceTarget
		BEAS I 8 A_CustomComboAttack("BeastBall", 42, random(17,37) + (ACS_ExecuteWithResult(WOC_MONSTERSCALE,6,ACTIVATOR,0)), "beast/attack", "Physical")
		Goto See
	Pain:
		BEAS G 3
		BEAS G 3 A_Pain
		Goto See
	Death:
		BEAS A 0 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,45)
		BEAS R 6
		BEAS S 6 A_Scream
		BEAS TUV 6
		BEAS W 6 A_NoBlocking
		BEAS XY 6
		BEAS Z -1
		Stop
	XDeath:
		BEAS J 0 A_SpawnItemEX("GIBBER")
		BEAS J 5 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,45)
		BEAS K 6 A_Scream
		BEAS L 5
		BEAS M 6
		BEAS N 5
		BEAS O 6 A_NoBlocking
		BEAS P 5
		BEAS Q -1
		Stop
	Ice:
		"----" A 0 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,45)
		"----" G 5 A_GenericFreezeDeath
		"----" G 1 A_FreezeDeathChunks
		Wait
	Raise:
		BEAS Y 0 ACS_ExecuteAlways(WOC_MONSTERSCRIPT,0,400,80,0)
		BEAS YXWVUTSR 6
		Goto See
	}
}

Actor NewBeastBall : BeastBall replaces BeastBall
{
	Damagetype "Fire"
	Damage ((random(17,37))+(ACS_ExecuteWithResult(WOC_MONSTERSCALE,6,TARGET,0)))
	+NODAMAGETHRUST
	Speed 18
	FastSpeed 25
	States
	{
	Spawn:
		FRB1 AAAABBBBCCCC 1 A_SpawnItemEx("NewPuffy", random2[BeastPuff]()*0.015625, random2[BeastPuff]()*0.015625,
                                random2[BeastPuff]()*0.015625, 0, 0, 0, 0, SXF_NOCHECKPOSITION|SXF_ABSOLUTEPOSITION)
		Loop
	Death:
		FRB1 DEFGH 4
		Stop
	}
}

Actor NewPuffy : Puffy
{
	+NOINTERACTION
	+CLIENTSIDEONLY +DONTBLAST
	+DONTSPLASH
	States
	{
	Spawn:
		FRB1 DDEEFFGGHH 1 A_FadeOut(0.04)
		Stop
	}
}

//Sabreclaw

Actor NewClinkHeretic : Clink replaces Clink
{
  DropItem "ReagentTan", 64
  //DropItem "NewMana2", 84, 15
  PainChance "Convert", 255
  Damage (random(6,18)+(ACS_ExecuteWithResult(WOC_MONSTERSCALE,2,ACTIVATOR,0)))
  +NODAMAGETHRUST
  Tag "Sabreclaw"
  Obituary "$OB_CLINK" // "%o was slashed by a sabreclaw."
  MeleeRange 52
  MaxTargetRange 200
  Health 200
  Damagetype "Physical"
  Speed 16
  AttackSound ""
  States
  {
  Spawn:
	CLNK A 0
	CLNK A 0 ACS_ExecuteAlways(WOC_MONSTERSCRIPT,0,200,56,0)//increase health on higher difficulties
  Idle:
    CLNK AB 10 A_Look
    Loop
  See:
    CLNK A 2 A_Chase
	CLNK B 3 A_Chase
	CLNK C 2 A_Chase
	CLNK D 3 A_Chase
    Loop
  Melee:
    CLNK E 5 A_FaceTarget
	CLNK F 0 A_PlayWeaponSound("Clink/Swing")
    CLNK F 4 A_FaceTarget
    CLNK G 6 A_CustomMeleeAttack(random(8,15)+(ACS_ExecuteWithResult(WOC_MONSTERSCALE,3,ACTIVATOR,0)), "Clink/Attack", "", "Physical", 1)
    Goto See
  Missile:
	CLNK P 6 A_FaceTarget
	CLNK P 0 A_FaceTarget
	CLNK Q 1 ThrustThingZ(0,40,0,1)
    CLNK Q 0 A_SpawnItemEx("SabreclawGhostTrail",0,0,0,0,0,0,0,128,0)
    CLNK E 0 A_FaceTarget
    CLNK Q 0 A_Recoil (-10)
	CLNK QQQQ 1 A_JumpIfCloser(71, "MeleeStrike")
	CLNK Q 0 A_SpawnItemEx("SabreclawGhostTrail",0,0,0,0,0,0,0,128,0)
	CLNK QQQQ 1 A_JumpIfCloser(71, "MeleeStrike")
	CLNK Q 0 A_SpawnItemEx("SabreclawGhostTrail",0,0,0,0,0,0,0,128,0)
	CLNK QQQQ 1 A_JumpIfCloser(71, "MeleeStrike")
	CLNK Q 0 A_SpawnItemEx("SabreclawGhostTrail",0,0,0,0,0,0,0,128,0)
	CLNK QQQP 1 A_JumpIfCloser(71, "MeleeStrike")
	CLNK P 0 A_SpawnItemEx("SabreclawGhostTrail2",0,0,0,0,0,0,0,128,0)
	CLNK PPPP 1 A_JumpIfCloser(71, "MeleeStrike")
	CLNK P 0 A_SpawnItemEx("SabreclawGhostTrail2",0,0,0,0,0,0,0,128,0)
	CLNK P 1 A_JumpIfTargetInsideMeleeRange("MeleeStrike")
	Goto See
	MeleeStrike:
		CLNK G 0 A_FaceTarget
		CLNK G 7 A_CustomMeleeAttack(random(8,15)+(ACS_ExecuteWithResult(WOC_MONSTERSCALE,3,ACTIVATOR,0)), "clink/attack", "clink/swing", "Physical", 1)
		Goto See
  Pain:
    CLNK H 3
    CLNK H 3 A_Pain
    Goto See
  Pain.Morale:
	TNT1 A 0 A_Changeflag("Frightened", 1)
	Goto Pain
  Pain.Convert:
	TNT1 A 0 A_JumpIfInTargetInventory("Visions",Random(0,6),"ConvertMe")
	goto Pain
  ConvertMe:
	TNT1 A 0 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,40)
	TNT1 A 0 ACS_ExecuteAlways(WOC_VISIONSSCRIPT,0,0,0,0)
	goto See
  Death:
	CLNK I 0 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,40)
    CLNK I 6 A_Scream
	CLNK J 6
    CLNK K 5
    CLNK L 5 A_NoBlocking
    CLNK MN 5
    CLNK O -1
    Stop
  Ice:
	"----" A 0 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,40)
	"----" G 5 A_GenericFreezeDeath
	"----" G 1 A_FreezeDeathChunks
	Wait
  Raise:
	CLNK A 0 ACS_ExecuteAlways(WOC_MONSTERSCRIPT,0,200,56,0)
	CLNK NMLKJI 6
	Goto See
  }
}

// Iron-Lich
Actor NewIronLich : IronLich Replaces IronLich
{
	//DropItem "NewMana1", 84, 15
	Dropitem "NewArtiEgg", 51
	Damagefactor "DeathBlow", 0
	+NODAMAGETHRUST
	+NOFEAR
	DropItem "AccessoryRandomSpawner" 8
	Health 1200
	Tag "Iron Lich"
	Damagetype "Physical"
	States
	{
	Spawn:
		LICH A 0
		LICH A 0 ACS_ExecuteAlways(WOC_MONSTERSCRIPT,0,1200,72,WOC_SUBBOSS)//increase health on higher difficulties
	Idle:
		LICH A 10 A_Look
		Loop
	Death:
		LICH C 0 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,90)
		LICH C 1 A_SpawnItemEx ("Kaboom", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
		LICH C 1 A_SpawnItemEx ("Kaboom", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
		LICH C 1 A_SpawnItemEx ("Kaboom", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
		LICH C 1 A_SpawnItemEx ("Kaboom", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
		LICH C 1 A_SpawnItemEx ("Kaboom", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
		LICH C 1 A_SpawnItemEx ("Kaboom", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
		LICH C 1 A_SpawnItemEx ("Kaboom", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
		LICH D 7 A_Scream
		LICH EF 7
		LICH G 7 A_NoBlocking
		LICH H 7
		LICH I -1 A_BossDeath
		Stop
	Ice:
		"----" A 0 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,90)
		"----" G 5 A_GenericFreezeDeath
		"----" G 1 A_FreezeDeathChunks
		Wait
	}
}

Actor NewHeadFX1 : HeadFX1 replaces HeadFX1
{
	Damage (random(1,8)+(ACS_ExecuteWithResult(WOC_MONSTERSCALE,1,TARGET,0)))
	Damagetype "Ice"
	DeathSound "ironlich/attack2hit"
	+NODAMAGETHRUST
	Speed 15
	FastSpeed 20
	States
    {
    Spawn:
	FX05 AAABBBCCC 1 Bright A_SpawnItemEx("IceCometTrail",0,0,0,0,0,0,0,128)
	Loop
	}
}

Actor NewHeadFX2 : HeadFX2 replaces HeadFX2
{
	Damage ((random(3,24))+(ACS_ExecuteWithResult(WOC_MONSTERSCALE,3,TARGET,0)))
	Damagetype "Ice"
	+NODAMAGETHRUST
	Speed 20
	FastSpeed 20
}

Actor NewHeadFX3 : HeadFX3 replaces HeadFX3
{
	Damage ((random(15,30))+(ACS_ExecuteWithResult(WOC_MONSTERSCALE,5,TARGET,0)))
	DeathSound "ironlich/attack1hit"
	+NODAMAGETHRUST
	Speed 15
	FastSpeed 20
}

Actor NewWhirlWind : Whirlwind replaces WhirlWind
{
	Damage (random(1,8)+(ACS_ExecuteWithResult(WOC_MONSTERSCALE,1,TARGET,0)))
	Damagetype "Physical"
	States
	{
	Spawn:
		FX07 DEFG 3 
	Chase:
		FX07 A 1 A_WhirlwindSeek
		FX07 A 1
		FX07 AAA 0 A_SpawnItemEx("LeafFX",0,0,random(0,8),random(-5,0), random(-5,0),random(0,2),random(90,270))
		FX07 A 1	
		FX07 B 1 A_WhirlwindSeek
		FX07 BBB 0 A_SpawnItemEx("LeafFX",0,0,random(0,8),random(-5,0), random(-5,0),random(0,1),random(90,270))
		FX07 B 1
		FX07 B 1
		FX07 C 1 A_WhirlwindSeek
		FX07 CC 0 A_SpawnItemEx("LeafFX",0,0,random(0,8),random(-5,0), random(-5,0),random(0,4),random(90,270))
		FX07 C 1
		FX07 C 1
		FX07 CCC 0 A_SpawnItemEx("LeafFX",0,0,random(0,8),random(-5,0), random(-5,0),random(0,1),random(90,270))
		Loop
	Death:
		TNT1 AAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("LeafFX",0,0,random(0,8),random(-5,0), random(-5,0),random(0,7),random(0,360))
		FX07 G 4
		TNT1 AAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("LeafFX",0,0,random(0,8),random(-5,0), random(-5,0),random(0,7),random(0,360))
		FX07 F 4
		TNT1 AAAAAAAAAAAAAAA 0 A_SpawnItemEx("LeafFX",0,0,random(0,8),random(-5,0), random(-5,0),random(0,7),random(0,360))
		FX07 E 4
		TNT1 AAAAAAAAAAAAA 0 A_SpawnItemEx("LeafFX",0,0,random(0,8),random(-5,0), random(-5,0),random(0,7),random(0,360))
		FX07 D 4
		Stop
	}
}

ACTOR LeafFX
{
  +NOBLOCKMAP
  +NOGRAVITY
  +NOTELEPORT
  +CANNOTPUSH
  +CLIENTSIDEONLY +DONTBLAST
  +NOINTERACTION
  scale 1.1
  States
  {
  Spawn:
    SMOK A 0 
	TNT1 A 1 A_Jump(256,"LEF1A0","LEF2A0","LEF3A0")
	Loop
  LEF1A0:
    LEF1 ABCDEFGHIABCDEFGHI 2
  FadeLoopA:
    LEF1 ABCDEFGHI 1 A_FadeOut
	Loop
  LEF2A0:
    LEF2 ABCDEFGHIABCDEFGHIABCDEFGHI 2
  FadeLoopB:
    LEF2 ABCDEFGHI 1 A_FadeOut
	Loop
  LEF3A0:
    LEF3 ABCDE 2
  FadeLoopB:
    LEF3 ABCDE 1 A_FadeOut
	Loop
  }
}

//Undead Knight

Actor NewKnight : Knight Replaces Knight
{
	+NOBLOOD
	Meleerange 72
	PainChance "Convert", 255
	//DropItem "NewMana1", 84, 15
	DropItem "ReagentGreen", 64
	DropItem "Money" 64
	DropItem "Money" 64
	DropItem "Money" 64
	DropItem "Money" 64
	DropItem "Money1" 64
	DropItem "Money1" 8
	DropItem "Money2" 4
	DropItem "Money3" 2
	DropItem "ChestKey" 2
	Health 300
	+NODAMAGETHRUST
	Tag "Undead Knight"
	Damagetype "Physical"
	Speed 15
	AttackSound "none"
	States
	{
	Spawn:
		KNIG A 0
		KNIG A 0 ACS_ExecuteAlways(WOC_MONSTERSCRIPT,0,300,78,0)//increase health on higher difficulties
	Idle:
		KNIG AB 10 A_Look
		Loop
	Pain.Morale:
		TNT1 A 0 A_Changeflag("Frightened", 1)
		Goto Pain
	Pain.Convert:
		TNT1 A 0 A_JumpIfInTargetInventory("Visions",Random(0,7),"ConvertMe")
		goto Pain
	ConvertMe:
		TNT1 A 0 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,40)
		TNT1 A 0 ACS_ExecuteAlways(WOC_VISIONSSCRIPT,0,0,0,0)
		goto See
	See:
		KNIG A 3 A_Chase
		KNIG B 4 A_Chase
		KNIG C 3 A_Chase
		KNIG D 4 A_Chase
		Loop
	Melee:
	Missile:
		KNIG E 6 A_FaceTarget
		KNIG F 2 A_FaceTarget
		KNIG F 4 A_PlayWeaponSound("hknight/swing")
		KNIG F 0 A_Jump(41, "RedAxe")
		KNIG G 6 A_CustomComboAttack("KnightAxe", 32, (random(3, 24)) + (ACS_ExecuteWithResult(WOC_MONSTERSCALE,3,ACTIVATOR,0)), "hknight/melee", "Physical")
		KNIG FE 3 A_FaceTarget
		KNIG F 2 A_FaceTarget
		KNIG F 4 A_PlayWeaponSound("hknight/swing")
		KNIG F 0 A_Jump(41, "RedAxe2")
		KNIG G 6 A_CustomComboAttack("KnightAxe", 32, (random(3, 24)) + (ACS_ExecuteWithResult(WOC_MONSTERSCALE,3,ACTIVATOR,0)), "hknight/melee", "Physical")
		Goto See
	Pain:
		KNIG H 3
		KNIG H 3 A_Pain
		Goto See
	RedAxe:
		KNIG G 6 A_CustomComboAttack("RedAxe", 32, (random(3, 24)) + (ACS_ExecuteWithResult(WOC_MONSTERSCALE,3,ACTIVATOR,0)), "hknight/melee", "Physical")
		Goto Missile+5
	RedAxe2:
		KNIG G 6 A_CustomComboAttack("RedAxe", 32, (random(3, 24)) + (ACS_ExecuteWithResult(WOC_MONSTERSCALE,3,ACTIVATOR,0)), "hknight/melee", "Physical")
		Goto See
	Death:
		KNIG A 0 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,40)
		KNIG I 6
		KNIG J 6 A_Scream
		KNIG K 6
		KNIG L 6 A_NoBlocking
		KNIG MN 6
		KNIG O -1
		Stop
	Ice:
		"----" A 0 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,40)
		"----" G 5 A_GenericFreezeDeath
		"----" G 1 A_FreezeDeathChunks
		Wait
	Raise:
		KNIG O 0 ACS_ExecuteAlways(WOC_MONSTERSCRIPT,0,300,78,0)
		KNIG ONMLKJI 6
		Goto See
	}
}

ACTOR NewKnightGhost : NewKnight replaces KnightGhost 65
{
	Game Heretic
	SpawnID 129
	+SHADOW
	+GHOST
	Translation "209:224=145:160"
	RenderStyle Translucent
	Alpha 0.4
	Tag "Undead Knight Ghost"
	Damagetype "Shadow"
	States
	{
	Melee:
	Missile:
		KNIG E 6 A_FaceTarget
		KNIG F 2 A_FaceTarget
		KNIG F 4 A_PlayWeaponSound("hknight/swing")
		KNIG G 6 A_CustomComboAttack("RedAxe", 32, (random(3, 24)) + (ACS_ExecuteWithResult(WOC_MONSTERSCALE,3,ACTIVATOR,0)), "hknight/melee", "Shadow")
		KNIG FE 3 A_FaceTarget
		KNIG F 2 A_FaceTarget
		KNIG F 4 A_PlayWeaponSound("hknight/swing")
		KNIG G 6 A_CustomComboAttack("RedAxe", 32, (random(3, 24)) + (ACS_ExecuteWithResult(WOC_MONSTERSCALE,3,ACTIVATOR,0)), "hknight/melee", "Shadow")
		Goto See
	}
}

Actor NewKnightAxe : KnightAxe replaces KnightAxe
{
	Damage ((random(2,16))+(ACS_ExecuteWithResult(WOC_MONSTERSCALE,2,TARGET,0)))
	+NODAMAGETHRUST
	Damagetype "Physical"
	Speed 16
	FastSpeed 25
}

Actor NewRedAxe : RedAxe replaces RedAxe
{
	Damage ((random(21,41))+(ACS_ExecuteWithResult(WOC_MONSTERSCALE,7,TARGET,0)))
	+NODAMAGETHRUST
	Damagetype "Physical"
	Speed 16
	FastSpeed 25
}


//Maulotaur
ACTOR NewMinotaurHeretic : Minotaur replaces Minotaur
{
  Damage ((random(35,55))+(ACS_ExecuteWithResult(WOC_MONSTERSCALE,10,ACTIVATOR,0)))
  DamageFactor "DeathBlow", 0
  Damagefactor "PoisonCloud", 0.25
  health 6000
  +NOPAIN
  meleerange 164
  mass 800
  -NORADIUSDMG
  +DONTHURTSPECIES
  +NODAMAGETHRUST
  +LOOKALLAROUND
  DropItem "NewArtiSuperHealth", 51
  //DropItem "NewMana2", 84, 45
  DropItem "AccessoryRandomSpawner" 16
  Obituary "%o was burnt to a crisp by the Maulotaur."
  HitObituary "%o was crushed by the Maulotaur."
  Tag "Maulotaur"
  Damagetype "Physical"
  AttackSound ""
  Speed 20
  states
  {
  Spawn:
	MNTR A 0
	MNTR A 0 ACS_ExecuteAlways(WOC_MONSTERSCRIPT,0,6000,110,WOC_SUBBOSS|WOC_MAXLEVEL)//increase health on higher difficulties//A_JumpIf(ACS_ExecuteWithResult(536,0,0,0)==1,"Mutate")
	Idle:
	MNTR AB 10 A_Look
    Loop
  Melee:
    MNTR U 0 A_UnSetInvulnerable
	MNTR U 0 A_TakeInventory("Hammercheck", 1)
    MNTR V 8 A_FaceTarget
    MNTR W 4 A_FaceTarget
	MNTR W 4 A_PlayWeaponSound("minotaur/swing")
    MNTR X 10 A_CustomMeleeAttack ((random(35,55))+(ACS_ExecuteWithResult(WOC_MONSTERSCALE,10,ACTIVATOR,0)), "minotaur/melee", "", "Physical")
    Goto See
  Missile:
    MNTR U 0 A_UnSetInvulnerable
    MNTR V 0 A_Jump(51, 2)
    MNTR V 0 A_JumpIfCloser(800, "Hammer")
	MNTR V 0 A_TakeInventory("Hammercheck", 1)
  	MNTR V 0 A_Jump(104, 2)
    MNTR V 0 A_JumpIfCloser(2000, "Charge")
    MNTR V 8
	MNTR V 0 A_PlayWeaponSound("minotaur/swing")
    MNTR Y 4 A_FaceTarget
	MNTR Z 0 A_CustomMissile("HMinotaurFX1", 40, 0, 0)
	MNTR Z 0 A_CustomMissile("HMinotaurFX1", 40, 0, 2.8125)
	MNTR Z 0 A_CustomMissile("HMinotaurFX1", 40, 0, -2.8125)
	MNTR Z 0 A_CustomMissile("HMinotaurFX1", 40, 0, 5.625)
	MNTR Z 0 A_CustomMissile("HMinotaurFX1", 40, 0, -5.625)
    MNTR Z 9
    Goto See
  Hammer:
    MNTR U 0 A_UnSetInvulnerable
  	MNTR V 0 A_JumpIfInventory("Hammercheck", 1, "Missile")
    MNTR V 8 A_FaceTarget
    MNTR W 4 A_FaceTarget
	MNTR W 4 A_PlayWeaponSound("minotaur/swing")
	MNTR W 0 A_PlaySound("minotaur/attack3", CHAN_VOICE)
	MNTR X 0 A_PlaySound("minotaur/attack1", CHAN_WEAPON)
    MNTR X 10 A_CustomMissile("HMinotaurFX2", 0, 0, 0)
	MNTR V 0 A_Jump(192, "HammerLoop")
    Goto See
  HammerLoop:
    MNTR X 10 A_GiveInventory("Hammercheck", 1)
    Goto Hammer
  Charge:
	MNTR U 0 A_SetInvulnerable
    MNTR U 0 A_FaceTarget
    MNTR U 0 A_SkullAttack(25)
	MNTR U 0 A_SpawnItemEx("MinoPuff",0,0,0,0,0,2)
	MNTR U 2
	MNTR U 0 A_JumpIf(z - floorz >= 15, "ChargeStop")
    goto Charge+3
   ChargeStop:
    SPOS A 0 A_Stop
    goto See
  See:
    MNTR A 0 A_UnSetInvulnerable
	MNTR ABCD 4 A_Chase
	Loop
  Death:
	MNTR A 0 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,400)
	MNTR F 0 A_SpawnItem("BOSSGIBBER")
    MNTR F 1 A_SpawnItemEx("Kaboom", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
    MNTR F 1 A_SpawnItemEx("Kaboom", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
    MNTR F 1 A_SpawnItemEx("Kaboom", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
    MNTR F 1 A_SpawnItemEx("Kaboom", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
    MNTR F 1 A_SpawnItemEx("Kaboom", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
    MNTR F 1 A_SpawnItemEx("Kaboom", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
    MNTR F 1 A_SpawnItemEx("Kaboom", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
    MNTR F 1 A_SpawnItemEx("Kaboom", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
    MNTR F 1 A_SpawnItemEx("Kaboom", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
    MNTR G 5
    MNTR H 6 A_Scream
    MNTR I 5
    MNTR J 6
    MNTR K 5
    MNTR L 6
	MNTR M 0 A_SpawnItem("BOSSGIBBER")
    MNTR M 5 A_NoBlocking
    MNTR N 6
    MNTR O 5
    MNTR P 6
    MNTR Q 5
    MNTR R 6
    MNTR S 5
    MNTR T -1 A_BossDeath
    Stop
  Ice:
	"----" A 0 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,400)
	"----" E 5 A_GenericFreezeDeath
	"----" E 1 A_FreezeDeathChunks
	Wait
  }
}

Actor HMinotaurFX1 : MinotaurFX1
{
	Damage ((Random(3,24))+(ACS_ExecuteWithResult(WOC_MONSTERSCALE,3,TARGET,0)))
	+NODAMAGETHRUST
}

Actor HMinotaurFX2 : MinotaurFX2
{
	Damage ((Random(8,28))+(ACS_ExecuteWithResult(WOC_MONSTERSCALE,4,TARGET,0)))
	+NODAMAGETHRUST
	Speed 15
	States
	{
	Spawn:
		FX13 A 2 Bright A_SpawnItemEx("HMinotaurFX3",random(-2,2),random(-2,2),0)
		Loop
	Death:
		FX13 I 4 Bright A_Explode(128+(ACS_ExecuteWithResult(WOC_MONSTERSCALE,28,TARGET,0)), 128, 0)
		FX13 JKLM 4 Bright
		Stop
	}
}

Actor HMinotaurFX3 : MinotaurFX3
{
	Damage ((Random(8,28))+(ACS_ExecuteWithResult(WOC_MONSTERSCALE,4,TARGET,0)))
	+NODAMAGETHRUST
	States
	{
	Death:
		FX13 I 4 Bright A_Explode(128+(ACS_ExecuteWithResult(WOC_MONSTERSCALE,28,TARGET,0)), 128, 0)
		FX13 JKLM 4 Bright
		Stop
	}
}

//Golems

Actor NewMummy : Mummy replaces Mummy
{
	Meleerange 52
	PainChance "Convert", 255
	DropItem "ReagentRed", 64
	//DropItem "NewMana1", 84, 5
	Health 160
	+NODAMAGETHRUST
	Tag "Golem"
	Damagetype "Physical"
	Speed 15
	States
	{
	Spawn:
		MUMM A 0
		MUMM A 0 ACS_ExecuteAlways(WOC_MONSTERSCRIPT,0,160,62,0)//increase health on higher difficulties
	Idle:
		MUMM AB 10 A_Look
		Loop
	Pain.Morale:
		TNT1 A 0 A_Changeflag("Frightened", 1)
		Goto Pain
	Pain.Convert:
		TNT1 A 0 A_JumpIfInTargetInventory("Visions",Random(0,4),"ConvertMe")
		goto Pain
	ConvertMe:
		TNT1 A 0 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,20)
		TNT1 A 0 ACS_ExecuteAlways(WOC_VISIONSSCRIPT,0,0,0,0)
		goto See
	See:
		MUMM A 3 A_Chase
		MUMM B 4 A_Chase
		MUMM C 3 A_Chase
		MUMM D 4 A_Chase
		Loop
	Melee:
		MUMM E 5 A_FaceTarget
		MUMM F 6 A_CustomMeleeAttack(random(8,9) + (ACS_ExecuteWithResult(WOC_MONSTERSCALE,2,ACTIVATOR,0)), "mummy/attack2", "", "Physical")
		MUMM G 4
		Goto See
	Pain:
		MUMM H 3
		MUMM H 3 A_Pain
		Goto See
	Death:
		MUMM A 0 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,20)
		MUMM I 1 A_SpawnItemEx("GIB1", 0, 0, random(0,42), 0, 0, random(2,6), random(0,360), 128)
		MUMM I 1 A_SpawnItemEx("GIB2", 0, 0, random(0,42), 0, 0, random(2,6), random(0,360), 128)
		MUMM I 1 A_SpawnItemEx("GIB3", 0, 0, random(0,42), 0, 0, random(2,6), random(0,360), 128)
		MUMM I 1 A_SpawnItemEx("GIB4", 0, 0, random(0,42), 0, 0, random(2,6), random(0,360), 128)
		MUMM I 1 A_SpawnItemEx("GIB5", 0, 0, random(0,42), 0, 0, random(2,6), random(0,360), 128)
		MUMM J 1 A_Scream
		MUMM JJ 1 A_SpawnItemEx("GIB2", 0, 0, random(0,42), 0, 0, random(2,6), random(0,360), 128)
		MUMM J 1 A_SpawnItemEx("GIB1", 0, 0, random(0,42), 0, 0, random(2,6), random(0,360), 128)
		MUMM J 1 A_SpawnItemEx("GIB3", 0, 0, random(0,42), 0, 0, random(2,6), random(0,360), 128)
		MUMM K 0 A_SpawnItemEx("MummySoul", 0,0,10, 0,0,1, random(0,360), 128)
		MUMM K 1 A_SpawnItemEx("GIB4", 0, 0, random(0,42), 0, 0, random(2,6), random(0,360), 128)
		MUMM K 1 A_SpawnItemEx("GIB5", 0, 0, random(0,42), 0, 0, random(2,6), random(0,360), 128)
		MUMM K 3 A_SpawnItemEx("GIB2", 0, 0, random(0,42), 0, 0, random(2,6), random(0,360), 128)
		MUMM L 5
		MUMM M 5 A_NoBlocking
		MUMM NO 5
		MUMM P -1
		Stop
	Ice:
		"----" A 0 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,20)
		"----" G 5 A_GenericFreezeDeath
		"----" G 1 A_FreezeDeathChunks
		Wait
	Raise:
		MUMM A 0 ACS_ExecuteAlways(WOC_MONSTERSCRIPT,0,160,62,0)
		MUMM ONMLKJI 6
		Goto See
	}
}

ACTOR NewMummyGhost : NewMummy replaces MummyGhost 69
{
	Game Heretic
	SpawnID 8
	+SHADOW
	+GHOST
	RenderStyle Translucent
	Alpha 0.4
	Tag "Golem Ghost"
	Damagetype "Shadow"
	States
	{
	Melee:
		MUMM E 5 A_FaceTarget
		MUMM F 6 A_CustomMeleeAttack(random(8,9) + (ACS_ExecuteWithResult(WOC_MONSTERSCALE,2,ACTIVATOR,0)), "mummy/attack2", "", "Shadow")
		MUMM G 4
		Goto See
	}
}

ACTOR NewMummyLeader : NewMummy replaces MummyLeader 45
{
	Game Heretic
	SpawnID 2
	Health 180
	PainChance 64
    Obituary "$OB_MUMMYLEADER"
    +NODAMAGETHRUST
    Tag "Nitrogolem"
    States
    {
	Spawn:
		MUMM A 0
		MUMM A 0 ACS_ExecuteAlways(WOC_MONSTERSCRIPT,0,180,62,0)//increase health on higher difficulties
		Goto Idle
	Missile:
		MUMM X 5 A_FaceTarget
		MUMM Y 5 Bright A_FaceTarget
		MUMM X 5 A_FaceTarget
		MUMM Y 5 Bright A_FaceTarget
		MUMM X 5 A_FaceTarget
		MUMM Y 5 Bright A_CustomMissile("MummyFX1")
		Goto See
	Raise:
		MUMM A 0 ACS_ExecuteAlways(WOC_MONSTERSCRIPT,0,180,62,0)
		MUMM ONMLKJI 6
		Goto See
	}
}

Actor NewMummyFX1 : MummyFX1 replaces MummyFX1
{
    Radius 8
    Height 6
    Speed 14
	FastSpeed 20
	Scale 0.35
    Damage ((random(3,24))+(ACS_ExecuteWithResult(WOC_MONSTERSCALE,3,TARGET,0)))
	+NODAMAGETHRUST
    PROJECTILE
    RenderStyle Add
    SeeSound "whiteballbsee"
    DeathSound "whiteballbdeth"
    Decal PlasmaScorchLower
	Damagetype "Holy"
    States
    {
    Spawn:
		GSMM AAABB 1 Bright A_CustomMissile("GSLM2Trail",0,0,0)
		GSMM B 0 Bright A_SeekerMissile(10, 20, SMF_PRECISE)
		GSMM BCCCD 1 Bright A_CustomMissile("GSLM2Trail",0,0,0)
		GSMM DDEEE 1 Bright A_CustomMissile("GSLM2Trail",0,0,0)
		GSMM E 0 Bright A_SeekerMissile(10, 20, SMF_PRECISE)
		GSMM FFF 1 Bright A_CustomMissile("GSLM2Trail",0,0,0)
		Goto Spawn+10
    Death:
		GSMM GGHHIIJJKKLLMM 2 Bright A_FadeOut(0.05)
		Stop
    }
}

ACTOR GSLM2Trail
{
    PROJECTILE
    +NOCLIP
	+CLIENTSIDEONLY +DONTBLAST
	+NOINTERACTION
    Damage 0
    RenderStyle Add
    Alpha 0.45
    Scale 0.9
    States
    {
    Spawn:
		TNT1 A 2
		PUF6 BDFHJLNPRTVXZ 1 BRIGHT
		PUF7 B 1 BRIGHT
		Stop
    }
}

ACTOR NewMummyLeaderGhost : NewMummyLeader replaces MummyLeaderGhost 46
{
	Game Heretic
	SpawnID 9
	+SHADOW
	+GHOST
	RenderStyle Translucent
	Alpha 0.4
	Tag "Nitrogolem Ghost"
	Damagetype "Shadow"
	States
	{
	Melee:
		MUMM E 5 A_FaceTarget
		MUMM F 6 A_CustomMeleeAttack(random(8,9) + (ACS_ExecuteWithResult(WOC_MONSTERSCALE,2,ACTIVATOR,0)), "mummy/attack2", "", "Shadow")
		MUMM G 4
		Goto See
	}
}

//Ophidian

Actor NewSnake : Snake replaces Snake
{
	//DropItem "NewMana2", 84, 30
	DropItem "ArtiAquaFlask", 8
	DropItem "AccessoryRandomSpawner" 4
	PainChance "Convert", 255
	Health 500
	+NODAMAGETHRUST
	Tag "Ophidian"
	Speed 12
	States
	{
	Spawn:
		SNKE A 0
		SNKE A 0 ACS_ExecuteAlways(WOC_MONSTERSCRIPT,0,500,70,0)//increase health on higher difficulties
	Idle:
		SNKE AB 10 A_Look
		Loop
	Pain.Morale:
		TNT1 A 0 A_Changeflag("Frightened", 1)
		Goto Pain
	Pain.Convert:
		TNT1 A 0 A_JumpIfInTargetInventory("Visions",Random(0,8),"ConvertMe")
		goto Pain
	ConvertMe:
		TNT1 A 0 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,55)
		TNT1 A 0 ACS_ExecuteAlways(WOC_VISIONSSCRIPT,0,0,0,0)
		goto See	   
	Death:
		SNKE A 0 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,55)
		SNKE G 5 A_SpawnItem("GIBBER")
		SNKE H 5 A_Scream
		SNKE IJKL 5
		SNKE M 5 A_NoBlocking
		SNKE NO 5
		SNKE P -1
		Stop
	Ice:
		"----" A 0 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,55)
		"----" G 5 A_GenericFreezeDeath
		"----" G 1 A_FreezeDeathChunks
		Wait
	Raise:
		SNKE A 0 ACS_ExecuteAlways(WOC_MONSTERSCRIPT,0,500,70,0)
		SNKE ONMLKJIHG 5
		Goto See
	}
}

Actor NewSnakeProjA : SnakeProjA replaces SnakeProjA
{
	Damage (random(1, 8) + ACS_ExecuteWithResult(WOC_MONSTERSCALE,1,TARGET,0))
	DamageType "Ice"
	+NODAMAGETHRUST
	+THRUGHOST
	+WINDTHRUST
	Renderstyle Add
	SeeSound "snake/iceshot"
	DeathSound "snake/icehit"
	Speed 30
	FastSpeed 35
	States
	{
	Spawn:
		SHRD AA 1 Bright A_SpawnItemEx("FrostMissileFog", 0, 0, 1, 4, 0, Random(-0.5, 0.5), Random(-10, 10), 128)
		SHRD AAA 1 Bright A_SpawnItemEx("FrostMissileFog", 0, 0, 1, 4, 0, Random(-0.5, 0.5), Random(-10, 10), 128)
		SHRD BBB 1 Bright A_SpawnItemEx("FrostMissileFog", 0, 0, 1, 4, 0, Random(-0.5, 0.5), Random(-10, 10), 128)
		SHRD CCC 1 Bright A_SpawnItemEx("FrostMissileFog", 0, 0, 1, 4, 0, Random(-0.5, 0.5), Random(-10, 10), 128)
		Loop
	Death:
		SHEX ABCDE 5 Bright
		Stop
	}
}

Actor NewSnakeProjB : SnakeProjB replaces SnakeProjB
{
	Damage (random(3, 24) + ACS_ExecuteWithResult(WOC_MONSTERSCALE,3,TARGET,0))
	+NODAMAGETHRUST
	Seesound "snake/fireshot"
	DeathSound "snake/firehit"
	Decal BaronScorch
	Speed 30
	FastSpeed 35
	States
	{
	Spawn: 
		BRB2 A 1 BRIGHT A_CustomMissile("FireDemonTrail1",0,0,Random(-200,200),50,Random(-200,200))
		BRB2 A 1 BRIGHT A_CustomMissile("FireDemonTrail2",0,0,0,0)
		BRB2 A 1 BRIGHT A_CustomMissile("FireDemonTrail1",0,0,Random(-200,200),50,Random(-200,200))
		BRB2 A 1 BRIGHT A_CustomMissile("FireDemonTrail2",0,0,0,0)
		BRB2 A 1 BRIGHT A_CustomMissile("FireDemonTrail1",0,0,Random(-200,200),50,Random(-200,200))
		BRB2 A 1 BRIGHT A_CustomMissile("FireDemonTrail2",0,0,0,0)
		BRB2 B 1 BRIGHT A_CustomMissile("FireDemonTrail1",0,0,Random(-200,200),50,Random(-200,200))
		BRB2 B 1 BRIGHT A_CustomMissile("FireDemonTrail2",0,0,0,0)
		BRB2 B 1 BRIGHT A_CustomMissile("FireDemonTrail1",0,0,Random(-200,200),50,Random(-200,200))
		BRB2 B 1 BRIGHT A_CustomMissile("FireDemonTrail2",0,0,0,0)
		BRB2 B 1 BRIGHT A_CustomMissile("FireDemonTrail1",0,0,Random(-200,200),50,Random(-200,200))
		BRB2 B 1 BRIGHT A_CustomMissile("FireDemonTrail2",0,0,0,0)
		Loop
	Death:
		BRB2 CDEFGHI 3 Bright
		Stop
	}
}

Actor NewSorcerer1 : Sorcerer1 replaces Sorcerer1
{
	Health 20000
	+NOPAIN
	-NORADIUSDMG
	Damagefactor "DeathBlow", 0
	Damagefactor "PoisonCloud", 0.25
	+NODAMAGETHRUST
	+LOOKALLAROUND
	Tag "D'Sparil's Serpent"
	Damagetype "Physical"
	States
	{
	Spawn:
		SRCR A 0
		SRCR A 0 ACS_ExecuteAlways(WOC_MONSTERSCRIPT,0,20000,130,WOC_BOSS)//increase health on higher difficulties
	Idle:
		SRCR AB 10 A_Look
		Loop
	See:
		SRCR A 4 A_Chase
		SRCR B 3 A_Chase
		SRCR C 4 A_Chase
		SRCR D 3 A_Chase
		Loop
	Missile:
	    SRCR Q 0 A_JumpIfHealthLower(2*acs_executewithresult(553,0,0,0)/3, "Missile2")
		SRCR Q 5 A_FaceTarget
		SRCR R 6 A_FaceTarget
		SRCR S 5 A_CustomMissile("SorcererFX1", 70, 0)
		Goto See
	Missile2:
		SRCR S 5 A_FaceTarget
		SRCR Q 5 A_FaceTarget
		SRCR R 6 A_FaceTarget
		SRCR S 0 A_CustomMissile("SorcererFX1", 70, 0, -3)
		SRCR S 0 A_CustomMissile("SorcererFX1", 70, 0, 3)
		SRCR S 5 A_CustomMissile("SorcererFX1", 70, 0)
		Goto See
	Death:
		SRCR E 7 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,2000)
		SRCR E 0 A_SpawnItem("GIBBER")
		SRCR F 7 A_Scream
		SRCR G 7
		SRCR HIJK 6
		SRCR L 25 A_PlaySoundEx("dsparil/zap", "body")
		SRCR MN 5
		SRCR O 4
		SRCR L 20 A_PlaySoundEx("dsparil/zap", "body")
		SRCR MN 5
		SRCR O 4
		SRCR L 12
		SRCR P -1 A_SorcererRise
	}
}

Actor NewSorcerer2 : Sorcerer2 replaces Sorcerer2
{
	Health 35000
	-NORADIUSDMG
	+NOPAIN
	Damagefactor "DeathBlow", 0
	Damagefactor "PoisonCloud", 0.25
	DropItem "AccessoryRandomSpawner" 32
	+NODAMAGETHRUST
	+DONTHURTSPECIES
	+LOOKALLAROUND
	Tag "D'Sparil"
	Species "Dsparil"
	Speed 16
	Bloodtype "EtherealBloodBlue"
	var int user_timer;
	States
	{
	Spawn:
		SOR2 A 0
		SOR2 A 0 ACS_ExecuteAlways(WOC_MONSTERSCRIPT,0,35000,75,WOC_BOSS)//increase health on higher difficulties
	Idle:
		SOR2 AB 10 A_Look
		Loop
	Rise:
		SOR2 A 0
		SOR2 A 0 ACS_ExecuteAlways(WOC_MONSTERSCRIPT,0,35000,70,WOC_BOSS)//increase health on higher difficulties
		SOR2 AB 4
		SOR2 C 4 A_PlaySound("dsparil/rise", CHAN_BODY, 1, FALSE, ATTN_NONE)
		SOR2 DEF 4
		SOR2 G 12 A_PlaySound("dsparil/sight", CHAN_BODY, 1, FALSE, ATTN_NONE)
		Goto See
	See:
		SOR2 M 4 A_Chase
		SOR2 N 3 A_Chase
		SOR2 O 4 A_Chase
		SOR2 P 3 A_Chase
		Loop
	Missile:
		SOR2 R 0 A_Srcr2Decide
	CastSpell:
		SOR2 T 0 A_JumpIfHealthLower(ACS_ExecuteWithResult(WOC_DECORATE,STATS,MAXHEALTH)/2,"SpellDecide")
		SOR2 R 0 A_Jump(48, "Summon")
	Lightning:
		TNT1 A 0 A_Jump(64, "LightningColumns")
		TNT1 A 0 A_Jump(96, "GroundSeekers")
		TNT1 A 0 A_Jump(64, "Filibuster")
		TNT1 A 0 A_Jump(128, "LightningStream")
		TNT1 A 0 A_Jump(128, "LightningBall")
		SOR2 R 6 A_FaceTarget
		SOR2 S 6 A_FaceTarget
		SOR2 T 0 A_PlaySound("dsparil/attack")
		SOR2 T 15 A_CustomMissile("NewSorcerer2FX1",50)
		Goto See
	LightningBall:
		SOR2 R 5
		SOR2 S 5 A_FaceTarget
		SOR2 T 5 BRIGHT A_CustomMissile("LightningBallL",32,0,0,2,0)
		SOR2 T 5
		Goto See
	//attack 2; lightning streams
	LightningStream:
		SOR2 RS 5 A_FaceTarget
		SOR2 T 5 A_FaceTarget
		SOR2 T 1 BRIGHT A_CustomMissile("MiniLightningPuff",55,40,0,0) 
		SOR2 T 1 BRIGHT A_CustomMissile("MiniLightningPuff",55,-45,0,0) 
		SOR2 T 1 BRIGHT A_CustomMissile("MiniLightningPuff",55,40,0,0) 
		SOR2 T 1 BRIGHT A_CustomMissile("MiniLightningPuff",55,-45,0,0) 
		SOR2 T 1 BRIGHT A_CustomMissile("MiniLightningPuff",55,40,0,0) 
		SOR2 T 1 BRIGHT A_CustomMissile("MiniLightningPuff",55,-45,0,0) 
		SOR2 T 1 BRIGHT A_CustomMissile("MiniLightningPuff",55,40,0,0) 
		SOR2 T 1 BRIGHT A_CustomMissile("MiniLightningPuff",55,-45,0,0) 
		SOR2 T 1 BRIGHT A_CustomMissile("MiniLightningPuff",55,40,0,0) 
		SOR2 T 1 BRIGHT A_CustomMissile("MiniLightningPuff",55,-45,0,0) 
		SOR2 T 1 BRIGHT A_CustomMissile("MiniLightningPuff",55,40,0,0) 
		SOR2 T 1 BRIGHT A_CustomMissile("MiniLightningPuff",55,-45,0,0)  
		TNT1 A 0 A_SetUserVar("user_timer", user_timer+1)
		TNT1 A 0 A_JumpIf(user_timer >= 9, "EndStream")
		Goto LightningStream+2
	EndStream:
		TNT1 A 0 A_SetUserVar("user_timer", 0)
		SOR2 T 5
		Goto See
	//attack 3, stationary/invulnerable mode
	Filibuster:
		SOR2 ZY 5 A_FaceTarget
		SOR2 Z 8 BRIGHT A_FaceTarget
		SOR2 Z 0 A_CustomMissile("GroundLightning",0,0,45,0,0)
		SOR2 Z 0 A_CustomMissile("GroundLightning",0,0,135,0,0)
		SOR2 Z 0 A_CustomMissile("GroundLightning",0,0,225,0,0)
		SOR2 Z 0 A_CustomMissile("GroundLightning",0,0,315,0,0)
		SOR2 Z 0 A_CustomMissile("GroundLightning",0,0,0,0,0)
		SOR2 Z 0 A_CustomMissile("GroundLightning",0,0,90,0,0)
		SOR2 Z 0 A_CustomMissile("GroundLightning",0,0,160,0,0)
		SOR2 Z 0 A_CustomMissile("GroundLightning",0,0,270,0,0)
		Goto FilibusterLoop
	FilibusterLoop:    
		SOR2 Z 35 A_Stop
		SOR2 RS 3 A_FaceTarget
		SOR2 T 8 BRIGHT A_CustomMissile("LightningRod1",55,45,0,0,0)
		SOR2 T 0 BRIGHT A_CustomMissile("LightningRod1",55,-45,0,0,0)
		SOR2 T 2 BRIGHT A_CustomMissile("LightningBallS",55,45,0,0,0)
		SOR2 T 0 BRIGHT A_CustomMissile("LightningBallS",55,-45,0,0,0)
		SOR2 T 2 BRIGHT A_CustomMissile("LightningBallS",55,45,0,0,0)
		SOR2 T 0 BRIGHT A_CustomMissile("LightningBallS",55,-45,0,0,0)
		TNT1 A 0 A_SetUserVar("user_timer", user_timer+1)
		TNT1 A 0 A_JumpIf(user_timer >= 3, "EndStream")
		SOR2 SR 3
		Goto FilibusterLoop
	FilibusterEnd:
		TNT1 A 0 A_SetUserVar("user_timer", 0)
		SOR2 SR 3
		SOR2 YZM 10
		Goto See
	//attack 4, floor-hugging seekers
	GroundSeekers:
		SOR2 ZY 5 A_FaceTarget
		SOR2 Z 8 BRIGHT A_FaceTarget
		SOR2 Z 0 BRIGHT A_CustomMissile("GroundLightningTracer",0,random(-20,20),random(-45,45),0,0)
		SOR2 Z 0 BRIGHT A_CustomMissile("GroundLightningTracer",0,random(-20,20),random(-45,45),0,0)
		SOR2 Z 0 BRIGHT A_CustomMissile("GroundLightningTracer",0,random(-20,20),random(-45,45),0,0)
		SOR2 Z 8 Bright A_FaceTarget
		Goto See
	//attack 5, lightning columns
	LightningColumns:
		SOR2 RS 5 A_FaceTarget
		TNT1 A 0 A_CustomMissile("LightningRod3", 0, 0, 0, CMF_AIMOFFSET)
		TNT1 A 0 A_CustomMissile("LightningRod3", 0, 45, random(-25, -15), CMF_AIMOFFSET)
		TNT1 A 0 A_CustomMissile("LightningRod3", 0, -45, random(15, 25), CMF_AIMOFFSET)
		SOR2 T 5 Bright A_FaceTarget
		SOR2 T 5
		Goto See
	SpellDecide:
		SOR2 R 0 A_Jump(96, "Summon")
		Goto Lightning
	Summon:
		SOR2 RS 6 A_FaceTarget
		SOR2 T 0 A_PlaySound("dsparil/attack")
		SOR2 T 0 A_CustomMissile("Sorcerer2FX2", 50, 0, -40, 2)
		SOR2 T 15 A_CustomMissile("Sorcerer2FX2", 50, 0, 40, 2)
		Goto See
	Teleport:
		SOR2 LKJIHG 6
		Goto See
	Death:
		SOR2 E 0 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,3500)
		SDTH A 8 Bright A_Sor2DthInit
		SDTH B 8 Bright
		SDTH C 8 Bright A_PlaySoundEx("dsparil/scream", "Body")
		SDTH D 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH E 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH F 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH D 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH E 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH F 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH D 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH E 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH F 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH D 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH E 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH F 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH D 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH E 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH F 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH D 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH E 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH F 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH D 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH E 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH F 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH D 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH E 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH F 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH D 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH E 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH F 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH D 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH E 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH F 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH D 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH E 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH F 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH D 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH E 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH F 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH D 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH E 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH F 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH D 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH E 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH F 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH D 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH E 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH F 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH D 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH E 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH F 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH D 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH E 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH F 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH D 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH E 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH F 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH D 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH E 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH F 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH D 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH E 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH F 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH D 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH E 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH F 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH D 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH E 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH F 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH D 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH E 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH F 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH D 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH E 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH F 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH D 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH E 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH F 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH D 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH E 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH F 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH D 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH E 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH F 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH D 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH E 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH F 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH D 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH E 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH F 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH D 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH E 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH F 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH D 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH E 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH F 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH D 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH E 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH F 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH D 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH E 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH F 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH D 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH E 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH F 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH D 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH E 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH F 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH D 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH E 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH F 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH D 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH E 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH F 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH D 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH E 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH F 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH D 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH E 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH F 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH D 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH E 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH F 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH D 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH E 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH F 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH D 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH E 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
        SDTH F 2 Bright A_SpawnItemEx("KaZap", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
		SDTH G 6 A_PlaySoundEx("dsparil/explode", "Body")
		SDTH AAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("KaZap", 0, 0, 48, (0.1)*Random(100, 400), 0, (0.1)*Random(-400, 400), Random(0, 720), 128)
		SDTH AAAAAAAAA 0 A_SpawnItemEx("KaZap", 0, 0, 48, (0.1)*Random(100, 400), 0, (0.1)*Random(-400, 400), Random(0, 720), 128)
		SDTH H 6
		SDTH I 18
		SDTH J 6 A_NoBlocking
		SDTH K 6 A_PlaySoundEx("dsparil/bones", "Body")
		SDTH LMN 6
		SDTH O -1 A_BossDeath
		Stop
	}
}

//decorative particle shared by a few actors
ACTOR LightningBallC1T
{
    RENDERSTYLE ADD
    Alpha 0.4
    PROJECTILE
    +NOINTERACTION
	+NOCLIP
	+CLIENTSIDEONLY
    states
    {
    Spawn:
        DFFP GHIJKLMNOPQR 1 BRIGHT
        Stop
    }
}

//limited-range projectile spawned by his "filibuster" attack mode
//has no collision; primary purpose is to continuously spawn damaging particles
ACTOR GroundLightning
{
  Radius 4
  Height 6
  Speed 20
  //Damage 6
  RENDERSTYLE Add
  Alpha 0.40
  ReactionTime 20//53
  SEESOUND "dsparil/attackr1"
  PROJECTILE
  +FloorHugger
  +Noclip
  //+Ripper
  states
  {
  Spawn:
    ICWS ABCDEFGHI 1 BRIGHT A_SpawnItemEx("GroundTrail",0,0,0,0,0,0,0,128)
    ICWS A 0 BRIGHT
    ICWS A 0 BRIGHT A_Stop
	Goto ProjectileLoop
  ProjectileLoop:
    ICWS ABCDEFGHI 1 BRIGHT A_CustomMissile("GroundSmoke",0,10,random(0,360),6,random(80,100))
    ICWS A 0 BRIGHT A_CustomMissile("GroundSmoke",0,0,0,6,360)
	TNT1 A 0 A_CountDown
	Loop
  Death:
    ICWS ABCDEFGHI 1 BRIGHT A_CustomMissile("GroundSmoke",0,10,random(0,360),6,random(80,100))
    ICWS A 0 BRIGHT
    Stop
  }
}

//trail spawned by the GroundLightning actor; harmless
ACTOR GroundTrail
{
  Radius 2
  Height 3
  RENDERSTYLE Add
  Alpha 0.20
  ReactionTime 20//49
  PROJECTILE
  +FloorHugger
  states
  {
  Spawn:
    ICWS JKLMNOPQR 1 BRIGHT
    ICWS A 0 BRIGHT
	TNT1 A 0 A_CountDown
	Loop
  Death:
    ICWS JKLMNOPQR 1 BRIGHT
    Stop
  }
}

//actor spawned by the GroundLightning projectile; deals damage, and occasionally (25%) spawns additional particles
ACTOR GroundSmoke
{
  Radius 12
  Height 12
  Speed 15
  Damage 0
  RENDERSTYLE Add
  Alpha 0.30
  SEESOUND "dsparil/smoke"
  PROJECTILE
  +RIPPER
  +NODAMAGETHRUST
  +BLOODLESSIMPACT
  Damagetype "Lightning"
  states
  {
  Spawn:
    DFFP ABCDEFGHIJKLMNOPQR 1 BRIGHT A_Explode(4 + ACS_ExecuteWithResult(WOC_MONSTERSCALE,1,TARGET,0), 12, 0)
    DFFP A 0 BRIGHT A_Jump(64,1)
    Stop
    DFFP A 1 BRIGHT A_CustomMissile("SmokeLightning",0,0,0,6,-250)
    DFFP A 1 BRIGHT A_CustomMissile("SmokeLightning",0,0,45,6,-250)
    DFFP A 1 BRIGHT A_CustomMissile("SmokeLightning",0,0,90,6,-250)
    DFFP A 1 BRIGHT A_CustomMissile("SmokeLightning",0,0,135,6,-250)
    DFFP A 1 BRIGHT A_CustomMissile("SmokeLightning",0,0,180,6,-250)
    DFFP A 1 BRIGHT A_CustomMissile("SmokeLightning",0,0,225,6,-250)
    DFFP A 1 BRIGHT A_CustomMissile("SmokeLightning",0,0,270,6,-250)
    DFFP A 1 BRIGHT A_CustomMissile("SmokeLightning",0,0,315,6,-250)
    Stop
  }
}

//particles periodically spawned by the GroundSmoke projectile generated by the GroundLightning projectile
ACTOR SmokeLightning
{
  Radius 16
  Height 16
  Speed 20
  Damage ((Random(2,16))+(ACS_ExecuteWithResult(WOC_MONSTERSCALE,2,TARGET,0)))
  RENDERSTYLE Add
  Alpha 0.40
  Scale 0.75
  SEESOUND "dsparil/spawnl"
  DEATHSOUND "dsparil/hitl"
  ACTIVESOUND "dsparil/activel"
  PROJECTILE
  +NODAMAGETHRUST
  Damagetype "Lightning"
  states
  {
  Spawn:
    ZOT3 ABC 2 BRIGHT
    Loop
  Death:
    ZOT3 A 0 BRIGHT //A_Explode(50,150)
    Stop
  }
}

//small projectile
ACTOR LightningBallS
{
  Radius 16
  Height 16
  Speed 20
  Damage ((Random(15,30))+(ACS_ExecuteWithResult(WOC_MONSTERSCALE,5,TARGET,0)))
  RENDERSTYLE Add
  Alpha 0.40
  Scale 0.75
  SEESOUND "dsparil/spawnl"
  DEATHSOUND "dsparil/hitl"
  ACTIVESOUND "dsparil/activel"
  PROJECTILE
  +NODAMAGETHRUST
  Damagetype "Lightning"
  Decal RevenantScorch
  states
  {
  Spawn:
    ZOT3 ABCE 2 BRIGHT A_SpawnItemEx("LightningBallC1T", 0, 0, 0, 0, 0, 0, 0, 128)
    Loop
  Death:
    ZAPS GHIJKL 2 BRIGHT
    Stop
  }
}

//faster small projectile
ACTOR LightningRod1
{
  Radius 24
  Height 24
  Speed 30
  Damage ((random(3,24))+(ACS_ExecuteWithResult(WOC_MONSTERSCALE,3,TARGET,0)))
  RENDERSTYLE Add
  Alpha 0.50
  Scale 0.75
  SEESOUND "dsparil/spawnl"
  DEATHSOUND "dsparil/hitl"
  ACTIVESOUND "dsparil/activel"
  MissileHeight 0
  PROJECTILE
  +NODAMAGETHRUST
  Decal RevenantScorch
  Damagetype "Lightning"
  states
  {
  Spawn:
    ZAP6 ABC 2 BRIGHT
    Loop
  Death:
    PUF4 ABCDEF 2 BRIGHT
    Stop
  }
}

//large projectile; spams smaller projectiles
ACTOR LightningBallL
{
  Radius 30
  Height 30
  Speed 12
  Damage ((random(80,100))+(ACS_ExecuteWithResult(WOC_MONSTERSCALE,20,TARGET,0)))
  RENDERSTYLE Add
  Alpha 0.75
  ReactionTime 6
  SEESOUND "dsparil/attackr3"
  DEATHSOUND "dsparil/hitl"
  ACTIVESOUND "dsparil/activel"
  Decal "Scorch"
  +SeekerMissile
  +DoomBounce
  +NODAMAGETHRUST
  PROJECTILE
  Damagetype "Lightning"
  states
  {
  Spawn:
    ZAP7 ABCDE 1 BRIGHT //A_SeekerMissile(20,20)
    ZAP7 ABCDE 1 BRIGHT //A_SeekerMissile(20,20)
    ZAP7 ABCDE 1 BRIGHT //A_SeekerMissile(20,20)
    ZAP7 ABCDE 1 BRIGHT //A_SeekerMissile(20,20)
    ZAP7 ABCDE 1 BRIGHT //A_SeekerMissile(20,20)
    ZAP7 ABCDE 1 BRIGHT //A_SeekerMissile(20,20)
    ZAP7 ABCDE 1 BRIGHT //A_SeekerMissile(20,20)
    ZAP7 ABCDE 1 BRIGHT //A_SeekerMissile(20,20)
    ZAP7 ABCDE 1 BRIGHT //A_SeekerMissile(20,20)
    ZAP7 ABCDE 1 BRIGHT //A_SeekerMissile(20,20)
	Goto ProjectileLoop
  ProjectileLoop:
    ZAP7 A 1 BRIGHT A_CustomMissile("LightningRod1",0,0,0,4,0)
    ZAP7 B 1 BRIGHT A_CustomMissile("LightningRod1",0,0,20,4,0)
    ZAP7 C 1 BRIGHT A_CustomMissile("LightningRod1",0,0,40,4,0)
    ZAP7 D 1 BRIGHT A_CustomMissile("LightningRod1",0,0,60,4,0)
    ZAP7 E 1 BRIGHT A_CustomMissile("LightningRod1",0,0,80,4,0)
    ZAP7 A 1 BRIGHT A_CustomMissile("LightningRod1",0,0,100,4,0)
    ZAP7 C 1 BRIGHT A_CustomMissile("LightningRod1",0,0,120,4,0)
    ZAP7 D 1 BRIGHT A_CustomMissile("LightningRod1",0,0,140,4,0)
    ZAP7 E 1 BRIGHT A_CustomMissile("LightningRod1",0,0,160,4,0)
    ZAP7 A 1 BRIGHT A_CustomMissile("LightningRod1",0,0,180,4,0)
    ZAP7 B 1 BRIGHT A_CustomMissile("LightningRod1",0,0,200,4,0)
    ZAP7 C 1 BRIGHT A_CustomMissile("LightningRod1",0,0,220,4,0)
    ZAP7 D 1 BRIGHT A_CustomMissile("LightningRod1",0,0,240,4,0)
    ZAP7 E 1 BRIGHT A_CustomMissile("LightningRod1",0,0,260,4,0)
    ZAP7 A 1 BRIGHT A_CustomMissile("LightningRod1",0,0,280,4,0)
    ZAP7 B 1 BRIGHT A_CustomMissile("LightningRod1",0,0,300,4,0)
    ZAP7 C 1 BRIGHT A_CustomMissile("LightningRod1",0,0,320,4,0)
    ZAP7 D 1 BRIGHT A_CustomMissile("LightningRod1",0,0,340,4,0)
    ZAP7 E 1 BRIGHT A_CustomMissile("LightningRod1",0,0,360,4,0)
	ZAP7 ABCDEABCDEABCDEABCDEABCDE 1 BRIGHT//reduces spamminess
	TNT1 A 0 A_CountDown
	Loop
  Death:
    ZAPL ABCDEFG 2 BRIGHT
    Stop
  }
}

//small projectile produced by his "stream" attacks
ACTOR MiniLightningPuff
{
    Radius 6
    Height 10
    Speed 14
    Damage ((Random(1,8))+(ACS_ExecuteWithResult(WOC_MONSTERSCALE,1,TARGET,0)))
    PROJECTILE
	+NODAMAGETHRUST
    RENDERSTYLE ADD
    Alpha 0.67
    SEESOUND "dsparil/smoke"
    Decal PlasmaScorchLower
	Damagetype "Lightning"
    states
    {
    Spawn:
        DFFP ABCDEFGH 4 BRIGHT
    Death:
        DFFP IJKLMNOPQR 4 BRIGHT
        Stop
    }
}

//floor-hugging tracer projectile
ACTOR GroundLightningTracer
{
	Radius 4
	Height 6
	Speed 10
	Damage ((Random(17,37))+(ACS_ExecuteWithResult(WOC_MONSTERSCALE,6,TARGET,0)))
	RENDERSTYLE Add
	Alpha 0.40
	ReactionTime 15//34
	SEESOUND "dsparil/attackr2"
	PROJECTILE
	+FloorHugger
	+NODAMAGETHRUST
	+SeekerMissile
	Damagetype "Lightning"
	states
	{
	Spawn:
		ICWS ABCDEFGHI 1 BRIGHT A_SpawnItemEx("TracerTrail",0,0,0,0,0,0,0,128)
		TNT1 A 0 A_Jump(128, 2)
		ICWS A 0 BRIGHT A_SeekerMissile(90,90)
		TNT1 A 0 A_CountDown
		Loop
	Death:
		ICWS ABCDEFGHI 5 BRIGHT A_Stop
		ICWS ABCDEFGHI 1 BRIGHT A_CustomMissile("GroundSmoke",0,10,random(0,360),6,random(80,100))
		ICWS ABCDEFGHI 1 BRIGHT A_CustomMissile("GroundSmoke",0,10,random(0,360),6,random(80,100))
		ICWS ABCDEFGHI 1 BRIGHT A_CustomMissile("GroundSmoke",0,10,random(0,360),6,random(80,100))
		ICWS ABCDEFGHI 1 BRIGHT A_CustomMissile("GroundSmoke",0,10,random(0,360),6,random(80,100))
		ICWS ABCDEFGHI 1 BRIGHT A_CustomMissile("GroundSmoke",0,10,random(0,360),6,random(80,100))
		ICWS ABCDEFGHI 1 BRIGHT A_CustomMissile("GroundSmoke",0,10,random(0,360),6,random(80,100))
		ICWS ABCDEFGHI 1 BRIGHT A_CustomMissile("GroundSmoke",0,10,random(0,360),6,random(80,100))
		ICWS ABCDEFGHI 1 BRIGHT A_CustomMissile("GroundSmoke",0,10,random(0,360),6,random(80,100))
		ICWS ABCDEFGHI 1 BRIGHT A_CustomMissile("GroundSmoke",0,10,random(0,360),6,random(80,100))
		ICWS ABCDEFGHI 1 BRIGHT A_CustomMissile("GroundSmoke",0,10,random(0,360),6,random(80,100))
		Stop
	}
}

//modified trail with shorter duration
ACTOR TracerTrail : GroundTrail
{
	ReactionTime 10
}

//this was originally unused; I used it in "LightningColumns"
ACTOR LightningRod3
{
	Radius 24
	Height 8
	Damage ((Random(15,30))+(ACS_ExecuteWithResult(WOC_MONSTERSCALE,5,TARGET,0)))
	Speed 20
	RENDERSTYLE Add
	Alpha 0.40
	SEESOUND "dsparil/spawnl"
	DEATHSOUND "dsparil/hitl"
	ACTIVESOUND "dsparil/activel"
	PROJECTILE
	Decal Scorch
	+NODAMAGETHRUST
	+FLOORHUGGER
	Damagetype "Lightning"
	states
	{
	Spawn:
		ZOT1 ABCDE 2 BRIGHT
		ZOT1 A 0 BRIGHT A_SpawnItemEx("LightningBallC1T", 0, 0, 0, 0, 0, 0, 0, 128)
		Loop
	Death:
		FX18 ABCDEF 2 BRIGHT A_Explode(60+(ACS_ExecuteWithResult(WOC_MONSTERSCALE,13,TARGET,0)),50,0)
		Stop
	}
}

Actor NewSorcererFX1 : SorcererFX1 replaces SorcererFX1
{
	Damage ((random(35,55)) + ACS_ExecuteWithResult(WOC_MONSTERSCALE,10,TARGET,0))
	+NODAMAGETHRUST
	Damagetype "Fire"
	SeeSound "DemonMissileFire"
	DeathSound "DemonMissileExplode"
	States
	{
	Spawn:
    FX14 AABBCC 2 Bright A_spawnitemEx("Sorcerer1FX1Trail")
    Loop
	}
}

ACTOR Sorcerer1FX1Trail
{
    Radius 1
    Height 1
	Gravity 0
	Speed 1
	Scale 0.3
    +NOBLOCKMAP
    +NOTELEPORT
    +DONTSPLASH
	+MISSILE
	+CLIENTSIDEONLY +DONTBLAST
	+FORCEXYBILLBOARD
	Renderstyle Add
    States
    {
    Spawn:
        FX14 DEFGH 2 bright
        Stop
    }
}

ACTOR NewSorcerer2FX1 : Sorcerer2FX1 replaces Sorcerer2FX1
{
  Damage (random(35,55) + ACS_ExecuteWithResult(WOC_MONSTERSCALE,10,TARGET,0))
  +NODAMAGETHRUST
  +FORCERADIUSDMG
  Damagetype "Lightning"
  DeathSound "dsparil/hit"
  Speed 24
  FastSpeed 30
  States
  {
  Spawn:
    FX16 ABC 3 Bright A_BlueSpark
    Loop
  Death:
    FX16 G 5 Bright A_Explode(random(80,111) + ACS_ExecuteWithResult(WOC_MONSTERSCALE,21,TARGET,0),128,0)
    FX16 HIJKL 5 Bright
    Stop
  }
}

Actor NewSorcerer2FX2 : Sorcerer2FX2 replaces Sorcerer2FX2
{
	+NODAMAGETHRUST
	Damagetype "Arcane"
	Damage (random(35,55) + ACS_ExecuteWithResult(WOC_MONSTERSCALE,10,TARGET,0))
}

//Disciple of D'Sparil

Actor NewWizard : Wizard replaces Wizard
{
	PainChance "Convert", 255
	//DropItem "NewMana1", 84, 15
	Dropitem "NewArtiHealingRadius", 4
	Dropitem "NewArtiSpeedBoots", 4
	Dropitem "ForceCube", 4
	Dropitem "ArtiPurpleFlask", 16
	DropItem "Money" 64
	DropItem "Money" 64
	DropItem "Money" 64
	DropItem "Money" 64
	DropItem "Money1" 8
	DropItem "Money2" 4
	DropItem "Money3" 2
	DropItem "ChestKey" 2
	Health 220
	+NODAMAGETHRUST
	Tag "Disciple of D'Sparil"
	Species "Dsparil"
	Obituary "%o was cursed by a disciple of D'Sparil"
	Bloodtype "EtherealBloodPurple"
	States
	{
	Spawn:
		WZRD A 0
		WZRD A 0 ACS_ExecuteAlways(WOC_MONSTERSCRIPT,0,220,68,0)//increase health on higher difficulties
	Idle:
		WZRD AB 10 A_Look
		Loop
	Pain.Morale:
		TNT1 A 0 A_Changeflag("Frightened", 1)
		Goto Pain
	Pain.Convert:
		TNT1 A 0 A_JumpIfInTargetInventory("Visions",Random(0,9),"ConvertMe")
		goto Pain
	ConvertMe:
		TNT1 A 0 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,40)
		TNT1 A 0 ACS_ExecuteAlways(WOC_VISIONSSCRIPT,0,0,0,0)
		goto See
	See:
		WZRD A 3 A_Chase
		WZRD A 3 A_Chase
		WZRD A 3 A_Chase
		WZRD A 3 A_Chase
		WZRD B 3 A_Chase
		WZRD B 3 A_Chase
		WZRD B 3 A_Chase
		WZRD B 3 A_Chase
		Loop
	Missile:
		WZRD C 4 A_WizAtk1
		WZRD C 4 A_WizAtk2
		WZRD C 4 A_WizAtk1
		WZRD C 4 A_WizAtk2
		WZRD C 4 A_WizAtk1
		WZRD C 4 A_WizAtk2
		WZRD C 4 A_WizAtk1
		WZRD C 4 A_WizAtk2
		WZRD D 0 A_GhostOff
		WZRD D 0 A_PlaySound("wizard/attack")
		WZRD D 0 A_CustomMissile("WizardFX1", 32, 0, 5.625)
		WZRD D 0 A_CustomMissile("WizardFX1", 32, 0, -5.625)
		WZRD D 12 A_CustomMissile("WizardFX1", 32, 0, 0)
		Goto See
	Pain:
		WZRD E 3 A_GhostOff
		WZRD E 3 A_Pain
		Goto See
	Death:
		WZRD A 0 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,40)
		WZRD F 6 A_GhostOff
		WZRD G 6 A_Scream
		WZRD HI 6
		WZRD J 6 A_NoBlocking
		WZRD KL 6
		WZRD M -1 A_SetFloorClip
		Stop
	Ice:
		"----" A 0 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,40)
		"----" G 5 A_GenericFreezeDeath
		"----" G 1 A_FreezeDeathChunks
		Wait
	Raise:
		WZRD A 0 ACS_ExecuteAlways(WOC_MONSTERSCRIPT,0,220,68,0)
		WZRD LKJIHG 6
		Goto See
	}
}

Actor NewWizardFX1 : WizardFX1 replaces WizardFX1
{
	Damage ((random(3, 24)) + ACS_ExecuteWithResult(WOC_MONSTERSCALE,3,TARGET,0))
	+NODAMAGETHRUST
	Damagetype "Arcane"
}

//Fatso

Actor NewHereticImp : HereticImp replaces HereticImp
{
	PainChance "Convert", 255
	Dropitem "ReagentRed", 64
	+NODAMAGETHRUST
	health 80
	Tag "Gargoyle"
	Damagetype "Physical"
	Meleerange 46
	States
	{
	Spawn:
		IMPX A 0
		IMPX A 0 ACS_ExecuteAlways(WOC_MONSTERSCRIPT,0,80,36)//increase health on higher difficulties
	Idle:
		IMPX ABCB 10 A_Look
		Loop
	Pain.Morale:
		TNT1 A 0 A_Changeflag("Frightened", 1)
		Goto Pain
	Pain.Convert:
		TNT1 A 0 A_JumpIfInTargetInventory("Visions",Random(0,3),"ConvertMe")
		goto Pain
	ConvertMe:
		TNT1 A 0 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,15)
		TNT1 A 0 ACS_ExecuteAlways(WOC_VISIONSSCRIPT,0,0,0,0)
		goto See
	See:
		IMPX A 2 A_Chase
		IMPX A 3 A_Chase
		IMPX B 2 A_Chase
		IMPX B 3 A_Chase
		IMPX C 2 A_Chase
		IMPX C 3 A_Chase
		IMPX B 2 A_Chase
		IMPX B 3 A_Chase
		Loop
	Melee:
		IMPX DE 5 A_FaceTarget
		IMPX F 6 A_CustomMeleeAttack(random(5,12) + ACS_ExecuteWithResult(WOC_MONSTERSCALE,1,ACTIVATOR,0), "himp/attack", "himp/attack", "Physical")
		Goto See
	Missile:
		IMPX A 0 A_JumpIfCloser(256, 1)
		Goto See
		IMPX A 10 A_FaceTarget
		IMPX C 15 A_SkullAttack
		IMPX C 0 A_Stop
		Goto See
	Death:
		IMPX A 0 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,15)
		IMPX G 1 A_ImpDeath
		IMPX G 1 A_SpawnItemEx ("GIB1", 0, 0, random(0,42), 0, 0, random(2,6), random(0,360), 128)
		IMPX G 1 A_SpawnItemEx ("GIB2", 0, 0, random(0,42), 0, 0, random(2,6), random(0,360), 128)
		IMPX G 1 A_SpawnItemEx ("GIB3", 0, 0, random(0,42), 0, 0, random(2,6), random(0,360), 128)
		IMPX H 1 A_SpawnItemEx ("GIB4", 0, 0, random(0,42), 0, 0, random(2,6), random(0,360), 128)
		IMPX H 1 A_SpawnItemEx ("GIB5", 0, 0, random(0,42), 0, 0, random(2,6), random(0,360), 128)
		IMPX H 1 A_SpawnItemEx ("GIB2", 0, 0, random(0,42), 0, 0, random(2,6), random(0,360), 128)
		IMPX H 2
		Wait
	XDeath:
		IMPX A 0 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,15)
		IMPX S 5 A_ImpXDeath1
		IMPX TU 5
		IMPX V 5 A_Gravity
		IMPX W 5 
		Wait
	Crash:
		IMPX III 1 A_SpawnItemEx("Blood", 0, 0, random(0,42), 0, 0, random(2,6), random(0,360), 128)
		IMPX I 4 A_ImpExplode
		IMPX J 7 A_Scream
		IMPX K 7
		IMPX L -1
		Stop
	Ice:
		"----" A 0 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,15)
		"----" G 5 A_GenericFreezeDeath
		"----" G 1 A_FreezeDeathChunks
		Wait
	}
}

ACTOR NewHereticImpLeader : NewHereticImp replaces HereticImpLeader 5
{
  Game Heretic
  SpawnID 7
  Health 100
  -MISSILEMORE
  AttackSound "himp/leaderattack"
  Tag "Fire Gargoyle"
  States
  {
	Spawn:
		IMPX A 0
		IMPX A 0 ACS_ExecuteAlways(WOC_MONSTERSCRIPT,0,100,36,0)//increase health on higher difficulties
	Idle:
		IMPX ABCB 10 A_Look
		Loop
	Melee:
		Stop
	Missile:
		IMPX DE 5 A_FaceTarget
		IMPX F 6 A_CustomComboAttack("HereticImpBall", 32, random(5,12) + ACS_ExecuteWithResult(WOC_MONSTERSCALE,1,ACTIVATOR,0), "himp/leaderattack", "Physical")
		Goto See
		Pain.Convert:
		TNT1 A 0 A_JumpIfInTargetInventory("Visions",Random(0,3),"ConvertMe")
		goto Pain
	ConvertMe:
		TNT1 A 0 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,20)
		TNT1 A 0 ACS_ExecuteAlways(WOC_VISIONSSCRIPT,0,0,0,0)
		goto See
	Death:
		IMPX A 0 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,20)
		IMPX G 1 A_ImpDeath
		IMPX G 1 A_SpawnItemEx ("GIB1", 0, 0, random(0,42), 0, 0, random(2,6), random(0,360), 128)
		IMPX G 1 A_SpawnItemEx ("GIB2", 0, 0, random(0,42), 0, 0, random(2,6), random(0,360), 128)
		IMPX G 1 A_SpawnItemEx ("GIB3", 0, 0, random(0,42), 0, 0, random(2,6), random(0,360), 128)
		IMPX H 1 A_SpawnItemEx ("GIB4", 0, 0, random(0,42), 0, 0, random(2,6), random(0,360), 128)
		IMPX H 1 A_SpawnItemEx ("GIB5", 0, 0, random(0,42), 0, 0, random(2,6), random(0,360), 128)
		IMPX H 1 A_SpawnItemEx ("GIB2", 0, 0, random(0,42), 0, 0, random(2,6), random(0,360), 128)
		IMPX H 2
		Wait
	XDeath:
		IMPX A 0 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,20)
		IMPX S 5 A_ImpXDeath1
		IMPX TU 5
		IMPX V 5 A_Gravity
		IMPX W 5 
		Wait
	Crash:
		IMPX III 1 A_SpawnItemEx("Blood", 0, 0, random(0,42), 0, 0, random(2,6), random(0,360), 128)
		IMPX I 4 A_ImpExplode
		IMPX J 7 A_Scream
		IMPX K 7
		IMPX L -1
		Stop
	Ice:
		"----" A 0 ACS_ExecuteAlways(WOC_MONSTERXPSCRIPT,0,20)
		"----" G 5 A_GenericFreezeDeath
		"----" G 1 A_FreezeDeathChunks
		Wait
  }
}

Actor NewHereticImpBall : HereticImpBall replaces HereticImpBall
{
	Damage (random(1, 8) + ACS_ExecuteWithResult(WOC_MONSTERSCALE,1,TARGET,0))
	+NODAMAGETHRUST
	Damagetype "Fire"
}

Actor NewPod : Pod replaces Pod
{
	+NODAMAGETHRUST
	Damagetype "Poison"
	PoisonDamage 1, 28, 35
	+ADDITIVEPOISONDAMAGE
	+ADDITIVEPOISONDURATION
	-OLDRADIUSDMG
	PoisonDamageType "PoisonTrue"
	States
	{
  Spawn:
    PPOD A 10
    Loop
  Pain:
    PPOD B 14 A_PodPain
    Goto Spawn
	Death:
		PPOD C 5 Bright A_RemovePod
		PPOD D 5 Bright A_Scream
		PPOD E 5 Bright A_Explode(128*0.025*(40+acs_executewithresult(WOC_DECORATE,STATS,GLOBALLEVEL,0)),128)
		PPOD F 10 Bright
		Stop
		Grow:
    PPOD IJKLMNOP 3
    Goto Spawn
	}
}

Actor PoisonPodExplosion
{
	PROJECTILE
	+NOCLIP
	+RIPPER
	+BLOODLESSIMPACT
	+PAINLESS
	+NODAMAGETHRUST
	Damagetype "Poison"
	PoisonDamage 1, 28, 35
	+ADDITIVEPOISONDAMAGE
	+ADDITIVEPOISONDURATION
	PoisonDamageType "PoisonTrue"
	States
	{
	Spawn:
    TNT1 A 0
	TNT1 A 1 A_Explode(128*0.025*(40+acs_executewithresult(WOC_DECORATE,STATS,GLOBALLEVEL,0)),128)
    Stop
	}
}