Actor "Nemesis BFG" : Weapon
{
  +NOAUTOFIRE
  +WEAPON.BFG
  +WEAPON.NOAUTOAIM
  -INVENTORY.UNDROPPABLE
  Weapon.PreferredSkin "LegendaryBFG-Marine"
  Weapon.AmmoGive 150
  Weapon.AmmoType "NLDemonAmmo"
  Weapon.AmmoType2 "NLDemonAmmo"
  Weapon.AmmoUse 200
  Weapon.AmmoUse2 50
  weapon.KickBack 90
  Weapon.SlotNumber 8
  Weapon.UpSound "NemesisBFG/Pickup"
  Inventory.PickupSound "NemesisBFG/Pickup"
  Inventory.PickupMessage "Nemesis BFG! Rend the souls from your foes!"
  Obituary "%o regrets going against %k's Nemesis BFG."
  Tag "Nemesis BFG"
  States
	{
  Spawn:
	NMBG X -1
	Loop
  Select:
	TNT1 A 0 A_ZoomFactor(1)
	TNT1 A 0 A_Raise
	NMB8 Q 1 A_Raise
	Loop
  Deselect:
	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:
	TNT1 A 0 A_StopSound(5)
	TNT1 A 0 A_ZoomFactor(1)
	TNT1 A 0 A_Lower
	NMB8 Q 1 A_Lower
	Loop
  Ready:
	TNT1 A 0 A_ZoomFactor(1)
	TNT1 A 0 A_PlaySound("NemesisBFG/Loop",5,1.0,1)
	NMB0 AAAABBBBCCCCDDDDCCCCBBBB 1 A_WeaponReady
	Loop
  Fire:
	TNT1 A 0 A_PlaySound("truelegbfg/trigger",6)
	NMB9 A 1
	TNT1 A 0 A_PlaySound("NemesisBFG/Charge",1)
	NMB9 AABBCCDD 1
	TNT1 A 0 A_GiveInventory("GuruCharge",25)
  Gurucharger:
	TNT1 A 0 A_TakeInventory("GuruCharge",1)
	//TNT1 A 0 A_SpawnItemEx("TrueNemesisHellionSmokeSpawner")
	NMB9 ABCD 1 Bright A_Quake(4,2,0,2,"none")
	TNT1 A 0 A_JumpIfInventory("GuruCharge",1,"Gurucharger")
	NMB8 AABBCCDD 1 Bright A_Quake(4,2,0,2,"none")
	TNT1 A 0 A_PlaySound("NemesisBFG/Fire",1)
	TNT1 A 0 A_FireCustomMissile("PlayerNemesisGuruBall",0,1,12,0)
	TNT1 A 0 A_Recoil(45)
	TNT1 A 0 A_GunFlash
	TNT1 A 0 A_SetBlend("White",0.5,60)
	TNT1 A 0 A_SetBlend("White",0.25,60)
	NMB8 E 1 Bright A_ZoomFactor(0.9)
	NMB8 E 1 Bright A_ZoomFactor(0.91)
	NMB8 F 1 Bright A_ZoomFactor(0.92)
	NMB8 F 1 Bright A_ZoomFactor(0.93)
	NMB8 G 1 Bright A_ZoomFactor(0.94)
	NMB8 G 1 Bright A_ZoomFactor(0.95)
	NMB8 H 1 Bright A_ZoomFactor(0.96)
	NMB8 H 1 Bright A_ZoomFactor(0.97)
	NMB8 I 1 Bright A_ZoomFactor(0.98)
	NMB8 I 1 Bright A_ZoomFactor(0.99)
	NMB8 KK 1 A_ZoomFactor(1)
	NMB8 LLMMNNOOPPQQ 1
	Goto Ready
  Altfire:
	TNT1 A 0 A_PlaySound("star/fire",1)
	TNT1 A 0 A_FireCustomMissile("PlayerMiniNemesisBFGBall",0,1,12,0)
	TNT1 A 0 A_Recoil(25)
	TNT1 A 0 A_GunFlash
	TNT1 A 0 A_SetBlend("White",0.25,35)
	TNT1 A 0 A_SetBlend("White",0.125,35)
	NMB8 EFGHIJ 1 Bright
	NMB8 LLMMNNOOPPQQ 1
	Goto Ready
  Flash:
	TNT1 A 7 bright A_Light2
	TNT1 A 4 bright A_Light1
	TNT1 A 0 bright A_Light0
	Stop
	}
}

