//
// EDF for Eternity Engine v3.40.50
//
// Thing type definitions for Heretic gamemode.
//

// Pickup and Artifact base types, for Raven-style item respawning behavior

thingtype HereticPickup
{
  cflags   SPECIAL|RAVENRESPAWN
  seesound ht_respawn
  states
  @"
  Pickup.Respawn:
    ACLO E        1400 A_HideThing
    ACLO A        4    A_RestoreSpecialThing1
    ACLO BABCBCDC 4
    ACLO D        4    A_RestoreSpecialThing2
    stop
  "@
}

thingtype HereticArtifact
{
  cflags   SPECIAL|RAVENRESPAWN
  seesound ht_respawn
  states
  @"
  Pickup.Respawn:
    ACLO DCDCBCBABA 3
    ACLO A          1400 A_HideThing
    ACLO A          3    A_UnHideThing
    ACLO BABCBCDC   3
    ACLO D          3    A_RestoreArtifact
    stop
  Pickup.Remove:
    ACLO DCDCBCBABA 3
    stop
  "@
}

thingtype CrystalVial : HereticPickup, 7081, 300
{
  addflags FLOATBOB
  acs_spawndata 
  { 
    num   23 
    modes heretic
  } 

  firstdecoratestate S_ITEM_PTN1_1
  states
  @"
  Spawn:
    PTN1 ABC 3
    loop
  "@
}

thingtype SilverShield : HereticPickup, 7085, 301
{
  addflags FLOATBOB
  acs_spawndata 
  {
    num   68 
    modes heretic
  }

  firstdecoratestate S_ITEM_SHLD1
  states
  @"
  Spawn:
    SHLD A -1
    stop
  "@
}

thingtype EnchantedShield : HereticPickup, 7031, 302
{
  addflags FLOATBOB|NOTSHAREWARE
  acs_spawndata
  {
    num   69 
    modes heretic
  }

  firstdecoratestate S_ITEM_SHD2_1
  states
  @"
  Spawn:
    SHD2 A -1
    stop
  "@
}

thingtype BagOfHolding : HereticPickup, 7008, 303
{
  addflags COUNTITEM|FLOATBOB
  acs_spawndata 
  {
    num   136 
    modes heretic
  }

  firstdecoratestate S_ITEM_BAGH1
  states
  @"
  Spawn:
    BAGH A -1
    stop
  "@
}

thingtype MapScroll : HereticPickup, 7035, 304
{
  compatname SuperMap
  addflags   COUNTITEM|FLOATBOB
  acs_spawndata 
  { 
    num 137
    modes heretic
  }

  firstdecoratestate S_ITEM_SPMP1
  states
  @"
  Spawn:
    SPMP A -1
    stop
  "@
}

thingtype Pod : Mobj, 7235, 305
{
  spawnhealth 45
  painchance  255
  deathsound  ht_podexp
  radius      16.0
  height      54.0
  cflags      SOLID|SHOOTABLE|DROPOFF|NOBLOOD|NORESPAWN|PUSHABLE|SLIDE|TELESTOMP|WINDTHRUST|SPACMONSTER|PASSMOBJ|MONSTERPASS|LOWAIMPRIO|STICKYCARRY|SETTARGETONDEATH|SLIDEOVERTHINGS
  mod         Barrel
  acs_spawndata
  {
    num   125 
    modes heretic
  }

  firstdecoratestate S_POD_WAIT1
  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
    PPOD F 10 bright
    stop
  PodGrow:
    PPOD IJKLMNOP 3
    goto Spawn
  "@
}

thingtype PodGoo : Mobj, -1, 306
{
  radius 2.0
  height 4.0
  cflags NOBLOCKMAP|DROPOFF|MISSILE|LOGRAV|NOCROSS|NOSPLASH|CANNOTPUSH|NORANDOMIZE|NOZERODAMAGE

  firstdecoratestate S_PODGOO1
  states
  @"
  Spawn:
    PPOD GH 8
    loop
  Death:
    PPOD G 10
    stop
  "@
}

thingtype PodGenerator : Mobj, 7043, 307
{
  cflags NOSECTOR|NOBLOCKMAP
  acs_spawndata
  {
    num   126 
    modes heretic
  }

  firstdecoratestate S_PODGENERATOR
  states
  @"
  Spawn:
    TNT1 A 35 A_MakePod
    loop
  "@
}

thingtype HangingSkull70 : Mobj, 7017, 308
{
  compatname SkullHang70
  height     70.0
  cflags     SPAWNCEILING|NOGRAVITY

  firstdecoratestate S_SKULLHANG70_1
  states
  @"
  Spawn:
    SKH1 A -1
    stop
  "@
}

thingtype HangingSkull60 : Mobj, 7024, 309 
{
  compatname SkullHang60
  height     60.0
  cflags     SPAWNCEILING|NOGRAVITY

  firstdecoratestate S_SKULLHANG60_1
  states
  @"
  Spawn:
    SKH2 A -1
    stop
  "@
}

thingtype HangingSkull45 : Mobj, 7025, 310
{
  compatname SkullHang45
  height     45.0
  cflags     SPAWNCEILING|NOGRAVITY

  firstdecoratestate S_SKULLHANG45_1
  states
  @"
  Spawn:
    SKH3 A -1
    stop
  "@
}

thingtype HangingSkull35 : Mobj, 7026, 311
{
  compatname SkullHang35
  height     35.0
  cflags     SPAWNCEILING|NOGRAVITY

  firstdecoratestate S_SKULLHANG35_1
  states
  @"
  Spawn:
    SKH4 A -1
    stop
  "@
}

thingtype Chandelier : Mobj, 7028, 312 
{
  height 60.0
  cflags SPAWNCEILING|NOGRAVITY

  firstdecoratestate S_CHANDELIER1
  states
  @"
  Spawn:
    CHDL ABC 4
    loop
  "@
}

thingtype SerpentTorch : Mobj, 7027, 313
{
  radius 12.0
  height 54.0
  cflags SOLID

  firstdecoratestate S_SERPTORCH1
  states
  @"
  Spawn:
    SRTC ABC 4
    loop
  "@
}

thingtype HereticPillarSmall : Mobj, 7029, 314
{
  compatname SmallPillar
  radius     16.0
  height     34.0
  cflags     SOLID

  firstdecoratestate S_SMALLPILLAR
  states
  @"
  Spawn:
    SMPL A -1
    stop
  "@
}

thingtype HereticStalagmiteSmall : Mobj, 7037, 315
{
  compatname StalagmiteSmall
  radius     8.0
  height     32.0
  cflags     SOLID

  firstdecoratestate S_STALAGMITESMALL
  states
  @"
  Spawn:
    STGS A -1
    stop
  "@
}

thingtype HereticStalagmiteLarge : Mobj, 7038, 316
{
  compatname StalagmiteLarge
  radius     12.0
  height     64.0
  cflags     SOLID

  firstdecoratestate S_STALAGMITELARGE
  states
  @"
  Spawn:
    STGL A -1
    stop
  "@
}

thingtype HereticStalactiteSmall : Mobj, 7039, 317
{
  compatname StalactiteSmall
  radius     8.0
  height     36.0
  cflags     SOLID|SPAWNCEILING|NOGRAVITY

  firstdecoratestate S_STALACTITESMALL
  states
  @"
  Spawn:
    STCS A -1
    stop
  "@
}

thingtype HereticStalactiteLarge : Mobj, 7040, 318
{
  compatname StalactiteLarge
  radius     12.0
  height     68.0
  cflags     SOLID|SPAWNCEILING|NOGRAVITY

  firstdecoratestate S_STALACTITELARGE
  states
  @"
  Spawn:
    STCL A -1
    stop
  "@
}

thingtype FireBrazier : Mobj, 7076, 319
{
  radius 16.0
  height 44.0
  cflags SOLID

  firstdecoratestate S_FIREBRAZIER1
  states
  @"
  Spawn:
    KFR1 ABCDEFGH 3 bright
    loop
  "@
}

thingtype HereticBarrel : Mobj, 7044, 320
{
  compatname Barrel
  radius     12.0
  height     32.0
  cflags     SOLID

  firstdecoratestate S_WOODBARREL
  states
  @"
  Spawn:
    BARL A -1
    stop
  "@
}

thingtype HornedPillar : Mobj, 7047, 321
{
  compatname BrownPillar
  radius     14.0
  height     128.0
  cflags     SOLID

  firstdecoratestate S_BCOLUMN
  states
  @"
  Spawn:
    BRPL A -1
    stop
  "@
}

thingtype HereticMoss1 : Mobj, 7048, 322
{
  compatname Moss1
  height     23.0
  cflags     SPAWNCEILING|NOGRAVITY

  firstdecoratestate S_MOSS1
  states
  @"
  Spawn:
    MOS1 A -1
    stop
  "@
}

thingtype HereticMoss2 : Mobj, 7049, 323
{
  compatname Moss2
  height     27.0
  cflags     SPAWNCEILING|NOGRAVITY

  firstdecoratestate S_MOSS2
  states
  @"
  Spawn:
    MOS2 A -1
    stop
  "@
}


thingtype HereticWallTorch : Mobj, 7050, 324
{
  compatname WallTorch
  cflags     NOGRAVITY

  firstdecoratestate S_WALLTORCH1
  states
  @"
  Spawn:
    WTRH ABC 6 bright
    loop
  "@
}

thingtype HereticCorpse : Mobj, 7051, 325
{
  compatname HangingCorpse
  radius     8.0
  height     104.0
  cflags     SOLID|SPAWNCEILING|NOGRAVITY

  firstdecoratestate S_HTICCORPSE
  states
  @"
  Spawn:
    HCOR A -1
    stop
  "@
}

