// Decorate code for REVY
Actor REVY : PlayerPawn
{
     
+NOSKIN
+NOICEDEATH
+NODAMAGETHRUST
+QUICKTORETALIATE   
+GHOST  
    Speed 1
    Health 100
	Player.Maxhealth 100
    Radius 16
    Height 56
    Mass 700
    PainChance 255
    Player.ColorRange 112, 127
    Player.DisplayName "Revy"
    Player.CrouchSprite "PLYC"
	Player.ScoreIcon "REVYST"
    Player.WeaponSlot 1, Duals
    Player.WeaponSlot 2, M79
	Player.StartItem "Duals", 1
    Player.StartItem "Dual9mmPrimary", 30
	Player.StartItem "RevyJumpAmmo", 100
	Player.StartItem "M79", 1
	Player.StartItem "M79Ammo", 10
	Player.StartItem "clip"
    Player.StartItem "IsHuman", 1
    Player.StartItem "Screamer", 0
	Player.StartItem "SpecialAbility", 1
    Player.ForwardMove 1.0
    Player.SideMove 1.0
    Player.SoundClass "Revy"
	Damagefactor "AntiAirbolt", 0.0
	Damagefactor "Sentinel", 0.0
	Damagefactor "GraveStalkerLure", 2.0
	Damagefactor "Sentinel", 0.0
	Damagefactor "Hellzone", 0.8
	Damagefactor "MechPewPews", 0.0
	Damagefactor "normal", 1.1
	Damagefactor "MacheteSlicerino", 0.0
    Damagefactor "GasterSmokeHurt", 0.0
	Damagefactor "StrifeSuit", 0.0
    LimitedToTeam 0
    States
    {
 Spawn:
   REVY A 0 A_JumpIfInventory("GloomWatchStack",100,"GloomDeath")
   REVY A 45 Setplayerproperty(0,0,0)
   Loop
 See:
   REVY A 0 A_JumpIfInventory("GloomWatchStack",100,"GloomDeath")
   REVY A 0 A_JumpIfHealthLower(50,"INeedHealingSee")
   REVY A 4
   REVY B 4 A_SpawnItemEx ("RevyStomp", 0, 0, 0, 0, 0, -20, 0,0, 0)
   REVY C 4
   REVY D 4 A_SpawnItemEx ("RevyStomp", 0, 0, 0, 0, 0, -20, 0,0, 0)
   Goto Spawn
 INeedHealingSee:
   REVY A 0 A_JumpIfInventory("GloomWatchStack",100,"GloomDeath")
   REVY A 0 A_SpawnItemEx("INeedHealingTrail",random(-20,20),random(-20,20),0,0,0,10)
   REVY A 4
   REVY B 4 A_SpawnItemEx ("RevyStomp", 0, 0, 0, 0, 0, -20, 0,0, 0)
   REVY C 4
   REVY D 4 A_SpawnItemEx ("RevyStomp", 0, 0, 0, 0, 0, -20, 0,0, 0)
   Goto Spawn
 Missile:
   REVY A 0 A_JumpIfInventory("GloomWatchStack",100,"GloomDeath")
   REVY F 6 Bright
   Goto Spawn
 Melee:
   REVY A 0 A_JumpIfInventory("GloomWatchStack",100,"GloomDeath")
   REVY F 6 Bright
   Goto Spawn
	Pain.TeleOtherPlant:
	TNT1 A 0 A_GiveInventory("TeleOtherPlanted",1)
	Goto Pain
	Pain.TeleOtherActivateDamage:
	TNT1 A 0 A_JumpIfInventory("TeleOtherPlanted",1,"TeleOtherSend")
	Goto Pain	
	TeleOtherSend:
	TNT1 A 0 A_TakeInventory("TeleOtherPlanted",1)
	TNT1 A 0 A_PlaySound("TeleOther/activate",CHAN_7,1)
	TNT1 A 0 A_SpawnItem("TeleOtherFog")
	TNT1 A 0 ACS_ExecuteAlways(466,0,2)
	REVY G 1 A_PlaySound("TeleOther/activate",CHAN_6,1)
	TNT1 A 0 A_SpawnItem("TeleOtherFog")
	Goto Pain
	Death.TeleOtherActivateDamage:
	TNT1 A 0 A_JumpIfInventory("TeleOtherPlanted",1,"TeleOtherSplode")
	TNT1 A 0 A_TakeInventory("TeleOtherPlanted",1)
	TNT1 A 0 A_PlaySound("TeleOther/activate",CHAN_7,1)
	TNT1 A 0 A_SpawnItem("TeleOtherFog")
	TNT1 A 0 A_GiveToTarget("KilledMe",1)
	REVY G 1 A_PlaySound("Gibbage/XSplat")
	NULL A 0 A_PlaySound("gibbage/playergib") 
	NULL A 0 A_NoBlocking 
	NULL A 0 A_SpawnItemEx("PLAYERBOOT", 0, 0, 11, 0, 0, 27, 33, 160, 0)
	NULL A 0 A_SpawnItemEx("PLAYERBOOT", 0, 0, 11, 0, 0, 27, -33, 160, 0)
	NULL A 0 A_SpawnItemEx("SHOTGUYARM", 0, 0, 25, 0, 0, 50, random(0,360), 160, 0)
	NULL A 0 A_SpawnItemEx("SHOTGUYARM", 0, 0, 36, 0, 0, 32, random(0,360), 160, 0)
	NULL A 1 A_SpawnItemEx("GIBBER", 0, 0, 0, 0, 0, 0, 0, 160, 0)
	NULL A -1
	Stop
	TeleOtherSplode:
	TNT1 A 0 A_TakeInventory("TeleOtherPlanted",1)
	TNT1 A 0 A_PlaySound("TeleOther/activate",CHAN_7,1)
	TNT1 A 0 A_SpawnItem("TeleOtherFog")
	TNT1 A 0 ACS_ExecuteAlways(466,0,2)
	TNT1 A 0 A_GiveToTarget("KilledMe",1)
	REVY G 1 A_PlaySound("Gibbage/XSplat")
	TNT1 A 0 A_PlaySound("TeleOther/activate",CHAN_6,1)
	TNT1 A 0 A_SpawnItem("TeleOtherFog")
	NULL A 0 A_PlaySound("gibbage/playergib") 
	NULL A 0 A_NoBlocking 
	NULL A 0 A_SpawnItemEx("PLAYERBOOT", 0, 0, 11, 0, 0, 27, 33, 160, 0)
	NULL A 0 A_SpawnItemEx("PLAYERBOOT", 0, 0, 11, 0, 0, 27, -33, 160, 0)
	NULL A 0 A_SpawnItemEx("SHOTGUYARM", 0, 0, 25, 0, 0, 50, random(0,360), 160, 0)
	NULL A 0 A_SpawnItemEx("SHOTGUYARM", 0, 0, 36, 0, 0, 32, random(0,360), 160, 0)
	NULL A 1 A_SpawnItemEx("GIBBER", 0, 0, 0, 0, 0, 0, 0, 160, 0)
	NULL A -1
	Stop
  Pain.Choke:
	TNT1 A 0 A_GiveToTarget("Health",2)
	TNT1 A 0 A_GiveToTarget("ChokeCharging",1)
	Goto Pain
  Pain.JusticarSpike:
	TNT1 A 0 ACS_NamedExecuteAlways("ChangeActivator",0)
	TNT1 A 0 A_GiveToTarget("Health",2)
  Pain:
	REVY A 0 A_JumpIfInventory("GloomWatchStack",100,"GloomDeath")
    REVY G 4 A_GiveInventory("RevyJumpAmmo",2)
    REVY G 4 A_Pain
    Goto Spawn
	Pain.LoonaClawing:
	TNT1 A 0 A_GiveToTarget("Health",6)
	REVY G 20 Setplayerproperty(0,1,0)
	REVY G 2 Setplayerproperty(0,0,0)
	Goto Spawn
	Pain.LoonaClawingLightSFX:
	TNT1 A 0 A_PlaySound("Bastet/ClawHitLight",CHAN_6)
	TNT1 A 0 A_GiveToTarget("Health",5)
	REVY G 20 Setplayerproperty(0,1,0)
	REVY G 2 Setplayerproperty(0,0,0)
	Goto Spawn
	Pain.LoonaClawingHeavySFX:
	TNT1 A 0 A_PlaySound("Bastet/ClawHitHeavy",CHAN_6)
	TNT1 A 0 A_GiveToTarget("Health",8)
	REVY G 20 Setplayerproperty(0,1,0)
	REVY G 2 Setplayerproperty(0,0,0)
	Goto Spawn
	Death.LoonaClawing:
	TNT1 A 0 A_PlaySound("Bastet/ClawHitHeavy",CHAN_6)
	TNT1 A 0 A_GiveToTarget("Health",50)
	Goto Death.Jitter
	Death.LoonaClawingLightSFX:
	TNT1 A 0 A_PlaySound("Bastet/ClawHitLight",CHAN_6)
	TNT1 A 0 A_GiveToTarget("Health",50)
	Goto Death.Jitter
	Death.LoonaClawingHeavySFX:
	TNT1 A 0 A_PlaySound("Bastet/ClawHitHeavy",CHAN_6)
	TNT1 A 0 A_GiveToTarget("Health",50)
	Goto Death.Jitter
	Pain.GloomWatcherLure:
	TNT1 A 0 ACS_ExecuteAlways(134)
	TNT1 A 0 A_Playsound("GloomWatcher/FeintAttack",CHAN_7)
	Goto pain
	Death.GloomWatcherlure:
	TNT1 A 0 ACS_ExecuteAlways(134)
	TNT1 A 0 A_Playsound("GloomWatcher/FeintAttack",CHAN_7)
	Goto Death.Jitter
	GloomDeath:
	TNT1 A 1 Damagething(99999,18)
	Goto Death
	Death.Fleshbent:
	TNT1 A 0 A_GiveToTarget("TentacleAmmo",2)
	TNT1 A 0 A_GiveToTarget("Soulscepter1",15)
	TNT1 A 0 A_GiveToTarget("Soulscepter2",50)
	Goto Death.Jitter
	Pain.BastetClawing:
		TNT1 A 0 A_GiveToTarget("Health",4)
		Goto Pain
	Pain.BastetClawingLightSFX:
		TNT1 A 0 A_PlaySound("Bastet/ClawHitLight",CHAN_5)
		TNT1 A 0 A_GiveToTarget("Health",3)
		Goto Pain
	Pain.BastetClawingHeavySFX:
		TNT1 A 0 A_PlaySound("Bastet/ClawHitHeavy",CHAN_5)
		TNT1 A 0 A_GiveToTarget("Health",6)
		Goto Pain
	Pain.Sickle:
		TNT1 A 0 ACS_NamedExecuteAlways("ChangeActivator",0)
	Pain.Wendigo:
		TNT1 A 0 A_PlaySound("RAVEN1",CHAN_5)
		TNT1 A 0 A_SpawnItemEx ("GIB4", 0, 0, random(0,42), 0, 0, random(2,4), random(0,360), 128)
		TNT1 A 0 A_SpawnItemEx ("GIB4", 0, 0, random(0,42), 0, 0, random(2,4), random(0,360), 128)
		Goto Pain
	Pain.Justicar:
	TNT1 A 0 A_custommissile("Justicarattack",14,0,random(0,360))
	TNT1 A 0 A_GiveToTarget("Health",1)
	TNT1 A 0 A_GiveToTarget("JusticarSecondaryAmmo",1)
	Goto pain
  Pain.Creepstun:
	REVY G 0 A_GiveInventory("RevyJumpAmmo",5)
    REVY G 0 A_Pain
	REVY G 0 A_GiveToTarget("health",5)
	REVY G 40 Setplayerproperty(0,1,0)
	REVY G 2 Setplayerproperty(0,0,0)
	Goto Spawn
  Death.Creeper:
	REVY A 0 A_PlaySoundEx("creeperattack", "Body")
	REVY A 0 A_SpawnItemEx("CreeperPopUp",0,0,10)
	TNT1 A 0 A_GiveToTarget("GhoulAmmo",1)
	REVY A 0 A_GiveToTarget("Creeperheal",1)
    REVY A 0 ACS_ExecuteAlways(997,0,1)
	goto DeathAnimAlt
  Death.Creepstun:
	REVY A 0 A_GiveToTarget("Unlock13",1)
	REVY A 0 A_GiveToTarget("CreepGotya",1)
	goto DeathAnimAlt
  Death.SjasScream:
  Death.FrostbiteWind:
  Death.EmtalicSaw:
  Death.LichFire:
    REVY A 0 A_GiveToTarget("KilledJ",1)
    Goto DeathAnim
  Death:
  DeathAnim:
	REVY A 0 A_GiveToTarget("KillBeep",1)
	REVY A 0 A_GiveInventory("ItemDeath",1)
	REVY A 0 A_TakeInventory("KilledCount",999)
    REVY A 0 A_GiveToTarget("KilledMe",1)
    REVY A 0 A_GiveToTarget("KilledRevy",1)
    REVY H 8
    REVY I 8 A_PlayerScream
    REVY J 8 A_NoBlocking
    REVY KLM 8
    REVY N -1
    Stop
  DeathAnimAlt:
	REVY A 0 A_GiveToTarget("KillIndicator",1)
	REVY A 0 A_GiveInventory("ItemDeath",1)
	REVY A 0 A_TakeInventory("KilledCount",999)
    REVY A 0 A_GiveToTarget("KilledMe",1)
    REVY A 0 A_GiveToTarget("KilledRevy",1)
    REVY H 8
    REVY I 8 A_PlayerScream
    REVY J 8 A_NoBlocking
    REVY KLM 8
    REVY N -1
    Stop
	Death.GhoulChainSaw:
	TNT1 A 0 A_GiveToTarget("Health",50)
	TNT1 A 0 A_GiveToTarget("BearTarpsAmmo",1)
	TNT1 A 0 A_GiveToTarget("SawyerRageammo",10)
	TNT1 A 0 A_GiveToTarget("DUMMY_SawyerBloodyChainsaw", 1)
	Goto Death.Jitter
	Death.BastetClawing:
	TNT1 A 0 A_PlaySound("Bastet/ClawHitHeavy",CHAN_6)
	TNT1 A 0 A_GiveToTarget("Health",30)
	Goto Death.Jitter
	Death.BastetClawingLightSFX:
	TNT1 A 0 A_PlaySound("Bastet/ClawHitLight",CHAN_6)
	TNT1 A 0 A_GiveToTarget("Health",30)
	Goto Death.Jitter
	Death.BastetClawingHeavySFX:
	TNT1 A 0 A_PlaySound("Bastet/ClawHitHeavy",CHAN_6)
	TNT1 A 0 A_GiveToTarget("Health",30)
	Goto Death.Jitter
	Death.Choke:
		TNT1 A 0 A_GiveToTarget("Health",25)
		TNT1 A 0 A_GiveToTarget("ChokeCharging",40)
	Goto Death.Jitter
	Death.JusticarSpike:
		TNT1 A 0 A_GiveToTarget("Health",15)
	Goto Death.Jitter
	Death.Sinistar:
		TNT1 A 0 A_GiveToTarget("SiniPrimary",1)
	Goto Death.Jitter
  Death.MapGibber:
		TNT1 A 0 A_PlaySound("car/hit",chan_auto)
  Death.MapGibber2:
  Death.Jitter:
	REVY A 0 A_GiveToTarget("KillBeep",1)
	REVY A 0 A_GiveInventory("ItemDeath",1)
    REVY A 0 A_GiveToTarget("Crunched",1)
	REVY A 0 A_GiveToTarget("KilledMe",1)
	REVY A 0 A_GiveToTarget("KilledRevy",1)
	REVY G 1 A_PlaySound("gibbage/xsplat")
	NULL A 0 A_PlaySound("gibbage/playergib") 
	NULL A 0 A_NoBlocking 
	NULL A 0 A_SpawnItemEx("PLAYERBOOT", 0, 0, 11, 0, 0, 27, 33, 160, 0)
	NULL A 0 A_SpawnItemEx("PLAYERBOOT", 0, 0, 11, 0, 0, 27, -33, 160, 0)
	NULL A 0 A_SpawnItemEx("SHOTGUYARM", 0, 0, 25, 0, 0, 50, random(0,360), 160, 0)
	NULL A 0 A_SpawnItemEx("SHOTGUYARM", 0, 0, 36, 0, 0, 32, random(0,360), 160, 0)
	NULL A 1 A_SpawnItemEx("GIBBER", 0, 0, 0, 0, 0, 0, 0, 160, 0)
	NULL A -1
	Stop
  Death.JitterAlt:
	REVY A 0 A_GiveToTarget("KillIndicator",1)
	REVY A 0 A_GiveInventory("ItemDeath",1)
    REVY A 0 A_GiveToTarget("Crunched",1)
	REVY A 0 A_GiveToTarget("KilledMe",1)
	REVY A 0 A_GiveToTarget("KilledRevy",1)
	REVY G 1 A_PlaySound("gibbage/xsplat")
	NULL A 0 A_PlaySound("gibbage/playergib") 
	NULL A 0 A_NoBlocking 
	NULL A 0 A_SpawnItemEx("PLAYERBOOT", 0, 0, 11, 0, 0, 27, 33, 160, 0)
	NULL A 0 A_SpawnItemEx("PLAYERBOOT", 0, 0, 11, 0, 0, 27, -33, 160, 0)
	NULL A 0 A_SpawnItemEx("SHOTGUYARM", 0, 0, 25, 0, 0, 50, random(0,360), 160, 0)
	NULL A 0 A_SpawnItemEx("SHOTGUYARM", 0, 0, 36, 0, 0, 32, random(0,360), 160, 0)
	NULL A 1 A_SpawnItemEx("GIBBER", 0, 0, 0, 0, 0, 0, 0, 160, 0)
	NULL A -1
	Stop
	Death.Harvester:
		TNT1 A 0 A_GiveToTarget("SoulHarvesterFragment",1)
		TNT1 A 0 A_GiveToTarget("KilledJ",1)
		Goto Death.Jitter
	Death.HarvesterRock:
		TNT1 A 0 ACS_NamedExecute("SilverFieldsBell",55)
		Goto DeathAnim
	Death.HarvesterAlt:
		TNT1 A 0 A_GiveToTarget("Crunched2",1)
		TNT1 A 0 ACS_NamedExecute("SilverFieldsBell",55)
		Goto Death.Jitter
  Death.Ravager:
		REVY A 0 A_GiveToTarget("KilledR",1)
		REVY A 0 A_GiveToTarget("Health",100)
		REVY A 0 ACS_ExecuteAlways(997,0,2)
		REVY A 0 A_PlaySoundEx("RavagerAttack","Body")
		REVY A 0 A_SpawnItemEx("RavagerHit",0,0,32)
		Goto DeathAnimAlt
	Death.RavagerBall:
		REVY A 0 A_GiveToTarget("RavagerGotYa",1)
		REVY A 0 A_GiveToTarget("KilledJ",1)
		Goto DeathAnimAlt
	Death.Yurei:
		REVY A 0 A_GiveToTarget("KilledY",1)
		REVY A 0 A_PlaySoundEx("YureiKill1","Body",0,1)
		REVY A 0 ACS_ExecuteAlways(997,0,3)
		Goto DeathAnimAlt
	Death.YureiBall:
		REVY A 0 A_GiveToTarget("Health",10)
		REVY A 0 A_SpawnItemEx("BallFire")
		Goto Death.SjasScream
	Death.UboaRawrScream:
		Goto DeathAnimAlt
	Death.Misty:
	Death.Whiteface:
		REVY A 0 A_GiveToTarget("KillBeep",1)
		REVY A 0 A_GiveInventory("ItemDeath",1)
		REVY A 0 A_GiveToTarget("KilledMe",1)
		REVY A 0 A_GiveToTarget("KilledM",1)
		REVY HHHH 2 A_FadeOut(0.1)
		REVY A 0 A_PlayerScream
		REVY IIIIJJ 2 A_FadeOut(0.1)
		REVY A 0 A_NoBlocking
		NULL A -1
		Stop
	Death.Clowny:
		REVY A 0 ACS_ExecuteAlways(997,0,4)
		REVY A 0 A_GiveToTarget("KilledC",1)
		REVY A 0 A_GiveToTarget("ClownyAmmo",5)
		Goto DeathAnim
	Death.Mohoph:
		TNT1 A 0 A_GiveToTarget("MorphAmmo", 1)
		REVY A 0 A_GiveToTarget("TransRevy",1)
		REVY A 0 A_PlaySoundEx("MohophKill","Body")
		REVY A 0 ACS_ExecuteAlways(997,0,5)
		Goto DeathAnim
	Death.EmtalicWeak:
		REVY A 0 A_PlaySoundEx("RamSuccess","Body")
		Goto DeathAnim
	Death.Emtalic:
		REVY A 0  A_PlaySoundEx("RamSuccess","Body")
		Goto Death.Jitter
	Death.I1:
		REVY A 0 A_SpawnItemEx("Heart",0,0,32,random(2,3),momy,random(8,12),random(-180,180))
		REVY A 0 A_GiveToTarget("KilledI1",1)
		Goto DeathAnim
	Death.I2:
		REVY A 0 A_GiveToTarget("KillBeep",1)
		REVY A 0 A_GiveInventory("ItemDeath",1)
		REVY A 0 A_GiveToTarget("KilledMe",1)
		REVY A 0 A_GiveToTarget("KilledI2",1)
		REVY A 0 A_GiveToTarget("Clip",1)
		REVY G 0 SetPlayerProperty(0,1,4)
		REVY G 0 A_Stop
		REVY GGGGGGGGGGGGGG 5 A_SpawnItemEx("PainSmoke",0,random(-22,22),random(-22,22),random(2,4),momy,random(8,12),random(-180,180))
		NULL A 0 A_PlayerScream
		NULL A 0 ACS_ExecuteAlways(997,0,6)
		NULL A 0 A_SpawnItemEx("PLAYERBOOT", 0, 0, 11, 0, 0, 27, 33, 160, 0)
		NULL A 0 A_SpawnItemEx("PLAYERBOOT", 0, 0, 11, 0, 0, 27, -33, 160, 0)
		NULL A 0 A_SpawnItemEx("SHOTGUYARM", 0, 0, 25, 0, 0, 50, random(0,360), 160, 0)
		NULL A 0 A_SpawnItemEx("SHOTGUYARM", 0, 0, 36, 0, 0, 32, random(0,360), 160, 0)
        NULL A 0 A_SpawnItemEx ("BoneShardSpawner1", 1, 1, random(8,32), random(0,5), random(0,5), random(8,18), random(0,360), SXF_NOCHECKPOSITION, 0)
        NULL A 0 A_SpawnItemEx ("BoneShardSpawner2", 1, 1, random(8,32), random(0,5), random(0,5), random(8,18), random(0,360), SXF_NOCHECKPOSITION, 0)
        NULL A 0 A_SpawnItemEx ("BoneShardSpawner3", 1, 1, random(8,32), random(0,5), random(0,5), random(8,18), random(0,360), SXF_NOCHECKPOSITION, 0)
        NULL A 0 A_SpawnItemEx ("BoneShardSpawner1", 1, 1, random(8,32), random(0,5), random(0,5), random(8,18), random(0,360), SXF_NOCHECKPOSITION, 0)
        NULL A 0 A_SpawnItemEx ("BoneShardSpawner2", 1, 1, random(8,32), random(0,5), random(0,5), random(8,18), random(0,360), SXF_NOCHECKPOSITION, 0)
        NULL A 0 A_SpawnItemEx ("BoneShardSpawner3", 1, 1, random(8,32), random(0,5), random(0,5), random(8,18), random(0,360), SXF_NOCHECKPOSITION, 0)
        NULL A 0 A_SpawnItemEx ("BoneShardSpawner1", 1, 1, random(8,32), random(0,5), random(0,5), random(8,18), random(0,360), SXF_NOCHECKPOSITION, 0)
        NULL A 0 A_SpawnItemEx ("BoneShardSpawner2", 1, 1, random(8,32), random(0,5), random(0,5), random(8,18), random(0,360), SXF_NOCHECKPOSITION, 0)
        NULL A 0 A_SpawnItemEx ("BoneShardSpawner3", 1, 1, random(8,32), random(0,5), random(0,5), random(8,18), random(0,360), SXF_NOCHECKPOSITION, 0)
        NULL A 0 A_SpawnItemEx ("BoneShardSpawner1", 1, 1, random(8,32), random(0,5), random(0,5), random(8,18), random(0,360), SXF_NOCHECKPOSITION, 0)
        NULL A 0 A_SpawnItemEx ("BoneShardSpawner2", 1, 1, random(8,32), random(0,5), random(0,5), random(8,18), random(0,360), SXF_NOCHECKPOSITION, 0)
        NULL A 0 A_SpawnItemEx ("BoneShardSpawner3", 1, 1, random(8,32), random(0,5), random(0,5), random(8,18), random(0,360), SXF_NOCHECKPOSITION, 0)
        NULL A 0 A_SpawnItemEx ("BoneShardSpawner1", 1, 1, random(8,32), random(0,5), random(0,5), random(8,18), random(0,360), SXF_NOCHECKPOSITION, 0)
        NULL A 0 A_SpawnItemEx ("BoneShardSpawner2", 1, 1, random(8,32), random(0,5), random(0,5), random(8,18), random(0,360), SXF_NOCHECKPOSITION, 0)
        NULL A 0 A_SpawnItemEx ("BoneShardSpawner3", 1, 1, random(8,32), random(0,5), random(0,5), random(8,18), random(0,360), SXF_NOCHECKPOSITION, 0)
        NULL A 0 A_SpawnItemEx ("BoneShardSpawner1", 1, 1, random(8,32), random(0,5), random(0,5), random(8,18), random(0,360), SXF_NOCHECKPOSITION, 0)
        NULL A 0 A_SpawnItemEx ("BoneShardSpawner2", 1, 1, random(8,32), random(0,5), random(0,5), random(8,18), random(0,360), SXF_NOCHECKPOSITION, 0)
        NULL A 0 A_SpawnItemEx ("BoneShardSpawner3", 1, 1, random(8,32), random(0,5), random(0,5), random(8,18), random(0,360), SXF_NOCHECKPOSITION, 0)
        NULL A 0 A_SpawnItemEx ("BoneShardSpawner1", 1, 1, random(8,32), random(0,5), random(0,5), random(8,18), random(0,360), SXF_NOCHECKPOSITION, 0)
        NULL A 0 A_SpawnItemEx ("BoneShardSpawner2", 1, 1, random(8,32), random(0,5), random(0,5), random(8,18), random(0,360), SXF_NOCHECKPOSITION, 0)
        NULL A 0 A_SpawnItemEx ("BoneShardSpawner3", 1, 1, random(8,32), random(0,5), random(0,5), random(8,18), random(0,360), SXF_NOCHECKPOSITION, 0)
        NULL A 0 A_SpawnItemEx ("BoneShardSpawner1", 1, 1, random(8,32), random(0,5), random(0,5), random(8,18), random(0,360), SXF_NOCHECKPOSITION, 0)
        NULL A 0 A_SpawnItemEx ("BoneShardSpawner2", 1, 1, random(8,32), random(0,5), random(0,5), random(8,18), random(0,360), SXF_NOCHECKPOSITION, 0)
        NULL A 0 A_SpawnItemEx ("BoneShardSpawner3", 1, 1, random(8,32), random(0,5), random(0,5), random(8,18), random(0,360), SXF_NOCHECKPOSITION, 0)
        NULL A 0 A_SpawnItemEx ("BoneShardSpawner1", 1, 1, random(8,32), random(0,5), random(0,5), random(8,18), random(0,360), SXF_NOCHECKPOSITION, 0)
        NULL A 0 A_SpawnItemEx ("BoneShardSpawner2", 1, 1, random(8,32), random(0,5), random(0,5), random(8,18), random(0,360), SXF_NOCHECKPOSITION, 0)
        NULL A 0 A_SpawnItemEx ("BoneShardSpawner3", 1, 1, random(8,32), random(0,5), random(0,5), random(8,18), random(0,360), SXF_NOCHECKPOSITION, 0)
        NULL A 0 A_SpawnItemEx ("BoneShardSpawner1", 1, 1, random(8,32), random(0,5), random(0,5), random(8,18), random(0,360), SXF_NOCHECKPOSITION, 0)
        NULL A 0 A_SpawnItemEx ("BoneShardSpawner2", 1, 1, random(8,32), random(0,5), random(0,5), random(8,18), random(0,360), SXF_NOCHECKPOSITION, 0)
        NULL A 0 A_SpawnItemEx ("BoneShardSpawner3", 1, 1, random(8,32), random(0,5), random(0,5), random(8,18), random(0,360), SXF_NOCHECKPOSITION, 0)
        NULL A 0 A_SpawnItemEx ("BoneShardSpawner1", 1, 1, random(8,32), random(0,5), random(0,5), random(8,18), random(0,360), SXF_NOCHECKPOSITION, 0)
        NULL A 0 A_SpawnItemEx ("BoneShardSpawner2", 1, 1, random(8,32), random(0,5), random(0,5), random(8,18), random(0,360), SXF_NOCHECKPOSITION, 0)
        NULL A 0 A_SpawnItemEx ("BoneShardSpawner3", 1, 1, random(8,32), random(0,5), random(0,5), random(8,18), random(0,360), SXF_NOCHECKPOSITION, 0)
        NULL A 0 A_SpawnItemEx ("BoneShardSpawner1", 1, 1, random(8,32), random(0,5), random(0,5), random(8,18), random(0,360), SXF_NOCHECKPOSITION, 0)
        NULL A 0 A_SpawnItemEx ("BoneShardSpawner2", 1, 1, random(8,32), random(0,5), random(0,5), random(8,18), random(0,360), SXF_NOCHECKPOSITION, 0)
        NULL A 0 A_SpawnItemEx ("BoneShardSpawner3", 1, 1, random(8,32), random(0,5), random(0,5), random(8,18), random(0,360), SXF_NOCHECKPOSITION, 0)
        NULL A 0 A_SpawnItemEx ("BoneShardSpawner1", 1, 1, random(8,32), random(0,5), random(0,5), random(8,18), random(0,360), SXF_NOCHECKPOSITION, 0)
        NULL A 0 A_SpawnItemEx ("BoneShardSpawner2", 1, 1, random(8,32), random(0,5), random(0,5), random(8,18), random(0,360), SXF_NOCHECKPOSITION, 0)
        NULL A 0 A_SpawnItemEx ("BoneShardSpawner3", 1, 1, random(8,32), random(0,5), random(0,5), random(8,18), random(0,360), SXF_NOCHECKPOSITION, 0)
        NULL A 0 A_SpawnItemEx ("BoneShardSpawner1", 1, 1, random(8,32), random(0,5), random(0,5), random(8,18), random(0,360), SXF_NOCHECKPOSITION, 0)
        NULL A 0 A_SpawnItemEx ("BoneShardSpawner2", 1, 1, random(8,32), random(0,5), random(0,5), random(8,18), random(0,360), SXF_NOCHECKPOSITION, 0)
        NULL A 0 A_SpawnItemEx ("BoneShardSpawner3", 1, 1, random(8,32), random(0,5), random(0,5), random(8,18), random(0,360), SXF_NOCHECKPOSITION, 0)
		NULL A 1 A_SpawnItemEx("GIBBER", 0, 0, 0, 0, 0, 0, 0, 160, 0)
		NULL A 1 A_SpawnItemEx("SkullGib",0,0,0,random(2,4),random(2,4),random(8,12),random(-180,180))
		NULL A 1 A_SpawnItemEx("ChestGib",0,0,0,random(2,4),random(2,4),random(8,12),random(-180,180))
		NULL AA 1 A_SpawnItemEx("ArmGib",0,0,0,random(2,4),random(2,4),random(8,12),random(-180,180))
		NULL AA 1 A_SpawnItemEx("HandGib",0,0,0,random(2,4),random(2,4),random(8,12),random(-180,180))
		NULL A 1 A_SpawnItemEx("CoccyxGib",0,0,0,random(2,4),random(2,4),random(8,12),random(-180,180))
		NULL AA 1 A_SpawnItemEx("LegGib",0,0,0,random(2,4),random(2,4),random(8,12),random(-180,180))
		NULL AAAAAA 1 A_SpawnItemEx("BoneGib",0,0,0,random(2,4),random(2,4),random(8,12),random(-180,180))
		NULL A -1 A_NoBlocking
		Stop
	Death.I3:
		REVY A 0 A_GiveToTarget("KillBeep",1)
		REVY A 0 A_GiveInventory("ItemDeath",1)
		REVY A 0 A_GiveToTarget("KilledMe",1)
		REVY A 0 A_GiveToTarget("KilledI3",1)
		REVY HHHHHHHH 1 A_SpawnItemEx("PainSmoke",0,random(-22,22),random(-22,22),random(2,4),momy,random(8,12),random(-180,180))
		REVY I 0 A_PlayerScream
		REVY IIIIIIII 1 A_SpawnItemEx("PainSmoke",0,random(-22,22),random(-22,22),random(2,4),momy,random(8,12),random(-180,180))
		REVY J 0 A_NoBlocking
		REVY JJJJJJJJKKKKKKKKLLLLLLLLMMMMMMMM 1 A_SpawnItemEx("PainSmoke",0,random(-22,22),random(-22,22),random(2,4),momy,random(8,12),random(-180,180))
		REVY NNNNNNN 3 A_SpawnItemEx("PainSmoke",0,random(-22,22),random(-22,22),random(2,4),momy,random(8,12),random(-180,180))
		REVY N -1
		Stop
	Death.I4:
		REVY A 0 A_GiveToTarget("KilledI4",1)
		Goto DeathAnim
	Death.I5:
		REVY A 0 A_GiveToTarget("KilledI5",1)
		Goto DeathAnim
	Pain.RavagerBall:
		REVY A 0 ACS_ExecuteAlways(920,0)
		Goto Pain
	Pain.YureiBall:
		REVY A 0 A_GiveToTarget("Health",10)
		REVY A 0 A_SpawnItemEx("BallFire")
		Goto Pain
	Pain.Emtalic:
		REVY A 0 A_PlaySoundEx("RamSuccess","Body")
		Goto Pain
	Pain.EmtalicWeak:
		REVY A 0 A_PlaySoundEx("RamSuccess","Body")
		Goto Pain
	Death.Tenebra:
		TNT1 A 0 A_GiveToTarget("Health",20)
		Goto DeathAnim
	Death.TenebraRail:
	Death.Telefrag:
	Death.Grenade:
	Death.Termissiles:
	Death.ChaosExpl12:
	Death.KarenExplo:
	Death.IlluNukeKABUUM:
	Death.CalebDynamite:
	Death.Wendigo:
	Death.MorphRipperGib:
	Death.DarkVortex:
	Death.ImpostorJitter:
	Death.PuppetStrings:
	Death.LichIce:
	Death.LichLightning:
	Death.AsylumCannonBall:
		Goto Death.Jitter
	Death.TrueDivine:
		TNT1 A 0 A_PlaySoundEx("SoulSnatchStinger",CHAN_AUTO,0,1)
		TNT1 A 0 A_SpawnItemEx("SoulSnatch")
		Goto Death.JitterAlt
	Death.Judgement:
		TNT1 A 0 A_SpawnItemEx("StellarisThunderFX")
		Goto Death.JitterAlt
	Death.VoltMelee:
	Death.AmperRail:
		TNT1 A 0 A_GiveToTarget("VoltRingAmmo",2)
		TNT1 A 0 A_GiveToTarget("AmperSpeedTokenCheck",1)
		Goto Death.Jitter
	Pain.FrostbiteWind:
	Pain.Ravager:
	Pain.Juglava:
	Pain.HarvesterRock:
	Pain.EmtalicSaw:
	Pain.MorphRipper:
	Pain.MorphRipperGib:
	Pain.I1:
	Pain.I3:
	Pain.ZombiePoison:
	Pain.Asylum:
	Pain.AsylumCannonBall:
	Pain.FleshlingMissile:
	Pain.DarkVortex:
	Pain.ImpostorJitter:
	Pain.BlueFire:
	Pain.PuppetStrings:
	Pain.LichFire:
	Pain.LichIce:
	Pain.LichLightning:
	Pain.Whiteface:
		TNT1 A 0 ACS_NamedExecuteAlways("ChangeActivator",0)
		Goto Pain
	}
}

