ACTOR "Nemesis Rifle" : "Legendary Plasmatic Rifle"
{
  Weapon.AmmoType "NLDemonMagazine"   
  Weapon.AmmoType2 "NLDemonAmmo"
  Inventory.PickupSound "NemesisRifle/up"
  Inventory.PickupMessage "You got the Nemesis Rifle! A surge of dark energy flows through you."
  Obituary "%o was obliterated by pure dark energy."
  States
  {
  Spawn:
	NTEP A -1
	Loop
  Ready:
	TNT1 A 0 A_PlaySound("NemesisRifle/up",7)
	NTRS ABCDE 1
  ReadyLoop:
	TNT1 A 0 A_JumpIfInventory("NLDemonMagazine",1,2)
	TNT1 A 0
	Goto NoBuzzing
	NTEK AAA 1 A_WeaponReady
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAction",1,"GrenadeCheck")
	TNT1 A 0 A_JumpIfInventory("MineAction",1,"MineCheck")
	NTEK AAA 1 A_WeaponReady
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAction",1,"GrenadeCheck")
	TNT1 A 0 A_JumpIfInventory("MineAction",1,"MineCheck")
	NTEK AAA 1 A_WeaponReady
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAction",1,"GrenadeCheck")
	TNT1 A 0 A_JumpIfInventory("MineAction",1,"MineCheck")
	NTEK AAA 1 A_WeaponReady	 
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAction",1,"GrenadeCheck")
	TNT1 A 0 A_JumpIfInventory("MineAction",1,"MineCheck")
	NTEK AAA 1 A_WeaponReady
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAction",1,"GrenadeCheck")
	TNT1 A 0 A_JumpIfInventory("MineAction",1,"MineCheck")
	NTEK AAA 1 A_WeaponReady
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAction",1,"GrenadeCheck")
	TNT1 A 0 A_JumpIfInventory("MineAction",1,"MineCheck")
	NTEK AAA 1 A_WeaponReady
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAction",1,"GrenadeCheck")
	TNT1 A 0 A_JumpIfInventory("MineAction",1,"MineCheck")
	NTEK AAA 1 A_WeaponReady
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAction",1,"GrenadeCheck")
	TNT1 A 0 A_JumpIfInventory("MineAction",1,"MineCheck")
	NTEK AAA 1 A_WeaponReady
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAction",1,"GrenadeCheck")
	TNT1 A 0 A_JumpIfInventory("MineAction",1,"MineCheck")
	NTEK AAA 1 A_WeaponReady
	TNT1 A 0 A_PlaySound("NemesisRifle/Idle")
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAction",1,"GrenadeCheck")
	TNT1 A 0 A_JumpIfInventory("MineAction",1,"MineCheck")
	NTEK BB 1 A_WeaponReady
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAction",1,"GrenadeCheck")
	TNT1 A 0 A_JumpIfInventory("MineAction",1,"MineCheck")
	NTEK BB 1 A_WeaponReady
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAction",1,"GrenadeCheck")
	TNT1 A 0 A_JumpIfInventory("MineAction",1,"MineCheck")
	NTEK CC 1 A_WeaponReady
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAction",1,"GrenadeCheck")
	TNT1 A 0 A_JumpIfInventory("MineAction",1,"MineCheck")
	NTEK CC 1 A_WeaponReady
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAction",1,"GrenadeCheck")
	TNT1 A 0 A_JumpIfInventory("MineAction",1,"MineCheck")
	NTEK DD 1 A_WeaponReady
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAction",1,"GrenadeCheck")
	TNT1 A 0 A_JumpIfInventory("MineAction",1,"MineCheck")
	NTEK DD 1 A_WeaponReady
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAction",1,"GrenadeCheck")
	TNT1 A 0 A_JumpIfInventory("MineAction",1,"MineCheck")
	NTEK EE 1 A_WeaponReady
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAction",1,"GrenadeCheck")
	TNT1 A 0 A_JumpIfInventory("MineAction",1,"MineCheck")
	NTEK EE 1 A_WeaponReady
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAction",1,"GrenadeCheck")
	TNT1 A 0 A_JumpIfInventory("MineAction",1,"MineCheck")
	NTEK FF 1 A_WeaponReady
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAction",1,"GrenadeCheck")
	TNT1 A 0 A_JumpIfInventory("MineAction",1,"MineCheck")
	NTEK FF 1 A_WeaponReady
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAction",1,"GrenadeCheck")
	TNT1 A 0 A_JumpIfInventory("MineAction",1,"MineCheck")
	NTEK GG 1 A_WeaponReady
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAction",1,"GrenadeCheck")
	TNT1 A 0 A_JumpIfInventory("MineAction",1,"MineCheck")
	NTEK GG 1 A_WeaponReady
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAction",1,"GrenadeCheck")
	TNT1 A 0 A_JumpIfInventory("MineAction",1,"MineCheck")
	Goto ReadyLoop
  NoBuzzing:
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAction",1,"GrenadeCheck")
	TNT1 A 0 A_JumpIfInventory("MineAction",1,"MineCheck")
	NTEK A 1 A_WeaponReady
	Loop
  Deselect:
	NTEK A 1 A_Lower
	Wait
  Select:
	TNT1 A 0
	TNT1 A 0 A_Raise
	Wait
  Fire:
	TNT1 A 0 A_JumpIfNoAmmo("Empty")
	TNT1 A 0 A_AlertMonsters
	TNT1 A 0 Radius_Quake(4,2,0,1,0)
	TNT1 A 0 A_Light1
	TNT1 A 0 A_PlayWeaponSound("NemesisRifle/Fire")
	TNT1 A 0 A_FireCustomMissile("NemesisRifleShotPlayer",Random(100,-100)/100.00,1,0,0,0,Random(100,-100)/100.00)
	NTEK GH 1 Bright
	NTEK IJ 1 Bright A_Light2
	NTEK LMN 1 A_Light0
	TNT1 A 0 A_ReFire
	Goto ReadyLoop
  Empty:
	TNT1 A 0 A_PlaySound("weapons/click2")
	NTEK AAAAAAAAAA 1 A_WeaponReady(WRF_NOFIRE)
  AltFire:
	TNT1 A 0 A_JumpIfInventory("NLDemonMagazine",50,2)
	TNT1 A 0 A_JumpIfInventory("NLDemonAmmo",1,2)
	TNT1 A 0
	Goto ReadyLoop
	NTKR ABC 2
	NTKR D 3
	NTKR E 4 A_PlaySound("weapons/demontecheject")
	TNT1 A 0 Radius_Quake(2,2,0,1,0)
	NTKR F 2 A_PlaySound("weapons/demontechsteam")
	NTKR G 2 Radius_Quake(2,2,0,1,0)
	NTKR HIJK 2 Radius_Quake(2,2,0,1,0)
	NTKR L 18 A_FireCustomMissile("LDemonTechEmptyMag", 0, 0, 0, 1)
	NTKR MNO 2
	TNT1 A 0 A_JumpIfInventory("NLDemonAmmo",1,"Reload")	
  ReloadContinue:
	TNT1 A 0 A_PlayWeaponSound("weapons/demontechload")
	NTKR PQ 2
	TNT1 A 0 A_PlayWeaponSound("weapons/demontechclick")
	NTKR RST 3
	Goto ReadyLoop
  Reload:
	TNT1 A 0 A_TakeInventory("NLDemonAmmo",1)
	TNT1 A 0 A_GiveInventory("NLDemonMagazine",1)
	TNT1 A 0 A_JumpIfInventory("NLDemonMagazine",50,"ReloadContinue")
	TNT1 A 0 A_JumpIfInventory("NLDemonAmmo",1,"Reload")
	Goto ReloadContinue
  GrenadeCheck:
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAmmo",1,"GrenadeToss")
	TNT1 A 0 A_TakeInventory("HandGrenadeAction",1)
	Goto Ready+6
  GrenadeToss:
	TNT1 A 0 A_PlayWeaponSound("weapons/weapondown") 
	NTRS EDCBA 1
	TNT1 A 6
	HGRN ABC 1
	HGRN D 3
	HGRN EFGHI 2
	TNT1 A 14 A_PlayWeaponSound("weapons/hgrenadepin")
	TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadethrow")
	TNT1 A 0 A_TakeInventory("HandGrenadeAmmo",1,TIF_NOTAKEINFINITE)
	HGRN J 1 A_FireCustomMissile("ThrownGrenade",0,0,0,0,false)
	HGRN K 1
	HGRN LMNO 2
	TNT1 A 6
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAmmo",1,2)
	TNT1 A 0// A_TakeInventory("Hand Grenade",1)
	TNT1 A 0 A_TakeInventory("HandGrenadeAction",1)
	TNT1 A 0
	Goto Ready+1
  MineCheck:
	TNT1 A 0 A_JumpIfInventory("MineAmmo",1,"MineToss")
	TNT1 A 0 A_TakeInventory("MineAction",1)
	Goto Ready+6
  MineToss:
	TNT1 A 0 A_PlayWeaponSound("weapons/weapondown") 
	NTRS EDCBA 1
	TNT1 A 10
	TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadethrow")
	MINE ABCDEF 1	
	TNT1 A 0 A_TakeInventory("MineAmmo",1,TIF_NOTAKEINFINITE)	  
	MINE G 1 A_FireCustomMissile("ThrownMine",0,0,0,0,false)
	MINE HI 1
	MINE JK 2
	TNT1 A 0 A_JumpIfInventory("MineAmmo",1,2)
	TNT1 A 0// A_TakeInventory("Land Mine",1)
	TNT1 A 0 A_TakeInventory("MineAction",1)
	TNT1 A 0
	TNT1 A 5
	Goto Ready+1 
	}
}