// Base class thingtype for all key gizmos
thingtype KeyGizmo
{
  radius 16.0
  height 50.0
  cflags SOLID

  firstdecoratestate S_KEYGIZMO3
  states
  @"
  Spawn:
    KGZ1 A -1
    stop
  "@
}

thingtype KeyGizmoBlue : KeyGizmo, 7094, 326
{
  firstdecoratestate S_KEYGIZMOB
  states
  @"
  Spawn:
    KGZ1 A 1
    KGZ1 A 1 A_InitKeyGizmo
    goto Super::Spawn
  "@
}

thingtype KeyGizmoGreen : KeyGizmo, 7095, 327
{
  firstdecoratestate S_KEYGIZMOG
  states
  @"
  Spawn:
    KGZ1 A 1
    KGZ1 A 1 A_InitKeyGizmo
    goto Super::Spawn
  "@
}

thingtype KeyGizmoYellow : KeyGizmo, 7096, 328
{
  firstdecoratestate S_KEYGIZMOY
  states
  @"
  Spawn:
    KGZ1 A 1
    KGZ1 A 1 A_InitKeyGizmo
    goto Super::Spawn
  "@
}

thingtype KeyGizmoOrb : Mobj, -1, 329
{
  radius 16.0
  cflags SOLID|NOGRAVITY

  firstdecoratestate S_KGZ_START
  states
  @"
  Spawn:
    KGZB A 1
    loop
  Blue:
    KGZB A -1 bright
    stop
  Green:
    KGZG A -1 bright
    stop
  Yellow:
    KGZY A -1 bright
    stop
  "@
}

thingtype TeleGlitterGenRed : Mobj, 7074, 330
{
  compatname TeleGlitterGenerator1
  cflags     DONTDRAW

  firstdecoratestate S_TELEGLITGEN1
  states
  @"
  Spawn:
    TGLT A 8 A_SpawnTeleGlitter
    loop
  "@
}

thingtype TeleGlitterGenBlue : Mobj, 7052, 331
{
  compatname TeleGlitterGenerator2
  cflags     DONTDRAW

  firstdecoratestate S_TELEGLITGEN2
  states
  @"
  Spawn:
    TGLT F 8 A_SpawnTeleGlitter2
    loop
  "@
}

thingtype TeleGlitterRed : Mobj, -1, 332
{
  compatname TeleGlitter1
  cflags     NOBLOCKMAP|NOGRAVITY|MISSILE|NOSPLASH|NORANDOMIZE|NOZERODAMAGE
  acs_spawndata
  {
    num   166 
    modes heretic
  }

  firstdecoratestate S_TELEGLITTER1_1
  states
  @"
  Spawn:
    TGLT A 2 bright
    TGLT B 2 bright A_AccelGlitter
    TGLT C 2 bright
    TGLT D 2 bright A_AccelGlitter
    TGLT E 2 bright
    loop
  "@
}

thingtype TeleGlitterBlue : Mobj, -1, 333
{
  compatname TeleGlitter2
  cflags     NOBLOCKMAP|NOGRAVITY|MISSILE|NOSPLASH|NORANDOMIZE|NOZERODAMAGE
  acs_spawndata
  {
    num   167
    modes heretic
  }

  firstdecoratestate S_TELEGLITTER2_1
  states
  @"
  Spawn:
    TGLT F 2 bright
    TGLT G 2 bright A_AccelGlitter
    TGLT H 2 bright
    TGLT I 2 bright A_AccelGlitter
    TGLT J 2 bright
    loop
  "@
}

thingtype HereticTeleFog : Mobj, -1, 334
{
  cflags NOBLOCKMAP|NOGRAVITY

  firstdecoratestate S_HTFOG1
  states
  @"
  Spawn:
    TELE ABCDEFGHGFEDC 6 bright
    stop
  "@
}

thingtype HereticBlood : Mobj, -1, 335
{
  cflags NOBLOCKMAP|NOSPLASH

  firstdecoratestate S_HTICBLOOD1
  states
  @"
  Spawn:
    BLOD CBA 8
    stop
  "@
}

thingtype Golem : Mobj, 7068, 336
{
  compatname     Mummy
  spawnhealth    80
  painchance     128
  speed          12
  radius         22.0
  height         62.0
  mass           75
  seesound       ht_mumsit
  attacksound    ht_mumat1
  painsound      ht_mumpai
  deathsound     ht_mumdth
  activesound    ht_mumsit
  cflags         SOLID|SHOOTABLE|COUNTKILL|FOOTCLIP|SPACMONSTER|PASSMOBJ
  obituary_melee "was pummeled by a Golem"
  dropitem       HAmmoWandWimpy, 84, 3, +toss
  acs_spawndata
  {
    num   4
    modes heretic
  }

  firstdecoratestate S_MUMMY_LOOK1
  states
  @"
  Spawn:
    MUMM AB 10 A_Look
    loop
  See:
    MUMM ABCD 4 A_Chase
    loop
  Melee:
    MUMM E 6 A_FaceTarget
    MUMM F 6 A_MummyAttack
    MUMM G 6 A_FaceTarget
    goto See
  Pain:
    MUMM H 4
    MUMM H 4 A_Pain
    goto See
  Death:
    MUMM I  5
    MUMM J  5 A_Scream
    MUMM K  5 A_MummySoul
    MUMM L  5
    MUMM M  5 A_Fall
    MUMM NO 5
    MUMM P -1
    stop
  "@
}

thingtype NitroGolem : Golem, 7045, 337
{
  compatname      MummyLeader
  spawnhealth     100
  painchance      64
  obituary_normal "was burned by a Nitrogolem"
  obituary_melee  "was beaten by a Nitrogolem"
  acs_spawndata
  {
    num   2 
    modes heretic
  }

  firstdecoratestate S_MUMMYL_ATK1
  states
  @"
  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 15 bright A_MummyAttack2
    goto See
  "@
}

thingtype GolemGhost : Golem, 7069, 338
{
  compatname     MummyGhost
  addflags       GHOST
  obituary_melee "was spooked by a Golem Ghost"
  acs_spawndata
  {
    num   8 
    modes heretic
  }
}

thingtype NitroGolemGhost : NitroGolem, 7046, 339
{
  addflags        GHOST
  obituary_normal "was burned by a Nitrogolem Ghost"
  obituary_melee  "was beaten by a Nitrogolem Ghost"
  acs_spawndata
  {
    num   9
    modes heretic
  }
}

thingtype GolemSoul : Mobj, -1, 340
{
  compatname MummySoul
  cflags     NOBLOCKMAP|NOGRAVITY

  firstdecoratestate S_MUMMY_SOUL1
  states
  @"
  Spawn:
    MUMM QRS 5
    MUMM T   9
    MUMM UVW 5
    stop
  "@
}

thingtype GolemShot : Mobj, -1, 341
{
  compatname MummyFX1
  speed      9.0
  fastspeed  18.0
  radius     8.0
  height     14.0
  damage     4
  cflags     NOBLOCKMAP|NOGRAVITY|DROPOFF|MISSILE|NOSPLASH|NOCROSS|SEEKERMISSILE|NORANDOMIZE|DRAWSBLOOD
  acs_spawndata
  {
    num   131
    modes heretic 
  }

  firstdecoratestate S_MUMMYFX1_1
  states
  @"
  Spawn:
    FX15 A 5 bright A_ContMobjSound
    FX15 B 5 bright A_MummyFX1Seek
    FX15 C 5 bright
    FX15 B 5 bright A_MummyFX1Seek
    loop
  Death:
    FX15 DEFG 5 bright
    stop
  "@
}

thingtype Weredragon : Mobj, 7070, 342
{
  compatname      Beast
  spawnhealth     220
  painchance      100
  speed           14
  radius          32.0
  height          74.0
  mass            200
  activesound     ht_bstact
  seesound        ht_bstsit
  attacksound     ht_bstatk
  painsound       ht_bstpai
  deathsound      ht_bstdth
  cflags          SOLID|SHOOTABLE|COUNTKILL|FOOTCLIP|SPACMONSTER|PASSMOBJ
  obituary_normal "was flamed by a Weredragon"
  obituary_melee  "was torn apart by a Weredragon"
  dropitem        HAmmoCBowWimpy, 84, 10, +toss
  acs_spawndata
  {
    num   3
    modes heretic 
  }

  firstdecoratestate S_BEAST_LOOK1
  states
  @"
  Spawn:
    BEAS AB 10 A_Look
    loop
  See:
    BEAS ABCDEF 3 A_Chase
    loop
  Missile:
    BEAS H 10 A_FaceTarget
    BEAS I 10 A_BeastAttack
    goto See
  Pain:
    BEAS G 3
    BEAS G 3 A_Pain
    goto See
  Death:
    BEAS R   6
    BEAS S   6 A_Scream
    BEAS TUV 6
    BEAS W   6 A_Fall
    BEAS XY  6
    BEAS Z  -1
    stop
  XDeath:
    BEAS J  5
    BEAS K  6 A_Scream
    BEAS L  5
    BEAS M  6
    BEAS N  5
    BEAS O  6 A_Fall
    BEAS P  5 
    BEAS Q -1
    stop
  "@
}

thingtype WeredragonShot : Mobj, -1, 343
{
  compatname BeastBall
  speed      12.0
  fastspeed  20.0
  radius     9.0
  height     8.0
  damage     4
  cflags     NOBLOCKMAP|NOGRAVITY|DROPOFF|MISSILE|NOSPLASH|NOCROSS|WINDTHRUST|NORANDOMIZE|DRAWSBLOOD
  acs_spawndata
  {
    num   120
    modes heretic
  }

  firstdecoratestate S_BEASTBALL1
  states
  @"
  Spawn:
    FRB1 AABBCC 2 A_BeastPuff
    loop
  Death:
    FRB1 DEFGH 4
    stop
  "@
}

