//Ixtinded Weapons By >>>ReYalP<<< aka ManiC400
//New Weapons from Realm667 

// Advanced RayGun
actor Raygun : DoomWeapon 12634 
{
  Weapon.Kickback 100
  Weapon.SelectionOrder 99999 //1900
  Weapon.AmmoUse 1
  Weapon.AmmoUse2 1
  Weapon.AmmoGive 20
  Weapon.AmmoType "MCell"
  Weapon.AmmoType2 "MCell"
  Obituary "%o was Zapped by %k's Raygun." 
  Weapon.PreferredSkin "PistolMarine"
  +WEAPON.WIMPY_WEAPON
  +WEAPON.NOAUTOAIM //added
  //+INVENTORY.UNDROPPABLE
  Inventory.Pickupmessage "Raygun a pick upth" // 
  States
  {
  Ready:
    RAYG A 1 A_WeaponReady
    RAYG A 0 A_jumpifinventory("kicking",1,"dokick")
    Loop
  Deselect:
    RAYG A 0 A_TakeInventory ("XYZALTS",1)
	RAYG A 0 A_TakeInventory ("XYZALTX",1)
	RAYG A 0 A_TakeInventory ("XYZALTY",1)
	RAYG A 0 A_TakeInventory ("XYZALTZ",1)
	RAYG A 0 A_TakeInventory ("PM_AltfireX", 1)
	RAYG A 0 A_TakeInventory ("PM_AltfireY", 1)
	RAYG A 0 A_TakeInventory ("PM_AltfireZ", 1)
    RAYG A 1 A_Lower
	NULL AA 0 A_Lower
    Loop
Select:
    RAYG A 1 ACS_ExecuteAlways(480,0,2,0,0)
	RAYG A 0 A_PlayWeaponSound("m_gatlaser_Varient_taunt")
	RAYG A 0 A_TakeInventory ("XYZALTN",1)//Needed
	RAYG A 0 A_TakeInventory ("XYZALTD",1)
	        RAYG A 0 A_TakeInventory ("XYZALTX",1)//For
	        RAYG A 0 A_TakeInventory ("XYZALTY",1)
	        RAYG A 0 A_TakeInventory ("XYZALTZ",1)//Sloppy 
	        RAYG A 0 A_TakeInventory ("XYZALTSC",1)//Weapon
	        RAYG A 0 A_TakeInventory ("XYZALTXC",1)//Drop
	        RAYG A 0 A_TakeInventory ("XYZALTYC",1)
	        RAYG A 0 A_TakeInventory ("XYZALTZC",1)    
	        RAYG A 0 A_TakeInventory ("INVENZ",1)
			RAYG A 0 A_TakeInventory ("INVENYZ",1)
	        RAYG A 0 A_TakeInventory ("XYZALTSX",1)
			RAYG A 0 A_TakeInventory ("XYZALTSXY",1)
	        RAYG A 0 A_TakeInventory ("Vulcaninfo",1)
			RAYG A 0 A_TakeInventory ("Cooloff",1)
	RAYG A 0 A_GiveInventory ("XYZALTS",1)
Sel:
    RAYG A 0
    RAYG A 1 A_Raise
	NULL AA 0 A_Raise
    LOOP
  Fire:
    RAYG A 0 A_JumpIfInventory ("PM_AltFireX",1,"AltFireX")	
    RAYG A 0 A_JumpIfInventory ("PM_AltFireY",1,"AltFireY")
    RAYG A 0 A_JumpIfInventory ("PM_AltFireZ",1,"AltFireZ")
	RAYG A 0 A_GiveInventory ("XYZALTS",1)
    RAYG A 2
    RAYG B 2 bright A_FireCustomMissile ("RaygunShot",0,1,0,0,0,1)
    RAYG B 2 bright A_GunFlash
    RAYG CD 2 bright
    RAYG EF 2
    RAYG A 6
    RAYG A 4 A_ReFire
    Goto Ready
  AltFire:
    RAYG A 1
	RAYG B 2 bright A_FireCustomMissile ("RaygunShot",0,1,0,0,0,1)
	RAYG B 2 bright A_GunFlash
    RAYG CD 1 bright
    RAYG EF 1
	RAYG B 2 bright A_FireCustomMissile ("RaygunShot",0,1,0,0,0,1)
	RAYG B 2 bright A_GunFlash
    RAYG CD 1 bright
    RAYG EF 1
	RAYG B 2 bright A_FireCustomMissile ("RaygunShot",0,1,0,0,0,1)
	RAYG B 2 bright A_GunFlash
    RAYG CD 1 bright
	RAYG A 16 //4
	RAYG A 6 A_CheckReload
    Goto Ready
	
AltFireX:	
    RAYG A 1
    RAYG B 1 bright A_FireCustomMissile ("FastRaygunShot",0,1,0,0,0,1)
    RAYG B 0 bright A_GunFlash
    RAYG CD 1 bright
    RAYG EF 1
    RAYG A 0 A_ReFire 
	Goto Ready
	
AltFireY:	
	RAYG A 1
	RAYG B 0 bright A_FireCustomMissile ("RaygunShot",10,1,0,0,0,1)
	RAYG B 0 bright A_FireCustomMissile ("RaygunShot",0,1,0,0,0,1)
	RAYG B 0 bright A_FireCustomMissile ("RaygunShot",-10,1,0,0,0,1)
    RAYG B 0 bright A_GunFlash
    RAYG CD 2 bright
    RAYG EF 20
    RAYG A 0 A_ReFire 
	Goto Ready
	
AltFireZ:
    RAYG A 1
    RAYG B 1 bright A_FireCustomMissile ("RaygunHoming",0,1,0,0,0,1)
    RAYG B 0 bright A_GunFlash
    RAYG CD 1 bright
    RAYG EF 1
    RAYG A 1
    RAYG A 0 A_ReFire 
    Goto Ready
	
  Flash:
    TNT1 A 2 bright A_Light1
    TNT1 B 3 bright A_Light2
    TNT1 A 0 bright A_Light0
    stop
  AltFlash:
	TNT1 A 2 bright A_Light1
    TNT1 B 2 bright A_Light2
    TNT1 A 0 bright A_Light0
	Stop
  Spawn:
    RAYP A -1
    Stop
    //TNT1 A 1 Thing_Remove(0)
    //Stop
 DoKick:
	TNT1 A 0
        TNT1 A 0 //A_ZoomFactor(1.0)
	TNT1 A 0 A_jumpifinventory("PowerStrength",1,"BerserkerKick")
	TNT1 A 0 A_PlaySound("KICK")
	TNT1 A 0 SetPlayerProperty(0,1,0)
	KICK BCD 1
	RIFF A 0 A_FireCustomMissile("KickAttack", 0, 0, 0, -7)
	KICK H 4
	KICK A 0 A_Takeinventory("Kicking",1)
	KICK IGFEDCBA 1 
	TNT1 A 0 SetPlayerProperty(0,0,0)
	Goto Ready
    BerserkerKick:
	TNT1 A 0 A_PlaySound("KICK")
	TNT1 A 0 SetPlayerProperty(0,1,0)
	KICK ABCDEFG 1
	RIFF A 0 A_FireCustomMissile("SuperKickAttack", 0, 0, 0, -7)
	KICK H 3
	KICK A 0 A_Takeinventory("Kicking",1)
	KICK IGFEDCBA 1 
	TNT1 A 0 SetPlayerProperty(0,0,0)
	Goto Ready
  }
}

actor RaygunShot
{
  Radius 6
  Height 8
  Speed 30
  Damage 8
  DamageType Disintegrate
  Projectile
  SeeSound "Raygun/Fire"
  +RIPPER
  +BLOODLESSIMPACT
  +NODAMAGETHRUST
  +NOEXTREMEDEATH
  +ALWAYSPUFF
  States
  {
  Spawn:
    TNT1 A 0
    TNT1 A 1 A_SpawnItem ("RaygunTrail")
    loop
  Death:
    TNT1 A 1
    stop
  }
}

actor FastRaygunShot
{
  Radius 6
  Height 8
  Speed 100
  Damage 3
  DamageType Disintegrate
  Projectile
  SeeSound "Raygun/Fire"
  +BLOODLESSIMPACT
  +NODAMAGETHRUST
  +NOEXTREMEDEATH
  +ALWAYSPUFF
  States
  {
  Spawn:
    TNT1 A 0
    TNT1 A 1 A_SpawnItem ("RaygunTrailFast")
    loop
  Death:
    TNT1 A 1
    stop
	}
}	
	
actor RaygunHoming
{
  Radius 6
  Height 8
  Speed 10 //25
  Damage 3 //5
  Scale 0.3
  Projectile
  SeeSound "Raygun/Fire" 
  DamageType Disintegrate //added
  +SeekerMissile //added
  +SCREENSEEKER //added
  //+Rockettrail
  -NOTELEPORT //added
  +TELESTOMP //added
  +RANDOMIZE
  +DEHEXPLOSION
  +BLOODLESSIMPACT
  +NODAMAGETHRUST
  +NOEXTREMEDEATH
  +ALWAYSPUFF
  Obituary "%o was Zapped by %k's Raygun."
  Decal "MyDecal"
  BounceCount 3 //added 3.0.1
  +CANBOUNCEWATER //added 3.0.1
  +DOOMBOUNCE //added 3.0.1
  +NOBOUNCESOUND //added 3.0.1
  +NOWALLBOUNCESND //added 3.0.1
  
  States
  {
  Spawn:
    RAYL A 3 bright A_SeekerMissile(30,60,SMF_PRECISE||SMF_LOOK,256,10) //45,90 

//SMF_LOOK removed added 3.0.1
    goto Spawn
  Death:
    TNT1 A 1
    stop
  }
}	

actor RaygunTrail
{
  Radius 2
  Height 2
  Renderstyle Add
  Scale 0.6
  +NOINTERACTION
  +CLIENTSIDEONLY
  
  States
  {
  Spawn:
    RAYL A 3 bright
    TNT1 A 1 bright A_SpawnItem ("RaygunTrail2")
    stop
  }
}

actor RaygunTrail2 : RaygunTrail
{
  Scale 0.5
  +CLIENTSIDEONLY
  
  States
  {
  Spawn:
    RAYL A 3 bright
    TNT1 A 1 bright A_SpawnItem ("RaygunTrail3")
    stop
  }
}

actor RaygunTrail3 : RaygunTrail
{
  Scale 0.4
  +CLIENTSIDEONLY
  
  States
  {
  Spawn:
    RAYL A 3 bright
    TNT1 A 1 bright A_SpawnItem ("RaygunTrail4")
    stop
  }
}

actor RaygunTrail4 : RaygunTrail
{
  Scale 0.3
  +CLIENTSIDEONLY
  
  States
  {
  Spawn:
    RAYL A 3 bright
    TNT1 A 1 bright A_SpawnItem ("RaygunTrail5")
    stop
  }
}

actor RaygunTrail5 : RaygunTrail
{
  Scale 0.2
  +CLIENTSIDEONLY
  
  States
  {
  Spawn:
    RAYL A 3 bright
    TNT1 A 1 bright A_SpawnItem ("RaygunTrail6")
    stop
  }
}

actor RaygunTrail6 : RaygunTrail
{
  Scale 0.1
  +CLIENTSIDEONLY
  
  States
  {
  Spawn:
    RAYL A 3 bright
    stop
  }
}

actor RaygunTrailFast
{
  Radius 2
  Height 2
  Renderstyle Add
  Scale 0.6
  +NOINTERACTION
  +CLIENTSIDEONLY
  
  States
  {
  Spawn:
    RAYL A 3 bright
    TNT1 A 1 bright A_SpawnItem ("RaygunTrailFast2")
    stop
  }
}

actor RaygunTrailFast2 : RaygunTrailFast
{
  Scale 0.5
  +CLIENTSIDEONLY
  
  States
  {
  Spawn:
    RAYL A 3 bright
    TNT1 A 1 bright A_SpawnItem ("RaygunTrailFast3")
    stop
  }
}

actor RaygunTrailFast3 : RaygunTrailFast
{
  Scale 0.4
  +CLIENTSIDEONLY
  
  States
  {
  Spawn:
    RAYL A 3 bright
    TNT1 A 1 bright A_SpawnItem ("RaygunTrailFast4")
    stop
  }
}

actor RaygunTrailFast4 : RaygunTrailFast
{
  Scale 0.3
  +CLIENTSIDEONLY
  
  States
  {
  Spawn:
    RAYL A 3 bright
    TNT1 A 1 bright A_SpawnItem ("RaygunTrailFast5")
    stop
  }
}

actor RaygunTrailFast5 : RaygunTrailFast
{
  Scale 0.2
  +CLIENTSIDEONLY
  
  States
  {
  Spawn:
    RAYL A 3 bright
    TNT1 A 1 bright A_SpawnItem ("RaygunTrailFast6")
    stop
  }
}

actor RaygunTrailFast6 : RaygunTrailFast
{
  Scale 0.1
  +CLIENTSIDEONLY
  
  States
  {
  Spawn:
    RAYL A 3 bright
	TNT1 A 1 bright A_SpawnItem ("RaygunTrailFast7")
    stop
  }
}

actor RaygunTrailFast7 : RaygunTrailFast
{
  Scale 0.2
  +CLIENTSIDEONLY
  
  States
  {
  Spawn:
    RAYL A 3 bright
    TNT1 A 1 bright A_SpawnItem ("RaygunTrailFast8")
    stop
  }
}

actor RaygunTrailFast8 : RaygunTrailFast
{
  Scale 0.3
  +CLIENTSIDEONLY
  
  States
  {
  Spawn:
    RAYL A 3 bright
    TNT1 A 1 bright A_SpawnItem ("RaygunTrailFast9")
    stop
  }
}

actor RaygunTrailFast9 : RaygunTrailFast
{
  Scale 0.4
  +CLIENTSIDEONLY
  
  States
  {
  Spawn:
    RAYL A 3 bright
    TNT1 A 1 bright A_SpawnItem ("RaygunTrailFast10")
    stop
  }
}

actor RaygunTrailFast10 : RaygunTrailFast
{
  Scale 0.5
  +CLIENTSIDEONLY
  
  States
  {
  Spawn:
    RAYL A 3 bright
    stop
  }
}

//Galting Laser