Actor RevyStomp : CyborgStomp
{
	DeathSound "RevyStep"
}

ACTOR Dual9mmPrimary : Ammo
{
  Inventory.PickupMessage "You got 9mm ammo." // "Picked up a clip."
  Inventory.Amount 1
  Inventory.MaxAmount 30
  Ammo.BackpackAmount 1
  Ammo.BackpackMaxAmount 30
}

ACTOR Dual9mmSecondary : Ammo
{
  Inventory.PickupMessage "Picked up a mag of 9mm ammo." // "Picked up a clip."
  Inventory.PickupSound "9mm/magtap"
  Inventory.Amount 15
  Inventory.MaxAmount 210
  Ammo.BackpackAmount 15
  Ammo.BackpackMaxAmount 210
  Inventory.Icon "CLIPA0"
  States
  {
  Spawn:
    PMAG A -1
    Stop
  }
}

Actor CanReload_Duals : Inventory
{
	Inventory.Amount 1
	Inventory.MaxAmount 1
}

ACTOR "Duals" : DoomWeapon
{
  Weapon.AmmoUse 0
  Weapon.AmmoUse2 50
  Weapon.AmmoGive2 60
  Weapon.AmmoType "Dual9mmPrimary"
  Weapon.AmmoType2 "RevyJumpAmmo"
  Inventory.icon "TNT1A0"
  Weapon.BobStyle Inversesmooth
  Weapon.Bobspeed 1.5
  Obituary "%k showed how %o's brain looks like."
  +WEAPON.WIMPY_WEAPON
  +WEAPON.NOAUTOFIRE
  +WEAPON.NOALERT
  Inventory.Pickupmessage "You picked up another 9mm pistol."
  Inventory.PickupSound "9mm/pickup"
  Scale 0.1
  States
  {
  Ready:
	TNT1 A 0 A_JumpIfInventory("CyborgDashCheck", 1, "ReloadCheck")
	D9ID A 0 A_JumpIfInventory("Dual9mmPrimary",1,1)
	Goto Reload
    D9ID A 1 A_WeaponReady
    Goto Ready
  ReloadCheck:
	TNT1 A 0
	TNT1 A 0 A_TakeInventory("CyborgDashCheck")
	TNT1 A 0 A_JumpIfInventory("CanReload_Duals", 1, "Reload")
	Goto Ready+14
  Deselect:
	 TNT1 A 0
	 TNT1 A 0 A_TakeInventory("CyborgDashCheck")
	 D9ID A 1 A_Lower
     loop
  Select:
	 TNT1 A 0
	 TNT1 A 0 A_TakeInventory("CyborgDashCheck")
     D9ID A 1 A_Raise
     loop
  Fire:
    MSBS B 0 A_JumpIfInventory("Dual9mmPrimary",1,1)
	Goto Reload
	TNT1 A 0 A_TakeInventory("CyborgDashCheck")
	TNT1 A 0 A_GiveInventory("CanReload_Duals", 1)
	PISG B 0 A_JumpIfInventory("FireLeft",1,"FireLeft")
	PISG B 0 A_GiveInventory("RevyJumpAmmo",1)
	PISG B 0 A_TakeInventory("Dual9mmPrimary",1)
	BPSS A 0 A_GiveInventory("FireLeft",1)
	PISG B 0 A_PlaySoundEx("9mm/fire","Weapon")
    PISG B 0 A_FireBullets (0, 0, 1, 6, "SeriousDeagle1")
	BPSS A 0 A_FireCustomMissile("RifleCaseSpawn",5,0,13,0)
	TNT1 A 0
	D9RF A 2 bright
	BPSS A 0
	D9RF B 2
    D9RF CDEF 1 A_WeaponReady(1)
	D9RF A 0 A_Refire
    Goto Ready
  FireLeft:
	PISG B 0 A_GiveInventory("RevyJumpAmmo",1)
    PISG B 0 A_TakeInventory("Dual9mmPrimary",1)
	BPSS A 0 A_TakeInventory("FireLeft",1)
	PISG B 0 A_PlaySoundEx("9mm/fire","Weapon")
    PISG B 0 A_FireBullets (0, 0, 1, 6, "SeriousDeagle1")
	BPSS A 0 A_FireCustomMissile("InvertedRifleCaseSpawn",5,0,-13,0)
	TNT1 A 0
	D9LF A 2 bright
	BPSS A 0
	D9LF B 2
    D9LF CDEF 1 A_WeaponReady(1)
	D9LF A 0 A_Refire
    Goto Ready
  Reload:
	TNT1 A 0
	TNT1 A 0 A_TakeInventory("CanReload_Duals")
	Goto ReloadLower
  ReloadLower:
	 D9ID A 1
	 D9ID B 0
	 D9ID C 0
	 D9ID D 0 
	 D9ID E 1
	 D9ID F 0 
	 D9ID G 0
	 D9ID H 0 
	 D9ID I 1
	 D9ID J 0
	 D9ID K 1
	 D9ID L 0 
	 D9ID M 0
	 D9ID N 0 
	 D9ID O 1
	 D9ID P 0
	 D9ID Q 0
	 D9ID R 0
	 D9ID S 1
	 D9ID T 0
	 D9ID U 0
	 D9ID V 0
	 D9ID W 1
	 D9ID X 0
	 D9ID Y 0
	 D9ID Z 0
	 D9IX A 1
	 D9IX B 0
	 D9IX C 0
	 D9IX D 0
	 D9IX E 1
	 D9IX F 0
	 D9IX G 0
	 D9IX H 0
	 D9IX I 1
	 D9IX J 0
	 D9IX K 0
	 D9IX L 0
	 D9IX M 1
	 D9IX N 0
	 D9IX O 1
	 D9IX P 0
	 Goto ActualReload
	 ActualReload:
	 D9LR E 1 offset(0,112)
	 D9LR E 0 offset(0,108)
	 D9LR E 0 offset(0,104)
	 D9LR E 0 offset(0,100)
	 D9LR E 1 offset(0,96)
	 D9LR E 0 offset(0,92)
	 D9LR E 0 offset(0,88)
	 D9LR E 0 offset(0,84)
	 D9LR E 1 offset(0,80)
	 D9LR E 0 offset(0,76)
	 D9LR E 0 offset(0,72)
	 D9LR E 0 offset(0,68)
	 D9LR E 1 offset(0,64)
	 D9LR E 0 offset(0,60)
	 D9LR E 0 offset(0,54)
	 D9LR E 0 offset(0,50)
	 D9LR E 1 offset(0,46)
	 D9LR E 0 offset(0,42)
	 D9LR E 0 offset(0,38)
	 D9LR E 1 offset(0,34)
	 D9LR D 0 A_Playsound("UZICO")
	 D9LR AABB 4 offset(0,32)
	 D9LR L 0 A_Playsound("UZICI")
	 D9LR CCDDEE 2 offset(0,32)
	 D9LR E 0 offset(0,36)
	 D9LR E 1 offset(0,40)
	 D9LR E 0 offset(0,44)
	 D9LR E 0 offset(0,48)
	 D9LR E 0 offset(0,52)
	 D9LR E 1 offset(0,56)
	 D9LR E 0 offset(0,60)
	 D9LR E 0 offset(0,64)
	 D9LR E 0 offset(0,68)
	 D9LR E 1 offset(0,72)
	 D9LR E 0 offset(0,76)
	 D9LR E 0 offset(0,80)
	 D9LR E 0 offset(0,84)
	 D9LR E 1 offset(0,88)
	 D9LR E 0 offset(0,92)
	 D9LR E 0 offset(0,96)
	 D9LR E 0 offset(0,100)
	 D9LR E 1 offset(0,104)
	 D9LR E 0 offset(0,108)
	 D9LR E 1 offset(0,112)
	 D9RR E 0 offset(0,112)
	 D9RR E 0 offset(0,108)
	 D9RR E 1 offset(0,104)
	 D9RR E 0 offset(0,100)
	 D9RR E 1 offset(0,96)
	 D9RR E 0 offset(0,92)
	 D9RR E 0 offset(0,88)
	 D9RR E 0 offset(0,84)
	 D9RR E 1 offset(0,80)
	 D9RR E 0 offset(0,76)
	 D9RR E 0 offset(0,72)
	 D9RR E 0 offset(0,68)
	 D9RR E 1 offset(0,64)
	 D9RR E 0 offset(0,60)
	 D9RR E 0 offset(0,54)
	 D9RR E 0 offset(0,50)
	 D9RR E 1 offset(0,46)
	 D9RR E 0 offset(0,42)
	 D9RR E 1 offset(0,38)
	 D9RR E 0 offset(0,34)
	 D9RR E 1 offset(0,32)
	 D9RR D 0 A_Playsound("UZICO")
	 D9RR AABB 4 offset(0,32)
	 D9RR L 0 A_Playsound("UZICI")
	 D9RR CCDDEE 2 offset(0,32)
	 D9RR E 0 offset(0,36)
	 D9RR E 1 offset(0,40)
	 D9RR E 0 offset(0,44)
	 D9RR E 1 offset(0,48)
	 D9RR E 0 offset(0,52)
	 D9RR E 1 offset(0,56)
	 D9RR E 0 offset(0,60)
	 D9RR E 0 offset(0,64)
	 D9RR E 0 offset(0,68)
	 D9RR E 1 offset(0,72)
	 D9RR E 0 offset(0,76)
	 D9RR E 0 offset(0,80)
	 D9RR E 0 offset(0,84)
	 D9RR E 1 offset(0,88)
	 D9RR E 0 offset(0,92)
	 D9RR E 0 offset(0,96)
	 D9RR E 0 offset(0,100)
	 D9RR E 1 offset(0,104)
	 D9ID A 0 offset(0,104)
	 D9ID A 0 offset(0,104)
     D9ID A 0 offset(0,102)
	 D9ID A 1 offset(0,98)
	 D9ID A 0 offset(0,94)
	 D9ID A 0 offset(0,86)
	 D9ID A 0 offset(0,82)
	 D9ID A 1 offset(0,78)
	 D9ID A 0 offset(0,74)
	 D9ID A 0 offset(0,70)
	 D9ID A 0 offset(0,66)
	 D9ID A 1 offset(0,62)
	 D9ID A 0 offset(0,58)
	 D9ID A 0 offset(0,54)
	 D9ID A 0 offset(0,50)
	 D9ID A 1 offset(0,46)
	 D9ID A 0 offset(0,42)
	 D9ID A 0 offset(0,38)
	 D9ID A 0 offset(0,34)
	 D9ID A 1 offset(0,32)
	 D9ID A 0 A_GiveInventory("Dual9mmPrimary",30)
	 Goto Ready
	 Altfire:
	 D9ID A 0 A_Playsound("Revy/Jump",CHAN_ITEM)
	 D9ID A 0 A_TakeInventory("RevyJumpAmmo",50)
	 D9ID A 0 ThrustThingZ(0,60,0,0)
	 D9ID A 0 ThrustThing(angle*256/360, 70, 0, 0)
	 Goto Ready
  }
}

     
ACTOR LARPrimary : Ammo
{
  Inventory.PickupMessage "You got Winchester ammo." // "Picked up a clip."
  Inventory.Amount 1
  Inventory.MaxAmount 10
  Ammo.BackpackAmount 1
  Ammo.BackpackMaxAmount 10
}

