
// TECHVILE
//"It'll wreck your everything" - Yholl, 2014
ACTOR RLCyberneticArchvile : RLArchvileBase 16549
{
  Health 1200
  GibHealth -75
  Radius 20
  Height 56
  Speed 12
  Mass 5000
  BloodType "RLNashGore_TechVileBlood", "RLMNullActor", "RLNashGore_SlashBlood"
  BloodColor "11 11 11"
  
  MaxTargetRange 4096
  PainChance 5
  PainChance "Plasma", 40
  
  DamageFactor "Fire", 0.75
  DamageFactor "Plasma", 1.25
  
  SeeSound "techvile/sight"
  ActiveSound "techvile/active"
  PainSound "techvile/pain"
  DeathSound "techvile/death"
  
  Obituary "%o was not prepared for the Tech-Vile."
  Tag "Tech-Vile"
    //$category "MP Technophobia"
  
	// Guncaster compatibility
	DropItem "Sapphire"
	DropItem "Sapphire"
	DropItem "AmplifierGiver", 32, 0
	DropItem "TomeSpawner", 4, 0
  States
  {
  Spawn:
    TNT1 A 0 A_ChangeFlag ("INVULNERABLE",0)
    CVIL AB Random(9,10) A_Look
    Loop
	
  See:
    TNT1 A 0 A_KillChildren
    TNT1 A 0 A_ChangeFlag ("INVULNERABLE",0)
    CVIL AABBCCDDEEFF 2 A_Chase ("", "Missile", CHF_RESURRECT)
    Loop
	
  MissileProper:
    TNT1 A 0 A_CheckFlag ("FRIENDLY", 3) // Friendly monsters do not hack machines or zap
    TNT1 A 0 A_JumpIfInTargetInventory ("RLFrontlineEngineerSentryStartupToken", 1, "SentryHax")
    TNT1 A 0 A_JumpIfCloser (300, "VacuumDoom")
  MissileContinue:
    CVIL GGG 6 A_FaceTarget
    TNT1 A 0 A_CustomMissile("RLTechVilePulse", 56, 0, 0)
    CVIL H 8 Bright A_FaceTarget
    CVIL G 6 A_FaceTarget
    TNT1 A 0 A_CustomMissile("RLTechVilePulse", 56, 0, 0)
    CVIL H 8 Bright A_FaceTarget
    CVIL G 6 A_FaceTarget
    TNT1 A 0 A_CustomMissile("RLTechVilePulse", 56, 0, 0)
    CVIL H 8 Bright A_FaceTarget
    CVIL G 6 A_FaceTarget
    Goto See
	
  SentryHax:
    TNT1 A 0 A_CheckFlag ("Friendly", "ActualSentryHax", AAPTR_TARGET)
    TNT1 A 0 A_ClearTarget
    TNT1 A 0 A_LookEx (LOF_NOSEESOUND, 0, 0, 0, 360)
    Goto See
  ActualSentryHax:
    TNT1 A 0 A_GiveToTarget ("RLTechVileHax", 1)
    TNT1 A 0 A_TransferPointer(AAPTR_DEFAULT, AAPTR_TARGET, AAPTR_DEFAULT, AAPTR_MASTER)
	TNT1 A 0 A_CustomRailgun (0, 0, "None", "Red", RGF_SILENT | RGF_FULLBRIGHT, 0, 25, "RLParticleBeamPuff2", frandom(0,359), frandom(-45,45), random(64,256), 1, 0.2, 0, "None", 16)
    CVIL G 1 A_FaceTarget
	TNT1 A 0 A_CustomRailgun (0, 0, "None", "Red", RGF_SILENT | RGF_FULLBRIGHT, 0, 25, "RLParticleBeamPuff2", frandom(0,359), frandom(-45,45), random(64,256), 1, 0.2, 0, "None", 16)
    CVIL G 1 A_FaceTarget
	TNT1 A 0 A_CustomRailgun (0, 0, "None", "Red", RGF_SILENT | RGF_FULLBRIGHT, 0, 25, "RLParticleBeamPuff2", frandom(0,359), frandom(-45,45), random(64,256), 1, 0.2, 0, "None", 16)
    CVIL G 1 A_FaceTarget
	TNT1 A 0 A_CustomRailgun (0, 0, "None", "Red", RGF_SILENT | RGF_FULLBRIGHT, 0, 25, "RLParticleBeamPuff2", frandom(0,359), frandom(-45,45), random(64,256), 1, 0.2, 0, "None", 16)
    CVIL G 1 A_FaceTarget
	TNT1 A 0 A_CustomRailgun (0, 0, "None", "Red", RGF_SILENT | RGF_FULLBRIGHT, 0, 25, "RLParticleBeamPuff2", frandom(0,359), frandom(-45,45), random(64,256), 1, 0.2, 0, "None", 16)
    CVIL G 1 A_FaceTarget
	TNT1 A 0 A_CustomRailgun (0, 0, "None", "Red", RGF_SILENT | RGF_FULLBRIGHT, 0, 25, "RLParticleBeamPuff2", frandom(0,359), frandom(-45,45), random(64,256), 1, 0.2, 0, "None", 16)
    CVIL G 1 A_FaceTarget
	TNT1 A 0 A_CustomRailgun (0, 0, "None", "Red", RGF_SILENT | RGF_FULLBRIGHT, 0, 25, "RLParticleBeamPuff2", frandom(0,359), frandom(-45,45), random(64,256), 1, 0.2, 0, "None", 16)
    CVIL G 1 A_FaceTarget
	TNT1 A 0 A_CustomRailgun (0, 0, "None", "Red", RGF_SILENT | RGF_FULLBRIGHT, 0, 25, "RLParticleBeamPuff2", frandom(0,359), frandom(-45,45), random(64,256), 1, 0.2, 0, "None", 16)
    CVIL G 1 A_FaceTarget
	TNT1 A 0 A_CustomRailgun (0, 0, "None", "Red", RGF_SILENT | RGF_FULLBRIGHT, 0, 25, "RLParticleBeamPuff2", frandom(0,359), frandom(-45,45), random(64,256), 1, 0.2, 0, "None", 16)
    CVIL G 1 A_FaceTarget
	TNT1 A 0 A_CustomRailgun (0, 0, "None", "Red", RGF_SILENT | RGF_FULLBRIGHT, 0, 25, "RLParticleBeamPuff2", frandom(0,359), frandom(-45,45), random(64,256), 1, 0.2, 0, "None", 16)
    CVIL G 1 A_FaceTarget
	TNT1 A 0 A_CustomRailgun (0, 0, "None", "Red", RGF_SILENT | RGF_FULLBRIGHT, 0, 25, "RLParticleBeamPuff2", frandom(0,359), frandom(-45,45), random(64,256), 1, 0.2, 0, "None", 16)
    CVIL G 1 A_FaceTarget
	TNT1 A 0 A_CustomRailgun (0, 0, "None", "Red", RGF_SILENT | RGF_FULLBRIGHT, 0, 25, "RLParticleBeamPuff2", frandom(0,359), frandom(-45,45), random(64,256), 1, 0.2, 0, "None", 16)
    CVIL G 1 A_FaceTarget
    Goto See
	
  VacuumDoom:
    TNT1 A 0 A_JumpIfInventory ("PowerRLTechVileVacuumCooldown", 1, "MissileContinue")
    TNT1 A 0 A_GiveInventory ("PowerRLTechVileVacuumCooldown", 1)
    TNT1 A 0 A_ChangeFlag ("NOPAIN",1)
    TNT1 A 0 A_PlaySound ("techvile/mediumzap", 7, 1, 0, 0.8)
    CVIL JKJKJKJKJK 1 Bright A_CustomMissile("RLTechVileVortexShockwave", 40, 0, 0)
    TNT1 A 0 A_PlaySound ("techvile/aoezapmain", 7, 1, 0, 0.2)
    CVIL JKJKJKJKJKJKJKJKJKJKJKJKJKJKJK 1 Bright A_CustomMissile("RLTechVileVortex", 40, 0, 0)
    TNT1 A 0 A_ChangeFlag ("NOPAIN",0)
    Goto See
	
  Heal:
    CVIH A 1
    TNT1 A 0 A_CheckFlag ("FRIENDLY", 2) // Friendly monsters do not alter resurrection
    TNT1 A 0 A_RadiusGive ("RLCyberneticResurrectionToken", 256, RGF_MONSTERS | RGF_CORPSES | RGF_NOSIGHT, 1)
    CVIH A 2
    TNT1 A 0 A_PlaySound ("techvile/smallzap", 7, 1, 0, 1.4)
    CVIH BCD 1 Bright
    TNT1 A 0 A_PlaySound ("techvile/smallzap", 7, 1, 0, 1.4)
    CVIH BCDEF 1 Bright
    TNT1 A 0 A_PlaySound ("techvile/smallzap", 7, 1, 0, 1.4)
    CVIH CDEF 1 Bright
    TNT1 A 0 A_PlaySound ("techvile/smallzap", 7, 1, 0, 1.4)
    CVIH CDEF 1 Bright
    TNT1 A 0 A_PlaySound ("techvile/smallzap", 7, 1, 0, 1.4)
    CVIH CDEF 1 Bright
    CVIH A 15
    Goto See
	
  Shield:
    TNT1 A 0 A_SpawnItemEx ("RLTechVileShield", 1,0,0, 0,0,0, 0, SXF_SETMASTER | SXF_NOCHECKPOSITION)
    TNT1 A 0 A_ChangeFlag ("DONTTHRUST", 1)
    TNT1 A 0 A_ChangeFlag ("INVULNERABLE", 1)
    TNT1 A 0 A_ChangeFlag ("SHOOTABLE", 0)
    TNT1 A 0 A_ChangeFlag ("VULNERABLE", 0)
    TNT1 A 0 A_GiveInventory ("PowerRLTechVileShieldCooldown", 1)
	// Shield lasts for 70 tics
    CVIH AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1 Bright A_CustomRailgun (0, 0, "None", "Red", RGF_SILENT | RGF_FULLBRIGHT, 0, 25, "RLParticleBeamPuff2", frandom(0,359), frandom(-45,45), random(64,256), 1, 0.2, 0, "None", random(-16,16))
    TNT1 A 0 A_ChangeFlag ("INVULNERABLE",0)
    TNT1 A 0 A_ChangeFlag ("DONTTHRUST", 0)
    TNT1 A 0 A_ChangeFlag ("SHOOTABLE", 1)
    TNT1 A 0 A_ChangeFlag ("VULNERABLE", 1)
    TNT1 A 0 A_KillChildren
    Goto See
  Pain.Plasma:
    TNT1 A 0 A_JumpIfInventory ("PowerRLTechVileShieldCooldown", 1, "Pain")
    Goto Shield
	
  PainMain:
    CVIL L 5   
    CVIL L 5 A_Pain
    Goto See
	
  XDeathMain:
  DeathMain:
    TNT1 A 0 A_GiveInventory ("RLCyberneticArchvileKillIncrementer", 1, AAPTR_PLAYER1) // Used for tallying total kills and bestiary info
    CVIL M 4
    TNT1 A 0 A_PlaySound ("techvile/deathzap", 6, 1, 0, 0.9)
    TNT1 A 0 A_Jump (256, 1,2,3,4,5,6)
	TNT1 AAAAA 0 A_CustomRailgun (0, 0, "None", "Red", RGF_SILENT | RGF_FULLBRIGHT, 0, 25, "RLParticleBeamPuff2", frandom(0,359), frandom(-45,45), random(64,256), 1, 0.2, 0, "None", random(-16,16))
    CVIL N 1 Bright A_PlaySound ("techvile/smallzap", 7, 1, 0, 1.4)
    CVIL M 2
    CVIL O 1 A_Scream
    TNT1 A 0 A_Jump (256, 1,2,3,4,5,6)
	TNT1 AAAAA 0 A_CustomRailgun (0, 0, "None", "Red", RGF_SILENT | RGF_FULLBRIGHT, 0, 25, "RLParticleBeamPuff2", frandom(0,359), frandom(-45,45), random(64,256), 1, 0.2, 0, "None", random(-16,16))
    CVIL P 1 Bright A_PlaySound ("techvile/smallzap", 7, 1, 0, 1.4)
    CVIL O 5
    CVIL Q 3 A_NoBlocking
    TNT1 A 0 A_Jump (256, 1,2,3,4,5,6)
	TNT1 AAAAA 0 A_CustomRailgun (0, 0, "None", "Red", RGF_SILENT | RGF_FULLBRIGHT, 0, 25, "RLParticleBeamPuff2", frandom(0,359), frandom(-45,45), random(64,256), 1, 0.2, 0, "None", random(-16,16))
    CVIL R 1 Bright A_PlaySound ("techvile/smallzap", 7, 1, 0, 1.4)
    CVIL Q 3
    CVIL S 7
    TNT1 A 0 A_SpawnItem ("RLBodyThud", 0, 0, 0, 0)
    CVIL TUVW 7
    CVIL X 0
    "####" "#" 0 A_Jump(256, "DeathEnd")
    Goto DeathEnd
  SimpleXDeathMain:
    TNT1 A 0 A_GiveInventory ("RLCyberneticArchvileKillIncrementer", 1, AAPTR_PLAYER1) // Used for tallying total kills and bestiary info
    CVIL M 4
    CVIL N 1 Bright
    CVIL M 2
    CVIL O 1 A_Scream
    CVIL P 1 Bright
    CVIL O 5
    CVIL Q 3 A_NoBlocking
    CVIL R 1 Bright
    CVIL Q 3
    CVIL S 7
    CVIL TUVW 7
    CVIL X 0
    "####" "#" 0 A_Jump(256, "DeathEnd")
    Goto DeathEnd
  DeathFrame:
    CVIL X 0
    "####" "#" 0 A_Jump(256, "DeathEnd")
    Goto DeathEnd
	
	//Ice
  GenericFreezeDeath:
	"####" "#" 0 A_GiveInventory ("RLCyberneticArchvileKillIncrementer", 1, AAPTR_PLAYER1) // Used for tallying total kills and bestiary info
    "####" "#" 0 A_Jump(256, "GenericFreezeMana")
    Goto GenericFreezeMana
	
  CrushDRLA:
    TNT1 A 30 A_SpawnItemEx("RLCrushedSmallBlack",0,0,0, 0,0,0, 0, SXF_NOCHECKPOSITION)
    "####" "#" 0 A_Jump(256, "CrushEnd")
    Goto CrushEnd
//==============================================================================
//					--	DOOMRL ARSENAL STUFF  --
//==============================================================================
  Pain.RigelBlast:
    TNT1 A 0 A_PlaySound("weapons/dn2gunhit", CHAN_BODY)
    D2F1 Q 2 Bright
    Goto See
  Pain.NeuralStun:
    D2F1 Q 2 Bright
    Goto See
  Pain.CyberDisruptor:
    TNT1 A 0
    Goto Pain.LightningBlue
	
  Death.NeuralStun:
    TNT1 A 0
    Goto Death
  Death.RigelBlast:
    TNT1 A 0 A_GiveInventory ("RLDuke2Score", 5000, AAPTR_TARGET)
    TNT1 A 0 A_GiveInventory ("RLCyberneticArchvileKillIncrementer", 1, AAPTR_PLAYER1) // Used for tallying total kills and bestiary info
    TNT1 A 0 A_PlaySound("weapons/dn2gunexplosion", CHAN_BODY)
    TNT1 A 0 A_NoBlocking
    TNT1 A 0 A_SpawnItemEx ("RLDuke2BasicEnemyExplosions", 0,0,0, 0,0,0, 0, SXF_NOCHECKPOSITION)
    TNT1 A 35
    Stop
  XDeath.RigelBlast:
	TNT1 A 0 A_JumpIf(CallACS("DRLA_Gibs"), 1)
	Goto Death.RigelBlast
    TNT1 A 0 A_GiveInventory ("RLDuke2Score", 5000, AAPTR_TARGET)
    TNT1 A 0 A_GiveInventory ("RLCyberneticArchvileKillIncrementer", 1, AAPTR_PLAYER1) // Used for tallying total kills and bestiary info
    TNT1 A 0 A_PlaySound("weapons/dn2gungib", CHAN_BODY)
    TNT1 A 0 A_NoBlocking
    TNT1 A 0 A_SpawnItemEx ("RLDuke2BasicEnemyExplosions", 0,0,0, 0,0,0, 0, SXF_NOCHECKPOSITION)
    TNT1 A 0 A_SpawnItemEx ("RLDuke2RedGibber", 0,0,0, VelX,VelY,VelZ, 0, SXF_ABSOLUTEMOMENTUM | SXF_NOCHECKPOSITION)
    TNT1 A 35
    Stop
	
//==============================================================================
//					--	Special Monster Attacks  --
//==============================================================================

//==============================================================================
//					--	Final Doomer Compatibility Stuff  --
//==============================================================================
  DeathXSparkFrame:
    "####" "#" 0 A_JumpIfInTargetInventory("Mana",0,2)
    "####" "#" 0 A_DropItem("MajorManaPod",-1,54)
    CVIL L 0
    "####" "#" 0 A_Jump(256, "DeathXSpark")
	Goto DeathXSpark
	
//==============================================================================
//					--	Guncaster Compatibility Stuff  --
//==============================================================================
	MidasFrame1:
		CVIL L 0 A_SpawnItemEx("Midas_Statue_Vile", 0,0,0, 0,0,0, 0,SXF_TRANSFERPOINTERS|SXF_TRANSFERSPRITEFRAME)
		TNT1 A 0 A_JumpIf(1, "DestroyedEnd")
		Goto DestroyedEnd
	MidasFrame2:
		CVIL L 0 A_SpawnItemEx("Midas_Statue_Vile", 0,0,0, frandom(-10.0,-12.0),0,frandom(1.0,3.0), 0,SXF_TRANSFERPOINTERS|SXF_SETMASTER|SXF_TRANSFERSPRITEFRAME)
		TNT1 A 10 A_KillChildren
		TNT1 A 0 A_JumpIf(1, "DestroyedEnd")
		Goto DestroyedEnd
	MidasFrame3:
		CVIL L 0 A_SpawnItemEx("Midas_Statue_Vile", 0,0,0, frandom(-15.0,-20.0),0,frandom(10.0,15.0), 0,SXF_TRANSFERPOINTERS|SXF_SETMASTER|SXF_TRANSFERSPRITEFRAME)
		TNT1 A 10 A_KillChildren
		TNT1 A 0 A_JumpIf(1, "DestroyedEnd")
		Goto DestroyedEnd
		
	//Gumpop
	Death.Acid:
		CVIL L 1 A_ChangeFlag("SOLID",0)
		"####" "#" 1 A_Playsound("Gumpop/Expand",5)
		"####" "###################################" 1 A_SetScale(ScaleX+frandom(0.01,0.025))
		"####" "#" 1 A_Playsound("Gumpop/Pop",5)
		"####" "#" 0 A_Jump(256,"XDeathMain")
		Goto XDeathMain
		
	//Thunderstruck
	Pain.Lightning:
		"####" "#" 0 A_Jump(164,1)
		Goto Pain
		CVIL L 0 A_ChangeFlag("NOPAIN",1)
		"####" "#" 0 A_SetUserVar("User_LightningLock", User_LightningLock + 10)
		"####" "#" 0 A_Jump(256,"LightningLock")
		Goto LightningLock
		
	//Cauterizer
	Pain.LightningBlue:
		"####" "#" 0 A_Jump(48,1)
		Goto Pain
		CVIL L 0 A_ChangeFlag("NOPAIN",1)
		"####" "#" 0 A_SetUserVar("User_LightningLock", User_LightningLock + 10)
		"####" "#" 0 A_Jump(256,"BlueLightningLock")
		Goto BlueLightningLock
  }
}

