Actor Hunter : PlayerPawn
{
	Health 100
	Player.MaxHealth 100
	Radius 16
	Height 56
	Speed 1
	mass 400
	PainChance 256
	+NOSKIN
	+QUICKTORETALIATE
	+NOICEDEATH
	+NODAMAGETHRUST
	+GHOST
	+NOTARGET
	Limitedtoteam 0
	Player.ForwardMove 1.115
	Player.SideMove 1.0
	Player.soundclass "hunter"
	Player.DisplayName "Hunter"
	Player.startitem "Bow", 1
	Player.startitem "FireBow", 1
	Player.startitem "IceBow", 1
	Player.startitem "LightningBow", 1
	Player.startitem "ArrowSingle", 30
	Player.StartItem "HunterBowUpgrade", 1
	Player.StartItem "ClassID", 2
	Player.StartItem "HumanTeam", 1
	Player.scoreicon "HUNTERST"
	Player.ColorRange 112, 127
	damagefactor "HunterFireArrow", 0.4
	DamageFactor "HunterSuperFireArrow", 0.3
	damagefactor "GhostbusterTrap", 0.0
	DamageFactor "SentryShoot", 0.0
	DamageFactor "HunterSuperIceArrowTrail2", 0.0
	DamageFactor "HunterLightningMagic", 0.0
	DamageFactor "ChokeAttack", 1.25
	DamageFactor "FrostbiteMelee", 1.25
	DamageFactor "Drone", 0.0
	DamageFactor "DimmedVision", 0.5
	DamageFactor "IceFiendMelee", 1.15
	DamageFactor "NightmareCleave", 1.15
	DamageFactor "GhostbusterExpander", 0.0
	DamageFactor "Poison", 0.0
	DamageFactor "FlaskT2", 0.0
	Species "Human"
	PainChance "Mohoph", 256
	PainChance "MohophRange", 256
	States
	{
	Spawn:
		TNT1 A 0
		HUNT A 1 SetPlayerProperty(0, 1, 2)
		HUNT A 3
		Goto Spawn+2
	See:
		HUNT ABCD 4 
		Loop
	Missile:
		HUNT E 12
		Goto Spawn
	Melee:
		HUNT F 6
		Goto Missile
	Pain:
		HUNT G 4
		HUNT G 4 A_Pain
		Goto Spawn
	Pain.ChokeAttack:
		HUNT G 1
		TNT1 A 0 A_GiveToTarget("ChokePainHealer", 1)
		TNT1 A 0 A_GiveToTarget("VomitPoints", 2)
		HUNT G 8 A_Pain
		Goto Spawn
	Pain.Creepstun:
		TNT1 A 0 HealThing(1)
		TNT1 A 0 A_Pain
		HUNT G 18 ACS_ExecuteAlways(986,0)
		Goto Spawn
	Pain.CreeperHealBall:
		HUNT G 1
		TNT1 A 0 A_GiveToTarget("CreeperHealBallHealer", 1)
		HUNT G 8 A_Pain
		Goto Spawn
	Pain.Impale:
		TNT1 A 0 ThrustThingZ(0,10,0,1)
		Goto Pain
	Pain.DimmedVision:
		TNT1 A 0 A_Pain
		TNT1 A 0 A_GiveInventory("VisionDimmer", 1)
		TNT1 A 0 A_GiveInventory("VisionDimEffect", 1) // ACS_ExecuteAlways(753, 0)
		TNT1 A 0 ACS_ExecuteAlways(754, 0)
		TNT1 A 0 HealThing(1)
		HUNT G 7
		Goto Spawn
	Pain.MorgBat:
		TNT1 A 0 A_giveToTarget("MorgHeal", 3)
		Goto Pain		
	Pain.Mohoph:
		HUNT G 1
		TNT1 A 0 A_GiveToTarget("MohophHeal", 1)
		goto Pain
	Pain.MohophRange:
		HUNT G 1
		TNT1 AAA 0 A_GiveToTarget("MohophHeal", 1)
		Goto Pain
	Death:
	DeathAnim:
		TNT1 A 0 A_GiveToTarget("KilledHunter", 1)
		TNT1 A 0 A_GiveToTarget("TotalKillCount", 1)
		TNT1 A 0 A_GiveToTarget("HumanKillCount", 1)
		TNT1 A 0 A_GiveToTarget("LowHPKill", 1)
		TNT1 A 0 A_GiveToTarget("CheckAchievements", 1)
		HUNT H 8
		HUNT I 8 A_PlayerScream
		HUNT J 8 A_NoBlocking
		HUNT KLM 8
		HUNT N -1
		Stop
	GibDeath:
	Death.ImpaleBite:
		TNT1 A 0 A_GiveToTarget("ImpaleKill", 1)
		TNT1 A 0 A_GiveToTarget("DoubleImpaleKill", 1)
		TNT1 A 0 A_GiveToTarget("JitterskullPoints", 1)
		TNT1 A 0 A_GiveToTarget("VomitPoints", 10)
		TNT1 A 0 A_GiveToTarget("KilledHunter", 1)
		TNT1 A 0 A_GiveToTarget("TotalKillCount", 1)
		TNT1 A 0 A_GiveToTarget("HumanKillCount", 1)
		TNT1 A 0 A_GiveToTarget("CheckAchievements", 1)
		TNT1 A 0 A_GiveToTarget("Crunched",1)
		TNT1 A 0 A_NoBlocking
		TNT1 A 0 A_PlaySound("gibbage/xsplat")
		TNT1 A 0 A_SkullPop("Custom_BloodySkull2")
		TNT1 A 0 A_PlaySound("gibbage/playergib") 
		TNT1 A 0 A_SpawnItemEx("PLAYERBOOT", 0, 0, 11, 0, 0, 27, 33, 160, 0)
		TNT1 A 0 A_SpawnItemEx("PLAYERBOOT", 0, 0, 11, 0, 0, 27, -33, 160, 0)
		TNT1 A 0 A_SpawnItemEx("SHOTGUYARM", 0, 0, 25, 0, 0, 50, random(0,360), 160, 0)
		TNT1 A 0 A_SpawnItemEx("SHOTGUYARM", 0, 0, 36, 0, 0, 32, random(0,360), 160, 0)
		TNT1 A 0 A_SpawnItemEx("GIBBER", 0, 0, 0, 0, 0, 0, 0, 160, 0)
		HUNT A 1
		BLAN A -1
		Stop
	Death.CreeperHealBall:
		TNT1 A 0 A_GiveToTarget("CreeperHealBallHealer", 1)
		TNT1 A 0 A_GiveToTarget("CreepHealKill", 1)
		TNT1 A 0 A_GiveToTarget("HealBallsFired", 1)
		TNT1 A 0 A_GiveToTarget("CreeperMaxCharge", 1)
        Goto DeathAnim
	Death.CreeperMelee:
		TNT1 A 0 A_PlaySoundEx("creeperattack", "Body")
		TNT1 A 0 A_GiveToTarget("Creeperheal",1)
		TNT1 A 0 A_GiveToTarget("HealBallsFired", 1)
//		TNT1 A 0 A_GiveToTarget("GhoulAmmo", 1)
		TNT1 A 0 A_SpawnItemEx("SoulSprite", 0, 0, 0, 0, 0, 2)
		TNT1 A 0 ACS_ExecuteAlways(997,0)
		TNT1 A 0 A_GiveToTarget("CreeperMeleeKill", 1)
		TNT1 A 0 A_GiveToTarget("CreeperMaxCharge", 1)
		Goto DeathAnim
    Death.SjasScream:
        TNT1 A 0 A_GiveToTarget("SjasScreamKill", 1)
        TNT1 A 0 A_GiveToTarget("SjasMeleeMulti", 1)	
		Goto DeathAnim
    Death.JitterMelee:
        TNT1 A 0 A_GiveToTarget("JitterMeleeKill", 1)
        TNT1 A 0 A_GiveToTarget("JitterMeleeMulti", 1)
        Goto GibDeath
    Death.CreepStun:
        TNT1 A 0 A_GiveToTarget("CreepStunKill", 1)
		TNT1 A 0 A_GiveToTarget("HealBallsFired", 1)
		TNT1 A 0 A_GiveToTarget("CreeperMaxCharge", 1)
        Goto DeathAnim
    Death.ChokeVomit:
        TNT1 A 0 A_GiveToTarget("ChokeVomitKill", 1)
        Goto DeathAnim
	Death.ChokeFeast:
		TNT1 A 0 A_GiveToTarget("ChokeFeasTKill", 1)
		Goto DeathAnim		
    Death.ChokeAttack:
        TNT1 A 0 A_GiveToTarget("ChokeAttackKill", 1)
		TNT1 A 0 A_GiveToTarget("ChokeDeathHealer", 1)
        Goto GibDeath
	Death.ChokeVomit:
		TNT1 A 0 A_GiveToTarget("ChokeVomitKill", 1)
		Goto DeathAnim
    Death.ChokeBloodBall:
		TNT1 A 0 A_GiveToTarget("VomitPoints", 15)
        TNT1 A 0 A_GiveToTarget("ChokeBloodBallKill", 1)
		TNT1 A 0 A_GiveToTarget("ChokeBloodBallMulti", 1)
        Goto DeathAnim
    Death.FrostbiteMelee:
        TNT1 A 0 A_GiveToTarget("FrostbiteMeleeKill", 1)
        Goto GibDeath
	Death.FrostBiteMortar:
		TNT1 A 0 A_GiveToTarget("FrostyMortarKill", 1)
		Goto DeathAnim		
    Death.FrostbiteIceBreath:
		TNT1 A 0 A_NoBlocking
        TNT1 A 0 A_GiveToTarget("FrostbiteIceBreathKill", 1)
		TNT1 A 0 A_GiveToTarget("FrostyBreathMulti", 1)
		TNT1 A 0 A_GiveToTarget("KilledHunter", 1)
		TNT1 A 0 A_GiveToTarget("TotalKillCount", 1)
		TNT1 A 0 A_GiveToTarget("HumanKillCount", 1)
        TNT1 A 0 A_SpawnItemEx("HunterIceDeath")
		TNT1 A 0 A_PlayerScream
		TNT1 A 0 A_GiveToTarget("CheckAchievements", 1)
		HUNT A 1
		BLAN A -1
		Stop
    Death.Impale:
        TNT1 A 0 A_GiveToTarget("ImpaleKill", 1)
		TNT1 A 0 A_GiveToTarget("DoubleImpaleKill", 1)
        Goto DeathAnim
    Death.IceFiendMelee:
		TNT1 A 0 A_GiveToTarget("NightmareMeleeKill", 1)
	Death.DimmedVision:
	DimVisionDeath:
		TNT1 A 0 A_JumpIfInventory("VisionDimmer", 1, 1)
		Goto FadeDeath
		TNT1 A 0 A_GiveToTarget("NightmareHealer", 1)
		TNT1 A 0 A_GiveToTarget("DimDurationEffect", 2)
		TNT1 A 0 A_GiveToTarget("InvisibleCounter", 0)
		TNT1 A 0 A_GiveToTarget("DimmedMeleeKill", 1)
		TNT1 A 0 A_Jump(192, 3)
		TNT1 AA 0 A_PlaySoundEx("IcefiendBackstab1", 5, 0, 1)
		Goto FadeDeath
		TNT1 A 0 A_Jump(192, 3)
		TNT1 AA 0 A_PlaySoundEx("IcefiendBackstab2", 5, 0, 1)
		Goto FadeDeath
		TNT1 A 0 A_Jump(192, 3)
		TNT1 AA 0 A_PlaySoundEx("IcefiendBackstab3", 5, 0, 1)
		Goto FadeDeath
		TNT1 AA 0 A_PlaySoundEx("IcefiendBackstab4", 5, 0, 1)
	    Goto FadeDeath
	Death.NightmareCleave:
		TNT1 A 0 A_GiveToTarget("CleaveKill", 1)
		TNT1 A 0 A_JumpIfInventory("VisionDimmer", 1, "DimVisionDeath")
	    Goto FadeDeath
	FadeDeath:
	    TNT1 A 0 A_GiveToTarget("InvisibleCounter", 8)
		TNT1 A 0 A_GiveToTarget("KilledHunter", 1)
		TNT1 A 0 A_GiveToTarget("TotalKillCount", 1)
		TNT1 A 0 A_GiveToTarget("HumanKillCount", 1)
		TNT1 A 0 A_GiveToTarget("LowHPKill", 1)
		TNT1 A 0 A_GiveToTarget("CheckAchievements", 1)
		HUNT G 1
		TNT1 A 0 A_SpawnItemEx("FadeHunter", 0, 0, 0, 0, 0, 0, 0, SXF_TRANSFERTRANSLATION)
		BLAN A -1
	Stop
	Death.MohophRange:
	Death.Mohoph:
		PLAY A 0 A_GiveToTarget("TransHunter",1)
		TNT1 A 0 A_GiveToTarget("MorphAmmo", 1)
		PLAY A 0 A_PlaySoundEx("MohophKill","Body")
		TNT1 A 0 A_giveToTarget("MohophSpeed", 1)
		TNT1 A 0 A_GiveToTarget("MohophSpeedText", 1)
		TNT1 A 0 A_GiveToTarget("MohophKill", 1)
		TNT1 A 0 A_GiveToTarget("KilledHunter2", 1)
		TNT1 A 0 A_JumpIfInTargetInventory("MohophJustMorphed", 1, 2)
		TNT1 A 0 A_Jump(256, 2)
		TNT1 A 0 A_GiveToTarget("JustMorphedKill", 1)		
		TNT1 A 0 ACS_ExecuteAlways(514, 0, 1)
		PLAY A 0 ACS_ExecuteAlways(976,0)
		TNT1 A 0 A_JumpIfInTargetInventory("MohophWarlockCheck", 1, 1)
		Goto DeathAnim
		TNT1 A 0 A_GiveToTarget("MorphAmmo", 1)
		Goto DeathAnim
	Death.MorgMelee:
		TNT1 A 0 A_GiveToTarget("MorgBatAmmo", 2)
		TNT1 A 0 A_GiveToTarget("MorgMeleeKill", 1)
		TNT1 A 0 A_GiveToTarget("MorgMulti", 1)
		Goto DeathAnim
	Death.MorgBat:
		TNT1 A 0 A_GiveToTarget("MorgBatKill", 1)
		Goto DeathAnim			
	}
}