ACTOR LARSecondary : Ammo
{
  Inventory.PickupMessage "Picked up a small box of shotgun shells." // "Picked up a clip."
  Inventory.Amount 8
  Inventory.MaxAmount 20
  Ammo.BackpackAmount 8
  Ammo.BackpackMaxAmount 70
  Inventory.Icon "CLIPA0"
  States
  {
  Spawn:
    SBOX B -1
    Stop
  }
}

Actor RevyJumpAmmo : Ammo
{
	Inventory.Amount 100
	Inventory.MaxAmount 100
}

ACTOR RifleCaseSpawn
{
	Speed 20
	PROJECTILE
	+NOCLIP
	+CLIENTSIDEONLY
	States
	{
	Spawn:
        TNT1 A 0
		TNT1 A 1 A_CustomMissile("EmptyBrass",-5,0,random(-80,-100),2,random(45,80))
		Stop
	}
}

ACTOR InvertedRifleCaseSpawn
{
	Speed 20
	PROJECTILE
	+NOCLIP
	+CLIENTSIDEONLY
	States
	{
	Spawn:
        TNT1 A 0
		TNT1 A 1 A_CustomMissile("EmptyBrass",-5,0,random(80,100),2,random(45,80))
		Stop
	}
}

ACTOR LongRifleCaseSpawn
{
	Speed 20
	PROJECTILE
	+NOCLIP
	+CLIENTSIDEONLY
	States
	{
	Spawn:
        TNT1 A 0
		TNT1 A 1 A_CustomMissile("EmptyRifle",-5,0,random(-80,-100),2,random(45,80))
		Stop
	}
}