ACTOR RLTechVilePulse
{
  Radius 7
  Height 4
  Speed 25
  Damage (random(2,3) * 11)
  Damagetype "Plasma"
  Projectile
  +RANDOMIZE
  +SEEKERMISSILE
  +MTHRUSPECIES
  +NOTIMEFREEZE
  +BLOODSPLATTER
  RenderStyle Add
  Alpha 0.95
  Scale 0.10
  SeeSound "techvile/pulse"
  DeathSound "techvile/pulsehit"
  States
  {
  Spawn:
    TNT1 A 0
    TNT1 A 0 A_JumpIfTracerCloser (192, "NoSeek")
    BBAL E 1 Bright A_SeekerMissile(1, 2, SMF_PRECISE)
    TNT1 A 0 A_JumpIfTracerCloser (192, "NoSeek")
    BBAL F 1 Bright A_SeekerMissile(1, 2, SMF_PRECISE)
    TNT1 A 0 A_JumpIfTracerCloser (192, "NoSeek")
    BBAL G 1 Bright A_SeekerMissile(1, 2, SMF_PRECISE)
    TNT1 A 0 A_JumpIfTracerCloser (192, "NoSeek")
    BBAL H 1 Bright A_SeekerMissile(1, 2, SMF_PRECISE)
    Goto Spawn
  NoSeek:
    BBAL EFGH 1 Bright
    Loop
  Death:
    BBB3 ABCDE 3 Bright
    Stop
  }
}

ACTOR RLTechVile125xPulse : RLTechVilePulse
{
  Damage (random(2,3) * 14)
  SeeSound "techvile/pulseaug"
}

ACTOR RLTechVile15xPulse : RLTechVilePulse
{
  Damage (random(2,3) * 17)
  SeeSound "techvile/pulseaug"
}

ACTOR RLTechVile2xPulse : RLTechVilePulse
{
  Damage (random(2,3) * 22)
  SeeSound "techvile/pulseaug"
}

ACTOR RLTechVile4xPulse : RLTechVilePulse
{
  Damage (random(2,3) * 44)
  SeeSound "techvile/pulseaug"
}

ACTOR PowerRLTechVileVacuumCooldown : Powerup
{
	Powerup.Duration -8
}

ACTOR RLTechVileShield
{
  Health 100
  Radius 80
  Height 78
  Mass 0x7fffffff
  DamageFactor "Normal", 0.1
  DamageFactor "Melee", 0.1
  DamageFactor "Bullet", 0.1
  DamageFactor "Fire", 0.1
  DamageFactor "Plasma", 0.1
  DamageFactor "Slime", 0
  Scale 2
  RenderStyle Add
  Alpha 0.75
  Painchance 256
  +ISMONSTER
  +SOLID
  +SHOOTABLE
  +NOBLOOD
  +DONTGIB
  +NOICEDEATH
  +DONTDRAIN
  +NOTELEOTHER
  +DONTMORPH
  +DONTBLAST
  +NORADIUSDMG
  +REFLECTIVE
  +DEFLECT
  +THRUSPECIES
  +NOTELEPORT
  +NOTIMEFREEZE
  Species "RLArchvile"
  Tag "Energy Shield"
  
  var int user_shieldtimer;
  States
  {
  Spawn:
    TNT1 A 0 A_PlaySound ("techvile/shieldstart", 7, 1, 0, 0.7)
    TNT1 A 0 A_PlaySound ("techvile/shieldloop", 6, 1, 1, 1.5)
  SpawnLoop:
    TNT1 A 0 HealThing (1)
    SHL1 A 1 Bright A_Warp(AAPTR_MASTER, 1, 0, 0, 0, WARPF_INTERPOLATE)
    TNT1 A 0 A_SetUserVar("user_shieldtimer", user_shieldtimer+1)
    TNT1 A 0 A_JumpIf (user_shieldtimer >= 70, "ShieldDisable")
    Goto SpawnLoop
	
  Pain:
    TNT1 A 0 A_PlaySound ("techvile/shieldhit", 5, 1, 0, 0.9)
    Goto SpawnLoop
	
  ShieldDisable:
    TNT1 A 0 A_Die
  Death:
    TNT1 A 0 A_PlaySound ("techvile/shieldend", 7, 1, 0, 0.7)
    TNT1 A 0 A_StopSound (6)
    TNT1 A 0 A_GiveInventory ("RLTechVileShieldBroken",1, AAPTR_MASTER)
    TNT1 A 1
    Stop
  }
}

ACTOR RLTechVileShieldBroken : CustomInventory
{
  -COUNTITEM
  +INVENTORY.ALWAYSPICKUP
  Inventory.PickupMessage ""
  Inventory.PickupSound ""
  States
  {
  Spawn:
    TNT1 A 1
    Stop
  Pickup:
    TNT1 A 0 
    TNT1 A 0 A_ChangeFlag ("INVULNERABLE",0)
    TNT1 A 0 A_SetMass (5000)
    Stop
  }
}

ACTOR RLTechVileHax : CustomInventory
{
  -COUNTITEM
  +INVENTORY.ALWAYSPICKUP
  Inventory.PickupMessage ""
  Inventory.PickupSound ""
  States
  {
  Spawn:
    TNT1 A 1
    Stop
  Pickup:
    TNT1 A 0 
    TNT1 A 0 A_ChangeFlag ("Friendly",0)
    TNT1 A 0 A_ClearTarget
    Stop
  }
}