thingtype WeredragonSmoke : Mobj, -1, 344
{
  compatname Puffy
  speed      10.0
  radius     6.0
  height     8.0
  damage     2
  cflags     NOBLOCKMAP|NOGRAVITY|MISSILE|NOCROSS|NOSPLASH|NORANDOMIZE|DRAWSBLOOD

  firstdecoratestate S_PUFFY1
  states
  @"
  Spawn:
  Death:
    FRB1 DEFGH 4
    stop
  "@
}

thingtype Ophidian : Mobj, 7092, 345
{
  compatname      Snake
  spawnhealth     280
  painchance      48
  speed           10
  radius          22.0
  height          70.0
  activesound     ht_snkact
  seesound        ht_snksit
  attacksound     ht_snkatk
  painsound       ht_snkpai
  deathsound      ht_snkdth
  cflags          SOLID|SHOOTABLE|COUNTKILL|FOOTCLIP|SPACMONSTER|PASSMOBJ
  obituary_normal "was smoked by an Ophidian"
  dropitem        HAmmoPhoenixWimpy, 84, 5, +toss
  acs_spawndata
  {
    num   132
    modes heretic 
  }

  firstdecoratestate S_SNAKE_LOOK1
  states
  @"
  Spawn:
    SNKE AB 10 A_Look
    loop
  See:
    SNKE ABCD 4 A_Chase
    loop
  Missile:
    SNKE FF  5 A_FaceTarget
    SNKE FFF 4 A_SnakeAttack
    SNKE FFF 5 A_FaceTarget
    SNKE F   4 A_SnakeAttack2
    goto See
  Pain:
    SNKE E 3
    SNKE E 3 A_Pain
    goto See
  Death:
    SNKE G    5
    SNKE H    5 A_Scream
    SNKE IJKL 5
    SNKE M    5 A_Fall
    SNKE NO   5
    SNKE P   -1
    stop
  "@
}

thingtype OphidianShotA : Mobj, -1, 346
{
  compatname SnakeProjA
  speed      14.0
  fastspeed  20.0
  radius     12.0
  height     8.0
  damage     1
  cflags     NOBLOCKMAP|NOGRAVITY|DROPOFF|MISSILE|NOSPLASH|NOCROSS|WINDTHRUST|NORANDOMIZE|DRAWSBLOOD
  acs_spawndata
  {
    num   138
    modes heretic 
  }

  firstdecoratestate S_SNAKEPRO_A1
  states
  @"
  Spawn:
    SNFX ABCD 5 bright
    loop
  Death:
    SNFX EF 5 bright
    SNFX G  4 bright
    SNFX HI 3 bright
    stop
  "@
}

thingtype OphidianShotB : Mobj, -1, 347
{
  compatname SnakeProjB
  speed      14.0
  fastspeed  20.0
  radius     12.0
  height     8.0
  damage     3
  cflags     NOBLOCKMAP|NOGRAVITY|DROPOFF|MISSILE|NOSPLASH|NOCROSS|NORANDOMIZE|DRAWSBLOOD
  acs_spawndata
  {
    num   139
    modes heretic
  }

  firstdecoratestate S_SNAKEPRO_B1
  states
  @"
  Spawn:
    SNFX JK 6 bright
    loop
  Death:
    SNFX LM 5 bright
    SNFX N  4 bright
    SNFX O  3 bright
    stop
  "@
}

thingtype SabreClaw : Mobj, 7090, 348
{
  compatname     Clink
  spawnhealth    150
  painchance     32
  speed          14
  height         64.0
  mass           75
  activesound    ht_clkact
  seesound       ht_clksit
  attacksound    ht_clkatk
  painsound      ht_clkpai
  deathsound     ht_clkdth
  cflags         SOLID|SHOOTABLE|NOBLOOD|COUNTKILL|FOOTCLIP|SPACMONSTER|PASSMOBJ
  obituary_melee "was sliced to bits by a Sabreclaw"
  dropitem       HAmmoSkullWimpy, 84, 20, +toss
  acs_spawndata
  {
    num   1
    modes heretic
  }

  firstdecoratestate S_CLINK_LOOK1
  states
  @"
  Spawn:
    CLNK AB 10 A_Look
    loop
  See:
    CLNK ABCD 3 A_Chase
    loop
  Melee:
    CLNK E 5 A_FaceTarget
    CLNK F 4 A_FaceTarget
    CLNK G 7 A_ClinkAttack
    goto See
  Pain:
    CLNK H 3
    CLNK H 3 A_Pain
    goto See
  Death:
    CLNK IJ 6
    CLNK K  5 A_Scream
    CLNK L  5 A_Fall
    CLNK MN 5
    CLNK O -1
    stop
  "@
}

thingtype Disciple : Mobj, 7015, 349
{
  compatname      Wizard
  spawnhealth     180
  painchance      64
  speed           12
  radius          16.0
  height          68.0
  activesound     ht_wizact
  seesound        ht_wizsit
  attacksound     ht_wizatk
  painsound       ht_wizpai
  deathsound      ht_wizdth
  cflags          SOLID|SHOOTABLE|NOGRAVITY|FLOAT|COUNTKILL|ACTSEESOUND|BOSSIGNORE|SPACMONSTER|PASSMOBJ|DONTOVERLAP
  obituary_normal "was schooled by a Disciple"
  obituary_melee  "was slapped by a Disciple"
  dropitem        HAmmoBlasterWimpy, 84, 10, +toss
  dropitem        HArtiTomeOfPower,   4,  0, +toss
  acs_spawndata
  {
    num   19
    modes heretic
  }

  firstdecoratestate S_WIZARD_LOOK1
  states
  @"
  Spawn:
    WZRD AB 10 A_Look
    loop
  See:
    WZRD A 3 A_Chase
    WZRD A 4 A_Chase
    WZRD A 3 A_Chase
    WZRD A 4 A_Chase
    WZRD B 3 A_Chase
    WZRD B 4 A_Chase
    WZRD B 3 A_Chase
    WZRD B 4 A_Chase
    loop
  Missile:
    WZRD C  4 A_WizardAtk1
    WZRD C  4 A_WizardAtk2
    WZRD C  4 A_WizardAtk1
    WZRD C  4 A_WizardAtk2
    WZRD C  4 A_WizardAtk1
    WZRD C  4 A_WizardAtk2
    WZRD C  4 A_WizardAtk1
    WZRD C  4 A_WizardAtk2
    WZRD D 12 A_WizardAtk3
    goto See
  Pain:
    WZRD E 3 A_GhostOff
    WZRD E 3 A_Pain
    goto See
  Death:
    WZRD F  6 A_GhostOff
    WZRD G  6 A_Scream
    WZRD HI 6 
    WZRD J  6 A_Fall
    WZRD KL 6
    WZRD M -1
    stop
  "@
}

thingtype DiscipleShot : Mobj, -1, 350
{
  compatname WizardFX1
  speed      18.0
  fastspeed  24.0
  radius     10.0
  height     6.0
  damage     3
  cflags     NOBLOCKMAP|NOGRAVITY|DROPOFF|MISSILE|NOSPLASH|NOCROSS|NORANDOMIZE|DRAWSBLOOD
  acs_spawndata
  {
    num   140
    modes heretic
  }

  firstdecoratestate S_WIZFX1_1
  states
  @"
  Spawn:
    FX11 AB 6 bright
    loop
  Death:
    FX11 CDEFG 5 bright
    stop
  "@
}

thingtype DeathKnight : Mobj, 7064, 351
{
  compatname      Knight
  spawnhealth     200
  painchance      100
  speed           12
  radius          24.0
  height          78.0
  mass            150
  activesound     ht_kgtsit
  seesound        ht_kgtsit
  attacksound     ht_kgtatk
  painsound       ht_kgtpai
  deathsound      ht_kgtdth
  cflags          SOLID|SHOOTABLE|COUNTKILL|FOOTCLIP|SPACMONSTER|PASSMOBJ
  obituary_normal "was axed by a Death Knight"
  obituary_melee  "was chopped down by a Death Knight"
  dropitem        HAmmoCBowWimpy, 84, 5, +toss
  acs_spawndata
  {
    num   6
    modes heretic
  }

  firstdecoratestate S_KNIGHT_STND1
  states
  @"
  Spawn:
    KNIG AB 10 A_Look
    loop
  See:
    KNIG ABCD 4 A_Chase
    loop
  Melee:
  Missile:
    KNIG E 10 A_FaceTarget
    KNIG F  8 A_FaceTarget
    KNIG G  8 A_KnightAttack
    KNIG E 10 A_FaceTarget
    KNIG F  8 A_FaceTarget
    KNIG G  8 A_KnightAttack
    goto See
  Pain:
    KNIG H 3
    KNIG H 3 A_Pain
    goto See
  Death:
    KNIG I  6
    KNIG J  6 A_Scream
    KNIG K  6
    KNIG L  6 A_Fall
    KNIG MN 6
    KNIG O -1
    stop
  "@
}

thingtype DeathKnightGhost : DeathKnight, 7065, 352
{
  compatname      KnightGhost
  addflags        GHOST
  obituary_normal "was spooked by a Knight Ghost"
  obituary_melee  "was chopped by a Knight Ghost"
  acs_spawndata
  {
    num   129
    modes heretic 
  }
}

