//weapons

ACTOR TrenchMace : Weapon
{
  Tag "Trench Mace"
  obituary "%o was Killed by %k's Trenchmace!"
  Weapon.SlotNumber 1
  weapon.kickback 50
  inventory.pickupmessage "You got the Trenchmace!"
  states
  {
	Ready:
		XMCE A 3 A_WeaponReady
		loop
	Deselect: 
		XMCE A 1 A_Lower
		loop
	Select:
		XMCE A 1 A_Raise
		loop
	Fire:
		XMCE BCD 2 
		XMCE E 3 A_CustomPunch (Random(3,5)*10,TRUE,0,"BulletPuff",0,0,0,0,"Weapons/Macehit","Weapons/Mace")
		XMCE F 4
		Goto Ready
	Spawn:
		XMCE W -1 Bright
		stop
  }
}

ACTOR Nailer : Weapon 30020
{
  Tag "Nailer"
  obituary "%o was nailed Down."
  attacksound "Weapons/Gunshot"
  Weapon.SlotNumber 2
  weapon.kickback 50
  inventory.pickupmessage "You got the Nailer!"
  Weapon.AmmoUse 1
  Weapon.AmmoGive 50
  Weapon.AmmoType "Clip"
  states
  {
	Ready:
		NAIL A 1 A_WeaponReady
		loop
	Deselect: 
		NAIL A 1 A_Lower
		loop
	Select:
		NAIL A 1 A_Raise
		loop
	Fire:
		NAIL B 3 A_FireBullets(0,0,1,Random(3,5)*5,"BulletPuff")
		NAIL CDEFA 2
		Goto Ready
	Spawn:
		NAIL GHIJKLMN 2 Bright
		loop
  }
}

//monsters

ACTOR Ghoul 32001
{
  Health 50
  GibHealth 20
  Radius 20
  Height 56
  Speed 7
  PainChance 256
  Monster
  +FLOORCLIP
  SeeSound "Ghoul/sight"
  PainSound "Ghoul/pain"
  DeathSound "Ghoul/death"
  ActiveSound "Ghoul/active"
  Obituary "%o was mauled by a Ghoul."
  States
  {
  Spawn:
    ZFOD AB 10 A_Look
    Loop
  See:
    ZFOD AABBCCDD 4 A_Chase
    Loop
  Melee:
    ZFOD EF 10 A_FaceTarget
    ZFOD G 8 A_CustomMeleeAttack(random(1,4)*5,"ZombieFodder/Melee")
    Goto See
  Pain:
    ZFOD H 4
    ZFOD H 4 A_Pain
    Goto See
  Death:
    ZFOD I 7
    ZFOD J 7 A_Scream
    ZFOD K 5 A_NoBlocking
    ZFOD L 5
    ZFOD M -1
    Stop
  XDeath:
    ZFOD N 5
    ZFOD O 5 A_XScream
    ZFOD P 5 A_NoBlocking
    ZFOD QR 5
    ZFOD S -1
    Stop
  Raise:
    ZFOD L 5
    ZFOD KJI 5
    Goto See
  }
}