ACTOR GatLaserVarient : Weapon 6570
{
Weapon.SelectionOrder 99999
Weapon.Kickback 400
Weapon.AmmoUse 1
Weapon.SlotNumber 9
Weapon.AmmoGive 60
Weapon.AmmoType "Mcell"
Weapon.PreferredSkin "SonicRailgunMarine"
Obituary "%o was mullered by the green fury of %k's Gat."
Inventory.PickupMessage "You got yourself a GatLaser Varient"
+WEAPON.NOAUTOAIM
	
States
	{
Spawn: 
    GATS A -1
    Stop

Ready:
    GATL A 1 A_WeaponReady
    GATL A 0 A_jumpifinventory("kicking",1,"dokick")
Loop

Select:
    GATL A 1 ACS_ExecuteAlways(480,0,92,0,0)
    GATL A 0 A_PlayWeaponSound("m_gatlaser_Varient_taunt")
	GATL A 0 A_TakeInventory ("XYZALTN",1)
	GATL A 0 A_TakeInventory ("XYZALTD",1)
	        GATL A 0 A_TakeInventory ("XYZALTX",1)//For
	        GATL A 0 A_TakeInventory ("XYZALTY",1)
	        GATL A 0 A_TakeInventory ("XYZALTZ",1)//Sloppy 
	        GATL A 0 A_TakeInventory ("XYZALTSC",1)//Weapon
	        GATL A 0 A_TakeInventory ("XYZALTXC",1)//Drop
	        GATL A 0 A_TakeInventory ("XYZALTYC",1)
	        GATL A 0 A_TakeInventory ("XYZALTZC",1)    
	        GATL A 0 A_TakeInventory ("INVENZ",1)
			GATL A 0 A_TakeInventory ("INVENYZ",1)
	        GATL A 0 A_TakeInventory ("XYZALTSX",1)
			GATL A 0 A_TakeInventory ("XYZALTSXY",1)
	        GATL A 0 A_TakeInventory ("Vulcaninfo",1)
			GATL A 0 A_TakeInventory ("Cooloff",1)
    GATL A 0 A_GiveInventory ("XYZALTS",1)
Sel:
    GATL A 0
    GATL A 1 A_Raise
    NULL AA 0 A_Raise
    Loop

Deselect:
    GATL A 0 A_TakeInventory ("XYZALTS",1)
    GATL A 0 A_TakeInventory ("XYZALTX",1)
    GATL A 0 A_TakeInventory ("XYZALTY",1)
    GATL A 0 A_TakeInventory ("XYZALTZ",1)
    GATL A 0 A_TakeInventory ("PM_AltfireX", 1)
    GATL A 0 A_TakeInventory ("PM_AltfireY", 1)
    GATL A 0 A_TakeInventory ("PM_AltfireZ", 1)
    GATL A 1 A_Lower
    NULL AA 0 A_Lower
    GATL A 0 A_StopSound(5)
    Loop

Fire:
    GATL A 0 A_JumpIfInventory ("PM_AltFireX",1,"AltFireX")	
    GATL A 0 A_JumpIfInventory ("PM_AltFireY",1,"AltFireY")
    GATL A 0 A_JumpIfInventory ("PM_AltFireZ",1,"AltFireZ")
	GATL A 0 A_GiveInventory ("XYZALTS",1)
    GATL A 0 A_PlaySound("gatcharge", CHAN_WEAPON)
    GATL DEFGHI 3
    GATL B 3 A_PlaySound("midfire", 5, 1, TRUE)
    GATL IHGFEDC 1
    GATL A 0 A_StopSound(5)
 
Hold:
    GATL A 0 A_JumpIfInventory ("PM_AltFireX",1,"AltFireX")	
    GATL A 0 A_JumpIfInventory ("PM_AltFireY",1,"AltFireY")
    GATL A 0 A_JumpIfInventory ("PM_AltFireZ",1,"AltFireZ")
    GATL F 1
    GATL I 0 A_PlaySound("gatling", CHAN_WEAPON)
    GATL I 1 A_GunFlash
    GATL J 1 A_FireCustomMissile ("Laser",0,1,0,0,0)
    GATL J 0 A_FireCustomMissile ("Laser",0,1,0,0,0)
    GATL J 0 A_FireCustomMissile ("Laser",0,1,0,0,0)
    GATL FC 1
    GATL A 0 A_ReFire("Fired")
    GATL A 0 A_StopSound(5)
    GATL A 0 A_PlaySound("endfire", 5)
    Goto Ready
		
Fired:
    GATL A 0 A_JumpIfInventory ("PM_AltFireX",1,"AltFireX")	
    GATL A 0 A_JumpIfInventory ("PM_AltFireY",1,"AltFireY")
    GATL A 0 A_JumpIfInventory ("PM_AltFireZ",1,"AltFireZ")
    GATL F 1
    GATL I 0 A_PlaySound("gatling", 6)
    GATL I 1 A_GunFlash 
    GATL J 1 A_FireCustomMissile ("Laser",0,1,0,0,0)
    GATL J 0 A_FireCustomMissile ("Laser",0,1,0,0,0)
    GATL J 0 A_FireCustomMissile ("Laser",0,1,0,0,0)
    GATL FC 1
    GATL A 0 A_ReFire("Hold")
    GATL A 0 A_StopSound(5)
    GATL A 0 A_PlaySound("endfire", 5)
    Goto Ready
		
 Altfire:
  //GATL A 0 A_JumpIfInventory("GatVAltFireXYZ_counter",999,"GatValtFireXYZOverheat")
    GATL A 0 A_PlaySound("gatcharge", CHAN_WEAPON)
    GATL DEFGHI 6
    GATL B 6 A_PlaySound("midfire", 5, 1, TRUE)
    GATL IHGFE 1

Hold1:
  //GATL A 0 A_JumpIfInventory("GatVAltFireXYZ_counter",999,"GatValtFireXYZOverheat")
    GATL DEFGHIB 1
    GATL B 0 A_PlaySound("gatling", CHAN_WEAPON)
    GATL J 2 A_GunFlash
    GATL J 0 A_FireCustomMissile ("Laser",random(3,-3),1,0,0,0,random(3,-3))
    GATL J 0 Offset (0, 36)
    GATL J 0 A_SetPitch (pitch-0.15)
    GATL I 0 A_SetPitch (pitch+0.15)
    GATL I 0 Offset (0, 33)
    GATL J 0 A_FireCustomMissile ("Laser",random(5,-5),1,0,0,0,random(5,-5))
    GATL J 0 Offset (0, 36)
    GATL J 0 A_SetPitch (pitch-0.15)
    GATL I 0 A_SetPitch (pitch+0.15)
    GATL I 0 Offset (0, 33)
    GATL J 0 A_FireCustomMissile ("Laser",random(3,-3),1,0,0,0,random(3,-3))
    GATL J 0 Offset (0, 36)
    GATL J 0 A_SetPitch (pitch-0.15)
    GATL I 0 A_SetPitch (pitch+0.15)
    GATL I 0 Offset (0, 33)
    GATL J 0 A_FireCustomMissile ("Laser",random(5,-5),1,0,0,0,random(5,-5))
    GATL J 0 Offset (0, 36)
    GATL J 0 A_SetPitch (pitch-0.15)
    GATL I 0 A_SetPitch (pitch+0.15)
    GATL I 0 Offset (0, 33)
    GATL J 0 A_FireCustomMissile ("Laser",random(3,-3),1,0,0,0,random(3,-3))
    GATL J 0 Offset (0, 36)
    GATL J 0 A_SetPitch (pitch-0.15)
    GATL I 0 A_SetPitch (pitch+0.15)
    GATL I 0 Offset (0, 33)
    GATL J 0 A_FireCustomMissile ("Laser",random(5,-5),1,0,0,0,random(5,-5))
    GATL J 0 Offset (0, 36)
    GATL J 0 A_SetPitch (pitch-0.15)
    GATL I 0 A_SetPitch (pitch+0.15)
    GATL I 0 Offset (0, 33)
    GATL J 0 A_FireCustomMissile ("Laser",random(3,-3),1,0,0,0,random(3,-3))
    GATL J 0 Offset (0, 36)
    GATL J 0 A_SetPitch (pitch-0.15)
    GATL I 0 A_SetPitch (pitch+0.15)
    GATL I 0 Offset (0, 33)
    GATL J 0 A_FireCustomMissile ("Laser",random(5,-5),1,0,0,0,random(5,-5))
    GATL J 0 Offset (0, 36)
    GATL J 0 A_SetPitch (pitch-0.15)
    GATL I 0 A_SetPitch (pitch+0.15)
    GATL I 0 Offset (0, 33)
    GATL J 0 A_FireCustomMissile ("Laser",random(3,-3),1,0,0,0,random(3,-3))
    GATL J 0 Offset (0, 36)
    GATL J 0 A_SetPitch (pitch-0.15)
    GATL I 0 A_SetPitch (pitch+0.15)
    GATL I 0 Offset (0, 33)
    GATL HGFEDC 1
  //GATL J 0 A_GiveInventory("GatVAltFireXYZ_counter", 9)
    GATL A 0 A_ReFire("Fired1")
    GATL A 0 A_StopSound(5)
    GATL A 0 A_PlaySound("endfire", 5)
    Goto Ready
		
Fired1:
  //GATL A 0 A_JumpIfInventory("GatVAltFireXYZ_counter",999,"GatValtFireXYZOverheat")
    GATL DEFGHIB 1
    GATL B 0 A_PlaySound("gatling", 6)
    GATL J 2 A_GunFlash 
    GATL J 0 A_FireCustomMissile ("Laser",random(5,-5),1,0,0,0,random(5,-5))
    GATL J 0 Offset (0, 36)
    GATL J 0 A_SetPitch (pitch-0.15)
    GATL I 0 A_SetPitch (pitch+0.15)
    GATL I 0 Offset (0, 33)
    GATL J 0 A_FireCustomMissile ("Laser",random(3,-3),1,0,0,0,random(3,-3))
    GATL J 0 Offset (0, 36)
    GATL J 0 A_SetPitch (pitch-0.15)
    GATL I 0 A_SetPitch (pitch+0.15)
    GATL I 0 Offset (0, 33)
    GATL J 0 A_FireCustomMissile ("Laser",random(5,-5),1,0,0,0,random(5,-5))
    GATL J 0 Offset (0, 36)
    GATL J 0 A_SetPitch (pitch-0.15)
    GATL I 0 A_SetPitch (pitch+0.15)
    GATL I 0 Offset (0, 33)
    GATL J 0 A_FireCustomMissile ("Laser",random(3,-3),1,0,0,0,random(3,-3))
    GATL J 0 Offset (0, 36)
    GATL J 0 A_SetPitch (pitch-0.15)
    GATL I 0 A_SetPitch (pitch+0.15)
    GATL I 0 Offset (0, 33)
    GATL J 0 A_FireCustomMissile ("Laser",random(5,-5),1,0,0,0,random(5,-5))
    GATL J 0 Offset (0, 36)
    GATL J 0 A_SetPitch (pitch-0.15)
    GATL I 0 A_SetPitch (pitch+0.15)
    GATL I 0 Offset (0, 33)
    GATL J 0 A_FireCustomMissile ("Laser",random(3,-3),1,0,0,0,random(3,-3))
    GATL J 0 Offset (0, 36)
    GATL J 0 A_SetPitch (pitch-0.15)
    GATL I 0 A_SetPitch (pitch+0.15)
    GATL I 0 Offset (0, 33)
    GATL J 0 A_FireCustomMissile ("Laser",random(5,-5),1,0,0,0,random(5,-5))
    GATL J 0 Offset (0, 36)
    GATL J 0 A_SetPitch (pitch-0.15)
    GATL I 0 A_SetPitch (pitch+0.15)
    GATL I 0 Offset (0, 33)
    GATL J 0 A_FireCustomMissile ("Laser",random(3,-3),1,0,0,0,random(3,-3))
    GATL J 0 Offset (0, 36)
    GATL J 0 A_SetPitch (pitch-0.15)
    GATL I 0 A_SetPitch (pitch+0.15)
    GATL I 0 Offset (0, 33)
    GATL J 0 A_FireCustomMissile ("Laser",random(5,5),1,0,0,0,random(5,-5))
    GATL J 0 Offset (0, 36)
    GATL J 0 A_SetPitch (pitch-0.15)
    GATL I 0 A_SetPitch (pitch+0.15)
    GATL I 0 Offset (0, 33)
    GATL HGFEDC 1
  //GATL J 0 A_GiveInventory("GatVAltFireXYZ_counter", 9)
    GATL A 0 A_ReFire("Hold1")
    GATL A 0 A_StopSound(5)
    GATL A 0 A_PlaySound("endfire", 5)
    Goto Ready

AltFireX:
  //GATL A 0 A_JumpIfInventory("GatVAltFireXYZ_counter",999,"GatValtFireXYZOverheat")
    GATL A 0 A_PlaySound("gatcharge", CHAN_WEAPON)
    GATL DEFGHI 3
    GATL B 3 A_PlaySound("midfire", 5, 1, TRUE)
    GATL IHGFEDC 1

Hold2:
  //GATL A 0 A_JumpIfInventory("GatVAltFireXYZ_counter",999,"GatValtFireXYZOverheat")
    GATL A 0 A_JumpIfInventory ("PM_AltFireY",1,"AltFireY")
    GATL A 0 A_JumpIfInventory ("PM_AltFireZ",1,"AltFireZ")
    GATL F 1
    GATL I 0 A_PlaySound("gatling", CHAN_WEAPON)
    GATL J 1 A_GunFlash
    GATL J 0 A_FireCustomMissile ("LaserFaster",random(-1,1),1,0,0,0) //2
    GATL J 0 Offset (0, 36)
    GATL J 0 A_SetPitch (pitch-0.15)
    GATL I 0 A_SetPitch (pitch+0.15)
    GATL I 0 Offset (0, 33) 
  //GATL J 0 A_GiveInventory("GatVAltFireXYZ_counter",1)   
    GATL FC 1
    GATL A 0 A_ReFire("Fired2")
    GATL A 0 A_StopSound(5)
    GATL A 0 A_PlaySound("endfire", 5)
    Goto Ready

Fired2:
  //GATL A 0 A_JumpIfInventory("GatVAltFireXYZ_counter",999,"GatValtFireXYZOverheat")
    GATL A 0 A_JumpIfInventory ("PM_AltFireY",1,"AltFireY")
    GATL A 0 A_JumpIfInventory ("PM_AltFireZ",1,"AltFireZ")
    GATL F 1
    GATL I 0 A_PlaySound("gatling", 6)	
    GATL J 1 A_GunFlash
    GATL J 0 A_FireCustomMissile ("LaserFaster",random(-1,1),1,0,0,0) //2
    GATL J 0 Offset (0, 36)
    GATL J 0 A_SetPitch (pitch-0.15)
    GATL I 0 A_SetPitch (pitch+0.15)
    GATL I 0 Offset (0, 33)
  //GATL J 0 A_GiveInventory("GatVAltFireXYZ_counter",1)
    GATL FC 1
    GATL A 0 A_ReFire("Hold2")
    GATL A 0 A_StopSound(5)
    GATL A 0 A_PlaySound("endfire", 5)
    Goto Ready

AltFireY:
  //GATL A 0 A_JumpIfInventory("GatVAltFireXYZ_counter",999,"GatValtFireXYZOverheat")
    GATL A 0 A_PlaySound("gatcharge", CHAN_WEAPON)
    GATL DEFGHI 3
    GATL B 3 A_PlaySound("midfire", 5, 1, TRUE)
    GATL IHGFE 1

Hold3:
  //GATL A 0 A_JumpIfInventory("GatVAltFireXYZ_counter",999,"GatValtFireXYZOverheat")
    GATL A 0 A_JumpIfInventory ("PM_AltFireX",1,"AltFireX")
    GATL A 0 A_JumpIfInventory ("PM_AltFireZ",1,"AltFireZ")
    GATL DEFGH 1
    GATL I 0 A_PlaySound("gatling", CHAN_WEAPON)
    GATL I 1 A_GunFlash
    GATL J 1 A_FireCustomMissile ("Laser",0,1,0,0,0)
    GATL J 0 A_FireCustomMissile ("Laser",-2,1,0,0,0)      
    GATL J 0 A_FireCustomMissile ("Laser",2,1,0,0,0)
    GATL J 0 A_FireCustomMissile ("Laser",-4,1,0,0,0) 
    GATL J 0 A_FireCustomMissile ("Laser",4,1,0,0,0)
    GATL J 0 A_FireCustomMissile ("Laser",-5,1,0,0,0)    
    GATL J 0 A_FireCustomMissile ("Laser",5,1,0,0,0)     
    GATL J 0 A_FireCustomMissile ("Laser",-8,1,0,0,0)	      
    GATL J 0 A_FireCustomMissile ("Laser",8,1,0,0,0)    
    GATL J 0 A_FireCustomMissile ("Laser",-10,1,0,0,0)
    GATL J 0 A_FireCustomMissile ("Laser",10,1,0,0,0)
  //GATL J 0 A_GiveInventory("GatVAltFireXYZ_counter",11)
    GATL IHGFEDC 1
    GATL A 0 A_ReFire("Hold3")
    GATL A 0 A_StopSound(5)
    GATL A 0 A_PlaySound("endfire", 5)
    Goto Ready

AltFireZ:
  //GATL A 0 A_JumpIfInventory("GatVAltFireXYZ_counter",999,"GatValtFireXYZOverheat")
    GATL A 0 A_PlaySound("gatcharge", CHAN_WEAPON)
    GATL DEFGHI 3
    GATL B 3 A_PlaySound("midfire", 5, 1, TRUE)
    GATL IHGFEDC 1

Hold4:
  //GATL A 0 A_JumpIfInventory("GatVAltFireXYZ_counter",999,"GatValtFireXYZOverheat")
    GATL A 0 A_JumpIfInventory ("PM_AltFireX",1,"AltFireX")	
    GATL A 0 A_JumpIfInventory ("PM_AltFireY",1,"AltFireY")
    GATL F 1
    GATL I 0 A_PlaySound("gatling", CHAN_WEAPON)	    
    GATL I 1 A_GunFlash
    GATL J 1 A_FireCustomMissile ("LaserHoming",random(-1,1),1,0,0,0) //2
  //GATL J 0 A_GiveInventory("GatVAltFireXYZ_counter",1)
    GATL FC 1
    GATL A 0 A_ReFire("Hold4")
    GATL A 0 A_StopSound(5)
    GATL A 0 A_PlaySound("endfire", 5)
    Goto Ready

Flash:
    GATT A 0 A_Jump (127, 2)
    GATT A 2 Bright A_Light1
    goto lightdone
    GATT B 2 Bright A_Light1
    goto lightdone

//GatVAltFireXYZOverheat:
        //GATL A 0 A_JumpIfInventory ("GatVAltFireXYZMess",1,2)
		//GATL A 3 A_Print("Gatlaser Varient Altfires overheat (999 rounds), cooldown")
		//GATL A 0 A_GiveInventory("GatVAltFireXYZMess",1)
		//GATL A 0 A_TakeInventory("PM_AltFireX",1)
		//GATL A 0 A_TakeInventory("PM_AltFireY",1)
		//GATL A 0 A_TakeInventory("PM_AltFireZ",1)
		//Goto Ready
	
		
DoKick:
TNT1 A 0
TNT1 A 0 //A_ZoomFactor(1.0)
TNT1 A 0 A_jumpifinventory("PowerStrength",1,"BerserkerKick")
TNT1 A 0 A_PlaySound("KICK")
TNT1 A 0 SetPlayerProperty(0,1,0)
KICK BCD 1
RIFF A 0 A_FireCustomMissile("KickAttack", 0, 0, 0, -7)
KICK H 4
KICK A 0 A_Takeinventory("Kicking",1)
KICK IGFEDCBA 1 
TNT1 A 0 SetPlayerProperty(0,0,0)
Goto Ready
BerserkerKick:
TNT1 A 0 A_PlaySound("KICK")
TNT1 A 0 SetPlayerProperty(0,1,0)
KICK ABCDEFG 1
RIFF A 0 A_FireCustomMissile("SuperKickAttack", 0, 0, 0, -7)
KICK H 3
KICK A 0 A_Takeinventory("Kicking",1)
KICK IGFEDCBA 1 
TNT1 A 0 SetPlayerProperty(0,0,0)
Goto Ready
		    
	}
}