ACTOR Bow : Weapon 9901
{ 
    Inventory.PickupMessage "You picked up the bow." 
    Obituary "%o was pierced by %k's arrows." 
    AttackSound "weapons/LightningArrow"
    Weapon.AmmoType1 "ArrowSingle" 
    Weapon.AmmoGive1 20 
    Weapon.AmmoUse1 1 
	inventory.icon "NBOW"
    //+NOALERT 
	+DONTBOB
	+INVENTORY.UNDROPPABLE
	Weapon.SlotNumber 1
	Weapon.SelectionOrder 10
	+WEAPON.NOAUTOAIM
	+AMMO_OPTIONAL
    Radius 30
	Height 10
    Scale .20 
    States 
    { 
    Spawn: 
       BOWP A 400
       Stop 
    Ready: 
	   TNT1 A 0 A_PlaySoundEx("weapons/bowup", "Weapon")
	   TNT1 A 0 A_GiveInventory("IsReady_",1)
	   BOWA H 1 A_WeaponReady 
       Goto Ready+2
    Deselect:
       BOWA H 1 A_Lower
	   Loop
    Select: 
	   TNT1 A 0 ACS_ExecuteAlways(700, 0, WM_HUN_NORM)
       BOWA H 1 A_Raise
       Goto Select+1
    Fire:
	   TNT1 A 0 A_TakeInventory("IsReady_",1)
	   TNT1 A 0 A_JumpIfNoAmmo("FireSlow")
       BOWA HIJKL 3
	   BOWA L 2 A_PlaySoundEx ("weapons/bowdraw", "SoundSlot7")
	   Goto Hold
	FireSlow:
       BOWA HIJKL 7
	   BOWA L 4 A_PlaySoundEx ("weapons/bowdraw", "SoundSlot7")
	   Goto Hold
    Altfire:
	   TNT1 A 0 A_TakeInventory("IsReady_",1)
	   BOWA GFE 4
	   BOWA E 20 A_GunFlash
	   BOWA EF 6
	   BOWA G 18 // 12
	   BOWA H 1 A_WeaponReady 
	   Goto Ready+1
	Hold:
       BOWA M 1
       BOWA M 0 A_Refire
	   BOWA O 0 A_StopSoundEx("SoundSlot7")
	   BOWA H 0 A_JumpIfNoAmmo("ShootSlow")
	   BOWA O 0 A_FireCustomMissile("ArrowFire", 0, 1, 8, 0)
       BOWA P 5
	   BOWA G 6
       Goto Ready+1
	ShootSlow:
	   TNT1 A 0 A_FireCustomMissile("ArrowFire2", 0, 1, 8, 0)
       BOWA P 6
	   BOWA G 8
       Goto Ready+1
	Flash:
	   WHIT ABC 2 bright
	   WHIT A 0 A_PlaySoundEx("weapons/bowpowerup","Weapon")
	   WHIT A 0 A_SpawnItem("NormalRadius",0 ,0, 0)
	   WHIT DE 1 bright
	   WHIT EFEF 2 bright
	   WHIT CBA 1 bright
	   Stop
	NoArrows:
	   BOWA H 28 A_PlayWeaponSound("weapons/arrowno")
	   Goto Ready+1
    } 
} 

actor FireBow : Bow
{
	Obituary "%o was scorched by %k's fire arrows." 
	+WEAPON.NOAUTOAIM
	Weapon.SlotNumber 2
	inventory.icon "FBOW"
	States
	{
    Spawn: 
       BOWP A 400
       Stop 
    Ready: 
	   TNT1 A 0 A_PlaySoundEx("weapons/bowfswitch", "Weapon")
	   TNT1 A 0 A_GiveInventory("IsReady_",1)
	   BOWA H 1 A_WeaponReady 
       Goto Ready+2
    Deselect: 
       BOWA H 1 A_Lower
	   Loop
    Select: 
	   TNT1 A 0 ACS_ExecuteAlways(700, 0, WM_HUN_FIRE)
       BOWA H 1 A_Raise
       Goto Select+1
    Fire:   
	   TNT1 A 0 A_TakeInventory("IsReady_",1)
	   TNT1 A 0 A_JumpIfNoAmmo("NoArrows")
	   TNT1 A 0 ACS_ExecuteAlways(999,0)
       BOWA HIJKL 3
	   TNT1 A 0 A_GiveInventory("LightningCheck",1)
	   TNT1 A 0 ACS_ExecuteAlways(999,0)
	   TNT1 A 0 A_GunFlash
	   BOWA L 2 A_PlaySoundEx ("weapons/bowdraw", "SoundSlot7")
	   Goto Hold
	Hold:
	   BOWA M 1 bright 
	   TNT1 A 0 A_Refire
	   TNT1 A 0 A_GiveInventory("LightningCheck",1)
	   TNT1 A 0 A_Light0
	   TNT1 A 0 A_StopSoundEx("SoundSlot7")
	   TNT1 A 0 A_FireCustomMissile("FlameArrow", 0, 1, 8, 0)
	   TNT1 A 0 ACS_ExecuteAlways(998,0)
	   TNT1 A 0 A_GunFlash
       BOWA P 20 // 18
	   BOWA G 4 A_TakeInventory("LightningCheck",2)
	   Goto Ready+1
	Flash:
	   TNT1 A 0 A_JumpIfInventory("LightningCheck",1,"SFlash")
	   RED5 ABC 2 bright
	   TNT1 A 0 A_PlaySoundEx("weapons/firespin","Weapon")
	   TNT1 A 0 A_SpawnItemEx("FireMagicMagmaBall", 0, 0, 4, -15, -15, 0)
	   TNT1 A 0 A_SpawnItemEx("FireMagicMagmaBall", 0, 0, 4, -15, 0, 0)
	   TNT1 A 0 A_SpawnItemEx("FireMagicMagmaBall", 0, 0, 4, 0, -15, 0)
	   TNT1 A 0 A_SpawnItemEx("FireMagicMagmaBall", 0, 0, 4, -15, 15, 0)
	   TNT1 A 0 A_SpawnItemEx("FireMagicMagmaBall", 0, 0, 4, 15, -15, 0)
	   TNT1 A 0 A_SpawnItemEx("FireMagicMagmaBall", 0, 0, 4, 0, 15, 0)
	   TNT1 A 0 A_SpawnItemEx("FireMagicMagmaBall", 0, 0, 4, 15, 0, 0)
	   TNT1 A 0 A_SpawnItemEx("FireMagicMagmaBall", 0, 0, 4, 15, 15, 0)
	   RED5 D 1 bright
	   TNT1 A 0 A_SpawnItem("FireRadius",0 ,0, 0)
	   TNT1 A 0 A_JumpIf(health<1,"Goaway")
	   RED5 E 2 bright A_SpawnItemEx("FireSpinAttack",40,0,0,0,0,0,0,0)
	   TNT1 A 0 A_SpawnItem("FireRadius",0 ,0, 0)
	   TNT1 A 0 A_JumpIf(health<1,"Goaway")
	   RED5 F 2 bright A_SpawnItemEx("FireSpinAttack",20,20,0,0,0,0,0,0)
	   TNT1 A 0 A_SpawnItem("FireRadius",0 ,0, 0)
	   TNT1 A 0 A_JumpIf(health<1,"Goaway")
	   RED5 E 2 bright A_SpawnItemEx("FireSpinAttack",0,40,0,0,0,0,0,0)
	   TNT1 A 0 A_SpawnItem("FireRadius",0 ,0, 0)
	   TNT1 A 0 A_JumpIf(health<1,"Goaway")
	   RED5 F 2 bright A_SpawnItemEx("FireSpinAttack",-20,20,0,0,0,0,0,0)
	   TNT1 A 0 A_SpawnItem("FireRadius",0 ,0, 0)
	   TNT1 A 0 A_JumpIf(health<1,"Goaway")
	   RED5 E 2 bright A_SpawnItemEx("FireSpinAttack",-40,0,0,0,0,0,0,0)
	   TNT1 A 0 A_SpawnItem("FireRadius",0 ,0, 0)
	   TNT1 A 0 A_JumpIf(health<1,"Goaway")
	   RED5 F 2 bright A_SpawnItemEx("FireSpinAttack",-20,-20,0,0,0,0,0,0)
	   TNT1 A 0 A_SpawnItem("FireRadius",0 ,0, 0)
	   TNT1 A 0 A_JumpIf(health<1,"Goaway")
	   RED5 E 2 bright A_SpawnItemEx("FireSpinAttack",0,-40,0,0,0,0,0,0)
	   TNT1 A 0 A_SpawnItem("FireRadius",0 ,0, 0)
	   TNT1 A 0 A_JumpIf(health<1,"Goaway")
	   RED5 F 2 bright A_SpawnItemEx("FireSpinAttack",20,-20,0,0,0,0,0,0)
	   TNT1 A 0 A_SpawnItem("FireRadius",0 ,0, 0)
	   TNT1 A 0 A_JumpIf(health<1,"Goaway")
	   RED5 E 2 bright A_SpawnItemEx("FireSpinAttack",40,0,0,0,0,0,0,0)
	   TNT1 A 0 A_SpawnItem("FireRadius",0 ,0, 0)
	   TNT1 A 0 A_JumpIf(health<1,"Goaway")
	   RED5 F 2 bright A_SpawnItemEx("FireSpinAttack",20,20,0,0,0,0,0,0)
	   TNT1 A 0 A_SpawnItem("FireRadius",0 ,0, 0)
	   TNT1 A 0 A_JumpIf(health<1,"Goaway")
	   RED5 E 2 bright A_SpawnItemEx("FireSpinAttack",0,40,0,0,0,0,0,0)
	   TNT1 A 0 A_SpawnItem("FireRadius",0 ,0, 0)
	   TNT1 A 0 A_JumpIf(health<1,"Goaway")
	   RED5 F 2 bright A_SpawnItemEx("FireSpinAttack",-20,20,0,0,0,0,0,0)
	   TNT1 A 0 A_SpawnItem("FireRadius",0 ,0, 0)
	   TNT1 A 0 A_JumpIf(health<1,"Goaway")
	   RED5 E 2 bright A_SpawnItemEx("FireSpinAttack",-40,0,0,0,0,0,0,0)
	   TNT1 A 0 A_SpawnItem("FireRadius",0 ,0, 0)
	   TNT1 A 0 A_JumpIf(health<1,"Goaway")
	   RED5 F 2 bright A_SpawnItemEx("FireSpinAttack",-20,-20,0,0,0,0,0,0)
	   TNT1 A 0 A_SpawnItem("FireRadius",0 ,0, 0)
	   TNT1 A 0 A_JumpIf(health<1,"Goaway")
	   RED5 E 2 bright A_SpawnItemEx("FireSpinAttack",0,-40,0,0,0,0,0,0)
	   TNT1 A 0 A_SpawnItem("FireRadius",0 ,0, 0)
	   TNT1 A 0 A_JumpIf(health<1,"Goaway")
	   TNT1 A 0 A_SpawnItemEx("FireMagicMagmaBall", 0, 0, 4, -15, -15, 0)
	   TNT1 A 0 A_SpawnItemEx("FireMagicMagmaBall", 0, 0, 4, -15, 0, 0)
	   TNT1 A 0 A_SpawnItemEx("FireMagicMagmaBall", 0, 0, 4, 0, -15, 0)
	   TNT1 A 0 A_SpawnItemEx("FireMagicMagmaBall", 0, 0, 4, -15, 15, 0)
	   TNT1 A 0 A_SpawnItemEx("FireMagicMagmaBall", 0, 0, 4, 15, -15, 0)
	   TNT1 A 0 A_SpawnItemEx("FireMagicMagmaBall", 0, 0, 4, 0, 15, 0)
	   TNT1 A 0 A_SpawnItemEx("FireMagicMagmaBall", 0, 0, 4, 15, 0, 0)
	   TNT1 A 0 A_SpawnItemEx("FireMagicMagmaBall", 0, 0, 4, 15, 15, 0)	   
	   RED5 F 2 bright A_SpawnItemEx("FireSpinAttack",20,-20,0,0,0,0,0,0)	   
	   RED5 DCBA 1 bright
	   Stop
	SFlash:
	   BOWL G 1 bright
	   TNT1 A 0 A_JumpIfInventory("LightningCheck",2,"Goaway")
	   BOWL G 1 bright
	   TNT1 A 0 A_JumpIfInventory("LightningCheck",2,"Goaway")
	   BOWL G 1 bright
	   TNT1 A 0 A_JumpIfInventory("LightningCheck",2,"Goaway")
	   BOWL H 1 bright
	   TNT1 A 0 A_JumpIfInventory("LightningCheck",2,"Goaway")
	   BOWL H 1 bright
	   TNT1 A 0 A_JumpIfInventory("LightningCheck",2,"Goaway")
	   BOWL H 1 bright
	   TNT1 A 0 A_JumpIfInventory("LightningCheck",2,"Goaway")
	   BOWL I 1 bright
	   TNT1 A 0 A_JumpIfInventory("LightningCheck",2,"Goaway")
	   BOWL I 1 bright
	   TNT1 A 0 A_JumpIfInventory("LightningCheck",2,"Goaway")
	   BOWL I 1 bright
	   TNT1 A 0 A_JumpIfInventory("LightningCheck",2,"Goaway")
	   loop
	Goaway:
	   TNT1 A 0
	   stop
	NoArrows:
	   BOWA H 28 A_PlayWeaponSound("weapons/arrowno")
	   Goto Ready+1
	Altfire:
	   TNT1 A 0 A_TakeInventory("IsReady_",1)
	   BOWA GFE 4
	   BOWA E 40 A_GunFlash
	   BOWA EFG 8
	   BOWA H 1 A_WeaponReady 
	   Goto Ready+1
	}
}

