Raw model (for completeness)
{
"meta": {
"id": "0846d193-2d76-45fe-83d0-5c03b5e57c30",
"sha1": "3ed170eda87a067a7efeede323d38c9aba4ddf94",
"sha256": "0544d7ea3263467e925dd30b279bf9db76a64dd168cb524ba6ed1987ca5ea357",
"filenames": [
"mweps-mmu-v1a.pk3"
],
"additional": {
"engines": [],
"iwad": [],
"filename": null,
"added": "2021/02/11 08:09:06",
"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/02/11 08:09:06",
"file": {
"type": "PK3",
"size": 1203044,
"url": "https://wadarchive2.nyc3.digitaloceanspaces.com/3ed170eda87a067a7efeede323d38c9aba4ddf94/3ed170eda87a067a7efeede323d38c9aba4ddf94.pk3.gz",
"corrupt": false
},
"content": {
"counts": {
"endoom": 0,
"graphics": 0,
"lumps": 242,
"maps": 0,
"palettes": 0
}
},
"text_files": [
{
"source": "pk3",
"name": "MMUConstants.txt",
"contents": "const int COL_NAILSHIELD = 301;\nconst int COL_TANKARSENAL = 302;\nconst int COL_JETMISSILE = 303;\nconst int COL_JETMISSILECHARGE = 304;\nconst int COL_GLUESHOT = 305;\nconst int COL_NITROBLAST = 306;\nconst int COL_RAINBOWBEAM = 307;\nconst int COL_YOYOCUTTER = 308;\nconst int COL_COMETDASH = 309;\nconst int COL_COMETDASHCHARGE1 = 310;\nconst int COL_COMETDASHCHARGE2 = 311;\nconst int COL_YOKUATTACK = 312;\nconst int COL_WATERCANNON = 313;"
},
{
"source": "pk3",
"name": "translations.txt",
"contents": "Nail\nTank\nJet\nJet2\nGlue\nTrinitro\nRainbow\nYo-yo\nComet\nComet2\nComet3\nYoku\nWhirlpool\n\nTranslation \"192:192=[199,191,145]:[199,191,145]\", \"198:198=[114,114,114]:[114,114,114]\"\nTranslation \"192:192=[199,191,145]:[199,191,145]\", \"198:198=[58,131,69]:[58,131,69]\"\nTranslation \"192:192=[181,178,222]:[181,178,222]\", \"198:198=[255,0,60]:[255,0,60]\"\nTranslation \"192:192=[181,178,222]:[181,178,222]\", \"198:198=[255,0,60]:[255,0,60]\", \"0:2=[181,178,222]:[181,178,222]\", \"5:8=[181,178,222]:[181,178,222]\", \"243:247=[181,178,222]:[181,178,222]\"\nTranslation \"192:192=[255,149,149]:[255,149,149]\", \"198:198=[6,0,247]:[6,0,247]\"\nTranslation \"192:192=[255,103,71]:[255,103,71]\", \"198:198=[125,37,171]:[125,37,171]\"\nTranslation \"192:192=[190,228,31]:[190,228,31]\", \"198:198=[227,30,161]:[227,30,161]\"\nTranslation \"192:192=[66,255,150]:[66,255,150]\", \"198:198=[255,93,66]:[255,93,66]\"\nTranslation \"192:192=4:4\", \"198:198=[0,255,180]:[0,255,180]\"\nTranslation \"192:192=4:4\", \"198:198=[0,255,180]:[0,255,180]\", \"0:2=4:4\", \"5:8=4:4\", \"243:247=4:4\"\nTranslation \"192:192=4:4\", \"198:198=4:4\", \"0:2=[0,255,180]:[0,255,180]\", \"5:8=[0,255,180]:[0,255,180]\", \"243:247=[0,255,180]:[0,255,180]\"\nTranslation \"192:192=[97,175,255]:[97,175,255]\", \"198:198=[102,117,140]:[102,117,140]\"\nTranslation \"192:192=[0,196,162]:[0,196,162]\", \"198:198=[22,0,191]:[22,0,191]\"\n\nold comet\nTranslation \"192:192=[255,255,255]:[255,255,255]\", \"198:198=[0,255,180]:[0,255,180]\"\n\n(for acs, just remove quotations)"
},
{
"source": "pk3",
"name": "credits.txt",
"contents": "By JaxOf7\n\nTank, Jet, and Glue rotations by Blaze/Max"
},
{
"source": "pk3",
"name": "WallCrawlFuncActors.txt",
"contents": "actor WarpMasterHere : CustomInventory\n{\nstates\n{\nPickup:\nTNT1 A 0 A_TransferPointer(AAPTR_DEFAULT,AAPTR_MASTER,AAPTR_DEFAULT,AAPTR_TRACER) //this thing's master's tracer -> this thing\nTNT1 A 0 A_GiveInventory(\"WarptoTracer\",1,AAPTR_MASTER)\nstop\n}\n}\n\nactor WarpToTracer : CustomInventory\n{\nstates\n{\nPickup:\n//TNT1 A 0 A_Warp(AAPTR_TRACER,0,0,0,0,WARPF_STOP)\nTNT1 A 0 A_Warp(AAPTR_TRACER,0,0,0,0,WARPF_NOCHECKPOSITION|WARPF_STOP)\nstop\n}\n}\n\nactor TerrainIdleCheck : CustomInventory\n{\nstates\n{\nPickup:\nTNT1 A 0 A_GiveInventory(\"TerrainIdleFlag\",1)\nTNT1 A 0 A_JumpIfInventory(\"TerrainIdleFlag\",3,\"Pickup2\")\nstop\nPickup2:\nTNT1 A 0 Thing_Remove(0)\nstop\n}\n}\n\nactor TerrainNotIdle : CustomInventory\n{\nstates\n{\nPickup:\nTNT1 A 0 A_TakeInventory(\"TerrainIdleFlag\",99)\nstop\n}\n}\n\nactor TerrainIdleFlag : Inventory\n{\ninventory.amount 1\ninventory.maxamount 3\n}\n\nactor TerrainMissFlag : Inventory\n{\ninventory.amount 1\ninventory.maxamount 1\n}\n\nactor TerrainMovedFlag : Inventory\n{\ninventory.amount 1\ninventory.maxamount 4\n}\n\nactor SyncPitch : CustomInventory\n{\nstates\n{\nPickup:\n//TNT1 A 0 A_Log(\"SyncPitch\")\nTNT1 A 0 ACS_NamedExecuteWithResult(\"SyncPitch_S\")\nstop\n}\n}\n\nactor SyncPitchCrawl : CustomInventory\n{\nstates\n{\nPickup:\nTNT1 A 0 A_JumpIfInventory(\"SyncPitchFlag\",1,\"Pickup2\")\nPickup1:\nTNT1 A 0 A_GiveInventory(\"SyncPitch\",1)\nTNT1 A 0 A_TakeInventory(\"SyncPitchFlag\",999)\nTNT1 A 0 A_GiveInventory(\"SyncPitchFlag\",1+(pitch-pitch%1))\nstop\nPickup2:\n//TNT1 A 0 A_LogInt(pitch)\n//TNT1 A 0 A_LogInt(pitch-pitch%1)\n//TNT1 A 0 A_LogInt((CallACS(\"Check_SyncPitchFlag\")-1))\nTNT1 A 0 A_JumpIf((pitch-pitch%1)!=(CallACS(\"Check_SyncPitchFlag\")-1),\"Pickup1\")\n//TNT1 A 0 A_Log(\"pitchmatch\")\nstop\n}\n}\n\nactor SyncPitchFlag : Inventory\n{\ninventory.amount 1\ninventory.maxamount 361\n}"
},
{
"source": "pk3",
"name": "MW_README.txt",
"contents": "Translation numbers\n300 - 320\nPain slot\n30\n\n//\nDIRP MMU is a thing, so I guess Jax is appending things to his actors\n_J added to\nWeps\nAmmos\njetcrosshair\nglueshot\nyoyocutter\nyoyocutterdamager"
},
{
"source": "pk3",
"name": "actors/inventory/coopflag.txt",
"contents": "actor CoOpTeamFlag : Inventory\n{\ninventory.amount 1\ninventory.maxamount 1\n}"
},
{
"source": "pk3",
"name": "actors/inventory/mmu/NitroBlast.txt",
"contents": "actor NitroBlastWep_J : BaseMM8BDMWep //17001\n{\n//$Category MM8BDM-Weapons\n//$Title Nitro Blast\nWeapon.AmmoUse 5\nWeapon.AmmoGive 30\nWeapon.SlotNumber 5\nInventory.Pickupmessage \"$PU_NITROBLAST\"\nObituary \"$OB_NITROBLAST\"\nTag \"$TAG_NITROBLAST\"\nweapon.ammotype \"NitroBlastAmmo_J\"\ninventory.icon \"NITRBI\"\nStates\n{\nSpawnLoop:\nNITB A 1\nloop\nReady:\nNITB B 0 ACS_ExecuteAlways(998,0,COL_NITROBLAST)\nNITB B 1 A_WeaponReady\nGoto Ready+1\nDeselect:\nTNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Lower\nNITB B 1 A_Lower\nLoop\nSelect:\nTNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Raise\nNITB B 1 A_Raise\nLoop\nFire:\nNITB B 0 A_JumpIfNoAmmo(\"NoAmmo\")\nNITB B 0 A_FireCustomMissile(\"NitroBlast\",0,1,8,0)\nNITB CD 6\nNITB B 18\nNITB B 0 A_Refire\nGoto Ready+1\nNoAmmo:\nNITB B 1 ACS_Execute(979,0)\nGoto Ready+1\n}\n}\n\nactor NitroBlast\n{\nPROJECTILE\n+NOCLIP\n+NOINTERACTION\n//+THRUGHOST\nSpeed 18\nHeight 6\nRadius 6\n//scale 2.5\n//Damage (0)\nDamagetype \"NitroBlast\"\nObituary \"$OB_NITROBLAST\"\nreactiontime 3\nStates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 0 A_PlaySoundEx(\"weapon/nitroblast\",\"Weapon\")\nTNT1 A 0 A_ScaleVelocity(4.0)\nTNT1 A 1\nTNT1 A 0 A_ScaleVelocity(0.25)\nSpawn2:\nTNT1 A 0 A_CountDown\nTNT1 A 0 A_Explode(29, 90, 0, 0, 18)\nTNT1 A 4 A_SpawnItemEx(\"ExplosionEffect2\")\nloop\nDeath:\nTNT1 A 0 A_Explode(29, 90, 0, 0, 18)\nTNT1 A 4 A_SpawnItemEx(\"ExplosionEffect2\")\nstop\n}\n}\n\n//TNT1 A 0 A_SpawnItemEx(\"NitroExplosion\",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)\n\nactor NitroBlastAmmo_J : Ammo\n{\ninventory.amount 1\ninventory.maxamount 30\n+INVENTORY.IGNORESKILL\n}"
},
{
"source": "pk3",
"name": "actors/inventory/mmu/YoYoCutter.txt",
"contents": "actor YoYoCutterWep_J : BaseMM8BDMWep //17002\n{\n//$Category MM8BDM-Weapons\n//$Title Yo-yo Cutter\nWeapon.AmmoUse 2\nWeapon.AmmoGive 28\nWeapon.SlotNumber 4\nInventory.Pickupmessage \"$PU_YOYOCUTTER\"\nObituary \"$OB_YOYOCUTTER\"\nTag \"$TAG_YOYOCUTTER\"\nweapon.ammotype \"YoYoCutterAmmo_J\"\ninventory.icon \"YOYOCI\"\nStates\n{\nSpawnLoop:\nYOYC A 1\nloop\nReady:\nYOYH A 0 ACS_ExecuteAlways(998,0,COL_YOYOCUTTER)\nYOYH A 0 A_JumpIfNoAmmo(\"NoAmmo\")\nYOYH A 1 A_WeaponReady\nGoto Ready+1\nReadyNoAmmo:\nYOYH J 1 A_WeaponReady\nYOYH J 0 A_JumpIfNoAmmo(\"ReadyNoAmmo\")\nGoto Ready+1\nDeselect:\nTNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Lower\nYOYH A 1 A_Lower\nLoop\nSelect:\nTNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Raise\nYOYH A 1 A_Raise\nLoop\nFire:\nYOYH A 0 A_JumpIfNoAmmo(\"NoAmmo\")\nYOYH A 0 A_PlaySoundEx(\"weapon/yoyocutter\",\"Weapon\")\n//YOYH A 0 A_FireCustomMissile(\"YoyoCutter\",0,1,8,0)\n//YOYH A 0 A_FireCustomMissile(\"YoyoCutterUp\",0,1,8,0)\nYOYH A 0 A_FireCustomMissile(\"YoyoCutterShooter\",0,1,8,0)\nYOYH BCDEFG 2\nYOYH HI 2\nYOYH A 0 A_JumpIfNoAmmo(\"NoAmmoDelay\")\nYOYH A 6\nYOYH A 0 A_Refire\nGoto Ready+1\nNoAmmoDelay:\nYOYH J 6\nYOYH A 0 A_Refire\nGoto Ready+1\nNoAmmo:\nYOYH J 1 ACS_Execute(979,0)\nGoto ReadyNoAmmo\n}\n}\n\nactor YoYoCutterAmmo_J : Ammo\n{\ninventory.amount 1\ninventory.maxamount 28\n+INVENTORY.IGNORESKILL\n}\n\nactor YoyoCutterBase\n{\nPROJECTILE\nDamage (7)\ndamagetype \"YoyoCutter\"\nObituary \"$OB_YoyoCutter\"\nHeight 5\nRadius 6\n\nspeed 24\n\n+MOVEWITHSECTOR\n+RIPPER\n}\n\nactor YoyoCutter_J : YoyoCutterBase\n{\nreactiontime 24\ndamage(0)\n//+FORCEXYBILLBOARD\nscale 2.5\n+NOINTERACTION\nStates\n{\nSpawn:\nPBAL B 0\nPBAL B 0 A_SetPitch(270)\nSpawn1:\nYOYC B 0 A_Stop\nYOYC B 0 A_GiveInventory(\"YoyoMoveFunc\",1)\nSpawn2:\n//YOYC BC 1 A_GiveInventory(\"YoyoCutterFunc\",1)\nTNT1 A 0 A_GiveInventory(\"YoyoCutterFunc\",1)\nTNT1 A 1 A_SpawnItemEx(\"YoyoCutterVisualB\",0,0,0,cos(-pitch)*CallACS(\"GetSpeed\"),0,sin(pitch)*CallACS(\"GetSpeed\"))\nTNT1 A 0 A_GiveInventory(\"YoyoCutterFunc\",1)\nTNT1 A 1 A_SpawnItemEx(\"YoyoCutterVisualC\",0,0,0,cos(-pitch)*CallACS(\"GetSpeed\"),0,sin(pitch)*CallACS(\"GetSpeed\"))\nloop\nDeath:\nTNT1 A 0 A_GiveInventory(\"SpawnYoyoCutterPause\",1)\nstop\n}\n}\n\nactor YoyoCutterVisualB : BasicGraphicEffect\n{\nStates\n{\nSpawn:\nYOYC B 0\nSpawn2:\n\"----\" A 1\nstop\n}\n}\n\nactor YoyoCutterVisualC : YoyoCutterVisualB { states { Spawn: YOYC C 0 A_Jump(0,0) goto Spawn2}}\n\nactor YoyoTerrainFlag : Inventory\n{\ninventory.amount 1\ninventory.maxamount 1\n}\n\nactor YoyoReverseFlag : Inventory\n{\ninventory.amount 1\ninventory.maxamount 1\n}\n\nactor YoyoCutterFunc : CustomInventory\n{\nstates\n{\nPickup:\nTNT1 A 0 A_Countdown\nTNT1 A 0 A_JumpIf(reactiontime>0,\"Pickup2\")\nstop\nPickup2:\nTNT1 A 0 A_GiveInventory(\"TerrainIdleCheckYoyo\",1)\nTNT1 A 0 A_JumpIfInventory(\"TerrainMovedFlag\",4,\"Pickup3\")\nTNT1 A 0 A_TakeInventory(\"TerrainMovedFlag\",99)\nstop\nPickup3:\nTNT1 A 0 A_TakeInventory(\"TerrainMovedFlag\",99)\nTNT1 A 0 A_GiveInventory(\"YoyoMoveFunc\",1)\nstop\n}\n}\n\nactor TerrainIdleCheckYoyo : TerrainIdleCheck\n{\nstates\n{\nPickup2:\nTNT1 A 0 A_GiveInventory(\"SpawnYoyoCutterPause\",1)\ngoto \"Super::Pickup2\"\n}\n}\n\nactor YoyoMoveFunc : CustomInventory\n{\nstates\n{\nPickup:\nTNT1 A 0 A_GiveInventory(\"TerrainNotIdle\",1)\nTNT1 A 0 A_GiveInventory(\"TerrainMovedFlag\",1)\nTNT1 A 0 A_JumpIfInventory(\"TerrainMovedFlag\",4,\"PickupNo\")\n//TNT1 A 0 A_GiveInventory(\"TerrainMovedFlag\",3)\nTNT1 A 0 ACS_NamedExecuteWithResult(\"SpawnYoyoCutterHitter\")\nPickupNo:\nTNT1 A 0\nstop\n}\n}\n\nactor YoyoCutterHitter : YoyoCutterBase\n{\n+SERVERSIDEONLY\n+DONTSPLASH\n//+DONTREFLECT\nstates\n{\nSpawn:\nTNT1 A 0\nSpawn2:\nTNT1 A 1\nTNT1 A 0 A_JumpIf(true,\"SpawnEnd\")\ngoto SpawnEnd\n\nXDeath:\nTNT1 A 0 A_GiveInventory(\"SpawnYoyoCutterPause\",1,AAPTR_TRACER)\nTNT1 A 0 A_RemoveMaster\nstop\n\nSpawnEnd:\nTNT1 A 0 A_GiveInventory(\"WarpMasterHere\",1)\nTNT1 A 0 A_TransferPointer(AAPTR_DEFAULT,AAPTR_MASTER,AAPTR_TARGET,AAPTR_TARGET) //reflect\nTNT1 A 0 A_GiveInventory(\"YoyoCutterMissFunc\",1,AAPTR_MASTER)\n//TNT1 A 0 A_Log(\"miss\")\nTNT1 A 0 A_GiveInventory(\"YoyoMoveFunc\",1,AAPTR_MASTER)\nTNT1 A 0 Thing_Remove(0)\nstop\nDeath:\nTNT1 A 0 A_JumpIf(CallACS(\"InsideActorCheck_S\"),\"DeathB\")\nTNT1 A 0 A_GiveInventory(\"WarpMasterHere\",1)\nDeathB:\nTNT1 A 0 A_TransferPointer(AAPTR_DEFAULT,AAPTR_MASTER,AAPTR_TARGET,AAPTR_TARGET) //reflect\nTNT1 A 0 A_GiveInventory(\"YoyoCutterHitFunc\",1,AAPTR_MASTER)\n//TNT1 A 0 A_Log(\"hit\")\nTNT1 A 0 A_GiveInventory(\"YoyoMoveFunc\",1,AAPTR_MASTER)\nTNT1 A 0 Thing_Remove(0)\nstop\n}\n}\n\nactor YoyoCutterHitterFunc : CustomInventory\n{\nstates\n{\nPickup:\nTNT1 A 0 A_JumpIfInventory(\"TerrainMissFlag\",1,\"Pickup2\",AAPTR_MASTER)\nTNT1 A 0 A_ChangeVelocity(cos(-pitch)*CallACS(\"GetSpeed\")/2,0,sin(pitch)*CallACS(\"GetSpeed\")/2,CVF_RELATIVE)\nstop\nPickup2:\nTNT1 A 0 A_ChangeVelocity(cos(-pitch)*CallACS(\"GetSpeed\"),0,sin(pitch)*CallACS(\"GetSpeed\"),CVF_RELATIVE)\nstop\n}\n}\n\nactor YoyoCutterHitFunc : CustomInventory\n{\nstates\n{\nPickup:\nTNT1 A 0 A_GiveInventory(\"YoyoTerrainFlag\",1)\nTNT1 A 0 A_TakeInventory(\"TerrainMissFlag\",1)\nTNT1 A 0 A_JumpIfInventory(\"YoyoReverseFlag\",1,\"PickupR\")\nTNT1 A 0 A_SetPitch(pitch+90)\nPickupEnd:\nTNT1 A 0 A_GiveInventory(\"SyncPitchCrawl\",1)\nstop\nPickupR:\nTNT1 A 0 A_SetPitch(pitch-90)\ngoto PickupEnd\n}\n}\n\nactor YoyoCutterMissFunc : CustomInventory\n{\nstates\n{\nPickup:\nTNT1 A 0 A_JumpIfInventory(\"YoyoTerrainFlag\",1,\"Pickup2\")\nstop\nPickup2:\nTNT1 A 0 A_GiveInventory(\"TerrainMissFlag\",1)\nTNT1 A 0 A_JumpIfInventory(\"YoyoReverseFlag\",1,\"Pickup2R\")\nBUST A 0 A_SetPitch(pitch-90)\nstop\nPickup2R:\nTNT1 A 0 A_SetPitch(pitch+90)\nstop\n}\n}\n\nactor YoyoCutterUp : YoyoCutter_J\n{\nStates\n{\nSpawn:\nPBAL B 0\nPBAL B 0 A_GiveInventory(\"YoyoReverseFlag\",1)\nPBAL B 0 A_SetPitch(90)\ngoto Spawn1\n}\n}\n\nactor SpawnYoyoCutterPause : CustomInventory\n{\nstates\n{\nPickup:\nTNT1 A 0 A_SpawnItemEx(\"YoyoCutterPause\")\nstop\n}\n}\n\nactor YoyoCutterPause : YoyoCutterBase\n{\nreactiontime 24\ndamage(0)\n//+FORCEXYBILLBOARD\nscale 2.5\n+NOINTERACTION\n+NOCLIP\nStates\n{\nSpawn:\nYOYC B 0\nSpawn2:\nYOYC B 0 A_CountDown\nYOYC B 1 A_SpawnItemEx(\"YoyoCutterDamager_J\",0,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM,0)\nYOYC C 0 A_CountDown\nYOYC C 1 A_SpawnItemEx(\"YoyoCutterDamager_J\",0,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM,0)\nloop\nDeath:\nTNT1 A 0 A_JumpIfCloser(60,\"Return\")\nTNT1 A 0 A_CustomMissile(\"YoyoCutterReturn\",0,0,0,0)\nstop\nReturn:\nTNT1 A 0\nstop\n}\n}\n\nactor YoyoCutterDamager_J : YoyoCutterBase\n{\n+SERVERSIDEONLY\n+DONTSPLASH\nstates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 1\nstop\n}\n}\n\nactor YoyoCutterReturn : YoyoCutterBase\n{\nreactiontime 24\ndamage(0)\n//+FORCEXYBILLBOARD\nscale 2.5\n+NOINTERACTION\n+NOCLIP\nStates\n{\nSpawn:\nYOYC D 0\nSpawn2:\nYOYC D 0 A_JumpIfCloser(60,\"Death\")\nYOYC D 0 A_GiveInventory(\"HeadTowardsTarget\",1)\nYOYC D 1 A_SpawnItemEx(\"YoyoCutterDamager_J\",0,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM,0)\nYOYC E 0 A_JumpIfCloser(60,\"Death\")\nYOYC E 0 A_GiveInventory(\"HeadTowardsTarget\",1)\nYOYC E 1 A_SpawnItemEx(\"YoyoCutterDamager_J\",0,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM,0)\nloop\nDeath:\nTNT1 A 0\nstop\n}\n}\n\nactor HeadTowardsTarget : CustomInventory\n{\nstates\n{\nPickup:\nTNT1 A 0 ACS_NamedExecuteWithResult(\"FaceTargetCenter\")\nTNT1 A 0 A_ChangeVelocity(cos(-pitch)*CallACS(\"GetSpeed\"),0,-sin(-pitch)*CallACS(\"GetSpeed\"),CVF_RELATIVE|CVF_REPLACE)\nstop\n}\n}"
},
{
"source": "pk3",
"name": "actors/inventory/mmu/YoYoCutter2.txt",
"contents": "actor YoyoCutterShooter\n{\nPROJECTILE\nHeight 0\nRadius 0\n+NOINTERACTION\n+NOCLIP\nspeed 1\nStates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 0 ACS_NamedExecuteWithResult(\"SetVelPitch\",0,0)\nTNT1 A 1 A_CustomMissile(\"YoyoCutterShoot\",0,0,0,CMF_AIMDIRECTION|CMF_SAVEPITCH,pitch)\nstop\n}\n}\n\nactor YoyoAimFlag : Inventory\n{\ninventory.amount 1\ninventory.maxamount 2\n}\n\nactor YoyoCutterShoot : YoyoCutter_J\n{\nStates\n{\nSpawn:\nYOYC B 0\nYOYC B 0 A_GiveInventory(\"SyncPitch\",1)\nYOYC B 0 A_Stop\nYOYC B 0 A_GiveInventory(\"YoyoAimFlag\",1)\nYOYC B 0 A_GiveInventory(\"YoyoShootMoveFunc\",1)\nSpawn2:\n//YOYC BC 1 A_GiveInventory(\"YoyoShootFunc\",1)\nTNT1 A 0 A_GiveInventory(\"YoyoShootFunc\",1)\nTNT1 A 1 A_SpawnItemEx(\"YoyoCutterVisualB\",0,0,0,cos(-pitch)*CallACS(\"GetSpeed\"),0,sin(pitch)*CallACS(\"GetSpeed\"))\nTNT1 A 0 A_GiveInventory(\"YoyoShootFunc\",1)\nTNT1 A 1 A_SpawnItemEx(\"YoyoCutterVisualC\",0,0,0,cos(-pitch)*CallACS(\"GetSpeed\"),0,sin(pitch)*CallACS(\"GetSpeed\"))\nloop\n}\n}\n\nactor YoyoShootFunc : CustomInventory\n{\nstates\n{\nPickup:\nTNT1 A 0 A_JumpIfInventory(\"YoyoAimFlag\",1,\"Pickup2\")\nTNT1 A 0 A_GiveInventory(\"YoyoCutterFunc\",1)\nstop\nPickup2:\nTNT1 A 0 A_GiveInventory(\"TerrainIdleCheckYoyo\",1)\nTNT1 A 0 A_Countdown\nstop\n}\n}\n\nactor YoyoShootMoveFunc : CustomInventory\n{\nstates\n{\nPickup:\nTNT1 A 0 A_GiveInventory(\"TerrainNotIdle\",1)\nTNT1 A 0 ACS_NamedExecuteWithResult(\"SpawnYoyoShootHitter\")\nstop\n}\n}\n\nactor YoyoShootHitter : YoyoCutterHitter\n{\nstates\n{\nSpawnEnd:\nTNT1 A 0 A_GiveInventory(\"WarpMasterHere\",1)\nTNT1 A 0 A_TransferPointer(AAPTR_DEFAULT,AAPTR_MASTER,AAPTR_TARGET,AAPTR_TARGET) //reflect\nTNT1 A 0 A_JumpIfInventory(\"YoyoAimFlag\",2,\"SpawnEnd2\",AAPTR_MASTER)\nTNT1 A 0 A_GiveInventory(\"YoyoShootMoveFunc\",1,AAPTR_MASTER)\nTNT1 A 0 Thing_Remove(0)\nstop\nDeath:\nTNT1 A 0 A_JumpIf(CallACS(\"InsideActorCheck_S\"),\"DeathB\")\nTNT1 A 0 A_GiveInventory(\"WarpMasterHere\",1)\nDeathB:\nTNT1 A 0 A_TransferPointer(AAPTR_DEFAULT,AAPTR_MASTER,AAPTR_TARGET,AAPTR_TARGET) //reflect\nTNT1 A 0 A_JumpIfInventory(\"YoyoAimFlag\",2,\"Death2\",AAPTR_MASTER)\nTNT1 A 0 A_GiveInventory(\"YoyoAimFlag\",1,AAPTR_MASTER)\nTNT1 A 0 A_GiveInventory(\"YoyoShootMoveFunc\",1,AAPTR_MASTER)\nTNT1 A 0 Thing_Remove(0)\nstop\n\nSpawnEnd2:\nTNT1 A 0 A_JumpIf(pitch>180,\"DeathEnd\")\ngoto ReverseDeath\nDeath2:\nTNT1 A 0 A_JumpIf(pitch>180,\"ReverseDeath\")\ngoto DeathEnd\n\nReverseDeath:\nTNT1 A 0 A_GiveInventory(\"YoyoReverseFlag\",1,AAPTR_MASTER)\nDeathEnd:\nTNT1 A 0 A_TakeInventory(\"YoyoAimFlag\",2,0,AAPTR_MASTER)\n//TNT1 A 0 A_SetPitch(0,0,AAPTR_MASTER)\nTNT1 A 0 A_GiveInventory(\"LookForward\",1,AAPTR_MASTER)\nTNT1 A 0 A_GiveInventory(\"YoyoTerrainFlag\",1,AAPTR_MASTER)\nTNT1 A 0 A_GiveInventory(\"YoyoMoveFunc\",1,AAPTR_MASTER)\nTNT1 A 0 Thing_Remove(0)\nstop\n}\n}\n\nactor LookForward : CustomInventory\n{\nstates\n{\nPickup:\nTNT1 A 0 A_SetPitch(0)\nTNT1 A 0 A_GiveInventory(\"SyncPitch\",1)\nstop\n}\n}\n\nactor YoyoShootHitterFunc : CustomInventory\n{\nstates\n{\nPickup:\nTNT1 A 0 A_JumpIfInventory(\"YoyoAimFlag\",2,\"PickupForward\",AAPTR_MASTER)\nTNT1 A 0 A_ChangeVelocity(cos(-pitch)*CallACS(\"GetSpeed\")/2,0,sin(pitch)*CallACS(\"GetSpeed\")/2,CVF_RELATIVE)\nstop\nPickupForward:\nTNT1 A 0 A_ChangeVelocity(CallACS(\"GetSpeed\")/2,0,0,CVF_RELATIVE)\nstop\n}\n}"
},
{
"source": "pk3",
"name": "actors/inventory/mmu/YokuAttack.txt",
"contents": "//To-do:\n//extra sprites?\n//fire missile transfer translation\n\nactor YokuAttackWep_J : BaseMM8BDMWep //17003\n{\n//$Category MM8BDM-Weapons\n//$Title Yoku Attack\nWeapon.AmmoUse 2\nWeapon.AmmoGive 28\nWeapon.SlotNumber 2\nInventory.Pickupmessage \"$PU_YOKUATTACK\"\nObituary \"$OB_YOKUATTACK\"\nTag \"$TAG_YOKUATTACK\"\nweapon.ammotype \"YokuAttackAmmo_J\"\ninventory.icon \"YOKUAI\"\nStates\n{\nSpawnLoop:\nYKUA A 1\nloop\nReady:\nYKUA B 0 ACS_ExecuteAlways(998,0,COL_YOKUATTACK)\nYKUA B 1 A_WeaponReady\nGoto Ready+1\nDeselect:\nTNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Lower\nYKUA B 1 A_Lower\nLoop\nSelect:\nTNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Raise\nYKUA B 1 A_Raise\nLoop\nFire:\nYKUA B 0 A_JumpIfNoAmmo(\"NoAmmo\")\nYKUA B 0 A_PlaySoundEx(\"weapon/mbuster\",\"Weapon\")\nYKUA B 0 A_GiveInventory(\"FireYokuAttack\",1)\nYKUA CD 4\nYKUA B 15\nYKUA B 0 A_Refire\nGoto Ready+1\nNoAmmo:\nYKUA B 1 ACS_Execute(979,0)\nGoto Ready+1\n}\n}\n\nconst int MIN_YOKU_DMG = 5;\nconst int MAX_YOKU_DMG = 20;\n\nactor YokuAttackBase\n{\nTranslation \"192:192=93:93\",\"198:198=0:0\",\"0:0=93:93\"\nPROJECTILE\n+SEEKERMISSILE\n+SCREENSEEKER\nRadius 16\nHeight 56\nscale 2.5\ndamage (13)\ndamagetype \"YokuAttack\"\nObituary \"$OB_YOKUATTACK\"\nspeed 15\n//ReactionTime 140\n\nBouncetype Hexen\n-ALLOWBOUNCEONACTORS\n+CANBOUNCEWATER\n\nmass 9999\n+SHOOTABLE\n-NOBLOCKMAP\n+NOBLOOD\n//Health 1000\n+NOTARGETSWITCH\nPainChance 256\n+THRUSPECIES\nSpecies \"YokuAttackBase\"\n\n//+FRIENDLY\n+CANTSEEK\nstates\n{\nSpawn:\nYKUA F 0\nSpawn2:\nYKUA F 0 A_GiveInventory(\"CutterFlag\",1)\nYKUA F 0 A_JumpIfInventory(\"CutterFlag\",140,\"TimeOut\")\n//YKUA F 0 A_CountDown\n//YKUA F 1 A_SeekerMissile(2,10,SMF_LOOK,50,10)\nYKUA F 1 A_SeekerMissile(2,4,SMF_LOOK|SMF_PRECISE,256,5)\nloop\nPain:\nPain2:\nYKUA F 0 A_JumpIfHealthLower(1001-MIN_YOKU_DMG,\"PainfulDeath\")\ngoto Spawn2\nPainfulDeathAnim:\nYKUA E 0 A_Stop\nYKUA E 0 A_ChangeFlag(\"NOINTERACTION\", 1)\nYKUA E 4\nTNT1 A 2\nYKUA E 2\nTNT1 A 2\nYKUA E 2\nstop\nTimeOut:\nYKUA F 0 A_Stop\nDeath:\nYKUA F 0 A_ChangeFlag(\"NOINTERACTION\", 1)\nYKUA F 4\nTNT1 A 2\nYKUA F 2\nTNT1 A 2\nYKUA F 2\nstop\nXDeath:\nYKUA F 0 A_ChangeFlag(\"NOINTERACTION\", 1)\nTNT1 A 0 A_Jump(128,\"Pose2\")\nYKUA G 4\nTNT1 A 2\nYKUA G 2\nTNT1 A 2\nYKUA G 2\nstop\nPose2:\nYKUA H 4\nTNT1 A 2\nYKUA H 2\nTNT1 A 2\nYKUA H 2\nstop\nPainfulDeath:\nYKUA F 0 A_ChangeFlag(\"SHOOTABLE\",0)\nYKUA F 0 A_TakeFromTarget(\"YokuDmgFlag\",999)\nYKUA F 0 A_JumpIfHealthLower(1001-MAX_YOKU_DMG,\"PainfulDeathMax\")\nYKUA E 0 A_GiveToTarget(\"YokuDmgFlag\",1000-health)\nPainfulDeath2:\nYKUA E 0 A_GiveToTarget(\"YokuSelfDamage\",1)\ngoto PainfulDeathAnim\nPainfulDeathMax:\nYKUA E 0 A_GiveToTarget(\"YokuDmgFlag\",MAX_YOKU_DMG)\ngoto PainfulDeath2\n}\n}\n\nactor YokuDmgFlag : Inventory\n{\ninventory.amount 1\ninventory.maxamount 1\n}\n\nactor YokuSelfDamage : CustomInventory\n{\nstates\n{\npickup:\nTNT1 A 0 SetPlayerProperty(0, 1, 16)\nTNT1 A 0 DamageThing(CallACS(\"Count_YokuDmgFlag\"))\nTNT1 A 0 SetPlayerProperty(0, 0, 16)\nstop\n}\n}\n\nactor YokuAttack : YokuAttackBase\n{\nSpecies \"YokuAttackBase\"\n-THRUSPECIES\n}\n\nactor YokuAttackTargetCheck : YokuAttackBase\n{\nvar int user_health;\nSpecies \"YokuAttackBase\"\n+QUICKTORETALIATE\n-NOTARGETSWITCH\n-SHOOTABLE\n+THRUACTORS\nstates\n{\nSpawn:\nYKUA F 0\nSpawnTargetSet:\nYKUA F 0 A_SetUserVar(\"user_health\", health)\nYKUA F 0 A_RearrangePointers(AAPTR_DEFAULT, AAPTR_TARGET, AAPTR_DEFAULT)\nYKUA F 0 A_ChangeFlag(\"SHOOTABLE\",1)\nYKUA F 0 A_ChangeFlag(\"THRUACTORS\",0)\ngoto Spawn2\nNoTakeDamage:\nYKUA F 0 HealThing(user_health - health)\nYKUA F 0 A_RearrangePointers(AAPTR_MASTER, AAPTR_DEFAULT, AAPTR_DEFAULT)\ngoto Spawn2\nTakeDamage:\nYKUA F 0 A_SetUserVar(\"user_health\", health)\nYKUA F 0 A_RearrangePointers(AAPTR_MASTER, AAPTR_DEFAULT, AAPTR_DEFAULT)\ngoto Pain2\n}\n}\n\n#include \"actors/inventory/mmu/YokuAttackHazard.txt\"\n\nactor YokuAttackCoOp : YokuAttackTargetCheck2\n{\nSpecies \"YokuAttackCoOp\"\nstates\n{\nPain:\nYKUA F 0 A_ChangeFlag(\"SHOOTABLE\",0)\nYKUA F 0 A_ChangeFlag(\"THRUACTORS\",1)\nYKUA F 0 A_GiveInventory(\"CutterFlag\",1)\nYKUA F 1\nYKUA F 0 A_ChangeFlag(\"SHOOTABLE\",1)\nYKUA F 0 A_ChangeFlag(\"THRUACTORS\",0)\nYKUA F 0 A_JumpIf(ACS_ExecuteWithResult(257,1)==-1, \"TakeDamage\")\ngoto NoTakeDamage\n}\n}\n\nactor YokuAttackID : YokuAttackTargetCheck2\n{\nvar int user_owner;\nSpecies \"YokuAttackID\"\nstates\n{\nSpawn:\nYKUA F 0\nYKUA F 0 A_SetUserVar(\"user_owner\", ACS_ExecuteWithResult(257,0))\nYKUA F 0 ACS_NamedExecuteWithResult(\"SetSpecies_AddID\",user_owner)\ngoto SpawnTargetSet\nPain:\nYKUA F 0 A_ChangeFlag(\"SHOOTABLE\",0)\nYKUA F 0 A_ChangeFlag(\"THRUACTORS\",1)\nYKUA F 0 A_GiveInventory(\"CutterFlag\",1)\nYKUA F 1\nYKUA F 0 A_ChangeFlag(\"SHOOTABLE\",1)\nYKUA F 0 A_ChangeFlag(\"THRUACTORS\",0)\nYKUA F 0 A_JumpIf(user_owner != ACS_ExecuteWithResult(257,0), \"TakeDamage\")\ngoto NoTakeDamage\n}\n}\n\n#include \"actors/inventory/mmu/YokuAttackBodies.txt\"\n\nactor YokuAttackAmmo_J : Ammo\n{\ninventory.amount 1\ninventory.maxamount 28\n+INVENTORY.IGNORESKILL\n}"
},
{
"source": "pk3",
"name": "actors/inventory/mmu/YokuAttackHazard.txt",
"contents": "actor YokuAttackTargetCheck2 : YokuAttackTargetCheck\n{\nSpecies \"YokuAttackBase\"\nstates\n{\nPain.Falling:\nPain.Fire:\nPain.Slime:\nPain.Drowning:\n\nPain.Crush:\nPain.Spiney:\nPain.Misc: //Met Swim\nPain.Disintegrate: //Elec beams\nPain.Melee: //guts man g, clown hurt\nPain.Massacre: //clown kill\n\nPain.BigEye:\nPain.FireTrap:\nPain.FirePillar:\nPain.OilCanister:\nPain.MetalPress:\nPain.Beam: //quick beam, magma beam\nPain.PressBall:\nPain.KyorownBullet:\nPain.TurboRoader:\nPain.FlingDamage: //turbo roaders, clown trains\nPain.CountBomb:\nPain.IceBlock:\nPain.PirateMine:\nPain.BurnWave:\nPain.FireSnakey:\nPain.ChangekeyDragon:\nPain.ChillCubeRespawn:\nPain.SheepBlockRespawn:\nPain.VehicleHazard:\nPain.SolarChangkey:\nPain.MarsRocket:\nYKUA F 0\ngoto TakeDamage\n}\n}"
},
{
"source": "pk3",
"name": "actors/inventory/mmu/YokuAttackBodies.txt",
"contents": "actor FireYokuAttack : CustomInventory\n{\nstates\n{\npickup:\nTNT1 A 0 A_JumpIfInventory(\"CoOpTeamFlag\",1,\"CoOpTeam\")\nTNT1 A 0 A_JumpIfInventory(\"LightTeamFlag\",1,\"LightTeam\")\nTNT1 A 0 A_JumpIfInventory(\"WilyTeamFlag\",1,\"WilyTeam\")\nTNT1 A 0 A_JumpIfInventory(\"CossackTeamFlag\",1,\"CossackTeam\")\nTNT1 A 0 A_JumpIfInventory(\"KingTeamFlag\",1,\"KingTeam\")\nTNT1 A 0 A_JumpIf((TID-1000>=0)&&(TID-1000<=63), \"ID\")\nTNT1 A 0 A_FireCustomMissile(\"YokuAttack\",0,1,8,0)\nstop\nCoOpTeam: TNT1 A 0 A_FireCustomMissile(\"YokuAttackCoOp\",0,1,8,0) stop\nLightTeam: TNT1 A 0 A_FireCustomMissile(\"YokuAttackLight\",0,1,8,0) stop\nWilyTeam: TNT1 A 0 A_FireCustomMissile(\"YokuAttackWily\",0,1,8,0) stop\nCossackTeam: TNT1 A 0 A_FireCustomMissile(\"YokuAttackCossack\",0,1,8,0) stop\nKingTeam: TNT1 A 0 A_FireCustomMissile(\"YokuAttackKing\",0,1,8,0) stop\nID: TNT1 A 0 A_FireCustomMissile(\"YokuAttackID\",0,1,8,0) stop\n}\n}\n\nactor YokuAttackLight : YokuAttackBase\n{\n//Translation \"192:192=192:192\",\"198:198=0:0\",\"0:0=192:192\"\nTranslation \"192:192=198:198\",\"198:198=0:0\",\"0:0=198:198\"\nSpecies \"YokuAttackLight\"\nDesignatedTeam 0\n}\nactor YokuAttackWily : YokuAttackBase\n{\n//Translation \"192:192=54:54\",\"198:198=0:0\",\"0:0=54:54\"\nTranslation \"192:192=42:42\",\"198:198=0:0\",\"0:0=42:42\"\nSpecies \"YokuAttackWily\"\nDesignatedTeam 1\n}\nactor YokuAttackCossack : YokuAttackBase\n{\n//Translation \"192:192=229:229\",\"198:198=0:0\",\"0:0=229:229\"\nTranslation \"192:192=220:220\",\"198:198=0:0\",\"0:0=220:220\"\nSpecies \"YokuAttackCossack\"\nDesignatedTeam 2\n}\nactor YokuAttackKing : YokuAttackBase\n{\n//Translation \"192:192=64:64\",\"198:198=0:0\",\"0:0=64:64\"\nTranslation \"192:192=62:62\",\"198:198=0:0\",\"0:0=62:62\"\nSpecies \"YokuAttackKing\"\nDesignatedTeam 3\n}"
},
{
"source": "pk3",
"name": "actors/inventory/mmu/WaterCannon.txt",
"contents": "actor WaterCannonWep_J : BaseMM8BDMWep //17004\n{\n//$Category MM8BDM-Weapons\n//$Title Water Cannon\nWeapon.AmmoUse 1\nWeapon.AmmoGive 112\nWeapon.SlotNumber 3\nInventory.Pickupmessage \"$PU_WATERCANNON\"\nObituary \"$OB_WATERCANNON\"\nTag \"$TAG_WATERCANNON\"\nweapon.ammotype \"WaterCannonAmmo_J\"\ninventory.icon \"WATECI\"\nStates\n{\nSpawnLoop:\nWTCA X 1\nloop\nReady:\nWTCA H 0 ACS_ExecuteAlways(998,0,COL_WATERCANNON)\nWTCA H 1 A_WeaponReady\nGoto Ready+1\nDeselect:\nTNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Lower\nWTCA H 1 A_Lower\nLoop\nSelect:\nTNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Raise\nWTCA H 1 A_Raise\nLoop\nFire:\nWTCA H 0 A_JumpIfNoAmmo(\"NoAmmo\")\nWTCA H 0 A_PlaySoundEx(\"weapon/watercannon\",\"Weapon\")\nWTCA H 0 A_FireCustomMissile(\"WaterCannon\",0,1,8,0)\nWTCA I 2\nWTCA H 0 A_Refire\nGoto Ready+1\n/*Fire:\nWTCA H 0 A_JumpIfNoAmmo(\"NoAmmo\")\n//WTCA H 0 A_PlaySoundEx(\"weapon/nitroblast\",\"Weapon\")\nWTCA H 0 A_FireCustomMissile(\"WaterCannon\",0,1,8,0)\nWTCA I 1\nWTCA H 0 A_Refire(\"Fire2\")\nGoto Ready+1\nFire2:\n//WTCA H 0 A_PlaySoundEx(\"weapon/nitroblast\",\"Weapon\")\nWTCA H 0 A_FireCustomMissile(\"WaterCannon\",0,1,8,0)\nWTCA J 1\nWTCA H 0 A_Refire\nGoto Ready+1*/\nNoAmmo:\nWTCA H 1 ACS_Execute(979,0)\nGoto Ready+1\n}\n}\n\nactor WaterCannon\n{\nPROJECTILE\ndamagetype \"WaterCannon\"\nObituary \"$OB_WATERCANNON\"\nSpeed 14\nDamage (7)\nradius 5\nheight 5\nscale 2.5\nreactiontime 35\n\nmass 9999\n+SHOOTABLE\n-NOBLOCKMAP\n+NOBLOOD\n//Health 1000\n+NOTARGETSWITCH\nPainChance 256\n\n+THRUSPECIES\nSpecies \"WaterCannon\"\n+NORADIUSDMG\n\n+DONTRIP\nStates\n{\nSpawn:\nWTCA A 0\nSpawn2:\nWTCA AABBCC 1 A_CountDown\nloop\nDeath:\nWTCA DEFG 2\nstop\nPain:\nWTCA D 0 A_JumpIfHealthLower(996,\"PainfulDeath\")\ngoto Spawn2\nPainfulDeath:\n//WTCA D 0 A_ChangeFlag(\"SHOOTABLE\",0)\nWTCA D 0 A_Stop\nWTCA D 0 A_ChangeFlag(\"NOINTERACTION\", 1)\nWTCA D 0 A_PlaySound(\"item/protoreflect\")\ngoto Death\n}\n}\n\nactor WaterCannonAmmo_J : Ammo\n{\ninventory.amount 1\ninventory.maxamount 112\n+INVENTORY.IGNORESKILL\n}"
},
{
"source": "pk3",
"name": "actors/inventory/mmu/NailShield.txt",
"contents": "actor NailShieldWep_J : BaseMM8BDMWep //17005\n{\n//$Category MM8BDM-Weapons\n//$Title Nail Shield\nWeapon.AmmoUse 1\nWeapon.AmmoGive 56\nWeapon.SlotNumber 7\nInventory.Pickupmessage \"$PU_NAILSHIELD\"\nObituary \"$OB_NAILSHIELD\"\nTag \"$TAG_NAILSHIELD\"\nweapon.ammotype \"NailShieldAmmo_J\"\ninventory.icon \"NAILSI\"\nStates\n{\nSpawnLoop:\nNAIS X 1\nloop\nReady:\nNAIS F 0 ACS_ExecuteAlways(998,0,COL_NAILSHIELD)\nNAIS F 1 A_WeaponReady\nGoto Ready+1\nDeselect:\nTNT1 A 0 A_TakeInventory(\"ShieldCheck\", 1)\nTNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Lower\nNAIS F 1 A_Lower\nLoop\nSelect:\nTNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Raise\nNAIS F 1 A_Raise\nLoop\nFire:\nPLAA A 0 A_JumpIfInventory(\"ShieldCheck\",1,\"ShieldThrow\")\nPLAA A 0 A_JumpIfNoAmmo(\"NoAmmo\")\nPLAA A 0 A_PlaySoundEx(\"weapon/nailshield\",\"Weapon\")\nPLAA A 0 A_GiveInventory(\"ShieldCheck\",1)\nPLAA B 0 A_SpawnItemEx(\"NailShieldWarper\")\nSTAA A 0 A_TakeInventory(\"NailShieldAmmo_J\",4)\nNAIS GHIJK 2\nTNT1 A 2\nNAIS LM 2\ngoto Shield\nShield:\nPLAA A 0 A_JumpIfNoAmmo(\"ShieldThrow\")\nBLIZ D 0 A_PlaySoundEx(\"weapon/nailgun\",\"Weapon\")\nDSTS B 0 A_FireCustomMissile(\"NailShieldShot1\",0,1,8,0)\nNAIS NNOOOPPP 1 A_WeaponReady\nloop\nShieldThrow:\nSTAA A 0 A_TakeInventory(\"ShieldCheck\",999)\nBLIZ D 0 A_PlaySoundEx(\"weapon/naillaunch\",\"Weapon\")\nBLIZ D 0 A_FireCustomMissile(\"NailShieldShot2\",24,0,52,0)\nBLIZ D 0 A_FireCustomMissile(\"NailShieldShot2\",-24,0,-52,0)\nBLIZ D 0 A_FireCustomMissile(\"NailShieldShot2\",0,0,32,0)\nBLIZ D 0 A_FireCustomMissile(\"NailShieldShot2\",0,0,-32,0)\nNAIS QR 2\nNAIS S 22\nNAIS RQ 5\nBLIZ D 0 A_Refire\nGoto Ready+1\nNoAmmo:\nNAIS F 1 ACS_Execute(979,0)\nGoto Ready+1\n}\n}\n\nactor NailShieldShot1\n{\nPROJECTILE\nDamage (12)\nHeight 5\nRadius 6\ndamagetype \"NailShield\"\nObituary \"$OB_NAILSHIELD\"\n+DONTBLAST\n-NOGRAVITY\ngravity 4.0\nScale 2.5\nspeed 30\nStates\n{\nSpawn:\nNAIS E 0\nSpawn2:\nNAIS E 1 A_CheckFloor(\"Floor\")\nloop\nDeath:\nNAIS E 0 A_CheckFloor(\"Floor\")\nNAIS E 0 A_SpawnItemEx(\"FallingNail\")\nstop\nFloor:\nNAIS E 0 A_SpawnItemEx(\"FloorNail\")\nstop\nXDeath:\nNAIS E 0\nstop\n}\n}\n\nactor NailShieldShot2 : NailShieldShot1\n{\n+NOGRAVITY\nDamage (15)\n//speed 30\nstates\n{\nSpawn:\nNAIS E 0\nSpawn2:\nNAIS E 1\nloop\n}\n}\n\nactor FallingNail : NailShieldShot1\n{\nDamage (9)\nstates\n{\nSpawn:\nNAIS W 0\nSpawn2:\nNAIS W 1 A_CheckFloor(\"Floor\")\nloop\nDeath:\nNAIS W 0 A_CheckFloor(\"Floor\")\nstop\n}\n}\n\nactor FloorNail : FallingNail\n{\n+FLOORHUGGER\nreactiontime 175\nstates\n{\nSpawn:\nNAIS W 0\nSpawn2:\nNAIS W 1 A_CountDown\nloop\nDeath:\nNAIS W 0\nstop\n}\n}\n\nactor NailShieldWarper : BaseShieldWarper\n{\nStates\n{\nShield:\nNAIS AABBCCDD 1 A_Warp(AAPTR_TARGET, 0, 0, 0, 0, WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)\nloop\n}\n}\n\nactor NailShieldAmmo_J : Ammo\n{\ninventory.amount 1\ninventory.maxamount 56\n+INVENTORY.IGNORESKILL\n}"
},
{
"source": "pk3",
"name": "actors/inventory/mmu/JetMissile.txt",
"contents": "actor JetMissileWep_J : BaseMM8BDMWep //17006\n{\n//$Category MM8BDM-Weapons\n//$Title Jet Missile\nWeapon.AmmoUse 2\nWeapon.AmmoGive 28\nWeapon.SlotNumber 2\nInventory.Pickupmessage \"$PU_JETMISSILE\"\nObituary \"$OB_JETMISSILE\"\nTag \"$TAG_JETMISSILE\"\nweapon.ammotype \"JetMissileAmmo_J\"\ninventory.icon \"JETMII\"\nStates\n{\nSpawnLoop:\nJETM X 1\nloop\nReady:\nJETM E 0 ACS_ExecuteAlways(998,0,COL_JETMISSILE)\nJETM E 1 A_WeaponReady\nGoto Ready+1\nDeselect:\nTNT1 A 0 A_TakeInventory(\"JetTargetingTime\",999)\nTNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Lower\nJETM E 1 A_Lower\nLoop\nSelect:\nTNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Raise\nJETM E 1 A_Raise\nLoop\nFire:\nWTCA H 0 A_JumpIfNoAmmo(\"NoAmmo\")\nHold1:\nJETM E 1 A_GiveInventory(\"WeaponCharge\",1)\nJETM E 0 A_Refire(\"Hold1Check\")\ngoto Fire1\nHold1Check:\nJETM E 0 A_JumpIfInventory(\"WeaponCharge\", 15, \"Hold2\")\ngoto Hold1\nHold2:\nJETM E 0 A_TakeInventory(\"JetTargetingFlag\",64)\nJETM E 0 A_GiveInventory(\"JetTargetingTime\",60)\nJETM E 0 A_PlaySoundEx(\"weapon/JetTarget0\",\"Weapon\")\nJETM E 0 ACS_NamedExecuteAlways(\"JET_CHARGE_TARGETER\",0,600)\ngoto Hold2a\n\nHold2a:\nJETM E 0 ACS_ExecuteAlways(991,0,COL_JETMISSILECHARGE)\nJETM H 1 A_FireCustomMissile(\"JetCrosshairLaunch\",0,0,8,0)\nJETM E 0 A_TakeInventory(\"JetTargetingTime\",1)\nJETM E 0 A_JumpIfInventory(\"JetTargetingTime\",1,1)\ngoto Fire2\nJETM E 0 A_Refire(\"Hold2b\")\ngoto Fire2\nHold2b:\nJETM H 1 A_FireCustomMissile(\"JetCrosshairLaunch\",0,0,8,0)\nJETM E 0 A_TakeInventory(\"JetTargetingTime\",1)\nJETM E 0 A_JumpIfInventory(\"JetTargetingTime\",1,1)\ngoto Fire2\nJETM E 0 A_Refire(\"Hold2c\")\ngoto Fire2\nHold2c:\nJETM H 1 A_FireCustomMissile(\"JetCrosshairLaunch\",0,0,8,0)\nJETM E 0 A_TakeInventory(\"JetTargetingTime\",1)\nJETM E 0 A_JumpIfInventory(\"JetTargetingTime\",1,1)\ngoto Fire2\nJETM E 0 A_Refire(\"Hold2d\")\ngoto Fire2\nHold2d:\nJETM H 1 A_FireCustomMissile(\"JetCrosshairLaunch\",0,0,8,0)\nJETM E 0 A_TakeInventory(\"JetTargetingTime\",1)\nJETM E 0 A_JumpIfInventory(\"JetTargetingTime\",1,1)\ngoto Fire2\nJETM E 0 A_Refire(\"Hold2e\")\ngoto Fire2\nHold2e:\nJETM E 0 ACS_ExecuteAlways(991,0,COL_JETMISSILE)\nJETM E 1 A_FireCustomMissile(\"JetCrosshairLaunch2\",0,0,8,0)\nJETM E 0 A_TakeInventory(\"JetTargetingTime\",1)\nJETM E 0 A_JumpIfInventory(\"JetTargetingTime\",1,1)\ngoto Fire2\nJETM E 0 A_Refire(\"Hold2f\")\ngoto Fire2\nHold2f:\nJETM E 1 A_FireCustomMissile(\"JetCrosshairLaunch2\",0,0,8,0)\nJETM E 0 A_TakeInventory(\"JetTargetingTime\",1)\nJETM E 0 A_JumpIfInventory(\"JetTargetingTime\",1,1)\ngoto Fire2\nJETM E 0 A_Refire(\"Hold2g\")\ngoto Fire2\nHold2g:\nJETM E 1 A_FireCustomMissile(\"JetCrosshairLaunch2\",0,0,8,0)\nJETM E 0 A_TakeInventory(\"JetTargetingTime\",1)\nJETM E 0 A_JumpIfInventory(\"JetTargetingTime\",1,1)\ngoto Fire2\nJETM E 0 A_Refire(\"Hold2h\")\ngoto Fire2\nHold2h:\nJETM E 1 A_FireCustomMissile(\"JetCrosshairLaunch2\",0,0,8,0)\nJETM E 0 A_TakeInventory(\"JetTargetingTime\",1)\nJETM E 0 A_JumpIfInventory(\"JetTargetingTime\",1,1)\ngoto Fire2\nHEAT G 0 A_JumpIfInventory(\"IsBot\", 1, \"BotFire\")\nJETM E 0 A_Refire(\"Hold2a\")\ngoto Fire2\n\nBotFire:\nHEAT G 0 A_Jump(64, \"Fire2\")\nHEAT G 0 A_Refire(\"Hold2a\")\nGoto Fire2\n\nAltFire:\nWTCA H 0 A_JumpIfNoAmmo(\"NoAmmo\")\nFire1:\nJETM E 0 A_FireCustomMissile(\"JetMissile\",0,1,8,0)\nFireEnd:\nJETM E 0 A_TakeInventory(\"WeaponCharge\",500)\n//JETM E 0 A_PlaySoundEx(\"weapon/JetFire\",\"Weapon\")\nJETM E 0 A_PlaySoundEx(\"weapon/mbuster\",\"Weapon\")\nJETM E 0 ACS_ExecuteAlways(991,0,COL_JETMISSILE)\nJETM FG 3\nJETM E 10 ACS_ExecuteAlways(991,0,COL_JETMISSILE)\nJETM E 0 A_Refire\nGoto Ready+1\nFire2:\nJETM E 0 A_TakeInventory(\"JetTargetingTime\",999)\nJETM E 0 A_JumpIfInventory(\"JetTargetingFlag\", 1, \"Fire2a\")\ngoto Fire1\nFire2a:\nJETM E 0 A_FireCustomMissile(\"JetMissileH\",0,1,8,0)\nGoto FireEnd\nNoAmmo:\nJETM E 1 ACS_Execute(979,0)\nGoto Ready+1\n}\n}\n\nactor JetTargetingFlag : Inventory\n{\ninventory.amount 1\ninventory.maxamount 64\n}\n\nactor JetTargetingTime : Inventory\n{\ninventory.amount 1\ninventory.maxamount 60\n}\n\nactor JetMissile\n{\nPROJECTILE\nRadius 10\nHeight 10\nscale 2.5\ndamage (21)\nspeed 60\ndamagetype \"JetMissile\"\nObituary \"$OB_JETMISSILE\"\nreactiontime 200\n+SEEKERMISSILE\n-EXTREMEDEATH\nStates\n{\nSpawn:\nJETM A 0\nJETM A 0 A_RearrangePointers(AAPTR_DEFAULT,AAPTR_DEFAULT,AAPTR_NULL) //clear tracer\nSpawn2:\nJETM A 0 A_CountDown\nJETM A 0 A_GiveInventory(\"JetTargetDisplayPickup\",1,AAPTR_TRACER)\nJETM A 1 A_SeekerMissile (90, 90, SMF_PRECISE)\nJETM B 0 A_CountDown\nJETM B 0 A_GiveInventory(\"JetTargetDisplayPickup\",1,AAPTR_TRACER)\nJETM B 1 A_SeekerMissile (90, 90, SMF_PRECISE)\nloop\nDeath:\nTNT1 A 0\nstop\n}\n}\n\nactor JetMissileH : JetMissile\n{\nStates\n{\nSpawn:\nJETM A 0\nJETM A 0 A_RearrangePointers(AAPTR_DEFAULT,AAPTR_DEFAULT,AAPTR_NULL) //clear tracer\nJETM A 0 ACS_NamedExecuteWithResult(\"JET_FIRE\")\ngoto Spawn2\n}\n}\n\nactor JetCrosshairLaunch : JetMissile\n{\n+CLIENTSIDEONLY\n+DONTBLAST\n+DONTREFLECT\n+DONTSPLASH\ndamage (0)\nspeed 300\nStates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 1\nTNT1 A 0 A_SpawnItemEx(\"JetCrosshair_J\")\nstop\nDeath:\nTNT1 A 0 A_SpawnItemEx(\"JetCrosshairDull\")\nstop\n}\n}\n\nactor JetCrosshairLaunch2 : JetCrosshairLaunch\n{\nStates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 1\nTNT1 A 0 A_SpawnItemEx(\"JetCrosshair2\")\nstop\nDeath:\nTNT1 A 0 A_SpawnItemEx(\"JetCrosshairDull2\")\nstop\n}\n}\n\nactor JetCrosshair_J\n{\n+CLIENTSIDEONLY\n+NOINTERACTION\n-SOLID\n+NOGRAVITY\nScale 2.5\n+NOTIMEFREEZE\n+DONTSPLASH\n//+FORCEXYBILLBOARD\nStates\n{\nSpawn:\nJETM C 0\nJETM C 1\nstop\n}\n}\n\nactor JetCrosshair2 : JetCrosshair_J\n{\nStates\n{\nSpawn:\nJETM D 0\nJETM D 1\nstop\n}\n}\n\nactor JetCrosshairDull : JetCrosshair_J\n{\n//50:75 for the red\nTranslation \"25:50=0:0\"\n}\n\nactor JetCrosshairDull2 : JetCrosshair2\n{\nTranslation \"25:50=0:0\"\n}\n\nactor JetTargetDisplayPickup : CustomInventory\n{\nstates\n{\nPickup:\nPLY1 H 0 A_JumpIfInventory(\"JetVision\", 1, \"JetReset\")\nJETM E 0 A_PlaySoundEx(\"weapon/JetTarget0\",\"SoundSlot5\")\nPLY1 H 0 A_GiveInventory(\"JetVision\", 1)\nPLY1 H 0 A_GiveInventory(\"JetTime\", 1)\nPLY1 H 0 A_SpawnItemEx(\"JetWatcher\")\nstop\nJetReset:\nPLY1 H 0 A_GiveInventory(\"JetTime\", 1)\nstop\n}\n}\n\nactor JetVision : PowerUp\n{\n//powerup.color \"4A 4A 4A\", 0.4\npowerup.duration 0x7FFFFFFF\n}\n\nactor JetTime : PowerUp\n{\npowerup.duration 7\n}\n\nactor JetWatcher\n{\nHeight 0\nRadius 0\n+NOINTERACTION\n-SOLID\n+NOGRAVITY\n+MISSILE\nStates\n{\nSpawn:\nTNT1 A 0\nSpawn1:\nTNT1 A 1 A_GiveToTarget(\"JetTargetDisplay1\", 1)\nTNT1 A 0 A_JumpIfInTargetInventory(\"JetTime\", 1, \"Spawn2\")\ngoto End\nSpawn2:\nTNT1 A 1 A_GiveToTarget(\"JetTargetDisplay1\", 1)\nTNT1 A 0 A_JumpIfInTargetInventory(\"JetTime\", 1, \"Spawn3\")\ngoto End\nSpawn3:\nTNT1 A 1 A_GiveToTarget(\"JetTargetDisplay2\", 1)\nTNT1 A 0 A_JumpIfInTargetInventory(\"JetTime\", 1, \"Spawn4\")\ngoto End\nSpawn4:\nTNT1 A 1 A_GiveToTarget(\"JetTargetDisplay2\", 1)\nTNT1 A 0 A_JumpIfInTargetInventory(\"JetTime\", 1, \"Spawn5\")\ngoto End\nSpawn5:\nTNT1 A 1\nTNT1 A 0 A_JumpIfInTargetInventory(\"JetTime\", 1, \"Spawn6\")\ngoto End\nSpawn6:\nTNT1 A 1\nTNT1 A 0 A_JumpIfInTargetInventory(\"JetTime\", 1, \"Spawn1\")\ngoto End\nEnd:\nTNT1 A 0 A_TakeFromTarget(\"JetVision\", 1)\nstop\n}\n}\n\nactor JetTargetDisplay1 : CustomInventory\n{\nStates\n{\nPickup:\nTNT1 A 0 A_SpawnItemEx(\"JetTarget\",0,0,32,momx,momy,momz,0,SXF_ABSOLUTEVELOCITY)\nstop\n}\n}\n\nactor JetTargetDisplay2 : CustomInventory\n{\nStates\n{\nPickup:\nTNT1 A 0 A_SpawnItemEx(\"JetTarget2\",0,0,32,momx,momy,momz,0,SXF_ABSOLUTEVELOCITY)\nstop\n}\n}\n\nactor JetTarget : JetCrosshair_J\n{\nStates\n{\nSpawn:\nJETM I 0\nJETM I 1\nstop\n}\n}\n\nactor JetTarget2 : JetTarget\n{\nStates\n{\nSpawn:\nJETM J 0\nJETM J 1\nstop\n}\n}\n\nactor JetMissileAmmo_J : Ammo\n{\ninventory.amount 1\ninventory.maxamount 28\n+INVENTORY.IGNORESKILL\n}"
},
{
"source": "pk3",
"name": "actors/inventory/mmu/GlueShot.txt",
"contents": "actor GlueShotWep_J : BaseMM8BDMWep //17007\n{\n//$Category MM8BDM-Weapons\n//$Title Glue Shot\nWeapon.AmmoUse 3\nWeapon.AmmoGive 28\nWeapon.SlotNumber 4\nInventory.Pickupmessage \"$PU_GLUESHOT\"\nObituary \"$OB_GLUESHOT\"\nTag \"$TAG_GLUESHOT\"\nweapon.ammotype \"GlueShotAmmo_J\"\ninventory.icon \"GLUESI\"\nStates\n{\nSpawnLoop:\nGLUS A 1\nloop\nReady:\nGLUS B 0 ACS_ExecuteAlways(998,0,COL_GLUESHOT)\nGLUS B 1 A_WeaponReady\nGoto Ready+1\nDeselect:\nTNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Lower\nGLUS B 1 A_Lower\nLoop\nSelect:\nTNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Raise\nGLUS B 1 A_Raise\nLoop\nFire:\nGLUS B 0 A_JumpIfNoAmmo(\"NoAmmo\")\nGLUS B 0 A_PlaySoundEx(\"weapon/GlueFire\",\"Weapon\")\nGLUS B 0 A_FireCustomMissile(\"GlueShot_J\",0,1,8,0)\nGLUS CD 5\nGLUS B 20\nGLUS B 0 A_Refire\nGoto Ready+1\nNoAmmo:\nGLUS B 1 ACS_Execute(979,0)\nGoto Ready+1\n}\n}\n\nactor GlueShot_J\n{\nPROJECTILE\n-NOGRAVITY\n+THRUSPECIES\n//species \"GlueShot\"\nspecies \"MovingPlatform\" // It creates a platform that is solid\nObituary \"$OB_GLUESHOT\"\nRadius 16\nHeight 32\nscale 2.5\ndamage (20)\n//speed 25\nspeed 22\ndamagetype \"GlueShot\"\ngravity 0.8\nStates\n{\nSpawn:\nGLUS E 0\nSpawn2:\nGLUS E 1 A_CheckFloor(\"Floor\")\nloop\nXDeath:\nGLUS E 0 A_PlaySoundEx(\"weapon/GlueBlock\",\"Weapon\")\nTNT1 AA 1 A_SpawnItemEx(\"GiveEnemyGlueFunc\",0,0,height/2)\nstop\nFloor:\nTNT1 A 0 A_Stop\nTNT1 A 0 A_ChangeFlag(\"NOINTERACTION\", 1)\nDeath:\nGLUS E 0 A_ChangeFlag(NOGRAVITY, 1)\nGLUS FFGG 1 A_SpawnItemEx(\"GiveEnemyGlueFunc\",0,0,height/2)\nGLUS E 0 A_PlaySoundEx(\"weapon/GlueBlock\",\"Weapon\")\nGLUS E 0 A_JumpIfCloser(48, \"Death2\")\nGLUS E 0 A_SpawnItem(\"GlueBlock\")\nstop\nDeath2:\nGLUS E 0\nstop\n}\n}\n\nactor GiveEnemyGlueFunc\n{\nHeight 1\nRadius 1\n//Height 0\n//Radius 0\n+NOINTERACTION\n+NOCLIP\nPROJECTILE\n+SERVERSIDEONLY\nstates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 0 ACS_NamedExecuteWithResult(\"Save_Glue\")\nTNT1 A 0 A_RadiusGive(\"GiveEnemyGlueFunc2\",75,RGF_PLAYERS)\nTNT1 A 1\nstop\n}\n}\n\nactor GiveEnemyGlueFunc2 : CustomInventory\n{\nstates\n{\nPickup:\nTNT1 A 0 A_JumpIf(CallACS(\"Glue_IsEnemy\"),\"Pickup2\")\nstop\nPickup2:\nTNT1 A 0 A_GiveInventory(\"GlueCondition\",1)\nstop\n}\n}\n\nactor GlueBlock : ConcreteBlock\n{\ndamagefactor \"ConcreteShot\", 1.0\n//damagefactor \"GlueShot\", 0.0\n//species \"GlueShot\"\n+NOTARGETSWITCH\nHealth 15\nStates\n{\nSpawn:\nGLUS H 0\n//GLUS H 0 A_ClearTarget\nGLUS H 1 A_SpawnItemEx(\"GiveEnemyGlueFunc\",0,0,height/2)\nGLUS H 0 A_ChangeFlag(TOUCHY, false)\nGLUS H 0 A_ChangeFlag(MISSILE, false)\nGLUS H 0 A_ChangeFlag(SOLID, true)\nGLUS H 1 A_SpawnItemEx(\"GiveEnemyGlueFunc\",0,0,height/2)\nGLUS IIIIIIIIIIIIIIIIIIIIIIIIIIIIII 1 A_SpawnItemEx(\"GiveEnemyGlueFunc\",0,0,height/2)\nGLUS IIIIIIIIII 1 A_SpawnItemEx(\"GiveEnemyGlueFunc\",0,0,height/2)\nGLUS KKIIKKIIKKIIKKIIKKIIKKIIKKIIKK 1 A_SpawnItemEx(\"GiveEnemyGlueFunc\",0,0,height/2)\nGLUS IIKKIIKKII 1 A_SpawnItemEx(\"GiveEnemyGlueFunc\",0,0,height/2)\nstop\nDeath:\nGLUS H 0 A_NoBlocking\nGLUS HGF 2\nstop\n}\n}\n\nactor GlueFX\n{\nPROJECTILE\nspeed 100\nHeight 0\nRadius 0\n+NOCLIP\n+NOINTERACTION\nscale 2.5\n+CLIENTSIDEONLY\n\n+NOTIMEFREEZE\n+DONTSPLASH\nStates\n{\nSpawn:\nGLUS M 0\nGLUS M 1\nstop\n}\n}\n\nactor GlueCondition : CustomInventory\n{\nstates\n{\nPickup:\nPLY1 H 0 A_JumpIfInventory(\"GlueVision\", 1, \"GlueReset\")\nPLY1 H 0 A_GiveInventory(\"GlueVision\", 1)\nPLY1 H 0 A_GiveInventory(\"GlueTime\", 1)\nPLY1 H 0 A_SpawnItemEx(\"GlueWatcher\")\nstop\nGlueReset:\nPLY1 H 0 A_GiveInventory(\"GlueTime\", 1)\nstop\n}\n}\n\nactor GlueVision : PowerUp\n{\n//powerup.color \"4A 4A 4A\", 0.4\npowerup.duration 0x7FFFFFFF\n}\n\nactor GlueTime : PowerUp\n{\n//powerup.duration 105\npowerup.duration 85\n//powerup.duration 70\n}\n\nactor GlueWatcher\n{\nHeight 0\nRadius 0\n+NOINTERACTION\n-SOLID\n+NOGRAVITY\n+MISSILE\nStates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 1 A_GiveToTarget(\"GlueFriction\", 1)\nTNT1 A 0 A_JumpIfInTargetInventory(\"GlueTime\", 1, \"Spawn\")\nTNT1 A 0 A_TakeFromTarget(\"GlueVision\", 1)\nTNT1 A 0 A_TakeFromTarget(\"GlueFrictionFlag\", 999)\nstop\n}\n}\n\nactor GlueFriction : CustomInventory\n{\nStates\n{\nPickup:\nTNT1 A 0\n//TNT1 A 0 A_SpawnItemEx(\"GlueFX\", 0, 0, 0, momx, momy, momz, 0, SXF_ABSOLUTEMOMENTUM, 0)\nTNT1 A 0 A_SpawnItemEx(\"GlueFX\", -momx, -momy, -momz, momx, momy, momz, 0, SXF_ABSOLUTEMOMENTUM|SXF_ABSOLUTEPOSITION, 0)\nTNT1 A 0 A_JumpIf(momz==0, \"StoppedZ\")\nTNT1 A 0 A_JumpIfInventory(\"GlueFrictionFlag\",2,\"JumpBoost\")\nTNT1 A 0 A_TakeInventory(\"GlueFrictionFlag\",999)\nstop\nStoppedZ:\nTNT1 A 0 A_GiveInventory(\"GlueFrictionFlag\",1)\nTNT1 A 0 A_JumpIfInventory(\"GlueFrictionFlag\",2,\"Slow\")\nstop\nSlow:\n//TNT1 A 0 A_ScaleVelocity(0.5)\nTNT1 A 0 A_ChangeVelocity(momx/2,momy/2,momz,CVF_REPLACE)\nstop\nJumpBoost:\nTNT1 A 0 A_TakeInventory(\"GlueFrictionFlag\",999)\n//TNT1 A 0 A_LogInt(momx*momx+momy*momy)\nTNT1 A 0 A_JumpIf(momx*momx+momy*momy>300,\"TooFast\")\n//TNT1 A 0 A_Log(jumpboost)\nTNT1 A 0 A_ChangeVelocity(momx*2,momy*2,momz,CVF_REPLACE)\nstop\nTooFast:\n//TNT1 A 0 A_Log(toofast)\nTNT1 A 0\nstop\n}\n}\n\nactor GlueFrictionFlag : Inventory\n{\ninventory.amount 1\ninventory.maxamount 2\n}\n\nactor GlueShotAmmo_J : Ammo\n{\ninventory.amount 1\ninventory.maxamount 28\n+INVENTORY.IGNORESKILL\n}"
},
{
"source": "pk3",
"name": "actors/inventory/mmu/TankArsenel.txt",
"contents": "actor TankArsenalWep_J : BaseMM8BDMWep //17008\n{\n//$Category MM8BDM-Weapons\n//$Title Tank Arsenal\nWeapon.AmmoUse 3\nWeapon.AmmoGive 30\nWeapon.SlotNumber 5\nInventory.Pickupmessage \"$PU_TANKARSENAL\"\nObituary \"$OB_TANKARSENAL\"\nTag \"$TAG_TANKARSENAL\"\nweapon.ammotype \"TankArsenalAmmo_J\"\ninventory.icon \"TANKAI\"\nStates\n{\nSpawnLoop:\nTNAR A 1\nloop\nReady:\nTNAR E 0 ACS_ExecuteAlways(998,0,COL_TANKARSENAL)\nTNAR E 1 A_WeaponReady\nGoto Ready+1\nDeselect:\nTNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Lower\nTNAR E 1 A_Lower\nLoop\nSelect:\nTNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Raise\nTNAR E 1 A_Raise\nLoop\nFire:\nTNAR E 0 A_JumpIfNoAmmo(\"NoAmmo\")\nTNAR E 0 A_PlaySoundEx(\"weapon/TankFire\",\"Weapon\")\nTNAR E 0 A_FireCustomMissile(\"TankShell\",0,1,8,0)\n//TNAR E 0 A_FireCustomMissile(\"TankBullet\",0,0,8,0)\n//TNAR E 0 A_FireCustomMissile(\"TankMortar\",0,0,8,0)\nTNAR E 0 A_FireCustomMissile(\"TankBulletSync\",0,0,8,0)\nTNAR E 0 A_FireCustomMissile(\"TankMortarSync\",0,0,8,0)\nTNAR FG 5\nTNAR E 18\nTNAR E 0 A_Refire\nGoto Ready+1\nNoAmmo:\nTNAR E 1 ACS_Execute(979,0)\nGoto Ready+1\n}\n}\n\nactor TankProjectile\n{\nPROJECTILE\ndamagetype \"TankArsenal\"\nObituary \"$OB_TANKARSENAL\"\nScale 2.5\nstates\n{\nDeath:\nTNT1 A 0\nstop\n}\n}\n\nactor TankMortar : TankProjectile\n{\n+FORCEXYBILLBOARD\nHeight 7\nRadius 8\nDamage (0)\nspeed 20\n//speed 50 //sync testing\n-NOGRAVITY\n//gravity 0.8\ngravity 1.0\nreactiontime 1\n//gravity 0.5 //sync testing\nstates\n{\nSpawn:\nTNAR B 0\nTNAR B 0 A_GiveInventory(\"TankMortarTrajectory\",1)\nSpawn2:\nTNAR B 1 A_CheckFloor(\"Floor\")\nloop\nFloor:\nTNAR B 1 A_CountDown\nloop\nDeath:\nTNT1 A 0 A_PlaySoundEx(\"weapon/TankExplode\", \"Weapon\")\nTNT1 A 0 A_Explode(27, 90, 0)\nTNT1 A 35 A_SpawnItemEx(\"ExplosionEffect2\")\nstop\n}\n}\n\nactor TankMortarTrajectory : CustomInventory\n{\nstates\n{\nPickup:\nTNAR B 0 A_JumpIf(momz<0,\"LaunchMore\")\nTNAR B 0 A_ChangeVelocity(0, 0, 10, 0)\nPickupEnd:\nTNT1 A 0 //A_Log(mortar)\nTNT1 A 0 //A_LogInt(momz)\nstop\nLaunchMore:\nTNAR B 0 A_ChangeVelocity(0, 0, 10-momz*0.34, 0)\n//TNAR B 0 A_ChangeVelocity(0, 0, 10-momz, 0) //sync testing\ngoto PickupEnd\n}\n}\n\nactor TankShell : TankProjectile\n{\nRadius 6\nHeight 7\ndamage (24)\nspeed 40\nstates\n{\nSpawn:\nTNAR D 0\nSpawn2:\nTNAR D 1\nloop\n}\n}\n\nactor TankBullet : TankProjectile\n{\nRadius 5\nHeight 6\nDamage (20)\nSpeed 30\n+NOEXPLODEFLOOR\n\n+STEPMISSILE\nmaxstepheight 15\n+BOUNCEONCEILINGS\nBounceCount 1\nstates\n{\nSpawn:\nTNAR C 0\nTNAR C 0 A_GiveInventory(\"TankBulletTrajectory\",1)\nSpawn2:\nTNAR C 1\nloop\n}\n}\n\nactor TankBulletTrajectory : CustomInventory\n{\nstates\n{\nPickup:\nTNAR C 0 A_ChangeVelocity(0, 0, -5, 0)\nTNAR C 0 A_JumpIf(momz>-10,\"GoDown\")\nTNAR C 0 A_JumpIf(momx*momx+momy*momy<100,\"GoForward\")\nPickupEnd:\nTNT1 A 0 //A_Log(bullet)\nTNT1 A 0 //A_LogInt(momz)\nstop\nGoDown:\nTNAR C 0 A_JumpIf(momx*momx+momy*momy<100,\"GoDownForward\")\nTNAR C 0 A_ChangeVelocity(momx, momy, -10, CVF_REPLACE)\ngoto PickupEnd\nGoForward:\nTNAR C 0 A_ChangeVelocity(10, 0, momz, CVF_RELATIVE|CVF_REPLACE)\ngoto PickupEnd\nGoDownForward:\nTNAR C 0 A_ChangeVelocity(10, 0, -10, CVF_RELATIVE|CVF_REPLACE)\ngoto PickupEnd\n}\n}\n\nactor TankMortarSync : TankMortar\n{\n//Translation \"0:255=198:198\"\nstates\n{\nSpawn:\nTNAR B 0\nTNAR B 0 A_GiveInventory(\"TankMortarTrajectory\",1)\nTNAR B 0 ThrustThingZ (0, 0, 0, 1)\ngoto Spawn2\n}\n}\n\nactor TankBulletSync : TankBullet\n{\n//Translation \"0:255=198:198\"\nstates\n{\nSpawn:\nTNAR C 0\nTNAR C 0 A_GiveInventory(\"TankBulletTrajectory\",1)\nTNAR C 0 ThrustThingZ (0, 0, 0, 1)\ngoto Spawn2\n}\n}\n\nactor TankArsenalAmmo_J : Ammo\n{\ninventory.amount 1\ninventory.maxamount 30\n+INVENTORY.IGNORESKILL\n}"
},
{
"source": "pk3",
"name": "actors/inventory/mmu/RainbowBeam.txt",
"contents": "actor RainbowBeamWep_J : BaseMM8BDMWep //17009\n{\n//$Category MM8BDM-Weapons\n//$Title Rainbow Beam\nWeapon.AmmoUse 2\nWeapon.AmmoGive 28\nWeapon.SlotNumber 2\nInventory.Pickupmessage \"$PU_RAINBOWBEAM\"\nObituary \"$OB_RAINBOWBEAM\"\nTag \"$TAG_RAINBOWBEAM\"\nweapon.ammotype \"RainbowBeamAmmo_J\"\ninventory.icon \"RAINBI\"\nStates\n{\nSpawnLoop:\nRBEM A 1\nloop\nReady:\nRBEM E 0 ACS_ExecuteAlways(998,0,COL_RAINBOWBEAM)\nRBEM E 1 A_WeaponReady\nGoto Ready+1\nDeselect:\n//TNT1 A 0 A_GiveInventory(\"RainbowBeamSpreadFlag\",1)\nTNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Lower\nRBEM E 1 A_Lower\nLoop\nSelect:\nTNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Raise\nRBEM E 1 A_Raise\nLoop\nFire:\nRBEM E 0 A_JumpIfNoAmmo(\"NoAmmo\")\nRBEM E 0 A_TakeInventory(\"RainbowBeamSpreadFlag\",1)\nRBEM E 0 A_TakeInventory(\"RainbowBeamReadyFlag\",1)\nRBEM E 0 A_PlaySoundEx(\"weapon/RainbowFire\",\"Weapon\")\nRBEM E 0 A_FireCustomMissile(\"RainbowBeam\",0,1,8,0)\nRBEM FG 4\nRBEM E 2 A_GiveInventory(\"RainbowBeamCooldownFlag\",25)\nRBEM E 0 A_GiveInventory(\"RainbowBeamReadyFlag\",1)\nDRIL D 0 A_JumpIfInventory(\"IsBot\", 1, \"BotCheck\")\nHold:\nRBEM E 1 A_TakeInventory(\"RainbowBeamCooldownFlag\",1)\nRBEM E 0 A_Refire\nAltHold:\nRBEM E 1 A_GiveInventory(\"RainbowBeamSpreadFlag\",1)\ngoto EndCheck\nCooldown:\nRBEM E 1 A_TakeInventory(\"RainbowBeamCooldownFlag\",1)\nEndCheck:\nRBEM E 0 A_JumpIfInventory(\"RainbowBeamCooldownFlag\",1,\"Cooldown\")\nRBEM E 0 A_ClearRefire\nGoto Ready+1\nBotCheck:\nRBEM EEE 1 A_TakeInventory(\"RainbowBeamCooldownFlag\",1)\nDRIL D 0 A_Jump(64, \"BotCheck\")\nGoto Hold+2\nNoAmmo:\nRBEM E 1 ACS_Execute(979,0)\nGoto Ready+1\n}\n}\n\nactor RainbowBeam\n{\nPROJECTILE\nObituary \"$OB_RAINBOWBEAM\"\nspeed 45\nRadius 5\nHeight 5\ndamagetype \"RainbowBeam\"\nscale 2.5\ndamage (29)\n+FORCEXYBILLBOARD\nStates\n{\nSpawn:\nRBEM B 0 bright\nSpawn2:\n//RBEM B 0 bright A_SpawnItemEx(\"RainbowTrail\",-momx/2,-momy/2,-momz/2,0,0,0,0,SXF_ABSOLUTEPOSITION)\nRBEM B 0 bright A_SpawnItemEx(\"RainbowTrail\",-momx*2/3,-momy*2/3,-momz*2/3,0,0,0,0,SXF_ABSOLUTEPOSITION)\nRBEM B 0 bright A_SpawnItemEx(\"RainbowTrail\",-momx/3,-momy/3,-momz/3,0,0,0,0,SXF_ABSOLUTEPOSITION)\nSpawn3:\nREBM B 1 bright A_SpawnItemEx(\"RainbowTrail\",0,0,0,0,0,0,0,SXF_ABSOLUTEPOSITION)\nREBM B 0 A_JumpIfInTargetInventory(\"RainbowBeamSpreadFlag\",1,\"Spread\")\ngoto Spawn2\nXDeath:\nTNT1 A 0\nstop\nDeath:\nREBM B 0 A_Stop\nREBM BBB 1 bright A_JumpIfInTargetInventory(\"RainbowBeamSpreadFlag\",1,\"Spread\")\nREBM B 0 A_JumpIfInTargetInventory(\"RainbowBeamReadyFlag\",1,\"Spread\")\nstop\nSpread:\nTNT1 A 0 A_SpawnItemEx(\"RainbowSpread\")\nstop\n}\n}\n\nactor RainbowTrail\n{\n+NOINTERACTION\n+NOGRAVITY\n+CLIENTSIDEONLY\n+FORCEXYBILLBOARD\n-SOLID\nscale 2.5\nheight 0\nradius 0\nStates\n{\nSpawn:\nRBEM B 4 bright\nstop\n}\n}\n\nactor RainbowSpread\n{\nPROJECTILE\n+NOINTERACTION\n+DONTBLAST\ndamage 0\nradius 1\nheight 1\nscale 2.5\ndamagetype \"RainbowBeamSpread\"\nObituary \"$OB_RAINBOWBEAM\"\nreactiontime 20\nRenderStyle \"Translucent\"\nAlpha 0.75\n+FORCEXYBILLBOARD\n+DONTSPLASH\nStates\n{\nSpawn:\nRBEM C 0 bright\nRBEM C 0 bright A_PlaySoundEx(\"weapon/RainbowSpread\",\"Weapon\")\nSpawn2:\nRBEM C 0 bright A_CountDown\nRBEM C 0 bright A_Explode(5, 150, 0)\nRBEM CD 2 bright\nloop\nDeath:\nTNT1 A 0\nstop\n}\n}\n\nactor RainbowBeamSpreadFlag : Inventory\n{\ninventory.amount 1\ninventory.maxamount 1\n}\n\nactor RainbowBeamReadyFlag : Inventory\n{\ninventory.amount 1\ninventory.maxamount 1\n}\n\nactor RainbowBeamCooldownFlag : Inventory\n{\ninventory.amount 1\ninventory.maxamount 35\n}\n\nactor RainbowBeamAmmo_J : Ammo\n{\ninventory.amount 1\ninventory.maxamount 28\n+INVENTORY.IGNORESKILL\n}"
},
{
"source": "pk3",
"name": "actors/inventory/mmu/CometDash.txt",
"contents": "actor CometDashWep_J : BaseMM8BDMWep //17010\n{\n//$Category MM8BDM-Weapons\n//$Title Comet Dash\nWeapon.AmmoUse 4\nWeapon.AmmoGive 28\nWeapon.SlotNumber 4\nInventory.Pickupmessage \"$PU_COMETDASH\"\nObituary \"$OB_COMETDASH\"\nTag \"$TAG_COMETDASH\"\nweapon.ammotype \"CometDashAmmo_J\"\ninventory.icon \"COMDAI\"\nStates\n{\nSpawnLoop:\nCMDA A 1\nloop\nReady:\nCMDA I 0 ACS_ExecuteAlways(998,0,COL_COMETDASH)\nCMDA I 1 A_WeaponReady\nGoto Ready+1\nDeselect:\nTNT1 A 0 A_TakeInventory(\"CometDashFlag\",1)\nTNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Lower\nCMDA I 1 A_Lower\nLoop\nSelect:\nTNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Raise\nCMDA I 1 A_Raise\nLoop\nFire:\nTNT1 A 0 A_JumpIfNoAmmo(\"NoAmmo\")\nTNT1 A 0 A_TakeInventory(\"CometDashAmmo_J\",4)\nTNT1 A 0 A_GiveInventory(\"CometDashFlag\",1)\nTNT1 A 0 A_Gunflash\nTNT1 A 0 A_PlaySoundEx(\"weapon/CometDash\",\"Weapon\")\n//TNT1 A 0 A_Stop\n//TNT1 A 0 ACS_NamedExecuteAlways(\"core_flyplayer\",0,0,1)\nTNT1 A 0 ACS_NamedExecuteAlways(\"core_freezeplayer\",0,0,1)\nTNT1 A 0 A_GiveInventory(\"CometThruFlag\",1)\nTNT1 A 0 A_ChangeFlag(\"THRUSPECIES\", 1)\n//A_ChangeVelocity(25,0,momz,CVF_RELATIVE|CVF_REPLACE)\nTNT1 AA 1 A_ChangeVelocity(25,0,0,CVF_RELATIVE|CVF_REPLACE)\nTNT1 A 0 A_GiveInventory(\"FireCometWaves\",1)\nTNT1 AA 1 A_ChangeVelocity(25,0,0,CVF_RELATIVE|CVF_REPLACE)\nTNT1 A 0 A_GiveInventory(\"FireCometWaves\",1)\nTNT1 AA 1 A_ChangeVelocity(25,0,0,CVF_RELATIVE|CVF_REPLACE)\nTNT1 A 0 A_GiveInventory(\"FireCometWaves\",1)\nTNT1 AA 1 A_ChangeVelocity(25,0,0,CVF_RELATIVE|CVF_REPLACE)\nTNT1 A 0 A_GiveInventory(\"FireCometWaves\",1)\nTNT1 AA 1 A_ChangeVelocity(25,0,0,CVF_RELATIVE|CVF_REPLACE)\nTNT1 A 0 A_GiveInventory(\"FireCometWaves\",1)\nTNT1 AA 1 A_ChangeVelocity(25,0,0,CVF_RELATIVE|CVF_REPLACE)\nTNT1 A 0 A_GiveInventory(\"FireCometWaves\",1)\nTNT1 AA 1 A_ChangeVelocity(25,0,0,CVF_RELATIVE|CVF_REPLACE)\nTNT1 A 0 A_GiveInventory(\"FireCometWaves\",1)\nTNT1 AA 1 A_ChangeVelocity(25,0,0,CVF_RELATIVE|CVF_REPLACE)\nTNT1 A 0 A_GiveInventory(\"FireCometWaves\",1)\nTNT1 AA 1 A_ChangeVelocity(25,0,0,CVF_RELATIVE|CVF_REPLACE)\nTNT1 A 0 A_Stop\n//TNT1 A 0 ACS_NamedExecuteAlways(\"core_flyplayer\",0,0,0)\nTNT1 A 0 ACS_NamedExecuteAlways(\"core_freezeplayer\",0,0,0)\nTNT1 A 0 A_TakeInventory(\"CometDashFlag\",1)\nTNT1 A 0 ACS_ExecuteAlways(991,0,COL_COMETDASH)\nCMDA K 1 A_GiveInventory(\"CometThruCheck\",1)\nTNT1 A 0 ACS_ExecuteAlways(991,0,COL_COMETDASH)\nCMDA JJJIII 1 A_GiveInventory(\"CometThruCheck\",1)\nCMDA I 0 ACS_ExecuteAlways(991,0,COL_COMETDASH)\nCMDA IIIIIIIIIIII 1 A_GiveInventory(\"CometThruCheck\",1)\nThruWait:\nCMDA I 1 A_GiveInventory(\"CometThruCheck\",1)\nCMDA I 0 A_JumpIfInventory(\"CometThruFlag\",1,\"ThruWait\")\nRBEM E 0 A_Refire\nGoto Ready+1\nNoAmmo:\nCMDA I 1 ACS_Execute(979,0)\nGoto Ready+1\nFlash:\nTNT1 A 0 A_JumpIfInventory(\"CometDashFlag\", 1, 1)\ngoto NoFlash\nTNT1 A 0\nCMDA J 1\nTNT1 A 0 A_JumpIfInventory(\"CometDashFlag\", 1, 1)\ngoto NoFlash\nTNT1 A 0\nCMDA J 1\nTNT1 A 0 A_JumpIfInventory(\"CometDashFlag\", 1, 1)\ngoto NoFlash\nFlash2:\nTNT1 A 0 ACS_ExecuteAlways(991,0,COL_COMETDASHCHARGE1)\nCMDA L 1 A_SpawnItemEx(\"CometDash1\", 10, 0, 28, momx, momy, momz, 0, SXF_ABSOLUTEMOMENTUM, 0)\nTNT1 A 0 A_JumpIfInventory(\"CometDashFlag\", 1, 1)\ngoto NoFlash\nTNT1 A 0 ACS_ExecuteAlways(991,0,COL_COMETDASHCHARGE2)\nCMDA M 1 A_SpawnItemEx(\"CometDash2\", 10, 0, 28, momx, momy, momz, 0, SXF_ABSOLUTEMOMENTUM, 0)\nTNT1 A 0 A_JumpIfInventory(\"CometDashFlag\", 1, 1)\ngoto NoFlash\nTNT1 A 0 ACS_ExecuteAlways(991,0,COL_COMETDASH)\nCMDA K 1\nTNT1 A 0 A_JumpIfInventory(\"CometDashFlag\", 1, \"Flash2\")\ngoto NoFlash\nNoFlash:\nTNT1 A 0\nstop\n}\n}\n\nactor CometThruCheck : CustomInventory\n{\nstates\n{\npickup:\nTNT1 A 0 A_JumpIfInventory(\"CometThruFlag\",1,\"pickup2\")\nstop\npickup2:\nTNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(261, 64) == 1, \"StayThru\")\nTNT1 A 0 A_TakeInventory(\"CometThruFlag\",1)\nTNT1 A 0 A_ChangeFlag(\"THRUSPECIES\",0)\nstop\nStayThru:\nTNT1 A 0\nstop\n}\n}\n\nactor FireCometWaves : CustomInventory\n{\nstates\n{\npickup:\n//TNT1 A 0 A_LogInt(momx*momx+momy*momy)\nTNT1 A 0 A_JumpIf((momx*momx+momy*momy)<200,\"short\")\nTNT1 A 0 A_SpawnItemEx(\"CometWaveUp\", 0, 0, 28, 0, 0, 30, 90)\nTNT1 A 0 A_SpawnItemEx(\"CometWaveUpSide\", 0, 0, 28, 20, 0, 20, 90)\nTNT1 A 0 A_SpawnItemEx(\"CometWaveSide\", 0, 0, 28, 30, 0, 0, 90)\nTNT1 A 0 A_SpawnItemEx(\"CometWaveDownSide\", 0, 0, 28, 20, 0, -20, 90)\nTNT1 A 0 A_SpawnItemEx(\"CometWaveUpSide\", 0, 0, 28, 20, 0, 20, -90)\nTNT1 A 0 A_SpawnItemEx(\"CometWaveSide\", 0, 0, 28, 30, 0, 0, -90)\nTNT1 A 0 A_SpawnItemEx(\"CometWaveDownSide\", 0, 0, 28, 20, 0, -20, -90)\nTNT1 A 0 A_SpawnItemEx(\"CometWaveDown\", 0, 0, 28, 0, 0, -30, -90)\nstop\nshort:\nTNT1 A 0 A_SpawnItemEx(\"ShortCometWaveUp\", 0, 0, 28, 0, 0, 30, 90)\nTNT1 A 0 A_SpawnItemEx(\"ShortCometWaveUpSide\", 0, 0, 28, 20, 0, 20, 90)\nTNT1 A 0 A_SpawnItemEx(\"ShortCometWaveSide\", 0, 0, 28, 30, 0, 0, 90)\nTNT1 A 0 A_SpawnItemEx(\"ShortCometWaveDownSide\", 0, 0, 28, 20, 0, -20, 90)\nTNT1 A 0 A_SpawnItemEx(\"ShortCometWaveUpSide\", 0, 0, 28, 20, 0, 20, -90)\nTNT1 A 0 A_SpawnItemEx(\"ShortCometWaveSide\", 0, 0, 28, 30, 0, 0, -90)\nTNT1 A 0 A_SpawnItemEx(\"ShortCometWaveDownSide\", 0, 0, 28, 20, 0, -20, -90)\nTNT1 A 0 A_SpawnItemEx(\"ShortCometWaveDown\", 0, 0, 28, 0, 0, -30, -90)\nstop\n}\n}\n\nactor CometWaveSide\n{\nPROJECTILE\ndamagetype \"CometDash\"\nObituary \"$OB_COMETDASH\"\nRadius 6\nHeight 7\nscale 2.5\n//damage (20)\ndamage (21)\nspeed 30\nstates\n{\nSpawn:\nCMDA D 0\nSpawn2:\nCMDA D 1\nloop\nDeath:\nTNT1 A 0\nstop\n}\n}\n\nactor CometWaveUp : CometWaveSide\n{\nstates\n{\nSpawn:\nCMDA B 0\nSpawn2:\nCMDA B 1\nloop\n}\n}\n\nactor CometWaveUpSide : CometWaveSide\n{\nstates\n{\nSpawn:\nCMDA C 0\nSpawn2:\nCMDA C 1\nloop\n}\n}\n\nactor CometWaveDownSide : CometWaveSide\n{\nstates\n{\nSpawn:\nCMDA E 0\nSpawn2:\nCMDA E 1\nloop\n}\n}\n\nactor CometWaveDown : CometWaveSide\n{\nstates\n{\nSpawn:\nCMDA F 0\nSpawn2:\nCMDA F 1\nloop\n}\n}\n\nactor ShortCometWaveSide : CometWaveSide\n{\nreactiontime 4\nstates\n{\nSpawn:\nCMDA D 0\nSpawn2:\nCMDA D 1 A_CountDown\nloop\n}\n}\n\nactor ShortCometWaveUp : ShortCometWaveSide\n{\nstates\n{\nSpawn:\nCMDA B 0\nSpawn2:\nCMDA B 1 A_CountDown\nloop\n}\n}\n\nactor ShortCometWaveUpSide : ShortCometWaveSide\n{\nstates\n{\nSpawn:\nCMDA C 0\nSpawn2:\nCMDA C 1 A_CountDown\nloop\n}\n}\n\nactor ShortCometWaveDownSide : ShortCometWaveSide\n{\nstates\n{\nSpawn:\nCMDA E 0\nSpawn2:\nCMDA E 1 A_CountDown\nloop\n}\n}\n\nactor ShortCometWaveDown : ShortCometWaveSide\n{\nstates\n{\nSpawn:\nCMDA F 0\nSpawn2:\nCMDA F 1 A_CountDown\nloop\n}\n}\n\nactor CometDash1\n{\nscale 2.5\n- SOLID\n+NOGRAVITY\n+DONTSPLASH\n+NOTIMEFREEZE\nTranslation \"192:192=4:4\", \"198:198=[0,255,180]:[0,255,180]\", \"0:2=4:4\", \"5:8=4:4\", \"243:247=4:4\"\nStates\n{\nSpawn:\nCMDA G 0\nCMDA G 1\nstop\n}\n}\n\nactor CometDash2 : CometDash1\n{\nTranslation \"192:192=4:4\", \"198:198=4:4\", \"0:2=[0,255,180]:[0,255,180]\", \"5:8=[0,255,180]:[0,255,180]\", \"243:247=[0,255,180]:[0,255,180]\"\nStates\n{\nSpawn:\nCMDA H 0\nCMDA H 1\nstop\n}\n}\n\nactor CometDashProtect : PowerProtection\n{\n//Powerup.Duration 3\nPowerup.Duration 5\nDamageFactor \"Normal\", 1.0\n//DamageFactor \"CometDash\", 0.8\nDamageFactor \"CometDash\", 0.7\n}\n\nactor CometDashProtect1 : CometDashProtect {}\nactor CometDashProtect2 : CometDashProtect {}\nactor CometDashProtect3 : CometDashProtect {}\nactor CometDashProtect4 : CometDashProtect {}\nactor CometDashProtect5 : CometDashProtect {}\nactor CometDashProtect6 : CometDashProtect {}\nactor CometDashProtect7 : CometDashProtect {}\nactor CometDashProtect8 : CometDashProtect {}\nactor CometDashProtect9 : CometDashProtect {}\nactor CometDashProtect10 : CometDashProtect {}\nactor CometDashProtect11 : CometDashProtect {}\nactor CometDashProtect12 : CometDashProtect {}\nactor CometDashProtect13 : CometDashProtect {}\nactor CometDashProtect14 : CometDashProtect {}\nactor CometDashProtect15 : CometDashProtect {}\nactor CometDashProtect16 : CometDashProtect {}\nactor CometDashProtect17 : CometDashProtect {}\nactor CometDashProtect18 : CometDashProtect {}\nactor CometDashProtect19 : CometDashProtect {}\nactor CometDashProtect20 : CometDashProtect {}\nactor CometDashProtect21 : CometDashProtect {}\nactor CometDashProtect22 : CometDashProtect {}\nactor CometDashProtect23 : CometDashProtect {}\nactor CometDashProtect24 : CometDashProtect {}\n\nactor CometDashProtectGive : CustomInventory\n{\nstates\n{\npickup:\nTNT1 A 0 A_JumpIfInventory(\"CometDashProtect1\",1,2)\nTNT1 A 0 A_GiveInventory(\"CometDashProtect1\",1)\nstop\nTNT1 A 0 A_JumpIfInventory(\"CometDashProtect2\",1,2)\nTNT1 A 0 A_GiveInventory(\"CometDashProtect2\",1)\nstop\nTNT1 A 0 A_JumpIfInventory(\"CometDashProtect3\",1,2)\nTNT1 A 0 A_GiveInventory(\"CometDashProtect3\",1)\nstop\nTNT1 A 0 A_JumpIfInventory(\"CometDashProtect4\",1,2)\nTNT1 A 0 A_GiveInventory(\"CometDashProtect4\",1)\nstop\nTNT1 A 0 A_JumpIfInventory(\"CometDashProtect5\",1,2)\nTNT1 A 0 A_GiveInventory(\"CometDashProtect5\",1)\nstop\nTNT1 A 0 A_JumpIfInventory(\"CometDashProtect6\",1,2)\nTNT1 A 0 A_GiveInventory(\"CometDashProtect6\",1)\nstop\nTNT1 A 0 A_JumpIfInventory(\"CometDashProtect7\",1,2)\nTNT1 A 0 A_GiveInventory(\"CometDashProtect7\",1)\nstop\nTNT1 A 0 A_JumpIfInventory(\"CometDashProtect8\",1,2)\nTNT1 A 0 A_GiveInventory(\"CometDashProtect8\",1)\nstop\nTNT1 A 0 A_JumpIfInventory(\"CometDashProtect9\",1,2)\nTNT1 A 0 A_GiveInventory(\"CometDashProtect9\",1)\nstop\nTNT1 A 0 A_JumpIfInventory(\"CometDashProtect10\",1,2)\nTNT1 A 0 A_GiveInventory(\"CometDashProtect10\",1)\nstop\nTNT1 A 0 A_JumpIfInventory(\"CometDashProtect11\",1,2)\nTNT1 A 0 A_GiveInventory(\"CometDashProtect11\",1)\nstop\nTNT1 A 0 A_JumpIfInventory(\"CometDashProtect12\",1,2)\nTNT1 A 0 A_GiveInventory(\"CometDashProtect12\",1)\nstop\nTNT1 A 0 A_JumpIfInventory(\"CometDashProtect13\",1,2)\nTNT1 A 0 A_GiveInventory(\"CometDashProtect13\",1)\nstop\nTNT1 A 0 A_JumpIfInventory(\"CometDashProtect14\",1,2)\nTNT1 A 0 A_GiveInventory(\"CometDashProtect14\",1)\nstop\nTNT1 A 0 A_JumpIfInventory(\"CometDashProtect15\",1,2)\nTNT1 A 0 A_GiveInventory(\"CometDashProtect15\",1)\nstop\nTNT1 A 0 A_JumpIfInventory(\"CometDashProtect16\",1,2)\nTNT1 A 0 A_GiveInventory(\"CometDashProtect16\",1)\nstop\nTNT1 A 0 A_JumpIfInventory(\"CometDashProtect17\",1,2)\nTNT1 A 0 A_GiveInventory(\"CometDashProtect17\",1)\nstop\nTNT1 A 0 A_JumpIfInventory(\"CometDashProtect18\",1,2)\nTNT1 A 0 A_GiveInventory(\"CometDashProtect18\",1)\nstop\nTNT1 A 0 A_JumpIfInventory(\"CometDashProtect19\",1,2)\nTNT1 A 0 A_GiveInventory(\"CometDashProtect19\",1)\nstop\nTNT1 A 0 A_JumpIfInventory(\"CometDashProtect20\",1,2)\nTNT1 A 0 A_GiveInventory(\"CometDashProtect20\",1)\nstop\nTNT1 A 0 A_JumpIfInventory(\"CometDashProtect21\",1,2)\nTNT1 A 0 A_GiveInventory(\"CometDashProtect21\",1)\nstop\nTNT1 A 0 A_JumpIfInventory(\"CometDashProtect22\",1,2)\nTNT1 A 0 A_GiveInventory(\"CometDashProtect22\",1)\nstop\nTNT1 A 0 A_JumpIfInventory(\"CometDashProtect23\",1,2)\nTNT1 A 0 A_GiveInventory(\"CometDashProtect23\",1)\nstop\nTNT1 A 0 A_JumpIfInventory(\"CometDashProtect24\",1,2)\nTNT1 A 0 A_GiveInventory(\"CometDashProtect24\",1)\nTNT1 A 0\nstop\n}\n}\n\nactor CometDashFlag : Inventory\n{\ninventory.amount 1\ninventory.maxamount 1\n}\n\nactor CometThruFlag : Inventory\n{\ninventory.amount 1\ninventory.maxamount 1\n}\n\nactor CometDashAmmo_J : Ammo\n{\ninventory.amount 1\ninventory.maxamount 28\n+INVENTORY.IGNORESKILL\n}"
},
{
"source": "pk3",
"name": "actors/inventory/mmu/mmutempt.txt",
"contents": "actor NailShieldWep : Megabuster\n{\nstates\n{\nReady:\nTNT1 A 0 ACS_ExecuteAlways(998,0,COL_NAILSHIELD)\ngoto Ready2+1\n}\n}\n\nactor TankArsenalWep : Megabuster\n{\nstates\n{\nReady:\nTNT1 A 0 ACS_ExecuteAlways(998,0,COL_TANKARSENAL)\ngoto Ready2+1\n}\n}\n\nactor JetMissileWep : Megabuster\n{\nstates\n{\nReady:\nTNT1 A 0 ACS_ExecuteAlways(998,0,COL_JETMISSILE)\ngoto Ready2+1\n}\n}\n\nactor GlueShotWep : Megabuster\n{\nstates\n{\nReady:\nTNT1 A 0 ACS_ExecuteAlways(998,0,COL_GLUESHOT)\ngoto Ready2+1\n}\n}\n\nactor NitroBlastWep : Megabuster\n{\nstates\n{\nReady:\nTNT1 A 0 ACS_ExecuteAlways(998,0,COL_NITROBLAST)\ngoto Ready2+1\n}\n}\n\nactor RainbowBeamWep : Megabuster\n{\nstates\n{\nReady:\nTNT1 A 0 ACS_ExecuteAlways(998,0,COL_RAINBOWBEAM)\ngoto Ready2+1\n}\n}\n\nactor YoyoCutterWep : Megabuster\n{\nstates\n{\nReady:\nTNT1 A 0 ACS_ExecuteAlways(998,0,COL_YOYOCUTTER)\ngoto Ready2+1\n}\n}\n\nactor CometDashWep : Megabuster\n{\nstates\n{\nReady:\nTNT1 A 0 ACS_ExecuteAlways(998,0,COL_COMETDASH)\ngoto Ready2+1\n}\n}\n\nactor YokuAttackWep : Megabuster\n{\nstates\n{\nReady:\nTNT1 A 0 ACS_ExecuteAlways(998,0,COL_YOKUATTACK)\ngoto Ready2+1\n}\n}\n\nactor WaterCannonWep : Megabuster\n{\nstates\n{\nReady:\nTNT1 A 0 ACS_ExecuteAlways(998,0,COL_WATERCANNON)\ngoto Ready2+1\n}\n}"
}
]
},
"maps": []
}