ACTOR Laser
{
	Radius 13
	Height 8
	Speed 100
	Scale 0.45
	Damage (10*random(1,5))
	Projectile
	+RANDOMIZE
	+ALWAYSPUFF
	RenderStyle Add
	DamageType "MarineDamage"
	Alpha 0.85
	DeathSound "weapons/plasmax"
	Obituary "$OB_MPPLASMARIFLE"
	Decal "MyDecal"
	States
	{
	Spawn:
		LSER A 1 Bright
		Loop
	Death:
		LAZR ABCDE 4 Bright
		Stop
	}
}

ACTOR LaserFaster
{
	Radius 13
	Height 8
	Speed 150
	scale 0.45
	Damage (10*random(1,5))
	Projectile
	+RANDOMIZE
	+ALWAYSPUFF
	RenderStyle Add
	DamageType "MarineDamage"
	Alpha 0.85
	DeathSound "weapons/plasmax"
	Obituary "$OB_MPPLASMARIFLE"
	Decal "MyDecal"
	States
	{
	Spawn:
		LSER A 1 Bright
		Loop
	Death:
		LAZR ABCDE 4 Bright
		Stop
	}
}

actor LaserHoming
{
  Radius 13
  Height 8
  Speed 50 //25
  Damage 10 //5
  Scale 0.45
  Projectile
  DeathSound "weapons/plasmax"
  ExplosionDamage 6
  ExplosionRadius 24 
  +SeekerMissile //added
  +SCREENSEEKER //added
  //+Rockettrail
  DamageType "MarineDamage" //added
  -NOTELEPORT //added
  +TELESTOMP //added
  +RANDOMIZE
  +DEHEXPLOSION
  +ALWAYSPUFF
  Obituary "$OB_MPPLASMARIFLE" // "%o was melted by %k's plasma gun."
  RenderStyle Add
  Alpha 0.75
  Decal "MyDecal"
  
  BounceCount 3 //added 3.0.1
  +CANBOUNCEWATER //added 3.0.1
  +DOOMBOUNCE //added 3.0.1
  +NOBOUNCESOUND //added 3.0.1
  +NOWALLBOUNCESND //added 3.0.1
  
  States
  {
  Spawn:
    LSER A 1 Bright A_SeekerMissile(30,60,SMF_PRECISE||SMF_LOOK,256,10) //45,90 

//SMF_LOOK removed added 3.0.1
    goto Spawn
  Death:
    LAZR ABCDE 4 Bright A_Explode(6,24)
    Stop
  }
}

actor GatRailPuff : MBulletPuff
{
 DamageType "MarineRail"
 -NOEXTREMEDEATH
 +ALWAYSPUFF
}

//ElectroGun

actor ElectroGun : Weapon
{
  Weapon.PreferredSkin "PlsmMarine"
  Weapon.AmmoType "MCell"
  Weapon.AmmoType2 "MCell"
  Weapon.AmmoUse2 1
  Weapon.SelectionOrder 99999 
  Weapon.SlotNumber 9
  Inventory.PickupMessage "You got the electro gun!"
+WEAPON.NOAUTOAIM

  States
  {
  Ready:
    ETRG A 1 A_WeaponReady
    ETRG A 0 A_jumpifinventory("kicking",1,"dokick")
    Loop

Select:
    ETRG A 1 ACS_ExecuteAlways(480,0,9,0,0)
    ETRG A 0 A_PlayWeaponSound("m_gatlaser_Varient_taunt")
	ETRG A 0 A_TakeInventory ("XYZALTS",1)
	ETRG A 0 A_TakeInventory ("XYZALTD",1)
	        ETRG A 0 A_TakeInventory ("XYZALTX",1)//For
	        ETRG A 0 A_TakeInventory ("XYZALTY",1)
	        ETRG A 0 A_TakeInventory ("XYZALTZ",1)//Sloppy 
	        ETRG A 0 A_TakeInventory ("XYZALTSC",1)//Weapon
	        ETRG A 0 A_TakeInventory ("XYZALTXC",1)//Drop
	        ETRG A 0 A_TakeInventory ("XYZALTYC",1)
	        ETRG A 0 A_TakeInventory ("XYZALTZC",1)    
	        ETRG A 0 A_TakeInventory ("INVENZ",1)
			ETRG A 0 A_TakeInventory ("INVENYZ",1)
	        ETRG A 0 A_TakeInventory ("XYZALTSX",1)
			ETRG A 0 A_TakeInventory ("XYZALTSXY",1)
	        ETRG A 0 A_TakeInventory ("Vulcaninfo",1)
			ETRG A 0 A_TakeInventory ("Cooloff",1)
	ETRG A 0 A_GiveInventory ("XYZALTN",1)
sel:
    ETRG A 0
    ETRG A 1 A_Raise
	NULL AA 0 A_Raise
    Loop

  Deselect:
    ETRG A 0 A_TakeInventory("XYZALTN",1)
    ETRG A 0 A_TakeInventory ("PM_AltfireX", 1)
    ETRG A 0 A_TakeInventory ("PM_AltfireY", 1)
    ETRG A 0 A_TakeInventory ("PM_AltfireZ", 1)
    ETRG A 1 A_Lower
	NULL AA 0 A_Lower
    Loop
 
   Fire:
    ETRG B 0 A_PlayWeaponSound("electrogun/charge")
    ETRG A 3 A_GunFlash 
    ETRF A 3 A_FireCustomMissile("ElectroBlasted",-2,1,0,-3,0,2)
    ETRF A 3 A_FireCustomMissile("ElectroBlasted",-2,1,0,-3,0,2)
    ETRG B 20 A_ReFire
    Goto Ready

Altfire:
ETRG B 0 A_PlayWeaponSound("electrogun/charge")
ETRF A 6 A_GunFlash
ETRF A 1 A_FireCustomMissile ("ElectroBlast",-2,1,0,-3,0,2)
ETRF A 0 A_FireCustomMissile ("ElectroBlast",-17,1,0,-3,0,2)    
ETRF A 0 A_FireCustomMissile ("ElectroBlast",13,1,0,-3,0,2)     
ETRG B 40 A_ReFire
Goto Ready

DoKick:
	TNT1 A 0
        TNT1 A 0 A_ZoomFactor(1.0)
	TNT1 A 0 A_jumpifinventory("PowerStrength",1,"BerserkerKick")
	TNT1 A 0 A_PlaySound("KICK")
	TNT1 A 0 SetPlayerProperty(0,1,0)
	KICK BCD 1
	RIFF A 0 A_FireCustomMissile("KickAttack", 0, 0, 0, -7)
	KICK H 4
	KICK A 0 A_Takeinventory("Kicking",1)
	KICK IGFEDCBA 1
	TNT1 A 0 SetPlayerProperty(0,0,0)
	Goto Ready
    BerserkerKick:
	TNT1 A 0 A_PlaySound("KICK")
	TNT1 A 0 SetPlayerProperty(0,1,0)
	KICK ABCDEFG 1
	RIFF A 0 A_FireCustomMissile("SuperKickAttack", 0, 0, 0, -7)
	KICK H 3
	KICK A 0 A_Takeinventory("Kicking",1)
	KICK IGFEDCBA 1 
	TNT1 A 0 SetPlayerProperty(0,0,0)
	Goto Ready
	

Altflash:
ETRF A 3 Bright A_Light1
    ETRF B 3 Bright A_Light1
    ETRF C 3 Bright A_Light1
ETRF A 2 Bright A_Light1
    ETRF B 2 Bright A_Light1
    ETRF C 2 Bright A_Light1
ETRF A 1 Bright A_Light1
    ETRF B 1 Bright A_Light1
    ETRF C 1 Bright A_Light1
Goto LightDone


  Flash:
    ETRF A 3 Bright A_Light1
    ETRF B 3 Bright A_Light1
    ETRF C 3 Bright A_Light1
    Goto LightDone

  Spawn:
    ETRO A -1
    Stop
  }
}

actor ElectroBlast
{
  Radius 13
  Height 8
  Speed 10
  Damage 6
  Projectile
  DamageType Disintegrate
  Scale .75
  +RANDOMIZE
  +BLOODLESSIMPACT
  +NOEXTREMEDEATH
  +ALWAYSPUFF
  RenderStyle Add
  Alpha 0.75
  SeeSound "electrogun/shoot"
  DeathSound "electrogun/hit"
  Obituary "%o was shocked by %k's electro gun."
  States
  {
  Spawn:
    EBLT GH 0 bright A_SpawnItem("ElectroBlastTrail")
    EBLT GH 2 bright A_BishopMissileWeave
    loop
  Death:
    EBLT IJK 3 bright
    stop
  }
}