actor FireSpinAttack
{
	-SOLID
	+NOGRAVITY
	+NOINTERACTION
	+CLIENTSIDEONLY
	renderstyle add
	alpha 0.9
	States
	{
	Spawn:
		HLFR ABCDEFGH 1 bright 
		stop
	}
}

Actor FireRadius
{
	+NOBLOCKMAP
	Obituary "%o was burnt to death by %k's fire magic."
	DamageType "HunterFireMagic"
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 1 A_Explode(9,64,0)
		TNT1 BCDE 1
		Stop
	}
}


actor IceBow : Bow
{
  Weapon.SlotNumber 3
  Obituary "%o was frozen by %k's ice arrows." 
  +WEAPON.NOAUTOAIM
  inventory.icon "IBOW"
  States
	{
    Spawn: 
       BOWP A 400
       Stop 
    Ready: 
	   TNT1 A 0 A_PlaySoundEx("weapons/bowiswitch", "Weapon")
	   TNT1 A 0 A_GiveInventory("IsReady_",1)
	   BOWA H 1 A_WeaponReady 
       Goto Ready+2
    Deselect: 
       BOWA H 1 A_Lower
	   Loop
    Select: 
	   TNT1 A 0 ACS_ExecuteAlways(700, 0, WM_HUN_ICE)
       BOWA H 1 A_Raise
       Goto Select+1
    Fire:    
	   TNT1 A 0 A_TakeInventory("IsReady_",1)
	   TNT1 A 0 A_JumpIfNoAmmo("NoArrows")
	   TNT1 A 0 ACS_ExecuteAlways(999,0)
       BOWA HIJKL 3
	   TNT1 A 0 A_GiveInventory("LightningCheck",1)
	   TNT1 A 0 ACS_ExecuteAlways(999,0)
	   TNT1 A 0 A_GunFlash
	   BOWA L 2 A_PlaySoundEx ("weapons/bowdraw", "SoundSlot7")
	Goto Hold
	Hold:
	   BOWA M 1 bright
	   TNT1 A 0 A_Refire
	   TNT1 A 0 A_Light0
	   TNT1 A 0 A_GiveInventory("LightningCheck",1)
	   TNT1 A 0 A_StopSoundEx("SoundSlot7")
	   TNT1 A 0 A_FireCustomMissile("IceArrow", 0, 1, 8, 0)
	   TNT1 A 0 A_FireCustomMissile("IceArrow2", random(-5,5), 0, 11, 0)
	   TNT1 A 0 A_FireCustomMissile("IceArrow2", random(-5,5), 0, 5, 0)
	   TNT1 A 0 A_FireCustomMissile("IceArrow2", random(-5,5), 0, 8, 4)
	   TNT1 A 0 A_FireCustomMissile("IceArrow2", random(-5,5), 0, 8, -4)
	   TNT1 A 0 A_FireCustomMissile("IceArrow2", random(-5,5), 0, random(5,11), random(-4,4))
	   TNT1 A 0 ACS_ExecuteAlways(998,0)
       BOWA P 30
	   BOWA G 4 A_TakeInventory("LightningCheck",2)
	   Goto Ready+1
	Flash:
	   TNT1 A 0 A_JumpIfInventory("LightningCheck",1,"SFlash")
	   BLU5 ABC 2 bright
	   TNT1 A 0 A_SpawnItem("IceRadius",0 ,0, 0)
	   BLU5 D 1 bright
	   TNT1 A 0 A_SpawnItem("IceRadius",0 ,0, 0)
	   TNT1 A 0 A_JumpIf(health<1,"Goaway")
	   TNT1 A 0 bright A_SpawnItemEx("miniicespike",random(-80,80),random(-80,80),0,0,0,0,0)
	   BLU5 E 2 bright A_SpawnItemEx("miniicespike",random(-80,80),random(-80,80),0,0,0,0,0)
	   TNT1 A 0 A_SpawnItem("IceRadius",0 ,0, 0)
	   TNT1 A 0 A_JumpIf(health<1,"Goaway")
	   TNT1 A 0 bright A_SpawnItemEx("miniicespike",random(-80,80),random(-80,80),0,0,0,0,0)
	   BLU5 F 2 bright A_SpawnItemEx("miniicespike",random(-80,80),random(-80,80),0,0,0,0,0)
	   TNT1 A 0 A_SpawnItem("IceRadius",0 ,0, 0)
	   TNT1 A 0 A_JumpIf(health<1,"Goaway")
	   TNT1 A 0 bright A_SpawnItemEx("miniicespike",random(-80,80),random(-80,80),0,0,0,0,0)
	   BLU5 E 2 bright A_SpawnItemEx("miniicespike",random(-80,80),random(-80,80),0,0,0,0,0)
	   BLU5 A 0 A_SpawnItem("IceRadius",0 ,0, 0)
	   BLU5 A 0 A_JumpIf(health<1,"Goaway")
	   TNT1 A 0 bright A_SpawnItemEx("miniicespike",random(-80,80),random(-80,80),0,0,0,0,0)
	   BLU5 F 2 bright A_SpawnItemEx("miniicespike",random(-80,80),random(-80,80),0,0,0,0,0)
	   TNT1 A 0 A_SpawnItem("IceRadius",0 ,0, 0)
	   TNT1 A 0 A_JumpIf(health<1,"Goaway")
	   TNT1 A 0 bright A_SpawnItemEx("miniicespike",random(-80,80),random(-80,80),0,0,0,0,0)
	   BLU5 E 2 bright A_SpawnItemEx("miniicespike",random(-80,80),random(-80,80),0,0,0,0,0)
	   TNT1 A 0 A_SpawnItem("IceRadius",0 ,0, 0)
	   TNT1 A 0 A_JumpIf(health<1,"Goaway")
	   TNT1 A 0 bright A_SpawnItemEx("miniicespike",random(-80,80),random(-80,80),0,0,0,0,0)
	   BLU5 F 2 bright A_SpawnItemEx("miniicespike",random(-80,80),random(-80,80),0,0,0,0,0)
	   TNT1 A 0 A_SpawnItem("IceRadius",0 ,0, 0)
	   TNT1 A 0 A_JumpIf(health<1,"Goaway")
	   TNT1 A 0 bright A_SpawnItemEx("miniicespike",random(-80,80),random(-80,80),0,0,0,0,0)
	   BLU5 E 2 bright A_SpawnItemEx("miniicespike",random(-80,80),random(-80,80),0,0,0,0,0)
	   TNT1 A 0 A_SpawnItem("IceRadius",0 ,0, 0)
	   TNT1 A 0 A_JumpIf(health<1,"Goaway")
	   TNT1 A 0 bright A_SpawnItemEx("miniicespike",random(-80,80),random(-80,80),0,0,0,0,0)
	   BLU5 F 2 bright A_SpawnItemEx("miniicespike",random(-80,80),random(-80,80),0,0,0,0,0)
	   TNT1 A 0 A_SpawnItem("IceRadius",0 ,0, 0)
	   TNT1 A 0 A_JumpIf(health<1,"Goaway")
	   TNT1 A 0 bright A_SpawnItemEx("miniicespike",random(-80,80),random(-80,80),0,0,0,0,0)
	   BLU5 E 2 bright A_SpawnItemEx("miniicespike",random(-80,80),random(-80,80),0,0,0,0,0)
	   TNT1 A 0 A_SpawnItem("IceRadius",0 ,0, 0)
	   TNT1 A 0 A_JumpIf(health<1,"Goaway")
	   TNT1 A 0 bright A_SpawnItemEx("miniicespike",random(-80,80),random(-80,80),0,0,0,0,0)
	   BLU5 F 2 bright A_SpawnItemEx("miniicespike",random(-80,80),random(-80,80),0,0,0,0,0)
	   BLU5 CBA 1 bright
	   Stop
	SFlash:
	   BOWL D 1 bright
	   TNT1 A 0 A_JumpIfInventory("LightningCheck",2,"Goaway")
	   BOWL D 1 bright
	   TNT1 A 0 A_JumpIfInventory("LightningCheck",2,"Goaway")
	   BOWL E 1 bright
	   TNT1 A 0 A_JumpIfInventory("LightningCheck",2,"Goaway")
	   BOWL E 1 bright
	   TNT1 A 0 A_JumpIfInventory("LightningCheck",2,"Goaway")
	   BOWL F 1 bright
	   TNT1 A 0 A_JumpIfInventory("LightningCheck",2,"Goaway")
	   BOWL F 1 bright
	   TNT1 A 0 A_JumpIfInventory("LightningCheck",2,"Goaway")
	   loop
	Goaway:
	   TNT1 A 0
	   stop
	NoArrows:
	   BOWA H 28 A_PlayWeaponSound("weapons/arrowno")
	   Goto Ready+1
	Altfire:
	   TNT1 A 0 A_TakeInventory("IsReady_",1)
	   BOWA GFE 4
	   BOWA E 45 A_GunFlash
	   BOWA EFG 6
	   BOWA H 1 A_WeaponReady 
	   Goto Ready+1
	}
}