ACTOR Juggernaut 32002
{
	//$Category Monsters
	//$Title Juggernaut

	Health 1000
	PainChance 16
	Speed 14
	Radius 30
	Height 62
	Mass 2000
	Meleerange 72
	Scale 1.1
	Monster
	+FLOORCLIP
  
	SeeSound "Juggernaut/Sight"
	PainSound "Juggernaut/Pain"
	DeathSound "Juggernaut/Death"
	Obituary "%o was pummelled by a juggernaut"
  
		States
			{
			Spawn:
				JUGG A 10 A_Look
				Loop
			See:
				JUGG A 0 A_JumpIfHealthLower (500, "Rage")
				JUGG AA 3 A_Chase
				JUGG A 0 A_PlaySoundEx ("Juggernaut/Step", "SoundSlot5", 0, -1)
				JUGG BB 3 A_Chase
				JUGG CC 3 A_Chase
				JUGG C 0 A_PlaySoundEx ("Juggernaut/Step", "SoundSlot5", 0, -1)
				JUGG DD 3 A_Chase
				Loop
			Rage:
				JUGG A 0 A_PlaySound ("Juggernaut/Sight")
				JUGG A 0 A_ChangeFlag ("NOPAIN", TRUE)
				JUGG A 0 A_ChangeFlag ("NOFEAR", TRUE)
			Sprint:
				JUGG AA 2 A_Chase
				JUGG A 0 A_PlaySoundEx ("Juggernaut/Step", "SoundSlot5", 0, -1)
				JUGG BB 2 A_Chase
				JUGG CC 2 A_Chase
				JUGG C 0 A_PlaySoundEx ("Juggernaut/Step", "SoundSlot5", 0, -1)
				JUGG DD 2 A_Chase
				Loop
			Melee:
				JUGG EF 4 A_FaceTarget
				JUGG G 4 A_FaceTarget
				JUGG G 0 A_PlaySoundEx ("Juggernaut/Attack", "SoundSlot5")
				JUGG G 0 A_PlaySoundEx ("Juggernaut/Pain", "SoundSlot6")
				JUGG H 8 A_CustomMeleeAttack (35, "Juggernaut/Hit", "", "", 1) 
				JUGG I 4 A_FaceTarget
				JUGG I 0 A_PlaySoundEx ("Juggernaut/Attack", "SoundSlot5")
				JUGG I 0 A_PlaySoundEx ("Juggernaut/Pain", "SoundSlot6")
				JUGG J 8 A_CustomMeleeAttack (35, "Juggernaut/Hit", "", "", 1)
				JUGG J 0 A_JumpIfHealthLower (500, "Sprint")
				Goto See
			Pain:
				JUGG E 2
				JUGG E 2 A_Pain
				Goto See
			Death:
				JUGG K 7 A_Scream
				JUGG LM 7
				JUGG N 7 A_PlaySound ("Juggernaut/Thud")
				JUGG O 7 A_NoBlocking
				JUGG P 7
				JUGG Q -1
				Stop
			Raise:
				JUGG Q 0 A_ChangeFlag ("NOPAIN", FALSE)
				JUGG Q 0 A_ChangeFlag ("NOFEAR", FALSE)
				JUGG QPONMLK 6
				Goto See
			}
}

Actor Importheallpowerful 32003
{
    Health 5000
    Radius 20
    Height 56
    Speed 9
    PainChance 128
    Monster
    +FLOORCLIP
    SeeSound "imp/sight"
    PainSound "imp/pain"
    DeathSound "imp/death"
    ActiveSound "imp/active"
    Obituary "%o couldn't run from the imp warlord's fireball."
    HitObituary "%o was beaten to death by an imp warlord."
    States
    {
    Spawn:
        WARI AB 10 A_Look
        Loop
    See:
        WARI AABBCCDD 3 A_Chase
        Loop
    Melee:
        WARI E 6 A_FaceTarget
        TNT1 A 0 A_PlaySound("implord/maceswing")
        WARI F 4 A_FaceTarget
        WARI G 5 A_CustomMeleeAttack(Random(1,8)*7, "implord/macehit", "None")
        Goto See
    Missile:
        TNT1 A 0 A_Jump(38, 23)  //20% chance: jump to familiar drop
        TNT1 A 0 A_Jump(77, 2)   //30% chance: jump to heat seekers
        TNT1 A 0 A_Jump(128, 11) //50% chance: jump to green fireballs
        Goto Missile+28         //Otherwise : jump to red fireball
        TNT1 A 0 A_SetInvulnerable
        WARI I 6 A_FaceTarget
        TNT1 A 0 A_PlaySound("implord/shieldshot")
        WARI J 6 bright A_FaceTarget
        TNT1 A 0 A_Jump(128, 4)
        TNT1 A 0 A_CustomMissile("YellowSkullSeeker", 32, 0, -45)
        WARI K 6 bright A_CustomMissile("YellowSkullSeeker", 32, 0, 45)
        TNT1 A 0 A_UnSetInvulnerable
        Goto See
        WARI K 6 bright A_CustomMissile("YellowSkullSeeker", 32, 0, 0)
        TNT1 A 0 A_UnSetInvulnerable
        Goto See
        WARI L 7 A_FaceTarget
        TNT1 A 0 A_PlaySound("implord/maceswing")
        WARI M 5 A_FaceTarget
        TNT1 A 0 A_PlayWeaponSound("imp/attack")
        TNT1 A 0 A_Jump(128, 3)
        TNT1 A 0 A_CustomMissile("GreenPoisonBall", 40, 0, -8, 1)
        TNT1 A 0 A_CustomMissile("GreenPoisonBall", 24, 0, 8, 1)
		TNT1 A 0 A_CustomMissile("GreenPoisonBall", 32, 0, 0, 1)
        TNT1 A 0 A_CustomMissile("GreenPoisonBall", 36, 0, -4, 1)
        WARI N 6 A_CustomMissile("GreenPoisonBall", 28, 0, 4, 1)
        Goto See
        WARI GF 8 A_FaceTarget
        TNT1 A 0 A_Jump(128, 2)
        WARI E 8 A_CustomMissile("FamiliarSpawner", 32, 0, -30)
        Goto See
        WARI E 8 A_CustomMissile("FamiliarSpawner", 32, 0, 30)
        Goto See
        TNT1 A 0 A_Jump(128, 5)
        WARI O 7 A_FaceTarget
        TNT1 A 0 A_PlaySound("implord/maceswing")
        WARI P 5 A_FaceTarget
        WARI Q 6 A_CustomMissile("RedSkullBall", 32, 0, 0)
        WARI O 7 A_FaceTarget
        TNT1 A 0 A_PlaySound("implord/maceswing")
	    WARI P 5 A_FaceTarget
        WARI Q 6 A_CustomMissile("RedSkullBall", 32, 0, 0)
        Goto See
    Pain:
        TNT1 A 0 A_Jump(128, 2)
        WARI H 8 A_Pain
        Goto See
	    WARI I 1
        TNT1 A 0 A_SetInvulnerable
	    WARI IIIIII 4 A_FaceTarget
        TNT1 A 0 A_Jump(160, 5)
        WARI IIII 4 A_FaceTarget
        Goto Pain+4
        TNT1 A 0 A_UnSetInvulnerable
	Goto See
    Death:
        TNT1 A 0 A_FaceTarget
        TNT1 A 0 A_SpawnItemEx("WarlordMace", 0, 0, 32, 4, 0, 0, -90, 128)
        WARI R 8 A_SpawnItemEx("WarlordShield", 0, 0, 32, 5, 0, 0, 90, 128)
        WARI S 8 A_Scream
        WARI T 6
	    WARI U 6 A_Fall
        WARI V -1
        Stop
    Raise:
        WARI VU 8
        WARI TSR 6
        Goto See
    }
}