actor ElectroBlasted
{
  Radius 13
  Height 8
  Speed 30
  Damage 18
  Projectile
  DamageType Disintegrate
  Scale .75
  +RANDOMIZE
  +BLOODLESSIMPACT
  +NOEXTREMEDEATH
  +ALWAYSPUFF
  RenderStyle Add
  Alpha 0.75
  SeeSound "electrogun/shoot"
  DeathSound "electrogun/hit"
  Obituary "%o was shocked by %k's electro gun."
  States
  {
  Spawn:
    EBLT GH 0 bright A_SpawnItem("ElectroBlastTrail")
    EBLT GH 2 bright A_BishopMissileWeave
    loop
  Death:
    EBLT IJK 3 bright
    stop
  }
}

actor ElectroBlastTrail
{
  Radius 13
  Height 8
  Speed 20
  Damage 0
  Projectile
  +RANDOMIZE
  +CLIENTSIDEONLY
  RenderStyle Add
  Alpha 0.75
  States
  {
  Spawn:
    EBLT ABC 3 bright A_BishopMissileWeave
    goto death
  Death:
    EBLT DEF 4 bright A_FadeOut(0.5)
    loop
  }
}

//SawThrower

ACTOR SawThrower : Weapon
{
   Weapon.SelectionOrder 99999
   Inventory.PickupSound "weapons/slot7weapon2"
   Inventory.PickupMessage "You got the Saw Thrower!"
   Obituary "%o was gutted by %k's saw."
   AttackSound "weapons/throwsawcut"
   Weapon.PreferredSkin "ChainSawMarine"
   Weapon.AmmoType1 "Saws"
   Weapon.AmmoType2 "Saws"
   Weapon.AmmoGive 6
   Weapon.AmmoUse1 1
   Weapon.AmmoUse2 1
   Scale 0.9
   +WEAPON.NOAUTOAIM
   States
   {
   Spawn:
      THRS A -1
      Stop
   Ready:
	  TSWG G 0 A_JumpIfInventory("Saws",1,2)
      TSWG G 0 A_jumpifinventory("kicking",1,"dokick")
	  TSWG A 1 A_WeaponReady
      Goto Ready+1
      TSWG A 0 A_jumpifinventory("kicking",1,"dokick")
	  TSWG A 1 A_WeaponReady
      Goto Ready+2
   Deselect:
      TSWG G 0 A_JumpIfInventory("Saws",1,2)
	  TSWG G 0 A_TakeInventory ("XYZALTS",1)
      TSWG G 0 A_TakeInventory ("XYZALTX",1)
      TSWG G 0 A_TakeInventory ("XYZALTY",1)
      TSWG G 0 A_TakeInventory ("XYZALTZ",1)
      TSWG G 0 A_TakeInventory ("PM_AltfireX", 1)
      TSWG G 0 A_TakeInventory ("PM_AltfireY", 1)
      TSWG G 0 A_TakeInventory ("PM_AltfireZ", 1)
      TSWG G 1 A_Lower
	  NULL G 0 A_Lower
      Goto Deselect+1
      TSWG A 1 A_Lower
	  NULL A 0 A_Lower
      Goto Deselect+2
   Select:
       TSWG G 1 ACS_ExecuteAlways(480,0,14,0,0) 
	   TSWG G 0 A_PlayWeaponSound("m_gatlaser_Varient_taunt")
	   TSWG G 0 A_TakeInventory ("XYZALTN",1)
	   TSWG G 0 A_TakeInventory ("XYZALTD",1)
	        TSWG G 0 A_TakeInventory ("XYZALTX",1)//For
	        TSWG G 0 A_TakeInventory ("XYZALTY",1)
	        TSWG G 0 A_TakeInventory ("XYZALTZ",1)//Sloppy 
	        TSWG G 0 A_TakeInventory ("XYZALTSC",1)//Weapon
	        TSWG G 0 A_TakeInventory ("XYZALTXC",1)//Drop
	        TSWG G 0 A_TakeInventory ("XYZALTYC",1)
	        TSWG G 0 A_TakeInventory ("XYZALTZC",1)    
	        TSWG G 0 A_TakeInventory ("INVENZ",1)
			TSWG G 0 A_TakeInventory ("INVENYZ",1)
	        TSWG G 0 A_TakeInventory ("XYZALTSX",1)
			TSWG G 0 A_TakeInventory ("XYZALTSXY",1)
	        TSWG G 0 A_TakeInventory ("Vulcaninfo",1)
			TSWG G 0 A_TakeInventory ("Cooloff",1)
	        TSWG G 0 A_GiveInventory ("XYZALTS",1)
   Sel:
      TSWG G 0 A_JumpIfInventory("Saws",1,2)
      TSWG G 1 A_Raise
	  NULL G 0 A_Raise
      Goto Select+1
      TSWG A 1 A_Raise
	  NULL A 0 A_Raise
      Goto Select+2
   Fire:
      TSWG D 0 A_JumpIfInventory ("PM_AltFireX",1,"AltFireX")
      TSWG D 0 A_JumpIfInventory ("PM_AltFireY",1,"AltFireY")
	  TSWG D 0 A_JumpIfInventory ("PM_AltFireZ",1,"AltFireZ")
	  TSWG D 0 A_GiveInventory ("XYZALTS",1)
      TSWG D 0 A_PlayWeaponSound("weapons/throwsawlaunch")
      TSWG D 0 A_Recoil(1.5)
      TSWG D 4 A_FireCustomMissile("SawShot",0,1,0,3)
      TSWG D 5 A_Recoil(-1.5)
      TSWG D 0 A_JumpIfNoAmmo(5)
      TSWG E 4
      TSWG F 3
      TSWG A 3
      TSWG A 0 A_ReFire
      Goto Ready
      TSWG G 7
      TSWG G 0 A_CheckReload
      Goto Ready+2
   AltFire:
      TSWG A 0 A_JumpIfNoAmmo(7)
      TSWG A 8 A_PlayWeaponSound("weapons/throwsawup")
      TSWG B 6
      TSWG C 3
      TSWG BB 1 A_CustomPunch(1,0,0,"BulletPuff",48)
      TSWG C 0 A_ReFire
      Goto AltHold+6
      TSWG G 7
      TSWG G 0 A_CheckReload
      Goto Ready+2
   AltHold:
      TSWG B 0 A_PlayWeaponSound("weapons/throwsawready")
      TSWG BB 1 A_CustomPunch(2,0,0,"BulletPuff",48)
      TSWG CC 1 A_CustomPunch(2,0,0,"BulletPuff",48)
      TSWG C 0 A_ReFire
      TSWG B 0 A_PlayWeaponSound("weapons/throwsawready")
      TSWG CBC 2
      TSWG BCB 3
      TSWG CB 4
      TSWG C 6
      TSWG A 9
      Goto Ready
	  
	AltFireX: 
      TSWG D 0 A_PlayWeaponSound("weapons/throwsawlaunch")
      TSWG D 0 A_Recoil(1.5)
	  TSWG D 2
	  TSWG D 0 A_FireCustomMissile("SawShot",9,1,0,3)
      TSWG D 0 A_FireCustomMissile("SawShot",6,1,0,3)
	  TSWG D 0 A_FireCustomMissile("SawShot",0,1,0,3)
	  TSWG D 0 A_FireCustomMissile("SawShot",-6,1,0,3)
	  TSWG D 0 A_FireCustomMissile("SawShot",-9,1,0,3)
      TSWG D 5 A_Recoil(-1.5)
      TSWG D 0 A_JumpIfNoAmmo(5)
      TSWG E 4
      TSWG F 3
      TSWG A 3
      TSWG A 0 A_ReFire 
      Goto Ready
      TSWG G 7
      TSWG G 0 A_CheckReload
      Goto Ready+2 
	  
    AltFireY: 
      TSWG D 0 A_PlayWeaponSound("weapons/throwsawlaunch")
      TSWG D 0 A_Recoil(1.5)
      TSWG D 1 A_FireCustomMissile("SpeedSawShot",0,1,0,3)
      TSWG D 3 A_Recoil(-1.5)
      TSWG D 0 A_JumpIfNoAmmo(5)
      TSWG E 3
      TSWG F 2
      TSWG A 2
      TSWG A 0 A_ReFire 
      Goto Ready
      TSWG G 7
      TSWG G 0 A_CheckReload
      Goto Ready+2
	  
    AltFireZ:
      TSWG D 0 A_PlayWeaponSound("weapons/throwsawlaunch")
      TSWG D 0 A_Recoil(1.5)
      TSWG D 4 A_FireCustomMissile("SawHoming",0,1,0,3)
      TSWG D 5 A_Recoil(-1.5)
      TSWG D 0 A_JumpIfNoAmmo(5)
      TSWG E 4
      TSWG F 3
      TSWG A 3
      TSWG A 0 A_ReFire 
      Goto Ready
      TSWG G 7
      TSWG G 0 A_CheckReload
      Goto Ready+2

DoKick:
	TNT1 A 0
        TNT1 A 0 //A_ZoomFactor(1.0)
	TNT1 A 0 A_jumpifinventory("PowerStrength",1,"BerserkerKick")
	TNT1 A 0 A_PlaySound("KICK")
	TNT1 A 0 SetPlayerProperty(0,1,0)
	KICK BCD 1
	RIFF A 0 A_FireCustomMissile("KickAttack", 0, 0, 0, -7)
	KICK H 4
	KICK A 0 A_Takeinventory("Kicking",1)
	KICK IGFEDCBA 1 
	TNT1 A 0 SetPlayerProperty(0,0,0)
	Goto Ready
    BerserkerKick:
	TNT1 A 0 A_PlaySound("KICK")
	TNT1 A 0 SetPlayerProperty(0,1,0)
	KICK ABCDEFG 1
	RIFF A 0 A_FireCustomMissile("SuperKickAttack", 0, 0, 0, -7)
	KICK H 3
	KICK A 0 A_Takeinventory("Kicking",1)
	KICK IGFEDCBA 1 
	TNT1 A 0 SetPlayerProperty(0,0,0)
	Goto Ready
	
   }
}

ACTOR SawShot
{
   Radius 4
   Height 2 
   Speed 30
   Scale 0.3
   Damage 9
   +NOGRAVITY
   +DROPOFF
   +MISSILE
   +ACTIVATEIMPACT
   +ACTIVATEPCROSS
   +SEEKERMISSILE
   +RIPPER
   +EXTREMEDEATH
   +NOEXPLODEFLOOR
   +THRUGHOST
   ExplosionDamage 16
   ExplosionRadius 8
   DeathSound "weapons/throwsawhit"
   DamageType SawShot
   States
   {
   Spawn:
      SAWS AABBCCDDEEFFGGHHAABBCCDDEEFFGGHHAABBCCDDEEFFGGHHAABBCCDDEEFFGGHH 2 A_SeekerMissile(90,90)
      SAWS A 0 A_Gravity
      SAWS AABBCCDDEEFFGGHH 2 A_SeekerMissile(90,90)
      Goto Spawn+66
	  
	  Crash:
      SAWE A 1 A_ChangeFlag("RIPPER",0)
   
   Death:
      SAWE A 1 A_Gravity
      SAWE A 128 A_CustomMissile("SawSmoke",0,0,180,2)
      SAWE B 96
      SAWE C 64
      SAWE DEF 48
      SAWE F 32
      SAWE G 16
      Stop
   }
}

ACTOR SpeedSawShot
{
   Radius 4
   Height 2 
   Speed 80
   Scale 0.3
   Damage 5
   +NOGRAVITY
   +DROPOFF
   +MISSILE
   +ACTIVATEIMPACT
   +ACTIVATEPCROSS
   +SEEKERMISSILE
   +RIPPER
   +EXTREMEDEATH
   +NOEXPLODEFLOOR
   +THRUGHOST
   ExplosionDamage 8
   ExplosionRadius 4
   DeathSound "weapons/throwsawhit"
   DamageType SawShot
   States
   {
   Spawn:
      SAWS AABBCCDDEEFFGGHHAABBCCDDEEFFGGHHAABBCCDDEEFFGGHHAABBCCDDEEFFGGHH 2 A_SeekerMissile(90,90)
      SAWS A 0 A_Gravity
      SAWS AABBCCDDEEFFGGHH 2 A_SeekerMissile(90,90)
      Goto Spawn+66
   Crash:
      SAWE A 1 A_ChangeFlag("RIPPER",0)
   Death:
      SAWE A 1 A_Gravity
      SAWE A 128 A_CustomMissile("SawSmoke",0,0,180,2)
      SAWE B 96
      SAWE C 64
      SAWE DEF 48
      SAWE F 32
      SAWE G 16
      Stop
   }
}

actor SawHoming
{
  Radius 4
  Height 2
  Speed 30 //25
  Damage 8 //5
  Scale 0.3
  Projectile
  DeathSound "weapons/throwsawhit"
  BounceSound "weapons/throwsawhit"
  WallBounceSound "weapons/throwsawhit"
  ExplosionDamage 12
  ExplosionRadius 8 
  DamageType SawShot //added
  Obituary "%o was gutted by %k's saw."
  BounceCount 6 
  +SeekerMissile //added
  +SCREENSEEKER //added
  -NOTELEPORT //added
  +TELESTOMP //added
  +RANDOMIZE
  +DEHEXPLOSION
  +EXTREMEDEATH
  +CANBOUNCEWATER //added 3.0.1
  +DOOMBOUNCE //added 3.0.1
  States
  {
  Spawn:
    SAWS AABBCCDDEEFFGGHHAABBCCDDEEFFGGHHAABBCCDDEEFFGGHHAABBCCDDEEFFGGHH 2 A_SeekerMissile(30,60,SMF_PRECISE||SMF_LOOK,256,10) //45,90 
    SAWS A 0 A_Gravity
      SAWS AABBCCDDEEFFGGHH 2 A_SeekerMissile(30,60,SMF_PRECISE||SMF_LOOK,256,10)
      Goto Spawn+66
  Crash:
      SAWE A 1 A_ChangeFlag("RIPPER",0)
  Death:
      SAWE ABCDEFG 16 A_Gravity
      Stop
  }
}