actor miniicespike
{
	PROJECTILE
	+FLOORHUGGER
	+THRUGHOST
	Obituary "%o was frozen by %k's ice spikes." 
	speed 0
	Damage (5)
	radius 3
	height 5
	DamageType "HunterIceSpike"
	deathsound "weapons/arrowshatter"
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_PlaySound("weapons/icespike")
		TNT1 A 0 A_ChangeFlag("NOBLOCKMAP", 0)
		ICEP NMLKJIHGFEDCB 1
		ICEP A 35 A_ChangeFlag("NOBLOCKMAP", 1)
		TNT1 A 0 A_ChangeFlag("NOBLOCKMAP", 0)
		ICEP BCDEFGHIJKLMN 1
		stop
		Death:
		SHEX ABCDEFGHIJ 2 bright A_FadeOut(0.05)
		stop
	}
}

actor IceRadius : FireRadius
{
	+NOINTERACTION
	+CLIENTSIDEONLY
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 1// A_Explode(60,152,0)
		TNT1 BCDE 1
		Stop
	}
}

actor HunterLightSpawner
{
	Radius 8
	Height 8
	Scale 0.5
	+NOGRAVITY
	States
	{
		Spawn:
		TNT1 ABCDE 1
		Stop
	}
}

actor LightningBow : Bow
{
	+WEAPON.NOAUTOAIM
	Weapon.SlotNumber 4
	Obituary "%o was electrocuted by %k's lightning arrows." 
	decal "LightningDecal"
	inventory.icon "LBOW"
	States
	{
    Spawn: 
       BOWP A 400
       Stop 
    Ready: 
	   TNT1 A 0 A_PlaySoundEx("weapons/bowlswitch", "Weapon")
	   TNT1 A 0 A_GiveInventory("IsReady_",1)
	   BOWA H 1 A_WeaponReady 
       Goto Ready+2
    Deselect: 
       BOWA H 1 A_Lower
	   Loop
    Select: 
	   TNT1 A 0 ACS_ExecuteAlways(700, 0, WM_HUN_LIG)
       BOWA H 1 A_Raise
       Goto Select+1
    Fire:   
	   TNT1 A 0 A_TakeInventory("IsReady_",1)
	   TNT1 A 0 A_JumpIfNoAmmo("NoArrows")
	   TNT1 A 0 ACS_ExecuteAlways(999,0)
       BOWA HIJKL 3
	   BOWA L 2 A_PlaySoundEx ("weapons/bowdraw", "SoundSlot7")
	   TNT1 A 0 A_GiveInventory("LightningCheck",1)
	   TNT1 A 0 A_GunFlash
	   Goto Hold
	Hold:
	   BOWA M 1 bright 
	   TNT1 A 0 A_Refire
	   TNT1 A 0 A_GiveInventory("LightningCheck",1)
	   TNT1 A 0 A_StopSoundEx("SoundSlot7")
	   BOWA H 0 A_Light0
	   TNT1 A 0 A_FireCustomMissile("LightningArrow", 0, 1, 8, 0)
	   TNT1 A 0 A_RailAttack(50, 9, 0, "none", "yellow", 0, 9999, "HunterRailPuff") 
	   TNT1 A 0 A_SpawnItem("HunterLightSpawner", 0, 0, 0)
	   TNT1 A 0 ACS_ExecuteAlways(998,0)
       BOWA P 30
	   BOWA G 4 A_TakeInventory("LightningCheck",2)
	   Goto Ready+1
	Flash:
	   TNT1 A 0 A_JumpIfInventory("LightningCheck",1,"SFlash")
	   YEL5 ABC 1 bright
	   YEL5 D 2 bright
	   TNT1 A 0 A_PlaySoundEx("weapons/lightfall","Weapon")
		TNT1 A 0 A_SpawnItemEx ("HunterLightningParticle", 0, 0, 4, 0, 0, 0, 0) 
		TNT1 A 0 A_SpawnItemEx ("HunterLightningParticle", 0, 0, 4, 0, 0, 0, 45) 
		TNT1 A 0 A_SpawnItemEx ("HunterLightningParticle", 0, 0, 4, 0, 0, 0, 90) 
		TNT1 A 0 A_SpawnItemEx ("HunterLightningParticle", 0, 0, 4, 0, 0, 0, 135) 
		TNT1 A 0 A_SpawnItemEx ("HunterLightningParticle", 0, 0, 4, 0, 0, 0, 180)
		TNT1 A 0 A_SpawnItemEx ("HunterLightningParticle", 0, 0, 4, 0, 0, 0, 225) 
		TNT1 A 0 A_SpawnItemEx ("HunterLightningParticle", 0, 0, 4, 0, 0, 0, 270)
		TNT1 A 0 A_SpawnItemEx ("HunterLightningParticle", 0, 0, 4, 0, 0, 0, 315) 
	   YEL5 EF 3 bright
	   YEL5 EF 3 bright 
	   YEL5 CBA 2 bright
	   Stop
	SFlash:
	   BOWL A 1 bright
	   TNT1 A 0 A_JumpIfInventory("LightningCheck",2,"Goaway")
	   BOWL A 1 bright
	   TNT1 A 0 A_JumpIfInventory("LightningCheck",2,"Goaway")
	   BOWL B 1 bright
	   TNT1 A 0 A_JumpIfInventory("LightningCheck",2,"Goaway")
	   BOWL B 1 bright
	   TNT1 A 0 A_JumpIfInventory("LightningCheck",2,"Goaway")
	   BOWL C 1 bright
	   TNT1 A 0 A_JumpIfInventory("LightningCheck",2,"Goaway")
	   BOWL C 1 bright
	   TNT1 A 0 A_JumpIfInventory("LightningCheck",2,"Goaway")
	   loop
	Goaway:
	   TNT1 A 0
	   stop
	NoArrows:
	   BOWA H 28 A_PlayWeaponSound("weapons/arrowno")
	   Goto Ready+1
	   Altfire:
	   TNT1 A 0 A_TakeInventory("IsReady_",1)
	   BOWA GFE 4
	   BOWA E 25 A_GunFlash
	   BOWA EFG 6
	   BOWA H 1 A_WeaponReady 
	   Goto Ready+1
	}
}

Actor HunterRailPuff : BulletPuff
{	
	Obituary "%o was electrocuted by %k's lightning arrows."
	DamageType "HunterLightningRail"
	States
	{
	  Spawn:
		TNT1 A 1
		Goto Melee
	  Melee:
		TNT1 A 1
		Stop
	}
}

Actor HunterLightningSparkletMaggot
{
	Radius 2
	Height 2
	alpha 0.8
	renderstyle add
	Projectile
	+RIPPER
	+BLOODLESSIMPACT
	-BLOODSPLATTER
	+CLIENTSIDEONLY
	States
	{
		Spawn:
			EBLT ABCDEF 2 Bright
			Stop
	}
}

Actor HunterLightningParticle
{
	Radius 4
	Height 4
	Projectile
	Damage (random(3,4))
	DamageType "HunterLightningMagic"
	Obituary "%o was shocked by %k's lightning magic."
	Speed 0
	alpha 0.8
	renderstyle add
	+RIPPER
	+BLOODLESSIMPACT
	-BLOODSPLATTER
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 ACS_ExecuteAlways(450, 0, angle, 12)
		EBLT G 3 Bright A_Explode(random(3,6), 32, 0)
		TNT1 A 0 A_SpawnItemEx("HunterLightningSparkletMaggot", random(-1,1), random(-1,1), random(0,1), random(8,12), random(8,12), random(4,7), random(-180,180))
		EBLT H 3 Bright A_Explode(random(3,6), 32, 0)
		TNT1 A 0 A_SpawnItemEx("HunterLightningSparkletMaggot", random(-1,1), random(-1,1), random(0,1), random(8,12), random(8,12), random(4,7), random(-180,180))
		EBLT G 3 Bright A_Explode(random(3,6), 32, 0)
		TNT1 A 0 A_SpawnItemEx("HunterLightningSparkletMaggot", random(-1,1), random(-1,1), random(0,1), random(8,12), random(8,12), random(4,7), random(-180,180))
		EBLT H 3 Bright A_Explode(random(3,6), 32, 0)
		TNT1 A 0 A_SpawnItemEx("HunterLightningSparkletMaggot", random(-1,1), random(-1,1), random(0,1), random(8,12), random(8,12), random(4,7), random(-180,180))
		EBLT G 3 Bright A_Explode(random(3,6), 32, 0)
		TNT1 A 0 A_SpawnItemEx("HunterLightningSparkletMaggot", random(-1,1), random(-1,1), random(0,1), random(8,12), random(8,12), random(4,7), random(-180,180))
		EBLT H 3 Bright A_Explode(random(3,6), 32, 0)
		TNT1 A 0 A_SpawnItemEx("HunterLightningSparkletMaggot", random(-1,1), random(-1,1), random(0,1), random(8,12), random(8,12), random(4,7), random(-180,180))
		EBLT G 3 Bright A_Explode(random(3,6), 32, 0)
		TNT1 A 0 A_SpawnItemEx("HunterLightningSparkletMaggot", random(-1,1), random(-1,1), random(0,1), random(8,12), random(8,12), random(4,7), random(-180,180))
		EBLT H 3 Bright A_Explode(random(3,6), 32, 0)
		TNT1 A 0 A_SpawnItemEx("HunterLightningSparkletMaggot", random(-1,1), random(-1,1), random(0,1), random(8,12), random(8,12), random(4,7), random(-180,180))
		EBLT G 3 Bright A_Explode(random(3,6), 32, 0)
		TNT1 A 0 A_SpawnItemEx("HunterLightningSparkletMaggot", random(-1,1), random(-1,1), random(0,1), random(8,12), random(8,12), random(4,7), random(-180,180))
		EBLT H 3 Bright A_Explode(random(3,6), 32, 0)
		TNT1 A 0 A_SpawnItemEx("HunterLightningSparkletMaggot", random(-1,1), random(-1,1), random(0,1), random(8,12), random(8,12), random(4,7), random(-180,180))
		EBLT G 3 Bright A_Explode(random(3,6), 32, 0)
		TNT1 A 0 A_SpawnItemEx("HunterLightningSparkletMaggot", random(-1,1), random(-1,1), random(0,1), random(8,12), random(8,12), random(4,7), random(-180,180))
		EBLT H 3 Bright A_Explode(random(3,6), 32, 0)
		TNT1 A 0 A_SpawnItemEx("HunterLightningSparkletMaggot", random(-1,1), random(-1,1), random(0,1), random(8,12), random(8,12), random(4,7), random(-180,180))
		EBLT G 3 Bright A_Explode(random(3,6), 32, 0)
		TNT1 A 0 A_SpawnItemEx("HunterLightningSparkletMaggot", random(-1,1), random(-1,1), random(0,1), random(8,12), random(8,12), random(4,7), random(-180,180))
		EBLT H 3 Bright A_Explode(random(3,6), 32, 0)
		TNT1 A 0 A_SpawnItemEx("HunterLightningSparkletMaggot", random(-1,1), random(-1,1), random(0,1), random(8,12), random(8,12), random(4,7), random(-180,180))
		EBLT G 3 Bright A_Explode(random(3,6), 32, 0)
		TNT1 A 0 A_SpawnItemEx("HunterLightningSparkletMaggot", random(-1,1), random(-1,1), random(0,1), random(8,12), random(8,12), random(4,7), random(-180,180))
/*
		EBLT H 3 Bright A_Explode(random(3,6), 12, 0)
		EBLT G 0 A_SpawnItemEx("HunterLightningSparkletMaggot", random(-1,1), random(-1,1), random(0,1), random(12,16), random(12,16), random(4,12), random(-180,180))
		EBLT G 3 Bright A_Explode(random(3,6), 12, 0)
		EBLT G 0 A_SpawnItemEx("HunterLightningSparkletMaggot", random(-1,1), random(-1,1), random(0,1), random(12,16), random(12,16), random(4,12), random(-180,180))
		EBLT H 3 Bright A_Explode(random(3,6), 12, 0)
		EBLT G 0 A_SpawnItemEx("HunterLightningSparkletMaggot", random(-1,1), random(-1,1), random(0,1), random(12,16), random(12,16), random(4,12), random(-180,180))
		EBLT G 3 Bright A_Explode(random(3,6), 12, 0)
		EBLT G 0 A_SpawnItemEx("HunterLightningSparkletMaggot", random(-1,1), random(-1,1), random(0,1), random(12,16), random(12,16), random(4,12), random(-180,180))
		EBLT H 3 Bright A_Explode(random(3,6), 12, 0)
		EBLT G 0 A_SpawnItemEx("HunterLightningSparkletMaggot", random(-1,1), random(-1,1), random(0,1), random(12,16), random(12,16), random(4,12), random(-180,180))
		EBLT G 3 Bright A_Explode(random(3,6), 12, 0) */
		EBLT H 1
		Goto Death
	Death:
		EBLT IJK 2
		Stop
	}
}