Actor YellowSkullSeeker
{
    Radius 8
    Height 6
    Speed 9
    Damage 3
    +SEEKERMISSILE
    Projectile
    RenderStyle Add
    Scale 0.67
    Alpha 0.67
    DeathSound "implord/shieldshothit"
    Decal RevenantScorch
    States
    {
    Spawn:
        WLP2 ABCD 3 Bright A_SeekerMissile(5, 10)
        Loop
    Death:
        WLP2 EFG 4 Bright
        Stop
    }
}

Actor GreenPoisonBall
{
    Radius 8
    Height 6
    Speed 10
    Damage 3
    Projectile
    RenderStyle Add
    Alpha 0.67
    DeathSound "imp/shotx"
	Decal HImpScorch
    States
    {
    Spawn:
        WLP1 ABCD 4
        Loop
    Death:
        WLP1 EFGH 4
        Stop
    }
}

Actor FamiliarSpawner
{
     +MISSILE
     +DOOMBOUNCE
     +BOUNCEONACTORS
	 +CANBOUNCEWATER
     +BLOODLESSIMPACT
     +PAINLESS
     Speed 8
     States
     {
     Spawn:
          WLP3 AAAABBBBCCCCDDDD 1 A_JumpIf(WaterLevel >= 2, "Death")
          Loop
     Death:
          TNT1 A 0 A_ChangeFlag(MISSILE, 0)
          WLP3 E 4 A_PlaySound("implord/familiarspawn")
          WLP3 F 6
          TNT1 A 0 A_Jump(85, 2)
          WLP3 G 8 A_SpawnItemEx("SummonedBatFamiliar", 0, 0, 32, 0, 0, 0, 0, SXF_SETMASTER)
		  Goto Death+6
		  WLP3 G 8 A_SpawnItemEx("DragonFamiliar", 0, 0, 32, 0, 0, 0, 0, SXF_SETMASTER)
          WLP3 H 350
		  WLP3 HHHHHHHHHHHHHHHHHHHH 1 A_FadeOut(0.05)
          Stop
     }
}