ACTOR RLTechVileVortexDisruption : CustomInventory
{
  -COUNTITEM
  +INVENTORY.ALWAYSPICKUP
  Inventory.PickupMessage ""
  Inventory.PickupSound ""
  States
  {
  Spawn:
    TNT1 A 1
    Stop
  Pickup:
    TNT1 A 0 
    TNT1 A 0 A_JumpIfInventory ("RLCyberwarriorArmorToken", 1, "MovementDisruption")
    TNT1 A 0 A_JumpIfInventory ("RLOModCyberwarriorArmorToken", 1, "MovementDisruption")
    TNT1 A 0 A_JumpIfInventory ("RLCerberusArmorToken", 1, "MovementDisruption")
    TNT1 A 0 A_JumpIfInventory ("RLCybernanoGreenArmorToken", 1, "MovementDisruption")
    TNT1 A 0 A_JumpIfInventory ("RLCybernanoBlueArmorToken", 1, "MovementDisruption")
    TNT1 A 0 A_JumpIfInventory ("RLCybernanoRedArmorToken", 1, "MovementDisruption")
    TNT1 A 0 A_JumpIfInventory ("RLNanofiberSkinGreenArmorToken", 1, "MovementDisruption")
    TNT1 A 0 A_JumpIfInventory ("RLNanofiberSkinBlueArmorToken", 1, "MovementDisruption")
    TNT1 A 0 A_JumpIfInventory ("RLNanofiberSkinRedArmorToken", 1, "MovementDisruption")
    TNT1 A 0 A_JumpIfInventory ("RLPowerGreenArmorToken", 1, "MovementDisruption")
    TNT1 A 0 A_JumpIfInventory ("RLPowerBlueArmorToken", 1, "MovementDisruption")
    TNT1 A 0 A_JumpIfInventory ("RLPowerRedArmorToken", 1, "MovementDisruption")
    TNT1 A 0 A_JumpIfInventory ("RLCyberneticArmorToken", 1, "MovementDisruption")
    TNT1 A 0 A_JumpIfInventory ("RLMedicalPowerArmorToken", 1, "MovementDisruption")
    TNT1 A 0 A_JumpIfInventory ("RLShieldedArmorToken", 1, "MovementDisruption")
    TNT1 A 0 A_JumpIfInventory ("RLXaserPowerArmorToken", 1, "MovementDisruption")
    TNT1 A 0 A_JumpIfInventory ("RLZeroDiamondAssaultforceArmorToken", 1, "MovementDisruption")
    TNT1 A 0 A_JumpIfInventory ("RLTerminusEst13BattlesuitArmorToken", 1, "MovementDisruption")
    TNT1 A 0 A_JumpIfInventory ("RLNuclearPowerArmorToken", 1, "MovementDisruption")
    TNT1 A 0 A_JumpIfInventory ("RLChronotrooperArmorToken", 1, "MovementDisruption")
    TNT1 A 0 A_JumpIfInventory ("RLPrototypeAssaultShieldArmorToken", 1, "CooldownDisruption")
    TNT1 A 0 A_JumpIfInventory ("RLJetpackArmorToken", 1, "CooldownDisruption")
    TNT1 A 0 A_JumpIfInventory ("RLBlazingPhoenixDeviceSuitArmorToken", 1, "CooldownDisruption")
    TNT1 A 0 A_JumpIfInventory ("RLKateMatterstormHarnessArmorToken", 1, "CooldownDisruption")
    TNT1 A 0 A_JumpIfInventory ("RLKyleTeslaboltArmorToken", 1, "CooldownDisruption")
    TNT1 A 0 A_JumpIfInventory ("RLSoloOperativeSuitArmorToken", 1, "CooldownDisruption")
    TNT1 A 0 A_JumpIfInventory ("RLChronotrooperArmorToken", 1, "CooldownDisruption")
    TNT1 A 0 A_JumpIfInventory ("RLTorgueBlastplateArmorToken", 1, "MovementDisruption")
    TNT1 A 0 A_JumpIfInventory ("RLTheBeeArmorToken", 1, "BeeDisruption")
    Stop
  BeeDisruption:
    TNT1 A 0 A_GiveInventory ("PowerRLTechVileBeeDamageDebuff", 1)
	Goto CooldownDisruption
  MovementDisruption:
    TNT1 A 0 A_GiveInventory ("PowerRLTechVileMovementDebuff", 1)
  CooldownDisruption:
    TNT1 A 0 A_GiveInventory ("PowerRL300Cooldown", 1)
    TNT1 A 0 A_TakeInventory ("RLEnergyDischargeHarnessCounter", 5)
	TNT1 A 0 A_TakeInventory ("PowerRLOverchargeSystemDamage", 1)
	TNT1 A 0 A_TakeInventory ("PowerRLOverchargeSystemProtection", 1)
    TNT1 A 0 A_TakeInventory ("PowerRLChronotrooperFreeze", 1)
    TNT1 A 0 A_TakeInventory ("PowerRLPrototypeAssaultShieldProtection", 1)
    TNT1 A 0 A_TakeInventory ("PowerRLJetpackFlight", 1)
    TNT1 A 0 A_TakeInventory ("PowerRLJetpackFlightPermanent", 1)
    TNT1 A 0 A_JumpIfInventory ("PowerRLTechVileMessageLimiter", 1, 3)
    TNT1 A 0 A_GiveInventory ("PowerRLTechVileMessageLimiter", 1)
	TNT1 A 0 A_Print("Your armor has been disrupted!", 3)
    Stop
	TNT1 A 0
    Stop
  }
}

ACTOR PowerRLTechVileMessageLimiter : Powerup
{
	Powerup.Duration -5
}

actor PowerRLTechVileBeeDamageDebuff : PowerDamage
{
   damagefactor "Melee", 0.33
   damagefactor "Bullet", 0.33
   damagefactor "Fire", 0.33
   damagefactor "Plasma", 0.33
   inventory.icon ""
   Powerup.Duration -15
}

ACTOR PowerRLTechVileMovementDebuff : PowerSpeed
{
   powerup.Duration -15
   speed 0.33
   inventory.icon ""
   +POWERSPEED.NOTRAIL
}

ACTOR RLTechVileVortex
{
  Radius 13
  Height 8
  Projectile
  +NOBLOCKMAP
  +NOGRAVITY
  +NOTELEPORT
  +THRUACTORS
  +NOTONAUTOMAP
  +NOCLIP
  +NOTIMEFREEZE
  RenderStyle Add
  Alpha 0.98
  States
  {	
  Spawn:
    TNT1 A 0
    TNT1 A 0 A_Jump (64, 2)
    TNT1 A 0 A_PlaySound ("techvile/aoezap", 7, 1, 0, 0.8)
    TNT1 A 0 A_RadiusGive ("RLTechVileVortexDisruption", 256, RGF_PLAYERS, 1)
	TNT1 A 0 A_SpawnItemEx ("RLTechVileVortexEffect", 1, 0, 0, 0, 0, 0, 0, SXF_TRANSFERPOINTERS | SXF_NOCHECKPOSITION)
	TNT1 A 0 A_SpawnItemEx ("RLTechVileVortexShockwave", frandom(-1, 1), 0, 0, 0, 0, 0, 0, SXF_NOCHECKPOSITION)
    TNT1 A 0 A_RadiusThrust (-50, 512, RTF_NOTMISSILE | RTF_NOIMPACTDAMAGE, 512)
    TNT1 A 0 A_RadiusThrust (-500, 256, RTF_NOTMISSILE | RTF_NOIMPACTDAMAGE)
	TNT1 A 0 A_JumpIf(CallACS("DRLA_MonsterQuake") == 0, "Death")
    TNT1 A 0 A_Quake(6,1,0,256,"")
    TNT1 A 0 A_Quake(2,1,0,512,"")
  Death:
    TNT1 A 1
    Stop
  }
}

ACTOR RLTechVileVortexEffect
{
  Projectile
  +NOBLOCKMAP
  +NOGRAVITY
  +NOTELEPORT
  +THRUACTORS
  +NOCLIP
  +PIERCEARMOR
  +NOTIMEFREEZE
  +BLOODSPLATTER
  Translation "192:207=168:191"
  DamageType "Mysterious"
  RenderStyle Add
  Alpha 0.38
  States
  {	
  Spawn:
	TNT1 A 0 NoDelay A_SetScale (ScaleX+frandom(-0.2, 1.8))
    TNT1 A 0 A_Jump (220, 2)
	TNT1 A 0 A_Explode (3, 256, 0, 0, 256)
    PULS HIJKLMNOPQRST 1 Bright
    Stop
  }
}

ACTOR RLTechVileVortexShockwave
{
  +NOBLOCKMAP
  +NOGRAVITY
  +NOTELEPORT
  +THRUACTORS
  +NOCLIP
  +NOTONAUTOMAP
  +NOTIMEFREEZE
  RenderStyle Add
  Alpha 0.12
  Scale 13
  States
  {	
  Spawn:
	TNT1 A 0 NoDelay A_SetScale (ScaleX+frandom(-4.2, 4.2))
    NRXP FEDCBA 1 Bright
    Stop
  }
}
/*
// Mean Things
actor RLTechVileEPDrain : CustomInventory
{
    Radius 1
    Height 1
    
    +INVENTORY.AUTOACTIVATE
    +NOINTERACTION
    
    States
    {
    Spawn:
        TNT1 A 0
    Use:
        TNT1 A 0 ACS_NamedExecuteAlways("AddEP", 0, -1)
        Stop
    }
}
*/
ACTOR RLCyberneticResurrectionSparks
{
  +NOBLOCKMAP
  +NOGRAVITY
  +DONTBLAST
  +NOTIMEFREEZE
  RenderStyle Add
  Alpha 1
  States
  {
  Spawn:
    TNT1 A 1
	TNT1 AAAA 0 A_CustomRailgun (0, 0, "None", "Red", RGF_SILENT | RGF_FULLBRIGHT, 0, 25, "RLParticleBeamPuff2", frandom(0,359), frandom(-45,45), random(64,256), 1, 0.2, 0)
	TNT1 A 1 A_CustomRailgun (0, 0, "None", "Red", RGF_SILENT | RGF_FULLBRIGHT, 0, 25, "RLParticleBeamPuff2", frandom(0,359), frandom(-45,45), random(64,256), 1, 0.2, 0)
	TNT1 AAA 0 A_CustomRailgun (0, 0, "None", "Red", RGF_SILENT | RGF_FULLBRIGHT, 0, 25, "RLParticleBeamPuff2", frandom(0,359), frandom(-45,45), random(64,256), 1, 0.2, 0)
	TNT1 A 1 A_CustomRailgun (0, 0, "None", "Red", RGF_SILENT | RGF_FULLBRIGHT, 0, 25, "RLParticleBeamPuff2", frandom(0,359), frandom(-45,45), random(64,256), 1, 0.2, 0)
	TNT1 AA 0 A_CustomRailgun (0, 0, "None", "Red", RGF_SILENT | RGF_FULLBRIGHT, 0, 25, "RLParticleBeamPuff2", frandom(0,359), frandom(-45,45), random(64,256), 1, 0.2, 0)
	TNT1 AAAAA 1 A_CustomRailgun (0, 0, "None", "Red", RGF_SILENT | RGF_FULLBRIGHT, 0, 25, "RLParticleBeamPuff2", frandom(0,359), frandom(-45,45), random(64,256), 1, 0.2, 0)
	TNT1 AAAAAAAAAAAAAAAAAAA 2 A_CustomRailgun (0, 0, "None", "Red", RGF_SILENT | RGF_FULLBRIGHT, 0, 25, "RLParticleBeamPuff2", frandom(0,359), frandom(-45,45), random(64,256), 1, 0.2, 0)
    Stop
  }
}