ACTOR NLDemonMagazine : Ammo 
{
+IGNORESKILL
Inventory.Amount 0
Inventory.MaxAmount 50
Ammo.BackpackAmount 0
Ammo.BackpackMaxAmount 50
Inventory.Icon "NTEPA0"
}

ACTOR NLDemonAmmo : Ammo
{
Scale 0.65
+NOTIMEFREEZE
Inventory.Amount 50
Inventory.MaxAmount 250
Ammo.BackpackAmount 0
Ammo.BackpackMaxAmount 500
Inventory.Icon "NAMGA0"
Inventory.PickupSound "items/legendaryammo"
Inventory.PickupMessage "Nemesis Energy Cells Obtained"
States
	{
	Spawn:
	NAMG A -1
	Stop
	}
}

ACTOR NLDemonAmmoBox : NLDemonAmmo
{
Scale 0.65
Inventory.Amount 100
Inventory.PickupMessage "Charged Nemesis Energy Cells Obtained"
Inventory.PickupSound "items/legendaryammopack"
+NOTIMEFREEZE
States
	{
	Spawn:
	NAMO A -1
	Stop
	}
}



ACTOR NemesisRifleShotEnemy
{
PROJECTILE
Height 3
Radius 3
Speed 60
Scale 0.5
RenderStyle Add
Decal "DoomImpScorch"
Damage 60
+FORCERADIUSDMG
+NOTIMEFREEZE
+THRUSPECIES
DamageType "Legendary"
DeathSound "weapons/demontechex"
States
  {
  Spawn:
	NTPR ABCDEF 1 Bright A_SpawnItemEx("NemesisRifleTrailSpawner")
	Loop  
  Death:
	TNT1 A 0 A_SpawnItemEx("NemesisWhiteParticleSpawner",0,0,0,0,0,0,0,SXF_CLIENTSIDE,0)
	TNT1 AAA 0 A_CustomMissile("WhiteNemesisKaboom7",0,0,random(0,360),CMF_AIMDIRECTION,random(0,360))
	TNT1 AAA 0 A_CustomMissile("LegendarySmokeFX4",0,0,random(0,360),CMF_AIMDIRECTION,random(0,360))
	TNT1 A 0 A_SpawnItemEx("NemesisADemonTechEx",0,0,0,0,0,0,0,SXF_CLIENTSIDE,0)
	TNT1 A 1 A_CustomMissile("NemesisRifleShotExplosion",0,0,0,2)
	Stop
	}
}