ACTOR EmptyBrass
{
   Height 2
   Radius 2
   Speed 6
Scale 0.45
   +DOOMBOUNCE
   - NOGRAVITY
   +WINDTHRUST
   +CLIENTSIDEONLY
   +MOVEWITHSECTOR
   +MISSILE
   +NOBLOCKMAP
   -DROPOFF
   +NOTELEPORT
   +FORCEXYBILLBOARD
   +NOTDMATCH
   +GHOST
   SeeSound "weapons/casing"
   States
   {
   Spawn:
      CAS2 A 0 A_JumpIf(waterlevel == 2, "Underwater")
      CAS2 ABCD 3
      Loop

   Underwater:
      CAS2 ABCDABCDABCD 3 A_FadeOut(0.1)
	  Stop

   Death:
      LCPJ A 0 A_Jump(256,"Rest1","Rest2","Rest3","Rest4","Rest5","Rest6","Rest7","Rest8")
      Goto Rest1
    Rest1:
      CAS2 A 250
	Goto Vanish
    Rest2:
      CAS2 B 250
      TNT1 A 0 A_CheckSight("Vanish")
    Goto Vanish
    Rest3:
      CAS2 C 250
      TNT1 A 0 A_CheckSight("Vanish")
    Goto Vanish
    Rest4:
      CAS2 D 250
      TNT1 A 0 A_CheckSight("Vanish")
    Goto Vanish
    Rest5:
      CAS2 A 250
      TNT1 A 0 A_CheckSight("Vanish")
    Goto Vanish
    Rest6:
      CAS2 B 250
      TNT1 A 0 A_CheckSight("Vanish")
    Goto Vanish
    Rest7:
      CAS2 C 250
      TNT1 A 0 A_CheckSight("Vanish")
    Goto Vanish
    Rest8:
      TNT1 D 0 A_CheckSight("Vanish")
      CAS3 K 250
    Goto Vanish
     Vanish:
     TNT1 A 0
     Stop
   }
}