ACTOR RLSuperTechvile : RLCyberneticArchvile 16610
{
  Health 2400
  Speed 12
  +BOSS
  +BOSSDEATH
  +LOOKAlLAROUND
  +NOTIMEFREEZE
  GibHealth -200
  PainChance 5
  PainChance "Plasma", 40
  DamageFactor "Melee", 0.50
  DamageFactor "Bullet", 0.50
  DamageFactor "Fire", 0.25
  DamageFactor "Plasma", 0.75
  DamageFactor "Radiation", 0
  DamageFactor "Crush", 10
  DamageFactor "Heroic", 3.0 // LegenDoom Damagetype
  Obituary "%o should not have challenged the Tech-Vile."
  Tag "Tech-Vile"
  States
  {
  Spawn:
    TNT1 A 0 A_ChangeFlag ("SHOOTABLE",1)
    TNT1 A 0 A_ChangeFlag ("INVULNERABLE",0)
    TNT1 A 0 A_JumpIfInventory ("RLTechVileHealthRestored", 1, 2)
    TNT1 A 0 A_JumpIfHealthLower (1200, "HealthRestoreSpawn")
    TNT1 A 0 A_GiveInventory ("PowerTechvile3xRegeneration",1)
    CVIH AAAAAAA 5 A_Look
    TNT1 A 0 A_PlaySound ("techvile/smallzap", 7, 1, 0, 1.4)
    CVIH BCDEF 1 Bright A_Look
    Loop
  See:
    TNT1 A 0 A_ChangeFlag ("SHOOTABLE",1)
    TNT1 A 0 A_ChangeFlag ("INVULNERABLE",0)
    TNT1 A 0 A_JumpIfInventory ("RLTechVileHealthRestored", 1, 2)
    TNT1 A 0 A_JumpIfHealthLower (1200, "HealthRestoreSee")
    CVIL AABBCCDDEEFF 1 A_Chase ("", "Missile", CHF_RESURRECT)
    TNT1 A 0 A_Jump (10,"TeleportAway")
    Loop
  TeleportAway:
    TNT1 A 0 A_SpawnItemEx ("TeleportFog", 0, 0, 0, 0, 0, 0, 0, SXF_NOCHECKPOSITION)
    TNT1 A 0 A_ChangeFlag ("SHOOTABLE",0)
    TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_Wander
  TeleportEnd:
    TNT1 A 0 A_SpawnItemEx ("TeleportFog", 0, 0, 0, 0, 0, 0, 0, SXF_NOCHECKPOSITION)
    TNT1 A 0 A_ChangeFlag ("SHOOTABLE",1)
    Goto See
  TeleportBlast:
    TNT1 A 0 A_SpawnItemEx ("TeleportFog", 0, 0, 0, 0, 0, 0, 0, SXF_NOCHECKPOSITION)
    TNT1 A 0 A_ChangeFlag ("SHOOTABLE",0)
    TNT1 AAAAAAAAAAAAAAAA 0 A_Chase ("", "MissileAfterTeleport", CHF_NOPLAYACTIVE | CHF_NIGHTMAREFAST)
    TNT1 A 0 A_MonsterRefire(0, "TeleportEnd")
    Goto MissileAfterTeleport
  MissileAfterTeleport:
    TNT1 A 0 A_SpawnItemEx ("TeleportFog", 0, 0, 0, 0, 0, 0, 0, SXF_NOCHECKPOSITION)
    TNT1 A 0 A_ChangeFlag ("SHOOTABLE",1)
    TNT1 A 0 A_JumpIfInTargetInventory ("RLFrontlineEngineerSentryStartupToken", 1, "SentryHax")
    TNT1 A 0 A_JumpIfCloser (300, "VacuumDoom")
    Goto MissileContinue+2
  Missile:
    TNT1 A 0 A_JumpIfInventory ("RLTechVileHealthRestored", 1, 2)
    TNT1 A 0 A_JumpIfHealthLower (1200, "HealthRestoreMissile")
    TNT1 A 0 A_JumpIfInTargetInventory ("RLFrontlineEngineerSentryStartupToken", 1, "SentryHax")
    TNT1 A 0 A_JumpIfCloser (300, "VacuumDoom")
  MissileContinue:
    CVIL GGG 6 A_FaceTarget
    TNT1 A 0 A_MonsterRefire(0, "TeleportBlast")
    TNT1 A 0 A_CustomMissile("RLTechVile4xPulse", 56, 0, 0)
    CVIL H 4 Bright A_FaceTarget
    CVIL G 3 A_FaceTarget
    TNT1 A 0 A_MonsterRefire(0, "TeleportBlast")
    TNT1 A 0 A_CustomMissile("RLTechVile4xPulse", 56, 0, 0)
    CVIL H 4 Bright A_FaceTarget
    CVIL G 3 A_FaceTarget
    TNT1 A 0 A_MonsterRefire(0, "TeleportBlast")
    TNT1 A 0 A_CustomMissile("RLTechVile4xPulse", 56, 0, 0)
    CVIL H 4 Bright A_FaceTarget
    CVIL G 3 A_FaceTarget
    TNT1 A 0 A_MonsterRefire(0, "TeleportBlast")
    TNT1 A 0 A_CustomMissile("RLTechVile4xPulse", 56, 0, 0)
    CVIL H 4 Bright A_FaceTarget
    CVIL G 3 A_FaceTarget
    TNT1 A 0 A_MonsterRefire(0, "TeleportBlast")
    TNT1 A 0 A_CustomMissile("RLTechVile4xPulse", 56, 0, 0)
    CVIL H 4 Bright A_FaceTarget
    CVIL G 3 A_FaceTarget
    TNT1 A 0 A_MonsterRefire(0, "TeleportBlast")
    TNT1 A 0 A_CustomMissile("RLTechVile4xPulse", 56, 0, 0)
    CVIL H 4 Bright A_FaceTarget
    CVIL G 3 A_FaceTarget
    TNT1 A 0 A_MonsterRefire(0, "TeleportBlast")
    TNT1 A 0 A_CustomMissile("RLTechVile4xPulse", 56, 0, 0)
    CVIL H 4 Bright A_FaceTarget
    CVIL G 3 A_FaceTarget
    TNT1 A 0 A_MonsterRefire(0, "TeleportBlast")
    TNT1 A 0 A_CustomMissile("RLTechVile4xPulse", 56, 0, 0)
    CVIL H 4 Bright A_FaceTarget
    CVIL G 3 A_FaceTarget
    TNT1 A 0 A_MonsterRefire(0, "TeleportBlast")
    TNT1 A 0 A_CustomMissile("RLTechVile4xPulse", 56, 0, 0)
    CVIL H 4 Bright A_FaceTarget
    CVIL G 3 A_FaceTarget
    TNT1 A 0 A_MonsterRefire(0, "TeleportBlast")
    TNT1 A 0 A_CustomMissile("RLTechVile4xPulse", 56, 0, 0)
    CVIL H 4 Bright A_FaceTarget
    CVIL G 3 A_FaceTarget
    TNT1 A 0 A_MonsterRefire(0, "TeleportBlast")
    TNT1 A 0 A_CustomMissile("RLTechVile4xPulse", 56, 0, 0)
    CVIL H 4 Bright A_FaceTarget
    CVIL G 3 A_FaceTarget
    TNT1 A 0 A_MonsterRefire(0, "TeleportBlast")
    TNT1 A 0 A_CustomMissile("RLTechVile4xPulse", 56, 0, 0)
    CVIL H 4 Bright A_FaceTarget
    CVIL G 3 A_FaceTarget
    Goto See
  Shield:
    TNT1 A 0 A_SpawnItemEx ("RLTechVile4xRegen4xHPShield", 1, 0, 0, 0, 0, 0, 0, SXF_SETMASTER | SXF_NOCHECKPOSITION)
    TNT1 A 0 A_SetMass (0x7fffffff)
    TNT1 A 0 A_ChangeFlag ("INVULNERABLE", 1)
    TNT1 A 0 A_GiveInventory ("PowerRLTechVile2xShieldCooldown", 1)
  ShieldLoop:
    TNT1 A 0 HealThing (1)
    CVIH A 1 Bright A_CustomRailgun (0, 0, "None", "Red", RGF_SILENT | RGF_FULLBRIGHT, 0, 25, "RLParticleBeamPuff2", frandom(0,359), frandom(-45,45), random(64,256), 1, 0.2, 0, "None", random(-16,16))
    TNT1 A 0 A_GiveInventory ("RLTechVile4xShieldTimer", 1)
    TNT1 A 0 A_JumpIfInventory ("RLTechVile4xShieldTimer", 280, "ShieldFinish")
    Goto ShieldLoop
  ShieldFinish:
    TNT1 A 0 A_TakeInventory ("RLTechVile4xShieldTimer", 280)
    TNT1 A 0 A_ChangeFlag ("INVULNERABLE",0)
    TNT1 A 0 A_SetMass (5000)
    TNT1 A 0 A_KillChildren
    Goto See
  Pain.Plasma:
    TNT1 A 0 A_JumpIfInventory ("RLTechVileHealthRestored", 1, 2)
    TNT1 A 0 A_JumpIfHealthLower (1200, "HealthRestoreShield")
    TNT1 A 0 A_JumpIfInventory ("PowerRLTechVileShieldCooldown", 1, "Pain")
    Goto Shield
  Pain:
    TNT1 A 0 A_JumpIfInventory ("RLTechVileHealthRestored", 1, 2)
    TNT1 A 0 A_JumpIfHealthLower (1200, "HealthRestore")
    CVIL L 5   
    CVIL L 5 A_Pain
    Goto TeleportAway
  Pain.CyberDisruptor:
    TNT1 A 0 A_JumpIfInventory ("RLTechVileHealthRestored", 1, 2)
    TNT1 A 0 A_JumpIfHealthLower (1200, "HealthRestoreDisruptor")
    CVIL L 2
    CVIL L 6 A_Pain
    CVIL L 6
    CVIL L 6 A_Pain
    Goto See
  HealthRestore:
    TNT1 A 0 A_GiveInventory ("RLTechVileHealthRestored", 1)
    TNT1 A 0 HealThing (2400)
    TNT1 A 0 A_PlaySound ("techvile/augupgrade", 6, 1, 0, 0.2)
    TNT1 AAAAAAAAAAAA 0 A_CustomRailgun (0, 0, "None", "Red", RGF_SILENT | RGF_FULLBRIGHT, 0, 25, "RLParticleBeamPuff2", frandom(0,359), frandom(-45,45), random(64,256), 1, 0.2, 0, "None", random(-16,16))
    Goto Pain+2
  HealthRestoreSpawn:
    TNT1 A 0 A_GiveInventory ("RLTechVileHealthRestored", 1)
    TNT1 A 0 HealThing (2400)
    TNT1 A 0 A_PlaySound ("techvile/augupgrade", 6, 1, 0, 0.2)
    TNT1 AAAAAAAAAAAA 0 A_CustomRailgun (0, 0, "None", "Red", RGF_SILENT | RGF_FULLBRIGHT, 0, 25, "RLParticleBeamPuff2", frandom(0,359), frandom(-45,45), random(64,256), 1, 0.2, 0, "None", random(-16,16))
    Goto Spawn
  HealthRestoreSee:
    TNT1 A 0 A_GiveInventory ("RLTechVileHealthRestored", 1)
    TNT1 A 0 HealThing (2400)
    TNT1 A 0 A_PlaySound ("techvile/augupgrade", 6, 1, 0, 0.2)
    TNT1 AAAAAAAAAAAA 0 A_CustomRailgun (0, 0, "None", "Red", RGF_SILENT | RGF_FULLBRIGHT, 0, 25, "RLParticleBeamPuff2", frandom(0,359), frandom(-45,45), random(64,256), 1, 0.2, 0, "None", random(-16,16))
    Goto See
  HealthRestoreMissile:
    TNT1 A 0 A_GiveInventory ("RLTechVileHealthRestored", 1)
    TNT1 A 0 HealThing (2400)
    TNT1 A 0 A_PlaySound ("techvile/augupgrade", 6, 1, 0, 0.2)
    TNT1 AAAAAAAAAAAA 0 A_CustomRailgun (0, 0, "None", "Red", RGF_SILENT | RGF_FULLBRIGHT, 0, 25, "RLParticleBeamPuff2", frandom(0,359), frandom(-45,45), random(64,256), 1, 0.2, 0, "None", random(-16,16))
    Goto Missile+2
  HealthRestoreShield:
    TNT1 A 0 A_GiveInventory ("RLTechVileHealthRestored", 1)
    TNT1 A 0 HealThing (2400)
    TNT1 A 0 A_PlaySound ("techvile/augupgrade", 6, 1, 0, 0.2)
    TNT1 AAAAAAAAAAAA 0 A_CustomRailgun (0, 0, "None", "Red", RGF_SILENT | RGF_FULLBRIGHT, 0, 25, "RLParticleBeamPuff2", frandom(0,359), frandom(-45,45), random(64,256), 1, 0.2, 0, "None", random(-16,16))
    Goto Pain.Plasma+2
  HealthRestore:
    TNT1 A 0 A_GiveInventory ("RLTechVileHealthRestored", 1)
    TNT1 A 0 HealThing (2400)
    TNT1 A 0 A_PlaySound ("techvile/augupgrade", 6, 1, 0, 0.2)
    TNT1 AAAAAAAAAAAA 0 A_CustomRailgun (0, 0, "None", "Red", RGF_SILENT | RGF_FULLBRIGHT, 0, 25, "RLParticleBeamPuff2", frandom(0,359), frandom(-45,45), random(64,256), 1, 0.2, 0, "None", random(-16,16))
    Goto Pain.CyberDisruptor+2
  XDeath.Melee:
    TNT1 A 0 A_GiveToTarget ("RLBerserkerBloodlustBonusCheck", 1)
	Goto Death
  XDeath:
  Death:
    CVIL M 4
    TNT1 A 0 A_PlaySound ("techvile/deathzap", 6, 1, 0, 0.9)
    TNT1 A 0 A_Jump (256, 1,2,3,4,5,6)
	TNT1 AAAAA 0 A_CustomRailgun (0, 0, "None", "Red", RGF_SILENT | RGF_FULLBRIGHT, 0, 25, "RLParticleBeamPuff2", frandom(0,359), frandom(-45,45), random(64,256), 1, 0.2, 0, "None", random(-16,16))
    CVIL N 1 Bright A_PlaySound ("techvile/smallzap", 7, 1, 0, 1.4)
    CVIL M 2
    CVIL O 1 A_Scream
    TNT1 A 0 A_Jump (256, 1,2,3,4,5,6)
	TNT1 AAAAA 0 A_CustomRailgun (0, 0, "None", "Red", RGF_SILENT | RGF_FULLBRIGHT, 0, 25, "RLParticleBeamPuff2", frandom(0,359), frandom(-45,45), random(64,256), 1, 0.2, 0, "None", random(-16,16))
    CVIL P 1 Bright A_PlaySound ("techvile/smallzap", 7, 1, 0, 1.4)
    CVIL O 5
    CVIL Q 3 A_NoBlocking
    TNT1 A 0 A_Jump (256, 1,2,3,4,5,6)
    TNT1 A 0 A_SpawnItemEx ("RLUniqueItemSpawner", 0, 0, 16, 0, 0, 0, 0, SXF_NOCHECKPOSITION)
	TNT1 AAAAA 0 A_CustomRailgun (0, 0, "None", "Red", RGF_SILENT | RGF_FULLBRIGHT, 0, 25, "RLParticleBeamPuff2", frandom(0,359), frandom(-45,45), random(64,256), 1, 0.2, 0, "None", random(-16,16))
    CVIL R 1 Bright A_PlaySound ("techvile/smallzap", 7, 1, 0, 1.4)
    CVIL Q 3
    CVIL S 7
    TNT1 A 0 A_SpawnItem ("RLBodyThud", 0, 0, 0, 0)
    CVIL TUVW 7
    CVIL X 52
    TNT1 A 0 A_PlaySound ("techvile/smallzap", 7, 1, 0, 1.4)
	TNT1 A 0 A_CustomRailgun (0, 0, "None", "Red", RGF_SILENT | RGF_FULLBRIGHT, 0, 25, "RLParticleBeamPuff2", frandom(0,359), frandom(-45,45), random(64,256), 1, 0.2, 0, "None", random(-16,16))
    CVIL X 26
    TNT1 A 0 A_PlaySound ("techvile/smallzap", 7, 1, 0, 1.4)
	TNT1 A 0 A_CustomRailgun (0, 0, "None", "Red", RGF_SILENT | RGF_FULLBRIGHT, 0, 25, "RLParticleBeamPuff2", frandom(0,359), frandom(-45,45), random(64,256), 1, 0.2, 0, "None", random(-16,16))
    CVIL X 222
    CVIL X -1 A_BossDeath
    Stop
  Crush:
    TNT1 A 1 A_SpawnItem("RLCrushedSmallBlack",0,0,0,0)
    Stop
  Death.Massacre:
    TNT1 A 0 A_NoBlocking
    TNT1 A 0 A_Stop
    TNT1 A 0 ThrustThingZ (0, 20, 0, 0)
    CVIL X -1
    Stop
  }
}