ACTOR SawSmoke
{
   Height 1
   Radius 1
   Speed 1
   +NOBLOCKMAP
   +NOGRAVITY
   +DROPOFF
   +MISSILE
   +NOTELEPORT
   +THRUGHOST
   +CLIENTSIDEONLY
   RenderStyle Translucent
   Alpha 0.15
   Scale 0.1
   States
   {
   Spawn:
      CSM2 D 2 Bright
   Death:

      CSM2 EEFFGGHHIIJJKK 1 Bright A_FadeOut(0.01)
      Stop
   }
}

//MegaBlast

Actor MegaBlast :Weapon
{
  Weapon.SelectionOrder 99999
  Weapon.AmmoUse 1
  Weapon.AmmoGive 300
  Weapon.AmmoType "Mcell"
  Inventory.PickupMessage "You got the MegaBlast!"
  Weapon.PreferredSkin "PlsmMarine"
  Obituary "%o was MegaBlasted by %k"
  +WEAPON.NOAUTOAIM
  States
  {
  Spawn:
    STPP A -1
    Loop
  Ready:
    STPO A 0 ACS_Execute(3043,0)
	STPO A 0 ACS_Execute(3044,0)
    STPO A 0 A_JumpifInventory("MegaCool",1,4)
	STPO A 0 A_JumpifInventory("MaltCool",1,3)
    STPO A 0 A_TakeInventory("Cooloff",1)
	STPO A 0 A_GiveInventory("XYZALTN",1)
    STPO A 0 A_jumpifinventory("kicking",1,"dokick")	
    STPO AAABBBCCC 1 Bright A_WeaponReady
    Loop
	
	Select:
    STPO E 1 ACS_ExecuteAlways(480,0,73,0,0)
	STPO E 0 ACS_Execute(3043,0)
	STPO E 0 ACS_Execute(3044,0)
    STPO E 0 A_JumpifInventory("MegaGot",1,3)
    STPO E 0 A_GiveInVentory("MegaGot",1)
    STPO E 0 A_GiveInventory("MegaPrimary_counter",100)
	STPO E 0 A_JumpifInventory("MAltGot",1,3)
    STPO E 0 A_GiveInVentory("MAltGot",1)
    STPO E 0 A_GiveInventory("MegaAlt_counter",200)
    STPO E 0 A_PlayWeaponSound("m_Mega_taunt")
	STPO E 0 A_TakeInventory ("XYZALTS",1)
	STPO E 0 A_TakeInventory ("XYZALTD",1)
	        STPO E 0 A_TakeInventory ("XYZALTX",1)//For
	        STPO E 0 A_TakeInventory ("XYZALTY",1)
	        STPO E 0 A_TakeInventory ("XYZALTZ",1)//Sloppy 
	        STPO E 0 A_TakeInventory ("XYZALTSC",1)//Weapon
	        STPO E 0 A_TakeInventory ("XYZALTXC",1)//Drop
	        STPO E 0 A_TakeInventory ("XYZALTYC",1)
	        STPO E 0 A_TakeInventory ("XYZALTZC",1)    
	        STPO E 0 A_TakeInventory ("INVENZ",1)
			STPO E 0 A_TakeInventory ("INVENYZ",1)
	        STPO E 0 A_TakeInventory ("XYZALTSX",1)
			STPO E 0 A_TakeInventory ("XYZALTSXY",1)
	        STPO E 0 A_TakeInventory ("Vulcaninfo",1)
			STPO E 0 A_TakeInventory ("Cooloff",1)
			STPO E 0 A_GiveInventory("XYZALTN",1)
  Sel:
    STPO E 0
    STPO E 1 A_Raise
	NULL EE 0 A_Raise
    Loop
	
  Deselect:
    STPO E 0 A_TakeInventory("XYZALTN",1)
    STPO E 0 A_TakeInventory("Cooloff",1)
    STPO E 0 A_TakeInventory ("PM_AltfireX", 1)
    STPO E 0 A_TakeInventory ("PM_AltfireY", 1)
    STPO E 0 A_TakeInventory ("PM_AltfireZ", 1)
    STPO E 1 A_Lower
	NULL EE 0 A_Lower 
    Loop
  
  Fire:
    STPO F 0 ACS_Execute(3043,0)
    STPO F 0 A_JumpIfInventory("MegaCool",1,"MegaPrimaryOverheat")
    STPO F 0 A_TakeInventory("Cooloff",1)
	STPO F 0 A_GiveInventory("XYZALTN",1)
    STPO F 0 Bright A_GunFlash
    STPO F 1 Bright A_FireCustomMissile("StunnerBall", 0, 1, 0, 0)
    STPO F 0 Bright A_RailAttack(random(40,60)*5, 0, 1, "none", "purple", 0, 0, "Megarailpuff")
    STPO GH 2 Bright
    STPO E 2
    STPO E 0 A_TakeInventory("MegaPrimary_counter",1)
    STPO D 1 A_ReFire
    Goto Ready
 AltFire:
   STPO F 0 ACS_Execute(3044,0)
   STPO F 0 A_JumpIfInventory("MaltCool",1,"MegaAltOverheat")
   STPO F 0 A_TakeInventory("Cooloff",1)
   STPO F 0 A_GiveInventory("XYZALTN",1)
   STPO F 0 Bright A_GunFlash
   STPO F 1 A_FireCustomMissile ("MegaHoming",random(-1,1),1,0,0,0) //2
   STPO F 0 bright A_RailAttack(random(16,20)*5, 0, 1, "none", "purple", 0, 0, "MegaRailPuff")
   STPO GH 2 Bright
   STPO E 1
   STPO E 0 A_TakeInventory("MegaAlt_counter",1)
   STPO D 1 A_ReFire
   Goto Ready
   
 MegaPrimaryOverheat:
   STPO E 0 A_TakeInventory("XYZALTN",1)
   STPO E 3 A_GiveInventory("Cooloff",1)
   Goto Ready
 MegaAltOverheat:
   STPO E 0 A_TakeInventory("XYZALTN",1)
   STPO E 3 A_GiveInventory("Cooloff",1)
   Goto Ready
 
   
   DoKick:
TNT1 A 0
TNT1 A 0 //A_ZoomFactor(1.0)
TNT1 A 0 A_jumpifinventory("PowerStrength",1,"BerserkerKick")
TNT1 A 0 A_PlaySound("KICK")
TNT1 A 0 SetPlayerProperty(0,1,0)
KICK BCD 1
RIFF A 0 A_FireCustomMissile("KickAttack", 0, 0, 0, -7)
KICK H 4
KICK A 0 A_Takeinventory("Kicking",1)
KICK IGFEDCBA 1 
TNT1 A 0 SetPlayerProperty(0,0,0)
Goto Ready
BerserkerKick:
TNT1 A 0 A_PlaySound("KICK")
TNT1 A 0 SetPlayerProperty(0,1,0)
KICK ABCDEFG 1
RIFF A 0 A_FireCustomMissile("SuperKickAttack", 0, 0, 0, -7)
KICK H 3
KICK A 0 A_Takeinventory("Kicking",1)
KICK IGFEDCBA 1 
TNT1 A 0 SetPlayerProperty(0,0,0)
Goto Ready
		 
  Flash:
    TNT1 A 1 A_Light1
    TNT1 A 1 A_Light2
    TNT1 A 1 A_Light1
    TNT1 A 1 A_Light0
    Stop
  }
}


Actor StunnerBall
{
  Radius 6
  Height 8
  Speed 50
  Scale 0.85
  Damagetype "MarineDamage"
  Damage 30
  Decal StunnerScorch
  RenderStyle Add
  SeeSound "Weapons/StunnerFire"
  DeathSound "Weapons/StunnerHit"
  Translation "192:207=250:254"
  Projectile
  +Ripper
  states
  {
  Spawn:
    STPR A 1 Bright A_SpawnItemEx("StunnerBallFX", 0, 0, 0, 0, 0, 0, 0, 128)
    Loop
  Death:
    BAZR ABCDE 4 Bright
    Stop
  }
}

Actor StunnerBallFX
{
  +NoBlockMap
  +NoGravity
  +CLIENTSIDEONLY
  Scale 0.85
  RenderStyle Add
  Radius 1
  Height 2
  States
  {
  Spawn:
    STPR A 1 bright A_FadeOut(0.1)
    Loop
  }
}

actor MegaHoming
{
  Radius 13
  Height 8
  Speed 50 //25
  Damage 10 //5
  Scale 0.85
  Projectile
  DeathSound "weapons/plasmax"
  ExplosionDamage 6
  ExplosionRadius 24 
  +SeekerMissile //added
  +SCREENSEEKER //added
  //+Rockettrail
  DamageType "MarineDamage" //added
  Translation "192:207=250:254"
  -NOTELEPORT //added
  +TELESTOMP //added
  +RANDOMIZE
  +DEHEXPLOSION
  +ALWAYSPUFF
  Obituary "$OB_MPPLASMARIFLE" // "%o was melted by %k's plasma gun."
  RenderStyle Add
  Alpha 0.75
  Decal StunnerScorch
  
  BounceCount 3 //added 3.0.1
  +CANBOUNCEWATER //added 3.0.1
  +DOOMBOUNCE //added 3.0.1
  +NOBOUNCESOUND //added 3.0.1
  +NOWALLBOUNCESND //added 3.0.1
  
  States
  {
  Spawn:
    STPR A 1 Bright A_SeekerMissile(30,60,SMF_PRECISE||SMF_LOOK,256,10) //45,90 

//SMF_LOOK removed added 3.0.1
    goto Spawn
  Death:
    BAZR ABCDE 4 Bright A_Explode(6,24)
    Stop
  }
}

actor MegaRailPuff : MBulletPuff
{
 DamageType "MarineRail"
 -NOEXTREMEDEATH
 +ALWAYSPUFF
}

//TeslaCannon