ACTOR EmptyRifle
{
   Height 2
   Radius 2
   Speed 6
Scale 0.25
   +DOOMBOUNCE
   - NOGRAVITY
   +WINDTHRUST
   +CLIENTSIDEONLY
   +MOVEWITHSECTOR
   +MISSILE
   +NOBLOCKMAP
   -DROPOFF
   +NOTELEPORT
   +FORCEXYBILLBOARD
   +NOTDMATCH
   +GHOST
   SeeSound "weapons/casing"
   States
   {
   Spawn:
      CAS3 A 0 A_JumpIf(waterlevel == 2, "Underwater")
      CAS3 ABCDEFGH 2
      Loop

   Underwater:
      CAS2 ABCDEFGHAB 3 A_FadeOut(0.1)
	  Stop

   Death:
      LCPJ A 0 A_Jump(256,"Rest1","Rest2","Rest3","Rest4","Rest5","Rest6","Rest7","Rest8")
      Goto Rest1
    Rest1:
      CAS3 A 250
	Goto Vanish
    Rest2:
      CAS3 E 250
      TNT1 A 0 A_CheckSight("Vanish")
    Goto Vanish
    Rest3:
      CAS3 A 250
      TNT1 A 0 A_CheckSight("Vanish")
    Goto Vanish
    Rest4:
      CAS3 E 250
      TNT1 A 0 A_CheckSight("Vanish")
    Goto Vanish
    Rest5:
      CAS3 A 250
      TNT1 A 0 A_CheckSight("Vanish")
    Goto Vanish
    Rest6:
      CAS3 E 250
      TNT1 A 0 A_CheckSight("Vanish")
    Goto Vanish
    Rest7:
      CAS3 A 250
      TNT1 A 0 A_CheckSight("Vanish")
    Goto Vanish
    Rest8:
      TNT1 D 0 A_CheckSight("Vanish")
      CAS3 E 250
    Goto Vanish
     Vanish:
     TNT1 A 0
     Stop
   }
}