Actor RLTechVileHealthRestored : Inventory
{
inventory.maxamount 1
}

Actor RLTechVile2xShieldTimer : Inventory
{
inventory.maxamount 140
}

Actor RLTechVile4xShieldTimer : Inventory
{
inventory.maxamount 280
}

actor PowerTechvile1xRegeneration : PowerRegeneration
{
   Powerup.Strength 1
   inventory.icon ""
   Powerup.Duration -0x7FFFFFFF
   +INVENTORY.PERSISTENTPOWER
}

actor PowerTechvile2xRegeneration : PowerRegeneration
{
   Powerup.Strength 2
   inventory.icon ""
   Powerup.Duration -0x7FFFFFFF
   +INVENTORY.PERSISTENTPOWER
}

actor PowerTechvile3xRegeneration : PowerRegeneration
{
   Powerup.Strength 3
   inventory.icon ""
   Powerup.Duration -0x7FFFFFFF
   +INVENTORY.PERSISTENTPOWER
}

ACTOR PowerRLTechVileShieldCooldown : Powerup
{
	Powerup.Duration -120
}

ACTOR PowerRLTechVile2xShieldCooldown : Powerup
{
	Powerup.Duration -60
}

ACTOR RLTechVile2xRegen1xHPShield : RLTechVileShield
{
  Health 100
  States
  {
  Spawn:
    TNT1 A 0 A_PlaySound ("techvile/shieldstart", 7, 1, 0, 0.7)
    TNT1 A 0 HealThing (2)
    SHL1 A 1 Bright A_Warp(AAPTR_MASTER, 1, 0, 0, 0, WARPF_INTERPOLATE)
    TNT1 A 0 A_PlaySound ("techvile/shieldloop", 6, 1, 1, 0.7)
    TNT1 A 0 A_Jump (240, "Spawn")
    TNT1 A 0 HealThing (2)
    TNT1 A 1 A_Warp(AAPTR_MASTER, 1, 0, 0, 0, WARPF_INTERPOLATE)
    Goto Spawn+1
  }
}

ACTOR RLTechVile4xRegen1xHPShield : RLTechVileShield
{
  Health 100
  States
  {
  Spawn:
    TNT1 A 0 A_PlaySound ("techvile/shieldstart", 7, 1, 0, 0.7)
    TNT1 A 0 HealThing (4)
    SHL1 A 1 Bright A_Warp(AAPTR_MASTER, 1, 0, 0, 0, WARPF_INTERPOLATE)
    TNT1 A 0 A_PlaySound ("techvile/shieldloop", 6, 1, 1, 0.7)
    TNT1 A 0 A_Jump (240, "Spawn")
    TNT1 A 0 HealThing (4)
    TNT1 A 1 A_Warp(AAPTR_MASTER, 1, 0, 0, 0, WARPF_INTERPOLATE)
    Goto Spawn+1
  }
}

ACTOR RLTechVile1xRegen2xHPShield : RLTechVileShield
{
  Health 200
  States
  {
  Spawn:
    TNT1 A 0 A_PlaySound ("techvile/shieldstart", 7, 1, 0, 0.7)
    TNT1 A 0 HealThing (1)
    SHL1 A 1 Bright A_Warp(AAPTR_MASTER, 1, 0, 0, 0, WARPF_INTERPOLATE)
    TNT1 A 0 A_PlaySound ("techvile/shieldloop", 6, 1, 1, 0.7)
    TNT1 A 0 A_Jump (240, "Spawn")
    TNT1 A 0 HealThing (1)
    TNT1 A 1 A_Warp(AAPTR_MASTER, 1, 0, 0, 0, WARPF_INTERPOLATE)
    Goto Spawn+1
  }
}

ACTOR RLTechVile1xRegen4xHPShield : RLTechVileShield
{
  Health 400
  States
  {
  Spawn:
    TNT1 A 0 A_PlaySound ("techvile/shieldstart", 7, 1, 0, 0.7)
    TNT1 A 0 HealThing (1)
    SHL1 A 1 Bright A_Warp(AAPTR_MASTER, 1, 0, 0, 0, WARPF_INTERPOLATE)
    TNT1 A 0 A_PlaySound ("techvile/shieldloop", 6, 1, 1, 0.7)
    TNT1 A 0 A_Jump (240, "Spawn")
    TNT1 A 0 HealThing (1)
    TNT1 A 1 A_Warp(AAPTR_MASTER, 1, 0, 0, 0, WARPF_INTERPOLATE)
    Goto Spawn+1
  }
}

ACTOR RLTechVile2xRegen2xHPShield : RLTechVileShield
{
  Health 200
  States
  {
  Spawn:
    TNT1 A 0 A_PlaySound ("techvile/shieldstart", 7, 1, 0, 0.7)
    TNT1 A 0 HealThing (2)
    SHL1 A 1 Bright A_Warp(AAPTR_MASTER, 1, 0, 0, 0, WARPF_INTERPOLATE)
    TNT1 A 0 A_PlaySound ("techvile/shieldloop", 6, 1, 1, 0.7)
    TNT1 A 0 A_Jump (240, "Spawn")
    TNT1 A 0 HealThing (2)
    TNT1 A 1 A_Warp(AAPTR_MASTER, 1, 0, 0, 0, WARPF_INTERPOLATE)
    Goto Spawn+1
  }
}

ACTOR RLTechVile4xRegen2xHPShield : RLTechVileShield
{
  Health 200
  States
  {
  Spawn:
    TNT1 A 0 A_PlaySound ("techvile/shieldstart", 7, 1, 0, 0.7)
    TNT1 A 0 HealThing (4)
    SHL1 A 1 Bright A_Warp(AAPTR_MASTER, 1, 0, 0, 0, WARPF_INTERPOLATE)
    TNT1 A 0 A_PlaySound ("techvile/shieldloop", 6, 1, 1, 0.7)
    TNT1 A 0 A_Jump (240, "Spawn")
    TNT1 A 0 HealThing (4)
    TNT1 A 1 A_Warp(AAPTR_MASTER, 1, 0, 0, 0, WARPF_INTERPOLATE)
    Goto Spawn+1
  }
}

ACTOR RLTechVile2xRegen4xHPShield : RLTechVileShield
{
  Health 400
  States
  {
  Spawn:
    TNT1 A 0 A_PlaySound ("techvile/shieldstart", 7, 1, 0, 0.7)
    TNT1 A 0 HealThing (2)
    SHL1 A 1 Bright A_Warp(AAPTR_MASTER, 1, 0, 0, 0, WARPF_INTERPOLATE)
    TNT1 A 0 A_PlaySound ("techvile/shieldloop", 6, 1, 1, 0.7)
    TNT1 A 0 A_Jump (240, "Spawn")
    TNT1 A 0 HealThing (2)
    TNT1 A 1 A_Warp(AAPTR_MASTER, 1, 0, 0, 0, WARPF_INTERPOLATE)
    Goto Spawn+1
  }
}

ACTOR RLTechVile4xRegen4xHPShield : RLTechVileShield
{
  Health 400
  States
  {
  Spawn:
    TNT1 A 0 A_PlaySound ("techvile/shieldstart", 7, 1, 0, 0.7)
    TNT1 A 0 HealThing (4)
    SHL1 A 1 Bright A_Warp(AAPTR_MASTER, 1, 0, 0, 0, WARPF_INTERPOLATE)
    TNT1 A 0 A_PlaySound ("techvile/shieldloop", 6, 1, 1, 0.7)
    TNT1 A 0 A_Jump (240, "Spawn")
    TNT1 A 0 HealThing (4)
    TNT1 A 1 A_Warp(AAPTR_MASTER, 1, 0, 0, 0, WARPF_INTERPOLATE)
    Goto Spawn+1
  }
}

ACTOR RLTechSpawnShot : SpawnShot
{
  Speed 18
  Scale 0.1
  Translation "192:202=168:183"
  SeeSound "techvile/electroball"
  DeathSound "misc/teleport"
  DropItem "RLArmageddonDemon"
  States
  {
  Spawn:
    TNT1 A 0 NoDelay A_PlaySound ("techvile/lightningloop", 6, 0.4, 1, 1.3)
    TNT1 AAA 0 A_CustomRailgun (0, 0, "None", "Red", RGF_SILENT | RGF_FULLBRIGHT, 0, 25, "RLParticleBeamPuff2", frandom(0,359), frandom(-45,45), random(64,256), 1, 0.2, 0, "None", -20)
    BBAL A 1 Bright A_SpawnFly ("RLRedTeleportFog")
    TNT1 AAA 0 A_CustomRailgun (0, 0, "None", "Red", RGF_SILENT | RGF_FULLBRIGHT, 0, 25, "RLParticleBeamPuff2", frandom(0,359), frandom(-45,45), random(64,256), 1, 0.2, 0, "None", -20)
    TNT1 A 1 A_SpawnFly ("RLRedTeleportFog")
    TNT1 AAA 0 A_CustomRailgun (0, 0, "None", "Red", RGF_SILENT | RGF_FULLBRIGHT, 0, 25, "RLParticleBeamPuff2", frandom(0,359), frandom(-45,45), random(64,256), 1, 0.2, 0, "None", -20)
    BBAL B 1 Bright A_SpawnFly ("RLRedTeleportFog")
    TNT1 AAA 0 A_CustomRailgun (0, 0, "None", "Red", RGF_SILENT | RGF_FULLBRIGHT, 0, 25, "RLParticleBeamPuff2", frandom(0,359), frandom(-45,45), random(64,256), 1, 0.2, 0, "None", -20)
    TNT1 A 1 A_SpawnFly ("RLRedTeleportFog")
    TNT1 AAA 0 A_CustomRailgun (0, 0, "None", "Red", RGF_SILENT | RGF_FULLBRIGHT, 0, 25, "RLParticleBeamPuff2", frandom(0,359), frandom(-45,45), random(64,256), 1, 0.2, 0, "None", -20)
    BBAL C 1 Bright A_SpawnFly ("RLRedTeleportFog")
    TNT1 AAA 0 A_CustomRailgun (0, 0, "None", "Red", RGF_SILENT | RGF_FULLBRIGHT, 0, 25, "RLParticleBeamPuff2", frandom(0,359), frandom(-45,45), random(64,256), 1, 0.2, 0, "None", -20)
    TNT1 A 1 A_SpawnFly ("RLRedTeleportFog")
    TNT1 AAA 0 A_CustomRailgun (0, 0, "None", "Red", RGF_SILENT | RGF_FULLBRIGHT, 0, 25, "RLParticleBeamPuff2", frandom(0,359), frandom(-45,45), random(64,256), 1, 0.2, 0, "None", -20)
    BBAL D 1 Bright A_SpawnFly ("RLRedTeleportFog")
    TNT1 AAA 0 A_CustomRailgun (0, 0, "None", "Red", RGF_SILENT | RGF_FULLBRIGHT, 0, 25, "RLParticleBeamPuff2", frandom(0,359), frandom(-45,45), random(64,256), 1, 0.2, 0, "None", -20)
    TNT1 A 1 A_SpawnFly ("RLRedTeleportFog")
    Loop
  }
}

