Actor Gauna : PlayerPawn
{
	Mass 1000
	Scale 0.8
	Health 150
	Gravity 0.0
	Player.SoundClass "Gauna"
	Player.DisplayName "Gauna"
	Player.ScoreIcon "GAUNST"
	Player.StartItem "GaunaWeapon", 1
	Player.StartItem "GaunaChargeAmmo", 15
	Player.StartItem "IconGaunaDark", 1
	Player.StartItem "IconItem", 1
	Player.StartItem "IsGhoul", 1
	Player.ColorRange 112, 127
	Player.Maxhealth 150
	Player.ViewHeight 50
	bloodcolor "DarkRed"
	Species "Ghoul"
	Mass 700
	PainChance 224
	Damagefactor "IlluNukeKABUUM", 0.6
	Damagefactor "PistolBullets", 0.7
	Damagefactor "CalebRevolver", 0.7
	Damagefactor "ChexWarriorPistol", 0.7
	Damagefactor "IlluPewpewRifle", 0.7
	Damagefactor "AntiAirBolt", 1.1
	Damagefactor "RevyRifleBullet", 0.7
	Damagefactor "KarStiglitz", 1.0
	Damagefactor "railgun", 0.7
	Damagefactor "CodenameBeam", 0.7
	damagefactor "CryoXBow", 0.7
    damagefactor "Ghosttrap", 0.3
	Damagefactor "plasma", 0.7
	Damagefactor "ice", 0.7
	Damagefactor "ice2", 0.7
	Damagefactor "AltIce2", 0.7
	Damagefactor "fire2", 0.7
	Damagefactor "RenegadeFire", 0.7
	Damagefactor "AltFire2", 0.7
	DamageFactor "Grenade", 0.7
	DamageFactor "CalebDynamite", 0.7
	DamageFactor "normal", 0.7
	DamageFactor "ChexWarrior", 0.7
	Damagefactor "minion", 0.0
	Damagefactor "Sentinel", 0.7
	Damagefactor "SamDeagle", 0.7
	Damagefactor "Mechpewpews", 0.7
	Damagefactor "BlueFire", 0.0
	Damagefactor "ZombieIce", 0.0
    Damagefactor "ZombiePoison", 0.0
	Damagefactor "ZombieSlaps", 0.0
	Damagefactor "Tenebra", 0.0
	Damagefactor "Judgement", 0.0
	Damagefactor "ThrottlePews", 0.7
	Player.ForwardMove 0.9
	Player.SideMove 0.9
	LimitedToTeam 1
	+NOSKIN
	+NOICEDEATH
	+QUICKTORETALIATE
	States
	{
	Spawn:
	    WRTH A 0 A_Changeflag("shootable",true)
		WRTH A 0 SetPlayerProperty(0,0,4)
	    WRTH A 0 SetPlayerProperty(0,1,3)
		TNT1 A 0 A_JumpIfInventory("GwenGoddessStack",100,"GwenGoddessDeath")
		WRTH A 0 A_JumpIfInventory("AriaInfluence",10,"Dancing")
		WRTH A 20
		TNT1 A 0 A_JumpIfInventory("GwenGoddessStack",100,"GwenGoddessDeath")
		WRTH A 0 A_JumpIfInventory("AriaInfluence",10,"Dancing")
		Goto Spawn
	See:
		WRTH A 0 A_JumpIfHealthLower(150,"INeedHealingSee")
		TNT1 A 0 A_JumpIfInventory("GwenGoddessStack",100,"GwenGoddessDeath")
		WRTH A 0 A_JumpIfInventory("AriaInfluence",10,"Dancing")
        WRTH A 10 
		TNT1 A 0 A_JumpIfInventory("GwenGoddessStack",100,"GwenGoddessDeath")
		WRTH A 0 A_JumpIfInventory("AriaInfluence",10,"Dancing")
		WRTH B 10
		TNT1 A 0 A_JumpIfInventory("GwenGoddessStack",100,"GwenGoddessDeath")
		WRTH A 0 A_JumpIfInventory("AriaInfluence",10,"Dancing")
		Goto See
	INeedHealingSee:
	TNT1 A 0 A_JumpIfInventory("GwenGoddessStack",100,"GwenGoddessDeath")
		WRTH A 0 A_JumpIfInventory("AriaInfluence",10,"Dancing")
        WRTH A 10 
		TNT1 A 0 A_JumpIfInventory("GwenGoddessStack",100,"GwenGoddessDeath")
		WRTH A 0 A_SpawnItemEx("GhoulINeedHealingTrail",random(-20,20),random(-20,20),0,0,0,10)
		WRTH A 0 A_SpawnItemEx("64GhoulINeedHealingTrail",random(-20,20),random(-20,20),0,0,0,10)
		WRTH A 0 A_JumpIfInventory("AriaInfluence",10,"Dancing")
		WRTH B 10
		TNT1 A 0 A_JumpIfInventory("GwenGoddessStack",100,"GwenGoddessDeath")
		WRTH B 0 A_SpawnItemEx("GhoulINeedHealingTrail",random(-20,20),random(-20,20),0,0,0,10)
		WRTH B 0 A_SpawnItemEx("64GhoulINeedHealingTrail",random(-20,20),random(-20,20),0,0,0,10)
		WRTH A 0 A_JumpIfInventory("AriaInfluence",10,"Dancing")
		Goto Spawn
	Dancing:
		WRTH A 0 A_TakeInventory("AriaInfluence",10)
		WRTH A 0 Setplayerproperty(0,1,4)
		WRTH AAAAAAAAAAAAAAAA 1
		WRTH A 0 ThrustThing(angle*random(0,224), 10, 0, 0)
		WRTH A 0 A_TakeInventory("AriaInfluence",10)
		WRTH AAAAAAAAAAAAAAAA 1
		WRTH A 0 ThrustThing(angle*random(0,224), 10, 0, 0)
		WRTH A 0 A_TakeInventory("AriaInfluence",10)
		WRTH AAAAAAAAAAAAAAAA 1
		WRTH A 0 ThrustThing(angle*random(0,224), 10, 0, 0)
		WRTH A 0 A_TakeInventory("AriaInfluence",10)
		WRTH AAAAAAAAAAAAAAAA 1
		WRTH A 0 ThrustThing(angle*random(0,224), 10, 0, 0)
		WRTH A 0 A_TakeInventory("AriaInfluence",10)
		WRTH AAAAAAAAAAAAAAAA 1
		WRTH A 0 ThrustThing(angle*random(0,224), 10, 0, 0)
		WRTH A 0 A_TakeInventory("AriaInfluence",10)
		WRTH AAAAAAAAAAAAAAAA 1
		WRTH A 0 ThrustThing(angle*random(0,224), 10, 0, 0)
		WRTH A 1 Setplayerproperty(0,0,4)
		WRTH A 0 A_TakeInventory("AriaInfluence",10)
		Goto See
	Missile:
		WRTH C 0 A_JumpIfInventory("AriaInfluence",10,"Dancing")
		TNT1 A 0 A_JumpIfInventory("GwenGoddessStack",100,"GwenGoddessDeath")
        WRTH CD 6
		TNT1 A 0 A_JumpIfInventory("GwenGoddessStack",100,"GwenGoddessDeath")
		WRTH C 0 A_JumpIfInventory("AriaInfluence",10,"Dancing")
	Goto Spawn
	Melee:
		WRTH D 1
	Goto Missile
	Pain:
	WRTH E 2 A_Pain
	TNT1 A 0 A_JumpIfInventory("GwenGoddessStack",100,"GwenGoddessDeath")
	WRTH E 2 A_GiveInventory("GaunaChargeAmmo",1)
	WRTH E 0 A_GiveInventory("GaunaPowerAmmo",3)
    WRTH E 0 A_SetPitch(pitch - 1.6)
	WRTH E 0 A_SetAngle(angle + (random(-30,30)/10))
	Goto See
	Death.LoWangVampiric:
	TNT1 A 0 A_GiveToTarget("SWLoWangBloody",1)
	TNT1 A 0 A_JumpIfInventory("BloodCurseItem",1,"Death",AAPTR_TARGET)
	TNT1 A 0 A_GiveToTarget("Health",20)
	Goto Death
	Pain.Vivi:
	WRTH E 2 A_Pain
	TNT1 A 0 A_JumpIfInventory("GwenGoddessStack",100,"GwenGoddessDeath")
	WRTH E 2 A_GiveInventory("GaunaChargeAmmo",1)
	WRTH E 0 A_GiveInventory("GaunaPowerAmmo",3)
	WRTH E 0 A_SetPitch(pitch - 3.0)
	WRTH E 0 A_SetAngle(angle + (random(-50,50)/10))
	Goto See
	Death.DoomChainSaw:
	TNT1 A 0 A_GiveToTarget("cell",50)
	TNT1 A 0 A_GiveToTarget("RocketAmmo",5)
	TNT1 A 0 A_GiveToTarget("clip1",50)
	TNT1 A 0 A_GiveToTarget("Shell",10)
	Goto Death
	Death.D64Pistol:
	TNT1 A 0 A_GiveToTarget("D64UnmakerUpgrades",1)
	TNT1 A 0 A_GiveToTarget("Cell",75)
	TNT1 A 0 A_GiveToTarget("D64KilledCount",1)
	Goto DeathAnimAlt
	Death.Plasma:
	TNT1 A 0 A_GiveToTarget("CyborgFuel",25)
	Goto DeathAnim
	Death.Telefrag:
	Goto Death.UnmakerLaser
	Pain.ViviMine:
	WRTH E 0 ThrustThingZ(0,70,0,0)
	Goto Pain
	Death.SkarletPistolDrain:
	TNT1 A 0 A_JumpIfInventory("BloodCurseItem",1,"Death",AAPTR_TARGET)
	TNT1 A 0 A_GiveToTarget("Health",50)
	Goto Death
	Death.SkarletVampiric:
	TNT1 A 0 A_JumpIfInventory("BloodCurseItem",1,"Death",AAPTR_TARGET)
	TNT1 A 0 A_GiveToTarget("Health",60)
	Goto Death
	Pain.GwenPlasma2:
		TNT1 A 0 A_JumpIfInventory("GwenGoddessStack",100,"GwenGoddessDeath")
		WRTH E 0 Setplayerproperty(0,0,4)
		WRTH E 0 A_Pain
		WRTH E 20 Setplayerproperty(0,1,0)
		WRTH E 2 Setplayerproperty(0,0,0)
		Goto See
	GwenGoddessDeath:
		TNT1 A 0 A_TakeInventory("GaunaChargeAmmo",100)
		TNT1 A 0 A_Changeflag("shootable",true)
		TNT1 A 0 SetPlayerProperty(0,1,4)
		TNT1 A 0 A_SetTranslucent (1.0, 0)
		TNT1 A 0 A_SpawnItemEx("GwenTimeImplosionRing")
		TNT1 A 0 A_Playsound("Gwen/DivineExplosionSound",6,1,0,ATTN_NONE)
		WRTH E 24 SetPlayerProperty(0,1,4)
		TNT1 A 0 A_SpawnItemEx("GwenTimeExplosionRingDamageFX")
		TNT1 A 0 A_SpawnItemEx("GwenTimeExplosionRingDamage")
		TNT1 A 0 A_SpawnItemEx("GwenTimeExplosionRing")
		TNT1 A 0 A_SpawnItemEx("GwenTimeExplosionRingX")
		TNT1 A 0 A_SpawnItemEx("GwenThunderFX")
		TNT1 A 0 A_SpawnItemEx("GwenGoddessStateEXP")
		TNT1 AAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("GwenThunderFX_Spark2", 0, 0, 8, 0.01 * Random(-300, 300), 0.01 * Random(-300, 300), 0.01 * Random(0, 600), 0, 128, 0)
		TNT1 AAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("GwenThunderFX_Spark2", 0, 0, 8, 0.01 * Random(-300, 300), 0.01 * Random(-300, 300), 0.01 * Random(0, 600), 0, 128, 0)
		TNT1 AAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("GwenThunderFX_Spark2", 0, 0, 8, 0.01 * Random(-300, 300), 0.01 * Random(-300, 300), 0.01 * Random(0, 600), 0, 128, 0)
		TNT1 AAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("GwenThunderFX_Spark2", 0, 0, 8, 0.01 * Random(-300, 300), 0.01 * Random(-300, 300), 0.01 * Random(0, 600), 0, 128, 0)
		TNT1 AAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("GwenThunderFX_Spark2", 0, 0, 8, 0.01 * Random(-300, 300), 0.01 * Random(-300, 300), 0.01 * Random(0, 600), 0, 128, 0)
		TNT1 AAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("GwenThunderFX_Spark2", 0, 0, 8, 0.01 * Random(-300, 300), 0.01 * Random(-300, 300), 0.01 * Random(0, 600), 0, 128, 0)
		TNT1 AAAAAAAAAAAA 0 A_SpawnItemEx("KNThunderFX_Smoke", 0, 0, 0, 0.01 * Random(-125, 125), 0.01 * Random(-125, 125), 0.01 * Random(25, 245), 0, 128, 0)
		TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("GwenThunderFX_Spark", 0, 0, 8, 0.01 * Random(-300, 300), 0.01 * Random(-300, 300), 0.01 * Random(0, 600), 0, 128, 0)
		TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("GwenThunderFX_Spark", 0, 0, 8, 0.01 * Random(-300, 300), 0.01 * Random(-300, 300), 0.01 * Random(0, 600), 0, 128, 0)
		TNT1 A 0 DamageThing(100000)
		Goto Death
	Death:
	DeathAnim:
	TNT1 A 0 A_GiveToTarget("KillBeep",1)
	TNT1 A 0 A_SpawnItemEx("AdditionalGhoulDeathVFX")
	WRTH F 0 A_GiveToTarget("KilledMe",1)
	WRTH F 0 A_GiveToTarget("KilledMohoph",1)
	WRTH F 0 A_Gravity
	WRTH F 0
    WRTH F 5 A_PlayerScream
	WRTH F 0 A_CustomMissile("ArchvileFirex3", 0, 0, random(0, 360))
	WRTH F 0 A_CustomMissile("ArchvileFirex3", 0, 0, random(0, 360))
    WRTH GH 5 
	WRTH H 0 A_CustomMissile("ArchvileFirex3", 0, 0, random(0, 360))
	WRTH H 0 A_CustomMissile("ArchvileFirex3", 0, 0, random(0, 360))
	WICK P 0 A_SpawnItemEX("GaunaTorso",0,0,48,0,0,0,0,16)
    WRTH I 5 A_NoBlocking
	WRTH A 0 A_CustomMissile("ArchvileFirex3", 0, 0, random(0, 360))
	WRTH A 0 A_CustomMissile("ArchvileFirex3", 0, 0, random(0, 360))
    WRTH JKLMN 5 
    WRTH X -1 A_SetFloorClip 
	Stop
	DeathAnimAlt:
	TNT1 A 0 A_GiveToTarget("KillIndicator",1)
	TNT1 A 0 A_SpawnItemEx("AdditionalGhoulDeathVFX")
	WRTH F 0 A_GiveToTarget("KilledMe",1)
	WRTH F 0 A_GiveToTarget("KilledMohoph",1)
	WRTH F 0 A_Gravity
	WRTH F 0
    WRTH F 5 A_PlayerScream
	WRTH F 0 A_CustomMissile("ArchvileFirex3", 0, 0, random(0, 360))
	WRTH F 0 A_CustomMissile("ArchvileFirex3", 0, 0, random(0, 360))
    WRTH GH 5 
	WRTH H 0 A_CustomMissile("ArchvileFirex3", 0, 0, random(0, 360))
	WRTH H 0 A_CustomMissile("ArchvileFirex3", 0, 0, random(0, 360))
	WICK P 0 A_SpawnItemEX("GaunaTorso",0,0,48,0,0,0,0,16)
    WRTH I 5 A_NoBlocking
	WRTH A 0 A_CustomMissile("ArchvileFirex3", 0, 0, random(0, 360))
	WRTH A 0 A_CustomMissile("ArchvileFirex3", 0, 0, random(0, 360))
    WRTH JKLMN 5 
    WRTH X -1 A_SetFloorClip 
	Stop
	Death.ChexWarrior:
	WRTH E 0 A_GiveToTarget("KillIndicator",1)
	WRTH E 0 A_TakeInventory("KilledCount",999)
	WRTH E 0 A_GiveToTarget("KilledMe",1)
	WRTH E 0 A_GiveToTarget("KilledMohoph",1)
	WRTH E 0 A_SpawnItemEx("ChexCereal",0,0,32,random(2,3),momy,random(8,12),random(-180,180))
	WRTH E 0 A_GiveToTarget("ChexArmorBonus",25)
	WRTH E 0 A_GiveToTarget("ChexBoop",1)
	WRTH E 0 A_Stop
	WRTH E 0 A_NoGravity
	WRTH E 0 A_ChangeFlag("DONTGIB",1)
	WRTH E 0 A_PlaySoundEx("Teleport/Chex",7)
	WRTH E 0 A_PlaySoundEx("Gauna/Pain", "Body")
	WRTH E 3 A_SpawnItem("BigZorch")
	WRTH E 3 A_SetTranslucent(0.9,0)
	WRTH E 0 A_Scream
	WRTH E 3 A_SetTranslucent(0.8,0)
	WRTH E 0 A_NoBlocking
	WRTH E 3 A_SetTranslucent(0.7,0)
	WRTH E 3 A_SetTranslucent(0.6,0)
	WRTH E 3 A_SetTranslucent(0.5,0)
	WRTH E 3 A_SetTranslucent(0.4,0)
	WRTH E 3 A_SetTranslucent(0.3,0)
	WRTH E 3 A_SetTranslucent(0.2,0)
	WRTH E 3 A_SetTranslucent(0.1,0) 
	TNT1 A 1 A_SetTranslucent(1,0)
	TNT1 A -1
	Stop
	Death.CarolineDamage:
	NULL A 0 A_SpawnItemEx("CarolineHeart",0,0,32,random(2,3),momy,random(8,12),random(-180,180))
	Goto Death.UnmakerLaser
	Death.MapGibber:
	TNT1 A 0 A_PlaySound("car/hit",chan_auto)
	Death.MapGibber2:
	Death.UnmakerLaser:
	TNT1 A 0 A_GiveToTarget("KillBeep",1)
	TNT1 A 0 A_SpawnItemEx("AdditionalGhoulDeathVFX")
	TNT1 A 0 A_TakeInventory("KilledCount",999)
	TNT1 A 0 A_GiveToTarget("KilledMe",1)
	TNT1 A 0 A_GiveToTarget("KilledMohoph",1)
	TNT1 A 1
	TNT1 A 0 A_NoBlocking
	TNT1 A 0 A_Gravity
	TNT1 A 0 A_CustomMissile("ArchvileFirex3", 0,0,random(0,360), 2,0)
	TNT1 A 0 A_CustomMissile("ArchvileFirex3", 0,0,random(0,360), 2,0)
	TNT1 A 0 A_CustomMissile("ArchvileFirex3", 0,0,random(0,360), 2,0)
	TNT1 A 0 A_CustomMissile("ArchvileFirex3", 0,0,random(0,360), 2,0)
	TNT1 A 0 A_CustomMissile("ArchvileFirex3", 0,0,random(0,360), 2,0)
	NULL A 0 A_SpawnItemEx("GIBBER", 0, 0, 0, 0, 0, 0, 0, 160, 0)
	NULL A 1 A_SpawnItemEx("SoulGIBBER", 0, 0, 0, 0, 0, 0, 0, 160, 0)
	NULL A -1
	Stop
	Death.MarineShotgun:
	WRTH E 0 A_GiveToTarget("grenadeammo",1)
	WRTH E 0 A_GiveToTarget("shell",3)
	WRTH E 0 A_GiveToTarget("clip1",20)
	Goto DeathAnim
	Death.Marinemachinegun:
	WRTH E 0 A_GiveToTarget("grenadeammo",1)
	WRTH E 0 A_GiveToTarget("shell",3)
	WRTH E 0 A_GiveToTarget("clip1",20)
	Goto Deathanim
	Death.Marinepistol:
	WRTH E 0 A_GiveToTarget("grenadeammo",1)
	WRTH E 0 A_GiveToTarget("shell",3)
	WRTH E 0 A_GiveToTarget("clip1",20)
	Goto Deathanim
	Death.Grenade:
		WRTH E 0 A_GiveToTarget("KilledG",1)
		Goto DeathAnim
	Death.CrapPlasma:
		WRTH E 0 A_GiveToTarget("Unlock9",1)
		Goto DeathAnim
	Death.Ice2:
		WRTH A 0 A_GiveToTarget("KilledIce2",1)
		Goto DeathAnim
	Death.Fire2:
		WRTH A 0 A_GiveToTarget("KilledFire2",1)
		Goto DeathAnim
	Death.Railgun:
		WRTH A 0 A_GiveToTarget("KilledLightning",1)
		Goto DeathAnim
	Death.GhostTrap:
		WRTH A 0 A_GiveToTarget("KilledG",1)
		Goto DeathAnim
	Death.AltFire2:
		WRTH A 0 A_GiveToTarget("KilledAltFire2",1)
		Goto Death.Fire2
	Death.AltIce2:
		WRTH A 0 A_GiveToTarget("KilledAltIce2",1)
		Goto Death.Ice2
	Death.AltGrenade:
		WRTH A 0 A_GiveToTarget("KilledAltG",1)
		Goto Death.Grenade
	Death.Fire3:
		WRTH A 0 A_GiveToTarget("KilledFire3",1)
		Goto DeathAnim
	Death.Ice3:
		WRTH A 0 A_GiveToTarget("KilledIce3",1)
		Goto DeathAnim
	Death.Grenade2:
		WRTH A 0 A_GiveToTarget("KilledG2",1)
		Goto DeathAnim
	Pain.Drainer:
		WRTH A 0 A_GiveToTarget("Health",10)
		Goto Spawn
	Death.ChexWarriorPistol:
	Death.ChexWarriorChainsaw:
	Goto Death.ChexWarrior
	Death.RenegadeBullets:
	Death.RenegadeFire:
	Death.ArtilleryDamage:
		TNT1 A 0 A_GiveToTarget("RenegadeKillItem",1)
		Goto DeathAnimAlt
	Death.CalebDynamite:
		TNT1 A 0 A_GiveToTarget("KilledG",1)
	Death.CalebShotgun:
	Death.CalebRevolver:
		TNT1 A 0 A_GiveToTarget("Health",20)
		TNT1 A 0 A_SpawnItemEx("CalebHeart",0,0,32,random(2,3),momy,random(8,12),random(-180,180))
		TNT1 A 0 A_GiveToTarget("CalebHeartbeat",1)
		Goto DeathAnimAlt
	Pain.EngineerSaw:
	Pain.Ghosttrap:
	Pain.GBFire:
	Pain.Misty:
	Pain.GBSaw:
	Pain.GBString:
	Pain.GBNuke:
	Pain.Ice2:
	Pain.Ice:
	Pain.ElecStorm:
	Pain.AltFire2:
	Pain.AltIce2:
	Pain.Fire2:
	Pain.Doggo:
	Pain.LaraArrow:
	Pain.Wind2:
	Pain.Grenade:
	Pain.Grenade2:
	Pain.TemplarLightningRain:
	Pain.CarolineDamage:
	Pain.ChexWarrior:
	Pain.InariPlasma:
	Pain.Plasma:
	Pain.FlameProtect:
	Pain.DutchShotgun:
	Pain.KarenExplo:
	Pain.Sentinel:
	Pain.Divine:
	Pain.GwenPlasma3:
	Pain.MacheteSlicerino:
	Pain.AntiAirbolt:
	Pain.MechPewPews:
	Pain.RainbowNado:
		TNT1 A 0 ACS_NamedExecuteAlways("ChangeActivator",0)
		Goto Pain
	}
}

