Code: Select all
ACTOR GuncastHereticImp : HereticImp Replaces HereticImp
{
//Loot
DropItem "Dosh1"
DropItem "Dosh1"
DropItem "Dosh1"
DropItem "Dosh1", 128
DropItem "Dosh1", 128
DropItem "Dosh5", 64
//Resists & Weaknesses
//Bread and butter of D'Sparil's army of annoyance.
//Actually barely resistant to fire, so feel free to spit some upon them.
DamageFactor Fire, 0.9
//My little convienience,
//so I won't have to look it up every time.
PainChance 200
//Guaranteed Effects
PainChance SuperCloseCombat, 256
PainChance SuperShoelaces, 256
PainChance SuperMidasCloseCombat, 256
PainChance SuperMidasShoelaces, 256
PainChance Acid, 256
PainChance Meteorfist, 256
//Chance Effects
PainChance Lightning, 192
//PainChance LightningBlue, 24
PainChance Manuel, 200
PainChance Fire, 100
var int User_DeathByFire;
var int User_DeathByTiberium;
var int User_DeathByBlueTiberium;
var int User_LightningLock;
States
{
//Melee
/*Pain.SuperCloseCombat:
Pain.SuperMidasCloseCombat:
TNT1 A 0 A_FaceTarget
TNT1 A 0 A_ChangeVelocity(frandom(-10.0,-12.0),0,frandom(1.0,3.0),CVF_RELATIVE)
Goto Pain
Pain.SuperShoelaces:
Pain.SuperMidasShoelaces:
TNT1 A 0 A_FaceTarget
TNT1 A 0 A_ChangeVelocity(frandom(-15.0,-20.0),0,frandom(10.0,15.0),CVF_RELATIVE)
Goto Pain
Death.SuperCloseCombat:
TNT1 A 0 A_FaceTarget
TNT1 A 0 A_ChangeVelocity(frandom(-10.0,-12.0),0,frandom(1.0,3.0),CVF_RELATIVE)
Goto XDeath
Death.SuperShoelaces:
TNT1 A 0 A_FaceTarget
TNT1 A 0 A_ChangeVelocity(frandom(-15.0,-20.0),0,frandom(10.0,15.0),CVF_RELATIVE)
Goto XDeath*/
Death.MidasCloseCombat:
Death.MidasShoelaces:
TNT1 A 0 A_FaceTarget
TNT1 A 0 A_NoBlocking
TNT1 A 0 A_JumpIfInTargetInventory("Mana",0,2)
TNT1 A 0 A_DropItem("MinorManaPot",-1,54)
TNT1 A 0 A_Pain
TNT1 A 0 A_PlaySound("Midas/Touched")
IMPX G 0 A_SpawnItemEx("Midas_Statue_HerrPimp",0,0,0,velx,vely,velz,0,SXF_ABSOLUTEVELOCITY|SXF_TRANSFERSPRITEFRAME|SXF_TRANSFERPOINTERS)
Stop
Death.SuperMidasCloseCombat:
Death.SuperMidasShoelaces:
TNT1 A 0 A_FaceTarget
TNT1 A 0 A_NoBlocking
TNT1 A 0 A_JumpIfInTargetInventory("Mana",0,2)
TNT1 A 0 A_DropItem("MinorManaPot",-1,54)
TNT1 A 0 A_Pain
TNT1 A 0 A_PlaySound("Midas/Touched")
IMPX G 0 A_SpawnItemEx("Midas_Statue_HerrPimp",0,0,0,velx,vely,velz,0,SXF_ABSOLUTEVELOCITY|SXF_TRANSFERSPRITEFRAME|SXF_TRANSFERPOINTERS|SXF_SETMASTER)
TNT1 A 1 A_KillChildren
stop
//Standard death stuff
Crush:
TNT1 AAAAAAAAAA 0 A_CustomMissile ("BloodTr255", 0, 0, random (0, 360), 2, random (0, 360))
TNT1 A 0 A_PlaySound("misc/xdeath4")
POL5 AAAAAA 1 A_CustomMissile ("CeilBloodLauncherLong", 0, 0, random (0, 360), 2, random (50, 130))
TNT1 A 0 A_CustomMissile ("GiantBloodSpot", 4, 0, random (0, 360), 2, random (0, 160))
POL5 A -1
Stop
Death.Massacre:
"####" "#" 0
Death:
"####" "#" 0 A_StopSound(5)
IMPX G 4 A_ImpDeath
IMPX H 5
Wait
XDeath:
"####" "#" 0 A_StopSound(5)
"####" "#" 0 { If(!GetCvar("GC_ToasterGore")) {A_SpawnItemEx("HereticImpGibbed",0,0,0,0,0,0,0,SXF_CLIENTSIDE);}}
IMPX S 5 A_ImpXDeath1
IMPX TU 5
IMPX V 5 A_Gravity
IMPX W 5
Wait
Crash:
"####" "#" 0 A_StopSound(5)
IMPX I 7 A_ImpExplode
IMPX J 7 A_Scream
"####" "#" 0 A_JumpIfInTargetInventory("Mana",0,2)
"####" "#" 0 A_DropItem("MinorManaPot",-1,54)
IMPX K 7 A_NoBlocking
Looplet:
IMPX L 0 A_JumpIfInventory("CorpseTrigger2",1,"CorpseBlastB")
IMPX L 1 CanRaise A_JumpIfInventory("CorpseTrigger",1,"CorpseBlastA")
"####" "#" 0 A_JumpIf(User_DeathByFire == 1, "FireMelt")
"####" "#" 0 A_JumpIf(User_DeathByTiberium == 1, "TiberiumMelt")
"####" "#" 0 A_JumpIf(User_DeathByBlueTiberium == 1, "BlueTiberiumMelt")
Loop
XCrash:
IMPX X 7 A_StopSound(5)
"####" "#" 0 A_JumpIfInTargetInventory("Mana",0,2)
"####" "#" 0 A_DropItem("MinorManaPot",-1,54)
IMPX Y 7 A_NoBlocking
//IMPX Y 0 A_SpawnItemEx("HereticImpGibbed",0,0,0,0,0,0,0,SXF_CLIENTSIDE)
Looplet2:
IMPX Z 0 A_JumpIfInventory("CorpseTrigger2",1,"CorpseBlastC")
IMPX Z 1 A_JumpIfInventory("CorpseTrigger",1,"CorpseBlastA")
Loop
//Corpseblast
CorpseBlastA:
TNT1 A 0 A_SpawnItemEx("HereticImpBlast",0,0,0,0,0,0,0,SXF_TRANSFERPOINTERS)
Stop
CorpseBlastB:
TNT1 A 0 A_SpawnItemEx("HereticImpBlast",0,0,0,0,0,0,0,SXF_TRANSFERPOINTERS)
TNT1 A 0 A_TakeInventory("CorpseTrigger2",1)
Goto Looplet
CorpseBlastC:
TNT1 A 0 A_SpawnItemEx("HereticImpBlast",0,0,0,0,0,0,0,SXF_TRANSFERPOINTERS)
TNT1 A 0 A_TakeInventory("CorpseTrigger2",1)
Goto Looplet2
//Gumpop
Pain.Acid:
"####" "#" 0 A_JumpIfInventory("PowerGumpopDamage",1,3)
"####" "#" 0 A_SpawnItemEx("GumpopIndicator",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_SETTARGET|SXF_ORIGINATOR|SXF_TRANSFERSPRITEFRAME)
"####" "#" 0 A_SpawnItemEx("GumpopGlow",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_SETTARGET|SXF_ORIGINATOR)
"####" "#" 0 A_Jump(200,"Pain")
Goto See
Death.Acid:
IMPX G 0 A_StopSound(5)
IMPX G 0 A_NoGravity
IMPX G 1 A_ChangeFlag("SOLID",0)
"####" "#" 1 A_Playsound("Gumpop/Expand",6)
"####" "###################################" 1 A_SetScale(ScaleX+frandom(0.01,0.025))
"####" "#" 1 A_Gravity
Wait
Crash.Acid:
"####" "#" 0 A_Playsound("Gumpop/Pop",6)
"####" "#" 0 { If(!GetCvar("GC_ToasterGore")) {A_SpawnItemEx("HereticImpGibbed",0,0,0,0,0,0,0,SXF_CLIENTSIDE);}}
IMPX S 5 A_ImpXDeath1
IMPX TU 5
IMPX V 5 A_Gravity
IMPX W 5
IMPX I 7 A_ImpExplode
IMPX J 7 A_Scream
"####" "#" 0 A_JumpIfInTargetInventory("Mana",0,2)
"####" "#" 0 A_DropItem("MinorManaPot",-1,54)
IMPX K 7 A_NoBlocking
Looplet:
IMPX L 0 A_JumpIfInventory("CorpseTrigger2",1,"CorpseBlastB")
IMPX L 1 CanRaise A_JumpIfInventory("CorpseTrigger",1,"CorpseBlastA")
"####" "#" 0 A_JumpIf(User_DeathByFire == 1, "FireMelt")
"####" "#" 0 A_JumpIf(User_DeathByTiberium == 1, "TiberiumMelt")
"####" "#" 0 A_JumpIf(User_DeathByBlueTiberium == 1, "BlueTiberiumMelt")
Loop
//Dreadful
Death.Tiberium:
TNT1 A 0 A_SetUserVar("User_DeathByTiberium", 1)
TNT1 A 0 ACS_NamedExecuteAlways("Toxic Avenger")
TNT1 A 0 A_SpawnItemEx("TiberiumDeath",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_SETTARGET|SXF_ORIGINATOR)
Goto Death
TiberiumMelt:
"####" "#" 0 A_JumpIf(ScaleX > 1.35, "EndOfMelt")
"####" "#" 0 ACS_NamedExecuteAlways("Toxic Avenger")
"####" "#" 1 A_SetScale(ScaleX + frandom(0.002,0.003),ScaleY - frandom(0.003,0.004))
Goto Looplet
Death.BlueTiberium:
TNT1 A 0 A_SetUserVar("User_DeathByBlueTiberium", 1)
TNT1 A 0 ACS_NamedExecuteAlways("Blue Oyster Cult")
TNT1 A 0 A_SpawnItemEx("BlueTiberiumDeath",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_SETTARGET|SXF_ORIGINATOR)
Goto Death
BlueTiberiumMelt:
"####" "#" 0 A_JumpIf(ScaleX > 1.35, "EndOfMelt")
"####" "#" 0 ACS_NamedExecuteAlways("Blue Oyster Cult")
"####" "#" 1 A_SetScale(ScaleX + frandom(0.002,0.003),ScaleY - frandom(0.003,0.004))
Goto Looplet
//Threadcutter
Pain.Manuel:
"####" "#" 0 A_Jump(128,1)
Goto Pain
"####" "#" 0 A_GiveInventory("BleedItem")
"####" "#" 0 A_SpawnItemEx("BleedIndicator",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_SETTARGET|SXF_ORIGINATOR)
Goto Pain
//Thunderstruck
Pain.Lightning:
"####" "#" 0 A_Jump(164,1)
Goto Pain
IMPX G 0 A_ChangeFlag("NOPAIN",1)
"####" "#" 0 A_SetUserVar("User_LightningLock", User_LightningLock + 10)
LightningLock:
"####" "#" 0 A_SetUserVar("User_LightningLock", User_LightningLock - 1)
"####" "#" 0 A_Pain
"####" "#" 0 A_PlaySound("Thunderstruck/Shocked",5,0.6,1)
"####" "#" 0 ACS_NamedExecuteAlways("Shock me Plenty")
"####" "###" 2 A_SpawnItemEx("MonsterShock",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_TRANSFERPOINTERS)
"####" "#" 0 ACS_NamedExecuteAlways("Shock me Plenty")
"####" "###" 2 A_SpawnItemEx("MonsterShock",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_TRANSFERPOINTERS)
"####" "#" 0 ACS_NamedExecuteAlways("Shock me Plenty")
"####" "###" 2 A_SpawnItemEx("MonsterShock",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_TRANSFERPOINTERS)
"####" "#" 0 A_JumpIf(User_LightningLock >= 1, "LightningLock")
"####" "#" 0 A_StopSound(5)
"####" "#" 0 A_ChangeFlag("NOPAIN",0)
Goto See
//Cauterizer
Pain.LightningBlue:
"####" "#" 0 A_JumpIf(random(0,100) <= 10,1)
Goto Pain
IMPX G 0 A_ChangeFlag("NOPAIN",1)
"####" "#" 0 A_SetUserVar("User_LightningLock", User_LightningLock + 10)
BlueLightningLock:
"####" "#" 0 A_SetUserVar("User_LightningLock", User_LightningLock - 1)
"####" "#" 0 A_Pain
"####" "#" 0 A_PlaySound("Thunderstruck/Shocked",5,0.6,1)
"####" "#" 0 ACS_NamedExecuteAlways("Shock me Plenty Blue")
"####" "###" 2 A_SpawnItemEx("CauterMonsterShock",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_TRANSFERPOINTERS)
"####" "#" 0 ACS_NamedExecuteAlways("Shock me Plenty Blue")
"####" "###" 2 A_SpawnItemEx("CauterMonsterShock",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_TRANSFERPOINTERS)
"####" "#" 0 ACS_NamedExecuteAlways("Shock me Plenty Blue")
"####" "###" 2 A_SpawnItemEx("CauterMonsterShock",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_TRANSFERPOINTERS)
"####" "#" 0 A_JumpIf(User_LightningLock >= 1, "BlueLightningLock")
"####" "#" 0 A_StopSound(5)
"####" "#" 0 A_ChangeFlag("NOPAIN",0)
Goto See
//Fire
Pain.Meteorfist:
TNT1 A 0 A_ChangeVelocity(frandom(-15.0,-20.0),0,frandom(10.0,15.0),CVF_RELATIVE)
"####" "#" 0 A_Jump(256,2) //Guaranteed "On Fire!" effect, heeeh.
Pain.Fire:
"####" "#" 0 A_Jump(12,1)
Goto Pain
"####" "#" 0 A_JumpIfInventory("PowerOnFire",1,"Pain")
"####" "#" 0 A_GiveInventory("OnFireItem")
"####" "#" 0 A_SpawnItemEx("OnFireIndicator",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_SETTARGET|SXF_ORIGINATOR)
Goto Pain
Death.Meteorfist:
TNT1 A 0 A_ChangeVelocity(frandom(-15.0,-20.0),0,frandom(10.0,15.0),CVF_RELATIVE)
Death.Lightning:
Death.LightningBlue:
Death.Fire:
"####" "#" 0 A_SetUserVar("User_DeathByFire", 1)
"####" "#" 0 ACS_NamedExecuteAlways("Extra Crispy")
"####" "#" 0 A_SpawnItemEx("FlamingDeath",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_SETTARGET|SXF_ORIGINATOR)
Goto Death
FireMelt:
"####" "#" 0 A_JumpIf(ScaleX > 1.35, "EndOfMelt")
"####" "#" 0 ACS_NamedExecuteAlways("Extra Crispy")
"####" "#" 1 A_SetScale(ScaleX + frandom(0.002,0.003),ScaleY - frandom(0.003,0.004))
Goto Looplet
EndOfMelt:
"####" "#" 0 A_SetUserVar("User_DeathByTiberium", 0)
"####" "#" 0 A_SetUserVar("User_DeathByFire", 0)
Goto Looplet
//Crows
Crash.Crow:
TNT1 A 0 A_SpawnItemEx("FlockOfCrows",0,0,0,0,0,0,0,SXF_TRANSFERPOINTERS)
Goto Crash
//Scourgebreath
Death.Breath:
"####" "#" 0 A_JumpIfInTargetInventory("Mana",0,2)
"####" "#" 0 A_DropItem("MinorManaPot",-1,54)
"####" "#" 0 ACS_NamedExecuteAlways("Extra Crispy")
"####" "#" 0 A_Scream
"####" "#" 0 A_NoBlocking
"####" "#" 0 A_SpawnItemEx("BreathSoulburst",0,0,0,0,0,0,0,SXF_TRANSFERSPRITEFRAME|SXF_TRANSFERPOINTERS)
DeathBreathLoop:
"####" "#" 0 A_SpawnItemEx("BreathDisintegration",0,0,0,0,0,0,0,SXF_CLIENTSIDE)
"####" "#" 0 A_JumpIf(ScaleX <= 0, "Null")
"####" "#" 0 A_FadeOut(0.05)
"####" "#" 1 A_SetScale(ScaleX - 0.03, ScaleY - 0.005)
Loop
//Ice
GenericFreezeDeath:
"####" "#" 5 A_GenericFreezeDeath
"####" "#" 0 A_Stop
"####" "#" 0 A_JumpIfInTargetInventory("Mana",0,2)
"####" "#" 0 A_DropItem("MinorManaPot",-1,54)
"----" A 0 A_JumpIfInventory("ChillgraspTrigger",1,2)
"----" A 0 A_Jump(256,2)
"----" A 0 A_SpawnItemEx("ChillgraspBlast",0,0,0,0,0,0,0,SXF_TRANSFERPOINTERS)
"----" A 1 A_FreezeDeathChunks
Wait
Raise:
"####" "#" 0 ACS_NamedExecuteAlways("Normalization")
"####" "#" 0 A_SetScale(1)
IMPX LKJIHG 8
Goto See
}
}
ACTOR Midas_Statue_HerrPimp : Midas_Statue
{
Radius 16
Height 36
States
{
Spawn:
"####" "#" 1
Goto Super::Cycle
Death:
Crash:
TNT1 A 0 A_SetUserVar("User_GoldRange",10)
TNT1 A 0 A_SetUserVar("User_GoldAmount",6)
TNT1 A 0 A_SetUserVar("User_GoldCounter1",6)
TNT1 A 0 A_SetUserVar("User_GoldCounter2",0)
Goto Super::DeathInit
MidasReward:
TNT1 A 0 A_JumpIf(GetCVar("GC_MoneyShare"),2)
TNT1 A 0 A_GiveToTarget("Dosh",15)
Stop
TNT1 A 0 ACS_NamedExecuteAlways("MoneySharing",0,15)
Stop
}
}
ACTOR HereticImpGibbed
{
States
{
Spawn:
TNT1 A 0
TNT1 A 0 A_CustomMissile ("XDeath1", 6, 0, random (0, 360), 2, random (0, 160))
TNT1 AA 0 A_CustomMissile ("XDeath2", 6, 0, random (0, 360), 2, random (0, 160))
TNT1 AA 0 A_CustomMissile ("XDeath3", 6, 0, random (0, 360), 2, random (0, 160))
TNT1 A 0 A_CustomMissile ("XDeath4", 6, 0, random (0, 360), 2, random (0, 160))
TNT1 AAA 0 A_CustomMissile ("Instestin", 6, 0, random (0, 360), 2, random (0, 160))
TNT1 AAAAAAAAAAAAAAAAAAAAA 0 A_CustomMissile ("Brutal_FlyingBlood", 6, 0, random (0, 360), 2, random (0, 160))
TNT1 AAAA 0 A_CustomMissile ("SuperGoreSpawner", 6, 0, random (0, 360), 2, random (50, 130))
Stop
}
}
ACTOR HereticImpBlast : BlastShared
{
States
{
DamageStuff:
TNT1 A 0 A_Explode(50,96,0)
TNT1 A 0 A_SpawnItemEx("CorpsespiritSmall",0,0,0,0,0,1,0,SXF_TRANSFERPOINTERS,64)
Main:
TNT1 A 0 { If(!GetCvar("GC_ToasterGore")) {A_SpawnItemEx("HereticImpGibbed",0,0,0,0,0,0,0,SXF_CLIENTSIDE);}}
Stop
}
}
//Mummy alt
ACTOR GuncastHereticImpLeader : GuncastHereticImp replaces HereticImpLeader
{
Species "HereticImpLeader"
Health 80
-MISSILEMORE
AttackSound "himp/leaderattack"
States
{
Melee:
Stop
Missile:
IMPX DE 6 A_FaceTarget
IMPX F 6 A_CustomComboAttack("HereticImpBall", 32, random[ImpMsAttack2](5,12), "himp/leaderattack")
Goto See
}
}