ACTOR "Nemesis Plasmatic Cannon" : "Legendary Plasmatic Cannon"
{
  Weapon.AmmoType "NLDemonAmmo"
  Weapon.AmmoUse 5
  Weapon.AmmoType2 "NLDemonAmmo"
  Weapon.AmmoUse2 1
  Weapon.Upsound "NemesisCannon/up"
  Weapon.PreferredSkin "LegendaryCannon-Marine"
  Inventory.PickupSound "NemesisCannon/up"
  Inventory.PickupMessage "You have acquired the Nemesis Plasmatic Cannon! None can stand before you!"
  Obituary "%o was seared from dark energy by %k's Nemesis Plasmatic Cannon."
  Tag "Nemesis Plasmatic Cannon"
  States
  {
  Spawn:
	NEMC Z -1
	Loop
  Ready:
	NCAN A 1 A_WeaponReady
	Loop
  Deselect:
	TNT1 A 0
	TNT1 A 0 A_TakeInventory("HandGrenadeAction",1)
	TNT1 A 0 A_TakeInventory("MineAction",1)
	TNT1 A 0 A_TakeInventory("RailgunAction",1)
	TNT1 A 0 A_PlayWeaponSound("weapons/weapondown")
  DeselectLoop:
	NCAN A 0 A_Lower
	NCAN A 1 A_Lower
	Loop
  Select:
	NCAN A 0 A_Raise
	NCAN A 1 A_Raise
	Loop
  Fire:
	TNT1 A 0 A_JumpIfInventory("NemesisCannonMode2",1,"Fire3")
	TNT1 A 0 A_JumpIfInventory("NemesisCannonMode1",1,"Fire2")
	TNT1 A 0 A_JumpIfInventory("NLDemonAmmo",10,"FireContinue")
	Goto Ready
  FireContinue:
	TNT1 A 0 A_GunFlash
	NCAN B 2 Bright
	TNT1 A 0 A_PlaySound("NemesisCannon/Fire")
	TNT1 A 0 Radius_Quake(2,2,0,1,0)
	TNT1 A 0 A_TakeInventory("NLDemonAmmo",5,TIF_NOTAKEINFINITE)
	NCAN C 2 Bright A_FireCustomMissile("NemesisCannonBall",0,1,0,0)
	NCAN DE 2 Bright
	NCAN FFFGGGHHHAAA 1
	NCAN A 3 A_Refire
	Goto Ready
  Fire2:
	TNT1 A 0 A_GunFlash
	NCAN B 2 Bright
	TNT1 A 0 A_PlaySound("NemesisCannon/Laser")
	TNT1 A 0 Radius_Quake(2,2,0,1,0)
	NCAN C 2 Bright A_FireCustomMissile("NemesisCannonLaserPlayer",0,1,0,0)
	NCAN DE 2 Bright
	NCAN FFGGHH 1
	NCAN A 3 A_Refire
	Goto Ready
  Fire3:
	TNT1 A 0 A_JumpIfInventory("NLDemonAmmo",100,"Fire3Continue")
	Goto Ready
  Fire3Continue:
	TNT1 A 0 A_JumpIfInventory("AgilityRuneRage",1,"NoSpeedForYou3")
	NCAN A 95 Bright A_PlaySound("devastator/charge",1)
	TNT1 A 0 A_GunFlash
	NCAN BBB 1 Bright
	TNT1 A 0 Radius_Quake(2,2,0,1,0)	
	TNT1 A 0 A_PlaySound("NemesisCannon/BigLaser",1)
	TNT1 A 0 A_TakeInventory("NLDemonAmmo",95,TIF_NOTAKEINFINITE)
	TNT1 A 0 A_FireCustomMissile("NemesisCannonIonBeamPlayer",0,1,0,0)
    NCAN CCCDDDEEE 1 Bright
	TNT1 A 0 A_PlaySound ("legendarycannon/steam",7)
	TNT1 A 0 A_FireCustomMissile("LegendaryCannonSmoke",0,0,1,6)
    NCAN FFFFFFGGGGGGHHHHHHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1 A_FireCustomMissile("LegendaryCannonSmoke2",0,0,1,6)
	NCAN A 3 A_Refire("Fire3")
	Goto Ready	
  NoSpeedForYou3:
	NCAN A 190 Bright A_PlaySound("devastator/charge",1)
	TNT1 A 0 A_GunFlash
	NCAN BBB 1 Bright
	TNT1 A 0 Radius_Quake(2,2,0,1,0)	
	TNT1 A 0 A_PlaySound("NemesisCannon/BigLaser",1)
	TNT1 A 0 A_TakeInventory("NLDemonAmmo",95,TIF_NOTAKEINFINITE)
	TNT1 A 0 A_FireCustomMissile("NemesisCannonIonBeamPlayer",0,1,0,0)
    NCAN CCCDDDEEE 1 Bright
	TNT1 A 0 A_PlaySound ("legendarycannon/steam",7)
	TNT1 A 0 A_FireCustomMissile("LegendaryCannonSmoke",0,0,1,6)
    NCAN FFFFFFGGGGGGHHHHHHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1 A_FireCustomMissile("LegendaryCannonSmoke2",0,0,1,6)
	NCAN A 6 A_Refire("Fire3")
	Goto Ready	
	
  Altfire:
	TNT1 A 0 A_JumpIfInventory("NemesisCannonMode2",1,"Altfire3")
	TNT1 A 0 A_JumpIfInventory("NemesisCannonMode1",1,"Altfire2")
	NCAN A 1
	TNT1 A 0 A_Playsound("NemesisCannon/Mode2")
	TNT1 A 0 A_GiveInventory("NemesisCannonMode1")
	TNT1 A 0 A_Print("Laser")
	NCAN A 2 Offset(0,34)
	NCAN A 2 Offset(0,37)
	NCAN A 2 Offset(0,34)
	NCAN A 1
	TNT1 A 0 A_Refire("NoAutoAltFirePls")
	Goto Ready
  Altfire2:
	NCAN A 1
	TNT1 A 0 A_Playsound("NemesisCannon/Mode3")
	TNT1 A 0 A_TakeInventory("NemesisCannonMode1")
	TNT1 A 0 A_GiveInventory("NemesisCannonMode2")
	TNT1 A 0 A_Print("Ion Beam")
	NCAN A 2 Offset(0,34)
	NCAN A 2 Offset(0,37)
	NCAN A 2 Offset(0,34)
	NCAN A 1
	TNT1 A 0 A_Refire("NoAutoAltFirePls")
	Goto Ready
  Altfire3:
	NCAN A 1
	TNT1 A 0 A_Playsound("NemesisCannon/Mode1")
	TNT1 A 0 A_TakeInventory("NemesisCannonMode2")
	TNT1 A 0 A_Print("Cannonball")
	NCAN A 2 Offset(0,34)
	NCAN A 2 Offset(0,37)
	NCAN A 2 Offset(0,34)
	NCAN A 1
	TNT1 A 0 A_Refire("NoAutoAltFirePls")
	Goto Ready
	
  NoAutoAltFirePls:
	NCAN A 1
	NCAN A 1 A_Refire("NoAutoAltFirePls")
	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 NemesisCannonMode1 : Inventory { Inventory.MaxAmount 1 }
ACTOR NemesisCannonMode2 : Inventory { Inventory.MaxAmount 1 }






ACTOR NemesisCannonProj : LegendaryCannonProj
{
Speed 70
BounceCount 4
Damage 85
BounceFactor 1.0
WallBounceFactor 1.0
Species " "
DamageType "Legendary"
DeathSound "lrball3/exp"
States
	{
	Spawn:
	TNT1 A 0 Bright //A_CountDown
	TNT1 A 0 Bright A_SeekerMissile(15,8,SMF_LOOK)
	NRB3 AA 1 Bright A_SpawnItemEx("NemesisCannonProjTrail",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
	TNT1 A 0 Bright A_SeekerMissile(15,8,SMF_LOOK)
	NRB3 BB 1 Bright A_SpawnItemEx("NemesisCannonProjTrail",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
	TNT1 A 0 Bright A_SeekerMissile(15,8,SMF_LOOK)
	NRB3 CC 1 Bright A_SpawnItemEx("NemesisCannonProjTrail",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
	TNT1 A 0 Bright A_SeekerMissile(15,8,SMF_LOOK)
	NRB3 DD 1 Bright A_SpawnItemEx("NemesisCannonProjTrail",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
	Loop
	Death:
	TNT1 A 0 A_PlaySound("weapons/rocklx",2)
	XDeath:
	TNT1 AA 0 A_SpawnItemEx("NemesisWhiteParticleSpawner",0,0,0,0,0,0,0,SXF_CLIENTSIDE,0) 
	TNT1 AAA 0 A_CustomMissile("WhiteNemesisKaboom3",0,0,random(0,360),2,random(0,360))
	TNT1 AAA 0 A_CustomMissile("LegendarySmokeFX4",0,0,random(0,360),2,random(0,360))
	TNT1 A 0 A_CustomMissile("NemesisCannonShotExplosion",0,0,0,2)
	TNT1 I 8 Bright A_Explode(128,128,0)
	TNT1 J 6 Bright
	TNT1 K 4 Bright
	Stop
	}
}

ACTOR NemesisCannonProjTrail : LegRevBall3Trail2
{
States
	{
	Spawn:
	TNT1 A 0 Bright
	TNT1 A 0 Bright A_JumpIf(CallAcs("LCAEffectCheck"),"Toaster")
	TNT1 AA 0 Bright A_Jump(256,"Flash1","Flash2","Flash3","Flash4")
	Flash1:
	NRB3 A 1 Bright A_FadeOut(0.125,1)
	Wait
	Flash2:
	NRB3 B 1 Bright A_FadeOut(0.125,1)
	Wait
	Flash3:
	NRB3 C 1 Bright A_FadeOut(0.125,1)
	Wait
	Flash4:
	NRB3 D 1 Bright A_FadeOut(0.125,1)
	Wait
	Toaster:
	TNT1 A 1 Bright
	Stop   
	}
}

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

ACTOR NemesisCannonProjPlayer : NemesisCannonProj
{
Species "Player"
States
	{
	Death:
	TNT1 A 0 A_PlaySound("weapons/rocklx",2)
	XDeath:
	TNT1 A 0
	TNT1 AA 0 A_SpawnItemEx("NemesisWhiteParticleSpawner",0,0,0,0,0,0,0,SXF_CLIENTSIDE,0) 
	TNT1 AAA 0 A_CustomMissile("WhiteNemesisKaboom3",0,0,random(0,360),2,random(0,360))
	TNT1 AAA 0 A_CustomMissile("LegendarySmokeFX4",0,0,random(0,360),2,random(0,360))
	TNT1 A 0 A_CustomMissile("NemesisCannonShotExplosionPlayer",0,0,0,2)
	TNT1 I 8 Bright A_Explode(128,128,0)
	TNT1 J 6 Bright
	TNT1 K 4 Bright
	Stop
	}
}

ACTOR NemesisCannonShotExplosionPlayer : NemesisCannonShotExplosion
{
Damagetype "PlayerNemesisPlasma"
Species "Player"
+FOILINVUL
States
{
Spawn:
Death:
	TNT1 A 0
	TNT1 A 1 A_Explode(280,200,0,0)
	Stop
}
}





ACTOR NemesisCannonIonBeam : FastProjectile
{
  Radius 6
  Speed 100
  Height 6
  damage 5
  Scale 0.3
  RenderStyle Add
  Projectile
  +RIPPER
  +STRIFEDAMAGE
  +FORCEXYBILLBOARD
  +NOTIMEFREEZE
  +THRUSPECIES
  +NOBOSSRIP
  Damagetype "Legendary"
  DeathSound "star/explode"
  States
  {
  Spawn:
	TNT1 A 0
	TNT1 A 0 A_SpawnItemEx("NemesisIonBeamTrail")
	TNT1 A 0 A_SpawnItemEx("NemesisCannonIonBeamParticle",0,0,0,frandom(-1,1),frandom(-1,1),frandom(-1,1))
	CLBA D 1 A_Explode(100,92,0,0)
    Loop
  Death:
	TNT1 A 0
	TNT1 A 0 A_Explode(500,256,0,1)
	TNT1 A 0 A_CustomMissile("NemesisCannonShotExplosion")
	TNT1 A 0 A_SpawnItem("NemesisWhiteProjExplodeLarge")
	TNT1 AAAA 0 A_SpawnItemEx("NemesisWhiteParticleSpawner",0,0,0,0,0,0,0,SXF_CLIENTSIDE,0) 
	TNT1 AAA 0 A_CustomMissile("WhiteNemesisKaboom",0,0,random(0,360),2,random(0,360))
	TNT1 AAA 0 A_CustomMissile("LegendarySmokeFX4",0,0,random(0,360),2,random(0,360))
	TNT1 AAAAAAAA 0 A_SpawnItemEx("NemesisCannonProj",Random(-8,8),Random(-8,8),Random(-8,8),Random(45,70),0,Random(-3,3),Random(170,190),SXF_NOCHECKPOSITION)	
	TNT1 AAAAAAAAAAAAAAAA 0 A_SpawnItemEx("NemesisCannonProj",Random(-8,8),Random(-8,8),Random(-8,8),Random(45,70),0,Random(-3,3),Random(-14,14),SXF_NOCHECKPOSITION)
    TNT1 A 50 Bright
    Stop
  }
}

ACTOR NemesisCannonIonBeamPlayer : NemesisCannonIonBeam
{
  Species "Player"
  States
  {
  Death:
	TNT1 A 0
	TNT1 A 0 A_Explode(500,256,0,1)
	TNT1 A 0 A_CustomMissile("NemesisCannonShotExplosionPlayer")
	TNT1 A 0 A_SpawnItem("NemesisWhiteProjExplodeLarge")
	TNT1 AAAA 0 A_SpawnItemEx("NemesisWhiteParticleSpawner",0,0,0,0,0,0,0,SXF_CLIENTSIDE,0) 
	TNT1 AAA 0 A_CustomMissile("WhiteNemesisKaboom",0,0,random(0,360),2,random(0,360))
	TNT1 AAA 0 A_CustomMissile("LegendarySmokeFX4",0,0,random(0,360),2,random(0,360))
	TNT1 AAAAAAAA 0 A_SpawnItemEx("NemesisCannonProjPlayer",Random(-8,8),Random(-8,8),Random(-8,8),Random(45,70),0,Random(-3,3),Random(170,190),SXF_NOCHECKPOSITION)	
	TNT1 AAAAAAAAAAAAAAAA 0 A_SpawnItemEx("NemesisCannonProjPlayer",Random(-8,8),Random(-8,8),Random(-8,8),Random(45,70),0,Random(-3,3),Random(-14,14),SXF_NOCHECKPOSITION)
    TNT1 A 50 Bright
    Stop
  }
}

ACTOR NemesisIonBeamTrail
{
  +NOINTERACTION
  +CLIENTSIDEONLY
  +FORCEXYBILLBOARD
  Renderstyle Add
  States
  {
  Spawn:
	NBOM ABCDEFGHIJKLMN 1 Bright
	Stop
	}
}

ACTOR NemesisCannonIonBeamParticle : EnergyProjectileSparkRed
{
  +NOINTERACTION
  +NOTIMEFREEZE
  Scale 0.04
  States
  {
  Spawn:
	TNT1 A 0 NoDelay A_JumpIf(CallAcs("LCAEffectCheck"),"Toaster")
	TNT1 A 2
  SpawnLoop:
	TNT1 A 0 A_ChangeVelocity(frandom(0.8,-0.8),frandom(0.8,-0.8),frandom(0.8,-0.8),0)
	SPKW A 1 Bright A_FadeOut(0.03)
	Loop
  Toaster:
	TNT1 A 1
	Stop
	}
}








ACTOR NemesisCannonLaser : FastProjectile
{
  Radius 6
  Speed 60
  Height 6
  damage 5
  Scale 0.3
  RenderStyle Add
  Projectile
  +RIPPER
  +STRIFEDAMAGE
  +FORCEXYBILLBOARD
  +NOTIMEFREEZE
  +THRUSPECIES
  +NODAMAGETHRUST
  Damagetype "Legendary"
  DeathSound "weapons/demontechex"
  States
  {
  Spawn:
	TNT1 A 0
	TNT1 A 0 A_SpawnItemEx("NemesisCannonLaserParticle",0,0,0,frandom(-1,1),frandom(-1,1),frandom(-1,1))
	CLBA D 1 A_Explode(10,60,0,0)
    Loop
  Death:
	TNT1 A 0
	TNT1 A 0 A_Explode(128,128,0,1)
	TNT1 A 0 A_CustomMissile("NemesisCannonShotExplosion")
	TNT1 A 0 A_SpawnItem("NemesisWhiteProjExplode")
	TNT1 AAAA 0 A_SpawnItemEx("NemesisWhiteParticleSpawner",0,0,0,0,0,0,0,SXF_CLIENTSIDE,0) 
	TNT1 AAA 0 A_CustomMissile("WhiteNemesisKaboom3",0,0,random(0,360),2,random(0,360))
	TNT1 AAA 0 A_CustomMissile("LegendarySmokeFX4",0,0,random(0,360),2,random(0,360))
    TNT1 A 10 Bright
    Stop
  }
}

ACTOR NemesisCannonLaserPlayer : NemesisCannonLaser
{
  Species "Player"
  States
  {
  Death:
	TNT1 A 0
	TNT1 A 0 A_Explode(128,128,0,1)
	TNT1 A 0 A_CustomMissile("NemesisCannonShotExplosionPlayer")
	TNT1 A 0 A_SpawnItem("NemesisWhiteProjExplode")
	TNT1 AAAA 0 A_SpawnItemEx("NemesisWhiteParticleSpawner",0,0,0,0,0,0,0,SXF_CLIENTSIDE,0) 
	TNT1 AAA 0 A_CustomMissile("WhiteNemesisKaboom3",0,0,random(0,360),2,random(0,360))
	TNT1 AAA 0 A_CustomMissile("LegendarySmokeFX4",0,0,random(0,360),2,random(0,360))
    TNT1 A 10 Bright
    Stop
	}
}

ACTOR NemesisCannonLaserParticle : NemesisCannonIonBeamParticle
{
  Scale 0.025
  States
  {
  Spawn:
	TNT1 A 0 NoDelay A_JumpIf(CallAcs("LCAEffectCheck"),"Toaster")
	TNT1 A 2
  SpawnLoop:
	TNT1 A 0 A_ChangeVelocity(frandom(0.8,-0.8),frandom(0.8,-0.8),frandom(0.8,-0.8),0)
	SPKW A 1 Bright A_FadeOut(0.03)
	Loop
  Toaster:
	TNT1 A 1
	Stop
	}
}

ACTOR NemesisCannonLaserTrail
{
  RenderStyle Add
  Alpha 0.75
  YScale 0.04
  XScale 0.08
  +NOGRAVITY
  +CLIENTSIDEONLY
  +NOTIMEFREEZE
  +NOINTERACTION
  States
  {
  Spawn:
    NEMF A 0 //A_SetScale(ScaleX -0.006, ScaleY -0.006)
    NEMF A 2 bright A_FadeOut(0.2)
    Loop
  }
}





ACTOR NemesisCannonShotExplosionPlayer2 : NemesisCannonShotExplosionPlayer
{
Damagetype "Legendary"
-FOILINVUL
States
{
Spawn:
Death:
	TNT1 A 0
	TNT1 A 1 A_Explode(250,350,0,0,280)
	Stop
}
}

Actor NemesisCannonBall : LegendaryCannonBallCF
{
  Speed 70
  Damage 90
  +FOILINVUL
  Damagetype "PlayerNemesisPlasma"
  Decal Scorch
  States
  {
  Spawn:
	NRBA A 1 Bright A_SpawnItemEx("NemesisCannonProjTrail2")
    Loop
  Death:
	TNT1 A 0 A_SetScale(1.0)
	TNT1 AAAA 0 A_SpawnItemEx("LegendaryDebris",0,0,Random(20,40),Random(4,-4),Random(4,-4),Random(4,8),0,128)
	TNT1 A 0 A_SpawnItemEx("NemesisBFGShockwave", 0, 0, 0, 0, 0, 0, 0, 128)
	TNT1 AA 0 A_SpawnItemEx("NemesisWhiteParticleSpawner", 0, 0, 0, 0, 0, 0, 0, 128)
    TNT1 AAA 0 A_CustomMissile("WhiteNemesisKaboom", 0, 0, random(0,360), 2, random(0,360))
	TNT1 AAA 0 A_CustomMissile("LegendarySmokeFX2", 0, 0, random(0,360), 2, random(0,360))
	TNT1 A 0 A_CustomMissile("NemesisCannonShotExplosionPlayer",0,0,0,2)
    TNT1 A 0 A_Explode(50,350,0,0,280)
    NFE3 ABCDEF 4 Bright
    Stop
	}
}

Actor NemesisCannonProjTrail2 : NemesisCannonProjTrail { Scale 0.25 }