Actor GaunaTorso
{
  Mass 1000000
  Radius 1
  Height 1
  +IsMonster
  +Corpse
  +DONTBLAST
  
  States
  {
  Spawn:
    TNT1 A 0 // Without this, the sound below will never be played
    WRTH O 5 A_PlaySound("monster/tenpn1")
    WRTH O 5
    Wait
  Crash:
    WRTH P 1 A_SetFloorClip
    WRTH P 4 A_PlaySound("monster/tenpn2")
    WRTH P 5
    WRTH P -1
    Stop
  }
}

actor GaunaPowerFuel : Inventory
{
  Inventory.MaxAmount 6
}

actor GaunaSpreadShot : Inventory
{
  Inventory.MaxAmount 1
}

actor GaunaPowerAmmo : Ammo
{
  Inventory.MaxAmount 200
}

actor GaunaChargeAmmo : CustomInventory
{
  inventory.amount 15
  inventory.maxamount 15
  inventory.icon "GHOULAMM"
  +INVENTORY.IGNORESKILL
  +INVBAR
  states
  {
  Spawn:
    TNT1 A -1
    stop
  Use:
	TNT1 A 0 A_GiveInventory("CyborgDashcheck",1)
	Fail
  }
}


ACTOR GaunaWeapon : Weapon
{
	Weapon.Ammotype "GaunaPowerAmmo"
	Inventory.icon "TNT1A0"
	Obituary "%o didn't foresee %k's element of surprise!"
	States
	{
	Spawn:
		EYES A -1
		Stop
	Ready:
		EYES A 0 A_JumpIfInventory("CyborgDashCheck",1,"BoostActivate")
		EYES A 1 A_WeaponReady(WRF_ALLOWRELOAD)
		EYES A 0 A_Playsound("QUIET",Chan_Weapon)
		Loop
	Deselect:
		EYES A 1 A_Lower
		EYES A 0 A_Playsound("QUIET",Chan_Weapon)
		Loop
	Select:
		EYES A 1 A_Raise
		EYES A 0 A_Playsound("QUIET",Chan_Weapon)
		Loop
	Fire:
		TNT1 A 0
		EYES A 1 ACS_ExecuteAlways(477,0,2)
		EYES A 1 A_Zoomfactor(1.0)
		EYES A 1 A_ChangeFlag("SHOOTABLE", TRUE)
		TNT1 A 0 A_JumpIfInventory("GaunaPowerFuel",0,"GaunaChargingSeventh")
		TNT1 A 0 A_JumpIfInventory("GaunaPowerFuel",5,"GaunaChargingSixth")
		TNT1 A 0 A_JumpIfInventory("GaunaPowerFuel",4,"GaunaChargingFifth")
		TNT1 A 0 A_JumpIfInventory("GaunaPowerFuel",3,"GaunaChargingFourth")
		TNT1 A 0 A_JumpIfInventory("GaunaPowerFuel",2,"GaunaChargingThird")
		TNT1 A 0 A_JumpIfInventory("GaunaPowerFuel",1,"GaunaChargingSecond")
		Goto GaunaChargingFirst
	GaunaChargingFirst:
		TNT1 A 0 A_JumpIfInventory("GaunaPowerAmmo", 65, "whichPowerup")
		EYES A 0 A_Playsound("Weapons/SoulScepter/Loop",Chan_Weapon,1,1)
		EYES A 0 A_GiveInventory("GaunaPowerAmmo", 1)
		TNT1 A 0 A_ReFire
		Goto Ready
	GaunaChargingSeventh:
		TNT1 A 0 A_JumpIfInventory("GaunaPowerAmmo", 55, "whichPowerup")
		EYES A 0 A_Playsound("Weapons/SoulScepter/Loop",Chan_Weapon,1,1)
		EYES A 0 A_GiveInventory("GaunaPowerAmmo", 1)
		TNT1 A 0 A_ReFire
		Goto Ready
	GaunaChargingSixth:
		TNT1 A 0 A_JumpIfInventory("GaunaPowerAmmo", 140, "whichPowerup")
		EYES A 0 A_Playsound("Weapons/SoulScepter/Loop",Chan_Weapon,1,1)
		EYES A 0 A_GiveInventory("GaunaPowerAmmo", 1)
		TNT1 A 0 A_ReFire
		Goto Ready
	GaunaChargingFifth:
		TNT1 A 0 A_JumpIfInventory("GaunaPowerAmmo", 100, "whichPowerup")
		EYES A 0 A_Playsound("Weapons/SoulScepter/Loop",Chan_Weapon,1,1)
		EYES A 0 A_GiveInventory("GaunaPowerAmmo", 1)
		TNT1 A 0 A_ReFire
		Goto Ready
	GaunaChargingFourth:
		TNT1 A 0 A_JumpIfInventory("GaunaPowerAmmo", 80, "whichPowerup")
		EYES A 0 A_Playsound("Weapons/SoulScepter/Loop",Chan_Weapon,1,1)
		EYES A 0 A_GiveInventory("GaunaPowerAmmo", 1)
		TNT1 A 0 A_ReFire
		Goto Ready
	GaunaChargingThird:
		TNT1 A 0 A_JumpIfInventory("GaunaPowerAmmo", 30, "whichPowerup")
		EYES A 0 A_Playsound("Weapons/SoulScepter/Loop",Chan_Weapon,1,1)
		EYES A 0 A_GiveInventory("GaunaPowerAmmo", 1)
		TNT1 A 0 A_ReFire
		Goto Ready
	GaunaChargingSecond:
		TNT1 A 0 A_JumpIfInventory("GaunaPowerAmmo", 75, "whichPowerup")
		EYES A 0 A_Playsound("Weapons/SoulScepter/Loop",Chan_Weapon,1,1)
		EYES A 0 A_GiveInventory("GaunaPowerAmmo", 1)
		TNT1 A 0 A_ReFire
		Goto Ready
	whichPowerup:
		TNT1 A 0
		TNT1 A 0 A_TakeInventory("GaunaPowerAmmo",0)
		TNT1 A 0 A_PlaySound("Gauna/FireWeapon", CHAN_AUTO)
		TNT1 A 0 A_Playsound("Gauna/Incantation", CHAN_VOICE)
		TNT1 A 0 A_JumpIfInventory("GaunaPowerFuel",0,"SeventhPowerupFire")
		TNT1 A 0 A_JumpIfInventory("GaunaPowerFuel",5,"SixthPowerupFire")
		TNT1 A 0 A_JumpIfInventory("GaunaPowerFuel",4,"FifthPowerupFire")
		TNT1 A 0 A_JumpIfInventory("GaunaPowerFuel",3,"FourthPowerupFire")
		TNT1 A 0 A_JumpIfInventory("GaunaPowerFuel",2,"ThirdPowerupFire")
		TNT1 A 0 A_JumpIfInventory("GaunaPowerFuel",1,"SecondPowerupFire")
		Goto FirstPowerupFire
	FirstPowerupFire:
		EYES A 0 A_JumpIfInventory("GaunaSpreadShot",1,"FirstPowerupFireSpread")
		EYES A 0 A_GunFlash
		EYES A 1 A_SetPitch (pitch-0.50)		
		EYES A 1 offset (-10, 55)
		EYES A 1 offset (-20, 75)
		EYES A 1 offset (-30, 95)
		EYES A 1 offset (-40, 115) A_Recoil(3)
		EYES A 1 offset (-50, 135) A_FireCustomMissile("DarkGemSet")
		EYES A 1 offset (-40, 115) A_SetPitch (pitch+0.50)
		EYES A 1 offset (-30, 95) 
		EYES A 1 offset (-20, 75) 
		EYES A 1 offset (-10, 55)
		EYES A 2 A_GiveInventory("GaunaChargeAmmo",1)
		Goto Ready
	FirstPowerupFireSpread:
		EYES A 0 A_GunFlash
		EYES A 1 A_SetPitch (pitch-0.50)		
		EYES A 1 offset (-10, 55)
		EYES A 1 offset (-20, 75)
		EYES A 1 offset (-30, 95)
		EYES A 1 offset (-40, 115) A_Recoil(3)
		EYES A 0 A_FireCustomMissile("DarkGemSet",15,0)
		EYES A 0 A_FireCustomMissile("DarkGemSet",-15,0)
		EYES A 1 offset (-50, 135) A_FireCustomMissile("DarkGemSet")
		EYES A 1 offset (-40, 115) A_SetPitch (pitch+0.50)
		EYES A 1 offset (-30, 95) 
		EYES A 1 offset (-20, 75) 
		EYES A 1 offset (-10, 55)
		EYES A 0 A_TakeInventory("GaunaSpreadShot",1)
		EYES A 2 A_GiveInventory("GaunaChargeAmmo",1)
		Goto Ready
	SecondPowerupFire:
		EYES A 0 A_JumpIfInventory("GaunaSpreadShot",1,"SecondPowerupFireSpread")
		EYES A 0 A_GunFlash
		EYES A 1 A_SetPitch (pitch-0.50)		
		EYES A 1 offset (-10, 55)
		EYES A 1 offset (-20, 75)
		EYES A 1 offset (-30, 95)
		EYES A 1 offset (-40, 115) A_Recoil(3)
		EYES A 1 offset (-50, 135) A_FireCustomMissile("WindGemSet")
		EYES A 1 offset (-40, 115) A_SetPitch (pitch+0.50)
		EYES A 1 offset (-30, 95) 
		EYES A 1 offset (-20, 75) 
		EYES A 1 offset (-10, 55) 
		EYES A 1 offset (-10, 55)
		EYES A 2 A_GiveInventory("GaunaChargeAmmo",1)
		Goto Ready
	SecondPowerupFireSpread:
		EYES A 0 A_GunFlash
		EYES A 1 A_SetPitch (pitch-0.50)		
		EYES A 1 offset (-10, 55)
		EYES A 1 offset (-20, 75)
		EYES A 1 offset (-30, 95)
		EYES A 1 offset (-40, 115) A_Recoil(3)
		EYES A 0 A_FireCustomMissile("WindGemSet",15,0)
		EYES A 0 A_FireCustomMissile("WindGemSet",-15,0)
		EYES A 1 offset (-50, 135) A_FireCustomMissile("WindGemSet")
		EYES A 1 offset (-40, 115) A_SetPitch (pitch+0.50)
		EYES A 1 offset (-30, 95) 
		EYES A 1 offset (-20, 75) 
		EYES A 1 offset (-10, 55) 
		EYES A 1 offset (-10, 55)
		EYES A 0 A_TakeInventory("GaunaSpreadShot",1)
		EYES A 2 A_GiveInventory("GaunaChargeAmmo",1)
		Goto Ready
	ThirdPowerupFire:
		EYES A 0 A_JumpIfInventory("GaunaSpreadShot",1,"ThirdPowerupFireSpread")
		EYES A 0 A_GunFlash
		EYES A 0 A_GunFlash
		EYES A 1 A_SetPitch (pitch-0.50)		
		EYES A 1 offset (-10, 55)
		EYES A 1 offset (-20, 75)
		EYES A 1 offset (-30, 95)
		EYES A 1 offset (-40, 115) A_Recoil(3)
		EYES A 1 offset (-50, 135) A_FireCustomMissile("FireGemSet")
		EYES A 1 offset (-40, 115) A_SetPitch (pitch+0.50)
		EYES A 1 offset (-30, 95) 
		EYES A 1 offset (-20, 75) 
		EYES A 1 offset (-10, 55) 
		EYES A 1 offset (-10, 55)
		EYES A 2 A_GiveInventory("GaunaChargeAmmo",1)
		Goto Ready
	ThirdPowerupFireSpread:
		EYES A 0 A_GunFlash
		EYES A 0 A_GunFlash
		EYES A 1 A_SetPitch (pitch-0.50)		
		EYES A 1 offset (-10, 55)
		EYES A 1 offset (-20, 75)
		EYES A 1 offset (-30, 95)
		EYES A 1 offset (-40, 115) A_Recoil(3)
		EYES A 0 A_FireCustomMissile("FireGemSet",15,0)
		EYES A 0 A_FireCustomMissile("FireGemSet",-15,0)
		EYES A 1 offset (-50, 135) A_FireCustomMissile("FireGemSet")
		EYES A 1 offset (-40, 115) A_SetPitch (pitch+0.50)
		EYES A 1 offset (-30, 95) 
		EYES A 1 offset (-20, 75) 
		EYES A 1 offset (-10, 55) 
		EYES A 1 offset (-10, 55)
		EYES A 0 A_TakeInventory("GaunaSpreadShot",1)
		EYES A 2 A_GiveInventory("GaunaChargeAmmo",1)
		Goto Ready
	FourthPowerupFire:
		EYES A 0 A_GunFlash
		EYES A 1 A_SetPitch (pitch-0.50)		
		EYES A 1 offset (-10, 55)
		EYES A 1 offset (-20, 75)
		EYES A 1 offset (-30, 95)
		EYES A 1 offset (-40, 115) A_Recoil(3)
		EYES A 1 offset (-50, 135) A_FireCustomMissile("WaterGemSet")
		EYES A 1 offset (-40, 115) A_SetPitch (pitch+0.50)
		EYES A 1 offset (-30, 95) 
		EYES A 1 offset (-20, 75) 
		EYES A 1 offset (-10, 55) 
		EYES A 1 offset (-10, 55) Healthing(2)
		EYES A 2 A_GiveInventory("GaunaChargeAmmo",1)
		Goto Ready
	FifthpowerupFire:
		EYES A 0 A_JumpIfInventory("GaunaSpreadShot",1,"FifthPowerupFireSpread")
		EYES A 0 A_GunFlash
		EYES A 1 A_SetPitch (pitch-0.50)		
		EYES A 1 offset (-10, 55)
		EYES A 1 offset (-20, 75)
		EYES A 1 offset (-30, 95)
		EYES A 1 offset (-40, 115) A_Recoil(3)
		EYES A 1 offset (-50, 135) A_FireCustomMissile("EarthGemSet")
		EYES A 1 offset (-40, 115) A_SetPitch (pitch+0.50)
		EYES A 1 offset (-30, 95) 
		EYES A 1 offset (-20, 75) 
		EYES A 1 offset (-10, 55) 
		EYES A 1 offset (-10, 55)
		EYES A 2 A_GiveInventory("GaunaChargeAmmo",1)
		Goto Ready
	FifthPowerupFireSpread:
		EYES A 0 A_GunFlash
		EYES A 1 A_SetPitch (pitch-0.50)		
		EYES A 1 offset (-10, 55)
		EYES A 1 offset (-20, 75)
		EYES A 1 offset (-30, 95)
		EYES A 1 offset (-40, 115) A_Recoil(3)
		EYES A 0 A_FireCustomMissile("EarthGemSet",15,0)
		EYES A 0 A_FireCustomMissile("EarthGemSet",-15,0)
		EYES A 1 offset (-50, 135) A_FireCustomMissile("EarthGemSet")
		EYES A 1 offset (-40, 115) A_SetPitch (pitch+0.50)
		EYES A 1 offset (-30, 95) 
		EYES A 1 offset (-20, 75) 
		EYES A 1 offset (-10, 55) 
		EYES A 1 offset (-10, 55)
		EYES A 0 A_TakeInventory("GaunaSpreadShot",1)
		EYES A 2 A_GiveInventory("GaunaChargeAmmo",1)
		Goto Ready
	SixthPowerupFire:
		EYES A 0 A_GunFlash
		EYES A 1 A_SetPitch (pitch-0.50)		
		EYES A 1 offset (-10, 55)
		EYES A 1 offset (-20, 75)
		EYES A 1 offset (-30, 95)
		EYES A 1 offset (-40, 115) A_Recoil(3)
		EYES A 1 offset (-50, 135) A_FireCustomMissile("PoisonGemSet")
		EYES A 1 offset (-40, 115) A_SetPitch (pitch+0.50)
		EYES A 1 offset (-30, 95) 
		EYES A 1 offset (-20, 75) 
		EYES A 1 offset (-10, 55) 
		EYES A 1 offset (-10, 55)
		EYES A 2 A_GiveInventory("GaunaChargeAmmo",1)
		Goto Ready
	SeventhPowerupFire:
		EYES A 0 A_JumpIfInventory("GaunaSpreadShot",1,"SeventhPowerupFireSpread")
		EYES A 0 A_GunFlash
		EYES A 1 A_SetPitch (pitch-0.50)		
		EYES A 1 offset (-10, 55)
		EYES A 1 offset (-20, 75)
		EYES A 1 offset (-30, 95)
		EYES A 1 offset (-40, 115) A_Recoil(3)
		EYES A 1 offset (-50, 135) A_FireCustomMissile("IceGemSet")
		EYES A 1 offset (-40, 115) A_SetPitch (pitch+0.50)
		EYES A 1 offset (-30, 95) 
		EYES A 1 offset (-20, 75) 
		EYES A 1 offset (-10, 55) 
		EYES A 1 offset (-10, 55)
		EYES A 2 A_GiveInventory("GaunaChargeAmmo",1)
		Goto Ready
	SeventhPowerupFireSpread:
		EYES A 0 A_GunFlash
		EYES A 1 A_SetPitch (pitch-0.50)		
		EYES A 1 offset (-10, 55)
		EYES A 1 offset (-20, 75)
		EYES A 1 offset (-30, 95)
		EYES A 1 offset (-40, 115) A_Recoil(3)
		EYES A 0 A_FireCustomMissile("IceGemSet",15,0)
		EYES A 0 A_FireCustomMissile("IceGemSet",-15,0)
		EYES A 1 offset (-50, 135) A_FireCustomMissile("IceGemSet")
		EYES A 1 offset (-40, 115) A_SetPitch (pitch+0.50)
		EYES A 1 offset (-30, 95) 
		EYES A 1 offset (-20, 75) 
		EYES A 1 offset (-10, 55) 
		EYES A 1 offset (-10, 55)
		EYES A 0 A_TakeInventory("GaunaSpreadShot",1)
		EYES A 2 A_GiveInventory("GaunaChargeAmmo",1)
		Goto Ready
	Altfire:
		TNT1 A 0 
		TNT1 A 0 ACS_ExecuteAlways(477,0,2)
		TNT1 A 0 A_Zoomfactor(1.0)
		TNT1 A 0 A_ChangeFlag("SHOOTABLE", TRUE)
		TNT1 A 0 A_PlaySound("Gauna/ChangePower",CHAN_Body)
		TNT1 A 0 A_JumpIfInventory("GaunaPowerFuel", 0, "clearInventory")
		TNT1 A 0 A_GiveInventory("GaunaPowerFuel",1)
		TNT1 A 0 A_JumpIfInventory("GaunaPowerFuel",0,"SeventhPowerupMessage")
		TNT1 A 0 A_JumpIfInventory("GaunaPowerFuel",5,"SixthPowerupMessage")
		TNT1 A 0 A_JumpIfInventory("GaunaPowerFuel",4,"FifthPowerupMessage")
		TNT1 A 0 A_JumpIfInventory("GaunaPowerFuel",3,"FourthPowerupMessage")
		TNT1 A 0 A_JumpIfInventory("GaunaPowerFuel",2,"ThirdPowerupMessage")
		TNT1 A 0 A_JumpIfInventory("GaunaPowerFuel",1,"SecondPowerupMessage")
		Goto Ready
	SeventhPowerUpMessage:
		TNT1 A 0 A_TakeInventory("IconGaunaPoison",1)
		TNT1 A 0 A_GiveInventory("IconGaunaIce",1)
		TNT1 A 0 A_GiveInventory("IconItem",1)
		EYES A 1 ACS_Execute(1953,0)
		EYES A 7 A_Print("Spawning Ice Spell - Offensive/Fast projectile attacks (Requires: 55)")
		Goto Ready
	SixthPowerUpMessage:
		TNT1 A 0 A_TakeInventory("IconGaunaEarth",1)
		TNT1 A 0 A_GiveInventory("IconGaunaPoison",1)
		TNT1 A 0 A_GiveInventory("IconItem",1)
		EYES A 1 ACS_Execute(1953,0)
		EYES A 7 A_Print("Spawning Poison Spell - Defensive/Damage over time (Requires: 140)")
		Goto Ready
	FifthPowerUpMessage:
		TNT1 A 0 A_TakeInventory("IconGaunaWater",1)
		TNT1 A 0 A_GiveInventory("IconGaunaEarth",1)
		TNT1 A 0 A_GiveInventory("IconItem",1)
		EYES A 1 ACS_Execute(1953,0)
		EYES A 7 A_Print("Spawning Earth Spell - AOE Zoning/Heavy damage (Requires: 100)")
		Goto Ready
	FourthPowerUpMessage:
		TNT1 A 0 A_TakeInventory("IconGaunaFire",1)
		TNT1 A 0 A_GiveInventory("IconGaunaWater",1)
		TNT1 A 0 A_GiveInventory("IconItem",1)
		EYES A 1 ACS_Execute(1953,0)
		EYES A 7 A_Print("Spawning Water Spell - Heals Teammates/Blinds+Damages Humans (Requires: 80)")
		Goto Ready
	ThirdPowerUpMessage:
		TNT1 A 0 A_TakeInventory("IconGaunaAir",1)
		TNT1 A 0 A_GiveInventory("IconGaunaFire",1)
		TNT1 A 0 A_GiveInventory("IconItem",1)
		EYES A 1 ACS_Execute(1953,0)
		EYES A 7 A_Print("Spawning Fire Spell - Offensive/Surface Heavy Burst Damage (Requires: 30)")
		Goto Ready
	SecondPowerUpMessage:
		TNT1 A 0 A_TakeInventory("IconGaunaDark",1)
		TNT1 A 0 A_GiveInventory("IconGaunaAir",1)
		TNT1 A 0 A_GiveInventory("IconItem",1)
		EYES A 1 ACS_Execute(1953,0)
		EYES A 7 A_Print("Spawning Air Spell - Offensive/Homing Attacks (Requires: 75)")
		Goto Ready
	ClearInventory:
		TNT1 A 0 A_TakeInventory("IconGaunaIce",1)
		TNT1 A 0 A_GiveInventory("IconGaunaDark",1)
		TNT1 A 0 A_TakeInventory("IconItem",99)
		TNT1 A 0 A_GiveInventory("IconItem",1)
		EYES A 1 ACS_Execute(1953,0)
		EYES A 7 A_Print("Spawning Dark Spell - Offensive/Area of Effect+Goes through walls (Requires: 65)")
		TNT1 A 0 A_TakeInventory("GaunaPowerFuel",0)
		Goto Ready
	Reload:
		EYES A 0 A_JumpIfInventory("GaunaSpreadShot",1,"Ready")
		EYES A 0 A_JumpIfInventory("GaunaChargeAmmo",10,"GiveSpread")
		Goto Ready
	GiveSpread:
		EYES A 0 A_TakeInventory("GaunaChargeAmmo",10)
		EYES A 0 A_GiveInventory("GaunaSpreadShot",1)
		EYES A 1 A_Print("Your next offensive gem is empowered!",3)
		Goto Ready
	Flash:
		EYES A 1 Bright A_Light1
		EYES A 1 Bright A_Light1
		EYES A 1 Bright A_Light1
		goto lightdone	
	BoostActivate:
	TNT1 A 0 A_TakeInventory("CyborgDashCheck",999)
	TNT1 A 0 A_JumpIfInventory("GaunaChargeAmmo",15,"GottaGoFast")
	Goto Ready
	GottaGoFast:
	TNT1 A 0 A_ChangeFlag("SHOOTABLE", FALSE)
	TNT1 A 0 A_TakeInventory("GaunaChargeAmmo",15)
	TNT1 A 0 Healthing(15)
	TNT1 A 0 ACS_ExecuteAlways(477,0,1)
	TNT1 A 0 A_Zoomfactor(0.8)
	TNT1 A 0 A_Playsound("Gauna/scream", CHAN_ITEM)
	EYES A 4 offset (-10, 55) A_SpawnItemEx("gaunawave", 14, 0, 16, 0, 0, 0, 0, 32, 0)
	EYES A 4 offset (-20, 75) A_SpawnItemEx("gaunawave", 14, 0, 16, 0, 0, 0, 0, 32, 0)
	EYES A 4 offset (-30, 95) A_SpawnItemEx("gaunawave", 14, 0, 16, 0, 0, 0, 0, 32, 0)
	EYES A 4 offset (-40, 115) A_SpawnItemEx("gaunawave", 14, 0, 16, 0, 0, 0, 0, 32, 0)
	EYES A 4 offset (-50, 135) A_SpawnItemEx("gaunawave", 14, 0, 16, 0, 0, 0, 0, 32, 0)
	EYES A 4 offset (-40, 115) A_SpawnItemEx("gaunawave", 14, 0, 16, 0, 0, 0, 0, 32, 0)
	EYES A 4 offset (-30, 95) A_SpawnItemEx("gaunawave", 14, 0, 16, 0, 0, 0, 0, 32, 0)
	EYES A 4 offset (-20, 75) A_SpawnItemEx("gaunawave", 14, 0, 16, 0, 0, 0, 0, 32, 0)
	EYES A 4 offset (-10, 55) A_SpawnItemEx("gaunawave", 14, 0, 16, 0, 0, 0, 0, 32, 0)
	EYES A 25
	EYES A 2 ACS_ExecuteAlways(477,0,2)
	EYES A 2 A_Zoomfactor(1.0)
	EYES A 2 A_ChangeFlag("SHOOTABLE", TRUE)
	Goto Ready
	}
}