thingtype KnightAxe : Mobj, -1, 353
{
  speed      9.0
  fastspeed  18.0
  radius     10.0
  height     8.0
  damage     2
  deathsound ht_hrnhit
  cflags     NOBLOCKMAP|NOGRAVITY|DROPOFF|MISSILE|NOSPLASH|NORANDOMIZE|NOCROSS|THRUGHOST|WINDTHRUST|DRAWSBLOOD
  acs_spawndata
  {
    num   127
    modes heretic
  }

  firstdecoratestate S_SPINAXE1
  states
  @"
  Spawn:
    SPAX A  3 bright A_ContMobjSound
    SPAX BC 3 bright
    loop
  Death:
    SPAX DEF 6 bright
    stop
  "@
}

thingtype KnightAxeRed : Mobj, -1, 354
{
  compatname RedAxe
  speed      9.0
  fastspeed  18.0
  radius     10.0
  height     8.0
  damage     7
  deathsound ht_hrnhit
  cflags     NOBLOCKMAP|NOGRAVITY|DROPOFF|MISSILE|NOSPLASH|NOCROSS|THRUGHOST|NORANDOMIZE|DRAWSBLOOD
  acs_spawndata
  {
    num   128
    modes heretic
  }

  firstdecoratestate S_REDAXE1
  states
  @"
  Spawn:
    RAXE AB 5 bright A_DripBlood
    loop
  Death:
    RAXE CDE 6 bright
    stop
  "@
}

thingtype SerpentRiderDsparil : Mobj, 7007, 355
{
  compatname      Sorcerer1
  spawnhealth     2000
  painchance      56
  speed           16
  radius          28.0
  height          100.0
  mass            800
  activesound     ht_sbtact
  seesound        ht_bstsit
  attacksound     ht_bstatk
  painsound       ht_sbtpai
  deathsound      ht_sbtdth
  cflags          SOLID|SHOOTABLE|COUNTKILL|BOSS|FOOTCLIP|SPACMONSTER|PASSMOBJ
  nukespecial     SorcNukeSpec
  obituary_normal "was burned by D'Sparil's serpent"
  obituary_melee  "was devoured by D'Sparil's serpent"
  acs_spawndata
  {
    num   142
    modes heretic 
  }

  firstdecoratestate S_SRCR1_LOOK1
  states
  @"
  Spawn:
    SRCR AB 10 A_Look
    loop
  See:
    SRCR ABCD 5 A_Sor1Chase
    loop
  Pain:
    SRCR Q 6 A_Sor1Pain
    goto See
  Missile:
    SRCR Q  7 A_FaceTarget
    SRCR R  6 A_FaceTarget
    SRCR S 10 A_Srcr1Attack
    goto See
  ExtraAttack:
    SRCR S 10 A_FaceTarget
    SRCR Q  7 A_FaceTarget
    SRCR R  6 A_FaceTarget
    SRCR S 10 A_Srcr1Attack
    goto See
  Death:
    SRCR E     7
    SRCR F     7 A_Scream
    SRCR G     7
    SRCR HIJK  6
    SRCR L    25 A_SorZap
    SRCR MN    5
    SRCR O     4
    SRCR L    20 A_SorZap
    SRCR MN    5
    SRCR O     4
    SRCR L    12
    SRCR P    -1 A_SorcererRise
    stop
  "@
}

thingtype SRDsparilShot1 : Mobj, -1, 356
{
  compatname SorcererFX1
  speed      20.0
  fastspeed  28.0
  radius     10.0
  height     10.0
  damage     10
  cflags     NOBLOCKMAP|NOGRAVITY|DROPOFF|MISSILE|NOSPLASH|NOCROSS|FIREDAMAGE|NORANDOMIZE|DRAWSBLOOD
  acs_spawndata
  {
    num   144
    modes heretic 
  }

  firstdecoratestate S_SRCRFX1_1
  states
  @"
  Spawn:
    FX14 ABC 6 bright
    loop
  Death:
    FX14 DEFGH 5 bright
    stop
  "@
}

thingtype Dsparil : Mobj, -1, 357
{
  compatname      Sorcerer2
  spawnhealth     3500
  painchance      32
  speed           14
  radius          16.0
  height          70.0
  mass            300
  activesound     ht_soract
  seesound        ht_sorsit
  attacksound     ht_soratk
  painsound       ht_sorpai
  cflags          SOLID|SHOOTABLE|DROPOFF|COUNTKILL|E3M8BOSS|BOSS|FOOTCLIP|LOUDACTIVE|DMGIGNORED|BOSSIGNORE|SPACMONSTER|PASSMOBJ
  obituary_normal "brought about the end of Parthoris"
  obituary_melee  "utterly failed to save Parthoris"
  acs_spawndata
  {
    num   143
    modes heretic
  }

  firstdecoratestate S_SOR2_RISE1
  states
  @"
  Sor2Rise:
    SOR2 AB   4
    SOR2 C    4 A_SorRise
    SOR2 DEF  4
    SOR2 G   12 A_SorSightSnd
    goto See
  Spawn:
    SOR2 MN 10 A_Look
    loop
  See:
    SOR2 MNOP 4 A_Chase
    loop
  Pain:
    SOR2 Q 3
    SOR2 Q 6 A_Pain
    goto See
  Missile:
    SOR2 R  9 A_Srcr2Decide
    SOR2 S  9 A_FaceTarget
    SOR2 T 20 A_Srcr2Attack
    goto See
  Sor2Teleport:
    SOR2 LKJIHG 6
    goto See
  Death:
    SDTH A   8 A_Sor2DthInit
    SDTH B   8
    SDTH C   8 A_SorDSph
    SDTH DE  7
    SDTH F   7 A_Sor2DthLoop
    SDTH G   6 A_SorDExp
    SDTH H   6
    SDTH I  18
    SDTH J   6 A_Fall
    SDTH K   6 A_SorDBon
    SDTH LMN 6
    SDTH O  -1 A_HticBossDeath
    stop
  "@
}

thingtype DsparilShot1 : Mobj, -1, 358
{
  compatname Sorcerer2FX1
  speed      20.0
  fastspeed  28.0
  radius     10.0
  height     6.0
  damage     1
  cflags     NOBLOCKMAP|NOGRAVITY|DROPOFF|MISSILE|NOSPLASH|NOCROSS|NORANDOMIZE|DRAWSBLOOD
  acs_spawndata
  {
    num   146
    modes heretic
  }

  firstdecoratestate S_SOR2FX1_1
  states
  @"
  Spawn:
    FX16 ABC 3 bright A_BlueSpark
    loop
  Death:
    FX16 G     5 bright A_HticExplode("dsparilbspark")
    FX16 HIJKL 5 bright
    stop
  "@
}

thingtype DsparilSpark : Mobj, -1, 359
{
  compatname Sorcerer2FXSpark
  cflags     NOBLOCKMAP|NOGRAVITY|NOCROSS|CANNOTPUSH

  firstdecoratestate S_SOR2FXSPARK1
  states
  @"
  Spawn:
    FX16 DEF 12 bright
    stop
  "@
}

thingtype DsparilShot2 : Mobj, -1, 360
{
  compatname Sorcerer2FX2
  speed      6.0
  radius     10.0
  height     6.0
  damage     10
  cflags     NOBLOCKMAP|NOGRAVITY|DROPOFF|MISSILE|NOSPLASH|NOCROSS|NORANDOMIZE|DRAWSBLOOD
  acs_spawndata
  {
    num   145
    modes heretic
  }

  firstdecoratestate S_SOR2FX2_1
  states
  @"
  Spawn:
    FX11 A 35 bright
    FX11 A  5 bright A_GenWizard
    FX11 B  5 bright
    loop
  Death:
    FX11 CDEFG 5 bright
    stop
  "@
}

thingtype DsparilTeleFade : Mobj, -1, 361
{
  compatname Sorcerer2Telefade
  cflags     NOBLOCKMAP

  firstdecoratestate S_SOR2TELEFADE1
  states
  @"
  Spawn:
    SOR2 G     8
    SOR2 HIJKL 6
    stop
  "@
}

thingtype HereticGreenKey : Mobj, 7073, 362
{
  compatname KeyGreen
  cflags     SPECIAL|RAVENRESPAWN|NOTDMATCH
  acs_spawndata
  {
    num   86
    modes heretic
  }

  firstdecoratestate S_AKYY1
  states
  @"
  Spawn:
    AKYY ABCDEFGHIJ 3 bright
    loop
  "@
}

thingtype HereticBlueKey : Mobj, 7079, 363
{
  compatname KeyBlue
  cflags     SPECIAL|RAVENRESPAWN|NOTDMATCH
  acs_spawndata
  {
    num   85
    modes heretic
  }

  firstdecoratestate S_BKYY1
  states
  @"
  Spawn:
    BKYY ABCDEFGHIJ 3 bright
    loop
  "@
}

thingtype HereticYellowKey : Mobj, 7080, 364
{
  compatname KeyYellow
  cflags     SPECIAL|RAVENRESPAWN|NOTDMATCH
  acs_spawndata
  {
    num   87
    modes heretic
  }

  firstdecoratestate S_CKYY1
  states
  @"
  Spawn:
    CKYY ABCDEFGHI 3 bright
    loop
  "@
}

thingtype HereticAmbienceWind : Mobj, 7042, 365
{
  compatname SoundWind
  cflags     DONTDRAW
  acs_spawndata
  {
    num   110
    modes heretic
  }

  firstdecoratestate S_SND_WIND
  states
  @"
  Spawn:
    AMG1 A 100 A_ESound
    loop
  "@
}

thingtype HereticAmbienceWater : Mobj, 7041, 366
{
  compatname SoundWaterfall
  cflags     DONTDRAW
  acs_spawndata
  {
    num   111
    modes heretic
  }

  firstdecoratestate S_SND_WATERFALL
  states
  @"
  Spawn:
    AMG1 A 85 A_ESound
    loop
  "@
}

