mweps-mmu-v1a.pk3

PK3 1.1 MiB 0 map(s)

Counts

endoom0
graphics0
lumps242
maps0
palettes0

Totals (across maps)

Things0
Linedefs0
Sectors0
Monsters0
Items0
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": []
}

gib.gg runs on open-source software and freely licensed replacement game assets from the Freedoom project. gib.gg is not affiliated with Bethesda Softworks, id Software, or ZeniMax Media. All trademarks belong to their respective owners. Some WADs and associated metadata on this site are sourced from WAD Archive. User-submitted content remains the responsibility of its respective authors. If you believe content on this site violates your rights, please send DMCA requests to dmca@gib.gg.