ACTOR HexenPlayer : PlayerPawn
{
   Player.DisplayName "Parias"
   Player.StartItem "Sapphire Wand", 1
   Player.StartItem "Mace of Contrition", 1
   Player.StartItem "HexenClass", 1
   Player.StartItem "Clip", 50
   Player.InvulnerabilityMode "Ghost"
   Player.HealRadiusType "Health"
   Player.Soundclass "HexenPlayer"
   Player.JumpZ 10.75//Default is 9.75
   Player.Viewheight 48
   Player.Face "PRS"
   BloodColor "Red"
   RadiusDamageFactor 0.25
   Player.ForwardMove 1.08, 1.2
   Player.SideMove 1.125, 1.35 //Originally 1.475
   DamageFactor "PoisonCloud", 1.75
   DamageFactor "TimonsAxe", 0.75
   DamageFactor "Mace", 1.1
   DamageFactor "DragonClaw", 1.1
   Player.ColorRange 240, 247
   +NOSKIN
   -DONTBLAST
   -THRUSPECIES
   Species "Player"
   States
  {
  Spawn:
    CLER A -1
    Stop
  See:
    CLER ABCD 4
    Loop
  Pain:
    CLER H 4
    CLER H 4 A_Pain
    Goto Spawn
  Missile:
  Melee:
    CLER EFG 6
    Goto Spawn
  Death:
    CLER I 6
    CLER J 6 A_PlayerScream
    CLER KL 6
    CLER M 6 A_NoBlocking
    CLER NOP 6
    CLER Q -1
  Stop
  XDeath:
    CLER R 5 A_PlayerScream
    CLER S 5
    CLER T 5 A_NoBlocking
    CLER UVWXYZ 5
    CLER [ -1
    Stop
  Ice:
  Death.HexenIce:
  Death.Ice:
    CLFR Z 5 A_FreezeDeath
    CLFR Z 1 A_FreezeDeathChunks
    Wait
  Burn:
    CBRN C 5 BRIGHT A_PlaySound("*burndeath")
    CBRN D 4 BRIGHT
    CBRN G 5 BRIGHT
    CBRN H 4 BRIGHT A_PlayerScream
    CBRN I 5 BRIGHT
    CBRN J 4 BRIGHT
    CBRN K 5 BRIGHT
    CBRN L 4 BRIGHT
    CBRN M 5 BRIGHT
    CBRN N 4 BRIGHT
    CBRN O 5 BRIGHT
    CBRN P 4 BRIGHT
    CBRN Q 5 BRIGHT
    CBRN R 4 BRIGHT
    CBRN S 5 BRIGHT A_NoBlocking
    CBRN T 4 BRIGHT
    CBRN U 5 BRIGHT
    CBRN V 4 BRIGHT
    ACLO E 35 A_CheckPlayerDone
    Wait
    ACLO E 8
    Stop
  Death.ZorchPistol:
  Death.Zorch:
	CLER H 0 A_Stop
	TNT1 A 0 A_PlaySoundEx("chex/zorch","soundslot5",0,0)
	CLER H 3 A_SpawnItem("ZorchEffectSmall")
    CLER H 3 A_SetTranslucent(0.9,0)
	CLER H 0 A_PlayerScream
    CLER H 3 A_SetTranslucent(0.8,0)
    CLER H 0 A_NoBlocking
    CLER H 3 A_SetTranslucent(0.7,0)
    CLER H 3 A_SetTranslucent(0.6,0)
    CLER H 3 A_SetTranslucent(0.5,0)
    CLER H 3 A_SetTranslucent(0.4,0)
    CLER H 3 A_SetTranslucent(0.3,0)
    CLER H 3 A_SetTranslucent(0.2,0)
    CLER H 3 A_SetTranslucent(0.1,0)
	ACLO E 1 A_SetTranslucent(1,0)
    ACLO E -1
    stop
  CoOpModeOn:
    TNT1 A 0
    TNT1 A 0 A_ChangeFlag("THRUSPECIES",1)
    TNT1 A 0 A_ChangeFlag("DONTBLAST",1)
    CLER A 1
	goto See
  Death.DukeDamage:
    TNT1 A 0 A_Jump(218,"Death")
	TNT1 A 0 A_GiveToTarget("DukeDMTaunt1",1)
	goto Death
  Death.DukeExplosive:
	TNT1 A 0 A_JumpIfHealthLower(-5,"DukeGibStart")
	goto Death.DukeDamage
  DukeGibStart:
	TNT1 A 0 A_UnsetSolid
	TNT1 A 0 A_PlaySound("duke/enemygib")
    TNT1 A 0 A_SpawnDebris("DukeGibs1")
    TNT1 A 0 A_SpawnDebris("DukeGibs2")
    TNT1 A 0 A_SpawnDebris("DukeGibs3")
    TNT1 A 0 A_SpawnDebris("DukeGibs4")
    TNT1 A 0 A_SpawnDebris("DukeGibs5")
    TNT1 A 0 A_SpawnDebris("DukeGibs6")
    TNT1 A 0 A_Jump(96,"XDeath")
	TNT1 A 0 A_GiveToTarget("DukeDMTaunt1",1)
	goto XDeath
  Death.DukeIce:
    TNT1 A 0 A_Jump(218,"Ice")
    TNT1 A 0 A_GiveToTarget("DukeDMTaunt1",1)
	goto Ice
  }
}

actor HexenClass : inventory { -INVBAR +INVENTORY.UNDROPPABLE inventory.maxamount 1 }

ACTOR PortTorch2 : PowerupGiver
{
  +FLOATBOB
  +INVENTORY.UNDROPPABLE
  +INVENTORY.PICKUPFLASH
  Inventory.MaxAmount 16
  Inventory.Icon ARTITRCH
  Inventory.UseSound "hexen/artiuse"
  Inventory.PickupMessage "You picked up a Torch!"
  Powerup.Type Torch
  States
  {
  Spawn:
    TRCH ABC 3 Bright
    Loop
  }
}

ACTOR PortMysticAmbit : CustomInventory
{
  +FLOATBOB
  Inventory.MaxAmount 16
  +INVENTORY.INVBAR
  +INVENTORY.PICKUPFLASH
  +INVENTORY.FANCYPICKUPSOUND
  +INVENTORY.UNDROPPABLE
  Inventory.Icon "ARTIHRAD"
  Inventory.PickupSound "hexen/artiget"
  //Inventory.UseSound "hexen/ambituse"
  Inventory.PickupMessage "You got the Mystic Ambit Incant!"
  States
  {
  Spawn:
    HRAD ABCDEFGHIJKLMNOP 4 Bright
    Loop
  Use:
    TNT1 A 0 A_JumpIfHealthLower(100,"UseSuccess")
    TNT1 A 1 ACS_ExecuteAlways(212,0,1)//A_Print("You cannot use this unless injured.")
	fail
  UseSuccess:
    TNT1 A 1 ACS_ExecuteAlways(212,0,2)//A_Print(" ")
    TNT1 A 0 A_GiveInventory("PortMysticAmbit2")
	TNT1 A 0 A_GiveInventory("MysticAmbitArmor")
	TNT1 A 0 A_PlaySoundEx("hexen/ambituse","body",0,0)
	TNT1 AAAAAAAAAAAAAAA 1 A_SpawnItemEx("ArmorScrap",0,0,random(60,90),random(-4,4),random(-4,4),random(1,7),48,0)
	stop
  }
}

ACTOR PortMysticAmbit2 : ArtiHealingRadius
{
+INVENTORY.AUTOACTIVATE
}

Actor MysticAmbitArmor : BasicArmorBonus
{
  Armor.Savepercent 33.33333
  Armor.MaxSaveAmount 300
  Armor.Saveamount 50
}

ACTOR PortQuartzFlask2 : HealthPickup
{
	health 25
	inventory.maxamount 16
	inventory.icon "ARTIQRTZ"
	inventory.usesound "hexen/artiuse"
	+inventory.undroppable
	+inventory.hubpower
}

ACTOR PortIconDefender : PowerupGiver
{
  +INVENTORY.UNDROPPABLE
  +inventory.hubpower
  Inventory.MaxAmount 16
  Inventory.Icon "ARTIDFND"
  Powerup.Type Invulnerable
  inventory.usesound "hexen/artiuse"
  Powerup.Color Grey, 0.1
}

ACTOR PortSuperHealth2 : HealthPickup
{
  health 100
  inventory.maxamount 16
  inventory.icon "ARTISPHL"
  inventory.usesound "hexen/artiuse"
  +inventory.undroppable
  +inventory.hubpower
  HealthPickup.Autouse 2
}

ACTOR PortKraterOfMight : CustomInventory
{
  +FLOATBOB
  +INVENTORY.INVBAR
  +INVENTORY.PICKUPFLASH
  +INVENTORY.FANCYPICKUPSOUND
  +INVENTORY.UNDROPPABLE
  Inventory.maxamount 16
  Inventory.Icon "ARTIBMAN"
  Inventory.PickupSound "hexen/artiget"
  Inventory.UseSound "hexen/artiuse"
  Inventory.PickupMessage "You picked up the Krater of Might!"
  States
  {
  Spawn:
    BMAN A -1
    Stop
  Use:
    TNT1 A 0 A_GiveInventory("Clip", 200)
    TNT1 A 0 A_GiveInventory("Cell", 300)
    Stop
  }
}

// Weapons

actor DiscOfRepulsionCooldown : inventory { -INVBAR +INVENTORY.UNDROPPABLE inventory.maxamount 15 }

ACTOR PortFlechette : CustomInventory
{
  +FLOATBOB
  Inventory.Amount 1
  Inventory.MaxAmount 1
  Inventory.PickupFlash "PickupFlash"
  +INVBAR
  +INVENTORY.UNDROPPABLE
  Inventory.Icon "ARTIPSBG"
  Inventory.PickupSound "hexen/weaponget"
  Inventory.UseSound "hexen/artiuse"
  Inventory.PickupMessage "You picked up the Flechette!"
  States
  {
  Spawn:
    PSBG A 1 Bright
    Loop
  Use:
	TNT1 A 0 A_JumpIfInventory("DiscOfRepulsionCooldown",1,"UseFail")
    TNT1 A 0 A_SpawnItemEx("PoisonBagCoop",0,0,0,0,0,0,0,28,0)
	TNT1 A 1 ACS_ExecuteAlways(207)
	TNT1 A 0 A_GiveInventory("DiscOfRepulsionCooldown",15)
	fail
  UseFail:
    TNT1 A 1 A_Print("The Flechette has not cooled down yet.")
	fail
  }
}

ACTOR PoisonBagCoop
{
  Speed 1
  Radius 20
  Height 30
  Mass 0x7fffffff
  DeathSound "PoisonShroomDeath"
  DamageType "PoisonCloud"
  +NOBLOCKMAP
  +NOGRAVITY
  +DROPOFF
  +NODAMAGETHRUST
  +DONTSPLASH
  +FOILINVUL
  +FORCERADIUSDMG
  +BLOODLESSIMPACT
  Obituary "%k put %o under the gas."
  States
  {
  Spawn:
    PSBG A 20 Bright // Previously 18
    PSBG B 4 Bright
    PSBG C 4 BRIGHT
	TNT1 A 0 A_SetTranslucent(0.7,1)
    PSBG D 1 BRIGHT A_Scream
	PSBG D 1 BRIGHT A_Explode(4,128,0)
  Poison:
    PSBG EEEFFFGGGHHHIII 2 BRIGHT A_Explode(4,128,0)
    PSBG EEEFFFGGGHHHIII 2 BRIGHT A_Explode(4,128,0)
    PSBG EEEFFFGGGHHHIII 2 BRIGHT A_Explode(4,128,0)
    PSBG EEEFFFGGGHHHIII 2 BRIGHT A_Explode(4,128,0)
    PSBG EEEFFFGGGHHHIII 2 BRIGHT A_Explode(4,128,0)
    PSBG EEEFFFGGGHHHIII 2 BRIGHT A_Explode(4,128,0)
    PSBG EEEFFFGGGHHHIII 2 BRIGHT A_Explode(4,128,0)
  Death:
    PSBG HG 7 BRIGHT
    PSBG FD 6 BRIGHT
    Stop
  }
}

ACTOR "Mace of Contrition" : CWeapMace
{
  Weapon.SlotNumber 0
  Weapon.SelectionOrder 3500
  Weapon.KickBack 150
  Weapon.YAdjust -8
  +BLOODSPLATTER
  +WEAPON.WIMPY_WEAPON
  +WEAPON.MELEEWEAPON
  +WEAPON.NOALERT
  +INVENTORY.UNDROPPABLE
  Obituary "%k maced %o the ol'-fashioned way."
  States
  {
  Select:
      CMCE A 1 A_Raise
      Loop
  Deselect:
      CMCE A 1 A_Lower
      Loop
  Ready:
      CMCE A 1 A_WeaponReady
      Loop
  Fire:
      CMCE B 2 Offset (60, 20)
      CMCE B 1 Offset (30, 33)
      CMCE B 2 Offset (8, 45)
      CMCE C 1 Offset (8, 45)
      CMCE D 1 Offset (8, 45)
      CMCE E 1 Offset (8, 45)
      CMCE E 1 Offset (-11, 58) A_CMaceAttack
      CMCE F 1 Offset (8, 45)
      CMCE F 2 Offset (-8, 74)
      CMCE F 1 Offset (-20, 96)
      CMCE F 8 Offset (-33, 160)
      CMCE A 2 Offset (8, 75) A_ReFire
      CMCE A 1 Offset (8, 65)
      CMCE A 2 Offset (8, 60)
      CMCE A 1 Offset (8, 55)
      CMCE A 2 Offset (8, 50)
      CMCE A 1 Offset (8, 45)
      Goto Ready
  }
}

ACTOR "Sapphire Wand" : MWeapWand
{
  Weapon.SelectionOrder 3600
  Weapon.SlotNumber 1
  +INVENTORY.UNDROPPABLE
  Weapon.KickBack 0
  Weapon.YAdjust 9
  States
  {
  Select:
    MWND A 1 A_Raise
    Loop
  Deselect:
    MWND A 1 A_Lower
    Loop
  Ready:
    MWND A 1 A_WeaponReady
    Loop
  Fire:
    MWND A 6
    MWND B 6 Bright Offset (0, 48) A_FireCustomMissile("MageWandMissile2")
    MWND A 3 Offset (0, 40)
    MWND A 3 Offset (0, 36) A_ReFire
    Goto Ready
  }
}

ACTOR MageWandMissile2 : MageWandMissile replaces MageWandMissile
{
Radius 3
Height 2
Obituary "%k unwove %o's life force with the Sapphire Wand."
Decal RailScorchLower
Damage 1
+STRIFEDAMAGE
+SPAWNSOUNDSOURCE
DamageType "Pistol"
}

ACTOR "Frost Shards" : MWeapFrost
{
  Weapon.SelectionOrder 1700
  Weapon.SlotNumber 2
  Weapon.AmmoUse1 2
  Weapon.AmmoGive1 25
  Weapon.KickBack 150
  Weapon.YAdjust 20
  DamageType "HexenIce"
  Weapon.AmmoType1 "Clip"
  Inventory.PickupMessage "You got the Frost Shards!"
  Obituary "%k shattered %o and left %p body to melt."
  Inventory.PickupSound "hexen/weaponget"
  +BLOODSPLATTER
  -ICEDAMAGE
  +INVENTORY.UNDROPPABLE
  States
  {
  Spawn:
    WMCS ABC 8 Bright
    Loop
  Select:
    CONE A 1 A_Raise
    Loop
  Deselect:
    CONE A 1 A_Lower
    Loop
  Ready:
    CONE A 1 A_WeaponReady
    Loop
  Fire:
    CONE B 4
    CONE C 4
  Hold:
    CONE D 3
    CONE E 4 BRIGHT
	TNT1 A 0 A_FireConePL1
	TNT1 A 0 A_FireCustomMissile("FrostMissileMelee",0,0)//A_CustomPunch(3,0,0,"BlankPuff3",84)//A_Saw("silence", "silence", 4, "BlankPuff")
    CONE F 4 BRIGHT //A_FireConePL1
    CONE G 4
    CONE B 3
    CONE A 10 A_ReFire
    Goto Ready
  }
}

ACTOR FrostMissileMelee : FastProjectile
{
   Damage 6
   Radius 1
   Height 1
   Speed 20
   DamageType "HexenIce"
   Projectile
   +STRIFEDAMAGE
   -BLOODSPLATTER
   States
   {
   Spawn:
		TNT1 A 1
        TNT1 A 1
		Stop
   Death:
		TNT1 A 1 A_Stop
		Stop
   }
}

ACTOR FrostMissile2 : FrostMissile replaces FrostMissile
{
Obituary "%k shattered %o and left %p body to melt."
-ICEDAMAGE
DamageType "HexenIce"
+THRUGHOST
}

Actor BlankPuff3 : BlankPuff
{
-ICEDAMAGE
DamageType "HexenIce"
}

ACTOR "Timon's Axe" : FWeapAxe
{
  Weapon.SelectionOrder 1500
  Weapon.SlotNumber 3
  Weapon.AmmoUse1 3
  Weapon.AmmoGive1 25
  Weapon.KickBack 150
  Weapon.YAdjust -12
  DamageType "TimonsAxe"
  Weapon.AmmoType1 "Clip"
  Inventory.PickupMessage "You got Timon's Axe!"
  Inventory.PickupSound "hexen/weaponget"
  Obituary "%k executed %o under Timon's blessing."
  -WEAPON.AXEBLOOD
  +WEAPON.AMMO_OPTIONAL
  +WEAPON.MELEEWEAPON
  +INVENTORY.UNDROPPABLE
  States
  {
  Spawn:
    WFAX A -1
    Stop
  Select:
    FAXE A 1 A_FAxeCheckUp
    Loop
  Deselect:
    FAXE A 1 A_Lower
    Loop
  Ready:
    FAXE A 1 A_FAxeCheckReady
    Loop
  SelectGlow:
    FAXE L 1 A_FAxeCheckUpG
    Loop
  DeselectGlow:
    FAXE L 1 A_Lower
    Loop
  ReadyGlow:
    FAXE LLL 1 BRIGHT A_FAxeCheckReadyG
    FAXE MMM 1 BRIGHT A_FAxeCheckReadyG
    Loop
  Fire:
	TNT1 A 0 A_JumpIfInventory("SPModeOn",1,"SPFire")
	TNT1 A 0 A_JumpIfInventory("CoopModeOn",1,"SPFire")
    FAXE B 4 Offset (15, 32) A_JumpIfInventory("Clip",1,"FireGlow")//A_FAxeCheckAtk
    FAXE C 3 Offset (15, 32)
    FAXE D 2 Offset (15, 32)
    FAXE D 1 Offset (-5, 70) A_CustomPunch(random(40,62),1,1,"AxePuff2",144)//A_FAxeAttack
    FAXE D 2 Offset (-25, 90)
  Fire2:
    FAXE E 1 Offset (15, 32)
    FAXE E 2 Offset (10, 54)
    FAXE E 7 Offset (10, 150)
    FAXE A 1 Offset (0, 60) A_ReFire
    FAXE A 1 Offset (0, 52)
    FAXE A 1 Offset (0, 44)
    FAXE A 1 Offset (0, 36)
    FAXE A 1
    Goto Ready
  FireGlow:
    FAXE N 4 BRIGHT Offset (15, 32)
    FAXE O 3 BRIGHT Offset (15, 32)
    FAXE P 2 BRIGHT Offset (15, 32)
    FAXE P 1 BRIGHT Offset (-5, 70) A_CustomPunch(random(100,144),1,1,"AxePuffGlow2",144)//A_FAxeAttack
    FAXE P 2 BRIGHT Offset (-25, 90)
	TNT1 A 0 A_JumpIfNoAmmo("Fire2")
    FAXE Q 1 BRIGHT Offset (15, 32)
    FAXE Q 2 BRIGHT Offset (10, 54)
    FAXE Q 7 BRIGHT Offset (10, 150)
    FAXE A 1 BRIGHT Offset (0, 60) A_ReFire
    FAXE A 1 BRIGHT Offset (0, 52)
    FAXE A 1 BRIGHT Offset (0, 44)
    FAXE A 1 BRIGHT Offset (0, 36)
    FAXE A 1 BRIGHT
    Goto ReadyGlow
  SPFire:
    FAXE B 4 Offset (15, 32) A_JumpIfInventory("Clip",1,"SPFireGlow")//A_FAxeCheckAtk
    FAXE C 3 Offset (15, 32)
    FAXE D 2 Offset (15, 32)
    FAXE D 1 Offset (-5, 70) A_FAxeAttack//A_CustomPunch(random(40,62),1,1,"AxePuff2",144)//
	TNT1 A 0 A_CustomPunch(2,0,0,"BlankPuff4",144)
	TNT1 A 0 A_CustomPunch(3,0,0,"BlankPuff4",84)//A_Saw("silence", "silence", 4, "BlankPuff")
    FAXE D 2 Offset (-25, 90)
  SPFire2:
    FAXE E 1 Offset (15, 32)
    FAXE E 2 Offset (10, 54)
    FAXE E 7 Offset (10, 150)
    FAXE A 1 Offset (0, 60) A_ReFire
    FAXE A 1 Offset (0, 52)
    FAXE A 1 Offset (0, 44)
    FAXE A 1 Offset (0, 36)
    FAXE A 1
    Goto Ready
  SPFireGlow:
    FAXE N 4 BRIGHT Offset (15, 32)
    FAXE O 3 BRIGHT Offset (15, 32)
    FAXE P 2 BRIGHT Offset (15, 32)
    FAXE P 1 BRIGHT Offset (-5, 70) A_FAxeAttack//A_CustomPunch(random(80,124),1,1,"AxePuffGlow2",144)//A_FAxeAttack
	TNT1 A 0 A_CustomPunch(3,0,0,"BlankPuff4",144)
	TNT1 AA 0 A_CustomPunch(5,0,0,"BlankPuff4",84)//A_Saw("silence", "silence", 6, "BlankPuff")
    FAXE P 2 BRIGHT Offset (-25, 90)
	TNT1 A 0 A_JumpIfNoAmmo("SPFire2")
    FAXE Q 1 BRIGHT Offset (15, 32)
    FAXE Q 2 BRIGHT Offset (10, 54)
    FAXE Q 7 BRIGHT Offset (10, 150)
    FAXE A 1 BRIGHT Offset (0, 60) A_ReFire
    FAXE A 1 BRIGHT Offset (0, 52)
    FAXE A 1 BRIGHT Offset (0, 44)
    FAXE A 1 BRIGHT Offset (0, 36)
    FAXE A 1 BRIGHT
    Goto ReadyGlow
  }
}

Actor AxePuff2 : AxePuff replaces AxePuff
{
//DamageType "TimonsAxe"
}

Actor AxePuffGlow2 : AxePuffGlow replaces AxePuffGlow
{
//DamageType "TimonsAxe"
}

Actor BlankPuff4 : BlankPuff
{
//DamageType "TimonsAxe"
}

ACTOR "Serpent Staff" : CWeapStaff
{
  Weapon.SelectionOrder 1600
  Weapon.SlotNumber 4
  Weapon.AmmoUse1 1
  Weapon.AmmoGive1 25
  Weapon.KickBack 150
  Weapon.YAdjust 10
  Weapon.AmmoType1 "Clip"
  Inventory.PickupMessage "You got the Serpent Staff!"
  Inventory.PickupSound "hexen/weaponget"
  Obituary "%k drained %o's soul into the Serpent Staff."
  +INVENTORY.UNDROPPABLE
  States
  {
  Spawn:
    WCSS A -1
    Stop
  Select:
    CSSF C 1 A_Raise
    Loop
  Deselect:
    CSSF B 3
    CSSF C 4
    CSSF C 1 A_Lower
    Wait
  Ready:
    CSSF C 4
    CSSF B 3 A_CStaffInitBlink
    CSSF AAAAAAA 1 A_WeaponReady
    CSSF A 1 A_CStaffCheckBlink
    Goto Ready + 2
  Fire:
    CSSF A 1 BRIGHT Offset (0, 45) A_CStaffCheck
    CSSF J 1 BRIGHT Offset (0, 50) A_CStaffAttack
    CSSF J 2 BRIGHT Offset (0, 50)
    CSSF J 2 Offset (0, 45)
    CSSF A 2 Offset (0, 40)
    CSSF A 2 Offset (0, 36)
    Goto Ready + 2
  Blink:
    CSSF BBBCCCCCBBB 1 A_WeaponReady
    Goto Ready + 2
  Drain:
	//CSSF K 0 A_GiveInventory("Health",1)
	CSSF K 0 A_GiveInventory("HealthBonus",1)
    CSSF K 8 BRIGHT Offset (0, 36)
    Goto Ready + 2
  }
}

ACTOR CStaffMissile2 : CStaffMissile replaces CStaffMissile
{
Decal DoomImpScorch
Damage (random(4,20))//5
Obituary "%k melted %o's flesh off with the Serpent's venom."
}

ACTOR "Hammer of Retribution" : FWeapHammer
{
  Weapon.SelectionOrder 900
  Weapon.SlotNumber 5
  +BLOODSPLATTER
  +WEAPON.AMMO_OPTIONAL
  +WEAPON.MELEEWEAPON
  +INVENTORY.UNDROPPABLE
  Weapon.AmmoUse1 3
  Weapon.AmmoGive1 25
  Weapon.KickBack 150
  Weapon.YAdjust -10
  Weapon.AmmoType1 "Cell"
  Inventory.PickupMessage "You got the Hammer of Retribution!"
  Inventory.PickupSound "hexen/weaponget"
  Obituary "%k splintered %o's skull and spine with the Hammer of Retribution."
  States
  {
  Spawn:
    WFHM A -1
    Stop
  Select:
    FHMR A 1 A_Raise
    Loop
  Deselect:
    FHMR A 1 A_Lower
    Loop
  Ready:
    FHMR A 1 A_WeaponReady
    Loop
  Fire:
    FHMR B 6 Offset (5, 0)
    FHMR C 3 Offset (5, 0) A_FHammerAttack
	TNT1 A 0 A_CustomPunch(3,0,0,"BlankPuff4",84)
    FHMR D 3 Offset (5, 0)
    FHMR E 2 Offset (5, 0)
    FHMR E 10 Offset (5, 150) A_FHammerThrow
    FHMR A 1 Offset (0, 60)
    FHMR A 1 Offset (0, 55)
    FHMR A 1 Offset (0, 50)
    FHMR A 1 Offset (0, 45)
    FHMR A 1 Offset (0, 40)
    FHMR A 1 Offset (0, 35)
    FHMR A 1
    Goto Ready
  }
}

ACTOR HammerMissile2 : HammerMissile replaces HammerMissile
{
Obituary "%k sent %o under the weight of the Hammer's fire."
Decal Scorch
Damage 20//10
+THRUGHOST
+FORCERADIUSDMG
+SKYEXPLODE
}

ACTOR Firestorm : CWeapFlame
{
  Weapon.SelectionOrder 1000
  Weapon.SlotNumber 6
  Weapon.AmmoUse 4
  Weapon.AmmoGive 25
  Weapon.KickBack 150
  Weapon.YAdjust 10
  Weapon.AmmoType1 "Cell"
  Inventory.PickupMessage "You got the Firestorm!"
  Inventory.PickupSound "hexen/weaponget"
  Obituary "%k baptized %o in the Firestorm."
  +INVENTORY.UNDROPPABLE
  +BRIGHT
  States
  {
  Spawn:
    WCFM ABCDEFGH 4 Bright
    Loop
  Select:
    CFLM A 1 A_Raise
    Loop
  Deselect:
    CFLM A 1 A_Lower
    Loop
  Ready:
    CFLM AAAABBBBCCCC 1 A_WeaponReady
    Loop
  Fire:
	TNT1 A 0 A_JumpIfInventory("SPModeOn",1,"SPFire")
	TNT1 A 0 A_JumpIfInventory("CoopModeOn",1,"SPFire")
    CFLM A 2 Offset (0, 40)
    CFLM D 2 Offset (0, 50)
    CFLM D 2 Offset (0, 36)
    CFLM E 4 Bright
	TNT1 A 0 A_PlayWeaponSound("ClericFlameFire")
	TNT1 A 0 A_FireCustomMissile("CFlameMissileDM")
    CFLM F 4 Bright //A_CFlameAttack
    CFLM E 4 Bright
    CFLM G 2 Offset (0, 40)
    CFLM G 2
	CFLM G 1 A_Refire
    Goto Ready
  SPFire:
    CFLM A 2 Offset (0, 40)
    CFLM D 2 Offset (0, 50)
    CFLM D 2 Offset (0, 36)
    CFLM E 4 Bright
    CFLM F 4 Bright A_CFlameAttack
    CFLM E 4 Bright
    CFLM G 2 Offset (0, 40)
    CFLM G 2
	CFLM G 1 A_Refire
    Goto Ready
  }
}

ACTOR CFlameMissileDM : CFlameMissile
{
States
  {
  Spawn:
    CFFX A 4 Bright
    CFFX A 1 A_CFlamePuff
    Goto Death
  Crash:
  XDeath:
	TNT1 B 0 A_SpawnItemEx("CircleFlame1",40,0,-10,0,0,0,0,28,0)
	TNT1 B 0 A_SpawnItemEx("CircleFlame1",40,0,-10,0,0,0,45,28,0)
	TNT1 B 0 A_SpawnItemEx("CircleFlame1",40,0,-10,0,0,0,90,28,0)
	TNT1 B 0 A_SpawnItemEx("CircleFlame1",40,0,-10,0,0,0,135,28,0)
	TNT1 B 0 A_SpawnItemEx("CircleFlame1",40,0,-10,0,0,0,180,28,0)
	TNT1 B 0 A_SpawnItemEx("CircleFlame1",40,0,-10,0,0,0,225,28,0)
	TNT1 B 0 A_SpawnItemEx("CircleFlame1",40,0,-10,0,0,0,270,28,0)
	TNT1 B 0 A_SpawnItemEx("CircleFlame1",40,0,-10,0,0,0,315,28,0)
  Death:
    CFFX A 1 Bright A_CFlamePuff
    CFFX ABC 3 Bright
    CFFX D 4 Bright
    CFFX E 3 Bright
    CFFX F 4 Bright
    CFFX G 3 Bright
    CFFX H 4 Bright
    CFFX I 3 Bright
    CFFX J 4 Bright
    CFFX K 3 Bright
    CFFX L 4 Bright
    CFFX M 3 Bright
    Stop
  }
}

ACTOR CircleFlame1 : CircleFlame
{
Obituary "%k baptized %o in the Firestorm."
Damage 2//Originally 2
States
{
  Death:
    CFCF QR 3 Bright
    CFCF S 3 Bright A_Explode(20, 32, 0)
    CFCF TUVWXYZ 3 Bright
    Stop
  }
}

ACTOR CircleFlame2 : CircleFlame replaces CircleFlame
{
Obituary "%k baptized %o in the Firestorm."
Damage 2
States
{
  Death:
    CFCF QR 3 Bright
    CFCF S 3 Bright A_Explode(32, 64, 0)
    CFCF TUVWXYZ 3 Bright
    Stop
  }
}

ACTOR Wraithverge : CWeapWraithverge
{
  Weapon.SelectionOrder 3000
  Weapon.SlotNumber 7
  +WEAPON.PRIMARY_USES_BOTH
  +INVENTORY.UNDROPPABLE
  Weapon.AmmoUse1 25
  Weapon.AmmoUse2 25
  Weapon.AmmoGive1 25
  Weapon.AmmoGive2 25
  Weapon.KickBack 150
  Weapon.AmmoType1 "Clip"
  Weapon.AmmoType2 "Cell"
  Obituary "%k added %o's soul to the Wraithverge."
  Inventory.PickupMessage "You picked up the Wraithverge!"
  Inventory.PickupSound "hexen/weaponget"
  States
  {
  Spawn:
    WWRT A -1
    Stop
  Ready:
    CHLY A 1 A_WeaponReady
    Loop
  Select:
    CHLY A 1 A_Raise
    Loop
  Deselect:
    CHLY A 1 A_Lower
    Loop
  Fire:
    CHLY AB 1 Bright Offset (0, 40)
    CHLY CD 2 Bright Offset (0, 43)
    CHLY E 2 Bright Offset (0, 45)
    CHLY F 6 Bright Offset (0, 48) A_CHolyAttack
    CHLY GG 2 Bright Offset (0, 40) A_CHolyPalette
    CHLY G 2 Offset (0, 36) A_CHolyPalette
	CHLY A 20
	CHLY A 5 A_Refire
    Goto Ready
  }
}

ACTOR HolySpirit2 : HolySpirit replaces HolySpirit
{
Obituary "%k added %o's soul to the Wraithverge."
Renderstyle Add
Speed 10
Alpha 0.7
+STRIFEDAMAGE
+BRIGHT
DamageType "TimonsAxe"
}