Raw model (for completeness)
{
"meta": {
"id": "02e91180-91de-4a54-8d80-378d142e6373",
"sha1": "e0a3cf51273158778ba870bd9a7be62ab25692b4",
"sha256": "ca79a07a243ac1063ae50d1a88edd9c40ddd5a1fb37c0b8adaa41a1dcf16f65a",
"filenames": [
"gondola2.4.2testfilebutblessedbyodinsneobussy.pk3"
],
"additional": {
"engines": [],
"iwad": [],
"filename": null,
"added": "2021/12/04 00:58:52",
"locked": false,
"canDownload": true,
"adult": false,
"hidden": false,
"name": null,
"description": null,
"maps": null,
"graphicOverrides": null,
"screenshots": null,
"palettes": null,
"categories": null
},
"flags": {
"locked": false,
"canDownload": true,
"adult": false,
"hidden": false
},
"added": "2021/12/04 00:58:52",
"file": {
"type": "PK3",
"size": 7241196,
"url": "https://wadarchive2.nyc3.digitaloceanspaces.com/e0a3cf51273158778ba870bd9a7be62ab25692b4/e0a3cf51273158778ba870bd9a7be62ab25692b4.pk3.gz",
"corrupt": false
},
"content": {
"counts": {
"endoom": 0,
"graphics": 0,
"lumps": 4464,
"maps": 0,
"palettes": 0
}
},
"text_files": [
{
"source": "pk3",
"name": "acs/acs.txt",
"contents": "# acs"
},
{
"source": "pk3",
"name": "actors/Bonus/BearerClass.txt",
"contents": "actor BearerClass : HardClassBase\n{\nPlayer.ScoreIcon \"C_00X0X\"\nplayer.startitem \"HardHealthBar\"\nplayer.displayname \"BearerClass\"\nplayer.soundclass \"BearerClassC\"\n\nplayer.startitem \"WildBearBoss\"\nplayer.startitem \"MaximumBearAmmo\",3\nplayer.startitem \"BearerFlag\"\nplayer.startitem \"CanUseItems\"\nplayer.startitem \"SemiStunArmor\"\n\nplayer.forwardmove 0.60, 0.60\nplayer.sidemove 0.58, 0.58\n\n+NOSKIN\nplayer.morphweapon \"WildBearBoss\"\nPainSound \"misc/ROCKHURTX\"\n\nStates\n{\nSpawn:\nR2GD A 0\nR2GD B 1\nR2GD A 1\nGoto Spawn+2\nSee:\nR2GD BCDC 5\nGoto Spawn\nMissile:\nR2GD FG 5\ngoto Spawn+2\n\nCustomState1:\nR2GD FG 5\ngoto Spawn+2\n\nCustomState2:\nR2GH MNOP 3 A_JumpIfInventory(\"BomuEnd\",1,\"Spawn\")\nloop\n\nClassPain:\nR2GD H 0\nR2GD H 0 A_Pain\n//R2GD H 0 A_PlaySoundEX(\"misc/GBPAINX\",\"Voice\")\nR2GD H 0 A_GiveInventory(\"IsInPain\",1)\nR2GD HHHHHHHHHH 2 A_SpawnItemEx(\"PainFX_CBM\",-5,0,3,0,0,0)\nR2GD H 1\nR2GD H 0 A_Jump(256,\"Spawn\")\nR2GD H 1 A_Jump(256,\"Spawn\")\nGoto Spawn+2\n\nDeathFix:\nR2GD H 0 A_GiveInventory(\"SpecialDeathFlag\",1)\ngoto DeathContinue\n\nClassDeath:\nR2GD H 0 A_JumpIfInventory(\"InstagibFlag\",1,\"MegaDeathEnd\")\nR2GD H 0 A_JumpIfInventory(\"RiseDeathFlag\",1,\"RiseDeath\")\nR2GD H 0 A_JumpIfInventory(\"IceDeathFlag\",1,\"IceDeath\")\nR2GD H 19\ngoto MegaDeathEnd\n\nRiseDeath:\nR2GD H 1 ThrustThingZ(0,21,0,1)\nR2GD H 0 A_JumpIf(ceilingz-z<64,\"MegaDeathEnd\")\nR2GD H 0 A_GiveInventory(\"RiseDeathFlag2\",1)\nR2GD H 0 A_JumpIfInventory(\"RiseDeathFlag2\",25,\"MegaDeathEnd\")\nGoto RiseDeath\nIceDeath:\nR2GD H 0 ACS_ExecuteAlways(998,0,DYE_ICEDEATHCBM,10)\nR2GD H 1 A_PlaySoundEx(\"CBM/freeze\",\"Voice\")\nR2GD HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH 1 A_SpawnItemEx(\"FrozenDeathBitFX\",frandom(16,48),0,fRandom(16,48),0,0,0,random(0,359))\nR2GD H 0 A_PlaySoundEx(\"CBM/icebreak\",\"Body\")\nR2GD H 0 A_SpawnItemEx(\"FrozenDeathFXC\",0,0,0)\ngoto DeathWait\n\n//Have to hard code because morphes break the rules\n//\nTimeStopped:\nR2GD \"]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]\" 1 A_Stop\nGoto Pain+2\nTimeStoppedX:\nR2GD \"####################################################\" 1 A_Stop\nGoto Pain+2\n\nPain.LightRyuStop:\nR2GD H 0 A_SpawnItemEx(\"PainLightRyuStopHit\")\nR2GD H 0 A_GiveInventory(\"LightRyuStopProtect\",1)\nR2GD H 0 A_GiveInventory(\"TimeStoppedTF\",1)\nR2GD HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH 1 A_Stop\nGoto Pain+2\n}\n}\n\nactor WildBearBoss : BaseMM8BDMWep_CBM\n{\ndropitem \"ConfettiDeathSpawner\"\ndropitem \"CopyClassUpgradeDropped\"\nTag \"$TAGC_BEAR\"\nWeapon.AmmoUse 0\nWeapon.AmmoGive 3\nObituary \"$OB_BEARCLOSE\"\nweapon.ammotype \"MaximumBearAmmo\"\nStates\n{\nSpawn:\nC_00 X 1\nloop\nReady:\nR2GH A 0 ACS_ExecuteAlways(998,0,DYE_YELLOWDEVIL)\nReady1:\nR2GH A 10 A_WeaponReady//(WRF_ALLOWRELOAD)\nR2GH A 0 A_JumpIfInventory(\"BomuHeal\",1,\"Heal\")\nloop\n\nHeal:\nR2GH A 0 HealThing(1)\nR2GH A 0 A_TakeInventory(\"BomuHeal\",1)\nR2GH A 2 A_WeaponReady//(WRF_ALLOWRELOAD)\ngoto Ready1+1\n\nDeselect:\nTNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Lower\nR2GH A 1 A_Lower\nLoop\nSelect:\nTNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Raise\nR2GH A 1 A_Raise\nLoop\n\nFire:\nR2GH A 0 A_GiveInventory(\"WildBearMain_CI\",1)\nR2GH A 0 A_PlaySoundEx(\"wep/YD_Punch\",\"Weapon\")\nR2GH A 0 ACS_NamedExecute(\"BULL_SetState\",0,1)\nR2GH B 2 Offset(-28,14)\nR2GH BBBB 2 Offset(-56,-4)\nR2GH B 2 Offset(-56,-4)\nR2GH B 2 Offset(-56,-4)\nR2GH B 2 Offset(-32,8)\nR2GH A 2 Offset(-12,20)\nR2GH A 2 A_WeaponReady(14)\nGoto Ready1\n\nAltfire:\nR2GH C 0\nR2GH A 1 Offset(8,26)\nR2GH E 1 Offset(8,26)\nR2GH E 1 Offset(20,16)\nR2GH E 1 Offset(28,8)\nR2GH C 0 A_Refire(\"AltfireCharge\")\nAltfire2:\nR2GH C 0 A_TakeInventory(\"BomuCharge\", 50)\nR2GH C 0 A_PlaySoundEx(\"wep/YD_Toss\",\"weapon\")\nR2GH C 0 A_GiveInventory(\"WildBearAltA_CI\",1)\nR2GH C 0 A_GiveInventory(\"WildBearAltB_CI\",1)\nR2GH C 10 Offset(40,0)\nR2GH C 2 Offset(36,4)\nR2GH C 1 Offset(32,8)\nR2GH A 2 Offset(-4,32)\nR2GH A 7 Offset(-8,36)\nR2GH A 1 Offset(-6,35)\nR2GH A 1 Offset(-4,34)\nR2GH A 1 Offset(-2,33)\nGoto Ready1\n\nAltfireCharge:\nR2GH C 0 A_JumpIfInventory(\"BomuCharge\",50,\"AltfireCharged\")\nR2GH E 2 Offset(28,8) A_GiveInventory(\"BomuCharge\")\nR2GH C 0 A_Refire(\"AltfireCharge\")\nGoto Altfire2\n\nAltfireCharged:\nR2GH D 1 Offset(32,12)\nAltfireCharged2:\nR2GH C 0 A_PlaySoundEx(\"weapon/bumobrr\",\"weapon\")\nR2GH C 2 Offset(30,6)\nR2GH C 2 Offset(28,8)\nR2GH E 1 A_Refire(\"AltfireCharged2\")\nR2GH C 0 A_TakeInventory(\"BomuCharge\", 50)\nR2GH C 0 A_TakeInventory(\"BomuEnd\",3)\nR2GH C 0 A_PlaySoundEx(\"wep/YD_Toss\",\"weapon\")\nR2GH C 0 ACS_NamedExecute(\"BULL_SetState\",0,2)\nR2GH C 0 A_GiveInventory(\"WildBearAlt2_CI\",1)\nR2GH C 0 A_ChangeFlag(\"NOTELEPORT\",1)\nR2GH C 0 A_ChangeFlag(\"SOLID\",0)\nR2GH C 0 A_TakeInventory(\"UnSolid\",1)\nR2GH C 0 A_Changeflag(\"PICKUP\",0)\n//R2GH C 0 A_ChangeFlag(\"INVISIBLE\",1)\nR2GH E 2 Offset(28,8)\nR2GH E 2 Offset(20,8)\nR2GH E 0 ACS_NamedExecuteAlways(\"CCBM_DevilHealthDrainer\",0)\nAltfireLoop:\nR2GH E 0 A_SpawnItemEx(\"BearerChargedDamager\",0,0,8,momx,momy,momz,0,8,0)\nR2GH E 1 Offset(12,17)\nR2GH E 0 A_JumpIfInventory(\"BomuEnd\",1,\"AltfireEnd\")\nR2GH E 0 //DamageThing(2)\nR2GH E 0 //A_GiveInventory(\"BomuHeal\",1)\nloop\n\nAltfireEnd:\n//R2GH E 0 A_ChangeFlag(\"INVISIBLE\",0)\nR2GH E 0 A_ChangeFlag(\"PICKUP\",1)\nR2GH E 0 A_ChangeFlag(\"NOTELEPORT\",0)\nR2GH E 0 A_SpawnItemEx(\"ReSolidifier\")\nR2GH E 0 A_PlaySoundEx(\"wep/YD_Sploosh\",\"Weapon\")\nR2GH E 0 A_CheckCeiling(\"AltfireEndCeiling\")\nR2GH E 0 A_SpawnItemEx(\"YD_BearerCubeBit\",4,0,12,8,0,10,0,1)\nR2GH E 0 A_SpawnItemEx(\"YD_BearerCubeBit\",4,0,12,8,0,10,90,1)\nR2GH E 0 A_SpawnItemEx(\"YD_BearerCubeBit\",4,0,12,8,0,10,180,1)\nR2GH E 0 A_SpawnItemEx(\"YD_BearerCubeBit\",4,0,12,8,0,10,270,1)\nAltfireEnd2:\nR2GH E 1 Offset(12,17)\nR2GH E 1 Offset(2,27)\nR2GH E 18 Offset(-10,37)\nR2GH A 1 Offset(-8,36)\nR2GH A 1 Offset(-6,35)\nR2GH A 1 Offset(-4,34)\nR2GH A 1 Offset(-2,33)\nGoto Ready1\n\nAltfireEndCeiling:\nTNT1 A 0 A_SpawnItemEx(\"YD_BearerCubeBit\",4,0,12,8,0,-10,0,1)\nTNT1 A 0 A_SpawnItemEx(\"YD_BearerCubeBit\",4,0,12,8,0,-10,90,1)\nTNT1 A 0 A_SpawnItemEx(\"YD_BearerCubeBit\",4,0,12,8,0,-10,180,1)\nTNT1 A 0 A_SpawnItemEx(\"YD_BearerCubeBit\",4,0,12,8,0,-10,270,1)\nGoto AltfireEnd2\n}\n}\n\nactor MaximumBearAmmo : Ammo\n{\ninventory.amount 1\ninventory.maxamount 3\n+INVENTORY.IGNORESKILL\n}\n\nactor BearerFlag : Inventory\n{\ninventory.amount 1\ninventory.maxamount 1\n}\n\nactor BomuCharge : Inventory\n{\ninventory.amount 1\ninventory.maxamount 50\n}\n\nactor BomuHeal : Inventory\n{\ninventory.amount 1\ninventory.maxamount 200\n}\n\nactor BomuEnd : Inventory\n{\ninventory.amount 1\ninventory.maxamount 3\n}\n\n//I present, a far less bad version of the original very loopy cheese protection.\nactor CheeseProtectionHelper : CustomInventory\n{\n\tStates\n\t{\n\t\tPickup:\n\t\tTNT1 A 0 A_SpawnItemEx(\"CheeseProtectionGiver\")\n\t\tTNT1 A 0 A_SpawnItemEx(\"CheeseProtectionTaker\")\n\t\tstop\n\t}\n}\n\nactor CheeseProtectionGiver : BasicHelper\n{\n\tStates\n\t{\n\t\tSpawn:\n\t\tTNT1 A 0\n\t\tTNT1 A 0 A_GiveToTarget(\"InvulnerableOn_Pickup\")\n\t\tstop\n\t}\n}\n\nactor CheeseProtectionTaker : BasicHelper\n{\n\tStates\n\t{\n\t\tSpawn:\n\t\tTNT1 A 50\n\t\tTNT1 A 0 A_GiveToTarget(\"InvulnerableOff_Pickup\")\n\t\tstop\n\t}\n}\n\nactor BearerMorphStart_P : CustomInventory\n{\nStates\n{\nPickup:\nTNT1 A 0 //LightTeamFlag//ACS handles TeamFlags/FlagPickups\n\nTNT1 A 0 SetPlayerProperty(0,0,16)//Buddha\nTNT1 A 0 SetPlayerProperty(0,0,4)//TotallyFrozen\nTNT1 A 0 SetPlayerProperty(0,0,0)//Frozen\nTNT1 A 0 SetPlayerProperty(0,0,3)//Flight\n\n//Important Gives\nTNT1 A 0 A_GiveInventory(\"BearerFlag\",1)//ACS watches for this\nTNT1 A 0 A_GiveInventory(\"EnvironmentGravity\",1)//Fix underwater gravity\nTNT1 A 0 A_GiveInventory(\"IsInGame\",1)//Great deal of things watch for this\nTNT1 A 0 A_GiveInventory(\"PowerNoGravityFix\",1)//Fixes NoGravity\nTNT1 A 0 A_GiveInventory(\"SpawnTelefragFixPickup\",1)//Probably not needed, but might as well\nTNT1 A 0 A_GiveInventory(\"StaminaFlag\",500)//Restore Stamina due to ClearInventory();\n\n//Bonus Gives\nTNT1 A 0 A_GiveInventory(\"CanUseItems\",1)\nTNT1 A 0 A_GiveInventory(\"SemiStunArmor\",1)\nTNT1 A 0 A_GiveInventory(\"HardHealthBar\",1)\nTNT1 A 0 A_GiveInventory(\"CheeseProtectionHelper\",1)\n\n//Flags to end certain class actors/projectiles\n\nTNT1 A 0 A_GiveInventory(\"BubbleFloodUndeploy\",1)\n\nTNT1 A 0 A_GiveInventory(\"ClashFlag1\",1)//Applies to Tornado as well\nTNT1 A 0 A_GiveInventory(\"ClashFlag2\",1)\nTNT1 A 0 A_GiveInventory(\"ClashFlag3\",1)\nTNT1 A 0 A_GiveInventory(\"ClashFlag4\",1)\nTNT1 A 0 A_GiveInventory(\"ClashFlagT\",1)\n\nTNT1 A 0 A_GiveInventory(\"RingFlag\",1)\nTNT1 A 0 A_GiveInventory(\"RingFlag2\",1)\n\nTNT1 A 0 A_GiveInventory(\"DiveLockonCleanse\",1)\n\nTNT1 A 0 A_GiveInventory(\"EndFlameFlag\",1)\n\nTNT1 A 0 A_GiveInventory(\"SearchBushFlag1\",1)\nTNT1 A 0 A_GiveInventory(\"SearchBushFlag2\",1)\nTNT1 A 0 A_GiveInventory(\"SearchBushFlag3\",1)\nTNT1 A 0 A_GiveInventory(\"SearchBushFlag4\",1)\n\nTNT1 A 0 A_GiveInventory(\"AquaKillFlag\",1)\n\nTNT1 A 0 A_GiveInventory(\"DuoMeteorEnd\",1)\nTNT1 A 0 A_GiveInventory(\"ODuoMeteorStop\",1)\n\nTNT1 A 0 A_GiveInventory(\"SplashEndSinging\",1)\n\nTNT1 A 0 A_GiveInventory(\"BeeFlag1\",1)\n\nTNT1 A 0 A_GiveInventory(\"Merc_BlobOff_F\",1)\n\nTNT1 A 0 A_TakeInventory(\"NoJumpCancel\",9)\nTNT1 A 0 A_GiveInventory(\"StopShield\",1) //I'm kind of amazed this wasn't already here.\nstop\n}\n}\n\nactor YD_BearerCube\n{\n\tTranslation \"192:192=216:216\", \"198:198=220:220\"\n\tPROJECTILE\n\tObituary \"$OB_BEARMAIN1\"\n\tdamagetype \"YellowDevilB\"\n\t-NOGRAVITY\n\t+SKYEXPLODE\n\tdamage (10)\n\tBounceType Doom\n\tBounceCount 1\n\treactiontime 15\n\tgravity .7\n\tRadius 25\n\tHeight 40\n\tspeed 29\n\tscale 1.5\n\tStates\n\t{\n\t\tSpawn:\n\t\tTNT1 A 0\n\t\tTNT1 A 0 ACS_NamedExecuteAlways(\"BULL_Tidifier\", 0)\n\t\tTNT1 A 0 ThrustThingZ(0,14,0,1)\n\t\tTNT1 A 0 A_Countdown\n\t\tR2GH FGHI 3\n\t\tGoto Spawn+2\n\t\tDeath:\n\t\tTNT1 A 0 A_ChangeFlag(\"NOGRAVITY\",1)\n\t\tTNT1 A 1 A_Stop\n\t\tTNT1 A 0 A_PlaySound(\"wep/YD_Sploosh\",\"Weapon\",0.35)\n\t\tTNT1 A 0 A_CheckCeiling(\"DeathCeiling\")\n\t\tTNT1 A 0 A_SpawnItemEx(\"YD_BearerCubeBit\",0,0,12,29,0,10,0,1)\n\t\tstop\n\t\tDeathCeiling:\n\t\tTNT1 A 0 A_SpawnItemEx(\"YD_BearerCubeBit\",0,0,12,29,0,-10,0,1)\n\t\tstop\n\t\tXDeath:\n\t\tTNT1 A 0\n\t\tstop\n\t}\n}\n\nactor YD_BearerCubeCharged : YD_BearerCube\n{\n\t+DONTBLAST\n\t+DONTREFLECT\n\t+DONTSPLASH\n\t+THRUACTORS\n\tscale 2.5\n\tStates\n\t{\n\t\tSpawn:\n\t\tTNT1 A 0\n\t\tTNT1 A 0 ACS_ExecuteAlways(815,0,200)\n\t\tTNT1 A 0 ThrustThingZ(0,14,0,1)\n\t\tTNT1 A 0 A_Countdown\n\t\tTNT1 A 12 A_JumpIfInTargetInventory(\"BumoEnd\",1,\"Death\")\n\t\tGoto Spawn+3\n\t\tDeath:\n XDeath:\n\t\tTNT1 A 0 A_GiveToTarget(\"BomuEnd\",1)\n\t\tTNT1 A 0 A_GiveInventory(\"ProjectilePortDead\",1)\n\t\tTNT1 A 0 A_ChangeFlag(\"NOGRAVITY\",1)\n\t\tTNT1 A 1 A_Stop\n\t\tstop\n\t}\n}\n\nactor BearerChargedDamager\n{\nPROJECTILE\ndamagetype \"BearerDevilC\"\nObituary \"$OB_YELLOWMAIN3\"\n+DONTSPLASH\n+DONTBLAST\n+NOEXPLODEFLOOR\n+THRUGHOST\n+DONTREFLECT\ndamage (25)\nRadius 45\nHeight 70\nscale 2.5\nStates\n{\nSpawn:\nTNT1 A 1\nstop\nCrash:\nXDeath:\nTNT1 A 1 A_GiveToTarget(\"BomuEnd\",1)\nstop\nDeath:\nTNT1 A 1 A_GiveToTarget(\"BomuEnd\",1)\nStop\n}\n}\n\nactor BearerDevilCProtect : PowerProtection\n{\nPowerup.Duration 3\nDamageFactor \"BearerDevilC\", 0.0\n}\n\nactor YD_BearerCubeB : YD_BearerCube{translation \"192:192=205:205\", \"198:198=74:74\"}\nactor YD_BearerCubeR : YD_BearerCube{translation \"192:192=171:171\", \"198:198=41:41\"}\nactor YD_BearerCubeO : YD_BearerCube{translation \"192:192=104:104\", \"198:198=128:128\"}\nactor YD_BearerCubeP : YD_BearerCube{translation \"192:192=229:229\", \"198:198=232:232\"}\nactor YD_BearerCubeChargedB : YD_BearerCubeCharged{translation \"192:192=205:205\", \"198:198=74:74\"}\nactor YD_BearerCubeChargedR : YD_BearerCubeCharged{translation \"192:192=171:171\", \"198:198=41:41\"}\nactor YD_BearerCubeChargedO : YD_BearerCubeCharged{translation \"192:192=104:104\", \"198:198=128:128\"}\nactor YD_BearerCubeChargedP : YD_BearerCubeCharged{translation \"192:192=229:229\", \"198:198=232:232\"}\n\nactor YD_BearerCubeBit\n{\nPROJECTILE\nObituary \"$OB_BEARMAIN2\"\ndamagetype \"YellowDevilB\"\n+DONTSPLASH\n-NOGRAVITY\n+HEXENBOUNCE\ndamage (5)\nRadius 8//25\nHeight 8//20\nspeed 14\nscale 2.5\nStates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 0 ACS_NamedExecuteAlways(\"BULL_Tidifier\", 0)\nR2GH JK 1\nTNT1 A 0 A_ChangeFlag(HEXENBOUNCE, false)\nSpawn2:\nR2GH JK 4\nloop\nDeath:\nTNT1 A 1\nstop\n}\n}\n\nactor YD_BearerPunch\n{\ntranslation \"192:192=216:216\"\nPROJECTILE\ndamagetype \"YellowDevilP\"\nObituary \"$OB_BEARALT\"\n+DONTBLAST\nreactiontime 1\ndamage (35)\nRadius 40\nHeight 20\nspeed 60\nscale 2.5\nStates\n{\nSpawn:\nTMFX R 0\nTMFX R 1 A_CountDown\nwait\nDeath:\nTMFX R 0 A_Explode(35,40,0,0,40)\ngoto XDeath\nXDeath:\nTMFX R 0 A_Stop\nTMFX R 2\nYMFX C 2\nTMFX RS 2\nstop\n}\n}\n\nactor YD_BearerPunchB : YD_BearerPunch{translation \"192:192=205:205\"}\nactor YD_BearerPunchR : YD_BearerPunch{translation \"192:192=171:171\"}\nactor YD_BearerPunchO : YD_BearerPunch{translation \"192:192=104:104\"}\nactor YD_BearerPunchP : YD_BearerPunch{translation \"192:192=229:229\"}\n\nactor WildBearAltA_CI : TeamColor_CI\n{\nstates\n{\nFireX:\nTNT1 A 0 A_FireCustomMissile(\"YD_BearerCube\",0,0,8,0)\ngoto Done\nFireB:\nTNT1 A 0 A_FireCustomMissile(\"YD_BearerCubeB\",0,0,8,0)\ngoto Done\nFireR:\nTNT1 A 0 A_FireCustomMissile(\"YD_BearerCubeR\",0,0,8,0)\ngoto Done\nFireO:\nTNT1 A 0 A_FireCustomMissile(\"YD_BearerCubeO\",0,0,8,0)\ngoto Done\nFireP:\nTNT1 A 0 A_FireCustomMissile(\"YD_BearerCubeP\",0,0,8,0)\ngoto Done\n}\n}\n\nactor WildBearAltB_CI : TeamColor_CI\n{\nstates\n{\nFireX:\nTNT1 A 0 A_FireCustomMissile(\"YD_BearerCube\",15,0,8,0)\nTNT1 A 0 A_FireCustomMissile(\"YD_BearerCube\",-15,0,8,0)\ngoto Done\nFireB:\nTNT1 A 0 A_FireCustomMissile(\"YD_BearerCubeB\",15,0,8,0)\nTNT1 A 0 A_FireCustomMissile(\"YD_BearerCubeB\",-15,0,8,0)\ngoto Done\nFireR:\nTNT1 A 0 A_FireCustomMissile(\"YD_BearerCubeR\",15,0,8,0)\nTNT1 A 0 A_FireCustomMissile(\"YD_BearerCubeR\",-15,0,8,0)\ngoto Done\nFireO:\nTNT1 A 0 A_FireCustomMissile(\"YD_BearerCubeO\",15,0,8,0)\nTNT1 A 0 A_FireCustomMissile(\"YD_BearerCubeO\",-15,0,8,0)\ngoto Done\nFireP:\nTNT1 A 0 A_FireCustomMissile(\"YD_BearerCubeP\",15,0,8,0)\nTNT1 A 0 A_FireCustomMissile(\"YD_BearerCubeP\",-15,0,8,0)\ngoto Done\n}\n}\n\nactor WildBearAlt2_CI : TeamColor_CI\n{\nstates\n{\nFireX:\nTNT1 A 0 A_FireCustomMissile(\"YD_BearerCubeCharged\",0,0,8,0)\ngoto Done\nFireB:\nTNT1 A 0 A_FireCustomMissile(\"YD_BearerCubeChargedB\",0,0,8,0)\ngoto Done\nFireR:\nTNT1 A 0 A_FireCustomMissile(\"YD_BearerCubeChargedR\",0,0,8,0)\ngoto Done\nFireO:\nTNT1 A 0 A_FireCustomMissile(\"YD_BearerCubeChargedO\",0,0,8,0)\ngoto Done\nFireP:\nTNT1 A 0 A_FireCustomMissile(\"YD_BearerCubeChargedP\",0,0,8,0)\ngoto Done\n}\n}\n\nactor WildBearMain_CI : TeamColor_CI\n{\nstates\n{\nFireX:\nTNT1 A 0 A_FireCustomMissile(\"YD_BearerPunch\",0,0,8,0)\ngoto Done\nFireB:\nTNT1 A 0 A_FireCustomMissile(\"YD_BearerPunchB\",0,0,8,0)\ngoto Done\nFireR:\nTNT1 A 0 A_FireCustomMissile(\"YD_BearerPunchR\",0,0,8,0)\ngoto Done\nFireO:\nTNT1 A 0 A_FireCustomMissile(\"YD_BearerPunchO\",0,0,8,0)\ngoto Done\nFireP:\nTNT1 A 0 A_FireCustomMissile(\"YD_BearerPunchP\",0,0,8,0)\ngoto Done\n}\n}"
},
{
"source": "pk3",
"name": "actors/ClaseBaseFlags.txt",
"contents": "//These are actors used for ClassBase0\n\nactor DeadClassBundle : CustomInventory\n{\nStates\n{\nPickup:\nTNT1 A 0 A_TakeInventory(\"UnSolid\",999)\n//TNT1 A 0 A_TakeInventory(\"PharaohCharge\",999)\n//TNT1 A 0 A_TakeInventory(\"PharaohChargeC\",999)\nTNT1 A 0 A_TakeInventory(\"WeaponCharge\",999)\nTNT1 A 0 A_GiveInventory(\"EndBossFlashStoppered\",1)\nTNT1 A 0 A_GiveInventory(\"CutterFlag\",999)\nTNT1 A 0 A_GiveInventory(\"IsDead\",1)\nTNT1 A 0 A_TakeInventory(\"WilyBurnTimer\",999)\nTNT1 A 0 A_TakeInventory(\"ConcreteTime\",999)\nTNT1 A 0 A_JumpIfInventory(\"SpawnTeleFragFlag\",1,3)\nTNT1 A 0 A_SpawnItemEx(\"ScrewSpewer\",0,0,0,0,0,0,0,1)\nTNT1 A 0 A_GiveInventory(\"TrioExodiaDropPickup\",1)//EvilRobot actor\nTNT1 A 0 A_GiveInventory(\"RaThorSinistarDropper_P\",1)//RaThor actor\nTNT1 A 0 SetPlayerProperty(0,0,4)\nTNT1 A 0 A_NoBlocking\nTNT1 A 0 A_ChangeFlag(\"THRUACTORS\",1)\n//TNT1 A 0 A_ChangeFlag(\"SOLID\",0)\n//TNT1 A 0 A_JumpIfInventory(\"NoStopDeathFlag\",1,2)\n//TNT1 A 0 A_Stop\nTNT1 A 0 A_GiveToTarget(\"KilledMeStock\",1)\nTNT1 A 0 A_GiveToTarget(\"KilledMe\",1)\nTNT1 A 0 //ACS_ExecuteAlways(999,0,0)//Old fade cancel script\ngoto SpecialDrops\n\nSpecialDrops:\nTNT1 A 0 A_JumpIfInventory(\"JoeHitFlag2\",1,\"ScoreBall\")\nTNT1 A 0 A_JumpIfInventory(\"RaThorHitFlag\",1,\"RaThorSoul\")\nTNT1 A 0 A_JumpIfInventory(\"JunkDeathDropFlag\",1,\"JunkDrop\")\nTNT1 A 0\ngoto FinalCheck\nFinalCheck:\nTNT1 A 0 A_JumpIfInventory(\"RiseDeathFlag\",1,\"Rising\")\nTNT1 A 0 A_JumpIfInventory(\"InstagibFlag\",1,\"Bonus\")\nTNT1 A 0 A_JumpIfInventory(\"FallingFlag\",1,\"Bonus\")\nstop\n\nBonus:\nTNT1 A 0 A_SetTranslucent(0.0,0)\nTNT1 A 0 //A_GiveInventory(\"\",1)//Could do something\nstop\nRising:\nTNT1 A 0 //A_Stop\nTNT1 A 0 A_ChangeFlag(\"NOGRAVITY\",1)\nstop\nScoreBall:\nTNT1 A 0 A_SpawnItemEx(\"ScoreBallPickUp\",0,0,32,random(1,3),0,10,random(0,359),1)\ngoto SpecialDrops+1\nRaThorSoul:\nTNT1 A 0 A_SpawnItemEX(\"ThorSoul\",0,0,0,random(-4,4),random(-4,4),frandom(2,3),random(0,359),1)\ngoto SpecialDrops+2\nJunkDrop:\nTNT1 AAA 0 A_SpawnItemEx(\"ClassJunkBit\",0,0,0,random(1,10),0,random(3,12),random(0,359),1)\ngoto SpecialDrops+3\n}\n}\n\nactor FrozenDeathFXC : FrozenDeathFX{Radius 16 Height 56}\n\nactor FrozenDeathBitFX : BasicClientSide\n{\nTranslation \"192:192=4:4\", \"198:198=201:201\", \"3:8=72:72\", \"243:247=72:72\", \"208:215=4:4\"\nScale 1.25\nStates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 0 A_Jump(256,\"Spawn1\",\"Spawn2\",\"Spawn3\",\"Spawn4\",\"Spawn5\",\"Spawn6\")\nSpawn1:\nBLIZ A 3 bright\nTNT1 A 1\nBLIZ B 3 bright\nTNT1 A 1\nBLIZ C 2 bright\nstop\nSpawn2:\nTNT1 A 0 A_Jump(128,\"Spawn2a\")\nMRFP EDC 3 bright\nstop\nSpawn2a:\nMRFP CDE 3 bright\nstop\nSpawn3:\nTNT1 A 0 A_Jump(128,\"Spawn3a\")\nFLSA RST 3 bright\nstop\nSpawn3a:\nFLSA USW 3 bright\nstop\nSpawn4:\nTNT1 A 0 A_Jump(128,\"Spawn4a\")\nFLSA UVW 3 bright\nstop\nSpawn4a:\nFLSA RVT 3 bright\nstop\nSpawn5:\nFCRA I 3 bright\nTNT1 A 1\nFCRA I 3 bright\nTNT1 A 1\nFCRA I 3 bright\nstop\nSpawn6:\nFCRA JKL 3 bright\nstop\nEnd:\nTNT1 A 0\nstop\n}\n}\n\nactor ConfettiDeath : Confetti{+THRUGHOST}\n\nactor ConfettiDeathSpawner : ConfettiSpawner{ReactionTime 9 States{\nSpawn:\nTNT1 AAA 0 A_SpawnItemEx(\"ConfettiDeath\",random(-16, 16),random(-16, 16),Random(8, 16),random(-3,3), random(-3,3), random(1,-1),0)\nTNT1 A 1 A_CountDown\nLoop}}\n\nactor DeathFX1C : DeathFX1\n{\nStates\n{\nSpawn:\nMMFX BCDEBCDEBCDEBCDEBCDEBCDEBCDEBCDEBCDEBCDE 2\nstop\nDeath:\nTNT1 A 0\nstop\n}\n}\n\nactor TFakeDeathFX1 : DeathFX1C\n{\nStates\n{\nSpawn:\nTMFX ABCDABCDABCDABCDABCDABCDABCDABCDABCDABCD 2\nstop\nSpawn2:\nTMFX ABCD 2//There is a wierd warning with this online, so the above method is placeholder.\nTMFX A 0 A_CountDown\nloop\n}\n}\n\nActor FakeDeathFXC : FakeDeathFX\n{\nStates\n{\nSpawn:\nTNT1 A 1//DeathFX1\nPLAY Z 0 A_SpawnItemEx(\"DeathFX1C\",0,0,0,0,0,15,0,0)\nPLAY Z 0 A_SpawnItemEx(\"DeathFX1C\",0,0,0,0,0,-15,0,0)\nPLAY Z 0 A_SpawnItemEx(\"DeathFX1C\",0,0,0,0,10.598,10.606,0,0)\nPLAY Z 0 A_SpawnItemEx(\"DeathFX1C\",0,0,0,0,-10.598,10.606,0,0)\nPLAY Z 0 A_SpawnItemEx(\"DeathFX1C\",0,0,0,0,10.606,-10.598,0,0)\nPLAY Z 0 A_SpawnItemEx(\"DeathFX1C\",0,0,0,0,-10.606,-10.598,0,0)\nPLAY Z 0 A_SpawnItemEx(\"DeathFX1C\",0,0,0,0,15,0,0,0)\nPLAY Z 0 A_SpawnItemEx(\"DeathFX1C\",0,0,0,0,-15,0,0,0)\nPLAY Z 0 A_SpawnItemEx(\"DeathFX1C\",0,0,0,0,0,5,0,0)\nPLAY Z 0 A_SpawnItemEx(\"DeathFX1C\",0,0,0,0,0,-5,0,0)\nPLAY Z 0 A_SpawnItemEx(\"DeathFX1C\",0,0,0,0,3.533,3.535,0,1)\nPLAY Z 0 A_SpawnItemEx(\"DeathFX1C\",0,0,0,0,-3.533,3.535,0,1)\nPLAY Z 0 A_SpawnItemEx(\"DeathFX1C\",0,0,0,0,3.535,-3.534,0,1)\nPLAY Z 0 A_SpawnItemEx(\"DeathFX1C\",0,0,0,0,-3.535,-3.534,0,1)\nPLAY Z 0 A_SpawnItemEx(\"DeathFX1C\",0,0,0,0,5,0,0,0)\nPLAY Z 0 A_SpawnItemEx(\"DeathFX1C\",0,0,0,0,-5,0,0,0)\nTNT1 A 1\nstop\n}\n}\nActor TFakeDeathFX : FakeDeathFX\n{\nStates\n{\nSpawn:\nTNT1 A 1\nPLAY Z 0 A_SpawnItemEx(\"TFakeDeathFX1\",0,0,0,0,0,15,0,1)\nPLAY Z 0 A_SpawnItemEx(\"TFakeDeathFX1\",0,0,0,0,0,-15,0,1)\nPLAY Z 0 A_SpawnItemEx(\"TFakeDeathFX1\",0,0,0,0,10.598,10.606,0,1)\nPLAY Z 0 A_SpawnItemEx(\"TFakeDeathFX1\",0,0,0,0,-10.598,10.606,0,1)\nPLAY Z 0 A_SpawnItemEx(\"TFakeDeathFX1\",0,0,0,0,10.606,-10.598,0,1)\nPLAY Z 0 A_SpawnItemEx(\"TFakeDeathFX1\",0,0,0,0,-10.606,-10.598,0,1)\nPLAY Z 0 A_SpawnItemEx(\"TFakeDeathFX1\",0,0,0,0,15,0,0,1)\nPLAY Z 0 A_SpawnItemEx(\"TFakeDeathFX1\",0,0,0,0,-15,0,0,1)\nPLAY Z 0 A_SpawnItemEx(\"TFakeDeathFX1\",0,0,0,0,0,5,0,1)\nPLAY Z 0 A_SpawnItemEx(\"TFakeDeathFX1\",0,0,0,0,0,-5,0,1)\nPLAY Z 0 A_SpawnItemEx(\"TFakeDeathFX1\",0,0,0,0,3.533,3.535,0,1)\nPLAY Z 0 A_SpawnItemEx(\"TFakeDeathFX1\",0,0,0,0,-3.533,3.535,0,1)\nPLAY Z 0 A_SpawnItemEx(\"TFakeDeathFX1\",0,0,0,0,3.535,-3.534,0,1)\nPLAY Z 0 A_SpawnItemEx(\"TFakeDeathFX1\",0,0,0,0,-3.535,-3.534,0,1)\nPLAY Z 0 A_SpawnItemEx(\"TFakeDeathFX1\",0,0,0,0,5,0,0,1)\nPLAY Z 0 A_SpawnItemEx(\"TFakeDeathFX1\",0,0,0,0,-5,0,0,1)\nTNT1 A 1\nstop\n}\n}\n\nactor DelayPainFX : BasicHelper\n{\nStates\n{\nSpawn:\nTNT1 A 0\nTNT1 AAAAAAAAA 2 A_GiveToTarget(\"PainFXItem\",1)\nstop\n}\n}\n\nactor PainFXItem : CustomInventory\n{\nStates\n{\nPickup:\nTNT1 A 1\nTNT1 A 0 A_SpawnItemEx(\"PainFX_CBM\",-5,0,3,0,0,0)\nstop\n}\n}\n\nactor PainScaleVelocityC : CustomInventory\n{\nStates\n{\nPickup:\nTNT1 A 0 A_JumpIfInventory(\"StunArmor\",1,\"Pickup3\")\nTNT1 A 0 A_JumpIfInventory(\"SemiStunArmor\",1,\"Pickup2\")\nTNT1 A 0 A_ScaleVelocity(0.75)\nstop\nPickup2:\nTNT1 A 0 A_ScaleVelocity(0.875)\nstop\nPickup3:\nTNT1 A 0\nstop\n}\n}\n\nactor PainScaleVelocityFlashBombC : PainScaleVelocityC\n{\nStates\n{\nPickup:\nTNT1 A 0 A_JumpIfInventory(\"StunArmor\",1,\"Pickup3\")\nTNT1 A 0 A_JumpIfInventory(\"SemiStunArmor\",1,\"Pickup2\")\nTNT1 A 0 A_ScaleVelocity(0.9)\nstop\nPickup2:\nTNT1 A 0 A_ScaleVelocity(0.95)\nstop\n}\n}\n\nactor PainStopC : PainScaleVelocityC\n{\nStates\n{\nPickup:\nTNT1 A 0 A_JumpIfInventory(\"StunArmor\",1,\"Pickup3\")\nTNT1 A 0 A_JumpIfInventory(\"SemiStunArmor\",1,\"Pickup2\")\nTNT1 A 0 A_Stop\nstop\nPickup2:\nTNT1 A 0 A_ScaleVelocity(0.50)\nstop\n}\n}\n\nactor PainRecoilC : CustomInventory\n{\nStates\n{\nPickup:\nTNT1 A 0 A_JumpIfInventory(\"RecoilPowerC\",1,\"Pickup2\")\nTNT1 A 0 A_JumpIfInventory(\"StunArmor\",1,\"Pickup2\")\nTNT1 A 0 A_JumpIfInventory(\"SemiStunArmor\",1,\"Pickup2\")\nTNT1 A 0 A_Recoil(1)\nTNT1 A 0 A_GiveInventory(\"RecoilPowerC\",1)\nstop\nPickup2:\nTNT1 A 0\nstop\n}\n}\n\nactor RecoilPowerC : Powerup\n{\nPowerup.Duration 1\n}\n\nactor TimeStopActivatorC : CustomInventory\n{\nStates\n{\nPickup:\nTNT1 A 0\nTNT1 A 0 A_JumpIfInventory(\"TimeStoppedCounter\",1,\"No\")\nTNT1 A 0 A_Stop\nTNT1 A 0 A_GiveInventory(\"TimeStoppedCounter\",1)\n\nTNT1 A 0 SetPlayerProperty(0,1,4)\nTNT1 A 0 ACS_ExecuteAlways(806,0)\nTNT1 A 0 A_GiveInventory(\"TotallyFrozenLook\",1)\n\nTNT1 A 0 SetPlayerProperty(0,1,3)\n\nTNT1 A 0 A_SpawnItemEx(\"TimeStoppedWatcherC\")\nstop\nNo:\nTNT1 A 0\nstop\n}\n}\nactor TimeStoppedWatcherC : BasicHelper\n{\nStates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 1 A_Warp(AAPTR_TARGET,0.0,0.0,0.0,0.0,WARPF_NOCHECKPOSITION)\nTNT1 A 0 A_SpawnItemEx(\"TimeStopGFX\",random(8,64),0,random(0,64),0,0,0,random(0,359))\nTNT1 A 0 A_JumpIfInTargetInventory(\"TimeStoppedCounter\",1,\"Spawn\")\nTNT1 A 5 A_GiveToTarget(\"TimeUnstoppedC\")\nTNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1 A_SpawnItemEx(\"TimeStopGFXSmall\", random(8, 64), 0, random(0, 64), 0, 0, 0, random(0, 359))\nstop\n}\n}\nactor TimeUnstoppedC : CustomInventory\n{\nStates\n{\nPickup:\nTNT1 A 0 A_GiveInventory(\"FlightDisableCheck\",1)\nTNT1 A 0 A_GiveInventory(\"CoreTimeStopUnfreeze\",1)\nstop\n}\n}\n\nactor SelfTotallyFrozen : CustomInventory\n{\nStates\n{\nPickup:\nTNT1 A 0 A_GiveInventory(\"SelfTotallyFrozenFlag\",1)\nTNT1 A 0 SetPlayerProperty(0,1,4)\nstop\n}\n}\n\nactor SelfTotallyFrozenDuo : CustomInventory\n{\nStates\n{\nPickup:\nTNT1 A 0 A_GiveInventory(\"SelfTotallyFrozenFlag\",1)\nTNT1 A 0 SetPlayerProperty(0,1,0)\nstop\n}\n}\n\nactor SelfTotallyFrozenFlag : Inventory\n{\ninventory.amount 1\ninventory.maxamount 1\n}\n\nactor SelfStoppedTFFlag : Inventory\n{\ninventory.amount 1\ninventory.maxamount 1\n}\n\nactor TotallyFrozenLook : Inventory\n{\ninventory.amount 1\ninventory.maxamount 1\n}\n\nactor TotallyFrozenLookOnce : TotallyFrozenLook {}\n\nactor SelfStoppedTF : CustomInventory\n{\nStates\n{\nPickup:\nTNT1 A 0 A_GiveInventory(\"SelfStoppedTFFlag\",1)\nTNT1 A 0 SetPlayerProperty(0,1,4)\nTNT1 A 0 ACS_ExecuteAlways(806,0)\nTNT1 A 0 A_GiveInventory(\"TotallyFrozenLook\",1)\nstop\n}\n}\n\nactor TimeStoppedTF : CustomInventory\n{\nStates\n{\nPickup:\nTNT1 A 0 A_GiveInventory(\"TimeStoppedTFFlag\",1)\nTNT1 A 0 SetPlayerProperty(0,1,4)\nTNT1 A 0 ACS_ExecuteAlways(806,0)\nTNT1 A 0 A_GiveInventory(\"TotallyFrozenLook\",1)\nstop\n}\n}\n\nactor TimeStoppedTFFlag : SelfTotallyFrozenFlag {}\n\nactor WilyIceTotallyFrozen : CustomInventory\n{\nStates\n{\nPickup:\nTNT1 A 0 A_GiveInventory(\"WilyIceTFFlag\",1)\nTNT1 A 0 SetPlayerProperty(0,1,4)\nTNT1 A 0 ACS_ExecuteAlways(806,0)\nTNT1 A 0 A_GiveInventory(\"TotallyFrozenLook\",1)\nstop\n}\n}\n\nactor WilyIceTFFlag : SelfTotallyFrozenFlag {}\n\nactor Unfreeze : CustomInventory\n{\nStates\n{\nPickup1:\nTNT1 A 0 A_JumpIfInventory(\"SelfTotallyFrozenFlag\",1,\"PickupNo\")\nTNT1 A 0 A_JumpIfInventory(\"TimeStoppedTFFlag\",1,\"PickupNo\")\nTNT1 A 0 A_JumpIfInventory(\"WilyIceTFFlag\",1,\"PickupNo\")\nTNT1 A 0 A_JumpIfInventory(\"SelfStoppedTFFlag\",1,\"PickupNo\")\nTNT1 A 0 A_JumpIfInventory(\"TimeStoppedCounter\",1,\"PickupNo\")\nTNT1 A 0 A_TakeInventory(\"TotallyFrozenLook\",1)\nTNT1 A 0 SetPlayerProperty(0,0,0)\nTNT1 A 0 SetPlayerProperty(0,0,4)\nstop\nPickupNo:\nTNT1 A 0\nstop\n}\n}\n\nactor SelfTotallyUnfrozen : Unfreeze\n{\nStates\n{\nPickup:\nTNT1 A 0 A_TakeInventory(\"SelfTotallyFrozenFlag\",1)\ngoto Pickup1\n}\n}\n\nactor TimeStoppedUnfreeze : Unfreeze\n{\nStates\n{\nPickup:\nTNT1 A 0 A_JumpIfInventory(\"TimeStoppedTFFlag\",1,\"Pickup0\")\ngoto PickupNo\nPickup0:\nTNT1 A 0 A_TakeInventory(\"TimeStoppedTFFlag\",1)\ngoto Pickup1\n}\n}\n\nactor WilyIceUnfreeze : Unfreeze\n{\nStates\n{\nPickup:\nTNT1 A 0 A_TakeInventory(\"WilyIceTFFlag\",1)\ngoto Pickup1\n}\n}\n\nactor SelfStoppedUnfreeze : Unfreeze\n{\nStates\n{\nPickup:\nTNT1 A 0 A_TakeInventory(\"SelfStoppedTFFlag\",1)\ngoto Pickup1\n}\n}\n\nactor CoreTimeStopUnfreeze : Unfreeze\n{\nStates\n{\nPickup:\nTNT1 A 0 A_TakeInventory(\"TimeStoppedCounter\",1)\ngoto Pickup1\n}\n}\n\nactor AtomicOnce : PowerProtection\n{\nPowerup.Duration 7\ndamagefactor \"AtomicFire3\", 0.1\n}\n\nactor TempPitProtect : CustomInventory\n{\nStates\n{\nPickup:\nTNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(804,66)>=1,\"No\")\nTNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(107,0)==1, \"Maybe\")\nTNT1 A 0 A_JumpIfInventory(\"TempPitProtectFlag\",1,\"Pickup2\")\nTNT1 A 0 A_ChangeFlag(\"NOBLOCKMONST\",0)\nTNT1 A 0 A_SpawnItemEx(\"TempPitProtectEnder\")\nPickup2:\nTNT1 A 0 A_GiveInventory(\"TempPitProtectFlag\",1)\nstop\nMaybe:\nTNT1 A 0 A_JumpIfInventory(\"TempPitProtectFlag\",1,\"Pickup2\")\nstop\nNo:\nTNT1 A 0\nstop\n}\n}\n\nactor TempPitProtectFlag : Powerup\n{\nPowerup.Duration 35\n}\n\nactor TempPitProtectEnder\n{\nHeight 0\nRadius 0\n+NOINTERACTION\n-SOLID\n+NOGRAVITY\n+MISSILE\nStates\n{\nSpawn:\nTNT1 A 0\nSpawn2:\nTNT1 A 1\nTNT1 A 0 A_JumpIfInTargetInventory(\"TempPitProtectFlag\",1,\"Spawn2\")\nTNT1 A 0 A_GiveToTarget(\"TempPitProtectEnd\", 1)\nstop\n}\n}\n\nactor TempPitProtectEnd : CustomInventory\n{\nStates\n{\nPickup:\nTNT1 A 0 A_JumpIfInventory(\"IsBot\",1,\"Pickup2\")\nTNT1 A 0 A_ChangeFlag(\"NOBLOCKMONST\",1)\nPickup2:\nTNT1 A 0\nstop\n}\n}\n\n/*\nactor LowGravityEx : LowGravity replaces LowGravity\n{\nStates\n{\nPickup:\nTNT1 A 1 ACS_ExecuteAlways(204,0,1)\nstop\n}\n}\n\nactor NormalGravityEx : NormalGravity replaces NormalGravity\n{\nStates\n{\nPickup:\nTNT1 A 1 ACS_ExecuteAlways(204,0,0)\nstop\n}\n}\n*/\n\nactor NormalGravityFlag : OnceC{}\n\nactor LowGravityFlag : OnceC{}\n\nactor EndBossFlashStoppered : OnceC{}\n\nactor ScrewSpewer : BasicHelper\n{\nStates\n{\nSpawn:\nPLAY A 0\nPLAY A 0 A_Jump(128,2)\nPLAY A 0 A_SpawnItemEx(\"ScrewBoltBigPickup\",0,0,0,random(1,3),0,random(10,15),random(0,359),1)\nstop\nPLAY AA 0 A_SpawnItemEx(\"ScrewBoltPickup\",0,0,0,random(1,6),0,random(5,10),random(0,359),1)\nstop\n}\n}\n\nactor ScrewBoltPickup : CustomInventory\n{\ninventory.pickupmessage \"Picked up a Small Screw!\"\nscale 2.5\nReactionTime 800\nStates\n{\nSpawn:\nSCOR E 1 A_SetAngle(angle+15)\nSCOR E 0 A_CountDown\nloop\nPickup:\nTNT1 A 0 A_JumpIfInventory(\"SparkShockBoss\",1,\"Spark\")\nTNT1 A 0 A_JumpIfInventory(\"PlantBarrierBoss\",1,\"Plant\")\nTNT1 A 0 A_JumpIfInventory(\"RollFlag\",1,\"Roll\")\nTNT1 A 0 A_JumpIfInventory(\"LightningBoltBoss\",1,\"Dynamo\")\nTNT1 A 0 A_JumpIfInventory(\"IsAuto\",1,\"Auto\")\nTNT1 A 0 A_JumpIfInventory(\"LaserTridentBoss\",1,\"Splash\")\nTNT1 A 0 A_JumpIfInventory(\"CanSnatch_F\",1,\"TheSnatch\")\nTNT1 A 0\nfail\nPickup2:\nTNT1 A 0\nTNT1 A 0\nstop\nSpark:\nTNT1 A 0 A_PlaySound(\"item/JunkPick\",3,1.0)\nTNT1 A 0 A_GiveInventory(\"SparkHealAmmo\",7)\nstop\nPlant:\nTNT1 A 0 A_PlaySound(\"item/JunkPick\",3,1.0)\nTNT1 A 0 A_GiveInventory(\"PlantmanHealAmmo\",7)\nstop\nRoll:\nTNT1 A 0 A_PlaySound(\"item/JunkPick\",3,1.0)\nTNT1 A 0 A_GiveInventory(\"RollHealAmmo\",7)\nstop\nDynamo:\nTNT1 A 0 A_PlaySound(\"item/JunkPick\",3,1.0)\nTNT1 A 0 A_GiveInventory(\"DynamoHealAmmo\",5)\nstop\nSplash:\nTNT1 A 0 A_PlaySound(\"item/JunkPick\",3,1.0)\nTNT1 A 0 A_GiveInventory(\"CrabHealingAmmo\",7)\nstop\nAuto:\nTNT1 A 0 A_PlaySound(\"item/JunkPick\",3,1.0)\nTNT1 A 0 A_GiveInventory(\"AutoNutsAmmo\",1)\nstop\nTheSnatch:\nTNT1 A 0 A_GiveInventory(\"SnatchItems_P1B\",1)\nstop\nNo:\nTNT1 A 0\nfail\nDeath:\nTNT1 A 1\nstop\n}\n}\n\nactor ScrewBoltBigPickup : ScrewBoltPickup\n{\ninventory.pickupmessage \"Picked up a Big Screw!\"\nReactionTime 1000\nStates\n{\nSpawn:\nSCOR F 1 A_SetAngle(angle+15)\nSCOR F 0 A_CountDown\nloop\nSpark:\nTNT1 A 0 A_PlaySound(\"item/JunkPick\",3,1.0)\nTNT1 A 0 A_GiveInventory(\"SparkHealAmmo\",14)\nstop\nPlant:\nTNT1 A 0 A_PlaySound(\"item/JunkPick\",3,1.0)\nTNT1 A 0 A_GiveInventory(\"PlantmanHealAmmo\",14)\nstop\nRoll:\nTNT1 A 0 A_PlaySound(\"item/JunkPick\",3,1.0)\nTNT1 A 0 A_GiveInventory(\"RollHealAmmo\",14)\nstop\nDynamo:\nTNT1 A 0 A_PlaySound(\"item/JunkPick\",3,1.0)\nTNT1 A 0 A_GiveInventory(\"DynamoHealAmmo\",10)\nstop\nSplash:\nTNT1 A 0 A_PlaySound(\"item/JunkPick\",3,1.0)\nTNT1 A 0 A_GiveInventory(\"CrabHealingAmmo\",14)\nstop\nAuto:\nTNT1 A 0 A_PlaySound(\"item/JunkPick\",3,1.0)\nTNT1 A 0 A_GiveInventory(\"AutoNutsAmmo\",2)\nstop\nTheSnatch:\nTNT1 A 0 A_GiveInventory(\"SnatchItems_P2A\",1)\nstop\n}\n}\n\n//Pain Locations\n//ClassBase0, Stoneman, BearerClass, GeminiClone?\nactor PainFX_CBM : PainFX replaces PainFX {speed 1000}\n\nactor SuperPainSnd_D : Powerup\n{\nPowerup.Duration 14\n}\n\nactor WeakPain_P : CustomInventory\n{\nStates\n{\nPickup:\nTNT1 A 0 A_GiveInventory(\"SuperEffective\",3)\nTNT1 A 0 A_SpawnItemEx(\"PainFX_CBM\",-5,0,3,0,0,0)\nTNT1 A 0 A_JumpIfInventory(\"SuperPainSnd_D\",1,\"No\")\ngoto SuperP\nSuperP:\nTNT1 A 0 A_SpawnItemEx(\"SuperPainFX_CBM\",0,0,28)\nTNT1 A 0 A_GiveInventory(\"SuperPainSnd_D\",1)\nstop\nNo:\nTNT1 A 0\nstop\n}\n}\n\nactor SuperPainFX_CBM : BasicHelper\n{\nStates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 0 A_PlaySoundEX(\"classes/superX\",\"Weapon\")\nTNT1 AA 1\nstop\n}\n}\n\nactor ImFrozenC : ImFrozen replaces ImFrozen\n{\nStates\n{\nSpawn:\nTNT1 A 0\nTNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1 A_GiveToTarget(\"WasFrozenTodayFX\",1)\nTNT1 A 1 A_GiveToTarget(\"ImNotFrozenNowC\",1)\nstop\n}\n}\n\nactor ImNotFrozenNowC : ImNotFrozenNow replaces ImNotFrozenNow\n{\nStates\n{\nSpawn:\nTNT1 A 0\nstop\nPickup:\nTNT1 A 0 A_GiveInventory(\"WilyIceUnfreeze\",1)\nTNT1 A 0 A_GiveInventory(\"PowerWilyIceUnfreeze\",1)\nTNT1 A 0 A_TakeInventory(\"IceVision\",1)\nstop\n}\n}\n\nactor WasFrozenTodayFX : CustomInventory\n{\nStates\n{\nPickup:\nTNT1 A 0 A_SpawnItemEx(\"WasFrozenToday\",0,0,36,0,0,0,0,1)\nTNT1 A 1\nstop\n}\n}\n\nactor WasFrozenToday\n{\nRenderStyle \"Translucent\"\nscale 5.0\nAlpha 0.5\n- SOLID\n+NOGRAVITY\n+CLIENTSIDEONLY\nStates\n{\nSpawn:\nMRFP B 0\nMRFP B 1\nstop\n}\n}\n/*\nACTOR TeleportFogC : TeleportFog2 replaces TeleportFog2\n{\n States\n {\n Spawn:\n TFOG A 0\n\tTFOG A 0 A_SpawnItemEx(\"SpawnProtect\")\n\tTFOG A 3 A_PlaySound(\"misc/teleport\")\n TFOG BC 2\n Stop\n}\n}\n\nactor SpawnProtect\n{\n+SOLID\n//+CLIENTSIDEONLY\n+SHOOTABLE\n+DONTRIP\n+NODAMAGE\n+NOBLOOD\nhealth 99999\n+DONTBLAST\nheight 56\nradius 16\nscale 2.5\nspeed 0\nStates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 1\nstop\n}\n}\n*/\n\nactor SuperEffective : Inventory\n{\ninventory.amount 1\ninventory.maxamount 2\n}\n\n//DrLight, BBA, DrWily, Alien, Gravity, Flame*, Grenade, EvilRobot, Galaxy, Fake, Bearer\n\nactor SpecialDeathFlag :OnceC{}\n//actor NoStopDeathFlag :OnceC{}\nactor FlingDeathFlag :OnceC{}\nactor IceDeathFlag :OnceC{}\nactor RiseDeathFlag :OnceC{}\nactor RiseDeathFlag2 : Inventory\n{\ninventory.amount 1\ninventory.maxamount 30\n}\nactor InstagibFlag : OnceC{}\nactor FallingFlag : OnceC{}\nactor SpawnTeleFragFlag : OnceC{}\n\nactor StunArmor : OnceC{}\nactor SemiStunArmor : StunArmor {}\n\nactor DontPushMyFlagBro : OnceC{}\n\n//actor StayLocked : OnceC{}\n\nactor SpawningMisfire : OnceC{}\nactor SpawningMisfired : OnceC{}\n\nactor CustomBossAmmoBar : OnceC{}\n\nactor JunkDeathDropFlag :OnceC{}\n\n/*\nactor Shocked2 : Shocked\n{\npowerup.duration 45\n}\n*/\n\nactor Shocked_18 : PowerSpeed\n{\npowerup.duration 18\nSpeed 0.0\n}\n\nactor IsInPain : PowerUp\n{\nPowerup.Duration 3\n}\nactor SkipClassPainJump : PowerUp\n{\nPowerup.Duration 1\n}\n\nactor SinglePlayerStateFlag : Powerup\n{\npowerup.duration 3\n}\n\nactor AirJumpBoost_P : CustomInventory\n{\nStates\n{\nPickup:\nTNT1 A 0 A_JumpIfInventory(\"FlightDisableFlag\",1,\"No\")\nTNT1 A 0 A_JumpIfInventory(\"CanAirJumpLimit\",1,\"Jump\")\nstop\nNo:\nTNT1 A 0\nstop\nJump:\nTNT1 A 0 A_TakeInventory(\"CanAirJumpLimit\",1)\nTNT1 A 0 //A_ChangeVelocity(momx,momy,10.0,2)\nTNT1 A 0 A_ChangeVelocity(momx,momy,CallACS(\"CBM_FetchJumpZ\"),2)\nTNT1 A 0 A_GiveInventory(\"JumpCancler\",1)\nstop\n}\n}\n\nactor TempPitProtect_P : CustomInventory\n{\nStates\n{\nPickup:\nTNT1 A 0 A_JumpIf(CallACS(\"CBM_GetCVar\",3)>=1,\"No\")\nTNT1 A 0 A_JumpIfInventory(\"PowerTempPitProtect\",1,\"Pickup2\")\nTNT1 A 0 A_ChangeFlag(\"NOBLOCKMONST\",0)\nTNT1 A 0 A_SpawnItemEx(\"TempPitProtect_H\")\nPickup2:\nTNT1 A 0 A_GiveInventory(\"PowerTempPitProtect\",1)\nstop\nNo:\nTNT1 A 0\nstop\n}\n}\n\nactor PowerTempPitProtect : Powerup\n{\nPowerup.Duration 35\n}\n\nactor TempPitProtect_H : BasicHelper\n{\nStates\n{\nSpawn:\nTNT1 A 0\nSpawn2:\nTNT1 A 1\nTNT1 A 0 A_JumpIfInTargetInventory(\"PowerTempPitProtect\",1,\"Spawn2\")\nTNT1 A 0 A_GiveToTarget(\"TempPitProtectEnd_P\",1)\nstop\n}\n}\n\nactor TempPitProtectEnd_P : CustomInventory\n{\nStates\n{\nPickup:\nTNT1 A 0 A_JumpIfInventory(\"IsBot\",1,\"Pickup2\")\nTNT1 A 0 A_ChangeFlag(\"NOBLOCKMONST\",1)\nPickup2:\nTNT1 A 0\nstop\n}\n}"
},
{
"source": "pk3",
"name": "actors/ClassArmorBase.txt",
"contents": "actor BasePowerDamage : PowerDamage\n{//Make sure damage increases don't increase these\nPowerup.Duration 0x7FFFFFFD\ndamagefactor \"Normal\", 1.0\ndamagefactor \"MagicCardBF\", 1.0\ndamagefactor \"DynaTag\", 1.0\n}\n\nactor BasePowerWeak : PowerProtection\n{//Make sure taking more damage doesn't increase these\nPowerup.Duration 0x7FFFFFFD\ndamagefactor \"Normal\", 1.0\ndamagefactor \"GrenadeSD\", 1.0\n}\n\nactor BasePowerPro : PowerProtection\n{//Make sure damage reduction doesn't reduce these\nPowerup.Duration 0x7FFFFFFD\ndamagefactor \"Normal\", 1.0\ndamagefactor \"MagicCardBF\", 1.0\ndamagefactor \"DynaTag\", 1.0\ndamagefactor \"Crush\", 1.0\n\ndamagefactor \"TimeStop\", 1.0\ndamagefactor \"BrightB\", 1.0\ndamagefactor \"GravityB1\", 1.0\ndamagefactor \"FlameSwordSpark\", 1.0\n}\n\n//Legacy Health Bars,\nactor GlassHealthBar : OnceC{}\nactor LightHealthBar : OnceC{}\nactor SturdyHealthBar : OnceC{}\nactor ToadHealthBar : OnceC{}\nactor HeavyHealthBar : OnceC{}\nactor HardHealthBar : OnceC{}\n\nactor ProtoHealthBar : OnceC{}\nactor MegaHealthBar : OnceC{}\nactor DuoHealthBar : OnceC{}\nactor DocToadHealthBar : OnceC{}\n\nactor MoreArmorClassBase : ClassBase\n{\n\n//damagefactor \"TimeSlow\", 1.0\n//damagefactor \"CentaurShock\", 1.0\ndamagefactor \"FlashStopper\", 1.0\ndamagefactor \"TimeStop\", 1.0\ndamagefactor \"BrightB\", 1.0\ndamagefactor \"GravityB1\", 1.0\n//damagefactor \"WaterCannon\", 1.0\n}\nactor LessArmorClassBase : ClassBase\n{\ndamagefactor \"GrenadeSD\", 1.0\n}\n\n//Armor bases.\n//Have the class inherit from the one that grants proper resistance.\nactor HardClassBase : MoreArmorClassBase\n{\nplayer.startitem \"HardHealthBar\" //startitems actually aren't inherited btw\nplayer.maxhealth 200\nhealth 200\n//damagefactor \"Normal\", 0.5\n//damagefactor \"TimeSlow\", 0.75\n//damagefactor \"CentaurShock\", 0.75\n//damagefactor \"TopSpin\", 0.35\n//damagefactor \"FlameSwordSpark\", 1.0\n}\n\nactor HeavyClassBase : MoreArmorClassBase\n{\nplayer.startitem \"HeavyHealthBar\"\nplayer.maxhealth 185\nhealth 185\n//damagefactor \"Normal\", 0.55\n//damagefactor \"TimeSlow\", 0.775\n//damagefactor \"CentaurShock\", 0.775\n//damagefactor \"TopSpin\", 0.41\n//damagefactor \"FlameSwordSpark\", 1.0\n}\n\nactor ToadClassBase : MoreArmorClassBase\n{\nplayer.startitem \"ToadHealthBar\"\nplayer.maxhealth 155\nhealth 155\n//damagefactor \"Normal\", 0.65\n//damagefactor \"TimeSlow\", 0.825\n//damagefactor \"CentaurShock\", 0.825\n//damagefactor \"TopSpin\", 0.52\n//damagefactor \"FlameSwordSpark\", 1.0\n}\n\nactor DocToadClassBase : MoreArmorClassBase //Really scrounging for names here\n{\nplayer.startitem \"DocToadHealthBar\"\nplayer.maxhealth 135\nhealth 135\n//damagefactor \"Normal\", 0.728\n//damagefactor \"TimeSlow\", 0.864\n//damagefactor \"CentaurShock\", 0.864\n//damagefactor \"TopSpin\", 0.621\n//damagefactor \"FlameSwordSpark\", 1.0\n//damagefactor \"FlameSwordSpark2\", 1.0\n}\n\nactor SturdyClassBase : MoreArmorClassBase\n{\nplayer.startitem \"SturdyHealthBar\"\nplayer.maxhealth 125\nhealth 125\n//damagefactor \"Normal\", 0.8\n//damagefactor \"TimeSlow\", 0.9\n//damagefactor \"CentaurShock\", 0.9\n//damagefactor \"TopSpin\", 0.72\n//damagefactor \"FlameSwordSpark\", 1.0\n//damagefactor \"FlameSwordSpark2\", 1.0\n}\n\nactor DuoClassBase : MoreArmorClassBase\n{\nplayer.startitem \"DuoHealthBar\"\nplayer.maxhealth 115\nhealth 115\n//damagefactor \"Normal\", 0.896\n//damagefactor \"TimeSlow\", 0.948\n//damagefactor \"CentaurShock\", 0.948\n//damagefactor \"TopSpin\", 0.848\n//damagefactor \"FlameSwordSpark\", 1.0\n//damagefactor \"FlameSwordSpark2\", 1.0\n}\n\nactor MegaClassBase : LessArmorClassBase\n{\nplayer.startitem \"MegaHealthBar\"\nplayer.maxhealth 90\nhealth 90\n//damagefactor \"Normal\", 1.12\n}\n\nactor LightClassBase : LessArmorClassBase\n{\nplayer.startitem \"LightHealthBar\"\nplayer.maxhealth 85\nhealth 85\n//damagefactor \"Normal\", 1.2\n}\n\nactor LightClassBase2 : LessArmorClassBase\n{\nplayer.startitem \"LightHealthBar\"\nplayer.maxhealth 110\nhealth 110\n//damagefactor \"Normal\", 1.2\n}\n\nactor LightClassBase3 : LessArmorClassBase\n{\nplayer.startitem \"LightHealthBar\"\nplayer.maxhealth 65\nhealth 65\n//damagefactor \"Normal\", 1.2\n}\n\nactor ProtoClassBase : LessArmorClassBase\n{\nplayer.startitem \"ProtoHealthBar\"\nplayer.maxhealth 75\nhealth 75\n//damagefactor \"Normal\", 1.333\n}\n\nactor GlassClassBase : LessArmorClassBase\n{\nplayer.startitem \"GlassHealthBar\"\nplayer.maxhealth 70\nhealth 70\n//damagefactor \"Normal\", 1.5\n}\n\n//Doc Robot armor changes\nactor DocArmor : BasePowerPro{}\n\nactor MoreDocArmor : DocArmor\n{\ndamagefactor \"TimeStop\", 1.0\ndamagefactor \"BrightB\", 1.0\ndamagefactor \"GravityB1\", 1.0\ndamagefactor \"FlameSwordSpark\", 1.0\ndamagefactor \"FlameSwordSpark2\", 1.0\n}\nactor LessDocArmor : DocArmor\n{\ndamagefactor \"GrenadeSD\", 1.0\n}\n\nactor NormalDocArmor : LessDocArmor\n{\ndamagefactor \"Normal\", 1.00//1.12\n}\n\nactor LightDocArmor : LessDocArmor\n{\ndamagefactor \"Normal\", 1.20//1.333\n}\n\nactor SturdyDocArmor : MoreDocArmor\n{\ndamagefactor \"Normal\", 0.80//0.896\ndamagefactor \"TimeSlow\", 0.9//0.948\ndamagefactor \"CentaurShock\", 0.9//0.948\ndamagefactor \"TopSpin\", 0.72//0.848\n}\n\nactor ToadDocArmor : MoreDocArmor\n{\ndamagefactor \"Normal\", 0.65//0.728\ndamagefactor \"TimeSlow\", 0.825//0.864\ndamagefactor \"CentaurShock\", 0.825//0.864\ndamagefactor \"TopSpin\", 0.52//0.621\n}"
},
{
"source": "pk3",
"name": "actors/ClassBase.txt",
"contents": "actor ClassBase : ClassBase1\n{\nstates\n{\n\nPain.HardKnuckleClass:\n\"----\" H 0 A_PlaySoundEx(\"weapon/hknucklehit\",\"Body\")\n\"----\" H 0 A_SpawnItemEx(\"HardKnuckleHitFX\",0,0,32,0,0,0,0,0)\nGoto Pain+2\n\nPain.KnightBonk:\n\"----\" H 0 A_GiveInventory(\"KnightBonkProtect\",1)\n\"----\" H 0 A_SpawnItemEx(\"PainKnightBonkHit\")\nGoto Pain+2\n\nPain.KnightBonk2:\n\"----\" H 0 ThrustThingZ(0,40,0,1)\n\"----\" H 0 A_SpawnItemEx(\"PainKnightRushHit\")\nGoto Pain+2\n\nPain.KnightReturn:\n\"----\" H 0 A_GiveInventory(\"KnightReturnProtect\")\nGoto Pain+2\n\nDeath.KnightBonk:\n\"----\" H 0 A_SpawnItemEx(\"PainKnightBonkHit\")\nGoto FlingDeath\n\nDeath.KnightBonk2:\n\"----\" H 0 A_SpawnItemEx(\"PainKnightRushHit\")\nGoto FlingDeath\n\nPain.KnightCrushNoisy:\n\"----\" H 0 A_ChangeVelocity(momz*3/4,momy*3/4,momz,CVF_REPLACE)\n\"----\" H 0 A_PlaySoundEx(\"weapon/knightcrushhit\",\"SoundSlot5\")\nGoto Pain+2\nDeath.KnightCrushNoisy:\n\"----\" H 0 A_PlaySoundEx(\"weapon/knightcrushhit\",\"SoundSlot5\")\nGoto Death\n\nPain.DuoWave:\n\"----\" H 0 A_GiveInventory(\"DuoWaveProtect\",1)\n\"----\" H 0 A_JumpIfInventory(\"DuoSlowImpaired\",1,2)\n\"----\" H 0 A_SpawnItemEx(\"ImpairmentHelperDuoSlow\")\n\"----\" H 0 A_JumpIfInventory(\"FlightDisableFlag\",1,4)\n\"----\" H 0 A_ChangeVelocity(momz/4,momy/4,momz,CVF_REPLACE)\n\"----\" H 0 ThrustThingZ(0,56,0,1)\n\"----\" H 0 A_GiveInventory(\"DuoWaveThrustSpeed1\",1)\n\"----\" H 0 A_SpawnItemEx(\"DuoWaveThrustFX1\")\n\"----\" H 0\nGoto Pain+1\nPain.DuoWave2:\n\"----\" H 0 A_GiveInventory(\"DuoWaveProtect\",1)\n\"----\" H 0 A_JumpIfInventory(\"DuoSlowImpaired\",1,2)\n\"----\" H 0 A_SpawnItemEx(\"ImpairmentHelperDuoSlow\")\n\"----\" H 0 A_JumpIfInventory(\"FlightDisableFlag\",1,4)\n\"----\" H 0 A_ChangeVelocity(momz/4,momy/4,momz,CVF_REPLACE)\n\"----\" H 0 ThrustThingZ(0,62,0,1)\n\"----\" H 0 A_GiveInventory(\"DuoWaveThrustSpeed2\",1)\n\"----\" H 0 A_SpawnItemEx(\"DuoWaveThrustFX2\")\n\"----\" H 0\nGoto Pain+1\nPain.DuoWave3:\n\"----\" H 0 A_GiveInventory(\"DuoWaveProtect\",1)\n\"----\" H 0 A_JumpIfInventory(\"DuoSlowImpaired\",1,2)\n\"----\" H 0 A_SpawnItemEx(\"ImpairmentHelperDuoSlow\")\n\"----\" H 0 A_JumpIfInventory(\"FlightDisableFlag\",1,4)\n\"----\" H 0 A_ChangeVelocity(momz/4,momy/4,momz,CVF_REPLACE)\n\"----\" H 0 ThrustThingZ(0,68,0,1)\n\"----\" H 0 A_GiveInventory(\"DuoWaveThrustSpeed3\",1)\n\"----\" H 0 A_SpawnItemEx(\"DuoWaveThrustFX3\")\n\"----\" H 0\nGoto Pain+1\nPain.DuoWave4:\n\"----\" H 0 A_GiveInventory(\"DuoWaveProtect\",1)\n\"----\" H 0 A_JumpIfInventory(\"DuoSlowImpaired\",1,2)\n\"----\" H 0 A_SpawnItemEx(\"ImpairmentHelperDuoSlow\")\n\"----\" H 0 A_JumpIfInventory(\"FlightDisableFlag\",1,4)\n\"----\" H 0 A_ChangeVelocity(momz/4,momy/4,momz,CVF_REPLACE)\n\"----\" H 0 ThrustThingZ(0,74,0,1)\n\"----\" H 0 A_GiveInventory(\"DuoWaveThrustSpeed4\",1)\n\"----\" H 0 A_SpawnItemEx(\"DuoWaveThrustFX4\")\n\"----\" H 0\nGoto Pain+1\nPain.DuoWave5:\n\"----\" H 0 A_GiveInventory(\"DuoWaveProtect\",1)\n\"----\" H 0 A_JumpIfInventory(\"DuoSlowImpaired\",1,2)\n\"----\" H 0 A_SpawnItemEx(\"ImpairmentHelperDuoSlow\")\n\"----\" H 0 A_JumpIfInventory(\"FlightDisableFlag\",1,4)\n\"----\" H 0 A_ChangeVelocity(momz/4,momy/4,momz,CVF_REPLACE)\n\"----\" H 0 ThrustThingZ(0,80,0,1)\n\"----\" H 0 A_GiveInventory(\"DuoWaveThrustSpeed5\",1)\n\"----\" H 0 A_SpawnItemEx(\"DuoWaveThrustFX5\")\n\"----\" H 0\nGoto Pain+1\n\nPain.ERTornadoHold:\n\"----\" H 0 ThrustThingZ(0,300,0,0)\nGoto Pain+2\n\nPain.AcidGas:\n\"----\" H 0 A_GiveInventory(\"AcidGasProtection\",1)\ngoto Pain+2\nPain.AcidmanBoss:\n\"----\" H 0 A_JumpIfInventory(\"AcidBurnImpaired\",1,2)\n\"----\" H 0 A_SpawnItemEx(\"ImpairmentHelperAcidBurn\")\n\"----\" H 0\ngoto Pain+1\n\nPain.FlashBombB1:\n\"----\" H 0 A_SpawnItemEx(\"PainFlashBombB1Hit\")\ngoto Pain.FlashBomb\nPain.FlashBombB2:\n\"----\" H 0 A_SpawnItemEx(\"PainFlashBombB2Hit\")\ngoto Pain.FlashBomb\nDeath.FlashBombB1:\n\"----\" H 0 A_GiveToTarget(\"THATFELTGOODAMMO\",2)\nGoto Death\nDeath.FlashBombB2:\n\"----\" H 0 A_GiveToTarget(\"THATFELTGOODAMMO\",6)\nGoto Death\n\nPain.LightRyu1:\n\"----\" H 0 A_SpawnItemEx(\"PainLightRyu1Hit\")\nGoto Pain+2\nPain.LightRyu4:\n\"----\" H 0 A_SpawnItemEx(\"PainLightRyu4Hit\")\nGoto Pain+1\nDeath.LightRyu1:\n\"----\" H 0 A_GiveToTarget(\"SuperComboGauge\",1)\ngoto Death\nDeath.LightRyu4:\n\"----\" H 0 A_GiveToTarget(\"SuperComboGauge\",4)\ngoto Death\n\nPain.LightRyuShoryu:\n\"----\" H 0 A_JumpIfInventory(\"FlightDisableFlag\",1,2)\n\"----\" H 0 ThrustThingZ(0,56,0,0)\n\"----\" H 0\nGoto Pain+2//Pain.LightRyu1\nPain.LightRyuShoryuNew:\n\"----\" H 0 A_GiveToTarget(\"SuperComboGauge\",1)\n\"----\" H 0 A_GiveInventory(\"LightRyuShoryuProtect\",1)\n\"----\" H 0 A_JumpIfInventory(\"FlightDisableFlag\",1,2)\n\"----\" H 0 ThrustThingZ(0,56,0,0)\n\"----\" H 0\nGoto Pain+2\nDeath.LightRyuShoryu:\nDeath.LightRyuShoryuNew:\n\"----\" H 0 ThrustThingZ(0,90,0,0)\n\"----\" H 0 A_SpawnItemEx(\"DeathLightRyuShoryuHit\",1)\nGoto FlingDeath\n\nPain.LightRyuShinShoryu:\n\"----\" H 0 A_TakeInventory(\"LightRyuStopProtect\",1)\n\"----\" H 0 ThrustThingZ(0,200,0,0)\nGoto Pain+2\nDeath.LightRyuShinShoryu:\n\"----\" H 0 ThrustThingZ(0,200,0,0)\n\"----\" H 0 A_SpawnItemEx(\"DeathLightRyuShinShoryuHit\",1)\nGoto FlingDeath\n\nPain.MercSploosh:\n\"----\" H 0 A_GiveInventory(\"MercBlobProtect\",1)\nGoto Pain+2\n\nPain.SolarVent:\n\"----\" H 0 ThrustThingZ(0,12,0,0)\n\"----\" H 0 A_SpawnItemEx(\"SolarVentHit\")\n\"----\" H 0 A_GiveInventory(\"TempPitProtect\")\nGoto Pain+2\n\nPain.BlastBombBig:\n\"----\" H 0 A_GiveInventory(\"PainScaleVelocityFlashBombC\",1)\n\"----\" H 0 A_GiveInventory(\"ChainBlastActivator\")\ngoto Pain+1\n\nPain.SparkChaserWep:\nPLY1 H 0 A_GiveInventory(\"SparkChaserTagged\", 1)\ngoto Pain+1\n\nPain.WaterCannonC:\n\"----\" H 0 A_GiveInventory(\"WaterCannonProtect\",1)\nGoto Pain\n\nPain.MegaBall:\n\"----\" H 0 A_GiveInventory(\"MegaBallProtect\",1)\nGoto Pain+2\nPain.MegaCutBall:\n\"----\" H 0 A_GiveInventory(\"CutBallProtect\",1)\nGoto Pain+2\nPain.MegaGutsBall:\n\"----\" H 0 A_GiveInventory(\"GutsBallProtect\",1)\nGoto Pain+2\n/*Pain.MegaBombBall:\n\"----\" H 0 A_GiveInventory(\"BombBallProtect\",1)\nGoto Pain+2*/\nPain.MegaFireBall:\n\"----\" H 0 A_GiveInventory(\"FireBallProtect\",1)\nGoto Pain+2\nPain.MegaElecBall:\n\"----\" H 0 A_GiveInventory(\"ElecBallProtect\",1)\nGoto Pain+2\nPain.MegaOilBall:\n\"----\" H 0 A_GiveInventory(\"OilBallProtect\",1)\nGoto Pain+2\n\nPain.JunkPunch2:\n\"----\" H 0 A_SpawnItemEx(\"PainPharaohPunchHit\",1)\ngoto Pain\n\nPain.TimeSlow:\nPain.MegaTimeBall:\n\"----\" H 0 A_GiveInventory(\"Slowed\",1)\n\"----\" H 0 A_GiveInventory(\"TimeBallProtect\",1)\nGoto Pain+2\n\nPain.HornetHoney:\n\"----\" H 0 A_JumpIfInventory(\"PowerIceHornet\",1,2)\n\"----\" H 0 A_GiveInventory(\"HornetmanSlowPickup\",1)\n\"----\" H 0\nGoto Pain+2\nPain.HornetHoney1:\n\"----\" H 0 A_JumpIfInventory(\"PowerIceHornet1\",1,2)\n\"----\" H 0 A_GiveInventory(\"HornetmanSlowPickup\",1)\n\"----\" H 0\nGoto Pain+2\nPain.HornetHoney2:\n\"----\" H 0 A_JumpIfInventory(\"PowerIceHornet2\",1,2)\n\"----\" H 0 A_GiveInventory(\"HornetmanSlowPickup\",1)\n\"----\" H 0\nGoto Pain+2\nPain.HornetHoney3:\n\"----\" H 0 A_JumpIfInventory(\"PowerIceHornet3\",1,2)\n\"----\" H 0 A_GiveInventory(\"HornetmanSlowPickup\",1)\n\"----\" H 0\nGoto Pain+2\n\nPain.MegaIceBall:\n\"----\" H 0 A_GiveInventory(\"PainStopC\",1)\n\"----\" H 0 A_GiveInventory(\"IceBallProtect\",1)\nPain.IceSlashSlow:\nPain.IceSlashSlowL:\nPain.IceSlashBlock:\n\"----\" H 0 A_GiveInventory(\"IcemanSlowPickup\",1)\nGoto Pain+2\n\nPain.SolarMortarMain:\n\"----\" H 0 ThrustThingZ(0,65,0,1)\nPain.SolarMortarWave:\n\"----\" H 0 A_GiveInventory(\"SolarMortarProtect\",1)\nGoto Pain\n\nPain.SolarHead:\n\"----\" H 0 A_GiveInventory(\"SolarHeadProtect\",1)\nGoto Pain\n\nPain.ShadowBladeCBM:\n\"----\" H 0 A_GiveInventory(\"ShadowBladeCBMProtect\",1)\nGoto Pain+2\n\nPain.JunkM_Cube:\n\"----\" H 0 A_GiveInventory(\"JunkM_CubeProtect\",1)\nGoto Pain\n\nPain.StoneSpiralP:\n\"----\" H 0 A_GiveInventory(\"StoneSpiralProtect\",1)\nGoto Pain+2\n\nPain.TorchHit1:\n\"----\" H 0 A_SpawnItemEx(\"PainTorchHit1\")\nGoto Pain+2\n\nPain.TorchHit2:\n\"----\" H 0 A_SpawnItemEx(\"PainTorchHit2\")\nGoto Pain+2\n\nPain.TorchHit25:\n\"----\" H 0 A_SpawnItemEx(\"PainTorchHit25\")\n\"----\" H 0 A_SpawnItemEx(\"PainDuoRamHit\")\nGoto Pain+2\n\nPain.TorchHit3:\n\"----\" H 0 A_SpawnItemEx(\"PainTorchHit3\")\nGoto Pain+2\n\nPain.TorchHit35:\n\"----\" H 0 A_SpawnItemEx(\"PainTorchHit35\")\nGoto Pain+2\n\nDeath.TorchHit1:\nDeath.TorchHit2:\nDeath.TorchHit3:\nDeath.TorchHit35:\n\"----\" H 1 A_GiveToTarget(\"TorchjutsuAmmo\",100)\nGoto Death\n\nDeath.TorchHit25:\n\"----\" H 1 A_GiveToTarget(\"TorchjutsuAmmo\",100)\n\"----\" H 0 A_GiveInventory(\"FlingDeathFlag\",1)\nGoto Death\n\nPain.TerraMelee:\n\"----\" H 0\n\"----\" H 0 A_SpawnItemEx(\"PainTerraMeleeHit\",1)\n\"----\" H 0 ThrustThingZ(0,2,0,0)\n\"----\" H 0 A_PlaySoundEx(\"weapon/terramelee\", \"SoundSlot7\", 0)\nGoto Pain.SparkShock\n\nDeath.TerraMelee:\n\"----\" H 0 ThrustThingZ(0,120,0,0)\n\"----\" H 0 A_PlaySoundEx(\"weapon/terrameleeko\", \"SoundSlot7\", 0)\n\"----\" H 0 A_SpawnItemEx(\"DeathConcreteShoulderHit\",1)\ngoto FlingDeath\n\nPain.SparkChaserTerra:\n\"----\" H 0 A_GiveInventory(\"SparkChaserTerraProtectC\",1)\nGoto Pain+2\n\nPain.BusterC:\n\"----\" H 0\n\"----\" H 0\nGoto Pain+1\n\nPain.FlameSwordB:\n\"----\" H 0 A_PlaySound(\"weapon/flameswordhit\",\"Body\")\n\"----\" H 0 A_GiveInventory(\"FlameSwordBProtect\",1)\n\"----\" HH 0 A_SpawnItemEx(\"FlameSwordBitB\",0,0,0,random(-10,10),random(-10,10),random(10,15),random(0,359))\nGoto Pain+2\n\nPain.FlameSwordCBM1:\n\"----\" H 0 A_PlaySound(\"weapon/flameswordhit\",\"Body\")\n\"----\" H 0 A_GiveInventory(\"FlameSwordCBM1Protect\",1)\n\"----\" HH 0 A_SpawnItemEx(\"FlameSwordBitB\",0,0,0,random(-10,10),random(-10,10),random(10,15),random(0,359))\nGoto Pain+2\n\nPain.FlameSwordCBM2:\n\"----\" H 0 A_PlaySound(\"weapon/flameswordhit\",\"Body\")\n\"----\" H 0 A_GiveInventory(\"FlameSwordCBM2Protect\",1)\n\"----\" HH 0 A_SpawnItemEx(\"FlameSwordBitB\",0,0,0,random(-10,10),random(-10,10),random(10,15),random(0,359))\nGoto Pain+2\n\nPain.FlameSwordCBM3:\n\"----\" H 0 A_PlaySound(\"weapon/flameswordhit\",\"Body\")\n\"----\" H 0 A_GiveInventory(\"FlameSwordCBM3Protect\",1)\n\"----\" HH 0 A_SpawnItemEx(\"FlameSwordBitB\",0,0,0,random(-10,10),random(-10,10),random(10,15),random(0,359))\nGoto Pain+2\n\npain.DuoGrabExplosion5:\n\"----\" H 0 A_SpawnItemEx(\"PainDuoExplodeHit5\")\n\"----\" H 0 A_GiveInventory(\"DuoCleanserGrabberSpd0\")\n//\"----\" H 0 ThrustThingZ(0,40,0,0)\ngoto Pain+2\n\npain.DuoGrabExplosion4:\n\"----\" H 0 A_SpawnItemEx(\"PainDuoExplodeHit4\")\n\"----\" H 0 A_GiveInventory(\"DuoCleanserGrabberSpd0\")\n//\"----\" H 0 ThrustThingZ(0,40,0,0)\ngoto Pain+2\n\npain.DuoGrabExplosion3:\n\"----\" H 0 A_SpawnItemEx(\"PainDuoExplodeHit3\")\n\"----\" H 0 A_GiveInventory(\"DuoCleanserGrabberSpd0\")\n//\"----\" H 0 ThrustThingZ(0,40,0,0)\ngoto Pain+2\n\npain.DuoGrabExplosion2:\n\"----\" H 0 A_SpawnItemEx(\"PainDuoExplodeHit2\")\n\"----\" H 0 A_GiveInventory(\"DuoCleanserGrabberSpd0\")\n//\"----\" H 0 ThrustThingZ(0,40,0,0)\ngoto Pain+2\n\npain.DuoGrabExplosion1:\n\"----\" H 0 A_SpawnItemEx(\"PainDuoExplodeHit1\")\n\"----\" H 0 A_GiveInventory(\"DuoCleanserGrabberSpd0\")\n//\"----\" H 0 ThrustThingZ(0,40,0,0)\ngoto Pain+2\n\nPain.ChargeBusterC:\n\"----\" H 0 A_GiveInventory(\"PainScaleVelocityFlashBombC\",1)\nGoto Pain+1\n\nPain.HyperBombRecoil:\n\"----\" H 0 A_SpawnItemEx(\"PainHyperBombRecoil\",1)\nGoto Pain\n\nPain.SparkSaw:\n//\"----\" H 0 A_ScaleVelocity(0.9)\n\"----\" H 0 A_GiveToTarget(\"Health\",5)\n\"----\" H 0 A_GiveInventory(\"ShockChainsawProtect\",1)\nGoto Pain\n\nPain.SparkShot1:\n\"----\" H 0 A_Stop\n\"----\" H 0 A_SpawnItemEx(\"ShockFX\",4,0,32)\n\"----\" H 0 A_GiveInventory(\"Shocked\",1)\nGoto Pain\n\nPain.SparkShot2:\n\"----\" H 0 A_Stop\n\"----\" H 0 A_SpawnItemEx(\"ShockFX\",4,0,32)\n\"----\" H 0 A_GiveInventory(\"Shocked_18\",1)\nGoto Pain+1\n\nPain.SparkShot3:\n\"----\" H 0 A_Stop\n\"----\" H 0 A_SpawnItemEx(\"ShockFX\",4,0,32)\n\"----\" H 0 A_GiveInventory(\"ShockProtect\",1)\n\"----\" H 0 A_GiveInventory(\"Shocked\",1)\nGoto Pain+1\n\nPain.SparkSuplex:\n\"----\" H 0 A_GiveInventory(\"SparkReloadProtect\")\nGoto Pain+2\n\nPain.MaestroFire:\n\"----\" H 0 A_GiveInventory(\"MaestroFireProtect\",1)\nGoto Pain+2\n\nPain.FireSpin:\n\"----\" H 0 A_GiveInventory(\"FireSpinProtect\",1)\nGoto Pain+2\n\nPain.MaestroFireGuts:\n\"----\" H 0 A_GiveInventory(\"MaestroFireProtect2\",1)\n\"----\" H 0 A_JumpIfInventory(\"FireGutsCheck\",1,\"NoGuts\")\n\"----\" H 0 A_GiveInventory(\"FireGutsCheck\",1)\n\"----\" H 0 A_SpawnItemEx(\"PainMaestroAfterburn\",0,0,0,0,0,0,0,1)\nGoto Pain+2\nNoGuts:\n\"----\" H 0\nGoto Pain+2\n\nPain.MaestroShock:\n\"----\" H 0 A_Stop\n\"----\" H 0 A_SpawnItemEx(\"ShockFX\",4,0,32)\n\"----\" H 0 A_GiveInventory(\"Shocked\",1)\nGoto Pain+1\n\nPain.MaestroShock2:\n\"----\" H 0 A_Stop\n\"----\" H 0 A_SpawnItemEx(\"ShockFX\",4,0,32)\n\"----\" H 0 A_GiveInventory(\"Shocked_18\",1)\nGoto Pain+1\n\nPain.MaestroWood:\n\"----\" H 0 A_GiveInventory(\"MaestroWoodProtect\",1)\n\"----\" H 0 ThrustThingZ(0,100,0,0)\nGoto Pain\n\nPain.MaestroAquaGuts:\n\"----\" H 0 A_SpawnItemEx(\"PainMaestroAquaGuts\",1)\nGoto Pain\n\nPain.SparkShotAlt:\n\"----\" H 0 A_GiveInventory(\"PowerSparkSlow\",1)\nGoto Pain+1\n\nPain.RaThor:\n\"----\" H 0 A_GiveInventory(\"RaThorHitItem\",1)\nGoto Pain+2\nPain.RaThorSlam:\n\"----\" H 0 A_SpawnItemEx(\"RaThorSlamFloorChecker\",0,0,0,0,0,0,0,1)\nGoto Pain.RaThor\nPain.RaThorWave:\n\"----\" H 0 A_GiveInventory(\"RaThorWaveProtect\",1)\nGoto Pain.RaThor\nPain.RaThorSpirit:\n\"----\" H 0 A_GiveInventory(\"RaThorSpiritProtect\",1)\nGoto Pain.RaThor\n\nPain.RaThorThrow:\n\"----\" H 0 A_GiveInventory(\"Shocked_18\",1)\nGoto Pain.RaThor\nDeath.RaThorThrow:\n\"----\" H 0 A_GiveInventory(\"RaThorHitItem\",1)\ngoto FlingDeath\n\nDeath.RaThorSlam:\n\"----\" H 0 A_PlaySound(\"weapon/RaThorSlam\",5,1.0)\nDeath.RaThor:\nDeath.RaThorSpirit:\nDeath.RaThorWave:\n\"----\" H 0 A_GiveInventory(\"RaThorHitItem\",1)\ngoto Death\n\nPain.JewelSatelliteC:\n\"----\" H 0 A_GiveInventory(\"JewelSatelliteProtect\")\nGoto Pain.JewelSatelliteB\n\nPain.AutoBoltX:\n\"----\" H 0 A_GiveInventory(\"AutoBoltXProtect\",1)\nGoto Pain+1\n\nPain.AutoAmmoShotS:\nPain.AutoAmmoShotL:\n\"----\" H 0\nGoto Pain+1\n\nPain.ArchOfWool:\n\"----\" H 0 A_GiveInventory(\"ArchWoolProtect\",1)\ngoto Pain+2\nPain.ArchOfWoolGround:\n\"----\" H 0 A_GiveInventory(\"ArchWoolGroundProtect\",1)\ngoto Pain+2\n\nPain.StrikeBall:\n\"----\" H 0 A_SpawnItemEx(\"PainStrikeBallHit\",1)\ngoto Pain+2\n\nDeath.StrikeBall:\n\"----\" H 0 ThrustThingZ(0,120,0,0)\n\"----\" H 0 A_PlaySound(\"weapon/reboundbunt\",5,1.0)\n\"----\" H 0 A_SpawnItemEx(\"PainStrikeBallHit\",1)\n\"----\" H 0 A_SpawnItemEx(\"DeathConcreteShoulderHit\",1)\ngoto FlingDeath\n\nPain.StrikeBall2:\n\"----\" H 0 A_PlaySound(\"weapon/reboundbunt\",5,1.0)\n\"----\" H 0 ThrustThingZ(0,30,0,0)\n\"----\" H 0 A_SpawnItemEx(\"PainStrikeBallHit2\",1)\ngoto Pain+2\n\nPain.MaxMetal:\n\"----\" H 0 A_GiveInventory(\"MetalRipperProtection\",1)\nGoto Pain\n\nDeath.StrikeBall2:\n\"----\" H 0 ThrustThingZ(0,120,0,0)\n\"----\" H 0 A_PlaySound(\"weapon/reboundbunt\",5,1.0)\n\"----\" H 0 A_PlaySound(\"weapon/reboundcheer\",6,1.0)\n\"----\" H 0 A_SpawnItemEx(\"DeathConcreteShoulderHit\",1)\ngoto FlingDeath\n\nPain.PumpTheHandle:\n\"----\" H 0 A_SpawnItemEx(\"PainConcreteShoulderHit\",1)\ngoto Pain+2\n\nPain.SaturnWhiteRing1:\n\"----\" H 0 A_GiveInventory(\"SaturnProtect1\",1)\ngoto Pain\n\nPain.SaturnWhiteRing2:\n\"----\" H 0 A_GiveInventory(\"SaturnProtect1\",1)\ngoto Pain\n\nPain.SaturnShot:\n//\"----\" H 0 A_GiveInventory(\"SaturnShotProtect\",1)\n\"----\" H 0 A_SpawnItemEx(\"PainConcreteShoulderHit\",1)\ngoto Pain\n\nDeath.SaturnShot:\nDeath.SaturnWhiteRing1:\nDeath.SaturnWhiteRing2:\n\"----\" H 0 ThrustThingZ(0,120,0,0)\n\"----\" H 0 A_SpawnItemEx(\"DeathConcreteShoulderHit\",1)\ngoto FlingDeath\n\n//Pain.ThunderClawHit:\n//\"----\" H 0 A_PlaySoundEx(\"weapon/thunderclawhit\",\"SoundSlot5\")\n//Goto Pain.ThunderClaw\n//Death.ThunderClawHit:\n//\"----\" H 0 A_PlaySoundEx(\"weapon/thunderclawhit\",\"SoundSlot5\")\n//Goto Death\n\n//-------------- [BG] ---------------\nPain.FusemanMeleeX:\n\"----\" H 0 A_GiveInventory(\"FusemanMeleeProtect\")\ngoto Pain+2\n\nPain.FusemanDash:\n\"----\" H 0 A_GiveInventory(\"FusemanDashP\")\ngoto Pain+2\n\nPain.FusemanDash2:\n\"----\" H 0 A_GiveInventory(\"FusemanDashP2\")\ngoto Pain+2\n\nPain.FuserZapper:\n\"----\" H 0 A_GiveInventory(\"FusemanZapperP\")\ngoto Pain+2\n\nPain.FuseTeleporter:\n\"----\" H 0 A_GiveInventory(\"FuseTeleporterP\")\ngoto Pain+2\n\npain.HeroProtoShot:\n\"----\" H 0\ngoto Pain+2\npain.HeroProtoShot2:\n\"----\" H 0 A_GiveInventory(\"HeroProtoShot2Protection\")\ngoto Pain+2\n\nPain.DuoCleanserGrab:\n\"####\" H 0 A_SpawnItemEx(\"PainDuoGrabHit\")\n\"####\" H 0 A_GiveInventory(\"DuoCleanserGrabberProt\",1)\n\"####\" H 0 A_GiveInventory(\"DuoCleanserGrabberSpd0\",1)\n//\"####\" H 0 A_GiveInventory(\"TimeStoppedTF\",1)\n\"####\" HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH 1 A_Stop\nGoto Pain+2\n\npain.DuoGrabExplosion:\n\"----\" H 0 A_SpawnItemEx(\"PainDuoExplodeHit\")\n\"----\" H 0 A_GiveInventory(\"DuoCleanserGrabberSpd0\")\n//\"----\" H 0 ThrustThingZ(0,40,0,0)\ngoto Pain+2\n\nPain.ClassPainLess2Ice:\n\"----\" H 0\nGoto Pain+2\n\n//Flings\npain.ProtomanHeroShieldBash:\n\"----\" H 0 ThrustThingZ(0,12,0,0)\n\"----\" H 0 A_SpawnItem(\"PainProtoShieldBashHit\")\n\"----\" H 0 A_GiveInventory(\"ProtomanHeroShieldBasherProtection\")\ngoto Pain+2\n\nPain.KnightRush:\n\"----\" H 0 A_SpawnItemEx(\"PainKnightRushHit\")\nGoto Pain.SparkShock\n\ndeath.ProtomanHeroShieldBash:\n\"----\" H 0 ThrustThingZ(0,60,0,0)\n\"----\" H 0 A_SpawnItem(\"PainProtoShieldBashHit\")\n\"----\" H 0 A_GiveInventory(\"ProtomanHeroShieldBasherProtection\")\nGoto FlingDeath\n\npain.BassKickC:\n\"----\" H 0 ThrustThingZ(0,18,0,0)\n\"----\" H 0 A_SpawnItem(\"PainBassKickHit\")\n\"----\" H 0 A_GiveInventory(\"BassKickCProtect\")\ngoto Pain+2\ndeath.BassKickC:\n\"----\" H 0 ThrustThingZ(0,180,0,0)\n\"----\" H 0 A_SpawnItem(\"PainBassKickHit\")\n\"----\" H 0 A_GiveInventory(\"BassKickCProtect\")\nGoto FlingDeath\n\npain.BassKickEx:\n\"----\" H 0 ThrustThingZ(0,22,0,0)\n\"----\" H 0 A_SpawnItem(\"PainBassKickHitEx\")\n\"----\" H 0 A_GiveInventory(\"BassKickCProtect\")\ngoto Pain+2\n\n//Give on-hit\nPain.GrabBusterCopywep:\n\"----\" H 0 A_SpawnItemEx(\"PainGrabBusterHit\")\nGoto Pain+1\nDeath.GrabBusterCopywep:\n\"----\" H 0 A_SpawnItemEx(\"GrabBusterHealthChaser\")\ngoto Death\n\n// -------------------------------------------------\n\nPain.WheelCutter:\n\"----\" H 0 A_GiveInventory(\"WheelCutterProtect\", 1)\ngoto pain+1\nPain.ChillSpike:\nPLY1 H 0 A_GiveInventory(\"ChillFreeze\", 1)\ngoto Pain+1\nPain.WheelCutter:\n\"----\" H 0 A_GiveInventory(\"WheelCutterProtect\", 1)\ngoto pain+1\n\n//==================\n//All of the painstates below are copied from cbm\n//------------------\n//==================\n//MM2\nPain.CrashBomb:\n\"----\" H 0 A_ScaleVelocity(0.6)\nGoto Pain+2\n\n//MM5\nPain.GravitySmackUpNoSlam:\n\"----\" H 0 HealThing(1)\n//\"----\" H 0 A_GiveInventory(\"GmanSmackU_DelayF\",1)\n\"----\" H 0 A_JumpIfInventory(\"GmanSmackD_DelayF\",1,4)\n\"----\" H 0 A_JumpIfInventory(\"FlightDisableFlag\",1,2)\n\"----\" H 0 ThrustThingZ(0,70,0,0)\n\"----\" H 0\ngoto Pain+2\n\"----\" H 0 A_TakeInventory(\"GmanSmackD_DelayF\",1)\n\"----\" H 0 //A_JumpIfInventory(\"FlightDisableFlag\",1,2)\n\"----\" H 0 ThrustThingZ(0,105,0,0)\n\"----\" H 0\nGoto Pain+2\n\n//MM8\nPain.TenguTornadoHeld:\n\"----\" H 0 A_JumpIfInventory(\"TenguTornadoHeldProtect\",1,3)\n\"----\" H 0 A_GiveInventory(\"TenguTornadoHeldProtect\",1)\n\"----\" H 0 A_SpawnItemEx(\"TenguTornadoHeld_H\")\n\"----\" H 0\ngoto Pain+2\n\n//MM10\nPain.PumpHandle:\n\"----\" H 0\nGoto Pain+1\n\nPain.PumpShield:\n\"----\" H 0 A_GiveInventory(\"PumpShieldProtect\",1)\nGoto Pain+2\n\nPain.WaterShielder:\n\"----\" H 0 A_GiveInventory(\"WaterShielderProtect\",1)\nGoto Pain+2\n\nPain.CommandoBombWave:\n\"----\" H 0 A_GiveInventory(\"CommandoBombWaveProtect\",1)\nGoto Pain+2\n\nPain.CommandoBomb:\n\"----\" H 0\ngoto Pain\n\nPain.CommandoCrush_p:\n\"----\" H 0 A_GiveInventory(\"CommandoCrushProtect\",1)\nGoto Pain+2\n\n//MMV\nPain.SaltWater:\n\"----\" H 0\ngoto Pain\n\nPain.PhotonMissileStart:\n\"----\" H 0\ngoto Pain\n\nPain.PhotonMissile:\n\"----\" H 0 A_GiveInventory(\"PhotonMissileProtect\",1)\nGoto Pain+2\n\nPain.ElectricShockBeam:\n\"----\" H 0 A_GiveInventory(\"ElectricShockBeamProtect\",1)\nGoto Pain+2\n\nPain.SlashClaw:\nPain.PlutoClaw:\n\"----\" H 0 A_PlaySoundEx(\"weapon/slashclawhit\",\"SoundSlot5\")\nGoto Pain\n\nPain.BreakDash:\n\"----\" H 0 A_GiveInventory(\"BreakDashProtect\",1)\nGoto Pain+2\n\nPain.BreakDashP:\n\"----\" H 0 A_GiveInventory(\"BreakDashPProtect\",1)\nGoto Pain+2\n\nPain.NeptuneSaltStomp:\n\"----\" H 0 A_GiveInventory(\"NeptuneSaltStompProtect\",1)\nGoto Pain+2\n\nPain.NeptuneLeap:\n\"----\" H 0 A_SpawnItemEx(\"PainNeptuneLeapHit\")\n\"----\" H 0 A_GiveInventory(\"NeptuneLeapProtect\",1)\nGoto Pain+2\nDeath.NeptuneLeap:\n\"----\" H 0 A_GiveToTarget(\"NeptuneLeap_Pickup\",1)\ngoto Death\n\nPain.RemoteMineB:\n\"----\" H 0 A_GiveInventory(\"RemoteMineBProtect\",1)\nGoto Pain+2\n\nPain.RemoteMineB2:\n\"----\" H 0\nGoto Pain+2\n\n}\n}"
},
{
"source": "pk3",
"name": "actors/ClassBase0.txt",
"contents": "///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n// JaxOf7's moar amazing class bases. //\n///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\nactor ClassBase0 : PlayerPawn //All Classes inherit from this in order to make pain states more manageable. To make a new class, refer to GUIDE.txt\n{\nplayer.displayname \"Copy Robot\"\nplayer.damagescreencolor \"yellow\"\nplayer.maxhealth 100\nplayer.forwardmove 0.8, 0.8\nplayer.sidemove 0.78, 0.78\nplayer.jumpz 10\nbloodtype \"MegamanBlood\"\n//+NOSKIN\n-SOLID//\n+NOGRAVITY//\n+NOBLOOD\n+DONTBLAST\n+NODAMAGETHRUST\n+QUICKTORETALIATE\nplayer.colorrange 0 0\n//Player.GruntSpeed 12.0\nmass 99999\n//damagefactor \"spawntelefrag\", 0.0\ndamagefactor \"Dummy\", 0.0\ngravity 0.8\nscale 2.5\nSpecies \"Megaman\"\nPlayer.MaxSkinSizeFactor 0, 0\n\nvar int user_wepangle;\nvar int user_weppitch;\nvar int user_wepangle2;//Dynamo\n\nvar int user_wepaimlimit;//SpectrumMystery\n\nStates\n{\nSpawn:\n\"----\" A 0\n\"----\" B 1\n\"----\" A 1\nGoto Spawn+2\nSee:\n\"----\" BCDE 5\nGoto Spawn\nMissile:\n\"----\" F 5\n\"----\" G 4\ngoto Spawn\n\nPain.BotSight:\n\"----\" B 5 HealThing(1)\nGoto Spawn+2\n\n//No Hitstun/Suffer Recoil\nPain.ProtoBuster:Pain.Buster:Pain.BassBuster:Pain.RockKick:Pain.RollCleanse:\nPain.BreakShot:Pain.CursorTag:Pain.BreakSnipe:Pain.BreakRail:\nPain.TrebleSentry:Pain.Treble:Pain.TrebleBoost:\nPain.OilSlider:\nPain.QuickBoomerang:Pain.Clash:\nPain.NeedleCannonB:Pain.MagnetMissile:\nPain.DiveMissile:\nPain.ChargeKick:Pain.StarCrash:Pain.CrystalEyeBitB:Pain.NapalmBombB:Pain.DarkBuster:\nPain.YamatoSpear:Pain.CentaurFlash:Pain.PlantTrapper:\nPain.WildCoil:Pain.FreezeCracker:Pain.JunkShot:Pain.ScorchWheel:\nPain.TornadoHold:\nPain.CopyVision:Pain.SpreadDrillB4:\nPain.RevolverBuster:\nPain.PumpHandle:\nPain.MegaWaterS:Pain.HyperStormH:Pain.HSHFire:\nPain.ScrewCrusher:Pain.SakuDrill:\nPain.GrabBusterB:\nPain.Misc:Pain.DarkMan:Pain.Gamma:\nPain.ClassPainLess:\n\"----\" H 0\nGoto Pain+1\n\nPain.Punch:Pain.JunkPunch:Pain.ColdPunch:Pain.PharaohPunch:\n\"----\" H 0 A_GiveInventory(\"PunchProtect\")\nGoto Pain+1\n\nPain.ChargeKickB:\n\"----\" H 0 A_SpawnItemEx(\"ChargeHit\")\ngoto Pain+1\n\nPain.GutsPunch:\n\"----\" H 0 A_GiveInventory(\"GutsPunch_PowerProtect\",1)\nGoto Pain+1\n\nPain.OilSliderX:\n\"----\" H 0 A_GiveInventory(\"OilSliderFireProtect\")\nGoto Pain+1\n\nPain.BreakEscape:\n\"----\" H 0 A_GiveInventory(\"BreakEscapeDamagerProtect\",1)\nGoto Pain+1\n\n//No Hitstun painstates/No recoil\nPain.RollWhiff:\nPain.BBA_Mega:\nPain.WaterShield:\nPain.WilyFireB2:\nPain.FireSpin:Pain.Oil:\nPain.AtomicfireB:Pain.LeafShieldB:\nPain.TopSpinB:\nPain.PharaohHold:Pain.RainFlushWeak:\nPain.GravityB2:Pain.StarCrashB:Pain.DarkShield:\nPain.PlantDrain:\nPain.ScorchWheelB:Pain.JunkShield:\nPain.WaterCannon:Pain.ThunderClawT:Pain.FlameSwordSpark:Pain.FlameSwordSpark2:Pain.FlameSwordSpark3:Pain.ODuoPunch:Pain.EvilFlameSword:\nPain.JewelSatelliteB:Pain.BlackHoleBombB:Pain.HornetChaserB:\nPain.TenguBladeB:Pain.WaveBurner:Pain.WaveBurnerUW:Pain.IceWallB:Pain.SpreadDrillB:Pain.TheKing:Pain.PiratePush:\nPain.BubbleBombB:Pain.ThunderWool:\nPain.BusterRodPole:Pain.BusterRodG:\nPain.SakugarneB:\n\nPain.Crush:\nPain.TripleBladeB:\nPain.ClassPainLess2:\n\"----\" H 0\nGoto Pain+2\n\n//Semi scale velocity+Recoil\nPain.ChargeBuster:\nPain.FlashBomb:\nPain.RemoteMine:Pain.IceWall:Pain.DynamoTendril:\nPain.ClassPainSemi:\n\"----\" H 0 A_GiveInventory(\"PainScaleVelocityFlashBombC\",1)\nGoto Pain+1\n\n//Semi scale velocity+No Recoil\nPain.FlashBombB:\nPain.Darkman2Spark:\nPain.ClassPainSemi2:\n\"----\" H 0 A_GiveInventory(\"PainScaleVelocityFlashBombC\",1)\nGoto Pain+2\n\n///////////////////\n//Sound Based / Power Protects\n///////////////////\nPain.Reggae:\n\"----\" H 0 A_PlaySoundEx(\"item/reggae\", \"SoundSlot7\", 0)\nGoto Pain+2\n\nPain.AtomicFire3:\n\"----\" H 0 A_GiveInventory(\"AtomicOnce\",1)\nGoto Pain\n\nPain.LeafFall:\n\"----\" H 0 A_GiveInventory(\"LeafFallProtect\",1)\nGoto Pain\n\nPain.LeafTrap:\n\"----\" H 0 A_GiveInventory(\"LeafTrapProtect\",1)\nGoto Pain+2\nPain.LeafTrapStop:\n\"----\" H 0 A_GiveInventory(\"LeafTrapStopProtect\",1)\nGoto Pain.NeutralStopShock\n\nPain.TopSpinC:\n\"----\" H 0 A_GiveInventory(\"TopSpinCProtect\",1)\nGoto Pain+2\n\nPain.RingBoomerangB:\n\"----\" H 0 A_GiveInventory(\"RingBoomerangBProtect\",1)\nGoto Pain+2\n\nPain.DiveMine:\n\"----\" H 0 A_GiveInventory(\"DiveMineProtect\",1)\nGoto Pain+1\n\nPain.WaterShielder:\n\"----\" H 0 A_GiveInventory(\"WaterShielderProtect\",1)\nGoto Pain+2\n\nPain.DumbDiveTackle:\n\"----\" H 0 A_GiveToTarget(\"DiveTackleHitFlag\",1)\n\"----\" H 0 HealThing(1)\ngoto Pain+1\n\nPain.DiveSonar:\n\"----\" H 0 A_GiveInventory(\"DiveSonarProtect\",1)\nGoto Pain+2\n\nPain.StoneLeap:\n\"----\" H 0 A_GiveInventory(\"StoneLeapProtect\",1)\nGoto Pain+2\n\nPain.CrystalEyeBitC:\n\"----\" H 0 A_GiveInventory(\"CrystalEyeBitCProtect\",1)\nGoto Pain+2\n\nPain.FlameBlastB:\n\"----\" H 0 A_GiveInventory(\"FlameBlastProtectC\",1)\nGoto Pain\n\nPain.WindGyro:\n\"----\" H 0 A_GiveInventory(\"WindGyroProtect\",1)\nGoto Pain.ClassPainSemi\n\nPain.SlashClaw:\n\"----\" H 0 A_PlaySoundEx(\"weapon/slashclawhit\",\"SoundSlot5\")\nGoto Pain\nPain.SlashClawB:\n\"----\" H 0 A_PlaySoundEx(\"weapon/slashclawhit\",\"SoundSlot5\")\n\"----\" H 0 A_GiveInventory(\"SlashClawBProtect\",1)\nGoto Pain+2\n\nPain.ThunderClawT2:\n\"----\" H 0 A_GiveInventory(\"ThunderClawT2Protect\",1)\nGoto Pain+2\n\nPain.FlameSword:\n\"----\" H 0 A_PlaySoundEx(\"weapon/flamehit\",\"SoundSlot5\")\n\"----\" H 0 A_GiveInventory(\"FlameSwordProtect\",1)\n\"----\" H 0 A_SpawnItemEx(\"FlameSwordBit\",0,0,0,random(-10,10),random(-10,10),random(10,15),random(0,359))\nGoto Pain\n\nPain.FlashBombT:\n\"----\" H 0 A_GiveInventory(\"FlashBombTProtect\",1)\ngoto Pain.FlashbombB\n\nPain.ODuoWave:\n\"----\" H 0 A_GiveInventory(\"ODuoWaveProtect\",1)\nGoto Pain+1\n\nPain.TrioSpectrum:\n\"----\" H 0 A_GiveInventory(\"TrioSpectrumPickup\",1)\nGoto Pain+2\n\nPain.IceWallC:\n\"----\" H 0 A_GiveInventory(\"IceWallCProtect\",1)\n\"----\" H 0 A_GiveInventory(\"IceWallCProtect0\",1)\nGoto Pain+2\n\nPain.SpreadDrillB1:\nPain.SpreadDrill:\nPain.SpreadDrill2:\nPain.SpreadDrill3:\n\"----\" H 0 A_JumpIfInventory(\"SpreadDrillProtectC\",1,2)\n\"----\" H 0 A_PlaySoundEx(\"weapon/spreaddrillhit\",\"SoundSlot5\")\n\"----\" H 0 A_GiveInventory(\"SpreadDrillProtectC\",1)\nGoto Pain+1\n\nPain.RemoteMineB:\n\"----\" H 0 A_GiveInventory(\"RemoteMineBProtect\",1)\nGoto Pain+2\n\nPain.RemoteMineB2:\n\"----\" H 0\nGoto Pain+2\n\nPain.MagicCardBF:\n\"----\" H 0 HealThing(1)\ngoto Pain.FlashbombB\n\nPain.LaserTrident:\n\"----\" H 0 A_GiveInventory(\"LaserTridentProtect\",1)\ngoto Pain+1\nPain.LaserTridentSE:\n\"----\" H 0 A_GiveInventory(\"LaserTridentSEProtect\",1)\ngoto Pain+1\n\nPain.BlackHoleBombCBM:\n\"----\" H 0 A_GiveInventory(\"BlackHoleBombCBMProtect4\",1)\n\"----\" H 0 A_GiveInventory(\"BlackHoleBombCBMProtect\",1)\n\"----\" H 0 A_JumpIfInventory(\"PowerGalaxyBHB_ACS\",1,2)\n\"----\" H 0 A_Stop\n\"----\" H 0\nGoto Pain+2\n\nPain.ScrewCrusherM:\n\"----\" H 0 A_GiveInventory(\"ScrewCrusherMProtect\",1)\n\"----\" H 0 A_SpawnItemEx(\"PainScrewCrusherMHit\",1)\n\"----\" H 0 A_SpawnItemEx(\"PainConcreteShoulderHit\",1)\n\"----\" H 0 A_PlaySoundEx(\"weapon/punkbash\",\"Body\")\ngoto Pain+2\n\nDeath.ScrewCrusherM:\n\"----\" H 0 A_SpawnItemEx(\"PainScrewCrusherMHit\",1)\n\"----\" H 0 A_SpawnItemEx(\"PainConcreteShoulderHit\",1)\n\"----\" H 0 A_PlaySoundEx(\"weapon/punkbash\",\"Body\")\ngoto Death\n\nPain.PunkStun:\n\"----\" H 0 A_SpawnItemEx(\"ShockFX\",4,0,32)\n\"----\" H 0 A_GiveInventory(\"Shocked\",1)\n\"----\" H 0 A_SpawnItemEx(\"PainConcreteShoulderHit\",1)\ngoto Pain+2\n\nPain.SakugarneWave:\n\"----\" H 0 A_GiveInventory(\"SakugarneWaveProtect\",1)\nGoto Pain+2\n\nPain.ElectricShockB:\n\"----\" H 0 A_GiveInventory(\"ElectricShockBProtect\",1)\nGoto Pain+2\n\nPain.UranusCharge:\n\"----\" H 0 A_GiveInventory(\"UranusChargeProtection\",1)\nGoto Pain+2\n\nPain.PumpShield:\n\"----\" H 0 A_GiveInventory(\"PumpShieldProtect\",1)\nGoto Pain+2\n\n///////////////////\n//Movement Based (Stops/Slows)\n///////////////////\nPain.TimeStopper:\n\"----\" H 0 A_GiveInventory(\"TimeStopActivatorC\",1)//ClaseBaseFlags.txt\nGoto Pain+2\n\nPain.ClassPainTimeStop:\nPain.TimeStop:\n\"----\" H 0 A_GiveInventory(\"TimeStopProtector\")\n\"----\" H 0 A_GiveInventory(\"TimeStoppedTF\",1)\n\"----\" H 0 A_SpawnItemEx(\"AntiTimeStopFreezeHelper\")\n\"----\" H 0 A_Jump(256, \"TimeStopped\")\nGoto TimeStopped\nTimeStopped:\n//\"----\" AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1 A_Stop\n\"####\" \"]\" 0 A_PlaySoundEx(\"weapon/timestopper\",\"Body\")\n\"####\" \"]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]\" 1 A_Stop\n//TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1 A_SpawnItemEx(\"TimeStopGFXSmall\", random(8, 64), 0, random(0, 64), 0, 0, 0, random(0, 359))\nGoto Pain+2\nTimeStoppedX:\n\"####\" \"####################################################\" 1 A_Stop\n//TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1 A_SpawnItemEx(\"TimeStopGFXSmall\", random(8, 64), 0, random(0, 64), 0, 0, 0, random(0, 359))\nGoto Pain+2\n\nPain.FlashRadius:\n\"----\" H 0 A_GiveInventory(\"TimeStopProtector\")\n\"----\" H 0 A_SpawnItemEx(\"BossFlashAOE\")\nGoto Pain+2\n\nPain.LightRyuStop:\n\"####\" H 0 A_SpawnItemEx(\"PainLightRyuStopHit\")\n\"####\" H 0 A_GiveInventory(\"LightRyuStopProtect\",1)\n\"####\" H 0 A_GiveInventory(\"TimeStoppedTF\",1)\n\"####\" HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH 1 A_Stop\nGoto Pain+2\n\nPain.BrightB:\n\"----\" H 0 A_SpawnItemEx(\"BossFlashStoppered\")\nGoto Pain+2\n\nPain.ColdField:\n\"----\" H 0 A_JumpIfInventory(\"GroundIceFlag\",1,3)\n\"----\" H 0 A_PlaySound(\"weapon/ColdFrozen\",5,1.0)\n\"----\" H 0 A_SpawnItemEx(\"GroundIce_Cold\")\n\"----\" H 0\nGoto Pain+2\nPain.FreezeCrackerF:\n\"----\" H 0 A_JumpIfInventory(\"GroundIceFlag\",1,3)\n\"----\" H 0 A_PlaySound(\"weapon/ColdFrozen\",5,1.0)\n\"----\" H 0 A_SpawnItemEx(\"GroundIce_FreezeAir\")\n\"----\" H 0\nGoto Pain+2\nPain.FreezeCrackerB:\n\"----\" H 0 A_SpawnItemEx(\"GroundIce_Freeze\")\nGoto Pain+2\nPain.IceWaveB:\n\"----\" H 0 A_SpawnItemEx(\"GroundIce_Frost\")\nGoto Pain+2\n\nPain.ConcreteStop:\n\"----\" H 0 A_GiveInventory(\"PainStopC\",1)\nGoto Pain+2\nPain.ThunderClawG:\n\"----\" H 0 A_JumpIfInventory(\"ThunderClawGProtect\",1,2)\n\"----\" H 0 A_GiveInventory(\"PainStopC\",1)\n\"----\" H 0 A_GiveInventory(\"ThunderClawGProtect\",1)\nGoto Pain+2\n\nPain.ClassPainStop:\n\"----\" H 0 A_Stop\nGoto Pain+2\n\nPain.TimeSlow:\nPain.MegaTimeBall:\n\"----\" H 0 A_GiveInventory(\"Slowed\",1)\nGoto Pain+2\nPain.MegaIceBall:\n\"----\" H 0 A_GiveInventory(\"PainStopC\",1)\nPain.HornetHoney:\nPain.IceSlashSlow:\nPain.IceSlashSlowL:\nPain.IceSlashBlock:\n\"----\" H 0 A_GiveInventory(\"IcemanSlowPickup\",1)\nGoto Pain+2\nPain.SlashGoop:\n\"----\" H 0 A_GiveInventory(\"PowerSlashGoopSlow\",1)\ngoto Pain\nPain.TornadoWall:\n\"----\" H 0 A_GiveInventory(\"TornadoWallProtect\",1)\ngoto Pain+2\n\nPain.ConcreteShot:\n\"----\" H 0 A_JumpIfInventory(\"ConcreteVision\",1,\"ConcreteReset\")\n\"----\" H 0 A_GiveInventory(\"ConcreteVision\",1)\n\"----\" H 0 A_GiveInventory(\"ConcreteTime\",105)\n\"----\" H 0 A_SpawnItemEx(\"ConcreteWatcherC\")\ngoto Pain+1\nConcreteReset:\n\"----\" H 0 A_GiveInventory(\"ConcreteTime\",105)\ngoto Pain+1\n\nPain.BurnerShockW:\n\"----\" H 0 A_SpawnItemEx(\"ShockFX\",4,0,32)\n\"----\" H 0 A_GiveInventory(\"Shocked_18\",1)\n\"----\" H 0 A_GiveInventory(\"BurnerTrapProtect\",1)\nGoto Pain+1\nPain.BurnerShock:\n\"----\" H 0 A_GiveInventory(\"BurnerTrapProtect\",1)\nPain.NeutralStopShock:\n\"----\" H 0 A_Stop//PainStopC\n\"----\" H 0 A_SpawnItemEx(\"ShockFX\",4,0,32)\n\"----\" H 0 A_GiveInventory(\"Shocked\",1)\nGoto Pain+2\n\nPain.SparkShock:\n\"----\" H 0 A_JumpIfInventory(\"PowerShock\",1,3) //It's up to God if the rest of these painstates ever inherit this.\n\"----\" H 0 A_SpawnItemEx(\"ShockFX\",4,0,32)\n\"----\" H 0 A_GiveInventory(\"Shocked\",1)\n\"----\" H 0\nGoto Pain+1\n\nPain.RollShock:\nPain.CentaurShock:\nPain.JunkShock:\nPain.NeutralShock:\nPain.Darkman2Level2:\nPain.ElectroNet:\nPain.BreakShotWeak:\n\"----\" H 0 A_SpawnItemEx(\"ShockFX\",4,0,32)\n\"----\" H 0 A_GiveInventory(\"Shocked\",1)\nGoto Pain+1\nPain.SparkShockW:\nPain.NeutralShockW:\n\"----\" H 0 A_SpawnItemEx(\"ShockFX\",4,0,32)\n\"----\" H 0 A_GiveInventory(\"Shocked_18\",1)\nGoto Pain+1\n\n///////////////////\n//Movement Based (Flings)\n///////////////////\nPain.DangerTrap:\n\"----\" H 0 A_SpawnItemEx(\"DangerTrapped\")\nGoto Pain+2\nPain.TornadoHoldB:\n\"----\" H 0 //A_SpawnItemEx(\"TornadoHeld\")\ngoto Pain+2\nPain.MWSLift:\n\"----\" H 0 A_JumpIfInventory(\"FlightDisableFlag\",1,2)\n\"----\" H 0 ThrustThingZ(0,80,0,0)\n\"----\" H 0 A_GiveInventory(\"MWSLiftProtect\",1)\nGoto Pain+2\n\nPain.NitroBike:\n\"----\" H 0 ThrustThingZ(0,65,0,1)\n\"----\" H 0 A_GiveInventory(\"NitroBikeProtect\",1)\nGoto Pain+2\n\nPain.UranusLift:\n\"----\" H 0 A_JumpIfInventory(\"FlightDisableFlag\",1,2)\n\"----\" H 0 ThrustThingZ(0,random(70,80),0,0)\n\"----\" H 0\nGoto Pain+2\nDeath.UranusLift:\n\"----\" H 0 ThrustThingZ(0,100,0,0)\n\"----\" H 0 A_SpawnItemEx(\"DeathUranusLiftHit\",1)\nGoto FlingDeath\n\nPain.WindStorm:\nPain.FlingDamage:\n\"----\" H 0 //ThrustThing(random(0,255),50,1,0)\n\"----\" H 0 ThrustThing(random(0,255),5,0,0)\n\"----\" H 0 ThrustThingZ(0,30,0,0)\nGoto Pain+1\n\nPain.TornadoFloor:\n\"----\" H 0 A_GiveInventory(\"TornadoFloorProtect\",1)\nPain.TornadoBlow:\n\"----\" H 0 ThrustThingZ(0,60,0,0)\ngoto Pain+2\nPain.TornadoBlowB:\n\"----\" H 0 ThrustThingZ(0,2,0,1)\ngoto Pain+2\n\nPain.MadMagFly:\n\"----\" H 0 A_ScaleVelocity(0.75)\n\"----\" H 0 A_GiveInventory(\"MadMagFlyProtection\",1)\nPain.ColdSmackDown:\nPain.UranusDeepDigger:\nPain.ClassPainSmackDown:\n\"----\" H 0 A_SpawnItemEx(\"PainGravitySmackDown_H\")\n\"----\" H 0 A_CheckFloor(2)\n\"----\" H 0 ThrustThingZ(0,70,1,0)\n\"----\" H 0\ngoto Pain+2\nPain.GravitySmackDown:\n\"----\" H 0 A_GiveInventory(\"GmanSmackD_DelayF\",1)\n\"----\" H 0 A_JumpIfInventory(\"GmanSmackU_DelayF\",1,5)\n\"----\" H 0 A_SpawnItemEx(\"PainGravitySmackDown_H\")\n\"----\" H 0 A_CheckFloor(2)\n\"----\" H 0 ThrustThingZ(0,70,1,0)\n\"----\" H 0\ngoto Pain+2\n\"----\" H 0 A_TakeInventory(\"GmanSmackU_DelayF\",1)\n\"----\" H 0 A_SpawnItemEx(\"PainGravitySlamHit\")\nGoto Pain+2\n\nPain.GravitySmackUp:\n\"----\" H 0 HealThing(1)\n\"----\" H 0 A_GiveInventory(\"Shocked_18\",1)\n\"----\" H 0 A_GiveInventory(\"GmanSmackU_DelayF\",1)\n\"----\" H 0 A_JumpIfInventory(\"GmanSmackD_DelayF\",1,4)\n\"----\" H 0 A_JumpIfInventory(\"FlightDisableFlag\",1,2)\n\"----\" H 0 ThrustThingZ(0,70,0,0)\n\"----\" H 0\ngoto Pain+2\n\"----\" H 0 A_TakeInventory(\"GmanSmackD_DelayF\",1)\n\"----\" H 0 //A_JumpIfInventory(\"FlightDisableFlag\",1,2)\n\"----\" H 0 ThrustThingZ(0,105,0,0)\n\"----\" H 0\nGoto Pain+2\n\nPain.GravityHold:\n\"----\" H 0 A_ChangeVelocity(momx, momy, 0, CVF_REPLACE)\n\"----\" H 0 A_JumpIf(z-floorz>180,\"GravityForce4\")\n\"----\" H 0 A_JumpIf(z-floorz>128,\"GravityForce3\")\n\"----\" H 0 A_JumpIf(z-floorz>32,\"GravityForce2\")\n\"----\" H 0 A_JumpIf(z-floorz>8,\"GravityForce1\")\nGoto GravityForceFinish\nGravityForce4:\n\"----\" H 0 A_GiveInventory(\"GravityForce4\",1)\nGoto GravityForceFinish\nGravityForce3:\n\"----\" H 0 A_GiveInventory(\"GravityForce3\",1)\nGoto GravityForceFinish\nGravityForce2:\n\"----\" H 0 A_GiveInventory(\"GravityForce2\",1)\nGoto GravityForceFinish\nGravityForce1:\n\"----\" H 0 A_GiveInventory(\"GravityForce1\",1)\nGoto GravityForceFinish\nGravityForceFinish:\n\"----\" H 0 A_CheckFloor(2)\n\"----\" H 0 ThrustThingZ(0,150,1,0)\n\"----\" H 0\nGoto Pain+1\n\nPain.PharaohPunch:\n\"----\" H 0\n\"----\" H 0 A_SpawnItemEx(\"PainPharaohPunchHit\",1)\n\"----\" H 0 ThrustThingZ(0,20,0,0)\n\"----\" H 0 A_PlaySoundEx(\"weapon/pharaohpunchhit\", \"SoundSlot7\", 0)\nGoto Pain+1\n\n///////////////////\n//Effect Based\n///////////////////\nPain.GrabBusterCopywep:\n\"----\" H 0 A_SpawnItemEx(\"PainGrabBusterHit\")\nGoto Pain+1\nDeath.GrabBusterCopywep:\n\"----\" H 0 A_SpawnItemEx(\"GrabBusterHealthChaser\")\ngoto Death\n\nPain.FlashBulb:\nPain.FlashStopper:\n\"----\" H 0\n\"----\" H 0 A_JumpIfInventory(\"BrightBlind\", 1,3)\n\"----\" H 0 A_GiveInventory(\"BrightBlind\",125)\n\"----\" H 0 ACS_NamedExecuteAlways(\"CCBM_BrightNewBlind\", 0)\nGoto Pain+1\n\"----\" H 0 A_GiveInventory(\"BrightBlind\",55)\nGoto Pain+1\n\nPain.Drowning:\nPain.Fire:\nPain.Falling:\nPain.Slime:\n\"----\" H 0\n\"----\" H 0 A_JumpIfInventory(\"BeatCallCheck\", 1, \"BeatAssist\")\nGoto Pain+1\nBeatAssist:\n\"----\" H 0\n\"----\" H 0 HealThing(2)\n\"----\" H 0 ACS_ExecuteAlways(205,0)\nGoto Pain+1\n\nPain.WilyFire:\n\"----\" H 0 A_SpawnItemEx(\"ImOnFire\")\n\"----\" H 0 A_GiveInventory(\"FireVision\",1)\nGoto Pain+2\nPain.WilyIce:\n\"----\" H 0 A_GiveInventory(\"WilyIceTotallyFrozen\",1)\n\"----\" H 0 A_TakeInventory(\"SuperEffective\",1)\n\"----\" H 0 A_GiveInventory(\"EndBossFlashStoppered\",1)\n\"----\" H 0 A_GiveInventory(\"TimeStoppedUnfreeze\",1)\n\"----\" H 0 A_SpawnItemEx(\"ImFrozen\")\n\"----\" H 0 A_GiveInventory(\"IceVision\",1)\n\"----\" H 0 A_Stop\n\"----\" H 0 A_Jump(256, \"Spawn\")\nGoto Spawn\n\n///////////////////\n//TID Soup Based\n///////////////////\n\n//Bonus Damage\n//Pain.MegaFireBall:\n//\"----\" H 0 A_SpawnItemEx(\"PainMegaFireBallHit\",0,0,0,0,0,0,0,1)\n//Goto Pain+1\n\nPain.LightRyuFire:\n\"----\" H 0 A_GiveInventory(\"LightRyuFireProtect\",1)\n\"----\" H 0 A_SpawnItemEx(\"PainLightRyuFireHit\",0,0,0,0,0,0,0,1)\nGoto Pain+1\n\nPain.WilyFireB1:\n\"----\" H 0 A_SpawnItemEx(\"PainWilyFireB1Hit\",0,0,0,0,0,0,0,1)\nGoto Pain+1\n\nPain.GravitySphereSlam:\n\"----\" H 0 A_SpawnItemEx(\"PainGravitySphereSlamHit\")\nGoto Pain+2\n//Stone\nPain.G_TenguSlam:\n\"----\" H 0 A_SpawnItemEx(\"PainG_TenguSlamHit\")\nGoto Pain+2\nPain.G_TornadoSlam:\n\"----\" H 0 A_GiveInventory(\"G_TornadoSlamProtect\",1)\n\"----\" H 0 A_SpawnItemEx(\"PainG_TornadoSlamHit\")\nGoto Pain+2\n\nPain.DynaTag:\n\"----\" H 0 A_GiveInventory(\"DynaTagCooldown\",1)\n\"----\" H 0 A_SpawnItemEx(\"PainDynaTagHit\")\n\"----\" H 0 A_PlaySoundEx(\"classes/DynamoTag\",\"Voice\")\n\"----\" H 0 HealThing(1)\nGoto Pain+5\n\n//Fling\nPain.DuoRam:\n\"----\" H 0 A_SpawnItemEx(\"PainDuoRamHit\")\n\"----\" H 0 ThrustThingZ(0,28,0,0)\nGoto Pain+2\n\nPain.MagPush:\n\"----\" H 0 A_SpawnItemEx(\"PainMagPushHit\")\nGoto Pain+2\n\nPain.KnightRush:\n\"----\" H 0 A_SpawnItemEx(\"PainKnightRushHit\")\nGoto Pain.SparkShock\n\nPain.WindStormPull:\n\"----\" H 0 A_GiveInventory(\"WindStormPullProtect\",1)\n\"----\" H 0 A_GiveInventory(\"PainStopC\",1)\n\"----\" H 0 ThrustThingZ(0,30,0,0)\n\"----\" H 0 A_SpawnItemEx(\"PainWindStormPullHit\")\nGoto Pain+2\nPain.WindStormPush:\n\"----\" H 0 ThrustThingZ(0,30,0,0)\n\"----\" H 0 A_SpawnItemEx(\"PainWindStormPushHit\")\nGoto Pain+2\n\nPain.TurboHonk:\n\"----\" H 0 A_GiveInventory(\"TurboHonkProtect\",1)\n\"----\" H 0 A_SpawnItemEx(\"PainDuoRamHit\")\nGoto Pain+2\n\nPain.ODuoRam:\n\"----\" H 0 //A_JumpIfInventory(\"ODuoRamProtect\",1,2)\n\"----\" H 0 A_SpawnItemEx(\"PainODuoRamHit\")\n\"----\" H 0 A_GiveInventory(\"ODuoRamProtect\",1)\nGoto Pain+2\nDeath.ODuoPunch:\nDeath.ODuoRam:\n\"----\" H 0 ThrustThingZ(0,64,0,0)\n\"----\" H 0 A_SpawnItemEx(\"PainODuoRamHit\")\nGoto FlingDeath\nPain.ODuoMeteorF:\n\"----\" H 0 ThrustThingZ(0,28,0,0)\n\"----\" H 0 A_SpawnItemEx(\"PainODuoMeteorFHit\")\nGoto Pain+2\nDeath.ODuoMeteorF:\n\"----\" H 0 ThrustThingZ(0,100,0,0)\n\"----\" H 0 A_SpawnItemEx(\"PainODuoMeteorFHit\")\nGoto FlingDeath\n\nPain.JupiterPush:\n\"----\" H 0 A_SpawnItemEx(\"PainJupiterPushHit\")\nGoto Pain+2\n\nPain.EnkerPush:\n\"----\" H 0 A_SpawnItemEx(\"PainEnkerPushHit\")\nGoto Pain+2\nDeath.EnkerPush:\n\"----\" H 0 ThrustThingZ(0,44,0,0)\n\"----\" H 0 A_SpawnItemEx(\"DeathEnkerPushHit\")\nGoto FlingDeath\n\nPain.MegaWaterBarrier:\n\"----\" H 0 A_SpawnItemEx(\"PainMegaWaterBarrierHit\")\nGoto Pain+2\n\nPain.HyperStormBlaster:\n\"----\" H 0 A_SpawnItemEx(\"PainHyperStormBlasterHit\")\nGoto Pain+2\n\n//Give on-hit\nPain.RollSwing:\n\"----\" H 0 A_GiveInventory(\"TempPitProtect\",1)\n//\"----\" H 0 ThrustThing(random(0,255),15,1,0)\n//\"----\" H 0 ThrustThingZ(0,50,0,0)\n\"----\" H 0 A_SpawnItemEx(\"PainRollHit\")\nGoto Pain+2\nDeath.RollSwing:\n\"----\" H 0 A_GiveToTarget(\"RollHealAmmo\",4)\ngoto Death\n\nPain.JoeTruck:\n\"----\" H 0 A_GiveInventory(\"JoeHitItem\",1)\ngoto Pain+2\nPain.Joe:Pain.JoeGrenade:Pain.JoeApache:\n\"----\" H 0 A_GiveInventory(\"JoeHitItem\",1)\ngoto Pain+1\nPain.JoeJ:\n\"----\" H 0 A_GiveInventory(\"JoeHitItem\",1)\n\"----\" H 0 A_SpawnItemEx(\"JoeJHit\")\ngoto Pain+1\nDeath.Joe:Death.JoeGrenade:\n\"----\" H 0 A_GiveToTarget(\"JoeUpgradeAmmo\",105)\nDeath.JoeTruck:Death.JoeApache:\n\"----\" H 0 A_GiveInventory(\"JoeHitItem\",1)\ngoto Death\n\nPain.BBA_MegaR:\n\"----\" H 0 A_SpawnItemEx(\"PainBBA_MegaRHit\")\nGoto Pain+2\nDeath.BBA_MegaR:\n\"----\" H 0 A_GiveToTarget(\"BBA_Money\",16)\ngoto Death\n\nPain.ToadLeap:\n\"----\" H 0 A_SpawnItemEx(\"PainToadLeapHit\")\n\"----\" H 0 A_GiveInventory(\"ToadLeapProtect\",1)\nGoto Pain+2\nDeath.ToadLeap:\n\"----\" H 0 A_GiveToTarget(\"ToadLeap_Pickup\",1)\ngoto Death\n\nDeath.SkullSniperX:\n\"----\" H 0 A_GiveToTarget(\"SkullHyperDeathPickup\",1)\ngoto Death\n\nDeath.DarkRail:\n\"----\" H 0 A_GiveToTarget(\"DarkRailMultiFlag\",1)\ngoto Death\n\nPain.BlizzardBowl:\n\"----\" H 0 A_SpawnItemEx(\"PainBlizzardBowlHit\")\n\"----\" H 0 A_GiveInventory(\"BlizzardBowlProtect\",1)\nGoto Pain\nDeath.BlizzardBowl:\n\"----\" H 0 A_GiveToTarget(\"CrackFlag\",1)\ngoto Death\n\nPain.YellowDevilC:\n\"----\" H 0 A_GiveInventory(\"YellowDevilCProtect\",1)\nGoto Pain\nDeath.YellowDevilC:\n\"----\" H 0 A_GiveToTarget(\"BumoEnd\",1)\ngoto Death\nPain.BearerDevilC:\n\"----\" H 0 A_GiveInventory(\"BearerDevilCProtect\",1)\nGoto Pain\nDeath.BearerDevilC:\n\"----\" H 0 A_GiveToTarget(\"BomuEnd\",1)\ngoto Death\n\nPain.ShadeSuck:\n\"----\" H 0 A_PlaySoundEx(\"weapon/shadesuck\",\"SoundSlot5\")\n\"----\" H 0 A_SpawnItemEx(\"PainShadeSuckHit\")\nGoto Pain+4\nDeath.ShadeSuck:\n\"----\" H 0 A_GiveToTarget(\"MC_H_PU_5\",1)\ngoto Death\n\nPain.PlantBuster:\n\"----\" H 0 A_SpawnItemEx(\"PainPlantBusterHit\")\nGoto Pain+1\nDeath.PlantBuster:\n\"----\" H 0 A_GiveToTarget(\"LMSRegen\",1)\nGoto Death\n\nPain.ODuoMeteor:\n\"----\" H 0 A_SpawnItemEx(\"PainODuoMeteorHit\")\n\"----\" H 0 A_GiveInventory(\"ODuoMeteorProtect\",1)\nGoto Pain+2\nDeath.ODuoMeteor:\n\"----\" H 0 A_GiveToTarget(\"ODuoTheMeteorPickup\",1)\ngoto Death.ODuoMeteorF\n\nPain.EvilTornadoHold:\n\"----\" H 0 A_JumpIfInventory(\"FlightDisableFlag\",1,2)\n\"----\" H 0 ThrustThingZ(0,random(70,80),0,0)\n\"----\" H 0\nGoto Pain+2\n\nPain.EvilFlameSword:\n\"----\" H 0 A_GiveInventory(\"EvilFlameSwordProtect\",1)\n\"----\" HH 0 A_SpawnItemEx(\"FlameSwordBit\",0,0,0,random(-10,10),random(-10,10),random(10,15),random(0,359))\nGoto Pain+2\n\nPain.MagicCardB:\n\"----\" H 0 A_GiveInventory(\"MagicCardProtectC\",1)\n\"----\" H 0 A_GiveInventory(\"PainMagicCardBHit\",1)\nGoto Pain.FlashBombB\nPain.MagicCard2B:\n\"----\" H 0 A_GiveInventory(\"MagicCardProtect2C\",1)\n\"----\" H 0 //A_GiveInventory(\"PainMagicCardBHit\",1)\nGoto Pain.FlashBombB\nDeath.MagicCardB:\n\"----\" H 0 A_GiveToTarget(\"MC_H_PU_4\",1)\nGoto Death\n\nPain.ConcreteShoulder:\n\"----\" H 0 A_GiveInventory(\"ConcreteShoulderProtect\",1)\n\"----\" H 0 A_SpawnItemEx(\"PainConcreteShoulderHit\",1)\n\"----\" H 0 A_SpawnItemEx(\"PainKnightRushHit\")\ngoto Pain\nDeath.ConcreteShoulder:\n\"----\" H 0 ThrustThingZ(0,120,0,0)\n\"----\" H 0 A_SpawnItemEx(\"DeathConcreteShoulderHit\",1)\n\"----\" H 0 A_GiveToTarget(\"ConcreteBashFlag\",1)\nGoto FlingDeath\nDeath.GutsPunch:\n\"----\" H 0 ThrustThingZ(0,120,0,0)\n\"----\" H 0 A_SpawnItemEx(\"DeathConcreteShoulderHit\",1)\ngoto FlingDeath\nDeath.PharaohPunch:\n\"----\" H 0 ThrustThingZ(0,120,0,0)\n\"----\" H 0 A_PlaySoundEx(\"weapon/pharaohpunchko\", \"SoundSlot7\", 0)\n\"----\" H 0 A_SpawnItemEx(\"DeathConcreteShoulderHit\",1)\ngoto FlingDeath\n\nPain.TornadoLeap:\n\"----\" H 0 A_SpawnItemEx(\"PainTornadoLeapHit\")\n\"----\" H 0 A_GiveInventory(\"TornadoLeapProtect\",1)\nGoto Pain+2\nDeath.TornadoLeap:\n\"----\" H 0 A_GiveToTarget(\"TornadoLeap_Pickup\",1)\ngoto Death\n\nPain.QuintLeap:\n\"----\" H 0 A_SpawnItemEx(\"PainQuintLeapHit\")\n\"----\" H 0 A_GiveInventory(\"QuintLeapProtect\",1)\nGoto Pain+2\nDeath.QuintLeap:\n\"----\" H 0 A_GiveToTarget(\"QuintLeap_Pickup\",1)\ngoto Death\n\nPain.MWSHookPull:\n\"----\" H 0 A_GiveInventory(\"PainStopC\",1)\n\"----\" H 0 A_SpawnItemEx(\"PainHarpoon2PullHit\")\nGoto Pain+2\n\nPain.HSHCold:\n\"----\" H 0 A_SpawnItemEx(\"PainHSHColdHit\")\nGoto Pain+2\nDeath.HSHCold:\n\"----\" H 0 A_GiveToTarget(\"HyperStormCold\",25)\nGoto Death\n\nPain.HSHSuck:\n\"----\" H 0 A_SpawnItemEx(\"PainHSHSuckHit\")\nGoto Pain+2\nDeath.HSHSuck:\n\"----\" H 0 A_GiveToTarget(\"MC_H_PU_2\",1)\nGoto Death\n\nPain.DarkTank:\n\"----\" H 0 A_SpawnItemEx(\"PainDarkTankHit\",1)\nGoto Pain+2\n\nPain1:\n\"----\" H 0\ngoto Pain+1\nPain2:\n\"----\" H 0\ngoto Pain+2\n\n//Pain.Normal:\nPain.ProtoBuster2:Pain.ProtoBuster3:Pain.MegaBuster3:Pain.SuperAdaptor:Pain.ArrowBuster:Pain.LaserBuster:Pain.DuoFist1:Pain.DuoFist2:Pain.DuoFist3:\nPain.MegaCutBall:Pain.MegaGutsBall:/*Pain.MegaIceBall:*/Pain.MegaBombBall:Pain.MegaFireBall:Pain.MegaElecBall:/*Pain.MegaTimeBall:*/Pain.MegaOilBall:\nPain.RollingCutter:Pain.SuperArm:Pain.IceSlasher:Pain.HyperBomb:Pain.FireStorm:Pain.ThunderBeam:/*Pain.OilSlider:*/Pain.OilFlame:\nPain.MetalBlade:Pain.AirShooter:Pain.BubbleLead:Pain.AtomicFire1:Pain.AtomicFire2:/*Pain.AtomicFire3:*/Pain.LeafShield:\nPain.GeminiLaser:Pain.HardKnuckle:Pain.TopSpin:Pain.SearchSnake:Pain.ShadowBlade:Pain.NeedleCannon:\nPain.RainFlush:Pain.DrillBomb:Pain.PharaohShot1:Pain.PharaohShot2:Pain.PharaohShot3:Pain.RingBoomerang:Pain.DustCrusher:Pain.DustCrusherBit:Pain.SkullBarrier:\nPain.WaterWave:Pain.PowerStone:Pain.GyroAttack:Pain.NapalmBomb:Pain.CrystalEye:Pain.CrystalEyeBit:Pain.DarkShot:Pain.DarkRail:\nPain.BlizzardAttack:Pain.FlameBlast:Pain.KnightCrush:Pain.SilverTomahawk:Pain.PlantBarrier:\n/*Pain.FreezeCracker:*/Pain.FreezeCrackerBit:/*Pain.JunkShot:*/Pain.DangerWrap:Pain.ThunderBolt:Pain.WildCoil2:Pain.NoiseCrush1:Pain.NoiseCrush2:\nPain.MegaBall:Pain.AstroCrush:Pain.IceWave:Pain.ThunderClaw:Pain.WaterBalloon:Pain.HomingSniper:Pain.GrenadeSD:\nPain.Concrete:Pain.PlugBall:Pain.HornetChaser:Pain.MagmaBazooka1:Pain.MagmaBazooka2:Pain.BlackHoleBomb:Pain.JewelSatellite:\nPain.TripleBlade:Pain.WheelCutter:Pain.SolarBlaze:\nPain.TenguBlade:Pain.MagicCard:Pain.LightningBolt:\nPain.MirrorBuster:Pain.MirrorBuster1:Pain.MirrorBuster2:Pain.MirrorBuster3:Pain.Sakugarne:Pain.BalladeCracker:\nPain.GrabBuster:Pain.BubbleBomb:Pain.ElectricShock:Pain.DeepDigger:\nPain.Mine:Pain.SkullSniper:Pain.SkullSniperX:Pain.CentaurArrow:\nPain.WilyLightning://Pain.TopSpinB:\nPain.Coal:\n//Pain.Tango:Pain.FireTrap:Pain.FirePillar:\nPain.ClassPain:\nPain:\n\"----\" H 0//A_GiveInventory(\"PainScaleVelocityC\",1)\n\"----\" H 0// A_GiveInventory(\"PainRecoilC\",1)\n\"----\" H 0 A_TakeInventory(\"SuperEffective\",1)\n\"----\" H 0 A_GiveInventory(\"EndBossFlashStoppered\",1)\n\"----\" H 0 A_JumpIfInventory(\"BushInvis\", 1, 2)\n\"----\" H 0 A_Pain\n\"----\" H 0 A_GiveInventory(\"TimeStoppedUnfreeze\",1)\n\"----\" H 0 //A_GiveToTarget(\"MeowMeowMix\")\n\"----\" H 0 A_JumpIfInventory(\"SkipClassPainJump\",1,\"PainContinue\")\n\"----\" H 0 A_Jump(256, \"ClassPain\")\ngoto ClassPain\nClassPain:\n\"----\" H 0\ngoto PainContinue\nPainContinue:\n//\"----\" H 1 A_SpawnItemEx(\"PainFX_CBM\",-5,0,3,0,0,0)\n//\"----\" H 1// A_GiveInventory(\"PainRecoilC\",1)\n\"----\" \"#\" 0 A_GiveInventory(\"IsInPain\",1)\n\"----\" \"#\" 0 A_JumpIfInventory(\"BushInvis\", 1, 11)\n\"----\" \"##########\" 2 A_SpawnItemEx(\"PainFX_CBM\",-5,0,3,0,0,0)//HHHHHHHHHH\n\"----\" H 1\n\"----\" H 0 A_Jump(256, \"Spawn\")\n\"----\" H 1 A_Jump(256, \"Spawn\")\nGoto Spawn\n\n//Death states\n\nDeath.Ice:\nDeath.IceSlashSlow:Death.IceSlashSlowL:Death.MegaIceBall:\nDeath.WilyIce:Death.TimeStop:\nDeath.FreezeCrackerB:\nDeath.IceWave:Death.IceWaveB:\nDeath.ColdField:Death.ColdPunch:Death.ColdSmackDown:\nDeath.ClassPainTimeStop:Death.Thomas:\nDeath.ChillSpikeBoss:\n\"----\" H 0 A_GiveInventory(\"IceDeathFlag\",1)\ngoto Death\n\nDeath.WindStorm:Death.WindStormPull:Death.WindStormPush:\nDeath.GravityHold:Death.GravitySmackUp:Death.G_TenguSlam:Death.G_TornadoSlam:\nDeath.DangerTrap:\nDeath.TornadoHoldB:\nDeath.TornadoBlow:Death.TornadoBlowB:Death.TornadoFloor:\nDeath.MWSLift:\n\"----\" H 0 A_GiveInventory(\"RiseDeathFlag\",1)\ngoto Death\n\nDeath.spawntelefrag:\n\"----\" H 0 A_GiveInventory(\"SpawnTeleFragFlag\",1)\ngoto Death\nDeath.instagib:\nDeath.GravityB2:\nDeath.Beam:Death.Telefrag:Death.Spiney:Death.Crush:Death.Suicide://Death.Extreme:Death.InstantDeath:\n//Death.GravityHold:\n\"----\" H 0 A_GiveInventory(\"InstagibFlag\",1)\n\"----\" H 0 A_SetTranslucent(0.0,0)\ngoto Death\n\nFlingDeath:\n\"----\" H 0 A_GiveInventory(\"FlingDeathFlag\",1)\ngoto Death\n\nDeath.DustCrusher:Death.DustCrusherBit:\nDeath.JunkShield:Death.JunkShot:Death.JunkPunch:Death.JunkShock:\n\"----\" H 0 A_GiveInventory(\"JunkDeathDropFlag\",1)\ngoto Death\n\nDeath.Fire:Death.Slime:Death.Drowning:Death.Exit:\nDeath:\n\"----\" H 0 A_GiveInventory(\"DeadClassBundle\")\n\"----\" H 0 A_Jump(256,\"DeathFix\")\ngoto DeathFix\n\nDeathFix://Used to show the H sprite for a class on death and check if a class should do a special death.\n\"----\" H 0\n\"----\" H 1\ngoto DeathContinue\n\nClassDeath://Used for special deaths. (such as grenademan)\n\"----\" H 0\n\"----\" H 1\ngoto MegaDeathEnd\n\nClassDeathM://Placeholder to fix desync online\n\"----\" H 1\ngoto MegaDeathEnd\nClassDeathF:\n\"----\" H 19\ngoto MegaDeathEnd\nClassDeathR:\n\"----\" H 1\ngoto RiseDeath\nClassDeathRE:\n\"----\" H 1\ngoto MegaDeathEnd\nClassDeathI:\n\"----\" H 1\ngoto IceDeath\n\nDeathContinue://Which state to hop to\n\"----\" H 0\n\"----\" H 0 A_JumpIfInventory(\"SpecialDeathFlag\",1,\"ClassDeath\")\n\"----\" H 0 A_JumpIfInventory(\"InstagibFlag\",1,\"MegaDeathEnd\")\n\"----\" H 0 A_JumpIfInventory(\"RiseDeathFlag\",1,\"RiseDeath\")\n\"----\" H 0 A_JumpIfInventory(\"IceDeathFlag\",1,\"IceDeath\")\n\"----\" H 19\n\"----\" H 0\ngoto MegaDeathEnd\n\nSaturnDeathContinue://to ensure it works :D\n\"----\" H 0\n\"----\" H 0 A_JumpIfInventory(\"SpecialDeathFlag\",1,\"ClassDeath\")\n\"----\" H 0 A_JumpIfInventory(\"InstagibFlag\",1,\"MegaDeathEnd\")\n\"----\" H 0 A_JumpIfInventory(\"RiseDeathFlag\",1,\"RiseDeath\")\n\"----\" H 0 A_JumpIfInventory(\"IceDeathFlag\",1,\"IceDeath\")\n\"----\" H 65\n\"----\" H 0\ngoto MegaDeathEnd\n\nRiseDeath:\n\"----\" H 1 ThrustThingZ(0,21,0,1)\n\"----\" H 0 A_JumpIf(ceilingz-z<64,\"MegaDeathEnd\")\n\"----\" H 0 A_GiveInventory(\"RiseDeathFlag2\",1)\n\"----\" H 0 A_JumpIfInventory(\"RiseDeathFlag2\",25,\"MegaDeathEnd\")\nGoto RiseDeath\nIceDeath:\n\"----\" H 0 ACS_ExecuteAlways(998,0,DYE_ICEDEATHCBM,10)\n\"----\" H 1 A_PlaySoundEx(\"CBM/freeze\",\"Voice\")\n\"----\" HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH 1 A_SpawnItemEx(\"FrozenDeathBitFX\",frandom(16,48),0,fRandom(16,48),0,0,0,random(0,359))\n\"----\" H 0 A_PlaySoundEx(\"CBM/icebreak\",\"Body\")\n\"----\" H 0 A_SpawnItemEx(\"FrozenDeathFXC\",0,0,0)\ngoto DeathWait\nDeath.Falling:\n\"----\" H 0 A_GiveInventory(\"FallingFlag\",1)\n\"----\" H 0 A_GiveInventory(\"DeadClassBundle\")\n\"----\" H 0 A_SetTranslucent(0.0,0)\n\"----\" H 0 A_PlaySoundEx(\"*death\",\"Voice\")\ngoto DeathWait\n\nMegaDeathEnd:\n\"----\" H 0 A_ChangeVelocity(0,0,0,CVF_REPLACE)\n\"----\" H 0 A_PlaySoundEx(\"*death\",\"Voice\")//A_XScream\n\"----\" H 0 A_JumpIf(ACS_ExecuteWithResult(143,0)>=0,3)//Check if team game\n\"----\" H 0 A_SpawnItemEx(\"FakeDeathFXC\",0,0,32)\n\"----\" H 0 A_Jump(256,2)\n\"----\" H 0 A_SpawnItemEx(\"TFakeDeathFX\",0,0,32,0,0,0,0,1)\n\"----\" H 0\ngoto DeathWait\n\nDeathWait:\nPLAY Z 1 A_CheckPlayerDone\nwait\n\nDropWeapon:\n\"----\" H 0\n\"----\" H 0 A_Jump(256,\"NoDropWeapon\")\ngoto NoDropWeapon\nNoDropWeapon:\nPLAY Z 1 A_CheckPlayerDone\nwait\n\n//AmmoGet:\n//\"----\" Y 0 A_PlaySoundEx(\"weapon/mirrorabsorb\",\"Voice\")\n//\"----\" Y 0 A_GiveInventory(\"MirrorCharge\",7)\n//EnkerClassAbsorb:\n//\"----\" Y 35\n//\"----\" Y 0\n//goto Spawn+1\n\n// SINGLEPLAYER STUFF\nTheEnd: // Used in the original ending\nPLY1 G 4\nloop\nWalkForward:\nPLY1 BBBBBCCCCCDDDDDEEEEE 1 A_Recoil(-0.8)\nloop\nCreditWalk:\nPLY1 BCDE 8\nloop\nCreditRun:\nPLY1 BCDE 5\nloop\nDozerCarry:\nPLY1 BBBBCCCCDDDDEEEEBBBBCCCCDDDDBBBBCCCCDDDD 1 A_Recoil(-1)\nPLY1 F 10 A_Stop\nPLY1 F -1\nstop\nDozerThrow:\nPLY1 F 0 A_ChangeFlag(\"THRUACTORS\",1)\nPLY1 F 20 ThrustThingZ(0, 60, 0, 1)\nPLY1 G 20\nPLY1 A -1\nstop\nEndlessPain:\nPLY1 H -1\nstop\n}\n}"
},
{
"source": "pk3",
"name": "actors/ClassBaseTID.txt",
"contents": "actor BasicHitBase\n{\nHeight 0\nRadius 0\n+NOINTERACTION\n-SOLID\n+NOGRAVITY\n+MISSILE\nStates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 0 //A_GiveToTarget(\"RollHitPickup\",1)\nstop\n}\n}\n\nactor BasicPoisonBase\n{\nvar int user_HIT;\nvar int user_SOURCE;\nvar int user_AMOUNT;\nHeight 0\nRadius 0\n+NOINTERACTION\n+NOCLIP\n+SEEKERMISSILE\nPROJECTILE\nStates\n{\nDeath:\nTNT1 A 0\nstop\n}\n}\n\nactor BasicHitBaseF : BasicHitBase\n{\nvar int user_HIT;\n//var int user_power;\n}\n\nactor CollideFlag : OnceC{}\n\nactor ForceEndPoisonFlag : OnceC{}\n\nactor C_PSN2 : PowerUp{Powerup.Duration -2}\nactor C_PSN3 : PowerUp{Powerup.Duration -3}\nactor C_PSN4 : PowerUp{Powerup.Duration -4}\nactor C_PSN5 : PowerUp{Powerup.Duration -5}\nactor C_PSN6 : PowerUp{Powerup.Duration -6}\n\n//General idea/method by JaxOf7\n\n//Bonus Damage\n\nactor WilyFireB1_PSNFlag : OnceC{}\nactor WilyFireB1_PSN : C_PSN2{}\nactor WilyFireB1_PSN0 : C_PSN2{}//Online desync\n\nactor WilyFireB1_PSN1000:C_PSN2{}actor WilyFireB1_PSN1001:C_PSN2{}actor WilyFireB1_PSN1002:C_PSN2{}actor WilyFireB1_PSN1003:C_PSN2{}actor WilyFireB1_PSN1004:C_PSN2{}actor WilyFireB1_PSN1005:C_PSN2{}actor WilyFireB1_PSN1006:C_PSN2{}actor WilyFireB1_PSN1007:C_PSN2{}\nactor WilyFireB1_PSN1008:C_PSN2{}actor WilyFireB1_PSN1009:C_PSN2{}actor WilyFireB1_PSN1010:C_PSN2{}actor WilyFireB1_PSN1011:C_PSN2{}actor WilyFireB1_PSN1012:C_PSN2{}actor WilyFireB1_PSN1013:C_PSN2{}actor WilyFireB1_PSN1014:C_PSN2{}actor WilyFireB1_PSN1015:C_PSN2{}\nactor WilyFireB1_PSN1016:C_PSN2{}actor WilyFireB1_PSN1017:C_PSN2{}actor WilyFireB1_PSN1018:C_PSN2{}actor WilyFireB1_PSN1019:C_PSN2{}actor WilyFireB1_PSN1020:C_PSN2{}actor WilyFireB1_PSN1021:C_PSN2{}actor WilyFireB1_PSN1022:C_PSN2{}actor WilyFireB1_PSN1023:C_PSN2{}\nactor WilyFireB1_PSN1024:C_PSN2{}actor WilyFireB1_PSN1025:C_PSN2{}actor WilyFireB1_PSN1026:C_PSN2{}actor WilyFireB1_PSN1027:C_PSN2{}actor WilyFireB1_PSN1028:C_PSN2{}actor WilyFireB1_PSN1029:C_PSN2{}actor WilyFireB1_PSN1030:C_PSN2{}actor WilyFireB1_PSN1031:C_PSN2{}\nactor WilyFireB1_PSN1032:C_PSN2{}actor WilyFireB1_PSN1033:C_PSN2{}actor WilyFireB1_PSN1034:C_PSN2{}actor WilyFireB1_PSN1035:C_PSN2{}actor WilyFireB1_PSN1036:C_PSN2{}actor WilyFireB1_PSN1037:C_PSN2{}actor WilyFireB1_PSN1038:C_PSN2{}actor WilyFireB1_PSN1039:C_PSN2{}\nactor WilyFireB1_PSN1040:C_PSN2{}actor WilyFireB1_PSN1041:C_PSN2{}actor WilyFireB1_PSN1042:C_PSN2{}actor WilyFireB1_PSN1043:C_PSN2{}actor WilyFireB1_PSN1044:C_PSN2{}actor WilyFireB1_PSN1045:C_PSN2{}actor WilyFireB1_PSN1046:C_PSN2{}actor WilyFireB1_PSN1047:C_PSN2{}\nactor WilyFireB1_PSN1048:C_PSN2{}actor WilyFireB1_PSN1049:C_PSN2{}actor WilyFireB1_PSN1050:C_PSN2{}actor WilyFireB1_PSN1051:C_PSN2{}actor WilyFireB1_PSN1052:C_PSN2{}actor WilyFireB1_PSN1053:C_PSN2{}actor WilyFireB1_PSN1054:C_PSN2{}actor WilyFireB1_PSN1055:C_PSN2{}\nactor WilyFireB1_PSN1056:C_PSN2{}actor WilyFireB1_PSN1057:C_PSN2{}actor WilyFireB1_PSN1058:C_PSN2{}actor WilyFireB1_PSN1059:C_PSN2{}actor WilyFireB1_PSN1060:C_PSN2{}actor WilyFireB1_PSN1061:C_PSN2{}actor WilyFireB1_PSN1062:C_PSN2{}actor WilyFireB1_PSN1063:C_PSN2{}\n\nactor PainWilyFireB1Hit : BasicPoisonBase\n{\nStates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 0 A_SetUserVar(\"user_AMOUNT\",1)//How much poison is given in tics. (1 if a powerup)\nTNT1 A 0 A_SetUserVar(\"user_HIT\",ACS_ExecuteWithResult(257,0))//Record who was hit\nTNT1 A 0 A_TransferPointer(2,0,2,2)//Make this projectile the shooters\nTNT1 A 0 A_SetUserVar(\"user_SOURCE\", ACS_ExecuteWithResult(257,0))//Record the original shooter\nTNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(C_POISONFOLLOW,user_HIT,-1,user_SOURCE)>=1, \"Death\")\n//^^Give player specific inventory based on who hit them, and also kills this actor if they already have that inventory\nTNT1 A 0 ACS_ExecuteAlways(C_POISONFOLLOW,0,user_HIT,200,user_SOURCE)//Makes this actor track/follow the person hit (Check ACS for more info)\n//^^This is Powerup track with following\nTNT1 A 0 A_GiveInventory(\"WeaponCharge\",50)//Duration between damage in tics\nGoto DoT\nDoT:\nTNT1 A 0 A_SpawnItemEX(\"WilyTackleFireFX1\",0,0,12,0,0,0,0,1)//From here you can do what for this actor while it tracks the Hit player.\nTNT1 A 1 A_JumpIfInventory(\"CollideFlag\",1,\"Death\")//If the Hit Player is out of poison time, this flag will be given to end this actor\nTNT1 A 0 A_SpawnItemEX(\"WilyTackleFireFX1\",0,0,12,0,0,0,0,1)\nTNT1 A 1 A_JumpIfInventory(\"CollideFlag\",1,\"Death\")\nTNT1 A 0 A_SpawnItemEX(\"WilyTackleFireFX1\",0,0,12,0,0,0,0,1)\nTNT1 A 1 A_JumpIfInventory(\"CollideFlag\",1,\"Death\")\nTNT1 A 0 A_SpawnItemEX(\"WilyTackleFireFX1\",0,0,12,0,0,0,0,1)\nTNT1 A 1 A_JumpIfInventory(\"CollideFlag\",1,\"Death\")\nTNT1 A 0 A_SpawnItemEX(\"WilyTackleFireFX2\",0,0,12,0,0,0,0,1)\nTNT1 A 1 A_JumpIfInventory(\"CollideFlag\",1,\"Death\")\nTNT1 A 0 A_SpawnItemEX(\"WilyTackleFireFX2\",0,0,12,0,0,0,0,1)\nTNT1 A 1 A_JumpIfInventory(\"CollideFlag\",1,\"Death\")\nTNT1 A 0 A_SpawnItemEX(\"WilyTackleFireFX2\",0,0,12,0,0,0,0,1)\nTNT1 A 1 A_JumpIfInventory(\"CollideFlag\",1,\"Death\")\nTNT1 A 0 A_SpawnItemEX(\"WilyTackleFireFX2\",0,0,12,0,0,0,0,1)\nTNT1 A 1 A_JumpIfInventory(\"CollideFlag\",1,\"Death\")\n\nTNT1 A 0 Thing_Move(0,user_HIT,1)//While this poison actor is following the player, its not following at the same rate online.\n//So the above will guarantee the below will spawn directly on the poisoned target.\nTNT1 A 0 A_SpawnItemEX(\"WilyFireCollide\",0,0,28)//The main damager\nloop\n}\n}\n\nactor PainMaestroAfterburn : BasicPoisonBase\n{\nStates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 0 A_SetUserVar(\"user_AMOUNT\",1)\nTNT1 A 0 A_SetUserVar(\"user_HIT\",ACS_ExecuteWithResult(257,0))\nTNT1 A 0 A_TransferPointer(2,0,2,2)\nTNT1 A 0 A_SetUserVar(\"user_SOURCE\", ACS_ExecuteWithResult(257,0))\nTNT1 A 0 ACS_ExecuteAlways(C_POISONFOLLOW,0,user_HIT,200,user_SOURCE)\nTNT1 A 0 A_GiveInventory(\"WeaponCharge\",50)\nGoto DoT\nDoT:\nTNT1 AAA 4 A_SpawnItemEx(\"MagmamanBitFX2\",random(4,18),0,random(16,40),frandom(1,4),0,frandom(0,2),random(0,359),1)\nTNT1 A 0 Thing_Move(0,user_HIT,1)\nTNT1 A 0 A_SpawnItemEX(\"MaestroAfterburn\",0,0,28)\nTNT1 AAA 4 A_SpawnItemEx(\"MagmamanBitFX2\",random(4,18),0,random(16,40),frandom(1,4),0,frandom(0,2),random(0,359),1)\nTNT1 A 0 Thing_Move(0,user_HIT,1)\nTNT1 A 0 A_SpawnItemEX(\"MaestroAfterburn\",0,0,28)\nTNT1 AAA 4 A_SpawnItemEx(\"MagmamanBitFX2\",random(4,18),0,random(16,40),frandom(1,4),0,frandom(0,2),random(0,359),1)\nTNT1 A 0 Thing_Move(0,user_HIT,1)\nTNT1 A 0 A_SpawnItemEX(\"MaestroAfterburn\",0,0,28)\nTNT1 AAA 4 A_SpawnItemEx(\"MagmamanBitFX2\",random(4,18),0,random(16,40),frandom(1,4),0,frandom(0,2),random(0,359),1)\nTNT1 A 0 Thing_Move(0,user_HIT,1)\nTNT1 A 0 A_SpawnItemEX(\"MaestroAfterburn\",0,0,28)\nTNT1 AAA 4 A_SpawnItemEx(\"MagmamanBitFX2\",random(4,18),0,random(16,40),frandom(1,4),0,frandom(0,2),random(0,359),1)\nTNT1 A 0 Thing_Move(0,user_HIT,1)\nTNT1 A 0 A_SpawnItemEX(\"MaestroAfterburn\",0,0,28)\nstop\n}\n}\n\nactor MegaFireBall_PSNFlag : OnceC{}\nactor MegaFireBall_PSN : C_PSN3{}\nactor MegaFireBall_PSN0 : C_PSN3{}//Online desync\n\nactor MegaFireBall_PSN1000:C_PSN3{}actor MegaFireBall_PSN1001:C_PSN3{}actor MegaFireBall_PSN1002:C_PSN3{}actor MegaFireBall_PSN1003:C_PSN3{}actor MegaFireBall_PSN1004:C_PSN3{}actor MegaFireBall_PSN1005:C_PSN3{}actor MegaFireBall_PSN1006:C_PSN3{}actor MegaFireBall_PSN1007:C_PSN3{}\nactor MegaFireBall_PSN1008:C_PSN3{}actor MegaFireBall_PSN1009:C_PSN3{}actor MegaFireBall_PSN1010:C_PSN3{}actor MegaFireBall_PSN1011:C_PSN3{}actor MegaFireBall_PSN1012:C_PSN3{}actor MegaFireBall_PSN1013:C_PSN3{}actor MegaFireBall_PSN1014:C_PSN3{}actor MegaFireBall_PSN1015:C_PSN3{}\nactor MegaFireBall_PSN1016:C_PSN3{}actor MegaFireBall_PSN1017:C_PSN3{}actor MegaFireBall_PSN1018:C_PSN3{}actor MegaFireBall_PSN1019:C_PSN3{}actor MegaFireBall_PSN1020:C_PSN3{}actor MegaFireBall_PSN1021:C_PSN3{}actor MegaFireBall_PSN1022:C_PSN3{}actor MegaFireBall_PSN1023:C_PSN3{}\nactor MegaFireBall_PSN1024:C_PSN3{}actor MegaFireBall_PSN1025:C_PSN3{}actor MegaFireBall_PSN1026:C_PSN3{}actor MegaFireBall_PSN1027:C_PSN3{}actor MegaFireBall_PSN1028:C_PSN3{}actor MegaFireBall_PSN1029:C_PSN3{}actor MegaFireBall_PSN1030:C_PSN3{}actor MegaFireBall_PSN1031:C_PSN3{}\nactor MegaFireBall_PSN1032:C_PSN3{}actor MegaFireBall_PSN1033:C_PSN3{}actor MegaFireBall_PSN1034:C_PSN3{}actor MegaFireBall_PSN1035:C_PSN3{}actor MegaFireBall_PSN1036:C_PSN3{}actor MegaFireBall_PSN1037:C_PSN3{}actor MegaFireBall_PSN1038:C_PSN3{}actor MegaFireBall_PSN1039:C_PSN3{}\nactor MegaFireBall_PSN1040:C_PSN3{}actor MegaFireBall_PSN1041:C_PSN3{}actor MegaFireBall_PSN1042:C_PSN3{}actor MegaFireBall_PSN1043:C_PSN3{}actor MegaFireBall_PSN1044:C_PSN3{}actor MegaFireBall_PSN1045:C_PSN3{}actor MegaFireBall_PSN1046:C_PSN3{}actor MegaFireBall_PSN1047:C_PSN3{}\nactor MegaFireBall_PSN1048:C_PSN3{}actor MegaFireBall_PSN1049:C_PSN3{}actor MegaFireBall_PSN1050:C_PSN3{}actor MegaFireBall_PSN1051:C_PSN3{}actor MegaFireBall_PSN1052:C_PSN3{}actor MegaFireBall_PSN1053:C_PSN3{}actor MegaFireBall_PSN1054:C_PSN3{}actor MegaFireBall_PSN1055:C_PSN3{}\nactor MegaFireBall_PSN1056:C_PSN3{}actor MegaFireBall_PSN1057:C_PSN3{}actor MegaFireBall_PSN1058:C_PSN3{}actor MegaFireBall_PSN1059:C_PSN3{}actor MegaFireBall_PSN1060:C_PSN3{}actor MegaFireBall_PSN1061:C_PSN3{}actor MegaFireBall_PSN1062:C_PSN3{}actor MegaFireBall_PSN1063:C_PSN3{}\n\nactor PainMegaFireBallHit : BasicPoisonBase//Spawned from MegaFireBall\n{\nStates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 0 A_SetUserVar(\"user_AMOUNT\",1)\n//TNT1 A 0 A_SetUserVar(\"user_HIT\",ACS_ExecuteWithResult(257,0))\n//TNT1 A 0 A_TransferPointer(2,0,2,2)\n//TNT1 A 0 A_SetUserVar(\"user_SOURCE\", ACS_ExecuteWithResult(257,0))\nTNT1 A 0 A_SetUserVar(\"user_HIT\",ACS_ExecuteWithResult(147,1))\nTNT1 A 0 A_SetUserVar(\"user_SOURCE\",ACS_ExecuteWithResult(147,0))\nTNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(C_POISONFOLLOW,user_HIT,-2,user_SOURCE)>=1, \"Death\")\nTNT1 A 0 ACS_ExecuteAlways(C_POISONFOLLOW,0,user_HIT,301,user_SOURCE)\n\nGoto DoT\nDoT://15\nTNT1 AAAAAAAAAAAAAAA 1 A_JumpIfInventory(\"CollideFlag\",1,\"Death\")\n\nTNT1 A 0 Thing_Move(0,user_HIT,1)\nTNT1 AAAAAAAAAA 0 A_SpawnItemEx(\"MagmamanBitFX2\",random(4,18),0,random(16,40),frandom(1,4),0,frandom(0,2),random(0,359),1)\nTNT1 A 0 A_SpawnItemEX(\"RockFireBallBurn\",0,0,28)//The main damager\nloop\n}\n}\n\nactor PainMegaFireBallHit2 : BasicPoisonBase//Spawned from MegaFireBall 2 : Burning Boogaloo\n{\nStates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 0 A_SetUserVar(\"user_AMOUNT\",1)\n//TNT1 A 0 A_SetUserVar(\"user_HIT\",ACS_ExecuteWithResult(257,0))\n//TNT1 A 0 A_TransferPointer(2,0,2,2)\n//TNT1 A 0 A_SetUserVar(\"user_SOURCE\", ACS_ExecuteWithResult(257,0))\nTNT1 A 0 A_SetUserVar(\"user_HIT\",ACS_ExecuteWithResult(147,1))\nTNT1 A 0 A_SetUserVar(\"user_SOURCE\",ACS_ExecuteWithResult(147,0))\nTNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(C_POISONFOLLOW,user_HIT,-2,user_SOURCE)>=1, \"DoT\")\nTNT1 A 0 ACS_ExecuteAlways(C_POISONFOLLOW,0,user_HIT,301,user_SOURCE)\n\nGoto DoT\nDoT://15\nTNT1 AAAAAAAAAAAAAAA 1 A_JumpIfInventory(\"CollideFlag\",1,\"Death\")\n\nTNT1 A 0 Thing_Move(0,user_HIT,1)\nTNT1 AAAAAAAAAA 0 A_SpawnItemEx(\"MagmamanBitFX2\",random(4,18),0,random(16,40),frandom(1,4),0,frandom(0,2),random(0,359),1)\nTNT1 A 0 A_SpawnItemEX(\"RockFireBallBurn\",0,0,28)//The main damager\nTNT1 AAAAAAAAAAAAAAA 1 A_JumpIfInventory(\"CollideFlag\",1,\"Death\")\n\nTNT1 A 0 Thing_Move(0,user_HIT,1)\nTNT1 AAAAAAAAAA 0 A_SpawnItemEx(\"MagmamanBitFX2\",random(4,18),0,random(16,40),frandom(1,4),0,frandom(0,2),random(0,359),1)\nTNT1 A 0 A_SpawnItemEX(\"RockFireBallBurn\",0,0,28)//The main damager\nstop\n}\n}\n\nactor PainMegaFireBallHit3 : BasicPoisonBase//Spawned from MegaFireBall 2 : Burning Boogaloo\n{\nStates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 0 A_SetUserVar(\"user_AMOUNT\",1)\n//TNT1 A 0 A_SetUserVar(\"user_HIT\",ACS_ExecuteWithResult(257,0))\n//TNT1 A 0 A_TransferPointer(2,0,2,2)\n//TNT1 A 0 A_SetUserVar(\"user_SOURCE\", ACS_ExecuteWithResult(257,0))\nTNT1 A 0 A_SetUserVar(\"user_HIT\",ACS_ExecuteWithResult(147,1))\nTNT1 A 0 A_SetUserVar(\"user_SOURCE\",ACS_ExecuteWithResult(147,0))\nTNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(C_POISONFOLLOW,user_HIT,-2,user_SOURCE)>=1, \"DoT\")\nTNT1 A 0 ACS_ExecuteAlways(C_POISONFOLLOW,0,user_HIT,301,user_SOURCE)\n\nGoto DoT\nDoT://15\nTNT1 AAAAAAAAAAAAAAA 1 A_JumpIfInventory(\"CollideFlag\",1,\"Death\")\n\nTNT1 A 0 Thing_Move(0,user_HIT,1)\nTNT1 AAAAAAAAAA 0 A_SpawnItemEx(\"MagmamanBitFX2\",random(4,18),0,random(16,40),frandom(1,4),0,frandom(0,2),random(0,359),1)\nTNT1 A 0 A_SpawnItemEX(\"RockFireBallBurn\",0,0,28)//The main damager\nTNT1 AAAAAAAAAAAAAAA 1 A_JumpIfInventory(\"CollideFlag\",1,\"Death\")\n\nTNT1 A 0 Thing_Move(0,user_HIT,1)\nTNT1 AAAAAAAAAA 0 A_SpawnItemEx(\"MagmamanBitFX2\",random(4,18),0,random(16,40),frandom(1,4),0,frandom(0,2),random(0,359),1)\nTNT1 A 0 A_SpawnItemEX(\"RockFireBallBurn\",0,0,28)//The main damager\nTNT1 AAAAAAAAAAAAAAA 1 A_JumpIfInventory(\"CollideFlag\",1,\"Death\")\n\nTNT1 A 0 Thing_Move(0,user_HIT,1)\nTNT1 AAAAAAAAAA 0 A_SpawnItemEx(\"MagmamanBitFX2\",random(4,18),0,random(16,40),frandom(1,4),0,frandom(0,2),random(0,359),1)\nTNT1 A 0 A_SpawnItemEX(\"RockFireBallBurn\",0,0,28)//The main damager\nTNT1 AAAAAAAAAAAAAAA 1 A_JumpIfInventory(\"CollideFlag\",1,\"Death\")\n\nTNT1 A 0 Thing_Move(0,user_HIT,1)\nTNT1 AAAAAAAAAA 0 A_SpawnItemEx(\"MagmamanBitFX2\",random(4,18),0,random(16,40),frandom(1,4),0,frandom(0,2),random(0,359),1)\nTNT1 A 0 A_SpawnItemEX(\"RockFireBallBurn\",0,0,28)//The main damager\nTNT1 AAAAAAAAAAAAAAA 1 A_JumpIfInventory(\"CollideFlag\",1,\"Death\")\n\nTNT1 A 0 Thing_Move(0,user_HIT,1)\nTNT1 AAAAAAAAAA 0 A_SpawnItemEx(\"MagmamanBitFX2\",random(4,18),0,random(16,40),frandom(1,4),0,frandom(0,2),random(0,359),1)\nTNT1 A 0 A_SpawnItemEX(\"RockFireBallBurn\",0,0,28)//The main damager\nstop\n}\n}\n\nactor LightRyuFire_PSNFlag : OnceC{}\nactor LightRyuFire_PSN : C_PSN3{}\nactor LightRyuFire_PSN0 : C_PSN3{}//Online desync\n\nactor LightRyuFire_PSN1000:C_PSN3{}actor LightRyuFire_PSN1001:C_PSN3{}actor LightRyuFire_PSN1002:C_PSN3{}actor LightRyuFire_PSN1003:C_PSN3{}actor LightRyuFire_PSN1004:C_PSN3{}actor LightRyuFire_PSN1005:C_PSN3{}actor LightRyuFire_PSN1006:C_PSN3{}actor LightRyuFire_PSN1007:C_PSN3{}\nactor LightRyuFire_PSN1008:C_PSN3{}actor LightRyuFire_PSN1009:C_PSN3{}actor LightRyuFire_PSN1010:C_PSN3{}actor LightRyuFire_PSN1011:C_PSN3{}actor LightRyuFire_PSN1012:C_PSN3{}actor LightRyuFire_PSN1013:C_PSN3{}actor LightRyuFire_PSN1014:C_PSN3{}actor LightRyuFire_PSN1015:C_PSN3{}\nactor LightRyuFire_PSN1016:C_PSN3{}actor LightRyuFire_PSN1017:C_PSN3{}actor LightRyuFire_PSN1018:C_PSN3{}actor LightRyuFire_PSN1019:C_PSN3{}actor LightRyuFire_PSN1020:C_PSN3{}actor LightRyuFire_PSN1021:C_PSN3{}actor LightRyuFire_PSN1022:C_PSN3{}actor LightRyuFire_PSN1023:C_PSN3{}\nactor LightRyuFire_PSN1024:C_PSN3{}actor LightRyuFire_PSN1025:C_PSN3{}actor LightRyuFire_PSN1026:C_PSN3{}actor LightRyuFire_PSN1027:C_PSN3{}actor LightRyuFire_PSN1028:C_PSN3{}actor LightRyuFire_PSN1029:C_PSN3{}actor LightRyuFire_PSN1030:C_PSN3{}actor LightRyuFire_PSN1031:C_PSN3{}\nactor LightRyuFire_PSN1032:C_PSN3{}actor LightRyuFire_PSN1033:C_PSN3{}actor LightRyuFire_PSN1034:C_PSN3{}actor LightRyuFire_PSN1035:C_PSN3{}actor LightRyuFire_PSN1036:C_PSN3{}actor LightRyuFire_PSN1037:C_PSN3{}actor LightRyuFire_PSN1038:C_PSN3{}actor LightRyuFire_PSN1039:C_PSN3{}\nactor LightRyuFire_PSN1040:C_PSN3{}actor LightRyuFire_PSN1041:C_PSN3{}actor LightRyuFire_PSN1042:C_PSN3{}actor LightRyuFire_PSN1043:C_PSN3{}actor LightRyuFire_PSN1044:C_PSN3{}actor LightRyuFire_PSN1045:C_PSN3{}actor LightRyuFire_PSN1046:C_PSN3{}actor LightRyuFire_PSN1047:C_PSN3{}\nactor LightRyuFire_PSN1048:C_PSN3{}actor LightRyuFire_PSN1049:C_PSN3{}actor LightRyuFire_PSN1050:C_PSN3{}actor LightRyuFire_PSN1051:C_PSN3{}actor LightRyuFire_PSN1052:C_PSN3{}actor LightRyuFire_PSN1053:C_PSN3{}actor LightRyuFire_PSN1054:C_PSN3{}actor LightRyuFire_PSN1055:C_PSN3{}\nactor LightRyuFire_PSN1056:C_PSN3{}actor LightRyuFire_PSN1057:C_PSN3{}actor LightRyuFire_PSN1058:C_PSN3{}actor LightRyuFire_PSN1059:C_PSN3{}actor LightRyuFire_PSN1060:C_PSN3{}actor LightRyuFire_PSN1061:C_PSN3{}actor LightRyuFire_PSN1062:C_PSN3{}actor LightRyuFire_PSN1063:C_PSN3{}\n\nactor PainLightRyuFireHit : BasicPoisonBase\n{\nStates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 0 A_SetUserVar(\"user_AMOUNT\",1)\nTNT1 A 0 A_SetUserVar(\"user_HIT\",ACS_ExecuteWithResult(257,0))\nTNT1 A 0 A_TransferPointer(2,0,2,2)\nTNT1 A 0 A_SetUserVar(\"user_SOURCE\", ACS_ExecuteWithResult(257,0))\nTNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(C_POISONFOLLOW,user_HIT,-3,user_SOURCE)>=1, \"Death\")\nTNT1 A 0 ACS_ExecuteAlways(C_POISONFOLLOW,0,user_HIT,302,user_SOURCE)\nGoto DoT\nDoT://15\nTNT1 AAAAAAAAAAAAAAA 1 A_JumpIfInventory(\"CollideFlag\",1,\"Death\")\n\nTNT1 A 0 Thing_Move(0,user_HIT,1)\nTNT1 AAAAAAAAAA 0 A_SpawnItemEx(\"MagmamanBitFX2\",random(4,18),0,random(16,40),frandom(1,4),0,frandom(0,2),random(0,359),1)\nTNT1 A 0 A_SpawnItemEX(\"LightRyuFireBurn\",0,0,28)\nTNT1 AAAAAAAAAAAAAAA 1 A_JumpIfInventory(\"CollideFlag\",1,\"Death\")\n\nTNT1 A 0 Thing_Move(0,user_HIT,1)\nTNT1 AAAAAAAAAA 0 A_SpawnItemEx(\"MagmamanBitFX2\",random(4,18),0,random(16,40),frandom(1,4),0,frandom(0,2),random(0,359),1)\nTNT1 A 0 A_SpawnItemEX(\"LightRyuFireBurn\",0,0,28)\nTNT1 AAAAAAAAAAAAAAA 1 A_JumpIfInventory(\"CollideFlag\",1,\"Death\")\n\nTNT1 A 0 Thing_Move(0,user_HIT,1)\nTNT1 AAAAAAAAAA 0 A_SpawnItemEx(\"MagmamanBitFX2\",random(4,18),0,random(16,40),frandom(1,4),0,frandom(0,2),random(0,359),1)\nTNT1 A 0 A_SpawnItemEX(\"LightRyuFireBurn\",0,0,28)\nTNT1 AAAAAAAAAAAAAAA 1 A_JumpIfInventory(\"CollideFlag\",1,\"Death\")\n\nTNT1 A 0 Thing_Move(0,user_HIT,1)\nTNT1 AAAAAAAAAA 0 A_SpawnItemEx(\"MagmamanBitFX2\",random(4,18),0,random(16,40),frandom(1,4),0,frandom(0,2),random(0,359),1)\nTNT1 A 0 A_SpawnItemEX(\"LightRyuFireBurn\",0,0,28)\nTNT1 AAAAAAAAAAAAAAA 1 A_JumpIfInventory(\"CollideFlag\",1,\"Death\")\n\nTNT1 A 0 Thing_Move(0,user_HIT,1)\nTNT1 AAAAAAAAAA 0 A_SpawnItemEx(\"MagmamanBitFX2\",random(4,18),0,random(16,40),frandom(1,4),0,frandom(0,2),random(0,359),1)\nTNT1 A 0 A_SpawnItemEX(\"LightRyuFireBurn\",0,0,28)\nstop\n}\n}\n\nactor PainGravitySlamHit : BasicHelper//Gravityman\n{\nvar int user_HIT;\nvar int user_GravStack;\n+NOCLIP\n//+NOTARGETSWITCH\nMass 250\nstates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 0 A_SetArg(0, z-floorz)\nTNT1 A 0 A_SetUserVar(\"user_HIT\", ACS_ExecuteWithResult(257,0))\nTNT1 A 0 A_TransferPointer(2,0,2,2)\nTNT1 A 0 ACS_ExecuteAlways(C_GRAVITY_SLAM,0,user_HIT)\ngoto CollideWait\nCollideWait:\nTNT1 A 1 A_JumpIfInventory(\"CollideFlag\",1,\"CollideCheck\")\nloop\n\nCollideCheck:\nTNT1 A 0 //A_LogInt(user_GravStack)\nTNT1 A 0 A_SetScale(user_GravStack)\nTNT1 A 0 A_JumpIf(user_GravStack>=Mass,\"CollideX\")\nTNT1 A 0 A_JumpIf(user_GravStack>=1,\"Collide\")\nTNT1 A 2 //A_Log(\"Gravity Slam = 0\")\nstop\nCollide:\nTNT1 A 0 Thing_Move(0,user_HIT,1)\nTNT1 A 2 A_SpawnItemEx(\"GravitySmackDownCollide\",0,0,28,0,0,0,0,SXF_TRANSFERSPECIAL)//SXF_TRANSFERSCALE\nTNT1 A 2\nstop\nCollideX:\nTNT1 A 0 Thing_Move(0,user_HIT,1)\nTNT1 A 2 A_SpawnItemEx(\"GravitySmackDownCollideX\",0,0,28,0,0,0,0,SXF_TRANSFERSPECIAL)\nTNT1 A 2\nstop\n}\n}\n\nactor PainGravitySphereSlamHit : PainGravitySlamHit//GravitySphere\n{\nStates\n{\nCollide:\nTNT1 A 0 Thing_Move(0,user_HIT,1)\nTNT1 A 2\nstop\nCollideX:\nTNT1 A 0 Thing_Move(0,user_HIT,1)\nTNT1 A 2\nstop\n}\n}\n\nactor PainG_TenguSlamHit : PainGravitySlamHit//Tenguman\n{\nStates\n{\nCollide:\nTNT1 A 0 Thing_Move(0,user_HIT,1)\nTNT1 A 2 A_SpawnItemEX(\"G_TenguSlamCollide\",0,0,28,0,0,0,0,SXF_TRANSFERSPECIAL)\nTNT1 A 2\nstop\nCollideX:\nTNT1 A 0 Thing_Move(0,user_HIT,1)\nTNT1 A 2 A_SpawnItemEX(\"G_TenguSlamCollideX\",0,0,28,0,0,0,0,SXF_TRANSFERSPECIAL)\nTNT1 A 2\nstop\n}\n}\n\nactor PainG_TornadoSlamHit : PainGravitySlamHit//Tornadoman\n{\nStates\n{\nCollide:\nTNT1 A 0 Thing_Move(0,user_HIT,1)\nTNT1 A 2 A_SpawnItemEX(\"G_TornadoSlamCollide\",0,0,28,0,0,0,0,16384)\nTNT1 A 2\nstop\nCollideX:\nTNT1 A 0 Thing_Move(0,user_HIT,1)\nTNT1 A 2 A_SpawnItemEX(\"G_TornadoSlamCollideX\",0,0,28,0,0,0,0,16384)\nTNT1 A 2\nstop\n}\n}\n\nactor PainDynaTagHit : BasicHitBaseF\n{\nStates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 0 A_SetUserVar(\"user_HIT\",ACS_ExecuteWithResult(257,0)+2000)\nTNT1 A 0 A_TransferPointer(2,0,2,2)\nTNT1 A 0 ACS_ExecuteAlways(C_DYNAMOACS,0,user_HIT,ACS_ExecuteWithResult(257,0))\nstop\n}\n}\n\n//Flings\nactor PainBaseFlingHit : BasicHitBaseF\n{\nvar int user_Amount;\nstates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 0 A_GiveToTarget(\"TempPitProtect\",1)\nTNT1 A 0 A_SetUserVar(\"user_HIT\", ACS_ExecuteWithResult(257,0))\nTNT1 A 0 A_TransferPointer(2,0,2,2)\nTNT1 A 0 ACS_ExecuteAlways(C_JAX_FLINGACS,0,ACS_ExecuteWithResult(257,0),user_HIT,user_Amount)\nstop\n}\n}\n\nactor PainSaturnShotHit : PainBaseFlingHit\n{\nstates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 0 A_SetUserVar(\"user_Amount\",45)\ngoto PainBaseFlingHit::Spawn\n}\n}\n\nactor PainDuoRamHit : PainBaseFlingHit\n{\nstates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 0 A_SetUserVar(\"user_Amount\",32)\ngoto PainBaseFlingHit::Spawn\n}\n}\n\nactor DeathLightRyuShoryuHit : PainBaseFlingHit\n{\nstates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 0 A_SetUserVar(\"user_Amount\",15)\ngoto PainBaseFlingHit::Spawn+2\n}\n}\n\nactor DeathLightRyuShinShoryuHit : PainBaseFlingHit\n{\nstates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 0 A_SetUserVar(\"user_Amount\",35)\ngoto PainBaseFlingHit::Spawn+2\n}\n}\n\nactor PainMagPushHit : BasicHitBaseF//MagHitKai\n{\nstates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 0 A_GiveToTarget(\"TempPitProtect\",1)\nTNT1 A 0 A_SetUserVar(\"user_HIT\", ACS_ExecuteWithResult(257,0))\nTNT1 A 0 A_TransferPointer(2,0,2,2)\nTNT1 A 0 ACS_ExecuteAlways(C_JAX_FLINGACS,0,ACS_ExecuteWithResult(257,0),user_HIT,0+2.5*ACS_ExecuteWithResult(C_CHECK_TARGET_ITEM,2))\nstop\n}\n}\n\nactor PainPharaohPunchHit : PainBaseFlingHit\n{\nstates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 0 A_SetUserVar(\"user_Amount\",20)\ngoto PainBaseFlingHit::Spawn\n}\n}\nactor PainKnightRushHit : PainBaseFlingHit\n{\nstates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 0 A_SetUserVar(\"user_Amount\",8)\ngoto PainBaseFlingHit::Spawn\n}\n}\n\nactor PainKnightBonkHit : PainBaseFlingHit\n{\nstates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 0 A_SetUserVar(\"user_Amount\",8)\ngoto PainBaseFlingHit::Spawn\n}\n}\n\nactor PainWindStormPullHit : PainBaseFlingHit\n{\nstates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 0 A_SetUserVar(\"user_Amount\",-16)\ngoto PainBaseFlingHit::Spawn\n}\n}\n\nactor PainWindStormPushHit : BasicHitBaseF\n{\nstates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 0 A_GiveToTarget(\"TempPitProtect\",1)\nTNT1 A 0 A_SetUserVar(\"user_HIT\", ACS_ExecuteWithResult(257,0))\nTNT1 A 0 A_TransferPointer(2,0,2,2)\nTNT1 A 0 ACS_ExecuteAlways(C_JAX_FLINGACS,0,ACS_ExecuteWithResult(257,0),user_HIT,10+ACS_ExecuteWithResult(C_CHECK_TARGET_ITEM,1))\nstop\n}\n}\n\nactor PainODuoRamHit : PainBaseFlingHit\n{\nstates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 0 A_SetUserVar(\"user_Amount\",64)\ngoto PainBaseFlingHit::Spawn\n}\n}\nactor PainODuoMeteorFHit : PainBaseFlingHit\n{\nStates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 0 A_SetUserVar(\"user_Amount\",38)\ngoto PainBaseFlingHit::Spawn\n}\n}\n\nactor DeathConcreteShoulderHit : PainBaseFlingHit\n{\nstates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 0 A_SetUserVar(\"user_Amount\",70)\ngoto PainBaseFlingHit::Spawn+2\n}\n}\n\nactor DeathUranusLiftHit : PainBaseFlingHit\n{\nstates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 0 A_SetUserVar(\"user_Amount\",40)\ngoto PainBaseFlingHit::Spawn+2\n}\n}\n\nactor PainEnkerPushHit : PainBaseFlingHit\n{\nstates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 0 A_SetUserVar(\"user_Amount\",22)\ngoto PainBaseFlingHit::Spawn\n}\n}\nactor DeathEnkerPushHit : PainBaseFlingHit\n{\nstates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 0 A_SetUserVar(\"user_Amount\",44)\ngoto PainBaseFlingHit::Spawn+2\n}\n}\n\nactor PainMegaWaterBarrierHit : BasicHitBaseF\n{\nstates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 0 A_GiveToTarget(\"TempPitProtect\",1)\nTNT1 A 0 A_SetUserVar(\"user_HIT\", ACS_ExecuteWithResult(257,0))\nTNT1 A 0 A_TransferPointer(2,0,2,2)\nTNT1 A 0 ACS_ExecuteAlways(C_JAX_FLINGACS,0,ACS_ExecuteWithResult(257,0),user_HIT,5+1*ACS_ExecuteWithResult(C_CHECK_TARGET_ITEM,3))\nstop\n}\n}\n\nactor PainHarpoon2PullHit : PainBaseFlingHit\n{\nstates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 0 A_SetUserVar(\"user_Amount\",-30)\ngoto PainBaseFlingHit::Spawn\n}\n}\n\nactor PainYellowDevilPHit : PainBaseFlingHit\n{\nstates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 0 A_SetUserVar(\"user_Amount\",77)\ngoto PainBaseFlingHit::Spawn\n}\n}\n\nactor PainHyperStormBlasterHit : PainBaseFlingHit\n{\nstates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 0 A_SetUserVar(\"user_Amount\",7)\ngoto PainBaseFlingHit::Spawn\n}\n}\n\nactor PainJupiterPushHit : PainBaseFlingHit\n{\nstates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 0 A_SetUserVar(\"user_Amount\",25)\ngoto PainBaseFlingHit::Spawn\n}\n}\n\n//Give on-hit\nactor PainRollHit : BasicHitBase\n{\nStates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 0 A_GiveToTarget(\"PainRollHit_P\",1)\nstop\n}\n}\nactor PainRollHit_P : CustomInventory\n{\nStates\n{\nPickup:\nTNT1 A 0 A_GiveToTarget(\"RollHealAmmo\",4)\nstop\n}\n}\n\nactor PainLightRyu1Hit : BasicHitBase\n{\nStates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 0 A_GiveToTarget(\"PainLightRyu1Hit_P\",1)\nstop\n}\n}\nactor PainLightRyu1Hit_P : CustomInventory\n{\nStates\n{\nPickup:\nTNT1 A 0 A_GiveToTarget(\"SuperComboGauge\",1)\nstop\n}\n}\nactor PainLightRyu4Hit : BasicHitBase\n{\nStates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 0 A_GiveToTarget(\"PainLightRyu4Hit_P\",1)\nstop\n}\n}\nactor PainLightRyu4Hit_P : CustomInventory\n{\nStates\n{\nPickup:\nTNT1 A 0 A_GiveToTarget(\"SuperComboGauge\",4)\nstop\n}\n}\nactor PainLightRyuStopHit : BasicHitBase\n{\nStates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 0 A_GiveToTarget(\"PainLightRyuStopHit_P\",1)\nstop\n}\n}\nactor PainLightRyuStopHit_P : CustomInventory\n{\nStates\n{\nPickup:\nTNT1 A 0 A_GiveToTarget(\"RyuShinShoryuFlag_P\",1)\nstop\n}\n}\n\nactor JoeHitFlag2 : Inventory\n{\ninventory.amount 1\ninventory.maxamount 1\n}\nactor JoeHitFlag : Powerup\n{\nPowerup.Duration -8\n}\nactor JoeHitItem : CustomInventory\n{\nStates\n{\nPickup:\nTNT1 A 0 A_JumpIfInventory(\"JoeHitFlag\",1,3)\nTNT1 A 0 A_GiveInventory(\"JoeHitFlag2\",1)\nTNT1 A 0 A_SpawnItemEx(\"JoeHitWatcher\")\nTNT1 A 0 A_GiveInventory(\"JoeHitFlag\",1)\nstop\n}\n}\nactor JoeHitWatcher : BasicHelper\n{\nStates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 1\nTNT1 A 0 A_JumpIfInTargetInventory(\"JoeHitFlag\", 1, \"Spawn\")\nTNT1 A 0 A_TakeFromTarget(\"JoeHitFlag2\",999)\nstop\n}\n}\n\nactor JoeJHit: BasicHitBase\n{\nStates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 0 A_GiveToTarget(\"JoeJHit_P\",1)\nstop\n}\n}\nactor JoeJHit_P: CustomInventory\n{\nStates\n{\nPickup:\nTNT1 A 0 A_GiveToTarget(\"JoeUpgradeAmmo\",10)\nstop\n}\n}\n\nactor PainBBA_MegaRHit : BasicHitBase\n{\nStates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 0 A_GiveToTarget(\"PainBBA_MegaRHit_P\",1)\nstop\n}\n}\nactor PainBBA_MegaRHit_P : CustomInventory\n{\nStates\n{\nPickup:\nTNT1 A 0 A_GiveToTarget(\"BBA_Money\",16)\nstop\n}\n}\n\nactor PainToadLeapHit : BasicHitBase\n{\nStates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 0 A_GiveToTarget(\"PainToadLeapHit_P\",1)\nstop\n}\n}\nactor PainToadLeapHit_P : CustomInventory\n{\nStates\n{\nPickup:\nTNT1 A 0 A_GiveToTarget(\"ToadLeap_Pickup\",1)\nstop\n}\n}\n\nactor PainPlantBusterHit : BasicHitBase\n{\nStates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 0 A_GiveToTarget(\"PainPlantBusterHit_P\",1)\nstop\n}\n}\nactor PainPlantBusterHit_P : CustomInventory\n{\nStates\n{\nPickup:\nTNT1 A 0 A_GiveToTarget(\"PlantmanHealAmmoHelper\")\nTNT1 A 0 A_GiveToTarget(\"LMSRegen\",1)\nstop\n}\n}\n\nactor PainBlizzardBowlHit : BasicHitBase\n{\nStates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 0 A_GiveToTarget(\"PainBlizzardBowlHit_P\",1)\nstop\n}\n}\nactor PainBlizzardBowlHit_P : CustomInventory\n{\nStates\n{\nPickup:\nTNT1 A 0 A_GiveToTarget(\"CrackFlag\",1)\nstop\n}\n}\n\nactor PainTerraMeleeHit : PainBaseFlingHit\n{\nstates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 0 A_SetUserVar(\"user_Amount\",10)\ngoto PainBaseFlingHit::Spawn\n}\n}\n\nactor SolarVentHit : PainBaseFlingHit\n{\nstates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 0 A_SetUserVar(\"user_Amount\",16)\ngoto PainBaseFlingHit::Spawn\n}\n}\n\nactor PainShadeSuckHit : BasicHitBase\n{\nStates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 0 A_GiveToTarget(\"PainShadeSuckHit_P\",1)\nstop\n}\n}\nactor PainShadeSuckHit_P : CustomInventory\n{\nStates\n{\nPickup:\nTNT1 A 0 A_JumpIfInventory(\"DocBusterC\",1,\"P_DOC\")\n\nTNT1 A 0 A_JumpIfInventory(\"EnkerAbsorbCount\",1,\"P_1\")\nTNT1 A 0 A_JumpIfInventory(\"BasicArmor\",1,\"P_2\")\nTNT1 A 0 A_JumpIfInventory(\"StarArmorPower\",1,\"P_2\")\n\nTNT1 A 0 A_JumpIfInventory(\"WilyNoSuitWeakness\",1,\"P_7\")\nTNT1 A 0 A_JumpIfInventory(\"DynamoHealingWeakness\",1,\"P_7\")\nTNT1 A 0 A_JumpIfInventory(\"TrioRageWeakness\",1,\"P_10\")\ngoto P_5\n\nP_1:TNT1 A 0 A_GiveToTarget(\"Health\",1)stop\nP_2:TNT1 A 0 A_GiveToTarget(\"Health\",2)stop\nP_3:TNT1 A 0 A_GiveToTarget(\"Health\",3)stop\nP_4:TNT1 A 0 A_GiveToTarget(\"Health\",5)stop\nP_5:TNT1 A 0 A_GiveToTarget(\"Health\",5)stop\nP_6:TNT1 A 0 A_GiveToTarget(\"Health\",6)stop\nP_7:TNT1 A 0 A_GiveToTarget(\"Health\",7)stop\nP_8:TNT1 A 0 A_GiveToTarget(\"Health\",8)stop\nP_9:TNT1 A 0 A_GiveToTarget(\"Health\",9)stop\nP_10:TNT1 A 0 A_GiveToTarget(\"Health\",10)stop\nP_11:TNT1 A 0 A_GiveToTarget(\"Health\",11)stop\n\nP_DOC:\nTNT1 A 0 A_JumpIfInventory(\"DocToadHealthBar\",1,\"P_3\")\nTNT1 A 0 A_JumpIfInventory(\"DuoHealthBar\",1,\"P_4\")\nTNT1 A 0 A_JumpIfInventory(\"MegaHealthBar\",1,\"P_6\")\nTNT1 A 0 A_JumpIfInventory(\"ProtoHealthBar\",1,\"P_7\")\ngoto P_7\nNo:\nTNT1 A 0\nstop\n}\n}\n\nactor ChargeHit : BasicHitBase\n{\nStates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 0 A_GiveToTarget(\"ChargeHit_P\",1)\nstop\n}\n}\nactor ChargeHit_P : CustomInventory\n{\nStates\n{\nPickup:\nTNT1 A 0 A_GiveToTarget(\"ChargemanArmorBonus\",1)\nTNT1 A 0 A_GiveToTarget(\"ChargemanArmorDelay\",1)\nstop\n}\n}\n\nactor PainFlashBombB1Hit : BasicHitBase\n{\nStates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 0 A_GiveToTarget(\"PainFlashBombB1Hit_P\",1)\nstop\n}\n}\nactor PainFlashBombB1Hit_P : CustomInventory\n{\nStates\n{\nPickup:\nTNT1 A 0 A_GiveToTarget(\"THATFELTGOODAMMO\",1)\nstop\n}\n}\nactor PainFlashBombB2Hit : BasicHitBase\n{\nStates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 0 A_GiveToTarget(\"PainFlashBombB2Hit_P\",1)\nstop\n}\n}\nactor PainFlashBombB2Hit_P : CustomInventory\n{\nStates\n{\nPickup:\nTNT1 A 0 A_GiveToTarget(\"THATFELTGOODAMMO\",3)\nstop\n}\n}\n\nactor PainMagicCardBHit : CustomInventory\n{\nStates\n{\nPickup:\nTNT1 A 0 //A_JumpIf(CheckClass(\"Magicman\",2),\"GiveHealth\")//This works, but not on the first hit\n//stop\n//GiveHealth:\nTNT1 A 0 A_JumpIfInventory(\"MagicStackedDeckFlag1\",1,\"Stack_1\")\nTNT1 A 0 A_JumpIfInventory(\"MagicStackedDeckFlag2\",1,\"Stack_1\")\nTNT1 A 0 A_JumpIfInventory(\"MagicStackedDeckFlag3\",1,\"Stack_2\")\nTNT1 A 0 A_JumpIfInventory(\"MagicStackedDeckFlag4\",1,\"Stack_3\")\nTNT1 A 0 A_JumpIfInventory(\"MagicStackedDeckFlag5\",1,\"Stack_4\")\ngoto Stack_5\nStack_1:\nTNT1 A 0 A_GiveInventory(\"MagicStackedDeckFlag1\",1)\nTNT1 A 0 A_SpawnItemEx(\"MagicCardHealth_1\",0,0,28,0,0,0,0,1)\nstop\nStack_2:\nTNT1 A 0 A_GiveInventory(\"MagicStackedDeckFlag2\",1)\nTNT1 A 0 A_SpawnItemEx(\"MagicCardHealth_2\",0,0,28,0,0,0,0,1)\nstop\nStack_3:\nTNT1 A 0 A_GiveInventory(\"MagicStackedDeckFlag3\",1)\nTNT1 A 0 A_SpawnItemEx(\"MagicCardHealth_3\",0,0,28,0,0,0,0,1)\nstop\nStack_4:\nTNT1 A 0 A_GiveInventory(\"MagicStackedDeckFlag4\",1)\nTNT1 A 0 A_SpawnItemEx(\"MagicCardHealth_4\",0,0,28,0,0,0,0,1)\nstop\nStack_5:\nTNT1 A 0 A_GiveInventory(\"MagicStackedDeckFlag5\",1)\nTNT1 A 0 A_SpawnItemEx(\"MagicCardHealth_5\",0,0,28,0,0,0,0,1)\nstop\n\nNo:\nTNT1 A 0\nstop\n}\n}\n\nactor MagicStackedDeckFlag1 : Powerup\n{\nPowerup.Duration -3\n}\nactor MagicStackedDeckFlag2 : MagicStackedDeckFlag1 {}\nactor MagicStackedDeckFlag3 : MagicStackedDeckFlag1 {}\nactor MagicStackedDeckFlag4 : MagicStackedDeckFlag1 {}\nactor MagicStackedDeckFlag5 : MagicStackedDeckFlag1 {}\n\nactor MagicCardHealth_1\n{\nPROJECTILE\n+NOINTERACTION\n+NOCLIP\n+SEEKERMISSILE\nReactionTime 100\nDamage (0)\nRadius 2\nHeight 2\nspeed 35\nscale 2.5\nstates\n{\nSpawn:\nMCAR S 0\nMCAR S 0 A_TransferPointer(2,0,2,2)\nMCAR S 0 A_RearrangePointers(0,0,2)\nMCAR S 1 A_FaceTarget\ngoto Spawn2\nSpawn2:\nMCAR S 1 A_JumpIfCloser(64,\"Giver\")MCAR S 0 A_SeekerMissile(90,90,2)\nMCAR S 1 A_JumpIfCloser(64,\"Giver\")MCAR S 0 A_SeekerMissile(90,90,2)\nMCAR S 1 A_JumpIfCloser(64,\"Giver\")MCAR S 0 A_SeekerMissile(90,90,2)\nMCAR S 1 A_JumpIfCloser(64,\"Giver\")MCAR S 0 A_SeekerMissile(90,90,2)\nMCAR S 1 A_JumpIfCloser(64,\"Giver\")MCAR S 0 A_SeekerMissile(90,90,2)\nMCAR S 1 A_JumpIfCloser(64,\"Giver\")MCAR S 0 A_SeekerMissile(90,90,2)\nMCAR T 1 A_JumpIfCloser(64,\"Giver\")MCAR S 0 A_SeekerMissile(90,90,2)\nMCAR T 1 A_JumpIfCloser(64,\"Giver\")MCAR S 0 A_SeekerMissile(90,90,2)\nMCAR T 1 A_JumpIfCloser(64,\"Giver\")MCAR S 0 A_SeekerMissile(90,90,2)\nMCAR T 1 A_JumpIfCloser(64,\"Giver\")MCAR S 0 A_SeekerMissile(90,90,2)\nMCAR T 1 A_JumpIfCloser(64,\"Giver\")MCAR S 0 A_SeekerMissile(90,90,2)\nMCAR T 1 A_JumpIfCloser(64,\"Giver\")MCAR S 0 A_SeekerMissile(90,90,2)\nMCAR S 0 A_JumpIf(ACS_ExecuteWithResult(C_CHECK_TARGET_OOC)==0,\"SuperDeath\")\nMCAR S 0 A_CountDown\nloop\nSuperDeath:\nTNT1 A 1\nstop\nGiver:\nTNT1 A 0 A_GiveToTarget(\"MC_H_PU_1\",1)\ngoto End\nEnd:\nTNT1 A 0 A_Stop\nTNT1 A 1 A_SpawnItemEx(\"MagicCardHealthFX\",-8,0,-8,0,0,0,0,1)\nstop\nDeath:\nTNT1 A 1\nstop\n}\n}\n\nactor MagicCardHealthFX : BasicHelper\n{\nStates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 0 A_PlaySoundEx(\"item/energyup\",\"Weapon\")\nTNT1 A 2 A_SpawnItemEx(\"MagicCardHealthFX2\",0,0,0,0,0,0,0,1)\nstop\n}\n}\n\nactor MagicCardHealthFX2 : BasicClientSide\n{\nStates\n{\nSpawn:\nMGB9 ABCDEFG 3\nstop\n}\n}\n\nactor MagicCardHealth_2 : MagicCardHealth_1\n{\nStates\n{\nGiver:\nTNT1 A 0 A_GiveToTarget(\"MC_H_PU_2\",1)\ngoto End\n}\n}\nactor MagicCardHealth_3 : MagicCardHealth_1{States{Giver:TNT1 A 0 A_GiveToTarget(\"MC_H_PU_3\",1)goto End}}\nactor MagicCardHealth_4 : MagicCardHealth_1{States{Giver:TNT1 A 0 A_GiveToTarget(\"MC_H_PU_4\",1)goto End}}\nactor MagicCardHealth_5 : MagicCardHealth_1{States{Giver:TNT1 A 0 A_GiveToTarget(\"MC_H_PU_5\",1)goto End}}\nactor MagicCardHealth_6 : MagicCardHealth_1{States{Giver:TNT1 A 0 A_GiveToTarget(\"MC_H_PU_6\",1)goto End}}\nactor MagicCardHealth_7 : MagicCardHealth_1{States{Giver:TNT1 A 0 A_GiveToTarget(\"MC_H_PU_7\",1)goto End}}\nactor MagicCardHealth_8 : MagicCardHealth_1{States{Giver:TNT1 A 0 A_GiveToTarget(\"MC_H_PU_8\",1)goto End}}\nactor MagicCardHealth_9 : MagicCardHealth_1{States{Giver:TNT1 A 0 A_GiveToTarget(\"MC_H_PU_9\",1)goto End}}\nactor MagicCardHealth_10: MagicCardHealth_1{States{Giver:TNT1 A 0 A_GiveToTarget(\"MC_H_PU_10\",1)goto End}}\nactor MagicCardHealth_11: MagicCardHealth_1{States{Giver:TNT1 A 0 A_GiveToTarget(\"MC_H_PU_11\",1)goto End}}\nactor MagicCardHealth_12: MagicCardHealth_1{States{Giver:TNT1 A 0 A_GiveToTarget(\"MC_H_PU_12\",1)goto End}}\nactor MagicCardHealth_13: MagicCardHealth_1{States{Giver:TNT1 A 0 A_GiveToTarget(\"MC_H_PU_13\",1)goto End}}\nactor MagicCardHealth_14: MagicCardHealth_1{States{Giver:TNT1 A 0 A_GiveToTarget(\"MC_H_PU_14\",1)goto End}}\nactor MagicCardHealth_15: MagicCardHealth_1{States{Giver:TNT1 A 0 A_GiveToTarget(\"MC_H_PU_15\",1)goto End}}\nactor MagicCardHealth_16: MagicCardHealth_1{States{Giver:TNT1 A 0 A_GiveToTarget(\"MC_H_PU_16\",1)goto End}}\nactor MagicCardHealth_17: MagicCardHealth_1{States{Giver:TNT1 A 0 A_GiveToTarget(\"MC_H_PU_17\",1)goto End}}\nactor MagicCardHealth_18: MagicCardHealth_1{States{Giver:TNT1 A 0 A_GiveToTarget(\"MC_H_PU_18\",1)goto End}}\nactor MagicCardHealth_19: MagicCardHealth_1{States{Giver:TNT1 A 0 A_GiveToTarget(\"MC_H_PU_19\",1)goto End}}\nactor MagicCardHealth_20: MagicCardHealth_1{States{Giver:TNT1 A 0 A_GiveToTarget(\"MC_H_PU_20\",1)goto End}}\n\nactor MC_H_PU_1 : CustomInventory\n{\nstates\n{\nPickup:\nTNT1 A 0 A_JumpIf(Health>0,\"Pickup2\")\nstop\nPickup2:\nTNT1 A 0 ACS_NamedExecuteAlways(\"C_HEALTHACS\",0,2,1)\nstop\n}\n}\nactor MC_H_PU_2 : MC_H_PU_1{states{Pickup2:TNT1 A 0 ACS_NamedExecuteAlways(\"C_HEALTHACS\",0,2,2)stop}}\nactor MC_H_PU_3 : MC_H_PU_1{states{Pickup2:TNT1 A 0 ACS_NamedExecuteAlways(\"C_HEALTHACS\",0,2,3)stop}}\nactor MC_H_PU_4 : MC_H_PU_1{states{Pickup2:TNT1 A 0 ACS_NamedExecuteAlways(\"C_HEALTHACS\",0,2,4)stop}}\nactor MC_H_PU_5 : MC_H_PU_1{states{Pickup2:TNT1 A 0 ACS_NamedExecuteAlways(\"C_HEALTHACS\",0,2,5)stop}}\nactor MC_H_PU_6 : MC_H_PU_1{states{Pickup2:TNT1 A 0 ACS_NamedExecuteAlways(\"C_HEALTHACS\",0,2,6)stop}}\nactor MC_H_PU_7 : MC_H_PU_1{states{Pickup2:TNT1 A 0 ACS_NamedExecuteAlways(\"C_HEALTHACS\",0,2,7)stop}}\nactor MC_H_PU_8 : MC_H_PU_1{states{Pickup2:TNT1 A 0 ACS_NamedExecuteAlways(\"C_HEALTHACS\",0,2,8)stop}}\nactor MC_H_PU_9 : MC_H_PU_1{states{Pickup2:TNT1 A 0 ACS_NamedExecuteAlways(\"C_HEALTHACS\",0,2,9)stop}}\nactor MC_H_PU_10: MC_H_PU_1{states{Pickup2:TNT1 A 0 ACS_NamedExecuteAlways(\"C_HEALTHACS\",0,2,10)stop}}\nactor MC_H_PU_11: MC_H_PU_1{states{Pickup2:TNT1 A 0 ACS_NamedExecuteAlways(\"C_HEALTHACS\",0,2,11)stop}}\nactor MC_H_PU_12: MC_H_PU_1{states{Pickup2:TNT1 A 0 ACS_NamedExecuteAlways(\"C_HEALTHACS\",0,2,12)stop}}\nactor MC_H_PU_13: MC_H_PU_1{states{Pickup2:TNT1 A 0 ACS_NamedExecuteAlways(\"C_HEALTHACS\",0,2,13)stop}}\nactor MC_H_PU_14: MC_H_PU_1{states{Pickup2:TNT1 A 0 ACS_NamedExecuteAlways(\"C_HEALTHACS\",0,2,14)stop}}\nactor MC_H_PU_15: MC_H_PU_1{states{Pickup2:TNT1 A 0 ACS_NamedExecuteAlways(\"C_HEALTHACS\",0,2,15)stop}}\nactor MC_H_PU_16: MC_H_PU_1{states{Pickup2:TNT1 A 0 ACS_NamedExecuteAlways(\"C_HEALTHACS\",0,2,16)stop}}\nactor MC_H_PU_17: MC_H_PU_1{states{Pickup2:TNT1 A 0 ACS_NamedExecuteAlways(\"C_HEALTHACS\",0,2,17)stop}}\nactor MC_H_PU_18: MC_H_PU_1{states{Pickup2:TNT1 A 0 ACS_NamedExecuteAlways(\"C_HEALTHACS\",0,2,18)stop}}\nactor MC_H_PU_19: MC_H_PU_1{states{Pickup2:TNT1 A 0 ACS_NamedExecuteAlways(\"C_HEALTHACS\",0,2,19)stop}}\nactor MC_H_PU_20: MC_H_PU_1{states{Pickup2:TNT1 A 0 ACS_NamedExecuteAlways(\"C_HEALTHACS\",0,2,20)stop}}\n\nactor PainODuoMeteorHit : BasicHitBase\n{\nStates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 0 A_GiveToTarget(\"PainODuoMeteorHit_P\",1)\nstop\n}\n}\nactor PainODuoMeteorHit_P : CustomInventory\n{\nStates\n{\nPickup:\nTNT1 A 0 A_GiveToTarget(\"ODuoTheMeteorPickup\",1)\nstop\n}\n}\n\nactor PainConcreteShoulderHit : PainBaseFlingHit\n{\nStates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 0 A_GiveToTarget(\"PainConcreteShoulderHit_P\",1)\nTNT1 A 0 A_SetUserVar(\"user_Amount\",30)\ngoto PainBaseFlingHit::Spawn\n}\n}\nactor PainConcreteShoulderHit_P : CustomInventory\n{\nStates\n{\nPickup:\nTNT1 A 0 A_GiveToTarget(\"ConcreteBashFlag\",1)\nstop\n}\n}\n\nactor PainStrikeBallHit : PainBaseFlingHit\n{\nStates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 0 A_GiveToTarget(\"PainStrikeBallHit_P\",1)\nTNT1 A 0 A_SetUserVar(\"user_Amount\",30)\ngoto PainBaseFlingHit::Spawn\n}\n}\n\nactor PainStrikeBallHit_P : CustomInventory\n{\nStates\n{\nPickup:\nTNT1 A 0 A_GiveToTarget(\"StrikeHitTarget\",1)\nstop\n}\n}\n\nactor PainStrikeBallHit2 : PainBaseFlingHit\n{\nStates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 0 A_GiveToTarget(\"PainStrikeBallHit2_P\",1)\nTNT1 A 0 A_SetUserVar(\"user_Amount\",40)\ngoto PainBaseFlingHit::Spawn\n}\n}\n\nactor PainStrikeBallHit2_P : CustomInventory\n{\nStates\n{\nPickup:\nTNT1 A 0 A_GiveToTarget(\"ReboundStrikerPower\",4)\nstop\n}\n}\n\nactor PainDarkTankHit : PainBaseFlingHit\n{\nStates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 0 A_SetUserVar(\"user_Amount\",5)\ngoto PainBaseFlingHit::Spawn\n}\n}\n\nactor PainTornadoLeapHit : BasicHitBase\n{\nStates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 0 A_GiveToTarget(\"PainTornadoLeapHit_P\",1)\nstop\n}\n}\nactor PainTornadoLeapHit_P : CustomInventory\n{\nStates\n{\nPickup:\nTNT1 A 0 A_GiveToTarget(\"TornadoLeap_Pickup\",1)\nstop\n}\n}\n\nactor PainQuintLeapHit : BasicHitBase\n{\nStates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 0 A_GiveToTarget(\"PainQuintLeapHit_P\",1)\nstop\n}\n}\nactor PainQuintLeapHit_P : CustomInventory\n{\nStates\n{\nPickup:\nTNT1 A 0 A_GiveToTarget(\"QuintLeap_Pickup\",1)\nstop\n}\n}\n\nactor PainHSHColdHit : BasicHitBase\n{\nStates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 0 A_GiveToTarget(\"PainHSHColdHit_P\",1)\nstop\n}\n}\nactor PainHSHColdHit_P : CustomInventory\n{\nStates\n{\nPickup:\nTNT1 A 0 A_GiveToTarget(\"HyperStormCold\",6)\nstop\n}\n}\n\nactor PainHSHSuckHit : BasicHitBase\n{\nStates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 0 A_GiveToTarget(\"PainHSHSuckHit_P\",1)\nstop\n}\n}\nactor PainHSHSuckHit_P : CustomInventory\n{\nStates\n{\nPickup:\nTNT1 A 0 //A_GiveToTarget(\"Health\",1)\nstop\n}\n}\n\nactor PainScrewCrusherMHit : BasicHitBase\n{\nStates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 0 A_GiveToTarget(\"PainScrewCrusherMHit_P\",1)\nstop\n}\n}\nactor PainScrewCrusherMHit_P : CustomInventory\n{\nStates\n{\nPickup:\nTNT1 A 0 A_GiveToTarget(\"PunkMeleeStopPickup\",1)\nstop\n}\n}\n\n//Bull\nactor PainProtoShieldBashHit : PainBaseFlingHit\n{\nstates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 0 A_SetUserVar(\"user_Amount\",28)\ngoto PainBaseFlingHit::Spawn\n}\n}\n\nactor PainBassKickHit : PainBaseFlingHit\n{\nstates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 0 A_SetUserVar(\"user_Amount\",24)\ngoto PainBaseFlingHit::Spawn\n}\n}\n\nactor PainBassKickHitEx : PainBaseFlingHit\n{\nstates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 0 A_SetUserVar(\"user_Amount\",36)\ngoto PainBaseFlingHit::Spawn\n}\n}\n\nactor PainDuoGrabHit : BasicHitBase\n{\nStates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 0 A_GiveToTarget(\"PainDuoGrabHit_P\",1)\nstop\n}\n}\nactor PainDuoGrabHit_P : CustomInventory\n{\nStates\n{\nPickup:\nTNT1 A 0 A_PlaySoundEx(\"weapon/crashland\",\"Weapon\")\nTNT1 A 0 A_GiveToTarget(\"DuoGrabSucess\",1)\nTNT1 A 0 A_GiveToTarget(\"DuoGrabP\",1)\nTNT1 A 0 A_GiveToTarget(\"DuoCleanserGrabberSpd0\",1)\nTNT1 A 0 A_GiveToTarget(\"IsInvunFlag\",1)\nstop\n}\n}\n\nactor PainDuoExplodeHit5 : PainBaseFlingHit\n{\nStates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 0 A_SetUserVar(\"user_Amount\",50)\ngoto PainBaseFlingHit::Spawn\n}\n}\n\nactor PainDuoExplodeHit4 : PainBaseFlingHit\n{\nStates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 0 A_SetUserVar(\"user_Amount\",40)\ngoto PainBaseFlingHit::Spawn\n}\n}\n\nactor PainDuoExplodeHit3 : PainBaseFlingHit\n{\nStates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 0 A_SetUserVar(\"user_Amount\",30)\ngoto PainBaseFlingHit::Spawn\n}\n}\n\nactor PainDuoExplodeHit2 : PainBaseFlingHit\n{\nStates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 0 A_SetUserVar(\"user_Amount\",20)\ngoto PainBaseFlingHit::Spawn\n}\n}\n\nactor PainDuoExplodeHit1 : PainBaseFlingHit\n{\nStates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 0 A_SetUserVar(\"user_Amount\",10)\ngoto PainBaseFlingHit::Spawn\n}\n}\n\nactor PainHyperBombRecoil : PainBaseFlingHit\n{\nStates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 0 A_SetUserVar(\"user_Amount\",25)\ngoto PainBaseFlingHit::Spawn\n}\n}\n\nactor PainMaestroAquaGuts : PainBaseFlingHit\n{\nStates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 0 A_SetUserVar(\"user_Amount\",6)\ngoto PainBaseFlingHit::Spawn\n}\n}\n\n//$Binary\n\nactor ChillFree : custominventory {\nstates {\npickup:\nTNT1 A 0\nTNT1 A 0 SetPlayerProperty(0,0,4)\nstop\n}}\n\nactor ChillStuck : custominventory {\nstates {\npickup:\nTNT1 A 0\nTNT1 A 0 SetPlayerProperty(0,1,4)\nstop\n}}\n\nactor ChillVision : PowerUp\n{\n\tPowerup.Duration 9999\n\tPowerup.Colormap 0.5, 1.0, 1.0, 1.0, 1.0, 1.1\n}\n\nactor ChillFreeze : powerspeed\n{\npowerup.duration 1600\nspeed 0\n+POWERSPEED.NOTRAIL\n}\n\nactor ChillFreezeWatcher\n{\nHeight 0\nRadius 0\n+NOINTERACTION\n-SOLID\n+NOTARGETSWITCH\n+NOGRAVITY\n+MISSILE\nreactiontime 26\nStates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 0 A_JumpIfInTargetInventory(\"GoodatGettingHit\",1,\"Death2\")\nTNT1 A 0 A_GiveToTarget(\"ChillStuck\",1)\nTNT1 A 0 A_GiveToTarget(\"ChillVision\",1)\nTNT1 A 1 A_GiveToTarget(\"ChillVision\",1)\nTNT1 A 0 A_GiveToTarget(\"ChillStuck\",1)\nTNT1 A 0 A_GiveToTarget(\"ChillVision\",1)\nTNT1 A 0 A_Countdown\nloop\nDeath:\nTNT1 A 0\nTNT1 A 0 A_TakeFromTarget(\"PowerofNothing\",999)\nTNT1 A 0 A_TakeFromTarget(\"GoodatGettingHit\",999)\nTNT1 A 0 A_TakeFromTarget(\"ChillVision\",999)\nTNT1 A 0 A_GiveToTarget(\"ChillFree\",1)\nstop\nDeath2:\nTNT1 A 0\nTNT1 A 0 A_TakeFromTarget(\"PowerofNothing\",999)\nTNT1 A 0 A_TakeFromTarget(\"GoodatGettingHit\",999)\nPLY1 H 0 A_SpawnItemEx(\"ChillFreezeWatcher\",0,0,0,0,0,0,0,SXF_TRANSFERPOINTERS)\nstop\nDeath2:\nTNT1 A 0\nstop\n}}\n\nactor PowerofNothing : Powerup {}\n\nactor GoodatGettingHit : PowerupGiver\n{\n+INVENTORY.AUTOACTIVATE\n+INVENTORY.ALWAYSPICKUP\npowerup.duration 5\npowerup.type \"PowerofNothing\"\n}\n\nactor PainNeptuneLeapHit : BasicHitBase\n{\nStates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 0 A_GiveToTarget(\"PainNeptuneLeapHit_P\",1)\nstop\n}\n}\nactor PainNeptuneLeapHit_P : CustomInventory\n{\nStates\n{\nPickup:\nTNT1 A 0 A_GiveToTarget(\"NeptuneLeap_Pickup\",1)\nstop\n}\n}\n\nactor PainRaThorThrowHit : PainBaseFlingHit\n{\nstates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 0 A_SetUserVar(\"user_Amount\",64)\ngoto PainBaseFlingHit::Spawn\n}\n}\n\nactor PowerRaThorHitG : BasicPowerupGiver\n{\npowerup.type \"PowerRaThorHit\"\n}\nactor PowerRaThorHit : PowerUp\n{\nPowerup.Duration -10\n}\nactor RaThorHitFlag : OnceC{}\n\nactor RaThorHitItem : CustomInventory\n{\nStates\n{\nPickup:\nTNT1 A 0 A_JumpIfInventory(\"PowerRaThorHit\",1,3)\nTNT1 A 0 A_GiveInventory(\"RaThorHitFlag\",1)\nTNT1 A 0 A_SpawnItemEx(\"RaThorHitWatcher\")\nTNT1 A 0 A_GiveInventory(\"PowerRaThorHitG\",1)\nstop\n}\n}\nactor RaThorHitWatcher : BasicHelper\n{\nStates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 1\nTNT1 A 0 A_JumpIfInTargetInventory(\"PowerRaThorHit\",1,\"Spawn\")\nTNT1 A 0 A_TakeFromTarget(\"RaThorHitFlag\",999)\nstop\n}\n}"
},
{
"source": "pk3",
"name": "actors/inventory/baseweapon.txt",
"contents": "//Replace the BaseWeapon with needed details.\n//Go to actors/Wep/CopyWep/baseweapon_s.txt to find the vanilla weapons version.\n\nactor BaseMM8BDMWep_CBM : Weapon\n{\n\t+WEAPON.AMMO_OPTIONAL\n\t+WEAPON.ALT_AMMO_OPTIONAL\n\t//+WEAPON.ALT_USES_BOTH//CBM\n\t+WEAPON.DONTBOB\n\tWeapon.SlotNumber 1\n\tinventory.pickupsound \"weapon/weaponup\"\n\tScale 2.0\n\tweapon.ammotype \"BusterAmmo\"//CBM\n\tinventory.icon \"TNT1A0\"//CBM\n\tdropitem \"\"//CBM\n\tStates\n\t{\n\tSpawn:\n\t\tTNT1 A 0\n\t\tTNT1 A 1 A_GiveInventory(\"MM8BDMWepSpawnFunc\",1)\n\t\tTNT1 A 1 A_Jump(256, \"SpawnLoop\")\n\t\twait\n\tSpawnLoop:\n\t\tWEAP X 1\n\t\tloop\n//CBM~~~~~~\n\tDeselect:\n\tTNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Lower\n\tTNT1 A 1 A_Lower\n\tLoop\n\tSelect:\n\tTNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Raise\n\tTNT1 A 1 A_Raise\n\tLoop\n\n\tReady:\n\tTNT1 A 1 A_WeaponReady\n\tloop\n\tFire:\n\tTNT1 A 1 A_RailWait\n\tgoto Ready\n\n\tFlash:\n\tTNT1 A 1\n\tstop\n//CBM~~~~~~\n\n//\tAltfire:\n//\t\t\"----\" A 1 A_JumpIfInventory(\"BusterAmmo\", 1, \"Fire\")\n//\t\t\"----\" A 1 A_Jump(256, \"NoAmmo\")\n//\t\twait\n\tFlashloop:\n\t\tTNT1 A 0\n\t\tstop\n\tNoFlash:\n\t\tTNT1 A 0\n\t\tstop\n\tSound.BusterCharge:\n\t\tTNT1 A 9 A_PlaySoundEx(\"weapon/adapterchargeloop\",\"Weapon\",0)\n\t\tTNT1 A 0 A_JumpIfInventory(\"IsDead\",1,\"NoFlash\")//CBM\n\t\tTNT1 A 1 A_JumpIfInventory(\"WeaponCharge\",1,\"Sound.BusterCharge\")\n\t\tstop\n\t}\n}\n\n#include \"actors/Wep/CopyWep/baseweapon_s.txt\"\n//#include \"Wep/CopyWep/baseweapon_s2.txt\"\n\n// Used for Atomic Fire and other weapons that charge up\nactor WeaponCharge : Inventory\n{\ninventory.amount 1\ninventory.maxamount 5000\n}\n\n// Used for pretty much every shield in the game\nactor ShieldCheck : Inventory\n{\ninventory.amount 1\ninventory.maxamount 1\n}\n\n// These are used for Copy Vision and Remote Mine's aiming\nActor TargetMarker : CustomInventory\n{\nInventory.amount 1\nInventory.MaxAmount 1\n+AUTOACTIVATE\nStates\n{\nSpawn:\nTNT1 A 1\nstop\nUse:\n//TNT1 A 0 A_FireCustomMissile(\"TargetTracer\",0,0,0,16,0,0)\nTNT1 A 0 A_SpawnItemEx(\"TargetTracer\", 0, 8, 32, Cos(pitch)*1000, 0, sin(-pitch)*1000,0)\nstop\n}\n}\n\nActor TargetMarker2 : TargetMarker\n{\nstates\n{\nUse:\n//TNT1 A 0 A_FireCustomMissile(\"TargetTracer\",0,0,0,16,0,0)\nTNT1 A 0 A_SpawnItemEx(\"TargetTracer2\", 0, 8, 32, Cos(pitch)*1000, 0, sin(-pitch)*1000,0)\nstop\n}\n}\n\nactor TargetTracer : FastProjectile\n{\nRadius 16\nHeight 1\nPROJECTILE\nSpeed 1000\nDamage(0)\nRenderStyle none\n+DONTSPLASH\n+DONTBLAST\n+THRUGHOST\n+SKYEXPLODE\n+NOTARGETSWITCH\nStates\n{\nSpawn:\nTNT1 A 5\nGoto Death\nDeath:\nTNT1 A 0\nTNT1 A 1 A_SpawnItemEx(\"TargetAimPoint\", 0, 0, 0) //Thing_SpawnNoFog(0,201,0,ACS_ExecuteWithResult(257, 0)+100)\nstop\n}\n}\n\nactor TargetTracer2 : TargetTracer\n{\n+THRUACTORS\n}\n\nactor TargetAimPoint\n{\nPROJECTILE\n+NOINTERACTION\n+NOCLIP\n+RIPPER\nRenderStyle \"NONE\"\nRadius 16\nHeight 1\nscale 2.5\nStates\n{\nSpawn:\nTNT1 A 0 Thing_Remove(ACS_ExecuteWithResult(257, 0)+100)\nTNT1 A 0 Thing_ChangeTID(0, ACS_ExecuteWithResult(257, 0)+100)\nERO3 YYYYYYYYYY 1\nStop\nDeath:\nTNT1 A 0\nstop\n}\n}\n\n// Used for Skull Barrier and shields that tank a specified number of hits\nactor ShieldHits : Inventory\n{\n\tinventory.amount 1\n\tinventory.maxamount 999\n}\n\nactor HitShieldProtection : PowerProtection\n{\n\tpowerup.duration 10\n\tdamagefactor \"normal\", 0.0\n\tdamagefactor \"crush\", 1.0\n\tdamagefactor \"telefrag\", 1.0\n//\tdamagefactor \"LaserTrident\", 1.0\n}\n\nactor StopHitShield : PowerProtection\n{\n\tpowerup.duration 10\n}\n\nactor NoAmmoSoundCooldown : Powerup\n{\npowerup.duration 12\n}\n\nactor BaseShieldWarper\n{\n\tScale 2.5\n\tHeight 0\n\tRadius 0\n\t+NOINTERACTION\n\t+CLIENTSIDEONLY\n\t-SOLID\n\t+NOGRAVITY\n\t+MISSILE\n\t+DONTBLAST\n\tStates\n\t{\n\tSpawn:\n\t\tTNT1 A 0\n\t\tTNT1 A 0 ACS_NamedExecuteAlways(\"core_shieldwarper\", 0, 0)\n\t\tTNT1 A 0 A_Jump(256, \"Shield\")\n\t\tGoto Shield\n\tShield:\n\t\tSTAR AABBCCDD 1 A_Warp(AAPTR_TARGET, 0, 0, 16, 0, WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)\n\t\tloop\n\t}\n}"
},
{
"source": "pk3",
"name": "actors/inventory/mm1/timeslow.txt",
"contents": "actor TimeSlowWep : BaseMM8BDMWep 11010\n{\n//$Category MM8BDM-Weapons\n//$Title Time Slow\nWeapon.AmmoUse 14\nWeapon.AmmoGive 28\nWeapon.SlotNumber 6\nInventory.Pickupmessage \"$PU_TIMESLOW\"\nObituary \"$OB_TIMESLOW\"\nTag \"$TAG_TIMESLOW\"\nweapon.ammotype \"TimeSlowAmmo\"\nInventory.Icon \"TIMMI2\"\nStates\n{\nSpawnLoop:\nSLOT X -1\nloop\nReady:\nTSLO A 0 ACS_ExecuteAlways (998,0,96)\nTSLO A 1 A_WeaponReady\ngoto Ready+1\nDeselect:\nTNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Lower\nTSLO A 1 A_Lower\nLoop\nSelect:\nTNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Raise\nTSLO A 1 A_Raise\nLoop\nFire:\nTSLO A 0\nTSLO A 0 A_JumpIfInventory(\"PowerTime\",1,\"Ready\")\ngoto Fire1\nFire1:\nTSLO A 0 A_JumpIfInventory(\"TimeSlowAmmo\", 14, \"Fire2\")\nGoto NoAmmo\nFire2:\n//With Hand\nTSLO A 0 A_JumpIfNoAmmo(\"NoAmmo\")\nTSLO A 0 A_JumpIfInventory(\"TimeSlowCooldown\", 1, \"NoAmmo\")\nTSLO A 0 A_ScaleVelocity(0.5)\nSLOT JKLMN 2\nTNT1 A 0 A_PlaySoundEx(\"weapon/slow\",\"Weapon\")\nTNT1 A 0 ACS_Execute(976,0)\nTNT1 A 0 A_FireCustomMissile(\"TimeSlow\",0,1,8,0)\n//SLOT LMN 3\nTNT1 A 2\nTSLO BC 1\nTSLO A 1 A_GiveInventory(\"TimeSlowCooldown\", 1)\ngoto Ready+1\nNoAmmo:\nTSLO A 1 ACS_Execute(979,0)\ngoto Ready+1\nNotReady:\nTSLO A 1\nGoto Ready+1\n}\n}\n\nactor TimeSlowCooldown : Powerup\n{\npowerup.duration 30\n}\n\nactor TimeSlowAmmo : Ammo\n{\ninventory.amount 1\ninventory.maxamount 28\n+INVENTORY.IGNORESKILL\n}\n\nactor TimeSlow\n{\n-SOLID\n+NOGRAVITY\n+DONTBLAST\nPROJECTILE\ndamage 0\nradius 1\nheight 1\ndamagetype \"TimeSlow\"\nObituary \"$OB_TIMESLOW\"\nScale 7.68\n+FORCEXYBILLBOARD\nStates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 1 A_Explode(10, 768,0)\nSLOD EFGHIJKLMNEFGHIJKLMN 1\nstop\n}\n}\n\nactor TimeCoolDown : PowerupGiver\n{\ninventory.maxamount 0\npowerup.duration 245\npowerup.color \"00 00 00\", 0.0\npowerup.type \"PowerTime\"\n+INVENTORY.AUTOACTIVATE\n+INVENTORY.ALWAYSPICKUP\nstates\n{\nPickup:\nTNT1 A 175\nstop\n}\n}\n\nactor PowerTime : PowerUp\n{\nInventory.Icon \"TIMICON\"\nSpeed 1.0\n}\n\nactor Slowed : CustomInventory\n{\n+INVENTORY.AUTOACTIVATE\n-INVBAR\nStates\n{\nUse:\nTNT1 A 0 A_JumpIfInventory(\"PowerSlow\", 1, 2)\nTNT1 A 0 A_SpawnItemEx(\"TimeSlowWatcher\")\nTNT1 A 0 A_GiveInventory(\"SlowedPower\", 1)\nstop\n}\n}\n\nactor SlowedPower : PowerupGiver\n{\nSpeed 0.7\npowerup.duration 105\npowerup.type \"PowerSlow\"\n+INVENTORY.AUTOACTIVATE\n+INVENTORY.ALWAYSPICKUP\nstates\n{\nPickup:\nTNT1 A 0\n\nTNT1 A 175\nstop\n}\n}\n\nactor PowerSlow : PowerSpeed\n{\nSpeed 0.7\nPowerup.Color \"55 00 55\", 0.4\n}\n\nactor TimeSlowWatcher\n{\nHeight 0\nRadius 0\n+NOINTERACTION\n-SOLID\n+NOGRAVITY\n+MISSILE\nStates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 3 A_GiveToTarget(\"TimeSlowFX\", 1)\nTNT1 A 0 A_JumpIfInTargetInventory(\"PowerSlow\", 1, \"Spawn\")\nstop\n}\n}\n\nactor TimeSlowFX : CustomInventory\n{\n+INVENTORY.AUTOACTIVATE\n-INVBAR\nStates\n{\nUse:\nTNT1 A 0\nTNT1 A 0 A_SpawnItemEx(\"TimeSlowGFX\", random(16, 48), 0, Random(16,48), 0, 0, 0, random(0, 359))\nstop\n}\n}\n\nactor TimeSlowGFX\n{\n+FLOATBOB\n+NOGRAVITY\n+THRUACTORS\n+CLIENTSIDEONLY\n+FORCEXYBILLBOARD\n+MISSILE\n+DONTBLAST\nDamage(0)\nScale 2.5\nHeight 0\nRadius 0\nStates\n{\nSpawn:\nSLOD DCBA 4 A_Fadeout(0.2)\nloop\n}\n}"
},
{
"source": "pk3",
"name": "actors/inventory/mm10/tripleblade.txt",
"contents": "actor TripleBladeWep : BaseMM8BDMWep 10097\n{\n//$Category MM8BDM-Weapons\n//$Title Triple Blade\n//$Sprite TRIPA0\nWeapon.AmmoUse 1\nWeapon.AmmoGive 28\nWeapon.SlotNumber 3\nObituary \"$OB_TRIPLEBLADE\"\nTag \"$TAG_TRIPLEBLADE\"\nInventory.Pickupmessage \"$PU_TRIPLEBLADE\"\nweapon.ammotype \"TripleBladeAmmo\"\ninventory.icon \"BLAWI\"\n+WEAPON.NOAUTOAIM\nStates\n{\nSpawnLoop:\nTRIP A -1\nloop\nReady:\nTRIP B 0 ACS_ExecuteAlways(998,0,205)\nTRIP C 1 A_WeaponReady\nGoto Ready+1\nDeselect:\nTNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Lower\nTRIP C 1 A_Lower\nLoop\nSelect:\nTNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Raise\nTRIP C 1 A_Raise\nLoop\nFire:\nTRIP C 0 A_JumpIfNoAmmo(\"NoAmmo\")\nTRIP C 0 A_PlaySoundEx(\"weapon/bladeshoot\",\"Weapon\")\nTRIP C 0 A_FireCustomMissile(\"TripleBlade\",0,1,8,0,0,0)\nTRIP C 0 A_JumpIf(pitch > 270 && pitch < 270+11.25, \"Top\")\nTRIP C 0 A_JumpIf(pitch > 90-11.25 && pitch < 90, \"Bottom\")\ngoto Center\nTop:\nTRIP C 0 A_FireCustomMissile(\"TripleBladeR\",180,0,8,0,0,11.25)\nTRIP C 0 A_FireCustomMissile(\"TripleBlade\",0,0,8,0,0,-11.25)\ngoto FireEnd\nBottom:\nTRIP C 0 A_FireCustomMissile(\"TripleBlade\",0,0,8,0,0,11.25)\nTRIP C 0 A_FireCustomMissile(\"TripleBladeR\",180,0,8,0,0,-11.25)\ngoto FireEnd\nCenter:\nTRIP C 0 A_FireCustomMissile(\"TripleBlade\",0,0,8,0,0,11.25)\nTRIP C 0 A_FireCustomMissile(\"TripleBlade\",0,0,8,0,0,-11.25)\ngoto FireEnd\nFireEnd:\nTRIP DE 2\nTRIP C 8\ngoto Ready+1\nNoAmmo:\nTRIP C 1 ACS_Execute(979,0)\nGoto Ready+1\n}\n}\n\nactor TripleBladeAmmo : Ammo\n{\ninventory.amount 1\ninventory.maxamount 28\n+INVENTORY.IGNORESKILL\n}\n\nactor TripleBlade\n{\nPROJECTILE\n+RIPPER\n+DONTBLAST\nObituary \"$OB_TRIPLEBLADE\"\nRadius 16\nHeight 5\nScale 2.5\ndamagetype \"TripleBlade\"\nDamage (5)\nSpeed 30\nTranslation \"192:192=4:4\", \"198:198=251:251\"\nStates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 0 A_JumpIf(momz>=30, \"90Degrees\")\nTNT1 A 0 A_JumpIf(momz>=22.5, \"67P5Degrees\")\nTNT1 A 0 A_JumpIf(momz>=15, \"45Degrees\")\nTNT1 A 0 A_JumpIf(momz>=7.5, \"22P5Degrees\")\nTNT1 A 0 A_JumpIf(momz<7.5 && momz>-7.5, \"0Degrees\")\nTNT1 A 0 A_JumpIf(momz<=-29, \"N90Degrees\")\nTNT1 A 0 A_JumpIf(momz<=-7.5, \"N22P5Degrees\")\nTNT1 A 0 A_JumpIf(momz<=-22.5, \"N67P5Degrees\")\nTNT1 A 0 A_JumpIf(momz<=-15, \"N45Degrees\")\nTBL1 E 1\nwait\n90Degrees:\nTBL1 A 1\nwait\n67P5Degrees:\nTBL1 B 1\nwait\n45Degrees:\nTBL1 C 1\nwait\n22P5Degrees:\nTBL1 D 1\nwait\n0Degrees:\nTBL1 E 1\nwait\nN22P5Degrees:\nTBL1 F 1\nwait\nN45Degrees:\nTBL1 G 1\nwait\nN67P5Degrees:\nTBL1 H 1\nwait\nN90Degrees:\nTBL1 I 1\nwait\nDeath:\nTNT1 A 0\nstop\n}\n}\n\nactor TripleBladeR : TripleBlade\n{\n States\n {\n Spawn:\n TNT1 A 0\n TNT1 A 0 A_SetAngle(angle+180)\n TNT1 A 0 A_JumpIf(momz>0, \"90Degrees\")\n TNT1 A 0 A_JumpIf(momz<0, \"N90Degrees\")\n TBL1 I 1\n wait\n }\n}"
},
{
"source": "pk3",
"name": "actors/inventory/mm3/magnetmissile.txt",
"contents": "actor MagnetMissileWep : BaseMM8BDMWep 10038\n{\n//$Category MM8BDM-Weapons\n//$Title Magnet Missile\n//$Sprite WEAPI0\nWeapon.AmmoUse 3\nWeapon.AmmoGive 28\nWeapon.SlotNumber 2\nInventory.Pickupmessage \"$PU_MAGNETMISSILE\"\nObituary \"$OB_MAGNETMISSILE\"\nTag \"$TAG_MAGNETMISSILE\"\nweapon.ammotype \"MagnetMissileAmmo\"\ninventory.icon \"MAGNETSI\"\nStates\n{\nSpawnLoop:\nWEAP I -1\nloop\nReady:\nMAGG C 0 ACS_ExecuteAlways(998,0,8)\nMAGG C 1 A_WeaponReady\nGoto Ready+1\nDeselect:\nTNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Lower\nMAGG C 1 A_Lower\nLoop\nSelect:\nTNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Raise\nMAGG C 1 A_Raise\nLoop\nFire:\nMAGG C 0 A_JumpIfNoAmmo(\"NoAmmo\")\nMAGG C 0 A_PlaySoundEx(\"weapon/magnetmissile\",\"Weapon\")\nMAGG C 0 A_FireCustomMissile(\"MagnetMissile\",0,1,8,0)\nMAGG DEC 5\nMAGG C 11\nMAGG C 0 A_Refire\nGoto Ready+1\nNoAmmo:\nMAGG C 1 ACS_Execute(979,0)\nGoto Ready+1\n}\n}\n\nactor MagnetMissileAmmo : Ammo\n{\ninventory.amount 1\ninventory.maxamount 28\n+INVENTORY.IGNORESKILL\n}\n\nactor MagnetMissile\n{\nPROJECTILE\nRadius 8\nHeight 5\nscale 2.5\ndamagetype \"MagnetMissile\"\nObituary \"$OB_MAGNETMISSILE\"\ndamage (30)\nspeed 47\n+SEEKERMISSILE\n-EXTREMEDEATH\n+SCREENSEEKER\nreactiontime 60\nStates\n{\nSpawn:\nMAGG A 2 A_SeekerMissile (2, 8, SMF_LOOK, 128, 8)\nMAGG A 0 A_CountDown\nloop\nDeath:\nTNT1 A 0 A_SpawnItemEx(\"ExplosionEffect1\")\nstop\n}\n}"
},
{
"source": "pk3",
"name": "actors/inventory/mm4/flashstopper.txt",
"contents": "actor FlashStopperWep : BaseMM8BDMWep 10078\n{\n//$Category MM8BDM-Weapons\n//$Title Flash Stopper\nWeapon.AmmoUse 7\nWeapon.AmmoGive 28\nWeapon.SlotNumber 6\nInventory.Pickupmessage \"$PU_FLASHSTOPPER\"\nObituary \"$OB_FLASHSTOPPER\"\nTag \"$TAG_FLASHSTOPPER\"\nweapon.ammotype \"FlashStopperAmmo\"\ninventory.icon \"BRIGHSI\"\nStates\n{\nSpawnLoop:\nWEA3 E -1\nloop\nReady:\nFSTO A 0 ACS_ExecuteAlways(998,0,49)\nFSTO A 1 A_WeaponReady\nGoto Ready+1\nDeselect:\nTNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Lower\nFSTO A 1 A_Lower\nLoop\nSelect:\nTNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Raise\nFSTO A 1 A_Raise\nLoop\nFire:\nFSTO A 0 A_JumpIfNoAmmo(\"NoAmmo\")\nFSTO BC 2\nFSTO A 0 A_SpawnItemEx(\"FlashStopperFX\",0,0,64)\nFSTO A 0 A_PlaySoundEx(\"weapon/flashstopper\",\"Weapon\")\nFSTO A 0 A_FireCustomMissile(\"FlashStopper\",0,1,8,0)\nFSTO D 40\nFSTO C 3\nFSTO A 0 A_Refire\nGoto Ready+1\n\nNoAmmo:\nFSTO A 1 ACS_Execute(979,0)\nGoto Ready+1\n}\n}\n\nactor FlashStopperGiver : CustomInventory //10078\n{\n//$Category MM8BDM-Weapons\n//$Title Flash Stopper\nInventory.Pickupmessage \"$PU_FLASHSTOPPER\"\ninventory.pickupsound \"weapon/weaponup\"\nInventory.RespawnTics 1800\nscale 2.0\nstates\n{\nSpawn:\nWEA3 E 1\nloop\nPickup:\nWEA3 E 0 A_JumpIfInventory(\"FlashStopperWep\",1,\"Failure\")\nWEA3 E 0 A_GiveInventory(\"FlashStopperWep\")\nstop\nFailure:\nWEA3 E 0\nfail\n}\n}\n\nactor FlashStopper\n{\n-SOLID\n+NOGRAVITY\nPROJECTILE\n+DONTBLAST\n+NOINTERACTION\ndamage 0\nradius 1\nheight 1\ndamagetype \"FlashStopper\"\nObituary \"$OB_FLASHSTOPPER\"\nStates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 0 A_GiveToTarget(\"FlashStopperFlash\", 1)\nTNT1 A 1 A_Explode(5, 450,0)\nstop\n}\n}\n\nactor FlashStopperFlash : CustomInventory\n{\n\t+INVENTORY.AUTOACTIVATE\n\tStates\n\t{\n\tUse:\n\t\tTNT1 A 0 A_SetBlend(\"99 99 99\", 0.95, 15)\n\t\tstop\n\t}\n}\n\nactor FlashStopperAmmo : Ammo\n{\ninventory.amount 1\ninventory.maxamount 28\n+INVENTORY.IGNORESKILL\n}\n\nactor Flashed : PowerDamage\n{\npowerup.duration 105\ndamagefactor \"normal\", 1.0\n}\n\nactor BrightBlind : Inventory\n{\ninventory.amount 1\ninventory.maxamount 125\n}\n\nactor FlashStopperFX\n{\nrenderstyle translucent\n+NOINTERACTION\n+FORCEXYBILLBOARD\n+CLIENTSIDEONLY\nheight 1\nradius 1\nalpha 1.0\nscale 5.0\n-SOLID\n+NOGRAVITY\nstates\n{\nSpawn:\nFST2 ABCDEF 1 A_FadeOut(0.12)\nstop\n}\n}"
},
{
"source": "pk3",
"name": "actors/inventory/mm7/thunderbolt.txt",
"contents": "actor ThunderBoltWep : BaseMM8BDMWep 10089\n{\n//$Category MM8BDM-Weapons\n//$Title Thunder Bolt\nWeapon.AmmoUse 2\nWeapon.AmmoGive 28\nWeapon.SlotNumber 2\nInventory.Pickupmessage \"$PU_THUNDERBOLT\"\nObituary \"$OB_THUNDERBOLT\"\nTag \"$TAG_THUNDERBOLT\"\nweapon.ammotype \"ThunderBoltAmmo\"\ninventory.icon \"TBOLSI\"\nStates\n{\nSpawnLoop:\nWEA3 R -1\nloop\nReady:\nTBOL S 0 ACS_ExecuteAlways(998,0,56)\nTBOL S 1 A_WeaponReady\nGoto Ready+1\nDeselect:\nTNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Lower\nTBOL S 1 A_Lower\nLoop\nSelect:\nTNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Raise\nTBOL S 1 A_Raise\nLoop\nFire:\nTBOL S 0 A_JumpIfNoAmmo(\"NoAmmo\")\nTBOL S 0 A_PlaySoundEx(\"weapon/thunderbolt\",\"Weapon\")\nTBOL S 0 A_FireCustomMissile(\"ThunderBolt\",0,1,8,0)\nTBOL TU 5\nTBOL S 14\nTBOL S 0 A_Refire\nGoto Ready+1\nNoAmmo:\nTBOL S 1 ACS_Execute(979,0)\nGoto Ready+1\n}\n}\n\nactor ThunderBoltAmmo : Ammo\n{\ninventory.amount 1\ninventory.maxamount 28\n+INVENTORY.IGNORESKILL\n}\n\nactor ThunderBolt\n{\nPROJECTILE\ndamagetype \"ThunderBolt\"\nObituary \"$OB_THUNDERBOLT\"\nscale 2.5\nSpeed 30\nRadius 20\nHeight 15\nDamage (25)\nStates\n{\nSpawn:\nTBOL ABCD 1\nGoto Flying\nFlying:\nTBOL N 1\nTBOL M 1 A_SpawnItemEx(\"ThunderTrail\")\nloop\nDeath:\nTNT1 A 0 A_CustomMissile(\"ThunderBoltSplit\",0,0,90,2,0)\nTNT1 A 0 A_CustomMissile(\"ThunderBoltSplit\",0,0,-90,2,0)\nMMFX BCDE 2\nstop\n}\n}\n\nactor ThunderBoltSplit : ThunderBolt\n{\n+THRUACTORS\nRadius 20\nHeight 15\nDamage (15)\nreactiontime 90\nStates\n{\nSpawn:\nTBOL OP 1 A_CountDown\nTBOL O 0 A_SpawnItemEx(\"ThunderTrail\")\nTBOL O 0 A_ChangeFlag(THRUACTORS, false)\nTBOL QR 1 A_CountDown\nTBOL O 0 A_GiveInventory(\"CutterFlag\",1)\nTBOL O 0 A_SpawnItemEx(\"ThunderTrail\")\nloop\nDeath:\nTNT1 A 0\nstop\nXDeath:\nCrash:\nTBOL O 0 A_JumpIfInventory(\"CutterFlag\",1,\"Split\")\nstop\nSplit:\nTNT1 A 0 A_CustomMissile(\"ThunderBoltSplit\",0,0,90,2,0)\nTNT1 A 0 A_CustomMissile(\"ThunderBoltSplit\",0,0,-90,2,0)\nstop\n}\n}\n\nactor ThunderBoltFX\n{\nscale 2.5\n-SOLID\n+NOGRAVITY\n+CLIENTSIDEONLY\nheight 0\nradius 0\nStates\n{\nSpawn:\nTBOL ABCD 1\nstop\n}\n}\n\nactor ThunderTrail\n{\nscale 2.5\n-SOLID\n+NOGRAVITY\n+CLIENTSIDEONLY\nheight 0\nradius 0\nStates\n{\nSpawn:\nTBOL IJKL 2\nstop\n}\n}"
},
{
"source": "pk3",
"name": "actors/inventory/mmb/spreaddrill.txt",
"contents": "actor SpreadDrillWep : BaseMM8BDMWep 10014\n{\n//$Category MM8BDM-Weapons\n//$Title Spread Drill\n//$Sprite SPREX0\nWeapon.AmmoUse 2\nWeapon.AmmoGive 28\nWeapon.SlotNumber 5\nInventory.Pickupmessage \"$PU_SPREADDRILL\"\nObituary \"$OB_SPREADDRILL\"\nTag \"$TAG_SPREADDRILL\"\nweapon.ammotype \"SpreadDrillAmmo\"\ninventory.icon \"SPREI\"\n+AMMO_OPTIONAL\n+ALT_AMMO_OPTIONAL\nStates\n{\nSpawnLoop:\nSPRE X -1\nloop\nReady:\nSPRE H 0 ACS_ExecuteAlways(998,0,172)\nSPRE H 1 A_WeaponReady\nGoto Ready+1\nDeselect:\nTNT1 A 0 A_TakeInventory(\"SpreadDrillFlag\",4)\nTNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Lower\nSPRE H 1 A_Lower\nLoop\nSelect:\nTNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Raise\nSPRE H 1 A_Raise\nLoop\nAltfire:\nSPRE I 0 A_JumpIfInventory(\"SpreadDrillBuffer\",1,\"Waiting\")\nSPRE H 0 A_TakeInventory(\"SpreadDrillFlag\", 2)\nGoto Fire\nFire:\nSPRE H 0 A_JumpIfInventory(\"SpreadDrillFlag\",2,\"Reset\")\nSPRE H 0 A_JumpIfInventory(\"SpreadDrillFlag\",1,\"Spread\")\nSPRE H 0 A_JumpIfNoAmmo(\"NoAmmo\")\nSPRE I 0 A_JumpIfInventory(\"SpreadDrillBuffer\",1,\"Waiting\")\nSPRE H 0 A_GiveInventory(\"SpreadDrillBuffer\",1)\nSPRE H 0 A_PlaySoundEx(\"weapon/spreaddrill1\",\"Weapon\")\nSPRE H 0 A_SpawnItemEx(\"SpreadDrill\",cos(pitch)*32,0,28-(sin(pitch)*32),cos(pitch)*13,0,-sin(pitch)*13,0,0,0)//A_FireCustomMissile(\"SpreadDrill\",0,1,8,0)\nSPRE H 0 A_TakeInventory(\"SpreadDrillAmmo\",2,TIF_NOTAKEINFINITE)\nSPRE H 0 A_GiveInventory(\"SpreadDrillFlag\",1)\nSPRE IJ 2\nSPRE H 4\nSPRE J 0 A_Refire\nGoto Ready+1\nReset:\nSPRE H 0 A_TakeInventory(\"SpreadDrillBuffer\",999)\nSPRE H 1 A_TakeInventory(\"SpreadDrillFlag\", 2)\nGoto Fire+2\nSpread:\nSPRE H 2 A_GiveInventory(\"SpreadDrillFlag\", 1)\nSPRE H 4\nSPRE H 0 A_JumpIfInventory(\"SpreadDrillFlag\",2, \"Waiting\")\nSPRE H 0 A_JumpIfInventory(\"SpreadDrillFlag\",1, 1)\nGoto Ready+1\nSPRE H 0 A_Refire\ngoto Ready+1\nWaiting:\nSPRE H 5\nSPRE H 0 A_Refire\nGoto Ready+1\nNoAmmo:\nSPRE H 1 ACS_Execute(979,0)\nGoto Ready+1\n}\n}\n\nactor SpreadDrillAmmo : Ammo\n{\ninventory.amount 1\ninventory.maxamount 28\n+INVENTORY.IGNORESKILL\n}\n\nactor SpreadDrillFlag : Inventory\n{\ninventory.amount 1\ninventory.maxamount 2\n}\n\nactor SpreadDrillBuffer : Powerup\n{\npowerup.duration 23\n}\n\nactor SpreadDrill\n{\nPROJECTILE\n+RIPPER\nradius 32\nheight 16\nscale 2.5\nspeed 13\nDamageType \"SpreadDrill\"\nObituary \"$OB_SPREADDRILL\"\ndamage (30)\nGravity 0.25\nstates\n{\nSpawn:\nTNT1 A 0\nSPRE AA 1\nSPRE A 0 A_ChangeFlag(\"NOCLIP\",0)\nWaiting:\nSPRE F 2 A_GiveInventory(\"CutterFlag\", 1)\nSPRE F 0 A_JumpIfInTargetInventory(\"SpreadDrillFlag\",2,\"Spread\")\nSPRE A 2 A_GiveInventory(\"CutterFlag\", 1)\nSPRE A 0 A_JumpIfInTargetInventory(\"SpreadDrillFlag\",2,\"Spread\")\nSPRE A 0 A_JumpIfInventory(\"CutterFlag\",5,\"AddGravity\")\nLoop\nAddGravity:\nSPRE A 0 A_ChangeFlag(\"NOGRAVITY\", 0)\nGoto Waiting2\nWaiting2:\nSPRE AA 1 A_JumpIf(z-floorz < 1, \"Death\")\nSPRE A 0 A_JumpIfInTargetInventory(\"SpreadDrillFlag\",2,\"Spread\")\nSPRE FF 1 A_JumpIf(z-floorz < 1, \"Death\") // A_Checkfloor doesn't work here\nSPRE B 0 A_JumpIfInTargetInventory(\"SpreadDrillFlag\",2,\"Spread\")\nLoop\nSpread:\nTNT1 A 0 A_TakeFromTarget(\"SpreadDrillFlag\",1)\nTNT1 A 0 A_SpawnItemEx(\"LargeDrillShell\",-8,0,0,5)\nTNT1 A 0 A_SpawnItemEx(\"MediumDrill1\",0,0,0,20,13,0,0)\nTNT1 A 0 A_SpawnItemEx(\"MediumDrill1\",0,0,0,20,-13,0,0)\nstop\nDeath:\nTNT1 A 0 A_TakeFromTarget(\"SpreadDrillFlag\",2)\nstop\n}\n}\n\nactor MediumDrill1 : SpreadDrill\n{\n-NOCLIP\n-LOWGRAVITY\n+NOGRAVITY\nradius 20\nscale 2.5\ndamage (10)\nDamageType \"SpreadDrill2\"\nstates\n{\nSpawn:\nSPRE B 0\nSPRE CB 2\nGoto Death\nDeath:\nTNT1 A 0 A_CustomMissile(\"MediumDrill2\",0,0,0, 2,0)\nTNT1 A 0 A_CustomMissile(\"MediumDrill2\",0,0,0, 2,0)\nstop\n}\n}\n\nactor MediumDrill2 : SpreadDrill\n{\n-NOCLIP\n-LOWGRAVITY\n+NOGRAVITY\nradius 16\nscale 2.5\nSpeed 20\nDamageType \"SpreadDrill2\"\ndamage (10)\nstates\n{\nSpawn:\nSPRE CB 2\nSPRE B 0 A_JumpIfInTargetInventory(\"SpreadDrillFlag\",2,\"Spread\")\nLoop\nSpread:\nTNT1 A 0 A_SpawnItemEx(\"MediumDrillShell\",-4,0,0,5)\nTNT1 A 0 A_SpawnItemEx(\"SmallDrill1\",0,0,0,20,8,0,0)\nTNT1 A 0 A_SpawnItemEx(\"SmallDrill1\",0,0,0,20,-8,0,0)\nTNT1 A 0 A_GiveToTarget(\"SpreadDrillFlag\", 2)\nstop\nDeath:\nTNT1 A 0\nTNT1 A 0 A_TakeFromTarget(\"SpreadDrillFlag\",2)\nstop\n}\n}\n\nactor SmallDrill1 : MediumDrill1\n{\nradius 12\nheight 8\ndamage (8)\nDamageType \"SpreadDrill3\"\nstates\n{\nSpawn:\nSPRE D 0\nSPRE ED 2\nGoto Death\nDeath:\nTNT1 A 0 A_CustomMissile(\"SmallDrill2\",0,0,0, 2,0)//A_SpawnItemEx(\"SmallDrill2\",0,0,0,27,0,0,0)\nstop\n}\n}\n\nactor SmallDrill2 : MediumDrill2\n{\nradius 8\nheight 8\ndamage (8)\nSpeed 28\nDamageType \"SpreadDrill3\"\nstates\n{\nSpawn:\nSPRE ED 2\nloop\nDeath:\nTNT1 A 0\nstop\n}\n}\n\nactor LargeDrillShell\n{\n+MISSILE\n+RIPPER\n+NOCLIP\nRadius 1\nHeight 1\nscale 2.5\nGravity 0.3\nStates\n{\nSpawn:\nTNT1 A 0\nSHEL A 1 A_PlaySoundEx(\"weapon/spreaddrill2\",\"Weapon\")\nTNT1 A 1\nSpawn2:\nSHEL A 1\nTNT1 A 1 A_CheckFloor(\"Death\")\nloop\nDeath:\nTNT1 A 0\nstop\n}\n}\n\nactor MediumDrillShell : LargeDrillShell\n{\nStates\n{\nSpawn:\nTNT1 A 0\nSHEL B 1 A_PlaySoundEx(\"weapon/spreaddrill3\",\"Weapon\")\nTNT1 A 1\nSpawn2:\nSHEL B 1\nTNT1 A 1 A_CheckFloor(\"Death\")\nloop\n}\n}\n\nactor SpreadDrillProtect : PowerProtection\n{\nPowerup.Duration 3\nDamageFactor \"SpreadDrill\", 0.1\nDamageFactor \"SpreadDrill2\", 0.5\nDamageFactor \"SpreadDrill3\", 0.5\n}"
},
{
"source": "pk3",
"name": "actors/inventory/mmv/bubblebomb.txt",
"contents": "actor BubbleBombWep : BaseMM8BDMWep 10104\n{\n//$Category MM8BDM-Weapons\n//$Title Bubble Bomb\n//$Sprite BBOMA0\nWeapon.AmmoUse 2\nWeapon.AmmoGive 28\nWeapon.SlotNumber 5\nObituary \"$OB_BUBBLEBOMB\"\nTag \"$TAG_BUBBLEBOMB\"\nInventory.Pickupmessage \"$PU_BUBBLEBOMB\"\nweapon.ammotype \"BubbleBombAmmo\"\ninventory.icon \"BBOMWI\"\nStates\n{\nSpawnLoop:\nBBOM A -1\nloop\nReady:\nBBOM F 0 ACS_ExecuteAlways(998,0,207)\nBBOM F 0 A_TakeInventory(\"BubbleBombSwitch\", 1)\nBBOM F 1 A_WeaponReady\nGoto Ready+2\nDeselect:\nTNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Lower\nBBOM F 1 A_Lower\nLoop\nSelect:\nTNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Raise\nBBOM F 1 A_Raise\nLoop\nFire:\nBBOM F 0 A_JumpIfNoAmmo(\"NoAmmo\")\nTNT1 A 1\nTNT1 A 0 A_JumpIfInventory(\"BubbleBombSwitch\", 1, \"FireSwap\")\nBBOM IJ 1\nBBOM F 0 A_PlaySoundEx(\"weapon/bubblebomb\",\"Weapon\")\nBBOM F 0 A_FireCustomMissile(\"BubbleBomb\",0,1,8,0)\nBBOM F 0 A_GiveInventory(\"BubbleBombFrames\", 1)\nBBOM F 0 A_GiveInventory(\"BubbleBombSwitch\", 1)\nBBOM KLMN 1\ngoto FireEnd\nFireSwap:\nBBOM OP 1\nBBOM F 0 A_PlaySoundEx(\"weapon/bubblebomb\",\"Weapon\")\nBBOM F 0 A_FireCustomMissile(\"BubbleBomb2\",0,1,8,0)\nBBOM F 0 A_GiveInventory(\"BubbleBombFrames\", 1)\nBBOM F 0 A_TakeInventory(\"BubbleBombSwitch\", 1)\nBBOM QRST 1\ngoto FireEnd\nAltfireSwap:\nBBOM IJ 1\nBBOM F 0 A_PlaySoundEx(\"weapon/bubblebomb\",\"Weapon\")\nBBOM F 0 A_FireCustomMissile(\"BubbleBomb\",0,1,8,0)\nBBOM F 0 A_GiveInventory(\"BubbleBombFrames\", 1)\nBBOM F 0 A_TakeInventory(\"BubbleBombSwitch\", 1)\nBBOM KLMN 1\ngoto FireEnd\nFireEnd:\nTNT1 A 1 A_RailWait\nTNT1 A 0 A_JumpIfInventory(\"BubbleBombFrames\", 1, \"FrameRefireCheck\")\ngoto FireEndTrue\nFrameRefireCheck:\nTNT1 A 0 A_Refire(\"FireEnd\")\ngoto FireEndReleased\nFireEndReleased:\nTNT1 A 1 A_RailWait\nTNT1 A 0 A_JumpIfInventory(\"BubbleBombFrames\", 1, \"FireEndReleased\")\nBBOM F 0 A_TakeInventory(\"BubbleBombSwitch\", 1)\ngoto FireEndTrue\nFireEndTrue:\nTNT1 A 0 A_JumpIfNoAmmo(\"NoAmmoReady\")\nBBOM HG 2 A_WeaponReady\nGoto Ready+1\nNoAmmoReady:\nBBOM HG 2\nGoto Ready+1\nNoAmmo:\nBBOM F 1 ACS_Execute(979,0)\nGoto Ready+1\n}\n}\n\nactor BubbleBombSwitch : Once {}\nactor BubbleBombFrames : PowerUp { powerup.duration 17 }\n\nactor BubbleBombAmmo : Ammo\n{\ninventory.amount 1\ninventory.maxamount 28\n+INVENTORY.IGNORESKILL\n}\n\n// Based on WaveBuster from Classes-v9d.pk3\nactor BubbleBomb\n{\n PROJECTILE\n +FORCEXYBILLBOARD\n damagetype \"BubbleBomb\"\n Obituary \"$OB_BUBBLEBOMB\"\n Radius 10\n Height 10\n scale 2.5\n damage (1)\n speed 24\n var int user_DIRECTION;\n var int user_SPEED;\n States\n {\n Spawn:\n TNT1 A 0\n TNT1 A 0 A_SetUserVar(\"user_DIRECTION\",1)\n TNT1 A 0 A_SetUserVar(\"user_SPEED\", 6)\n goto SpawnStart\n SpawnStart:\n BBOM BB 1 A_Changevelocity(0, -(user_SPEED/2)*user_DIRECTION,0,1)\n BBOM B 0 A_Changevelocity(0, 3*user_SPEED*user_DIRECTION,0,1)\n goto SpawnLoop\n SpawnLoop:\n BBOM CCD 2\n BBOM EE 3 A_Changevelocity(0,-user_SPEED*user_DIRECTION,0,1)\n BBOM DC 3 A_Changevelocity(0,-user_SPEED*user_DIRECTION,0,1)\n BBOM CCD 2\n BBOM EE 3 A_Changevelocity(0,user_SPEED*user_DIRECTION,0,1)\n BBOM DC 3 A_Changevelocity(0,user_SPEED*user_DIRECTION,0,1)\n loop\n Death:\n BBOM A 0 A_Stop\n BBOM A 0 A_PlaySoundEx(\"weapon/crackerexplode\", \"Weapon\")\n BBOM A 0 A_Explode(42, 96, 0, 0, 48)\n TNT1 A 35 A_SpawnItemEx(\"ExplosionEffect2\")\n stop\n }\n}\n\nactor BubbleBomb2 : BubbleBomb\n{\n States\n {\n Spawn:\n TNT1 A 1\n TNT1 A 0 A_SetUserVar(\"user_DIRECTION\",-1)\n TNT1 A 0 A_SetUserVar(\"user_SPEED\", 6)\n goto SpawnStart\n }\n}\n\n// LEGACY: UNUSED BECAUSE A_WEAVE SOMETIMES SETS PROJECTILES AS RIPPER.\n/*\nactor BubbleBomb\n{\n PROJECTILE\n +FORCEXYBILLBOARD\n damagetype \"BubbleBomb\"\n Obituary \"$OB_BUBBLEBOMB\"\n Radius 10\n Height 10\n scale 2.5\n damage (1)\n speed 20\n var int user_waveSpeed;\n var int user_waveSize;\n States\n {\n Spawn:\n BBOM A 0\n BBOM A 0 A_SetUserVar(user_waveSpeed, 3)\n BBOM A 0 A_SetUserVar(user_waveSize, 6.0)\n goto SpawnLoop\n SpawnLoop:\n BBOM BBBBBB 1 A_Weave(user_waveSpeed, 0, user_waveSize, 0)\n BBOM CCCCCCDDDDDDEEEEEEDDDDDD 1 A_Weave(user_waveSpeed, 0, user_waveSize, 0)\n goto SpawnLoop + 6\n Death:\n BBOM A 0 A_Stop\n BBOM A 0 A_PlaySoundEx(\"weapon/crackerexplode\", \"Weapon\")\n BBOM A 0 A_Explode(50, 96, 0, 0, 48)\n TNT1 A 35 A_SpawnItemEx(\"ExplosionEffect2\")\n stop\n }\n}\n*/"
},
{
"source": "pk3",
"name": "actors/inventory/mmv/deepdigger.txt",
"contents": "actor DeepDiggerWep : BaseMM8BDMWep 10108\n{\n //$Category MM8BDM-Weapons\n //$Title Deep Digger\n //$Sprite DDIGA0\n Weapon.AmmoUse 2\n Weapon.AmmoGive 28\n Weapon.SlotNumber 2\n Inventory.Pickupmessage \"$PU_DEEPDIGGER\"\n Obituary \"$OB_DEEPDIGGER\"\n Tag \"$TAG_DEEPDIGGER\"\n weapon.ammotype \"DeepDiggerAmmo\"\n inventory.icon \"DDIGWI\"\n States\n {\n SpawnLoop:\n DDIG A -1\n loop\n Ready:\n DDIG D 0 ACS_ExecuteAlways(998,0,212)\n DDIG D 1 A_WeaponReady\n Goto Ready+1\n Deselect:\n DDIG D 0 A_JumpIfHealthLower(1, 3) // Don't throw rocks if you're dead\n DDIG D 0 A_JumpIfInventory(\"DeepDiggerFlagL\", 1, \"Fire\")\n DDIG D 0 A_JumpIfInventory(\"DeepDiggerFlagR\", 1, \"Fire\")\n DDIG D 0 A_TakeInventory(\"DeepDiggerFlagL\", 1)\n DDIG D 0 A_TakeInventory(\"DeepDiggerFlagR\", 1)\n TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Lower\n DDIG D 1 A_Lower\n goto Deselect+3\n Select:\n TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Raise\n DDIG D 1 A_Raise\n Loop\n Altfire:\n Fire:\n DDIG D 0 A_JumpIfInventory(\"DeepDiggerFlagR\", 1, \"CheckRight\")\n DDIG D 0 A_JumpIfInventory(\"DeepDiggerFlagL\", 1, \"CheckRight\")\n DDIG D 0 A_JumpIfNoAmmo(\"NoAmmo\")\n DDIG EZ 1\n DDIG D 0 A_PlaySoundEx(\"weapon/deepdiggerdig\", \"weapon\")\n DDIG D 0 A_GiveInventory(\"DeepDiggerFlagL\", 1)\n DDIG D 0 A_GiveInventory(\"DeepDiggerFlagR\", 1)\n DDIG A 0 SetPlayerProperty(0,1,0)\n DDIG D 0 A_Stop\n DDIG A 0 A_SpawnItemEx(\"TempDeepDigger\", 68, 17, 16)\n DDIG A 0 A_SpawnItemEx(\"TempDeepDigger\", 60, -17, 16)\n DDIG F 1\n DDIG A 0 A_SpawnItemEx(\"TempDeepDigger\", 52, 16, 32)\n DDIG A 0 A_SpawnItemEx(\"TempDeepDigger\", 44, -16, 32)\n DDIG F 1\n DDIG A 0 A_SpawnItemEx(\"TempDeepDigger\", 36, 15, 48)\n DDIG A 0 A_SpawnItemEx(\"TempDeepDigger\", 28, -15, 48)\n DDIG G 1\n DDIG A 0 A_SpawnItemEx(\"TempDeepDigger\", 20, 13, 64)\n DDIG A 0 A_SpawnItemEx(\"TempDeepDigger\", 12, -13, 64)\n DDIG G 1\n DDIG A 0 A_SpawnItemEx(\"TempDeepDigger\", 4, 10, 74)\n DDIG A 0 A_SpawnItemEx(\"TempDeepDigger\", -4, -10, 74)\n DDIG H 1\n DDIG H 1 A_GiveInventory(\"SpawnTempDeepDigger\", 1)\n DDIG D 0 SetPlayerProperty(0,0,0)\n TNT1 AAAAAAAAAA 1 A_GiveInventory(\"SpawnTempDeepDigger\", 1)\n goto Carry\n Carry:\n TNT1 A 0 A_GiveInventory(\"SpawnTempDeepDigger\", 1)\n TNT1 A 1 A_WeaponReady\n TNT1 A 0 A_JumpIfInventory(\"DeepDiggerFlagR\", 1, \"Carry\")\n TNT1 A 0 A_JumpIfInventory(\"DeepDiggerFlagL\", 1, \"Carry\")\n TNT1 A 0 A_JumpIf(true, \"FireEnd\")\n loop\n\n FireEnd:\n TNT1 A 1 A_RailWait\n TNT1 A 0 A_JumpIfInventory(\"DeepDiggerAltFrames\", 1, \"FireEnd\")\n TNT1 A 0 A_JumpIfInventory(\"DeepDiggerMainFrames\", 1, \"FireEnd\")\n TNT1 A 0 A_JumpIf(true, \"FireEndReal\")\n loop\n FireEndReal:\n TNT1 A 10\n DDIG OP 6\n DDIG D 0 A_ClearRefire\n Goto Ready+1\n\n CheckRight:\n TNT1 A 0 A_JumpIfInventory(\"DeepDiggerMainFrames\", 1, \"FireLeft\")\n TNT1 A 0 A_JumpIfInventory(\"DeepDiggerAltFrames\", 1, \"FireRight\")\n TNT1 A 0 A_GunFlash(\"FlashFireRight\")\n TNT1 A 0 A_JumpIfInventory(\"DeepDiggerFlagR\", 1, \"RightWait\")\n TNT1 A 0 A_JumpIfInventory(\"DeepDiggerFlagL\", 1, \"RightWait\")\n TNT1 A 1 A_JumpIf(true, \"FireEnd\")\n loop\n RightWait:\n TNT1 AAAAAA 1 A_GiveInventory(\"SpawnTempDeepDigger\", 1)\n goto Carry\n CheckLeft:\n TNT1 A 0 A_JumpIfInventory(\"DeepDiggerMainFrames\", 1, \"FireLeft\")\n TNT1 A 0 A_JumpIfInventory(\"DeepDiggerAltFrames\", 1, \"FireRight\")\n TNT1 A 0 A_GunFlash(\"FlashFireLeft\")\n TNT1 A 0 A_JumpIfInventory(\"DeepDiggerFlagR\", 1, \"LeftWait\")\n TNT1 A 0 A_JumpIfInventory(\"DeepDiggerFlagL\", 1, \"LeftWait\")\n TNT1 A 1 A_JumpIf(true, \"FireEnd\")\n loop\n LeftWait:\n TNT1 AAAAAA 1 A_GiveInventory(\"SpawnTempDeepDigger\", 1)\n goto Carry\n\n FireLeft:\n TNT1 A 0 A_PlaySoundEx(\"weapon/deepdiggerthrow\",\"Weapon\")\n TNT1 A 0 A_FireCustomMissile(\"DeepDigger\",0,1,-10,4)\n TNT1 A 0 A_GiveInventory(\"DeepDiggerTakeLeft\", 1)\n DDIG QRSTUV 1 A_GiveInventory(\"SpawnTempDeepDigger\", 1)\n goto FireEnd\n FireRight:\n TNT1 A 0 A_PlaySoundEx(\"weapon/deepdiggerthrow\",\"Weapon\")\n TNT1 A 0 A_FireCustomMissile(\"DeepDigger\",0,1,10,-4)\n TNT1 A 0 A_GiveInventory(\"DeepDiggerTakeRight\", 1)\n DDIG IJKLMN 1 A_GiveInventory(\"SpawnTempDeepDigger\", 1)\n goto FireEnd\n\n FlashFireLeft:\n DDIG F 0 A_PlaySoundEx(\"weapon/deepdiggerthrow\",\"Weapon\")\n DDIG F 0 A_FireCustomMissile(\"DeepDigger\",0,1,-10,4)\n DDIG F 0 A_GiveInventory(\"DeepDiggerTakeLeft\", 1)\n DDIG QRSTUV 1\n stop\n FlashFireRight:\n DDIG F 0 A_PlaySoundEx(\"weapon/deepdiggerthrow\",\"Weapon\")\n DDIG F 0 A_FireCustomMissile(\"DeepDigger\",0,1,10,-4)\n DDIG F 0 A_GiveInventory(\"DeepDiggerTakeRight\", 1)\n DDIG IJKLMN 1\n stop\n\n NoAmmo:\n DDIG D 1 ACS_Execute(979,0)\n Goto Ready+1\n }\n}\n\nactor TempDeepDigger\n{\n +NOINTERACTION\n +NOGRAVITY\n +CLIENTSIDEONLY\n +NOTIMEFREEZE\n -SOLID\n scale 2.5\n height 0\n radius 0\n States\n {\n Spawn:\n DDIG B 0\n DDIG B 1\n stop\n }\n}\n\nactor SpawnTempDeepDigger : CustomInventory\n{\n States\n {\n Pickup:\n TNT1 A 0\n CheckRight:\n TNT1 A 0 A_JumpIfInventory(\"DeepDiggerFlagR\", 1, \"SpawnRight\")\n goto CheckLeft\n SpawnRight:\n TNT1 A 0 A_GiveInventory(\"SpawnTempDeepDigger_PR\", 1)\n goto CheckLeft\n CheckLeft:\n TNT1 A 0 A_JumpIfInventory(\"DeepDiggerFlagL\", 1, \"SpawnLeft\")\n stop\n SpawnLeft:\n TNT1 A 0 A_GiveInventory(\"SpawnTempDeepDigger_PL\", 1)\n stop\n }\n}\n\nactor SpawnTempDeepDigger_PR : CustomInventory\n{\n States\n {\n Pickup:\n TNT1 A 0 A_SpawnItemEx(\"TempDeepDigger\", -1, 10, 56 + 16, momx, momy, momz, 0, SXF_ABSOLUTEMOMENTUM)\n stop\n }\n}\n\nactor SpawnTempDeepDigger_PL : CustomInventory\n{\n States\n {\n Pickup:\n TNT1 A 0 A_SpawnItemEx(\"TempDeepDigger\", -9, -10, 56 + 16, momx, momy, momz, 0, SXF_ABSOLUTEMOMENTUM)\n stop\n }\n}\n\nactor DeepDiggerTakeRight : CustomInventory\n{\n States\n {\n Pickup:\n TNT1 A 0\n TNT1 A 0 A_GiveInventory(\"DeepDiggerMainFrames\", 1)\n TNT1 A 0 A_JumpIfInventory(\"DeepDiggerFlagR\", 1, \"TakeRight\")\n TNT1 A 0 A_JumpIfInventory(\"DeepDiggerFlagL\", 1, \"TakeLeft\")\n TNT1 A 1 A_JumpIf(true, \"End\")\n wait\n TakeRight:\n TNT1 A 0 A_TakeInventory(\"DeepDiggerFlagR\", 1)\n goto End\n TakeLeft:\n TNT1 A 0 A_TakeInventory(\"DeepDiggerFlagL\", 1)\n goto End\n End:\n TNT1 A 0\n stop\n }\n}\n\nactor DeepDiggerTakeLeft : DeepDiggerTakeRight\n{\n States\n {\n Pickup:\n TNT1 A 0\n TNT1 A 0 A_GiveInventory(\"DeepDiggerAltFrames\", 1)\n TNT1 A 0 A_JumpIfInventory(\"DeepDiggerFlagL\", 1, \"TakeLeft\")\n TNT1 A 0 A_JumpIfInventory(\"DeepDiggerFlagR\", 1, \"TakeRight\")\n TNT1 A 1 A_JumpIf(true, \"End\")\n wait\n }\n}\n\nactor DeepDiggerAltFrames : Powerup\n{\n powerup.duration 12\n}\n\nactor DeepDiggerMainFrames : Powerup\n{\n powerup.duration 12\n}\n\nactor DeepDiggerAmmo : Ammo\n{\ninventory.amount 1\ninventory.maxamount 28\n+INVENTORY.IGNORESKILL\n}\n\nactor DeepDiggerFlagL : Inventory\n{\n inventory.amount 1\n inventory.maxamount 2\n}\nactor DeepDiggerFlagR : DeepDiggerFlagL {}\n\nactor DeepDigger\n{\n PROJECTILE\n Radius 10\n Height 10\n scale 2.5\n damage (34)\n speed 40\n damagetype \"DeepDigger\"\n Obituary \"$OB_DEEPDIGGER\"\n States\n {\n Spawn:\n DDIG B 1\n loop\n XDeath:\n DDIG B 0 A_PlaySoundEx(\"weapon/deepdiggerbreak\", \"auto\")\n DDIG BBBB 0 A_SpawnItemEx(\"DeepDiggerBreakFX\",0,0,0,random(-10,10),random(-10,10),random(5,10),random(0,360))\n TNT1 A 2\n stop\n Death:\n DDIG B 0 A_PlaySoundEx(\"weapon/deepdiggerbreak\", \"auto\")\n DDIG B 0 A_SpawnItemEx(\"DeepDiggerBit\", 0, 0, 0, 1, 0, 0, 67.5, SXF_MULTIPLYSPEED)\n DDIG B 0 A_SpawnItemEx(\"DeepDiggerBit\", 0, 0, 0, 1, 0, 0, 22.5, SXF_MULTIPLYSPEED)\n DDIG B 0 A_SpawnItemEx(\"DeepDiggerBit\", 0, 0, 0, 1, 0, 0, -22.5, SXF_MULTIPLYSPEED)\n DDIG B 0 A_SpawnItemEx(\"DeepDiggerBit\", 0, 0, 0, 1, 0, 0, -67.5, SXF_MULTIPLYSPEED)\n TNT1 A 2\n stop\n }\n}\n\nactor DeepDiggerBreakFX\n{\nPROJECTILE\ndamage 0\n+RIPPER\n-NOGRAVITY\n+CLIENTSIDEONLY\n-SOLID\nscale 2.5\n+HEXENBOUNCE\nHeight 2\nRadius 2\nStates\n{\nSpawn:\nDDIG C 2\nTNT1 A 2\nDDIG C 2\nTNT1 A 2\nDDIG C 2\nTNT1 A 2\nDDIG C 2\nTNT1 A 2\nDDIG C 2\nTNT1 A 2\nstop\n}\n}\n\nactor DeepDiggerBit\n{\n PROJECTILE\n +HEXENBOUNCE\n bouncecount 2\n Obituary \"$OB_DEEPDIGGER\"\n damagetype \"DeepDigger\"\n Radius 5\n Height 5\n scale 2.5\n damage (10)\n speed 40\n States\n {\n Spawn:\n DDIG C 1\n DDIG C 0 A_ChangeFlag(HEXENBOUNCE, false)\n DDIG C 1\n wait\n }\n}"
},
{
"source": "pk3",
"name": "actors/inventory/mmv/electricshock.txt",
"contents": "actor ElectricShockWep : BaseMM8BDMWep 10106\n{\n //$Category MM8BDM-Weapons\n //$Title Electric Shock\n //$Sprite ESPAA0\n Weapon.AmmoUse 1\n Weapon.AmmoGive 56\n Weapon.SlotNumber 4\n Inventory.Pickupmessage \"$PU_ELECTRICSHOCK\"\n Obituary \"$OB_ELECTRICSHOCK\"\n Tag \"$TAG_ELECTRICSHOCK\"\n weapon.ammotype \"ElectricShockAmmo\"\n inventory.icon \"ESPAWI\"\n States\n {\n SpawnLoop:\n ESPA A -1\n loop\n Ready:\n ESPA D 0 ACS_ExecuteAlways(998,0,210)\n ESPA D 1 A_WeaponReady\n goto Ready+1\n Deselect:\n TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Lower\n ESPA D 1 A_Lower\n Loop\n Select:\n TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Raise\n ESPA D 1 A_Raise\n Loop\n Altfire:\n Fire:\n ESPA D 0 A_JumpIfNoAmmo(\"NoAmmo\")\n ESPA EF 2\n TNT1 A 2\n ESPA GH 1\n Hold:\n ESPA D 0 A_PlaySoundEx(\"weapon/electricshock\", \"Weapon\")\n ESPA D 0 A_FireCustomMissile(\"ElectricShockBurstStart\",0,0,0,0)\n ESPA I 3 A_FireCustomMissile(\"ElectricShockDamager\",0,1,0,0)\n ESPA D 0 A_JumpIfNoAmmo(\"FireEnd\")\n ESPA I 0 A_Refire\n FireEnd:\n ESPA JK 7\n ESPA D 0 A_ClearRefire\n goto Ready+1\n NoAmmo:\n ESPA D 1 ACS_Execute(979,0)\n Goto Ready+1\n }\n}\n\nactor ElectricShockAmmo : Ammo\n{\n inventory.amount 1\n inventory.maxamount 56\n +INVENTORY.IGNORESKILL\n}\n\nactor ElectricShockBurstStart //: BasicHelper\n{\n +MISSILE\n -SOLID\n +NOCLIP\n +NOINTERACTION\n +NOGRAVITY\n +DONTBLAST\n +DONTREFLECT\n +THRUACTORS\n RenderStyle none\n Radius 2\n Height 2\n\n Speed 15\n States\n {\n Spawn:\n TNT1 A 0\n TNT1 A 0 A_Warp(2,0,0,32,0,16+8)//But which interpolation? Does it matter?\n TNT1 A 1 A_SpawnItemEx(\"ElectricShockBurst\",0,0,0,momx,momy,momz,0,8)\n stop\n }\n}\n\nactor ElectricShockBurst : FastProjectile//FastProj to match damager hitbox\n{\n +MISSILE\n +NOGRAVITY\n +SKYEXPLODE\n +EXPLODEONWATER\n +DONTSPLASH\n +PAINLESS\n +CLIENTSIDEONLY\n RenderStyle None\n Damage (0)\n Radius 10\n Height 10\n Speed 15\n Scale 2.5\n States\n {\n Spawn:\n TNT1 A 0\n TNT1 A 0 A_JumpIf(Pitch > 18,\"Death2\")\n TNT1 A 0 A_SetPitch(Pitch+1)\n TNT1 A 0 A_SpawnItemEx(\"ElectricShockBurst\",0,0,0,momx,momy,momz,0,552)//512+32+8\n TNT1 A 0 A_Stop\n TNT1 A 0 A_SpawnItemEx(\"ElectricShockFX\",0,frandom(-9,9),frandom(-9,9))\n TNT1 A 0 A_SpawnItemEx(\"ElectricShockBurst2\",0,frandom(-16,16),frandom(-16,16))\n TNT1 A 1\n stop\n Death:\n TNT1 A 0 A_SpawnItemEx(\"ElectricShockEndFX\")\n stop\n Death2:\n TNT1 A 0 A_Stop\n TNT1 A 0 A_SpawnItemEx(\"ElectricShockEndFX\")\n stop\n }\n}\n\nactor ElectricShockFX : BasicGraphicEffect\n{\n +FORCEXYBILLBOARD\n +BRIGHT\n States\n {\n Spawn:\n ESPA Q 0\n ESPA Q 0 A_Jump(256,1,4)\n ESPA QRS 1\n stop\n ESPA XWV 1\n stop\n }\n}\n\nactor ElectricShockEndFX : ElectricShockFX\n{\n States\n {\n Spawn:\n ESPA ZYZY 1\n ESPA Z 0 A_SetScale(1.25)\n ESPA ZY 1\n stop\n }\n}\n\nactor ElectricShockBurst2\n{\n +MISSILE\n +NOGRAVITY\n +SKYEXPLODE\n +EXPLODEONWATER\n +DONTSPLASH\n +PAINLESS\n +CLIENTSIDEONLY\n +FORCEXYBILLBOARD\n +BRIGHT\n Damage (0)\n Radius 10\n Height 10\n Speed 15\n Scale 2.5\n States\n {\n Spawn:\n TNT1 A 0\n TNT1 A 0 A_JumpIf(random(1,4) >= 4,\"SpawnReal\")\n stop\n SpawnReal:\n TNT1 A 10 A_SetTics(random(2,4)*3)\n TNT1 A 0 A_PlaySoundEx(\"weapon/electricshockspark\",\"Auto\")\n TNT1 A 0 A_SetPitch(random(12,18))\n TNT1 A 0 A_SpawnItemEx(\"ElectricShockBurst3\",0,0,0,0,0,0,0,544)//512+32\n stop\n Death:\n TNT1 A 0\n stop\n }\n}\n\nactor ElectricShockBurst3 : ElectricShockBurst2\n{\n +BRIGHT\n Scale 0.5\n States\n {\n Spawn:\n ESPA T 0\n ESPA T 0 A_JumpIf(Pitch < 2,\"Death\")\n ESPA T 0 A_SetPitch(Pitch-1)\n ESPA T 0 A_SpawnItemEx(\"ElectricShockBurst3\",-2*random(0,1)+1, -2*random(0,1)+1, -2*random(0,1)+1,0,0,0,0,544)//512+32\n ESPA T 0 A_SetTics(random(0,2))\n ESPA T 0 A_Jump(256,1,2)\n ESPA T 1\n stop\n ESPA U 1\n stop\n }\n}\n\nactor ElectricShockDamager : FastProjectile\n{\n PROJECTILE\n damagetype \"ElecticShock\"\n Obituary \"$OB_ELECTRICSHOCK\"\n +SKYEXPLODE\n +EXPLODEONWATER\n RenderStyle None\n Damage (9)\n Radius 10\n Height 10\n speed 150\n scale 2.5\n states\n {\n Spawn:\n TNT1 A 0\n TNT1 A 1\n TNT1 A 0\n stop\n }\n}"
},
{
"source": "pk3",
"name": "actors/inventory/mmv/photonmissile.txt",
"contents": "const int CONST_PHOTONMAX = 55;\nconst int CONST_PHOTONARM = 30;\n\nactor PhotonMissileWep : BaseMM8BDMWep 10105\n{\n //$Category MM8BDM-Weapons\n //$Title Photon Missile\n //$Sprite PMISA0\n Weapon.AmmoUse 3\n Weapon.AmmoGive 28\n Weapon.SlotNumber 5\n Inventory.Pickupmessage \"$PU_PHOTONMISSILE\"\n Obituary \"$OB_PHOTONMISSILE\"\n Tag \"$TAG_PHOTONMISSILE\"\n weapon.ammotype \"PhotonMissileAmmo\"\n inventory.icon \"PMISWI\"\n States\n {\n SpawnLoop:\n PMIS A -1\n loop\n Ready:\n PMIS G 0 ACS_ExecuteAlways(998,0,208)\n PMIS G 1 A_WeaponReady\n goto Ready+1\n Deselect:\n TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Lower\n PMIS G 1 A_Lower\n Loop\n Select:\n TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Raise\n PMIS G 1 A_Raise\n Loop\n Fire:\n\tAltfire:\n PMIS G 0 A_JumpIfNoAmmo(\"NoAmmo\")\n PMIS G 0 A_TakeInventory(\"PhotonMissileAmmo\", 3, TIF_NOTAKEINFINITE)\n PMIS H 0 A_PlaySoundEx(\"weapon/photonmissilestart\", \"weapon\")\n PMIS H 1\n HoldB1:\n PMIS H 0 A_SpawnItemEx(\"PhotonMissileHold1\", 48*cos(pitch), 8, 48*sin(-pitch)+32, momx, momy, momz, 0, SXF_ABSOLUTEMOMENTUM)\n PMIS H 0 A_GiveInventory(\"PhotonMissileCharge\", 1)\n PMIS H 1 A_JumpIfInventory(\"PhotonMissileCharge\", CONST_PHOTONARM, \"HoldArm\")\n PMIS H 0 A_Refire(\"HoldB2\")\n goto Launch\n HoldB2:\n PMIS H 0 A_SpawnItemEx(\"PhotonMissileHold1\", 48*cos(pitch), 8, 48*sin(-pitch)+32, momx, momy, momz, 0, SXF_ABSOLUTEMOMENTUM)\n PMIS H 0 A_GiveInventory(\"PhotonMissileCharge\", 1)\n PMIS H 1 A_JumpIfInventory(\"PhotonMissileCharge\", CONST_PHOTONARM, \"HoldArm\")\n PMIS H 0 A_Refire(\"HoldC1\")\n goto Launch\n HoldC1:\n PMIS H 0 A_SpawnItemEx(\"PhotonMissileHold2\", 48*cos(pitch), 8, 48*sin(-pitch)+32, momx, momy, momz, 0, SXF_ABSOLUTEMOMENTUM)\n PMIS H 0 A_GiveInventory(\"PhotonMissileCharge\", 1)\n PMIS H 1 A_JumpIfInventory(\"PhotonMissileCharge\", CONST_PHOTONARM, \"HoldArm\")\n PMIS H 0 A_Refire(\"HoldC2\")\n goto Launch\n HoldC2:\n PMIS H 0 A_SpawnItemEx(\"PhotonMissileHold2\", 48*cos(pitch), 8, 48*sin(-pitch)+32, momx, momy, momz, 0, SXF_ABSOLUTEMOMENTUM)\n PMIS H 0 A_GiveInventory(\"PhotonMissileCharge\", 1)\n PMIS H 1 A_JumpIfInventory(\"PhotonMissileCharge\", CONST_PHOTONARM, \"HoldArm\")\n PMIS H 0 A_Refire(\"HoldD1\")\n goto Launch\n HoldD1:\n PMIS H 0 A_SpawnItemEx(\"PhotonMissileHold3\", 48*cos(pitch), 8, 48*sin(-pitch)+32, momx, momy, momz, 0, SXF_ABSOLUTEMOMENTUM)\n PMIS H 0 A_GiveInventory(\"PhotonMissileCharge\", 1)\n PMIS H 1 A_JumpIfInventory(\"PhotonMissileCharge\", CONST_PHOTONARM, \"HoldArm\")\n PMIS H 0 A_Refire(\"HoldD2\")\n goto Launch\n HoldD2:\n PMIS H 0 A_SpawnItemEx(\"PhotonMissileHold3\", 48*cos(pitch), 8, 48*sin(-pitch)+32, momx, momy, momz, 0, SXF_ABSOLUTEMOMENTUM)\n PMIS H 0 A_GiveInventory(\"PhotonMissileCharge\", 1)\n PMIS H 1 A_JumpIfInventory(\"PhotonMissileCharge\", CONST_PHOTONARM, \"HoldArm\")\n PMIS H 0 A_Refire(\"HoldB1\")\n goto Launch\n\n HoldArm:\n PMIS H 0 A_PlaySoundEx(\"weapon/photonmissilearm\", \"weapon\")\n goto HoldB3\n\n HoldB3:\n PMIS H 0 A_SpawnItemEx(\"PhotonMissileHold4\", 48*cos(pitch), 8, 48*sin(-pitch)+32, momx, momy, momz, 0, SXF_ABSOLUTEMOMENTUM)\n PMIS H 0 A_GiveInventory(\"PhotonMissileCharge\", 1)\n PMIS I 1 A_JumpIfInventory(\"PhotonMissileCharge\", CONST_PHOTONMAX, \"Launch\")\n PMIS H 0 A_Refire(\"HoldB4\")\n goto Launch\n HoldB4:\n PMIS H 0 A_SpawnItemEx(\"PhotonMissileHold4\", 48*cos(pitch), 8, 48*sin(-pitch)+32, momx, momy, momz, 0, SXF_ABSOLUTEMOMENTUM)\n PMIS H 0 A_GiveInventory(\"PhotonMissileCharge\", 1)\n PMIS I 1 A_JumpIfInventory(\"PhotonMissileCharge\", CONST_PHOTONMAX, \"Launch\")\n PMIS H 0 A_Refire(\"HoldC3\")\n goto Launch\n HoldC3:\n PMIS H 0 A_SpawnItemEx(\"PhotonMissileHold5\", 48*cos(pitch), 8, 48*sin(-pitch)+32, momx, momy, momz, 0, SXF_ABSOLUTEMOMENTUM)\n PMIS H 0 A_GiveInventory(\"PhotonMissileCharge\", 1)\n PMIS I 1 A_JumpIfInventory(\"PhotonMissileCharge\", CONST_PHOTONMAX, \"Launch\")\n PMIS H 0 A_Refire(\"HoldC4\")\n goto Launch\n HoldC4:\n PMIS H 0 A_SpawnItemEx(\"PhotonMissileHold5\", 48*cos(pitch), 8, 48*sin(-pitch)+32, momx, momy, momz, 0, SXF_ABSOLUTEMOMENTUM)\n PMIS H 0 A_GiveInventory(\"PhotonMissileCharge\", 1)\n PMIS I 1 A_JumpIfInventory(\"PhotonMissileCharge\", CONST_PHOTONMAX, \"Launch\")\n PMIS H 0 A_Refire(\"HoldD3\")\n goto Launch\n HoldD3:\n PMIS H 0 A_SpawnItemEx(\"PhotonMissileHold3\", 48*cos(pitch), 8, 48*sin(-pitch)+32, momx, momy, momz, 0, SXF_ABSOLUTEMOMENTUM)\n PMIS H 0 A_GiveInventory(\"PhotonMissileCharge\", 1)\n PMIS I 1 A_JumpIfInventory(\"PhotonMissileCharge\", CONST_PHOTONMAX, \"Launch\")\n PMIS H 0 A_Refire(\"HoldD4\")\n goto Launch\n HoldD4:\n PMIS H 0 A_SpawnItemEx(\"PhotonMissileHold3\", 48*cos(pitch), 8, 48*sin(-pitch)+32, momx, momy, momz, 0, SXF_ABSOLUTEMOMENTUM)\n PMIS H 0 A_GiveInventory(\"PhotonMissileCharge\", 1)\n PMIS I 1 A_JumpIfInventory(\"PhotonMissileCharge\", CONST_PHOTONMAX, \"Launch\")\n PMIS H 0 A_Refire(\"HoldB3\")\n goto Launch\n\n Launch:\n PMIS G 0 A_PlaySoundEx(\"weapon/megabuster\",\"Weapon\")\n PMIS G 0 A_GiveInventory(\"FirePhotonMissileLauncher\", 1) // SpreadRune\n PMIS G 0 A_SpawnItemEx(\"PhotonMissileHold3\", 48*cos(pitch), 8, 48*sin(-pitch)+32, momx, momy, momz, 0, SXF_ABSOLUTEMOMENTUM)\n PMIS IIHH 1\n PMIS G 0 A_TakeInventory(\"PhotonMissileCharge\", 999)\n PMIS G 14\n goto Ready+1\n NoAmmo:\n PMIS G 1 ACS_Execute(979,0)\n goto Ready+1\n }\n}\n\nactor PhotonMissileAmmo : Ammo\n{\n inventory.amount 1\n inventory.maxamount 28\n +INVENTORY.IGNORESKILL\n}\n\nactor PhotonMissileCharge : WeaponCharge\n{\n inventory.maxamount 55\n}\n\nactor PhotonMissileHold1\n{\n +NOINTERACTION\n +NOGRAVITY\n +CLIENTSIDEONLY\n -SOLID\n scale 2.5\n height 0\n radius 0\n States\n {\n Spawn:\n PMIS B 0\n PMIS B 1\n stop\n }\n}\n\nactor PhotonMissileHold2 : PhotonMissileHold1\n{\n States\n {\n Spawn:\n PMIS C 0\n PMIS C 1\n stop\n }\n}\n\nactor PhotonMissileHold3 : PhotonMissileHold1\n{\n States\n {\n Spawn:\n PMIS D 0\n PMIS D 1\n stop\n }\n}\n\nactor PhotonMissileHold4 : PhotonMissileHold1\n{\n +BRIGHT\n States\n {\n Spawn:\n PMIS E 0\n PMIS E 1\n stop\n }\n}\n\nactor PhotonMissileHold5 : PhotonMissileHold1\n{\n +BRIGHT\n States\n {\n Spawn:\n PMIS F 0\n PMIS F 1\n stop\n }\n}\n\nactor FirePhotonMissileLauncher : Custominventory\n{\n States\n {\n Pickup:\n TNT1 A 0 A_JumpIfInventory(\"RuneSpread\", 1, \"PickupSpread\")\n TNT1 A 0 A_SpawnItemEx(\"PhotonMissileLauncher\", 0, 8, 32, 48*cos(pitch), 0, 48*-sin(pitch), 0, SXF_TRANSFERPITCH)\n stop\n PickupSpread:\n TNT1 A 0 A_SpawnItemEx(\"PhotonMissileLauncher\", 0, 8, 48, 48*cos(pitch), 0, 48*-sin(pitch), 0, SXF_TRANSFERPITCH)\n TNT1 A 0 A_SpawnItemEx(\"PhotonMissileLauncher\", 0, -6, 24, 48*cos(pitch), 0, 48*-sin(pitch), 0, SXF_TRANSFERPITCH)\n TNT1 A 0 A_SpawnItemEx(\"PhotonMissileLauncher\", 0, 20, 24, 48*cos(pitch), 0, 48*-sin(pitch), 0, SXF_TRANSFERPITCH)\n stop\n }\n}\n\nactor PhotonMissileLauncher\n{\n PROJECTILE\n +THRUACTORS\n +DOOMBOUNCE\n Radius 10\n Height 10\n scale 2.5\n damage (1)\n speed 1\n damagetype \"PhotonMissile\"\n Obituary \"$OB_PHOTONMISSILE\"\n bouncefactor 0.0\n States\n {\n Spawn:\n TNT1 A 0\n TNT1 A 0 A_ChangeFlag(DOOMBOUNCE, false)\n TNT1 A 0 A_Stop\n TNT1 A 0 ACS_ExecuteAlways(259, 0, 1)\n PMIS ZC 1\n PMIS B 0\n PMIS B 0 A_JumpIfInTargetInventory(\"PhotonMissileCharge\", CONST_PHOTONMAX, \"Launch\")\n PMIS B 0 ACS_NamedExecuteAlways(\"core_loadphotonmissile\", 0)\n PMIS D 2\n PMIS B 0 A_JumpIfInventory(\"PhotonMissileCharge\", CONST_PHOTONARM+1, \"SpawnWait2\")\n SpawnWait:\n PMIS B 0 A_JumpIfInventory(\"PhotonMissileCharge\", CONST_PHOTONARM, \"SpawnArm\")\n PMIS B 1\n PMIS B 0 A_GiveInventory(\"PhotonMissileCharge\", 1)\n PMIS B 0 A_JumpIfInventory(\"PhotonMissileCharge\", CONST_PHOTONARM, \"SpawnArm\")\n PMIS B 1\n PMIS B 0 A_GiveInventory(\"PhotonMissileCharge\", 1)\n PMIS C 0 A_JumpIfInventory(\"PhotonMissileCharge\", CONST_PHOTONARM, \"SpawnArm\")\n PMIS C 1\n PMIS C 0 A_GiveInventory(\"PhotonMissileCharge\", 1)\n PMIS C 0 A_JumpIfInventory(\"PhotonMissileCharge\", CONST_PHOTONARM, \"SpawnArm\")\n PMIS C 1\n PMIS C 0 A_GiveInventory(\"PhotonMissileCharge\", 1)\n PMIS D 0 A_JumpIfInventory(\"PhotonMissileCharge\", CONST_PHOTONARM, \"SpawnArm\")\n PMIS D 1\n PMIS D 0 A_GiveInventory(\"PhotonMissileCharge\", 1)\n PMIS D 0 A_JumpIfInventory(\"PhotonMissileCharge\", CONST_PHOTONARM, \"SpawnArm\")\n PMIS D 1\n PMIS D 0 A_GiveInventory(\"PhotonMissileCharge\", 1)\n loop\n SpawnArm:\n PMIS D 0 A_PlaySoundEx(\"weapon/photonmissilearm\", \"auto\")\n PMIS D 0 A_ChangeFlag(BRIGHT, true)\n SpawnWait2:\n PMIS E 0 A_JumpIfInventory(\"PhotonMissileCharge\", CONST_PHOTONMAX, \"Launch\")\n PMIS E 1\n PMIS E 0 A_GiveInventory(\"PhotonMissileCharge\", 1)\n PMIS E 0 A_JumpIfInventory(\"PhotonMissileCharge\", CONST_PHOTONMAX, \"Launch\")\n PMIS E 1\n PMIS E 0 A_GiveInventory(\"PhotonMissileCharge\", 1)\n PMIS F 0 A_JumpIfInventory(\"PhotonMissileCharge\", CONST_PHOTONMAX, \"Launch\")\n PMIS F 1\n PMIS F 0 A_GiveInventory(\"PhotonMissileCharge\", 1)\n PMIS F 0 A_JumpIfInventory(\"PhotonMissileCharge\", CONST_PHOTONMAX, \"Launch\")\n PMIS F 1\n PMIS F 0 A_GiveInventory(\"PhotonMissileCharge\", 1)\n PMIS D 0 A_JumpIfInventory(\"PhotonMissileCharge\", CONST_PHOTONMAX, \"Launch\")\n PMIS D 1\n PMIS D 0 A_GiveInventory(\"PhotonMissileCharge\", 1)\n PMIS D 0 A_JumpIfInventory(\"PhotonMissileCharge\", CONST_PHOTONMAX, \"Launch\")\n PMIS D 1\n PMIS D 0 A_GiveInventory(\"PhotonMissileCharge\", 1)\n loop\n Launch:\n PMIS D 0 A_PlaySoundEx(\"weapon/photonmissilelaunch\", \"auto\")\n PMIS D 0 A_SpawnItemEx(\"PhotonMissile\", 0, 0, 0, 80*cos(pitch), 0, 80*sin(-pitch))\n TNT1 A 35\n stop\n Death:\n TNT1 A 0 A_SpawnItemEx(\"PhotonMissileExplosion\")\n stop\n }\n}\n\nactor PhotonMissile : FastProjectile\n{\n PROJECTILE\n +RIPPER\n +BRIGHT\n missiletype \"PhotonMissileTrail\"\n damagetype \"PhotonMissile\"\n Obituary \"$OB_PHOTONMISSILE\"\n damage (1)\n Radius 10\n Height 10\n scale 2.5\n Speed 80\n States\n {\n Spawn:\n PMIS DEF 2\n loop\n Death:\n TNT1 A 0 A_SpawnItemEx(\"PhotonMissileExplosion\")\n stop\n }\n}\n\nactor PhotonMissileExplosion\n{\n PROJECTILE\n +FORCEXYBILLBOARD\n +NOINTERACTION\n Radius 1\n Height 1\n scale 2.5\n damagetype \"PhotonMissile\"\n Obituary \"$OB_PHOTONMISSILE\"\n States\n {\n Spawn:\n TNT1 A 0\n TNT1 A 0 A_PlaySoundEx(\"weapon/photonmissileexplode\", \"auto\")\n TNT1 A 0 A_Explode(60, 128, 0, 0, 64)\n TNT1 A 35 A_SpawnItemEx(\"ExplosionEffect3\")\n stop\n }\n}\n\nactor PhotonMissileTrail : PhotonMissileHold3\n{\n States\n {\n Spawn:\n TNT1 A 0\n stop\n }\n}"
},
{
"source": "pk3",
"name": "actors/Megaman/Bombman.txt",
"contents": "actor Bombman : SturdyClassBase\n{\nPlayer.ScoreIcon \"C_01D0X\"\nplayer.startitem \"SturdyHealthBar\"\nplayer.displayname \"Bombman\"\nplayer.soundclass \"bombmanc\"\nplayer.startitem \"HyperBombBoss\"\nPlayer.StartItem \"GigaAmmo\", 106\nplayer.forwardmove 0.65, 0.65\nplayer.sidemove 0.63, 0.63\nplayer.jumpz 13\n//player.startitem \"RealClassFlag\", 14\n\nplayer.startitem \"RollingCutterWeakness2\", 1\n\nplayer.startitem \"RollingCutterWeakness\", 1\nplayer.startitem \"MetalBladeWeakness\", 1\nplayer.startitem \"ShadowBladeWeakness\", 1\nplayer.startitem \"GyroAttackWeakness\", 1\nplayer.startitem \"SilverTomahawkWeakness\", 1\nplayer.startitem \"TenguBladeWeakness\", 1\n//player.startitem \"WheelCutterWeakness\", 1\nplayer.startitem \"ScrewCrusherWeakness\", 1\n\n/*player.startitem \"FireStormWeakness2\", 1\n\nplayer.startitem \"FireStormWeakness\", 1\nplayer.startitem \"AtomicFireWeakness\", 1\nplayer.startitem \"PharaohShotWeakness\", 1\nplayer.startitem \"FlameBlastWeakness\", 1\nplayer.startitem \"FlameSwordWeakness\", 1*/\nStates\n{\nSpawn:\nBOMM A 0\nBOMM A 0 A_JumpIfInventory(\"SuperArmTemp\",1,3)\nBOMM B 1\nBOMM A -1\nBOMM R 1\nBOMM F 1 A_JumpIfInventory(\"VivifyDelay8\",1,\"MissileToss2\")\nwait\nSee:\nBOMM B 0 A_JumpIfInventory(\"SuperArmTemp\",1,\"SeeSomeBombs\")\nBOMM BCDE 5\nGoto Spawn\nSeeSomeBombs:\nBOMM RRRRRSSSSSTTTTTSSSSS 1 A_JumpIfInventory(\"VivifyDelay8\",1,\"MissileToss\")\nGoto Spawn+4\nMissile:\nBOMM F 0 A_JumpIfInventory(\"VivifyDelay8\",1,\"MissileToss\")\nBOMM F 0 A_JumpIfInventory(\"VivifyDelay5\",1,\"MissilePick\")\nBOMM FG 5\ngoto Spawn\nMissileToss:\nBOMM G 6\ngoto Spawn\nMissileToss2:\nBOMM G 6\ngoto Spawn+3\nMissilePick:\nBOMM GF 4\ngoto Spawn+4\n\nClassPain:\nBOMM H 0\ngoto PainContinue\nDeathFix:\nBOMM H 0\ngoto DeathContinue\nClassDeath:\nBOMM H 1\ngoto MegaDeathEnd\n}\n}"
},
{
"source": "pk3",
"name": "actors/Megaman/Fireman.txt",
"contents": "actor Fireman : ClassBase\n{\nPlayer.ScoreIcon \"C_01E0X\"\nplayer.displayname \"fireman\"\nplayer.soundclass \"firemanc\"\nplayer.startitem \"FireStormBoss\"\nplayer.startitem \"FireStormerBoss\"\nplayer.startitem \"BurningJusticeAmmo\", 24\nplayer.weaponslot 1, \"FireStormBoss\"\nplayer.weaponslot 2, \"FireStormerBoss\"\n\nplayer.startitem \"IceSlasherWeakness2\", 1\n\nplayer.startitem \"IceSlasherWeakness\", 1\nplayer.startitem \"BlizzardAttackWeakness\", 1\nplayer.startitem \"FreezeCrackerWeakness\", 1\nplayer.startitem \"IceWaveWeakness\", 1\nplayer.startitem \"IceWallWeakness\", 1\nplayer.startitem \"ChillSpikeWeakness\", 1\nStates\n{\nSpawn:\nFIRM A 0\nFIRM B 1\nFIRM A 1\nFIRM A random(110,220)\nFIRM RS 5\nGoto Spawn+4\nSee:\nFIRM BCDE 5\nGoto Spawn\nMissile:\nFIRM F 5\nFIRM G 4\ngoto Spawn\nClassPain:\nFIRM H 0\ngoto PainContinue\nDeathFix:\nFIRM H 0\ngoto DeathContinue\nClassDeath:\nFIRM H 1\ngoto MegaDeathEnd\n}\n}"
}
]
},
"maps": []
}