Actor IconGaunaFire : Inventory
{
	Inventory.MaxAmount 1
}

Actor IconGaunaDark : IconGaunaFire
{
}

Actor IconGaunaAir : IconGaunaFire
{
}

Actor IconGaunaWater : IconGaunaFire
{
}

Actor IconGaunaEarth : IconGaunaFire
{
}

Actor IconGaunaPoison : IconGaunaFire
{
}

Actor IconGaunaIce : IconGaunaFire
{
}

ACTOR GaunaWave
{
- SOLID
//+NOBLOCKMAP
+NOGRAVITY
+NOBLOOD
+SHOOTABLE
+NODAMAGE
+GHOST
Health 5
Damage (7)
Obituary "%o didn't foresee %k's element of surprise!"
Damagetype "Jitter"
translation "112:127=32:47"
height 50
radius 50
mass 99999999999
scale 1.2
renderstyle translucent
alpha 1.0
States
{
Spawn:
PR2E A 1 A_Quake(9,90,0,0)
PR2E A 1 A_Explode(12,250,0)
PR2E ABCDEFGHIJKLMNO 2 bright A_FadeOut(0.04)
Stop
}
}

//========================================================
//FIRE

ACTOR FireGem : CustomInventory
{
   Inventory.Amount 1
   Inventory.MaxAmount 5
   Inventory.PickupSound "GEMGET"
   Inventory.PickupMessage "Fire Gem"
   Inventory.Icon IFGMA0
   Tag "Fire Gem - Causes flames to erupt from the ground in a wide area."
   Scale 0.7
   +INVBAR
   +FLOORCLIP
   States
   {
   Spawn:
      FGEM A 12
	  TNT1 A 0 A_SpawnItem("GemShine",0,0,0)
      Loop
   Use:
      TNT1 A 0 A_ThrowGrenade("FireGemSet",2,8,3,0)
      Stop
   } 
}

