ACTOR Ampershock : PlayerPawn
{
  Health 150
  Player.Maxhealth 150
  Mass 1000
  PainChance 255
  bloodcolor "DarkPurple"
  Species "Ghoul"
  Scale 0.49
  Player.WeaponSlot 1, Voltcleaver
  Player.DisplayName "Ampershock"
  Player.ScoreIcon "AMPRST"
  Player.StartItem "AmperArmor", 1
  Player.StartItem "SpecialAbility", 1
  Player.StartItem "Voltcleaver", 1
  Player.StartItem "VoltMeleeAmmo", 1
  Player.StartItem "VoltRingAmmo", 1
  Player.StartItem "AmperShieldAmmo", 100
  Player.StartItem "IsGhoul", 1
  Player.StartItem "Screamer", 0
  Player.ForwardMove 1.0
  Player.SideMove 1.0
  LimitedToTeam 1
  damagefactor "CryoXBow", 1.2
  Damagefactor "Bluefire", 0.0
  Damagefactor "ice", 1.2
  Damagefactor "ice2", 1.2
  Damagefactor "AltIce2", 1.2
  Damagefactor "fire2", 0.8
  Damagefactor "RenegadeFire", 0.8
  Damagefactor "AltFire2", 0.8
  Damagefactor "minion", 0.0
  Damagefactor "ZombieIce", 0.0
  Damagefactor "ZombiePoison", 0.0
  Damagefactor "ZombieSlaps", 0.0
  Damagefactor "Tenebra", 0.0
  DamageFactor "Fire", 0.0
  DamageFactor "Jitter", 0.0
  DamageFactor "Obliterator", 0.0
  Damagefactor "Judgement", 0.0
  player.soundclass "Ampershock"
  +NOSKIN
  +NOICEDEATH
  +QUICKTORETALIATE
	States
	{
	Spawn:
		AMPR A 0 A_JumpIfInventory("AmperWake",1,"Spawn2")
		AMPR A 0 A_PlaySound("Amper/Wake",CHAN_AUTO,1,0,ATTN_NONE)
		AMPR A 0 A_GiveInventory("AmperWake",1)
		AMPR A 0 Setplayerproperty(0,0,4)
		AMPR A 0 A_Changeflag("shootable",true)
		TNT1 A 0 A_JumpIfInventory("GwenGoddessStack",100,"GwenGoddessDeath")
		AMPR A 0 A_JumpIfInventory("AmperShieldItem",1,"ShieldSee")
		AMPR A 0 A_JumpIfInventory("AriaInfluence",10,"Dancing")
		AMPR A 0 A_JumpIfInventory("GhoulDisableTrigger",15,"DisableTheGhoul")
		AMPR A 6
		Loop
	Spawn2:
		AMPR A 0 Setplayerproperty(0,0,4)
		AMPR A 0 A_Changeflag("shootable",true)
		TNT1 A 0 A_JumpIfInventory("GwenGoddessStack",100,"GwenGoddessDeath")
		AMPR A 0 A_JumpIfInventory("AmperShieldItem",1,"ShieldSee")
		AMPR A 0 A_JumpIfInventory("AriaInfluence",10,"Dancing")
		AMPR A 0 A_JumpIfInventory("GhoulDisableTrigger",15,"DisableTheGhoul")
		AMPR A 105
		AMPR A 6 A_GiveInventory("VoltRingAmmo",1)
		Loop
	See:
		AMPR A 0 A_JumpIfInventory("AmperShieldItem",1,"ShieldSee")
		AMPR A 0 A_JumpIfHealthLower(100,"INeedHealingSee")
		AMPR A 0 A_Changeflag("shootable",true)
		TNT1 A 0 A_JumpIfInventory("GwenGoddessStack",100,"GwenGoddessDeath")
		AMPR A 0 A_JumpIfInventory("AriaInfluence",10,"Dancing")
		AMPR A 0 A_JumpIfInventory("GhoulDisableTrigger",15,"DisableTheGhoul")
		AMPR A 6
		loop
	INeedHealingSee:
		AMPR A 0 A_Changeflag("shootable",true)
		TNT1 A 0 A_JumpIfInventory("GwenGoddessStack",75,"GwenGoddessDeath")
		AMPR A 0 A_JumpIfInventory("AriaInfluence",10,"Dancing")
		AMPR A 0 A_JumpIfInventory("GhoulDisableTrigger",15,"DisableTheGhoul")
		AMPR B 0 A_SpawnItemEx("GhoulINeedHealingTrail",random(-20,20),random(-20,20),0,0,0,10)
		AMPR B 0 A_SpawnItemEx("64GhoulINeedHealingTrail",random(-20,20),random(-20,20),0,0,0,10)
		AMPR A 6
		Goto Spawn
	ShieldSee:
		AMPR A 0 A_JumpIfInventory("AmperNoShieldItem",1,"See")
		TNT1 A 0 A_JumpIfInventory("GwenGoddessStack",100,"GwenGoddessDeath")
		AMPR A 0 A_JumpIfInventory("GhoulDisableTrigger",15,"DisableTheGhoul")
		AMPR B 3 Bright
		Loop
	Dancing:
		AMPR A 0 A_Changeflag("shootable",true)
		AMPR A 0 A_TakeInventory("GhoulDisableTrigger",15)
		AMPR A 0 A_TakeInventory("AriaInfluence",10)
		AMPR A 0 Setplayerproperty(0,1,4)
		AMPR AAAAAAAAAAAAAAAA 1
		AMPR A 0 ThrustThingZ(0,20,0,0)
		AMPR A 0 ThrustThing(angle*random(0,224), 10, 0, 0)
		AMPR A 0 A_TakeInventory("GhoulDisableTrigger",15)
		AMPR A 0 A_TakeInventory("AriaInfluence",10)
		AMPR AAAAAAAAAAAAAAAA 1
		AMPR A 0 ThrustThingZ(0,20,0,0)
		AMPR A 0 ThrustThing(angle*random(0,224), 10, 0, 0)
		AMPR A 0 A_TakeInventory("GhoulDisableTrigger",15)
		AMPR A 0 A_TakeInventory("AriaInfluence",10)
		AMPR AAAAAAAAAAAAAAAA 1
		AMPR A 0 ThrustThingZ(0,20,0,0)
		AMPR A 0 ThrustThing(angle*random(0,224), 10, 0, 0)
		AMPR A 0 A_TakeInventory("GhoulDisableTrigger",15)
		AMPR A 0 A_TakeInventory("AriaInfluence",10)
		AMPR AAAAAAAAAAAAAAAA 1
		AMPR A 0 ThrustThingZ(0,20,0,0)
		AMPR A 0 ThrustThing(angle*random(0,224), 10, 0, 0)
		AMPR A 0 A_TakeInventory("GhoulDisableTrigger",15)
		AMPR A 0 A_TakeInventory("AriaInfluence",10)
		AMPR AAAAAAAAAAAAAAAA 1
		AMPR A 0 ThrustThingZ(0,20,0,0)
		AMPR A 0 ThrustThing(angle*random(0,224), 10, 0, 0)
		AMPR A 0 A_TakeInventory("GhoulDisableTrigger",15)
		AMPR A 0 A_TakeInventory("AriaInfluence",10)
		AMPR AAAAAAAAAAAAAAAA 1
		AMPR A 0 ThrustThingZ(0,20,0,0)
		AMPR A 0 ThrustThing(angle*random(0,224), 10, 0, 0)
		AMPR A 0 A_TakeInventory("GhoulDisableTrigger",15)
		AMPR A 0 A_TakeInventory("AriaInfluence",10)
		AMPR A 1 Setplayerproperty(0,0,4)
		AMPR A 0 A_TakeInventory("GhoulDisableTrigger",15)
		AMPR A 0 A_TakeInventory("AriaInfluence",10)
		Goto Spawn
	DisableTheGhoul:
		AMPR A 0 A_Changeflag("shootable",false)
		AMPR A 0 A_Changeflag("shootable",false)
		AMPR A 0 Setplayerproperty(0,1,4)
		AMPR A 0 A_TakeInventory("GhoulDisableTrigger",15)
		AMPR A 90 Bright A_SetTranslucent(1.0,0)
		AMPR A 0 A_TakeInventory("GhoulDisableTrigger",15)
		AMPR A 0 A_Changeflag("shootable",true)
		AMPR A 0 A_Changeflag("shootable",true)
		AMPR A 0 Setplayerproperty(0,0,4)
		AMPR A 0 Setplayerproperty(0,0,4)
		AMPR A 0 A_TakeInventory("GhoulDisableTrigger",15)
		Goto Spawn
	Missile:
		AMPR A 0 A_Changeflag("shootable",true)
		TNT1 A 0 A_JumpIfInventory("GwenGoddessStack",100,"GwenGoddessDeath")
		AMPR BCDE 3
		TNT1 A 0 A_JumpIfInventory("GwenGoddessStack",100,"GwenGoddessDeath")
		AMPR FGH 3
		Goto Spawn
	Pain:
		AMPR C 0 Setplayerproperty(0,0,4)
		TNT1 A 0 A_JumpIfInventory("GwenGoddessStack",100,"GwenGoddessDeath")
		TNT1 A 0 A_JumpIfInventory("GwenGoddessStack",100,"GwenGoddessDeath")
		AMPR A 6 A_Pain
		Goto Spawn
	Pain.Vivi:
	AMPR A 0 A_SetPitch(pitch - 3.0)
	AMPR A 0 A_SetAngle(angle + (random(-50,50)/10))
	Goto Pain
	Death.LoWangVampiric:
	TNT1 A 0 A_GiveToTarget("SWLoWangBloody",1)
	TNT1 A 0 A_JumpIfInventory("BloodCurseItem",1,"Death",AAPTR_TARGET)
	TNT1 A 0 A_GiveToTarget("Health",20)
	Goto Death
	Pain.ViviMine:
	AMPR A 0 ThrustThingZ(0,70,0,0)
	Goto Pain
	Death.SkarletPistolDrain:
	TNT1 A 0 A_JumpIfInventory("BloodCurseItem",1,"Death",AAPTR_TARGET)
	TNT1 A 0 A_GiveToTarget("Health",50)
	Goto Death
	Death.SkarletVampiric:
	TNT1 A 0 A_JumpIfInventory("BloodCurseItem",1,"Death",AAPTR_TARGET)
	TNT1 A 0 A_GiveToTarget("Health",60)
	Goto Death
	Death.DoomChainSaw:
	TNT1 A 0 A_GiveToTarget("cell",50)
	TNT1 A 0 A_GiveToTarget("RocketAmmo",5)
	TNT1 A 0 A_GiveToTarget("clip1",50)
	TNT1 A 0 A_GiveToTarget("Shell",10)
	Goto Death
	Death.D64Pistol:
	TNT1 A 0 A_GiveToTarget("D64UnmakerUpgrades",1)
	TNT1 A 0 A_GiveToTarget("Cell",75)
	TNT1 A 0 A_GiveToTarget("D64KilledCount",1)
	Goto DeathAnimAlt
	Death.Plasma:
	TNT1 A 0 A_GiveToTarget("CyborgFuel",25)
	Goto DeathAnim
	Pain.GwenPlasma2:
		TNT1 A 0 A_JumpIfInventory("GwenGoddessStack",100,"GwenGoddessDeath")
		AMPR A 0 Setplayerproperty(0,0,4)
		AMPR A 0 A_Pain
		AMPR A 20 Setplayerproperty(0,1,0)
		AMPR A 2 Setplayerproperty(0,0,0)
		Goto Spawn
	GwenGoddessDeath:
		TNT1 A 0 SetPlayerProperty(0,1,4)
		TNT1 A 0 A_SetTranslucent (1.0, 0)
		TNT1 A 0 A_SpawnItemEx("GwenTimeImplosionRing")
		TNT1 A 0 A_Playsound("Gwen/DivineExplosionSound",6,1,0,ATTN_NONE)
		AMPR A 24 SetPlayerProperty(0,1,4)
		TNT1 A 0 A_SpawnItemEx("GwenTimeExplosionRingDamageFX")
		TNT1 A 0 A_SpawnItemEx("GwenTimeExplosionRingDamage")
		TNT1 A 0 A_SpawnItemEx("GwenTimeExplosionRing")
		TNT1 A 0 A_SpawnItemEx("GwenTimeExplosionRingX")
		TNT1 A 0 A_SpawnItemEx("GwenThunderFX")
		TNT1 A 0 A_SpawnItemEx("GwenGoddessStateEXP")
		TNT1 AAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("GwenThunderFX_Spark2", 0, 0, 8, 0.01 * Random(-300, 300), 0.01 * Random(-300, 300), 0.01 * Random(0, 600), 0, 128, 0)
		TNT1 AAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("GwenThunderFX_Spark2", 0, 0, 8, 0.01 * Random(-300, 300), 0.01 * Random(-300, 300), 0.01 * Random(0, 600), 0, 128, 0)
		TNT1 AAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("GwenThunderFX_Spark2", 0, 0, 8, 0.01 * Random(-300, 300), 0.01 * Random(-300, 300), 0.01 * Random(0, 600), 0, 128, 0)
		TNT1 AAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("GwenThunderFX_Spark2", 0, 0, 8, 0.01 * Random(-300, 300), 0.01 * Random(-300, 300), 0.01 * Random(0, 600), 0, 128, 0)
		TNT1 AAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("GwenThunderFX_Spark2", 0, 0, 8, 0.01 * Random(-300, 300), 0.01 * Random(-300, 300), 0.01 * Random(0, 600), 0, 128, 0)
		TNT1 AAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("GwenThunderFX_Spark2", 0, 0, 8, 0.01 * Random(-300, 300), 0.01 * Random(-300, 300), 0.01 * Random(0, 600), 0, 128, 0)
		TNT1 AAAAAAAAAAAA 0 A_SpawnItemEx("KNThunderFX_Smoke", 0, 0, 0, 0.01 * Random(-125, 125), 0.01 * Random(-125, 125), 0.01 * Random(25, 245), 0, 128, 0)
		TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("GwenThunderFX_Spark", 0, 0, 8, 0.01 * Random(-300, 300), 0.01 * Random(-300, 300), 0.01 * Random(0, 600), 0, 128, 0)
		TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("GwenThunderFX_Spark", 0, 0, 8, 0.01 * Random(-300, 300), 0.01 * Random(-300, 300), 0.01 * Random(0, 600), 0, 128, 0)
		TNT1 A 0 DamageThing(100000)
		Goto Death
	Death:
	DeathAnim:
		TNT1 A 0 A_GiveToTarget("KillBeep",1)
		TNT1 A 0 A_SpawnItemEx("AdditionalGhoulDeathVFX")
		AMPR A 0 A_TakeInventory("KilledCount",999)
		AMPR A 0 A_GiveToTarget("KilledMe",1)
		AMPR A 0 A_GiveToTarget("KilledJitter",1)
		AMPR A 3 A_SpawnItemEx("AmperThunderFX")
		TNT1 A -1 
		Stop
	DeathAnimAlt:
		TNT1 A 0 A_GiveToTarget("KillIndicator",1)
		TNT1 A 0 A_SpawnItemEx("AdditionalGhoulDeathVFX")
		AMPR A 0 A_TakeInventory("KilledCount",999)
		AMPR A 0 A_GiveToTarget("KilledMe",1)
		AMPR A 0 A_GiveToTarget("KilledJitter",1)
		AMPR A 3 A_SpawnItemEx("AmperThunderFX")
		TNT1 A -1 
		Stop
	Death.ChexWarrior:
		AMPR A 0 A_GiveToTarget("KillIndicator",1)
		AMPR A 0 A_TakeInventory("KilledCount",999)
		AMPR A 0 A_GiveToTarget("KilledMe",1)
		AMPR A 0 A_GiveToTarget("KilledJitter",1)
		AMPR A 0 A_SpawnItemEx("ChexCereal",0,0,32,random(2,3),momy,random(8,12),random(-180,180))
		AMPR A 0 A_GiveToTarget("ChexArmorBonus",25)
		AMPR A 0 A_GiveToTarget("ChexBoop",1)
		AMPR A 0 A_Stop
		AMPR A 0 A_NoGravity
		AMPR A 0 A_ChangeFlag("DONTGIB",1)
		AMPR A 0 A_PlaySoundEx("Teleport/Chex",7)
		AMPR A 3 A_SpawnItem("BigZorch")
		AMPR A 3 A_SetTranslucent(0.9,0)
		AMPR A 0 A_Scream
		AMPR A 3 A_SetTranslucent(0.8,0)
		AMPR A 0 A_NoBlocking
		AMPR A 3 A_SetTranslucent(0.7,0)
		AMPR A 3 A_SetTranslucent(0.6,0)
		AMPR A 3 A_SetTranslucent(0.5,0)
		AMPR A 3 A_SetTranslucent(0.4,0)
		AMPR A 3 A_SetTranslucent(0.3,0)
		AMPR A 3 A_SetTranslucent(0.2,0)
		AMPR A 3 A_SetTranslucent(0.1,0) 
		TNT1 A 1 A_SetTranslucent(1,0)
		TNT1 A -1
		Stop
	Death.CarolineDamage:
		NULL A 0 A_SpawnItemEx("CarolineHeart",0,0,32,random(2,3),momy,random(8,12),random(-180,180))
		Goto DeathAnim
	Death.MarineShotgun:
	AMPR Z 0 A_GiveToTarget("grenadeammo",1)
	AMPR Z 0 A_GiveToTarget("shell",3)
	AMPR Z 0 A_GiveToTarget("clip1",20)
	Goto DeathAnim
	Death.Marinemachinegun:
	AMPR Z 0 A_GiveToTarget("grenadeammo",1)
	AMPR Z 0 A_GiveToTarget("shell",3)
	AMPR Z 0 A_GiveToTarget("clip1",20)
	Goto Deathanim
	Death.Marinepistol:
	AMPR Z 0 A_GiveToTarget("grenadeammo",1)
	AMPR Z 0 A_GiveToTarget("shell",3)
	AMPR Z 0 A_GiveToTarget("clip1",20)
	Goto Deathanim
	Death.CrapPlasma:
		AMPR Z 0 A_GiveToTarget("Unlock9",1)
		Goto DeathAnim
	Death.Grenade:
		AMPR Z 0 A_GiveToTarget("KilledG",1)
		Goto DeathAnim
	Death.Ice2:
		AMPR Z 0 A_GiveToTarget("KilledIce2",1)
		Goto DeathAnim
	Death.Fire2:
		AMPR Z 0 A_GiveToTarget("KilledFire2",1)
		Goto DeathAnim
	Death.Railgun:
		AMPR Z 0 A_GiveToTarget("KilledLightning",1)
		Goto DeathAnim
	Death.GhostTrap:
		AMPR A 0 A_GiveToTarget("KilledG",1)
		Goto DeathAnim
	Death.AltFire2:
		AMPR A 0 A_GiveToTarget("KilledAltFire2",1)
		Goto Death.Fire2
	Death.AltIce2:
		AMPR A 0 A_GiveToTarget("KilledAltIce2",1)
		Goto Death.Ice2
	Death.AltGrenade:
		AMPR A 0 A_GiveToTarget("KilledAltG",1)
		Goto Death.Grenade
	Death.Fire3:
		AMPR A 0 A_GiveToTarget("KilledFire3",1)
		Goto DeathAnim
	Death.Ice3:
		AMPR A 0 A_GiveToTarget("KilledIce3",1)
		Goto DeathAnim
	Death.Grenade2:
		AMPR A 0 A_GiveToTarget("KilledG2",1)
		Goto DeathAnim
	Pain.Drainer:
		AMPR A 0 A_GiveToTarget("Health",10)
		Goto Pain
	Death.ChexWarriorPistol:
	Death.ChexWarriorChainsaw:
	Goto Death.ChexWarrior
	Death.RenegadeBullets:
	Death.RenegadeFire:
	Death.ArtilleryDamage:
		AMPR A 0 A_GiveToTarget("RenegadeKillItem",1)
		Goto DeathAnimAlt
	Death.CalebShotgun:
	Death.CalebRevolver:
	Death.CalebDynamite:
		AMPR A 0 A_GiveToTarget("Health",20)
		AMPR A 0 A_SpawnItemEx("CalebHeart",0,0,32,random(2,3),momy,random(8,12),random(-180,180))
		AMPR A 0 A_GiveToTarget("CalebHeartbeat",1)
		Goto DeathAnimAlt
	Pain.EngineerSaw:
	Pain.Ghosttrap:
	Pain.GBFire:
	Pain.Misty:
	Pain.GBSaw:
	Pain.GBString:
	Pain.GBNuke:
	Pain.Ice2:
	Pain.Ice:
	Pain.ElecStorm:
	Pain.AltFire2:
	Pain.AltIce2:
	Pain.Fire2:
	Pain.Doggo:
	Pain.LaraArrow:
	Pain.Wind2:
	Pain.Grenade:
	Pain.Grenade2:
	Pain.TemplarLightningRain:
	Pain.CarolineDamage:
	Pain.ChexWarrior:
	Pain.InariPlasma:
	Pain.Plasma:
	Pain.FlameProtect:
	Pain.DutchShotgun:
	Pain.KarenExplo:
	Pain.Sentinel:
	Pain.Divine:
	Pain.GwenPlasma3:
	Pain.MacheteSlicerino:
	Pain.AntiAirbolt:
	Pain.MechPewPews:
	Pain.RainbowNado:
		TNT1 A 0 ACS_NamedExecuteAlways("ChangeActivator",0)
		Goto Pain
	}
}