actor LightningRadius : FireRadius
{
	Obituary "%o was shocked by %k's lightning magic." 
	DamageType "HunterLightningMagic"
	states
	{
		Spawn:
		TNT1 A 0
		TNT1 A 0
		TNT1 A 1 A_Explode(18,152,0)
		Stop
	}
}

actor LightningCheck : Inventory
	{
	Inventory.amount 2
	inventory.maxamount 2
	States
	{
	Spawn:
		TNT1 A 1
		Stop
	}
}

ACTOR ArrowFire : FastProjectile
{ 
	Obituary "%o was shot down by %k's arrows." 
   Radius 4 
   Height 3 
   Speed 140
   Scale .5
   Damage (random(30,32))
   PROJECTILE 
   +NOGRAVITY 
   +ROCKETTRAIL
   +NOEXTREMEDEATH
   DamageType "HunterRegularArrow"
   decal "BulletChip"
   SeeSound "weapons/bowfire"
   DeathSound "weapons/bowhit"
   States 
   { 
   Spawn: 
      ARRW AAAAAA 2
      TNT1 A 0 A_Changeflag("NOGRAVITY", 0)
	  TNT1 A 0 A_Changeflag("LOWGRAVITY", 1)
	  Loop
   Death: 
      TNT1 A 0 
	  TNT1 A 1 A_PlaySound("weapons/arrowhit")
      ARRW A 1 A_SpawnItemEx("Arrowdropped",0,0,0,0,0,0,0,32,0) 
      Stop 
   } 
}

ACTOR ArrowFire2 : FastProjectile
{ 
	Obituary "%o was shot down by %k's arrows." 
   Radius 4 
   Height 3 
   Speed 140
   Scale .5
   Damage (32)
   DamageType "HunterRegularArrow"
   PROJECTILE 
   +NOGRAVITY 
   +ROCKETTRAIL
   decal "BulletChip"
   +NOEXTREMEDEATH
   SeeSound "weapons/bowfire"
   DeathSound "weapons/bowhit"
   States 
   { 
   Spawn: 
      ARRW AAAAAA 2
      TNT1 A 0 A_Changeflag("NOGRAVITY", 0)
	  TNT1 A 0 A_Changeflag("LOWGRAVITY", 1)
	  Loop
   Death: 
      TNT1 A 0 
	  TNT1 A 0 A_PlaySound("weapons/arrowhit")
      ARRW A 1
      Stop 
   } 
}

ACTOR FlameArrow
{ 
   Radius 3 
   Height 2 
   Speed 66
   Decal "Scorch"
   Scale .55
   Damage (0)
   damagetype "HunterFireArrow"
   +DONTBLAST
   Obituary "%o was scorched by %k's fire arrows." 
   PROJECTILE 
   +NOGRAVITY 
   +MTHRUSPECIES
   +NOEXTREMEDEATH
   //renderstyle translucent
   //alpha 1.0
   SeeSound "weapons/flamearrow"
   DeathSound "weapons/arrowexplode"
   States 
   { 
   Spawn: 
      ARRW A 2 bright
	  ARRW A 0 BRIGHT  A_SpawnItemEx("FiyaArrowFiya",0,0,0,0,0,0,0,0) 
	  ARRW A 0 A_Explode(12,80,0)
	  Loop
   Death: 
      CRRW A 0 A_Explode(52,100,1)
	  CRRW A 0 A_SpawnItemEx("Arrowdropped",0,0,0,0,0,0,0,32,0) 
      HELX ABCDEFGHIJ 2 bright A_FadeOut(0.05)
      Stop 
   } 
} 

ACTOR FiyaArrowFiya
{
  +NOBLOCKMAP
  +NOGRAVITY
  RenderStyle Add
  scale 0.25
  Alpha 1
  States
  {
  Spawn:
	HLFR ABCDEFGH 2 BRIGHT 
    Stop
  }
}

ACTOR IceArrow
{ 
	Obituary "%o was frozen by %k's ice arrows." 
   Radius 3 
   Height 2 
   Speed 40
   decal icehit
   Scale .5
   Damage (random(25,29))
   +DONTBLAST
   PROJECTILE 
   damagetype "HunterIceArrow"
   renderstyle add
   alpha 0.8
   +NOGRAVITY 
   +NOEXTREMEDEATH
   SeeSound "weapons/icearrow"
   DeathSound "weapons/arrowshatter"
   States 
   { 
   Spawn: 
      SHRD ABC 2 bright A_SpawnItemEx("Icearrowtrail",-4,0,0,0,0,0,0,128) 
	  Loop
   Death: 
      TNT1 A 0 A_SpawnItemEx("Arrowdropped",0,0,0,0,0,0,0,32,0) 
      SHEX ABCDEFGHIJ 2 bright A_FadeOut(0.05)
      Stop 
   } 
} 

actor IceArrow2 : IceArrow
{
   Speed 38
   Damage (25)
   States 
   { 
	Spawn: 
	  TNT1 A 0
	  TNT1 A 0 ThrustThingZ(0,random(0,5),random(0,1),1)
      SHRD ABC 2 bright A_SpawnItemEx("Icearrowtrail",-4,0,0,0,0,0,0,128) 
	  Goto Spawn+2
   Death: 
      SHEX ABCDEFGHIJ 2 bright A_FadeOut(0.05)
      Stop 
   } 
}

ACTOR LightningArrow : FastProjectile
{
	PROJECTILE
	damage 0
	+RIPPER
	height 5
	radius 5
	+NOBLOOD
	speed 1000
	States
	{
	Spawn:
		TNT1 A 1
		Loop
	Death:
		TNT1 A 0 A_JumpIfInventory("Clip",1,"goaway")
		TNT1 A 0 A_GiveInventory("Clip",1)
		TNT1 A 1 A_SpawnItemEx("ArrowSingle",0,0,0,0,0,0,0,32,0) 
		Stop
	GoAway:
		TNT1 A 0
		stop
	}
}

ACTOR Flamearrowtrail
{
	- SOLID
	+NOGRAVITY
	+CLIENTSIDEONLY
	alpha 0.7
	renderstyle add
	States
	{
	Spawn:
	WBAL CDE 4 bright
	Stop
	}
}

ACTOR Icearrowtrail
{
	- SOLID
	+NOGRAVITY
	+CLIENTSIDEONLY
	alpha 0.9
	renderstyle add
	scale 0.3
	States
	{
	Spawn:
		CRYT ABCD 4 bright
		Stop
	}
}

Actor HunterNormalEffect
{
	Scale 0.6
	Alpha 0.9
	Renderstyle Add
	+CLIENTSIDEONLY
	+NOGRAVITY
	+NOINTERACTION
	
	States
	{
		Spawn:
			HUNM ABC 2
			HUNM DEF 3 A_FadeOut(0.1)
		Stop
	}
}

actor NormalRadius : FireRadius
{
	Obituary "%o stood in the way of %k's magic."
	DamageType "HunterRegularMagic"
//	Scale 0.70
//	Alpha 0.85
//	Renderstyle add
	+NOGRAVITY
	states
	{
	Spawn:
		TNT1 A 0
        TNT1 A 0 A_SpawnItemEx ("HunterNormalEffect", 80, 0, 6, 0, 0, 0, 0, 160, 0) 
        TNT1 A 0 A_SpawnItemEx ("HunterNormalEffect", 80, 0, 6, 0, 0, 0, 10, 160, 0) 
        TNT1 A 0 A_SpawnItemEx ("HunterNormalEffect", 80, 0, 6, 0, 0, 0, 20, 160, 0) 
        TNT1 A 0 A_SpawnItemEx ("HunterNormalEffect", 80, 0, 6, 0, 0, 0, 30, 160, 0) 
        TNT1 A 0 A_SpawnItemEx ("HunterNormalEffect", 80, 0, 6, 0, 0, 0, 40, 160, 0)                                 
        TNT1 A 0 A_SpawnItemEx ("HunterNormalEffect", 80, 0, 6, 0, 0, 0, 50, 160, 0)         
        TNT1 A 0 A_SpawnItemEx ("HunterNormalEffect", 80, 0, 6, 0, 0, 0, 60, 160, 0) 
        TNT1 A 0 A_SpawnItemEx ("HunterNormalEffect", 80, 0, 6, 0, 0, 0, 70, 160, 0) 
        TNT1 A 0 A_SpawnItemEx ("HunterNormalEffect", 80, 0, 6, 0, 0, 0, 80, 160, 0) 
        TNT1 A 0 A_SpawnItemEx ("HunterNormalEffect", 80, 0, 6, 0, 0, 0, 90, 160, 0) 
        TNT1 A 0 A_SpawnItemEx ("HunterNormalEffect", 80, 0, 6, 0, 0, 0,100, 160, 0) 
        TNT1 A 0 A_SpawnItemEx ("HunterNormalEffect", 80, 0, 6, 0, 0, 0,110, 160, 0) 
        TNT1 A 0 A_SpawnItemEx ("HunterNormalEffect", 80, 0, 6, 0, 0, 0,120, 160, 0) 
        TNT1 A 0 A_SpawnItemEx ("HunterNormalEffect", 80, 0, 6, 0, 0, 0,130, 160, 0) 
        TNT1 A 0 A_SpawnItemEx ("HunterNormalEffect", 80, 0, 6, 0, 0, 0,140, 160, 0)                                 
        TNT1 A 0 A_SpawnItemEx ("HunterNormalEffect", 80, 0, 6, 0, 0, 0,150, 160, 0)         
        TNT1 A 0 A_SpawnItemEx ("HunterNormalEffect", 80, 0, 6, 0, 0, 0,160, 160, 0) 
        TNT1 A 0 A_SpawnItemEx ("HunterNormalEffect", 80, 0, 6, 0, 0, 0,170, 160, 0) 
        TNT1 A 0 A_SpawnItemEx ("HunterNormalEffect", 80, 0, 6, 0, 0, 0,180, 160, 0) 
        TNT1 A 0 A_SpawnItemEx ("HunterNormalEffect", 80, 0, 6, 0, 0, 0,190, 160, 0)                                         
        TNT1 A 0 A_SpawnItemEx ("HunterNormalEffect", 80, 0, 6, 0, 0, 0,200, 160, 0)           
        TNT1 A 0 A_SpawnItemEx ("HunterNormalEffect", 80, 0, 6, 0, 0, 0,210, 160, 0)                     
        TNT1 A 0 A_SpawnItemEx ("HunterNormalEffect", 80, 0, 6, 0, 0, 0,220, 160, 0)                     
        TNT1 A 0 A_SpawnItemEx ("HunterNormalEffect", 80, 0, 6, 0, 0, 0,230, 160, 0)
        TNT1 A 0 A_SpawnItemEx ("HunterNormalEffect", 80, 0, 6, 0, 0, 0,240, 160, 0)
        TNT1 A 0 A_SpawnItemEx ("HunterNormalEffect", 80, 0, 6, 0, 0, 0,250, 160, 0)                              
        TNT1 A 0 A_SpawnItemEx ("HunterNormalEffect", 80, 0, 6, 0, 0, 0,260, 160, 0)
        TNT1 A 0 A_SpawnItemEx ("HunterNormalEffect", 80, 0, 6, 0, 0, 0,270, 160, 0)
        TNT1 A 0 A_SpawnItemEx ("HunterNormalEffect", 80, 0, 6, 0, 0, 0,280, 160, 0)
        TNT1 A 0 A_SpawnItemEx ("HunterNormalEffect", 80, 0, 6, 0, 0, 0,290, 160, 0)
        TNT1 A 0 A_SpawnItemEx ("HunterNormalEffect", 80, 0, 6, 0, 0, 0,310, 160, 0)
        TNT1 A 0 A_SpawnItemEx ("HunterNormalEffect", 80, 0, 6, 0, 0, 0,320, 160, 0)
        TNT1 A 0 A_SpawnItemEx ("HunterNormalEffect", 80, 0, 6, 0, 0, 0,330, 160, 0)
        TNT1 A 0 A_SpawnItemEx ("HunterNormalEffect", 80, 0, 6, 0, 0, 0,340, 160, 0)               
        TNT1 A 0 A_SpawnItemEx ("HunterNormalEffect", 80, 0, 6, 0, 0, 0,350, 160, 0)               
        TNT1 A 4 A_SpawnItemEx ("HunterNormalEffect", 80, 0, 6, 0, 0, 0,360, 160, 0)		
		TNT1 A 1 A_Explode(60,152,0)
		TNT1 BCDE 1
		Stop
	}
}