ACTOR FireGemSet
{
   Radius 3
   Height 5
   Speed 50
   Scale 0.6
   +MISSILE
   +DROPOFF
   +CANBOUNCEWATER
   +BOUNCEONWALLS
   +THRUACTORS
   +DONTBLAST
   +SKYEXPLODE
   BounceType Doom
   BounceCount 4
   WallBounceFactor 1.5
   BounceFactor 0.25
   BounceSound "GEMBNC"
   States
   {
   Spawn:
      FGEM A 1 Bright		
	  Loop
   Death:
      FGEM A 1 Bright
      TNT1 A 0 A_SpawnItem("FireGemPrepare",0,0,0)
      Stop
   } 
}

ACTOR FireGemPrepare
{
    Radius 3
    Height 5
    Speed 0
    Reactiontime 12
	Scale 0.6
    PROJECTILE
	+BRIGHT
    +THRUACTORS
	+NOTARGET
	+DONTBLAST
   States
   {
   Spawn:   
      FGEM A 1
	  TNT1 A 0 ThrustThingZ(0,10,0,0)
	  TNT1 A 0 A_CountDown
      Loop
   Death:
      TNT1 A 0 A_SpawnItemEx("FireGemActive",0,0,0,0,0,0,0,32)
      Stop
   }
}

ACTOR FireGemActive
{
    Radius 3
    Height 5
    Speed 0
	Scale 0.6
    PROJECTILE
	Reactiontime 40
	RenderStyle Add
	Alpha 1
    +THRUACTORS
    -SHOOTABLE
	+BRIGHT
	+VISIBILITYPULSE
	+DONTBLAST
   States
   {
   Spawn:  
   	  TNT1 A 0 A_AlertMonsters
      FGEM A 1
	  TNT1 A 0 A_CustomMissile("GemFlameSpawnerNear", 0, 0, random(0,360), CMF_AIMDIRECTION)
	  TNT1 A 0 A_CustomMissile("GemFlameSpawnerFar", 0, 0, random(0,360), CMF_AIMDIRECTION)
	  TNT1 A 0 A_CustomMissile("GemFlameSpawnerFurthest", 0, 0, random(0,360), CMF_AIMDIRECTION)
	  FGEM A 2
	  TNT1 A 0 A_CountDown
      Loop
   Death:
      TNT1 A 0
	  TNT1 A 0 A_PlaySound("GEMBRK",5,2,0)
      TNT1 AAAAAA 0 A_SpawnItemEx("GemShardRed",0,0,3,random(-2,2),random(-2,2),random(3,9),random(0,359),32)
      Stop
   }
}

ACTOR GemFlameSpawnerNear
{
   Speed 4
   Radius 3
   Height 3
   RenderStyle Add
   Alpha 0.4
   Scale 0.3
   PROJECTILE
   +BRIGHT
   +THRUACTORS
   +MOVEWITHSECTOR
   +FLOORHUGGER
   +DONTBLAST
   States
   {
   Spawn:
      TNT1 A 1
	  TNT1 A 0 A_Jump(30,"SpawnFlame")
	  TNT1 A 1
	  TNT1 A 0 A_Jump(50,"SpawnFlame")
	  TNT1 A 1
	  TNT1 A 0 A_Jump(80,"SpawnFlame")
	  TNT1 A 1
	  TNT1 A 0 A_Jump(120,"SpawnFlame")
	  TNT1 A 1
	  TNT1 A 0 A_Jump(160,"SpawnFlame")
	  TNT1 A 1
	  TNT1 A 0 A_Jump(190,"SpawnFlame")
	  Stop
   SpawnFlame:
      TNT1 A 0 A_SpawnItem("FireGemFlame",0,0,0)
      Stop
   Death:
      TNT1 A 0
      Stop
   }
}

ACTOR GemFlameSpawnerFar
{
   Speed 7
   Radius 3
   Height 3
   RenderStyle Add
   Alpha 0.4
   Scale 0.3
   ReactionTime 5
   PROJECTILE
   +BRIGHT
   +THRUACTORS
   +MOVEWITHSECTOR
   +FLOORHUGGER
   +DONTBLAST
   States
   {
   Spawn:
      TNT1 AA 1
	  TNT1 A 0 A_Jump(120,"SpawnFlame")
	  TNT1 A 0 A_Countdown
	  Loop
   SpawnFlame:
      TNT1 A 0 A_SpawnItem("FireGemFlame",0,0,0)
      Stop
   Death:
      TNT1 A 0
      Stop
   }
}

ACTOR GemFlameSpawnerFurthest
{
   Speed 10
   Radius 3
   Height 3
   RenderStyle Add
   Alpha 0.4
   Scale 0.3
   ReactionTime 5
   PROJECTILE
   +BRIGHT
   +THRUACTORS
   +MOVEWITHSECTOR
   +FLOORHUGGER
   +DONTBLAST
   States
   {
   Spawn:
      TNT1 AAAA 1
	  TNT1 A 0 A_Jump(120,"SpawnFlame")
	  TNT1 A 0 A_Countdown
	  Loop
   SpawnFlame:
      TNT1 A 0 A_SpawnItem("FireGemFlame",0,0,0)
      Stop
   Death:
      TNT1 A 0
      Stop
   }
}

Actor FireGemFlame
{
	Radius 12
	Height 8
	Speed 0
	Scale 0.7
	RenderStyle Add
	Alpha 0.6
	PROJECTILE
	+THRUACTORS
	+RANDOMIZE
	+DONTBLAST
	+BRIGHT
	DeathSound "FlameErupt"
	States
	{
	Spawn:
	    TNT1 A 1
		TNT1 A 0 A_Jump(255,"Normal","Small")
		Loop
	Normal:
		TNT1 A 0 A_PlaySound("FlameErupt",5,2,0)
		FFIR A 1
		TNT1 A 0 A_SpawnItem("FlameGemFDMG",0,100,0)
		FFIR B 1
		TNT1 A 0 A_SpawnItem("FlameGemFDMG",0,75,0)
		FFIR C 1
		TNT1 A 0 A_SpawnItem("FlameGemFDMG",0,50,0)
		FFIR D 1
		TNT1 A 0 A_SpawnItem("FlameGemFDMG",0,25,0)
		FFIR E 1
		TNT1 A 0 A_SpawnItem("FlameGemFDMG",0,0,0)
		FFIR F 1
		TNT1 A 0 A_SpawnItem("FlameGemFDMG",0,25,0)
		FFIR G 1
		TNT1 A 0 A_SpawnItem("FlameGemFDMG",0,50,0)
		FFIR H 1
		TNT1 A 0 A_SpawnItem("FlameGemFDMG",0,75,0)
	Small:
		TNT1 A 0 A_PlaySound("FlameErupt",5,2,0)
		FFIR A 1
		TNT1 A 0 A_SpawnItem("FlameGemFDMG",0,80,0)
		FFIR B 1
		TNT1 A 0 A_SpawnItem("FlameGemFDMG",0,60,0)
		FFIR C 1
		TNT1 A 0 A_SpawnItem("FlameGemFDMG",0,40,0)
		FFIR D 1
		TNT1 A 0 A_SpawnItem("FlameGemFDMG",0,20,0)
		FFIR E 1
		TNT1 A 0 A_SpawnItem("FlameGemFDMG",0,0,0)
		FFIR F 1
		TNT1 A 0 A_SpawnItem("FlameGemFDMG",0,20,0)
		FFIR G 1
		TNT1 A 0 A_SpawnItem("FlameGemFDMG",0,40,0)
		FFIR H 1
		TNT1 A 0 A_SpawnItem("FlameGemFDMG",0,60,0)
		Stop
	Death:
	    TNT1 A 0
		Stop
	}
}

Actor FlameGemFDMG //Invisible, but responsible for damage dealt by the FireGemFlame actor.
{
    Radius 12
	Height 15
	Damage (4)
	PROJECTILE
	+NOEXTREMEDEATH
	+DONTBLAST
	DamageType "minion"
	States
	{
	Spawn:
	    TNT1 A 1
		Stop
	XDeath:
		TNT1 A 0 A_GiveToTarget("HitBeep",1)
		Goto Death
	Death:
		TNT1 A 1
		Stop
	}
}

//==================================================================
//EARTH

ACTOR EarthGem : CustomInventory
{
   Inventory.Amount 1
   Inventory.MaxAmount 5
   Inventory.PickupSound "GEMGET"
   Inventory.PickupMessage "Earth Gem"
   Inventory.Icon IEGMA0
   Tag "Earth Gem - Launches boulders at foes."
   Scale 0.7
   +INVBAR
   +FLOORCLIP
   States
   {
   Spawn:
	  EGEM A 12
	  TNT1 A 0 A_SpawnItem("GemShine",0,0,0)
      Loop
   Use:
      TNT1 A 0 A_ThrowGrenade("EarthGemSet",2,8,3,0)
      Stop
   } 
}

ACTOR EarthGemSet
{
   Radius 3
   Height 5
   Speed 50
   Scale 0.6
   +MISSILE
   +DROPOFF
   +CANBOUNCEWATER
   +BOUNCEONWALLS
   +THRUACTORS
   +DONTBLAST
   +SKYEXPLODE
   BounceType Doom
   BounceCount 4
   WallBounceFactor 1.5
   BounceFactor 0.25
   BounceSound "GEMBNC"
   States
   {
   Spawn:
      EGEM A 1 Bright		
	  Loop
   Death:
      EGEM A 1 Bright
      TNT1 A 0 A_SpawnItem("EarthGemPrepare",0,0,0)
      Stop
   } 
}

ACTOR EarthGemPrepare
{
    Radius 3
    Height 5
    Speed 0
    Reactiontime 12
	Scale 0.6
    PROJECTILE
	+BRIGHT
    +THRUACTORS
	+NOTARGET
	+DONTBLAST
   States
   {
   Spawn:   
      EGEM A 1
	  TNT1 A 0 ThrustThingZ(0,10,0,0)
	  TNT1 A 0 A_CountDown
      Loop
   Death:
      TNT1 A 0 A_SpawnItemEx("EarthGemActive",0,0,0,0,0,0,0,32)
      Stop
   }
}

ACTOR EarthGemActive
{
    Radius 3
    Height 5
    Speed 0
	Scale 0.6
    PROJECTILE
	Reactiontime 11
	RenderStyle Add
	Alpha 1
    +THRUACTORS
    -SHOOTABLE
	+BRIGHT
	+VISIBILITYPULSE
	+DONTBLAST
   States
   {
   Spawn:   
   	  TNT1 A 0 A_AlertMonsters
      EGEM A 1
	  TNT1 A 0 A_PlaySound("EGEMQK",5,3,1)
	  TNT1 AA 0 A_SpawnItemEx("GemBoulder",0,0,0,random(-2,2),random(-2,2),random(3,9),random(0,359),32)
	  TNT1 A 0 A_SpawnItemEx("GemBoulder",0,0,0,random(-2,2),random(-2,2),random(3,9),random(0,359),32)
	  EGEM A 15
	  TNT1 A 0 A_CountDown
      Loop	  
   Death:
      TNT1 A 0
	  TNT1 A 0 A_PlaySound("GEMBRK",5,2,0)
	  TNT1 AAAAAA 0 A_SpawnItemEx("GemShardBrown",0,0,3,random(-2,2),random(-2,2),random(3,9),random(0,359),32)
      Stop
   }
}

ACTOR GemQuakeFX //Aesthetic. Deals no damage.
{
   Speed 8
   Radius 8
   Height 5
   RenderStyle Add
   Alpha 0.05
   Scale 0.3
   PROJECTILE
   +BRIGHT
   +CLIENTSIDEONLY
   +THRUACTORS
   +MOVEWITHSECTOR
   +DONTBLAST
   States
   {
   Spawn:
      TNT1 A 0
      QKFX AAAAAAAA 1
      TNT1 A 0 A_SetTranslucent(0.05)
	  Stop
   Death:
      TNT1 A 0
      Stop
   }
}

ACTOR GemBoulder
{
   Damage (2*random(4,5))
   Speed 5
   Radius 10
   Height 6
   Gravity 0.7	
   Scale 0.6
   PROJECTILE
   -NOGRAVITY
   +DROPOFF	
   +CANBOUNCEWATER
   +DONTBLAST
   +SEEKERMISSILE
   Damagetype "Jitter"
   BounceSound "STNBRK2"
   DeathSound "BoulderBreak"
   Obituary "%o choked down %k's boulders."
   BounceType Hexen
   BounceCount 6 
   BounceFactor 1.2
   ReactionTime 22
   States
   {
   Spawn:   
      EBLD ABCD 2
	  TNT1 A 0 A_CountDown
      Loop
   Bounce:
      TNT1 A 0
   	  TNT1 A 0 ThrustThing(random(0,360), 5, 0, 0)
	  EBLD ABCD 2 A_Seekermissile(45, 45,SMF_PRECISE|SMF_LOOK,220,3)
	  Goto Spawn
   XDeath:
	  TNT1 A 0 A_GiveToTarget("HitBeep",1)
	  Goto Death
   Death:
	  TNT1 AA 0 A_SpawnItemEx("EGemRock",0,0,3,random(-1,1),random(-1,1),random(2,4),random(0,359),32)
	  TNT1 AAAA 0 A_SpawnItemEx("EGemRockSmall",0,0,3,random(-1,1),random(-1,1),random(2,4),random(0,359),32)
      Stop
   }
}