Actor AmperArmor : BasicArmorPickup
{
	Armor.SaveAmount 60
	Armor.SavePercent 60
	Inventory.Icon "VELAA0"
}

Actor Voltcleaver : Weapon
{
	Weapon.AmmoType "VoltMeleeAmmo"
	Weapon.AmmoUse 1
	Weapon.AmmoType2 "VoltRingAmmo"
	Weapon.AmmoUse2 0
	Weapon.SlotNumber 1
	Weapon.YAdjust 0
	Obituary "%o trembled before %k."
	Inventory.Icon "TNT1A0"
	+INVENTORY.UNDROPPABLE
	+WEAPON.NOALERT
	+WEAPON.MELEEWEAPON
	+WEAPON.DONTBOB
	+WEAPON.NOAUTOAIM
	States
	{
	Ready:
		TNT1 A 0 A_JumpIfInventory("AmperShieldItem",1,"ShieldReady")
		TNT1 A 0 A_JumpIfInventory("CyborgDashCheck",1,"RaiseShieldCheck")
		TNT1 A 0 A_GiveInventory("AmperShieldAmmo",1)
		AMPS A 1 A_WeaponReady
		Loop
	ShieldReady:
		TNT1 A 0 A_JumpIfInventory("AmperShieldAmmo",1,"ShieldActive")
		Goto RaiseShieldCheck
	ShieldActive:	
		TNT1 A 0 A_JumpIfInventory("CyborgDashCheck",1,"RaiseShieldCheck")
		TNT1 A 0 A_TakeInventory("AmperShieldAmmo",1)
		AMPS G 0 Bright A_SpawnItemEx ("AmperShieldDefense", 60, -30, 17)
		AMPS G 0 Bright A_SpawnItemEx ("AmperShieldDefense", 60, 30, 17)
		AMPS G 2 Bright A_SpawnItemEx ("AmperShieldDefense", 60, 0, 17)
		TNT1 A 0 A_TakeInventory("AmperShieldAmmo",1)
		AMPS G 0 Bright A_SpawnItemEx ("AmperShieldDefense", 60, -30, 17)
		AMPS G 0 Bright A_SpawnItemEx ("AmperShieldDefense", 60, 30, 17)
		AMPS G 2 Bright A_SpawnItemEx ("AmperShieldDefense", 60, 0, 17)
		Goto ShieldReady
	Deselect:
		TNT1 A 0 A_Lower
		Loop
	Select:
		TNT1 A 0 A_Raise
		Goto Select
	Fire:
		AMPM D 1 Offset (0, 32) A_PlaySound("Amper/Charge",CHAN_WEAPON)
		AMPM D 1 Offset (10, 42)
		AMPM E 1 Offset (0, 32)
		AMPM E 1 Offset (30, 42)
		AMPM E 1 Offset (50, 50)
		AMPM G 1 Offset (0, 32)
		AMPM G 1 Offset (60, 40)
		AMPM H 1 Offset (-10, -2)
		AMPM H 1 Offset (5, 26)
		AMPM H 0 A_RailAttack(12, 0, 0, "none", "MediumPurple", RGF_SILENT|RGF_FULLBRIGHT, 9999, "AmperRailPuff", 0, 0, 1450)
		AMPM H 0 A_PlaySound("Amper/Rail",CHAN_WEAPON)
		AMPM H 1 Offset (20, 52) Bright A_FireCustomMissile("VoltMeleeStrike")
		AMPM H 1 Offset (45, 68)
		AMPM H 1 Offset (70, 84)
		AMPM I 1 Offset (60, 42) ACS_NamedExecuteAlways("AmperAmmoGen",0)
		AMPM I 1 Offset (80, 52)
		AMPM I 1 Offset (100, 62)
		AMPM I 1 Offset (120, 72)
		AMPM I 1 Offset (140, 82)
		AMPM I 1 Offset (160, 92)
		AMPM K 1 Offset(0, 32)
		AMPS A 1 A_WeaponReady
		Goto Ready
	Altfire:
		TNT1 A 0 A_JumpIfInventory("AmperAltCooldown",1,"Ready")
		TNT1 A 0 ACS_NamedExecuteAlways("AmperAltAmmoRegen",0,0)
		AMPM I 1 Offset (160, 92) A_PlaySound("Amper/AltCharge",CHAN_WEAPON)
		AMPM I 1 Offset (140, 82)
		AMPM I 1 Offset (120, 72)
		AMPM I 1 Offset (100, 62)
		AMPM I 1 Offset (80, 52)
		AMPM I 1 Offset (60, 42)
		AMPM H 1 Offset (70, 84)
		AMPM H 1 Offset (45, 68)
		AMPM H 1 Offset (20, 52)
		AMPM H 1 Offset (5, 26)
		AMPM H 1 Offset (-10, -2)
		AMPM G 1 Offset (60, 40)
		AMPM G 1 Offset (0, 32)
		TNT1 A 0 A_PlaySound("Amper/AltAttack",CHAN_WEAPON)
		AMPM G 0 A_FireCustomMissile("LightningRingBall",0,0)
		AMPM G 0 A_FireCustomMissile("LightningRingBall",15,0)
		AMPM G 0 A_FireCustomMissile("LightningRingBall",30,0)
		AMPM G 0 A_FireCustomMissile("LightningRingBall",45,0)
		AMPM G 0 A_FireCustomMissile("LightningRingBall",60,0)
		AMPM G 0 A_FireCustomMissile("LightningRingBall",75,0)
		AMPM G 0 A_FireCustomMissile("LightningRingBall",90,0)
		AMPM G 0 A_FireCustomMissile("LightningRingBall",105,0)
		AMPM G 0 A_FireCustomMissile("LightningRingBall",120,0)
		AMPM G 0 A_FireCustomMissile("LightningRingBall",135,0)
		AMPM G 0 A_FireCustomMissile("LightningRingBall",150,0)
		AMPM G 0 A_FireCustomMissile("LightningRingBall",165,0)
		AMPM G 0 A_FireCustomMissile("LightningRingBall",180,0)
		AMPM G 0 A_FireCustomMissile("LightningRingBall",195,0)
		AMPM G 0 A_FireCustomMissile("LightningRingBall",210,0)
		AMPM G 0 A_FireCustomMissile("LightningRingBall",225,0)
		AMPM G 0 A_FireCustomMissile("LightningRingBall",240,0)
		AMPM G 0 A_FireCustomMissile("LightningRingBall",255,0)
		AMPM G 0 A_FireCustomMissile("LightningRingBall",270,0)
		AMPM G 0 A_FireCustomMissile("LightningRingBall",285,0)
		AMPM G 0 A_FireCustomMissile("LightningRingBall",300,0)
		AMPM G 0 A_FireCustomMissile("LightningRingBall",315,0)
		AMPM G 0 A_FireCustomMissile("LightningRingBall",330,0)
		AMPM G 0 A_FireCustomMissile("LightningRingBall",345,0)
		AMPM G 9 Bright Offset (0, 32)
		AMPM G 1 Offset (0, 32)
		AMPM G 1 Offset (60, 40)
		AMPM H 1 Offset (-10, -2)
		AMPM H 1 Offset (5, 26)
		AMPM H 1 Offset (20, 52)
		AMPM H 1 Offset (45, 68)
		AMPM H 1 Offset (70, 84)
		AMPM I 68 Offset (60, 42)
		AMPM I 1 Offset (80, 52)
		AMPM I 1 Offset (100, 62)
		AMPM I 1 Offset (120, 72)
		AMPM I 1 Offset (140, 82)
		AMPM I 1 Offset (160, 92)
		AMPM K 1 Offset(0, 32)
		AMPS A 1 A_WeaponReady
		Goto Ready
	RaiseShieldCheck:
		TNT1 A 0 A_TakeInventory("CyborgDashCheck",999)
		TNT1 A 0 A_JumpIfInventory("AmperShieldItem",1,"LowerShield")
		TNT1 A 0 A_JumpIfInventory("AmperShieldAmmo",40,"RaiseShield")
		Goto Ready
	RaiseShield:
		TNT1 A 0
		TNT1 A 0 A_JumpIfInventory("AmperShieldItem",1,"LowerShield")
		TNT1 A 0 A_GiveInventory("AmperShieldItem",1)
		TNT1 A 0 A_TakeInventory("AmperNoShieldItem",1)
		TNT1 A 0 A_PlaySound("Amper/ShieldRaise",CHAN_WEAPON)
		AMPS ABCDEF 1
		AMPS G 0 A_ChangeFlag(DONTBLAST, TRUE)
		AMPS G 0 Bright A_PlaySound("Amper/ShieldHold",CHAN_BODY,1,1)
		AMPS G 0 Bright A_SpawnItemEx ("AmperShieldDefense", 60, -30, 17)
		AMPS G 0 Bright A_SpawnItemEx ("AmperShieldDefense", 60, 30, 17)
		AMPS G 4 Bright A_SpawnItemEx ("AmperShieldDefense", 60, 0, 17)
		Goto Ready
	LowerShield:
		TNT1 A 0 A_StopSound(CHAN_BODY)
		TNT1 A 0 A_GiveInventory("SoundToken",1)
		TNT1 A 0 A_GiveInventory("AmperNoShieldItem",1)
		TNT1 A 0 A_TakeInventory("AmperShieldItem",1)
		TNT1 A 0 A_ChangeFlag(DONTBLAST, FALSE)
		AMPS GFEDCBA 1
		Goto Ready
	}
}