ACTOR PlayerNemesisGuruBall : NemesisGuruBall
{
  Speed 25
  Damage 200
  Scale 2.5
  DamageType "PlayerNemesisPlasma"
  MissileType ""
  States
  {
  Spawn:
	TNT1 A 0
	TNT1 A 0 A_PlaySound("Weapons/GuruFly",5,1.0,1)
	TNT1 A 0 A_Explode(600,128,0,1)
	TNT1 A 0 A_SpawnItemEx("PlayerNemesisGuruSphereSmokeProjectile",0,0,0,frandom(-1,1),frandom(-1,1),frandom(-1,1),random(0,359))
    TNT1 A 0 A_SpawnItemEx("NemesisGuruTrailSpark",random(28,-28),random(28,-28),random(28,-28),0,0,0,0,0,0)
	TNT1 A 0 A_SpawnItemEx("NemesisGuruTrail",-3,0,0,0,0,0,0,0,0)
	TNT1 A 0 A_CustomMissile("NemesisPlayerDevastatorBolt",6,0,random(0,359),CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-40,40))
	CLBB D 1 Bright A_SpawnItemEx("NemesisPlayerDTBFGProjectileAttack",0,0,0,0,0,0,0,SXF_SETMASTER)
	TNT1 A 0 A_Explode(600,128,0,1)
	TNT1 A 0 A_SpawnItemEx("PlayerNemesisGuruSphereSmokeProjectile",0,0,0,frandom(-1,1),frandom(-1,1),frandom(-1,1),random(0,359))
    TNT1 A 0 A_SpawnItemEx("NemesisGuruTrailSpark",random(28,-28),random(28,-28),random(28,-28),0,0,0,0,0,0)
	TNT1 A 0 A_SpawnItemEx("NemesisGuruTrail",-3,0,0,0,0,0,0,0,0)
	TNT1 A 0 A_CustomMissile("NemesisPlayerDevastatorBolt",6,0,random(0,359),CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-40,40))
	CLBB D 1 Bright //A_SpawnItemEx("NemesisCyberDTBFGProjectileAttack",0,0,0,0,0,0,0,SXF_SETMASTER)
	TNT1 A 0 A_Explode(600,128,0,1)
	TNT1 A 0 A_SpawnItemEx("PlayerNemesisGuruSphereSmokeProjectile",0,0,0,frandom(-1,1),frandom(-1,1),frandom(-1,1),random(0,359))
    TNT1 A 0 A_SpawnItemEx("NemesisGuruTrailSpark",random(28,-28),random(28,-28),random(28,-28),0,0,0,0,0,0)
	TNT1 A 0 A_SpawnItemEx("NemesisGuruTrail",-3,0,0,0,0,0,0,0,0)
	TNT1 A 0 A_CustomMissile("NemesisPlayerDevastatorBolt",6,0,random(0,359),CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-40,40))
	CLBB D 1 Bright //A_SpawnItemEx("NemesisCyberDTBFGProjectileAttack",0,0,0,0,0,0,0,SXF_SETMASTER)
	TNT1 A 0 A_Explode(600,128,0,1)
	TNT1 A 0 A_SpawnItemEx("PlayerNemesisGuruSphereSmokeProjectile",0,0,0,frandom(-1,1),frandom(-1,1),frandom(-1,1),random(0,359))
    TNT1 A 0 A_SpawnItemEx("NemesisGuruTrailSpark",random(28,-28),random(28,-28),random(28,-28),0,0,0,0,0,0)
	TNT1 A 0 A_SpawnItemEx("NemesisGuruTrail",-3,0,0,0,0,0,0,0,0)
	TNT1 A 0 A_CustomMissile("NemesisPlayerDevastatorBolt",6,0,random(0,359),CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-40,40))
	CLBB D 1 Bright //A_SpawnItemEx("NemesisCyberDTBFGProjectileAttack",0,0,0,0,0,0,0,SXF_SETMASTER)
    Loop
  Death:
	TNT1 A 0 A_Explode(8000,486,0,1)
	TNT1 AAAAAAAA 0 A_CustomMissile("NemesisPlayerBouncyBFG",0,0,random(0,360),2,random(-5,30))
	TNT1 A 1 A_SpawnItem("PlayerNemesisDeathBall")
	Stop
  }
}