ACTOR EGemRock
{
   Damage 3
   Speed 12
   Radius 6
   Height 3
   Scale 0.5
   Gravity 0.6
   PROJECTILE
   +BRIGHT
   -NOGRAVITY
   +DONTBLAST
   Obituary "%o choked down %k's boulders."
   DeathSound "STNBRK"
   Damagetype "Jitter"
   States
   {
   Spawn:
      ESTN A 1	  
	  Loop
   XDeath:
	  TNT1 A 0 A_GiveToTarget("HitBeep",1)
	  Goto Death
   Death:
      ESTN B 3
      TNT1 AAA 0 A_SpawnItemEx("EGemRockSmall",0,0,3,random(-1,1),random(-1,1),random(2,4),random(0,359),32)
      Stop
   }
}

ACTOR EGemRockSmall
{
   Speed 8
   Radius 2
   Height 2
   Scale 0.2
   Gravity 0.6
   PROJECTILE
   +BRIGHT
   -NOGRAVITY
   +DONTBLAST
   +CLIENTSIDEONLY
   States
   {
   Spawn:
      ESTN C 1	  
	  Loop
   Death:
      TNT1 A 0
      Stop
   }
}

//==========================================================
//WIND

ACTOR WindGem : CustomInventory
{
   Inventory.Amount 1
   Inventory.MaxAmount 5
   Inventory.PickupSound "GEMGET"
   Inventory.PickupMessage "Wind Gem"
   Inventory.Icon IWIGA0
   Tag "Wind Gem - Pulls in enemies with a barrage of tornadoes."
   Scale 0.7
   +INVBAR
   +FLOORCLIP
   States
   {
   Spawn:
      WIGM A 12
	  TNT1 A 0 A_SpawnItem("GemShine",0,0,0)
      Loop
   Use:
      TNT1 A 0 A_ThrowGrenade("WindGemSet",2,8,3,0)
      Stop
   } 
}

ACTOR WindGemSet
{
   Radius 3
   Height 5
   Speed 50
   Scale 0.6
   +MISSILE
   +DROPOFF
   +CANBOUNCEWATER
   +BOUNCEONWALLS
   +THRUACTORS
   +DONTBLAST
   +SKYEXPLODE
   BounceType Doom
   BounceCount 4
   WallBounceFactor 1.5
   BounceFactor 0.25
   BounceSound "GEMBNC"
   States
   {
   Spawn:
      WIGM A 1 Bright		
	  Loop
   Death:
      WIGM A 1 Bright
      TNT1 A 0 A_SpawnItem("WindGemPrepare",0,0,0)
      Stop
   } 
}

ACTOR WindGemPrepare
{
    Radius 3
    Height 5
    Speed 0
    Reactiontime 12
	Scale 0.6
    PROJECTILE
	+BRIGHT
    +THRUACTORS
	+NOTARGET
	+DONTBLAST
   States
   {
   Spawn:   
      WIGM A 1
	  TNT1 A 0 ThrustThingZ(0,10,0,0)
	  TNT1 A 0 A_CountDown
      Loop
   Death:
      TNT1 A 0 A_SpawnItemEx("WindGemActive",0,0,0,0,0,0,0,32)
      Stop
   }
}

ACTOR WindGemActive
{
    Radius 3
    Height 5
    Speed 0
	Scale 0.6
    PROJECTILE
	Reactiontime 50
	RenderStyle Add
	Alpha 1
    +THRUACTORS
    -SHOOTABLE
	+BRIGHT
	+VISIBILITYPULSE
	+DONTBLAST
   States
   {
   Spawn:   
      TNT1 A 0
	  TNT1 A 0 A_SpawnItemEx("GemTornadoTinyLauncherA",0,0,-5)
   	  TNT1 A 0 A_AlertMonsters
      TNT1 A 0 A_SpawnItemEx("GemTornado",0,0,-21)
	  TNT1 A 0 A_PlaySound("TRNWND",5,1.6,1)
      TNT1 A 0 A_RadiusThrust(-450,280,2)
	  WIGM A 4
	  TNT1 A 0 A_CountDown
      Goto Spawn+2
   Death:
      TNT1 A 0
	  TNT1 A 0 A_PlaySound("GEMBRK",5,2,0)
	  TNT1 AAAAAA 0 A_SpawnItemEx("GemShardGreen",0,0,3,random(-2,2),random(-2,2),random(3,9),random(0,359),32)
      Stop
   }
}

ACTOR GemTornado
{
    Radius 3
    Height 5
    Speed 0
	RenderStyle Add
	Alpha 0.3
    PROJECTILE
	+BRIGHT
    +THRUACTORS
    -SHOOTABLE
	+DONTBLAST
   States
   {
   Spawn:   
      WTOR ABCD 1
	  TNT1 A 0 A_Jump(55,"SmallTornadoShot")
      Stop
   SmallTornadoShot:
      TNT1 A 0 A_CustomMissile("GemTornadoSeeker", 45, 0, random(0,360), CMF_AIMDIRECTION)
	  Stop
   Death:
      TNT1 A 0
      Stop
   }
}

ACTOR GemTornadoSeeker
{
    Speed 10
	Damage (4)
    Radius 10
    Height 5
	RenderStyle Add
	Alpha 0.25
	Scale 0.8
	Damagetype "Minion"
    PROJECTILE
	+BRIGHT
	+SEEKERMISSILE
	+DONTBLAST
	ReactionTime 50
   States
   {
   Spawn:   
      SWTR ABABAB 1
      SWTR AB 1 A_SeekerMissile(8,20,SMF_LOOK,256|SMF_PRECISE)
	  TNT1 A 0 A_PlaySound("TRNWND",5,0.6,1)
      TNT1 A 0 A_RadiusThrust(-120,60,2)
	  TNT1 A 0 A_CountDown
      Goto Spawn+6
   XDeath:
	  TNT1 A 0 A_GiveToTarget("HitBeep",1)
	  Goto Death
   Death:
      SWTR A 2 A_SetTranslucent(0.20)
	  SWTR B 2 A_SetTranslucent(0.15)
      SWTR A 2 A_SetTranslucent(0.10)
	  SWTR B 2 A_SetTranslucent(0.05)
      Stop
   }
}

ACTOR GemTornadoTinyLauncherA
{
    Radius 5
    Height 5
    PROJECTILE
	+DONTBLAST
	ReactionTime 16
   States
   {
   Spawn:   
      TNT1 A 30
	  TNT1 A 0 A_CustomMissile("GemTornadoTinyLauncherB",-5,0,90, CMF_AIMDIRECTION)
	  TNT1 A 0 A_CustomMissile("GemTornadoTinyLauncherB",-5,0,135, CMF_AIMDIRECTION)
	  TNT1 A 0 A_CustomMissile("GemTornadoTinyLauncherB",-5,0,180, CMF_AIMDIRECTION)
	  TNT1 A 0 A_CustomMissile("GemTornadoTinyLauncherB",-5,0,225, CMF_AIMDIRECTION)
	  TNT1 A 0 A_CountDown
      Loop
   Death:
      TNT1 A 0
      Stop
   }
}

ACTOR GemTornadoTinyLauncherB
{
    Speed 4
	Damage 0
    Radius 5
    Height 5
    PROJECTILE
	+THRUACTORS
	+DONTBLAST
   States
   {
   Spawn:   
      TNT1 AAA 2
	  TNT1 A 0 A_Jump(255,"SLife","MLife","LLife")
      Loop
   SLife:
      TNT1 A 0 A_SpawnItem("GemTornadoTinyShort",0,0,0)
      Stop
   MLife:
      TNT1 A 0 A_SpawnItem("GemTornadoTinyMid",0,0,0)
	  Stop
   LLife:
      TNT1 A 0 A_SpawnItem("GemTornadoTiny",0,0,0)
	  Stop
   Death:
      TNT1 A 0
      Stop
   }
}

ACTOR GemTornadoTiny
{
    Speed 5
	Damage 0
    Radius 5
    Height 5
	RenderStyle Add
	Alpha 0.25
	Scale 1
    PROJECTILE
	+BRIGHT
	+THRUACTORS
	+DONTBLAST
	ReactionTime 24
   States
   {
   Spawn:   
      TTRN ABCABCABCABCABCABCABCABCABC 1 ThrustThingZ(0,14,0,0)
	  TNT1 A 0 ThrustThing(random(0,360),3,0,0)
	  TNT1 A 0 A_SpawnItemEx("TinyTornadoDMG",0,0,0)
      TTRN ABC 1 ThrustThingZ(0,1,0,0)
	  TNT1 A 0 A_CountDown
      Goto Spawn+27
   Death:
      TTRN A 2 A_SetTranslucent(0.20)
	  TTRN B 2 A_SetTranslucent(0.15)
      TTRN C 2 A_SetTranslucent(0.10)
	  TTRN A 2 A_SetTranslucent(0.05)
      Stop
   }
}

ACTOR GemTornadoTinyMid : GemTornadoTiny
{
   States
   {
   Spawn:   
      TTRN ABCABCABCABCABCABC 1 ThrustThingZ(0,14,0,0)
	  TNT1 A 0 ThrustThing(random(0,360),3,0,0)
	  TNT1 A 0 A_SpawnItemEx("TinyTornadoDMG",0,0,0)
      TTRN ABC 1 ThrustThingZ(0,1,0,0)
	  TNT1 A 0 A_CountDown
      Goto Spawn+18
   Death:
      TTRN A 2 A_SetTranslucent(0.20)
	  TTRN B 2 A_SetTranslucent(0.15)
      TTRN C 2 A_SetTranslucent(0.10)
	  TTRN A 2 A_SetTranslucent(0.05)
      Stop
   }
}

ACTOR GemTornadoTinyShort : GemTornadoTiny
{
   States
   {
   Spawn:   
      TTRN ABCABCABC 1 ThrustThingZ(0,14,0,0)
	  TNT1 A 0 ThrustThing(random(0,360),3,0,0)
	  TNT1 A 0 A_SpawnItemEx("TinyTornadoDMG",0,0,0)
      TTRN ABC 1 ThrustThingZ(0,1,0,0)
	  TNT1 A 0 A_CountDown
      Goto Spawn+9
   Death:
      TTRN A 2 A_SetTranslucent(0.20)
	  TTRN B 2 A_SetTranslucent(0.15)
      TTRN C 2 A_SetTranslucent(0.10)
	  TTRN A 2 A_SetTranslucent(0.05)
      Stop
   }
}

ACTOR TinyTornadoDMG
{
   Speed 2
   Radius 15
   Height 8
   Damage (3)
   Damagetype "Minion"
   PROJECTILE
   +BLOODLESSIMPACT
   +DONTSPLASH
   +DONTBLAST
   States
   {
   Spawn:
      TNT1 A 1
      Stop
   XDeath:
	  TNT1 A 0 A_GiveToTarget("HitBeep",1)
	  Goto Death
   Death:
      TNT1 A 1
      Stop
   }
}

//=========================================================
//WATER

ACTOR WaterGem : CustomInventory
{
   Inventory.Amount 1
   Inventory.MaxAmount 5
   Inventory.PickupSound "GEMGET"
   Inventory.PickupMessage "Water Gem"
   Inventory.Icon IWAGA0
   Tag "Water Gem - Summons droplets of water to damage enemies and heal allies."
   Scale 0.7
   +INVBAR
   +FLOORCLIP
   States
   {
   Spawn:
      WAGM A 12
	  TNT1 A 0 A_SpawnItem("GemShine",0,0,0)
      Loop
   Use:
      TNT1 A 0 A_ThrowGrenade("WaterGemSet",2,8,3,0)
      Stop
   } 
}

ACTOR WaterGemSet
{
   Radius 3
   Height 5
   Speed 15
   Scale 0.6
   +MISSILE
   +DROPOFF
   +CANBOUNCEWATER
   +BOUNCEONWALLS
   +THRUACTORS
   +DONTBLAST
   +SKYEXPLODE
   BounceType Doom
   BounceCount 4
   WallBounceFactor 1.5
   BounceFactor 0.25
   BounceSound "GEMBNC"
   States
   {
   Spawn:
      WAGM A 1 Bright		
	  Loop
   Death:
      WAGM A 1 Bright
      TNT1 A 0 A_SpawnItem("WaterGemPrepare",0,0,0)
      Stop
   } 
}

ACTOR WaterGemPrepare
{
    Radius 3
    Height 5
    Speed 0
    Reactiontime 12
	Scale 0.6
    PROJECTILE
	+BRIGHT
    +THRUACTORS
	+NOTARGET
	+DONTBLAST
   States
   {
   Spawn:   
      WAGM A 1
	  TNT1 A 0 ThrustThingZ(0,10,0,0)
	  TNT1 A 0 A_CountDown
      Loop
   Death:
      TNT1 A 0 A_SpawnItemEx("WaterGemActive",0,0,0,0,0,0,0,32)
      Stop
   }
}

ACTOR WaterGemActive
{
    Radius 3
    Height 5
    Speed 0
	Scale 0.6
    PROJECTILE
	Reactiontime 40
	RenderStyle Add
	Alpha 1
    +THRUACTORS
    -SHOOTABLE
	+BRIGHT
	+VISIBILITYPULSE
	+DONTBLAST
   States
   {
   Spawn:
   	  TNT1 A 0 A_AlertMonsters
      TNT1 A 0 A_CustomMissile("WaterDropSpawnerNear", 0, 0, random(0,360), CMF_AIMDIRECTION)
	  TNT1 A 0 A_CustomMissile("WaterDropSpawnerFar", 0, 0, random(0,360), CMF_AIMDIRECTION)
	  TNT1 A 0 A_CustomMissile("RainFXSpawnerA", 0, 0, random(0,360), CMF_AIMDIRECTION)
	  TNT1 A 0 A_CustomMissile("RainFXSpawnerB", 0, 0, random(0,360), CMF_AIMDIRECTION)
	  TNT1 A 0 A_CustomMissile("RainFXSpawnerC", 0, 0, random(0,360), CMF_AIMDIRECTION)
	  WAGM A 12
	  TNT1 A 0 A_CountDown
      Loop
   Death:
      TNT1 A 0
	  TNT1 A 0 A_PlaySound("GEMBRK",5,2,0)
	  TNT1 AAAAAA 0 A_SpawnItemEx("GemShardBlue",0,0,3,random(-2,2),random(-2,2),random(3,9),random(0,359),32)
      Stop
   }
}

ACTOR WaterDropSpawnerNear
{
   Speed 2
   Radius 8
   Height 5
   PROJECTILE
   +BRIGHT
   +MOVEWITHSECTOR
   +THRUACTORS
   +CEILINGHUGGER
   +DONTBLAST
   ReactionTime 2
   States
   {
   Spawn:
      TNT1 A 5	
	  TNT1 A 0 A_Jump(20,2)
	  TNT1 A 0 A_SpawnItemEx("GemWater",0,0,0)
	  TNT1 A 0 A_Countdown
	  Loop
   Death:
      TNT1 A 0
      Stop
   }
}

ACTOR WaterDropSpawnerFar
{
   Speed 6
   Radius 8
   Height 5
   PROJECTILE
   +BRIGHT
   +MOVEWITHSECTOR
   +THRUACTORS
   +CEILINGHUGGER
   +DONTBLAST
   ReactionTime 2
   States
   {
   Spawn:
      TNT1 A 5	
	  TNT1 A 0 A_Jump(20,2)
	  TNT1 A 0 A_SpawnItemEx("GemWater",0,0,0)
	  TNT1 A 0 A_Countdown
	  Loop
   Death:
      TNT1 A 0
      Stop
   }
}