Actor AmperAltCooldown : Inventory
{
	Inventory.MaxAmount 1
}

Actor VoltMeleeAmmo : Ammo
{
  Inventory.PickupMessage ""
  Inventory.Amount 1
  Inventory.MaxAmount 1
  States
  {
  Spawn:
    TNT1 A 8 Bright
    Loop
  }
}

Actor VoltRingAmmo : Ammo
{
  Inventory.PickupMessage ""
  Inventory.Amount 1
  Inventory.MaxAmount 1
  Ammo.BackpackAmount 1
  Ammo.BackpackMaxAmount 1
  States
  {
  Spawn:
    TNT1 A 8 Bright
    Loop
  }
}

Actor VoltMeleeStrike
{
	Speed 50
	Height 4
	Radius 5
	Damage (55)
	DamageType "VoltMelee"
	Obituary "%o trembled before %k."
	+DONTREFLECT
	+PIERCEARMOR
	PROJECTILE
	States
	{
	Spawn:
		TNT1 A 3
		AXPF A 0 A_PlaySound("Amper/MeleeMiss","Body")
		Stop
	Death:
		TNT1 A 0 A_PlaySound("Amper/MeleeHit","Body")
		AXPF ABCDEFG 2 Bright A_FadeOut(0.14)
		Stop
	XDeath:
		TNT1 A 0 A_GiveToTarget("HitBeep",1)
		TNT1 A 0 A_PlaySound("Amper/MeleeHit","Body")
		AXPF ABCDEFG 2 Bright A_FadeOut(0.14)
		Stop
	}
}