actor TeslaCannon : weapon
{
inventory.pickupmessage "you found the TeslaCannon!!!"
radius 20
height 16
weapon.selectionorder 99999
weapon.kickback 100
Weapon.PreferredSkin "RLMarine"
Obituary "%o was gutted by %k's Tesla."
weapon.ammotype1 "Bolts"
weapon.ammotype2 "Bolts"
weapon.ammouse1 1
weapon.ammouse2 10
weapon.ammogive 100
attacksound "TSLAFIR"
+WEAPON.NOAUTOAIM
states
{
Spawn:
TSLC A -1
Loop

Ready:
     EGUN AAABBBCCCDDDEEE 1 A_WeaponReady
     EGUN A 0 A_jumpifinventory("kicking",1,"dokick")
     loop

Select:
     EGUN A 1 ACS_ExecuteAlways(480,0,52,0,0)
     EGUN A 0 A_PlayWeaponSound("m_gatlaser_Varient_taunt")
	 EGUN A 0 A_TakeInventory ("XYZALTN",1)
	 EGUN A 0 A_TakeInventory ("XYZALTD",1)
	        EGUN A 0 A_TakeInventory ("XYZALTX",1)//For
	        EGUN A 0 A_TakeInventory ("XYZALTY",1)
	        EGUN A 0 A_TakeInventory ("XYZALTZ",1)//Sloppy 
	        EGUN A 0 A_TakeInventory ("XYZALTSC",1)//Weapon
	        EGUN A 0 A_TakeInventory ("XYZALTXC",1)//Drop
	        EGUN A 0 A_TakeInventory ("XYZALTYC",1)
	        EGUN A 0 A_TakeInventory ("XYZALTZC",1)    
	        EGUN A 0 A_TakeInventory ("INVENZ",1)
			EGUN A 0 A_TakeInventory ("INVENYZ",1)
	        EGUN A 0 A_TakeInventory ("XYZALTSX",1)
			EGUN A 0 A_TakeInventory ("XYZALTSXY",1)
	        EGUN A 0 A_TakeInventory ("Vulcaninfo",1)
			EGUN A 0 A_TakeInventory ("Cooloff",1)
	 EGUN A 0 A_GiveInventory ("XYZALTS",1)
     Sel:
     EGUN A 1 A_RAISE
     NULL AA 0 A_RAISE
     loop

Deselect:
     EGUN A 0 A_TakeInventory ("XYZALTS",1)
     EGUN A 0 A_TakeInventory ("XYZALTX",1)
     EGUN A 0 A_TakeInventory ("XYZALTY",1)
     EGUN A 0 A_TakeInventory ("XYZALTZ",1)
     EGUN A 0 A_TakeInventory ("PM_AltfireX", 1)
     EGUN A 0 A_TakeInventory ("PM_AltfireY", 1)
     EGUN A 0 A_TakeInventory ("PM_AltfireZ", 1)
     EGUN A 1 A_LOWER
     NULL AA 0 A_LOWER
     Loop

Fire:
    //EGUN A 0 A_JumpIfInventory("TeslaPrimary_counter",5000,"TeslaPrimaryOverheat")
    EGUN A 0 A_JumpIfInventory ("PM_AltFireX",1,"AltFireX")	
    EGUN A 0 A_JumpIfInventory ("PM_AltFireY",1,"AltFireY")
    EGUN A 0 A_JumpIfInventory ("PM_AltFireZ",1,"AltFireZ")
	EGUN A 0 A_GiveInventory ("XYZALTS",1)
    NULL A 0 A_PlayWeaponSound("TSLSTRT")
    EGUN FGHIJ 1 bright

Hold:
    //EGUN K 0 A_JumpIfInventory("TeslaPrimary_counter",5000,"TeslaPrimaryOverheat")
    EGUN K 0 A_JumpIfInventory ("PM_AltFireX",1,"AltFireX")	
    EGUN K 0 A_JumpIfInventory ("PM_AltFireY",1,"AltFireY")
    EGUN K 0 A_JumpIfInventory ("PM_AltFireZ",1,"AltFireZ")
    EGUN K 1 bright A_GunFlash
    NULL A 0 A_PlaySound("TSLAFIR")
    EGUN L 1 bright A_FireCustomMissile("TeslaShot",0,1,5,3)
    //EGUN L 0 A_GiveInventory("TeslaPrimary_counter",1)
    EGUN M 1 bright A_GunFlash
    NULL A 0 A_PlaySound("TSLAFIR")
    EGUN N 1 bright A_FireCustomMissile("TeslaShot",0,1,5,3)
    //EGUN N 0 A_GiveInventory("TeslaPrimary_counter",1)
    EGUN O 1 bright A_GunFlash
    NULL A 0 A_PlaySound("TSLAFIR")
    EGUN P 1 bright A_FireCustomMissile("TeslaShot",0,1,5,3)
    //EGUN P 0 A_GiveInventory("TeslaPrimary_counter",1)
    EGUN Q 1 bright A_GunFlash
    NULL A 0 A_PlaySound("TSLAFIR")
    EGUN R 1 bright A_FireCustomMissile("TeslaShot",0,1,5,3)
    //EGUN R 0 A_GiveInventory("TeslaPrimary_counter",1)
    EGUN S 1 bright A_GunFlash
    NULL A 0 A_PlayWeaponSound("TSLAFIR")
    EGUN T 1 bright A_FireCustomMissile("TeslaShot",0,1,5,3)
    //EGUN T 0 A_GiveInventory("TeslaPrimary_counter",1)
    NULL A 0 A_ReFire ("Hold")
    NULL A 0 A_PlaySound("TSLAEND")
    EGUN UVWXY 3
    goto ready

AltFire:
    NULL A 0 A_PlayWeaponSound("TSLSTRT")
    EGUN FGHIJ 2 bright
    EGUN LMNOPQRST 2 bright A_PlaySound("TSLAEND")
    EGUN LMNOPQRST 1 bright A_PlaySound("TSLAEND")
    NULL A 0 A_Playweaponsound("TSLPRJC1")
    NULL A 0 A_FireCustomMissile("TeslaShot2",0,1,5,3)
    EGU2 ABCDEFG 2 bright 
    EGUN UVWXY 3
    goto ready

AltFireX:
    //EGUN K 0 A_JumpIfInventory("TeslaPrimary_counter",5000,"TeslaPrimaryOverheat")	
    NULL A 0 A_PlayWeaponSound("TSLSTRT")
    EGUN FGHIJ 2 bright
    EGUN LMNOPQRST 2 bright A_PlaySound("TSLAEND")
    EGUN LMNOPQRST 1 bright A_PlaySound("TSLAEND")
    NULL A 0 A_Playweaponsound("TSLPRJC1")
    NULL A 0 A_FireCustomMissile("TeslaShot2",0,1,5,3)
    //EGUN T 0 A_GiveInventory("TeslaPrimary_counter",2) 
    EGU2 ABCDEFG 2 bright 
    EGUN LMNOPQRST 1 bright A_PlaySound("TSLAEND")
    NULL A 0 A_Playweaponsound("TSLPRJC1")
    NULL A 0 A_FireCustomMissile("TeslaShot2",0,1,5,3)
    //EGUN T 0 A_GiveInventory("TeslaPrimary_counter",2)  
    EGU2 ABCDEFG 2 bright 
    EGUN LMNOPQRST 1 bright A_PlaySound("TSLAEND")
    NULL A 0 A_Playweaponsound("TSLPRJC1")
    NULL A 0 A_FireCustomMissile("TeslaShot2",0,1,5,3)
    //EGUN T 0 A_GiveInventory("TeslaPrimary_counter",2)
    EGU2 ABCDEFG 2 bright 
    EGUN LMNOPQRST 1 bright A_PlaySound("TSLAEND")
    NULL A 0 A_Playweaponsound("TSLPRJC1")
    NULL A 0 A_FireCustomMissile("TeslaShot2",0,1,5,3)
    //EGUN T 0 A_GiveInventory("TeslaPrimary_counter",2)
    EGU2 ABCDEFG 2 bright 
    EGUN UVWXY 3
    goto ready

Altfirey:
    //EGUN K 0 A_JumpIfInventory("TeslaPrimary_counter",5000,"TeslaPrimaryOverheat")	
    NULL A 0 A_PlayWeaponSound("TSLSTRT")
    EGUN FGHIJ 2 bright
    EGUN LMNOPQRST 2 bright A_PlaySound("TSLAEND")
    EGUN LMNOPQRST 1 bright A_PlaySound("TSLAEND")
    NULL A 0 A_Playweaponsound("TSLPRJC1")
    NULL A 0 A_FireCustomMissile("TeslaShot2",8,1,5,3)
    NULL A 0 A_FireCustomMissile("TeslaShot2",0,1,5,3)
    NULL A 0 A_FireCustomMissile("TeslaShot2",-8,1,5,3)
    //EGUN A 0 A_GiveInventory("TeslaPrimary_counter",6)
    EGU2 ABCDEFG 2 bright 
    EGUN UVWXY 3
    goto ready

Altfirez:
    //EGUN A 0 A_JumpIfInventory("TeslaPrimary_counter",5000,"TeslaPrimaryOverheat")
    NULL A 0 A_PlayWeaponSound("TSLSTRT")
    EGUN FGHIJ 1 bright

Hold1:
    //EGUN K 0 A_JumpIfInventory("TeslaPrimary_counter",5000,"TeslaPrimaryOverheat")
	EGUN A 0 A_JumpIfInventory ("PM_AltFireX",1,"AltFireX")	
    EGUN A 0 A_JumpIfInventory ("PM_AltFireY",1,"AltFireY")
    EGUN KLMNOPQRS 1 bright A_GunFlash
    NULL A 0 A_PlaySound("TSLAFIR")
    EGUN T 1 bright 
    EGUN T 0 bright A_FireCustomMissile("TeslaShot",4,1,5,3)
    EGUN T 0 bright A_FireCustomMissile("TeslaShot",2,1,5,3)
    EGUN T 0 bright A_FireCustomMissile("TeslaShot",0,1,5,3)
    EGUN T 0 bright A_FireCustomMissile("TeslaShot",-2,1,5,3)
    EGUN T 0 bright A_FireCustomMissile("TeslaShot",-4,1,5,3)
    //EGUN T 0 A_GiveInventory("TeslaPrimary_counter",5)
    NULL A 0 A_ReFire ("Hold1")
    NULL A 0 A_PlaySound("TSLAEND")
    EGUN UVWXY 3
    goto ready

//TeslaPrimaryOverheat:
   //EGUN AAABBBCCCDDDEEE 3 A_Print("TeslaCannon overheat (5000 rounds), cooldown")
   //EGUN E 0 A_TakeInventory("PM_AltFireX",1)
   //EGUN E 0 A_TakeInventory("PM_AltFireY",1)
   //EGUN E 0 A_TakeInventory("PM_AltFireZ",1)
   //Goto Ready
   

DoKick:
TNT1 A 0
TNT1 A 0 //A_ZoomFactor(1.0)
TNT1 A 0 A_jumpifinventory("PowerStrength",1,"BerserkerKick")
TNT1 A 0 A_PlaySound("KICK")
TNT1 A 0 SetPlayerProperty(0,1,0)
KICK BCD 1
RIFF A 0 A_FireCustomMissile("KickAttack", 0, 0, 0, -7)
KICK H 4
KICK A 0 A_Takeinventory("Kicking",1)
KICK IGFEDCBA 1 
TNT1 A 0 SetPlayerProperty(0,0,0)
Goto Ready
BerserkerKick:
TNT1 A 0 A_PlaySound("KICK")
TNT1 A 0 SetPlayerProperty(0,1,0)
KICK ABCDEFG 1
RIFF A 0 A_FireCustomMissile("SuperKickAttack", 0, 0, 0, -7)
KICK H 3
KICK A 0 A_Takeinventory("Kicking",1)
KICK IGFEDCBA 1 
TNT1 A 0 SetPlayerProperty(0,0,0)
Goto Ready
		    
	}
}

actor TeslaShot : plasmaball
{
  Damage 9
  SeeSound ""
  RenderStyle Add
  alpha 0.5
  scale 0.3
  Decal none
  DamageType "Electric"
  -EXTREMEDEATH
  States
  {
  Spawn: 
    MRS2 A 1 bright A_SpawnItemEx("TeslaExtra1",0,0,0,random(-4,4),random(-4,4),random(-4,4),random(1,360))
	NULL A 0 A_SpawnItem("TeslaTail")
	MRS2 B 1 bright A_SpawnItemEx("TeslaTail",0,0,0,random(-4,4),random(-4,4),random(-4,4),random(1,360))
	NULL A 0 A_SpawnItem("TeslaExtra1")
    Loop
	death:
	NULL AAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("TeslaExtra",0,0,0,random(-4,4),random(-4,4),random(-4,4),random(1,360))
	MRS2 CDEFG 2 bright
	Stop
  }
}



actor TeslaShot2 : plasmaball
{
  Damage 90
  SeeSound ""
  DeathSound "TSLPRJC2"
  RenderStyle Add
  alpha 0.5
  height 10
  radius 10
  Decal none
  DamageType "MarineDamage"
  ExplosionRadius 20
  ExplosionDamage 70
  -EXTREMEDEATH
  States
  {
  Spawn: 
    MRS2 A 1 bright A_SpawnItem("TeslaTail1")
	NULL AAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("TeslaExtra3",0,0,0,random(-4,4),random(-4,4),random(-4,4),random(1,360))
	MRS2 B 1 bright A_SpawnItem("TeslaExtra3")
	NULL AAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("TeslaTail1",0,0,0,random(-4,4),random(-4,4),random(-4,4),random(1,360))
    Loop
	death:
	NULL A 0 A_Explode
	NULL AAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("TeslaExtra3",0,0,0,random(-4,4),random(-4,4),random(-4,4),random(1,360))
	NULL AAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("TeslaTail",0,0,0,random(-4,4),random(-4,4),random(-4,4),random(1,360))
	NULL AAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("TeslaExtra3",0,0,0,random(-4,4),random(-4,4),random(-4,4),random(1,360))
	NULL AAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("TeslaTail",0,0,0,random(-4,4),random(-4,4),random(-4,4),random(1,360))
	NULL AAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("TeslaExtra3",0,0,0,random(-4,4),random(-4,4),random(-4,4),random(1,360))
	NULL AAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("TeslaTail",0,0,0,random(-4,4),random(-4,4),random(-4,4),random(1,360))
	MRS2 CDEFG 2 bright
	Stop
  }
}
Actor TeslaExtra
{
	Projectile
	Damage 0
	+RIPPER
	+BLOODLESSIMPACT
	Speed 0
	Radius 1
	Height 1
	Scale 0.2
	RenderStyle Add
	+CLIENTSIDEONLY
	States
	{
	Spawn:
		ZAPR ABC 1 Bright
		NULL A 0 A_Jump(160,1)
		Loop
		ZAPR ABC 1 Bright
		ZAPR DE 1 Bright A_FadeOut
		Wait
	Death:
		NULL A 1
		Stop
	}
}
Actor Teslatail
{
	Projectile
	Damage 0
	+RIPPER
	+BLOODLESSIMPACT
	+NOGRAVITY
	Speed 0
	Radius 1
	Height 1
	Scale 0.05
	RenderStyle Add
	+CLIENTSIDEONLY
	States
	{
	Spawn:
		MRS2 AB 1 bright A_FadeOut
		wait
	}
}
Actor TeslaExtra1 : TeslaExtra
{
Scale 0.1
+CLIENTSIDEONLY
}
Actor TeslaExtra3 : TeslaExtra
{
Scale 0.6
+CLIENTSIDEONLY
}
Actor Teslatail1 : Teslatail
{
Scale 0.3
+CLIENTSIDEONLY
}

//CryoBow

ACTOR CryoBow : Weapon
{
    Weapon.SelectionOrder 99999
	Weapon.AmmoType "CryoBolts"
	Weapon.AmmoUse 1
	Weapon.AmmoGive 5
	Weapon.AmmoType2 "BallistaBolts"
    Weapon.AmmoUse2 1
    Weapon.AmmoGive2 5
	Inventory.PickupMessage "You got the Cryobow"
	Obituary "%o was picked off by %k's Cryobow"
    +WEAPON.NOAUTOAIM
	States
	{
	Spawn:
		WBOW A -1
		Stop
	Deselect:
	    BSTA A 0 A_TakeInventory("XYZALTN",1)
        BSTA A 0 A_TakeInventory ("PM_AltfireX", 1)
        BSTA A 0 A_TakeInventory ("PM_AltfireY", 1)
        BSTA A 0 A_TakeInventory ("PM_AltfireZ", 1)
		BSTA A 1 Bright A_Lower
		NULL AA 0 Bright A_Lower
		Loop
	Select:
        BSTA A 1 ACS_ExecuteAlways(480,0,24,0,0)
        BSTA A 0 A_PlayWeaponSound("m_gatlaser_Varient_taunt")
		BSTA A 0 A_TakeInventory("XYZALTS",1)
	        BSTA A 0 A_TakeInventory ("XYZALTD",1)
	        BSTA A 0 A_TakeInventory ("XYZALTX",1)//For
	        BSTA A 0 A_TakeInventory ("XYZALTY",1)
	        BSTA A 0 A_TakeInventory ("XYZALTZ",1)//Sloppy 
	        BSTA A 0 A_TakeInventory ("XYZALTSC",1)//Weapon
	        BSTA A 0 A_TakeInventory ("XYZALTXC",1)//Drop
	        BSTA A 0 A_TakeInventory ("XYZALTYC",1)
	        BSTA A 0 A_TakeInventory ("XYZALTZC",1)    
	        BSTA A 0 A_TakeInventory ("INVENZ",1)
			BSTA A 0 A_TakeInventory ("INVENYZ",1)
	        BSTA A 0 A_TakeInventory ("XYZALTSX",1)
			BSTA A 0 A_TakeInventory ("XYZALTSXY",1)
	        BSTA A 0 A_TakeInventory ("Vulcaninfo",1)
			BSTA A 0 A_TakeInventory ("Cooloff",1)
			BSTA A 0 A_GiveInventory("XYZALTN",1)
       Sel:
        BSTA A 0
		BSTA A 1 Bright A_Raise
		NULL AA 0 Bright A_RAISE
		Loop
	Ready:
        BSTA A 0 A_jumpifinventory("kicking",1,"dokick")
		BSTA AAABBBCCCDDDBBB 1 Bright A_WeaponReady
    	Loop
	Fire:
		BSTA A 0 Bright A_GunFlash
		BSTA A 0 Bright A_Recoil(4.0)
		BSTA A 0 Bright A_PlaySound("weapons/cryobowshot")
		BSTA A 0 Bright A_PlaySound("weapons/cryobowfire", CHAN_WEAPON)
		BSTA E 1 Bright A_FireCustomMissile("CryoShot",0,1)
		BSTA FGH 1 Bright
		BSTA I 4 A_PlaySound("weapons/cryobowreload")
		BSTA I 1
		BSTA I 1 Offset(0,31) 
		BSTA J 1 Offset(0,32)
		BSTA J 1 Offset(0,30)
		BSTA K 1 Offset(0,31)
		BSTA LM 1 Offset(0,32)
		BSTA CDB 2 Bright Offset(0,32) 
		BSTA A 0 A_ReFire
		Goto Ready 
		
    AltFire:
	    
        BSTA A 0 A_GunFlash
        BSTA A 0 A_Recoil(3.0)
        BSTA A 0 A_PlaySound("Weapons/BallistaShot")
        BSTA A 0 A_PlaySound("Weapons/BallistaFire", CHAN_WEAPON)
        BSTA E 1 Bright A_FireCustomMissile("BallistaShot",0,1)
        BSTA FGH 1 Bright
        BSTA I 4 A_PlaySound("Weapons/BallistaReload")
        BSTA I 1 
        BSTA I 1 Offset(0,31) 
        BSTA J 1 Offset(0,32)
        BSTA J 1 Offset(0,30)
        BSTA K 1 Offset(0,31) 
        BSTA LM  1 Offset(0,32)
        BSTA CDB 2 Bright Offset(0,32) 
        BSTA A 0 A_Refire ("Altfire")
        Goto Ready

   DoKick:
TNT1 A 0
TNT1 A 0 //A_ZoomFactor(1.0)
TNT1 A 0 A_jumpifinventory("PowerStrength",1,"BerserkerKick")
TNT1 A 0 A_PlaySound("KICK")
TNT1 A 0 SetPlayerProperty(0,1,0)
KICK BCD 1
RIFF A 0 A_FireCustomMissile("KickAttack", 0, 0, 0, -7)
KICK H 4
KICK A 0 A_Takeinventory("Kicking",1)
KICK IGFEDCBA 1 
TNT1 A 0 SetPlayerProperty(0,0,0)
Goto Ready
BerserkerKick:
TNT1 A 0 A_PlaySound("KICK")
TNT1 A 0 SetPlayerProperty(0,1,0)
KICK ABCDEFG 1
RIFF A 0 A_FireCustomMissile("SuperKickAttack", 0, 0, 0, -7)
KICK H 3
KICK A 0 A_Takeinventory("Kicking",1)
KICK IGFEDCBA 1 
TNT1 A 0 SetPlayerProperty(0,0,0)
Goto Ready

	Flash:
		TNT1 A 2 Bright A_Light1
		TNT1 A 2 Bright A_Light2
		TNT1 A 1 Bright A_Light1
		Goto LightDone
	}
}