ACTOR RainFXSpawnerA
{
   Speed 4
   Radius 3
   Height 3
   RenderStyle Add
   Alpha 0.4
   Scale 0.3
   PROJECTILE
   +BRIGHT
   +THRUACTORS
   +CLIENTSIDEONLY
   +MOVEWITHSECTOR
   +CEILINGHUGGER
   +DONTBLAST
   States
   {
   Spawn:
      TNT1 A 1
	  TNT1 A 0 A_Jump(30,"SpawnRain")
	  TNT1 A 1
	  TNT1 A 0 A_Jump(50,"SpawnRain")
	  TNT1 A 1
	  TNT1 A 0 A_Jump(80,"SpawnRain")
	  TNT1 A 1
	  TNT1 A 0 A_Jump(120,"SpawnRain")
	  TNT1 A 1
	  TNT1 A 0 A_Jump(160,"SpawnRain")
	  TNT1 A 1
	  TNT1 A 0 A_Jump(190,"SpawnRain")
	  Stop
   SpawnRain:
      TNT1 A 0 A_SpawnItem("RainFX",0,0,0)
      Stop
   Death:
      TNT1 A 0
      Stop
   }
}

ACTOR RainFXSpawnerB
{
   Speed 4
   Radius 3
   Height 3
   RenderStyle Add
   Alpha 0.4
   Scale 0.3
   ReactionTime 4
   PROJECTILE
   +BRIGHT
   +CLIENTSIDEONLY
   +THRUACTORS
   +MOVEWITHSECTOR
   +CEILINGHUGGER
   +DONTBLAST
   States
   {
   Spawn:
      TNT1 AAAAA 1
	  TNT1 A 0 A_Jump(120,"SpawnRain")
	  TNT1 A 0 A_Countdown
	  Loop
   SpawnRain:
      TNT1 A 0 A_SpawnItem("RainFX",0,0,0)
      Stop
   Death:
      TNT1 A 0
      Stop
   }
}

ACTOR RainFXSpawnerC
{
   Speed 8
   Radius 3
   Height 3
   RenderStyle Add
   Alpha 0.4
   Scale 0.3
   ReactionTime 4
   PROJECTILE
   +BRIGHT
   +CLIENTSIDEONLY
   +THRUACTORS
   +MOVEWITHSECTOR
   +CEILINGHUGGER
   +DONTBLAST
   States
   {
   Spawn:
      TNT1 AAAAAAA 1
	  TNT1 A 0 A_Jump(120,"SpawnRain")
	  TNT1 A 0 A_Countdown
	  Loop
   SpawnRain:
      TNT1 A 0 A_SpawnItem("RainFX",0,0,0)
      Stop
   Death:
      TNT1 A 0
      Stop
   }
}

ACTOR RainFX
{
   Speed 18
   Radius 3
   Height 3
   Scale 0.5
   RenderStyle Add
   Alpha 0.3
   Gravity 0.6
   PROJECTILE
   +BRIGHT
   +CLIENTSIDEONLY
   +THRUACTORS
   -NOGRAVITY
   +DONTBLAST
   States
   {
   Spawn:
      WDRP B 1
	  Loop
   Death:
      TNT1 A 0
	  TNT1 A 0 A_PlaySound("WATDRP",5,1.5,0)	
      Stop
   } 
}

ACTOR GemWater
{
   Speed 14
   Damage (2*random(3,4))
   Radius 8
   Height 5
   Gravity 0.6
   RenderStyle Add
   Alpha 0.3
   Scale 0.6
   PROJECTILE
   +BRIGHT
   -NOGRAVITY
   +DONTBLAST
   States
   {
   Spawn:
      WDRP A 1
	  Loop
   XDeath:
	  TNT1 A 0 A_JumpIfInventory("IsHuman",1,"Hit",AAPTR_Tracer)
	  Goto Death
   Hit:
	  TNT1 A 0 A_GiveToTarget("HitBeep",1)
	  Goto Death
   Death:
      TNT1 A 3 A_SpawnItemEx("JusticarAOEHealTrigger3")
	  TNT1 A 0 A_PlaySound("WATDRP",5,1.5,0)	
	  TNT1 A 0 A_Explode(1,12,0)
      Stop
   } 
}

Actor JusticarAOEHealTrigger3 : CustomInventory
{
	Inventory.Amount 1
	Inventory.MaxAmount 1
	Inventory.PickupSound "Justicar/healup"
	+NOSCREENFLASH
	Scale 0.035
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 1 A_FadeOut(0.1)
		Goto Spawn
	Pickup:
		TNT1 A 0 A_JumpIfInventory("IsHuman",1,"Darkness")
		TNT1 A 0 A_JumpIfInventory("GaunaWeapon",1,"GhoulNopeHeal")
		TNT1 A 0 A_JumpIfInventory("IsGhoul",1,"GhoulAOEHeal")
		fail
	GhoulAOEHeal:
		TNT1 A 0 A_GiveInventory("Health",1)
		Stop
	GhoulNopeHeal:
		TNT1 A 0
		Stop
	Darkness:
		TNT1 A 0 ACS_ExecuteAlways(134)
		TNT1 A 0 A_Playsound("Justicar/AOEHeal")
		Stop
	}
}

ACTOR GemWaterWave //Aesthetic. Deals no damage.
{
   Speed 8
   Radius 8
   Height 5
   RenderStyle Add
   Alpha 0.2
   Scale 0.2
   PROJECTILE
   +BRIGHT
   +THRUACTORS
   +MOVEWITHSECTOR
   +DONTBLAST
   States
   {
   Spawn:
      WTFX AAA 1
      TNT1 A 0 A_SetTranslucent(0.1)
   Death:
      TNT1 A 0
      Stop
   }
}

//=======================================================
//POISON

ACTOR PoisonGem : CustomInventory
{
   Inventory.Amount 1
   Inventory.MaxAmount 5
   Inventory.PickupSound "GEMGET"
   Inventory.PickupMessage "Poison Gem"
   Inventory.Icon IPGMA0
   Tag "Poison Gem - Poisonous pools sprout forth from the gem to act as traps."
   Scale 0.7
   +INVBAR
   +FLOORCLIP
   States
   {
   Spawn:
      POGM A 12
	  TNT1 A 0 A_SpawnItem("GemShine",0,0,0)
      Loop
   Use:
      TNT1 A 0 A_ThrowGrenade("PoisonGemSet",2,8,3,0)
      Stop
   } 
}

ACTOR PoisonGemSet
{
   Radius 3
   Height 5
   Speed 15
   Scale 0.6
   +MISSILE
   +DROPOFF
   +CANBOUNCEWATER
   +BOUNCEONWALLS
   +THRUACTORS
   +DONTBLAST
   +SKYEXPLODE
   BounceType Doom
   BounceCount 4
   WallBounceFactor 1.5
   BounceFactor 0.25
   BounceSound "GEMBNC"
   States
   {
   Spawn:
      POGM A 1 Bright		
	  Loop
   Death:
      POGM A 1 Bright
      TNT1 A 0 A_SpawnItem("PoisonGemPrepare",0,0,0)
      Stop
   } 
}

ACTOR PoisonGemPrepare
{
    Radius 3
    Height 5
    Speed 0
    Reactiontime 12
	Scale 0.6
    PROJECTILE
	+BRIGHT
    +THRUACTORS
	+NOTARGET
	+DONTBLAST
   States
   {
   Spawn:   
      POGM A 1
	  TNT1 A 0 ThrustThingZ(0,10,0,0)
	  TNT1 A 0 A_CountDown
      Loop
   Death:
      TNT1 A 0 A_SpawnItemEx("PoisonGemActive",0,0,0,0,0,0,0,32)
      Stop
   }
}

ACTOR PoisonGemActive
{
    Radius 3
    Height 5
    Speed 0
	Scale 0.6
    PROJECTILE
	Reactiontime 3
	RenderStyle Add
	Alpha 1
    +THRUACTORS
    -SHOOTABLE
	+BRIGHT
	+VISIBILITYPULSE
	+DONTBLAST
   States 
   {
   Spawn:  
      TNT1 A 0
      TNT1 A 0 A_AlertMonsters
      POGM A 4
	  TNT1 A 0 A_PlaySound("POSPUFF")
	  TNT1 AAA 0 A_CustomMissile("GemPoisonMist", random(-2,4), 0, random(0,360), CMF_AIMDIRECTION)
	  TNT1 AA 0 A_CustomMissile("GemPoisonCloud", random(0,4), 0, random(0,360), CMF_AIMDIRECTION)
	  POGM A 4
	  TNT1 A 0 A_PlaySound("POSPUFF")
	  TNT1 AAA 0 A_CustomMissile("GemPoisonMist", random(-2,4), 0, random(0,360), CMF_AIMDIRECTION)
	  TNT1 AA 0 A_CustomMissile("GemPoisonCloud", random(0,4), 0, random(0,360), CMF_AIMDIRECTION)
	  POGM A 4
	  TNT1 A 0 A_PlaySound("POSPUFF")
	  TNT1 AAA 0 A_CustomMissile("GemPoisonMist", random(-2,4), 0, random(0,360), CMF_AIMDIRECTION)
	  TNT1 AA 0 A_CustomMissile("GemPoisonCloud", random(0,4), 0, random(0,360), CMF_AIMDIRECTION)
	  POGM A 4
	  TNT1 A 0 A_PlaySound("POSPUFF")
	  TNT1 AAA 0 A_CustomMissile("GemPoisonMist", random(-2,4), 0, random(0,360), CMF_AIMDIRECTION)
	  TNT1 AA 0 A_CustomMissile("GemPoisonCloud", random(0,4), 0, random(0,360), CMF_AIMDIRECTION)
	  POGM A 4
	  TNT1 A 0 A_PlaySound("POSPUFF")
	  TNT1 AAA 0 A_CustomMissile("GemPoisonMist", random(-2,4), 0, random(0,360), CMF_AIMDIRECTION)
	  TNT1 AA 0 A_CustomMissile("GemPoisonCloud", random(0,4), 0, random(0,360), CMF_AIMDIRECTION)
	  POGM A 4
	  TNT1 AAA 0 A_CustomMissile("GemPoisonMist", random(-2,4), 0, random(0,360), CMF_AIMDIRECTION)
	  POGM A 4
	  TNT1 AAA 0 A_CustomMissile("GemPoisonMist", random(-2,4), 0, random(0,360), CMF_AIMDIRECTION)
	  POGM A 4
	  TNT1 AAA 0 A_CustomMissile("GemPoisonMist", random(-2,4), 0, random(0,360), CMF_AIMDIRECTION)
	  TNT1 A 0 A_PlaySound("POIBURST",5,1.5,0)
	  TNT1 AAA 0 A_SpawnItemEx("GemPoisonCloudLaunched",0,0,8,random(-2,2),random(-2,2),random(5,15),random(0,359),32)
	  POGM A 4
	  TNT1 AAA 0 A_CustomMissile("GemPoisonMist", random(-2,4), 0, random(0,360), CMF_AIMDIRECTION)
	  POGM A 4
	  TNT1 AAA 0 A_CustomMissile("GemPoisonMist", random(-2,4), 0, random(0,360), CMF_AIMDIRECTION)
	  POGM A 4
	  TNT1 AAA 0 A_CustomMissile("GemPoisonMist", random(-2,4), 0, random(0,360), CMF_AIMDIRECTION)
	  POGM A 4
	  TNT1 AAA 0 A_CustomMissile("GemPoisonMist", random(-2,4), 0, random(0,360), CMF_AIMDIRECTION)
	  POGM A 4
	  TNT1 AAA 0 A_CustomMissile("GemPoisonMist", random(-2,4), 0, random(0,360), CMF_AIMDIRECTION)
	  POGM A 4
	  TNT1 AAA 0 A_CustomMissile("GemPoisonMist", random(-2,4), 0, random(0,360), CMF_AIMDIRECTION)
	  POGM A 4
	  TNT1 AAA 0 A_CustomMissile("GemPoisonMist", random(-2,4), 0, random(0,360), CMF_AIMDIRECTION)
	  TNT1 A 0 A_CountDown
      Loop
   Death:
      TNT1 A 0
	  TNT1 A 0 A_PlaySound("GEMBRK",5,2,0)
      TNT1 AAAAAA 0 A_SpawnItemEx("GemShardPurple",0,0,3,random(-2,2),random(-2,2),random(3,9),random(0,359),32)
      Stop
   }
}

ACTOR GemPoisonCloud
{
   Speed 6
   Damage 3
   Radius 8
   Height 5
   RenderStyle Add
   Alpha 0.3
   Scale 0.8
   DamageType "ZombiePoison"
   PoisonDamage 68
   ReactionTime 4
   PROJECTILE
   +BRIGHT
   +FLOATBOB
   +ADDITIVEPOISONDURATION
   +DONTBLAST
   States
   {
   Spawn:
	  TNT1 A 1
	  TNT1 A 0 A_SpawnItem("PoisonMTrailSmall",0,0,0)
	  TNT1 A 0 A_SpawnItem("PoisonMTrailSmall",0,0,0)
	  TNT1 A 0 A_SpawnItem("PoisonMTrailSmall",0,0,0)
	  TNT1 A 0 A_SpawnItem("PoisonMTrailSmall",0,0,0)
	  TNT1 A 0 A_Jump(60,"Death")
	  TNT1 A 0 A_CountDown
	  Loop
   XDeath:
	  TNT1 A 0 A_GiveToTarget("HitBeep",1)
	  Goto Death
   Death:
      TNT1 A 0 A_PlaySound("POSPUDL",5,0.5,0)
	  TNT1 A 0 A_CustomMissile("GemPoisonBubble",0,0,random(0,360),CMF_AIMDIRECTION,random(-2,7))  //Randomly spawns from 1-3 upon death.
	  TNT1 A 0 A_Jump(80,4)
	  TNT1 A 0 A_CustomMissile("GemPoisonBubble",0,0,random(0,360),CMF_AIMDIRECTION,random(-2,7))
	  TNT1 A 0 A_Jump(80,2)
	  TNT1 A 0 A_CustomMissile("GemPoisonBubble",0,0,random(0,360),CMF_AIMDIRECTION,random(-2,7))
      POPD AB 1
	  POPD C 2
	  POPD DE 1
      Stop
   } 
}

ACTOR GemPoisonCloudLaunched
{
   Speed 8
   Damage 3
   Radius 8
   Height 5
   Gravity 0.6	
   RenderStyle Add
   Alpha 0.3
   Scale 0.8
   DamageType "ZombiePoison"
   PoisonDamage 68
   ReactionTime 15
   PROJECTILE
   +BRIGHT
   -NOGRAVITY
   +BOUNCEONCEILINGS
   +ADDITIVEPOISONDURATION
   +DONTBLAST
   MissileType "PoisonMTrail"
   MissileHeight 8
   States
   {
   Spawn:
	  TNT1 A 1
	  TNT1 A 0 A_SpawnItem("PoisonMTrail",0,0,0)
	  TNT1 A 0 A_SpawnItem("PoisonMTrail",0,0,0)
	  TNT1 A 0 A_SpawnItem("PoisonMTrail",0,0,0)
	  TNT1 A 0 A_SpawnItem("PoisonMTrail",0,0,0)
	  TNT1 A 0 A_CountDown
	  Loop
   XDeath:
	  TNT1 A 0 A_GiveToTarget("HitBeep",1)
	  Goto Death
   Death:
	  TNT1 A 0 A_SpawnItem("GemPoisonPuddle",0,0,0)
      POPD AB 1
	  POPD C 2
	  POPD DE 1
      Stop
   } 
}

ACTOR PoisonMTrail
{
   Speed 1
   Radius 3
   Height 3
   RenderStyle Add
   Alpha 0.5
   Scale 0.8
   Gravity 0.6
   PROJECTILE
   +BRIGHT
   -NOGRAVITY
   +THRUACTORS
   +DONTBLAST
   States
   {
   Spawn:
      POPD ABCDE 1
	  Stop
   Death:
      TNT1 A 0
      Stop
   } 
}

ACTOR PoisonMTrailSmall
{
   Speed 1
   Radius 3
   Height 3
   RenderStyle Add
   Alpha 0.5
   Scale 0.5
   Gravity 0.6
   PROJECTILE
   +BRIGHT
   -NOGRAVITY
   +THRUACTORS
   +DONTBLAST
   States
   {
   Spawn:
      POPD ABCDE 1
	  Stop
   Death:
      TNT1 A 0
      Stop
   } 
}