Actor VoltMeleeReadyItem : CustomInventory
{
	Inventory.Amount 999
	Inventory.MaxAmount 999
	States
	{
	Spawn:
		TNT1 A 1
		Loop
	Pickup:
		ANT1 A 0
		Stop
	}
}

ACTOR LightningRingBall
{
  Radius 6
  Height 8
  Speed 0
  Scale 0.4
  Var Int User_Distance;
  Var Int User_Angle;
  Var Int User_Repeat;
  Damage (11)
  Projectile
  RenderStyle translucent
  Alpha 1
  SeeSound "Amper/AltZap"
  Species "Ghoul"
  DeathType "AmperRail"
  PainType "LichLightning"
  +THRUSPECIES
  +DONTREFLECT
  +NOBLOCKMAP
  +NOCLIP
  +RIPPER
  States
  {
  Spawn:
	TNT1 A 0
	TNT1 A 0 A_SetUserVar(User_Angle, angle)
    VALT D 1 Bright A_Warp(AAPTR_TARGET,User_Distance,0,32,User_Angle,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE|WARPF_ABSOLUTEANGLE|WARPF_TOFLOOR)
	TNT1 A 0 A_SpawnItemEx("Icearrowtrail",-4,0,0,0,0,0,0,128)
	TNT1 A 0 A_SetUserVar(User_Distance,User_Distance+13)
	TNT1 A 0 A_SetUserVar(User_Angle,User_Angle+5)
	TNT1 A 0 A_Explode(4,40,0)
	VALT E 1 Bright A_Warp(AAPTR_TARGET,User_Distance,0,32,User_Angle,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE|WARPF_ABSOLUTEANGLE|WARPF_TOFLOOR)
	TNT1 A 0 A_SpawnItemEx("Icearrowtrail",-4,0,0,0,0,0,0,128)
	TNT1 A 0 A_SetUserVar(User_Distance,User_Distance+13)
	TNT1 A 0 A_SetUserVar(User_Angle,User_Angle+5)
	TNT1 A 0 A_Explode(4,40,0)
	VALT F 1 Bright A_Warp(AAPTR_TARGET,User_Distance,0,32,User_Angle,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE|WARPF_ABSOLUTEANGLE|WARPF_TOFLOOR)
	TNT1 A 0 A_SpawnItemEx("Icearrowtrail",-4,0,0,0,0,0,0,128)
	TNT1 A 0 A_SetUserVar(User_Distance,User_Distance+13)
	TNT1 A 0 A_SetUserVar(User_Angle,User_Angle+5)
	TNT1 A 0 A_Explode(4,40,0)
	VALT G 1 Bright A_Warp(AAPTR_TARGET,User_Distance,0,32,User_Angle,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE|WARPF_ABSOLUTEANGLE|WARPF_TOFLOOR)
	TNT1 A 0 A_SpawnItemEx("Icearrowtrail",-4,0,0,0,0,0,0,128)
	TNT1 A 0 A_SetUserVar(User_Distance,User_Distance+13)
	TNT1 A 0 A_SetUserVar(User_Angle,User_Angle+5)
	TNT1 A 0 A_Explode(4,40,0)
	TNT1 A 0 A_SetUserVar(User_Repeat,User_Repeat+1)
	TNT1 A 0 A_JumpIf(User_Repeat==7,"Spawn2")
    Goto Spawn+2
  Spawn2:
	TNT1 A 0
    VALT D 1 Bright A_Warp(AAPTR_TARGET,User_Distance,0,32,User_Angle,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE|WARPF_ABSOLUTEANGLE|WARPF_TOFLOOR)
	TNT1 A 0 A_SpawnItemEx("Icearrowtrail",-4,0,0,0,0,0,0,128)
	TNT1 A 0 A_SetUserVar(User_Angle,User_Angle+5)
	TNT1 A 0 A_Explode(4,40,0)
	VALT E 1 Bright A_Warp(AAPTR_TARGET,User_Distance,0,32,User_Angle,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE|WARPF_ABSOLUTEANGLE|WARPF_TOFLOOR)
	TNT1 A 0 A_SpawnItemEx("Icearrowtrail",-4,0,0,0,0,0,0,128)
	TNT1 A 0 A_SetUserVar(User_Angle,User_Angle+5)
	TNT1 A 0 A_Explode(4,40,0)
	VALT F 1 Bright A_Warp(AAPTR_TARGET,User_Distance,0,32,User_Angle,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE|WARPF_ABSOLUTEANGLE|WARPF_TOFLOOR)
	TNT1 A 0 A_SpawnItemEx("Icearrowtrail",-4,0,0,0,0,0,0,128)
	TNT1 A 0 A_SetUserVar(User_Angle,User_Angle+5)
	TNT1 A 0 A_Explode(4,40,0)
	VALT G 1 Bright A_Warp(AAPTR_TARGET,User_Distance,0,32,User_Angle,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE|WARPF_ABSOLUTEANGLE|WARPF_TOFLOOR)
	TNT1 A 0 A_SpawnItemEx("Icearrowtrail",-4,0,0,0,0,0,0,128)
	TNT1 A 0 A_SetUserVar(User_Angle,User_Angle+5)
	TNT1 A 0 A_Explode(4,40,0)
	TNT1 A 0 A_SetUserVar(User_Repeat,User_Repeat+1)
	TNT1 A 0 A_JumpIf(User_Repeat==17,"Spawn3")
    Goto Spawn2+2
  Spawn3:
	TNT1 A 0
    VALT D 1 Bright A_Warp(AAPTR_TARGET,User_Distance,0,32,User_Angle,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE|WARPF_ABSOLUTEANGLE|WARPF_TOFLOOR)
	TNT1 A 0 A_SpawnItemEx("Icearrowtrail",-4,0,0,0,0,0,0,128)
	TNT1 A 0 A_SetUserVar(User_Distance,User_Distance-13)
	TNT1 A 0 A_SetUserVar(User_Angle,User_Angle+5)
	TNT1 A 0 A_Explode(4,40,0)
	VALT E 1 Bright A_Warp(AAPTR_TARGET,User_Distance,0,32,User_Angle,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE|WARPF_ABSOLUTEANGLE|WARPF_TOFLOOR)
	TNT1 A 0 A_SpawnItemEx("Icearrowtrail",-4,0,0,0,0,0,0,128)
	TNT1 A 0 A_SetUserVar(User_Distance,User_Distance-13)
	TNT1 A 0 A_SetUserVar(User_Angle,User_Angle+5)
	TNT1 A 0 A_Explode(4,40,0)
	VALT F 1 Bright A_Warp(AAPTR_TARGET,User_Distance,0,32,User_Angle,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE|WARPF_ABSOLUTEANGLE|WARPF_TOFLOOR)
	TNT1 A 0 A_SpawnItemEx("Icearrowtrail",-4,0,0,0,0,0,0,128)
	TNT1 A 0 A_SetUserVar(User_Distance,User_Distance-13)
	TNT1 A 0 A_SetUserVar(User_Angle,User_Angle+5)
	TNT1 A 0 A_Explode(4,40,0)
	VALT G 1 Bright A_Warp(AAPTR_TARGET,User_Distance,0,32,User_Angle,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE|WARPF_ABSOLUTEANGLE|WARPF_TOFLOOR)
	TNT1 A 0 A_SpawnItemEx("Icearrowtrail",-4,0,0,0,0,0,0,128)
	TNT1 A 0 A_SetUserVar(User_Distance,User_Distance-13)
	TNT1 A 0 A_SetUserVar(User_Angle,User_Angle+5)
	TNT1 A 0 A_Explode(4,40,0)
	TNT1 A 0 A_SetUserVar(User_Repeat,User_Repeat+1)
	TNT1 A 0 A_JumpIf(User_Repeat==24,"Death")
    Goto Spawn3+2
  XDeath:
	TNT1 A 0 A_GiveToTarget("HitBeep",1)
	Goto Death
  Death:
    VALT I 0 A_StopSound
    VALT IJKLMNO 3 Bright
    Stop
  }
}