Actor RedSkullBall
{
    Radius 8
    Height 6
    Speed 15
    Damage 12
    Projectile
    RenderStyle Add
    Alpha 0.67
    SeeSound "imp/attack"
    DeathSound "imp/shotx"
    Decal PlasmaScorchLower
    States
    {
    Spawn:
        WLP4 ABCB 4
        Loop
    Death:
        WLP4 DEFG 4
        Stop
    }
}

Actor WarlordMace
{
    +DOOMBOUNCE
    Speed 4
    States
    {
    Spawn:
        WLI2 ABCDEF 5
        WLI2 G -1
        Stop
    }
}

Actor WarlordShield
{
    +DOOMBOUNCE
    Speed 5
    States
    {
    Spawn:
        WLI1 ABCDEF 5
        WLI1 G -1
        Stop
    }
}

Actor SummonedBatFamiliar
{
    Health 10
    Radius 12
    Height 24
    Speed 14
    PainChance 200
    Monster
    +NOGRAVITY
    +FLOAT
    +NEVERRESPAWN
    SeeSound "batfam/idle"
    PainSound "batfam/pain"
    DeathSound "batfam/death"
    ActiveSound "batfam/idle"
    HitObituary "%o was scratched by a bat familiar"
    States
    {
    Spawn:
        BFAM ABCB 3 A_Look
        Loop
    See:
        BFAM ABCB 3 A_Chase
        Loop
    Melee:
        BFAM A 3 A_FaceTarget
        BFAM B 3 A_CustomMeleeAttack(Random(1,8)*1, "batfam/idle")
        BFAM CB 3 A_FaceTarget
        Goto See
    Pain:
        BFAM A 2
        BFAM A 2 A_Pain
        Goto See
    Death:
        TNT1 A 0 A_Die
        TNT1 A 0 A_NoBlocking 
        BFAM D 5 A_Scream
        BFAM E 5
        BFAM FDEF 5
        Goto Death+5
    Crash:
        TNT1 A 0 A_SetFloorClip
        BFAM G 6 A_PlaySound("batfam/crash")
        BFAM H 7
        BFAM I 8
        BFAM J -1
        Stop
    }
}

Actor DragonFamiliar
{
    Health 25
    Radius 16
    Height 32
    Speed 10
    PainChance 200
	MaxTargetRange 78
    Monster
    +NOGRAVITY
    +FLOAT
    +STRIFEDAMAGE
    +NEVERRESPAWN
    SeeSound "dragonfam/see"
    PainSound "dragonfam/pain"
    DeathSound "dragonfam/death"
    ActiveSound "dragonfam/idle"
    Obituary "%o was cooked by a dragon familiar."
    States
    {
    Spawn:
        DFAM ABCD 10 A_Look
        Loop
    See:
        DFAM AABBCCDD 3 A_Chase
        Loop
    Missile:
        TNT1 A 0 A_JumpIfCloser(270, 1)
	    Goto See
	    TNT1 A 0 A_PlaySound("dragonfam/attack")
        DFAM E 2 Bright A_CPosRefire
        TNT1 A 0 A_CustomMissile("MiniFirePuffNoDamage", 12, 0, 0)
        DFAM E 2 Bright A_CPosRefire
        TNT1 A 0 A_CustomMissile("MiniFirePuff", 12, 0, Random(1,2))
        DFAM E 2 Bright A_CPosRefire
        TNT1 A 0 A_CustomMissile("MiniFirePuff", 12, 0, Random(-2,-1))
		TNT1 A 0 A_JumpIfCloser(270, 1)
        Goto See
		TNT1 A 0 A_Jump(48, "See")
		Goto Missile+2
    Pain:
        DFAM F 2
        DFAM F 2 A_Pain
        Goto See
    Death:
        TNT1 A 0 A_Die
        DFAM G 8 A_NoBlocking
        DFAM H 8 A_Scream
        DFAM I 6 A_SetFloorClip
        DFAM JKL 6
        DFAM M -1
        Stop
    }
}

Actor MiniFirePuff
{
    Radius 6
    Height 10
    Speed 7
    Damage 1
    Projectile
    RenderStyle Add
    Alpha 0.67
    States
    {
    Spawn:
        DFFP ABCDEFGH 2 Bright
    Death:
        DFFP IJKLMNOPQR 2 Bright
        Stop
    }
}

Actor MiniFirePuffNoDamage : MiniFirePuff
{
    Damage 0
}