ACTOR CryoShot : FastProjectile
{
	Radius 4
	Height 8
	Speed 100
	Damage 1
	DamageType Ice
	Projectile
	RenderStyle Add
	Alpha 0.9
	+FORCERADIUSDMG
	+NODAMAGETHRUST
	DeathSound "weapons/cryobowhit"
	MissileType "CryoTrail"
	MissileHeight 8
	Decal "PlasmaScorchLower"
	States
	{
	Spawn:
		BSHT A 0 Bright
		BSHT A 0 Bright A_PlaySound("weapons/cryobowflyby", CHAN_BODY, 1.0, 1)
		BSHT A 1 Bright
		Loop
	Death:		
		BXPL A 0 Bright A_StopSound(CHAN_BODY)
		BXPL A 0 Bright A_Explode(1, 128, 0) // Break frozen things.
		BXPL A 0 Bright A_ChangeFlag("NODAMAGETHRUST", 0)
		BXPL A 0 Bright A_Explode(50*random(1,4), 16, 0) // Simulated impact damage
		BXPL A 0 Bright A_Explode(128, 128, 0) // Freezy radius damage.
		BXPL AAAAAAAA 0 Bright A_SpawnItemEx("CryoSmoke", 0, 0, 0, random(10, 30)*0.1, 0, random(0, 10)*0.1, random(1,360), SXF_CLIENTSIDE|SXF_NOCHECKPOSITION)
		BXPL AAAA 0 Bright A_SpawnItemEx("CryoSmoke2", 0, 0, 0, random(10, 30)*0.04, 0, random(0, 10)*0.04, random(1,360), SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,64)
		BXPL ABCDEFGH 1 Bright
		BXPL IJKLLM 1 Bright A_FadeOut(0.1)
		Stop
	}
}

ACTOR CryoTrail
{
	+NOINTERACTION
	+CLIENTSIDEONLY
	Radius 4
	Height 8
	Renderstyle Add
	Alpha 0.5
	States
	{
	Spawn:
		BSHT AABBCDEFG 1 Bright
		Stop
	}
}

ACTOR CryoSmoke
{
    Radius 2
    Height 2
    +NOINTERACTION
    +FORCEXYBILLBOARD
	+CLIENTSIDEONLY
    RenderStyle Shaded
    StencilColor "A0 A0 A0"
    Alpha 1.0
    Scale 0.4
    States
    {
    Spawn:
		SMOK A 0
        SMOK A 2 A_FadeOut (0.05)
        Wait
    }
}

Actor CryoSmoke2 : CryoSmoke { StencilColor "DD DD DD" Scale 0.7 Alpha 0.5 VSpeed 2.5
    +CLIENTSIDEONLY
	States {
	Spawn:
		TNT1 A 0
		SMOK A 6 A_FadeOut(0.04)
		Wait
	}
}

Actor BallistaShot : FastProjectile
{
 Radius 4
 Height 8
 Speed 160
 Damage 0
 DamageType "MarineDamage"
 Projectile
 RenderStyle Add
 Alpha 0.9
 Scale 0.8
 +ForceRadiusDmg
 +NoDamageThrust
 +ForceXYBillboard
 DeathSound "Weapons/BallistaHit"
 MissileType "BallistaTrail"
 MissileHeight 8
 Decal "PlasmaScorchLower"
 States
 {
 Spawn:
   BSHT A 0 Bright
   BSHT A 1 Bright A_PlaySound("Weapons/BallistaFlyby", CHAN_BODY, 1.0, 1)
   Loop
 Death:    
   BXPL A 0 Bright A_StopSound(CHAN_BODY)
   BXPL A 0 Bright A_ChangeFlag("NODAMAGETHRUST", 0)
   BXPL A 0 Bright A_Explode(Random(150, 180), 36, 0)
   BXPL ABCDEFGH 1 Bright
   BXPL IJKLM 1 Bright A_FadeOut(0.1)
   Stop
   }
}

Actor BallistaTrail
   {
   +ForceXYBillBoard
   +NoInteraction
   +CLIENTSIDEONLY
   Radius 4
   Height 8
   Renderstyle Add
   Alpha 0.5
   States
   {
   Spawn:
   BSHT AABBCDEFG 1 Bright
   Stop
   }
}

//UberMinigun

ACTOR UberMinigun : Weapon
{
    Inventory.PickupMessage "You got the UberMinigun!"
    Inventory.PickupSound "misc/w_pkup"
    Weapon.SelectionOrder 99999
    Weapon.Kickback 90
    Weapon.AmmoType "MClip"
    Weapon.AmmoGive 100
    Weapon.AmmoUse 1
	Weapon.PreferredSkin "ChainGunMarine"
	DamageType "MarineDamage"
    Obituary "%k turned %o into swiss cheese using %p Uberminigun"
    +WEAPON.NOAUTOAIM
    States
    {
    Spawn:
       MINI A -1
       LOOP
    Ready:
	   MING A 0 A_JumpifInventory("UberCool",1,3)
	   MING A 0 A_TakeInventory("Cooloff",1)
	   MING A 0 A_GiveInventory("XYZALTN",1)
	   MING A 0 ACS_Execute(3042,0)
       MING A 9 A_WeaponReady
       MING A 0 A_jumpifinventory("kicking",1,"dokick")
       Loop
    Deselect: 
	   MING A 0 A_TakeInventory("XYZALTN",1)
	   MING A 0 A_TakeInventory ("Cooloff",1)
       MING A 0 A_TakeInventory ("PM_AltfireX", 1)
       MING A 0 A_TakeInventory ("PM_AltfireY", 1)
       MING A 0 A_TakeInventory ("PM_AltfireZ", 1)
       MING A 1 A_Lower
	   NULL AA 0 A_LOWER
       LOOP
    Select: 
       MING A 1 ACS_ExecuteAlways(480,0,4,0,0)
	   MING A 0 ACS_Execute(3042,0)
       MING A 0 A_JumpifInventory("UberGot",1,3)
       MING A 0 A_GiveInVentory("UberGot",1)
       MING A 0 A_GiveInventory("UberPrimary_counter",3000)
       MING A 0 A_PlayWeaponSound("m_vulcan_taunt")
	        MING A 0 A_TakeInventory ("XYZALTS",1)
			MING A 0 A_TakeInventory ("XYZALTD",1)
	        MING A 0 A_TakeInventory ("XYZALTX",1)//For
	        MING A 0 A_TakeInventory ("XYZALTY",1)
	        MING A 0 A_TakeInventory ("XYZALTZ",1)//Sloppy 
	        MING A 0 A_TakeInventory ("XYZALTSC",1)//Weapon
	        MING A 0 A_TakeInventory ("XYZALTXC",1)//Drop
	        MING A 0 A_TakeInventory ("XYZALTYC",1)
	        MING A 0 A_TakeInventory ("XYZALTZC",1)    
	        MING A 0 A_TakeInventory ("INVENZ",1)
			MING A 0 A_TakeInventory ("INVENYZ",1)
	        MING A 0 A_TakeInventory ("XYZALTSX",1)
			MING A 0 A_TakeInventory ("XYZALTSXY",1)
	        MING A 0 A_TakeInventory ("Vulcaninfo",1)
			MING A 0 A_TakeInventory ("Cooloff",1)
			MING A 0 A_GiveInventory ("XYZALTN",1)
    Sel:
       MING A 0
       MING A 1 A_Raise
	   NULL AA 0 A_RAISE
       LOOP
    Fire:
	   MING A 0 ACS_Execute(3042,0)
	   MING A 0 A_JumpIfInventory("UberCool",1,"UberPrimaryDepleted")
       MING A 0 A_PlaySound("weapons/minigunup")
       MING BCDEFGH 2 
       MING CEGABCDEFGHACEGE 1 
    Hold1:
	   MING A 0 ACS_Execute(3042,0)
	   MING A 0 A_JumpIfInventory("UberCool",1,"UberPrimaryDepleted")
	   MING A 0 A_TakeInventory ("Cooloff",1)
	   MING A 0 A_GiveInventory ("XYZALTN",1)
       MINF A 0 A_GunFlash
	   MINF A 0 A_PlayweaponSound("weapons/minigun")
	   MINF A 0 A_PlaySound("weapons/minigunhold")
       MINF A 1 BRIGHT A_FireBullets (5.6, 0, 2, 5, "MBulletPuff")
	   MINF A 0 A_PlayweaponSound("weapons/minigun")
       MINF C 1 BRIGHT A_FireBullets (5.6, 0, 2, 5, "MBulletPuff")
	   MINF A 0 A_PlayweaponSound("weapons/minigun")
       MINF B 1 BRIGHT A_FireBullets (5.6, 0, 2, 5, "MBulletPuff")
	   MINF B 0 A_TakeInventory("UberPrimary_counter",3)
       MING C 0 A_ReFire ("Hold1")
       MING A 0 A_PlaySound("weapons/minigundown")
       MING A 1
       MING C 1 
       MING E 1
       MING G 1 
       MING A 1
       MING B 1 
       MING C 1
       MING D 1 
       MING E 1
       MING F 1 
       MING G 1
       MING H 1
       MING ABCDEFGH 1
	   MING ABCDEFGH 2
       Goto Ready
	   
	   AltFire:
	   MING A 0 ACS_Execute(3042,0)
	   MING A 0 A_JumpIfInventory("UberCool",1,"UberPrimaryDepleted")
       MING A 0 A_PlaySound("weapons/minigunup")
       MING BCDEFGH 2 
       MING CEGABCDEFGHACEGE 1 
    Hold2:
	   MING A 0 ACS_Execute(3042,0)
	   MING A 0 A_JumpIfInventory("UberCool",1,"UberPrimaryDepleted")
	   MING A 0 A_TakeInventory ("Cooloff",1)
	   MING A 0 A_GiveInventory ("XYZALTN",1)
       MINF A 0 A_GunFlash
	   MINF A 0 A_PlayweaponSound("weapons/minigun")
	   MINF A 0 A_PlaySound("weapons/minigunhold")
       MINF A 3 BRIGHT A_FireBullets (5.6, 0, 2, 5, "MBulletPuff")
	   MINF A 0 BRIGHT A_FireBullets (5.6, 0, 2, 5, "MBulletPuff")
	   MINF A 0 BRIGHT A_FireBullets (5.6, 0, 2, 5, "MBulletPuff")
	   MINF A 0 A_PlayweaponSound("weapons/minigun")
       MINF C 3 BRIGHT A_FireBullets (5.6, 0, 2, 5, "MBulletPuff")
	   MINF C 0 BRIGHT A_FireBullets (5.6, 0, 2, 5, "MBulletPuff")
	   MINF C 0 BRIGHT A_FireBullets (5.6, 0, 2, 5, "MBulletPuff")
	   MINF A 0 A_PlayweaponSound("weapons/minigun")
       MINF B 3 BRIGHT A_FireBullets (5.6, 0, 2, 5, "MBulletPuff")
	   MINF B 0 BRIGHT A_FireBullets (5.6, 0, 2, 5, "MBulletPuff")
	   MINF B 0 BRIGHT A_FireBullets (5.6, 0, 2, 5, "MBulletPuff")
	   MINF B 0 A_TakeInventory("UberPrimary_counter",9)
       MING C 0 A_ReFire ("hold2")
       MING A 0 A_PlaySound("weapons/minigundown")
       MING A 1
       MING C 1 
       MING E 1
       MING G 1 
       MING A 1
       MING B 1 
       MING C 1
       MING D 1 
       MING E 1
       MING F 1 
       MING G 1
       MING H 1
       MING ABCDEFGH 1
	   MING ABCDEFGH 2
       Goto Ready
	   
UberPrimaryDepleted:
       MING A 0 A_TakeInventory("XYZALTN",1)
       MING A 0 A_GiveInventory("Cooloff",1)
       MING A 0 A_PlaySound("weapons/minigunup")
       MING BCDEFGH 2 
       MING CEGABCDEFGHACEGE 1 // A_Print("UberMinigun Primary (3000 rounds), Depleted")
	   MING A 0 A_PlaySound("weapons/minigundown")
       MING A 1
       MING C 1 
       MING E 1
       MING G 1 
       MING A 1
       MING B 1 
       MING C 1
       MING D 1 
       MING E 1
       MING F 1 
       MING G 1
       MING H 1
       MING ABCDEFGH 1
	   MING ABCDEFGH 2
       Goto Ready
DoKick:
	TNT1 A 0
    TNT1 A 0 //A_ZoomFactor(1.0)
	TNT1 A 0 A_jumpifinventory("PowerStrength",1,"BerserkerKick")
	TNT1 A 0 A_PlaySound("KICK")
	TNT1 A 0 SetPlayerProperty(0,1,0)
	KICK BCD 1
	RIFF A 0 A_FireCustomMissile("KickAttack", 0, 0, 0, -7)
	KICK H 4
	KICK A 0 A_Takeinventory("Kicking",1)
	KICK IGFEDCBA 1 
	TNT1 A 0 SetPlayerProperty(0,0,0)
	Goto Ready
    BerserkerKick:
	TNT1 A 0 A_PlaySound("KICK")
	TNT1 A 0 SetPlayerProperty(0,1,0)
	KICK ABCDEFG 1
	RIFF A 0 A_FireCustomMissile("SuperKickAttack", 0, 0, 0, -7)
	KICK H 3
	KICK A 0 A_Takeinventory("Kicking",1)
	KICK IGFEDCBA 1 
	TNT1 A 0 SetPlayerProperty(0,0,0)
	Goto Ready
    }
}

