/* --- DOOM 64 DoomEd Numbers: -------------------------------------------------

691, 889-1199, 1506-2000 are all free numbers
9903, 9904, 889-895, 897 are free now, 3009?

--------------------------------------------------------------------------------
DED#    THING NAME                 COMPARISON                        SPRITES
--------------------------------------------------------------------------------
1       Player 1 start             SAME AS DOOM 2
2       Player 2 start             SAME AS DOOM 2
3       Player 3 start             SAME AS DOOM 2
4       Player 4 start             SAME AS DOOM 2
5       Blue Keycard               SAME AS DOOM 2
6       Yellow Keycard             SAME AS DOOM 2
8       Backpack                   SAME AS DOOM 2
9       Former Sergeant            SAME AS DOOM 2
11      Player DM Start            SAME AS DOOM 2
13      Red Keycard                SAME AS DOOM 2
14      Teleport Destination       SAME AS DOOM 2
16      Cyberdemon                 SAME AS DOOM 2
17      Cell Charge Pack           SAME AS DOOM 2
34      Candle                     SAME AS DOOM 2                    CANDA0 + B0
38      Red Skullkey               SAME AS DOOM 2
39      Yellow Skullkey            SAME AS DOOM 2
40      Blue Skullkey              SAME AS DOOM 2
58      Spectre                    SAME AS DOOM 2
67      Mancubus                   SAME AS DOOM 2
68      Arachnotron                SAME AS DOOM 2
69      Hell Knight                SAME AS DOOM 2
71      Pain Elemental             SAME AS DOOM 2
82      Super Shotgun              SAME AS DOOM 2
83      Megasphere                 SAME AS DOOM 2
84      Unmaker                    TAKES Wolfenstein SS NUMBER, NEW NUMBER 9902

896     Dart                       NOT IN DOOM 2                       DARTA0
898     Impaled Zombieman          NOT IN DOOM 2 OR 64, NUMBER GIVEN   A013B0
899     Green Fire                 NOT IN DOOM 2, NUMBER GIVEN         GFLMA0 - E0
900     Green Torch                NOT IN DOOM 2, NUMBER GIVEN         GTCHA0 - E0
901     Tracer Missile             NOT IN DOOM 2                       TRCRA1 - I0
908     Unlit Candle               NOT IN DOOM 2 OR 64, NUMBER GIVEN   UCNDA0

1001    Barrel                     2035 IN DOOM 2, NUMBER IS FREE      BAR1A0, BEXPA0 - I0
1003    Blue Torch                 NOT IN DOOM 2, NUMBER IS FREE       A031A0 - E0
1005    Gib Meat Stick             NOT IN DOOM 2, NUMBER IS FREE       A006A0
1006    Gib Meat Hang              NOT IN DOOM 2, NUMBER IS FREE       A021A0
1007    Gib Torso Hang             NOT IN DOOM 2, NUMBER IS FREE       A003A0
1008    Gib Rib Floor              NOT IN DOOM 2, NUMBER IS FREE       A020A0
1009    Gib Twitch Floor           NOT IN DOOM 2, NUMBER IS FREE       A014A0 + B0
1010    Gib Blood Pool             NOT IN DOOM 2, NUMBER IS FREE       A016A0
1011    Gib Bone Floor             NOT IN DOOM 2, NUMBER IS FREE       A027A0
1012    Gib Meat Rib Floor         NOT IN DOOM 2, NUMBER IS FREE       A008A0
1013    Gib Meat Rib Cage          NOT IN DOOM 2, NUMBER IS FREE       A007A0
1014    Gib Chain Hook             NOT IN DOOM 2, NUMBER IS FREE       A015A0
1015    Lamp Tech Long Hang        NOT IN DOOM 2, NUMBER IS FREE       LMP1A0
1016    Lamp Tech Short Hang       NOT IN DOOM 2, NUMBER IS FREE       LMP2A0
1017    Gib Hang Cage              NOT IN DOOM 2, NUMBER IS FREE       A001A0
1018    Gib Chain Pinser           NOT IN DOOM 2, NUMBER IS FREE       A012A0
1019    Gib Chain Arm              NOT IN DOOM 2, NUMBER IS FREE       A010A0
1020    Gib Hang Mace Bloody       NOT IN DOOM 2, NUMBER IS FREE       A018A0
1022    Gib Skull Stick            NOT IN DOOM 2, NUMBER IS FREE       A017A0
1023    Gib Head Stick             NOT IN DOOM 2, NUMBER IS FREE       A026A0
1024    Gib Double Meat Stick      NOT IN DOOM 2, NUMBER IS FREE       A022A0
1025    Red Torch                  NOT IN DOOM 2, NUMBER IS FREE       A032A0 - E0
1028    Statue Dragon              NOT IN DOOM 2, NUMBER IS FREE       A028A0
1029    Statue Demon               NOT IN DOOM 2, NUMBER IS FREE       A029A0
1031    Tech Pole Long             NOT IN DOOM 2, NUMBER IS FREE       A035A0
1032    Tech Pole Short            NOT IN DOOM 2, NUMBER IS FREE       A036A0
1033    Blue Fire                  NOT IN DOOM 2, NUMBER IS FREE       BFLMA0 - E0
1034    Red Fire                   NOT IN DOOM 2, NUMBER IS FREE       RFLMA0 - E0
1035    Yellow Fire                NOT IN DOOM 2, NUMBER IS FREE       YFLMA0 - E0
1036    Tree Stump Small           NOT IN DOOM 2, NUMBER IS FREE       TRE3A0
1037    Tree Stump Large           NOT IN DOOM 2, NUMBER IS FREE       TRE2A0
1038    Tree                       NOT IN DOOM 2, NUMBER IS FREE       TRE1A0
1039    Yellow Torch               NOT IN DOOM 2, NUMBER IS FREE       A030A0 - E0
1042    Orange Artifact            NOT IN DOOM 2, NUMBER IS FREE
1043    Purple Artifact            NOT IN DOOM 2, NUMBER IS FREE
1044    Cyan Artifact              NOT IN DOOM 2, NUMBER IS FREE
1045    Gib Bloody Metal Pole      NOT IN DOOM 2, NUMBER IS FREE       A013A0
1046    Gib Mace Clean             NOT IN DOOM 2, NUMBER IS FREE       A019A0
1047    Gib Hang White Meat        NOT IN DOOM 2, NUMBER IS FREE       A004A0
1048    Gib Head Hang              NOT IN DOOM 2, NUMBER IS FREE       A005A0
1049    Gib Hang Rib Rotting       NOT IN DOOM 2, NUMBER IS FREE       A023A0
1050    Torch Base Long            NOT IN DOOM 2, NUMBER IS FREE       A033A0
1051    Torch Base Short           NOT IN DOOM 2, NUMBER IS FREE       A034A0

1510    Fake Cell                  NEW FOR MAP SCRIPTING EFFECTS
1511    Fake Blue Card             NEW FOR MAP SCRIPTING EFFECTS
1512    Fake Blue Skull            NEW FOR MAP SCRIPTING EFFECTS
1513    Fake Red Card              NEW FOR MAP SCRIPTING EFFECTS
1514    Fake Red Skull             NEW FOR MAP SCRIPTING EFFECTS
1515    Fake Yellow Card           NEW FOR MAP SCRIPTING EFFECTS
1516    Fake Yellow Skull          NEW FOR MAP SCRIPTING EFFECTS
1517    Fake Orange Artifact       NEW FOR MAP SCRIPTING EFFECTS
1518    Fake Purple Artifact       NEW FOR MAP SCRIPTING EFFECTS
1519    Fake Cyan Artifact         NEW FOR MAP SCRIPTING EFFECTS
1520    <RESERVED>                 NEW FOR MAP SCRIPTING EFFECTS
1521    <RESERVED>                 NEW FOR MAP SCRIPTING EFFECTS
1522    <RESERVED>                 NEW FOR MAP SCRIPTING EFFECTS
1523    Fake Soulsphere            NEW FOR MAP SCRIPTING EFFECTS
1524    Fake Megasphere            NEW FOR MAP SCRIPTING EFFECTS
1525    Fake Invulnerability       NEW FOR MAP SCRIPTING EFFECTS
1526    Fake Blursphere            NEW FOR MAP SCRIPTING EFFECTS
1527    Fake Berserk               NEW FOR MAP SCRIPTING EFFECTS
1528    Grayed Out Upgrade         NEW FOR MAP SCRIPTING EFFECTS
1529    Fake Unmaker               NEW FOR MAP SCRIPTING EFFECTS

2001    Shotgun                    SAME AS DOOM 2
2002    Chaingun                   SAME AS DOOM 2
2003    Rocket Launcher            SAME AS DOOM 2
2004    Plasma Rifle               SAME AS DOOM 2
2005    Chainsaw                   SAME AS DOOM 2
2006    BFG 9000                   SAME AS DOOM 2
2007    Ammo Clip                  SAME AS DOOM 2
2008    Shotgun Shells             SAME AS DOOM 2
2010    Rocket                     SAME AS DOOM 2
2011    Stimpack                   SAME AS DOOM 2
2012    Medikit                    SAME AS DOOM 2
2013    Soulsphere                 SAME AS DOOM 2
2014    Health Bonus               SAME AS DOOM 2
2015    Armor Bonus                SAME AS DOOM 2
2018    Green Armor                SAME AS DOOM 2
2019    Blue Armor                 SAME AS DOOM 2
2022    Invulnerability            SAME AS DOOM 2
2023    Berserk                    SAME AS DOOM 2
2024    Invisibility               SAME AS DOOM 2
2025    Radiation Suit             SAME AS DOOM 2
2026    Computer Map               SAME AS DOOM 2
2045    Light Amp Goggles          SAME AS DOOM 2
2046    Box of Rockets             SAME AS DOOM 2
2047    Cell Charge                SAME AS DOOM 2
2048    Box of Ammo                SAME AS DOOM 2
2049    Box of Shells              SAME AS DOOM 2
2050    Projectile Spot            NOT IN DOOM 2, NUMBER IS FREE
2051    Big Fire                   NOT IN DOOM 2, NUMBER IS FREE     FIREA0 - E0

3001    Imp                        SAME AS DOOM 2
3002    Demon                      SAME AS DOOM 2
3003    Baron of Hell              SAME AS DOOM 2
3004    Former Human               SAME AS DOOM 2
3005    Cacodemon                  SAME AS DOOM 2
3006    Lost Soul                  SAME AS DOOM 2
3007    Nightmare Imp              NOT IN DOOM 2, NUMBER IS FREE
3008    Marine Bot                 NOT IN DOOM 2, NUMBER IS FREE
3013    Mother Demon               NOT IN DOOM 2, NUMBER IS FREE

9902    Unmaker                    ALL NEW ACTOR, INSTEAD OF 84
9907    Nailgun                    ALL NEW ACTOR
9908    Flamethrower               ALL NEW ACTOR
9910    Nailgun Ammo               ALL NEW ACTOR                     NLBXA0
9911    Flamethrower Ammo          ALL NEW ACTOR                     FUELA0
9912    Titan Boss                 ALL NEW ACTOR

15001   Torch Long Blue            NEW FROM EXISTING SPRITES
15002   Torch Long Red             NEW FROM EXISTING SPRITES
15003   Torch Long Yellow          NEW FROM EXISTING SPRITES
15004   Torch Long Green           NEW FROM EXISTING SPRITES
15005   Torch Short Blue           NEW FROM EXISTING SPRITES
15006   Torch Short Red            NEW FROM EXISTING SPRITES
15007   Torch Short Yellow         NEW FROM EXISTING SPRITES
15008   Torch Short Green          NEW FROM EXISTING SPRITES

----------------------------------------------------------------------------- */


/* --- DOOMPLAYER ----------------------------------------------------------- */

ACTOR IsPlaying : Inventory
{
	Inventory.MaxAmount 1
}

ACTOR 64DoomPlayer : DoomPlayer REPLACES DoomPlayer
{
	Speed 1
	Mass 100
	Height 64 // DEFAULT IS 56
	Radius 19 // DOOM 64 IS 19, DEFAULT IS 16
	Gravity 0.80 // DEFAULT IS 1.0
	MeleeRange 80 // DEFAULT IS 44
		PainChance 256
	Player.ViewHeight 56 // DOOM 64 HEIGHT IS 56, DEFAULT IS 41
	Player.AttackZOffset 16 // LEVEL SHOTS 22 AT 56 HEIGHT, DOOM 64 IS 16-20, DEFAULT IS 0
	Player.UseRange 68 // DEFAULT IS 64

	//Player.StartItem "mdkgun" // This weapon used for development only!

	player.ForwardMove 1.12005, 1 // DEFAULT IS 1 FOR BOTH
	Player.SideMove 1.1668, 1// DEFAULT IS 1 FOR BOTH

	//player.ForwardMove 1.12005, 0.88005 // DEFAULT IS 1 FOR BOTH
	//Player.SideMove 1.1668, 1.10005 // DEFAULT IS 1 FOR BOTH
	
	Player.DisplayName "Marine"
	Player.StartItem "IsPlaying", 1
	Player.StartItem "64Pistol"
	Player.StartItem "64Clip", 50
	Player.StartItem "64Fist"

	Player.WeaponSlot 1, "64Chainsaw", "64Fist"
	Player.WeaponSlot 2, "64Pistol"
	Player.WeaponSlot 3, "64Shotgun", "64SuperShotgun"
	Player.WeaponSlot 4, "64Chaingun", "64Nailgun"
	Player.WeaponSlot 5, "64RocketLauncher", "64GrenadeLauncher"
	Player.WeaponSlot 6, "64PlasmaRifle", "64LightningGun"
	Player.WeaponSlot 7, "64BFG9000", "64MOAD"
	Player.WeaponSlot 8, "64Unmaker", "64RailGun", "64HellCannon"
	//Player.WeaponSlot 9, "mdkgun"

	+PLAYERPAWN.NOTHRUSTWHENINVUL

	States
	{
	
	Spawn:
		PLAY A -1
		Loop
	See:
		PLAY ABCD 4
		Loop
	Missile:
		PLAY E 12
		Goto Spawn
	Melee:
		PLAY F 6 BRIGHT
		Goto Missile
	Pain:
		PLAY G 4 A_Pain
		PLAY G 4 
		Goto Spawn
	
		Pain.Vertigo:
			PLAY G 0 ThrustThingZ(0, 55, 0, 0)
			PLAY G 4 A_Pain
			Goto Spawn
		Death:
			PLAY H 10 A_PlayerScream
			PLAY I 10 
			PLAY J 10 A_NoBlocking
			PLAY KL 8
			PLAY M -1
			Stop
		XDeath:
			PLAY N 5 A_XScream
			PLAY O 5 
			PLAY P 5 A_NoBlocking
			PLAY Q 5 
			PLAY RSTU 5
			PLAY V -1
			Stop
		Crush:
			A027 A 0
			A027 A 0 A_PlaySound("misc/gibbed")
			A027 A -1
			Stop
	}
}

ACTOR 64EndLevelFreezer : PowerupGiver
{
	Inventory.MaxAmount 1
	Powerup.Color 0, 0, 0, 0
	Powerup.Type "TimeFreezer"
	Powerup.Duration -20
	+AUTOACTIVATE
}

/* Uncomment this gun for map development!
ACTOR mdkgun : Pistol
{
	Weapon.SlotNumber 9
	Weapon.AmmoUse 0
	Inventory.Icon "UNKNA0"
	Inventory.PickupMessage "mdkgun!"
	AttackSound "NULL"
	Decal "BulletChip"
	Tag "mdkgun"
	+WEAPON.AMMO_OPTIONAL
	+WEAPON.NOALERT
	+WEAPON.DONTBOB
	+WEAPON.BFG

	States
	{
		Spawn:
			UNKN A 0
			UNKN A -1
			Stop
		Deselect:
			TNT1 A 0 A_Lower
			TNT1 A 1 A_Lower
			Loop
		Select:
			TNT1 A 0 A_Raise
			TNT1 A 1 A_Raise
			Loop
		Ready:
			TNT1 A 0
			TNT1 A 1 A_WeaponReady
			Loop
		Fire:
			TNT1 A 0
			TNT1 A 1 A_FireBullets(0, 0, 1, 1000000, "BulletPuff")
			TNT1 A 2
			TNT1 A 1 A_ReFire
			Goto Ready
		Flash:
			TNT1 A 0
			TNT1 A 1
			Goto LightDone
	}
}
*/

/* --- FIST ----------------------------------------------------------------- */

ACTOR 64Fist : Fist REPLACES Fist
{
	//$Sprite PUNGA0
	Weapon.SlotNumber 1
	Weapon.SlotPriority 0
	AttackSound "*fist"
	Tag "$TAG_FIST"


	States
	{
		Deselect:
			PUNG A 0 A_Lower
			PUNG A 1 A_Lower
			Loop
		Select:
			PUNG A 0 A_Raise
			PUNG A 1 A_Raise
			Loop
		Fire:
			TNT1 A 0 A_JumpIf(CallACS("ClassicAnims") == 1, "ClassicFire")
			TNT1 A 0 A_JumpIfInventory("PowerStrength", 1, "SmoothBerserked")
		SmoothNormal:
			PUNF LBCD 1
			PUNF E 2 A_CustomPunch((random(1, 8) * 3), TRUE,0,"64BulletPuff",80)
			Goto SmoothFireEnd
		SmoothBerserked:
			PUNF LBCD 1
			PUNF E 2 A_CustomPunch((random(1, 8) * 30), TRUE,0,"64BulletPuff",80)
		SmoothFireEnd:
			PUNF FGHI 2
			PUNF JKL 1
			PUNF A 3 A_ReFire
			PUNG A 2
			Goto Ready
			
			
		ClassicFire:
			TNT1 A 0 A_JumpIfInventory("PowerStrength", 1, "ClassicBerserked")
			CPUN BC 4
			CPUN D 5 A_CustomPunch((random(1, 8) * 3), TRUE,0,"64BulletPuff",80,"DSPUNCH")
			goto ClassicFireEnd
		ClassicBerserked:
			CPUN BC 4
			CPUN D 5 A_CustomPunch((random(1, 8) * 30), TRUE,0,"64BulletPuff",80,"DSPUNCH")
		ClassicFireEnd:
			CPUN C 4
			CPUN B 5 A_ReFire
			Goto Ready
	}
}

/* --- CHAINSAW ------------------------------------------------------------- */

ACTOR 64Chainsaw : Chainsaw REPLACES Chainsaw
{
	//$Sprite CSAWA0
	Weapon.UpSound "NULL"
	Weapon.SlotNumber 1
	Weapon.SlotPriority 1
	+DONTGIB

	States
	{
		Deselect:
			SAWG A 0 A_Lower
			SAWG A 1 A_Lower
			Loop
		Select:
			SAWG A 0 A_PlaySound("weapons/sawup", CHAN_AUTO, 1, 0, ATTN_NORM)
			SAWG A 0 A_Raise
			SAWG A 1 A_Raise
			Goto Select+2
		Ready:
			TNT1 A 0 A_JumpIf(CallACS("ClassicAnims") == 1, "ClassicReady")
			//TNT1 A 0 A_StopSound(CHAN_WEAPON)
			TNT1 A 0 A_PlaySound("weapons/sawidle", CHAN_WEAPON, 1, 0, ATTN_NORM)

			SAWG AABBCCDD 1 A_WeaponReady
			Loop
		ClassicReady:
			TNT1 A 0 A_JumpIf(CallACS("ClassicAnims") == 0, "Ready")
			TNT1 A 0 A_StopSound(CHAN_WEAPON)
			TNT1 A 0 A_PlaySound("weapons/sawidle", CHAN_WEAPON, 1, 0, ATTN_NORM)

			CCSW AB 4 A_WeaponReady
			Loop
		Fire:
			TNT1 A 0 A_JumpIf(CallACS("ClassicAnims") == 1, "ClassicFire")
			TNT1 A 0 A_PlaySound("weapons/sawfull", CHAN_WEAPON, 1, 0, ATTN_NORM)
			TNT1 A 0 A_StopSound(CHAN_VOICE)

			SAWF A 1 Offset(0,34) A_Saw("weapons/sawfull", "weapons/sawhit", (random(1, 8) * 3),"64BulletPuff",SF_NORANDOM,80+1)
			SAWF A 0 A_SetPitch(pitch-0.4)
			SAWF B 1 Offset(0,33) A_SetPitch(pitch+0.2)
			SAWF B 1 Offset(0,33) A_SetPitch(pitch+0.2)
			SAWF A 1 Offset(0,32) A_Saw("weapons/sawfull", "weapons/sawhit", (random(1, 8) * 3),"64BulletPuff",SF_NORANDOM,80+1)
			SAWF A 0 A_SetPitch(pitch-0.4)
			SAWF B 1 Offset(0,34) A_SetPitch(pitch+0.2)
			SAWF B 1 Offset(0,34) A_SetPitch(pitch+0.2)
			SAWF B 0 A_ReFire
			Goto Ready
		ClassicFire:
			TNT1 A 0 A_PlaySound("weapons/sawfull", CHAN_WEAPON, 1, 0, ATTN_NORM)
			TNT1 A 0 A_StopSound(CHAN_VOICE)

			CCSW CD 3 A_Saw("weapons/sawfull", "weapons/sawhit", (random(1, 8) * 3),"64BulletPuff",SF_NORANDOM,80+1)
			CCSW C 0 A_ReFire
			Goto ClassicReady
	}
}

/* --- PISTOL --------------------------------------------------------------- */

ACTOR 64Pistol : Pistol REPLACES Pistol
{
	// DEFAULT BULLET DAMAGE IS 5
	//$Sprite PISTA0
	Weapon.SlotNumber 2
	Inventory.Icon "PISTA0"
	Inventory.PickupMessage "$GOTPISTOL"
	Decal "BulletChip"
	SpawnID 157
	+DONTGIB

	States
	{
		Deselect:
			PISG A 0 A_Lower
			PISG A 1 A_Lower
			Loop
		Select:
			PISG A 0 A_Raise
			PISG A 1 A_Raise
			Loop
		Fire:
			TNT1 A 0 A_JumpIf(CallACS("ClassicAnims") == 1, "ClassicFire")
			TNT1 A 0 A_JumpIf(CallACS("DropCasings") == 1, "CasingsFire")

			//PISG B 0 A_FireCustomMissile("DummyProjectile1", 0, 0, 0, 0, 0, 0)
			PISG B 0 A_GunFlash
			PISG B 1 A_FireBullets(5.6, 0, 1, (random(1,4)*4), "BulletPuff", FBF_NORANDOM | FBF_USEAMMO)
			PISG B 1 A_PlaySound("weapons/pistol", CHAN_AUTO, 1, 0, ATTN_NORM)
			PISG B 0 A_SetPitch(pitch-0.8)
			PISG CDEF 2 A_SetPitch(pitch+0.2) // TOTAL OF 0.8
			PISG A 3
			PISG A 1 A_ReFire
			Goto Ready
		CasingsFire:
			//PISG B 0 A_FireCustomMissile("DummyProjectile1", 0, 0, 0, 0, 0, 0)
			PISG B 0 A_GunFlash
			PISG B 1 A_FireBullets(5.6, 0, 1, (random(1,4)*4), "BulletPuff", FBF_NORANDOM | FBF_USEAMMO)
			TNT1 A 0 A_SpawnItemEx("BulletCasing", 30, 0, 40, Random(3, 4), Random(7, 8), Random(7, 9), 0)
			PISG B 1 A_PlaySound("weapons/pistol", CHAN_AUTO, 1, 0, ATTN_NORM)
			PISG B 0 A_SetPitch(pitch-0.8)
			PISG CDEF 2 A_SetPitch(pitch+0.2) // TOTAL OF 0.8
			PISG A 3
			PISG A 1 A_ReFire
			Goto Ready
		ClassicFire:
			TNT1 A 0 A_JumpIf(CallACS("DropCasings") == 1, "ClassicCasingsFire")

			//CPIS B 0 A_FireCustomMissile("DummyProjectile1", 0, 0, 0, 0, 0, 0)
			CPIS B 0 A_GunFlash("ClassicFlash")
			CPIS B 1 A_FireBullets(5.6, 0, 1, (random(1,4)*4), "BulletPuff", FBF_NORANDOM | FBF_USEAMMO)
			CPIS B 1 A_PlaySound("weapons/pistol", CHAN_AUTO, 1, 0, ATTN_NORM)
			CPIS B 5
			CPIS C 6
			CPIS C 0 A_ReFire
			CPIS B 2
			CPIS A 1
			Goto Ready
		ClassicCasingsFire:
			//CPIS B 0 A_FireCustomMissile("DummyProjectile1", 0, 0, 0, 0, 0, 0)
			CPIS B 0 A_GunFlash("ClassicFlash")
			CPIS B 1 A_FireBullets(5.6, 0, 1, (random(1,4)*4), "BulletPuff", FBF_NORANDOM | FBF_USEAMMO)
			TNT1 A 0 A_SpawnItemEx("BulletCasing", 30, 0, 40, Random(3, 4), Random(7, 8), Random(7, 9), 0)
			CPIS B 1 A_PlaySound("weapons/pistol", CHAN_AUTO, 1, 0, ATTN_NORM)
			CPIS B 5
			CPIS C 6
			CPIS C 0 A_ReFire
			CPIS B 2
			CPIS A 1
			Goto Ready
		Flash:
			PISF A 1 BRIGHT A_Light1
			PISF B 1 BRIGHT A_Light2
			Goto LightDone
		ClassicFlash:
			CPIS D 2 BRIGHT A_Light2
			Goto LightDone
	}
}

/* --- SHOTGUN -------------------------------------------------------------- */

ACTOR 64Shotgun : Shotgun REPLACES Shotgun
{
	//$Sprite SHOTA0
	Weapon.SlotNumber 3
	Inventory.Icon "SHOTA0"
	Decal "BulletChip"
	+DONTGIB

	States
	{
		Spawn:
			TNT1 A 0
			TNT1 A 0 A_JumpIf(CallACS("ClassicDrops") == 1, "ClassicSpawn")
			SHOT A -1
			Stop
		ClassicSpawn:
			CSHS A -1
			Stop
		Ready:
			TNT1 A 0 A_JumpIf(CallACS("ClassicAnims") == 1, "ClassicReady")
			SHTG A 1 A_WeaponReady
			Loop
		ClassicReady:
			TNT1 A 0 A_JumpIf(CallACS("ClassicAnims") == 0, "Ready")
			CSHT A 1 A_WeaponReady
			Loop
		Deselect:
			TNT1 A 0 A_JumpIf(CallACS("ClassicAnims") == 1, "ClassicDeselect")
			SHTG A 0 A_Lower
			SHTG A 1 A_Lower
			Loop
		ClassicDeselect:
			TNT1 A 0 A_JumpIf(CallACS("ClassicAnims") == 0, "Deselect")
			CSHT A 0 A_Lower
			CSHT A 1 A_Lower
			Loop
		Select:
			TNT1 A 0 A_JumpIf(CallACS("ClassicAnims") == 1, "ClassicSelect")
			SHTG A 0 A_Raise
			SHTG A 1 A_Raise
			Loop
		ClassicSelect:
			TNT1 A 0 A_JumpIf(CallACS("ClassicAnims") == 0, "Select")
			CSHT A 0 A_Raise
			CSHT A 1 A_Raise
			Loop
		Fire:
			TNT1 A 0 A_JumpIf(CallACS("ClassicAnims") == 1, "ClassicFire")
			TNT1 A 0 A_JumpIf(CallACS("DropCasings") == 1, "CasingsFire")

			//SHTG J 0 A_FireCustomMissile("DummyProjectile1", 0, 0, 0, 0, 0, 0)
			SHTG J 1 A_FireShotgun
			SHTG J 1 A_SetPitch(pitch-2.0)
			SHTG J 1 A_SetPitch(pitch+0.8)
			SHTG I 1 A_SetPitch(pitch+0.3)
			SHTG I 1 A_SetPitch(pitch+0.1)
			SHTG I 0 A_SetPitch(pitch+0.1)
			SHTG IBC 1 A_SetPitch(pitch+0.1) // TOTAL OF 0.3
			SHTG D 2 A_SetPitch(pitch+0.1)
			SHTG E 3 A_SetPitch(pitch+0.1)
			SHTG F 4 A_SetPitch(pitch+0.2)
			SHTG G 1
			SHTG H 3
			SHTG GFEDC 2
			SHTG BIA 1
			SHTG A 2
			SHTG A 1 A_ReFire
			Goto Ready
		CasingsFire:
			//SHTG J 0 A_FireCustomMissile("DummyProjectile1", 0, 0, 0, 0, 0, 0)
			SHTG J 1 A_FireShotgun
			SHTG J 1 A_SetPitch(pitch-2.0)
			SHTG J 1 A_SetPitch(pitch+0.8)
			SHTG I 1 A_SetPitch(pitch+0.3)
			SHTG I 1 A_SetPitch(pitch+0.1)
			SHTG I 0 A_SetPitch(pitch+0.1)
			SHTG IBC 1 A_SetPitch(pitch+0.1) // TOTAL OF 0.3
			SHTG D 2 A_SetPitch(pitch+0.1)
			SHTG E 3 A_SetPitch(pitch+0.1)
			SHTG F 4 A_SetPitch(pitch+0.2)
			SHTG G 1
			SHTG H 3
			TNT1 A 0 A_SpawnItemEx("ShellCasing", 30, 0, 35, Random(3, 4), Random(7, 8), Random(7, 9), 0)
			SHTG GFEDC 2
			SHTG BIA 1
			SHTG A 2
			SHTG A 1 A_ReFire
			Goto Ready
		ClassicFire:
			TNT1 A 0 A_JumpIf(CallACS("DropCasings") == 1, "ClassicCasingsFire")

			//CSHT B 0 A_FireCustomMissile("DummyProjectile1", 0, 0, 0, 0, 0, 0)
			CSHT A 0 A_FireBullets(5.6, 0, 7, 5, "BulletPuff")
			CSHT A 0 A_PlaySound("weapons/shotgf", CHAN_AUTO, 1, 0, ATTN_NORM)
			CSHT B 4 A_GunFlash("ClassicFlash")
			CSHT B 0 A_SetPitch(pitch-2.0)
			CSHT BB 1 A_SetPitch(pitch+0.4) // TOTAL OF 0.8
			CSHT BBBBBB 2 A_SetPitch(pitch+0.2) // TOTAL OF 1.2
			CSHT C 10
			CSHT A 8
			CSHT A 1 A_ReFire
			Goto ClassicReady
		ClassicCasingsFire:
			//CSHT B 0 A_FireCustomMissile("DummyProjectile1", 0, 0, 0, 0, 0, 0)
			CSHT A 0 A_FireBullets(5.6, 0, 7, 5, "BulletPuff")
			CSHT A 0 A_PlaySound("weapons/shotgf", CHAN_AUTO, 1, 0, ATTN_NORM)
			CSHT B 4 A_GunFlash("ClassicFlash")
			CSHT B 0 A_SetPitch(pitch-2.0)
			CSHT BB 1 A_SetPitch(pitch+0.4) // TOTAL OF 0.8
			CSHT BBBBB 2 A_SetPitch(pitch+0.2) // TOTAL OF 1.0
			TNT1 A 0 A_SpawnItemEx("ShellCasing", 30, 0, 35, Random(3, 4), Random(7, 8), Random(7, 9), 0)
			CSHT B 2 A_SetPitch(pitch+0.2) // TOTAL OF 0.2
			CSHT C 10
			CSHT A 8
			CSHT A 1 A_ReFire
			Goto ClassicReady
		Flash:
			SHTF A 2 BRIGHT A_Light1
			SHTF B 2 BRIGHT A_Light2
			Goto LightDone
		ClassicFlash:
			CSHT D 3 BRIGHT A_Light2
			Goto LightDone
	}
}

/* --- SUPER SHOTGUN -------------------------------------------------------- */

