endlessattack-mmsp-v1d.pk3

PK3 3.2 MiB 0 map(s)

Counts

endoom0
graphics0
lumps938
maps17
palettes0

Totals (across maps)

Things0
Linedefs0
Sectors0
Monsters0
Items0
Raw model (for completeness)
{
  "meta": {
    "id": "0c7ba978-50b4-490a-a049-31924764f327",
    "sha1": "1cc65dd0bf69bd2bbc5cc11055c580825dbd4fb5",
    "sha256": "61f65cf3db769559436f9b046df62dfc975c5068053916ae03a6919bfc67aead",
    "filenames": [
      "endlessattack-mmsp-v1d.pk3"
    ],
    "additional": {
      "engines": [],
      "iwad": [],
      "filename": null,
      "added": "2021/05/29 23:50:16",
      "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/05/29 23:50:16",
    "file": {
      "type": "PK3",
      "size": 3402654,
      "url": "https://wadarchive2.nyc3.digitaloceanspaces.com/1cc65dd0bf69bd2bbc5cc11055c580825dbd4fb5/1cc65dd0bf69bd2bbc5cc11055c580825dbd4fb5.pk3.gz",
      "corrupt": false
    },
    "content": {
      "maps": [
        "CUTBOSS",
        "EAHUB",
        "HEABOSS",
        "MMSPCUT1",
        "MMSPCUT2",
        "MMSPCUT3",
        "MMSPHEA1",
        "MMSPHEA2",
        "MMSPHEA3",
        "MMSPNEE1",
        "MMSPNEE2",
        "MMSPNEE3",
        "MMSPTOA1",
        "MMSPTOA2",
        "MMSPTOA3",
        "NEEBOSS",
        "TOABOSS"
      ],
      "counts": {
        "endoom": 0,
        "graphics": 0,
        "lumps": 938,
        "maps": 17,
        "palettes": 0
      }
    },
    "text_files": [
      {
        "source": "pk3",
        "name": "actors/bosses/MMSP/cutman.txt",
        "contents": "actor CutmanBoss : BasicBoss\n{\ntranslation \"192:192=4:4\", \"198:198=41:41\"\nObituary \"%o was cut to pieces by \\caCut Man\\c-.\"\n\nspeed 8\nStates\n{\nIntro:\nCUTM J 0\nCUTM J 0 A_TakeInventory(\"BossIntroFlag\", 1)\nCUTM J 0 A_ChangeFlag(\"CANTSEEK\", true)\nCUTM J 0 A_ChangeFlag(\"INVULNERABLE\", true)\nCUTM J 1 A_JumpIf(floorz-z==0,\"Intro2\")\nwait\nIntro2:\nCUTM AI 5\nloop\n\nSpawn:\nWODM A 0\nWODM A 0 A_ChangeFlag(\"CANTSEEK\", false)\nWODM A 0 A_ChangeFlag(\"INVULNERABLE\", false)\nWODM A 0 A_JumpIfInventory(\"HealthScaled\",1,\"Spawn2\")\nWODM K 0 ACS_NamedExecuteAlways(\"EA_BossManage\", 0)\nWODM A 0 A_JumpIfInventory(\"BossIntroFlag\", 1, \"Intro\")\nSpawn2:\nCUTM A 0 A_JumpIfInventory(\"SPBossFlag\",1,\"Spawn3\")\nTakeFlags:\nCUTM B 0 A_TakeInventory(\"SPBossFlag\",999)\nCUTM AI 5 A_LookEx(LOF_NOSOUNDCHECK,0,0,0,360,\"Found\")\nloop\nFound:\nCUTM AIAIAIAIAIAIAIAI 5\nGoto See\nSee:\nCUTM B 0 A_TakeInventory(\"SPBossFlag\",999)\nCUTM B 0 A_JumpIfInventory(\"BossSuperAvailable50%\",1,\"SuperChance\")\nCUTM BBBBCCCC 1 A_Chase\nCUT2 B 0 A_Jump(30,\"Leap\")\nCUTM DDDDEEEE 1 A_Chase\nloop\nMelee:\nCUTM B 5 A_CustomMeleeAttack(20*ACS_NamedExecuteWithResult(\"sp_cbmHP\"))\nGoto See\nLeap:\nCUTM B 0 A_TakeInventory(\"SPBossFlag\",999)\nCUT2 B 0 A_Recoil(-10)\nCUT2 B 0 A_FaceTarget\nCUT2 J 10 ThrustThingZ(0,90,0,0)\nGoto Leaping\nLeaping:\nCUTM J 2 A_Jump(25,\"Missile2\")\nCUTM J 0 A_JumpIf(floorz-z==0,\"See\")\nloop\nMissile:\nCUTM B 0 A_TakeInventory(\"SPBossFlag\",999)\nCUTM F 0 A_GiveInventory(\"SPBossFlag\",1)\nCUTM F 8 A_FaceTarget\nCUTM F 0 A_FaceTarget\nCUTM G 8 A_CustomMissile(\"RollingCutterSP\", 40,0,0,2)\nGoto See2\nMissile2:\nCUTM B 0 A_TakeInventory(\"SPBossFlag\",999)\nCUTM F 0 A_FaceTarget\nCUTM G 4 A_CustomMissile(\"RollingCutterSP\", 40,0,0,2)\nGoto Leaping2\n\nSpawn3:\nCUT2 AI 5 A_LookEx(LOF_NOSOUNDCHECK,0,0,0,360,\"See2\")\nCUT2 A 0 A_JumpIfInventory(\"SPBossFlag\",999,\"TakeFlags\")\nloop\nSee2:\nCUT2 B 0 A_GiveInventory(\"SPBossFlag\",5)\nCUT2 B 0 A_JumpIfInventory(\"SPBossFlag\",300,\"See\")\nCUT2 BBBB 1 A_Chase(\"Melee2\",\"\")\nCUT2 B 0 A_Jump(80,\"Leap2\")\nCUT2 B 0 A_JumpIfInventory(\"SPBossFlag\",300,\"See\")\nCUT2 CCCC 1 A_Chase(\"Melee2\",\"\")\nCUT2 B 0 A_JumpIfInventory(\"SPBossFlag\",300,\"See\")\nCUT2 DDDD 1 A_Chase(\"Melee2\",\"\")\nCUT2 B 0 A_JumpIfInventory(\"SPBossFlag\",300,\"See\")\nCUT2 EEEE 1 A_Chase(\"Melee2\",\"\")\nloop\nMelee2:\nCUT2 B 5 A_CustomMeleeAttack(20*ACS_NamedExecuteWithResult(\"sp_cbmHP\"))\nGoto See2\nLeap2:\nCUT2 B 0 A_Recoil(-10)\nCUT2 B 0 A_FaceTarget\nCUT2 J 10 ThrustThingZ(0,90,0,0)\nGoto Leaping2\nLeaping2:\nCUTM J 2 A_JumpIf(floorz-z==0,\"See2\")\nCUT2 J 0 A_JumpIfInventory(\"SPBossFlag\",300,\"Leaping\")\nloop\n\nSuperChance:\nCUTM B 0 A_Jump(55,\"Super\")\nGoto See+2\nSuper:\nCUTM A 0 A_PlaySoundEx(\"enemy/bosssuper\",\"Voice\",0,1)\nCUTM A 0 A_ChangeFlag(\"INVULNERABLE\",1)\nCUTM G 0 A_FaceTarget\nCUTM A 5 Thing_SetTranslation(0,62)\nCUTM I 5 Thing_SetTranslation(0,0)\nCUTM A 5 Thing_SetTranslation(0,62)\nCUTM I 5 Thing_SetTranslation(0,0)\nCUTM A 5 Thing_SetTranslation(0,62)\nCUTM I 5 Thing_SetTranslation(0,0)\nCUTM A 5 Thing_SetTranslation(0,62)\nCUTM I 5 Thing_SetTranslation(0,0)\nCUTM F 12 A_FaceTarget\nCUTM G 0 A_FaceTarget\nCUTM B 0 A_TakeInventory(\"SPBossFlag\",999)\nCUTM G 35 A_CustomMissile(\"GiantRollingCutter\",0,0,0,2)\nCUTM A 0 A_ChangeFlag(\"INVULNERABLE\",0)\nGoto See3\nSee3:\nCUT2 B 0 A_GiveInventory(\"SPBossFlag\",5)\nCUT2 B 0 A_JumpIfInventory(\"SPBossFlag\",300,\"See\")\nCUT2 BBBB 1 A_Chase(\"Melee3\",\"\")\nCUT2 B 0 //A_Jump(80,\"Leap2\")\nCUT2 B 0 A_JumpIfInventory(\"SPBossFlag\",300,\"See\")\nCUT2 CCCC 1 A_Chase(\"Melee3\",\"\")\nCUT2 B 0 A_JumpIfInventory(\"SPBossFlag\",300,\"See\")\nCUT2 DDDD 1 A_Chase(\"Melee3\",\"\")\nCUT2 B 0 A_JumpIfInventory(\"SPBossFlag\",300,\"See\")\nCUT2 EEEE 1 A_Chase(\"Melee3\",\"\")\nloop\nMelee3:\nCUT2 B 5 A_CustomMeleeAttack(20*ACS_NamedExecuteWithResult(\"sp_cbmHP\"))\nGoto See3\n}\n}\n\nactor GiantRollingCutter\n{\n+THRUGHOST\nPROJECTILE\nradius 16\nheight 16\nDamage (0)\nscale 2.5\n+RIPPER\nSpeed 32\ndamagetype \"Misc\"\nStates\n{\nSpawn:\nRCUT E 0\nRCUT E 0 Thing_ChangeTID(0,200)\nRCUT E 0 A_PlaySoundEX(\"enemy/giantcutter\",\"Voice\")\nRCUT E 0 A_Explode(70*ACS_NamedExecuteWithResult(\"sp_cbmHP\"),64,0)\nRCUT EF 3 A_SpawnItemEx(\"GiantCutterFX\",-32,random(-16,16),10,random(-5,-10),random(-10,10),random(5,10),0)\nRCUT E 0 A_Explode(70*ACS_NamedExecuteWithResult(\"sp_cbmHP\"),64,0)\nRCUT EF 3 A_SpawnItemEx(\"GiantCutterFX\",-32,random(-16,16),10,random(-5,-10),random(-10,10),random(5,10),0)\nloop\nDeath:\nRCUT E 0 Thing_ChangeTID(0,200)\nRCUT E 0 A_PlaySoundEX(\"enemy/giantcutter\",\"Voice\")\nRCUT E 0 A_Explode(20*ACS_NamedExecuteWithResult(\"sp_cbmHP\"),64,0)\nRCUT EF 3 A_SpawnItemEx(\"GiantCutterFX\",-32,random(-16,16),10,random(-5,-10),random(-10,10),random(5,10),0)\nRCUT E 0 A_Explode(20*ACS_NamedExecuteWithResult(\"sp_cbmHP\"),64,0)\nRCUT EF 3 A_SpawnItemEx(\"GiantCutterFX\",-32,random(-16,16),10,random(-5,-10),random(-10,10),random(5,10),0)\nRCUT E 0 A_GiveInventory(\"SPBossFlag\",1)\nRCUT E 0 A_JumpIfInventory(\"SPBossFlag\",6,\"Return\")\nloop\nReturn:\nRCUT E 0 A_ChangeFlag(\"NOCLIP\",1)\nRCUT E 0 A_ChangeFlag(\"NOINTERACTION\",1)\nGoto ReturnLoop\nReturnLoop:\nRCUT E 0 A_FaceTarget\nRCUT E 0 A_ChangeVelocity(15,0,0,CVF_REPLACE|CVF_RELATIVE)\nRCUT E 0 A_PlaySoundEX(\"enemy/giantcutter\",\"Voice\")\nRCUT E 0 A_JumpIfCloser(128,\"End\")\nRCUT E 0 A_Explode(70*ACS_NamedExecuteWithResult(\"sp_cbmHP\"),64,0)\nRCUT EF 3 A_SpawnItemEx(\"GiantCutterFX\",-32,random(-16,16),10,random(-5,-10),random(-10,10),random(5,10),0)\nRCUT E 0 A_ChangeVelocity(15,0,0,CVF_REPLACE|CVF_RELATIVE)\nRCUT E 0 A_FaceTarget\nRCUT E 0 A_JumpIfCloser(64,\"End\")\nRCUT E 0 A_Explode(70*ACS_NamedExecuteWithResult(\"sp_cbmHP\"),64,0)\nRCUT EF 3 A_SpawnItemEx(\"GiantCutterFX\",-32,random(-16,16),10,random(-5,-10),random(-10,10),random(5,10),0)\nloop\nEnd:\nCUTM A 0 A_PlaySoundEx(\"weapon/adapterreturn\",\"Voice\")\nRCUT E 0 A_GiveToTarget(\"SPBossFlag\",999)\nstop\n}\n}\n\nactor GiantCutterFX\n{\n+MISSILE\n-SOLID\n+RIPPER\ndamage 0\nheight 6\nradius 6\nscale 2.5\nStates\n{\nSpawn:\nRCUT G -1\nstop\n}\n}\n\nactor RollingCutterSP// : RollingCutter\n{\nPROJECTILE\nRadius 8\nHeight 8\nscale 2.5\ndamage (0)\n+DONTSPLASH\n+DOOMBOUNCE\n+THRUGHOST\n+RIPPER\n+DONTBLAST\n+NOTARGETSWITCH\n+SKYEXPLODE\nmeleerange 12\nreactiontime 48\n//+FLOAT\ndamagetype \"RollingCutter\"\nspeed 24\nFloatSpeed 16\nbouncefactor 1.0\nwallbouncefactor 1.0\nStates\n{\nSpawn:\nRCUT A 0\nRCUT A 0 A_PlaySound(\"weapon/rollingcutter\")\nRCUT A 0 //A_JumpIfInTargetInventory(\"SPBossFlag\",999,\"Death\")\nRCUT AAAA 1 A_SpawnItemEx(\"RollingCutterDamager2\",0,0,0,2,0,0)\nRCUT BBBB 1 A_SpawnItemEx(\"RollingCutterDamager2\",0,0,0,2,0,0)\nRCUT CCCC 1 A_SpawnItemEx(\"RollingCutterDamager2\",0,0,0,2,0,0)\nRCUT DDDD 1 A_SpawnItemEx(\"RollingCutterDamager2\",0,0,0,2,0,0)\nRCUT A 0 A_PlaySound(\"weapon/rollingcutter\")\nRCUT A 0 //A_JumpIfInTargetInventory(\"SPBossFlag\",999,\"Death\")\nRCUT AAAA 1 A_SpawnItemEx(\"RollingCutterDamager2\",0,0,0,2,0,0)\nRCUT BBBB 1 A_SpawnItemEx(\"RollingCutterDamager2\",0,0,0,2,0,0)\nRCUT A 0 A_CustomMissile(\"ReturningCutterBoss\",0,0,0,0)\nstop\nDeath:\nRCUT A 0 A_GiveToTarget(\"SPBossFlag\",999)\nstop\n}\n}\n\nactor ReturningCutterBoss : RollingCutterSP\n{\nradius 0\nheight 0\nspeed 24\ndamagetype \"RollingCutter\"\ndamage 0\n+DONTSPLASH\n+NOINTERACTION\nStates\n{\nSpawn:\nRCUT A 0\nRCUT A 0 A_FaceTarget\nRCUT A 0 A_JumpIfCloser(60,\"Death\")\nRCUT CCCC 1 A_SpawnItemEx(\"RollingCutterDamager2\",0,0,0,2,0,0)\nRCUT A 0 //A_JumpIfInTargetInventory(\"SPBossFlag\",999,\"Death\")\nRCUT A 0 A_FaceTarget\nRCUT A 0 A_JumpIfCloser(60,\"Death\")\nRCUT DDDD 1 A_SpawnItemEx(\"RollingCutterDamager2\",0,0,0,2,0,0)\nRCUT A 0 A_Countdown\nRCUT A 0 //A_JumpIfInTargetInventory(\"SPBossFlag\",999,\"Death\")\nRCUT A 0 A_FaceTarget\nRCUT A 0 A_JumpIfCloser(60,\"Death\")\nRCUT A 0 A_PlaySound(\"weapon/rollingcutter\")\nRCUT AAAA 1 A_SpawnItemEx(\"RollingCutterDamager2\",0,0,0,2,0,0)\nRCUT A 0 //A_JumpIfInTargetInventory(\"SPBossFlag\",999,\"Death\")\nRCUT A 0 A_FaceTarget\nRCUT A 0 A_JumpIfCloser(60,\"Death\")\nRCUT BBBB 1 A_SpawnItemEx(\"RollingCutterDamager2\",0,0,0,2,0,0)\nRCUT A 0// A_JumpIfInTargetInventory(\"SPBossFlag\",999,\"Death\")\nRCUT A 0 A_CustomMissile(\"ReturningCutterBoss\",0,0,0,0)\nstop\nDeath:\nRCUT A 0 A_GiveToTarget(\"SPBossFlag\",999)\nstop\n}\n}\n\nactor RollingCutterDamager2\n{\nPROJECTILE\ndamagetype \"RollingCutter\"\n+RIPPER\n+DONTBLAST\ndamage (8*ACS_NamedExecuteWithResult(\"sp_cbmHP\"))\nradius 16\nheight 16\nStates\n{\nSpawn:\nTNT1 A 2\nstop\n}\n}"
      },
      {
        "source": "pk3",
        "name": "actors/bosses/MMSP/heatman.txt",
        "contents": "actor HeatmanBoss : BasicBoss\n{\ntranslation \"192:192=229:229\", \"198:198=41:41\"\nObituary \"%o was melted by \\ckHeat Man\\c-.\"\n\nMeleeRange 100\nspeed 0\nStates\n{\nIntro:\nHEAM K 0\nHEAM K 0 A_TakeInventory(\"BossIntroFlag\", 1)\nHEAM K 0 A_ChangeFlag(\"CANTSEEK\", true)\nHEAM K 0 A_ChangeFlag(\"INVULNERABLE\", true)\nHEAM K 1 A_JumpIf(floorz-z==0,\"Intro2\")\nwait\nIntro2:\nHEAM I 7\nHEAM J 5\nHEAM LMLMLMLMLMLMLM 2\nHEAM A 5\nwait\nSpawn:\nHEAM K 0\nHEAM K 0 A_ChangeFlag(\"CANTSEEK\", false)\nHEAM K 0 A_ChangeFlag(\"INVULNERABLE\", false)\nHEAM K 0 A_JumpIfInventory(\"HealthScaled\",1,\"Spawn2\")\nHEAM K 0 ACS_NamedExecuteAlways(\"EA_BossManage\", 0)\nHEAM K 0 A_JumpIfInventory(\"BossIntroFlag\", 1, \"Intro\")\nSpawn2:\nHEAM K 0 A_ClearTarget\nHEAM A 0 A_ChangeFlag(\"INVULNERABLE\",0)\nHEAM A 5 A_LookEx(LOF_NOSOUNDCHECK,0,0,0,360,\"Found\")\nGoto Spawn2+2\nFound:\nHEAM A 20\nGoto See\nSee:\nHEAM A 10 A_FaceTarget\nHEAM A 15 A_TakeInventory(\"CutterFlag\",9999)\nGoto Attack1\n\nAttack1:\nHEAM G 0 //A_ChangeFlag(\"SOLID\",1)\nHEAM F 5 A_FaceTarget\nHEAM GG 0 A_SpawnItemEx(\"HeatmanFlamePillarProjectile\",0,0,20,10,0,random(6,25),random(-60,5))\nHEAM GG 0 A_SpawnItemEx(\"HeatmanFlamePillarProjectile\",0,0,20,10,0,random(6,25),random(5,60))\nHEAM G 0// A_SpawnItemEx(\"HeatmanFlamePillarProjectile\",0,0,20,10,0,random(6,25),0)\nHEAM G 10\nHEAM A 5\nHEAM A 0 A_JumpIfInventory(\"AtomicFireAmmo\",1,\"SuperReady\")\nHEAM A 0 A_JumpIfInventory(\"BossSuperAvailable50%\",1,\"Super\")\nGoto Attack2\n\nSuperReady:\nHEAM A 0 A_TakeInventory(\"AtomicFireAmmo\",1)\nGoto Attack2\n\nAttack2:\nHEAM I 7\nHEAM G 0 A_ChangeFlag(\"NOBLOOD\",1)\nHEAM G 0 //A_ChangeFlag(\"SOLID\",0)\nHEAM G 0 A_ChangeFlag(\"INVULNERABLE\",1)\nHEAM LMLMLMLMLMLMLMLMLMLMLMLMLMLMLMLMLMLMLMLMLMLM 1 A_SpawnItemEx(\"HeatmanRadius\")\nHEAM A 0 A_FaceTarget\nHEAM A 0 A_SpawnItemEx(\"HeatmanDashFX\",0,0,0)\nHEAM A 0 A_SpawnItemEx(\"HeatmanDashFX\",0,32,32)\nHEAM A 0 A_SpawnItemEx(\"HeatmanDashFX\",0,-32,-32)\nHEAM A 0 A_SpawnItemEx(\"HeatmanDashFX\",0,32,-32)\nHEAM A 0 A_SpawnItemEx(\"HeatmanDashFX\",0,-32,32)\nHEAM A 0 A_SpawnItemEx(\"HeatmanDashFX\",0,0,64)\nHEAM A 0 A_SpawnItemEx(\"HeatmanDashFX\",0,64,0)\nHEAM A 0 A_SpawnItemEx(\"HeatmanDashFX\",0,-64,0)\nTNT1 A 3 A_SpawnItemEx(\"HeatmanDashFX\",0,0,-64)\nHEAM A 0 A_FaceTarget\nHEAM A 0 A_SpawnItemEx(\"HeatmanDashFX\",32,0,0)\nHEAM A 0 A_SpawnItemEx(\"HeatmanDashFX\",32,-32,0)\nHEAM A 0 A_SpawnItemEx(\"HeatmanDashFX\",32,32,-0)\nHEAM A 0 A_SpawnItemEx(\"HeatmanDashFX\",32,0,32)\nTNT1 A 6 A_SpawnItemEx(\"HeatmanDashFX\",32,0,-32)\nHEAM A 0 A_FaceTarget\nHEAM A 0 A_PlaySoundEx(\"weapon/atomicfire\",\"Voice\",0,1)\nGoto Dash\n\nDash:\nHEAM P 0 A_LookEx(LOF_NOSOUNDCHECK,0,80,0,360,\"DashEnd\")\nHEAM A 0 A_FaceTarget\nHEAM A 0 A_Stop\nHEAM A 0 A_SpawnItemEx(\"HeatmanDashDamager\",0,0,0,50)\nHEAM A 0 A_GiveInventory(\"CutterFlag\",1)\nHEAM A 0 A_JumpIfInventory(\"CutterFlag\",18,\"DashEnd\")\nTNT1 A 1 A_Recoil(-45)\nloop\n\nDashEnd:\nHEAM A 0 A_Stop\nHEAM A 0 A_SpawnItemEx(\"HeatmanDashDamager\",0,0,0,50)\nTNT1 A 1 A_Recoil(-45)\nHEAM A 0 A_Stop\nHEAM A 0 A_SpawnItemEx(\"HeatmanDashDamager\",0,0,0,50)\nTNT1 A 1 A_Recoil(-45)\nHEAM A 0 A_Stop\nHEAM A 0 A_SpawnItemEx(\"HeatmanDashDamager\",0,0,0,50)\nTNT1 A 1 A_Recoil(-45)\nHEAM A 0 A_Stop\nHEAM A 0 A_SpawnItemEx(\"HeatmanDashDamager\",0,0,0,50)\nTNT1 A 1 A_Recoil(-45)\nHEAM A 0 A_Stop\nHEAM A 0 A_SpawnItemEx(\"HeatmanDashDamager\",0,0,0,50)\nTNT1 A 1 A_Recoil(-45)\nHEAM A 0 A_Stop\nHEAM A 0 A_SpawnItemEx(\"HeatmanDashDamager\",0,0,0,50)\nTNT1 A 1 A_Recoil(-45)\nHEAM A 0 A_Stop\nHEAM A 0 A_SpawnItemEx(\"HeatmanDashDamager\",0,0,0,50)\nTNT1 A 1 A_Recoil(-45)\nHEAM A 0 A_Stop\nHEAM A 0 A_SpawnItemEx(\"HeatmanDashDamager\",0,0,0,50)\nTNT1 A 1 A_Recoil(-45)\nHEAM P 0 A_Stop\nHEAM A 0 A_ChangeFlag(\"INVULNERABLE\",0)\nHEAM A 0 A_ChangeFlag(\"NOBLOOD\",0)\nHEAM A 10\nGoto Spawn2\n\nDash2:\nHEAM P 0 A_LookEx(LOF_NOSOUNDCHECK,0,80,0,360,\"DashEnd\")\nHEAM A 0 A_Stop\nHEAM A 0 A_SpawnItemEx(\"HeatmanFlamePillarSuper\",0,0,0,0)\nHEAM A 0 A_SpawnItemEx(\"HeatmanDashDamager\",0,0,0,50)\nHEAM A 0 A_GiveInventory(\"CutterFlag\",1)\nHEAM A 0 A_JumpIfInventory(\"CutterFlag\",18,\"DashEnd\")\nTNT1 A 1 A_Recoil(-35)\nloop\n\nDeath:\nHEAM A 0 Thing_Remove(888)\ngoto Super::Death\n\nSuper:\nHEAM A 0 A_GiveInventory(\"AtomicFireAmmo\",1)\nHEAM A 0 A_PlaySoundEx(\"enemy/bosssuper\",\"Voice\",0,1)\nHEAM G 0 A_ChangeFlag(\"NOBLOOD\",1)\nHEAM G 0 //A_ChangeFlag(\"SOLID\",0)\nHEAM G 0 A_ChangeFlag(\"INVULNERABLE\",1)\nHEAM G 0 A_FaceTarget\nHEAM A 4 Thing_SetTranslation(0,62)\nHEAM A 4 Thing_SetTranslation(0,0)\nHEAM A 4 Thing_SetTranslation(0,62)\nHEAM A 4 Thing_SetTranslation(0,0)\nHEAM LMLMLMLMLMLMLMLMLMLMLMLMLMLMLMLMLMLMLMLMLMLM 1 A_SpawnItemEx(\"HeatmanRadius\")\nHEAM A 0 A_PlaySoundEx(\"weapon/atomicfire\",\"Voice\",0,1)\nGoto Dash2\n}\n}\n\nactor HeatmanFlamePillarProjectile\n{\nPROJECTILE\nDamage (3*ACS_NamedExecuteWithResult(\"sp_cbmHP\"))\n+RIPPER\n-NOGRAVITY\ndamagetype \"Enemy\"\nRadius 16\nHeight 16\nscale 2.5\nspeed 10\nstates\n{\nSpawn:\nHEAM RST 3\nloop\nDeath:\nHEAM A 0 A_PlaySoundEx(\"weapon/pharaoh2\",\"Body\")\nTNT1 A 0 A_SpawnItemEx(\"HeatmanFlamePillar\")\nstop\n}\n}\n\nactor HeatmanFlamePillar\n{\nPROJECTILE\nDamage (1*ACS_NamedExecuteWithResult(\"sp_cbmHP\"))\n+FLOORHUGGER\n+RIPPER\ndamagetype \"Misc\"\nRadius 16\nHeight 64\nscale 2.5\nstates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 0 Thing_ChangeTID(0,888)\nHEAM RSTRSTRSTRSTRSTRSTRSTRSTRSTRSTRSTRST 3 A_SpawnItemEx(\"HeatmanFlamePillarFX\",0,0,0,0,0,5)\nstop\n}\n}\n\nactor HeatmanFlamePillarFX\n{\n+NOGRAVITY\n-SOLID\n+NOINTERACTION\nRadius 4\nHeight 4\nscale 2.5\nStates\n{\nSpawn:\nHEAM RSTRSTRS 3\nstop\n}\n}\n\nactor HeatmanDashDamager\n{\nPROJECTILE\nDamage (5*ACS_NamedExecuteWithResult(\"sp_cbmHP\"))\nRadius 48\nHeight 32\nscale 2.5\nstates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 1 A_SpawnItemEx(\"HeatmanDashFX\",0,0,0)\nstop\n}\n}\n\nactor HeatmanDashFX\n{\n+NOGRAVITY\n-SOLID\n+NOINTERACTION\nRadius 4\nHeight 4\nscale 2.5\nStates\n{\nSpawn:\nHEAM NOP 3\nstop\n}\n}\n\nactor HeatmanRadius\n{\n+MISSILE\ndamagetype \"Enemy\"\nStates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 0 A_Explode(5*ACS_NamedExecuteWithResult(\"sp_cbmHP\"),100,0)\nstop\n}\n}\n\nactor HeatmanFlamePillarSuper\n{\nPROJECTILE\nDamage (1*ACS_NamedExecuteWithResult(\"sp_cbmHP\"))\n+FLOORHUGGER\n+RIPPER\ndamagetype \"Misc\"\nRadius 16\nHeight 64\nscale 2.5\nstates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 0 Thing_ChangeTID(0,888)\nHEAM UVWXYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZYZXWVU 4\nstop\n}\n}"
      },
      {
        "source": "pk3",
        "name": "actors/bosses/MMSP/needleman.txt",
        "contents": "actor NeedlemanBoss : BasicBoss\n{\nObituary \"%o was pricked by \\chNeedle Man\\c-.\"\n\nspeed 0\nStates\n{\nIntro:\nNEED K 0\nNEED K 0 A_TakeInventory(\"BossIntroFlag\", 1)\nNEED K 0 A_ChangeFlag(\"CANTSEEK\", true)\nNEED K 0 A_ChangeFlag(\"INVULNERABLE\", true)\nNEED K 1 A_JumpIf(floorz-z==0,\"Intro2\")\nwait\nIntro2:\nNEED A 5\nNEED I 5\nwait\n\nSpawn:\nNEED K 0\nNEED K 0 A_ChangeFlag(\"CANTSEEK\", false)\nNEED K 0 A_ChangeFlag(\"INVULNERABLE\", false)\nNEED K 0 A_JumpIfInventory(\"HealthScaled\",1,\"Spawn2\")\nNEED K 0 ACS_NamedExecuteAlways(\"EA_BossManage\", 0)\nNEED K 0 A_JumpIfInventory(\"BossIntroFlag\", 1, \"Intro\")\nSpawn2:\nNEED K 0 A_ClearTarget\nNEED A 0 A_ChangeFlag(\"INVULNERABLE\",0)\nNEED A 5 A_LookEx(LOF_NOSOUNDCHECK,0,0,0,360,\"Found\")\nGoto Spawn2+2\nFound:\nNEED A 20\nGoto See\nSee:\nNEED A 10 A_FaceTarget\nNEED K 15 A_ChangeVelocity(0.0,0.0,19.0,CVF_REPLACE|CVF_RELATIVE)\nGoto Attack1\nSuperChance:\nNEED A 0 A_Jump(200,\"Super\")\nGoto See\n\nAttack1:\nNEED K 1\nCUTM J 0 A_JumpIf(floorz-z==0,\"Land\")\nNEED K 1\nNEED A 0 A_Jump(80,\"Missile\")\nNEED K 1\nloop\nMissile:\nNEED K 1\nNEED A 0 A_ChangeVelocity(0.0,0.0,0.0,CVF_REPLACE|CVF_RELATIVE)\nNEED A 0 A_ChangeFlag(\"NOGRAVITY\",1)\nNEED K 1 A_FaceTarget\nNEED K 0 A_PlaySoundEx(\"enemy/needlemanfire\",\"Voice\")\nNEED J 4 A_CustomMissile(\"NeedlemanNeedle\",40,-28,random(-2,2))\nNEED K 4 A_FaceTarget\nNEED K 0 A_PlaySoundEx(\"enemy/needlemanfire\",\"Voice\")\nNEED L 4 A_CustomMissile(\"NeedlemanNeedle\",40,28,random(-2,2))\nNEED K 4 A_FaceTarget\nNEED K 12 A_ChangeFlag(\"NOGRAVITY\",0)\nGoto Attack1\n\nLand:\nNEED A 1\nNEED A 3 A_ChangeVelocity(0.0,0.0,0.0,CVF_REPLACE|CVF_RELATIVE)\nNEED A 1\nNEED AAAA 2 A_LookEx(LOF_NOSOUNDCHECK,0,190,0,360,\"Stab\")\nGoto Leap\nLand2:\nNEED A 1\nNEED A 3 A_ChangeVelocity(0.0,0.0,0.0,CVF_REPLACE|CVF_RELATIVE)\nNEED A 1\nNEED AAAA 2 A_LookEx(LOF_NOSOUNDCHECK,0,190,0,360,\"Stab2\")\nNEED A 0 A_JumpIfInventory(\"BossSuperAvailable50%\",1,\"SuperChance\")\nGoto Spawn2\nStab:\nNEED P 5 A_FaceTarget\nNEED P 0 A_PlaySoundEx(\"weapon/slashclaw\",\"Voice\")\nNEED O 5 A_CustomBulletAttack(0,0,1,15*ACS_NamedExecuteWithResult(\"sp_cbmHP\"),\"NoPuff\",250)\nNEED P 5 A_FaceTarget\nNEED A 15\nGoto Leap\nStab2:\nNEED P 5 A_FaceTarget\nNEED P 0 A_PlaySoundEx(\"weapon/slashclaw\",\"Voice\")\nNEED O 5 A_CustomBulletAttack(0,0,1,15*ACS_NamedExecuteWithResult(\"sp_cbmHP\"),\"NoPuff\",250)\nNEED P 5 A_FaceTarget\nNEED A 15\nGoto See\n\nLeap:\nNEED K 1 A_FaceTarget\nNEED A 1 //A_SetAngle(angle + random(-32,32))\nNEED A 0 A_ChangeVelocity(17.0,0.0,15.0,CVF_REPLACE|CVF_RELATIVE)\nNEED K 8\nGoto Leaping\nMelee:\nNEED K 5 A_SpawnItemEx(\"NeedlemanMelee\")//A_CustomMeleeAttack(20)\nGoto Leaping\n\nLeaping:\nNEED K 1 A_JumpIf(floorz-z==0,\"Land2\")\nloop\nLeaping2:\nNEED K 1 A_JumpIf(floorz-z==0,\"Spawn\")\nloop\n\nSuper:\nNEED A 0 A_PlaySoundEx(\"enemy/bosssuper\",\"Voice\",0,1)\nNEED A 0 A_ChangeFlag(\"INVULNERABLE\",1)\nNEED G 0 A_FaceTarget\nNEED A 4 Thing_SetTranslation(0,62)\nNEED A 4 Thing_SetTranslation(0,0)\nNEED A 4 Thing_SetTranslation(0,62)\nNEED A 4 Thing_SetTranslation(0,0)\nNEED A 0 A_FaceTarget\nNEED K 10 A_ChangeVelocity(0.0,0.0,19.0,CVF_REPLACE|CVF_RELATIVE)\nNEED K 0 A_ChangeFlag(\"NOGRAVITY\",1)\nNEED M 10 A_ChangeVelocity(0.0,0.0,0.0,CVF_REPLACE|CVF_RELATIVE)\nGoto Spin\nSpin:\nNEED Q 0 A_JumpIfInventory(\"CutterFlag\",30,\"Finish\")\nNEED Q 0 A_PlaySoundEx(\"enemy/needlemanfire\",\"Auto\")\nNEED QQ 0 A_SpawnItemEx(\"NeedlemanNeedle2\",0,0,32,14,0,random(-3,-6),random(0,360))\nNEED Q 1\nNEED Q 0 //A_PlaySoundEx(\"enemy/needlemanfire\",\"Voice\")\nNEED QQ 0 A_SpawnItemEx(\"NeedlemanNeedle2\",0,0,32,14,0,random(-3,-6),random(0,360))\nNEED Q 1\nNEED R 0 //A_PlaySoundEx(\"enemy/needlemanfire\",\"Voice\"\nNEED QR 0 A_SpawnItemEx(\"NeedlemanNeedle2\",0,0,32,14,0,random(-3,-6),random(0,360))\nNEED R 1\nNEED R 0 //A_PlaySoundEx(\"enemy/needlemanfire\",\"Voice\")\nNEED QR 0 A_SpawnItemEx(\"NeedlemanNeedle2\",0,0,32,14,0,random(-3,-6),random(0,360))\nNEED R 1\nNEED Q 0 A_GiveInventory(\"CutterFlag\",1)\nloop\nFinish:\nNEED M 16 A_ChangeVelocity(0.0,0.0,0.0,CVF_REPLACE|CVF_RELATIVE)\nNEED K 0 A_ChangeFlag(\"NOGRAVITY\",0)\nNEED M 0 A_TakeInventory(\"CutterFlag\",999)\nNEED M 0 A_ChangeFlag(\"INVULNERABLE\",0)\nGoto Leaping2\n}\n}\n\nactor NoPuff\n{\n-SOLID\n+NOINTERACTION\nStates\n{\nSpawn:\nTNT1 A 0\nstop\n}\n}\n\nactor NeedlemanNeedle\n{\nPROJECTILE\n+RIPPER\ndamage (8*ACS_NamedExecuteWithResult(\"sp_cbmHP\"))\nscale 2.5\ntranslation \"13:246=4:4\"\ndamagetype \"Enemy\"\nHeight 8\nRadius 8\nSpeed 42\nStates\n{\nSpawn:\nNHAR F 2\nloop\n}\n}\n\nactor NeedlemanMelee\n{\n+MISSILE\ndamage (0)\nscale 2.5\ndamagetype \"Enemy\"\nHeight 8\nRadius 8\nrenderstyle none\nStates\n{\nSpawn:\nNHAR A 2\nNHAR A 2 A_Explode(130*ACS_NamedExecuteWithResult(\"sp_cbmHP\"),300,0)\nstop\n}\n}\n\nactor NeedlemanNeedle2 : NeedlemanNeedle\n{\ndamage(6*ACS_NamedExecuteWithResult(\"sp_cbmHP\"))\n}"
      },
      {
        "source": "pk3",
        "name": "actors/bosses/MMSP/toadman.txt",
        "contents": "actor ToadmanBoss : BasicBoss\n{\ntranslation \"192:192=215:215\", \"198:198=104:104\"\nHitObituary \"%o was crushed by \\cdToad Man\\c-.\"\nObituary \"%o was eroded by \\cdToad Man\\c-.\"\n\npainchance 240\nMeleeRange 52\nspeed 0\nStates\n{\nIntro:\nTOAD C 0\nTOAD C 0 A_TakeInventory(\"BossIntroFlag\", 1)\nTOAD C 0 A_ChangeFlag(\"CANTSEEK\", true)\nTOAD C 0 A_ChangeFlag(\"INVULNERABLE\", true)\nTOAD C 1 A_JumpIf(floorz-z==0,\"Intro2\")\nwait\nIntro2:\nTOAD B 5\nTOAD I 5\nwait\n\nSpawn:\nTOAD C 0\nTOAD C 0 A_ChangeFlag(\"CANTSEEK\", false)\nTOAD C 0 A_ChangeFlag(\"INVULNERABLE\", false)\nTOAD C 0 A_JumpIfInventory(\"HealthScaled\",1,\"Spawn2\")\nTOAD C 0 ACS_NamedExecuteAlways(\"EA_BossManage\", 0)\nTOAD C 0 A_JumpIfInventory(\"BossIntroFlag\", 1, \"Intro\")\nSpawn2:\nTOAD A 0 A_ClearTarget\nTOAD A 0 A_ChangeFlag(\"INVULNERABLE\",0)\nTOAD A 5 A_LookEx(LOF_NOSOUNDCHECK,0,0,0,360,\"Found\")\nGoto Spawn2+2\nFound:\nTOAD A 20 A_Chase\nGoto See\nSee:\nTOAD A 10 A_FaceTarget\nGoto Attack1\n\nPain:\nTOAD B 12 A_ChangeFlag(\"NOPAIN\",1)\nTOAD B 1 A_JumpIfInventory(\"CutterFlag\",1,\"Hide\")\nTOAD B 1 A_JumpIfInventory(\"BossSuperAvailable25%\",1,\"Super\")\nGoto Leap\n\nAttack1:\nTOAD F 0 A_ChangeFlag(\"NOPAIN\",0)\nTOAD F 0 A_FaceTarget\nTOAD EJFGFG 5\nTOAD F 0 A_CustomMissile(\"ToadmanRainFlush\",42,0,0)\nTOAD F 0 A_ChangeFlag(\"NOPAIN\",1)\nTOAD JFGFG 5\nTOAD A 10\nTOAD A 1 A_JumpIfInventory(\"CutterFlag\",1,\"Hide\")\nGoto Leap\n\nLand:\nTOAD B 0 A_SpawnItemEx(\"ToadmanLand\",0,0,32)\nTOAD B 1 A_JumpIfInventory(\"CutterFlag\",1,\"Hide\")\nTOAD B 4 A_ChangeVelocity(0.0,0.0,0.0,CVF_REPLACE|CVF_RELATIVE)\nTOAD A 10\nGoto Attack1\n\nLeap:\nTOAD B 0 A_SpawnItemEx(\"ToadmanLand\",0,0,32)\nTOAD B 1 A_FaceTarget\nTOAD B 1 //A_SetAngle(angle + random(-32,32))\nTOAD C 10 A_ChangeVelocity(17.0,0.0,15.0,CVF_REPLACE|CVF_RELATIVE)\nGoto Leaping\nMelee:\nTOAD C 5 //A_CustomMeleeAttack(20)\nGoto Leaping\n\nLeaping:\nTOAD C 1 A_JumpIf(floorz-z==0,\"Land\")\nloop\n\nSuper:\nTOAD A 0 A_PlaySoundEx(\"enemy/bosssuper\",\"Voice\",0,1)\nTOAD A 0 A_ChangeFlag(\"INVULNERABLE\",1)\nTOAD A 0 A_FaceTarget\nTOAD A 4 Thing_SetTranslation(0,62)\nTOAD A 4 Thing_SetTranslation(0,0)\nTOAD A 4 Thing_SetTranslation(0,62)\nTOAD A 4 Thing_SetTranslation(0,0)\nTOAD A 10 A_FaceTarget\nTOAD F 15 A_GiveInventory(\"CutterFlag\",1)\nTOAD B 30 ACS_Execute(14,0,1)// earthquake\nTOAD F 10\nTOAD B 10 ACS_Execute(14,0,1)\nTOAD F 10\nTOAD B 100 ACS_Execute(14,0,2)\nGoto Hide\n\nHide:\nTNT1 A 0 A_ChangeFlag(\"INVULNERABLE\",1)\nTNT1 A 0 //A_ChangeFlag(\"SOLID\",0)\nTNT1 A 0 A_ChangeFlag(\"SHOOTABLE\",0)\nTNT1 A 0 A_SpawnItemEx(\"ToadSplash\",0,0,32)\nTNT1 A 10\nGoto SpawnHidden\n\nStalk:\nTNT1 A 45 ACS_Execute(14,0,3)\nStalking:\nTNT1 A 10\nTNT1 A 1 A_Jump(32,\"WaterLeap\")\nTNT1 A 1 A_Jump(64,\"WaterAttack\")\nGoto Stalking\n\nWaterLeap:\nTOAD A 0 A_Stop\nTOAD A 0 A_ChangeFlag(\"INVULNERABLE\",0)\nTOAD A 0 //A_ChangeFlag(\"SOLID\",1)\nTOAD A 0 A_ChangeFlag(\"SHOOTABLE\",1)\nTOAD A 0 A_SpawnItemEx(\"ToadSplash\",0,0,32)\nGoto Leap+1\nWaterAttack:\nTOAD A 0 A_Stop\nTOAD A 0 A_ChangeFlag(\"INVULNERABLE\",0)\nTOAD A 0 //A_ChangeFlag(\"SOLID\",1)\nTOAD A 0 A_ChangeFlag(\"SHOOTABLE\",1)\nTOAD A 0 A_SpawnItemEx(\"ToadSplash\",0,0,32)\nTOAD BA 6\nGoto Attack1\n\nSpawnHidden:\nTNT1 A 0 A_ClearTarget\nTNT1 A 5 A_LookEx(LOF_NOSOUNDCHECK,0,0,0,360,\"Stalk\")\nGoto SpawnHidden+1\n}\n}\n\nactor ToadSplash\n{\n+NOINTERACTION\nHeight 1\nRadius 1\n+NOGRAVITY\nscale 2.5\n-SOLID\nStates\n{\nSpawn:\nDOLP B 5\nDOLP C 5 A_PlaySoundEx(\"misc/splash\",\"Voice\")\nDOLP DE 5\nstop\n}\n}\n\nactor ToadmanLand\n{\nPROJECTILE\nObituary \"%o was crushed by \\cdToad Man\\c-.\"\nradius 1\nheight 1\ndamagetype \"Enemy\"\nStates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 1 A_Explode(50*ACS_NamedExecuteWithResult(\"sp_cbmHP\"),130,0)\nstop\n}\n}\n\nactor ToadmanRainFlush\n{\ndamagetype \"RainFlush\"\n+NOGRAVITY\n+MISSILE\n+SKYEXPLODE\n+NOINTERACTION\nheight 1\nradius 1\n-SOLID\nStates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 1 Thing_Move(0, 2, 1)\nTNT1 A 0 A_PlaySoundEx(\"weapon/rainflush\",\"Voice\")\nTNT1 A 0 A_Explode(47*ACS_NamedExecuteWithResult(\"sp_cbmHP\"),512,0)\n\nTNT1 A 0 A_SpawnItemEx(\"RainSprinkleToad\", random(-384,384), random(-384,384), 256, -30, 0, -30, 90, SXF_CLIENTSIDE)\nTNT1 A 1 A_SpawnItemEx(\"RainSprinkleToad\", random(-384,384), random(-384,384), 256, -30, 0, -30, 90, SXF_CLIENTSIDE)\nTNT1 A 0 A_SpawnItemEx(\"RainSprinkleToad\", random(-384,384), random(-384,384), 256, -30, 0, -30, 90, SXF_CLIENTSIDE)\nTNT1 A 1 A_SpawnItemEx(\"RainSprinkleToad\", random(-384,384), random(-384,384), 256, -30, 0, -30, 90, SXF_CLIENTSIDE)\nTNT1 A 0 A_SpawnItemEx(\"RainSprinkleToad\", random(-384,384), random(-384,384), 256, -30, 0, -30, 90, SXF_CLIENTSIDE)\nTNT1 A 1 A_SpawnItemEx(\"RainSprinkleToad\", random(-384,384), random(-384,384), 256, -30, 0, -30, 90, SXF_CLIENTSIDE)\nTNT1 A 0 A_SpawnItemEx(\"RainSprinkleToad\", random(-384,384), random(-384,384), 256, -30, 0, -30, 90, SXF_CLIENTSIDE)\nTNT1 A 1 A_SpawnItemEx(\"RainSprinkleToad\", random(-384,384), random(-384,384), 256, -30, 0, -30, 90, SXF_CLIENTSIDE)\nTNT1 A 0 A_SpawnItemEx(\"RainSprinkleToad\", random(-384,384), random(-384,384), 256, -30, 0, -30, 90, SXF_CLIENTSIDE)\nTNT1 A 1 A_SpawnItemEx(\"RainSprinkleToad\", random(-384,384), random(-384,384), 256, -30, 0, -30, 90, SXF_CLIENTSIDE)\nTNT1 A 0 A_SpawnItemEx(\"RainSprinkleToad\", random(-384,384), random(-384,384), 256, -30, 0, -30, 90, SXF_CLIENTSIDE)\nTNT1 A 1 A_SpawnItemEx(\"RainSprinkleToad\", random(-384,384), random(-384,384), 256, -30, 0, -30, 90, SXF_CLIENTSIDE)\nTNT1 A 0 A_SpawnItemEx(\"RainSprinkleToad\", random(-384,384), random(-384,384), 256, -30, 0, -30, 90, SXF_CLIENTSIDE)\nTNT1 A 1 A_SpawnItemEx(\"RainSprinkleToad\", random(-384,384), random(-384,384), 256, -30, 0, -30, 90, SXF_CLIENTSIDE)\nTNT1 A 0 A_SpawnItemEx(\"RainSprinkleToad\", random(-384,384), random(-384,384), 256, -30, 0, -30, 90, SXF_CLIENTSIDE)\nTNT1 A 1 A_SpawnItemEx(\"RainSprinkleToad\", random(-384,384), random(-384,384), 256, -30, 0, -30, 90, SXF_CLIENTSIDE)\nTNT1 A 0 A_SpawnItemEx(\"RainSprinkleToad\", random(-384,384), random(-384,384), 256, -30, 0, -30, 90, SXF_CLIENTSIDE)\nTNT1 A 1 A_SpawnItemEx(\"RainSprinkleToad\", random(-384,384), random(-384,384), 256, -30, 0, -30, 90, SXF_CLIENTSIDE)\nTNT1 A 0 A_SpawnItemEx(\"RainSprinkleToad\", random(-384,384), random(-384,384), 256, -30, 0, -30, 90, SXF_CLIENTSIDE)\nTNT1 A 1 A_SpawnItemEx(\"RainSprinkleToad\", random(-384,384), random(-384,384), 256, -30, 0, -30, 90, SXF_CLIENTSIDE)\nTNT1 A 0 A_SpawnItemEx(\"RainSprinkleToad\", random(-384,384), random(-384,384), 256, -30, 0, -30, 90, SXF_CLIENTSIDE)\nTNT1 A 1 A_SpawnItemEx(\"RainSprinkleToad\", random(-384,384), random(-384,384), 256, -30, 0, -30, 90, SXF_CLIENTSIDE)\nTNT1 A 0 A_SpawnItemEx(\"RainSprinkleToad\", random(-384,384), random(-384,384), 256, -30, 0, -30, 90, SXF_CLIENTSIDE)\nTNT1 A 1 A_SpawnItemEx(\"RainSprinkleToad\", random(-384,384), random(-384,384), 256, -30, 0, -30, 90, SXF_CLIENTSIDE)\nTNT1 A 0 A_SpawnItemEx(\"RainSprinkleToad\", random(-384,384), random(-384,384), 256, -30, 0, -30, 90, SXF_CLIENTSIDE)\nTNT1 A 1 A_SpawnItemEx(\"RainSprinkleToad\", random(-384,384), random(-384,384), 256, -30, 0, -30, 90, SXF_CLIENTSIDE)\nTNT1 A 0 A_SpawnItemEx(\"RainSprinkleToad\", random(-384,384), random(-384,384), 256, -30, 0, -30, 90, SXF_CLIENTSIDE)\nTNT1 A 1 A_SpawnItemEx(\"RainSprinkleToad\", random(-384,384), random(-384,384), 256, -30, 0, -30, 90, SXF_CLIENTSIDE)\nTNT1 A 0 A_SpawnItemEx(\"RainSprinkleToad\", random(-384,384), random(-384,384), 256, -30, 0, -30, 90, SXF_CLIENTSIDE)\nTNT1 A 1 A_SpawnItemEx(\"RainSprinkleToad\", random(-384,384), random(-384,384), 256, -30, 0, -30, 90, SXF_CLIENTSIDE)\nTNT1 A 0 A_SpawnItemEx(\"RainSprinkleToad\", random(-384,384), random(-384,384), 256, -30, 0, -30, 90, SXF_CLIENTSIDE)\nTNT1 A 1 A_SpawnItemEx(\"RainSprinkleToad\", random(-384,384), random(-384,384), 256, -30, 0, -30, 90, SXF_CLIENTSIDE)\nTNT1 A 0 A_SpawnItemEx(\"RainSprinkleToad\", random(-384,384), random(-384,384), 256, -30, 0, -30, 90, SXF_CLIENTSIDE)\nTNT1 A 1 A_SpawnItemEx(\"RainSprinkleToad\", random(-384,384), random(-384,384), 256, -30, 0, -30, 90, SXF_CLIENTSIDE)\nTNT1 A 0 A_SpawnItemEx(\"RainSprinkleToad\", random(-384,384), random(-384,384), 256, -30, 0, -30, 90, SXF_CLIENTSIDE)\nTNT1 A 1 A_SpawnItemEx(\"RainSprinkleToad\", random(-384,384), random(-384,384), 256, -30, 0, -30, 90, SXF_CLIENTSIDE)\nTNT1 A 0 A_SpawnItemEx(\"RainSprinkleToad\", random(-384,384), random(-384,384), 256, -30, 0, -30, 90, SXF_CLIENTSIDE)\nTNT1 A 1 A_SpawnItemEx(\"RainSprinkleToad\", random(-384,384), random(-384,384), 256, -30, 0, -30, 90, SXF_CLIENTSIDE)\nTNT1 A 0 A_SpawnItemEx(\"RainSprinkleToad\", random(-384,384), random(-384,384), 256, -30, 0, -30, 90, SXF_CLIENTSIDE)\nTNT1 A 1 A_SpawnItemEx(\"RainSprinkleToad\", random(-384,384), random(-384,384), 256, -30, 0, -30, 90, SXF_CLIENTSIDE)\nTNT1 A 0 A_SpawnItemEx(\"RainSprinkleToad\", random(-384,384), random(-384,384), 256, -30, 0, -30, 90, SXF_CLIENTSIDE)\nTNT1 A 1 A_SpawnItemEx(\"RainSprinkleToad\", random(-384,384), random(-384,384), 256, -30, 0, -30, 90, SXF_CLIENTSIDE)\nTNT1 A 0 A_SpawnItemEx(\"RainSprinkleToad\", random(-384,384), random(-384,384), 256, -30, 0, -30, 90, SXF_CLIENTSIDE)\nTNT1 A 1 A_SpawnItemEx(\"RainSprinkleToad\", random(-384,384), random(-384,384), 256, -30, 0, -30, 90, SXF_CLIENTSIDE)\nTNT1 A 0 A_SpawnItemEx(\"RainSprinkleToad\", random(-384,384), random(-384,384), 256, -30, 0, -30, 90, SXF_CLIENTSIDE)\nTNT1 A 1 A_SpawnItemEx(\"RainSprinkleToad\", random(-384,384), random(-384,384), 256, -30, 0, -30, 90, SXF_CLIENTSIDE)\nTNT1 A 0 A_SpawnItemEx(\"RainSprinkleToad\", random(-384,384), random(-384,384), 256, -30, 0, -30, 90, SXF_CLIENTSIDE)\nTNT1 A 1 A_SpawnItemEx(\"RainSprinkleToad\", random(-384,384), random(-384,384), 256, -30, 0, -30, 90, SXF_CLIENTSIDE)\nTNT1 A 0 A_SpawnItemEx(\"RainSprinkleToad\", random(-384,384), random(-384,384), 256, -30, 0, -30, 90, SXF_CLIENTSIDE)\nTNT1 A 1 A_SpawnItemEx(\"RainSprinkleToad\", random(-384,384), random(-384,384), 256, -30, 0, -30, 90, SXF_CLIENTSIDE)\nTNT1 A 0 A_SpawnItemEx(\"RainSprinkleToad\", random(-384,384), random(-384,384), 256, -30, 0, -30, 90, SXF_CLIENTSIDE)\nTNT1 A 1 A_SpawnItemEx(\"RainSprinkleToad\", random(-384,384), random(-384,384), 256, -30, 0, -30, 90, SXF_CLIENTSIDE)\nTNT1 A 0 A_SpawnItemEx(\"RainSprinkleToad\", random(-384,384), random(-384,384), 256, -30, 0, -30, 90, SXF_CLIENTSIDE)\nTNT1 A 1 A_SpawnItemEx(\"RainSprinkleToad\", random(-384,384), random(-384,384), 256, -30, 0, -30, 90, SXF_CLIENTSIDE)\nTNT1 A 0 A_SpawnItemEx(\"RainSprinkleToad\", random(-384,384), random(-384,384), 256, -30, 0, -30, 90, SXF_CLIENTSIDE)\nTNT1 A 1 A_SpawnItemEx(\"RainSprinkleToad\", random(-384,384), random(-384,384), 256, -30, 0, -30, 90, SXF_CLIENTSIDE)\nTNT1 A 0 A_SpawnItemEx(\"RainSprinkleToad\", random(-384,384), random(-384,384), 256, -30, 0, -30, 90, SXF_CLIENTSIDE)\nTNT1 A 1 A_SpawnItemEx(\"RainSprinkleToad\", random(-384,384), random(-384,384), 256, -30, 0, -30, 90, SXF_CLIENTSIDE)\nTNT1 A 0 A_SpawnItemEx(\"RainSprinkleToad\", random(-384,384), random(-384,384), 256, -30, 0, -30, 90, SXF_CLIENTSIDE)\nTNT1 A 1 A_SpawnItemEx(\"RainSprinkleToad\", random(-384,384), random(-384,384), 256, -30, 0, -30, 90, SXF_CLIENTSIDE)\nTNT1 A 0 A_SpawnItemEx(\"RainSprinkleToad\", random(-384,384), random(-384,384), 256, -30, 0, -30, 90, SXF_CLIENTSIDE)\nTNT1 A 1 A_SpawnItemEx(\"RainSprinkleToad\", random(-384,384), random(-384,384), 256, -30, 0, -30, 90, SXF_CLIENTSIDE)\nTNT1 A 0 A_SpawnItemEx(\"RainSprinkleToad\", random(-384,384), random(-384,384), 256, -30, 0, -30, 90, SXF_CLIENTSIDE)\nTNT1 A 1 A_SpawnItemEx(\"RainSprinkleToad\", random(-384,384), random(-384,384), 256, -30, 0, -30, 90, SXF_CLIENTSIDE)\nTNT1 A 0 A_SpawnItemEx(\"RainSprinkleToad\", random(-384,384), random(-384,384), 256, -30, 0, -30, 90, SXF_CLIENTSIDE)\nTNT1 A 1 A_SpawnItemEx(\"RainSprinkleToad\", random(-384,384), random(-384,384), 256, -30, 0, -30, 90, SXF_CLIENTSIDE)\nTNT1 A 0 A_SpawnItemEx(\"RainSprinkleToad\", random(-384,384), random(-384,384), 256, -30, 0, -30, 90, SXF_CLIENTSIDE)\nTNT1 A 1 A_SpawnItemEx(\"RainSprinkleToad\", random(-384,384), random(-384,384), 256, -30, 0, -30, 90, SXF_CLIENTSIDE)\nTNT1 A 0 A_SpawnItemEx(\"RainSprinkleToad\", random(-384,384), random(-384,384), 256, -30, 0, -30, 90, SXF_CLIENTSIDE)\nTNT1 A 1 A_SpawnItemEx(\"RainSprinkleToad\", random(-384,384), random(-384,384), 256, -30, 0, -30, 90, SXF_CLIENTSIDE)\nstop\n}\n}\n\nactor RainSprinkleToad\n{\n+CLIENTSIDEONLY\n+NOINTERACTION\n- SOLID\n+NOGRAVITY\ntranslation \"72:72=215:215\"\nheight 0\nradius 0\nScale 2.5\nStates\n{\nSpawn:\nCRAI D 30\nstop\n}\n}"
      },
      {
        "source": "pk3",
        "name": "actors/bosses/SPBosses.txt",
        "contents": "actor BasicBoss\n{\nScale 2.5\n\nHeight 52\nRadius 48\nHealth 1350\n\ndamagefactor \"Enemy\", 0.0\ndamagefactor \"Normal\", 1.0\n\ndamagetype \"Enemy\"\nspecies \"Enemy\"\n\nMeleeRange 64\nmaxstepheight 50\n+DROPOFF\nMONSTER\n-SOLID\n-CANPASS\n+LOOKALLAROUND\n+SLIDESONWALLS\nmass 99999999\npainchance 256\n+THRUGHOST\npainsound \"misc/devilpain\"\n\nspeed 0\nStates\n{\nDeath:\nTNT1 A 0 Thing_Remove(200)\nTNT1 A 0 A_PlaySoundEx(\"misc/devildeath\",\"Voice\",0,1)\nTNT1 A 0 A_FaceTarget\nTNT1 A 0 A_Fall\nTNT1 A 0 ACS_NamedExecuteAlways(\"EA_ShowDefeat\",0)\nTNT1 A 0 A_SpawnItemEx(\"FakeDeathFX\", 0, 0, 32)\nTNT1 A 5\nstop\n}\n}\n\nactor BossIntroFlag : Once {}\n\nactor BossSuperAvailable25% : Once {}\nactor BossSuperAvailable50% : Once {}\n\nactor SPBossFlag : Inventory\n{\ninventory.amount 1\ninventory.maxamount 999\n}\n\n#include \"actors/bosses/MMSP/cutman.txt\"\n#include \"actors/bosses/MMSP/needleman.txt\"\n#include \"actors/bosses/MMSP/heatman.txt\"\n#include \"actors/bosses/MMSP/toadman.txt\""
      },
      {
        "source": "pk3",
        "name": "actors/enemies/2ndCoop/FlamethrowerJoe.txt",
        "contents": "actor FlamethrowerJoe : GenericRobot 30039\n{\n//$Category MM8BDM-Enemies\nHeight 52\nRadius 32\nObituary \"%o was burnt to crisps by a Flamethrower Joe.\"\nHealth 95\n\ntranslation \"192:192=4:4\", \"198:198=227:227\"\n\nmaxstepheight 50\n+MISSILEEVENMORE\n+MISSILEMORE\n+LOOKALLAROUND\n\ndropitem \"WeaponEnergy\", 16\ndropitem \"SmallHealth\", 16\nspeed 8\nStates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 0 ACS_NamedExecuteAlways(\"sp_enemystart\",0)\nLook:\nSNIP A 5 A_LookEx(LOF_NOSOUNDCHECK,0,0,0,360,\"See\")\nloop\nSee:\nSNIP B 1\nSNIP B 1 A_JumpIf(Args[0]==1, \"See2\")\nSNIP B 1 //A_JumpIfTargetInLOS(\"ShieldUp\") // THIS FUNCTION IS BUGGED ONLINE ARGH!\nSNIP BBBB 1 A_Chase\nSNIP A 0// A_JumpIfTargetInLOS(\"ShieldUp\")\nSNIP CCCC 1 A_Chase\nSNIP A 0 //A_JumpIfTargetInLOS(\"ShieldUp\")\nSNIP DDDD 1 A_Chase\nSNIP A 0 //A_JumpIfTargetInLOS(\"ShieldUp\")\nSNIP EEEE 1 A_Chase\nGoto See+3\nSee2:\nSNIP A 1 //A_JumpIfTargetInLOS(\"ShieldUp\")\nGoto Missile\nShieldUp:\nMissile:\nTNT1 A 0 A_SpawnItemEx(\"SP_SniperJoeShieldX\",23,-17,8,momx, momy, momz, 0, SXF_NOCHECKPOSITION|SXF_ABSOLUTEMOMENTUM, 0)\nTNT1 A 0 A_SpawnItemEx(\"SP_SniperJoeShieldFX\",23,-17,8,momx, momy, momz, 0, SXF_NOCHECKPOSITION|SXF_ABSOLUTEMOMENTUM|SXF_TRANSFERTRANSLATION, 0)\nSNIP A 2 A_FaceTarget\nTNT1 A 0 A_GiveInventory(\"CutterFlag\",1)\nTNT1 A 0 A_JumpIfInventory(\"CutterFlag\",30,\"ReadyFire\")\nloop\nReadyFire:\nTNT1 A 0 A_TakeInventory(\"CutterFlag\",999)\nTNT1 A 0 A_SpawnItemEx(\"SP_SniperJoeShieldX\",23,-17,8,momx, momy, momz, 0, SXF_NOCHECKPOSITION|SXF_ABSOLUTEMOMENTUM, 0)\nTNT1 A 0 A_SpawnItemEx(\"SP_SniperJoeShieldFX\",23,-17,8,momx, momy, momz, 0, SXF_NOCHECKPOSITION|SXF_ABSOLUTEMOMENTUM|SXF_TRANSFERTRANSLATION, 0)\nSNIP A 2 A_FaceTarget\nSNIP A 0 A_JumpIfCloser(512,\"ShieldFire\")\nGoto ReadyFire\n\nShieldFire:\nSNIP FFFFF 5 A_FaceTarget\nSNIP F 0 A_FaceTarget\nSNIP F 0 A_PlaySoundEx(\"weapon/magmabazooka\",\"Weapon\")\nSNIP F 0 A_PlaySoundEx(\"weapon/heatshot\",\"SoundSlot6\")\nSNIP F 2 A_CustomMissile(\"JoeFlamethrower\",12,6,frandom(-3,3),0,frandom(-3,3))\nSNIP F 0 A_FaceTarget\nSNIP F 2 A_CustomMissile(\"JoeFlamethrower\",12,6,frandom(-3,3),0,frandom(-3,3))\nSNIP F 0 A_FaceTarget\nSNIP F 2 A_CustomMissile(\"JoeFlamethrower\",12,6,frandom(-3,3),0,frandom(-3,3))\nSNIP F 0 A_FaceTarget\nSNIP F 2 A_CustomMissile(\"JoeFlamethrower\",12,6,frandom(-3,3),0,frandom(-3,3))\nSNIP F 0 A_FaceTarget\nSNIP F 2 A_CustomMissile(\"JoeFlamethrower\",12,6,frandom(-3,3),0,frandom(-3,3))\nSNIP F 0 A_FaceTarget\nSNIP F 2 A_CustomMissile(\"JoeFlamethrower\",12,6,frandom(-3,3),0,frandom(-3,3))\nSNIP F 0 A_FaceTarget\nSNIP F 2 A_CustomMissile(\"JoeFlamethrower\",12,6,frandom(-3,3),0,frandom(-3,3))\nSNIP F 0 A_FaceTarget\nSNIP F 2 A_CustomMissile(\"JoeFlamethrower\",12,6,frandom(-3,3),0,frandom(-3,3))\nSNIP F 0 A_FaceTarget\nSNIP F 2 A_CustomMissile(\"JoeFlamethrower\",12,6,frandom(-3,3),0,frandom(-3,3))\nSNIP F 0 A_FaceTarget\nSNIP F 2 A_CustomMissile(\"JoeFlamethrower\",12,6,frandom(-3,3),0,frandom(-3,3))\nSNIP F 15\nSNIP F 1 A_JumpIf(Args[0]==0, \"See\")\nSNIP A 0 A_ClearTarget\nGoto Look\n\nDeath:\nCRAZ A 0 A_Pain\nCRAZ A 0 A_Fall\nTNT1 A 5 A_SpawnItem(\"EnemyDeathFX\",0,32)\nTNT1 A -1\nstop\n}\n}\n\nactor JoeFlamethrower\n{\nPROJECTILE\n+BRIGHT\nDamage (3*ACS_NamedExecuteWithResult(\"sp_cbmHP\"))\nSpeed 30\nObituary \"%o was burnt to crisps by a Flamethrower Joe.\"\ndamagetype \"Enemy\"\nRadius 20\nHeight 20\nreactiontime 1\nscale 2.5\nStates\n{\nSpawn:\nTNT1 A 0\nSpawnLoop:\nXE01 ABC 2 A_SpawnItemEx(\"JoeFlamethrowerFX\",0,0,0,0,0,0,0,1)\nXE01 DEF 2 A_SpawnItemEx(\"JoeFlamethrowerFX2\",0,0,0,0,0,0,0,1)\nXE01 F 1 A_Countdown\nwait\nDeath:\nTNT1 A 1 A_SpawnItemEx(\"OilPitIgnite\",0,0,8)\nstop\n}\n}\n\nactor JoeFlamethrowerFX : BasicGraphicEffect\n{\n+BRIGHT\nrenderstyle add\nAlpha 0.8\nstates\n{\nSpawn:\nXE01 A 0\nXE01 BCD 1 A_FadeOut(0.2)\nstop\n}\n}\n\nactor JoeFlamethrowerFX2 : BasicGraphicEffect\n{\n+BRIGHT\nrenderstyle add\nAlpha 0.8\nstates\n{\nSpawn:\nXE01 A 0\nXE01 EFG 1 A_FadeOut(0.2)\nstop\n}\n}"
      },
      {
        "source": "pk3",
        "name": "actors/enemies/MMSP/ApacheJoe.txt",
        "contents": "actor ApacheJoe : GenericRobot 30034\n{\n//$Category MM8BDM-Enemies\nHeight 110\nRadius 48\nHealth 120\nscale 2.5\ndamagetype \"Enemy\"\nObituary \"%o was gunned down by an Apache Joe.\"\ntranslation \"192:192=58:58\", \"198:198=225:225\"\nMONSTER\n+FLOAT\n\n+NOGRAVITY\n+LOOKALLAROUND\n//dropitem \"BigWeaponEnergy\", 16\n//dropitem \"BigHealth\", 16\ndropitem \"WeaponEnergy\", 32\ndropitem \"SmallHealth\", 32\nmass 99999999\npainchance 256\npainsound \"misc/devilpain\"\nspeed 12\nStates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 0 ACS_NamedExecuteAlways(\"sp_enemystart\",0)\nLook:\nAPAC BC 4 A_LookEx(LOF_NOSOUNDCHECK,0,0,0,360,\"See\")\nloop\nSee:\nBLAD A 0 A_PlaySoundEX(\"weapon/gyroattack\",\"SoundSlot6\")\nAPAC BBBBCCCC 1 A_Chase\nloop\nMissile:\nAPAC B 1 A_ChangeFlag(\"FLOAT\",0)\nAPAC B 0 A_PlaySoundEX(\"weapon/gyroattack\",\"SoundSlot6\")\nAPAC B 0 A_FaceTarget\nAPAC B 0 A_Recoil(-12)\nAPAC BC 4 A_FaceTarget\nAPAC B 0 A_CustomMissile(\"ApacheJoeShot\",18,0,0,0)\nAPAC B 0 A_PlaySoundEX(\"weapon/gyroattack\",\"SoundSlot6\")\nAPAC BC 4 A_FaceTarget\nAPAC B 0 A_CustomMissile(\"ApacheJoeShot\",18,0,0,0)\nAPAC B 0 A_PlaySoundEX(\"weapon/gyroattack\",\"SoundSlot6\")\nAPAC BC 4 A_FaceTarget\nAPAC B 0 A_CustomMissile(\"ApacheJoeShot\",18,0,0,0)\nAPAC B 0 A_PlaySoundEX(\"weapon/gyroattack\",\"SoundSlot6\")\nAPAC BC 4 A_FaceTarget\nAPAC B 0 A_CustomMissile(\"ApacheJoeShot\",18,0,0,0)\nAPAC B 0 A_PlaySoundEX(\"weapon/gyroattack\",\"SoundSlot6\")\nAPAC BC 4 A_FaceTarget\nAPAC B 0 A_CustomMissile(\"ApacheJoeShot\",18,0,0,0)\nAPAC B 0 A_PlaySoundEX(\"weapon/gyroattack\",\"SoundSlot6\")\nAPAC BC 4 A_FaceTarget\nAPAC B 0 A_CustomMissile(\"ApacheJoeShot\",18,0,0,0)\nAPAC B 0 A_PlaySoundEX(\"weapon/gyroattack\",\"SoundSlot6\")\nAPAC BC 4 A_FaceTarget\nAPAC B 0 A_CustomMissile(\"ApacheJoeShot\",18,0,0,0)\nAPAC B 0 A_PlaySoundEX(\"weapon/gyroattack\",\"SoundSlot6\")\nAPAC BC 4 A_FaceTarget\nAPAC B 0 A_CustomMissile(\"ApacheJoeShot\",18,0,0,0)\nAPAC B 0 A_PlaySoundEX(\"weapon/gyroattack\",\"SoundSlot6\")\nAPAC BC 4 A_FaceTarget\nAPAC B 0 A_CustomMissile(\"ApacheJoeShot\",18,0,0,0)\nAPAC B 0 A_PlaySoundEX(\"weapon/gyroattack\",\"SoundSlot6\")\nAPAC BC 4 A_FaceTarget\nAPAC B 0 A_PlaySoundEX(\"weapon/gyroattack\",\"SoundSlot6\")\nAPAC BC 4 A_FaceTarget\nAPAC B 0 A_PlaySoundEX(\"weapon/gyroattack\",\"SoundSlot6\")\nAPAC BC 4 A_FaceTarget\nAPAC B 0 A_PlaySoundEX(\"weapon/gyroattack\",\"SoundSlot6\")\nAPAC BC 4 A_FaceTarget\nAPAC B 0 A_PlaySoundEX(\"weapon/gyroattack\",\"SoundSlot6\")\nAPAC BC 4 A_ChangeFlag(\"FLOAT\",1)\nAPAC B 1 A_Stop\nGoto See\nDeath:\nCRAZ A 0 A_SpawnItem(\"BigEnemyExplode\",0,32)\nBLAD A 0 A_Pain\nBLAD A 0 A_Fall\nBLAD A 0 A_ChangeFlag(\"NOGRAVITY\",1)\nMMFX BCDE 3\nstop\n}\n}\n\nactor ApacheJoeShot : FastProjectile\n{\nPROJECTILE\ntranslation \"214:215=208:208\"\ndamagetype \"Enemy\"\nseesound \"weapon/pshot\"\nSpeed 50\nDamage (10*ACS_NamedExecuteWithResult(\"sp_cbmHP\"))\nradius 8\nheight 8\nscale 2.5\nStates\n{\nSpawn:\nAPAC D -1\nloop\n}\n}"
      },
      {
        "source": "pk3",
        "name": "actors/enemies/MMSP/Beak.txt",
        "contents": "actor BeakEnemy : GenericRobot 30008\n{\n//$Category MM8BDM-Enemies\nHeight 40\nRadius 16\nHealth 15\ndamagetype \"Enemy\"\nObituary \"%o was shot by a Beak.\"\n+NOGRAVITY\n+INVULNERABLE\n//dropitem \"BigWeaponEnergy\", 32\n//dropitem \"BigHealth\", 32\ndropitem \"WeaponEnergy\", 16\ndropitem \"SmallHealth\", 16\nspeed 0\nStates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 0 ACS_NamedExecuteAlways(\"sp_enemystart\",0)\nLook:\nBEAK A 0 A_ChangeFlag(\"INVULNERABLE\",1)\nBEAK A 4 A_LookEx(LOF_NOSOUNDCHECK,0,2000,0,64,\"See\")\nGoto Look+1\nSee:\nMissile:\nBLAD A 0 A_ChangeFlag(\"INVULNERABLE\",0)\nBEAK ABC 6\nBEAK D 20\nKYOR F 0 A_PlaySoundEx(\"misc/devilfire\",\"Voice\")\nBEAK D 20 A_CustomMissile(\"BeakShot\",8,0,0)\nKYOR F 0 A_PlaySoundEx(\"misc/devilfire\",\"Voice\")\nBEAK D 20 A_CustomMissile(\"BeakShot\",8,0,5)\nKYOR F 0 A_PlaySoundEx(\"misc/devilfire\",\"Voice\")\nBEAK D 20 A_CustomMissile(\"BeakShot\",8,0,-5)\nBEAK CB 6\nBLAD A 0 A_ChangeFlag(\"INVULNERABLE\",1)\nBEAK A 20 A_ClearTarget\nGoto Look\nDeath:\nBLAD A 0 A_Pain\nBLAD A 0 A_Fall\nTNT1 A 5 A_SpawnItem(\"EnemyDeathFX\",0,2)\nTNT1 A -1\nstop\n}\n}\n\nactor BeakShot\n{\nPROJECTILE\nRadius 10\ndamagetype \"Enemy\"\nHeight 5\nDamage (5*ACS_NamedExecuteWithResult(\"sp_cbmHP\"))\nSpeed 20\nscale 2.5\ntranslation \"198:198=41:41\"\nStates\n{\nSpawn:\nSWBM E 1\nloop\n}\n}"
      },
      {
        "source": "pk3",
        "name": "actors/enemies/MMSP/BigEye.txt",
        "contents": "actor BigEyeEnemy : GenericRobot 30005\n{\n//$Category MM8BDM-Enemies\nHealth 280\nHeight 120\nRadius 40\nObituary \"%o was crushed by a Big Eye.\"\n+SOLID\nmaxstepheight 50\n+DROPOFF\n+LOOKALLAROUND\n+DONTBLAST\nspeed 0\ndropitem \"BigWeaponEnergy\", 64\ndropitem \"BigHealth\", 64\ndropitem \"WeaponEnergy\", 128\ndropitem \"SmallHealth\", 128\nStates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 0 ACS_NamedExecuteAlways(\"sp_enemystart\",0)\nLook:\nBIGE A 1 A_LookEx(LOF_NOSOUNDCHECK,0,0,0,360,\"See\")\nLoop\nSee:\nBIGE B 0 A_SpawnItemEx(\"BigEyeStomp\")\nBIGE BBBBBBBBBBBBBBBBBBBB 1 A_Chase\nBIGE B 0 A_PlaySound(\"robot/bigeye\")\nBIGE B 0 //A_Stop\nBIGE B 0 A_JumpIfCloser(250,\"LeapForward\")\nBIGE B 0 A_Jump(256,\"Leap\",\"Leap2\")\nGoto See\nLeap:\nBIGE A 0 A_Recoil(-3)\nBIGE A 5 ThrustThingZ(0,60,0,0)\nBIGE A 0 A_Chase\nBIGE A 1 A_Recoil(-3)\nBIGE A 0 A_Chase\nBIGE A 0 A_SpawnItemEx(\"BigEyeStomp\")\nBIGE A 0 A_Chase\nBIGE A 1 A_JumpIf(z-floorz==0, \"See\")\nGoto Leap+5\nLeapForward:\nBIGE A 0 A_FaceTarget\nLeap2:\nBIGE A 0 A_Recoil(-3)\nBIGE A 5 ThrustThingZ(0,50,0,0)\nBIGE A 0 A_Chase\nBIGE A 1 A_Recoil(-3)\nBIGE A 0 A_Chase\nBIGE A 0 A_SpawnItemEx(\"BigEyeStomp\")\nBIGE A 0 A_Chase\nBIGE A 1 A_JumpIf(z-floorz==0, \"See\")\nGoto Leap2+5\nDeath:\nNAPA A 0 A_PlaySoundEx(\"weapon/drillexplode\", \"Weapon\")\nNAPA A 0 A_ChangeFlag(\"NOGRAVITY\",1)\nNAPA D 0 A_Stop\nNAPA EFGHIJKLMNOPQRS 2\nTNT1 A 1 A_Fall\nTNT1 A -1\nstop\n}\n}\n\nactor BigEyeStomp\n{\n-SOLID\nPROJECTILE\ndamagetype \"Enemy\"\nStates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 1 A_Explode(150*ACS_NamedExecuteWithResult(\"sp_cbmHP\"),64,0)\nstop\n}\n}"
      },
      {
        "source": "pk3",
        "name": "actors/enemies/MMSP/Bikky.txt",
        "contents": "actor Bikky : GenericRobot 30015\n{\n//$Category MM8BDM-Enemies\nHealth 160\nHeight 128\nRadius 64\nObituary \"%o was flattened by a Bikky\"\n+SOLID\nmaxstepheight 50\n+DROPOFF\n+LOOKALLAROUND\n+DONTBLAST\nspeed 0\ndropitem \"BigWeaponEnergy\", 64\ndropitem \"BigHealth\", 64\ndropitem \"WeaponEnergy\", 32\ndropitem \"SmallHealth\", 32\nStates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 0 A_ChangeFlag(\"INVULNERABLE\",1)\nTNT1 A 0 ACS_NamedExecuteAlways(\"sp_enemystart\",0)\nLook:\nBIKY AB 6 A_LookEx(LOF_NOSOUNDCHECK,0,2000,0,360,\"See\")\nLoop\nSee:\nBIKY AB 6\nBIKY A 1 A_Jump(150, \"See\")\nBIKY A 1\nBIKY AB 5 A_FaceTarget\nBIKY AA 0 A_SpawnItemEx(\"BikkyStomp\")\nBIKY C 5 A_ChangeFlag(\"INVULNERABLE\",0)\nBIKY C 0\nBIKY D 10 A_ChangeVelocity(17.0, 0.0, 16.0, CVF_RELATIVE|CVF_REPLACE)\nGoto Leaping\nLeaping:\nBIKY A 0 A_SpawnItemEx(\"BikkyStomp\")\nBIKY D 1 A_Chase\nBIKY D 0 A_JumpIf(z-floorz==0, \"Land\")\nloop\nLand:\nBIKY A 0 A_Stop\nBIKY C 1 A_PlaySoundEx(\"enemy/bigstomp2\",\"Voice\")\nBIKY CB 5 A_ChangeFlag(\"INVULNERABLE\",1)\nBIKY A 5 A_FaceTarget\nGoto See\nDeath:\nNAPA A 0 A_PlaySoundEx(\"weapon/drillexplode\", \"Weapon\")\nNAPA A 0 A_ChangeFlag(\"NOGRAVITY\",1)\nNAPA D 0 A_Stop\nNAPA EFGHIJKLMNOPQRS 2\nTNT1 A 1 A_Fall\nTNT1 A -1\nstop\n}\n}\n\nactor BikkyStomp\n{\n-SOLID\nPROJECTILE\ndamagetype \"Enemy\"\nStates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 1 A_Explode(160*ACS_NamedExecuteWithResult(\"sp_cbmHP\"),80,0)\nstop\n}\n}"
      },
      {
        "source": "pk3",
        "name": "actors/enemies/MMSP/Blader.txt",
        "contents": "actor SP_Blader : GenericRobot\n{\nHeight 40\nRadius 32\nHealth 20\nscale 2.5\ndamagetype \"Enemy\"\nspecies \"Blader\"\nObituary \"%o was bashed by a Blader.\"\n+FLOAT\n+NOGRAVITY\n+LOOKALLAROUND\n//dropitem \"BigWeaponEnergy\", 16\n//dropitem \"BigHealth\", 16\ndropitem \"WeaponEnergy\", 32\ndropitem \"SmallHealth\", 32\nspeed 8\nfastspeed 12\nStates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 0 A_GiveInventory(\"HealthScaled\",1)\nTNT1 A 0 ACS_NamedExecuteAlways(\"sp_overflowcheck\",0)\nTNT1 A 0 ACS_NamedExecuteAlways(\"sp_enemystart\",0)\nLook:\nBLAD AB 4 A_LookEx(LOF_NOSOUNDCHECK,0,0,0,360,\"See\")\nloop\nSee:\nBLAD A 0 A_PlaySoundEX(\"weapon/gyroattack\",\"SoundSlot6\")\nBLAD AAAABBBB 1 A_Chase\nloop\nMelee:\nBLAD A 0 A_FaceTarget\nBLAD A 0 A_CustomMeleeAttack(8*ACS_NamedExecuteWithResult(\"sp_cbmHP\"))\nBLAD AABBAABB 2\nGoto See\nDeath:\nBLAD A 0 A_Pain\nBLAD A 0 A_Fall\nBLAD A 0 A_ChangeFlag(\"NOGRAVITY\",1)\nMMFX BCDE 3\nstop\nDespawn:\nBLAD A 0\nstop\n}\n}\n\nactor SP_BladerSpawner 30000\n{\n//$Category MM8BDM-Enemies\n+NOGRAVITY\n+NOINTERACTION\n+ISMONSTER\nheight 32\nradius 32\nrenderstyle none\nstates\n{\nSpawn:\nBLAD B 1 A_LookEx(LOF_NOSOUNDCHECK,0,1500,0,360,\"See\")\nloop\nSee:\nBLAD B 1200 A_SpawnItemEx(\"SP_Blader\")\nGoto Spawn\n}\n}"
      },
      {
        "source": "pk3",
        "name": "actors/enemies/MMSP/BombThrown.txt",
        "contents": "actor BombThrown : GenericRobot 30036\n{\n//$Category MM8BDM-Enemies\nHeight 64\nRadius 45\nObituary \"%o was bombed by a Bomb Thrown.\"\nHealth 50\nscale 2.5\ntranslation \"192:192=4:4\", \"68:191=227:227\"\n\nmaxstepheight 50\npainchance 256\nMONSTER\n+LOOKALLAROUND\n//dropitem \"BigWeaponEnergy\", 64\n//dropitem \"BigHealth\", 64\ndropitem \"WeaponEnergy\", 32\ndropitem \"SmallHealth\", 32\nmass 99999999\npainsound \"misc/devilpain\"\n//deathsound \"weapon/coilexplode\"\nspeed 2\nmeleerange 60\nStates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 0 ACS_NamedExecuteAlways(\"sp_enemystart\",0)\nLook:\nROMB A 5 A_LookEx(LOF_NOSOUNDCHECK,0,0,0,360,\"See\")\nGoto Look\nSee:\nROMB A 10 A_FaceTarget\nROMB D 5 A_FaceTarget\n\nROMB D 1 Thing_ChangeTID(0,3800)\nROMB D 0 A_GiveToTarget(\"DistanceChecker\",1)\nROMB D 1\nROMB D 1 A_SpawnItemEx(\"BombThrownBomb\",0,0,70,args[0] / 45,0,20)\nROMB D 0 Thing_ChangeTID(3800,0)\n\nROMB B 10 A_FaceTarget\nROMB C 20\nGoto Look\nDeath:\nCRAZ A 0 A_Pain\nCRAZ A 0 A_Fall\nTNT1 A 5 A_SpawnItem(\"EnemyDeathFX\",0,32)\nTNT1 A -1\nstop\n}\n}\n\nactor BombThrownBomb\n{\nPROJECTILE\ndamage (0)\n-NOGRAVITY\nscale 2.5\nHeight 8\nRadius 8\nSpeed 20\ntranslation \"192:192=4:4\", \"68:191=227:227\"\ndamagetype \"Enemy\"\nSeeSound \"enemy/cannon\"\nStates\n{\nSpawn:\nROMB E 5\nloop\nDeath:\nMETC E 0 A_PlaySoundEx(\"weapon/coilexplode\",\"Body\")\nMETC E 0 A_Explode(40*ACS_NamedExecuteWithResult(\"sp_cbmHP\"),128,0)\nMETC E 0 A_Stop\nMETC E 0 A_ChangeFlag(\"NOGRAVITY\",1)\nNAPA EFGHIJKLMNOPQRS 2\nstop\n}\n}"
      },
      {
        "source": "pk3",
        "name": "actors/enemies/MMSP/Cannon.txt",
        "contents": "actor Cannon1 : GenericRobot 30013\n{\n//$Category MM8BDM-Enemies\nHeight 52\nRadius 32\nObituary \"%o was blown to bits by a cannon.\"\nHealth 35\nmaxstepheight 50\ndropitem \"WeaponEnergy\", 16\ndropitem \"SmallHealth\", 16\nspeed 0\nStates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 0 ACS_NamedExecuteAlways(\"sp_enemystart\",0)\nLook:\nCANN A 0 A_ChangeFlag(\"INVULNERABLE\",1)\nCANN A 1 A_LookEx(LOF_NOSOUNDCHECK,0,400,0,90,\"See\")\nGoto Look+1\nSee:\nCANN A 0 A_ChangeFlag(\"INVULNERABLE\",0)\nCANN BC 5 A_PlaySoundEx(\"misc/door2\",\"Body\")\nCANN D 12\nGoto Missile\nMissile:\nCANN D 0  A_PlaySoundEx(\"enemy/cannon\",\"Voice\")\nCANN D 0 A_SpawnItemEx(\"Cannon1Ball\",5,0,35,10,0,10,0)\nCANN D 50 //A_FaceTarget\nCANN D 0 A_LookEx(LOF_NOSOUNDCHECK,0,400,0,90,\"Missile\")\nGoto Retract\nRetract:\nCANN CB 5 A_PlaySoundEx(\"misc/door2\",\"Body\")\nCANN A 5 A_ChangeFlag(\"INVULNERABLE\",1)\nGoto Look\nDeath:\nCRAZ A 0 A_Pain\nCRAZ A 0 A_Fall\nCRAZ A 0 A_SpawnItem(\"EnemyDeathFX\",0,32)\nTNT1 A -1\nstop\n}\n}\n\nactor Cannon1Ball\n{\nPROJECTILE\n-NOGRAVITY\ndamage (0)\nscale 2.5\nHeight 8\nRadius 8\nSpeed 25\ndamagetype \"Enemy\"\nStates\n{\nSpawn:\nCANN E 5\nloop\nDeath:\nCANN E 0 A_PlaySoundEx(\"weapon/coilexplode\",\"Body\")\nCANN E 0 A_Explode(50*ACS_NamedExecuteWithResult(\"sp_cbmHP\"),128,0)\nCANN E 0 A_Stop\nCANN E 0 A_ChangeFlag(\"NOGRAVITY\",1)\nNAPA EFGHIJKLMNOPQRS 2\nstop\n}\n}"
      },
      {
        "source": "pk3",
        "name": "actors/enemies/MMSP/CrazyRazy.txt",
        "contents": "actor CrazyRazy : GenericRobot 30001\n{\n//$Category MM8BDM-Enemies\nHeight 52\nRadius 48\nHealth 30\nObituary \"%o was punched by a Crazy Razy.\"\nscale 2.5\nMeleeRange 60\nmaxstepheight 50\n+DROPOFF\n+LOOKALLAROUND\nspeed 8\nfastspeed 10\nStates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 0 ACS_NamedExecuteAlways(\"sp_enemystart\",0)\nLook:\nCRAZ A 1 A_LookEx(LOF_NOSOUNDCHECK,0,0,0,360,\"See\")\nloop\nSee:\nCRAZ AAABBBCCC 1 A_Chase\nloop\nMelee:\nCRAZ A 0 A_FaceTarget\nCRAZ A 0 A_CustomMeleeAttack(15*ACS_NamedExecuteWithResult(\"sp_cbmHP\"))\nCRAZ A 12\nGoto See\nDeath:\nBLAD A 0 A_ChangeFlag(\"NOGRAVITY\",1)\nCRAZ A 0 A_Pain\nCRAZ A 0 A_Fall\nCRAZ A 0 A_SpawnItemEx(\"CrazyRazyHead\",0,0,32,0,0,10)\nMMFX BCDE 3\nTNT1 A -1\nstop\n}\n}\n\nactor CrazyRazyHead : GenericRobot\n{\nHeight 52\nMeleeRange 60\nRadius 48\nObituary \"%o was punched by a Crazy Razy.\"\nHealth 30\nscale 2.5\nmaxstepheight 32\n+LOOKALLAROUND\n+NOGRAVITY\n+FLOAT\n//dropitem \"BigWeaponEnergy\", 32\n//dropitem \"BigHealth\", 32\ndropitem \"WeaponEnergy\", 64\ndropitem \"SmallHealth\", 64\nspeed 8\nfastspeed 10\nStates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 0 ACS_NamedExecuteAlways(\"sp_enemystart\",0)\nLook:\nCRAZ D 15\nCRAZ A 0 A_Stop\nCRAZ D 1 A_LookEx(LOF_NOSOUNDCHECK,0,0,0,360,\"See\")\nGoto Look+2\nSee:\nCRAZ D 1 A_Chase\nloop\nMelee:\nCRAZ A 0 A_FaceTarget\nCRAZ A 0 A_CustomMeleeAttack(15*ACS_NamedExecuteWithResult(\"sp_cbmHP\"))\nCRAZ D 12\nGoto See\nDeath:\nBLAD A 0 A_ChangeFlag(\"NOGRAVITY\",1)\nCRAZ A 0 A_Pain\nCRAZ A 0 A_Fall\nMMFX BCDE 3\nstop\n}\n}"
      },
      {
        "source": "pk3",
        "name": "actors/enemies/MMSP/Escaroo.txt",
        "contents": "actor Escaroo : GenericRobot 30023\n{\n//$Category MM8BDM-Enemies\nscale 2.5\nHealth 190\nHeight 128\n\n+DONTRIP\ndamagefactor \"RainShower\", 0.3\ndamagefactor \"AtomicFire\", 0.5\n\nRadius 128\nObituary \"%o was destroyed by a Escaroo\"\n+SOLID\nmaxstepheight 50\n+DROPOFF\n+LOOKALLAROUND\n+DONTBLAST\n+INVULNERABLE\nspeed 0\ndropitem \"BigWeaponEnergy\", 64\ndropitem \"BigHealth\", 64\ndropitem \"WeaponEnergy\", 32\ndropitem \"SmallHealth\", 32\nStates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 0 A_ChangeFlag(\"INVULNERABLE\",1)\nTNT1 A 0 ACS_NamedExecuteAlways(\"sp_enemystart\",0)\nLook:\nESCA A 6 A_LookEx(LOF_NOSOUNDCHECK,0,2500,0,360,\"See\")\nLoop\nSee:\nESCA A 1 A_JumpIf(args[0]==1,\"Bombs\")\nESCA A 30 //A_TakeInventory(\"CutterFlag\",1)\nESCA B 10\nESCA C 40 A_ChangeFlag(\"INVULNERABLE\",0)\nESCA B 10 A_ChangeFlag(\"INVULNERABLE\",1)\nESCA A 10\nGoto Missile\nMissile:\nESCA A 1 A_JumpIfInventory(\"CutterFlag\",360,\"Bombs\")\nESCA A 30\nESCA D 0 A_CustomMissile(\"EscarooEyes\",42,0,0,0,0)\nEyes:\nESCA D 0 A_GiveInventory(\"CutterFlag\",1)\nESCA D 1 A_JumpIfInventory(\"CutterFlag\",360,\"Look\")\nloop\nBombs:\nESCA A 13 A_SpawnItemEx(\"EscarooBomb\",0,0,160,random(7,13),0,random(8,15),45)\nESCA A 13 A_SpawnItemEx(\"EscarooBomb\",0,0,160,random(7,13),0,random(8,15),45)\nESCA A 13 A_SpawnItemEx(\"EscarooBomb\",0,0,160,random(7,13),0,random(8,15),25)\nESCA A 13 A_SpawnItemEx(\"EscarooBomb\",0,0,160,random(7,13),0,random(8,15),5)\nESCA A 13 A_SpawnItemEx(\"EscarooBomb\",0,0,160,random(7,13),0,random(8,15),-25)\nESCA A 13 A_SpawnItemEx(\"EscarooBomb\",0,0,160,random(7,13),0,random(8,15),-45)\nESCA A 13 A_SpawnItemEx(\"EscarooBomb\",0,0,160,random(7,13),0,random(8,15),-25)\nESCA A 13 A_SpawnItemEx(\"EscarooBomb\",0,0,160,random(7,13),0,random(8,15),-25)\nESCA A 13 A_SpawnItemEx(\"EscarooBomb\",0,0,160,random(7,13),0,random(8,15),5)\nESCA A 13 A_SpawnItemEx(\"EscarooBomb\",0,0,160,random(7,13),0,random(8,15),25)\nESCA A 13 A_SpawnItemEx(\"EscarooBomb\",0,0,160,random(7,13),0,random(8,15),45)\nESCA A 1 A_TakeInventory(\"CutterFlag\",999)\nGoto Look\nDeath:\nTNT1 A 0 A_ChangeFlag(\"NOGRAVITY\",1)\nESCA A 0 A_Stop\nESCA A 0 A_FaceTarget\nTNT1 A 0 A_Fall\nESCA AAAAAAAAAAAAAAAAAAAA 5 A_SpawnItemEx(\"BigEnemyExplode\",random(-128,128),random(-128,128),random(0,128))\nNAPA A 0 A_PlaySoundEx(\"weapon/drillexplode\", \"Voice\",0,1)\nNAPA EFGHIJKLMNOPQRS 2\nstop\n}\n}\n\nactor EscarooEyes\n{\nPROJECTILE\n+RIPPER\nDamage (0)\nRadius 32\nmeleerange 128\nHeight 16\nscale 2.5\nSpeed 45\nStates\n{\nSpawn:\nESCA E 1\nESCA E 0 A_ChangeVelocity(momx,momy,0,CVF_REPLACE)\nESCA E 2 A_Explode(55*ACS_NamedExecuteWithResult(\"sp_cbmHP\"),40,0)\nloop\nDeath:\nESCA EEEEEEEEEEEEE 2 A_Explode(3,40,0)\nReturn:\nESCA E 0 A_Explode(55*ACS_NamedExecuteWithResult(\"sp_cbmHP\"),40,0)\nESCA E 1 A_JumpIfCloser(64,\"Melee\")\nESCA E 1 A_FaceTarget\nESCA E 0 A_ChangeVelocity(20.0, 0.0, 0.0, CVF_RELATIVE|CVF_REPLACE)\nESCA E 0 A_GiveInventory(\"CutterFlag\",1)\nESCA E 1 A_JumpIfInventory(\"CutterFlag\",150,\"Nope\")\nloop\nMelee:\nESCA E 0 A_GiveToTarget(\"CutterFlag\",360)\nstop\nNope:\nESCA E 0\nstop\n}\n}\n\nactor EscarooBomb\n{\nPROJECTILE\n-NOGRAVITY\ndamage (0)\nscale 2.5\nHeight 8\nRadius 8\nSpeed 25\ndamagetype \"Misc\"\nStates\n{\nSpawn:\nTNT1 A 0\nESCA G 2 A_PlaySoundEx(\"enemy/cannon\",\"Body\")\nBomb:\nESCA FG 2\nloop\nDeath:\nCANN E 0 A_PlaySoundEx(\"weapon/coilexplode\",\"Body\")\nCANN E 0 A_Explode(35*ACS_NamedExecuteWithResult(\"sp_cbmHP\"),128,0)\nCANN E 0 A_Stop\nCANN E 0 A_ChangeFlag(\"NOGRAVITY\",1)\nNAPA EFGHIJKLMNOPQRS 2\nstop\n}\n}"
      },
      {
        "source": "pk3",
        "name": "actors/enemies/MMSP/Flea.txt",
        "contents": "actor Flea : GenericRobot 30002\n{\n//$Category MM8BDM-Enemies\nHeight 30\nRadius 30\nHealth 20\nscale 2.5\n//MeleeRange 60\nObituary \"%o was tickled by a Flea.\"\nmaxstepheight 50\n+DROPOFF\n+LOOKALLAROUND\n//dropitem \"BigWeaponEnergy\", 16\n//dropitem \"BigHealth\", 16\ndropitem \"WeaponEnergy\", 32\ndropitem \"SmallHealth\", 32\nspeed 0\nStates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 0 ACS_NamedExecuteAlways(\"sp_enemystart\",0)\nLook:\nFLEA A 1 A_LookEx(LOF_NOSOUNDCHECK,0,2000,0,360,\"See\")\nloop\nSee:\nFLEA AAAAAAAAAAAAAAA 1 A_Chase\nGoto Leap\nLeap:\nFLEA B 0 A_PlaySoundEx(\"weapon/crackermine\",\"voice\")\nFLEA B 0 A_FaceTarget\nFLEA B 0 A_Recoil(-23)\nFLEA B 10 ThrustThingZ(0,50,0,0)\nGoto Leaping\nLeaping:\nFLEA B 0 A_JumpIf(floorz-z==0,\"See\")\nFLEA B 1 A_Chase\nloop\nMelee:\nFLEA A 0 A_FaceTarget\nFLEA A 0 A_CustomMeleeAttack(15*ACS_NamedExecuteWithResult(\"sp_cbmHP\"))\nFLEA B 12\nGoto See\nDeath:\nFLEA A 0 A_Stop\nBLAD A 0 A_ChangeFlag(\"NOGRAVITY\",1)\nFLEA A 0 A_Pain\nFLEA A 0 A_Fall\nMMFX BCDE 3\nTNT1 A -1\nstop\n}\n}"
      },
      {
        "source": "pk3",
        "name": "actors/enemies/MMSP/FlyingShell.txt",
        "contents": "actor FlyingShell : GenericRobot 30009\n{\n//$Category MM8BDM-Enemies\nHeight 40\nRadius 32\nHealth 25\ndamagetype \"Enemy\"\nObituary \"%o was Shell Shocked by a Flying Shell.\"\n+FLOAT\n+NOGRAVITY\n+INVULNERABLE\n+LOOKALLAROUND\nFloatSpeed 10\nfastspeed 10\n//dropitem \"BigWeaponEnergy\", 32\n//dropitem \"BigHealth\", 32\ndropitem \"WeaponEnergy\", 16\ndropitem \"SmallHealth\", 16\nspeed 7\nStates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 0 ACS_NamedExecuteAlways(\"sp_enemystart\",0)\nLook:\nBLAD A 0 A_ChangeFlag(\"INVULNERABLE\",1)\nSHEL A 4 A_LookEx(LOF_NOSOUNDCHECK,0,0,0,360,\"See\")\nGoto Look+1\nSee:\nSHEL AAAAAAAAAAAAAAAAAAAAAAAAAAA 1 A_Chase\nSHEL A 0 A_JumpIfTargetInLOS(\"Shoot\")\nloop\nShoot:\nBLAD A 0 A_ChangeFlag(\"INVULNERABLE\",0)\nSHEL A 0 A_FaceTarget\nKYOR F 0 A_PlaySoundEx(\"misc/devilfire\",\"Voice\")\nSWBM B 0 A_SpawnItemEx(\"ShellShot\",0,0,20,50,0,0)\nSWBM B 0 A_SpawnItemEx(\"ShellShot\",0,0,20,0,50,0)\nSWBM B 0 A_SpawnItemEx(\"ShellShot\",0,0,20,-50,0,0)\nSWBM B 0 A_SpawnItemEx(\"ShellShot\",0,0,20,0,-50,0)\nSWBM B 0 A_SpawnItemEx(\"ShellShot\",0,0,20,50,50,0)\nSWBM B 0 A_SpawnItemEx(\"ShellShot\",0,0,20,50,-50,0)\nSWBM B 0 A_SpawnItemEx(\"ShellShot\",0,0,20,-50,50,0)\nSWBM B 0 A_SpawnItemEx(\"ShellShot\",0,0,20,-50,-50,0)\nSWBM B 0 A_SpawnItemEx(\"ShellShot\",0,0,20,50,0,20)\nSWBM B 0 A_SpawnItemEx(\"ShellShot\",0,0,20,0,50,20)\nSWBM B 0 A_SpawnItemEx(\"ShellShot\",0,0,20,-50,0,20)\nSWBM B 0 A_SpawnItemEx(\"ShellShot\",0,0,20,0,-50,20)\nSWBM B 0 A_SpawnItemEx(\"ShellShot\",0,0,20,50,50,20)\nSWBM B 0 A_SpawnItemEx(\"ShellShot\",0,0,20,50,-50,20)\nSWBM B 0 A_SpawnItemEx(\"ShellShot\",0,0,20,-50,50,20)\nSWBM B 0 A_SpawnItemEx(\"ShellShot\",0,0,20,-50,-50,20)\nSWBM B 0 A_SpawnItemEx(\"ShellShot\",0,0,20,50,0,-20)\nSWBM B 0 A_SpawnItemEx(\"ShellShot\",0,0,20,0,50,-20)\nSWBM B 0 A_SpawnItemEx(\"ShellShot\",0,0,20,-50,0,-20)\nSWBM B 0 A_SpawnItemEx(\"ShellShot\",0,0,20,0,-50,-20)\nSWBM B 0 A_SpawnItemEx(\"ShellShot\",0,0,20,50,50,-20)\nSWBM B 0 A_SpawnItemEx(\"ShellShot\",0,0,20,50,-50,-20)\nSWBM B 0 A_SpawnItemEx(\"ShellShot\",0,0,20,-50,50,-20)\nSWBM B 0 A_SpawnItemEx(\"ShellShot\",0,0,20,-50,-50,-20)\nSHEL B 5\nSHEL B 15\nSHEL A 0 A_ChangeFlag(\"INVULNERABLE\",1)\nGoto See\nDeath:\nBLAD A 0 A_Pain\nBLAD A 0 A_Fall\nBLAD A 0 A_ChangeFlag(\"NOGRAVITY\",1)\nMMFX BCDE 3\nTNT1 A 1\nstop\n}\n}\n\nactor ShellShot\n{\nPROJECTILE\nRadius 10\ndamagetype \"Enemy\"\nHeight 5\nDamage (12*ACS_NamedExecuteWithResult(\"sp_cbmHP\"))\nSpeed 50\nscale 2.5\ntranslation \"198:198=216:216\"\nStates\n{\nSpawn:\nSWBM E 1\nloop\n}\n}"
      },
      {
        "source": "pk3",
        "name": "actors/enemies/MMSP/GiantMetall.txt",
        "contents": "actor GiantMetall : GenericRobot 30017\n{\n//$Category MM8BDM-Enemies\nHealth 360\nHeight 128\nRadius 64\nObituary \"%o was destroyed by a giant metall.\"\n+SOLID\nmaxstepheight 50\n+DROPOFF\n+NOGRAVITY\n+FLOAT\nfloatspeed 4\n+LOOKALLAROUND\n+DONTBLAST\nspeed 4\ndropitem \"BigWeaponEnergy\", 64\ndropitem \"BigHealth\", 64\ndropitem \"WeaponEnergy\", 32\ndropitem \"SmallHealth\", 32\nStates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 0 ACS_NamedExecuteAlways(\"sp_enemystart\",0)\nLook:\nGMET AB 5 A_LookEx(LOF_NOSOUNDCHECK,0,0,0,360,\"See\")\nLoop\nSee:\nGMET AAAAABBBBBAAAAABBBBBAAAAABBBBBAAAAABBBBBAAAAABBBBBAAAAABBBBBAAAAABBBBB 1 A_Chase(\"\",\"\")\nGMET A 0 A_LookEx(LOF_NOSOUNDCHECK,0,2000,0,360,\"Missile\")\nloop\nMissile:\nGMET A 0 A_FaceTarget\nGMET A 0 A_PlaySoundEx(\"enemy/cannon\",\"Voice\")\nGMET A 0 A_CustomMissile(\"GiantMetallBall\",16,0,0)\nGMET A 0 A_CustomMissile(\"GiantMetallBall\",16,0,16)\nGMET A 0 A_CustomMissile(\"GiantMetallBall\",16,0,-16)\nGoto See\nDeath:\nGMET A 0 A_ChangeFlag(\"NOGRAVITY\",1)\nGMET A 0 A_Stop\nGMET A 0 A_FaceTarget\nGMET ABABABABABABABABABAB 5 A_SpawnItemEx(\"BigEnemyExplode\",random(-128,128),random(-128,128),random(0,128))\nNAPA A 0 A_PlaySoundEx(\"weapon/drillexplode\", \"Voice\",0,1)\nNAPA EFGHIJKLMNOPQRS 2\nTNT1 A 1 A_Fall\nTNT1 A -1\nstop\n}\n}\n\nactor GiantMetallBall\n{\nPROJECTILE\ndamage (0)\nscale 2.5\nHeight 8\nRadius 8\nSpeed 25\ndamagetype \"Enemy\"\nStates\n{\nSpawn:\nCANN E 5\nloop\nDeath:\nCANN E 0 A_PlaySoundEx(\"weapon/coilexplode\",\"Body\")\nCANN E 0 A_Explode(40*ACS_NamedExecuteWithResult(\"sp_cbmHP\"),128,0)\nCANN E 0 A_Stop\nCANN E 0 A_ChangeFlag(\"NOGRAVITY\",1)\nNAPA EFGHIJKLMNOPQRS 2\nstop\n}\n}"
      },
      {
        "source": "pk3",
        "name": "actors/enemies/MMSP/GiantSpringer.txt",
        "contents": "actor GiantSpringer : GenericRobot 30016\n{\n//$Category MM8BDM-Enemies\nHeight 52\nRadius 52\nObituary \"%o was shot by a giant springer.\"\nHitObituary \"%o was bounced by a giant springer.\"\nHealth 150\nmaxstepheight 50\n+LOOKALLAROUND\ndropitem \"BigWeaponEnergy\", 64\ndropitem \"BigHealth\", 64\ndropitem \"WeaponEnergy\", 32\ndropitem \"SmallHealth\", 32\nspeed 2\nmeleerange 60\nStates\n{\nSpawn:\nTNT1 A 0\nTNT1 A 0 ACS_NamedExecuteAlways(\"sp_enemystart\",0)\nLook:\nGSPR A 5 A_LookEx(LOF_NOSOUNDCHECK,0,0,0,360,\"See\")\nGoto Look\nSee:\nGSPR AAAAABBBBBAAAAABBBBBAAAAABBBBBAAAAABBBBBAAAAABBBBBAAAAABBBBB 1 A_Chase(\"Melee\",\"\")\nGSPR A 0 A_LookEx(LOF_NOSOUNDCHECK,0,6000,0,360,\"Missile\")\nGoto See\nMissile:\nGSPR A 0 A_FaceTarget\nGSPR A 0 A_PlaySoundEx(\"weapon/magnetmissile\",\"Voice\")\nGSPR A 0 A_CustomMissile(\"SpringerHomingMissile\",64,0,0)//A_SpawnItemEx(\"SpringerHomingMissile\",0,0,64,0,0,12,0)\nGoto See\nMelee:\nGSPR D 0 A_CustomMeleeAttack(45*ACS_NamedExecuteWithResult(\"sp_cbmHP\"))\nGSPR D 0 A_FaceTarget\nGSPR CDEDCDEDCDEDCDEDCDED 4\nGoto See\nDeath:\nCRAZ A 0 A_Pain\nCRAZ A 0 A_Fall\nCRAZ A 0 A_SpawnItem(\"EnemyDeathFX\",0,32)\nTNT1 A -1\nstop\n}\n}\n\nactor SpringerHomingMissile// : MageStaffFX2\n{\n+MISSILE\n+NOGRAVITY\n-NOBLOCKMAP\n-SOLID\n+SHOOTABLE\n+SEEKERMISSILE\ndamagetype \"Enemy\"\nHealth 10\nHeight 16\nRadius 16\nscale 2.5\nspeed 13\nDamage (9*ACS_NamedExecuteWithResult(\"sp_cbmHP\"))\nStates\n{\nSpawn:\nGSPR F 0\nGSPR F 10  A_ChangeVelocity(0.0,0.0,12.0,CVF_RELATIVE|CVF_REPLACE)// A_GiveInventory(\"CutterFlag\",1)\nGoto See\nSee:\nGSPR G 15 A_ChangeVelocity(12.0,0.0,0.0,CVF_RELATIVE|CVF_REPLACE)\nSee2:\nGSPR G 1  A_SeekerMissile(2, 10)//A_MStaffTrack\nloop\nDeath:\nCRAZ A 0 A_SpawnItem(\"EnemyDeathFX\",0,32)\nstop\n}\n}"
      },
      {
        "source": "pk3",
        "name": "actors/enemies/MMSP/Gyotot.txt",
        "contents": "actor Gyotot : GenericRobot 30024\n{\n//$Category MM8BDM-Enemies\nHealth 40\nHeight 50\nRadius 32\nObituary \"%o was chomped by a Gyotot.\"\n+SOLID\nmaxstepheight 50\n+DROPOFF\n+NOCLIP\n+LOOKALLAROUND\n+DONTBLAST\nspeed 18\nmeleerange 64\n//dropitem \"BigWeaponEnergy\", 64\n//dropitem \"BigHealth\", 64\ndropitem \"WeaponEnergy\", 32\ndropitem \"SmallHealth\", 32\nStates\n{\nSpawn:\nTNT1 A 0 A_ChangeFlag(\"NOCLIP\",1)\nTNT1 A 0 ACS_NamedExecuteAlways(\"sp_enemystart\",0)\nGoto Look\nLook:\nGYOT AB 6 A_LookEx(LOF_NOSOUNDCHECK,0,2000,0,360,\"See\")\nloop\nSee:\nTNT1 A 0 A_ChangeFlag(\"NOCLIP\",0)\nGYOT AAAABBBB 1 A_Chase\nloop\nMelee:\nMissile:\nGYOT C 0 A_FaceTarget\nGYOT C 0 ThrustThingZ(0,40,0,0)\nGYOT C 4 A_Recoil(-12)// A_ChangeVelocity(8.0, 0.0, 10.0, CVF_RELATIVE|CVF_REPLACE)\nLeaping:\nGYOT C 0 A_SpawnItemEx(\"GyototDamager\",0,0,16,20,0,0)\nGYOT CCCCDDDD 1 A_JumpIf(z-floorz==0, \"See\")\nloop\nDeath:\nGYOT A 0 A_Stop\nGYOT A 0 A_Pain\nGYOT A 0 A_Fall\nGYOT A 0 A_ChangeFlag(\"NOGRAVITY\",1)\nMMFX BCDE 3\nTNT1 A -1\nstop\n}\n}\n\nactor GyototDamager\n{\nPROJECTILE\ndamage (6*ACS_NamedExecuteWithResult(\"sp_cbmHP\"))\nscale 2.5\nHeight 10\nRadius 32\nSpeed 25\ndamagetype \"Enemy\"\nrenderstyle none\nStates\n{\nSpawn:\nCANN E 3\nstop\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.