Actor NemesisPlayerDevastatorBolt : NemesisCyberDevastatorBolt
{
  Species "Player"
  Damagetype "Normal"
  +THRUSPECIES
}

Actor PlayerNemesisGuruSphereSmokeProjectile : CyberNemesisGuruSphereSmokeProjectile
{
  Damagetype "PlayerNemesisPlasma"
}

ACTOR NemesisPlayerDTBFGProjectileAttack
{
  PROJECTILE
  Height 3
  Radius 3
  Speed 5
  FastSpeed 5
  +LOOKALLAROUND
  +QUICKTORETALIATE
  +NOTARGET
  +NOCLIP
  +NOTIMEFREEZE
  +FRIENDLY
  States
	{
  Spawn:
	TNT1 A 0 Bright
	TNT1 A 0 Bright A_CopyFriendliness(AAPTR_TARGET)
	TNT1 A 0 Bright A_RearrangePointers(AAPTR_NULL, AAPTR_TARGET, AAPTR_NULL)
	TNT1 AAAAA 1 Bright A_LookEx(LOF_NOSOUNDCHECK|LOF_NOSEESOUND,0,1250,0,360,"Attack")
	Goto Death
  Attack:
	TNT1 A 0 Bright
	TNT1 A 0 Bright A_FaceTarget
	TNT1 A 0 Bright A_RearrangePointers(AAPTR_MASTER, AAPTR_MASTER, AAPTR_NULL)
	TNT1 A 1 Bright A_CustomRailgun(30,0,None,None,RGF_SILENT|RGF_FULLBRIGHT,0,2,"LegendaryImpPuff",0,0,0,0,3.0,0,"NemesisBFGRailParticle")
	Goto Death
  Death:
	TNT1 A 1 Bright
	Stop
	}
}