actor HunterMagic : Inventory
{
	inventory.amount 1
	inventory.maxamount 5
}

ACTOR ArrowSingle : Ammo 9902
{ 
   Inventory.Amount 1
   Inventory.MaxAmount 35
   Ammo.BackpackAmount 1
   Ammo.BackpackMaxAmount 35
   Inventory.PickupMessage "You picked an Arrow" 
   Inventory.Icon ARRWA3A7 
   +INVENTORY.IGNORESKILL
   Scale .5
   Radius 2
   Height 2
   States 
   { 
   Spawn: 
      ARRW A 1000
      Stop
   } 
} 

ACTOR Arrowdropped : CustomInventory
{ 
   Inventory.PickupMessage "You picked up an Arrow" 
   Inventory.PickupSound "misc/a_pkup" 
   Scale .5
   Radius 8
   Height 2 
   States 
   { 
   Spawn: 
		ARRW A 800
		Stop
	Pickup:
		TNT1 A 0 A_JumpIfInventory("Bow", 1, 2)
		TNT1 A 0 A_JumpIfInventory("SuperRegularBow", 1, 1)
		Fail
		TNT1 A 0 A_GiveInventory("ArrowSingle", 1)
		Stop
   } 
} 

actor BurstCooldown : PowerDamage
{
	damagefactor "nothing", 1.0
	powerup.duration 50
}

// Magic bow upgrades below:
Actor HunterBowUpgrade : CustomInventory
{
	Inventory.amount 1
	Inventory.maxamount 1
	Inventory.icon "H_UPGR"
	+INVBAR
	+INVENTORY.UNDROPPABLE
	States
	{
	Spawn:
		TNT1 A 1
		Stop
	Use:	
		TNT1 A 0 A_JumpIfInventory("IsReady_",1,1)
		goto failed
		TNT1 A 1 ACS_ExecuteAlways(718, 0)
		TNT1 A 0 A_JumpIf(1 == ACS_ExecuteWithResult(903, 0), "Other")
		TNT1 A 0 A_JumpIf(2 == ACS_ExecuteWithResult(903, 0), "Stopping")
		TNT1 A 0 A_Jump(128, 3)
		TNT1 AA 0 A_PlaySoundEx("XHunterSpecial1", 5)
		Stop
		TNT1 AA 0 A_PlaySoundEx("XHunterSpecial2", 5)
		Stop
		Other:
		TNT1 A 0 A_Jump(172, 3)
		TNT1 AA 0 A_PlaySoundEx("OHunterSpecial1", 5)
		Stop
		TNT1 A 0 A_Jump(172, 3)
		TNT1 AA 0 A_PlaySoundEx("OHunterSpecial2", 5)
		Stop		
		TNT1 AA 0 A_PlaySoundEx("OHunterSpecial3", 5)
		Stop	
		Stopping:
			TNT1 A 1
		Stop
		failed:
			TNT1 A 1
			fail
	}
}

Actor SuperLightningBow : Weapon
{
	Radius 30
	Height 10
    Scale 0.20 
	Obituary "%o was electrocuted by %k's super lightning arrows."
    Inventory.PickupMessage "You picked up the bow." 
    AttackSound "weapons/LightningArrow"
    Weapon.AmmoType1 "ArrowSingle" 
    Weapon.AmmoGive1 0
    Weapon.AmmoUse1 1 
	Weapon.SlotNumber 4
	Weapon.SelectionOrder 5
	Decal "LightningDecal"
    +NOALERT 
	+DONTBOB
	+AMMO_OPTIONAL
	+INVENTORY.UNDROPPABLE
	+WEAPON.NOAUTOAIM
	Inventory.Icon "LBOW"
    States 
    { 
    Spawn: 
       BOWP A 400
       Stop 
    Ready: 
	   TNT1 A 0 A_PlaySoundEx("weapons/bowlswitch", "Weapon")	
	   LBOW H 1 A_WeaponReady 
       Goto Ready+1
    Deselect:
       LBOW H 1 A_Lower
	   Loop
    Select: 
	   TNT1 A 0 ACS_ExecuteAlways(700, 0, WM_HUN_LIGX)
       LBOW H 1 A_Raise
       Goto Select+1
    Fire:
	   TNT1 A 0 A_JumpIfNoAmmo("NoArrows")
	   LBOW H 3 ACS_ExecuteAlways(999, 0)
       LBOW IJKL 3
	   LBOW L 2 A_PlaySoundEx ("weapons/bowdraw", "SoundSlot7")
	   Goto Hold
	Hold:
       LBOW M 1
       TNT1 A 0 A_Refire
	   TNT1 A 0 A_StopSoundEx("SoundSlot7")
	   TNT1 A 0 A_RailAttack(5, 6, 0, "none", "yellow", 0, 0, "HunterSuperRailPuff") 
	   TNT1 A 0 A_RailAttack(10, 7, 0, "none", "yellow", 0, 0, "HunterSuperRailPuff") 
	   TNT1 A 0 A_RailAttack(30, 8, 0, "none", "yellow", 0, 0, "HunterSuperRailPuff") 
	   TNT1 A 0 A_RailAttack(10, 9, 0, "none", "yellow", 0, 0, "HunterSuperRailPuff") 
	   TNT1 A 0 A_RailAttack(5, 10, 0, "none", "yellow", 0, 0, "HunterSuperRailPuff")  
	   TNT1 A 0 A_FireCustomMissile("SuperBowLightningArrow", 0, 1, 8, 0)
	   TNT1 A 0 A_SpawnItem("HunterLightSpawner", 0, 0, 0)
       LBOW P 5 ACS_ExecuteAlways(998, 0)
	   LBOW G 6 
	   LBOW G 15
	   LBOW H 10
       Goto Ready+1
	NoArrows:
	   LBOW H 28 A_PlayWeaponSound("weapons/arrowno")
	   Goto Ready+1
	GoAway:
	   TNT1 A 0
	   Goto Ready+1
    } 
}

Actor HunterSuperRailPuff : BulletPuff
{	
	Obituary "%o was electrocuted by %k's super lightning arrows."
	DamageType "HunterSuperLightningRail"
	States
	{
	  Spawn:
		TNT1 A 1
		Goto Melee
	  Melee:
		TNT1 A 1
		Stop
	}
}

Actor SuperIceBow : Weapon
{
	Radius 30
	Height 10
    Scale 0.20 
    Inventory.PickupMessage "You picked up the bow." 
    AttackSound "weapons/LightningArrow"
    Weapon.AmmoType1 "ArrowSingle" 
    Weapon.AmmoGive1 0
    Weapon.AmmoUse1 1 
	Weapon.SlotNumber 3
	Weapon.SelectionOrder 5
    +NOALERT 
	+DONTBOB
	+AMMO_OPTIONAL
	+INVENTORY.UNDROPPABLE
	+WEAPON.NOAUTOAIM
	Inventory.Icon "IBOW"
    States 
    { 
    Spawn: 
       BOWP A 400
       Stop 
    Ready: 
	   TNT1 A 0 A_PlaySoundEx("weapons/bowiswitch", "Weapon")
	   IBOW H 1 A_WeaponReady 
       Goto Ready+1
    Deselect:
       IBOW H 1 A_Lower
	   Loop
    Select: 
	   TNT1 A 0 ACS_ExecuteAlways(700, 0, WM_HUN_ICEX)
       IBOW H 1 A_Raise
       Goto Select+1
    Fire:
	   TNT1 A 0 A_JumpIfNoAmmo("NoArrows")
	   IBOW H 3 ACS_ExecuteAlways(999, 0)
       IBOW IJKL 3
	   IBOW L 2 A_PlaySoundEx ("weapons/bowdraw", "SoundSlot7")
	   Goto Hold
	Hold:
       IBOW M 1
       TNT1 A 0 A_Refire
	   TNT1 A 0 A_StopSoundEx("SoundSlot7")
	   TNT1 A 0 A_FireCustomMissile("SuperIceArrow", 0, 1, 8, 0)
	   TNT1 A 0 A_FireCustomMissile("SuperIceShell1", 0, 0, 8, 8)
	   TNT1 A 0 A_FireCustomMissile("SuperIceShell2", 0, 0, 8, 8)
       IBOW P 15 ACS_ExecuteAlways(998, 0)
	   IBOW G 18
	   IBOW H 18
       Goto Ready+1
	NoArrows:
	   IBOW H 28 A_PlayWeaponSound("weapons/arrowno")
	   Goto Ready+1
	GoAway:
	   TNT1 A 0
	   Goto Ready+1
    } 
}

Actor SuperFireBow : Weapon
{
	Radius 30
	Height 10
    Scale 0.20 
    Inventory.PickupMessage "You picked upthe bow." 
    AttackSound "weapons/LightningArrow"
	Obituary "%o was made crispy by %k's super fire arrows."
    Weapon.AmmoType1 "ArrowSingle" 
    Weapon.AmmoGive1 0
    Weapon.AmmoUse1 1 
	Weapon.SlotNumber 2
	Weapon.SelectionOrder 5
    +NOALERT 
	+DONTBOB
	+AMMO_OPTIONAL
	+INVENTORY.UNDROPPABLE
	+WEAPON.NOAUTOAIM
	Inventory.Icon "FBOW"
    States 
    { 
    Spawn: 
       BOWP A 400
       Stop 
    Ready: 
	   BOWA A 0 A_PlaySoundEx("weapons/bowfswitch", "Weapon")
	   FBOW H 1 A_WeaponReady 
       Goto Ready+1
    Deselect:
       FBOW H 1 A_Lower
	   Loop
    Select: 
	   TNT1 A 0 ACS_ExecuteAlways(700, 0, WM_HUN_FIREX)
       FBOW H 1 A_Raise
       Goto Select+1
    Fire:
	   TNT1 A 0 A_JumpIfNoAmmo("NoArrows")
	   FBOW H 3 ACS_ExecuteAlways(999, 0)
       FBOW IJKL 3
	   FBOW L 2 A_PlaySoundEx ("weapons/bowdraw", "SoundSlot7")
	   Goto Hold
	Hold:
       FBOW M 1
       TNT1 A 0 A_Refire
	   TNT1 A 0 A_StopSoundEx("SoundSlot7")
	   TNT1 A 0 A_FireCustomMissile("SuperFlameArrow", 0, 1, 8, 0)
	   TNT1 A 0 ACS_ExecuteAlways(998, 0)
       FBOW P 10
	   FBOW G 18 // 14
	   FBOW H 6
       Goto Ready+1
	NoArrows:
	   FBOW H 28 A_PlayWeaponSound("weapons/arrowno")
	   Goto Ready+1
	GoAway:
	   TNT1 A 0
	   Goto Ready+1
    } 
}