//LightMachineGun

ACTOR LightMachinegun : Weapon 6001
{ 
	Weapon.Kickback 5
	Weapon.AmmoType "MClip" 
	Weapon.AmmoGive 50
	Weapon.AmmoUse 1	
	Weapon.SlotNumber 4
	Inventory.PickupSound "misc/w_pkup" 
	Inventory.PickupMessage "Picked up a Light Machinegun!"
	Obituary "%o was Lit up by %k's Machinegun."
	AttackSound "weapons/Machinegun"
    Weapon.PreferredSkin "AssaultSGMarine"
	weapon.selectionorder 99999
    DamageType "MarineDamage"
 	Decal BulletChip
    +WEAPON.NOAUTOAIM
	States 
	{  
	Ready: 
		MCGN A 1 A_WeaponReady 
        MCGN A 0 A_jumpifinventory("kicking",1,"dokick")
		Loop 
	Deselect: 
	    MCGN A 0 A_TakeInventory("XYZALTN",1)
        MCGN A 0 A_TakeInventory ("PM_AltfireX", 1)
		MCGN A 0 A_TakeInventory ("PM_AltfireY", 1)
		MCGN A 0 A_TakeInventory ("PM_AltfireZ", 1)
		MCGN A 1 A_Lower 
        NULL AA 0 A_Lower
		Loop 
    Select: 
        MCGN A 1 ACS_ExecuteAlways(480,0,35,0,0)	
		MCGN A 10 A_PlayWeaponSound("m_ass_shotgun_taunt")
		MCGN A 0 A_TakeInventory ("XYZALTS",1)
	    MCGN A 0 A_TakeInventory ("XYZALTD",1)
	        MCGN A 0 A_TakeInventory ("XYZALTX",1)//For
	        MCGN A 0 A_TakeInventory ("XYZALTY",1)
	        MCGN A 0 A_TakeInventory ("XYZALTZ",1)//Sloppy 
	        MCGN A 0 A_TakeInventory ("XYZALTSC",1)//Weapon
	        MCGN A 0 A_TakeInventory ("XYZALTXC",1)//Drop
	        MCGN A 0 A_TakeInventory ("XYZALTYC",1)
	        MCGN A 0 A_TakeInventory ("XYZALTZC",1)    
	        MCGN A 0 A_TakeInventory ("INVENZ",1)
			MCGN A 0 A_TakeInventory ("INVENYZ",1)
	        MCGN A 0 A_TakeInventory ("XYZALTSX",1)
			MCGN A 0 A_TakeInventory ("XYZALTSXY",1)
	        MCGN A 0 A_TakeInventory ("Vulcaninfo",1)
			MCGN A 0 A_TakeInventory ("Cooloff",1)
			MCGN A 0 A_GiveInventory ("XYZALTN",1)
    Sel:
		MCGN A 0 
		MCGN A 1 A_Raise 
        NULL AA 0 A_Raise
		Loop 
	Fire: 
		MCGN A 1 A_GunFlash
		MCGN B 1 A_FireBullets(3, 4, 1, 5, "MBulletPuff", 1)  
		MCGN C 1 
        TNT1 A 0 A_Refire
		goto Ready 
		
	AltFire:
		MCGN A 0 A_PlaySoundEx ("weapons/mgren","weapon")
		MCGN E 1 A_FireCustomMissile ("MGrenade",0,1,0,0,0,9) //12
		MCGN A 1 A_SetPitch(-8.0 + pitch)
		MCGN A 3
		MCGN A 1 A_SetPitch(+8.0 + pitch)
		MCGN A 8
		MCGN D 8 A_PlaySound("weapons/Ashotgun/cock/back")
		MCGN C 4
		MCGN D 4 A_PlaySound("weapons/Ashotgun/cock/forward")
		MCGN A 14
		Goto Ready	

DoKick:
	TNT1 A 0
    TNT1 A 0 //A_ZoomFactor(1.0)
	TNT1 A 0 A_jumpifinventory("PowerStrength",1,"BerserkerKick")
	TNT1 A 0 A_PlaySound("KICK")
	TNT1 A 0 SetPlayerProperty(0,1,0)
	KICK BCD 1
	RIFF A 0 A_FireCustomMissile("KickAttack", 0, 0, 0, -7)
	KICK H 4
	KICK A 0 A_Takeinventory("Kicking",1)
	KICK IGFEDCBA 1 
	TNT1 A 0 SetPlayerProperty(0,0,0)
	Goto Ready
BerserkerKick:
	TNT1 A 0 A_PlaySound("KICK")
	TNT1 A 0 SetPlayerProperty(0,1,0)
	KICK ABCDEFG 1
	RIFF A 0 A_FireCustomMissile("SuperKickAttack", 0, 0, 0, -7)
	KICK H 3
	KICK A 0 A_Takeinventory("Kicking",1)
	KICK IGFEDCBA 1 
	TNT1 A 0 SetPlayerProperty(0,0,0)

	Goto Ready
        Flash:
		MCGN A 1 Bright
		MCGN B 1 Bright A_Light1
        Goto LightDone
	Spawn:
		MCGN W -1
		Stop
		}
	} 

//HeavyMachineGun

ACTOR HeavyMachinegun : Weapon 6002
{ 
	Weapon.Kickback 5
	Weapon.AmmoType "MClip" 
	Weapon.AmmoGive 75
	Weapon.AmmoUse 1
	Weapon.SlotNumber 4
	Inventory.PickupSound "misc/w_pkup" 
	Inventory.PickupMessage "Picked Up a Heavy Machinegun!"
	Obituary "%o was Ripped a New one by %k and their Heavy Machinegun."
	AttackSound "weapons/Machinegun"
    Weapon.PreferredSkin "AssaultSGMarine"
	weapon.selectionorder 99999
    DamageType "MarineDamage"
 	Decal BulletChip
    +WEAPON.NOAUTOAIM
	States 
	{  
	Ready: 
		HVMG A 1 A_WeaponReady 
        HVMG A 0 A_jumpifinventory("kicking",1,"dokick")
		Loop 
	Deselect: 
	    HVMG A 0 A_TakeInventory("XYZALTN",1)
        HVMG A 0 A_TakeInventory ("PM_AltfireX", 1)
		HVMG A 0 A_TakeInventory ("PM_AltfireY", 1)
		HVMG A 0 A_TakeInventory ("PM_AltfireZ", 1)
		HVMG A 1 A_Lower 
        NULL AA 0 A_Lower
		Loop 
	Select: 
	    
        HVMG A 1 ACS_ExecuteAlways(480,0,44,0,0)	
		HVMG A 10 A_PlayWeaponSound("m_ass_shotgun_taunt")
		HVMG A 0 A_TakeInventory ("XYZALTS",1)
	    HVMG A 0 A_TakeInventory ("XYZALTD",1)
	        HVMG A 0 A_TakeInventory ("XYZALTX",1)//For
	        HVMG A 0 A_TakeInventory ("XYZALTY",1)
	        HVMG A 0 A_TakeInventory ("XYZALTZ",1)//Sloppy 
	        HVMG A 0 A_TakeInventory ("XYZALTSC",1)//Weapon
	        HVMG A 0 A_TakeInventory ("XYZALTXC",1)//Drop
	        HVMG A 0 A_TakeInventory ("XYZALTYC",1)
	        HVMG A 0 A_TakeInventory ("XYZALTZC",1)    
	        HVMG A 0 A_TakeInventory ("INVENZ",1)
			HVMG A 0 A_TakeInventory ("INVENYZ",1)
	        HVMG A 0 A_TakeInventory ("XYZALTSX",1)
			HVMG A 0 A_TakeInventory ("XYZALTSXY",1)
	        HVMG A 0 A_TakeInventory ("Vulcaninfo",1)
			HVMG A 0 A_TakeInventory ("Cooloff",1)
			HVMG A 0 A_GiveInventory ("XYZALTN",1)
     Sel:
		HVMG A 0 
		HVMG A 1 A_Raise 
        NULL AA 0 A_Raise
		Loop 
	Fire: 
		HVMG B 0 A_GunFlash
		HVMG B 1 
		HVMG C 1 A_FireBullets(5, 3, 1, 8, "MBulletPuff", 1) 
		HVMG C 0 A_FireBullets(5, 3, 1, 8, "MBulletPuff", 1)
		HVMG C 0 A_FireBullets(5, 3, 1, 8, "MBulletPuff", 1)
		HVMG A 1
        TNT1 A 0 A_refire
		goto Ready 
		
	AltFire:
		HVMG D 0 A_PlaySoundEx ("weapons/mgren","weapon")
		HVMG E 1 A_FireCustomMissile ("MGrenade",3,1,2,0,0,9) //12
		TNT1 E 1 A_FireCustomMissile ("MGrenade",-2,1,-2,0,0,9)
		HVMG D 1 A_SetPitch(-8.0 + pitch)
		HVMG D 3
		HVMG D 1 A_SetPitch(+8.0 + pitch)
		HVMG D 8
		HVMG D 8 A_PlaySound("weapons/Ashotgun/cock/back")
		HVMG E 4
		HVMG D 4 A_PlaySound("weapons/Ashotgun/cock/forward")
		HVMG A 10
		Goto Ready		

DoKick:
	TNT1 A 0
    TNT1 A 0 //A_ZoomFactor(1.0)
	TNT1 A 0 A_jumpifinventory("PowerStrength",1,"BerserkerKick")
	TNT1 A 0 A_PlaySound("KICK")
	TNT1 A 0 SetPlayerProperty(0,1,0)
	KICK BCD 1
	RIFF A 0 A_FireCustomMissile("KickAttack", 0, 0, 0, -7)
	KICK H 4
	KICK A 0 A_Takeinventory("Kicking",1)
	KICK IGFEDCBA 1 
	TNT1 A 0 SetPlayerProperty(0,0,0)
	Goto Ready
BerserkerKick:
	TNT1 A 0 A_PlaySound("KICK")
	TNT1 A 0 SetPlayerProperty(0,1,0)
	KICK ABCDEFG 1
	RIFF A 0 A_FireCustomMissile("SuperKickAttack", 0, 0, 0, -7)
	KICK H 3
	KICK A 0 A_Takeinventory("Kicking",1)
	KICK IGFEDCBA 1 
	TNT1 A 0 SetPlayerProperty(0,0,0)
	Goto Ready

        Flash:
		HVMG B 1 Bright A_Light1 
		HVMG C 1 Bright A_Light0 
             	Goto LightDone
        Hold:
		HVMG B 0 A_GunFlash
		HVMG B 1 
		HVMG C 1 A_FireBullets(5, 3, 1, 13, "MBulletPuff", 1)  
		HVMG A 1
		goto Ready 
	Spawn:
		HVMG W -1
		Stop
		}
	} 
	
ACTOR Saws : Ammo
{
   Inventory.Amount 3
   Inventory.MaxAmount 50
   Ammo.BackpackAmount 3
   Ammo.BackpackMaxAmount 100
   Inventory.PickupMessage "Picked up some saws."
   Inventory.PickupSound "weapons/ammo13"
   Inventory.Icon SAWA
   States
   {
   Spawn:
      SAWA A -1
      Stop
   }
}

ACTOR SawBox : Saws
{
   Inventory.Amount 15
   Inventory.PickupMessage "Picked up a box of saws."
   States
   {
   Spawn:
      SAWB A -1
      Stop
   }
}

ACTOR Bolts : Ammo
{
   +INVENTORY.IGNORESKILL
   Radius 10
   Inventory.Amount 50
   Inventory.MaxAmount 900
   Ammo.BackpackAmount 100
   scale 0.3
   RenderStyle Translucent
   Alpha 0.9
   Ammo.BackpackMaxAmount 900
   Inventory.PickupMessage "Picked up a Bolt Charge."
   Inventory.Icon "BOLT"
   States
   {
   Spawn:
      BOLT A 1
      Loop
   }
}

ACTOR CryoBolts : Ammo
{
	Inventory.PickupMessage "You got some Cryobolts"
	Inventory.Amount 2
	Inventory.MaxAmount 50
	Ammo.BackpackMaxAmount 100
	Inventory.Icon "ABOW"
	States
	{
	Spawn:
		ABOW ABCD 5 BRIGHT
		Loop
	}
}

Actor BallistaBolts : Ammo
    {
    Inventory.PickupMessage "Plasma Ballista Bolts"
    Inventory.Amount 2
    Inventory.MaxAmount 50
    Ammo.BackpackMaxAmount 100
    Inventory.Icon "ABOW"
    States
    {
    Spawn:
    ABOW ABCD 5 BRIGHT
    Loop
    }
}