ACTOR RLRedTeleportFog
{
  +NOBLOCKMAP
  +NOGRAVITY
  +NOTELEPORT
  RenderStyle Add
  States
  {
  Spawn:
    TNT1 A 0 NoDelay A_Fire
    TNT1 A 0 A_PlaySound ("misc/teleport")
    RFOG ABABCDEFGHIJ 6 Bright
    Stop
  }
}

ACTOR RLTechVileElectroBall
{
  Radius 7
  Height 4
  Speed 1
  Damage (100)
  Damagetype "Plasma"
  Paintype "Lightning"
  Deathtype "Lightning"
  Mass 14
  Projectile
  +RANDOMIZE
  +SEEKERMISSILE
  +MTHRUSPECIES
  +BLOODSPLATTER
  RenderStyle Add
  Alpha 0.95
  Scale 0.80
  SeeSound "techvile/electroball"
  DeathSound ""
  States
  {
  Spawn:
    TNT1 A 0 NoDelay A_PlaySound ("techvile/lightningloop", 6, 0.7, 1, 0.8)
    TNT1 A 0 A_JumpIf (Speed>25, "TimeUp")
    TNT1 A 0 A_JumpIf (Mass>178, "SpeedUp")
    TNT1 A 0 A_CustomRailgun (10, 0, "None", "Red", RGF_SILENT | RGF_FULLBRIGHT | RGF_EXPLICITANGLE, 0, 25, "RLParticleBeamPuff4", Mass, 0, random(256,265), 1, 0.2, 0, "None", -14)
    TNT1 A 0 A_CustomRailgun (10, 0, "None", "Red", RGF_SILENT | RGF_FULLBRIGHT | RGF_EXPLICITANGLE, 0, 25, "RLParticleBeamPuff4", Mass+180, 0, random(256,265), 1, 0.2, 0, "None", -14)
    PPCS E 1 Bright A_SeekerMissile(90, 90, SMF_PRECISE)
    TNT1 A 0 A_SetMass (Mass+15)
    TNT1 A 0 A_CustomRailgun (10, 0, "None", "Red", RGF_SILENT | RGF_FULLBRIGHT | RGF_EXPLICITANGLE, 0, 25, "RLParticleBeamPuff4", Mass, 0, random(256,265), 1, 0.2, 0, "None", -14)
    TNT1 A 0 A_CustomRailgun (10, 0, "None", "Red", RGF_SILENT | RGF_FULLBRIGHT | RGF_EXPLICITANGLE, 0, 25, "RLParticleBeamPuff4", Mass+180, 0, random(256,265), 1, 0.2, 0, "None", -14)
    PPCS F 1 Bright A_SeekerMissile(90, 90, SMF_PRECISE)
    TNT1 A 0 A_SetMass (Mass+15)
    Loop
  SpeedUp:
    TNT1 A 0 A_SetMass (14)
    TNT1 A 0 A_SetSpeed (Speed+1)
    Goto Spawn
  TimeUp:
    TNT1 A 0 A_Stop
  Death:
    TNT1 A 0 A_StopSound (6)
  DeathLoop:
    TNT1 A 0 A_SetScale (ScaleX-0.08)
    PPCS EF 1 Bright A_FadeTo (0, 0.04, 1)
    Loop
  }
}

ACTOR RLTechVileChargeShockwave
{
   Projectile
   Radius 8
   Height 8
   Speed 0
   Scale 4.5
   Damage 0
   Translation "112:127=176:191"
   RENDERSTYLE Add
   Alpha 0.78
   +NOCLIP
   +NOINTERACTION
   +NOTIMEFREEZE
   States
   {
   Spawn:
   SHOK RQPONMLKJIHGFEDCBA 1 Bright A_SetScale (ScaleX-0.2)
   Stop
   }
}

ACTOR RLDRPGSummonedCyberneticArchvile : RLCyberneticArchvile
{
  -COUNTKILL
  -NOTARGET
  +NOBLOCKMONST
  +NOTELESTOMP
  +NOFEAR
  +SEEINVISIBLE
  +DONTDRAIN
  +ALWAYSFAST
  +QUICKTORETALIATE
  +MISSILEMORE
  +THRUSPECIES
  Species "Player"
  States
  {
  Spawn:
	TNT1 A 0 NoDelay ACS_NamedExecuteAlways("MonsterInit", 0)
    TNT1 A 0 A_GiveInventory ("RLMonsterInitializerToken", 1)
    TNT1 A 0 A_GiveInventory ("DRPGDRLASummonedMonsterToken", 1)
	Goto Super::Spawn
	See:
	TNT1 A 0 ACS_NamedExecuteAlways("MonsterInit", 0)
    TNT1 A 0 A_GiveInventory ("RLMonsterInitializerToken", 1)
    TNT1 A 0 A_GiveInventory ("DRPGDRLASummonedMonsterToken", 1)
	Goto Super::See
  Raise:
    Stop
  }
}

ACTOR RLCCCyberneticArchvile : RLCyberneticArchvile
{
  +TOUCHY
  States
  {
  See:
    CVIL AABBCCDDEEFF 2
    Loop
  Missile:
    CVIL G 10
    CVIL H 8 Bright
    CVIL G 6
    CVIL H 8 Bright
    CVIL G 6
    CVIL H 8 Bright
    CVIL G 6
    Goto See
  Melee:
    CVIH A 10
    CVIH BCDEF 1 Bright
    CVIH A 2
    Goto Melee+1
  Death:
    CVIL M 4
    CVIL N 1 Bright
    CVIL M 2
    CVIL O 1 A_Scream
    CVIL P 1 Bright
    CVIL O 5
    CVIL Q 3 A_NoBlocking
    CVIL R 1 Bright
    CVIL Q 3
    CVIL S 7
    CVIL TUVW 7
    CVIL X -1
  }
}

//==========================================================================================
//		NEO DOOM SEKRIT BOSS HUEHUE
//==========================================================================================