thingtype DsparilTeleSpot : Mobj, 7056, 367
{
  compatname BossSpot
  height     32.0
  cflags     NOSECTOR|NOBLOCKMAP
}

thingtype HereticVolcano : Mobj, 7087, 368
{
  compatname      Volcano
  radius          12.0
  height          20.0
  cflags          SOLID
  obituary_normal "made a poor volcanologist"
  acs_spawndata
  {
    num   150
    modes heretic
  }

  firstdecoratestate S_VOLCANO1
  states
  @"
  Spawn:
    VLCO A      350
    VLCO A       35 A_VolcanoSet
    VLCO BCDBCD   3
    VLCO E       10 A_VolcanoBlast
    goto Spawn+1
  "@
}

thingtype VolcanoBall : Mobj, -1, 369
{
  compatname VolcanoBlast
  deathsound ht_lobhit
  speed      2.0
  radius     8.0
  height     8.0
  damage     2
  cflags     NOBLOCKMAP|MISSILE|DROPOFF|LOGRAV|NOCROSS|FIREDAMAGE|NOSPLASH|NORANDOMIZE|DRAWSBLOOD
  acs_spawndata
  {
    num   123
    modes heretic 
  }

  firstdecoratestate S_VOLCANOBALL1
  states
  @"
  Spawn:
    VFBL AB 4 A_BeastPuff
    loop
  Death:
    XPL1 A     4 A_VolcBallImpact
    XPL1 BCDEF 4
    stop
  "@
}

thingtype VolcanoBallSmall : Mobj, -1, 370
{
  compatname VolcanoTBlast
  speed      2.0
  radius     8.0
  height     6.0
  damage     1
  cflags     NOBLOCKMAP|MISSILE|DROPOFF|LOGRAV|NOCROSS|FIREDAMAGE|NOSPLASH|NORANDOMIZE|DRAWSBLOOD
  acs_spawndata
  {
    num   124
    modes heretic
  }

  firstdecoratestate S_VOLCANOTBALL1
  states
  @"
  Spawn:
    VTFB AB 4
    loop
  Death:
    SFFI CDABCDE 4
    stop
  "@
}

thingtype Maulotaur : Mobj, 7009, 371
{
  compatname      Minotaur
  spawnhealth     3000
  painchance      25
  speed           16
  radius          28.0
  height          100.0
  mass            800
  damage          7
  dmgspecial      MinotaurCharge
  activesound     ht_minact
  seesound        ht_minsit
  attacksound     ht_minat1
  painsound       ht_minpai
  deathsound      ht_mindth
  cflags          SOLID|SHOOTABLE|DROPOFF|COUNTKILL|BOSS|FOOTCLIP|E2M8BOSS|NOSTRAFE|INVULNCHARGE|E5M8BOSS|DMGIGNORED|SPACMONSTER|PASSMOBJ
  obituary_normal "bowed down before the Maulotaur"
  obituary_melee  "was pounded flat by the Maulotaur"
  dropitem        HArtiSuperHeal,    51,  0, +toss
  dropitem        HAmmoPhoenixWimpy, 84, 10, +toss
  acs_spawndata
  {
    num   114     // note: different from zdoom
    modes heretic
  }

  firstdecoratestate S_MNTR_LOOK1
  states
  @"
  Spawn:
    MNTR AB 10 A_Look
    loop
  See:
    MNTR ABCD 5 A_Chase
    loop
  Melee:
    MNTR V 10 A_FaceTarget
    MNTR W  7 A_FaceTarget
    MNTR X 12 A_MinotaurAtk1
    goto See
  Missile:
    MNTR V 10 A_MinotaurDecide
    MNTR Y  4 A_FaceTarget
    MNTR Z  9 A_MinotaurAtk2
    goto See
  MinotaurAtk3:
    MNTR V 10 A_FaceTarget
    MNTR W  7 A_FaceTarget
    MNTR X 12 A_MinotaurAtk3
    goto See
  MinotaurDoubleAttack:
    MNTR X 12
    goto MinotaurAtk3
  MinotaurCharge:
    MNTR U 2 A_MinotaurCharge
    loop
  Pain:
    MNTR E 3
    MNTR E 6 A_Pain
    goto See
  Death:
    MNTR F  6
    MNTR G  5
    MNTR H  6 A_Scream
    MNTR I  5
    MNTR J  6
    MNTR K  5
    MNTR L  6
    MNTR M  5 A_Fall
    MNTR N  6
    MNTR O  5
    MNTR P  6
    MNTR Q  5
    MNTR R  6
    MNTR S  5
    MNTR T -1 A_HticBossDeath
    stop
  "@
}

thingtype MaulotaurShot : Mobj, -1, 372
{
  compatname MinotaurFX1
  speed      20.0
  fastspeed  26.0
  radius     10.0
  height     6.0
  damage     3
  cflags     NOBLOCKMAP|NOGRAVITY|DROPOFF|MISSILE|NOSPLASH|NOCROSS|FIREDAMAGE|NORANDOMIZE|DRAWSBLOOD
  acs_spawndata
  {
    num   115     // note: different from zdoom  
    modes heretic
  }

  firstdecoratestate S_MNTRFX1_1
  states
  @"
  Spawn:
    FX12 AB 6 bright
    loop
  Death:
    FX12 CDEFGH 5 bright
    stop
  "@
}

// Base class for Maulotaur floor fire and floor flame
thingtype MaulotaurFireProto
{
  deathsound ht_phohit
  damage     4
  cflags     NOBLOCKMAP|NOGRAVITY|DROPOFF|MISSILE|NOCROSS|FIREDAMAGE|NOSPLASH|NORANDOMIZE|DRAWSBLOOD

  firstdecoratestate S_MNTRFXI2_1
  states
  @"
  Death:
    FX13 I    4 bright A_HticExplode("floorfire")
    FX13 JKLM 4 bright
    stop
  "@
}

thingtype MaulotaurFloorFire : MaulotaurFireProto, -1, 373
{
  compatname MinotaurFX2
  speed      14.0
  fastspeed  20.0
  radius     5.0
  height     12.0
  addflags   FLOORMISSILE
  acs_spawndata
  {
    num   116     // note: different from zdoom
    modes heretic
  }

  firstdecoratestate S_MNTRFX2_1
  states
  @"
  Spawn:
    FX13 A 2 A_MntrFloorFire
    loop
  "@
}

thingtype MaulotaurFloorFlame : MaulotaurFireProto, -1, 374
{
  compatname MinotaurFX3
  radius     8.0
  acs_spawndata
  {
    num   117     // note : different from zdoom
    modes heretic
  }

  firstdecoratestate S_MNTRFX3_1
  states
  @"
  Spawn:
    FX13 DC   4 bright
    FX13 BCDE 5 bright
    FX13 FGH  4 bright
    stop
  "@
}

thingtype HereticPhoenixPuff : Mobj, -1, 375
{
  compatname   PhoenixPuff
  cflags       NOBLOCKMAP|NOGRAVITY|NOCROSS|CANNOTPUSH
  translucency 26624

  firstdecoratestate S_PHOENIXPUFF1
  states
  @"
  Spawn:
    FX04 BCDEF 4
    stop
  "@
}

thingtype IronLich : Mobj, 7006, 376
{
  spawnhealth     700
  painchance      32
  speed           6
  radius          40.0
  height          72.0
  mass            325
  painsound       ht_hedpai
  seesound        ht_hedsit
  attacksound     ht_hedat1
  deathsound      ht_heddth
  activesound     ht_hedact
  cflags          SOLID|SHOOTABLE|COUNTKILL|NOBLOOD|E1M8BOSS|E4M8BOSS|NOSPLASH|SPACMONSTER|PASSMOBJ
  obituary_normal "was punished by the Iron Lich"
  obituary_melee  "was bitten by the Iron Lich"
  dropitem        HAmmoBlasterWimpy, 84, 10, +toss
  dropitem        HArtiEgg,          51,  0, +toss
  acs_spawndata
  {
    num   20
    modes heretic
  }

  firstdecoratestate S_LICH_LOOK
  states
  @"
  Spawn:
    HEAD A 10 A_Look
    loop
  See:
    HEAD A 4 A_Chase
    loop
  Missile:
    HEAD A  5 A_FaceTarget
    HEAD B 20 A_LichAttack
    goto See
  Pain:
    HEAD A 4
    HEAD A 4 A_Pain
    goto See
  Death:
    HEAD C  7
    HEAD D  7 A_Scream
    HEAD EF 7
    HEAD G  7 A_Fall
    HEAD H  7
    HEAD I -1 A_HticBossDeath
    stop
  "@
}

thingtype IronLichShot1 : Mobj, -1, 377
{
  compatname HeadFX1
  speed      13.0
  fastspeed  20.0
  radius     12.0
  height     6.0
  damage     1
  cflags     NOBLOCKMAP|MISSILE|DROPOFF|NOGRAVITY|NOSPLASH|NOCROSS|THRUGHOST|NORANDOMIZE|DRAWSBLOOD
  acs_spawndata
  {
    num   164
    modes heretic
  }

  firstdecoratestate S_LICHFX1_1
  states
  @"
  Spawn:
    FX05 ABC 6
    loop
  Death:
    FX05 D   5 A_LichIceImpact
    FX05 EFG 5
    stop
  "@
}

thingtype IronLichShot2 : Mobj, -1, 378
{
  compatname HeadFX2
  speed      8.0
  radius     12.0
  height     6.0
  damage     3
  cflags     NOBLOCKMAP|MISSILE|DROPOFF|NOGRAVITY|NOSPLASH|NOCROSS|NORANDOMIZE|DRAWSBLOOD

  firstdecoratestate S_LICHFX2_1
  states
  @"
  Spawn:
    FX05 HIJ 6
    loop
  Death:
    FX05 DEFG 5
    stop
  "@
}