ACTOR GemPoisonBubble
{
   Speed 4
   Damage 1
   Radius 8
   Height 5
   RenderStyle Add
   Alpha 0.4
   Scale 0.6
   Gravity 0.3
   PROJECTILE
   +BRIGHT
   -NOGRAVITY
   +THRUACTORS
   +DROPOFF
   +DONTBLAST
   States
   {
   Spawn:
      PORB ABCD 1
	  Loop
   XDeath:
	  TNT1 A 0 A_GiveToTarget("HitBeep",1)
	  Goto Death
   Death:
      TNT1 A 0 A_SpawnItem("GemPoisonPuddle",0,0,0)
      Stop
   } 
}

ACTOR GemPoisonPuddle
{
   Speed 0
   Damage 2
   Radius 8
   Height 5
   RenderStyle Add
   Alpha 0.4
   Scale 1.2
   Gravity 0.6
   DamageType "ZombiePoison"
   PoisonDamage 20
   ReactionTime 1800
   PROJECTILE
   +BRIGHT
   +MOVEWITHSECTOR
   +DROPOFF
   -NOGRAVITY
   +ADDITIVEPOISONDURATION
   +DONTBLAST
   States
   {
   Spawn:
      PPUD A 1
	  TNT1 A 0 A_CountDown
	  Loop
   XDeath:
	  TNT1 A 0 A_GiveToTarget("HitBeep",1)
	  Goto Death
   Death:
      PPUD A 1 A_SetTranslucent(0.35)
      PPUD A 1 A_SetTranslucent(0.3)
	  PPUD A 1 A_SetTranslucent(0.25)
	  PPUD A 1 A_SetTranslucent(0.2)
	  PPUD A 1 A_SetTranslucent(0.15)
	  PPUD A 1 A_SetTranslucent(0.1)
      Stop
   } 
}

ACTOR GemPoisonMist
{
   Speed 3
   Damage 2
   Radius 8
   Height 5
   RenderStyle Add
   Alpha 0.3
   Scale 0.6
   DamageType "ZombiePoison"
   PoisonDamage 30
   ReactionTime 2
   SeeSound "POIMIST"
   PROJECTILE
   +BRIGHT
   +FLOATBOB
   +ADDITIVEPOISONDURATION
   +DONTBLAST
   States
   {
   Spawn:
      PMST ABCDE 2
	  TNT1 A 0 A_CountDown
	  Loop
   XDeath:
	  TNT1 A 0 A_GiveToTarget("HitBeep",1)
	  Goto Death
   Death:
      PMST A 1 A_SetTranslucent(0.35)
      PMST B 1 A_SetTranslucent(0.3)
	  PMST C 1 A_SetTranslucent(0.25)
	  PMST D 1 A_SetTranslucent(0.2)
	  PMST E 1 A_SetTranslucent(0.15)
      Stop
   } 
}
//=======================================================
//ICE

ACTOR IceGem : CustomInventory
{
   Inventory.Amount 1
   Inventory.MaxAmount 5
   Inventory.PickupSound "GEMGET"
   Inventory.PickupMessage "Ice Gem"
   Inventory.Icon IIGMA0
   Tag "Ice Gem - Freezes enemies with shards of ice."
   Scale 0.7
   +INVBAR
   +FLOORCLIP
   States
   {
   Spawn:
      IGEM A 12
	  TNT1 A 0 A_SpawnItem("GemShine",0,0,0)
      Loop
   Use:
      TNT1 A 0 A_ThrowGrenade("IceGemSet",2,8,3,0)
      Stop
   } 
}

ACTOR IceGemSet
{
   Radius 3
   Height 5
   Speed 50
   Scale 0.6
   +MISSILE
   +DROPOFF
   +CANBOUNCEWATER
   +BOUNCEONWALLS
   +THRUACTORS
   +DONTBLAST
   +SKYEXPLODE
   BounceType Doom
   BounceCount 4
   WallBounceFactor 1.5
   BounceFactor 0.25
   BounceSound "GEMBNC"
   States
   {
   Spawn:
      IGEM A 1 Bright		
	  Loop
   Death:
      IGEM A 1 Bright
      TNT1 A 0 A_SpawnItem("IceGemPrepare",0,0,0)
      Stop
   } 
}

ACTOR IceGemPrepare
{
    Radius 3
    Height 5
    Speed 0
    Reactiontime 12
	Scale 0.6
    PROJECTILE
	+BRIGHT
    +THRUACTORS
	+NOTARGET
	+DONTBLAST
   States
   {
   Spawn:   
      IGEM A 1
	  TNT1 A 0 ThrustThingZ(0,10,0,0)
	  TNT1 A 0 A_CountDown
      Loop
   Death:
      TNT1 A 0 A_SpawnItemEx("IceGemActive",0,0,0,0,0,0,0,32)
      Stop
   }
}

ACTOR IceGemActive
{
    Radius 3
    Height 5
    Speed 0
	Scale 0.5
    PROJECTILE
	Reactiontime 13
	RenderStyle Add
	Alpha 1
    +THRUACTORS
    -SHOOTABLE
	+BRIGHT
	+VISIBILITYPULSE
	+DONTBLAST
   States
   {
   Spawn:  
      TNT1 A 0
	  TNT1 A 0 A_SpawnItemEx("IceStarFX",0,0,4)
	  TNT1 A 0 A_AlertMonsters
	  TNT1 A 0 A_PlaySound("ICESHRD")
	  TNT1 AAA 0 A_CustomMissile("IceShardMissile", 3, 0, random(0,360), CMF_AIMDIRECTION, random(0,10))
	  IGEM A 2
	  TNT1 A 0 A_PlaySound("ICESHRD")
	  TNT1 AAA 0 A_CustomMissile("IceShardMissile", 3, 0, random(0,360), CMF_AIMDIRECTION, random(0,10))
	  IGEM A 2
	  TNT1 A 0 A_PlaySound("ICESHRD")
	  TNT1 AAA 0 A_CustomMissile("IceShardMissile", 3, 0, random(0,360), CMF_AIMDIRECTION, random(0,10))
	  IGEM A 2
	  TNT1 A 0 A_PlaySound("ICESHRD")
	  TNT1 AAA 0 A_CustomMissile("IceShardMissile", 3, 0, random(0,360), CMF_AIMDIRECTION, random(0,10))
	  IGEM A 2
	  TNT1 A 0 A_CountDown
      Goto Spawn+2
   Death:
      TNT1 A 0
	  TNT1 A 0 A_PlaySound("GEMBRK",5,2,0)
      TNT1 AAAAAA 0 A_SpawnItemEx("GemShardLightBlue",0,0,3,random(-2,2),random(-2,2),random(3,9),random(0,359),32)
      Stop
   }
}

ACTOR IceStarFX
{
    Radius 10
    Height 6
    Speed 0
	Alpha 0.6
    Scale 0.5
    RenderStyle Add
    PROJECTILE
	Reactiontime 30
    +THRUACTORS
	+BRIGHT
	+NOCLIP
	+CLIENTSIDEONLY
	+DONTBLAST
   States
   {
   Spawn: 
      ISTR A 1 A_SetTranslucent(0.55)
      ISTR A 1 A_SetTranslucent(0.5)
	  ISTR A 1 A_SetTranslucent(0.45)
	  ISTR A 1 A_SetTranslucent(0.4)
	  ISTR A 1 A_SetTranslucent(0.35)
	  ISTR A 1 A_SetTranslucent(0.3)
	  ISTR A 1 A_SetTranslucent(0.35)
	  ISTR A 1 A_SetTranslucent(0.4)
	  ISTR A 1 A_SetTranslucent(0.45)
	  ISTR A 1 A_SetTranslucent(0.5)
	  ISTR A 1 A_SetTranslucent(0.55)	  
	  TNT1 A 0 A_CountDown
      Loop
   Death:
      ISTR A 1 A_SetTranslucent(0.5)
	  ISTR A 1 A_SetTranslucent(0.45)
	  ISTR A 1 A_SetTranslucent(0.4)
	  ISTR A 1 A_SetTranslucent(0.35)
	  ISTR A 1 A_SetTranslucent(0.3)
	  ISTR A 1 A_SetTranslucent(0.25)
	  ISTR A 1 A_SetTranslucent(0.2)
	  ISTR A 1 A_SetTranslucent(0.15)
	  ISTR A 1 A_SetTranslucent(0.10)
      Stop
   } 
}

ACTOR IceShardMissile
{
   Speed 32
   Damage 2
   Radius 8
   Height 5
   RenderStyle Add
   Alpha 0.6
   Scale 0.5
   DamageType "minion"
   PROJECTILE
   +BRIGHT
   +DONTBLAST
   +FORCERADIUSDMG
   States
   {
   Spawn:
      ICRD A 1
	  Loop
   XDeath:
	  TNT1 A 0 A_GiveToTarget("HitBeep",1)
	  Goto Death
   Death:
      TNT1 A 0
	  TNT1 A 0 A_PlaySound("ICEIMPCT")
	  TNT1 A 0 A_Jump(125,2) //Sometimes skips ice breaker spawn, else enemies will usually burst into shards of ice with no prior frozen anim.
	  TNT1 A 0 A_SpawnItem("IceShardBreaker",0,0,0)
	  TNT1 AAA 0 A_SpawnItemEx("IceShardDebris",0,0,3,random(-2,2),random(-2,2),random(3,9),random(0,359),32)
      Stop
   }
}

Actor IceShardBreaker //To break frozen targets.
{
    Speed 2
    Damage 1
    Radius 10
    Height 10
	PROJECTILE
	+NOEXTREMEDEATH
	+DONTBLAST
	+STRIFEDAMAGE
	States
	{
	Spawn:
	  TNT1 A 1
	  Stop
	XDeath:
	  TNT1 A 0 A_GiveToTarget("HitBeep",1)
	  Goto Death
    Death:
      TNT1 A 1
      Stop
   }
}

ACTOR IceShardDebris
{
   Speed 8
   Radius 2
   Height 2
   Scale 0.2
   Gravity 0.6
   PROJECTILE
   +BRIGHT
   -NOGRAVITY
   +DONTSPLASH
   +DONTBLAST
   +CLIENTSIDEONLY
   States
   {
   Spawn:
      XCHN A 1	  
	  Loop
   Death:
      TNT1 A 0
      Stop
   }
}

//=======================================================
//DARK

ACTOR DarkGem : CustomInventory
{
   Inventory.Amount 1
   Inventory.MaxAmount 3
   Inventory.PickupSound "GEMGET"
   Inventory.PickupMessage "Dark Gem"
   Inventory.Icon IDGMA0
   Tag "Dark Gem - Terrorizes enemies with darkness."
   Scale 0.7
   +INVBAR
   +FLOORCLIP
   States
   {
   Spawn:
      DGEM A 12
	  TNT1 A 0 A_SpawnItem("GemShine",0,0,0)
      Loop
   Use:
      TNT1 A 0 A_ThrowGrenade("DarkGemSet",2,8,3,0)
      Stop
   } 
}

ACTOR DarkGemSet
{
   Radius 3
   Height 5
   Speed 50
   Scale 0.6
   +MISSILE
   +DROPOFF
   +CANBOUNCEWATER
   +BOUNCEONWALLS
   +THRUACTORS
   +DONTBLAST
   +SKYEXPLODE
   BounceType Doom
   BounceCount 4
   WallBounceFactor 1.5
   BounceFactor 0.25
   BounceSound "GEMBNC"
   States
   {
   Spawn:
      DGEM A 1 Bright		
	  Loop
   Death:
      DGEM A 1 Bright
      TNT1 A 0 A_SpawnItem("DarkGemPrepare",0,0,0)
      Stop
   } 
}

ACTOR DarkGemPrepare
{
    Radius 3
    Height 5
    Speed 0
    Reactiontime 12
	Scale 0.6
    PROJECTILE
	+BRIGHT
    +THRUACTORS
	+NOTARGET
	+DONTBLAST
   States
   {
   Spawn:   
      DGEM A 1
	  TNT1 A 0 ThrustThingZ(0,10,0,0)
	  TNT1 A 0 A_CountDown
      Loop
   Death:
      TNT1 A 0 A_SpawnItemEx("DarkGemActive",0,0,0,0,0,0,0,32)
      Stop
   }
}

ACTOR DarkGemActive
{
    Radius 3
    Height 5
    Speed 0
	Scale 0.5
    PROJECTILE
	Reactiontime 14
	RenderStyle Add
	Alpha 1
    +THRUACTORS
    -SHOOTABLE
	+BRIGHT
	+VISIBILITYPULSE
	+DONTBLAST
   States
   {
   Spawn:  
      TNT1 A 0
	  TNT1 A 0 A_SpawnItem("DarkVortexProjRise",0,5,0)
	  TNT1 A 0 A_AlertMonsters
	  DGEM A 10
	  TNT1 A 0 A_CountDown
      Loop
   Death:
      TNT1 A 0
	  TNT1 A 0 A_PlaySound("GEMBRK",5,2,0)
      TNT1 AAAAAA 0 A_SpawnItemEx("GemShardBlack",0,0,3,random(-2,2),random(-2,2),random(3,9),random(0,359),32)
      Stop
   }
}

ACTOR DarkVortexProjRise
{
    Radius 10
    Height 6
    Speed 4
	Alpha 0.8
    Scale 0.8
	Damage 1
    RenderStyle Add
	Damagetype "DarkVortex"
    PROJECTILE
    +THRUACTORS
	+FORCERADIUSDMG
	+NOCLIP
	+BRIGHT
	+DONTBLAST
	Reactiontime 4
   States
   {
   Spawn: 
      DVRT ABC 2 ThrustThingZ(0,8,0,0)
	  TNT1 AA 0 A_CustomMissile("DarkVortexProjSmall", random(-5,10), 0, random(0,360), CMF_AIMDIRECTION, random(-5,18))
	  TNT1 A 0 A_Explode(6,120,0,1,75)
	  TNT1 A 0 A_RadiusThrust(-500,60,2)
	  TNT1 A 0 A_PlaySound("DRKVORTX",5,2,1)
	  TNT1 A 0 A_Explode(6,120,0,1,75)
	  TNT1 A 0 A_RadiusThrust(-500,60,2)
	  TNT1 AA 0 A_CustomMissile("DarkVortexProjSmall", random(-5,10), 0, random(0,360), CMF_AIMDIRECTION, random(-5,18))
	  TNT1 A 0 A_CountDown
      Loop
   Death:
      TNT1 A 0 A_CustomMissile("DarkVortexProj", 0, 0, random(0,360), CMF_AIMDIRECTION, random(-5,18))
	  TNT1 A 0 A_CustomMissile("DarkVortexProj", 0, 0, random(0,360), CMF_AIMDIRECTION, random(-5,18))
      Stop
   } 
}

ACTOR DarkVortexProj
{
    Radius 10
    Height 6
    Speed 12
	Alpha 0.8
    Scale 0.8
	Damage 1
    RenderStyle Add
    PROJECTILE
	Reactiontime 3
	Damagetype "DarkVortex"
    +THRUACTORS
	+FORCERADIUSDMG
	+NOCLIP
	+BRIGHT
	+DONTBLAST
   States
   {
   Spawn: 
      DVRT AB 2
	  TNT1 AA 0 A_CustomMissile("DarkVortexProjSmall", random(-5,10), 0, random(0,360), CMF_AIMDIRECTION, random(-5,18))
	  DVRT C 2	 
	  TNT1 A 0 A_Explode(4,125,0)
	  TNT1 A 0 A_RadiusThrust(-500,60,2)
	  TNT1 A 0 A_Jump(80,9) //Jump to cause the projectile to some times destroy faster.
	  DVRT ABC 2
	  TNT1 A 0 A_PlaySound("DRKVORTX",5,2,1)
	  TNT1 A 0 A_Explode(5,125,0)
	  TNT1 A 0 A_RadiusThrust(-500,60,2)
	  TNT1 AA 0 A_CustomMissile("DarkVortexProjSmall", random(-5,10), 0, random(0,360), CMF_AIMDIRECTION, random(-5,18))
	  TNT1 A 0 A_CountDown
      Loop
   Death:
      TNT1 A 0 A_SpawnItem("DarkVortexProjDrop",0,0,0)
      Stop
   } 
}