ACTOR ShotCaseSpawn : RifleCaseSpawn
{
	States
	{
	Spawn:
        TNT1 A 0
		TNT1 A 1 A_CustomMissile("ShotgunCasing",-5,0,random(-80,-100),2,random(45,80))
		Stop
	}
}

ACTOR ShotgunCasing
{
   Height 12
   Radius 9
   Speed 6
   Scale 0.25
   +DOOMBOUNCE
   - NOGRAVITY
   +WINDTHRUST
   +CLIENTSIDEONLY
   +MOVEWITHSECTOR
   +MISSILE
   +NOBLOCKMAP
   -DROPOFF
   +NOTELEPORT
   +FORCEXYBILLBOARD
   +NOTDMATCH
   +GHOST
   SeeSound "weapons/shell"
   States
   {
    Spawn:
      CAS2 A 0 A_JumpIf(waterlevel == 2, "Underwater")
      CAS4 ABCD 3
      CAS2 A 0 A_JumpIf(waterlevel == 2, "Underwater")
	  CAS2 EFGH 3
      Loop
   Underwater:
      CAS4 ABCD 3 A_FadeOut(0.1)
	  CAS2 EFGH 3 A_FadeOut(0.1)
	  CAS4 ABCD 3 A_FadeOut(0.1)
	  Stop
   Death:
   Death:
      LCPJ A 0 A_Jump(256,"Rest1","Rest2","Rest3","Rest4","Rest5","Rest6","Rest7","Rest8")
      Goto Rest1
    Rest1:
      CAS2 I 250
    Goto Vanish
    Rest2:
      CAS2 J 250
    Goto Vanish
    Rest3:
      CAS2 K 250
    Goto Vanish
    Rest4:
      CAS2 L 250
    Goto Vanish
    Rest5:
      CAS2 M 250
    Goto Vanish
    Rest6:
      CAS2 I 250
    Goto Vanish
    Rest7:
      CAS2 J 250
    Goto Vanish
    Rest8:
      CAS2 K 250
    Goto Vanish
     Vanish:
     TNT1 A 0
     Stop

   }
}