ACTOR NemesisRifleShotExplosion
{
  Projectile
  Speed 0
  +FORCERADIUSDMG
  +NOTIMEFREEZE
  +NODAMAGETHRUST
  Damagetype "Legendary"
  States
  {
  Spawn:
  Death:
	TNT1 A 0
	TNT1 A 1 A_Explode(50,100)
	Stop
	}
}

ACTOR NemesisRifleTrailSpawner
{
  +CLIENTSIDEONLY
  +NOTIMEFREEZE
  +NOINTERACTION
  States
  {
  Spawn:
	TNT1 A 0 NoDelay A_SpawnItemEx("NLDemonTechTrail",frandom(-2,2),frandom(-2,2),frandom(-2,2),frandom(0,-3),frandom(-1.5,1.5),frandom(-1.5,1.5))
	TNT1 A 1 A_SpawnItemEx("NemesisRifleParticle",frandom(-4,4),frandom(-4,4),frandom(-4,4),frandom(0,-2),frandom(-1,1),frandom(-1,1))
	Stop
	}
}

ACTOR NemesisRifleParticle : EnergyProjectileSparkRed
{
  +NOINTERACTION
  +NOTIMEFREEZE
  Scale 0.045
  States
  {
  Spawn:
	TNT1 A 0 NoDelay A_JumpIf(CallAcs("LCAEffectCheck"),"Toaster")
	SPKW A 1 Bright A_FadeOut(0.05)
	Loop
  Toaster:
	TNT1 A 1
	Stop
	}
}