Actor AmperShieldItem : Inventory
{
	inventory.amount 0
	inventory.maxamount 1
}

Actor AmperNoShieldItem : Inventory
{
	inventory.amount 0
	inventory.maxamount 1
}

Actor AmperShieldAmmo : Ammo
{
	inventory.maxamount 100
}

actor AmperShieldDefense
{
	+NOTARGET
	Health 9999
	Radius 18
	Height 55
	PainChance 0
	Scale 0.5
	Species "Ghoul"
	+NOGRAVITY
	+SHOOTABLE
	+NOTELEPORT
	-SOLID
	+NODAMAGETHRUST
	+NORADIUSDMG
	+NOBLOOD
	+NOPAIN
	+NODAMAGE
	+DONTBLAST
	+REFLECTIVE
	+THRUSPECIES
	+DONTRIP
	States
	{
		Spawn:
			ASLD ABCDE 1 Bright
			Stop
	}
}

Actor AmperThunderFX // 3004
{
	+NoInteraction
	+CLIENTSIDEONLY
	States
	{
	Spawn:
		TNT1 A 0
		goto Death
	Death:
		TNT1 A 0
		TNT1 A 0 A_SpawnItemEx("ThunderFX_LightObject", 0, 0, 0, 0, 0, 0, 0, 128, 0)
		TNT1 A 0 A_SpawnItemEx("AmperThunderFX_Flare", 0, 0, 0, 0, 0, 0, 0, 128, 0)
		TNT1 A 0 A_SpawnItemEx("AmperThunderFX_Flare", 0, 0, 512, 0, 0, 0, 0, 128, 0)
		TNT1 A 0 A_SpawnItemEx("AmperThunderFX_Bolt", 0, 0, 0, 0, 0, 0, 0, 128, 0)
		TNT1 AAAAAAAAAAAA 0 A_SpawnItemEx("ThunderFX_Smoke", 0, 0, 0, 0.01 * Random(-125, 125), 0.01 * Random(-125, 125), 0.01 * Random(25, 245), 0, 128, 0)
		TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("AmperThunderFX_Spark", 0, 0, 8, 0.01 * Random(-300, 300), 0.01 * Random(-300, 300), 0.01 * Random(0, 600), 0, 128, 0)
		TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("AmperThunderFX_Spark", 0, 0, 8, 0.01 * Random(-300, 300), 0.01 * Random(-300, 300), 0.01 * Random(0, 600), 0, 128, 0)
		TNT1 A 0 A_PlaySoundEx("DSTHUNDA", "Body", 0, 2)
		TNT1 A 30 Radius_Quake(9, 30, 0, 15, 0)
		Stop
	}
}