Actor SSGCaseSpawner : ShotcaseSpawn
{
		States
		{
		Spawn:
			TNT1 A 0
			TNT1 A 0 Thing_ChangeTID(0,390)
				TNT1 A 1
				Goto Death
		Death:
				TNT1 A 0 A_CustomMissile("ShotgunCasing",0,0,random(80,100),2,random(50,70))
				Stop
		}
}

Actor SmokeSpawner
{
    Speed 20
    +NOCLIP
	+CLIENTSIDEONLY
    States
    {
    Spawn:
      TNT1 A 1
      TNT1 A 0 Thing_ChangeTID(0,390)
 NULL AA 0 A_CustomMissile ("ShotSmoke", 0, 0, random (0, 360), 2, random (0, 180))
        Stop
    }
}

ACTOR ShotSmoke
{
+NOGRAVITY
+NOBLOCKMAP
+FLOORCLIP
+NOINTERACTION
+FORCEXYBILLBOARD
+CLIENTSIDEONLY
+MISSILE
Speed 1
RenderStyle Add
Alpha		0.06

Radius		0
Height		0
Scale		0.6

States
 {
    Spawn:
         NULL A 1
         SMOK AABBCCDDEEFFGGHHIIJJKK 1 A_FadeOut(0.001)
        Stop
    }
}