ACTOR 64SuperShotgun : SuperShotgun REPLACES SuperShotgun
{
	// DEFAULT VALUES: 11.2 spread_horz, 7.1 spread_vert, 5 damage
	//$Sprite SGN2A0
	Weapon.SlotNumber 3
	Inventory.Icon "SGN2A0"
	Decal "BulletChip"
	+DONTGIB

	States
	{
		Spawn:
			TNT1 A 0
			TNT1 A 0 A_JumpIf(CallACS("ClassicDrops") == 1, "ClassicSpawn")
			SGN2 A -1
			Stop
		ClassicSpawn:
			CS2S A -1
			Stop
		Select:
			TNT1 A 0 A_JumpIf(CallACS("ClassicAnims") == 1, "ClassicSelect")
			SH2G A 0 A_Raise
			SH2G A 1 A_Raise
			Loop
		ClassicSelect:
			TNT1 A 0 A_JumpIf(CallACS("ClassicAnims") == 0, "Select")
			CSSG A 0 A_Raise
			CSSG A 1 A_Raise
			Loop
		Deselect:
			TNT1 A 0 A_JumpIf(CallACS("ClassicAnims") == 1, "ClassicDeselect")
			SH2G A 0 A_Lower
			SH2G A 1 A_Lower
			Loop
		ClassicDeselect:
			TNT1 A 0 A_JumpIf(CallACS("ClassicAnims") == 0, "Deselect")
			CSSG A 0 A_Lower
			CSSG A 1 A_Lower
			Loop
		Ready:
			TNT1 A 0 A_JumpIf(CallACS("ClassicAnims") == 1, "ClassicReady")
			SH2G A 1 A_WeaponReady
			Loop
		ClassicReady:
			TNT1 A 0 A_JumpIf(CallACS("ClassicAnims") == 0, "Ready")
			CSSG A 1 A_WeaponReady
			Loop
		Fire:
			TNT1 A 0 A_JumpIf(CallACS("ClassicAnims") == 1, "ClassicFire")
			TNT1 A 0 A_JumpIf(CallACS("DropCasings") == 1, "CasingsFire")

			//SH2G C 0 A_FireCustomMissile("DummyProjectile1", 0, 0, 0, 0, 0, 0)
			SH2G C 0 A_FireBullets(8.5, 5.8, 20, 5, "BulletPuff")
			SH2G C 0 A_PlaySound("weapons/sshotf", CHAN_WEAPON, 1, 0, ATTN_NORM)
			//SH2G C 0 Radius_Quake(2, 5, 0, 1, 0)
			SH2G C 0 A_Recoil(2)
			SH2G C 0 A_SetPitch(pitch-2.0)
			SH2G C 1 A_GunFlash
			SH2G C 1
			SH2G CC 1 A_SetPitch(pitch+0.4) // TOTAL OF 0.8
			SH2G CC 1 A_SetPitch(pitch+0.3) // TOTAL OF 0.6
			SH2G BB 1 A_SetPitch(pitch+0.3) // TOTAL OF 0.6
			SH2G A 1 A_CheckReload
			SH2F B 2
			SH2F C 3
			SH2F D 2
			SH2F E 2
			SH2F F 2 A_PlaySound("weapons/sshoto", CHAN_AUTO, 1, 0, ATTN_NORM)
			SH2F GHIJ 2
			SH2F K 2
			SH2F L 2 A_PlaySound("weapons/sshotl", CHAN_AUTO, 1, 0, ATTN_NORM)
			SH2F M 2
			SH2F NOPQ 2
			SH2F R 2 A_PlaySound("weapons/sshotc", CHAN_AUTO, 1, 0, ATTN_NORM)
			SH2F S 2
			SH2G A 2
			SH2G A 1 A_ReFire
			Goto Ready
		CasingsFire:
			//SH2G C 0 A_FireCustomMissile("DummyProjectile1", 0, 0, 0, 0, 0, 0)
			SH2G C 0 A_FireBullets(8.5, 5.8, 20, 5, "BulletPuff")
			SH2G C 0 A_PlaySound("weapons/sshotf", CHAN_WEAPON, 1, 0, ATTN_NORM)
			//SH2G C 0 Radius_Quake(2, 5, 0, 1, 0)
			SH2G C 0 A_Recoil(2)
			SH2G C 0 A_SetPitch(pitch-2.0)
			SH2G C 1 A_GunFlash
			SH2G C 1
			SH2G CC 1 A_SetPitch(pitch+0.4) // TOTAL OF 0.8
			SH2G CC 1 A_SetPitch(pitch+0.3) // TOTAL OF 0.6
			SH2G BB 1 A_SetPitch(pitch+0.3) // TOTAL OF 0.6
			SH2G A 1 A_CheckReload
			SH2F B 2
			SH2F C 3
			SH2F D 2
			SH2F E 2
			SH2F F 2 A_PlaySound("weapons/sshoto", CHAN_AUTO, 1, 0, ATTN_NORM)
			TNT1 A 0 A_SpawnItemEx("ShellCasing", 30, 0, 25, Random(0, 1), Random(-2, -3), Random(9, 10), 0)
			TNT1 A 0 A_SpawnItemEx("ShellCasing", 30, 0, 25, Random(-2, -3), Random(-5, -6), Random(10, 11), 0)
			SH2F GHIJ 2
			SH2F K 2
			SH2F L 2 A_PlaySound("weapons/sshotl", CHAN_AUTO, 1, 0, ATTN_NORM)
			SH2F M 2
			SH2F NOPQ 2
			SH2F R 2 A_PlaySound("weapons/sshotc", CHAN_AUTO, 1, 0, ATTN_NORM)
			SH2F S 2
			SH2G A 2
			SH2G A 1 A_ReFire
			Goto Ready
		ClassicFire:
			TNT1 A 0 A_JumpIf(CallACS("DropCasings") == 1, "ClassicCasingsFire")

			//CSSG B 0 A_FireCustomMissile("DummyProjectile1", 0, 0, 0, 0, 0, 0)
			CSSG B 0 A_FireBullets(8.5, 5.8, 20, 5, "BulletPuff")
			CSSG B 0 A_PlaySound("weapons/sshotf", CHAN_WEAPON, 1, 0, ATTN_NORM)
			CSSG B 4 A_GunFlash("ClassicFlash")
			CSSG B 0 A_Recoil(2)
			CSSG B 0 A_SetPitch(pitch-2.0)
			CSSG BB 1 A_SetPitch(pitch+0.4) // TOTAL OF 0.8
			CSSG BB 1 A_SetPitch(pitch+0.3) // TOTAL OF 0.6
			CSSG BB 1 A_SetPitch(pitch+0.3) // TOTAL OF 0.6
			CSSG B 2
			CSSG B 1 A_CheckReload
			CSSG B 20
			CSSG C 6 A_PlaySound("weapons/sshoto", CHAN_AUTO, 1, 0, ATTN_NORM)
			CSSG A 4 A_PlaySound("weapons/sshotc", CHAN_AUTO, 1, 0, ATTN_NORM)
			CSSG A 3
			Goto ClassicReady
		ClassicCasingsFire:
			//CSSG B 0 A_FireCustomMissile("DummyProjectile1", 0, 0, 0, 0, 0, 0)
			CSSG B 0 A_FireBullets(8.5, 5.8, 20, 5, "BulletPuff")
			CSSG B 0 A_PlaySound("weapons/sshotf", CHAN_WEAPON, 1, 0, ATTN_NORM)
			CSSG B 4 A_GunFlash("ClassicFlash")
			CSSG B 0 A_Recoil(2)
			CSSG B 0 A_SetPitch(pitch-2.0)
			CSSG BB 1 A_SetPitch(pitch+0.4) // TOTAL OF 0.8
			CSSG BB 1 A_SetPitch(pitch+0.3) // TOTAL OF 0.6
			CSSG BB 1 A_SetPitch(pitch+0.3) // TOTAL OF 0.6
			CSSG B 2
			CSSG B 1 A_CheckReload
			CSSG B 20
			TNT1 A 0 A_SpawnItemEx("ShellCasing", 30, 0, 25, Random(0, 1), Random(-2, -3), Random(9, 10), 0)
			TNT1 A 0 A_SpawnItemEx("ShellCasing", 30, 0, 25, Random(-2, -3), Random(-5, -6), Random(10, 11), 0)
			CSSG C 6 A_PlaySound("weapons/sshoto", CHAN_AUTO, 1, 0, ATTN_NORM)
			CSSG A 4 A_PlaySound("weapons/sshotc", CHAN_AUTO, 1, 0, ATTN_NORM)
			CSSG A 3
			Goto ClassicReady
		Flash:
			SSGF A 2 BRIGHT A_Light1
			SSGF B 2 BRIGHT A_Light2
			Goto LightDone
		ClassicFlash:
			CSSG D 3 BRIGHT A_Light2
			Goto LightDone
	}
}

/* --- CHAINGUN ------------------------------------------------------------- */

ACTOR ChaingunBackup : Chaingun {}

ACTOR 64Chaingun : Chaingun REPLACES Chaingun
{
	// DEFAULT BULLET DAMAGE IS 5
	//$Sprite MGUNA0
	Weapon.SlotNumber 4
	AttackSound "NULL"
	Decal "BulletChip"
	+DONTGIB

	States
	{
		Select:
			CHGG A 0 A_Raise
			CHGG A 1 A_Raise
			Loop
		Deselect:
			CHGG A 0 A_Lower
			CHGG A 1 A_Lower
			Loop
		Fire:
			TNT1 A 0 A_JumpIf(CallACS("ClassicAnims") == 1, "ClassicFire")
			TNT1 A 0 A_JumpIf(CallACS("DropCasings") == 1, "CasingsFire")

			CHGG A 0 A_GunFlash
			//CHGG A 0 A_FireCustomMissile("DummyProjectile2", 0, 0, 0, 0, 0, 0)
			CHGG A 0 A_FireBullets(5.6, 0, 1, (random(1,4)*4), "BulletPuff", FBF_NORANDOM | FBF_USEAMMO)
			CHGG A 0 
			CHGG B 0 Offset(-1, 33) A_SetPitch(pitch-1.0)
			CHGG B 1 A_PlaySound("weapons/chngun", CHAN_AUTO, 1, 0, ATTN_NORM) 
			CHGG C 1 A_SetPitch(pitch+0.6)
			CHGG C 0 Offset(1, 32)
			CHGG D 1 A_SetPitch(pitch+0.4)

			CHGG A 0 A_CheckReload
			CHGG A 0 A_GunFlash("Flash2")
			//CHGG A 0 A_FireCustomMissile("DummyProjectile2", 0, 0, 0, 0, 0, 0)
			CHGG A 0 A_FireBullets(5.6, 0, 1, (random(1,4)*4), "BulletPuff", FBF_NORANDOM | FBF_USEAMMO)
			CHGG A 1 A_PlaySound("weapons/chngun", CHAN_AUTO, 1, 0, ATTN_NORM)
			CHGG B 0 Offset(1, 33)
			CHGG B 1 A_SetPitch(pitch-1.0)
			CHGG C 1 A_SetPitch(pitch+0.6)
			CHGG C 0 Offset(-1, 32)
			CHGG D 1 A_SetPitch(pitch+0.4)

			CHGG C 0 A_ReFire
			CHGG ABCD 1 A_WeaponReady
			CHGG ABCD 2 A_WeaponReady
			CHGG ABCD 3 A_WeaponReady
			Goto Ready
		CasingsFire:
			CHGG A 0 A_GunFlash
			//CHGG A 0 A_FireCustomMissile("DummyProjectile2", 0, 0, 0, 0, 0, 0)
			CHGG A 0 A_FireBullets(5.6, 0, 1, (random(1,4)*4), "BulletPuff", FBF_NORANDOM | FBF_USEAMMO)
			TNT1 A 0 A_SpawnItemEx("BulletCasing", 12, 0, 35, Random(3, 4), Random(7, 8), Random(7, 9), 0)
			CHGG A 0 
			CHGG B 0 Offset(-1, 33) A_SetPitch(pitch-1.0)
			CHGG B 1 A_PlaySound("weapons/chngun", CHAN_AUTO, 1, 0, ATTN_NORM)
			CHGG C 1 A_SetPitch(pitch+0.6)
			CHGG C 0 Offset(1, 32)
			CHGG D 1 A_SetPitch(pitch+0.4)

			CHGG A 0 A_CheckReload
			CHGG A 0 A_GunFlash("Flash2")
			//CHGG A 0 A_FireCustomMissile("DummyProjectile2", 0, 0, 0, 0, 0, 0)
			CHGG A 0 A_FireBullets(5.6, 0, 1, (random(1,4)*4), "BulletPuff", FBF_NORANDOM | FBF_USEAMMO)
			TNT1 A 0 A_SpawnItemEx("BulletCasing", 12, 0, 35, Random(3, 4), Random(7, 8), Random(7, 9), 0)
			CHGG A 1 A_PlaySound("weapons/chngun", CHAN_AUTO, 1, 0, ATTN_NORM)
			CHGG B 0 Offset(1, 33)
			CHGG B 1 A_SetPitch(pitch-1.0)
			CHGG C 1 A_SetPitch(pitch+0.6)
			CHGG C 0 Offset(-1, 32)
			CHGG D 1 A_SetPitch(pitch+0.4)

			CHGG C 0 A_ReFire
			CHGG ABCD 1 A_WeaponReady
			CHGG ABCD 2 A_WeaponReady
			CHGG ABCD 3 A_WeaponReady
			Goto Ready
		ClassicFire:
			TNT1 A 0 A_JumpIf(CallACS("DropCasings") == 1, "ClassicCasingsFire")

			CLCG A 0 A_FireBullets(5.6, 0, 1, (random(1,4)*4), "BulletPuff", FBF_NORANDOM | FBF_USEAMMO)
			CLCG A 0 
			//CLCG A 0 A_FireCustomMissile("DummyProjectile2", 0, 0, 0, 0, 0, 0)
			CLCG A 0 A_GunFlash("ClassicFlash1")
			CLCG A 0 Offset(-1, 33) A_SetPitch(pitch-1.0)
			CLCG A 1 A_PlaySound("weapons/chngun", CHAN_AUTO, 1, 0, ATTN_NORM)
			CLCG A 1 A_SetPitch(pitch+0.6)
			CLCG A 0 Offset(1, 32)
			CLCG A 1 A_SetPitch(pitch+0.4)

			CLCG A 0 A_CheckReload

			CLCG B 0 A_FireBullets(5.6, 0, 1, (random(1,4)*4), "BulletPuff", FBF_NORANDOM | FBF_USEAMMO)
			CLCG B 0 
			//CLCG B 0 A_FireCustomMissile("DummyProjectile2", 0, 0, 0, 0, 0, 0)
			CLCG B 0 A_GunFlash("ClassicFlash2")
			CLCG B 0 Offset(1, 33) A_SetPitch(pitch-1.0)
			CLCG B 2 A_PlaySound("weapons/chngun", CHAN_AUTO, 1, 0, ATTN_NORM)
			CLCG B 1 A_SetPitch(pitch+0.6)
			CLCG B 0 Offset(-1, 32)
			CLCG B 1 A_SetPitch(pitch+0.4)

			CLCG B 0 A_ReFire
			Goto Ready
		ClassicCasingsFire:
			CLCG A 0 A_FireBullets(5.6, 0, 1, (random(1,4)*4), "BulletPuff", FBF_NORANDOM | FBF_USEAMMO)
			TNT1 A 0 A_SpawnItemEx("BulletCasing", 12, 0, 35, Random(3, 4), Random(7, 8), Random(7, 9), 0)
			CLCG A 0 
			//CLCG A 0 A_FireCustomMissile("DummyProjectile2", 0, 0, 0, 0, 0, 0)
			CLCG A 0 A_GunFlash("ClassicFlash1")
			CLCG A 0 Offset(-1, 33) A_SetPitch(pitch-1.0)
			CLCG A 1 A_PlaySound("weapons/chngun", CHAN_AUTO, 1, 0, ATTN_NORM)
			CLCG A 1 A_SetPitch(pitch+0.6)
			CLCG A 0 Offset(1, 32)
			CLCG A 1 A_SetPitch(pitch+0.4)

			CLCG A 0 A_CheckReload

			CLCG B 0 A_FireBullets(5.6, 0, 1, (random(1,4)*4), "BulletPuff", FBF_NORANDOM | FBF_USEAMMO)
			TNT1 B 0 A_SpawnItemEx("BulletCasing", 12, 0, 35, Random(3, 4), Random(7, 8), Random(7, 9), 0)
			CLCG B 0 
			//CLCG B 0 A_FireCustomMissile("DummyProjectile2", 0, 0, 0, 0, 0, 0)
			CLCG B 0 A_GunFlash("ClassicFlash2")
			CLCG B 0 Offset(1, 33) A_SetPitch(pitch-1.0)
			CLCG B 2 A_PlaySound("weapons/chngun", CHAN_AUTO, 1, 0, ATTN_NORM)
			CLCG B 1 A_SetPitch(pitch+0.6)
			CLCG B 0 Offset(-1, 32)
			CLCG B 1 A_SetPitch(pitch+0.4)

			CLCG B 0 A_ReFire
			Goto Ready
		Flash:
			CHGF AB 1 BRIGHT A_Light2
			Goto LightDone
		Flash2:
			CHGF CD 1 BRIGHT A_Light2
			Goto LightDone
		ClassicFlash1:
			CLCG C 1 BRIGHT A_Light2
			Goto LightDone
		ClassicFlash2:
			CLCG D 1 BRIGHT A_Light2
			Goto LightDone
	}
}

/* --- ROCKET LAUNCHER ------------------------------------------------------ */

ACTOR RocketLauncherBackup : RocketLauncher {}

ACTOR 64RocketLauncher : RocketLauncher REPLACES RocketLauncher
{
	//$Sprite LAUNA0
	Weapon.SlotNumber 5
	-WEAPON.NOAUTOFIRE
	+WEAPON.NOAUTOAIM
	+DONTGIB
	

	States
	{
		Deselect:
			MISG A 0 A_Lower
			MISG A 1 A_Lower
			Loop
		Select:
			MISG A 0 A_Raise
			MISG A 1 A_Raise
			Loop
		Fire:
			TNT1 A 0 A_JumpIf(CallACS("ClassicAnims") == 1, "ClassicFire")

			MISG B 0 A_FireCustomMissile("DummyProjectile4", 0, 0, 0, 0, 0, 0)
			MISG B 4 A_GunFlash
			MISG B 0 A_FireCustomMissile("64Rocket", 0, 1, 0, -4, 0, 0)
			MISG B 0 A_Recoil(2)
			MISG B 0 A_SetPitch(pitch-1.0)
			MISG C 3 A_SetPitch(pitch+0.5)
			MISG A 10 A_SetPitch(pitch+0.5)
			MISG A 4
			MISG B 0 A_ReFire
			Goto Ready
		ClassicFire:
			CRCK B 0 A_FireCustomMissile("DummyProjectile4", 0, 0, 0, 0, 0, 0)
			CRCK B 4 A_GunFlash("ClassicFlash")
			CRCK B 0 A_FireCustomMissile("64Rocket", 0, 1, 0, -4, 0, 0)
			CRCK B 0 A_Recoil(2)
			CRCK B 0 A_SetPitch(pitch-1.0)
			CRCK B 3 A_SetPitch(pitch+0.5)
			CRCK B 10 A_SetPitch(pitch+0.5)
			CRCK B 4
			CRCK B 0 A_ReFire
			Goto Ready
		Flash:
			TNT1 A 0 A_JumpIf(CallACS("TranslucentFlashes") == 1, "FlashTranslucent")

			MISF A 2 BRIGHT A_Light2
			MISF B 2 BRIGHT A_Light1
			MISF CD 2 BRIGHT A_Light0
			Goto LightDone
		ClassicFlash:
			TNT1 A 0 A_JumpIf(CallACS("TranslucentFlashes") == 1, "ClassicFlashTranslucent")

			CRCK C 3 BRIGHT A_Light2
			CRCK D 3 BRIGHT A_Light1
			CRCK E 3 BRIGHT A_Light0
			CRCK F 3 BRIGHT
			Goto LightDone
		FlashTranslucent:
			RLFT A 2 BRIGHT A_Light2
			RLFT B 2 BRIGHT A_Light1
			RLFT CD 2 BRIGHT A_Light0
			Goto LightDone
		ClassicFlashTranslucent:
			RLFT E 3 BRIGHT A_Light2
			RLFT F 3 BRIGHT A_Light1
			RLFT G 3 BRIGHT A_Light0
			RLFT H 3 BRIGHT
			Goto LightDone
	}
}

ACTOR 64Rocket : Rocket REPLACES Rocket
{
	Speed 30
	Decal "Scorch"
	-DEHEXPLOSION
	-ROCKETTRAIL
	//-ACTIVATEIMPACT
	//+MTHRUSPECIES
	States
	{
		Spawn:
			MISL AA 2 BRIGHT A_CustomMissile("64RocketSmokeTrail", 0, 0, 0, 2, 0)
			Loop
		Death:
			MISL B 0 BRIGHT
			MISL B 8 BRIGHT A_Explode // DEFAULT DAMAGE AND RADIUS IS 128
			MISL C 6 BRIGHT A_FadeOut(0.20)
			MISL D 3 BRIGHT A_FadeOut(0.20)
			MISL EF 3 BRIGHT A_FadeOut(0.20)
			Stop
	}
}

ACTOR 64CyberRocket : 64Rocket
{
	Speed 30
	-MTHRUSPECIES
}

ACTOR 64CyberRocketTitlemap : 64CyberRocket
{
	Radius 24 // DEFAULT IS 11
	Height 64 // DEFAULT IS 8
	Speed 30 // DEFAULT IS 20
	+EXTREMEDEATH
}

ACTOR 64RocketSmokeTrail : RocketSmokeTrail
{
	RenderStyle Translucent
	Alpha 0.50
	VSpeed 0

	States
	{
		Spawn:
			PUF2 ABCDE 2 BRIGHT
			Stop
	}
}

/* --- PLASMA RIFLE --------------------------------------------------------- */

ACTOR 64PlasmaRifle : PlasmaRifle REPLACES PlasmaRifle
{
	//$Sprite PLASA0
	Weapon.SlotNumber 6
	-WEAPON.NOAUTOFIRE
	+DONTGIB

	States
	{
		Ready:
			PLSG A 0 A_PlaySound("weapons/plasmaidle", CHAN_WEAPON, 1, 1, ATTN_STATIC)
			Goto ReadyLoop
		ReadyLoop:
			PLSG ABC 2 A_WeaponReady
			Loop
		Deselect:
			PLSG A 0
			PLSG A 0 A_StopSound(CHAN_WEAPON)
			PLSG A 0 A_Lower
			PLSG A 1 A_Lower
			Loop
		Select:
			PLSG A 0 A_PlaySound("weapons/plasmaidle", CHAN_WEAPON, 1, 1, ATTN_STATIC)
			PLSG A 0 A_Raise
			PLSG A 1 A_Raise
			Loop
		Fire:
			TNT1 A 0 A_JumpIf(CallACS("ClassicAnims") == 1, "ClassicFire")

			PLSG R 1 BRIGHT A_PlaySound("weapons/plasmaf", CHAN_AUTO, 0.5, 0, ATTN_NORM)
			PLSF B 0 BRIGHT A_FireCustomMissile("DummyProjectile3", 0, 0, 0, 0, 0, 0)
			PLSF B 0 BRIGHT A_SetPitch(pitch-0.4)
			PLSF B 3 BRIGHT A_FireCustomMissile("64PlasmaBall", 0, 1, 0, -5, 0, 0)
			PLSF B 0 BRIGHT A_GunFlash
			PLSF A 1 BRIGHT A_SetPitch(pitch+0.4)
			PLSG D 1 A_ReFire
			PLSG A 0 A_StopSound(CHAN_WEAPON)
			PLSG EFG 1 A_WeaponReady
			PLSG H 12 A_WeaponReady
			PLSG GFE 1 A_WeaponReady
			PLSG D 1 A_WeaponReady
			Goto Ready
		ClassicFire:
			TNT1 A 0 A_JumpIf(CallACS("PlasmaRenderStyle") == 1, "ClassicFireNormal")

			CPLS A 1 A_PlaySound("weapons/plasmaf", CHAN_AUTO, 0.5, 0, ATTN_NORM)
			CPLS E 0 BRIGHT A_FireCustomMissile("DummyProjectile3", 0, 0, 0, 0, 0, 0)
			CPLS E 3 BRIGHT A_FireCustomMissile("64ClassicPlasmaBall", 0, 1, 0, -5, 0, 0)
			CPLS E 0 BRIGHT A_GunFlash
			CPLS A 1
			CPLS A 1 A_ReFire
			Goto Ready
		ClassicFireNormal:
			CPLS A 1 A_PlaySound("weapons/plasmaf", CHAN_AUTO, 0.5, 0, ATTN_NORM)
			CPLS E 0 BRIGHT A_FireCustomMissile("DummyProjectile3", 0, 0, 0, 0, 0, 0)
			CPLS E 3 BRIGHT A_FireCustomMissile("64ClassicPlasmaBallNormal", 0, 1, 0, -5, 0, 0)
			CPLS E 0 BRIGHT A_GunFlash
			CPLS A 1
			CPLS A 1 A_ReFire
			Goto Ready
		Flash:
			TNT1 A 2 BRIGHT A_Light1
			TNT1 A 1 BRIGHT A_Light0
			Goto LightDone
	}
}

ACTOR 64PlasmaBall : PlasmaBall REPLACES PlasmaBall
{
	Speed 40
	Damage 5 // DEFAULT IS 5
	RenderStyle Add
	Alpha 0.75
	Decal "PlasmaScorchLower"
	SeeSound "NULL"
	//-ACTIVATEIMPACT
	//+MTHRUSPECIES
	States
	{
		Spawn:
			PLSS AABBAABBAABB 1 BRIGHT A_SpawnItemEx("64PlasmaTrail", 0, 0, 0, 0, 0, 0, 0, 0)
			Loop
		Death:
			PLSE ABC 3 BRIGHT
			PLSE DEF 2 BRIGHT
			Stop
	}
}

ACTOR 64ClassicPlasmaBall : 64PlasmaBall
{
	States
	{
		Spawn:
			PLSS AB 6 BRIGHT
			Loop
	}
}

ACTOR 64ClassicPlasmaBallNormal : 64ClassicPlasmaBall
{
	RenderStyle Normal
	Alpha 1.0
}

ACTOR 64PlasmaTrail : RocketSmokeTrail
{
	RenderStyle Add
	Alpha 0.75
	VSpeed 1
	+NOGRAVITY
	+NOBLOCKMAP
	+NOCLIP

	States
	{
		Spawn:
			PLSE FFFFFF 1 BRIGHT A_FadeOut(0.10)
			Loop
	}
}

/* --- BFG9000 -------------------------------------------------------------- */

ACTOR 64BFG9000 : BFG9000 REPLACES BFG9000
{
	//$Sprite BFUGA0
	Weapon.SlotNumber 7
	-WEAPON.NOAUTOFIRE
	+DONTGIB

	States
	{
		Deselect:
			BFGG A 0 A_Lower
			BFGG A 1 A_Lower
			Loop
		Select:
			BFGG A 0 A_Raise
			BFGG A 1 A_Raise
			Loop
		Fire:
			TNT1 A 0 A_JumpIf(CallACS("ClassicAnims") == 1, "ClassicFire")

			BFGG A 20 A_BFGSound
			BFGG A 0 Radius_Quake(4, 20, 0, 1, 0)
			BFGG A 2 A_GunFlash
			BFGG A 8
			BFGG D 1 A_FireBFG
			BFGG D 0 A_Recoil(3)
			BFGG D 1 A_SetPitch(pitch-2.0)
			BFGG E 1 A_SetPitch(pitch-1.6)
			BFGG E 1 A_SetPitch(pitch+0.6)
			BFGG D 1 A_SetPitch(pitch+0.6)
			BFGG D 1 A_SetPitch(pitch+0.6)
			BFGG C 1 A_SetPitch(pitch+0.6)
			BFGG C 1 A_SetPitch(pitch+0.4)
			BFGG B 1 A_SetPitch(pitch+0.4)
			BFGG A 1 A_SetPitch(pitch+0.4)
			BFGG A 8
			BFGG A 20 A_ReFire
			Goto Ready
		ClassicFire:
			CBFG A 20 A_BFGSound
			CBFG A 10 A_GunFlash("ClassicFlash")
			CBFG B 5
			CBFG B 15 A_FireBFG
			CBFG A 13 A_ReFire
			Goto Ready
		Flash:
			BFGG A 2 BRIGHT
			BFGF HGFE 1 BRIGHT A_Light2
			BFGF DCBA 1 BRIGHT A_Light2
			TNT1 A 0 A_Light0
			Goto LightDone
		ClassicFlash:
			CBFG C 10 BRIGHT
			CBFG D 6 BRIGHT A_Light1
			CBFG E 6 BRIGHT A_Light2
			Goto LightDone
	}
}

ACTOR 64BFGBall : BFGBall REPLACES BFGBall
{
	RenderStyle Add
	Alpha 0.80
	Speed 40 // DEFAULT IS 25
	Decal "BFGLightning"
	//-ACTIVATEIMPACT
	//+MTHRUSPECIES
	States
	{
		Spawn:
			BFS1 AB 2 BRIGHT
			Loop
		Death:
			BFE1 A 8 BRIGHT A_RadiusGive("64PlayerBFGBlender", 2048, RGF_PLAYERS | RGF_CUBE, 1)
			BFE1 B 7 BRIGHT A_FadeOut(0.14)
			BFE1 C 0 BRIGHT A_FadeOut(0.14)
			BFE1 C 3 BRIGHT A_BFGSpray
			BFE1 D 3 BRIGHT A_FadeOut(0.14)
			BFE1 E 3 BRIGHT A_FadeOut(0.14)
			BFE1 F 3 BRIGHT A_FadeOut(0.14)
			Stop
	}
}

ACTOR 64BFGExtra : BFGExtra REPLACES BFGExtra
{
	RenderStyle Add
	scale 1.3
	Alpha 0.75

	States
	{
		Spawn:
			BFE2 ABCDEF 2 BRIGHT
			Stop
	}
}

ACTOR 64PlayerBFGBlender : CustomInventory
{
	Inventory.MaxAmount 1
	Inventory.PickupSound "NULL"
	+INVENTORY.AUTOACTIVATE
	+INVENTORY.ALWAYSPICKUP

	States
	{
		Spawn:
			TNT1 A 1
			Stop
		Pickup:
			TNT1 A 0 A_SetBlend("Green", 0.50, 16)
			Fail
    }
}

/* --- UNMAKER -------------------------------------------------------------- */