ACTOR DarkVortexProjDrop
{
    Radius 10
    Height 6
    Speed 4
	Alpha 0.8
    Scale 0.8
	Damage 1
    RenderStyle Add
	Damagetype "DarkVortex"
    PROJECTILE
	+NOCLIP
    +THRUACTORS
	+FORCERADIUSDMG
	+BRIGHT
	+DONTBLAST
   States
   {
   Spawn: 
      DVRT ABC 2 ThrustThingZ(0,-8,0,0)
	  TNT1 AA 0 A_CustomMissile("DarkVortexProjSmall", random(-5,10), 0, random(0,360), CMF_AIMDIRECTION, random(-5,18))
	  TNT1 A 0 A_Explode(4,125,0)
	  TNT1 A 0 A_RadiusThrust(-500,60,2)
	  DVRT ABC 2 ThrustThingZ(0,-8,0,0)
	  TNT1 A 0 A_PlaySound("DRKVORTX",5,2,1)
	  TNT1 A 0 A_Explode(5,125,0)
	  TNT1 A 0 A_RadiusThrust(-500,60,2)
	  TNT1 AA 0 A_CustomMissile("DarkVortexProjSmall", random(-5,10), 0, random(0,360), CMF_AIMDIRECTION, random(-5,18))
	  DVRT ABC 2 ThrustThingZ(0,-8,0,0)
	  TNT1 AA 0 A_CustomMissile("DarkVortexProjSmall", random(-5,10), 0, random(0,360), CMF_AIMDIRECTION, random(-5,18))
	  TNT1 A 0 A_Explode(4,125,0)
	  TNT1 A 0 A_RadiusThrust(-500,60,2)
	  DVRT ABC 2 ThrustThingZ(0,-8,0,0)
	  TNT1 A 0 A_PlaySound("DRKVORTX",5,2,1)
	  TNT1 A 0 A_Explode(5,125,0)
	  TNT1 A 0 A_RadiusThrust(-500,60,2)
	  TNT1 AA 0 A_CustomMissile("DarkVortexProjSmall", random(-5,10), 0, random(0,360), CMF_AIMDIRECTION, random(-5,18))
      Stop
   Death:
      TNT1 A 0 A_SpawnItem("DarkVortexNova",0,0,0)
      Stop
   } 
}

ACTOR DarkVortexNova
{
    Radius 10
    Height 6
    Speed 0
	Alpha 0.6
    Scale 0.8
	Damage 1
    RenderStyle Add
	Damagetype "DarkVortex"
    PROJECTILE
	+NOCLIP
    +THRUACTORS
	+FORCERADIUSDMG
	+BRIGHT
	+DONTBLAST
   States
   {
   Spawn: 
      TNT1 A 1
      TNT1 A 0 A_PlaySound("VOIDHIT",5,0.7,0)
	  TNT1 A 0 A_Explode(4,150,0,1,90)  
	  TNT1 A 0 A_Explode(4,150,0,1,90)	  
	  TNT1 A 0 A_Explode(4,150,0,1,90)	  
	  TNT1 A 0 A_Explode(4,150,0,1,90)	  
	  TNT1 A 0 A_SpawnItemEx("GemDarkOrb",0,0,3,random(-2,2),random(-2,2),random(2,5),random(0,359),32)
      Stop
   Death:
   	  TNT1 A 0
      Stop
   } 
}

ACTOR DarkVortexProjSmall //Randomly fired out from DarkVortexProj.
{
    Radius 10
    Height 6
    Speed 5
	Alpha 0.8
    Scale 0.5
	Damage 1
    RenderStyle Add
    PROJECTILE
	Damagetype "DarkVortex"
    +THRUACTORS
	+FORCERADIUSDMG
	+NOCLIP
	+BRIGHT
	+DONTBLAST
   States
   {
   Spawn: 
      DVRS A 2
	  DVRS B 2
	  TNT1 A 0 A_Explode(4,40,0)
	  DVRS C 2	 
	  TNT1 A 0 A_Explode(4,40,0)
	  DVRS D 2
      Stop
   Death:
      BVDP A 1 A_SetTranslucent(0.5)
	  BVDP B 1 A_SetTranslucent(0.45)
	  BVDP C 1 A_SetTranslucent(0.4)
	  BVDP A 1 A_SetTranslucent(0.35)
	  BVDP B 1 A_SetTranslucent(0.3)
	  BVDP C 1 A_SetTranslucent(0.25)
	  BVDP A 1 A_SetTranslucent(0.2)
	  BVDP B 1 A_SetTranslucent(0.15)
	  BVDP C 1 A_SetTranslucent(0.10)
      Stop
   } 
}

ACTOR GemDarkOrb
{
    Radius 10
    Height 6
    Speed 5
	Alpha 0.8
    Scale 0.5
	Damage 1
    RenderStyle Add
	Damagetype "DarkVortex"
    PROJECTILE
    +THRUACTORS
	+NOCLIP
	+FORCERADIUSDMG
	+BRIGHT
	+DONTBLAST
   States
   {
   Spawn: 
	  TNT1 A 0 A_Explode(3,120,0)
	  TNT1 A 0 A_Explode(3,120,0)
	  TNT1 A 0 A_Explode(3,120,0)
	  TNT1 A 0 A_Explode(3,120,0)
	  BVOD B 1	 
	  TNT1 A 0 A_Explode(3,120,0)
	  BVOD C 1	 
	  TNT1 A 0 A_Explode(3,120,0)
	  BVOD ABC 1 ThrustThingZ(0,20,0,0)
	  TNT1 A 0 A_Explode(3,120,0)
	  BVOD ABC 1 ThrustThingZ(0,25,0,0)
	  TNT1 A 0 A_Explode(3,120,0)
	  BVOD ABC 1 ThrustThingZ(0,30,0,0)
	  TNT1 A 0 A_Explode(3,120,0)
	  BVOD ABC 1 ThrustThingZ(0,35,0,0)
	  TNT1 A 0 A_Explode(3,120,0)
	  BVOD ABC 1 ThrustThingZ(0,40,0,0)
	  TNT1 A 0 A_Explode(3,120,0)
	  BVOD ABC  1 
	  BVOD ABC  1 A_Stop
	  TNT1 A 0 A_PlaySound("DRKMVRTX",5,1.6,0)
   Death:
      TNT1 A 1
      TNT1 A 0 A_CustomMissile("DarkEnergyBolt", 0, 0, 60, CMF_AIMDIRECTION)
      TNT1 A 0 A_CustomMissile("DarkEnergyBolt", 0, 0, 70, CMF_AIMDIRECTION)
      TNT1 A 0 A_CustomMissile("DarkEnergyBolt", 0, 0, 80, CMF_AIMDIRECTION)
      TNT1 A 0 A_CustomMissile("DarkEnergyBolt", 0, 0, 90, CMF_AIMDIRECTION)
      TNT1 A 0 A_CustomMissile("DarkEnergyBolt", 0, 0, 100, CMF_AIMDIRECTION)
      TNT1 A 0 A_CustomMissile("DarkEnergyBolt", 0, 0, 110, CMF_AIMDIRECTION)
      TNT1 A 0 A_CustomMissile("DarkEnergyBolt", 0, 0, 120, CMF_AIMDIRECTION)
      TNT1 A 0 A_CustomMissile("DarkEnergyBolt", 0, 0, 130, CMF_AIMDIRECTION)
      TNT1 A 0 A_CustomMissile("DarkEnergyBolt", 0, 0, 140, CMF_AIMDIRECTION)
      TNT1 A 0 A_CustomMissile("DarkEnergyBolt", 0, 0, 150, CMF_AIMDIRECTION)
      TNT1 A 0 A_CustomMissile("DarkEnergyBolt", 0, 0, 160, CMF_AIMDIRECTION)
      TNT1 A 0 A_CustomMissile("DarkEnergyBolt", 0, 0, 170, CMF_AIMDIRECTION)
      TNT1 A 0 A_CustomMissile("DarkEnergyBolt", 0, 0, 180, CMF_AIMDIRECTION)
      TNT1 A 0 A_CustomMissile("DarkEnergyBolt", 0, 0, 190, CMF_AIMDIRECTION)
      TNT1 A 0 A_CustomMissile("DarkEnergyBolt", 0, 0, 200, CMF_AIMDIRECTION)
      TNT1 A 0 A_CustomMissile("DarkEnergyBolt", 0, 0, 210, CMF_AIMDIRECTION)
      TNT1 A 0 A_CustomMissile("DarkEnergyBolt", 0, 0, 220, CMF_AIMDIRECTION)
      TNT1 A 0 A_CustomMissile("DarkEnergyBolt", 0, 0, 230, CMF_AIMDIRECTION)
      TNT1 A 0 A_CustomMissile("DarkEnergyBolt", 0, 0, 240, CMF_AIMDIRECTION)
      TNT1 A 0 A_CustomMissile("DarkEnergyBolt", 0, 0, 250, CMF_AIMDIRECTION)
      TNT1 A 0 A_CustomMissile("DarkEnergyBolt", 0, 0, 260, CMF_AIMDIRECTION)
      TNT1 A 0 A_CustomMissile("DarkEnergyBolt", 0, 0, 270, CMF_AIMDIRECTION)
      TNT1 A 0 A_CustomMissile("DarkEnergyBolt", 0, 0, 280, CMF_AIMDIRECTION)
      TNT1 A 0 A_CustomMissile("DarkEnergyBolt", 0, 0, 290, CMF_AIMDIRECTION)
      TNT1 A 0 A_CustomMissile("DarkEnergyBolt", 0, 0, 300, CMF_AIMDIRECTION)
      TNT1 A 0 A_CustomMissile("DarkEnergyBolt", 0, 0, 310, CMF_AIMDIRECTION)
      Stop
   } 
}

ACTOR DarkEnergyBolt
{
   Speed 12
   PROJECTILE
   RenderStyle Add
   Damage 1
   Damagetype "DarkVortex"
   +BLOODLESSIMPACT
   +THRUACTORS
   +RANDOMIZE
   +DONTBLAST
   +BRIGHT
   +NOCLIP
   Scale 0.3
   Alpha 0.6
   States
   {
   Spawn:
	  DNRG AB 1
	  TNT1 A 0 A_Explode(5,15,0,1,15)
	  DNRG AB 1
	  TNT1 A 0 A_Explode(5,15,0,1,15)
	  DNRG AB 1 A_SetTranslucent(0.4)
   Death:
      DNRG A 2 A_SetTranslucent(0.2)
      Stop
   }
}
//=================================================================
//GENERAL AESTHETIC EFFECTS

ACTOR GemShardRed
{
  Radius 1
  Height 1
  Speed 15
  PROJECTILE
  -NOGRAVITY
  +THRUACTORS
  Gravity 0.6
  RenderStyle Add
  Alpha 0.8
  Scale 0.4
  States
  {
  Spawn:
     GRSD ABCD 1
	 Loop 
  Death:
     TNT1 A 0
     Stop
  }
}

ACTOR GemShardBrown
{
  Radius 1
  Height 1
  Speed 15
  PROJECTILE
  -NOGRAVITY
  +THRUACTORS
  Gravity 0.6
  RenderStyle Add
  Alpha 0.8
  Scale 0.4
  States
  {
  Spawn:	
     GBRD ABCD 1
	 Loop 
  Death:
     TNT1 A 0
     Stop
  }
}

ACTOR GemShardGreen
{
  Radius 1
  Height 1
  Speed 15
  PROJECTILE
  -NOGRAVITY
  +THRUACTORS
  Gravity 0.6
  RenderStyle Add
  Alpha 0.8
  Scale 0.4
  States
  {
  Spawn:	
     GGSD ABCD 1
	 Loop 
  Death:
     TNT1 A 0
     Stop
  }
}

ACTOR GemShardBlue
{
  Radius 1
  Height 1
  Speed 15
  PROJECTILE
  -NOGRAVITY
  +THRUACTORS
  Gravity 0.6
  RenderStyle Add
  Alpha 0.8
  Scale 0.4
  States
  {
  Spawn:	
     GBSD ABCD 1
	 Loop 
  Death:
     TNT1 A 0
     Stop
  }
}

ACTOR GemShardYellow
{
  Radius 1
  Height 1
  Speed 15
  PROJECTILE
  -NOGRAVITY
  +THRUACTORS
  Gravity 0.6
  RenderStyle Add
  Alpha 0.8
  Scale 0.4
  States
  {
  Spawn:
     GYSD ABCD 1
	 Loop 
  Death:
     TNT1 A 0
     Stop
  }
}

ACTOR GemShardPurple
{
  Radius 1
  Height 1
  Speed 15
  PROJECTILE
  -NOGRAVITY
  +THRUACTORS
  Gravity 0.6
  RenderStyle Add
  Alpha 0.8
  Scale 0.4
  States
  {
  Spawn:	
     GPSD ABCD 1
	 Loop 
  Death:
     TNT1 A 0
     Stop
  }
}

ACTOR GemShardLightBlue
{
  Radius 1
  Height 1
  Speed 15
  PROJECTILE
  -NOGRAVITY
  +THRUACTORS
  Gravity 0.6
  RenderStyle Add
  Alpha 0.8
  Scale 0.4
  States
  {
  Spawn:
     GISD ABCD 1
	 Loop 
  Death:
     TNT1 A 0
     Stop
  }
}

ACTOR GemShardBlack
{
  Radius 1
  Height 1
  Speed 15
  PROJECTILE
  -NOGRAVITY
  +THRUACTORS
  Gravity 0.6
  RenderStyle Add
  Alpha 0.8
  Scale 0.4
  States
  {
  Spawn:
     GDSD ABCD 1
	 Loop 
  Death:
     TNT1 A 0
     Stop
  }
}

ACTOR GemShardWhite
{
  Radius 1
  Height 1
  Speed 15
  PROJECTILE
  -NOGRAVITY
  +THRUACTORS
  Gravity 0.6
  RenderStyle Add
  Alpha 0.8
  Scale 0.4
  States
  {
  Spawn:	
     GWSD ABCD 1
	 Loop 
  Death:
     TNT1 A 0
     Stop
  }
}

ACTOR GemShine
{
  Radius 1
  Height 1
  Speed 0
  PROJECTILE
  +THRUACTORS
  +MOVEWITHSECTOR
  +NOCLIP
  +DONTBLAST
  RenderStyle Add
  Alpha 0.6
  Scale 0.5
  States
  {
  Spawn:
     GSHN A 1	
	 TNT1 A 0 A_SetTranslucent(0.3)
	 GSHN A 1	
	 TNT1 A 0 A_SetTranslucent(0.25)
	 GSHN A 1	
	 TNT1 A 0 A_SetTranslucent(0.15)
	 GSHN A 1	
	 TNT1 A 0 A_SetTranslucent(0.1)
	 GSHN A 1
	 Stop 
  Death:
     TNT1 A 0
     Stop
  }
}

actor GaunaDarkIcon : Inventory
{
  Inventory.MaxAmount 1
}

actor GaunaAirIcon : Inventory
{
  Inventory.MaxAmount 1
}

actor GaunaFireIcon : Inventory
{
  Inventory.MaxAmount 1
}

actor GaunaWaterIcon : Inventory
{
  Inventory.MaxAmount 1
}

actor GaunaEarthIcon : Inventory
{
  Inventory.MaxAmount 1
}

actor GaunaPoisonIcon : Inventory
{
  Inventory.MaxAmount 1
}

actor GaunaIceIcon : Inventory
{
  Inventory.MaxAmount 1
}

actor GaunaDarkTempIcon : Inventory
{
  Inventory.MaxAmount 1
}

actor GaunaAirTempIcon : Inventory
{
  Inventory.MaxAmount 1
}

actor GaunaFireTempIcon : Inventory
{
  Inventory.MaxAmount 1
}

actor GaunaWaterTempIcon : Inventory
{
  Inventory.MaxAmount 1
}

actor GaunaEarthTempIcon : Inventory
{
  Inventory.MaxAmount 1
}

actor GaunaPoisonTempIcon : Inventory
{
  Inventory.MaxAmount 1
}

actor GaunaIceTempIcon : Inventory
{
  Inventory.MaxAmount 1
}