ACTOR RLFinalTechvile : RLCyberneticArchvile
{
  Health 15000
  Speed 12
  +BOSS
  +BOSSDEATH
  +LOOKAlLAROUND
  +NOTELEFRAG
  +NOTARGET
  +NOTIMEFREEZE
  +NOFEAR
  +SEEINVISIBLE
  AttackSound ""
  GibHealth -200
  PainChance 5
  PainChance "Plasma", 40
  PainChance "Lightning", 256
  DamageFactor "Melee", 0.50
  DamageFactor "Bullet", 0.50
  DamageFactor "Fire", 0.25
  DamageFactor "Plasma", 0.75
  DamageFactor "Radiation", 0
  DamageFactor "Crush", 10
  Obituary "%o tried so hard, and got so far, but in the end, it didn't even matter."
  Tag "Tech-Vile Lord"
  States
  {
  Spawn:
    TNT1 A 0 A_StopSound (6)
    TNT1 A 0 A_ChangeFlag ("SHOOTABLE",1)
    TNT1 A 0 A_ChangeFlag ("INVULNERABLE",0)
    TNT1 A 0 A_JumpIfInventory ("RLTechVileHealthRestored", 1, 2)
    TNT1 A 0 A_JumpIfHealthLower (3000, "HealthRestore")
    TNT1 A 0 A_GiveInventory ("PowerTechvile3xRegeneration",1)
    CVIH AAAAAAA 5 A_Look
    TNT1 A 0 A_PlaySound ("techvile/smallzap", 7, 1, 0, 1.4)
    CVIH BCDEF 1 Bright A_Look
    Loop
	
  See:
    TNT1 A 0 A_JumpIfInventory ("RLFinalTechVileActive", 1, 3)
    TNT1 A 0 A_GiveInventory ("RLFinalTechVileActive", 1)
	TNT1 A 0 ACS_NamedExecuteAlways("TechMusic", 0)
    TNT1 A 0 A_ChangeFlag ("SHOOTABLE",1)
    TNT1 A 0 A_ChangeFlag ("INVULNERABLE",0)
    TNT1 A 0 A_JumpIfInventory ("RLTechVileHealthRestored", 1, 2)
    TNT1 A 0 A_JumpIfHealthLower (3000, "HealthRestore")
    CVIL AABBCCDDEEFF 1 A_Chase ("", "Missile", CHF_RESURRECT)
    TNT1 A 0 A_Jump (10,"TeleportAway")
    Loop
	
  TeleportAway:
    TNT1 A 0 A_SpawnItemEx ("TeleportFog", 0,0,0, 0,0,0, 0, SXF_NOCHECKPOSITION)
    TNT1 A 0 A_ChangeFlag ("SHOOTABLE",0)
    TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_Wander
  TeleportEnd:
    TNT1 A 0 A_SpawnItemEx ("TeleportFog", 0,0,0, 0,0,0, 0, SXF_NOCHECKPOSITION)
    TNT1 A 0 A_ChangeFlag ("SHOOTABLE",1)
    Goto See
  TeleportBlast:
    TNT1 A 0 A_SpawnItemEx ("TeleportFog", 0,0,0, 0,0,0, 0, SXF_NOCHECKPOSITION)
    TNT1 A 0 A_ChangeFlag ("SHOOTABLE",0)
    TNT1 AAAAAAAAAAAAAAAA 0 A_Chase ("", "MissileAfterTeleport", CHF_NOPLAYACTIVE | CHF_NIGHTMAREFAST)
    TNT1 A 0 A_MonsterRefire(0, "TeleportEnd")
    Goto MissileAfterTeleport
  MissileAfterTeleport:
    TNT1 A 0 A_SpawnItemEx ("TeleportFog", 0,0,0, 0,0,0, 0, SXF_NOCHECKPOSITION)
    TNT1 A 0 A_ChangeFlag ("SHOOTABLE",1)
    TNT1 A 0 A_JumpIfInTargetInventory ("RLFrontlineEngineerSentryStartupToken", 1, "SentryHax")
    TNT1 A 0 A_JumpIfCloser (300, "VacuumDoom")
    Goto MissileContinue+2
  Missile:
    TNT1 A 0 A_SpawnItemEx ("BossTarget", 0,0,0, 0,0,0, 0, SXF_NOCHECKPOSITION)
    TNT1 A 0 A_JumpIfInventory ("RLTechVileHealthRestored", 1, 2)
    TNT1 A 0 A_JumpIfHealthLower (3000, "HealthRestore")
    TNT1 A 0 A_JumpIfInTargetInventory ("RLFrontlineEngineerSentryStartupToken", 1, "SentryHax")
    TNT1 A 0 A_JumpIfCloser (300, "VacuumDoom")
    TNT1 A 0 A_JumpIfInventory ("RLTechVileHealthRestored", 1, 2)
    TNT1 A 0 A_Jump (128, "MissileSpray")
	Goto MissileContinue
    TNT1 A 0 A_JumpIfCloser (512, "MissileCloseRange")
    TNT1 A 0 A_JumpIfCloser (1024, "MissileMediumRange")
	Goto MissileSpray
  MissileCloseRange:
    TNT1 A 0 A_Jump (110, "ElectroBall")
	Goto MissileContinue
  MissileMediumRange:
    TNT1 A 0 A_Jump (180, "LightningBolt")
	Goto MissileContinue
  MissileContinue:
    CVIL GGG 6 A_FaceTarget
    TNT1 A 0 A_MonsterRefire(0, "TeleportBlast")
    TNT1 A 0 A_CustomMissile("RLTechVile4xPulse", 56, 0, 0)
    CVIL H 4 Bright A_FaceTarget
    CVIL G 3 A_FaceTarget
    TNT1 A 0 A_MonsterRefire(0, "TeleportBlast")
    TNT1 A 0 A_CustomMissile("RLTechVile4xPulse", 56, 0, 0)
    CVIL H 4 Bright A_FaceTarget
    CVIL G 3 A_FaceTarget
    TNT1 A 0 A_MonsterRefire(0, "TeleportBlast")
    TNT1 A 0 A_CustomMissile("RLTechVile4xPulse", 56, 0, 0)
    CVIL H 4 Bright A_FaceTarget
    CVIL G 3 A_FaceTarget
    TNT1 A 0 A_MonsterRefire(0, "TeleportBlast")
    TNT1 A 0 A_CustomMissile("RLTechVile4xPulse", 56, 0, 0)
    CVIL H 4 Bright A_FaceTarget
    CVIL G 3 A_FaceTarget
    TNT1 A 0 A_MonsterRefire(0, "TeleportBlast")
    TNT1 A 0 A_CustomMissile("RLTechVile4xPulse", 56, 0, 0)
    CVIL H 4 Bright A_FaceTarget
    CVIL G 3 A_FaceTarget
    TNT1 A 0 A_MonsterRefire(0, "TeleportBlast")
    TNT1 A 0 A_CustomMissile("RLTechVile4xPulse", 56, 0, 0)
    CVIL H 4 Bright A_FaceTarget
    CVIL G 3 A_FaceTarget
    TNT1 A 0 A_MonsterRefire(0, "TeleportBlast")
    TNT1 A 0 A_CustomMissile("RLTechVile4xPulse", 56, 0, 0)
    CVIL H 4 Bright A_FaceTarget
    CVIL G 3 A_FaceTarget
    TNT1 A 0 A_MonsterRefire(0, "TeleportBlast")
    TNT1 A 0 A_CustomMissile("RLTechVile4xPulse", 56, 0, 0)
    CVIL H 4 Bright A_FaceTarget
    CVIL G 3 A_FaceTarget
    TNT1 A 0 A_MonsterRefire(0, "TeleportBlast")
    TNT1 A 0 A_CustomMissile("RLTechVile4xPulse", 56, 0, 0)
    CVIL H 4 Bright A_FaceTarget
    CVIL G 3 A_FaceTarget
    TNT1 A 0 A_MonsterRefire(0, "TeleportBlast")
    TNT1 A 0 A_CustomMissile("RLTechVile4xPulse", 56, 0, 0)
    CVIL H 4 Bright A_FaceTarget
    CVIL G 3 A_FaceTarget
    TNT1 A 0 A_MonsterRefire(0, "TeleportBlast")
    TNT1 A 0 A_CustomMissile("RLTechVile4xPulse", 56, 0, 0)
    CVIL H 4 Bright A_FaceTarget
    CVIL G 3 A_FaceTarget
    TNT1 A 0 A_MonsterRefire(0, "TeleportBlast")
    TNT1 A 0 A_CustomMissile("RLTechVile4xPulse", 56, 0, 0)
    CVIL H 4 Bright A_FaceTarget
    CVIL G 3 A_FaceTarget
    Goto See
  MissileSpray:
    CVIL GG 6 A_FaceTarget
    TNT1 A 0 A_CustomMissile("RLTechVile4xPulse", 56, 0, frandom(-30,30))
    CVIL H 4 Bright A_FaceTarget
    CVIL G 3 A_FaceTarget
    TNT1 A 0 A_CustomMissile("RLTechVile4xPulse", 56, 0, frandom(-30,30))
    CVIL H 4 Bright A_FaceTarget
    CVIL G 3 A_FaceTarget
    TNT1 A 0 A_CustomMissile("RLTechVile4xPulse", 56, 0, frandom(-30,30))
    CVIL H 4 Bright A_FaceTarget
    CVIL G 3 A_FaceTarget
    Goto See
  LightningBolt:
    TNT1 A 0 A_CustomMissile("RLTechVileChargeShockwave", 56, 0, 0)
    CVIL GGGG 6 A_FaceTarget
    TNT1 A 0 A_PlaySound ("techvile/lightningcharge", 7, 1, 0, 0.2)
    CVIL GGGGGGG 6 A_FaceTarget
    TNT1 A 0 A_PlaySound ("techvile/lightningloop", 6, 1, 1, 0.1)
    TNT1 A 0 A_CustomRailgun (2, 0, "None", "Red", RGF_SILENT | RGF_FULLBRIGHT, 0, 25, "RLParticleBeamPuff3", 0, 0, random(1024,2048), 1, 0.2, 0, "None", 16)
    CVIL H 1 Bright A_FaceTarget
    TNT1 A 0 A_CustomRailgun (2, 0, "None", "Red", RGF_SILENT | RGF_FULLBRIGHT, 0, 25, "RLParticleBeamPuff3", 0, 0, random(1024,2048), 1, 0.2, 0, "None", 16)
    CVIL H 1 Bright A_FaceTarget
    TNT1 A 0 A_CustomRailgun (3, 0, "None", "Red", RGF_SILENT | RGF_FULLBRIGHT, 0, 25, "RLParticleBeamPuff3", 0, 0, random(1024,2048), 1, 0.2, 0, "None", 16)
    CVIL H 1 Bright A_FaceTarget
    TNT1 A 0 A_CustomRailgun (3, 0, "None", "Red", RGF_SILENT | RGF_FULLBRIGHT, 0, 25, "RLParticleBeamPuff3", 0, 0, random(1024,2048), 1, 0.2, 0, "None", 16)
    CVIL H 1 Bright A_FaceTarget
    TNT1 A 0 A_CustomRailgun (4, 0, "None", "Red", RGF_SILENT | RGF_FULLBRIGHT, 0, 25, "RLParticleBeamPuff3", 0, 0, random(1024,2048), 1, 0.2, 0, "None", 16)
    CVIL H 1 Bright A_FaceTarget
    TNT1 A 0 A_CustomRailgun (4, 0, "None", "Red", RGF_SILENT | RGF_FULLBRIGHT, 0, 25, "RLParticleBeamPuff3", 0, 0, random(1024,2048), 1, 0.2, 0, "None", 16)
    CVIL H 1 Bright A_FaceTarget
    TNT1 A 0 A_CustomRailgun (5, 0, "None", "Red", RGF_SILENT | RGF_FULLBRIGHT, 0, 25, "RLParticleBeamPuff3", 0, 0, random(1024,2048), 1, 0.2, 0, "None", 16)
    CVIL H 1 Bright A_FaceTarget
    TNT1 A 0 A_CustomRailgun (5, 0, "None", "Red", RGF_SILENT | RGF_FULLBRIGHT, 0, 25, "RLParticleBeamPuff3", 0, 0, random(1024,2048), 1, 0.2, 0, "None", 16)
    CVIL H 1 Bright A_FaceTarget
    TNT1 A 0 A_CustomRailgun (6, 0, "None", "Red", RGF_SILENT | RGF_FULLBRIGHT, 0, 25, "RLParticleBeamPuff3", 0, 0, random(1024,2048), 1, 0.2, 0, "None", 16)
    CVIL H 1 Bright A_FaceTarget
    TNT1 A 0 A_CustomRailgun (6, 0, "None", "Red", RGF_SILENT | RGF_FULLBRIGHT, 0, 25, "RLParticleBeamPuff3", 0, 0, random(1024,2048), 1, 0.2, 0, "None", 16)
    CVIL H 1 Bright A_FaceTarget
    TNT1 A 0 A_CustomRailgun (7, 0, "None", "Red", RGF_SILENT | RGF_FULLBRIGHT, 0, 25, "RLParticleBeamPuff3", 0, 0, random(1024,2048), 1, 0.2, 0, "None", 16)
    CVIL H 1 Bright A_FaceTarget
    TNT1 A 0 A_CustomRailgun (7, 0, "None", "Red", RGF_SILENT | RGF_FULLBRIGHT, 0, 25, "RLParticleBeamPuff3", 0, 0, random(1024,2048), 1, 0.2, 0, "None", 16)
    CVIL H 1 Bright A_FaceTarget
    TNT1 A 0 A_CustomRailgun (8, 0, "None", "Red", RGF_SILENT | RGF_FULLBRIGHT, 0, 25, "RLParticleBeamPuff3", 0, 0, random(1024,2048), 1, 0.2, 0, "None", 16)
    CVIL H 1 Bright A_FaceTarget
    TNT1 A 0 A_CustomRailgun (8, 0, "None", "Red", RGF_SILENT | RGF_FULLBRIGHT, 0, 25, "RLParticleBeamPuff3", 0, 0, random(1024,2048), 1, 0.2, 0, "None", 16)
    CVIL H 1 Bright A_FaceTarget
    TNT1 A 0 A_CustomRailgun (9, 0, "None", "Red", RGF_SILENT | RGF_FULLBRIGHT, 0, 25, "RLParticleBeamPuff3", 0, 0, random(1024,2048), 1, 0.2, 0, "None", 16)
    CVIL H 1 Bright A_FaceTarget
    TNT1 A 0 A_CustomRailgun (9, 0, "None", "Red", RGF_SILENT | RGF_FULLBRIGHT, 0, 25, "RLParticleBeamPuff3", 0, 0, random(1024,2048), 1, 0.2, 0, "None", 16)
    CVIL H 1 Bright A_FaceTarget
    TNT1 A 0 A_CustomRailgun (10, 0, "None", "Red", RGF_SILENT | RGF_FULLBRIGHT, 0, 25, "RLParticleBeamPuff3", 0, 0, random(1024,2048), 1, 0.2, 0, "None", 16)
    CVIL H 1 Bright A_FaceTarget
    TNT1 A 0 A_CustomRailgun (10, 0, "None", "Red", RGF_SILENT | RGF_FULLBRIGHT, 0, 25, "RLParticleBeamPuff3", 0, 0, random(1024,2048), 1, 0.2, 0, "None", 16)
    CVIL H 1 Bright A_FaceTarget
    TNT1 A 0 A_CustomRailgun (11, 0, "None", "Red", RGF_SILENT | RGF_FULLBRIGHT, 0, 25, "RLParticleBeamPuff3", 0, 0, random(1024,2048), 1, 0.2, 0, "None", 16)
    CVIL H 1 Bright A_FaceTarget
    TNT1 A 0 A_CustomRailgun (11, 0, "None", "Red", RGF_SILENT | RGF_FULLBRIGHT, 0, 25, "RLParticleBeamPuff3", 0, 0, random(1024,2048), 1, 0.2, 0, "None", 16)
    CVIL H 1 Bright A_FaceTarget
    TNT1 A 0 A_CustomRailgun (12, 0, "None", "Red", RGF_SILENT | RGF_FULLBRIGHT, 0, 25, "RLParticleBeamPuff3", 0, 0, random(1024,2048), 1, 0.2, 0, "None", 16)
    CVIL H 1 Bright A_FaceTarget
    TNT1 A 0 A_CustomRailgun (12, 0, "None", "Red", RGF_SILENT | RGF_FULLBRIGHT, 0, 25, "RLParticleBeamPuff3", 0, 0, random(1024,2048), 1, 0.2, 0, "None", 16)
    TNT1 A 0 A_StopSound (6)
    CVIL H 1 Bright A_FaceTarget
    CVIL GGGGG 3 A_FaceTarget
    Goto See
  ElectroBall:
    CVIL GGGG 6 A_FaceTarget
    TNT1 A 0 A_CustomMissile("RLTechVileElectroBall", 56, 0, 0)
    CVIL H 8 Bright A_FaceTarget
    CVIL GGG 3 A_FaceTarget
    Goto See
  SentryHax:
    TNT1 A 0 A_CheckFlag ("Friendly", "ActualSentryHax", AAPTR_TARGET)
    TNT1 A 0 A_ClearTarget
    TNT1 A 0 A_LookEx (LOF_NOSEESOUND, 0, 0, 0, 360)
    Goto See
  ActualSentryHax:
    TNT1 A 0 A_GiveToTarget ("RLTechVileHax", 1)
    TNT1 A 0 A_TransferPointer(AAPTR_DEFAULT, AAPTR_TARGET, AAPTR_DEFAULT, AAPTR_MASTER)
	TNT1 A 0 A_CustomRailgun (0, 0, "None", "Red", RGF_SILENT | RGF_FULLBRIGHT, 0, 25, "RLParticleBeamPuff2", frandom(0,359), frandom(-45,45), random(64,256), 1, 0.2, 0, "None", 16)
    CVIL G 1 A_FaceTarget
	TNT1 A 0 A_CustomRailgun (0, 0, "None", "Red", RGF_SILENT | RGF_FULLBRIGHT, 0, 25, "RLParticleBeamPuff2", frandom(0,359), frandom(-45,45), random(64,256), 1, 0.2, 0, "None", 16)
    CVIL G 1 A_FaceTarget
	TNT1 A 0 A_CustomRailgun (0, 0, "None", "Red", RGF_SILENT | RGF_FULLBRIGHT, 0, 25, "RLParticleBeamPuff2", frandom(0,359), frandom(-45,45), random(64,256), 1, 0.2, 0, "None", 16)
    CVIL G 1 A_FaceTarget
	TNT1 A 0 A_CustomRailgun (0, 0, "None", "Red", RGF_SILENT | RGF_FULLBRIGHT, 0, 25, "RLParticleBeamPuff2", frandom(0,359), frandom(-45,45), random(64,256), 1, 0.2, 0, "None", 16)
    CVIL G 1 A_FaceTarget
	TNT1 A 0 A_CustomRailgun (0, 0, "None", "Red", RGF_SILENT | RGF_FULLBRIGHT, 0, 25, "RLParticleBeamPuff2", frandom(0,359), frandom(-45,45), random(64,256), 1, 0.2, 0, "None", 16)
    CVIL G 1 A_FaceTarget
	TNT1 A 0 A_CustomRailgun (0, 0, "None", "Red", RGF_SILENT | RGF_FULLBRIGHT, 0, 25, "RLParticleBeamPuff2", frandom(0,359), frandom(-45,45), random(64,256), 1, 0.2, 0, "None", 16)
    CVIL G 1 A_FaceTarget
	TNT1 A 0 A_CustomRailgun (0, 0, "None", "Red", RGF_SILENT | RGF_FULLBRIGHT, 0, 25, "RLParticleBeamPuff2", frandom(0,359), frandom(-45,45), random(64,256), 1, 0.2, 0, "None", 16)
    CVIL G 1 A_FaceTarget
	TNT1 A 0 A_CustomRailgun (0, 0, "None", "Red", RGF_SILENT | RGF_FULLBRIGHT, 0, 25, "RLParticleBeamPuff2", frandom(0,359), frandom(-45,45), random(64,256), 1, 0.2, 0, "None", 16)
    CVIL G 1 A_FaceTarget
	TNT1 A 0 A_CustomRailgun (0, 0, "None", "Red", RGF_SILENT | RGF_FULLBRIGHT, 0, 25, "RLParticleBeamPuff2", frandom(0,359), frandom(-45,45), random(64,256), 1, 0.2, 0, "None", 16)
    CVIL G 1 A_FaceTarget
	TNT1 A 0 A_CustomRailgun (0, 0, "None", "Red", RGF_SILENT | RGF_FULLBRIGHT, 0, 25, "RLParticleBeamPuff2", frandom(0,359), frandom(-45,45), random(64,256), 1, 0.2, 0, "None", 16)
    CVIL G 1 A_FaceTarget
	TNT1 A 0 A_CustomRailgun (0, 0, "None", "Red", RGF_SILENT | RGF_FULLBRIGHT, 0, 25, "RLParticleBeamPuff2", frandom(0,359), frandom(-45,45), random(64,256), 1, 0.2, 0, "None", 16)
    CVIL G 1 A_FaceTarget
	TNT1 A 0 A_CustomRailgun (0, 0, "None", "Red", RGF_SILENT | RGF_FULLBRIGHT, 0, 25, "RLParticleBeamPuff2", frandom(0,359), frandom(-45,45), random(64,256), 1, 0.2, 0, "None", 16)
    CVIL G 1 A_FaceTarget
    Goto See
  VacuumDoom:
    TNT1 A 0 A_JumpIfInventory ("PowerRLTechVileVacuumCooldown", 1, "MissileContinue")
    TNT1 A 0 A_GiveInventory ("PowerRLTechVileVacuumCooldown", 1)
    TNT1 A 0 A_ChangeFlag ("NOPAIN",1)
    TNT1 A 0 A_PlaySound ("techvile/mediumzap", 7, 1, 0, 0.8)
    CVIL JKJKJKJKJK 1 Bright A_CustomMissile("RLTechVileVortexShockwave", 40, 0, 0)
    TNT1 A 0 A_PlaySound ("techvile/aoezapmain", 7, 1, 0, 0.2)
    CVIL JKJKJKJKJKJKJKJKJKJKJKJKJKJKJK 1 Bright A_CustomMissile("RLTechVileVortex", 40, 0, 0)
    TNT1 A 0 A_ChangeFlag ("NOPAIN",0)
    Goto See
  Heal:
    CVIH A 1
    TNT1 A 0 A_RadiusGive ("RLCyberneticResurrectionToken", 256, RGF_MONSTERS, 1)
    CVIH A 2
    TNT1 A 0 A_PlaySound ("techvile/smallzap", 7, 1, 0, 1.4)
    CVIH BCD 1 Bright
    TNT1 A 0 A_PlaySound ("techvile/smallzap", 7, 1, 0, 1.4)
    CVIH BCDEF 1 Bright
    TNT1 A 0 A_PlaySound ("techvile/smallzap", 7, 1, 0, 1.4)
    CVIH CDEF 1 Bright
    TNT1 A 0 A_PlaySound ("techvile/smallzap", 7, 1, 0, 1.4)
    CVIH CDEF 1 Bright
    TNT1 A 0 A_PlaySound ("techvile/smallzap", 7, 1, 0, 1.4)
    CVIH CDEF 1 Bright
    CVIH A 15
    Goto See
  Shield:
    TNT1 A 0 A_SpawnItemEx ("RLTechVile4xRegen4xHPShield", 1, 0, 0, 0, 0, 0, 0, SXF_SETMASTER | SXF_NOCHECKPOSITION)
    TNT1 A 0 A_SetMass (0x7fffffff)
    TNT1 A 0 A_ChangeFlag ("INVULNERABLE", 1)
    TNT1 A 0 A_GiveInventory ("PowerRLTechVile2xShieldCooldown", 1)
  ShieldLoop:
    TNT1 A 0 HealThing (1)
    CVIH A 1 Bright A_CustomRailgun (0, 0, "None", "Red", RGF_SILENT | RGF_FULLBRIGHT, 0, 25, "RLParticleBeamPuff2", frandom(0,359), frandom(-45,45), random(64,256), 1, 0.2, 0, "None", random(-16,16))
    TNT1 A 0 A_GiveInventory ("RLTechVile4xShieldTimer", 1)
    TNT1 A 0 A_JumpIfInventory ("RLTechVile4xShieldTimer", 280, "ShieldFinish")
    Goto ShieldLoop
  ShieldFinish:
    TNT1 A 0 A_TakeInventory ("RLTechVile4xShieldTimer", 280)
    TNT1 A 0 A_ChangeFlag ("INVULNERABLE",0)
    TNT1 A 0 A_SetMass (5000)
    TNT1 A 0 A_KillChildren
    Goto See
  Pain.Lightning:
  Pain.Plasma:
    TNT1 A 0 A_StopSound (6)
    TNT1 A 0 A_JumpIfInventory ("RLTechVileHealthRestored", 1, 2)
    TNT1 A 0 A_JumpIfHealthLower (3000, "HealthRestore")
    TNT1 A 0 A_JumpIfInventory ("PowerRLTechVileShieldCooldown", 1, "Pain")
    TNT1 A 0 A_JumpIfInventory ("PowerRLTechVile2xShieldCooldown", 1, "Pain")
    Goto Shield
  Pain:
    TNT1 A 0 A_StopSound (6)
    TNT1 A 0 A_JumpIfInventory ("RLTechVileHealthRestored", 1, 2)
    TNT1 A 0 A_JumpIfHealthLower (3000, "HealthRestore")
    CVIL L 5   
    CVIL L 5 A_Pain
    Goto TeleportAway
  Pain.CyberDisruptor:
    TNT1 A 0 A_StopSound (6)
    TNT1 A 0 A_JumpIfInventory ("RLTechVileHealthRestored", 1, 2)
    TNT1 A 0 A_JumpIfHealthLower (3000, "HealthRestore")
    CVIL L 2
    CVIL L 6 A_Pain
    CVIL L 6
    CVIL L 6 A_Pain
    Goto See
  HealthRestore:
    TNT1 A 0 A_ChangeFlag ("NOPAIN",1)
    TNT1 A 0 A_GiveInventory ("RLTechVileHealthRestored", 1)
    TNT1 A 0 HealThing (15000)
    TNT1 A 0 A_PlaySound ("techvile/augupgrade", 6, 1, 0, 0.2)
    TNT1 AAAAAAAAAAAA 0 A_CustomRailgun (0, 0, "None", "Red", RGF_SILENT | RGF_FULLBRIGHT, 0, 25, "RLParticleBeamPuff2", frandom(0,359), frandom(-45,45), random(64,256), 1, 0.2, 0, "None", random(-16,16))
    CVIH AAAAAAA 5
    TNT1 A 0 A_PlaySound ("techvile/smallzap", 7, 1, 0, 1.4)
    CVIH BCD 1 Bright
    TNT1 AAAAA 0 A_BrainSpit ("RLTechSpawnShot")
    CVIH EF 1 Bright
    CVIH AAAAAAAAAAAAAA 5
    TNT1 A 0 A_PlaySound ("techvile/smallzap", 7, 1, 0, 1.4)
    CVIH BCD 1 Bright
    TNT1 AAAAA 0 A_BrainSpit ("RLTechSpawnShot")
    CVIH EF 1 Bright
    Goto Pain+2
    CVIH AAAAAAAAAAAAAA 5
    TNT1 A 0 A_PlaySound ("techvile/smallzap", 7, 1, 0, 1.4)
    CVIH BCD 1 Bright
    TNT1 AAAAA 0 A_BrainSpit ("RLTechSpawnShot")
    CVIH EF 1 Bright
    TNT1 A 0 A_ChangeFlag ("NOPAIN",0)
    Goto See
  Death:
    TNT1 A 0 A_StopSound (6)
	TNT1 A 0 ACS_NamedExecuteAlways("TechVictory", 0)
    CVIL M 4
    TNT1 A 0 A_PlaySound ("techvile/deathzap", 6, 1, 0, 0.9)
    TNT1 A 0 A_Jump (256, 1,2,3,4,5,6)
	TNT1 AAAAA 0 A_CustomRailgun (0, 0, "None", "Red", RGF_SILENT | RGF_FULLBRIGHT, 0, 25, "RLParticleBeamPuff2", frandom(0,359), frandom(-45,45), random(64,256), 1, 0.2, 0, "None", random(-16,16))
    CVIL N 1 Bright A_PlaySound ("techvile/smallzap", 7, 1, 0, 1.4)
    CVIL M 2
    CVIL O 1 A_Scream
    TNT1 A 0 A_Jump (256, 1,2,3,4,5,6)
	TNT1 AAAAA 0 A_CustomRailgun (0, 0, "None", "Red", RGF_SILENT | RGF_FULLBRIGHT, 0, 25, "RLParticleBeamPuff2", frandom(0,359), frandom(-45,45), random(64,256), 1, 0.2, 0, "None", random(-16,16))
    CVIL P 1 Bright A_PlaySound ("techvile/smallzap", 7, 1, 0, 1.4)
    CVIL O 5
    CVIL Q 3 A_NoBlocking
    TNT1 A 0 A_Jump (256, 1,2,3,4,5,6)
    TNT1 A 0 A_SpawnItemEx ("RLUniqueItemSpawner", 0, 0, 16, 0, 0, 0, 0, SXF_NOCHECKPOSITION)
	TNT1 AAAAA 0 A_CustomRailgun (0, 0, "None", "Red", RGF_SILENT | RGF_FULLBRIGHT, 0, 25, "RLParticleBeamPuff2", frandom(0,359), frandom(-45,45), random(64,256), 1, 0.2, 0, "None", random(-16,16))
    CVIL R 1 Bright A_PlaySound ("techvile/smallzap", 7, 1, 0, 1.4)
    CVIL Q 3
    CVIL S 7
    TNT1 A 0 A_SpawnItem ("RLBodyThud", 0, 0, 0, 0)
    CVIL TUVW 7
    CVIL X 52
    TNT1 A 0 A_PlaySound ("techvile/smallzap", 7, 1, 0, 1.4)
	TNT1 A 0 A_CustomRailgun (0, 0, "None", "Red", RGF_SILENT | RGF_FULLBRIGHT, 0, 25, "RLParticleBeamPuff2", frandom(0,359), frandom(-45,45), random(64,256), 1, 0.2, 0, "None", -2)
    CVIL X 26
    TNT1 A 0 A_PlaySound ("techvile/smallzap", 7, 1, 0, 1.4)
	TNT1 A 0 A_CustomRailgun (0, 0, "None", "Red", RGF_SILENT | RGF_FULLBRIGHT, 0, 25, "RLParticleBeamPuff2", frandom(0,359), frandom(-45,45), random(64,256), 1, 0.2, 0, "None", -2)
    CVIL X 222
    CVIL X -1 A_BrainDie
    Stop
  Crush:
    TNT1 A 1 A_SpawnItem("RLCrushedSmallBlack",0,0,0,0)
    Stop
  }
}

Actor RLFinalTechVileActive : Inventory
{
inventory.maxamount 1
}