thingtype IronLichShot3 : Mobj, -1, 379
{
  compatname HeadFX3
  speed      10.0
  fastspeed  18.0
  radius     14.0
  height     12.0
  damage     5
  cflags     NOBLOCKMAP|MISSILE|DROPOFF|NOGRAVITY|NOSPLASH|NOCROSS|WINDTHRUST|NORANDOMIZE|DRAWSBLOOD

  firstdecoratestate S_LICHFX3_1
  states
  @"
  Spawn:
    FX06 ABC 4 A_LichFireGrow
    loop
  LichFireFull:
    FX06 ABC 5
    loop
  Death:
    FX06 DEFG 5
    stop
  "@
}

thingtype LichWhirlwind : Mobj, -1, 380
{
  compatname   Whirlwind
  speed        10.0
  radius       16.0
  height       74.0
  damage       1
  cflags       NOBLOCKMAP|MISSILE|DROPOFF|NOGRAVITY|NOCROSS|NOSPLASH|SEEKERMISSILE|EXPLOCOUNT|NORANDOMIZE|DRAWSBLOOD
  translucency 26624
  dmgspecial   Whirlwind
  acs_spawndata
  {
    num   165
    modes heretic
  }

  firstdecoratestate S_LICHFX4_1
  states
  @"
  Spawn:
    FX07 DEFG 3
    FX07 ABC  3 A_WhirlwindSeek
    goto Spawn+4
  Death:
    FX07 GFED 4
    stop
  "@
}

thingtype HAmmoWandWimpy : HereticPickup, 7010, 381
{
  compatname  GoldWandAmmo
  spawnhealth 10
  acs_spawndata
  {
    num   11
    modes heretic
  }

  firstdecoratestate S_AMG1
  states
  @"
  Spawn:
    AMG1 A -1
    stop
  "@
}

thingtype HAmmoWandHefty : HereticPickup, 7012, 382
{
  compatname  GoldWandHefty
  spawnhealth 50
  acs_spawndata
  {
    num   12
    modes heretic
  }

  firstdecoratestate S_AMG2_1
  states
  @"
  Spawn:
    AMG2 ABC 4
    loop
  "@
}

thingtype HAmmoMaceWimpy : HereticPickup, 7013, 383
{
  compatname MaceAmmo
  addflags   NOTSHAREWARE
  spawnhealth 20
  acs_spawndata
  {
    num   35
    modes heretic
  }

  firstdecoratestate S_AMM1
  states
  @"
  Spawn:
    AMM1 A -1
    stop
  "@
}

thingtype HAmmoMaceHefty : HereticPickup, 7016, 384
{
  compatname MaceHefty
  addflags   NOTSHAREWARE
  spawnhealth 100
  acs_spawndata
  {
    num   36
    modes heretic
  }

  firstdecoratestate S_AMM2
  states
  @"
  Spawn:
    AMM2 A -1
    stop
  "@
}

thingtype HAmmoCBowWimpy : HereticPickup, 7018, 385
{
  compatname  CrossbowAmmo
  spawnhealth 5
  acs_spawndata
  {
    num   33
    modes heretic
  }

  firstdecoratestate S_AMC1
  states
  @"
  Spawn:
    AMC1 A -1
    stop
  "@
}

thingtype HAmmoCBowHefty : HereticPickup, 7019, 386
{
  compatname  CrossbowHefty
  spawnhealth 20
  acs_spawndata
  {
    num   34
    modes heretic
  }

  firstdecoratestate S_AMC2_1
  states
  @"
  Spawn:
    AMC2 ABC 5
    loop
  "@
}

thingtype HAmmoSkullWimpy : HereticPickup, 7020, 387
{
  compatname  SkullRodAmmo
  spawnhealth 20
  addflags    NOTSHAREWARE
  acs_spawndata
  {
    num   158 
    modes heretic
  }

  firstdecoratestate S_AMS1_1
  states
  @"
  Spawn:
    AMS1 AB 5
    loop
  "@
}

thingtype HAmmoSkullHefty : HereticPickup, 7021, 388
{
  compatname  SkullRodHefty
  spawnhealth 100
  addflags    NOTSHAREWARE
  acs_spawndata
  {
    num   159
    modes heretic
  }

  firstdecoratestate S_AMS2_1
  states
  @"
  Spawn:
    AMS2 AB 5
    loop
  "@
}

thingtype HAmmoPhoenixWimpy : HereticPickup, 7022, 389
{
  compatname  PhoenixRodAmmo
  spawnhealth 1
  addflags    NOTSHAREWARE
  acs_spawndata
  {
    num   161
    modes heretic
  }

  firstdecoratestate S_AMP1_1
  states
  @"
  Spawn:
    AMP1 ABC 4
    loop
  "@
}

thingtype HAmmoPhoenixHefty : HereticPickup, 7023, 390
{
  compatname  PhoenixRodHefty
  spawnhealth 10
  addflags    NOTSHAREWARE
  acs_spawndata
  {
    num   162
    modes heretic
  }

  firstdecoratestate S_AMP2_1
  states
  @"
  Spawn:
    AMP2 ABC 4
    loop
  "@
}

thingtype HAmmoBlasterWimpy : HereticPickup, 7054, 391
{
  compatname  BlasterAmmo
  spawnhealth 10
  acs_spawndata
  {
    num   37
    modes heretic
  }

  firstdecoratestate S_AMB1_1
  states
  @"
  Spawn:
    AMB1 ABC 4
    loop
  "@
}

thingtype HAmmoBlasterHefty : HereticPickup, 7055, 392
{
  compatname  BlasterHefty
  spawnhealth 25
  acs_spawndata
  {
    num   38
    modes heretic
  }

  firstdecoratestate S_AMB2_1
  states
  @"
  Spawn:
    AMB2 ABC 4
    loop
  "@
}

thingtype HereticImp : Mobj, 7066, 393
{
  spawnhealth    40
  painchance     200
  speed          10
  radius         16.0
  height         36.0
  mass           50
  activesound    ht_impsit
  seesound       ht_impsit
  attacksound    ht_impat1
  painsound      ht_imppai
  deathsound     ht_impdth
  cflags         SOLID|SHOOTABLE|FLOAT|NOGRAVITY|COUNTKILL|NOSTRAFE|SPAWNFLOAT|RANGEHALF|SPACMONSTER|PASSMOBJ|DONTOVERLAP
  obituary_melee "was scratched by a Gargoyle"
  acs_spawndata
  {
    num   5
    modes heretic
  }

  firstdecoratestate S_IMP_LOOK1
  states
  @"
  Spawn:
    IMPX ABCB 10 A_Look
    loop
  See:
    IMPX AABBCCBB 3 A_Chase
    loop
  Melee:
    IMPX DE 6 A_FaceTarget
    IMPX F  6 A_ImpMeleeAtk
    goto See
  Missile:
    IMPX A    10 A_FaceTarget
    IMPX B     6 A_ImpChargeAtk
    IMPX CBAB  6
    goto Missile+2
  Pain:
    IMPX G 3
    IMPX G 3 A_Pain
    goto See
  Death:
    IMPX G 4 A_ImpDeath
    IMPX H 5
    wait
  XDeath:
    IMPX S  5 A_ImpXDeath1
    IMPX TU 5
    IMPX V  5 A_ImpXDeath2
    IMPX W  5
    wait
  Crash:
    IMPX I 7 A_ImpExplode
    IMPX J 7 A_Scream
    IMPX K 7
    IMPX L -1
    stop
  XCrash:
    IMPX XY  7
    IMPX Z  -1
    stop
  "@
}

thingtype HereticImpLeader : HereticImp, 7005, 394
{
  spawnhealth     80
  attacksound     ht_impat2
  remflags        NOSTRAFE|RANGEHALF
  obituary_normal "was burned by a Gargoyle Leader"
  obituary_melee  "was scratched by a Gargoyle Leader"
  acs_spawndata
  {
    num   7
    modes heretic
  }

  firstdecoratestate S_IMP_MSATK2_1
  states
  @"
  Missile:
    IMPX DE 6 A_FaceTarget
    IMPX F  6 A_ImpMissileAtk
    goto See
  Melee:
    stop
  "@
}

thingtype HereticImpChunk1 : Mobj, -1, 395
{
  firstdecoratestate S_IMP_CHUNKA1
  states
  @"
  Spawn:
    IMPX M 5
    IMPX N 700
    IMPX O 700
    stop
  "@
}

thingtype HereticImpChunk2 : Mobj, -1, 396
{
  firstdecoratestate S_IMP_CHUNKB1
  states
  @"
  Spawn:
    IMPX P 5
    IMPX Q 700
    IMPX R 700
    stop
  "@
}

thingtype HereticImpShot : Mobj, -1, 397
{
  compatname HereticImpBall
  speed      10.0
  fastspeed  20.0
  radius     8.0
  height     8.0
  damage     1
  cflags     NOBLOCKMAP|MISSILE|DROPOFF|NOGRAVITY|NOSPLASH|WINDTHRUST|NOCROSS|NORANDOMIZE|DRAWSBLOOD
  acs_spawndata
  {
    num   10
    modes heretic
  }

  firstdecoratestate S_IMPFX1
  states
  @"
  Spawn:
    FX10 ABC 6 bright
    loop
  Death:
    FX10 DEFG 5 bright
    stop
  "@
}