ACTOR 64Unmaker : DoomWeapon 9902
{
	//$Color 14
	//$NotAngled
	//$Sprite UNMUA0
	//$Category "Doom 64 Retribution"
	Game Doom
	SpawnID 168
	Radius 20
	Height 20
	Weapon.SelectionOrder 2900
	Weapon.SlotNumber 8
	Weapon.AmmoUse 1
	Weapon.AmmoGive 40
	Weapon.AmmoType "Cell"
	Inventory.PickupMessage "$GOTLASER"
	Inventory.PickupSound "misc/w_pkup"
	AttackSound "NULL"
	Inventory.Icon "LGUNA0"
	Tag "$TAG_LASER"
	-WEAPON.NOAUTOFIRE
	+DONTGIB

	States
	{
		Spawn:
			LGUN A -1
			Stop
		Ready:
			UNMA A 1 A_WeaponReady
			Loop
		Deselect:
			UNMA A 0 A_Lower
			UNMA A 1 A_Lower
			Loop
		Select:
			UNMA A 0 A_Raise
			UNMA A 1 A_Raise
			Loop
		Fire:

		/* --- UPGRADES INFORMATION: -------------------------------------------
		No upgrade level = standard single shot (10 tics)
		1st upgrade level = slightly faster single shot (7 tics)
		2nd upgrade level = two beams and much faster fire rate (5 tics)
		3rd upgrade level = beams fire outward from middle, 4 each side
		--------------------------------------------------------------------- */

		// This will be used if the player has no upgrades
			UNMA A 0 A_JumpIfInventory("UnmakerUpgrades", 1, "FireUpgradeOne")
			UNMA A 0 A_GunFlash
			UNMA A 0 A_PlaySound("weapons/unmaker", CHAN_AUTO, 0.8, 0, ATTN_NORM)
			UNMA A 9 A_FireCustomMissile("UnmakerLaser")
			UNMA A 0
			UNMA A 0 A_ReFire
			Goto Ready

		// This will be used if the player has one upgrade
		FireUpgradeOne:
			UNMA A 0 A_JumpIfInventory("UnmakerUpgrades", 2, "FireUpgradeTwo")
			UNMA A 0 A_GunFlash
			UNMA A 0 A_PlaySound("weapons/unmaker", CHAN_AUTO, 0.8, 0, ATTN_NORM)
			UNMA A 6 A_FireCustomMissile("UnmakerLaser")
			UNMA A 0
			UNMA A 0 A_ReFire
			Goto Ready

		// This will be used if the player has two upgrades
		FireUpgradeTwo:
			UNMA A 0 A_JumpIfInventory("UnmakerUpgrades", 3, "FireUpgradeThree")
			UNMA A 0 A_GunFlash
			UNMA A 0 A_PlaySound("weapons/unmaker", CHAN_AUTO, 0.8, 0, ATTN_NORM)
			UNMA A 0 A_FireCustomMissile("UnmakerLaser", 2.0)
			UNMA A 0 A_JumpIfNoAmmo(3)
			UNMA A 0 A_FireCustomMissile("UnmakerLaser", -2.0)
			UNMA A 5
			UNMA A 0
			UNMA A 0 A_ReFire
			Goto Ready

		// This will be used if the player has three upgrades
		FireUpgradeThree:
			UNMA A 0 A_GunFlash
			UNMA A 0 A_PlaySound("weapons/unmaker", CHAN_AUTO, 0.8, 0, ATTN_NORM)
			UNMA A 0 A_FireCustomMissile("UnmakerLaser")
			UNMA A 0 A_JumpIfNoAmmo(5)
			UNMA A 0 A_FireCustomMissile("UnmakerLaser", 3.0)
			UNMA A 0 A_JumpIfNoAmmo(3)
			UNMA A 0 A_FireCustomMissile("UnmakerLaser", -3.0)
			UNMA A 5
			UNMA A 0
			UNMA A 0 A_ReFire("Hold1")
			Goto Ready
		Hold1:
			UNMA A 0 A_GunFlash
			UNMA A 0 A_PlaySound("weapons/unmaker", CHAN_AUTO, 0.8, 0, ATTN_NORM)
			UNMA A 0 A_FireCustomMissile("UnmakerLaser")
			UNMA A 0 A_JumpIfNoAmmo(5)
			UNMA A 0 A_FireCustomMissile("UnmakerLaser", 6.0)
			UNMA A 0 A_JumpIfNoAmmo(3)
			UNMA A 0 A_FireCustomMissile("UnmakerLaser", -6.0)
			UNMA A 5
			UNMA A 0
			UNMA A 0 A_ReFire("Hold2")
			Goto Ready
		Hold2:
			UNMA A 0 A_GunFlash
			UNMA A 0 A_PlaySound("weapons/unmaker", CHAN_AUTO, 0.8, 0, ATTN_NORM)
			UNMA A 0 A_FireCustomMissile("UnmakerLaser")
			UNMA A 0 A_JumpIfNoAmmo(5)
			UNMA A 0 A_FireCustomMissile("UnmakerLaser", 9.0)
			UNMA A 0 A_JumpIfNoAmmo(3)
			UNMA A 0 A_FireCustomMissile("UnmakerLaser", -9.0)
			UNMA A 5
			UNMA A 0
			UNMA A 0 A_ReFire("Hold3")
			Goto Ready
		Hold3:
			UNMA A 0 A_GunFlash
			UNMA A 0 A_PlaySound("weapons/unmaker", CHAN_AUTO, 0.8, 0, ATTN_NORM)
			UNMA A 0 A_FireCustomMissile("UnmakerLaser")
			UNMA A 0 A_JumpIfNoAmmo(5)
			UNMA A 0 A_FireCustomMissile("UnmakerLaser", 12.0)
			UNMA A 0 A_JumpIfNoAmmo(3)
			UNMA A 0 A_FireCustomMissile("UnmakerLaser", -12.0)
			UNMA A 5
			UNMA A 0
			UNMA A 0 A_CheckReload
			Goto Ready
		Flash:
			UNMF A 3 BRIGHT A_Light1
			Goto LightDone
	}
}