Actor AmperThunderFX_Flare
{
	+NoInteraction
	+CLIENTSIDEONLY
	RenderStyle Add
	scale 2.0
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_Jump(255, "Flash1", "Flash2", "Flash3", "Flash4")
	Flash1:
		XFLR A 1
		XFLR A 1 Bright A_FadeOut(0.05)
		Wait
	Flash2:
		XFLR B 1
		XFLR B 1 Bright A_FadeOut(0.05)
		Wait
	Flash3:
		XFLR C 1
		XFLR C 1 Bright A_FadeOut(0.05)
		Wait
	Flash4:
		XFLR D 1
		XFLR D 1 Bright A_FadeOut(0.05)
		Wait
	}
}

Actor AmperThunderFX_Bolt
{
	+NoInteraction
	+CLIENTSIDEONLY
	RenderStyle Add
	scale 2.0
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_Jump(255, "Flash1", "Flash2", "Flash3")
	Flash1:
		XHUN A 1
		XHUN A 1 Bright A_FadeOut(0.04)
		Wait
	Flash2:
		XHUN B 1
		XHUN B 1 Bright A_FadeOut(0.04)
		Wait
	Flash3:
		XHUN C 1
		XHUN C 1 Bright A_FadeOut(0.04)
		Wait
	}
}

Actor AmperThunderFX_Spark
{
	+Missile
	-NoGravity
	+CLIENTSIDEONLY
	Gravity 0.1
	Radius 4
	Height 8
	RenderStyle Add
	Scale 0.0125
	States
	{ 
	Spawn:
		XFLR A 1 Bright
		Wait
	}
}

Actor AmperRailPuff : RailPuff
{
DamageType "AmperLightning"
DeathType "AmperRail"
}

Actor AmperSpeedTokenCheck : CustomInventory
{
	+ALWAYSPICKUP
	+AUTOACTIVATE
	States
	{
	Use:
		TNT1 A 0
		TNT1 A 0 A_GiveInventory("AmperSpeedToken",1)
		TNT1 A 1 ACS_NamedExecuteAlways("AmperSpeedUpgrade",0)
		Stop
	}
}

Actor AmperSpeedToken : Inventory
{
	+UNDROPPABLE
	Inventory.MaxAmount 10
}

actor AmperWake : Inventory
{
	+UNDROPPABLE
	Inventory.MaxAmount 1
}