thingtype HereticPlayer : Mobj, -1, 398
{
  spawnhealth  100
  reactiontime 0
  painchance   255
  radius       16.0
  height       56.0
  painsound    ht_plrpai
  deathsound   ht_plrdth
  cflags       SOLID|SHOOTABLE|DROPOFF|PICKUP|NOTDMATCH|FOOTCLIP|SLIDE|TELESTOMP|WINDTHRUST|PASSMOBJ|NOSOUNDCUTOFF|STICKYCARRY
  mod          PlayerMisc

  firstdecoratestate S_HPLAY
  states
  @"
  Spawn:
    PLAY A -1
    stop
  See:
    PLAY ABCD 4
    loop
  Missile:
    PLAY E 12
    goto Spawn
  AltAttack:
    PLAY F 6 bright
    goto Missile
  Pain:
    PLAY G 4
    PLAY G 4 A_Pain
    goto Spawn
  Death:
    PLAY H   6
    PLAY I   6 A_RavenPlayerScream
    PLAY JK  6
    PLAY L   6 A_Fall
    PLAY MNO 6
    PLAY P  -1
    stop
  XDeath:
    PLAY Q     5 A_RavenPlayerScream
    PLAY R     5 A_PlayerSkull
    PLAY S     5 A_Fall
    PLAY TUVWX 5
    PLAY Y    -1
    stop
  Death.Fire:
  Death.Lava:
    FDTH A  5 bright A_FlameSnd
    FDTH B  4 bright
    FDTH C  5 bright
    FDTH D  4 bright A_Scream
    FDTH E  5 bright
    FDTH F  4 bright
    FDTH G  5 bright A_FlameSnd
    FDTH H  4 bright
    FDTH I  5 bright
    FDTH J  4 bright
    FDTH K  5 bright
    FDTH L  4 bright
    FDTH M  5 bright
    FDTH N  4 bright
    FDTH O  5 bright A_Fall
    FDTH P  4 bright
    FDTH Q  5 bright
    FDTH R  4 bright
    ACLO E 35        A_CheckPlayerDone("PlayerDone")
    wait
  PlayerDone:
    ACLO E  8
    stop
  "@
}

thingtype HereticPlayerSkull : Mobj, -1, 399
{
  compatname BloodySkull
  radius     4.0
  height     4.0
  cflags     CORPSE|DROPOFF|LOGRAV|CANNOTPUSH

  firstdecoratestate S_HPLAYERSKULL1
  states
  @"
  Spawn:
    BSKL ABCDE 5
    loop
  Crash:
    BSKL F -1
    stop
  "@
}

// Artifacts

thingtype HArtiInvisibility : HereticArtifact, 7075, 400
{
  compatname   ArtiInvisibility
  addflags     COUNTITEM|FLOATBOB|SUPERITEM
  translucency 26624

  firstdecoratestate S_ARTI_INVS1
  states
  @"
  Spawn:
    INVS A -1 bright
    stop
  "@
}

thingtype HArtiQuartzFlask : HereticArtifact, 7082, 401
{
  compatname ArtiHealth
  addflags   COUNTITEM|FLOATBOB

  firstdecoratestate S_ARTI_PTN2_1
  states
  @"
  Spawn:
    PTN2 ABC 4
    loop
  "@
}

thingtype HArtiFly : HereticArtifact, 7083, 402
{
  compatname ArtiFly
  addflags   COUNTITEM|FLOATBOB

  firstdecoratestate S_ARTI_SOAR1
  states
  @"
  Spawn:
    SOAR ABCB 5
    loop
  "@
}

thingtype HArtiInvulnerability : HereticArtifact, 7084, 403 
{
  compatname ArtiInvulnerability
  addflags   COUNTITEM|FLOATBOB|SUPERITEM

  firstdecoratestate S_ARTI_INVU1
  states
  @"
  Spawn:
    INVU ABCD 3
    loop
  "@
}

thingtype HArtiTomeOfPower : HereticArtifact, 7086, 404
{
  compatname ArtiTomeOfPower
  addflags   COUNTITEM|FLOATBOB

  firstdecoratestate S_ARTI_PWBK1
  states
  @"
  Spawn:
    PWBK A -1
    stop
  "@
}

thingtype HArtiEgg : HereticArtifact, 7030, 405
{
  compatname ArtiEgg
  addflags   COUNTITEM|FLOATBOB

  firstdecoratestate S_ARTI_EGGC1
  states
  @"
  Spawn:
    EGGC ABCB 6
    loop
  "@
}

thingtype HArtiSuperHeal : HereticArtifact, 7032, 406
{
  compatname ArtiSuperHealth
  addflags   COUNTITEM|FLOATBOB|NOTSHAREWARE

  firstdecoratestate S_ARTI_SPHL1
  states
  @"
  Spawn:
    SPHL A -1
    stop
  "@
}

thingtype HArtiTorch : HereticArtifact, 7033, 407
{
  compatname ArtiTorch
  addflags   COUNTITEM|FLOATBOB

  firstdecoratestate S_ARTI_TRCH1
  states
  @"
  Spawn:
    TRCH ABC 3 bright
    loop
  "@
}

thingtype HArtiFireBomb : HereticArtifact, 7034, 408
{
  compatname ArtiTimeBomb
  addflags   COUNTITEM|FLOATBOB

  firstdecoratestate S_ARTI_FBMB1
  states
  @"
  Spawn:
    FBMB E -1
    stop
  "@
}

thingtype HereticFireBomb : Mobj, -1, 409
{
  compatname   ActivatedTimeBomb
  deathsound   ht_phohit
  cflags       NOGRAVITY
  translucency 26624

  firstdecoratestate S_HFIREBOMB1
  states
  @"
  Spawn:
    FBMB ABCD 10
    FBMB E     6        A_Scream
    XPL1 A     4 bright A_HticExplode("timebomb")
    XPL1 BCDEF 4 bright
    stop
  "@
}

thingtype HArtiTeleport : HereticArtifact, 7036, 410
{
  compatname ArtiTeleport
  addflags   COUNTITEM|FLOATBOB|NOTSHAREWARE

  firstdecoratestate S_ARTI_ATLP1
  states
  @"
  Spawn:
    ATLP ABCB 4
    loop
  "@
}

// Weapons

thingtype HWeaponGauntlets : HereticPickup, 7205, 411
{
  compatname Gauntlets

  firstdecoratestate S_WGNT
  states
  @"
  Spawn:
    WGNT A -1
    stop
  "@
}

thingtype HWeaponBlaster : HereticPickup, 7053, 412
{
  compatname Blaster

  firstdecoratestate S_BLSR
  states
  @"
  Spawn:
    WBLS A -1
    stop
  "@
}

thingtype HWeaponSkullRod : HereticPickup, 7204, 413
{
  compatname SkullRod
  addflags   NOTSHAREWARE

  firstdecoratestate S_WSKL
  states
  @"
  Spawn:
    WSKL A -1
    stop
  "@
}

thingtype HWeaponPhoenixRod : HereticPickup, 7203, 414
{
  compatname PhoenixRod
  addflags   NOTSHAREWARE

  firstdecoratestate S_WPHX
  states
  @"
  Spawn:
    WPHX A -1
    stop
  "@
}

thingtype HWeaponCrossbow : HereticPickup, 7201, 415
{
  compatname Crossbow

  firstdecoratestate S_WBOW
  states
  @"
  Spawn:
    WBOW A -1
    stop
  "@
}

// Weapon FX

thingtype HereticStaffPuff : Mobj, -1, 416
{
  compatname  StaffPuff
  attacksound ht_stfhit
  cflags      NOBLOCKMAP|NOGRAVITY

  firstdecoratestate S_STAFFPUFF1
  states
  @"
  Spawn:
    PUF3 A   4 bright
    PUF3 BCD 4
    stop
  "@
}

thingtype HereticStaffPuff2 : Mobj, -1, 417
{
  compatname  StaffPuff2
  attacksound ht_stfpow
  cflags      NOBLOCKMAP|NOGRAVITY

  firstdecoratestate S_STAFFPUFF2_1
  states
  @"
  Spawn:
    PUF4 ABCDEF 4 bright
    stop
  "@
}

thingtype HereticBeakPuff : HereticStaffPuff, -1, 418
{
  compatname  BeakPuff
  attacksound ht_chicatk
}

thingtype HereticGauntletPuff1 : Mobj, -1, 419
{
  compatname   GauntletPuff1
  cflags       NOBLOCKMAP|NOGRAVITY
  translucency 26624

  firstdecoratestate S_GAUNTLETPUFF1_1
  states
  @"
  Spawn:
    PUF1 ABCD 4 bright
    stop
  "@
}

thingtype HereticGauntletPuff2 : Mobj, -1, 420
{
  compatname   GauntletPuff2
  cflags       NOBLOCKMAP|NOGRAVITY
  translucency 26624

  firstdecoratestate S_GAUNTLETPUFF2_1
  states
  @"
  Spawn:
    PUF1 EFGH 4 bright
    stop
  "@
}

thingtype HereticBlasterSmoke : Mobj, -1, 421
{
  compatname   BlasterSmoke
  cflags       NOBLOCKMAP|NOGRAVITY|CANNOTPUSH
  translucency 26624

  firstdecoratestate S_BLASTERSMOKE1
  states
  @"
  Spawn:
    FX18 HIJKL 4
    stop
  "@
}

thingtype HereticRipper : Mobj, -1, 422
{
  compatname Ripper
  deathsound ht_hrnhit
  speed      14.0
  radius     8.0
  height     6.0
  damage     1
  cflags     NOBLOCKMAP|MISSILE|DROPOFF|NOGRAVITY|NOSPLASH|RIP|NORANDOMIZE|DRAWSBLOOD

  firstdecoratestate S_HRIPPER1
  states
  @"
  Spawn:
    FX18 M 4
    FX18 N 5
    loop
  Death:
    FX18 OPQRS 4 bright
    stop
  "@
}