ACTOR UnmakerLaser : FastProjectile
{
	Game Doom
	Radius 2
	Height 4
	Speed 250
	Damage (10*random(1,8))
	ProjectileKickBack 16
	RenderStyle Add
	Alpha 1
	SeeSound "NULL"
	DeathSound "NULL"
	Obituary "%o was unmade by %k."
	PROJECTILE
	+RANDOMIZE

	States
	{
		Spawn:
			TNT1 A 1
			TNT1 A 0 A_SpawnItemEx("UnmakerLaserTrail", (3*velx)/-35.0,  -(3*vely)/-35.0,  2+(3*velz)/-35.0,  0,0,0, 0, SXF_ABSOLUTEANGLE)
			TNT1 A 0 A_SpawnItemEx("UnmakerLaserTrail", (3.5*velx)/-35.0,  -(3.5*vely)/-35.0,  2+(3.5*velz)/-35.0,  0,0,0, 0, SXF_ABSOLUTEANGLE)

			TNT1 A 0 A_SpawnItemEx("UnmakerLaserTrail", (4*velx)/-35.0,  -(4*vely)/-35.0,  2+(4*velz)/-35.0,  0,0,0, 0, SXF_ABSOLUTEANGLE)
			TNT1 A 0 A_SpawnItemEx("UnmakerLaserTrail", (4.5*velx)/-35.0,  -(4.5*vely)/-35.0,  2+(4.5*velz)/-35.0,  0,0,0, 0, SXF_ABSOLUTEANGLE)

			TNT1 A 0 A_SpawnItemEx("UnmakerLaserTrail", (5*velx)/-35.0,  -(5*vely)/-35.0,  2+(5*velz)/-35.0,  0,0,0, 0, SXF_ABSOLUTEANGLE)
			TNT1 A 0 A_SpawnItemEx("UnmakerLaserTrail", (5.5*velx)/-35.0,  -(5.5*vely)/-35.0,  2+(5.5*velz)/-35.0,  0,0,0, 0, SXF_ABSOLUTEANGLE)

			TNT1 A 0 A_SpawnItemEx("UnmakerLaserTrail", (6*velx)/-35.0,  -(6*vely)/-35.0,  2+(6*velz)/-35.0,  0,0,0, 0, SXF_ABSOLUTEANGLE)
			TNT1 A 0 A_SpawnItemEx("UnmakerLaserTrail", (6.5*velx)/-35.0,  -(6.5*vely)/-35.0,  2+(6.5*velz)/-35.0,  0,0,0, 0, SXF_ABSOLUTEANGLE)

			TNT1 A 0 A_SpawnItemEx("UnmakerLaserTrail", (7*velx)/-35.0,  -(7*vely)/-35.0,  2+(7*velz)/-35.0,  0,0,0, 0, SXF_ABSOLUTEANGLE)
			TNT1 A 0 A_SpawnItemEx("UnmakerLaserTrail", (7.5*velx)/-35.0,  -(7.5*vely)/-35.0,  2+(7.5*velz)/-35.0,  0,0,0, 0, SXF_ABSOLUTEANGLE)

			TNT1 A 0 A_SpawnItemEx("UnmakerLaserTrail", (8*velx)/-35.0,  -(8*vely)/-35.0,  2+(8*velz)/-35.0,  0,0,0, 0, SXF_ABSOLUTEANGLE)
			TNT1 A 0 A_SpawnItemEx("UnmakerLaserTrail", (8.5*velx)/-35.0,  -(8.5*vely)/-35.0,  2+(8.5*velz)/-35.0,  0,0,0, 0, SXF_ABSOLUTEANGLE)

			TNT1 A 0 A_SpawnItemEx("UnmakerLaserTrail", (9*velx)/-35.0,  -(9*vely)/-35.0,  2+(9*velz)/-35.0,  0,0,0, 0, SXF_ABSOLUTEANGLE)
			TNT1 A 0 A_SpawnItemEx("UnmakerLaserTrail", (9.5*velx)/-35.0,  -(9.5*vely)/-35.0,  2+(9.5*velz)/-35.0,  0,0,0, 0, SXF_ABSOLUTEANGLE)

			TNT1 A 0 A_SpawnItemEx("UnmakerLaserTrail", (10*velx)/-35.0, -(10*vely)/-35.0, 2+(10*velz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
			TNT1 A 0 A_SpawnItemEx("UnmakerLaserTrail", (10.5*velx)/-35.0, -(10.5*vely)/-35.0, 2+(10.5*velz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)

			TNT1 A 0 A_SpawnItemEx("UnmakerLaserTrail", (11*velx)/-35.0, -(11*vely)/-35.0, 2+(11*velz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
			TNT1 A 0 A_SpawnItemEx("UnmakerLaserTrail", (11.5*velx)/-35.0, -(11.5*vely)/-35.0, 2+(11.5*velz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)

			TNT1 A 0 A_SpawnItemEx("UnmakerLaserTrail", (12*velx)/-35.0, -(12*vely)/-35.0, 2+(12*velz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
			TNT1 A 0 A_SpawnItemEx("UnmakerLaserTrail", (12.5*velx)/-35.0, -(12.5*vely)/-35.0, 2+(12.5*velz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)

			TNT1 A 0 A_SpawnItemEx("UnmakerLaserTrail", (13*velx)/-35.0, -(13*vely)/-35.0, 2+(13*velz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
			TNT1 A 0 A_SpawnItemEx("UnmakerLaserTrail", (13.5*velx)/-35.0, -(13.5*vely)/-35.0, 2+(13.5*velz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)

			TNT1 A 0 A_SpawnItemEx("UnmakerLaserTrail", (14*velx)/-35.0, -(14*vely)/-35.0, 2+(14*velz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
			TNT1 A 0 A_SpawnItemEx("UnmakerLaserTrail", (14.5*velx)/-35.0, -(14.5*vely)/-35.0, 2+(14.5*velz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)

			TNT1 A 0 A_SpawnItemEx("UnmakerLaserTrail", (15*velx)/-35.0, -(15*vely)/-35.0, 2+(15*velz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
			TNT1 A 0 A_SpawnItemEx("UnmakerLaserTrail", (15.5*velx)/-35.0, -(15.5*vely)/-35.0, 2+(15.5*velz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)

			TNT1 A 0 A_SpawnItemEx("UnmakerLaserTrail", (16*velx)/-35.0, -(16*vely)/-35.0, 2+(16*velz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
			TNT1 A 0 A_SpawnItemEx("UnmakerLaserTrail", (16.5*velx)/-35.0, -(16.5*vely)/-35.0, 2+(16.5*velz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)

			TNT1 A 0 A_SpawnItemEx("UnmakerLaserTrail", (17*velx)/-35.0, -(17*vely)/-35.0, 2+(17*velz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
			TNT1 A 0 A_SpawnItemEx("UnmakerLaserTrail", (17.5*velx)/-35.0, -(17.5*vely)/-35.0, 2+(17.5*velz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)

			TNT1 A 0 A_SpawnItemEx("UnmakerLaserTrail", (18*velx)/-35.0, -(18*vely)/-35.0, 2+(18*velz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
			TNT1 A 0 A_SpawnItemEx("UnmakerLaserTrail", (18.5*velx)/-35.0, -(18.5*vely)/-35.0, 2+(18.5*velz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)

			TNT1 A 0 A_SpawnItemEx("UnmakerLaserTrail", (19*velx)/-35.0, -(19*vely)/-35.0, 2+(19*velz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
			TNT1 A 0 A_SpawnItemEx("UnmakerLaserTrail", (19.5*velx)/-35.0, -(19.5*vely)/-35.0, 2+(19.5*velz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)

			TNT1 A 0 A_SpawnItemEx("UnmakerLaserTrail", (20*velx)/-35.0, -(20*vely)/-35.0, 2+(20*velz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
			TNT1 A 0 A_SpawnItemEx("UnmakerLaserTrail", (20.5*velx)/-35.0, -(20.5*vely)/-35.0, 2+(20.5*velz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)

			TNT1 A 0 A_SpawnItemEx("UnmakerLaserTrail", (21*velx)/-35.0, -(21*vely)/-35.0, 2+(21*velz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
			TNT1 A 0 A_SpawnItemEx("UnmakerLaserTrail", (21.5*velx)/-35.0, -(21.5*vely)/-35.0, 2+(21.5*velz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)

			TNT1 A 0 A_SpawnItemEx("UnmakerLaserTrail", (22*velx)/-35.0, -(22*vely)/-35.0, 2+(22*velz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
			TNT1 A 0 A_SpawnItemEx("UnmakerLaserTrail", (22.5*velx)/-35.0, -(22.5*vely)/-35.0, 2+(22.5*velz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)

			TNT1 A 0 A_SpawnItemEx("UnmakerLaserTrail", (23*velx)/-35.0, -(23*vely)/-35.0, 2+(23*velz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
			TNT1 A 0 A_SpawnItemEx("UnmakerLaserTrail", (23.5*velx)/-35.0, -(23.5*vely)/-35.0, 2+(23.5*velz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)

			TNT1 A 0 A_SpawnItemEx("UnmakerLaserTrail", (24*velx)/-35.0, -(24*vely)/-35.0, 2+(24*velz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
			TNT1 A 0 A_SpawnItemEx("UnmakerLaserTrail", (24.5*velx)/-35.0, -(24.5*vely)/-35.0, 2+(24.5*velz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)

			TNT1 A 0 A_SpawnItemEx("UnmakerLaserTrail", (25*velx)/-35.0, -(25*vely)/-35.0, 2+(25*velz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
			TNT1 A 0 A_SpawnItemEx("UnmakerLaserTrail", (25.5*velx)/-35.0, -(25.5*vely)/-35.0, 2+(25.5*velz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)

			TNT1 A 0 A_SpawnItemEx("UnmakerLaserTrail", (26*velx)/-35.0, -(26*vely)/-35.0, 2+(26*velz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
			TNT1 A 0 A_SpawnItemEx("UnmakerLaserTrail", (26.5*velx)/-35.0, -(26.5*vely)/-35.0, 2+(26.5*velz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)

			TNT1 A 0 A_SpawnItemEx("UnmakerLaserTrail", (27*velx)/-35.0, -(27*vely)/-35.0, 2+(27*velz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
			TNT1 A 0 A_SpawnItemEx("UnmakerLaserTrail", (27.5*velx)/-35.0, -(27.5*vely)/-35.0, 2+(27.5*velz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)

			TNT1 A 0 A_SpawnItemEx("UnmakerLaserTrail", (28*velx)/-35.0, -(28*vely)/-35.0, 2+(28*velz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
			TNT1 A 0 A_SpawnItemEx("UnmakerLaserTrail", (28.5*velx)/-35.0, -(28.5*vely)/-35.0, 2+(28.5*velz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)

			TNT1 A 0 A_SpawnItemEx("UnmakerLaserTrail", (29*velx)/-35.0, -(29*vely)/-35.0, 2+(29*velz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
			TNT1 A 0 A_SpawnItemEx("UnmakerLaserTrail", (29.5*velx)/-35.0, -(29.5*vely)/-35.0, 2+(29.5*velz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)

			TNT1 A 0 A_SpawnItemEx("UnmakerLaserTrail", (30*velx)/-35.0, -(30*vely)/-35.0, 2+(30*velz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
			TNT1 A 0 A_SpawnItemEx("UnmakerLaserTrail", (30.5*velx)/-35.0, -(30.5*vely)/-35.0, 2+(30.5*velz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)

			TNT1 A 0 A_SpawnItemEx("UnmakerLaserTrail", (31*velx)/-35.0, -(31*vely)/-35.0, 2+(31*velz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
			TNT1 A 0 A_SpawnItemEx("UnmakerLaserTrail", (31.5*velx)/-35.0, -(31.5*vely)/-35.0, 2+(31.5*velz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)

			TNT1 A 0 A_SpawnItemEx("UnmakerLaserTrail", (32*velx)/-35.0, -(32*vely)/-35.0, 2+(32*velz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
			TNT1 A 0 A_SpawnItemEx("UnmakerLaserTrail", (32.5*velx)/-35.0, -(32.5*vely)/-35.0, 2+(32.5*velz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)

			TNT1 A 0 A_SpawnItemEx("UnmakerLaserTrail", (33*velx)/-35.0, -(33*vely)/-35.0, 2+(33*velz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
			TNT1 A 0 A_SpawnItemEx("UnmakerLaserTrail", (33.5*velx)/-35.0, -(33.5*vely)/-35.0, 2+(33.5*velz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)

			TNT1 A 0 A_SpawnItemEx("UnmakerLaserTrail", (34*velx)/-35.0, -(34*vely)/-35.0, 2+(34*velz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
			TNT1 A 0 A_SpawnItemEx("UnmakerLaserTrail", (34.5*velx)/-35.0, -(34.5*vely)/-35.0, 2+(34.5*velz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)

			TNT1 A 0 A_SpawnItemEx("UnmakerLaserTrail", (35*velx)/-35.0, -(35*vely)/-35.0, 2+(35*velz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
			TNT1 A 0 A_SpawnItemEx("UnmakerLaserTrail", (35.5*velx)/-35.0, -(35.5*vely)/-35.0, 2+(35.5*velz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)

			TNT1 A 0 A_SpawnItemEx("UnmakerLaserTrail", (36*velx)/-35.0, -(36*vely)/-35.0, 2+(36*velz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
			TNT1 A 0 A_SpawnItemEx("UnmakerLaserTrail", (36.5*velx)/-35.0, -(36.5*vely)/-35.0, 2+(36.5*velz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)

			TNT1 A 0 A_SpawnItemEx("UnmakerLaserTrail", (37*velx)/-35.0, -(37*vely)/-35.0, 2+(37*velz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
			TNT1 A 0 A_SpawnItemEx("UnmakerLaserTrail", (37.5*velx)/-35.0, -(37.5*vely)/-35.0, 2+(37.5*velz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
			Loop
		Death:
			LPUF AB 3 BRIGHT A_FadeOut(0.10)
			Loop
	}
}

ACTOR UnmakerLaserTrail : FastProjectile
{
	Game Doom
	Radius 2
	Height 4
	Scale 0.65
	Alpha 1
	Speed 0
	Damage 0
	RenderStyle Add
	SeeSound "NULL"
	DeathSound "NULL"
	PROJECTILE
	+RANDOMIZE

	States
	{
		Spawn:
			LPUF C 5 BRIGHT
			Stop
		Death:
			LPUF ABC 2 BRIGHT
			Stop
	}
}

ACTOR OriginalUnmakerLaserTrail : UnmakerLaserTrail
{
	Scale 0.60
	RenderStyle Normal

	States
	{
		Spawn:
			UNML A 5 BRIGHT
			Stop
	}
}

/* --- UNMAKER UPGRADES ----------------------------------------------------- */

ACTOR UnmakerUpgrades : Inventory
{
	Game Doom
	+UNDROPPABLE
	Inventory.MaxAmount 3
}

ACTOR UnmakerUpgrade1Icon : Inventory
{
	Game Doom
	+UNDROPPABLE
	Inventory.MaxAmount 1
}

ACTOR UnmakerUpgrade2Icon : Inventory
{
	Game Doom
	+UNDROPPABLE
	Inventory.MaxAmount 1
}

ACTOR UnmakerUpgrade3Icon : Inventory
{
	Game Doom
	+UNDROPPABLE
	Inventory.MaxAmount 1
}

ACTOR 64UnmakerUpgrade1 : CustomInventory 1042
{
	// Orange Artifact (First Upgrade)
	//$Color 19
	//$NotAngled
	//$Category "Doom 64 Retribution"
	Game Doom
	SpawnID 162
	Inventory.Amount 1
	Inventory.MaxAmount 1
	Inventory.InterHubAmount 1
	Inventory.Icon "ART1A0"
	Inventory.PickupMessage "$GOTARTIFACT1"
	Inventory.PickupSound "misc/i_pkup"
	Inventory.RespawnTics 350
	+DONTGIB
	+COUNTITEM
	-INTERHUBSTRIP

	States
	{
		Spawn:
			ART1 ABCDEDCB 5 BRIGHT
			Loop
		Pickup:
			TNT1 A 0 A_JumpIfInventory("UnmakerUpgrade1Icon", 1, "AlreadyTaken")
			TNT1 A 0 A_GiveInventory("UnmakerUpgrades", 1)
			TNT1 A 0 A_GiveInventory("UnmakerUpgrade1Icon", 1)
			Stop
		AlreadyTaken:
			TNT1 A 0
			Fail
	}
}

ACTOR 64UnmakerUpgrade2 : CustomInventory 1043
{
	// Purple Artifact (Second Upgrade)
	//$Color 5
	//$NotAngled
	//$Category "Doom 64 Retribution"
	Game Doom
	SpawnID 163
	Inventory.Amount 1
	Inventory.MaxAmount 1
	Inventory.InterHubAmount 1
	Inventory.Icon "ART2A0"
	Inventory.PickupMessage "$GOTARTIFACT2"
	Inventory.PickupSound "misc/i_pkup"
	Inventory.RespawnTics 350
	+DONTGIB
	+COUNTITEM
	-INTERHUBSTRIP

	States
	{
		Spawn:
			ART2 ABCDEDCB 5 BRIGHT
			Loop
		Pickup:
			TNT1 A 0 A_JumpIfInventory("UnmakerUpgrade2Icon", 1, "AlreadyTaken")
			TNT1 A 0 A_GiveInventory("UnmakerUpgrades", 1)
			TNT1 A 0 A_GiveInventory("UnmakerUpgrade2Icon", 1)
			Stop
		AlreadyTaken:
			TNT1 A 0
			Fail
	}
}

ACTOR 64UnmakerUpgrade3 : CustomInventory 1044
{
	// Cyan Artifact (Third Upgrade)
	//$Color 3
	//$NotAngled
	//$Category "Doom 64 Retribution"
	Game Doom
	SpawnID 164
	Inventory.Amount 1
	Inventory.MaxAmount 1
	Inventory.InterHubAmount 1
	Inventory.Icon "ART3A0"
	Inventory.PickupMessage "$GOTARTIFACT3"
	Inventory.PickupSound "misc/i_pkup"
	Inventory.RespawnTics 350
	+DONTGIB
	+COUNTITEM
	-INTERHUBSTRIP

	States
	{
		Spawn:
			ART3 ABCDEDCB 5 BRIGHT
			Loop
		Pickup:
			TNT1 A 0 A_JumpIfInventory("UnmakerUpgrade3Icon", 1, "AlreadyTaken")
			TNT1 A 0 A_GiveInventory("UnmakerUpgrades", 1)
			TNT1 A 0 A_GiveInventory("UnmakerUpgrade3Icon", 1)
			Stop
		AlreadyTaken:
			TNT1 A 0
			Fail
	}
}

/* --- DUMMY PROJECTILES FOR SPECIAL DYNAMIC LIGHTS ------------------------- */

// Used for the Pistol, Shotgun, Super Shotgun and Nailgun
ACTOR DummyProjectile1
{
	Radius 0
	Height 0
	Speed 0
	Damage 0
	SeeSound "NULL"
	DeathSound "NULL"
	PROJECTILE
	+NOINTERACTION
	+THRUACTORS
	+NONSHOOTABLE
	+NEVERRESPAWN
	+NOBOUNCESOUND
	+NOWALLBOUNCESND
	+NODAMAGETHRUST

	States
	{
		Spawn:
			TNT1 A 5
			Goto Death
		Death:
			TNT1 A 0
			Stop
	}
}

// Used for the Chaingun
ACTOR DummyProjectile2 : DummyProjectile1 {}

// Used for the Plasma Rifle
ACTOR DummyProjectile3 : DummyProjectile1
{
	States
	{
		Spawn:
			TNT1 A 3
			Goto Death
	}
}

// Used for the Rocket Launcher
ACTOR DummyProjectile4 : DummyProjectile1
{
	States
	{
		Spawn:
			TNT1 A 6
			Goto Death
	}
}

/* --- CASINGS -------------------------------------------------------------- */

ACTOR CasingBase
{
	Health 0
	Height 4
	Radius 2
	MaxStepHeight 2
	BounceFactor 0.5
	WallBounceFactor 0.4
	BounceCount 5
	BounceType Doom

	+MISSILE
	-NOGRAVITY
	-NOBLOCKMAP
	+MOVEWITHSECTOR
	+BOUNCEONCEILINGS
	-BOUNCEONACTORS
	-CANBOUNCEWATER
	+EXPLODEONWATER
	+NOTELEPORT
	+NOTRIGGER
	-ACTIVATEIMPACT
	-ACTIVATEPCROSS
	+THRUACTORS
	+THRUGHOST
	+THRUSPECIES
	+DROPOFF
	+FLOORCLIP
	-DONTGIB
	+WINDTHRUST
	+PUSHABLE
	+CORPSE
	+SOLID
	+DROPPED
	+NEVERRESPAWN
	+CLIENTSIDEONLY

	States
	{
		Spawn:
			TNT1 A 0
			Goto Death
		Death:
			TNT1 A 0
			Stop
		Crush:
			TNT1 A 0
			Stop
		Disappear:
			TNT1 A 0
			Stop
		DisappearLiquid:
			TNT1 A 0
			TNT1 A 1 A_PlaySound("casings/liquidhits")
			Stop
	}
}

ACTOR BulletCasing : CasingBase
{
	Mass 4
	Scale 0.25
	BounceSound "casings/bulletbounces"

	States
	{
		Spawn:
			BCAS FGHABCDE 1
			Loop
		Death:
			TNT1 A 0 A_Jump(255, "Death1", "Death2", "Death3", "Death4", "Death5")
			Goto Death1
		Death1:
			TNT1 A 0
			TNT1 A 0 A_JumpIf(CallACS("LiquidCheck") == 1, "DisappearLiquid")
			TNT1 A 0 A_JumpIf(CallACS("LiquidCheck") == 2, "Disappear")
			BCAS I -1 A_PlaySound("casings/bulletdeaths")
			Stop
		Death2:
			TNT1 A 0
			TNT1 A 0 A_JumpIf(CallACS("LiquidCheck") == 1, "DisappearLiquid")
			TNT1 A 0 A_JumpIf(CallACS("LiquidCheck") == 2, "Disappear")
			BCAS J -1 A_PlaySound("casings/bulletdeaths")
			Stop
		Death3:
			TNT1 A 0
			TNT1 A 0 A_JumpIf(CallACS("LiquidCheck") == 1, "DisappearLiquid")
			TNT1 A 0 A_JumpIf(CallACS("LiquidCheck") == 2, "Disappear")
			BCAS K -1 A_PlaySound("casings/bulletdeaths")
			Stop
		Death4:
			TNT1 A 0
			TNT1 A 0 A_JumpIf(CallACS("LiquidCheck") == 1, "DisappearLiquid")
			TNT1 A 0 A_JumpIf(CallACS("LiquidCheck") == 2, "Disappear")
			BCAS L -1 A_PlaySound("casings/bulletdeaths")
			Stop
		Death5:
			TNT1 A 0
			TNT1 A 0 A_JumpIf(CallACS("LiquidCheck") == 1, "DisappearLiquid")
			TNT1 A 0 A_JumpIf(CallACS("LiquidCheck") == 2, "Disappear")
			BCAS M -1 A_PlaySound("casings/bulletdeaths")
			Stop
	}
}

ACTOR ShellCasing : CasingBase
{
	Mass 2
	Scale 0.30
	BounceSound "casings/shellbounces"

	States
	{
		Spawn:
			SCAS FGHABCDE 2
			Loop
		Death:
			TNT1 A 0 A_Jump(255, "Death1", "Death2", "Death3", "Death4", "Death5", "Death6")
			Goto Death1
		Death1:
			TNT1 A 0
			TNT1 A 0 A_JumpIf(CallACS("LiquidCheck") == 1, "DisappearLiquid")
			TNT1 A 0 A_JumpIf(CallACS("LiquidCheck") == 2, "Disappear")
			SHDY A -1 A_PlaySound("casings/shelldeaths")
			Stop
		Death2:
			TNT1 A 0
			TNT1 A 0 A_JumpIf(CallACS("LiquidCheck") == 1, "DisappearLiquid")
			TNT1 A 0 A_JumpIf(CallACS("LiquidCheck") == 2, "Disappear")
			SHDY B -1 A_PlaySound("casings/shelldeaths")
			Stop
		Death3:
			TNT1 A 0
			TNT1 A 0 A_JumpIf(CallACS("LiquidCheck") == 1, "DisappearLiquid")
			TNT1 A 0 A_JumpIf(CallACS("LiquidCheck") == 2, "Disappear")
			SHDY C -1 A_PlaySound("casings/shelldeaths")
			Stop
		Death4:
			TNT1 A 0
			TNT1 A 0 A_JumpIf(CallACS("LiquidCheck") == 1, "DisappearLiquid")
			TNT1 A 0 A_JumpIf(CallACS("LiquidCheck") == 2, "Disappear")
			SHDY D -1 A_PlaySound("casings/shelldeaths")
			Stop
		Death5:
			TNT1 A 0
			TNT1 A 0 A_JumpIf(CallACS("LiquidCheck") == 1, "DisappearLiquid")
			TNT1 A 0 A_JumpIf(CallACS("LiquidCheck") == 2, "Disappear")
			SHDY E -1 A_PlaySound("casings/shelldeaths")
			Stop
		Death6:
			TNT1 A 0
			TNT1 A 0 A_JumpIf(CallACS("LiquidCheck") == 1, "DisappearLiquid")
			TNT1 A 0 A_JumpIf(CallACS("LiquidCheck") == 2, "Disappear")
			SHDY F -1 A_PlaySound("casings/shelldeaths")
			Stop
	}
}

/* --- EFFECTS -------------------------------------------------------------- */

ACTOR 64InvisiBlood : Blood
{
	Alpha 0.80
	RenderStyle Add
	-ALLOWPARTICLES
}

ACTOR 64NoBlood : Blood
{
	Alpha 0.0
	RenderStyle None
	-ALLOWPARTICLES

	States
	{
		Spawn:
			TNT1 A 0
			TNT1 A 1
			Stop
	}
}

ACTOR 64Blood : Blood REPLACES Blood
{
	Gravity 0.65

	States
	{
		Spawn:
			BLUD D 0
			BLUD D 0 A_SpawnItemEx("64Blood2", 5, 5, 0, 0, 0, 0, 0, 131, 0)
			BLUD D 0 A_SpawnItemEx("64Blood2", -5, -5, 0, 0, 0, 0, 0, 131, 0)
			BLUD D 8
			BLUD CBA 8
			Stop
	}
}

ACTOR 64Blood2 : 64Blood
{
	States
	{
		Spawn:
			BLUD DCBA 8
			Stop
	}
}

ACTOR 64TeleportFog : TeleportFog REPLACES TeleportFog
{
	Height 100
	RenderStyle Add
	Alpha 0.50

	States
	{
		Spawn:
			TFOG DCBABCDEFGH 4 BRIGHT
			Stop
	}
}

ACTOR 64BossExplosion
{
	RenderStyle Translucent
	Alpha 0.60
	Damage 0
	PROJECTILE
	+RANDOMIZE

	States
	{
		Spawn:
			MISL B 0 BRIGHT
			MISL B 3 BRIGHT A_PlaySoundEx("weapons/rocklx", "BODY")
			MISL C 3 BRIGHT A_FadeOut(0.12)
			MISL D 3 BRIGHT A_FadeOut(0.12)
			MISL EF 3 BRIGHT A_FadeOut(0.12)
			Stop
	}
}

ACTOR 64ItemFog : ItemFog REPLACES ItemFog
{
	RenderStyle Add
	Alpha 0.50

	States
	{
		Spawn:
			IFOG ABCDEDCBA 4 BRIGHT
			Stop
	}
}
/*
ACTOR 64NoBulletPuff : BulletPuff
{
	States
	{
		Spawn:
			TNT1 A 0
			TNT1 A 1
		Melee:
			TNT1 A 0
			TNT1 A 1
			Stop
	}
}
*/

ACTOR 64BulletPuff : BulletPuff REPLACES BulletPuff
{
	VSpeed 0.70
	RenderStyle Normal

	States
	{
		Spawn:
			PUFF A 4 BRIGHT
			PUFF B 4 BRIGHT
		Melee:
			PUFF CDEF 4
			Stop
	}
}

/* --- ITEM DEFINITIONS ----------------------------------------------------- */

ACTOR 64ArmorBonus : ArmorBonus REPLACES ArmorBonus
{
	Armor.SaveAmount 2

	States
	{
		Spawn:
			BON2 ABCDCB 4
			Loop
	}
}

ACTOR 64GreenArmor : GreenArmor REPLACES GreenArmor {}
ACTOR 64BlueArmor : BlueArmor REPLACES BlueArmor {}

ACTOR 64HealthBonus : HealthBonus REPLACES HealthBonus
{
	Inventory.Amount 2

	States
	{
		Spawn:
			BON1 ABCD 4
			Loop
	}
}

ACTOR 64Stimpack : Stimpack REPLACES Stimpack {}
ACTOR 64Medikit : Medikit REPLACES Medikit {}

ACTOR 64Clip : Clip REPLACES Clip {}
ACTOR 64ClipBox : ClipBox REPLACES ClipBox {}
ACTOR 64Shell : Shell REPLACES Shell {}
ACTOR 64ShellBox : ShellBox REPLACES ShellBox {}
ACTOR 64RocketAmmo : RocketAmmo REPLACES RocketAmmo {}
ACTOR 64RocketBox : RocketBox REPLACES RocketBox {}
ACTOR 64Cell : Cell REPLACES Cell {}
ACTOR 64CellPack : CellPack REPLACES CellPack {}
ACTOR 64Backpack : Backpack REPLACES Backpack {}

ACTOR 64Berserk : Berserk REPLACES Berserk
{
	States
	{
	spawn:
	PSTR A -1
	stop
		Pickup:
			TNT1 A 0 A_JumpIf(CallACS("NoBerserkSwitch") == 1, "NoSwitchPickup")
			TNT1 A 0 A_SetBlend("FF 00 00", 0.6, 105)
			TNT1 A 0 A_GiveInventory("64PowerStrength")
			TNT1 A 0 HealThing(100, 0)
			TNT1 A 0 A_SelectWeapon("64Fist")
			Stop
		NoSwitchPickup:
			TNT1 A 0 A_SetBlend("FF 00 00", 0.6, 105)
			TNT1 A 0 A_GiveInventory("64PowerStrength")
			TNT1 A 0 HealThing(100, 0)
			Stop
	}
}

ACTOR 64PowerStrength : PowerupGiver
{
	Inventory.MaxAmount 0
	Powerup.Type "Strength"
	Powerup.Color 0, 0, 0, 0
	+INVENTORY.AUTOACTIVATE
}

ACTOR 64Allmap : Allmap REPLACES Allmap
{
	States
	{
		Spawn:
			PMAP ABCBAD 6
			Loop
	}
}

ACTOR 64RadSuit : RadSuit REPLACES RadSuit
{
	Powerup.Color "Green", 0.10
	+COUNTITEM

	States
	{
		Spawn:
			SUIT A 6 BRIGHT
			SUIT B 5
			Loop
	}
}

// Lowered duration so the effect is not so annoyingly long
ACTOR 64PowerLightAmp : PowerLightAmp
{
	Powerup.Duration -30
}

ACTOR 64Infrared : Infrared REPLACES Infrared
{
	Powerup.Type "64PowerLightAmp"
}

// Used for MAP15 Dark Entries, no dynamic lights attached to it
ACTOR 64PuzzleSoulsphere : Soulsphere 904
{
	//$Color 9
	//$NotAngled
	//$Category "Doom 64 Retribution"
}

// Used for MAP32 Hectic for 100% items
ACTOR 64NotItemSoulsphere : Soulsphere 907
{
	//$Color 9
	//$NotAngled
	//$Category "Doom 64 Retribution"
	-COUNTITEM
}

ACTOR 64Soulsphere : Soulsphere REPLACES Soulsphere {}

ACTOR 64Megasphere : Megasphere REPLACES Megasphere
{
	Inventory.PickupSound "misc/p_pkup"
}

ACTOR 64BlurSphere : BlurSphere REPLACES BlurSphere
{
	// MODES: Cumulative, Fuzzy, Opaque, Stencil and Translucent
	Powerup.Mode "Translucent"
	Powerup.Duration -30 //Original is -60
	-VISIBILITYPULSE
	

	States
	{
		Spawn:
			PINS ABCD 2 BRIGHT
			Loop
	}
}

ACTOR 64InvulEffectBase : InvulnerabilitySphere
{
	Powerup.Color 0, 0, 0, 0
	Inventory.PickupSound "misc/silent"
	Inventory.PickupMessage "If you are seeing this, I messed something up!"
	-INVENTORY.BIGPOWERUP
	-COUNTITEM
}

ACTOR 64InvulEffectNormal : 64InvulEffectBase { Powerup.Color "FF FF FF", 0.30 }
ACTOR 64InvulEffectClassic : 64InvulEffectBase { Powerup.Color InverseMap }
ACTOR 64InvulEffectRed : 64InvulEffectBase { Powerup.Color RedMap }
ACTOR 64InvulEffectGreen : 64InvulEffectBase { Powerup.Color GreenMap }
ACTOR 64InvulEffectBlue : 64InvulEffectBase { Powerup.Color BlueMap }
ACTOR 64InvulEffectGold : 64InvulEffectBase { Powerup.Color GoldMap }

ACTOR 64InvulnerabilitySphereGiver : CustomInventory REPLACES InvulnerabilitySphere
{
	//$Color 9
	//$NotAngled
	Game Doom
	SpawnID 133
	Inventory.MaxAmount 0
	Inventory.PickupSound "misc/p_pkup"
	Inventory.PickupMessage "$GOTINVUL"
	+INVENTORY.AUTOACTIVATE
	+INVENTORY.ALWAYSPICKUP
	+INVENTORY.BIGPOWERUP
	+DONTGIB
	+COUNTITEM

	States
	{
		Spawn:
			PINV ABCDCB 6 BRIGHT
			Loop
		Pickup:
			TNT1 A 0 A_JumpIf(CallACS("InvulEffectStyle") == 1, "ClassicPickup")
			TNT1 A 0 A_JumpIf(CallACS("InvulEffectStyle") == 2, "RedPickup")
			TNT1 A 0 A_JumpIf(CallACS("InvulEffectStyle") == 3, "GreenPickup")
			TNT1 A 0 A_JumpIf(CallACS("InvulEffectStyle") == 4, "BluePickup")
			TNT1 A 0 A_JumpIf(CallACS("InvulEffectStyle") == 5, "GoldPickup")
		NormalPickup:
			TNT1 A 0 A_GiveInventory("64InvulEffectNormal", 1)
			TNT1 A 0 A_TakeInventory("64InvulnerabilitySphereGiver", 1)
			Stop
		ClassicPickup:
			TNT1 A 0 A_GiveInventory("64InvulEffectClassic", 1)
			TNT1 A 0 A_TakeInventory("64InvulnerabilitySphereGiver", 1)
			Stop
		RedPickup:
			TNT1 A 0 A_GiveInventory("64InvulEffectRed", 1)
			TNT1 A 0 A_TakeInventory("64InvulnerabilitySphereGiver", 1)
			Stop
		GreenPickup:
			TNT1 A 0 A_GiveInventory("64InvulEffectGreen", 1)
			TNT1 A 0 A_TakeInventory("64InvulnerabilitySphereGiver", 1)
			Stop
		BluePickup:
			TNT1 A 0 A_GiveInventory("64InvulEffectBlue", 1)
			TNT1 A 0 A_TakeInventory("64InvulnerabilitySphereGiver", 1)
			Stop
		GoldPickup:
			TNT1 A 0 A_GiveInventory("64InvulEffectGold", 1)
			TNT1 A 0 A_TakeInventory("64InvulnerabilitySphereGiver", 1)
			Stop
	}
}

/* --- KEYS ----------------------------------------------------------------- */

/* NOT REQUIRED, NO CHANGES ARE YET NEEDED
ACTOR 64BlueCard : BlueCard REPLACES BlueCard {}
ACTOR 64BlueSkull : BlueSkull REPLACES BlueSkull {}
ACTOR 64RedCard : RedCard REPLACES RedCard {}
ACTOR 64RedSkull : RedSkull REPLACES RedSkull {}
ACTOR 64YellowCard : YellowCard REPLACES YellowCard {}
ACTOR 64YellowSkull : YellowSkull REPLACES YellowSkull {}
*/

/* --- FAKE ITEMS AND KEYS FOR MAP SCRIPTING EFFECTS ------------------------ */

ACTOR 64FakeCell 1510
{
	//$NotAngled
	//$Category "Doom 64 Retribution"
	Game Doom
	-SOLID

	States
	{
		Spawn:
			CELL A -1
			Stop
	}
}

ACTOR 64FakeBlueCard 1511
{
	//$NotAngled
	//$Category "Doom 64 Retribution"
	Game Doom
	-SOLID

	States
	{
		Spawn:
			BKEY A 10
			BKEY B 10 BRIGHT
			Loop
	}
}

ACTOR 64FakeBlueSkull 1512
{
	//$NotAngled
	//$Category "Doom 64 Retribution"
	Game Doom
	-SOLID

	States
	{
		Spawn:
			BSKU A 10
			BSKU B 10 BRIGHT
			Loop
	}
}

ACTOR 64FakeRedCard 1513
{
	//$NotAngled
	//$Category "Doom 64 Retribution"
	Game Doom
	-SOLID

	States
	{
		Spawn:
			RKEY A 10
			RKEY B 10 BRIGHT
			Loop
	}
}

ACTOR 64FakeRedSkull 1514
{
	//$NotAngled
	//$Category "Doom 64 Retribution"
	Game Doom
	-SOLID

	States
	{
		Spawn:
			RSKU A 10
			RSKU B 10 BRIGHT
			Loop
	}
}

ACTOR 64FakeYellowCard 1515
{
	//$NotAngled
	//$Category "Doom 64 Retribution"
	Game Doom
	-SOLID

	States
	{
		Spawn:
			YKEY A 10
			YKEY B 10 BRIGHT
			Loop
	}
}

ACTOR 64FakeYellowSkull 1516
{
	//$NotAngled
	//$Category "Doom 64 Retribution"
	Game Doom
	-SOLID

	States
	{
		Spawn:
			YSKU A 10
			YSKU B 10 BRIGHT
			Loop
	}
}

ACTOR 64FakeUnmakerUpgrade1 1517
{
	//$NotAngled
	//$Category "Doom 64 Retribution"
	Game Doom
	-SOLID
	+NOGRAVITY

	States
	{
		Spawn:
			ART1 ABCDEDCB 5 BRIGHT
			Loop
	}
}

ACTOR 64FakeUnmakerUpgrade2 1518
{
	//$NotAngled
	//$Category "Doom 64 Retribution"
	Game Doom
	-SOLID
	+NOGRAVITY

	States
	{
		Spawn:
			ART2 ABCDEDCB 5 BRIGHT
			Loop
	}
}

ACTOR 64FakeUnmakerUpgrade3 1519
{
	//$NotAngled
	//$Category "Doom 64 Retribution"
	Game Doom
	-SOLID
	+NOGRAVITY

	States
	{
		Spawn:
			ART3 ABCDEDCB 5 BRIGHT
			Loop
	}
}

ACTOR 64FakeSoulsphere 1523
{
	//$NotAngled
	//$Category "Doom 64 Retribution"
	Game Doom
	-SOLID

	States
	{
		Spawn:
			SOUL ABCDCB 6 BRIGHT
			Loop
	}
}

ACTOR 64FakeMegasphere 1524
{
	//$NotAngled
	//$Category "Doom 64 Retribution"
	Game Doom
	-SOLID

	States
	{
		Spawn:
			MEGA ABCD 6 BRIGHT
			Loop
	}
}

ACTOR 64FakeInvulnerabilitySphere 1525
{
	//$NotAngled
	//$Category "Doom 64 Retribution"
	Game Doom
	-SOLID

	States
	{
		Spawn:
			PINV ABCDCB 6 BRIGHT
			Loop
	}
}

ACTOR 64FakeBlursphere 1526
{
	//$NotAngled
	//$Category "Doom 64 Retribution"
	Game Doom
	-SOLID

	States
	{
		Spawn:
			PINS ABCD 2 BRIGHT
			Loop
	}
}

ACTOR 64FakeBerserk 1527
{
	//$NotAngled
	//$Category "Doom 64 Retribution"
	Game Doom
	-SOLID

	States
	{
		Spawn:
			PSTR A -1
			Stop
	}
}

ACTOR 64UnmakerUpgradeGrayedOut 1528
{
	//$NotAngled
	//$Category "Doom 64 Retribution"
	Game Doom
	-SOLID

	States
	{
		Spawn:
			ARTX A -1 BRIGHT
			Stop
	}
}

ACTOR 64FakeUnmaker 1529
{
	//$NotAngled
	//$Category "Doom 64 Retribution"
	Game Doom
	-SOLID

	States
	{
		Spawn:
			LGUN A -1
			Stop
	}
}


/* ------ NEW FAKE THING TEMPLATE ------
ACTOR 64Fake_ 15_
{
	//$NotAngled
	//$Title "Fake "
	//$Category "Doom 64 Retribution"
	Game Doom
	-SOLID

	States
	{
		Spawn:
			_
			Loop
			Stop
	}
}
*/

/* --- MAP PROJECTILES ------------------------------------------------------ */

ACTOR 64Dart
{
	Radius 8
	Height 4
	Speed 30
	Damage 4
	RenderStyle Normal
	Alpha 1
	SeeSound "dart/sight"
	DeathSound "NULL"
	Obituary "$OB_DART"
	HitObituary "$OB_DART"
	Decal "BulletChip"
	PROJECTILE

	States
	{
		Spawn:
			DART A 1
			Loop
		Death:
			PUFF A 0 BRIGHT A_PlaySound("dart/shotx")
			PUFF A 0 BRIGHT ThrustThingZ(0, 3, 0, 0)
			PUFF A 4 BRIGHT
			PUFF B 4
			PUFF CDEF 4
			Stop
		XDeath:
			BLUD D 0
			BLUD D 0 A_Gravity
			BLUD D 0 A_SpawnItemEx("64Blood2", 5, 5, 0, 0, 0, 0, 0, 128, 100)
			BLUD D 0 A_SpawnItemEx("64Blood2", -5, -5, 0, 0, 0, 0, 0, 128, 100)
			BLUD D 8
			BLUD CBA 8
			Stop
		Crash:
			PUFF A 0 BRIGHT A_PlaySound("dart/shotx")
			PUFF A 0 BRIGHT ThrustThingZ(0, 3, 0, 0)
			PUFF A 4 BRIGHT
			PUFF B 4
			PUFF CDEF 4
			Stop
	}
}

ACTOR 64DartVertical : 64Dart
{
	Radius 4
	Height 16

	States
	{
		Spawn:
			DRTV A 1
			Loop
	}
}

ACTOR 64TracerMissile : RevenantTracer
{
	SpawnID 156
	Radius 8
	Height 16
	Speed 10
	Damage 5
	RenderStyle Normal
	Alpha 1
	SeeSound "tracer/sight"
	DeathSound "NULL"
	Obituary "$OB_TRACER"
	HitObituary "$OB_TRACER"
	Decal "RevenantScorch"
	PROJECTILE
	+SEEKERMISSILE

	States
	{
		Spawn:
			TRCR A 0 BRIGHT
			TRCR A 0 BRIGHT A_CustomMissile("64MotherBallTrail", 0, 0, 0, 2, 0)
			TRCR A 2 BRIGHT A_SeekerMissile(5, 15)
			TRCR B 0 BRIGHT A_CustomMissile("64MotherBallTrail", 0, 0, 0, 2, 0)
			TRCR B 2 BRIGHT A_SeekerMissile(5, 15)

			TRCR A 0 BRIGHT A_CustomMissile("64MotherBallTrail", 0, 0, 0, 2, 0)
			TRCR A 2 BRIGHT A_SeekerMissile(5, 15)
			TRCR B 0 BRIGHT A_CustomMissile("64MotherBallTrail", 0, 0, 0, 2, 0)
			TRCR B 2 BRIGHT A_SeekerMissile(5, 15)

			TRCR A 0 BRIGHT A_CustomMissile("64MotherBallTrail", 0, 0, 0, 2, 0)
			TRCR A 2 BRIGHT A_SeekerMissile(5, 15)
			TRCR B 0 BRIGHT A_CustomMissile("64MotherBallTrail", 0, 0, 0, 2, 0)
			TRCR B 2 BRIGHT A_SeekerMissile(5, 15)

			TRCR A 0 BRIGHT A_CustomMissile("64MotherBallTrail", 0, 0, 0, 2, 0)
			TRCR A 2 BRIGHT A_SeekerMissile(5, 15)
			TRCR B 0 BRIGHT A_CustomMissile("64MotherBallTrail", 0, 0, 0, 2, 0)
			TRCR B 2 BRIGHT A_SeekerMissile(5, 15)

			TRCR B 0 BRIGHT A_Jump(8, "StopSeeking")
			Loop
		Death:
			TRCR C 0 BRIGHT A_PlaySound("tracer/shotx", CHAN_AUTO, 1, 0, ATTN_NORM)
			TRCR C 5 BRIGHT
			TRCR D 3 BRIGHT A_FadeOut(0.20)
			TRCR EFGHI 3 BRIGHT A_FadeOut(0.20)
			Stop
		XDeath:
			TRCR C 0 BRIGHT A_PlaySound("tracer/shotx", CHAN_AUTO, 1, 0, ATTN_NORM)
			TRCR C 5 BRIGHT
			TRCR D 3 BRIGHT A_FadeOut(0.20)
			TRCR EFGHI 3 BRIGHT A_FadeOut(0.20)
			Stop
		StopSeeking:
			TRCR A 0 BRIGHT A_CustomMissile("64MotherBallTrail", 0, 0, 0, 2, 0)
			TRCR A 2 BRIGHT
			TRCR B 0 BRIGHT A_CustomMissile("64MotherBallTrail", 0, 0, 0, 2, 0)
			TRCR B 2 BRIGHT
			Loop
	}
}

/* --- MONSTER DEFINITIONS -------------------------------------------------- */

ACTOR 64MarineBot : ZombieMan 3008
{
	//$Color 11
	//$Category "Doom 64 Retribution"
	SpawnID 159
	Speed 10
	Health 100
	Radius 17
	Height 96
	PainChance 255
	MaxStepHeight 24
	Species "64MarineBot"
	DropItem "None"
	PainSound "marine/pain"
	DeathSound "marine/death"
	ActiveSound "NULL"
	SeeSound "NULL"
	Decal "BulletChip"
	+FRIENDLY

	States
	{
		Spawn:
			PLAY AA 3 A_Wander
			PLAY A 0 A_Look
			PLAY BB 3 A_Wander
			PLAY B 0 A_Look
			Loop
		See:
			PLAY AABBCCDD 4 A_Chase
			Loop
		Missile:
			PLAY E 10 A_FaceTarget
			PLAY F 8 BRIGHT A_PosAttack
			PLAY E 8
			Goto See
		Pain:
			PLAY G 3
			PLAY G 3 A_Pain
			Goto See
		Death:
			PLAY H 10
			PLAY I 10 A_PlayerScream
			PLAY J 10 A_NoBlocking
			PLAY KL 8
			PLAY M -1
			Stop
		XDeath:
			PLAY O 5
			PLAY P 5 A_XScream
			PLAY Q 5 A_NoBlocking
			PLAY RSTU 5
			PLAY V -1
			Stop
		Crush:
			A027 A 0
			A027 A 0 A_PlaySound("misc/gibbed")
			A027 A -1
			Stop
	}
}

ACTOR 64ZombieMan : ZombieMan REPLACES ZombieMan
{
	Radius 32
	Height 87
	Decal "BulletChip"
	speed 8

	States
	{
	
	Missile:
    POSS E 11 A_FaceTarget
    POSS F 9 A_CustomBulletAttack(22,0,1,3*random(1,8),"64BulletPuff",2048,CBAF_NORANDOM)
    POSS E 9
    Goto See
	
		Pain.Vertigo:
			POSS G 0 ThrustThingZ(0, 55, 0, 0)
			POSS G 3
			POSS G 3 A_Pain
			Goto See
		Crush:
			A027 A 0
			A027 A 0 A_PlaySound("misc/gibbed")
			A027 A -1
			Stop
	}
}

ACTOR 64TargetRangeZombieMan : 64ZombieMan 3010
{
	//$Color 11
	//$Category "Doom 64 Retribution"
	SpawnID 158
	DropItem "None"
	BloodType "64InvisiBlood"
	SeeSound "NULL"
	PainSound "NULL"
	DeathSound "NULL"
	ActiveSound "NULL"
	Alpha 0.80
	RenderStyle Add
	+NOBLOODDECALS
	+NOINFIGHTING
	-COUNTKILL

	States
	{
		Missile:
			POSS E 10 A_FaceTarget
			POSS F 8
			POSS E 8
			Goto See
		XDeath:
			POSS M 5
			POSS N 5
			POSS O 5 A_NoBlocking
			POSS PQRST 5
			POSS U -1
			Stop
		Crush:
			A027 A 0
			A027 A -1
			Stop
	}
}

ACTOR 64ShotgunGuy : ShotgunGuy REPLACES ShotgunGuy
{
	Radius 32
	Height 87
	Speed 10 // DEFAULT IS 8
	Decal "BulletChip"

	States
	{
		See:
			SPOS AABBCCDD 4 A_Chase
			Loop
		Missile:
			SPOS E 10 A_FaceTarget
			SPOS F 10 A_SPosAttackUseAtkSound
			SPOS E 10
			Goto See
		Pain.Vertigo:
			SPOS G 0 ThrustThingZ(0, 55, 0, 0)
			SPOS G 3
			SPOS G 3 A_Pain
			Goto See
		Crush:
			A027 A 0
			A027 A 0 A_PlaySound("misc/gibbed")
			A027 A -1
			Stop
	}
}

ACTOR 64DoomImp : DoomImp REPLACES DoomImp
{
	Radius 42
	Height 94
	MeleeSound "imp/melee"
	MeleeDamage 3
	speed 8
	MeleeRange 80
	painchance 200
	MissileType "64DoomImpBall"
	Species "64DoomImp"
	+MISSILEMORE

	States
	{
		Spawn:
			TROO AB 10 A_Look
			Loop
		See:
			TROO AABBCCDD 3 A_Chase
			Loop
		Melee:
			TROO EF 10 A_FaceTarget
			TROO G 7 A_MeleeAttack
			Goto See
		Missile:
			TROO IJ 8 A_FaceTarget
			TROO K 6 A_CustomMissile("64DoomImpBall", 64, 0, 0, CMF_OFFSETPITCH, 1)
			Goto See
		Pain:
			TROO H 2
			TROO H 2 A_Pain
			Goto See
		Pain.Vertigo:
			TROO H 0 ThrustThingZ(0, 55, 0, 0)
			TROO H 2
			TROO H 2 A_Pain
			Goto See
		Death:
			TROO L 10
			TROO M 10 A_Scream
			TROO N 8
			TROO O 8 A_NoBlocking
			TROO P -1
			Stop
		Death.Cast:
			TROO L 10
			TROO M 10 A_Scream
			TROO N 8
			TROO O 8 A_NoBlocking
			TROO P -1
			Stop
		XDeath:
			TROO Q 6
			TROO R 6 A_XScream
			TROO S 6
			TROO T 6 A_NoBlocking
			TROO UVW 6
			TROO X -1
			Stop
		Raise:
			TROO PO 8
			TROO NML 6
			Goto See
		Crush:
			A027 A 0
			A027 A 0 A_PlaySound("misc/gibbed")
			A027 A -1
			Stop
	}
}

ACTOR 64NightmareImp 3007
{
	//$Color 12
	//$Category "Doom 64 Retribution"
	SpawnID 155
	Health 60
	RenderStyle Translucent
	Alpha 0.60
	Speed 16
	PainChance 128
	Radius 42
	Height 94
	Mass 100
	MeleeDamage 3
	MeleeRange 80
	Species "64NightmareImp"
	BloodColor "7B 5A 84"
	SeeSound "imp/sight"
	PainSound "imp/pain"
	DeathSound "imp/death"
	ActiveSound "imp/active"
	MeleeSound "imp/melee"
	MissileType "64NightmareImpBall"
	Obituary "$OB_NIGHTIMP"
	HitObituary "$OB_NIGHTIMPHIT"
	MONSTER
	+FLOORCLIP
	+MISSILEMORE
	+MISSILEEVENMORE

	States
	{
		Spawn:
			TRO2 AB 10 A_Look
			Loop
		See:
			TRO2 AABBCCDD 3 A_Chase
			Loop
		Melee:
			TRO2 EF 10 A_FaceTarget
			TRO2 G 7 A_MeleeAttack
			Goto See
		Missile:
			TRO2 IJ 8 A_FaceTarget
			TRO2 K 6 A_CustomMissile("64NightmareImpBall", 64, 0, 0, CMF_OFFSETPITCH, 1)
			Goto See
		Pain:
			TRO2 H 2
			TRO2 H 2 A_Pain
			Goto See
		Pain.Vertigo:
			TRO2 H 0 ThrustThingZ(0, 55, 0, 0)
			TRO2 H 2
			TRO2 H 2 A_Pain
			Goto See
		Death:
			TRO2 L 10
			TRO2 M 10 A_Scream
			TRO2 N 8
			TRO2 O 8 A_NoBlocking
			TRO2 P -1
			Stop
		XDeath:
			TRO2 Q 6
			TRO2 R 6 A_XScream
			TRO2 S 6
			TRO2 T 6 A_NoBlocking
			TRO2 UVW 6
			TRO2 X -1
			Stop
		Raise:
			TRO2 PO 8
			TRO2 NML 6
			Goto See
		Crush:
			A055 A 0
			A055 A 0 A_PlaySound("misc/gibbed")
			A055 A -1
			Stop
	}
}

ACTOR 64DoomImpBall : DoomImpBall REPLACES DoomImpBall
{
	Speed 10 // DEFAULT IS 10
	FastSpeed 20 // DEFAULT IS 20
	Renderstyle Normal
	Alpha 0.75
	Decal "DoomImpScorch"

	States
	{
		Spawn:
			BAL1 ABC 4 BRIGHT
			Loop
		Death:
			BAL1 DEFGHI 2 BRIGHT
			Stop
	}
}

ACTOR 64NightmareImpBall : DoomImpBall
{
	Speed 20
	FastSpeed 30 
	Alpha 0.60
	Renderstyle Translucent
	Decal "DoomImpScorch"

	States
	{
		Spawn:
			BAL3 ABC 4 BRIGHT
			Loop
		Death:
			BAL3 DEFGHI 2 BRIGHT
			Stop
	}
}

ACTOR 64Demon : Demon REPLACES Demon
{
	Radius 44
	Height 100
	PainChance 160 // DEFAULT IS 180
	MeleeRange 80 // DEFAULT IS 44
	speed 12

	States
	{
		Spawn:
			SARG BD 8 A_Look
			Loop
		Melee:
		SARG EF 10 Fast A_FaceTarget
		SARG G 10 Fast A_SargAttack
		Goto See
		Pain.Vertigo:
			SARG H 0 ThrustThingZ(0, 55, 0, 0)
			SARG H 2
			SARG H 2 A_Pain
			Goto See
		Crush:
			A027 A 0
			A027 A 0 A_PlaySound("misc/gibbed")
			A027 A -1
			Stop
	}
}

ACTOR 64Spectre : Spectre REPLACES Spectre
{
	Radius 50
	Height 100
	RenderStyle Translucent
	Alpha 1.0
	PainChance 160 // DEFAULT IS 180
	MeleeRange 80 // DEFAULT IS 44
	speed 12

	States
	{
		Spawn:
			SAR2 A 0 A_SetTranslucent(1.0, 0)
			SAR2 BD 10 A_Look
			Goto Spawn+1
		Idle:
			SAR2 B 2
			SAR2 BB 2 A_SetTranslucent(0.25, 0)
			SAR2 BB 2 A_SetTranslucent(0.50, 0)
			SAR2 D 2
			SAR2 DD 2 A_SetTranslucent(0.75, 0)
			SAR2 DD 2 A_SetTranslucent(1.0, 0)
			Goto Spawn
		See:
			SAR2 A 0 A_SetTranslucent(1.0, 0)
			SAR2 AA 2 A_Chase
			SAR2 B 0 A_SetTranslucent(0.75, 0)
			SAR2 BB 2 A_Chase
			SAR2 C 0 A_SetTranslucent(0.50, 0)
			SAR2 CC 2 A_Chase
			SAR2 D 0 A_SetTranslucent(0.25, 0)
			SAR2 DD 2 A_Chase
			SAR2 A 0 A_SetTranslucent(0.20, 0)
			SAR2 AABBCCDD 2 A_Chase
			Goto See+12
		Melee:
			SAR2 E 0 A_SetTranslucent(0.20, 0)
			SAR2 EF 10 A_FaceTarget
			SAR2 G 10 A_SargAttack
			Goto See+12
		Pain:
			SAR2 H 0 A_SetTranslucent(0.20, 0)
			SAR2 H 2
			SAR2 H 2 A_Pain
			Goto See+12
		Pain.Vertigo:
			SAR2 H 0 A_SetTranslucent(0.20, 0)
			SAR2 H 0 ThrustThingZ(0, 55, 0, 0)
			SAR2 H 2
			SAR2 H 2 A_Pain
			Goto See+12
		Death:
			SAR2 I 8 A_FadeIn(0.20)
			SAR2 J 0 A_FadeIn(0.20)
			SAR2 J 8 A_Scream
			SAR2 K 4 A_FadeIn(0.20)
			SAR2 L 0 A_FadeIn(0.20)
			SAR2 L 4 A_NoBlocking
			SAR2 M 4 A_FadeIn(0.20)
			SAR2 N 0 A_SetTranslucent(1.0, 0)
			SAR2 N -1
			Stop
		Raise:
			SAR2 N 5
			SAR2 M 5 A_SetTranslucent(0.90, 0)
			SAR2 L 5 A_SetTranslucent(0.70, 0)
			SAR2 K 5 A_SetTranslucent(0.60, 0)
			SAR2 J 5 A_SetTranslucent(0.40, 0)
			SAR2 I 5 A_SetTranslucent(0.20, 0)
			Goto See+12
		Crush:
			A027 A 0
			A027 A 0 A_PlaySound("misc/gibbed")
			A027 A -1
			Stop
	}
}

ACTOR 64Cacodemon : Cacodemon REPLACES Cacodemon
{
	Radius 55
	Height 90
	Mass 400 // DEFAULT IS 400
	MeleeRange 80 // DEFAULT IS 44
	+MISSILEMORE

	States
	{
		Spawn:
			HEAD ABCD 8 A_Look
			Loop
		See:
			HEAD A 0 A_ScaleVelocity(0.50)
			HEAD AABBCCDD 3 A_Chase
			Loop
		Pain:
			HEAD D 3
			HEAD D 3 A_Pain
			Goto See
		Pain.Vertigo:
			HEAD D 0 ThrustThingZ(0, 55, 0, 0)
			HEAD D 3
			HEAD D 3 A_Pain
			Goto See
		Melee:
		Missile:
			HEAD EF 5 A_FaceTarget
			HEAD G 5 A_CustomComboAttack("64CacodemonBall", 48, 8 * random(1, 8), "imp/melee")
			Goto See
		Death:
			HEAD H 0 A_ChangeFlag("THRUACTORS", TRUE)
			HEAD H 0 A_ChangeFlag("BLOCKEDBYSOLIDACTORS", FALSE)
			HEAD H 0 A_ScaleVelocity(0.50)
			HEAD H 8
			HEAD I 8 A_Scream
			HEAD JK 8
			HEAD L 8 A_NoBlocking
			HEAD M -1 A_SetFloorClip
			Stop
		Raise:
			HEAD M 8 A_UnSetFloorClip
			HEAD LKJIH 8
			Goto See
		Crush:
			A027 A 0
			A027 A 0 A_PlaySound("misc/gibbed")
			A027 A -1
			Stop
	}
}

ACTOR 64CacodemonBall : CacodemonBall REPLACES CacodemonBall
{
	Speed 18
	Renderstyle Normal
	Decal "CacoScorch"

	States
	{
		Spawn:
			BAL2 ABC 4 BRIGHT
			Loop
		Death:
			BAL2 D 5 BRIGHT
			BAL2 E 3 BRIGHT A_FadeOut(0.15)
			BAL2 F 3 BRIGHT A_FadeOut(0.15)
			BAL2 GHIJ 3 BRIGHT A_FadeOut(0.15)
			Stop
	}
}

ACTOR 64PainElemental : PainElemental REPLACES PainElemental
{
	Radius 48
	Height 90
	Mass 400 // DEFAULT IS 400
	DamageFactor "LostSoulExplosion", 0
	+NODAMAGETHRUST

	States
	{
		Spawn:
			PAIN AD 10 A_Look
			Loop
		See:
			PAIN A 0 A_ScaleVelocity(0.50)
			PAIN A 3 A_Chase
			Loop
		Missile:
			PAIN BB 6 A_FaceTarget
			PAIN C 6 A_FaceTarget
			PAIN C 0 A_PainAttack("64LostSoul", 30, 0, 17)
			PAIN C 0 A_PainAttack("64LostSoul", -30, 0, 17)
			PAIN CB 3 A_FaceTarget
			Goto See
		Pain:
			PAIN D 6
			PAIN D 6 A_Pain
			Goto See
		Pain.Vertigo:
			PAIN D 0 ThrustThingZ(0, 55, 0, 0)
			PAIN D 6
			PAIN D 6 A_Pain
			Goto See
		Death:
			PAIN E 8
			PAIN F 8 A_Scream
			PAIN G 8 //A_Explode(128, 128, XF_NOTMISSILE)
			PAIN H 8 A_SetTranslucent(0.90)
			PAIN I 5 A_PainDie
			PAIN J 5 A_SetTranslucent(0.75)
			PAIN K 4 A_SetTranslucent(0.50)
			PAIN L 4
			Stop
		Crush:
			TNT1 A 0
			TNT1 A 1
			Stop
	}
}

ACTOR LostSoulSpawned : Inventory { Inventory.MaxAmount 1 }

ACTOR 64LostSoul : LostSoul REPLACES LostSoul
{
	Health 60
	Radius 28
	Height 64
	RenderStyle SoulTrans
	//DamageType "LostSoulExplosion" // UNCOMMENT ON OLDER GZDOOM
	DamageFactor "LostSoulExplosion", 0
	speed 7
	+MISSILEMORE
	+MISSILEEVENMORE
	+NOBLOOD
	+NOBLOODDECALS
	+NOTARGET
	+NODAMAGETHRUST

	States
	{
		Spawn:
			SKUL A 0 BRIGHT
			SKUL A 0 BRIGHT A_GiveInventory("LostSoulSpawned", 1)
			SKUL ABC 3 BRIGHT A_Look
			Loop
		See:
			SKUL A 0 BRIGHT A_GiveInventory("LostSoulSpawned", 1)
			SKUL ABC 3 BRIGHT A_Chase
			Loop
		Missile:
			SKUL D 8 BRIGHT A_FaceTarget
			SKUL E 4 BRIGHT A_SkullAttack(40)
			SKUL DE 4 BRIGHT A_ChangeFlag("NOTARGET", FALSE)
			Goto Missile+2
		Pain:
			SKUL F 0 BRIGHT A_GiveInventory("LostSoulSpawned", 1)
			SKUL F 2 BRIGHT
			SKUL F 2 BRIGHT A_Pain
			Goto See
		Pain.Vertigo:
			SKUL F 0 BRIGHT A_GiveInventory("LostSoulSpawned", 1)
			SKUL F 0 BRIGHT ThrustThingZ(0, 55, 0, 0)
			SKUL F 3 BRIGHT
			SKUL F 3 BRIGHT A_Pain
			Goto See
		Death:
			SKUL G 0 BRIGHT
			SKUL G 0 BRIGHT A_JumpIfInventory("LostSoulSpawned", 1, 1)
			Goto DeathExplode
			SKUL G 6 BRIGHT
			SKUL H 6 BRIGHT A_Scream
			SKUL I 4 BRIGHT
			SKUL J 3 BRIGHT A_NoBlocking
			SKUL KLMNOP 3 BRIGHT A_FadeOut(0.20)
			Stop
		DeathExplode:
			SKUL G 6 BRIGHT
			//SKUL H 0 BRIGHT A_Explode(128, 128, XF_NOTMISSILE | XF_EXPLICITDAMAGETYPE, 0, 0, 0, 0, "64NoBulletPuff", "LostSoulExplosion")
			SKUL H 0 BRIGHT A_Explode(128, 128, XF_NOTMISSILE) // UNCOMMENT ON OLDER GZDOOM AND COMMENT OUT THE ABOVE LINE
			SKUL H 6 BRIGHT A_Scream
			SKUL I 4 BRIGHT
			SKUL J 3 BRIGHT A_NoBlocking
			SKUL KLMNOP 3 BRIGHT A_FadeOut(0.20)
			Stop
		Crush:
			TNT1 A 0
			TNT1 A 1
			Stop
	}
}

ACTOR 64Fatso : Fatso REPLACES Fatso
{
	
	Radius 56
	Height 104
	Speed 8 // DEFAULT IS 8
	PainChance 80 // DEFAULT IS 80

	States
	{
		Missile:
			FATT H 26 A_FatRaise
			FATT G 0 A_CustomMissile("64FatShot", 69, 35, 0)
			FATT G 12 BRIGHT A_CustomMissile("64FatShot", 69, -35, 22)
			FATT HH 5 A_FaceTarget
			FATT G 0 A_CustomMissile("64FatShot", 69, 35, -22)
			FATT G 12 BRIGHT A_CustomMissile("64FatShot", 69, -35, 0)
			FATT HH 5 A_FaceTarget
			FATT G 0 A_CustomMissile("64FatShot", 69, 35, -5.6)
			FATT G 12 BRIGHT A_CustomMissile("64FatShot", 69, -35, 5.6)
			FATT HH 5 A_FaceTarget
			Goto See
		Pain:
			FATT I 3
			FATT I 3 A_Pain
			Goto See
		Pain.Vertigo:
			FATT I 0 ThrustThingZ(0, 55, 0, 0)
			FATT I 3
			FATT I 3 A_Pain
			Goto See
		Death:
			FATT J 6
			FATT K 6 A_Scream
			FATT L 6 A_NoBlocking
			FATT MN 6
			FATT O -1 A_BossDeath
			Stop
		Raise:
			FATT ONMLKJ 5
			Goto See
		Crush:
			A027 A 0
			A027 A 0 A_PlaySound("misc/gibbed")
			A027 A -1
			Stop
	}
}

ACTOR 64FatShot : FatShot REPLACES FatShot
{
	Radius 12 // DEFAULT IS 6
	Height 24 // DEFAULT IS 8
	speed 20
	Damage 8
	Projectile 
	+RANDOMIZE
	RenderStyle Normal
	Decal "Scorch"

	States
	{
		Spawn:
			MANF ABC 3 BRIGHT
			Loop
		Death:
			MANF D 6 BRIGHT
			MANF E 3 BRIGHT A_FadeOut(0.20)
			MANF F 3 BRIGHT A_FadeOut(0.20)
			MANF GHI 3 BRIGHT A_FadeOut(0.20)
			Stop
	}
}

ACTOR 64HellKnight : HellKnight REPLACES HellKnight
{
	Radius 24
	Height 100
	PainChance 50 // DEFAULT IS 50
	MeleeRange 80 // DEFAULT IS 44
	BloodColor "18 8C 31"
	Species "64HellKnight"
	+MISSILEMORE

	States
	{
		Spawn:
			BOS2 AB 10 A_Look
			Loop
		See:
			BOS2 AABBCCDD 3 A_Chase
			Loop
		Melee:
		Missile:
			BOS2 EF 9 A_FaceTarget
			BOS2 G 9 A_CustomComboAttack("64BaronBall", 52, 11 * random(1, 8), "baron/melee")
			Goto See
		Pain:
			BOS2 H 2
			BOS2 H 2 A_Pain
			Goto See
		Pain.Vertigo:
			BOS2 H 0 ThrustThingZ(0, 55, 0, 0)
			BOS2 H 2
			BOS2 H 2 A_Pain
			Goto See
		Death:
			BOS2 I 8
			BOS2 J 8 A_Scream
			BOS2 K 8
			BOS2 L 8 A_NoBlocking
			BOS2 M 8
			BOS2 N -1 A_BossDeath
			Stop
		Raise:
			BOS2 NMLKJI 8
			Goto See
		Crush:
			A054 A 0
			A054 A 0 A_PlaySound("misc/gibbed")
			A054 A -1
			Stop
	}
}

ACTOR 64BaronBall : BaronBall REPLACES BaronBall
{
	RenderStyle Normal
	damage (8*random(1,8))
	Decal "BaronScorch"

	States
	{
		Spawn:
			BAL7 AB 4 BRIGHT
			Loop
		Death:
			BAL7 C 5 BRIGHT
			BAL7 D 3 BRIGHT A_FadeOut(0.20)
			BAL7 EFGH 3 BRIGHT A_FadeOut(0.20)
			Stop
	}
}

ACTOR 64BaronOfHell : BaronOfHell REPLACES BaronOfHell
{
	Radius 24
	Height 100
	PainChance 50 // DEFAULT IS 50
	MeleeRange 80 // DEFAULT IS 44
	MissileType "64BaronBall2"
	Species "64BaronOfHell"
	+MISSILEMORE
	+MISSILEEVENMORE

	States
	{
		Spawn:
			BOSS AB 10 A_Look
			Loop
		See:
			BOSS AABBCCDD 3 A_Chase
			Loop
		Melee:
		Missile:
			BOSS EF 9 A_FaceTarget
			BOSS G 9 A_CustomComboAttack("64BaronBall2", 52, 11 * random(1, 8), "baron/melee")
			Goto See
		Pain:
			BOSS H 2
			BOSS H 2 A_Pain
			Goto See
		Pain.Vertigo:
			BOSS H 0 ThrustThingZ(0, 55, 0, 0)
			BOSS H 2
			BOSS H 2 A_Pain
			Goto See
		Death:
			BOSS I 8
			BOSS J 8 A_Scream
			BOSS K 8
			BOSS L 8 A_NoBlocking
			BOSS M 8
			BOSS N -1 A_BossDeath
			Stop
		Raise:
			BOSS NMLKJI 8
			Goto See
		Crush:
			A027 A 0
			A027 A 0 A_PlaySound("misc/gibbed")
			A027 A -1
			Stop
	}
}

ACTOR 64BaronBall2 : 64BaronBall
{
	Decal "BaronScorch"
	damage (8*random(1,8))

	States
	{
		Spawn:
			BAL8 AB 4 BRIGHT
			Loop
		Death:
			BAL8 C 5 BRIGHT
			BAL8 D 3 BRIGHT A_FadeOut(0.20)
			BAL8 EFGH 3 BRIGHT A_FadeOut(0.20)
			Stop
	}
}

ACTOR 64Arachnotron : Arachnotron REPLACES Arachnotron
{
	Radius 56
	Height 88
	PainChance 96 // DEFAULT IS 128
	Species "64Arachnotron"

	States
	{
		Spawn:
			BSPI AB 10 A_Look
			Loop
		See:
			BSPI A 20
			BSPI A 3 A_BabyMetal
			BSPI AABBCCDD 3 A_Chase
			Goto See+1
		Missile:
			BSPI A 20 A_FaceTarget

			BSPI E 0 A_PlaySound("baby/attack", CHAN_WEAPON, 1, 0, ATTN_NORM)
			BSPI E 0 BRIGHT A_CustomMissile("64ArachnotronPlasma", 25, -12, 2)
			BSPI E 4 BRIGHT A_CustomMissile("64ArachnotronPlasma", 25, 12, -2)
			BSPI E 3 A_FaceTarget
			BSPI E 1 A_SpidRefire

			BSPI E 0 A_PlaySound("baby/attack", CHAN_WEAPON, 1, 0, ATTN_NORM)
			BSPI E 0 BRIGHT A_CustomMissile("64ArachnotronPlasma", 25, -12, 2)
			BSPI E 4 BRIGHT A_CustomMissile("64ArachnotronPlasma", 25, 12, -2)
			BSPI E 3 A_FaceTarget
			BSPI E 1 A_SpidRefire

			BSPI E 0 A_PlaySound("baby/attack", CHAN_WEAPON, 1, 0, ATTN_NORM)
			BSPI E 0 BRIGHT A_CustomMissile("64ArachnotronPlasma", 25, -12, 2)
			BSPI E 4 BRIGHT A_CustomMissile("64ArachnotronPlasma", 25, 12, -2)
			BSPI E 3 A_FaceTarget
			BSPI E 1 A_SpidRefire

			BSPI E 0 A_PlaySound("baby/attack", CHAN_WEAPON, 1, 0, ATTN_NORM)
			BSPI E 0 BRIGHT A_CustomMissile("64ArachnotronPlasma", 25, -12, 2)
			BSPI E 4 BRIGHT A_CustomMissile("64ArachnotronPlasma", 25, 12, -2)
			BSPI E 3 A_FaceTarget
			BSPI E 1 A_SpidRefire

			BSPI E 0 A_PlaySound("baby/attack", CHAN_WEAPON, 1, 0, ATTN_NORM)
			BSPI E 0 BRIGHT A_CustomMissile("64ArachnotronPlasma", 25, -12, 2)
			BSPI E 4 BRIGHT A_CustomMissile("64ArachnotronPlasma", 25, 12, -2)
			BSPI E 3 A_FaceTarget
			BSPI E 1 A_SpidRefire

			BSPI E 0 A_PlaySound("baby/attack", CHAN_WEAPON, 1, 0, ATTN_NORM)
			BSPI E 0 BRIGHT A_CustomMissile("64ArachnotronPlasma", 25, -12, 2)
			BSPI E 4 BRIGHT A_CustomMissile("64ArachnotronPlasma", 25, 12, -2)
			BSPI E 3 A_FaceTarget
			BSPI E 1 A_SpidRefire
			Loop
		Pain:
			BSPI F 3
			BSPI F 3 A_Pain
			Goto See+1
		Pain.Vertigo:
			BSPI F 0 ThrustThingZ(0, 55, 0, 0)
			BSPI F 3
			BSPI F 3 A_Pain
			Goto See+1
		Death:
			BSPI G 20 A_Scream
			BSPI H 7 A_NoBlocking
			BSPI IJK 7
			BSPI L -1 A_BossDeath
			Stop
		Raise:
			BSPI LKJIHG 5
			Goto See+1
		Crush:
			A027 A 0
			A027 A 0 A_PlaySound("misc/gibbed")
			A027 A -1
			Stop
	}
}

ACTOR 64ArachnotronPlasma : ArachnotronPlasma REPLACES ArachnotronPlasma
{
	Damage 3
	Alpha 0.85
	RenderStyle Add
	SeeSound "NULL"
	Decal "PlasmaScorchLower"

	States
	{
		Spawn:
			APLS AB 2 BRIGHT
			Loop
		Death:
			APLS CDEFGH 5 BRIGHT
			Stop
	}
}

ACTOR 64Cyberdemon : Cyberdemon REPLACES Cyberdemon
{
	Radius 52
	Height 160
	Speed 12 // DEFAULT IS 16
	PainChance 18 // DEFAULT IS 20

	States
	{
		Spawn:
			CYBR F 10 A_Look
			Loop
		See:
			CYBR A 3 A_Metal
			CYBR AA 3 A_Chase
			CYBR B 3 A_Hoof
			CYBR BBCCCDDD 3 A_Chase
			Loop
		Pain:
			CYBR F 10 A_Pain
			Goto See
		Pain.Vertigo:
			CYBR F 0 ThrustThingZ(0, 5, 0, 0)
			CYBR F 10 A_Pain
			Goto See
		Missile:
			CYBR FF 4 A_FaceTarget
			CYBR E 4 A_CustomMissile("64CyberRocket", 81, -31, 0, CMF_OFFSETPITCH, 1)
			CYBR EE 4 A_FaceTarget
			CYBR FFFF 4 A_FaceTarget
			CYBR E 4 A_CustomMissile("64CyberRocket", 81, -31, 0, CMF_OFFSETPITCH, 1)
			CYBR EE 4 A_FaceTarget
			CYBR FFFF 4 A_FaceTarget
			CYBR E 4 A_CustomMissile("64CyberRocket", 81, -31, 0, CMF_OFFSETPITCH, 1)
			CYBR EE 4 A_FaceTarget
			Goto See


			/* OLD CODE
			CYBR F 6 A_FaceTarget
			CYBR E 12 A_CustomMissile("64CyberRocket", 80, -30, 0)
			CYBR F 14 A_FaceTarget
			CYBR E 12 A_CustomMissile("64CyberRocket", 80, -30, 0)
			CYBR F 14 A_FaceTarget
			CYBR E 12 A_CustomMissile("64CyberRocket", 80, -30, 0)
			Goto See
			*/
		Death:
			CYBR G 10
			CYBR G 0 A_Scream
			CYBR G 4 A_SpawnItemEx("64BossExplosion", 0, 0, 0, 0, 0, 0, 0, 130)
			CYBR G 4 A_SpawnItemEx("64BossExplosion", 0, 0, 0, 0, 0, 0, 0, 130)
			CYBR G 4 A_SpawnItemEx("64BossExplosion", -20, -20, 55, 0, 0, 0, 0, 130)
			CYBR G 4 A_SpawnItemEx("64BossExplosion", 20, 20, 110, 0, 0, 0, 0, 130)
			CYBR G 4 A_SpawnItemEx("64BossExplosion", 20, 20, 0, 0, 0, 0, 0, 130)
			CYBR G 4 A_SpawnItemEx("64BossExplosion", 0, 0, 55, 0, 0, 0, 0, 130)
			CYBR G 4 A_SpawnItemEx("64BossExplosion", 0, 0, 110, 0, 0, 0, 0, 130)
			CYBR G 4 A_SpawnItemEx("64BossExplosion", -20, -20, 0, 0, 0, 0, 0, 130)
			CYBR G 4 A_SpawnItemEx("64BossExplosion", 20, 20, 55, 0, 0, 0, 0, 130)
			CYBR G 4 A_SpawnItemEx("64BossExplosion", -20, -20, 110, 0, 0, 0, 0, 130)
			CYBR G 4 A_SpawnItemEx("64BossExplosion", 0, 0, 0, 0, 0, 0, 0, 130)
			CYBR G 4 A_SpawnItemEx("64BossExplosion", -20, -20, 55, 0, 0, 0, 0, 130)
			CYBR G 4 A_SpawnItemEx("64BossExplosion", -20, -20, 110, 0, 0, 0, 0, 130)
			CYBR G 4 A_SpawnItemEx("64BossExplosion", 20, 20, 0, 0, 0, 0, 0, 130)
			CYBR G 4 A_SpawnItemEx("64BossExplosion", 20, 20, 55, 0, 0, 0, 0, 130)
			CYBR G 4 A_SpawnItemEx("64BossExplosion", 0, 0, 110, 0, 0, 0, 0, 130)
			CYBR G 4 A_SpawnItemEx("64BossExplosion", 20, 20, 0, 0, 0, 0, 0, 130)
			CYBR H 4 A_SpawnItemEx("64BossExplosion", 0, 0, 55, 0, 0, 0, 0, 130)
			CYBR H 4 A_SpawnItemEx("64BossExplosion", 20, 20, 110, 0, 0, 0, 0, 130)
			CYBR I 4 A_SpawnItemEx("64BossExplosion", -20, -20, 0, 0, 0, 0, 0, 130)
			CYBR I 4 A_SpawnItemEx("64BossExplosion", -20, -20, 55, 0, 0, 0, 0, 130)
			CYBR J 4 A_SpawnItemEx("64BossExplosion", 20, 20, 110, 0, 0, 0, 0, 130)
			CYBR J 4 A_SpawnItemEx("64BossExplosion", -20, -20, 0, 0, 0, 0, 0, 130)
			CYBR K 4 A_SpawnItemEx("64BossExplosion", 20, 20, 55, 0, 0, 0, 0, 130)
			CYBR K 4 A_SpawnItemEx("64BossExplosion", 0, 0, 110, 0, 0, 0, 0, 130)
			CYBR L 6 A_NoBlocking
			CYBR MN 6
			CYBR O 30
			CYBR O -1 A_BossDeath
			Stop
		Death.Cast:
			CYBR G 10
			CYBR G 0 A_Scream
			CYBR HIJK 6
			CYBR L 6 A_NoBlocking
			CYBR MN 6
			CYBR O 70
			CYBR O -1 A_BossDeath
			Stop
		Crush:
			A027 A 0
			A027 A 0 A_PlaySound("misc/gibbed")
			A027 A -1
			Stop
	}
}

ACTOR 64TitlemapCyberdemon : 64Cyberdemon 3014
{
	//$Color 12
	//$Category "Doom 64 Retribution"
	Speed 0
	SeeSound "NULL"
	-PUSHABLE
	+NOINFIGHTING
	+INVULNERABLE
	+PAINLESS
	+NONSHOOTABLE

	States
	{
		Spawn:
			CYBR F 1 A_Look
			Goto See
		See:
			CYBR F 1 A_Chase
			Loop
		Missile:
			CYBR F 13 A_FaceTarget
			CYBR E 13 A_CustomMissile("64CyberRocketTitlemap", 80, -30, 0)
			CYBR F 16 A_FaceTarget
			CYBR E 13 A_CustomMissile("64CyberRocketTitlemap", 80, -30, 0)
			CYBR F 16 A_FaceTarget
			CYBR E 13 A_CustomMissile("64CyberRocketTitlemap", 80, -30, 0)
			Loop
	}
}

ACTOR 64MotherDemon 3013
{
	//$Color 12
	//$Category "Doom 64 Retribution"
	// mother demon
	Game Doom
	SpawnID 161
	Health 5000
	Radius 64
	Height 150
	Mass 1000
	Speed 30
	meleerange 600
	PainChance 50
	ReactionTime 8
	SeeSound "mother/sight"
	AttackSound "mother/attack"
	PainSound "mother/pain"
	DeathSound "mother/death"
	ActiveSound "mother/active"
	Obituary "$OB_MOTH"
	HitObituary "$OB_MOTH"
	MONSTER
	+FLOORCLIP
	+DONTMORPH
	+NORADIUSDMG
	+MISSILEMORE
	+MISSILEEVENMORE
	+NOFEAR
	+BOSS

	States
	{
		Spawn:
			RECT ABCD 13 A_Look
			Loop
		See:
			RECT A 0 A_jumpifcloser(600,"RECTABUSSY")
			RECT AAABBBCCCDDD 3 A_Chase
			Loop
			
		Melee:
		goto RECTABUSSY
		RECTABUSSY:
			RECT E 0 A_PlaySoundEx("mother/attack", "BODY")
			RECT E 0 A_FaceTarget
			RECT G 0 BRIGHT A_CustomMissile("64MotherFire", 0, 0, 0, 2, 0)
			RECT G 0 BRIGHT A_CustomMissile("64MotherFire", 0, 0, 45, 2, 0)
			RECT G 14 BRIGHT A_CustomMissile("64MotherFire", 0, 0, -45, 2, 0)
			RECT E 14 A_FaceTarget //             height, offset, angle
			RECT F 0 A_CustomMissile("64MotherBall", 160, -24,  90) // TOP LEFT
			RECT F 0 A_CustomMissile("64MotherBall",  80, -48,  90) // BOTTOM LEFT
			RECT F 0 A_CustomMissile("64MotherBall", 160,  24, -90) // TOP RIGHT
			RECT F 14 A_CustomMissile("64MotherBall", 80,  48, -90) // BOTTOM RIGHT
			RECT E 8
			Goto See+1
		Pain:
			RECT H 11 A_Pain
			RECT H 11 
			Goto RECTABUSSY+1
		Pain.Vertigo:
			RECT H 0 ThrustThingZ(0, 5, 0, 0)
			RECT H 11
			RECT H 11 A_Pain
			Goto See
		Death:
			RECT I 10
			RECT I 0 A_Scream
			RECT I 4 A_SpawnItemEx("64BossExplosion", 0, 0, 0, 0, 0, 0, 0, 130)
			RECT I 4 A_SpawnItemEx("64BossExplosion", 0, 0, 0, 0, 0, 0, 0, 130)
			RECT I 4 A_SpawnItemEx("64BossExplosion", -20, -20, 55, 0, 0, 0, 0, 130)
			RECT I 4 A_SpawnItemEx("64BossExplosion", 20, 20, 110, 0, 0, 0, 0, 130)
			RECT I 4 A_SpawnItemEx("64BossExplosion", 20, 20, 0, 0, 0, 0, 0, 130)
			RECT I 4 A_SpawnItemEx("64BossExplosion", 0, 0, 55, 0, 0, 0, 0, 130)
			RECT I 4 A_SpawnItemEx("64BossExplosion", 0, 0, 110, 0, 0, 0, 0, 130)
			RECT I 4 A_SpawnItemEx("64BossExplosion", -20, -20, 0, 0, 0, 0, 0, 130)
			RECT I 4 A_SpawnItemEx("64BossExplosion", 20, 20, 55, 0, 0, 0, 0, 130)
			RECT I 4 A_SpawnItemEx("64BossExplosion", -20, -20, 110, 0, 0, 0, 0, 130)
			RECT I 4 A_SpawnItemEx("64BossExplosion", 0, 0, 0, 0, 0, 0, 0, 130)
			RECT I 4 A_SpawnItemEx("64BossExplosion", -20, -20, 55, 0, 0, 0, 0, 130)
			RECT I 4 A_SpawnItemEx("64BossExplosion", -20, -20, 110, 0, 0, 0, 0, 130)
			RECT I 4 A_SpawnItemEx("64BossExplosion", 20, 20, 0, 0, 0, 0, 0, 130)
			RECT I 4 A_SpawnItemEx("64BossExplosion", 20, 20, 55, 0, 0, 0, 0, 130)
			RECT I 4 A_SpawnItemEx("64BossExplosion", 0, 0, 110, 0, 0, 0, 0, 130)
			RECT I 4 A_SpawnItemEx("64BossExplosion", 20, 20, 0, 0, 0, 0, 0, 130)
			RECT I 4 A_SpawnItemEx("64BossExplosion", 0, 0, 55, 0, 0, 0, 0, 130)
			RECT I 4 A_SpawnItemEx("64BossExplosion", 20, 20, 110, 0, 0, 0, 0, 130)
			RECT J 4 A_SpawnItemEx("64BossExplosion", -20, -20, 0, 0, 0, 0, 0, 130)
			RECT J 4 A_SpawnItemEx("64BossExplosion", -20, -20, 55, 0, 0, 0, 0, 130)
			RECT K 4 A_SpawnItemEx("64BossExplosion", 20, 20, 110, 0, 0, 0, 0, 130)
			RECT K 4 A_SpawnItemEx("64BossExplosion", -20, -20, 0, 0, 0, 0, 0, 130)
			RECT L 0 A_NoBlocking
			RECT L 4 A_SpawnItemEx("64BossExplosion", 20, 20, 55, 0, 0, 0, 0, 130)
			RECT L 4 A_SpawnItemEx("64BossExplosion", 0, 0, 110, 0, 0, 0, 0, 130)
			RECT MNO 6
			TNT1 A 30
			TNT1 A 0 A_BossDeath
			Stop
		Death.Cast:
			RECT I 10
			RECT I 0 A_Scream
			RECT JK 5
			RECT L 0 A_NoBlocking
			RECT MNO 6
			TNT1 A 70
			TNT1 A 0 A_BossDeath
			Stop
		Crush:
			A027 A 0
			A027 A 0 A_PlaySound("misc/gibbed")
			A027 A -1
			Stop
	}
}

ACTOR 64MotherBall : RevenantTracer
{
	Speed 17
	Damage 10
	RenderStyle Normal
	Decal "RevenantScorch"

	States
	{
		Spawn:
			RBAL A 0 BRIGHT
			RBAL A 0 BRIGHT A_CustomMissile("64MotherBallTrail", 0, 0, 0, 2, 0)
			RBAL A 2 BRIGHT A_SeekerMissile(5, 15, SMF_PRECISE)
			RBAL B 0 BRIGHT A_CustomMissile("64MotherBallTrail", 0, 0, 0, 2, 0)
			RBAL B 2 BRIGHT A_SeekerMissile(5, 15, SMF_PRECISE)

			RBAL A 0 BRIGHT A_CustomMissile("64MotherBallTrail", 0, 0, 0, 2, 0)
			RBAL A 2 BRIGHT A_SeekerMissile(5, 15, SMF_PRECISE)
			RBAL B 0 BRIGHT A_CustomMissile("64MotherBallTrail", 0, 0, 0, 2, 0)
			RBAL B 2 BRIGHT A_SeekerMissile(5, 15, SMF_PRECISE)

			RBAL A 0 BRIGHT A_CustomMissile("64MotherBallTrail", 0, 0, 0, 2, 0)
			RBAL A 2 BRIGHT A_SeekerMissile(5, 15, SMF_PRECISE)
			RBAL B 0 BRIGHT A_CustomMissile("64MotherBallTrail", 0, 0, 0, 2, 0)
			RBAL B 2 BRIGHT A_SeekerMissile(5, 15, SMF_PRECISE)

			RBAL A 0 BRIGHT A_CustomMissile("64MotherBallTrail", 0, 0, 0, 2, 0)
			RBAL A 2 BRIGHT A_SeekerMissile(5, 15, SMF_PRECISE)
			RBAL B 0 BRIGHT A_CustomMissile("64MotherBallTrail", 0, 0, 0, 2, 0)
			RBAL B 2 BRIGHT A_SeekerMissile(5, 15, SMF_PRECISE)

			RBAL B 0 BRIGHT A_Jump(15, "StopSeeking")
			Loop
		Death:
			RBAL C 5 BRIGHT
			RBAL D 3 BRIGHT A_FadeOut(0.20)
			RBAL EFGH 3 BRIGHT A_FadeOut(0.20)
			Stop
		XDeath:
			RBAL C 5 BRIGHT
			RBAL D 3 BRIGHT A_FadeOut(0.20)
			RBAL EFGH 3 BRIGHT A_FadeOut(0.20)
			Stop
		StopSeeking:
			RBAL A 0 BRIGHT A_CustomMissile("64MotherBallTrail", 0, 0, 0, 2, 0)
			RBAL A 2 BRIGHT
			RBAL B 0 BRIGHT A_CustomMissile("64MotherBallTrail", 0, 0, 0, 2, 0)
			RBAL B 2 BRIGHT
			Loop
	}
}

ACTOR 64MotherBallTrail : RocketSmokeTrail
{
	RenderStyle Translucent
	Alpha 0.50
	VSpeed 1

	States
	{
		Spawn:
			PUF3 ABCDE 2 BRIGHT
			Stop
	}
}

ACTOR 64MotherFire
{
	Game Doom
	Height 64
	Radius 16
	Damage (5*random(1,8))
	Speed 20
	RenderStyle Translucent
	Alpha 0.80
	DamageType "Vertigo"
	SeeSound "skeleton/attack"
	DeathSound "NULL"
	PROJECTILE
	-NOGRAVITY
	-RANDOMIZE
	+NODAMAGETHRUST
	+STEPMISSILE
	+USEBOUNCESTATE
	BounceType "Classic"

	States
	{
		Spawn:
			FIRE ABCDE 3 BRIGHT A_CustomMissile("64MotherFireTrail", 0, 0, 0, 2, 0)
			Loop
		bounce:
			TNT1 A 1 A_ChangeFlag("FLOORHUGGER", TRUE)
			goto spawn
		Death:
			FIRE E 0 BRIGHT
			Stop
	}
}

ACTOR 64MotherFireTrail
{
	Game Doom
	Height 64
	Radius 16
	Speed 0
	Damage 0
	RenderStyle Translucent
	Alpha 0.40
	+NOGRAVITY

	States
	{
		Spawn:
			FIRE ABCDE 4 BRIGHT A_FadeOut(0.20)
			Loop
	}
}

/* --- OTHER MONSTER DEFINITIONS -------------------------------------------- */

ACTOR 64ChaingunGuy : ChaingunGuy REPLACES ChaingunGuy
{
	Radius 24
	Height 96
	Scale 1.3
	AttackSound "weapons/chngun"
}

ACTOR 64Revenant : Revenant REPLACES Revenant { Scale 1.2 }
ACTOR 64Archvile : Archvile REPLACES Archvile { Scale 1.2 }
ACTOR 64WolfensteinSS : WolfensteinSS REPLACES WolfensteinSS { Scale 1.3 }
ACTOR 64SpiderMastermind : SpiderMastermind REPLACES SpiderMastermind { Scale 1.2 }

ACTOR 64SpawnShot : SpawnShot REPLACES SpawnShot
{
	SeeSound "NULL"
	DeathSound "NULL"
	AttackSound "NULL"

	States
	{
		Spawn:
			TNT1 A 3
			TNT1 AAA 3 A_SpawnFly
			Loop
	}
}

ACTOR 64SpawnFire : SpawnFire REPLACES SpawnFire
{
	States
	{
		Spawn:
			TNT1 A 1
			Stop
	}
}

ACTOR 64BossEye : BossEye REPLACES BossEye
{
	SeeSound "NULL"
	DeathSound "NULL"
	AttackSound "NULL"

	DropItem "64DoomImp", 255, 50
	DropItem "64NightmareImp", 255, 50
	DropItem "64Demon", 255, 40
	DropItem "64Spectre", 255, 30
	DropItem "64PainElemental", 255, 10
	DropItem "64Cacodemon", 255, 30
	DropItem "64Arachnotron", 255, 20
	DropItem "64Fatso", 255, 30
	DropItem "64HellKnight", 255, 24
	DropItem "64BaronOfHell", 255, 10

	States
	{
		See:
			TNT1 A 180
			TNT1 A 150 A_BrainSpit
			Wait
	}
}

/* --- STATIC DECORATIONS ------------------------------------------------------
NOTES:
   Add -SOLID to actors if they block when they should not (like gibs)
   Add +NOBLOCKMAP and -MOVEWITHSECTOR to actors that fall to the floor
----------------------------------------------------------------------------- */

ACTOR 64DeadFatso : DeadCacodemon 902
{
	//$Color 4
	//$NotAngled
	//$Category Decoration
	-SOLID
	States
	{
		Spawn:
			FATT O -1
			Stop
	}
}

ACTOR 64DeadArachnotron : DeadCacodemon 903
{
	//$Color 4
	//$NotAngled
	//$Category Decoration
	-SOLID
	States
	{
		Spawn:
			BSPI L -1
			Stop
	}
}

ACTOR 64DeadHellKnight : DeadCacodemon 905
{
	//$Color 4
	//$NotAngled
	//$Category Decoration
	-SOLID
	States
	{
		Spawn:
			BOS2 N -1
			Stop
	}
}

ACTOR 64DeadBaronOfHell : DeadCacodemon 906
{
	//$Color 4
	//$NotAngled
	//$Category Decoration
	-SOLID
	States
	{
		Spawn:
			BOSS N -1
			Stop
	}
}

ACTOR 64DeadCacodemon : DeadCacodemon REPLACES DeadCacodemon
{
	States
	{
		Spawn:
			HEAD M -1
			Stop
	}
}

ACTOR 64DeadDemon : DeadDemon REPLACES DeadDemon {}

ACTOR 64DeadDoomImp : DeadDoomImp REPLACES DeadDoomImp
{
	States
	{
		Spawn:
			TROO P -1
			Stop
	}
}

ACTOR 64DeadShotgunGuy : DeadShotgunGuy REPLACES DeadShotgunGuy {}

ACTOR 64DeadZombieMan : DeadZombieMan REPLACES DeadZombieMan {}

ACTOR 64DeadMarine : DeadMarine REPLACES DeadMarine
{
	States
	{
		Spawn:
			PLAY M -1
			Stop
	}
}

ACTOR 64GibbedMarine : GibbedMarine REPLACES GibbedMarine
{
	States
	{
		Spawn:
			PLAY V -1
			Stop
	}
}

ACTOR 64GibbedMarineExtra : GibbedMarineExtra REPLACES GibbedMarineExtra {}

ACTOR 64ExplosiveBarrel : ExplosiveBarrel REPLACES ExplosiveBarrel
{
	Health 20 // DEFAULT IS 20
	Radius 20
	Height 50
	DeathHeight 50
	+SOLID

	States
	{
		Death:
			BEXP ABCD 4
			BEXP E 4 A_Scream
			BEXP E 0 A_NoBlocking
			BEXP E 0 A_ChangeFlag("SOLID", FALSE)
			BEXP E 0 A_SpawnItemEx("64BarrelExplosion", 0, 0, 25, 0, 0, 0, 0, 0)
			BEXP E 0 A_Explode // DEFAULT DAMAGE AND RADIUS IS 128
			TNT1 A 0 //A_SetTranslucent(0.0)
			TNT1 A 0
			TNT1 A 1050 A_BarrelDestroy
			TNT1 A 5 A_Respawn
			Wait
	}
}

// Inherits from the replaced explosive barrel but uses Doom 64's DoomEd number
ACTOR 64Barrel : 64ExplosiveBarrel 1001
{
	//$Category "Doom 64 Retribution"
	//$NotAngled
}

ACTOR 64BarrelExplosion
{
	RenderStyle Translucent
	Alpha 0.60
	Damage 0
	PROJECTILE
	+RANDOMIZE
	-SOLID

	States
	{
		Spawn:
			MISL B 0 BRIGHT
			MISL B 8 BRIGHT
			MISL C 6 BRIGHT A_FadeOut(0.12)
			MISL D 3 BRIGHT A_FadeOut(0.12)
			MISL EF 3 BRIGHT A_FadeOut(0.12)
			Stop
	}
}

ACTOR 64StatueDemon 1029
{
	//$NotAngled
	//$Category "Doom 64 Retribution"
	Game Doom
	Height 56
	Radius 24
	ProjectilePassHeight -8
	+SOLID

	States
	{
		Spawn:
			A029 A -1
			Stop
	}
}

ACTOR 64StatueDragon 1028
{
	//$NotAngled
	//$Category "Doom 64 Retribution"
	Game Doom
	Height 56
	Radius 24
	ProjectilePassHeight -8
	+SOLID

	States
	{
		Spawn:
			A028 A -1
			Stop
	}
}

ACTOR 64TorchBaseLong : TechLamp 1050
{
	//$NotAngled
	//$Category "Doom 64 Retribution"
	Radius 15
	Height 73
	ProjectilePassHeight 1
	+SOLID

	States
	{
		Spawn:
			A033 A -1
			Stop
	}
}

ACTOR 64TorchBaseShort : TechLamp2 1051
{
	//$NotAngled
	//$Category "Doom 64 Retribution"
	Radius 14
	Height 58
	ProjectilePassHeight 1
	+SOLID

	States
	{
		Spawn:
			A034 A -1
			Stop
	}
}

ACTOR 64Tree : BigTree 1038
{
	//$NotAngled
	//$Category "Doom 64 Retribution"
	Radius 16
	Height 64
	ProjectilePassHeight -8
	+SOLID

	States
	{
		Spawn:
			TRE1 A -1
			Stop
	}
}

ACTOR 64TreeStumpLarge : TorchTree 1037
{
	//$NotAngled
	//$Category "Doom 64 Retribution"
	Radius 16
	Height 64
	ProjectilePassHeight -8
	+SOLID

	States
	{
		Spawn:
			TRE2 A -1
			Stop
	}
}

ACTOR 64TreeStumpSmall : Stalagtite 1036
{
	//$NotAngled
	//$Category "Doom 64 Retribution"
	Radius 16
	Height 32
	ProjectilePassHeight -8
	+SOLID

	States
	{
		Spawn:
			TRE3 A -1
			Stop
	}
}

/* --- FIRES AND LIGHTS ----------------------------------------------------- */

ACTOR 64Candle : Candlestick REPLACES Candlestick
{
	//$NotAngled
	//$Category "Doom 64 Retribution"
	Radius 4
	Height 30
	-SOLID

	States
	{
		Spawn:
			CAND ABCDBC 3 BRIGHT
			Loop
	}
}

ACTOR 64UnlitCandle : 64Candle 908
{
	//$NotAngled
	//$Category "Doom 64 Retribution"
	Radius 4
	Height 30
	-SOLID

	States
	{
		Spawn:
			UCND A -1
			Stop
	}
}

ACTOR 64BigFire 2051
{
	//$NotAngled
	//$Category "Doom 64 Retribution"
	Game Doom
	Height 8
	Radius 6
	RenderStyle Translucent
	Alpha 0.75
	+NOGRAVITY
	-SOLID

	States
	{
		Spawn:
			FIRE ABCDE 3 BRIGHT
	}
}

ACTOR 64SingleFireRed 1034
{
	//$NotAngled
	//$Category "Doom 64 Retribution"
	Game Doom
	+NOGRAVITY
	-SOLID

	States
	{
		Spawn:
			RFLM ABCDE 4 BRIGHT
			Loop
	}
}

ACTOR 64SingleFireYellow 1035
{
	//$NotAngled
	//$Category "Doom 64 Retribution"
	Game Doom
	+NOGRAVITY
	-SOLID

	States
	{
		Spawn:
			YFLM ABCDE 4 BRIGHT
			Loop
	}
}

ACTOR 64SingleFireBlue 1033
{
	//$NotAngled
	//$Category "Doom 64 Retribution"
	Game Doom
	+NOGRAVITY
	-SOLID

	States
	{
		Spawn:
			BFLM ABCDE 4 BRIGHT
			Loop
	}
}

ACTOR 64SingleFireGreen 899
{
	//$NotAngled
	//$Category "Doom 64 Retribution"
	Game Doom
	+NOGRAVITY
	-SOLID

	States
	{
		Spawn:
			GFLM ABCDE 4 BRIGHT
			Loop
	}
}

ACTOR 64WallTorchRed 1025
{
	//$NotAngled
	//$Category "Doom 64 Retribution"
	Game Doom
	Radius 4
	Height 40
	+NOGRAVITY
	+NOBLOCKMAP
	-MOVEWITHSECTOR
	-SOLID

	States
	{
		Spawn:
			A032 ABCDE 4 BRIGHT
			Loop
	}
}

ACTOR 64WallTorchYellow 1039
{
	//$NotAngled
	//$Category "Doom 64 Retribution"
	Game Doom
	Radius 4
	Height 40
	+NOGRAVITY
	+NOBLOCKMAP
	-MOVEWITHSECTOR
	-SOLID

	States
	{
		Spawn:
			A030 ABCDE 4 BRIGHT
			Loop
	}
}

ACTOR 64WallTorchBlue 1003
{
	//$NotAngled
	//$Category "Doom 64 Retribution"
	Game Doom
	Radius 4
	Height 40
	+NOGRAVITY
	+NOBLOCKMAP
	-MOVEWITHSECTOR
	-SOLID

	States
	{
		Spawn:
			A031 ABCDE 4 BRIGHT
			Loop
	}
}

ACTOR 64WallTorchGreen 900
{
	//$NotAngled
	//$Category "Doom 64 Retribution"
	Game Doom
	Radius 4
	Height 40
	+NOGRAVITY
	+NOBLOCKMAP
	-MOVEWITHSECTOR
	-SOLID

	States
	{
		Spawn:
			GTCH ABCDE 4 BRIGHT
			Loop
	}
}

ACTOR 64LampTechLongHang 1015
{
	//$NotAngled
	//$Category "Doom 64 Retribution"
	Game Doom
	Height 56
	Radius 16
	+NOGRAVITY
	+NOBLOCKMAP
	+SPAWNCEILING
	-MOVEWITHSECTOR
	-SOLID

	States
	{
		Spawn:
			LMP1 A -1 BRIGHT
			Stop
	}
}

ACTOR 64LampTechShortHang 1016
{
	//$NotAngled
	//$Category "Doom 64 Retribution"
	Game Doom
	Height 12
	Radius 8
	+NOGRAVITY
	+NOBLOCKMAP
	+SPAWNCEILING
	-MOVEWITHSECTOR
	-SOLID

	States
	{
		Spawn:
			LMP2 A -1 BRIGHT
			Stop
	}
}

ACTOR 64TechPoleLong : TechLamp 1031
{
	//$NotAngled
	//$Category "Doom 64 Retribution"
	Radius 8
	Height 80
	ProjectilePassHeight 1
	+SOLID

	States
	{
		Spawn:
			A035 A -1 BRIGHT
			Stop
	}
}

ACTOR 64TechPoleShort : TechLamp2 1032
{
	//$NotAngled
	//$Category "Doom 64 Retribution"
	Radius 8
	Height 60
	ProjectilePassHeight 1
	+SOLID

	States
	{
		Spawn:
			A036 A -1 BRIGHT
			Stop
	}
}

/* --- GIB DECORATIONS ------------------------------------------------------ */

ACTOR 64GibBloodPool : SmallBloodPool 1010
{
	//$Color 4
	//$NotAngled
	//$Category "Doom 64 Retribution"
	Radius 24
	Height 7
	-SOLID

	States
	{
		Spawn:
			A016 A -1
			Stop
	}
}

ACTOR 64GibBloodyMetalPole : HeadOnAStick 1045
{
	//$Color 4
	//$NotAngled
	//$Category "Doom 64 Retribution"
	Radius 16
	Height 93
	ProjectilePassHeight 1
	+SOLID

	States
	{
		Spawn:
			A013 A -1
			Stop
	}
}

ACTOR 64GibBoneFloor : ColonGibs 1011
{
	//$Color 4
	//$NotAngled
	//$Category "Doom 64 Retribution"
	Radius 32
	Height 15
	-SOLID

	States
	{
		Spawn:
			A027 A -1
			Stop
	}
}

ACTOR 64GibChainArm : Meat2 1019
{
	//$Color 4
	//$NotAngled
	//$Category "Doom 64 Retribution"
	Radius 16
	Height 58
	+NOGRAVITY
	+SPAWNCEILING
	-SOLID

	States
	{
		Spawn:
			A010 A -1
			Stop
	}
}

ACTOR 64GibChainHook : Meat2 1014
{
	//$Color 4
	//$NotAngled
	//$Category "Doom 64 Retribution"
	Radius 8
	Height 95
	+NOGRAVITY
	+SPAWNCEILING
	-SOLID

	States
	{
		Spawn:
			A015 A -1
			Stop
	}
}

ACTOR 64GibChainPinser : Meat2 1018
{
	//$Color 4
	//$NotAngled
	//$Category "Doom 64 Retribution"
	Radius 24
	Height 101
	+NOGRAVITY
	+SPAWNCEILING
	-SOLID

	States
	{
		Spawn:
			A012 A -1
			Stop
	}
}

ACTOR 64GibDoubleMeatStick : HeadOnAStick 1024
{
	//$Color 4
	//$NotAngled
	//$Category "Doom 64 Retribution"
	Radius 16
	Height 79
	ProjectilePassHeight 1
	+SOLID

	States
	{
		Spawn:
			A022 A -1
			Stop
	}
}

ACTOR 64GibHangCage : Meat2 1017
{
	//$Color 4
	//$NotAngled
	//$Category "Doom 64 Retribution"
	Radius 16
	Height 91
	+NOGRAVITY
	+SPAWNCEILING
	-SOLID

	States
	{
		Spawn:
			A001 A -1
			Stop
	}
}

ACTOR 64GibHangMaceBloody : Meat2 1020
{
	//$Color 4
	//$NotAngled
	//$Category "Doom 64 Retribution"
	Radius 16
	Height 80
	+NOGRAVITY
	+SPAWNCEILING
	-SOLID

	States
	{
		Spawn:
			A018 A -1
			Stop
	}
}

ACTOR 64GibHangRibRotting : Meat2 1049
{
	//$Color 4
	//$NotAngled
	//$Category "Doom 64 Retribution"
	Radius 16
	Height 98
	+NOGRAVITY
	+SPAWNCEILING
	-SOLID

	States
	{
		Spawn:
			A023 A -1
			Stop
	}
}

ACTOR 64GibHangWhiteMeat : Meat2 1047
{
	//$Color 4
	//$NotAngled
	//$Category "Doom 64 Retribution"
	Radius 16
	Height 64
	+NOGRAVITY
	+SPAWNCEILING
	-SOLID

	States
	{
		Spawn:
			A004 A -1
			Stop
	}
}

ACTOR 64GibHeadHang : Meat2 1048
{
	//$Color 4
	//$NotAngled
	//$Category "Doom 64 Retribution"
	Radius 8
	Height 60
	+NOGRAVITY
	+SPAWNCEILING
	-SOLID

	States
	{
		Spawn:
			A005 A -1
			Stop
	}
}

ACTOR 64GibHeadStick : HeadOnAStick 1023
{
	//$Color 4
	//$NotAngled
	//$Category "Doom 64 Retribution"
	Radius 16
	Height 69
	ProjectilePassHeight 1
	+SOLID

	States
	{
		Spawn:
			A026 A -1
			Stop
	}
}

ACTOR 64GibImpaledZombieMan : HeadOnAStick 898
{
	//$Color 4
	//$NotAngled
	//$Category "Doom 64 Retribution"
	Radius 16
	Height 93
	ProjectilePassHeight 1
	+SOLID

	States
	{
		Spawn:
			A013 B -1
			Stop
	}
}

ACTOR 64GibMaceClean : Meat2 1046
{
	//$Color 4
	//$NotAngled
	//$Category "Doom 64 Retribution"
	Radius 16
	Height 56
	+NOGRAVITY
	+SPAWNCEILING
	-SOLID

	States
	{
		Spawn:
			A019 A -1
			Stop
	}
}

ACTOR 64GibMeatHang : Meat2 1006
{
	//$Color 4
	//$NotAngled
	//$Category "Doom 64 Retribution"
	Radius 16
	Height 95
	+NOGRAVITY
	+SPAWNCEILING
	-SOLID

	States
	{
		Spawn:
			A021 A -1
			Stop
	}
}

ACTOR 64GibMeatRibCage : ColonGibs 1013
{
	//$Color 4
	//$NotAngled
	//$Category "Doom 64 Retribution"
	Radius 24
	Height 19
	-SOLID

	States
	{
		Spawn:
			A007 A -1
			Stop
	}
}

ACTOR 64GibMeatRibFloor : ColonGibs 1012
{
	//$Color 4
	//$NotAngled
	//$Category "Doom 64 Retribution"
	Radius 16
	Height 37
	-SOLID

	States
	{
		Spawn:
			A008 A -1
			Stop
	}
}

ACTOR 64GibMeatStick : HeadOnAStick 1005
{
	//$Color 4
	//$NotAngled
	//$Category "Doom 64 Retribution"
	Radius 16
	Height 80
	ProjectilePassHeight 1
	+SOLID

	States
	{
		Spawn:
			A006 A -1
			Stop
	}
}

ACTOR 64GibRibFloor : ColonGibs 1008
{
	//$Color 4
	//$NotAngled
	//$Category "Doom 64 Retribution"
	Radius 24
	Height 20
	-SOLID

	States
	{
		Spawn:
			A020 A -1
			Stop
	}
}

ACTOR 64GibSkullStick : HeadOnAStick 1022
{
	//$Color 4
	//$NotAngled
	//$Category "Doom 64 Retribution"
	Radius 16
	Height 61
	ProjectilePassHeight 1
	+SOLID

	States
	{
		Spawn:
			A017 A -1
			Stop
	}
}

ACTOR 64GibTorsoHang : Meat2 1007
{
	//$Color 4
	//$NotAngled
	//$Category "Doom 64 Retribution"
	Radius 16
	Height 83
	+NOGRAVITY
	+SPAWNCEILING
	-SOLID

	States
	{
		Spawn:
			A003 A -1
			Stop
	}
}

ACTOR 64GibTwitchFloor : ColonGibs 1009
{
	//$Color 4
	//$NotAngled
	//$Category "Doom 64 Retribution"
	Radius 24
	Height 19
	-SOLID

	States
	{
		Spawn:
			A014 AB 8
			Loop
	}
}

/* --- COMBINED TORCHES ----------------------------------------------------- */

ACTOR 64TorchLongBlue : TechLamp 15001
{
	//$NotAngled
	//$Category "Doom 64 Retribution"
	Radius 15
	Height 73
	ProjectilePassHeight 1
	+SOLID

	States
	{
		Spawn:
			TLBL ABCDE 4
			Loop
	}
}

ACTOR 64TorchLongRed : TechLamp 15002
{
	//$NotAngled
	//$Category "Doom 64 Retribution"
	Radius 15
	Height 73
	ProjectilePassHeight 1
	+SOLID

	States
	{
		Spawn:
			TLRD ABCDE 4
			Loop
	}
}

ACTOR 64TorchLongYellow : TechLamp 15003
{
	//$NotAngled
	//$Category "Doom 64 Retribution"
	Radius 15
	Height 73
	ProjectilePassHeight 1
	+SOLID

	States
	{
		Spawn:
			TLYL ABCDE 4
			Loop
	}
}

ACTOR 64TorchLongGreen : TechLamp 15004
{
	//$NotAngled
	//$Category "Doom 64 Retribution"
	Radius 15
	Height 73
	ProjectilePassHeight 1
	+SOLID

	States
	{
		Spawn:
			TLGR ABCDE 4
			Loop
	}
}

ACTOR 64TorchShortBlue : TechLamp2 15005
{
	//$NotAngled
	//$Category "Doom 64 Retribution"
	Radius 14
	Height 58
	ProjectilePassHeight 1
	+SOLID

	States
	{
		Spawn:
			TSBL ABCDE 4
			Loop
	}
}

ACTOR 64TorchShortRed : TechLamp2 15006
{
	//$NotAngled
	//$Category "Doom 64 Retribution"
	Radius 14
	Height 58
	ProjectilePassHeight 1
	+SOLID

	States
	{
		Spawn:
			TSRD ABCDE 4
			Loop
	}
}

ACTOR 64TorchShortYellow : TechLamp2 15007
{
	//$NotAngled
	//$Category "Doom 64 Retribution"
	Radius 14
	Height 58
	ProjectilePassHeight 1
	+SOLID

	States
	{
		Spawn:
			TSYL ABCDE 4
			Loop
	}
}

ACTOR 64TorchShortGreen : TechLamp2 15008
{
	//$NotAngled
	//$Category "Doom 64 Retribution"
	Radius 14
	Height 58
	ProjectilePassHeight 1
	+SOLID

	States
	{
		Spawn:
			TSGR ABCDE 4
			Loop
	}
}



////64 DEATHMATCH EXCLUSIVE CONTENT

ACTOR 64MotherDemonOverPowered : 64MotherDemon 23013
{
	RenderStyle Shaded
	StencilColor "Blue"
	BloodColor "Blue"
	
	states
	{
	
	Spawn:
			RECT ABCD 13 BRIGHT A_Look
			Loop
		See:
			RECT A 0 A_jumpifcloser(600,"RECTABUSSY")
			RECT AAABBBCCCDDD 3 BRIGHT A_Chase
			Loop
			
		Melee:
		goto RECTABUSSY
		RECTABUSSY:
			RECT E 0 BRIGHT A_PlaySoundEx("mother/attack", "BODY")
			RECT E 0 BRIGHT A_FaceTarget
			RECT G 0 BRIGHT A_CustomMissile("64MotherFire", 0, 0, 0, 2, 0)
			RECT G 0 BRIGHT A_CustomMissile("64MotherFire", 0, 0, 45, 2, 0)
			RECT G 14 BRIGHT A_CustomMissile("64MotherFire", 0, 0, -45, 2, 0)
			RECT E 14 BRIGHT A_FaceTarget //             height, offset, angle
			RECT F 0 A_CustomMissile("64MotherBall", 160, -24,  90) // TOP LEFT
			RECT F 0 A_CustomMissile("64MotherBall",  80, -48,  90) // BOTTOM LEFT
			RECT F 0 A_CustomMissile("64MotherBall", 160,  24, -90) // TOP RIGHT
			RECT F 14 BRIGHT A_CustomMissile("64MotherBall", 80,  48, -90) // BOTTOM RIGHT
			RECT E 8 BRIGHT
			Goto See+1
		Pain:
			RECT H 11 BRIGHT A_Pain
			RECT H 11 BRIGHT
			Goto RECTABUSSY+1
		Pain.Vertigo:
			RECT H 0 ThrustThingZ(0, 5, 0, 0)
			RECT H 11 BRIGHT
			RECT H 11 BRIGHT A_Pain
			Goto See
		Death:
			RECT I 10 BRIGHT
			RECT I 0 A_Scream
			RECT I 4 BRIGHT A_SpawnItemEx("64BossExplosion", 0, 0, 0, 0, 0, 0, 0, 130)
			RECT I 4 BRIGHT A_SpawnItemEx("64BossExplosion", 0, 0, 0, 0, 0, 0, 0, 130)
			RECT I 4 BRIGHT A_SpawnItemEx("64BossExplosion", -20, -20, 55, 0, 0, 0, 0, 130)
			RECT I 4 BRIGHT A_SpawnItemEx("64BossExplosion", 20, 20, 110, 0, 0, 0, 0, 130)
			RECT I 4 BRIGHT A_SpawnItemEx("64BossExplosion", 20, 20, 0, 0, 0, 0, 0, 130)
			RECT I 4 BRIGHT A_SpawnItemEx("64BossExplosion", 0, 0, 55, 0, 0, 0, 0, 130)
			RECT I 4 BRIGHT A_SpawnItemEx("64BossExplosion", 0, 0, 110, 0, 0, 0, 0, 130)
			RECT I 4 BRIGHT A_SpawnItemEx("64BossExplosion", -20, -20, 0, 0, 0, 0, 0, 130)
			RECT I 4 BRIGHT A_SpawnItemEx("64BossExplosion", 20, 20, 55, 0, 0, 0, 0, 130)
			RECT I 4 BRIGHT A_SpawnItemEx("64BossExplosion", -20, -20, 110, 0, 0, 0, 0, 130)
			RECT I 4 BRIGHT A_SpawnItemEx("64BossExplosion", 0, 0, 0, 0, 0, 0, 0, 130)
			RECT I 4 BRIGHT A_SpawnItemEx("64BossExplosion", -20, -20, 55, 0, 0, 0, 0, 130)
			RECT I 4 BRIGHT A_SpawnItemEx("64BossExplosion", -20, -20, 110, 0, 0, 0, 0, 130)
			RECT I 4 BRIGHT A_SpawnItemEx("64BossExplosion", 20, 20, 0, 0, 0, 0, 0, 130)
			RECT I 4 BRIGHT A_SpawnItemEx("64BossExplosion", 20, 20, 55, 0, 0, 0, 0, 130)
			RECT I 4 BRIGHT A_SpawnItemEx("64BossExplosion", 0, 0, 110, 0, 0, 0, 0, 130)
			RECT I 4 BRIGHT A_SpawnItemEx("64BossExplosion", 20, 20, 0, 0, 0, 0, 0, 130)
			RECT I 4 BRIGHT A_SpawnItemEx("64BossExplosion", 0, 0, 55, 0, 0, 0, 0, 130)
			RECT I 4 BRIGHT A_SpawnItemEx("64BossExplosion", 20, 20, 110, 0, 0, 0, 0, 130)
			RECT J 4 BRIGHT A_SpawnItemEx("64BossExplosion", -20, -20, 0, 0, 0, 0, 0, 130)
			RECT J 4 BRIGHT A_SpawnItemEx("64BossExplosion", -20, -20, 55, 0, 0, 0, 0, 130)
			RECT K 4 BRIGHT A_SpawnItemEx("64BossExplosion", 20, 20, 110, 0, 0, 0, 0, 130)
			RECT K 4 BRIGHT A_SpawnItemEx("64BossExplosion", -20, -20, 0, 0, 0, 0, 0, 130)
			RECT L 0 A_NoBlocking
			RECT L 4 BRIGHT A_SpawnItemEx("64BossExplosion", 20, 20, 55, 0, 0, 0, 0, 130)
			RECT L 4 BRIGHT A_SpawnItemEx("64BossExplosion", 0, 0, 110, 0, 0, 0, 0, 130)
			RECT MNO 6 BRIGHT
			TNT1 A 30
			TNT1 A 0 A_BossDeath
			Stop
	
	}
}

//UnMaking Black Hole
ACTOR 64BlackHole : 64Motherdemon 15100
{
	//$Color 12
	//$Category "Doom 64 Retribution"
	Game Doom
	Mass 0x7FFFFFFF
	Speed 0
	Obituary "%o got consumed by the Black Hole"
	HitObituary "%o got consumed by the Black Hole"
	MONSTER
	+FLOORCLIP
	+DONTMORPH
	+NORADIUSDMG
	+MISSILEMORE
	+NOFEAR
	+BOSS
	+NOGRAVITY
	+QUICKTORETALIATE
	
	States
	{
		Spawn:
			UKIN A 13 A_Look
			Loop
		See:
			UKIN A 0 A_jumpifcloser(600,"RECTABUSSY")
			UKIN A 3 A_Chase
			Loop
			
		Melee:
		goto RECTABUSSY
		RECTABUSSY:
			UKIN A 0 A_PlaySoundEx("mother/attack", "BODY")
			UKIN A 0 A_FaceTarget
			UKIN A 0 BRIGHT A_CustomMissile("64MotherFire", 0, 0, 0, 2, 0)
			UKIN A 0 BRIGHT A_CustomMissile("64MotherFire", 0, 0, 45, 2, 0)
			UKIN A 14 BRIGHT A_CustomMissile("64MotherFire", 0, 0, -45, 2, 0)
			UKIN A 14 A_FaceTarget //             height, offset, angle
			UKIN A 0 A_CustomMissile("64MotherBall", 160, -24,  90) // TOP LEFT
			UKIN A 0 A_CustomMissile("64MotherBall",  80, -48,  90) // BOTTOM LEFT
			UKIN A 0 A_CustomMissile("64MotherBall", 160,  24, -90) // TOP RIGHT
			UKIN A 14 A_CustomMissile("64MotherBall", 80,  48, -90) // BOTTOM RIGHT
			UKIN A 8
			Goto See+1
		Pain:
			UKIN A 11 A_Pain
			UKIN A 11 
			Goto RECTABUSSY+1
		Pain.Vertigo:
			UKIN A 0 ThrustThingZ(0, 5, 0, 0)
			UKIN A 11
			UKIN A 11 A_Pain
			Goto See
		Death:
			UKIN A 10
			UKIN A 0 A_Scream
			UKIN A 4 A_SpawnItemEx("64BossExplosion", 0, 0, 0, 0, 0, 0, 0, 130)
			UKIN A 4 A_SpawnItemEx("64BossExplosion", 0, 0, 0, 0, 0, 0, 0, 130)
			UKIN A 4 A_SpawnItemEx("64BossExplosion", -20, -20, 55, 0, 0, 0, 0, 130)
			UKIN A 4 A_SpawnItemEx("64BossExplosion", 20, 20, 110, 0, 0, 0, 0, 130)
			UKIN A 4 A_SpawnItemEx("64BossExplosion", 20, 20, 0, 0, 0, 0, 0, 130)
			UKIN A 4 A_SpawnItemEx("64BossExplosion", 0, 0, 55, 0, 0, 0, 0, 130)
			UKIN A 4 A_SpawnItemEx("64BossExplosion", 0, 0, 110, 0, 0, 0, 0, 130)
			UKIN A 4 A_SpawnItemEx("64BossExplosion", -20, -20, 0, 0, 0, 0, 0, 130)
			UKIN A 4 A_SpawnItemEx("64BossExplosion", 20, 20, 55, 0, 0, 0, 0, 130)
			UKIN A 4 A_SpawnItemEx("64BossExplosion", -20, -20, 110, 0, 0, 0, 0, 130)
			UKIN A 4 A_SpawnItemEx("64BossExplosion", 0, 0, 0, 0, 0, 0, 0, 130)
			UKIN A 4 A_SpawnItemEx("64BossExplosion", -20, -20, 55, 0, 0, 0, 0, 130)
			UKIN A 4 A_SpawnItemEx("64BossExplosion", -20, -20, 110, 0, 0, 0, 0, 130)
			UKIN A 4 A_SpawnItemEx("64BossExplosion", 20, 20, 0, 0, 0, 0, 0, 130)
			UKIN A 4 A_SpawnItemEx("64BossExplosion", 20, 20, 55, 0, 0, 0, 0, 130)
			UKIN A 4 A_SpawnItemEx("64BossExplosion", 0, 0, 110, 0, 0, 0, 0, 130)
			UKIN A 4 A_SpawnItemEx("64BossExplosion", 20, 20, 0, 0, 0, 0, 0, 130)
			UKIN A 4 A_SpawnItemEx("64BossExplosion", 0, 0, 55, 0, 0, 0, 0, 130)
			UKIN A 4 A_SpawnItemEx("64BossExplosion", 20, 20, 110, 0, 0, 0, 0, 130)
			UKIN A 4 A_SpawnItemEx("64BossExplosion", -20, -20, 0, 0, 0, 0, 0, 130)
			UKIN A 4 A_SpawnItemEx("64BossExplosion", -20, -20, 55, 0, 0, 0, 0, 130)
			UKIN A 4 A_SpawnItemEx("64BossExplosion", 20, 20, 110, 0, 0, 0, 0, 130)
			UKIN A 4 A_SpawnItemEx("64BossExplosion", -20, -20, 0, 0, 0, 0, 0, 130)
			UKIN A 0 A_NoBlocking
			UKIN A 4 A_SpawnItemEx("64BossExplosion", 20, 20, 55, 0, 0, 0, 0, 130)
			UKIN A 4 A_SpawnItemEx("64BossExplosion", 0, 0, 110, 0, 0, 0, 0, 130)
			UKIN A 6
			TNT1 A 30
			TNT1 A 0 A_BossDeath
			Stop

	}
}

/* --- Rail Gun ---------------------------------- */

ACTOR 64Railgun : Weapon 16028
{
	//$Color 14
	//$Category "Doom 64 Revolution"
    Game Doom
    SpawnID 164
    Radius 20
    Height 16
    Weapon.Selectionorder 100
    Weapon.AmmoUse 1
    Weapon.AmmoGive 2
	Weapon.SlotNumber 8
	Weapon.kickback 50
    Weapon.AmmoType "64SlugAmmo"
	AttackSound "Weapons/RailgunFire"
    Inventory.Pickupmessage "You got the Railgun!"
    Obituary "%o was sniped by %k's Railgun"
	Tag "Railgun"
	Decal "Scorch"
	+WEAPON.NOAUTOAIM
    States
	{
		Spawn:
			RAIP A -1
			Stop
		Ready:
			RLGN F 0 A_PlaySound("Weapons/RailgunIdle",6,1,1)
			RLGN F 1 A_WeaponReady
			Loop
		Deselect:
			RLGN F 0 A_StopSound(6)	
			RLGN F 0 A_Lower
			RLGN F 1 A_Lower
			Loop
		Select:
			RLGN F 0 A_Raise
			RLGN F 1 A_Raise
			Loop
		Fire:
			//RLGN G 0 BRIGHT A_FireCustomMissile("DummyProjectile3", 0, 0, 0, 0, 0, 0)
			RLGN G 4 BRIGHT A_RailAttack(175, 0, 1, "AD FF 2F", "98 FB 98", RGF_FULLBRIGHT,0,"RailGunPlasmaHit")
			RLGN G 0 BRIGHT A_Recoil(1)
			RLGN G 0 BRIGHT A_GunFlash
			RLGN G 0 BRIGHT Offset(1, 32)
			RLGN H 1 BRIGHT Offset(-1, 32)A_SetPitch(pitch-1.0)
			RLGN H 1 BRIGHT Offset(1, 32)A_SetPitch(pitch+0.6)
			RLGN H 1 BRIGHT Offset(-1, 32)
			RLGN H 1 BRIGHT A_SetPitch(pitch+0.4)
			RLGN H 0 BRIGHT A_CheckReload
			//RLGN F 0 A_PlaySound("weapons/railcharge", CHAN_BODY, 0.8, 0, ATTN_NORM)
			RLGN FEDCBA 1
			RLGN BCDEF 8
			RLGN F 0 A_ReFire
			RLGN F 0 A_PlaySound("weapons/railready", CHAN_BODY, 1, 0, ATTN_NORM)
			Goto Ready
		Flash:
			TNT1 A 2 BRIGHT A_Light2
			TNT1 A 2 BRIGHT A_Light1
			TNT1 A 2 BRIGHT A_Light0
			Goto LightDone
	}
}

ACTOR RailGunPlasmaHit : Bulletpuff
{
	+PUFFONACTORS
	+ALWAYSPUFF
	+NOBLOOD
	+BLOODSPLATTER 
    -DONTSPLASH
	+BLOODLESSIMPACT
	+EXTREMEDEATH
	renderstyle normal
	alpha 1.0
	vspeed 0
	scale 1.1
	RADIUS 16
	HEIGHT 32
	States
	{
		Spawn:
			RPXP ABCDEF 3 BRIGHT
			Stop
			Melee:
			RPXP ABCDEF 3 BRIGHT
			Stop
	}
}

ACTOR 64SlugAmmo : Ammo 2042
{
	//$Color 6
	//$NotAngled
	//$Category "Doom 64 Revolution"
	Radius 20
	Height 25
	Inventory.PickupMessage "You got the slugs!"
	Inventory.PickupSound "misc/i_pkup"
	Inventory.Icon "SLUGA0"
	Inventory.Amount 4
	Inventory.MaxAmount 40
	Ammo.BackpackAmount 2
	Ammo.BackpackMaxAmount 80
	+DONTGIB

	States
	{
		Spawn:
			SLUG A -1
			Stop
	}
}

ACTOR 64SlugAmmoBig : 64SlugAmmo 9014
{
	//$Color 6
	//$NotAngled
	//$Category "Doom 64 Revolution"
	Radius 20
	Height 25
	Inventory.PickupMessage "You got the slug pack!"
	Inventory.PickupSound "misc/i_pkup"
	Inventory.Icon "SLUGB0"
	Inventory.Amount 10
	+DONTGIB
	States
	{
		Spawn:
			SLUG B -1
			Stop
	}
}

/* --- Lightning Gun ---------------------------------- */

ACTOR 64LightningGun : Weapon 11987
{
	//$Color 14
	//$Category "Doom 64 Revolution"
	Game Doom
	Weapon.AmmoUse 1
	Weapon.AmmoGive 40
	Weapon.SlotNumber 6
	Weapon.AmmoType "Cell"
	Obituary "%o was Electrocuted by %k's Lightning Gun"
	Inventory.Pickupmessage "You picked up the Lightning Gun"
	Tag "Lightning Gun"
	Radius 20
	Height 16
	States
	{
	Ready:
		LGUM A 1 A_WeaponReady
		Loop
	Deselect:
		LGUM A 0 A_StopSound(1)
		LGUM A 0 A_Lower
		LGUM A 1 A_Lower
		Loop
	Select:
		LGUM A 0 A_Raise
		LGUM A 1 A_Raise
		Loop
	Fire:
		LGUF A 0 A_PlaySound("LGSTART", 2)
		LGUF A 0 Bright A_PlaySound("LGLOOP",1,1,1)
		LGUF A 1 BRIGHT A_RailAttack((8),0,TRUE,0,0,RGF_SILENT|RGF_NOPIERCING,0,"64LightningPuff",0,0,1000,0,5,0,"64LightningBeam")
	Hold:
		LGUF BCDE 1 BRIGHT A_RailAttack((8),0,TRUE,0,0,RGF_SILENT|RGF_NOPIERCING,0,"64LightningPuff",0,0,1000,0,5,0,"64LightningBeam")
		
		LGUR A 0 A_Refire
		LGUR A 0 A_StopSound(1)
		LGUR A 0 A_PlaySound("LGEND",1)
		LGUR ABCDE 3 BRIGHT A_WeaponReady
		Goto Ready
 	Spawn:
		LGUP A -1
		Stop
	}
}

actor 64LightningBeam
{	
	Renderstyle Add
	Scale 0.15
	Alpha 0.8
	PROJECTILE
	+RANDOMIZE
	States
	{
	Spawn:
		LGUB ABC 1 Bright A_FadeOut (0.1)
		Stop
	}
}

ACTOR 64LightningPuff : Bulletpuff
{	
	+PUFFONACTORS
	+ALWAYSPUFF
	+NOBLOOD
	+BLOODSPLATTER 
    -DONTSPLASH
	+BLOODLESSIMPACT
	+EXTREMEDEATH
	vspeed 0
	RenderStyle normal
	Alpha 1.0
	Scale 0.25
	radius 16
	height 32
	States
	{
	Spawn:
		LGXP A 3 Bright
		LGXP BCDEF 3 Bright
		Stop
		Melee:
		LGXP A 3 Bright
		LGXP BCDEF 3 Bright
		Stop
	}
}

/* --- Nail Gun ---------------------------------- */

ACTOR 64Nailgun : weapon 9907
{
	//$Color 14
	//$NotAngled
	//$Sprite NLGPA0
	//$Category "Doom 64 Revolution"
	Scale 1.3
	Radius 20
	Height 25
	Weapon.SlotNumber 4
	Weapon.AmmoUse 1
	Weapon.AmmoGive 10
	Weapon.AmmoType "64NailAmmo"
	Inventory.PickupMessage "ya got the Nailgun! 9 Inch caliber!"
	Inventory.PickupSound "misc/w_pkup"
	Obituary "$OB_NAILGUN"
	AttackSound "weapons/nailgunfire"
	Tag "Nail Gun"
	+WEAPON.AXEBLOOD
	+DONTGIB

	States
	{
		Spawn:
			NLGP A -1
			Stop
		Ready:
			NLGN A 1 A_WeaponReady
			Loop
		Deselect:
			NLGN A 0 A_Lower
			NLGN A 1 A_Lower
			Loop
		Select:
			NLGN A 0 A_Raise
			NLGN A 1 A_Raise
			Loop
		Fire:
			NLGN A 0 A_GunFlash
			NLGN A 0 A_PlaySound("weapons/nailgunfire", CHAN_AUTO, 1, 0, ATTN_NORM)
			NLGN A 0 A_FireCustomMissile("64NailShot", 0, 1, Random(3, 5), 0, 0, 0)

			NLGN BC 1 BRIGHT A_SetPitch(pitch-0.4) // TOTAL OF -0.8
			NLGN DEF 1 A_SetPitch(pitch+0.2) // TOTAL OF +0.6
			NLGN A 1 A_SetPitch(pitch+0.2) // TOTAL OF +0.2
			NLGN A 0 A_CheckReload
			NLGN A 4
			
			NLGN A 0 A_GunFlash
			NLGN A 0 A_PlaySound("weapons/nailgunfire", CHAN_AUTO, 1, 0, ATTN_NORM)
			NLGN A 0 A_FireCustomMissile("64NailShot", 0, 1, Random(-5, -3), 0, 0, 0)

			NLGN GH 1 BRIGHT A_SetPitch(pitch-0.4) // TOTAL OF -0.8
			NLGN IJK 1 A_SetPitch(pitch+0.2) // TOTAL OF +0.6
			NLGN A 1 A_SetPitch(pitch+0.2) // TOTAL OF +0.2
			NLGN A 4 
			
			NLGN A 0 A_ReFire
			Goto Ready
		Flash:
			TNT1 A 1
			Goto LightDone
	}
}

ACTOR 64NailShot
{
	Damage (5*random(1,6))
	Speed 40
	Radius 6
	Height 6
	Bouncefactor 1.0
	WallBounceFactor 1.0
	Bouncecount 5
	gravity 0.0
	+DoomBounce
	Decal "BulletChip"
	Obituary "$OB_NAILGUN"
	HitObituary "$OB_NAILGUN"
	PROJECTILE
	+FORCEXYBILLBOARD
	-BLOODLESSIMPACT
	+BLOODSPLATTER
	+NODAMAGETHRUST

	-NOGRAVITY
	seesound "nail/hitworld"
	+RANDOMIZE
	

	States
	{
		Spawn:
			DART AA 1 BRIGHT
			Loop
		Death:
			TNT1 A 0 A_SpawnItemEx("64BulletPuff", 0, 0, 0, 0, 0, 0, 0, 0, 0)
			TNT1 A 0 A_PlaySound("nail/hitworld", CHAN_BODY, 1, 0, ATTN_NORM)
			TNT1 A 1
			Stop
		XDeath:
			TNT1 A 0 A_PlaySound("nail/hitbody", CHAN_BODY, 0.8, 0, ATTN_NORM)
			TNT1 A 1
			Stop
		crash:
			TNT1 A 0 A_SpawnItemEx("64BulletPuff", 0, 0, 0, 0, 0, 0, 0, 0, 0)
			TNT1 A 0 A_PlaySound("nail/hitbody", CHAN_BODY, 1, 0, ATTN_NORM)
			TNT1 A 1
			Stop
	}
}

ACTOR 64NailAmmo : Ammo 9910
{
	//$Color 6
	//$NotAngled
	//$Category "Doom 64 Revolution"
	Radius 20
	Height 25
	Inventory.PickupMessage "$GOTNAILS"
	Inventory.PickupSound "misc/i_pkup"
	Inventory.Icon "NLBXA0"
	Inventory.Amount 20
	Inventory.MaxAmount 100
	Ammo.BackpackAmount 20
	Ammo.BackpackMaxAmount 200
	+DONTGIB

	States
	{
		Spawn:
			NLBX A -1
			Stop
	}
}

ACTOR 64NailAmmoPack : 64NailAmmo 9912
{
	//$Color 6
	//$NotAngled
	//$Category "Doom 64 Revolution"
	Radius 20
	Height 25
	Inventory.PickupMessage "$GOTNAILSBOX"
	Inventory.PickupSound "misc/i_pkup"
	Inventory.Icon "NLBXB0"
	Inventory.Amount 40
	+DONTGIB

	States
	{
		Spawn:
			NLBX B -1
			Stop
	}
}

/* --- Mancubus Arms ---------------------------------- */

actor 64MancubusArms : Weapon 12070
{
  //$Color 14
  //$Category "Doom 64 Revolution"
  Scale 1.3
  Radius 20
  Height 25
  Weapon.SelectionOrder 700
  Weapon.AmmoUse 1
  Weapon.AmmoGive 10
  Weapon.SlotNumber 5
  Weapon.AmmoType "RocketAmmo"
  Inventory.PickupMessage "You got the mancubus' arms!"
  Obituary "%o was blasted by %k's Mancubus Arms."
  AttackSound "weapons/mancubusarmsfire"
  Tag "Mancubus Arms"
  States
  {
  Ready:
    MARM A 1 A_WeaponReady
    Loop
  Deselect:
	MARM A 0 A_Lower
    MARM A 1 A_Lower
    Loop
  Select:
 	MARM A 0 A_Raise
    MARM A 1 A_Raise
    Loop
  Fire:
    TNT1 A 0 A_GunFlash
	MARM A 0 A_PlaySound("weapons/mancubusarmsfire", 1)
	MARM A 0 A_FireCustomMissile("64FatShotDoomguy", random(0,6))
	MARM A 0 A_FireCustomMissile("64FatShotDoomguy", random(-6,0))
    MERF ABCD 1 Bright
    MARM EDCB 1
	MARM A 8 // Default mancubus demon tick time = 10
    Goto Ready
  Flash:
    MARF ABC 1 Bright A_Light1
    MARF DE 1 Bright A_Light2
    Goto LightDone
  Spawn:
    MARS A -1
    Stop
  }
}

ACTOR 64FatShotDoomguy : FatShot
{
	Radius 12 // DEFAULT IS 6
	Height 24 // DEFAULT IS 8
	RenderStyle Normal
	speed 35
	Decal "Scorch"

	States
	{
		Spawn:
			MANF ABC 3 BRIGHT
			Loop
		Death:
			MANF D 6 BRIGHT
			MANF E 3 BRIGHT A_FadeOut(0.20)
			MANF F 3 BRIGHT A_FadeOut(0.20)
			MANF GHI 3 BRIGHT A_FadeOut(0.20)
			Stop
	}
}

/* --- Flamethrower ---------------------------------- */

ACTOR 64FlameThrower : DoomWeapon 9905
{
  //$Color 14
  //$Category "Doom 64 Revolution"
  Radius 20
  Height 25
  Weapon.SelectionOrder 105
  Weapon.SlotNumber 6
  Weapon.AmmoUse 1
  Weapon.AmmoGive 20
  Weapon.AmmoType "64FuelAmmo"
  Inventory.PickupMessage "You got the flamethrower!"
  Tag "Flamethrower"
  +WEAPON.NOAUTOAIM
  States
  {
  Ready:
	FLTH A 1 A_WeaponReady
  //Ready2:
    //FLTH ABCABC 3 A_WeaponReady
    Loop
  Deselect:
    FLTH A 0 A_Lower
    FLTH A 1 A_Lower
	TNT1 A 0 A_StopSound(1)
    Loop
  Select:
	TNT1 A 0 A_Playsound("Flamethrower/Ready",1,1,0)
    FLTH A 0 A_Raise
    FLTH A 1 A_Raise
    goto Select+1
  Fire:
	TNT1 A 0 A_GunFlash
	FLTH DEFG 1 BRIGHT
	FLTH H 1 BRIGHT A_PlaySound ("weapons/flamerloop", 1, 1,1)
	FLTH H 1 BRIGHT A_PlaySound("weapons/flamerfire",2)
    //FLTH H 1 A_FireCustomMissile("FlameBall",random(-5,5),1,0,0,0,random(-3.5,3.5))
  Hold:
    FLTH H 3 BRIGHT A_FireCustomMissile("FlameBall",random(-5,5),1,0,0,0,0)
	TNT1 A 0 A_GunFlash("Flash2")
	TNT1 H 0 A_ReFire
	TNT1 H 1 BRIGHT A_StopSound(1)
	FLTH IJKLMN 1 A_WeaponReady
    Goto Ready
  Flash:
    FCNF ABCDE 1 Bright A_Light1
    Goto LightDone
	Flash2:
    FLTH H 3 Bright A_Light2
    Goto LightDone
	
  Spawn:
    FLTH X -1
    Stop
	}
}

Actor FlameBall
{
	Projectile
	+NODAMAGETHRUST
	Damagetype "INCINERATOR_FLAME_DAMAGE"
	Scale 1.2
	DamageType Fire
    Obituary "%o was incinerated by %k's flamethrower."
	-RANDOMIZE
	//+ZDOOMTRANS
	Decal "Scorch"
	Speed 40
	Radius 13
	damage 5
	Height 8
	+NOBLOCKMAP
	+NOGRAVITY
	+DROPOFF
	+MISSILE
	RenderStyle add
	alpha 0.85
	States
	{
	Spawn:
		TNT1 A 0 A_Playsound("weapons/flamerburn",1,1,0)
		FLBL E 2 Bright A_SpawnItem("FlamerTrail")
		FLBL F 2 Bright A_SpawnItem("FlamerTrail")
		FLBL G 2 Bright A_SpawnItem("FlamerTrail")
		FLBL H 2 Bright A_SpawnItem("FlamerTrail")
		FLBL I 2 Bright A_SpawnItem("FlamerTrail")
		FLBL J 2 Bright A_SpawnItem("FlamerTrail")
		FLBL K 2 Bright A_SpawnItem("FlamerTrail")
		FLBL K 2 Bright A_SpawnItem("FlamerTrail")
		FLBL K 2 BRIGHT A_FadeOut(1.0)
		Stop
	Death:
		TNT1 A 0 A_Playsound("weapons/flamerburn",1,1,0)
			FLBL E 2 bright A_EXPLODE(5, 64)
			FLBL F 2 bright 
			FLBL G 2 bright
			FLBL F 2 bright A_EXPLODE(5, 64)
			FLBL E 2 bright
			FLBL F 2 bright 
			FLBL G 2 bright A_EXPLODE(5, 64)
			FLBL F 2 bright 
			FLBL E 2 bright
			FLBL F 2 bright A_EXPLODE(5, 64)
			FLBL G 2 bright A_Playsound("weapons/flamerburn",1,1,0) 
			FLBL F 2 bright A_FadeOut(0.1)
			FLBL E 2 bright A_EXPLODE(5, 64)
			FLBL F 2 bright A_FadeOut(0.1)
			FLBL G 2 bright A_FadeOut(0.1)
			FLBL F 2 bright A_EXPLODE(5, 64)
			FLBL E 2 bright A_FadeOut(0.1)
			FLBL G 2 bright A_FadeOut(0.1)
			FLBL H 2 bright A_FadeOut(0.1)
			FLBL I 2 bright
			FLBL JK 2 bright 
			stop
		
	}
}

Actor FlamerTrail
{
	Projectile
    Radius 13
    Height 9
    Speed 30
    RenderStyle Add
    Alpha 0.85
	Damage 0
	scale 0.35
	States
	{
	Spawn:
		FLBL EFG 2 Bright
		Goto Death
	Death:
		FLBL HIJKKK 2 A_FadeOut(0.3)
		Loop
	}
}

ACTOR 64FuelAmmo : Ammo 9911
{
	//$Color 6
	//$NotAngled
	//$Category "Doom 64 Revolution"
	Radius 20
	Height 25
	Inventory.PickupMessage "$GOTFUEL"
	Inventory.Icon "FUELA0"
	Inventory.Amount 10 
	Inventory.MaxAmount 150
	Ammo.BackpackAmount 10
	Ammo.BackpackMaxAmount 300
	+DONTGIB

	States
	{
		Spawn:
			FUEL A -1
			Stop
	}
}

ACTOR 64FuelAmmoBIG : 64FuelAmmo 9915
{
	//$Color 6
	//$NotAngled
	//$Category "Doom 64 Revolution"
	Radius 20
	Height 25
	Inventory.PickupMessage "$GOTFUEL"
	Inventory.Icon "FUELA0"
	Inventory.Amount 50
	+DONTGIB

	States
	{
		Spawn:
			FUEL B -1
			Stop
	}
}

/* --- Grenade Launcher ---------------------------------- */

ACTOR 64GLauncher : DoomWeapon 9935
{
//$Color 14
//$Category "Doom 64 Revolution"
Radius 20
Height 25
Weapon.AmmoType "RocketAmmo"
Weapon.AmmoUse 1
Weapon.AmmoGive 2
Weapon.SlotNumber 5
Inventory.PickupMessage "You got a Grenade Launcher!"
Obituary "%o was blown to gibs by %k's grenades"
//Scale 0.85
Tag "Grenade Launcher"
States
{
Select:
GRLG A 0 A_Raise
GRLG A 1 A_Raise
Loop
Deselect:
GRLG A 0 A_Lower
GRLG A 1 A_Lower
Loop
Ready:
GRLG A 1 A_WeaponReady
Loop
Fire:
TNT1 A 0 A_GunFlash
GRLG A 0 A_Recoil(1)
TNT1 A 0 A_PlaySound("weapons/grenlf", CHAN_AUTO)
GRLG B 2 A_FireCustomMissile("64Grenade", 0, true, 0, 0, 0, 6.328125)
GRLG C 2
GRLG D 2
GRLG EF 2
GRLG G 3
GRLG H 2
GRLG A 8
Goto Ready
Flash:
GRLF A 2 Bright A_Light1
GRLF B 2 BRight A_Light1
GRLF C 2 Bright A_Light2
GRLF DE 2 Bright A_Light0
Goto LightDone
Spawn:
GRLP A -1
Stop
}
}

Actor 64Grenade
{
  Radius 3
  Height 8
  Speed 40
  Damage (20*random(1,7))
  PROJECTILE
  +DoomBounce
  +EXPLODEONWATER
  -NoGravity
  BounceFactor 0.6
  WallBounceFactor 0.6
  BounceCount 18
  Gravity 1.0
  SeeSound "weapons/grbnce"
  Deathsound "weapons/grenlx"
  States
  {
  Spawn:
	//SGRN
    GREN A 0 A_CountDown
    GREN AAAABBBBCCCCDDDD 1 BRIGHT A_CustomMissile("GrenadePuff", 3, 0, 0, 1)
    Loop
  Death:
    MISL B 0 Bright A_NoGravity
    MISL B 0 Bright A_SetTranslucent(0.5, 1)
    MISL B 4 Bright A_Explode(100, 146, 1)
    MISL CDEF 4 Bright A_FadeOut(0.1)
    Stop
  }
}

Actor GrenadePuff : BulletPuff
{
  +ClientSideOnly
  States
  {
  Spawn:
    PUFF ABCD 4
    Stop
  }
}

/* --- Hell Cannon ---------------------------------- */

ACTOR "64HellCannon" : Weapon 9906
{
  //$Color 14
  //$Category "Doom 64 Revolution"
  Radius 20
  Height 25
  obituary "%o was ended by %k's Shockmaker."
  //attacksound "weapons/hellcannon"
  inventory.pickupmessage "got the Shockmaker! get unreal with this engine!"
  Weapon.SlotNumber 8

  weapon.ammotype "Cell"
  weapon.ammouse 6
  weapon.ammogive 40
  weapon.ammotype2 "Cell"
  weapon.ammouse2 12
  decal DImpScorch1
  
  Tag "Shockmaker"
  states
  {
  Select:
    //HLCN A 0 A_PlayWeaponSound("shock/select")
    HLCN A 0 A_Raise
	HLCN A 1 A_Raise
    Loop
  Deselect:
	HLCN A 0 A_StopSound(6)
    HLCN A 0 A_Lower
    HLCN A 1 A_Lower
    Loop
  Ready:
	HLCN A 0 A_PlaySound("Weapons/ShockmakerIDLE",6,1,1)
    HLCN A 1 A_WeaponReady
    Loop
  Fire:
    HLCN A 0 A_GunFlash
	
    //HLCN B 0 BRIGHT A_FireBullets(0.0, 0.0, 1, 1, "ShockRiflePuff",1,8192)
    HLCN B 0 BRIGHT A_RailAttack(50,0,TRUE,"none","none",RGF_NOPIERCING | RGF_SILENT,0,"ShockRiflePuff")
	HLCN A 0 A_PlaySound("weapons/ShockmakerFire1", CHAN_WEAPON, 1, 0, ATTN_NORM)
    HLCN B 0 BRIGHT A_FireCustomMissile("ShockRifleTrail",0,0,2,4,0)
    HLCN B 2 BRIGHT A_SetPitch(pitch-1.0)
	HLCN C 1 A_SetPitch(pitch+0.6)
	HLCN C 1 A_SetPitch(pitch+0.4)
	TNT1 A 0 A_CheckReload
	HLCN DE 2
	
	HLCN ACDEACDEA 1
    HLCN A 0 A_Refire
	HLCN CDEA 2 A_WeaponReady
	HLCN CDEA 3 A_WeaponReady
    goto Ready
  AltFire:
    HLCN A 0 A_GunFlash
	HLCN A 0 A_PlaySound("weapons/ShockmakerFire2", CHAN_WEAPON, 1, 0, ATTN_NORM)
    HLCN B 2 BRIGHT A_FireCustomMissile("ShockRifleBall",0,1,2,4,0)
    HLCN E 1 A_SetPitch(pitch-1.0)
	HLCN E 1 A_SetPitch(pitch+0.6)
	HLCN E 1 A_SetPitch(pitch+0.4)
	TNT1 A 0 A_CheckReload
    HLCN DC 3
    HLCN A 11 A_WeaponReady(WRF_NOSECONDARY)
    HLCN A 0 A_Refire
    goto Ready
  Flash:
    TNT1 A 2 bright A_Light2
    TNT1 A 2 bright A_Light1
    TNT1 A 0 bright A_Light0
    stop
  Spawn:
    HLCP A -1
    stop
  }
}

actor ShockRiflePuff : Bulletpuff
{
  renderstyle Add
  alpha 0.9
  +PUFFONACTORS
  +ALWAYSPUFF
  +NOBLOOD
	+BLOODSPLATTER 
    -DONTSPLASH
	+BLOODLESSIMPACT
	+EXTREMEDEATH
	+PIERCEARMOR
	RADIUS 16
	HEIGHT 32
VSPEED 0
	AttackSound "Shockball/explode"
	SeeSound "Shockball/explode"
  scale 0.6
  DamageType "ShockRifle"
  states
  {
  Spawn:
    SHK3 A 0 A_SpawnItemEx("ShockRifleRing", 0, 0, 0, 0, 0, 0, 0, 128, 0)
    SHK3 ABCDEFGHIJKL 1 bright
    stop
  }
}

actor ShockRifleRing
{
  RenderStyle Add
  alpha 0.9
  +RANDOMIZE
  +NOCLIP
  +NOGRAVITY
  Scale 0.4
  states
  {
  Spawn:
    SHK4 ABCDEFG 1 bright
    stop
  }
}

actor ShockRifleDamage
{
  renderstyle None
  +NOBLOCKMAP
  +NOGRAVITY
  -ALLOWPARTICLES
  +PUFFONACTORS
  +ALWAYSPUFF
  +NOBLOOD
	+BLOODSPLATTER 
    -DONTSPLASH
	+BLOODLESSIMPACT
	+EXTREMEDEATH
  DamageType "ShockRifle"
  states
  {
  Spawn:
    TNT1 A 0
    stop
  }
}

actor ShockRifleTrail : fastprojectile
{
  radius 13
  height 8
  speed 250
  damage 0
	+BLOODSPLATTER 
    -DONTSPLASH
	+BLOODLESSIMPACT
	+EXTREMEDEATH
  renderstyle Add
  alpha 0.9
  PROJECTILE
  states
  {
  Spawn:
    
			TNT1 A 0 A_SpawnItemEx("ShockRifleTrailEffect", (3*velx)/-35.0,  -(3*vely)/-35.0,  2+(3*velz)/-35.0,  0,0,0, 0, SXF_ABSOLUTEANGLE)
			TNT1 A 0 A_SpawnItemEx("ShockRifleTrailEffect", (3.5*velx)/-35.0,  -(3.5*vely)/-35.0,  2+(3.5*velz)/-35.0,  0,0,0, 0, SXF_ABSOLUTEANGLE)

			TNT1 A 0 A_SpawnItemEx("ShockRifleTrailEffect", (4*velx)/-35.0,  -(4*vely)/-35.0,  2+(4*velz)/-35.0,  0,0,0, 0, SXF_ABSOLUTEANGLE)
			TNT1 A 0 A_SpawnItemEx("ShockRifleTrailEffect", (4.5*velx)/-35.0,  -(4.5*vely)/-35.0,  2+(4.5*velz)/-35.0,  0,0,0, 0, SXF_ABSOLUTEANGLE)

			TNT1 A 0 A_SpawnItemEx("ShockRifleTrailEffect", (5*velx)/-35.0,  -(5*vely)/-35.0,  2+(5*velz)/-35.0,  0,0,0, 0, SXF_ABSOLUTEANGLE)
			TNT1 A 0 A_SpawnItemEx("ShockRifleTrailEffect", (5.5*velx)/-35.0,  -(5.5*vely)/-35.0,  2+(5.5*velz)/-35.0,  0,0,0, 0, SXF_ABSOLUTEANGLE)

			TNT1 A 0 A_SpawnItemEx("ShockRifleTrailEffect", (6*velx)/-35.0,  -(6*vely)/-35.0,  2+(6*velz)/-35.0,  0,0,0, 0, SXF_ABSOLUTEANGLE)
			TNT1 A 0 A_SpawnItemEx("ShockRifleTrailEffect", (6.5*velx)/-35.0,  -(6.5*vely)/-35.0,  2+(6.5*velz)/-35.0,  0,0,0, 0, SXF_ABSOLUTEANGLE)

			TNT1 A 0 A_SpawnItemEx("ShockRifleTrailEffect", (7*velx)/-35.0,  -(7*vely)/-35.0,  2+(7*velz)/-35.0,  0,0,0, 0, SXF_ABSOLUTEANGLE)
			TNT1 A 0 A_SpawnItemEx("ShockRifleTrailEffect", (7.5*velx)/-35.0,  -(7.5*vely)/-35.0,  2+(7.5*velz)/-35.0,  0,0,0, 0, SXF_ABSOLUTEANGLE)

			TNT1 A 0 A_SpawnItemEx("ShockRifleTrailEffect", (8*velx)/-35.0,  -(8*vely)/-35.0,  2+(8*velz)/-35.0,  0,0,0, 0, SXF_ABSOLUTEANGLE)
			TNT1 A 0 A_SpawnItemEx("ShockRifleTrailEffect", (8.5*velx)/-35.0,  -(8.5*vely)/-35.0,  2+(8.5*velz)/-35.0,  0,0,0, 0, SXF_ABSOLUTEANGLE)

			TNT1 A 0 A_SpawnItemEx("ShockRifleTrailEffect", (9*velx)/-35.0,  -(9*vely)/-35.0,  2+(9*velz)/-35.0,  0,0,0, 0, SXF_ABSOLUTEANGLE)
			TNT1 A 0 A_SpawnItemEx("ShockRifleTrailEffect", (9.5*velx)/-35.0,  -(9.5*vely)/-35.0,  2+(9.5*velz)/-35.0,  0,0,0, 0, SXF_ABSOLUTEANGLE)

			TNT1 A 0 A_SpawnItemEx("ShockRifleTrailEffect", (10*velx)/-35.0, -(10*vely)/-35.0, 2+(10*velz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
			TNT1 A 0 A_SpawnItemEx("ShockRifleTrailEffect", (10.5*velx)/-35.0, -(10.5*vely)/-35.0, 2+(10.5*velz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)

			TNT1 A 0 A_SpawnItemEx("ShockRifleTrailEffect", (11*velx)/-35.0, -(11*vely)/-35.0, 2+(11*velz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
			TNT1 A 0 A_SpawnItemEx("ShockRifleTrailEffect", (11.5*velx)/-35.0, -(11.5*vely)/-35.0, 2+(11.5*velz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)

			TNT1 A 0 A_SpawnItemEx("ShockRifleTrailEffect", (12*velx)/-35.0, -(12*vely)/-35.0, 2+(12*velz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
			TNT1 A 0 A_SpawnItemEx("ShockRifleTrailEffect", (12.5*velx)/-35.0, -(12.5*vely)/-35.0, 2+(12.5*velz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)

			TNT1 A 0 A_SpawnItemEx("ShockRifleTrailEffect", (13*velx)/-35.0, -(13*vely)/-35.0, 2+(13*velz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
			TNT1 A 0 A_SpawnItemEx("ShockRifleTrailEffect", (13.5*velx)/-35.0, -(13.5*vely)/-35.0, 2+(13.5*velz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)

			TNT1 A 0 A_SpawnItemEx("ShockRifleTrailEffect", (14*velx)/-35.0, -(14*vely)/-35.0, 2+(14*velz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
			TNT1 A 0 A_SpawnItemEx("ShockRifleTrailEffect", (14.5*velx)/-35.0, -(14.5*vely)/-35.0, 2+(14.5*velz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)

			TNT1 A 0 A_SpawnItemEx("ShockRifleTrailEffect", (15*velx)/-35.0, -(15*vely)/-35.0, 2+(15*velz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
			TNT1 A 0 A_SpawnItemEx("ShockRifleTrailEffect", (15.5*velx)/-35.0, -(15.5*vely)/-35.0, 2+(15.5*velz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)

			TNT1 A 0 A_SpawnItemEx("ShockRifleTrailEffect", (16*velx)/-35.0, -(16*vely)/-35.0, 2+(16*velz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
			TNT1 A 0 A_SpawnItemEx("ShockRifleTrailEffect", (16.5*velx)/-35.0, -(16.5*vely)/-35.0, 2+(16.5*velz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)

			TNT1 A 0 A_SpawnItemEx("ShockRifleTrailEffect", (17*velx)/-35.0, -(17*vely)/-35.0, 2+(17*velz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
			TNT1 A 0 A_SpawnItemEx("ShockRifleTrailEffect", (17.5*velx)/-35.0, -(17.5*vely)/-35.0, 2+(17.5*velz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)

			TNT1 A 0 A_SpawnItemEx("ShockRifleTrailEffect", (18*velx)/-35.0, -(18*vely)/-35.0, 2+(18*velz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
			TNT1 A 0 A_SpawnItemEx("ShockRifleTrailEffect", (18.5*velx)/-35.0, -(18.5*vely)/-35.0, 2+(18.5*velz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)

			TNT1 A 0 A_SpawnItemEx("ShockRifleTrailEffect", (19*velx)/-35.0, -(19*vely)/-35.0, 2+(19*velz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
			TNT1 A 0 A_SpawnItemEx("ShockRifleTrailEffect", (19.5*velx)/-35.0, -(19.5*vely)/-35.0, 2+(19.5*velz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)

			TNT1 A 0 A_SpawnItemEx("ShockRifleTrailEffect", (20*velx)/-35.0, -(20*vely)/-35.0, 2+(20*velz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
			TNT1 A 0 A_SpawnItemEx("ShockRifleTrailEffect", (20.5*velx)/-35.0, -(20.5*vely)/-35.0, 2+(20.5*velz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)

			TNT1 A 0 A_SpawnItemEx("ShockRifleTrailEffect", (21*velx)/-35.0, -(21*vely)/-35.0, 2+(21*velz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
			TNT1 A 0 A_SpawnItemEx("ShockRifleTrailEffect", (21.5*velx)/-35.0, -(21.5*vely)/-35.0, 2+(21.5*velz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)

			TNT1 A 0 A_SpawnItemEx("ShockRifleTrailEffect", (22*velx)/-35.0, -(22*vely)/-35.0, 2+(22*velz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
			TNT1 A 0 A_SpawnItemEx("ShockRifleTrailEffect", (22.5*velx)/-35.0, -(22.5*vely)/-35.0, 2+(22.5*velz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)

			TNT1 A 0 A_SpawnItemEx("ShockRifleTrailEffect", (23*velx)/-35.0, -(23*vely)/-35.0, 2+(23*velz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
			TNT1 A 0 A_SpawnItemEx("ShockRifleTrailEffect", (23.5*velx)/-35.0, -(23.5*vely)/-35.0, 2+(23.5*velz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)

			TNT1 A 0 A_SpawnItemEx("ShockRifleTrailEffect", (24*velx)/-35.0, -(24*vely)/-35.0, 2+(24*velz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
			TNT1 A 0 A_SpawnItemEx("ShockRifleTrailEffect", (24.5*velx)/-35.0, -(24.5*vely)/-35.0, 2+(24.5*velz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)

			TNT1 A 0 A_SpawnItemEx("ShockRifleTrailEffect", (25*velx)/-35.0, -(25*vely)/-35.0, 2+(25*velz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
			TNT1 A 0 A_SpawnItemEx("ShockRifleTrailEffect", (25.5*velx)/-35.0, -(25.5*vely)/-35.0, 2+(25.5*velz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)

			TNT1 A 0 A_SpawnItemEx("ShockRifleTrailEffect", (26*velx)/-35.0, -(26*vely)/-35.0, 2+(26*velz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
			TNT1 A 0 A_SpawnItemEx("ShockRifleTrailEffect", (26.5*velx)/-35.0, -(26.5*vely)/-35.0, 2+(26.5*velz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)

			TNT1 A 0 A_SpawnItemEx("ShockRifleTrailEffect", (27*velx)/-35.0, -(27*vely)/-35.0, 2+(27*velz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
			TNT1 A 0 A_SpawnItemEx("ShockRifleTrailEffect", (27.5*velx)/-35.0, -(27.5*vely)/-35.0, 2+(27.5*velz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)

			TNT1 A 0 A_SpawnItemEx("ShockRifleTrailEffect", (28*velx)/-35.0, -(28*vely)/-35.0, 2+(28*velz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
			TNT1 A 0 A_SpawnItemEx("ShockRifleTrailEffect", (28.5*velx)/-35.0, -(28.5*vely)/-35.0, 2+(28.5*velz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)

			TNT1 A 0 A_SpawnItemEx("ShockRifleTrailEffect", (29*velx)/-35.0, -(29*vely)/-35.0, 2+(29*velz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
			TNT1 A 0 A_SpawnItemEx("ShockRifleTrailEffect", (29.5*velx)/-35.0, -(29.5*vely)/-35.0, 2+(29.5*velz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)

			TNT1 A 0 A_SpawnItemEx("ShockRifleTrailEffect", (30*velx)/-35.0, -(30*vely)/-35.0, 2+(30*velz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
			TNT1 A 0 A_SpawnItemEx("ShockRifleTrailEffect", (30.5*velx)/-35.0, -(30.5*vely)/-35.0, 2+(30.5*velz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)

			TNT1 A 0 A_SpawnItemEx("ShockRifleTrailEffect", (31*velx)/-35.0, -(31*vely)/-35.0, 2+(31*velz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
			TNT1 A 0 A_SpawnItemEx("ShockRifleTrailEffect", (31.5*velx)/-35.0, -(31.5*vely)/-35.0, 2+(31.5*velz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)

			TNT1 A 0 A_SpawnItemEx("ShockRifleTrailEffect", (32*velx)/-35.0, -(32*vely)/-35.0, 2+(32*velz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
			TNT1 A 0 A_SpawnItemEx("ShockRifleTrailEffect", (32.5*velx)/-35.0, -(32.5*vely)/-35.0, 2+(32.5*velz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)

			TNT1 A 0 A_SpawnItemEx("ShockRifleTrailEffect", (33*velx)/-35.0, -(33*vely)/-35.0, 2+(33*velz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
			TNT1 A 0 A_SpawnItemEx("ShockRifleTrailEffect", (33.5*velx)/-35.0, -(33.5*vely)/-35.0, 2+(33.5*velz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)

			TNT1 A 0 A_SpawnItemEx("ShockRifleTrailEffect", (34*velx)/-35.0, -(34*vely)/-35.0, 2+(34*velz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
			TNT1 A 0 A_SpawnItemEx("ShockRifleTrailEffect", (34.5*velx)/-35.0, -(34.5*vely)/-35.0, 2+(34.5*velz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)

			TNT1 A 0 A_SpawnItemEx("ShockRifleTrailEffect", (35*velx)/-35.0, -(35*vely)/-35.0, 2+(35*velz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
			TNT1 A 0 A_SpawnItemEx("ShockRifleTrailEffect", (35.5*velx)/-35.0, -(35.5*vely)/-35.0, 2+(35.5*velz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)

			TNT1 A 0 A_SpawnItemEx("ShockRifleTrailEffect", (36*velx)/-35.0, -(36*vely)/-35.0, 2+(36*velz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
			TNT1 A 0 A_SpawnItemEx("ShockRifleTrailEffect", (36.5*velx)/-35.0, -(36.5*vely)/-35.0, 2+(36.5*velz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)

			TNT1 A 0 A_SpawnItemEx("ShockRifleTrailEffect", (37*velx)/-35.0, -(37*vely)/-35.0, 2+(37*velz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
			TNT1 A 0 A_SpawnItemEx("ShockRifleTrailEffect", (37.5*velx)/-35.0, -(37.5*vely)/-35.0, 2+(37.5*velz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
	TNT1 A 1
    LOOP
  Death:
    TNT1 A 1 bright
    stop
  }
}

actor ShockRifleTrailEffect
{
  RenderStyle Add
  alpha 0.9
  +NOGRAVITY
  PROJECTILE
  Scale 0.50
  states
  {
  Spawn:
    SHK2 A 2 BRIGHT
    SHK2 A 1 BRIGHT A_FadeOut(0.2)
    goto Spawn+1
  }
}

actor ShockRifleBall : fastprojectile
{
  radius 16
  height 32
  speed 35
  damage (random(1,10)*6)
  renderstyle Add
  //alpha 0.9
  //seesound "shock/alt"
  PROJECTILE
  -NOBLOCKMAP
  +NOBLOOD
  +SHOOTABLE
  +ISMONSTER
	+BLOODSPLATTER 
    -DONTSPLASH
	+BLOODLESSIMPACT
	+EXTREMEDEATH
  health 10
  gibhealth -2000
  scale 0.3
  DamageFactor "normal", 0.0
  DamageFactor "ShockRifle", 1000.0
  decal DImpScorch1
  states
  {
  Spawn:
    SHK1 ABCD 1 BRIGHT
    loop
  Death:
    SHK3 A 0 A_JumpIfHealthLower(0,"Combo")
    SHK3 A 0 A_Explode(50,92)
    SHK3 A 0 A_SpawnItemEx("ShockRiflePuff", 0, 0, 0, 0, 0, 0, 0, 0, 0)
	TNT1 A 1 A_PLaysound("Shockball/explode", CHAN_WEAPON, 1, 0, ATTN_NORM)
    stop
  Combo:
	//SHK3 A 0 A_Playsound("shock/combo", CHAN_BODY, 1, 0, ATTN_NORM)
    TNT1 A 0 A_Explode(125,250)
    SHK3 A 0 A_SpawnItemEx("ShockRiflePuffBig", 0, 0, 0, 0, 0, 0, 0, 0, 0)
    stop
  }
}

actor ShockRiflePuffBig
{
  renderstyle Add
  alpha 0.9
  +NOBLOCKMAP
  +NOGRAVITY
  -ALLOWPARTICLES
  +PUFFONACTORS
  +ALWAYSPUFF
  +NOBLOOD
	+BLOODSPLATTER 
    -DONTSPLASH
	+BLOODLESSIMPACT
	+EXTREMEDEATH
  scale 1.0
  DamageType "ShockRifle"
  states
  {
  Spawn:
    
	TNT1 A 0 A_Quake(3,15,0,400)
    SHK3 A 0 A_SpawnItemEx("ShockRifleRingBig", 0, 0, 0, 0, 0, 0, 0, 0, 0)
    SHK3 A 0 A_Playsound("shock/combo", CHAN_BODY, 1, 0, ATTN_NORM)
    SHK3 ABCDEFGHIJKL 1 bright
    stop
  }
}

actor ShockRifleRingBig
{
  RenderStyle Add
  alpha 0.9
  +NOCLIP
  +NOGRAVITY
  Scale 0.8
  states
  {
  Spawn:
    SHK4 ABCDEFG 2 bright
    stop
  }
}


/* --- Mother Demon Weapon ---------------------------------- */

actor 64MOAD : Weapon 12071
{
  //$Color 14 
  //$Category "Doom 64 Revolution"
  Radius 20
  Height 25
  Weapon.SelectionOrder 700
  Weapon.AmmoUse 1
  Weapon.AmmoGive 2
  Weapon.SlotNumber 7
  Weapon.AmmoType "64RectAmmo"
  Inventory.PickupMessage "Okay seriously, what in the flying #$%! is this?!"
  Obituary "%o was obliterated by %k's MOAD."
  Tag "MOAD"
  States
  {
  Ready:
    MOAD A 1 A_WeaponReady
    Loop
  Deselect:
	MOAD A 0 A_Lower
    MOAD A 1 A_Lower
    Loop
  Select:
 	MOAD A 0 A_Raise
    MOAD A 1 A_Raise
    Loop
  Fire:
	MOAD A 0 A_PlaySoundEx("weapons/MOADFire1", "BODY")
	MOAD A 0 Bright A_FireCustomMissile("64MotherFireMOAD", 0, 0, 0, 0)
	MOAD A 0 Bright A_FireCustomMissile("64MotherFireMOAD", 45, 0, 0, 0)
	MOAF A 2 Bright A_FireCustomMissile("64MotherFireMOAD", -45, 0, 0, 0)
	MOAF B 2
	MOAF C 2  
	MOAF D 2  
	MOAF E 2  
	MOAF F 2  
	MOAF G 2 
	MOAD A 0 A_PlaySoundEx("weapons/MOADFire2", "BODY")
	MOAD A 0 A_FireCustomMissile("64MotherBallMOAD", -4,0, 0, 0)
	MOAD A 0 A_FireCustomMissile("64MotherBallMOAD", -2,0, 0, 0)
	MOAD A 0 A_FireCustomMissile("64MotherBallMOAD", 2,0, 0, 0) 
	MOAR A 2 Bright A_FireCustomMissile("64MotherBallMOAD",4,1, 0, 0) 
	MOAF B 2  
	MOAF C 2  
	MOAF D 2  
	MOAF E 2  
	MOAF F 2  
	MOAF G 2  
	MOAD A 12
    Goto Ready
  Spawn:
    MOAS A -1
    Stop
  }
}

ACTOR 64MotherBallMOAD
{
	Speed 50
	Damage (10*random(1,8))
	RenderStyle Normal
	Decal "RevenantScorch"
	SeeSound "NULL"
	Projectile
	SeeSound "skeleton/attack"
	
	States
	{
		Spawn:
			RBAL A 0 BRIGHT
			RBAL A 2 BRIGHT A_CustomMissile("64MotherBallTrailMOAD", 0, 0, 0, 2, 0)
			RBAL B 2 BRIGHT
			Loop
		Death:
			RBAL C 5 BRIGHT A_PlaySound("tracer/shotx", CHAN_AUTO, 1, 0, ATTN_NORM)
			RBAL D 3 BRIGHT A_FadeOut(0.20)
			RBAL EFGH 3 BRIGHT A_FadeOut(0.20)
			Stop
		XDeath:
			RBAL C 5 BRIGHT A_PlaySound("tracer/shotx", CHAN_AUTO, 1, 0, ATTN_NORM)
			RBAL D 3 BRIGHT A_FadeOut(0.20)
			RBAL EFGH 3 BRIGHT A_FadeOut(0.20)
			Stop
		StopSeeking:
			RBAL A 0 BRIGHT A_CustomMissile("64MotherBallTrailMOAD", 0, 0, 0, 2, 0)
			RBAL A 2 BRIGHT
			RBAL B 0 BRIGHT A_CustomMissile("64MotherBallTrailMOAD", 0, 0, 0, 2, 0)
			RBAL B 2 BRIGHT
			Loop
	}
}

ACTOR 64MotherBallTrailMOAD : RocketSmokeTrail
{
	RenderStyle Translucent
	Alpha 0.50
	VSpeed 1

	States
	{
		Spawn:
			PUF3 ABCDE 2 BRIGHT
			Stop
	}
}

ACTOR 64MotherFireMOAD : 64MotherFire
{
	Game Doom
	Height 8
	Radius 6
	Damage (20*random(1,3))
	Speed 40
	RenderStyle Translucent
	Alpha 0.50
}


ACTOR 64RectAmmo : Ammo 9913
{
	//$Color 6
	//$NotAngled
	//$Category "Doom 64 Revolution"
	Radius 20
	Height 25
	Scale 1.4
	Inventory.PickupMessage "You got the MOAD ammo!"
	Inventory.Icon "RCAMA0"
	Inventory.Amount 2
	Inventory.MaxAmount 10 
	Ammo.BackpackAmount 1
	Ammo.BackpackMaxAmount 15
	+DONTGIB

	States
	{
		Spawn:
			RCAM A -1
			Stop
	}
}

//MARIO 64 MAP STUFF

ACTOR 64MarioTree 13324
{
	//$NotAngled
	//$Category "Doom 64 Revolution"
	Radius 8
	Height 108
	ProjectilePassHeight -16
	Scale 0.8
	+SOLID
	+USESPECIAL
	+NOGRAVITY
	States
	{
	Spawn:
		LTR3 X -1
		Stop
	}
}

ACTOR 64DeadestTree 13325
{
	//$NotAngled
	//$Category "Doom 64 Revolution"
	Radius 32
	Height 108
	ProjectilePassHeight -16
	Scale 0.8
	+SOLID
	+USESPECIAL
	States
	{
	Spawn:
		DTR3 X -1
		Stop
	}
}

ACTOR 64DeadToad 13326
{
	//$NotAngled
	//$Category "Doom 64 Revolution"
	Radius 16
	Height 56
	ProjectilePassHeight -16
	Scale 0.8
	+SOLID
	+USESPECIAL
	States
	{
	Spawn:
		TOAD X -1
		Stop
	}
}


ACTOR 64algaething 13322
{
	//$NotAngled
	//$Category "Doom 64 Revolution"
	Radius 20
	Height 4
	Scale 0.8
	+NOBLOCKMAP
	+MOVEWITHSECTOR
	States
	{
	Spawn:
		ALG3 X -1
		Stop
	}
}

ACTOR 64EvilYoshi 13333
{
	//$NotAngled
	//$Category "Doom 64 Revolution"
	Radius 16
	Height 56
	ProjectilePassHeight -16
	Scale 0.8
	+SOLID
	+USESPECIAL
	States
	{
	Spawn:
		YOSH XXYY 8
		loop
	}
}

ACTOR 64DevilStar 13335
{
	//$NotAngled
	//$Category "Doom 64 Revolution"
	Radius 16
	Height 64
	ProjectilePassHeight -16
	Scale 0.8
	-SOLID
	+USESPECIAL
	States
	{
	Spawn:
		EBIL ABCDEFGH 4 BRIGHT
		loop
	}
}

ACTOR 64DemonChomp 13336
{

	//$Category "Doom 64 Revolution"
	Health 2000
	PainChance 30
	Speed 16
	Radius 31
	Height 64
	Damage 50
	Mass 1000
	MaxTargetRange 256
	Monster
	+FLOORCLIP
	//+NOPAIN
	+SHOOTABLE
	+NOBLOOD
	+ISMONSTER
	+LOOKALLAROUND
	//+INVULNERABLE
	-COUNTKILL
	painsound "CHOPAIN"
	Obituary "%o was mauled by a Demon Chomp"
	States
	{
	Spawn:
		CHMP ABCDB 5 A_Look
		Loop
	See:
		TNT1 A 0 A_PlaySound("CHOWALK",CHAN_VOICE)
		CHMP A 2 A_Chase
		CHMP B 2
		CHMP C 2 A_Chase
		CHMP D 2 
		CHMP C 2 A_Chase
		CHMP B 2
		Loop
	Missile:
		TNT1 A 0 A_PlaySound("CHOATACK",CHAN_AUTO)
		CHMP D 5 A_FaceTarget
		CHMP D 5 A_SkullAttack(16)
		CHMP DCBA 5
		Goto See
	Pain:
		CHMP D 20 A_PAIN
		Goto See
	Death:
		CHMP D 20 A_PlaySound("CHODIE", CHAN_BODY,1.0,0,0.0)
		CHMP D 7 A_SpawnItemEx("64BossExplosion", 0, 0, 32, 0, 0, 0, 0, 130)
		CHMP D 0 A_PLAYSOUND("cyber/death",CHAN_BODY,1.0,0,0.0)
		CHMP D 0 A_FadeOut(0.1)
		CHMP D 7 A_SpawnItemEx("64BossExplosion", 0, 0, 32, 0, 0, 0, 0, 130)
		CHMP D 0 A_FadeOut(0.1)
		CHMP D 7 A_SpawnItemEx("64BossExplosion", 0, 0, 32, 0, 0, 0, 0, 130)
		CHMP D 0 A_FadeOut(0.1)
		CHMP D 7 A_SpawnItemEx("64BossExplosion", 0, 0, 32, 0, 0, 0, 0, 130)
		CHMP D 0 A_FadeOut(0.1)
		CHMP D 7 A_SpawnItemEx("64BossExplosion", 0, 0, 32, 0, 0, 0, 0, 130)
		CHMP D 0 A_FadeOut(0.1)
		CHMP D 7 A_SpawnItemEx("64BossExplosion", 0, 0, 32, 0, 0, 0, 0, 130)
		CHMP D 0 A_FadeOut(0.1)
		CHMP D 7 A_SpawnItemEx("64BossExplosion", 0, 0, 32, 0, 0, 0, 0, 130)
		CHMP D 0 A_FadeOut(0.1)
		CHMP D 7 A_SpawnItemEx("64BossExplosion", 0, 0, 32, 0, 0, 0, 0, 130)
		CHMP D 0 A_FadeOut(0.1)
		CHMP D 7 A_SpawnItemEx("64BossExplosion", 0, 0, 32, 0, 0, 0, 0, 130)
		CHMP D 0 A_FadeOut(0.1)
		CHMP D 7 A_SpawnItemEx("64BossExplosion", 0, 0, 32, 0, 0, 0, 0, 130)
		CHMP D 0 A_FadeOut(0.1)
		TNT1 A 500
		TNT1 A -1 Thing_Raise(0)
		Stop
		
		raise:
		CHMP ABCDCBABCDCBABCDCBABCDCB 1 A_FadeIn(0.1)
		CHMP A 10
		Goto See
	}
}
// hospital map props

Actor 64Chair 27001
{
	//$NotAngled
	//$Category "Doom 64 Revolution"
  +FloorClip
  +Solid
  Scale 0.8
  Height 30
  Radius 15
  States
  {
  Spawn:
    CHAI A -1
    Stop
  }
}

Actor 64bloodpack 27000
{
	//$NotAngled
	//$Category "Doom 64 Revolution"
  +SOLID
  +USESPECIAL
  Radius 16
  Height 64
  ProjectilePassHeight -16
  Scale 0.8
  States
  {
  Spawn:
    BLDP A -1
    Stop
  }
}

Actor 64Peeper 27002
{
	//$NotAngled
	//$Category "Doom 64 Revolution"
  -SOLID
  +NOBLOCKMAP
  +USESPECIAL
  +FLOATBOB
  Radius 32
  Height 32
  Scale 0.8
  States
  {
  Spawn:
    PEEP R 2
    loop
  }
}

Actor MONROK 27003
{
	//$NotAngled
	//$Category "Doom 64 Revolution"
	Xscale 1.5
	Yscale 1.2
  -SOLID
  +FLOAT
  +NOGRAVITY
  +NOBLOCKMAP
  +USESPECIAL
  +FLOATBOB
  Radius 32
  Height 32
  States
  {
  Spawn:
    MROC A -1
    stop
  }
}
//DUST PROPS
ACTOR 64PalmTree 3743
{
//$NotAngled
	//$Category "Doom 64 Revolution"
	Radius 8
	Height 85
	ProjectilePassHeight -16
	Scale 0.8
	+SOLID
	+USESPECIAL
	+NOGRAVITY
	States
	{
	Spawn:
		PALM A -1
		Stop
	}
}

ACTOR 64MainBattleTank 3744 //base green camo tank, unused in the map itself, base for future color swaps
{

	//$Category "Doom 64 Revolution"
	Radius 64
	Height 64
	Scale 0.8
	ProjectilePassHeight -16
	+SOLID
	+USESPECIAL
	States
	{
	Spawn:
		DMBT X -1
		Stop
	}
}

ACTOR 64DesertTank : 64MainBattleTank 3745
{
	//$Category "Doom 64 Revolution"
Translation "118:127=%[0.00,0.00,0.00]:[1.83,1.44,1.02]"
}

ACTOR 64SnowyTank : 64MainBattleTank 3746 //snowy tank, currently unused, resource for future maps perhaps.

{
	//$Category "Doom 64 Revolution"
Translation "118:127=%[0.00,0.00,0.00]:[1.68,1.87,1.99]"
}

ACTOR 64WolfEagle 13328
{
//$NotAngled
//$Category "Doom 64 Revolution"
	Radius 16
	Height 56
	ProjectilePassHeight -16
	+SOLID
	+USESPECIAL
	States
	{
	Spawn:
		0WLF X -1
		Stop
	}
}

ACTOR 64PlantPot 13329
{
//$NotAngled
//$Category "Doom 64 Revolution"
	Radius 16
	Height 56
	ProjectilePassHeight -16
	+SOLID
	+USESPECIAL
	States
	{
	Spawn:
		0WLF Y -1
		Stop
	}
}

ACTOR 64ArmorStand 13323
{
//$NotAngled
//$Category "Doom 64 Revolution"
	Radius 16
	Height 56
	ProjectilePassHeight -16
	+SOLID
	+USESPECIAL
	States
	{
	Spawn:
		0WLF Z -1
		Stop
	}
}

//mall props
ACTOR 64MannequinGreen1 6372
{
//$NotAngled
//$Category "Doom 64 Revolution"
	Radius 16
	Height 50
	ProjectilePassHeight -16
	+SOLID
	+USESPECIAL
	States
	{
	Spawn:
		MNQI A -1
		Stop
	}
}

ACTOR 64MannequinGreen2 : 64MannequinGreen1 6373
{
//$NotAngled
//$Category "Doom 64 Revolution"
	States
	{
	Spawn:
		MNQI B -1
		Stop
	}
}


ACTOR 64MannequinPink1 : 64MannequinGreen1 6374
{
//$NotAngled
//$Category "Doom 64 Revolution"
	States
	{
	Spawn:
		MNQI E -1
		Stop
	}
}

ACTOR 64MannequinPink2 : 64MannequinGreen1 6375
{
//$NotAngled
//$Category "Doom 64 Revolution"
	States
	{
	Spawn:
		MNQI F -1
		Stop
	}
}

ACTOR 64MannequinYellow1 : 64MannequinGreen1 6376
{
//$NotAngled
//$Category "Doom 64 Revolution"
	States
	{
	Spawn:
		MNQI C -1
		Stop
	}
}

ACTOR 64MannequinYellow2 : 64MannequinGreen1 6377
{
//$NotAngled
//$Category "Doom 64 Revolution"
	States
	{
	Spawn:
		MNQI D -1
		Stop
	}
}

//JOLLY PROPS

ACTOR 64XmasTree : 64PalmTree 13380
{
//$NotAngled
//$Category "Doom 64 Revolution"
	States
	{
	Spawn:
		XMST X -1
		Stop
	}
}

ACTOR 64Snowman : 64PalmTree 13381
{
//$NotAngled
//$Category "Doom 64 Revolution"
	Height 56
	States
	{
	Spawn:
		XMST Y -1
		Stop
	}
}

ACTOR 64Fetito : 64Peeper 13382
{
//$NotAngled
//$Category "Doom 64 Revolution"
	States
	{
	Spawn:
		CGTO X 2
		loop
	}
}
//Homecoming props
Actor 64Toilet 13383
{
	//$NotAngled
	//$Category "Doom 64 Revolution"
  +FloorClip
  +Solid
  Height 30
  Radius 15
  States
  {
  Spawn:
    TOIL X -1
    Stop
  }
}

ACTOR 64VehicleAutoGreen 13384 //credits to Yukes Von Faust for the car sprites
{

	//$Category "Doom 64 Revolution"
	Radius 64
	Height 64
	ProjectilePassHeight -16
	+SOLID
	+USESPECIAL
	States
	{
	Spawn:
		AUT0 X -1
		Stop
	}
}


ACTOR 64VehicleAutoBlack : 64VehicleAutoGreen 13385
{
Translation "112:127=%[0.00,0.00,0.00]:[0.69,0.66,0.76]"
}

ACTOR 64VehicleAutoRed : 64VehicleAutoGreen 13386
{
Translation "112:127=%[0.00,0.00,0.00]:[2.00,0.00,0.00]"
}

Actor 64Doro 13390
{
	//$NotAngled
	//$Category "Doom 64 Revolution"
  +FloorClip
  +Solid
  Height 23
  Radius 15
  Scale 0.5
  States
  {
  Spawn:
    D0RO X -1
    Stop
  }
}

Actor 64MeatmanProp1 13441
{
	//$NotAngled
	//$Category "Doom 64 Revolution"
  +FloorClip
  +Solid
  Radius 16
  Height 80
  ProjectilePassHeight 1
  States
  {
  Spawn:
    5K1N X -1
    Stop
  }
}

Actor 64MeatmanProp2 13442
{
	//$NotAngled
	//$Category "Doom 64 Revolution"
  +FloorClip
  +Solid
  Radius 16
  Height 110
  ProjectilePassHeight 1
  States
  {
  Spawn:
    5K1N Y -1
    Stop
  }
}

Actor 64BullStatue 13443
{
	//$NotAngled
	//$Category "Doom 64 Revolution"
  +FloorClip
  +Solid
  Radius 35
  Height 115
  States
  {
  Spawn:
	FBU1 ABC 3 Bright Light("LOSTSOUL")
    loop
  }
}


/* --------------------------------------------------- END OF DEFINITIONS --- */