Actor PlayerNemesisDeathBall : NemesisDeathBall
{
DamageType "PlayerNemesisPlasma"
+FOILINVUL
States
  {
  Spawn:
	TNT1 A 0 Bright
	TNT1 A 0 Bright A_PlaySound("Weapons/GuruBlast3",5) 
	Goto Death
  Death:
	TNT1 A 0 Bright
	TNT1 A 0 Bright A_PlaySound("Weapons/GuruBlast3",5)
	TNT1 A 0 Radius_Quake(15,20,0,20,0)
	//COLLATERAL DAMAGE EFFECTS
	TNT1 A 0 Bright A_Explode(4056,1000,0,1,500)
	TNT1 A 0 Bright A_BFGSpray("PlayerNemesisGuruSpray",15,20)
	//IMPACT STUFF
	TNT1 A 0 A_SpawnItemEx("NemesisBFGExplodeFX",0,0,10)
	TNT1 A 0 A_SpawnItemEx("NemesisGuruStruckGlowX",0,0,10,0,0,0,0,SXF_CLIENTSIDE,0)
	TNT1 A 0 A_SpawnItemEx("NemesisGuruStruckGlowY",0,0,10,0,0,0,0,SXF_CLIENTSIDE,0)
	TNT1 AAAAAAAAAAA 0 A_SpawnItemEx("CyberNemesisGuruSphereSmoke",random(126,-126),random(126,-126),random(66,-66),0.00001*random(100000,-100000),0.00001*random(100000,-100000),0.00001*random(100000,-100000),random(0,359),SXF_SETMASTER,0)
	TNT1 AAAAAAAAAAA 0 A_SpawnItemEx("NemesisGuruChunkSpark",random(126,-126),random(126,-126),random(66,-66),0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
	TNT1 AAAAAAAAAAAAAAAAAAA 2 A_SpawnItemEx("NemesisGuruChunkSpark",random(126,-126),random(126,-126),random(66,-66),0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
	Stop
  }
}

ACTOR PlayerNemesisGuruSpray : NemesisGuruSpray
{
Damagetype "Normal"
+FOILINVUL
}















ACTOR PlayerMiniNemesisBFGBall : MiniNemesisBFGBall
{
  +THRUSPECIES
  Species "Player"
  DamageType "PlayerNemesisPlasma"
  States
  {
  Spawn:
	TNT1 A 0 Bright A_LoopActiveSound
	TNT1 A 0 A_SpawnItemEx("PlayerNemesisGuruSphereSmokeProjectile",0,0,0,frandom(-1,1),frandom(-1,1),frandom(-1,1),random(0,359))
    CLBB D 1 Bright A_SpawnItemEx("NemesisWhiteProjParticleSuperLarge2",0,0,0,frandom(-4,4),frandom(-4,4),frandom(-4,4),random(0,359))
	TNT1 AA 0 A_SpawnItemEx("NemesisWhiteProjParticleSuperLarge2",0,0,0,frandom(-4,4),frandom(-4,4),frandom(-4,4),random(0,359))
    Loop
  Death:
	TNT1 A 0
	TNT1 A 0 Radius_Quake(5,60,0,10,0)
	TNT1 A 0 A_Explode(50,400,0)
	TNT1 A 0 A_SpawnItemEx("MiniCyberNemesisGuruSphereSmokeProjectile",0,0,0,frandom(-10,10),frandom(-10,10),frandom(-10,10),random(0,359))
	TNT1 AAAAAAAAA 0 A_SpawnItemEx("NemesisWhiteProjParticleSuperLarge2",0,0,0,frandom(-10,10),frandom(-10,10),frandom(-10,10),random(0,359))
    CLBB D 6 Bright A_SpawnItem("NemesisWhiteProjExplodeLarge")
	TNT1 A 0 A_Explode(50,400,0)
	TNT1 A 0 A_SpawnItemEx("MiniCyberNemesisGuruSphereSmokeProjectile",0,0,0,frandom(-10,10),frandom(-10,10),frandom(-10,10),random(0,359))
	TNT1 AAAAAAAAA 0 A_SpawnItemEx("NemesisWhiteProjParticleSuperLarge2",0,0,0,frandom(-10,10),frandom(-10,10),frandom(-10,10),random(0,359))
    CLBB D 6 Bright A_SpawnItem("NemesisWhiteProjExplodeLarge")
	TNT1 A 0 A_Explode(50,400,0)
	TNT1 A 0 A_SpawnItemEx("MiniCyberNemesisGuruSphereSmokeProjectile",0,0,0,frandom(-10,10),frandom(-10,10),frandom(-10,10),random(0,359))
	TNT1 AAAAAAAAA 0 A_SpawnItemEx("NemesisWhiteProjParticleSuperLarge2",0,0,0,frandom(-10,10),frandom(-10,10),frandom(-10,10),random(0,359))
    CLBB D 6 Bright A_SpawnItem("NemesisWhiteProjExplodeLarge")
	TNT1 A 0 A_Explode(50,400,0)
	TNT1 A 0 A_SpawnItemEx("MiniCyberNemesisGuruSphereSmokeProjectile",0,0,0,frandom(-10,10),frandom(-10,10),frandom(-10,10),random(0,359))
	TNT1 AAAAAAAAA 0 A_SpawnItemEx("NemesisWhiteProjParticleSuperLarge2",0,0,0,frandom(-10,10),frandom(-10,10),frandom(-10,10),random(0,359))
    CLBB D 6 Bright A_SpawnItem("NemesisWhiteProjExplodeLarge")
	TNT1 A 1 A_SpawnItem("PlayerMiniNemesisDeathBall")
    Stop
  }
}

Actor PlayerMiniNemesisDeathBall : MiniNemesisDeathBall
{
DamageType "PlayerNemesisPlasma"
+FOILINVUL
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_PlaySound("Weapons/GuruBlast3",5) 
		Goto Death
	Death:
		TNT1 A 0 A_PlaySound("Weapons/GuruBlast3",5)
		TNT1 A 0 Radius_Quake(15,20,0,20,0)
		//COLLATERAL DAMAGE EFFECTS
		TNT1 A 0 A_Explode(2048,700,0,1)
		TNT1 A 0 A_BFGSpray("PlayerMiniNemesisGuruSpray",15,20)
		//IMPACT STUFF
		TNT1 A 0 A_SpawnItemEx("MiniNemesisBFGExplodeFX",0,0,10)
		TNT1 A 0 A_SpawnItemEx("MiniNemesisGuruStruckGlowX",0,0,10,0,0,0,0,SXF_CLIENTSIDE,0)
		TNT1 A 0 A_SpawnItemEx("MiniNemesisGuruStruckGlowY",0,0,10,0,0,0,0,SXF_CLIENTSIDE,0)
		TNT1 AAAAAAAAAAA 0 A_SpawnItemEx("MiniCyberNemesisGuruSphereSmoke",random(126,-126),random(126,-126),random(66,-66),0.00001*random(100000,-100000),0.00001*random(100000,-100000),0.00001*random(100000,-100000),random(0,359),SXF_SETMASTER,0)
		TNT1 AAAAAAAAAAA 0 A_SpawnItemEx("MiniNemesisGuruChunkSpark",random(126,-126),random(126,-126),random(66,-66),0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 AAAAAAAAAAAAAAAAAAA 2 A_SpawnItemEx("MiniNemesisGuruChunkSpark",random(126,-126),random(126,-126),random(66,-66),0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		Stop
	}
}

ACTOR PlayerMiniNemesisGuruSpray : MiniNemesisGuruSpray
{
Damagetype "Normal"
+FOILINVUL
}

ACTOR NemesisPlayerBouncyBFG : PlayerMiniNemesisBFGBall
{
  +SKYEXPLODE
  +CANBOUNCEWATER
  Bouncetype Hexen
  BounceFactor 1.0
  Bouncecount 3
  States
  {
  Spawn:
	TNT1 A 0 Bright A_LoopActiveSound
	//TNT1 A 0 A_SpawnItemEx("PlayerNemesisGuruSphereSmokeProjectile",0,0,0,frandom(-1,1),frandom(-1,1),frandom(-1,1),random(0,359))
    CLBB D 1 Bright A_SpawnItemEx("NemesisWhiteProjParticleSuperLarge2",0,0,0,frandom(-4,4),frandom(-4,4),frandom(-4,4),random(0,359))
	TNT1 AA 0 A_SpawnItemEx("NemesisWhiteProjParticleSuperLarge2",0,0,0,frandom(-4,4),frandom(-4,4),frandom(-4,4),random(0,359))
    Loop
  Death:
	TNT1 A 0
/*	TNT1 A 0 Radius_Quake(5,60,0,10,0)
	TNT1 A 0 A_Explode(50,400,0)
	TNT1 A 0 A_SpawnItemEx("MiniCyberNemesisGuruSphereSmokeProjectile",0,0,0,frandom(-10,10),frandom(-10,10),frandom(-10,10),random(0,359))
	TNT1 AAAAAAAAA 0 A_SpawnItemEx("NemesisWhiteProjParticleSuperLarge2",0,0,0,frandom(-10,10),frandom(-10,10),frandom(-10,10),random(0,359))
    CLBB D 6 Bright A_SpawnItem("NemesisWhiteProjExplodeLarge")
	TNT1 A 0 A_Explode(50,400,0)
	TNT1 A 0 A_SpawnItemEx("MiniCyberNemesisGuruSphereSmokeProjectile",0,0,0,frandom(-10,10),frandom(-10,10),frandom(-10,10),random(0,359))
	TNT1 AAAAAAAAA 0 A_SpawnItemEx("NemesisWhiteProjParticleSuperLarge2",0,0,0,frandom(-10,10),frandom(-10,10),frandom(-10,10),random(0,359))
    CLBB D 6 Bright A_SpawnItem("NemesisWhiteProjExplodeLarge")
	TNT1 A 0 A_Explode(50,400,0)
	TNT1 A 0 A_SpawnItemEx("MiniCyberNemesisGuruSphereSmokeProjectile",0,0,0,frandom(-10,10),frandom(-10,10),frandom(-10,10),random(0,359))
	TNT1 AAAAAAAAA 0 A_SpawnItemEx("NemesisWhiteProjParticleSuperLarge2",0,0,0,frandom(-10,10),frandom(-10,10),frandom(-10,10),random(0,359))
    CLBB D 6 Bright A_SpawnItem("NemesisWhiteProjExplodeLarge")
	TNT1 A 0 A_Explode(50,400,0)
	TNT1 A 0 A_SpawnItemEx("MiniCyberNemesisGuruSphereSmokeProjectile",0,0,0,frandom(-10,10),frandom(-10,10),frandom(-10,10),random(0,359))
	TNT1 AAAAAAAAA 0 A_SpawnItemEx("NemesisWhiteProjParticleSuperLarge2",0,0,0,frandom(-10,10),frandom(-10,10),frandom(-10,10),random(0,359))
    CLBB D 6 Bright A_SpawnItem("NemesisWhiteProjExplodeLarge")*/
	TNT1 A 1 A_SpawnItem("PlayerMiniNemesisDeathBall")
    Stop
  }
}