expwep-mmu-b3.pk3

PK3 1.5 MiB 0 map(s)

Counts

endoom0
graphics0
lumps235
maps0
palettes0

Totals (across maps)

Things0
Linedefs0
Sectors0
Monsters0
Items0
Raw model (for completeness)
{
  "meta": {
    "id": "07a184ce-376c-4964-a05a-1df22d2d0158",
    "sha1": "b7865c0a182da03a0b15377a5f9995e06cd30b20",
    "sha256": "8b0f485afe78e5d31cd25ae66d259fb2ecc6ecc75b51dddf66a7c30693520d7c",
    "filenames": [
      "expwep-mmu-b3.pk3"
    ],
    "additional": {
      "engines": [
        "ZDOOM"
      ],
      "iwad": [],
      "filename": null,
      "added": "2018-12-22 04:22:10",
      "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": "2018-12-22 04:22:10",
    "file": {
      "type": "PK3",
      "size": 1581047,
      "url": "https://wadarchive2.nyc3.digitaloceanspaces.com/b7865c0a182da03a0b15377a5f9995e06cd30b20/b7865c0a182da03a0b15377a5f9995e06cd30b20.pk3.gz",
      "corrupt": false
    },
    "content": {
      "counts": {
        "endoom": 0,
        "graphics": 0,
        "lumps": 235,
        "maps": 0,
        "palettes": 0
      },
      "engines_guess": [
        "ZDOOM"
      ]
    },
    "analysis": {
      "title": "expwep-mmu-b3",
      "description": "This WAD is a single PK3 file designed for the ZDoom engine, containing no standalone maps but rather custom weapon and gameplay modifications. It introduces a variety of new weapon types and ammo categories, emphasizing experimental and diverse combat mechanics. The content focuses on adding new player abilities and arsenal expansions rather than traditional map progression or monster encounters. There are no indications of resource balancing, map themes, or difficulty scaling as it is a gameplay mod rather than a mapset. Compatibility is specific to ZDoom and does not require any IWAD for standalone play.",
      "tags": [
        "custom_ammo",
        "experimental",
        "gameplay_mod",
        "no_maps",
        "weapon_mod",
        "zdoom"
      ],
      "origin": "gpt-4.1-mini"
    },
    "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": "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 : 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\"\ninventory.icon \"NITRBI\"\nStates\n{\nSpawn:\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\")\n//NITB B 0 A_PlaySoundEx(\"weapon/nitroblast\",\"Weapon\")\n//NITB B 0 A_FireCustomMissile(\"NitroExplosion\",0,0,8,0)\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)\ngoto Detonate\nSpawn2:\nTNT1 A 4 A_CountDown\nDetonate:\nTNT1 A 0 A_Explode(22, 90, 0, 0, 18)\nTNT1 A 0 A_SpawnItemEx(\"NitroExplosion\")\n//TNT1 A 0 A_SpawnItemEx(\"NitroExplosion\",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)\ngoto Spawn2\nDeath:\nTNT1 A 0\nstop\n}\n}\n\nactor NitroExplosion\n{\nScale 2.5\nHeight 0\nRadius 0\n+NOGRAVITY\n-SOLID\n+NOINTERACTION\n+NOCLIP\nStates\n{\nSpawn:\nNAPA EFGHIJKLMNOPQRS 2\nstop\n}\n}\n\nactor NitroBlastAmmo : Ammo\n{\ninventory.amount 1\ninventory.maxamount 30\n+INVENTORY.IGNORESKILL\n}"
      },
      {
        "source": "pk3",
        "name": "actors/inventory/mmu/YoYoCutter.txt",
        "contents": "actor YoYoCutterWep : 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\"\ninventory.icon \"YOYOCI\"\nStates\n{\nSpawn:\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\")\nYOYH A 0 A_FireCustomMissile(\"YoyoCutter\",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 YoyoCutterBase\n{\nPROJECTILE\nHeight 5\nRadius 6\nScale 2.5\nreactiontime 24\n}\n\nactor YoyoCutterDamager : YoyoCutterBase\n{\n+RIPPER\n+NONETID\nDamage (5)\ndamagetype \"YoyoCutter\"\nObituary \"$OB_YoyoCutter\"\nStates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 1\nstop\nDeath:\nTNT1 A 0\nstop\n}\n}\n\nactor YoyoCutterDamageItem : CustomInventory\n{\nStates\n{\nPickup:\nTNT1 A 0 A_ChangeFlag(\"MISSILE\",1)\nTNT1 A 0 A_SpawnItemEx(\"YoyoCutterDamager\",0,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM,0)\nTNT1 A 0 A_ChangeFlag(\"MISSILE\",0)\nstop\n}\n}\n\nactor YoyoCutterDamageItem2 : CustomInventory\n{\nStates\n{\nPickup:\nTNT1 A 0 A_SpawnItemEx(\"YoyoCutterDamager\",0,0,0,momx,momy,momz,0,SXF_ABSOLUTEMOMENTUM,0)\nstop\n}\n}\n\nactor YoyoCutter : YoyoCutterBase\n{\n+DONTSPLASH\n+THRUACTORS\nSpeed 24\n\n-MISSILE\n+NOBLOCKMONST\nMaxStepHeight 0\nStates\n{\nSpawn:\nYOYC B 0\nTNT1 A 0 A_JumpIf(momz==0,\"Forward\")\nTNT1 A 0 A_JumpIf(momx*momx+momy*momy==0,\"StraightUpDown\")\nTNT1 A 0 A_JumpIf(momz>0,\"UpForward\")\ngoto DownForward\nStraightUpDown:\nTNT1 A 0 A_JumpIf(momz>0,\"Up\")\ngoto Down\n\nDownForward:\nTNT1 A 0 A_JumpIf(momx*momx+momy*momy==0,\"DownFrontWallStart\")\nTNT1 A 0 A_JumpIf(momz==0,\"ForwardFloorStart\")\nTNT1 A 0 A_GiveInventory(\"YoyoCutterDamageItem\")\nYOYC B 1\nTNT1 A 0 A_CountDown\nTNT1 A 0 A_JumpIf(momx*momx+momy*momy==0,\"DownFrontWallStart\")\nTNT1 A 0 A_JumpIf(momz==0,\"ForwardFloorStart\")\nTNT1 A 0 A_GiveInventory(\"YoyoCutterDamageItem\")\nYOYC C 1\nTNT1 A 0 A_CountDown\nloop\nForward:\nTNT1 A 0 A_JumpIf(momx*momx+momy*momy==0,\"UpFrontWallStart\")\nTNT1 A 0 A_GiveInventory(\"YoyoCutterDamageItem\")\nYOYC B 1\nTNT1 A 0 A_CountDown\nTNT1 A 0 A_JumpIf(momx*momx+momy*momy==0,\"UpFrontWallStart\")\nTNT1 A 0 A_GiveInventory(\"YoyoCutterDamageItem\")\nYOYC C 1\nTNT1 A 0 A_CountDown\nloop\nUpForward:\nTNT1 A 0 A_JumpIf(momx*momx+momy*momy==0,\"UpFrontWallStart\")\nTNT1 A 0 A_JumpIf(momz==0,\"ForwardCeilingStart\")\nTNT1 A 0 A_GiveInventory(\"YoyoCutterDamageItem\")\nYOYC B 1\nTNT1 A 0 A_CountDown\nTNT1 A 0 A_JumpIf(momx*momx+momy*momy==0,\"UpFrontWallStart\")\nTNT1 A 0 A_JumpIf(momz==0,\"ForwardCeilingStart\")\nTNT1 A 0 A_GiveInventory(\"YoyoCutterDamageItem\")\nYOYC C 1\nTNT1 A 0 A_CountDown\nloop\nDown:\nTNT1 A 0 A_JumpIf(momz==0,\"ForwardFloorStart\")\nTNT1 A 0 A_GiveInventory(\"YoyoCutterDamageItem\")\nYOYC B 1\nTNT1 A 0 A_CountDown\nTNT1 A 0 A_JumpIf(momz==0,\"ForwardFloorStart\")\nTNT1 A 0 A_GiveInventory(\"YoyoCutterDamageItem\")\nYOYC C 1\nTNT1 A 0 A_CountDown\nloop\nUp:\nTNT1 A 0 A_JumpIf(momz==0,\"ForwardCeilingStart\")\nTNT1 A 0 A_GiveInventory(\"YoyoCutterDamageItem\")\nYOYC B 1\nTNT1 A 0 A_CountDown\nTNT1 A 0 A_JumpIf(momz==0,\"ForwardCeilingStart\")\nTNT1 A 0 A_GiveInventory(\"YoyoCutterDamageItem\")\nYOYC C 1\nTNT1 A 0 A_CountDown\nloop\n\nForwardFloorStart:\nTNT1 A 0\ngoto ForwardFloor+8\nUpFrontWallStart:\nTNT1 A 0\ngoto UpFrontWall+8\nBackwardCeilingStart:\nTNT1 A 0\ngoto BackwardCeiling+8\nDownBackWallStart:\nTNT1 A 0\ngoto DownBackWall+8\nForwardCeilingStart:\nTNT1 A 0\ngoto ForwardCeiling+8\nDownFrontWallStart:\nTNT1 A 0\ngoto DownFrontWall+8\nBackwardFloorStart:\nTNT1 A 0\ngoto BackwardFloor+8\nUpBackWallStart:\nTNT1 A 0\ngoto UpBackWall+8\n\nForwardFloor:\nTNT1 A 0 A_JumpIf(momx*momx+momy*momy==0,\"UpFrontWallStart\")\nTNT1 A 0 A_JumpIf(momz<0,\"DownBackWallStart\")\nTNT1 A 0 A_GiveInventory(\"YoyoCutterDamageItem\")\nTNT1 A 0 A_ChangeVelocity(24,0,-72,CVF_RELATIVE|CVF_REPLACE)\nYOYC B 1\nTNT1 A 0 A_CountDown\nTNT1 A 0 A_JumpIf(momx*momx+momy*momy==0,\"UpFrontWallStart\")\nTNT1 A 0 A_JumpIf(momz<0,\"DownBackWallStart\")\nTNT1 A 0 A_GiveInventory(\"YoyoCutterDamageItem\")\nTNT1 A 0 A_ChangeVelocity(24,0,-72,CVF_RELATIVE|CVF_REPLACE)\nYOYC C 1\nTNT1 A 0 A_CountDown\nloop\nUpFrontWall:\nTNT1 A 0 A_JumpIf(momz==0,\"BackwardCeilingStart\")\nTNT1 A 0 A_JumpIf(momx*momx+momy*momy>0,\"ForwardFloorStart\")\nTNT1 A 0 A_GiveInventory(\"YoyoCutterDamageItem\")\nTNT1 A 0 A_ChangeVelocity(72,0,24,CVF_RELATIVE|CVF_REPLACE)\nYOYC B 1\nTNT1 A 0 A_CountDown\nTNT1 A 0 A_JumpIf(momz==0,\"BackwardCeilingStart\")\nTNT1 A 0 A_JumpIf(momx*momx+momy*momy>0,\"ForwardFloorStart\")\nTNT1 A 0 A_GiveInventory(\"YoyoCutterDamageItem\")\nTNT1 A 0 A_ChangeVelocity(72,0,24,CVF_RELATIVE|CVF_REPLACE)\nYOYC C 1\nTNT1 A 0 A_CountDown\nloop\nBackwardCeiling:\nTNT1 A 0 A_JumpIf(momx*momx+momy*momy==0,\"DownBackWallStart\")\nTNT1 A 0 A_JumpIf(momz>0,\"UpFrontWallStart\")\nTNT1 A 0 A_GiveInventory(\"YoyoCutterDamageItem\")\nTNT1 A 0 A_ChangeVelocity(-24,0,72,CVF_RELATIVE|CVF_REPLACE)\nYOYC B 1\nTNT1 A 0 A_CountDown\nTNT1 A 0 A_JumpIf(momx*momx+momy*momy==0,\"DownBackWallStart\")\nTNT1 A 0 A_JumpIf(momz>0,\"UpFrontWallStart\")\nTNT1 A 0 A_GiveInventory(\"YoyoCutterDamageItem\")\nTNT1 A 0 A_ChangeVelocity(-24,0,72,CVF_RELATIVE|CVF_REPLACE)\nYOYC C 1\nTNT1 A 0 A_CountDown\nloop\nDownBackWall:\nTNT1 A 0 A_JumpIf(momz==0,\"ForwardFloorStart\")\nTNT1 A 0 A_JumpIf(momx*momx+momy*momy>0,\"BackwardCeilingStart\")\nTNT1 A 0 A_GiveInventory(\"YoyoCutterDamageItem\")\nTNT1 A 0 A_ChangeVelocity(-72,0,-24,CVF_RELATIVE|CVF_REPLACE)\nYOYC B 1\nTNT1 A 0 A_CountDown\nTNT1 A 0 A_JumpIf(momz==0,\"ForwardFloorStart\")\nTNT1 A 0 A_JumpIf(momx*momx+momy*momy>0,\"BackwardCeilingStart\")\nTNT1 A 0 A_GiveInventory(\"YoyoCutterDamageItem\")\nTNT1 A 0 A_ChangeVelocity(-72,0,-24,CVF_RELATIVE|CVF_REPLACE)\nYOYC C 1\nTNT1 A 0 A_CountDown\nloop\nForwardCeiling:\nTNT1 A 0 A_JumpIf(momx*momx+momy*momy==0,\"DownFrontWallStart\")\nTNT1 A 0 A_JumpIf(momz>0,\"UpBackWallStart\")\nTNT1 A 0 A_GiveInventory(\"YoyoCutterDamageItem\")\nTNT1 A 0 A_ChangeVelocity(24,0,72,CVF_RELATIVE|CVF_REPLACE)\nYOYC B 1\nTNT1 A 0 A_CountDown\nTNT1 A 0 A_JumpIf(momx*momx+momy*momy==0,\"DownFrontWallStart\")\nTNT1 A 0 A_JumpIf(momz>0,\"UpBackWallStart\")\nTNT1 A 0 A_GiveInventory(\"YoyoCutterDamageItem\")\nTNT1 A 0 A_ChangeVelocity(24,0,72,CVF_RELATIVE|CVF_REPLACE)\nYOYC C 1\nTNT1 A 0 A_CountDown\nloop\nDownFrontWall:\nTNT1 A 0 A_JumpIf(momz==0,\"BackwardFloorStart\")\nTNT1 A 0 A_JumpIf(momx*momx+momy*momy>0,\"ForwardCeilingStart\")\nTNT1 A 0 A_GiveInventory(\"YoyoCutterDamageItem\")\nTNT1 A 0 A_ChangeVelocity(72,0,-24,CVF_RELATIVE|CVF_REPLACE)\nYOYC B 1\nTNT1 A 0 A_CountDown\nTNT1 A 0 A_JumpIf(momz==0,\"BackwardFloorStart\")\nTNT1 A 0 A_JumpIf(momx*momx+momy*momy>0,\"ForwardCeilingStart\")\nTNT1 A 0 A_GiveInventory(\"YoyoCutterDamageItem\")\nTNT1 A 0 A_ChangeVelocity(72,0,-24,CVF_RELATIVE|CVF_REPLACE)\nYOYC C 1\nTNT1 A 0 A_CountDown\nloop\nBackwardFloor:\nTNT1 A 0 A_JumpIf(momx*momx+momy*momy==0,\"UpBackWallStart\")\nTNT1 A 0 A_JumpIf(momz<0,\"DownFrontWallStart\")\nTNT1 A 0 A_GiveInventory(\"YoyoCutterDamageItem\")\nTNT1 A 0 A_ChangeVelocity(-24,0,-72,CVF_RELATIVE|CVF_REPLACE)\nYOYC B 1\nTNT1 A 0 A_CountDown\nTNT1 A 0 A_JumpIf(momx*momx+momy*momy==0,\"UpBackWallStart\")\nTNT1 A 0 A_JumpIf(momz<0,\"DownFrontWallStart\")\nTNT1 A 0 A_GiveInventory(\"YoyoCutterDamageItem\")\nTNT1 A 0 A_ChangeVelocity(-24,0,-72,CVF_RELATIVE|CVF_REPLACE)\nYOYC C 1\nTNT1 A 0 A_CountDown\nloop\nUpBackWall:\nTNT1 A 0 A_JumpIf(momz==0,\"ForwardCeilingStart\")\nTNT1 A 0 A_JumpIf(momx*momx+momy*momy>0,\"BackwardFloorStart\")\nTNT1 A 0 A_GiveInventory(\"YoyoCutterDamageItem\")\nTNT1 A 0 A_ChangeVelocity(-72,0,24,CVF_RELATIVE|CVF_REPLACE)\nYOYC B 1\nTNT1 A 0 A_CountDown\nTNT1 A 0 A_JumpIf(momz==0,\"ForwardCeilingStart\")\nTNT1 A 0 A_JumpIf(momx*momx+momy*momy>0,\"BackwardFloorStart\")\nTNT1 A 0 A_GiveInventory(\"YoyoCutterDamageItem\")\nTNT1 A 0 A_ChangeVelocity(-72,0,24,CVF_RELATIVE|CVF_REPLACE)\nYOYC C 1\nTNT1 A 0 A_CountDown\nloop\n\nDeath:\nTNT1 A 0 A_ChangeFlag(\"MISSILE\",1)\nTNT1 A 0 A_SpawnItemEx(\"YoyoCutterPause\")\nstop\n}\n}\n\nactor YoyoCutterPause : YoyoCutterBase\n{\n+NOINTERACTION\n+NOCLIP\nStates\n{\nSpawn:\nYOYC B 0\nSpawn2:\nTNT1 A 0 A_GiveInventory(\"YoyoCutterDamageItem2\")\nYOYC B 1\nTNT1 A 0 A_CountDown\nTNT1 A 0 A_GiveInventory(\"YoyoCutterDamageItem2\")\nYOYC C 1\nTNT1 A 0 A_CountDown\nloop\nDeath:\nTNT1 A 0 A_JumpIfCloser(60,\"Return\")\nTNT1 A 0 A_CustomMissile(\"YoyoCutterReturn1\",0,0,0,0)\nstop\nReturn:\nTNT1 A 0\nstop\n}\n}\n\nactor YoyoCutterReturn1 : YoyoCutterPause\n{\nspeed 12\nstates\n{\nSpawn:\nYOYC D 0\nTNT1 A 0 A_GiveInventory(\"YoyoCutterDamageItem2\")\nYOYC D 1\nTNT1 A 0 A_JumpIfCloser(60,\"Return\")\nTNT1 A 0 A_CustomMissile(\"YoyoCutterReturn2\",0,0,0,0)\nstop\nDeath:\nTNT1 A 0\nstop\n}\n}\n\nactor YoyoCutterReturn2 : YoyoCutterReturn1\n{\nstates\n{\nSpawn:\nYOYC E 0\nTNT1 A 0 A_GiveInventory(\"YoyoCutterDamageItem2\")\nYOYC E 1\nTNT1 A 0 A_JumpIfCloser(60,\"Return\")\nTNT1 A 0 A_CustomMissile(\"YoyoCutterReturn1\",0,0,0,0)\nstop\n}\n}\n\nactor YoYoCutterAmmo : Ammo\n{\ninventory.amount 1\ninventory.maxamount 28\n+INVENTORY.IGNORESKILL\n}"
      },
      {
        "source": "pk3",
        "name": "actors/inventory/mmu/YokuAttack.txt",
        "contents": "//To-do:\n//extra sprites?\n//fire missile transfer translation\n\nactor YokuAttackWep : 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\"\ninventory.icon \"YOKUAI\"\nStates\n{\nSpawn:\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\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 (10)\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(996,\"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_JumpIfHealthLower(981,\"PainfulDeath20\")\nYKUA F 0 A_JumpIfHealthLower(982,\"PainfulDeath19\")\nYKUA F 0 A_JumpIfHealthLower(983,\"PainfulDeath18\")\nYKUA F 0 A_JumpIfHealthLower(984,\"PainfulDeath17\")\nYKUA F 0 A_JumpIfHealthLower(985,\"PainfulDeath16\")\nYKUA F 0 A_JumpIfHealthLower(986,\"PainfulDeath15\")\nYKUA F 0 A_JumpIfHealthLower(987,\"PainfulDeath14\")\nYKUA F 0 A_JumpIfHealthLower(988,\"PainfulDeath13\")\nYKUA F 0 A_JumpIfHealthLower(989,\"PainfulDeath12\")\nYKUA F 0 A_JumpIfHealthLower(990,\"PainfulDeath11\")\nYKUA F 0 A_JumpIfHealthLower(991,\"PainfulDeath10\")\nYKUA F 0 A_JumpIfHealthLower(992,\"PainfulDeath9\")\nYKUA F 0 A_JumpIfHealthLower(993,\"PainfulDeath8\")\nYKUA F 0 A_JumpIfHealthLower(994,\"PainfulDeath7\")\nYKUA F 0 A_JumpIfHealthLower(995,\"PainfulDeath6\")\nYKUA E 0 A_GiveToTarget(\"YokuSelfDamage5\",1)\ngoto PainfulDeathAnim\nPainfulDeath20: YKUA E 0 A_GiveToTarget(\"YokuSelfDamage20\",1) goto PainfulDeathAnim\nPainfulDeath19: YKUA E 0 A_GiveToTarget(\"YokuSelfDamage19\",1) goto PainfulDeathAnim\nPainfulDeath18: YKUA E 0 A_GiveToTarget(\"YokuSelfDamage18\",1) goto PainfulDeathAnim\nPainfulDeath17: YKUA E 0 A_GiveToTarget(\"YokuSelfDamage17\",1) goto PainfulDeathAnim\nPainfulDeath16: YKUA E 0 A_GiveToTarget(\"YokuSelfDamage16\",1) goto PainfulDeathAnim\nPainfulDeath15: YKUA E 0 A_GiveToTarget(\"YokuSelfDamage15\",1) goto PainfulDeathAnim\nPainfulDeath14: YKUA E 0 A_GiveToTarget(\"YokuSelfDamage14\",1) goto PainfulDeathAnim\nPainfulDeath13: YKUA E 0 A_GiveToTarget(\"YokuSelfDamage13\",1) goto PainfulDeathAnim\nPainfulDeath12: YKUA E 0 A_GiveToTarget(\"YokuSelfDamage12\",1) goto PainfulDeathAnim\nPainfulDeath11: YKUA E 0 A_GiveToTarget(\"YokuSelfDamage11\",1) goto PainfulDeathAnim\nPainfulDeath10: YKUA E 0 A_GiveToTarget(\"YokuSelfDamage10\",1) goto PainfulDeathAnim\nPainfulDeath9: YKUA E 0 A_GiveToTarget(\"YokuSelfDamage9\",1) goto PainfulDeathAnim\nPainfulDeath8: YKUA E 0 A_GiveToTarget(\"YokuSelfDamage8\",1) goto PainfulDeathAnim\nPainfulDeath7: YKUA E 0 A_GiveToTarget(\"YokuSelfDamage7\",1) goto PainfulDeathAnim\nPainfulDeath6: YKUA E 0 A_GiveToTarget(\"YokuSelfDamage6\",1) goto PainfulDeathAnim\n}\n}\n\nactor YokuSelfDamage20 : CustomInventory\n{\nstates\n{\npickup:\nTNT1 A 0 SetPlayerProperty(0, 1, 16)\nTNT1 A 0 DamageThing(20)\nTNT1 A 0 SetPlayerProperty(0, 0, 16)\nstop\n}\n}\nactor YokuSelfDamage19 : CustomInventory\n{\nstates\n{\npickup:\nTNT1 A 0 SetPlayerProperty(0, 1, 16)\nTNT1 A 0 DamageThing(19)\nTNT1 A 0 SetPlayerProperty(0, 0, 16)\nstop\n}\n}\nactor YokuSelfDamage18 : CustomInventory\n{\nstates\n{\npickup:\nTNT1 A 0 SetPlayerProperty(0, 1, 16)\nTNT1 A 0 DamageThing(18)\nTNT1 A 0 SetPlayerProperty(0, 0, 16)\nstop\n}\n}\nactor YokuSelfDamage17 : CustomInventory\n{\nstates\n{\npickup:\nTNT1 A 0 SetPlayerProperty(0, 1, 16)\nTNT1 A 0 DamageThing(17)\nTNT1 A 0 SetPlayerProperty(0, 0, 16)\nstop\n}\n}\nactor YokuSelfDamage16 : CustomInventory\n{\nstates\n{\npickup:\nTNT1 A 0 SetPlayerProperty(0, 1, 16)\nTNT1 A 0 DamageThing(16)\nTNT1 A 0 SetPlayerProperty(0, 0, 16)\nstop\n}\n}\nactor YokuSelfDamage15 : CustomInventory\n{\nstates\n{\npickup:\nTNT1 A 0 SetPlayerProperty(0, 1, 16)\nTNT1 A 0 DamageThing(15)\nTNT1 A 0 SetPlayerProperty(0, 0, 16)\nstop\n}\n}\nactor YokuSelfDamage14 : CustomInventory\n{\nstates\n{\npickup:\nTNT1 A 0 SetPlayerProperty(0, 1, 16)\nTNT1 A 0 DamageThing(14)\nTNT1 A 0 SetPlayerProperty(0, 0, 16)\nstop\n}\n}\nactor YokuSelfDamage13 : CustomInventory\n{\nstates\n{\npickup:\nTNT1 A 0 SetPlayerProperty(0, 1, 16)\nTNT1 A 0 DamageThing(13)\nTNT1 A 0 SetPlayerProperty(0, 0, 16)\nstop\n}\n}\nactor YokuSelfDamage12 : CustomInventory\n{\nstates\n{\npickup:\nTNT1 A 0 SetPlayerProperty(0, 1, 16)\nTNT1 A 0 DamageThing(12)\nTNT1 A 0 SetPlayerProperty(0, 0, 16)\nstop\n}\n}\nactor YokuSelfDamage11 : CustomInventory\n{\nstates\n{\npickup:\nTNT1 A 0 SetPlayerProperty(0, 1, 16)\nTNT1 A 0 DamageThing(11)\nTNT1 A 0 SetPlayerProperty(0, 0, 16)\nstop\n}\n}\nactor YokuSelfDamage10 : CustomInventory\n{\nstates\n{\npickup:\nTNT1 A 0 SetPlayerProperty(0, 1, 16)\nTNT1 A 0 DamageThing(10)\nTNT1 A 0 SetPlayerProperty(0, 0, 16)\nstop\n}\n}\nactor YokuSelfDamage9 : CustomInventory\n{\nstates\n{\npickup:\nTNT1 A 0 SetPlayerProperty(0, 1, 16)\nTNT1 A 0 DamageThing(9)\nTNT1 A 0 SetPlayerProperty(0, 0, 16)\nstop\n}\n}\nactor YokuSelfDamage8 : CustomInventory\n{\nstates\n{\npickup:\nTNT1 A 0 SetPlayerProperty(0, 1, 16)\nTNT1 A 0 DamageThing(8)\nTNT1 A 0 SetPlayerProperty(0, 0, 16)\nstop\n}\n}\nactor YokuSelfDamage7 : CustomInventory\n{\nstates\n{\npickup:\nTNT1 A 0 SetPlayerProperty(0, 1, 16)\nTNT1 A 0 DamageThing(7)\nTNT1 A 0 SetPlayerProperty(0, 0, 16)\nstop\n}\n}\nactor YokuSelfDamage6 : CustomInventory\n{\nstates\n{\npickup:\nTNT1 A 0 SetPlayerProperty(0, 1, 16)\nTNT1 A 0 DamageThing(6)\nTNT1 A 0 SetPlayerProperty(0, 0, 16)\nstop\n}\n}\nactor YokuSelfDamage5 : CustomInventory\n{\nstates\n{\npickup:\nTNT1 A 0 SetPlayerProperty(0, 1, 16)\nTNT1 A 0 DamageThing(5)\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 : Ammo\n{\ninventory.amount 1\ninventory.maxamount 28\n+INVENTORY.IGNORESKILL\n}"
      },
      {
        "source": "pk3",
        "name": "actors/inventory/mmu/YokuAttackHazard.txt",
        "contents": "//To-do: verify this\n\nactor YokuAttackTargetCheck2 : YokuAttackTargetCheck\n{\nSpecies \"YokuAttackBase\"\nstates\n{\nPain.BigEye:\nPain.FireTrap:\nPain.FirePillar:\n//Pain.Disintegrate:\nPain.OilCanister:\nPain.Fire: //Stage Oil Flame\nPain.MetalPress:\nPain.Beam:\nPain.Spiney:\nPain.PressBall:\nPain.KyorownBullet:\nPain.TurboRoader:\nPain.FlingDamage:\n//Pain.Melee:\nPain.CountBomb:\nPain.IceBlock:\nPain.BurnWave:\n//Pain.PirateMine:\nPain.FireSnakey:\n//Magma Beam uses Beam\nPain.ChangekeyDragon:\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 : 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\"\ninventory.icon \"WATECI\"\nStates\n{\nSpawn:\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 (5)\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 : Ammo\n{\ninventory.amount 1\ninventory.maxamount 112\n+INVENTORY.IGNORESKILL\n}"
      },
      {
        "source": "pk3",
        "name": "actors/inventory/mmu/NailShield.txt",
        "contents": "actor NailShieldWep : 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\"\ninventory.icon \"NAILSI\"\nStates\n{\nSpawn:\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\",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 (9)\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 (11)\n//speed 30\nstates\n{\nSpawn:\nNAIS E 0\nSpawn2:\nNAIS E 1\nloop\n}\n}\n\nactor FallingNail : NailShieldShot1\n{\nDamage (7)\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 : Ammo\n{\ninventory.amount 1\ninventory.maxamount 56\n+INVENTORY.IGNORESKILL\n}"
      },
      {
        "source": "pk3",
        "name": "actors/inventory/mmu/JetMissile.txt",
        "contents": "actor JetMissileWep : 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\"\ninventory.icon \"JETMII\"\nStates\n{\nSpawn:\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:\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 (16)\nspeed 60\ndamagetype \"JetMissile\"\nObituary \"$OB_JETMISSILE\"\nreactiontime 200\nStates\n{\nSpawn:\nJETM A 0\nSpawn2:\nJETM AB 1 A_CountDown\nloop\nDeath:\nDeath2:\nTNT1 A 0\nstop\n}\n}\n\nactor JetMissileH : JetMissile\n{\nStates\n{\nSpawn:\nJETM A 0\nJETM A 0 A_GiveInventory(\"JetTargetingTime\",1)\nJETM A 0 ACS_NamedExecuteAlways(\"JET_FIRE\",0)\ngoto Spawn2\nDeath:\nTNT1 A 0 A_TakeInventory(\"JetTargetingTime\",1)\ngoto Death2\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\")\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\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\n{\nStates\n{\nSpawn:\nJETM D 0\nJETM D 1\nstop\n}\n}\n\nactor JetCrosshairDull : JetCrosshair\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\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 : Ammo\n{\ninventory.amount 1\ninventory.maxamount 28\n+INVENTORY.IGNORESKILL\n}"
      },
      {
        "source": "pk3",
        "name": "actors/inventory/mmu/GlueShot.txt",
        "contents": "actor GlueShotWep : 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\"\ninventory.icon \"GLUESI\"\nStates\n{\nSpawn:\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\",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\n{\nPROJECTILE\n-NOGRAVITY\n+THRUSPECIES\nspecies \"GlueShot\"\nObituary \"$OB_GLUESHOT\"\nRadius 16\nHeight 32\nscale 2.5\ndamage (15)\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 ACS_NamedExecuteWithResult(\"GIVE_ENEMY_GLUE\",75,0)\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 ACS_NamedExecuteWithResult(\"GIVE_ENEMY_GLUE\",75,0)\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 GlueBlock : ConcreteBlock\n{\ndamagefactor \"ConcreteShot\", 1.0\n//damagefactor \"GlueShot\", 0.0\nspecies \"GlueShot\"\n+NOTARGETSWITCH\nHealth 15\nStates\n{\nSpawn:\nGLUS H 0\n//GLUS H 0 A_ClearTarget\nGLUS H 1 ACS_NamedExecuteWithResult(\"GIVE_ENEMY_GLUE\",75,0)\nGLUS H 0 A_ChangeFlag(TOUCHY, false)\nGLUS H 0 A_ChangeFlag(MISSILE, false)\nGLUS H 0 A_ChangeFlag(SOLID, true)\nGLUS H 1 ACS_NamedExecuteWithResult(\"GIVE_ENEMY_GLUE\",75,0)\nGLUS IIIIIIIIIIIIIIIIIIIIIIIIIIIIII 1 ACS_NamedExecuteWithResult(\"GIVE_ENEMY_GLUE\",75,0)\nGLUS IIIIIIIIII 1 ACS_NamedExecuteWithResult(\"GIVE_ENEMY_GLUE\",75,0)\nGLUS KKIIKKIIKKIIKKIIKKIIKKIIKKIIKK 1 ACS_NamedExecuteWithResult(\"GIVE_ENEMY_GLUE\",75,0)\nGLUS IIKKIIKKII 1 ACS_NamedExecuteWithResult(\"GIVE_ENEMY_GLUE\",75,0)\nstop\nDeath:\nGLUS H 0 A_NoBlocking\nGLUS HGF 2\nstop\n}\n}\n\nactor GlueFX\n{\n+NOINTERACTION\n+NOGRAVITY\n+CLIENTSIDEONLY\n-SOLID\n+NOTIMEFREEZE\n+DONTSPLASH\nscale 2.5\nheight 0\nradius 0\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\nTNT1 A 0 A_SpawnItemEx(\"GlueFX\", 0, 0, 0, momx, momy, momz, 0, SXF_ABSOLUTEMOMENTUM, 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 : Ammo\n{\ninventory.amount 1\ninventory.maxamount 28\n+INVENTORY.IGNORESKILL\n}"
      },
      {
        "source": "pk3",
        "name": "actors/inventory/mmu/TankArsenel.txt",
        "contents": "actor TankArsenalWep : 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\"\ninventory.icon \"TANKAI\"\nStates\n{\nSpawn:\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)\n//TNAR E 0 A_FireCustomMissile(\"TankBulletSyncTest\",0,0,8,0)\n//TNAR E 0 A_FireCustomMissile(\"TankMortarSyncTest\",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-NOGRAVITY\n//gravity 0.8\ngravity 1.0\nstates\n{\nSpawn:\nTNAR B 0\nTNAR B 0 A_JumpIf(momz<0,\"LaunchMore\")\nTNAR B 0 A_ChangeVelocity(0, 0, 10, 0)\ngoto Spawn2\nLaunchMore:\nTNAR B 0 A_ChangeVelocity(0, 0, 10-momz*0.34, 0)\ngoto Spawn2\nSpawn2:\n//TNAR B 0 A_Log(mortar)\n//TNAR B 0 A_LogInt(momz)\n//Spawn3:\nTNAR B 1 A_CheckFloor(\"Floor\")\nloop\nFloor:\nTNT1 A 0 A_ChangeFlag(\"NOINTERACTION\", 1)\nDeath:\nTNT1 A 0 A_ChangeFlag(\"NOGRAVITY\", 1)\nTNT1 A 0 A_Stop\nTNT1 A 0 A_PlaySoundEx(\"weapon/TankExplode\", \"Weapon\")\nTNT1 A 0 A_Explode(20, 90, 0)\nNAPA EFGHIJKLMNOPQRS 2\nstop\n}\n}\n\nactor TankShell : TankProjectile\n{\nRadius 6\nHeight 7\ndamage (18)\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 (15)\nSpeed 30\n+NOEXPLODEFLOOR\nstates\n{\nSpawn:\nTNAR C 0\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\")\ngoto Spawn2\nGoDown:\nTNAR C 0 A_JumpIf(momx*momx+momy*momy<100,\"GoDownForward\")\nTNAR C 0 A_ChangeVelocity(momx, momy, -10, CVF_REPLACE)\ngoto Spawn2\nGoForward:\nTNAR C 0 A_ChangeVelocity(10, 0, momz, CVF_RELATIVE|CVF_REPLACE)\ngoto Spawn2\nGoDownForward:\nTNAR C 0 A_ChangeVelocity(10, 0, -10, CVF_RELATIVE|CVF_REPLACE)\ngoto Spawn2\nSpawn2:\n//TNAR B 0 A_Log(bullet)\n//TNAR B 0 A_LogInt(momz)\nTNAR C 0 A_JumpIf(momz<0,\"DownSync\")\nSpawn3:\nTNAR C 1\nloop\nDownSync:\nTNAR C 1 A_JumpIf(momz>=0,\"StopSync\")\nloop\nStopSync:\nTNAR C 0 ThrustThingZ (0, 0, 0, 1)\ngoto Spawn3\n}\n}\n\nactor TankMortarSync : TankMortar\n{\ngravity 0.0\nstates\n{\nSpawn:\nTNAR B 0\nTNAR B 0 A_JumpIf(momz<0,\"LaunchMore\")\nTNAR B 0 A_ChangeVelocity(0, 0, 10, 0)\ngoto Spawn2\nLaunchMore:\nTNAR B 0 A_ChangeVelocity(0, 0, 10-momz*0.34, 0)\ngoto Spawn2\nSpawn2:\n//TNAR B 0 A_SpawnItemEx(\"TankMortar2\", 0, 0, 0, momx, momy, momz, 0, SXF_ABSOLUTEPOSITION|SXF_ABSOLUTEMOMENTUM, 0)\nTNAR B 0 A_SpawnItemEx(\"TankMortar2\", -momx, -momy, -momz, momx, momy, momz, 0, SXF_ABSOLUTEPOSITION|SXF_ABSOLUTEMOMENTUM, 0)\nstop\n}\n}\n\nactor TankBulletSync : TankBullet\n{\nstates\n{\nSpawn:\nTNAR C 0\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\")\ngoto Spawn2\nGoDown:\nTNAR C 0 A_JumpIf(momx*momx+momy*momy<100,\"GoDownForward\")\nTNAR C 0 A_ChangeVelocity(momx, momy, -10, CVF_REPLACE)\ngoto Spawn2\nGoForward:\nTNAR C 0 A_ChangeVelocity(10, 0, momz, CVF_RELATIVE|CVF_REPLACE)\ngoto Spawn2\nGoDownForward:\nTNAR C 0 A_ChangeVelocity(10, 0, -10, CVF_RELATIVE|CVF_REPLACE)\ngoto Spawn2\nSpawn2:\n//TNAR C 0 A_SpawnItemEx(\"TankBullet2\", 0, 0, 0, momx, momy, momz, 0, SXF_ABSOLUTEPOSITION|SXF_ABSOLUTEMOMENTUM, 0)\nTNAR C 0 A_SpawnItemEx(\"TankBullet2\", -momx, -momy, -momz, momx, momy, momz, 0, SXF_ABSOLUTEPOSITION|SXF_ABSOLUTEMOMENTUM, 0)\nstop\n}\n}\n\nactor TankMortar2 : TankMortar\n{\n+NOCLIP\nstates\n{\nSpawn:\nTNAR B 0\nTNAR B 0 A_ChangeFlag(\"NOCLIP\",0)\ngoto Spawn2\n}\n}\n\nactor TankBullet2 : TankBullet\n{\n+NOCLIP\nstates\n{\nSpawn:\nTNAR C 0\nTNAR C 0 A_ChangeFlag(\"NOCLIP\",0)\ngoto Spawn2\n}\n}\n\nactor TankMortarSyncTest : TankMortar\n{\nTranslation \"0:255=176:176\"\n}\n\nactor TankBulletSyncTest : TankBullet\n{\nTranslation \"0:255=176:176\"\n}\n\nactor TankArsenalAmmo : Ammo\n{\ninventory.amount 1\ninventory.maxamount 30\n+INVENTORY.IGNORESKILL\n}"
      },
      {
        "source": "pk3",
        "name": "actors/inventory/mmu/RainbowBeam.txt",
        "contents": "actor RainbowBeamWep : 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\"\ninventory.icon \"RAINBI\"\nStates\n{\nSpawn:\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 (22)\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\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(4, 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 : Ammo\n{\ninventory.amount 1\ninventory.maxamount 28\n+INVENTORY.IGNORESKILL\n}"
      },
      {
        "source": "pk3",
        "name": "actors/inventory/mmu/CometDash.txt",
        "contents": "actor CometDashWep : 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\"\ninventory.icon \"COMDAI\"\nStates\n{\nSpawn:\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\",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 (15)\ndamage (16)\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 : 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}"
      },
      {
        "source": "pk3",
        "name": "actors/inventory/mmu/mmutemp.txt",
        "contents": "actor NailShieldWep : Weapon {}\nactor TankArsenalWep : Weapon {}\nactor JetMissileWep : Weapon {}\nactor GlueShotWep : Weapon {}\nactor NitroBlastWep : Weapon {}\nactor RainbowBeamWep : Weapon {}\nactor YoyoCutterWep : Weapon {}\nactor CometDashWep : Weapon {}\nactor YokuAttackWep : Weapon {}\nactor WaterCannonWep : Weapon {}"
      },
      {
        "source": "pk3",
        "name": "actors/player/megamanU.txt",
        "contents": "actor MegamanPainU : MegamanPain299\n{\n/*player.startitem \"MegaBuster\"\nplayer.startitem \"BusterAmmo\", 3\nplayer.startitem \"UWeps\"*/\nStates\n{\nPain.WaterCannon:\nPain.YokuAttack:\nPLAY H 0\ngoto Pain.QuickBoomerang\nPain.RainbowBeamSpread:\n//PLAY H 0 A_LogInt(health)\nPLAY H 0\ngoto Pain.FlashBomb\nPain.CometDash:\n//PLAY H 0 A_LogInt(health)\nPLAY H 0 A_GiveInventory(\"CometDashProtectGive\",1)\ngoto Pain\n}\n}"
      },
      {
        "source": "pk3",
        "name": "actors/player/megamanU-flags.txt",
        "contents": "//Blank"
      }
    ]
  },
  "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.