Actor SuperRegularBow : Weapon
{
	Radius 30
	Height 10
    Scale 0.20 
    Inventory.PickupMessage "You picked up the bow." 
    AttackSound "weapons/LightningArrow"
    Weapon.AmmoType1 "ArrowSingle" 
    Weapon.AmmoGive1 0
    Weapon.AmmoUse1 1 
    Weapon.AmmoType2 "ArrowSingle" 
    Weapon.AmmoGive2 0
    Weapon.AmmoUse2 1 
	Weapon.SlotNumber 1
	Weapon.SelectionOrder 5
    +NOALERT 
	+DONTBOB
	+AMMO_OPTIONAL
	+INVENTORY.UNDROPPABLE
	+WEAPON.NOAUTOAIM
	Inventory.Icon "NBOW"
    States 
    { 
    Spawn: 
       BOWP A 400
       Stop 
    Ready: 
	   TNT1 A 0 A_PlaySoundEx("weapons/bowup", "Weapon")
	   SBOW H 1 A_WeaponReady 
       Goto Ready+1
    Deselect:
       SBOW H 1 A_Lower
	   Loop
    Select: 
	   TNT1 A 0 ACS_ExecuteAlways(700, 0, WM_HUN_NORMX)
       SBOW H 1 A_Raise
       Goto Select+1
    Fire:
	   TNT1 A 0 A_JumpIfNoAmmo("NoArrows")
	   SBOW H 4
       SBOW IJKL 3
	   SBOW L 2 A_PlaySoundEx ("weapons/bowdraw", "SoundSlot7")
       SBOW M 2
	   TNT1 A 0 A_StopSoundEx("SoundSlot7")
	   TNT1 A 0 A_FireCustomMissile("SuperArrowFire", 0, 1, 8, 0)
	   TNT1 A 0 A_FireCustomMissile("SuperArrowFireNoDrop", -3, 0, 8, 0)
	   TNT1 A 0 A_FireCustomMissile("SuperArrowFireNoDrop", 3, 0, 8, 0)
       SBOW P 9
	   SBOW G 14
       Goto Ready+1
	AltFire:
	   TNT1 A 0 A_JumpIfNoAmmo("NoArrows")
	   SBOW H 4
       SBOW IJKL 3
	   SBOW L 2 A_PlaySoundEx ("weapons/bowdraw", "SoundSlot7")
	   SBOW M 2
	   TNT1 A 0 A_StopSoundEx("SoundSlot7")
	   TNT1 A 0 A_FireCustomMissile("SuperArrowFire", 0, 1, 0, 0)
	   TNT1 A 0 A_FireCustomMissile("SuperArrowFireUp", 0, 0, 0, 0)
	   TNT1 A 0 A_FireCustomMissile("SuperArrowFireDown", 0, 0, 0, 0)
       SBOW P 9
	   SBOW G 14
       Goto Ready+1
	NoArrows:
	   SBOW H 28 A_PlayWeaponSound("weapons/arrowno")
	   Goto Ready+1
	GoAway:
	   TNT1 A 0
	   Goto Ready+1
    } 
}

Actor SuperArrowFire
{ 
	Obituary "%o was shot down by %k's super arrows." 
	Radius 5 
	Height 5 
	Speed 70
	Scale .6
	Damage (random(25,28))
	PROJECTILE 
	+NOGRAVITY 
	+ROCKETTRAIL
	+NOEXTREMEDEATH
	DamageType "HunterSuperRegularArrow"
	Decal "BulletChip"
	SeeSound "weapons/bowfire"
	DeathSound "weapons/bowhit"
	States 
	{ 
	Spawn: 
		ARRW AAAAA 2
		Loop
	Death: 
		ARRW A 0 A_PlaySound("weapons/arrowhit")
		ARRW A 1 A_SpawnItemEx("Arrowdropped",0,0,0,0,0,0,0,32,0) 
		Stop 
	} 
}

Actor SuperArrowFireUp : SuperArrowFire
{
	States
	{
	Spawn: 
		ARRW A 0
		ARRW A 1 ThrustThingZ(0, 16, 0, 1)
		ARRW A 1
		Goto Spawn+2
	Death: 
		ARRW A 1 A_PlaySound("weapons/arrowhit")
		Stop 
	}
}

Actor SuperArrowFireDown : SuperArrowFireUp
{
	States
	{
	Spawn: 
		ARRW A 0
		ARRW A 1 ThrustThingZ(0, -16, 0, 1)
		ARRW A 1
		Goto Spawn+2
	}
}

Actor SuperArrowFireNoDrop : SuperArrowFire
{
	States
	{
	Death: 
		ARRW A 1 A_PlaySound("weapons/arrowhit")
		Stop 
	}
}

Actor SuperLightningEffects
{
	Radius 1
	Height 1
	Speed 1
	Damage (2)
	DamageType "HunterSuperLightningRail"
	Scale 0.1
	RenderStyle Add
	Alpha 1.0
	PROJECTILE
	+CLIENTSIDEONLY
	+NOTELEPORT
	-TELESTOMP
	States
	{
	Spawn:
		SPBL ABC 2 A_FadeOut(0.05)
		Loop
	Death:
		SPBL ABCABC 2 A_FadeOut(0.05)
		Stop
	}
}

Actor SuperFireBowMagmaBall
{
	Radius 4
	Height 8
	Speed 20
	Damage (random(3, 4))
	DamageType "HunterSuperFireArrow"
	Obituary "%o was burned alive by %k's super fire arrows."
	PROJECTILE
	-NOGRAVITY
	-TELESTOMP
	States
	{
	Spawn:
		MGMB AB 3 Bright
		MGMB B 0 A_SpawnItemEx("SuperFireBowMagmaBallSmall", 0, 0, 0, random(-8, 8), random(-8, 8), random(-3, 8))
		MGMB AB 3 Bright
		MGMB B 0 A_SpawnItemEx("SuperFireBowMagmaBallSmall", 0, 0, 0, random(-8, 8), random(-8, 8), random(-3, 8))
		MGMB AB 3 Bright
		MGMB B 0 A_SpawnItemEx("SuperFireBowMagmaBallSmall", 0, 0, 0, random(-8, 8), random(-8, 8), random(-3, 8))
		MGMB AB 3 Bright
		MGMB B 0 A_SpawnItemEx("SuperFireBowMagmaBallSmall", 0, 0, 0, random(-8, 8), random(-8, 8), random(-3, 8))
		MGMB AB 3 Bright
		MGMB B 0 A_SpawnItemEx("SuperFireBowMagmaBallSmall", 0, 0, 0, random(-8, 8), random(-8, 8), random(-3, 8))
		MGMB AB 3 Bright
		MGMB B 0 A_SpawnItemEx("SuperFireBowMagmaBallSmall", 0, 0, 0, random(-8, 8), random(-8, 8), random(-3, 8))
		MGMB AB 3 Bright
		MGMB B 0 A_SpawnItemEx("SuperFireBowMagmaBallSmall", 0, 0, 0, random(-8, 8), random(-8, 8), random(-3, 8))
		MGMB AB 3 Bright
		MGMB B 0 A_SpawnItemEx("SuperFireBowMagmaBallSmall", 0, 0, 0, random(-8, 8), random(-8, 8), random(-3, 8))
		MGMB AB 3 Bright
		MGMB B 0 A_SpawnItemEx("SuperFireBowMagmaBallSmall", 0, 0, 0, random(-8, 8), random(-8, 8), random(-3, 8))
		MGMB AB 3 Bright
		MGMB B 0 A_SpawnItemEx("SuperFireBowMagmaBallSmall", 0, 0, 0, random(-8, 8), random(-8, 8), random(-3, 8))
		MGMB AB 3 Bright
		MGMB B 0 A_SpawnItemEx("SuperFireBowMagmaBallSmall", 0, 0, 0, random(-8, 8), random(-8, 8), random(-3, 8))
		MGMB AB 3 Bright
		MGMB B 0 A_SpawnItemEx("SuperFireBowMagmaBallSmall", 0, 0, 0, random(-8, 8), random(-8, 8), random(-3, 8))
		MGMB AB 3 Bright
		MGMB B 0 A_SpawnItemEx("SuperFireBowMagmaBallSmall", 0, 0, 0, random(-8, 8), random(-8, 8), random(-3, 8))
		MGMB AB 3 Bright
		MGMB B 0 A_SpawnItemEx("SuperFireBowMagmaBallSmall", 0, 0, 0, random(-8, 8), random(-8, 8), random(-3, 8))
		MGMB AB 3 Bright
		MGMB B 0 A_SpawnItemEx("SuperFireBowMagmaBallSmall", 0, 0, 0, random(-8, 8), random(-8, 8), random(-3, 8))
		MGMB AB 3 Bright
		MGMB B 0 A_SpawnItemEx("SuperFireBowMagmaBallSmall", 0, 0, 0, random(-8, 8), random(-8, 8), random(-3, 8))
		MGMB AB 3 Bright
		MGMB B 0 A_SpawnItemEx("SuperFireBowMagmaBallSmall", 0, 0, 0, random(-8, 8), random(-8, 8), random(-3, 8))
		MGMB AB 3 Bright
		MGMB B 0 A_SpawnItemEx("SuperFireBowMagmaBallSmall", 0, 0, 0, random(-8, 8), random(-8, 8), random(-3, 8))
		MGMB AB 3 Bright
		MGMB B 0 A_SpawnItemEx("SuperFireBowMagmaBallSmall", 0, 0, 0, random(-8, 8), random(-8, 8), random(-3, 8))
		MGMB AB 3 Bright
		MGMB B 0 A_SpawnItemEx("SuperFireBowMagmaBallSmall", 0, 0, 0, random(-8, 8), random(-8, 8), random(-3, 8))
		MGMB AB 3 Bright
		MGMB B 0 A_SpawnItemEx("SuperFireBowMagmaBallSmall", 0, 0, 0, random(-8, 8), random(-8, 8), random(-3, 8))
		MGMB AB 3 Bright
		MGMB B 0 A_SpawnItemEx("SuperFireBowMagmaBallSmall", 0, 0, 0, random(-8, 8), random(-8, 8), random(-3, 8))
		MGMB AB 3 Bright
		MGMB B 0 A_SpawnItemEx("SuperFireBowMagmaBallSmall", 0, 0, 0, random(-8, 8), random(-8, 8), random(-3, 8))
		MGMB AB 3 Bright
		MGMB B 0 A_SpawnItemEx("SuperFireBowMagmaBallSmall", 0, 0, 0, random(-8, 8), random(-8, 8), random(-3, 8))
		MGMB AB 3 Bright
		MGMB B 0 A_SpawnItemEx("SuperFireBowMagmaBallSmall", 0, 0, 0, random(-8, 8), random(-8, 8), random(-3, 8))
		Goto Death
	Death:
		MGMB C 0 A_PlaySound("BarbSwordDeath")
		MGMB CDEF 3
		Stop
	}
}

Actor SuperFireBowMagmaBallSmall
{
	Radius 2
	Height 4
	Speed 15
	Damage (1)
	DamageType "HunterSuperFireArrow"
	Obituary "%o was burned alive by %k's super fire arrows."
	PROJECTILE
	-NOGRAVITY
	-TELESTOMP
	States
	{
	Spawn:
		MGMS ABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABAB 3 Bright
		Goto Death
	Death:
		FX10 DEFG 3
		Stop
	}
}

Actor FireMagicMagmaBall : SuperFireBowMagmaBallSmall
{
	Damage (5)
	+NOGRAVITY
}

Actor SuperFlameArrowTrail
{
	Scale 1.3
	Alpha 0.7
	Renderstyle Add
	-SOLID
	+NOGRAVITY
	+CLIENTSIDEONLY
	States
	{
	Spawn:
		WBAL CDE 4 Bright
		Stop
	}
}