ACTOR NLDemonTechTrail : BFG9500Trail
{
  Scale 0.5
  Alpha 0.4
  Renderstyle Subtract
  +NOTIMEFREEZE
  States
  {
  Spawn:
	TNT1 A 0 NoDelay A_JumpIf(CallAcs("LCAEffectCheck"),"Toaster")
	TNT1 A 2
  SpawnLoop:
	CLBA D 1 Bright A_FadeOut(0.035)
	TNT1 A 0 A_SetScale(ScaleX-0.03)
	Loop
  Toaster:
	TNT1 A 1
	Stop
	}
}

ACTOR NemesisADemonTechEx
{
Scale 0.7
RenderStyle Add
+NOINTERACTION
+CLIENTSIDEONLY
+NOTIMEFREEZE
States
	{
	Spawn:
	TNT1 A 0 Bright
	TNT1 A 0 Bright A_JumpIf(CallAcs("LCAEffectCheck"),"Toaster")
	NRPG ABCDEFGH 2 Bright A_FadeOut(0.1,1)
	Stop
	Toaster:
	NRPG ABCDEFGH 2 Bright
	Stop
	}
}

ACTOR NemesisRifleShotExplosionPlayer : NemesisRifleShotExplosion
{
Damagetype "PlayerNemesisPlasma"
Species "Player"
Speed 60
+FOILINVUL
States
{
Spawn:
Death:
	TNT1 A 0
	TNT1 A 1 A_Explode(170,100)
	Stop
}
}

ACTOR NemesisRifleShotPlayer : NemesisRifleShotEnemy
{
+THRUSPECIES
+FOILINVUL
Damage 70
Species "Player"
DamageType "Legendary"
States
  {
  Death:
	TNT1 A 0 A_SpawnItemEx("NemesisWhiteParticleSpawner",0,0,0,0,0,0,0,SXF_CLIENTSIDE,0)
	TNT1 AAA 0 A_CustomMissile("WhiteNemesisKaboom7",0,0,random(0,360),CMF_AIMDIRECTION,random(0,360))
	TNT1 AAA 0 A_CustomMissile("LegendarySmokeFX4",0,0,random(0,360),CMF_AIMDIRECTION,random(0,360))
	TNT1 A 0 A_SpawnItemEx("NemesisADemonTechEx",0,0,0,0,0,0,0,SXF_CLIENTSIDE,0)
	TNT1 A 1 A_CustomMissile("NemesisRifleShotExplosionPlayer",0,0,0,2)
	Stop
	}
}