thingtype HereticBlasterPuff1 : Mobj, -1, 423
{
  compatname BlasterPuff
  cflags     NOBLOCKMAP|NOGRAVITY

  firstdecoratestate S_BLASTERPUFF1_1
  states
  @"
  Spawn:
    FX17 ABCDE 4 bright
    stop
  "@
}

thingtype HereticBlasterPuff2 : Mobj, -1, 424
{
  compatname  BlasterSmoke
  cflags      NOBLOCKMAP|NOGRAVITY
  attacksound ht_blshit

  firstdecoratestate S_BLASTERPUFF2_1
  states
  @"
  Spawn:
    FX17 FG    3 bright
    FX17 HIJKL 4 bright
    stop
  "@
}

thingtype HereticHornRodFX1 : Mobj, -1, 425
{
  compatname HornRodFX1
  speed      22.0
  radius     12.0
  height     8.0
  damage     3
  seesound   ht_hrnsht
  deathsound ht_hrnhit
  cflags     NOBLOCKMAP|MISSILE|DROPOFF|NOGRAVITY|NOSPLASH|WINDTHRUST|NORANDOMIZE|DRAWSBLOOD

  firstdecoratestate S_HRODFX1_1
  states
  @"
  Spawn:
    FX00 AB 6 bright
    loop
  Death:
    FX00 HI 5 bright
    FX00 JK 4 bright
    FX00 LM 3 bright
    stop
  "@
}

thingtype HereticGoldWandFX1 : Mobj, -1, 426
{
  compatname GoldWandFX1
  speed      22.0
  radius     10.0
  height     6.0
  damage     2
  deathsound ht_gldhit
  cflags     NOBLOCKMAP|MISSILE|DROPOFF|NOGRAVITY|NOSPLASH|NORANDOMIZE|DRAWSBLOOD

  firstdecoratestate S_GWANDFX1_1
  states
  @"
  Spawn:
    FX01 AB 6 bright
    loop
  Death:
    FX01 EFGH 3 bright
    stop
  "@
}

thingtype HereticGoldWandFX2 : HereticGoldWandFX1, -1, 427
{
  compatname GoldWandFX2
  speed      18.0
  damage     1
  deathsound none

  firstdecoratestate S_GWANDFX2_1
  states
  @"
  Spawn:
    FX01 CD 6 bright
    loop
  "@
}

thingtype HereticGoldWandPuff1 : Mobj, -1, 428
{
  compatname GoldWandPuff1
  cflags     NOBLOCKMAP|NOGRAVITY

  firstdecoratestate S_GWANDPUFF1_1
  states
  @"
  Spawn:
    PUF2 ABCDE 3 bright
    stop
  "@
}

thingtype HereticGoldWandPuff2 : Mobj, -1, 429
{
  compatname GoldWandPuff2
  spawnstate S_GWANDFXI1_1
  cflags     NOBLOCKMAP|NOGRAVITY
}

thingtype HereticPhoenixFX1 : Mobj, -1, 430
{
  compatname PhoenixFX1
  speed      20.0
  radius     11.0
  height     8.0
  damage     20
  seesound   ht_phosht
  deathsound ht_phohit
  cflags     NOBLOCKMAP|MISSILE|DROPOFF|NOGRAVITY|THRUGHOST|NORANDOMIZE|DRAWSBLOOD

  firstdecoratestate S_PHOENIXFX1_1
  states
  @"
  Spawn:
    FX04 A 4 bright A_PhoenixPuff
    loop
  Death:
    FX08 A     6 bright A_HticExplode
    FX08 BC    5 bright
    FX08 DEFGH 4 bright
    stop
  "@
}

thingtype HereticPhoenixFX2 : Mobj, -1, 442
{
  compatname PhoenixFX2
  speed      10.0
  radius     6.0
  height     8.0
  damage     2
  cflags     NOBLOCKMAP|MISSILE|DROPOFF|NOGRAVITY|NOSPLASH|NOTELEPORT|FIREDAMAGE

  //firstdecoratestate S_PHOENIXFX2_1
  states
  @"
  Spawn:
    FX09 ABABA 2 Bright
    FX09 B 2 Bright A_FlameEnd
    FX09 CDEF 2 Bright
    stop
  Death:
    FX09 G 3 Bright
    FX09 H 3 Bright A_FloatPuff
    FX09 I 4 Bright
    FX09 JK 5 Bright
    stop
  "@
}

thingtype CrossbowFX1 : Mobj, -1, 434
{
  compatname CrossbowFX1
  speed      30.0
  radius     11.0
  height     8.0
  damage     10
  seesound   ht_bowsht
  deathsound ht_hrnhit
  cflags     NOBLOCKMAP|MISSILE|DROPOFF|NOGRAVITY|NOSPLASH|NOTELEPORT|NORANDOMIZE|DRAWSBLOOD

  //firstdecoratestate S_CRBOWFX1_1
  states
  @"
  Spawn:
    FX03 B 1 bright
    loop
  Death:
    FX03 HIJ 8 bright
    stop
  "@
}

thingtype CrossbowFX2 : CrossbowFX1, -1, 435
{
  compatname CrossboxFX1
  speed      32.0
  damage     6


  //firstdecoratestate S_CRBOWFX2_1
  states
  @"
  Spawn:
    FX03 B 1 bright A_BoltSpark
    loop
  "@
}

thingtype CrossbowFX3 : Mobj, -1, 436
{
  compatname CrossbowFX3
  speed      20.0
  radius     11.0
  height     8.0
  damage     2
  deathsound ht_hrnhit
  cflags     NOBLOCKMAP|MISSILE|DROPOFF|NOGRAVITY|NOSPLASH|WINDTHRUST|THRUGHOST|NOTELEPORT|NORANDOMIZE|DRAWSBLOOD

  //firstdecoratestate S_CRBOWFX3_1
  states
  @"
  Spawn:
    FX03 A 1 bright
    loop
  Death:
    FX03 CDE 8 bright
    stop
  "@
}

thingtype CrossbowFX4 : Mobj, -1, 437
{
  compatname CrossbowFX4
  cflags NOBLOCKMAP|LOGRAV

  //firstdecoratestate S_CRBOWFX4_1
  states
  @"
  Spawn:
    FX03 FG 8 bright
    stop
  "@
}

thingtype MaceShotProto
{
  cflags NOBLOCKMAP|MISSILE|DROPOFF|HERETICBOUNCES|THRUGHOST|NOTELEPORT

  //firstdecoratestate S_MACEFX1_1
  states
  @"
  Death:
    FX02 F 4 bright A_MaceBallImpact
    FX02 GHIJ 4 bright
    stop
  "@
}

thingtype MaceFX1 : MaceShotProto, -1, 438
{
  compatname MaceFX1
  speed      20.0
  radius     8.0
  height     6.0
  damage     2
  seesound   ht_lobsht
  addflags   NOGRAVITY

  //firstdecoratestate S_MACEFX1_1
  states
  @"
  Spawn:
    FX02 AB 4 A_MacePL1Check
    loop
  "@
}

thingtype MaceFX2 : MaceShotProto, -1, 439
{
  compatname MaceFX2
  speed      10.0
  radius     11.0
  height     8.0
  damage     6
  addflags   LOGRAV

  //firstdecoratestate S_MACEFX2_1
  states
  @"
  Spawn:
    FX02 CD 4
    loop
  Death:
    FX02 F 4 bright A_MaceBallImpact2
    FX02 GHIJ 4 bright
  "@
}

thingtype MaceFX3 : MaceShotProto, -1, 440
{
  compatname MaceFX3
  speed      7.0
  radius     4.0
  height     6.0
  damage     2
  addflags   LOGRAV

  //firstdecoratestate S_MACEFX2_1
  states
  @"
  Spawn:
    FX02 AB 4
    loop
  "@
}

thingtype MaceFX4 : MaceShotProto, -1, 441
{
  compatname MaceFX4
  speed      7.0
  radius     8.0
  height     6.0
  damage     18
  dmgspecial PoweredMaceBall
  remflags   NOTELEPORT
  addflags   LOGRAV|TELESTOMP

  states
  @"
  Spawn:
    FX02 E 99
    loop
  Death:
    FX02 C 4 Bright A_DeathBallImpact
    FX02 GHIJ 4 Bright
    stop
  "@
}

//
// Fire Mace
//
// The fire mace weapon has very special behavior in that it spawns randomly at
// a given spot in the map, and in single player, may not spawn at all.
//

thingtype HereticMaceSpot : Mobj, 7202, 431
{
  compatname MaceSpawner
  cflags     NOTSHAREWARE
   
  collectionspawn HWeaponFireMace, 64, 64
   
  states
  @"
  Spawn:
    TNT1 A -1
    stop
  "@
}

thingtype HWeaponFireMace : HereticPickup, -1, 432
{
  compatname    Mace
  itemrespawnat HereticMaceSpot

  firstdecoratestate S_WMCE
  states
  @"
  Spawn:
    WMCE A -1
    stop
  "@
}

//
// Blood Splatter
//

thingtype HereticBloodSplatter : Mobj, -1, 433
{
  radius 2.0
  height 4.0
  cflags NOBLOCKMAP|MISSILE|DROPOFF|NOSPLASH|CANNOTPUSH|NOZERODAMAGE /*|NOTELEPORT*/
  states
  @"
  Spawn:
    BLOD CBA 8
    stop
  Death:
    BLOD A 6
    stop
  "@
}

// Damage Types ----------------------------------------------------------------

//
// Powered staff damage type: has special pushing behaviour
//
damagetype StaffPowered
{
  absolute.push 10
  absolute.hop  5
}