Actor SuperFlameArrow
{  
	Radius 3 
	Height 3 
	Speed 65
	Decal "Scorch"
	Scale .5
	Damage (random(7,9))
	Gravity 0.6
	DamageType "HunterSuperFireArrow"
	Obituary "%o was burned alive by %k's super fire arrows."
	Renderstyle Translucent
	Alpha 1.0
	SeeSound "weapons/flamearrow"
	DeathSound "weapons/arrowexplode"
	+DONTBLAST
	PROJECTILE 
	+NOGRAVITY 
	+NOEXTREMEDEATH
	+SKYEXPLODE
	+MTHRUSPECIES
	States 
	{ 
	Spawn: 
		FARW A 2 bright A_SpawnItemEx("SuperFlameArrowTrail",0,0,0,0,0,0,0,128) 
		FARW A 0 A_Explode(15,80,0)
		Loop
	Death: 
	    TNT1 A 0 A_Explode(30,100,1)
		FARW A 0 A_SpawnItemEx("SuperFireBowMagmaBall", 0, 0, 0, 0, random(1, 8), random(-1, 8))
		FARW A 0 A_SpawnItemEx("SuperFireBowMagmaBall", 0, 0, 0, random(1, 8), random(1, 8), random(-1, 5))
		FARW A 0 A_SpawnItemEx("SuperFireBowMagmaBall", 0, 0, 0, random(1, 8), 0, random(-1, 8))
		FARW A 0 A_SpawnItemEx("SuperFireBowMagmaBall", 0, 0, 0, random(1, 8), random(-8, 1), random(-1, 5))
		FARW A 0 A_SpawnItemEx("SuperFireBowMagmaBall", 0, 0, 0, 0, random(-8, 1), random(-1, 8))
		FARW A 0 A_SpawnItemEx("SuperFireBowMagmaBall", 0, 0, 0, random(-8, 1), random(-8, 1), random(-1, 5))
		FARW A 0 A_SpawnItemEx("SuperFireBowMagmaBall", 0, 0, 0, random(-8, 1), 0, random(-1, 8))
		FARW A 0 A_SpawnItemEx("SuperFireBowMagmaBall", 0, 0, 0, random(-8, 1), random(1, 8), random(-1, 5))
		FARW A 0 A_SpawnItemEx("SuperFireBowMagmaBall", 0, 0, 0, random(-8, 1), 0, random(-1, 8))
		ARRW A 0 A_SpawnItemEx("ArrowDropped", 0, 0, 0, 0, 0, 0, 0, 32, 0) 
		HELX ABCDEFGHIJ 2 bright A_FadeOut(0.05)
		Stop 
	} 
} 

// Self note: Epic effect when you call the ice shells with CMF_TRACKOWNER in the loop state of the actor below.

Actor SuperIceArrow
{ 
	Obituary "%o was frozen by %k's super ice arrows." 
	Radius 6 
	Height 12 
	Speed 48
	Decal IceHit
	Scale 1.1
	Damage (16)
	+DONTBLAST
	PROJECTILE 
	Damagetype "HunterSuperIceArrow"
	Renderstyle add
	Alpha 0.8
	SeeSound "weapons/icearrow"
	DeathSound "weapons/arrowshatter"
	States 
	{ 
	Spawn:
		SHRD ABC 1 Bright A_SpawnItemEx("SuperIceArrowTrail", -4, 0, 0, random(-5, 5), random(-5, 5), random(-5, 5), 0, 128) 
	Loop
	Death: 
		TNT1 A 0 A_Stop
		TNT1 A 0 A_SpawnItemEx("ArrowDropped",0,0,0,0,0,0,0,32,0)
		TNT1 AA 0 A_PlaySoundEx("Ice/Begin", 5)
		SHEX BC 2 bright A_FadeOut(0.05)
		TNT1 AA 0 A_PlaySoundEx("Ice/Loop", 6)
		TNT1 AAAAAAA 0 A_SpawnItemEx("IceFallSpawner2", random(-192,192), random(-192,192), 9999, 0, 0, 0, 0, SXF_NOCHECKPOSITION)
		SHEX DE 2 bright A_FadeOut(0.05)
		TNT1 AAAAAAA 0 A_SpawnItemEx("IceFallSpawner2", random(-192,192), random(-192,192), 9999, 0, 0, 0, 0, SXF_NOCHECKPOSITION)
		SHEX FG 2 bright A_FadeOut(0.05)
		TNT1 AAAAAAA 0 A_SpawnItemEx("IceFallSpawner2", random(-192,192), random(-192,192), 9999, 0, 0, 0, 0, SXF_NOCHECKPOSITION)
		SHEX HI 2 bright A_FadeOut(0.05)
		TNT1 AAAAAAA 0 A_SpawnItemEx("IceFallSpawner2", random(-192,192), random(-192,192), 9999, 0, 0, 0, 0, SXF_NOCHECKPOSITION)
		SHEX JK 2 bright A_FadeOut(0.05)
		Stop 
	} 
}

Actor SuperIceShell1
{
	Height 6
	Radius 4
	PROJECTILE
	Damage (16)
	Speed 48
	Scale 1.15
	+DONTREFLECT
	DamageType "HunterSuperIceArrow"
	Obituary "%o was frozen by %k's super ice arrows."
	RenderStyle Add
	Alpha 0.8
	
	States
	{
		Spawn:
			CTFX A 1 A_BishopMissileWeave
			TNT1 AA 0 A_BishopMissileWeave
			TNT1 A 0 A_SpawnItemEx("IceEffect")
		Loop
		Death:
			TNT1 A 0 A_PlaySound("Ice/Shatter")
			CTFX BCDEF 3 Bright
		Stop
	}
}

Actor SuperIceShell2 : SuperIceShell1
{
	States
	{
		Spawn:
			TNT1 AAAAAAAAAAAAAAA 0 A_BishopMissileWeave
		SpawnLoop:
			CTFX A 1 A_BishopMissileWeave
			TNT1 AA 0 A_BishopMissileWeave
			TNT1 A 0 A_SpawnItemEx("IceEffect")
		Loop
	}
}

			
actor IceEffect
{
	scale 1.0
	renderstyle add
	alpha 1.0
	radius 1//12
	height 1//6
	+NOGRAVITY
	+CLIENTSIDEONLY
	States
	{
	Spawn:
		CTFX A 1 A_FadeOut(0.1)
		Loop
		Death:
		TNT1 A 1
		Stop
	}
}

Actor IceFallTrail
{
	+CLIENTSIDEONLY
	-SOLID
	scale 0.5
	+NOGRAVITY
	+BRIGHT
	Height 0
	Radius 0
	renderstyle add
	alpha 0.8
	States
	{
	Spawn:
		BNT2 G 1 A_FadeOut(0.15)
		loop
	}
}

Actor IceFallTrail2 : IceFallTrail
{
	States
	{
	Spawn:
		BNT2 H 1 A_FadeOut(0.1)
		stop
	}
}

actor IceFallSpawner2
{
	+SKYEXPLODE
	PROJECTILE
	-SOLID
	+NOGRAVITY
	+CEILINGHUGGER
	radius 1
	height 8
	speed 0
	States
	{
	Spawn:
		Death:
		TNT1 AA 10 A_SpawnItemEx("IceFall2",1,0,-1,0,0,-28)
		stop
	}
}

Actor IceFall2
{
	Height 4
	Radius 5
	scale 0.5
	BounceFactor 0.3
	BounceCount 4
	PROJECTILE
	Damage (20)
	Speed 72
	reactiontime 30
	DamageType "HunterSuperIceArrow"
	Obituary "%o was frozen by %k's ice rain."
	States
	{
	Spawn:
		BNT2 G 1 bright A_SpawnItemEx("IceFallTrail",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		BNT2 H 1 bright A_SpawnItemEx("IceFallTrail2",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		loop
		Death:
		BNT2 A 0 A_PlaySound("Ice/Shatter")
//		BNT2 AAAA 0 A_SpawnItemEx("IceBallShardsFB", 0, 0, 0, random(-5, 5), random(-5, 5), random(1,5))
		BNT2 A 0 A_Explode(16, 72, 0)
		BNT2 ABCDEF 3 bright
		stop
	}
}

ACTOR SuperIceArrowTrail
{
	Radius 3
	Height 6
	Speed 5
	DamageType "HunterSuperIceArrow"
	PROJECTILE
	Alpha 1.0
	Renderstyle add
	Scale 0.5
	States
	{
	Spawn:
		CRYT ABCD 3 Bright A_Explode(5, 32, 0)
		Stop
	}
}

Actor HunterUpgradePointSound
{
	Radius 1
	Height 1
	+NOINTERACTION
	States
	{
	Spawn:
		TNT1 A 1
		TNT1 A 1 A_PlaySound("hunterupgrade")
		TNT1 A 0
		Stop
	}
}

Actor HunterUpgradeMalePointSound
{
	Radius 1
	Height 1
	+NOINTERACTION
	States
	{
	Spawn:
		TNT1 A 1
		TNT1 A 1 A_PlaySound("XHunterSpecial")
		TNT1 A 0
		Stop
	}
}

Actor HunterUpgradeFemalePointSound
{
	Radius 1
	Height 1
	+NOINTERACTION
	States
	{
	Spawn:
		TNT1 A 1
		TNT1 A 1 A_PlaySound("FHunterSpecial")
		TNT1 A 0
		Stop
	}
}

Actor SuperBowLightningArrow : LightningArrow
{
	States
	{
	Death:
		TNT1 A 0 A_JumpIfInventory("Clip",1,"goaway")
		TNT1 A 0 A_GiveInventory("Clip",1)
		TNT1 A 0 a_jumpif(z-floorz <= 2, "spawnLightning")
		TNT1 A 1
		TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("SuperLightningEffects", 0, 0, 0, random(-10, 10), random(-10, 10), random(-10, 10))
//		TNT1 A 0 ACS_ExecuteAlways(727, 0, x, y, z)
		TNT1 A 1 A_SpawnItemEx("ArrowSingle",0,0,0,0,0,0,0,32,0) 
		Stop
	GoAway:
		TNT1 A 0
		stop
	spawnLightning:
		TNT1 A 0
		TNT1 A 0 a_spawnitemex("slightningeffect", 0, -4,0,0,0,0,0,0,0) 
		TNT1 A 1 A_SpawnItemEx("ArrowSingle",0,0,0,0,0,0,0,32,0) 
		stop
	}
}

Actor slightningeffect
{
	Radius 1
	Height 1
	Speed 0
	Damage (0)
	Scale 1.0
	RenderStyle Add
	Alpha 0.5
	-TELESTOMP
	+NOBLOCKMAP
	-SOLID
	+FLOORHUGGER
	-ACTIVATEIMPACT
	mass 9999999
	States
	{
	Spawn:
	TNT1 A 0
	TNT1 A 0 a_jump(256, "lightning1", "lightning2", "lightning3", "lightning4", "lightning5", "lightning6")
	lightning1:
		HLIG A 1 bright A_Fadein(0.1)
		HLIG A 1 bright A_Fadein(0.1)
		HLIG A 1 bright A_Fadein(0.1)
		HLIG A 1 bright A_Fadein(0.1)
		HLIG A 1 bright A_Fadein(0.1)
	light1loop:
		HLIG A 1 bright A_FadeOut(0.05)
		Loop
	lightning2:
		HLIG B 1 bright A_Fadein(0.1)
		HLIG B 1 bright A_Fadein(0.1)
		HLIG B 1 bright A_Fadein(0.1)
		HLIG B 1 bright A_Fadein(0.1)
		HLIG B 1 bright A_Fadein(0.1)
	light2loop:
		HLIG B 1 bright A_FadeOut(0.05)
		Loop
	lightning3:
		HLIG C 1 bright A_Fadein(0.1)
		HLIG C 1 bright A_Fadein(0.1)
		HLIG C 1 bright A_Fadein(0.1)
		HLIG C 1 bright A_Fadein(0.1)
		HLIG C 1 bright A_Fadein(0.1)
	light3loop:
		HLIG C 1 bright A_FadeOut(0.05)
		Loop
	lightning4:
		HLIG D 1 bright A_Fadein(0.1)
		HLIG D 1 bright A_Fadein(0.1)
		HLIG D 1 bright A_Fadein(0.1)
		HLIG D 1 bright A_Fadein(0.1)
		HLIG D 1 bright A_Fadein(0.1)
	light4loop:
		HLIG D 1 bright A_FadeOut(0.05)
		Loop
	lightning5:
		HLIG E 1 bright A_Fadein(0.1)
		HLIG E 1 bright A_Fadein(0.1)
		HLIG E 1 bright A_Fadein(0.1)
		HLIG E 1 bright A_Fadein(0.1)
		HLIG E 1 bright A_Fadein(0.1)
	light5loop:
		HLIG E 1 bright A_FadeOut(0.05)
		Loop
	lightning6:
		HLIG F 1 bright A_Fadein(0.1)
		HLIG F 1 bright A_Fadein(0.1)
		HLIG F 1 bright A_Fadein(0.1)
		HLIG F 1 bright A_Fadein(0.1)
		HLIG F 1 bright A_Fadein(0.1)
	light6loop:
		HLIG F 1 bright A_FadeOut(0.05)
		Loop
		
	}
}

actor IsReady_ : inventory { Inventory.MaxAmount 1 }