Actor RevyRifle1 : BulletPuff2
{
	DamageType "RevyRifleBullet"
}

actor M79 : Weapon
{
  Weapon.AmmoUse 1
  Weapon.AmmoUse2 50
  Weapon.Ammotype2 "RevyJumpAmmo"
  Weapon.AmmoGive 4
  Weapon.AmmoType "M79Ammo"
  Inventory.Icon "TNT1A0"
  Weapon.SlotNumber 5
  Inventory.PickupMessage "You got the M79 Grenade Launcher,Make it Rain Zombie Parts!"
  Obituary "%k blew %o's mind."
  Decal Scorch
  States
  {
  Ready:
    ZM79 A 1 A_WeaponReady
    Loop
  Deselect:
    ZM79 A 1 A_Lower
    Loop
  Select:
    ZM79 A 1 A_Raise
    Loop
  Fire:
	 PPFI A 0 A_Playweaponsound("m79/fire")
	 PPFI A 0 A_FireCustomMissile("M79Grenade",0,1,6)
	 ZM79 B 1 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
	 ZM79 C 1 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
	 ZM79 DE 1 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
	 ZM80 Z 1 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
	 ZM79 A 1 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
	 ZM79 K 0 A_PlaySoundEx("m79/open","SoundSlot6")
	 ZM79 F 1 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
	 ZM79 GHIJ 1 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
	 ZM79 KLMN 1 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
	 ZM79 O 1 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
	 ZM79 P 1 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
	 ZM79 Q 0 A_PlaySoundEx("m79/out","SoundSlot6")
	 ZM79 QRS 1 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
	 ZM79 TUV 1 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
	 ZM79 W 1 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
	 ZM79 X 2 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
	 ZM79 YZ 1 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
	 ZM80 ABC 1 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
	 ZM80 D 0 A_PlaySoundEx("m79/in","SoundSlot6")
	 ZM80 D 1 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
	 ZM80 E 1 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
	 ZM80 F 1 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
	 ZM80 GHI 1 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
	 ZM7Z M 0 A_PlaySoundEx("m79/close","SoundSlot6")
	 ZM80 JKLMN 1 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
	 ZM80 OPQR 1 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
	 ZM80 STUVW 1 A_WeaponReady(WRF_NOFIRE | WRF_NOSWITCH)
	 ZM80 W 0 A_GiveInventory("RevyJumpAmmo",20)
	 ZM80 A 0 A_ReFire
	 Goto Ready
	Altfire:
	 ZM79 A 0 A_Playsound("Revy/Jump",CHAN_ITEM)
	 ZM79 A 0 A_TakeInventory("RevyJumpAmmo",50)
	 ZM79 A 0 ThrustThingZ(0,60,0,0)
	 ZM79 A 0 ThrustThing(angle*256/360, 70, 0, 0)
	 ZM79 A 10
	 Goto Ready
  Spawn:
    M79P A -1
    Stop
  }
}

ACTOR M79Grenade
{
  Radius 11
  Height 8
  Speed 90
  Damage (30)
  Projectile
  +RANDOMIZE
  +DEHEXPLOSION
  -NOGRAVITY
  +SEEKERMISSILE
  Gravity 0.4
  Decal Scorch
  DeathSound "supermissile/hit"
  Obituary "%k blew %o's mind."
  DamageType "Grenade"
  States
  {
  Spawn:
    MRND A 1 bright A_SpawnItemEx("BlazeSpawnFiringTrail",0,0,1,0,0,0,0,160)
    loop
  XDeath:
	TNT1 A 0 A_GiveToTarget("HitBeep",1)
	TNT1 A 0 A_Jump(256,"DeathCont")
	Goto DeathCont
  Death:
	TNT1 A 0 A_ChangeFlag("NOINTERACTION",1)
	TNT1 A 0 A_Stop
	TNT1 A 0 A_SeekerMissile(0,0,SMF_LOOK|SMF_CURSPEED,256)
	TNT1 A 0 A_JumpIfTargetInLOS("SplashBeep",360,JLOSF_PROJECTILE,321)
	TNT1 A 0 A_Jump(256,"DeathCont")
	Goto DeathCont
  SplashBeep:
	TNT1 A 0 A_GiveToTarget("HitBeep",1)
	TNT1 A 0 A_Jump(256,"DeathCont")
	Goto DeathCont
  DeathCont:
    MISL B 0 bright A_ChangeFlag("NOGRAVITY",1)
    MISL B 0 bright A_PlaySound("weapons/rocklx")
	TNT1 A 0 A_SpawnItemEx("GrenadeExplosion3",0,0,0,0,0,0,0,128,0)
    TNT1 A 1 A_Explode(40,200)
    stop
  }
}

actor GrenadeExplosion3
{
renderstyle translucent
alpha 1.0
+NOGRAVITY
-SOLID
+NOBLOCKMAP
+CLIENTSIDEONLY
radius 1
height 1
scale 1.5
States
{
Spawn:
COOM A 0
COOM A 0 A_PlaySound("weapons/grenadeexplode")
COOM ABCDEFGHIJJKKLLMNNNOOOPPPQQRRSSTTTUUUVVVXXX 2 bright A_FadeOut(0.04)
Stop
}
}

ACTOR M79Ammo : Ammo
{
  Inventory.PickupMessage "Picked up a M79 Round."
  Inventory.Amount 1
  Inventory.MaxAmount 25
  Ammo.BackpackAmount 5
  Ammo.BackpackMaxAmount 50
  States
  {
  Spawn:
    M79A A -1
    stop
  }
}
