Raw model (for completeness)
{
"meta": {
"id": "06c30acf-b7ba-4a62-aef8-267f18a6a0d4",
"sha1": "76586e2b1259f1d74a4cc4df5de7ffae3559f137",
"sha256": "ed78345ebe1747afc23b3f8fa1caab2eb06c74a91092cc23959cc8fe5d421f31",
"filenames": [
"bloodydoom64gunsv3-monstercompat.pk3"
],
"additional": {
"engines": [],
"iwad": [],
"filename": null,
"added": "2021-01-10 03:18:31",
"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-01-10 03:18:31",
"file": {
"type": "PK3",
"size": 3089614,
"url": "https://wadarchive2.nyc3.digitaloceanspaces.com/76586e2b1259f1d74a4cc4df5de7ffae3559f137/76586e2b1259f1d74a4cc4df5de7ffae3559f137.pk3.gz",
"corrupt": false
},
"content": {
"counts": {
"endoom": 0,
"graphics": 0,
"lumps": 202,
"maps": 0,
"palettes": 0
}
},
"text_files": [
{
"source": "pk3",
"name": "ACSGore.txt",
"contents": "#library \"ACSGORE\"\n#include \"zcommon.acs\"\n\nscript \"BBGORE_CheckKill\" KILL\n{\n\n\t//First we check if it's actually a monster, and if it bleeds.\n\tif (CheckFlag(0, \"ISMONSTER\") || !CheckFlag(0, \"NOBLOOD\"))\n\t\t{\n\t\t//To make an enemy spawn green blood, set it's \"accuracy\" 999, or 998 for blue.\n\t\t//\"Accuracy\" has nothing to do with the monster's actual accuracy, it's a compatibility\n\t\t//script only used in Strife that has no actual practical use, but can be used to track a\n\t\t//generic thing type with GetActorProperty. It's a way to tell the engine that anything with\n\t\t//the \"Accuracy\" property set to 999 should spawn green gibs.\n\t\t//A simpler solution would be checking APROP_NameTag to check if its a Baron or a Cacodemon, but\n\t\t//this wouldn't solve the issue with blood hit actors, since it's impossible to change the\n\t\t//BloodColor property of a monster without changing it's DECORATE script directly (wish the\n\t\t//GZDoom and Zandro devs could had fixed the monster blood bug by default)\n\t\t//This section of the script is entirely irrelevant if you are porting the system to your mod.\n\n\t\t\t\t\t//Checks if the monster is marked to spawn green blood.\n\t\t\t\t\tif (GetActorProperty(0, APROP_Accuracy) == 999) {\n\t\t\t\t\t\tif (GetActorProperty(0, APROP_Health) < (GetCvar(\"bd_mingibhealth\")))\n\t\t\t\t\t\t{\n\t\t\t\t\t\tSpawn(\"BBGreenGoreSpawn\", GetACtorX(0), GetACtorY(0), GetActorZ(0));\n\t\t\t\t\t\tSetActorProperty(0, APROP_ScaleX, 0.001); SetActorProperty(0, APROP_ScaleY, 0.001); SetActorProperty(0, APROP_NoTarget, 1);\n\t\t\t\t\t\tterminate;}\n\t\t\t\t\t\tSpawn(\"GreenGrowingBloodPool\", GetACtorX(0), GetACtorY(0), GetActorZ(0));\n\t\t\t\t\t\tterminate;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t//Checks if the monster is marked to spawn blue blood.\n\t\t\t\t\tif (GetActorProperty(0, APROP_Accuracy) == 998) {\n\t\t\t\t\t\tif (GetActorProperty(0, APROP_Health) < (GetCvar(\"bd_mingibhealth\")))\n\t\t\t\t\t\t{\n\t\t\t\t\t\tSpawn(\"BBBlueGoreSpawn\", GetACtorX(0), GetACtorY(0), GetActorZ(0));\n\t\t\t\t\t\tSetActorProperty(0, APROP_ScaleX, 0.001); SetActorProperty(0, APROP_ScaleY, 0.001); SetActorProperty(0, APROP_NoTarget, 1);\n\t\t\t\t\t\tterminate;}\n\n\t\t\t\t\t\tSpawn(\"BlueGrowingBloodPool\", GetACtorX(0), GetACtorY(0), GetActorZ(0));\n\t\t\t\t\t\tterminate;\n\t\t\t\t\t\t}\n\n\t//Now that the issue with colored blood monsters is solved, let's spawn the regular red blood.\n\n\t\t\t\t//Minimal health for gibbing.\n\t\t\t\tif (GetActorProperty(0, APROP_Health) < (GetCvar(\"bd_mingibhealth\")))\n\t\t\t\t\t{\n\n\t\t\t\t\t//Possibly a Lost Soul or something similar, don't spawn anything.\n\t\t\t\t\tif (GetActorProperty(0, APROP_RenderStyle) != STYLE_Normal) {\tterminate;}\n\n\t\t\t\t\t//Possibly a tiny thing like a rat or a spider.\n\t\t\t\t\tif (GetActorProperty(0, APROP_Height) < 9.0) {\n\t\t\t\t\tSpawn(\"MeatDeathTiny\", GetACtorX(0), GetACtorY(0), GetActorZ(0));\n\t\t\t\t\tSetActorFlag(0, \"NOINTERACTION\", 1);\n\t\t\t\t\tSetActorProperty(0, APROP_ScaleX, 0.001); SetActorProperty(0, APROP_ScaleY, 0.001); SetActorProperty(0, APROP_NoTarget, 1);\n\t\t\t\t\tdelay(100);\n\t\t\t\t\tThing_remove(0);\n\t\t\t\t\tterminate;}\n\n\t\t\t\t\t//Possibly a medium thing like a dog.\n\t\t\t\t\tif (GetActorProperty(0, APROP_Height) < 38.0) {\n\t\t\t\t\tSpawn(\"MeatDeathSmall\", GetACtorX(0), GetACtorY(0), GetActorZ(0));\n\t\t\t\t\tSetActorFlag(0, \"NOINTERACTION\", 1);\n\t\t\t\t\tSetActorProperty(0, APROP_ScaleX, 0.001); SetActorProperty(0, APROP_ScaleY, 0.001); SetActorProperty(0, APROP_NoTarget, 1);\n\t\t\t\t\tdelay(100);\n\t\t\t\t\tThing_remove(0);\n\t\t\t\t\tterminate;}\n\n\t\t\t\t\t//Normal gibs\n\t\t\t\t\tSpawn(\"MeatDeath\", GetACtorX(0), GetACtorY(0), GetActorZ(0));\n\n\t\t\t\t\t//Might be a large enemy, like a Cacodemon or a Mancubus, spawn extra gibs.\n\t\t\t\t\tif (GetActorProperty(0, APROP_Radius) > 28.0) {\tSpawn(\"MeatDeathFat\", GetACtorX(0), GetACtorY(0), GetActorZ(0));}\n\n\t\t\t\t\t//Might be a huge enemy, like a Cyberdemon, spawn extra gibs.\n\t\t\t\t\tif (GetActorProperty(0, APROP_Height) > 80.0){\tSpawn(\"MeatDeathGiant\", GetACtorX(0), GetACtorY(0), GetActorZ(0));}\n\t\t\t\t\tSetActorFlag(0, \"NOINTERACTION\", 1);\n\t\t\t\t\tSetActorProperty(0, APROP_ScaleX, 0.001); SetActorProperty(0, APROP_ScaleY, 0.001); SetActorProperty(0, APROP_NoTarget, 1);\n\t\t\t\t\tdelay(200);\n\t\t\t\t\tThing_remove(0);\n\t\t\t\t\tterminate;\n\t\t\t\t\t}\n\n\t\t\tdelay(35);\n\t\t\tSpawn(\"GrowingBloodPool\", GetACtorX(0), GetACtorY(0), GetActorZ(0));\n\t\t}\n\n}\n\nScript \"BB_PlayerDeath\" DEATH\n{\n\t\tif (GetActorProperty(0, APROP_Health) < (GetCvar(\"bd_mingibhealth\")))\n\t\t\t{\n\t\t\tSpawn(\"MeatDeath\", GetACtorX(0), GetACtorY(0), GetActorZ(0));\n\t\t\tSetActorState(0, \"Xdeath\");\n\t\t\t}\n\t\tdelay(35);\n\t\tSpawn(\"GrowingBloodPool\", GetACtorX(0), GetACtorY(0), GetActorZ(0));\n}\n\nScript \"BD_CheckBloodIntensity\" (VOID)\n{\n\n\tif\t(GetCvar(\"isrunningzandronum\") == 1)\n\t{\n\tif\t(GetCvar( \"bd_bloodamount\") == 0) { SetActorState(0,\"LowBlood\"); }\n\tif\t(GetCvar( \"bd_bloodamount\") == 1) { SetActorState(0,\"LowBlood\"); }\n\tif\t(GetCvar( \"bd_bloodamount\") == 3) { SetActorState(0,\"LotsOfBlood\"); }\n\tif\t(GetCvar( \"bd_bloodamount\") >= 4) { SetActorState(0,\"AbsurdBlood\"); }\n\t}\n\n\tif\t(GetCvar(\"isrunningzandronum\") == 0)\n\t{\n\tif\t(GetCvar(\"zdoombrutalblood\") == 0) { SetActorState(0,\"LowBlood\"); }\n\tif\t(GetCvar(\"zdoombrutalblood\") == 1) { SetActorState(0,\"LowBlood\"); }\n\tif\t(GetCvar(\"zdoombrutalblood\") == 3) { SetActorState(0,\"LotsOfBlood\"); }\n\tif\t(GetCvar(\"zdoombrutalblood\") == 4) { SetActorState(0,\"AbsurdBlood\"); }\n\t}\n\n\tif\t(GetCvar(\"isrunningzandronum\") == 1)\n\t{\n\t\tif\t(GetCvar(\"bd_bloodamount\") >= 5)\n\t\t\t{\n\t\t\tSetActorState(0,\"AbsurdBlood\");\n\t\t\tGiveInventory(\"AnimuGore\", 1);\n\t\t\t}\n\t}\n\n\tif\t(GetCvar(\"isrunningzandronum\") == 0)\n\t{\n\tif\t(GetCvar(\"zdoombrutalblood\") >= 5)\n\t\t{\n\t\tSetActorState(0,\"AbsurdBlood\");\n\t\tGiveInventory(\"AnimuGore\", 1);\n\t\t}\n\t}\n\n}\n\nScript \"BD_CheckIfLowBlood\" (VOID)\n{\nif\t(GetCvar(\"bd_bloodamount\") == 1) { SetActorState(0,\"Vanish\"); }\nif\t(GetCvar(\"bd_bloodamount\") == 0) { SetActorState(0,\"Vanish\"); }\n}\n\nscript \"BD_CheckIfOverLiquid\" (void) //Water Small Splash\n{\n\tif (CheckActorFloorTexture(0, \"FWATER1\")) GiveInventory(\"IsOverWater\", 1);\n\tif (CheckActorFloorTexture(0, \"FWATER2\")) GiveInventory(\"IsOverWater\", 1);\n\tif (CheckActorFloorTexture(0, \"FWATER3\")) GiveInventory(\"IsOverWater\", 1);\n\tif (CheckActorFloorTexture(0, \"FWATER4\")) GiveInventory(\"IsOverWater\", 1);\n\n if (CheckActorFloorTexture(0, \"NUKAGE1\")) GiveInventory(\"IsOverNukage\", 1);\n if (CheckActorFloorTexture(0, \"NUKAGE2\")) GiveInventory(\"IsOverNukage\", 1);\n if (CheckActorFloorTexture(0, \"NUKAGE3\")) GiveInventory(\"IsOverNukage\", 1);\n if (CheckActorFloorTexture(0, \"NUKAGE4\")) GiveInventory(\"IsOverNukage\", 1);\n\n if (CheckActorFloorTexture(0, \"SLIME01\")) GiveInventory(\"IsOverSlime\", 1);\n if (CheckActorFloorTexture(0, \"SLIME02\")) GiveInventory(\"IsOverSlime\", 1);\n if (CheckActorFloorTexture(0, \"SLIME03\")) GiveInventory(\"IsOverSlime\", 1);\n if (CheckActorFloorTexture(0, \"SLIME04\")) GiveInventory(\"IsOverSlime\", 1);\n if (CheckActorFloorTexture(0, \"SLIME05\")) GiveInventory(\"IsOverSlime\", 1);\n if (CheckActorFloorTexture(0, \"SLIME06\")) GiveInventory(\"IsOverSlime\", 1);\n if (CheckActorFloorTexture(0, \"SLIME07\")) GiveInventory(\"IsOverSlime\", 1);\n if (CheckActorFloorTexture(0, \"SLIME08\")) GiveInventory(\"IsOverSlime\", 1);\n\n if (CheckActorFloorTexture(0, \"SLIME09\")) GiveInventory(\"IsOverLava\", 1);\n if (CheckActorFloorTexture(0, \"SLIME10\")) GiveInventory(\"IsOverLava\", 1);\n if (CheckActorFloorTexture(0, \"SLIME11\")) GiveInventory(\"IsOverLava\", 1);\n if (CheckActorFloorTexture(0, \"SLIME12\")) GiveInventory(\"IsOverLava\", 1);\n\n if (CheckActorFloorTexture(0, \"LAVA1\")) GiveInventory(\"IsOverLava\", 1);\n if (CheckActorFloorTexture(0, \"LAVA2\")) GiveInventory(\"IsOverLava\", 1);\n if (CheckActorFloorTexture(0, \"LAVA3\")) GiveInventory(\"IsOverLava\", 1);\n if (CheckActorFloorTexture(0, \"LAVA4\")) GiveInventory(\"IsOverLava\", 1);\n\n if (CheckActorFloorTexture(0, \"BLOOD1\")) GiveInventory(\"IsOverBlood\", 1);\n if (CheckActorFloorTexture(0, \"BLOOD2\")) GiveInventory(\"IsOverBlood\", 1);\n if (CheckActorFloorTexture(0, \"BLOOD3\")) GiveInventory(\"IsOverBlood\", 1);\n if (CheckActorFloorTexture(0, \"BLOOD4\")) GiveInventory(\"IsOverBlood\", 1);\n}"
},
{
"source": "pk3",
"name": "Blood.txt",
"contents": "//All the liquid gore stuff goes here.\n\n//Hit puff actor\n\nactor Bolognese_Blood Replaces Blood\n{\n\tDecal BrutalBloodSplat\n\tRenderstyle Translucent\n\t+FORCEXYBILLBOARD\n\t+THRUACTORS\n\t+CLIENTSIDEONLY\n\t+NOGRAVITY\n\tScale 0.8\n\tAlpha 0.7\n\tMass 999999\n\t states\n\t {\n\t Spawn:\n\t\t\tBSPR A 0\n\t\t\tTNT1 A 0 A_CustomMissile (\"SuperGoreMistTiny\", 0, 0, random (0, 360), 2, random (0, 90))\n\t\t\tTNT1 A 0 A_JumpIf(waterlevel > 1, \"Splash\")\n\t\t\tTNT1 A 0 ACS_NamedExecuteAlways(\"BD_CheckBloodIntensity\")\n\t\t\tTNT1 A 0\n\t\t\tTNT1 A 0 A_PlaySound(\"misc/xdeath5\")\n\t\t\tBSPR A 2\n\t\t\tTNT1 A 0 A_CustomMissile (\"WaterBloodCHecker\", 7, 0, random (0, 360), 2, random (30, 60))\n\t\tSpawn2:\n\t\t\tTNT1 A 0 A_CustomMissile (\"BD_FlyingBlood\", 7, 0, random (0, 360), 2, random (30, 60))\n\t\t\tTNT1 A 0 A_CustomMissile (\"BD_FlyingBloodTrail\", 0, 0, random (0, 360), 2, random (20, 90))\n\t\t\tGoto Live\n\t\tSplash:\n\t\t\tBLOD A 0\n\t\t\tTNT1 AAA 0 A_CustomMissile (\"Underblood1\", 7, 0, random (0, 360), 2, random (30, 150))\n\t\t\tstop\n\t\tLotsOfBlood:\n\t\t TNT1 A 0\n\t\t TNT1 AAAA 0 A_CustomMissile (\"BloodMistSmall\", 0, 0, random (0, 360), 2, random (0, 90))\n\t\t TNT1 AAAAA 0 A_CustomMissile (\"BD_FlyingBlood\", 7, 0, random (0, 360), 2, random (30, 70))\n\t\t TNT1 A 0 A_CustomMissile (\"SuperWallRedBlood\", 0, 0, random (0, 360), 2, random (-15, 15))\n\t\t TNT1 AAAA 0 A_CustomMissile (\"BD_FlyingBloodTrail\", 0, 0, random (0, 360), 2, random (0, 90))\n\t\t Goto Live\n\t\tAbsurdBlood:\n\t\t TNT1 A 2\n\t\t TNT1 AAAA 0 A_CustomMissile (\"SuperWallRedBlood\", 0, 0, random (0, 360), 2, random (-15, 15))\n\t\t TNT1 A 0 A_JumpIfInventory(\"AnimuGore\", 1, \"AnimuGore\")\n\t\t TNT1 AA 0 A_CustomMissile (\"BloodMist\", 0, 0, random (0, 360), 2, random (0, 90))\n\t\t TNT1 AAA 0 A_CustomMissile (\"BD_FlyingBloodMuchFaster\", 7, 0, random (0, 360), 2, random (10, 50))\n\t\t TNT1 A 0 A_CustomMissile (\"BD_FlyingBloodMuchFaster\", 7, 0, random (0, 360), 2, random (40, 60))\n\t\t TNT1 A 0 A_CustomMissile (\"BloodmistSmall\", 7, 0, random (0, 360), 2, random (30, 90))\n\t\t TNT1 A 0 A_CustomMissile (\"SuperGoreMist\", 0, 0, random (0, 360), 2, random (10, 90))\n\t\t TNT1 AAAAA 0 A_CustomMissile (\"BD_FlyingBlood\", 7, 0, random (0, 360), 2, random (30, 70))\n\t\t TNT1 AAA 0 A_CustomMissile (\"BloodmistSpray\", 0, 0, random (0, 360), 2, random (20, 90))\n\t\t Goto Live\n\t\t AnimuGore:\n\t\t TNT1 AAA 0 A_CustomMissile (\"BD_FlyingBloodMuchFaster\", 7, 0, random (0, 360), 2, random (10, 50))\n\t\t TNT1 A 0 A_CustomMissile (\"SuperWallRedBlood\", 0, 0, random (0, 360), 2, random (-15, 15))\n\t\t TNT1 A 0 A_CustomMissile (\"BD_FlyingBloodMuchFaster\", 7, 0, random (0, 360), 2, random (40, 60))\n\t\t TNT1 AAAAAAA 0 A_CustomMissile (\"BD_FlyingBlood\", 7, 0, random (0, 360), 2, random (30, 70))\n\t\t TNT1 AAAAAAAAA 0 A_CustomMissile (\"XDeath1\", 0, 0, random (0, 360), 2, random (40, 80))\n\t\t TNT1 A 0 A_CustomMissile (\"SuperGoreSpawner\", 0, 0, random (0, 360), 2, random (10, 90))\n\t\t TNT1 AAAAA 0 A_CustomMissile (\"BloodmistSpray\", 0, 0, random (0, 360), 2, random (20, 90))\n\t\t BSPR ABCDEFG 1\n\t\t BSPR GGGGG 1 A_FadeOut(0.1)\n\t\t Stop\n\t\t LowBlood:\n\t\t Live:\n\t\t\tTNT1 A 0 A_Stop\n\t\t\tBSPR ABCDEFGHI 1\n\t\t\tStop\n\n\t\tSpawnPlayer:\n\t\t\tTNT1 A 0\n\t\t\tTNT1 A 0 A_CustomMissile (\"SuperGoreMistTiny\", 0, 0, random (0, 360), 2, 0)\n\t\t\tTNT1 A 0 A_CustomMissile (\"BD_FlyingBlood\", 7, 0, random (0, 360), 2, random (30, 60))\n\t\t\tTNT1 A 0 A_CustomMissile (\"BD_FlyingBloodTrail\", 0, 0, random (0, 360), 2, random (20, 90))\n\t\t\tGoto Live\n\t }\n}\n\n//Dummy actor just to replace the bloodpuff made by Hexen axe\nactor SawBlood : Bolognese_Blood Replaces AxeBlood\n{\n-ALLOWPARTICLES\nSpeed 0\n states\n {\n Spawn:\n TNT1 A 0\n\t\tTNT1 AA 0 A_CustomMissile (\"BloodMistSmall\", 0, 0, random (0, 360), 2, random (0, 90))\n\t\tTNT1 AA 0 A_CustomMissile (\"XDeath1\", 0, 0, random (0, 360), 2, random (40, 80))\n\t\tTNT1 AAA 0 A_CustomMissile (\"BD_FlyingBlood\", 0, 0, random (0, 360), 2, random (30, 60))\n\t\tTNT1 A 0 Radius_Quake (2, 2, 0, 2, 0)\n\t\tTNT1 A 0 ACS_NamedExecuteAlways(\"BD_CheckBloodIntensity\")\n\t\tTNT1 A 0 A_Stop\n\t\tTNT1 A 2\n\t\tGoto Spawn2\n }\n}\n\n//Dummy actor just to replace the bloodpuff made by projectiles\nactor BloodSPlatterReplacer : Bolognese_Blood Replaces BloodSplatter\n{\n}\n\n//Base flying blood actor. Leaves bloodspots on the floor\nACTOR BD_FlyingBlood\n{\n scale 0.6\n speed 4\n radius 8\n height 1\n Alpha 0.6\n Decal BrutalBlood\n Mass 1\n +MISSILE\n +CLIENTSIDEONLY\n +NOTELEPORT\n +NOBLOCKMAP\n +THRUACTORS\n +FORCEXYBILLBOARD\n +MOVEWITHSECTOR\n +DONTSPLASH\n States\n {\n Spawn:\n\t\t\tTNT1 A 0\n\t\t\tTNT1 A 0 A_JumpIf(waterlevel > 1, \"Splash\")\n\t\t\tTNT1 A 0 A_Jump(255, \"Spawn1\", \"Spawn2\", \"Spawn3\", \"Live\")\n\t Spawn1:\n\t\t\tTNT1 A 0\n\t\t\tTNT1 A 0 A_SetScale(-0.4, 0.4)\n\t\t\tGoto live\n\n\tSpawn2:\n\t\t\tTNT1 A 0\n\t\t\tTNT1 A 0 A_SetScale(-0.45, -0.45)\n\t\t\tGoto live\n\n\tSpawn3:\n\t\t\tTNT1 A 0\n\t\t\tTNT1 A 0 A_SetScale(0.5, -0.5)\n\t\t\tGoto live\n\n\t Live:\n\t\t\tBLHT BCDEFG 1\n\t\t\tTNT1 A 0\n\t\t\tBLHT HHHHH 100 A_JumpIf(waterlevel > 1, \"Splash\")\n\t\t\tStop\n\n\tSplash:\n\t\t\tBLOD A 0\n\t\t\tTNT1 A 0 A_SpawnItem (\"Underblood2\")\n\t\t\tstop\n\n Death:\n\t\t\tTNT1 A 0\n\t\t\tTNT1 A 0 A_PlaySound(\"blooddrop2\")\n\t\t\tTNT1 A 0 A_CheckFloor(\"DeathFloor\")\n\t\t\tTNT1 A 1\n\t\t\tStop\n\n\t\tDeathFloor:\n\t\t\tTNT1 A 0\n\t\t\tTNT1 A 0 A_SpawnItemEx (\"Bolognese_BloodSpot\",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION | SXF_TRANSFERTRANSLATION,0)\n\t\t\tTNT1 A 0 A_PlaySound(\"blooddrop2\")\n\t\t BL8A ABCDEF 2\n\t\t\tStop\n\n\t\tNoSpawn:\n\t\t\tTNT1 A 0\n\t\t\tStop\n\n }\n}\n\n//Faster version used in some specific cases\nACTOR BD_FlyingBloodMuchFaster: BD_FlyingBlood\n{\n\t Scale 1.0\n\t Speed 8\n}\n\nactor BD_FlyingBloodTrail\n{\n\tscale 0.25\n\tmass 1\n\trenderstyle Translucent\n\talpha 0.8\n\tDecal BrutalBloodSplat\n\t+NOTELEPORT\n\t+NOBLOCKMAP\n\t+FORCEXYBILLBOARD\n\t+CLIENTSIDEONLY\n\t+MISSILE\n\t+THRUACTORS\n\t+BOUNCEONWALLS\n\t+DONTSPLASH\n\tGravity 0.4\n\tSpeed 2\n\tstates\n\t{\n\t Spawn:\n\t\t TNT1 A 0 A_JumpIf(waterlevel > 1, \"Splash\")\n\t\t BLHT BCDEFG 1\n\t\t BLHT HHHHHHHHH 1 A_FadeOut(0.02)\n\t\t stop\n\n\tDeath:\n\t\tTNT1 A 0\n\t\tStop\n\n\tSplash:\n BLOD A 0\n\t\tTNT1 A 0 A_SpawnItem (\"Underblood2\")\n stop\n\n }\n}\n\nactor BD_FlyingBloodFaster: BD_FlyingBloodTrail\n{\nSpeed 4\n states\n {\n Spawn:\n\t TNT1 A 0 A_JumpIf(waterlevel > 1, \"Splash\")\n\t BLOD ABCDEFFFFFF 3\n\t stop\n }\n}\n\nACTOR BD_FlyingBloodFake: BD_FlyingBloodTrail\n{\n\tscale 0.5\n\tspeed 3\n\tGravity 0.3\n\tRenderstyle Translucent\n\tAlpha 0.95\n\t+NOCLIP\n Mass 1\n States\n {\n Spawn:\n\t TNT1 A 0 A_JumpIf(waterlevel > 1, \"Splash\")\n\t\tBLOD KKKKKKKKKKKK 1 A_FadeOut(0.05)\n Stop\n\tSplash:\n BLOD A 0\n\t\tTNT1 A 0 A_SpawnItem (\"Underblood2\")\n stop\n\tDeath:\n\t TNT1 A 10\n\t\tStop\n }\n}\n\nACTOR BD_FlyingBloodFakeNoDecal: BD_FlyingBloodFake { decal \"none\"}\n\nactor Bloodmist : BD_FlyingBlood\n{\n\t+BOUNCEONWALLS\n\tscale 0.8\n\tradius 2\n\theight 2\n\tspeed 8\n\tGravity 0.6\n\talpha 0.6\n\t states\n\t {\n\tSpawn:\n\t\t\tTNT1 A 0\n\t\t\tTNT1 A 0 A_Jump(255, \"Spawn1\", \"Spawn2\", \"Spawn3\", \"Live\")\n\t Spawn1:\n\t\t\tTNT1 A 0\n\t\t\tTNT1 A 0 A_SetScale(-0.8, 0.8)\n\t\t\tGoto live\n\n\tSpawn2:\n\t\t\tTNT1 A 0\n\t\t\tTNT1 A 0 A_SetScale(-0.9, -0.9)\n\t\t\tGoto live\n\n\tSpawn3:\n\t\t\tTNT1 A 0\n\t\t\tTNT1 A 0 A_SetScale(0.7, -0.7)\n\t\t\tGoto live\n\n\t Live:\n\t\t\tBLHT ABCDEFG 3\n\t\t\tTNT1 A 0\n\t\t\tBLHT HHHHH 100 A_JumpIf(waterlevel > 1, \"Splash\")\n\t\t\tStop\n\n\tDeath:\n\t\t TNT1 A 0\n\t\t Stop\n\t}\n}\n\nactor BloodmistSmall : Bloodmist\n{\n\tscale 0.5\n\tspeed 8\n\tGRAVITY 1.0\n\n\tstates\n\t {\n\tSpawn:\n\t\t\tTNT1 A 0\n\t\t\tTNT1 A 0 A_Jump(255, \"Spawn1\", \"Spawn2\", \"Spawn3\", \"Live\")\n\t Spawn1:\n\t\t\tTNT1 A 0\n\t\t\tTNT1 A 0 A_SetScale(-0.5, 0.5)\n\t\t\tGoto live\n\n\tSpawn2:\n\t\t\tTNT1 A 0\n\t\t\tTNT1 A 0 A_SetScale(-0.4, -0.4)\n\t\t\tGoto live\n\n\tSpawn3:\n\t\t\tTNT1 A 0\n\t\t\tTNT1 A 0 A_SetScale(0.5, -0.6)\n\t\t\tGoto live\n\t\t}\n}\n\nactor BloodmistBig : Bloodmist\n{\n\tscale 1\n\tspeed 5\n\tGRAVITY 0.4\n\n\tstates\n\t {\n\tSpawn:\n\t\t\tTNT1 A 0\n\t\t\tTNT1 A 0 A_Jump(255, \"Spawn1\", \"Spawn2\", \"Spawn3\", \"Live\")\n\t Spawn1:\n\t\t\tTNT1 A 0\n\t\t\tTNT1 A 0 A_SetScale(-1.1, 1.1)\n\t\t\tGoto live\n\n\tSpawn2:\n\t\t\tTNT1 A 0\n\t\t\tTNT1 A 0 A_SetScale(-0.9, -0.9)\n\t\t\tGoto live\n\n\tSpawn3:\n\t\t\tTNT1 A 0\n\t\t\tTNT1 A 0 A_SetScale(1.0, -1.0)\n\t\t\tGoto live\n\t\t}\n}\n\nactor BloodmistExtraBig : Bloodmist\n{\n\tscale 1.5\n\tspeed 5\n\tGRAVITY 0.4\n\n\tstates\n\t {\n\tSpawn:\n\t\t\tTNT1 A 0\n\t\t\tTNT1 A 0 A_Jump(255, \"Spawn1\", \"Spawn2\", \"Spawn3\", \"Live\")\n\t Spawn1:\n\t\t\tTNT1 A 0\n\t\t\tTNT1 A 0 A_SetScale(-1.6, 1.6)\n\t\t\tGoto live\n\n\tSpawn2:\n\t\t\tTNT1 A 0\n\t\t\tTNT1 A 0 A_SetScale(-1.5, -1.6)\n\t\t\tGoto live\n\n\tSpawn3:\n\t\t\tTNT1 A 0\n\t\t\tTNT1 A 0 A_SetScale(1.4, -1.5)\n\t\t\tGoto live\n\t\t}\n}\n\n//More wattery version\nactor BloodmistSpray : Bloodmist\n{\n\tscale 1.0\n\tGravity 0.4\n\t states\n\t\t{\n\t\tSpawn:\n\t\t\tBSPR ABCDEFGH 2\n\t\t\tBSPR H 200\n\t\t\tStop\n\t\t}\n}\n\n/////////////////////// BLOOD SPOTS //////////////////////////\n\n//base bloodspot actor\nACTOR Bolognese_BloodSpot\n{\n\tradius 2\n\theight 2\n\tmass 1\n\t+NOTELEPORT\n\t+CLIENTSIDEONLY\n\t+FORCEXYBILLBOARD\n\t+MOVEWITHSECTOR\n\t+FLOORCLIP\n\t+DONTSPLASH\n\t-SOLID\n\t+THRUACTORS\n\tAlpha 0.99\n\tScale 0.5\n\tDecal BrutalBloodSplat\n\tstates\n\t {\n\t Spawn:\n\t\t TNT1 A 0\n\t\t TNT1 A 0 A_JumpIf(waterlevel > 1, \"Splash\")\n\t\t TNT1 A 1\n\n\t\t TNT1 A 0 A_CheckFloor(\"SpawnNormally\")\n\t\t Goto Splash\n\n\tSpawnNormally:\n\tNULL A 1\n\tNULL A 0 A_Jump(255, \"Spawn1\", \"Spawn2\", \"Spawn3\", \"Spawn4\", \"Spawn5\", \"Spawn6\", \"spawn7\", \"spawn8\", \"spawn9\", \"live\")\n\n\tSpawn1:\n\tNULL A 0 A_SetScale(0.58, 0.58)\n\tGoto Live\n\n\tSpawn2:\n\tNULL A 0 A_SetScale(0.56, 0.56)\n\tGoto Live\n\n\tSpawn3:\n\tNULL A 0 A_SetScale(0.54, 0.54)\n\tGoto Live\n\n\tSpawn4:\n\tNULL A 0 A_SetScale(0.52, 0.52)\n\tGoto Live\n\n\tSpawn5:\n\tNULL A 0 A_SetScale(0.48, 0.48)\n\tGoto Live\n\n\tSpawn6:\n\tNULL A 0 A_SetScale(0.46, 0.46)\n\tGoto Live\n\n\tSpawn7:\n\tNULL A 0 A_SetScale(0.44, 0.44)\n\tGoto Live\n\n\tSpawn8:\n\tNULL A 0 A_SetScale(0.42, 0.42)\n\tGoto Live\n\n\tSpawn9:\n\tNULL A 0 A_SetScale(0.40, 0.40)\n\tGoto Live\n\n\tLive:\n\tTNT1 A 1\n\tTNT1 A 0 A_QueueCorpse\n\tTNT1 A 0 A_Jump(255, \"SpawnAFrameOnly\", \"SpawnBFrameOnly\", \"SpawnCFrameOnly\")\n\n\tSpawnAFrameOnly:\n\t\t\tBPDL A -1\n\t\t\tLoop\n\n\tSpawnBFrameOnly:\n\t\t\tBPDL B -1\n\t\t\tLoop\n\n\tSpawnCFrameOnly:\n\t\t\tBPDL C -1\n\t\t\tLoop\n\n\t\tSplash:\n\t\t\tBLOD A 0\n\t\t\tstop\n\n\t\tDeath:\n\t\t\tTNT1 A 0\n\t\t\tTNT1 A 0 A_NoBlocking\n\t\t\tStop\n\n\t\tIsOverLiquid:\n\t\t\tBPDL E 1 A_FadeOut(0.9)\n\t\t\tBPDL EEEEEEEEEEEEEEEEEEEE 4 A_FadeIn(0.05)\n\t\t\tBPDL E 400\n\t\t\tBPDL EEEEEEEEEEEEEEEEEEEE 4 A_FadeOut(0.05)\n\t\t\tStop\n\t}\n}\n\n//Bigger version for gibs\nActor BDLargeBloodSpot: Bolognese_BloodSpot {Mass 1}\n\n//a special flying blood actor that spawns muddy water pools over liquids\nACTOR WaterBloodCHecker\n{\n Speed 4\n Scale 1.2\n\tRadius 1\n\t+MISSILE\n\t+EXPLODEONWATER\n\t+CLIENTSIDEONLY\n\t+DOOMBOUNCE\n\tBounceFactor 0.01\n\tHeight 1\n SeeSound \"none\"\n DeathSound \"none\"\n\tDecal none\n\tStates\n {\n Spawn:\n\t TNT1 A 5\n Loop\n Death:\n TNT1 A 0\n\t\tTNT1 A 0 ACS_NamedExecuteAlways(\"BD_CheckIfOverLiquid\")\n\t\tTNT1 A 5\n\t\tTNT1 A 0 A_JumpIfInventory(\"IsOverWater\", 1, \"IsOverLiquid\")\n\t\tTNT1 A 0 A_JumpIfInventory(\"IsOverSlime\", 1, \"IsOverLiquid\")\n\t\tTNT1 A 0 A_JumpIfInventory(\"IsOverNukage\", 1, \"IsOverLiquid\")\n TNT1 A 10\n Stop\n\n\tIsOverLiquid:\n\t\tTNT1 A 1\n\t\tTNT1 A 0 A_CheckFloor(\"SpawnOnWater\")\n\t\tTNT1 A 2\n\t\tStop\n\n\tSpawnOnWater:\n\t\tTNT1 A 1\n\t\tTNT1 A 0 A_SpawnItem (\"WaterBloodSpot\", 5)\n\t\tStop\n }\n}\n\n//muddy water bloodspot actor\nACTOR WaterBloodSpot\n{\n+CLIENTSIDEONLY\n+THRUACTORS\nRadius 0\nHeight 0\nRenderstyle Shaded\nStencilColor \"55 00 00\"\nAlpha 0.2\n states\n {\n\tSpawn:\n\t\tBPDL E 1 A_FadeOut(0.9)\n\t\tBPDL EEEEEEEEEEEEEEEEEEEE 4 A_FadeIn(0.02)\n\t\tBPDL E 100\n\t\tBPDL EEEEEEEEEEEEEEEEEEEE 4 A_FadeOut(0.02)\n\t\tStop\n }\n}\n\n//bigger bloodsplat\nactor GiantBloodSpot: Bolognese_BloodSpot\n{\n Scale 1.1\n States\n {\n\tSpawn:\n\t\tTNT1 A 0\n\t\tTNT1 A 0 ACS_NamedExecuteAlways(\"BD_CheckIfOverLiquid\")//Check Floortype\n\t\tTNT1 A 3\n\t\tTNT1 A 0 A_JumpIfInventory(\"IsOverSlimy\", 1, \"Disappear\")\n\t\tTNT1 A 0 A_JumpIfInventory(\"IsOverWater\", 1, \"Disappear\")\n\t\tTNT1 A 0 A_JumpIfInventory(\"IsOverNukage\", 1, \"Disappear\")\n\t\tTNT1 A 0 A_JumpIfInventory(\"IsOverLava\", 1, \"Disappear\")\n\t\tTNT1 A 0 A_QueueCorpse\n\t\tGoto SpawnAFrameOnly\n\n\tDisappear:\n\t\tTNT1 A 0\n\t\tStop\n\t}\n}\n\nactor MinuscleBloodSpot: Bolognese_BloodSpot {Scale 0.25}\nactor BigBloodSpot: GiantBloodSpot { Scale 0.7}\nactor MediumBloodSpot: GiantBloodSpot { Scale 0.4}\nactor MediumBloodSpot2: GiantBloodSpot{ Scale 0.4}\n\n//Big version spawned by XDeath animations\nACTOR SplatteredSmall: Bolognese_BloodSpot\n{\n states\n {\n Spawn:\n\tTNT1 A 0 A_JumpIf(waterlevel > 1, \"Splash\")\n TNT1 A 0 A_FaceTarget\n\tTNT1 A 2\n TNT1 A 0 A_JumpIfInventory(\"IsOverWater\", 1, \"Splash\")\n\tTNT1 A 0 A_JumpIfInventory(\"IsOverSlime\", 1, \"Splash\")\n\tTNT1 A 0 A_JumpIfInventory(\"IsOverlava\", 1, \"Splash\")\n\tBPDL A -1\n\tStop\n }\n}\n\n//Big version spawned by XDeath animations of bigger enemies\nACTOR SplatteredLarge: Bolognese_BloodSpot\n{\n states\n {\n Spawn:\n TNT1 A 0\n TNT1 A 0 A_JumpIf(waterlevel > 1, \"Splash\")\n TNT1 A 0 A_CheckFloor(\"Live\")\n Goto Splash\n\n Live:\n TNT1 A 0\n TNT1 A 0 ACS_NamedExecuteAlways(\"BD_CheckIfOverLiquid\")//Check if is under a liquid\n\tTNT1 A 4\n TNT1 A 0 A_JumpIfInventory(\"IsOverWater\", 1, \"WaterBloodSpot\")\n\tTNT1 A 0 A_JumpIfInventory(\"IsOverSlime\", 1, \"WaterBloodSpot\")\n\tTNT1 A 0 A_JumpIfInventory(\"IsOverlava\", 1, \"WaterBloodSpot\")\n\tTNT1 A 0 A_QueueCorpse\n\tBPDL A -1\n\tStop\n\n WaterBloodSpot:\n\tTNT1 A 0\n\tTNT1 A 0 A_SpawnItem(\"WaterBloodSpot\")\n\tStop\n }\n}\n\n//A blood pool spawned by regular enemy deaths.\nactor GrowingBloodPool: Bolognese_BloodSpot\n{\n\tvar int user_bloodpoolsize;\n\tradius 1\n\theight 1\n\tmass 1\n\tHealth 600\n\tRenderStyle Normal\n\tAlpha 0.99\n\t+NOTELEPORT\n\t+CLIENTSIDEONLY\n\t+FORCEXYBILLBOARD\n\t+MOVEWITHSECTOR\n\t+FLOORCLIP\n\t+MISSILE\n\t+DONTSPLASH\n\tScale 0.3\n\tDecal BrutalBloodSplat\n\t states\n\t\t {\n\t\t Spawn:\n\t\t TNT1 A 0 A_JumpIf(waterlevel > 1, \"Splash\")\n\t\t TNT5 A 1\n\n\t\t TNT5 A 2 A_QueueCorpse\n\t\t TNT5 A 1 A_SetScale(0.33, 0.33)\n\t\t TNT5 A 1 A_SetScale(0.36, 0.36)\n\t\t TNT5 A 1 A_SetScale(0.39, 0.39)\n\t\t TNT5 A 1 A_SetScale(0.42, 0.42)\n\t\t TNT5 A 1 A_SetScale(0.45, 0.45)\n\t\t TNT5 A 1 A_SetScale(0.48, 0.48)\n\t\t TNT5 A 1 A_SetScale(0.50, 0.50)\n\n\t\t TNT5 A 2 A_SetScale(0.53, 0.53)\n\t\t TNT5 A 2 A_SetScale(0.56, 0.56)\n\t\t TNT5 A 2 A_SetScale(0.59, 0.59)\n\t\t TNT5 A 2 A_SetScale(0.62, 0.62)\n\t\t TNT5 A 2 A_SetScale(0.65, 0.65)\n\t\t TNT5 A 2 A_SetScale(0.68, 0.68)\n\t\t TNT5 A 2 A_SetScale(0.70, 0.70)\n\n\t\t TNT5 A 3 A_SetScale(0.73, 0.73)\n\t\t TNT5 A 3 A_SetScale(0.76, 0.76)\n\t\t TNT5 A 3 A_SetScale(0.79, 0.79)\n\t\t TNT5 A 3 A_SetScale(0.82, 0.82)\n\t\t TNT5 A 3 A_SetScale(0.85, 0.85)\n\t\t TNT5 A 3 A_SetScale(0.88, 0.88)\n\t\t TNT5 A 3 A_SetScale(0.90, 0.90)\n\n\t\t TNT5 A 3 A_SetScale(0.93, 0.93)\n\t\t TNT5 A 3 A_SetScale(0.96, 0.96)\n\t\t TNT5 A 3 A_SetScale(0.99, 0.99)\n\t\t TNT5 A 3 A_SetScale(1.02, 1.02)\n\t\t TNT5 A 3 A_SetScale(1.05, 1.05)\n\t\t TNT5 A 3 A_SetScale(1.08, 1.08)\n\t\t TNT5 A 3 A_SetScale(1.11, 1.11)\n\n\t\t Live:\n\t\t TNT5 A 900//duration\n\t\t TNT1 A 0 A_JumpIfInventory(\"lowgraphicsmode\", 1, \"Splash\")\n\t\t TNT5 A -1\n\t\t Stop\n\t\tSplash:\n\t\t BLOD A 0\n\t\t stop\n\t }\n}\n\n//A decorative kind of flying blood spawned by arterial blood\nACTOR BD_LiquidBlood: BD_FlyingBlood\n{\n speed 3\n scale 0.2\n gravity 0.6\n decal \"BrutalBloodSmearSmall\"\n States\n {\n Spawn:\n\t TNT1 A 0\n\t TNT1 A 0 A_CustomMissile (\"BD_FlyingBloodTrail\", 10, 0, random (0, 360), 2, random (0, 90))\n BLOD AAAAAAAAAAAAAAAAAAAAAAAAAAA 1 A_SpawnItem(\"BD_LiquidBloodTrail\")\n Stop\n\t Death:\n \t TNT1 A 0 A_PlaySound(\"blooddrop2\")\n\t BL8A ABCDEF 2\n\t TNT1 A 0\n Stop\n }\n}\n\n//Faster version, leaves no decals. Used to prevent decal overflow\nACTOR BD_LiquidBlood2: BD_LiquidBlood\n{\n speed 4\n scale 0.4\n gravity 0.6\n decal \"None\"\n}\n\n//Very fast version\nACTOR BD_LiquidBloodFast: BD_LiquidBlood2\n{\n speed 8\n}\n\n//This version leaves a bloodspot\nACTOR BD_LiquidBlood3: BD_FlyingBlood\n{\nSpeed 3\n States\n {\n\t Death:\n \t TNT1 A 0 A_PlaySound(\"blooddrop2\")\n\t TNT1 A 0 A_CheckFloor(\"SpawnFloor\")\n\t TNT1 A 4\n\t Stop\n\n\t SpawnFloor:\n\t tnt1 a 0 A_SPawnItem(\"Bolognese_BloodSpot\")\n\t BL8A ABCDEF 2\n\t TNT1 A 0\n Stop\n }\n}\n\n//Decorative trails\nACTOR BD_LiquidBloodTrail: BD_FlyingBlood\n{\n scale 0.4\n gravity 0.4\n States\n {\n Spawn:\n\t TNT1 A 0\n BRTL ABC 2\n\t Stop\n\t Death:\n\t TNT1 A 0\n Stop\n }\n}\n\n//An actor that will spawn multiple arterial blood actors\nACTOR ArterialBloodSpray\n{\n Speed 0\n +CLIENTSIDEONLY\n +NOINTERACTION\n States\n {\n Spawn:\n\t TNT1 A 0\n\t TNT1 A 0 A_stop\n\t\tTNT1 AAAA 2 A_CustomMissile (\"BD_LiquidBlood2\", 0, 0, 0, 2, random (0, 60))\n\t\tTNT1 A 6\n\t\tTNT1 A 2 A_CustomMissile (\"BD_LiquidBlood2\", 0, 0, 0, 2, random (0, 60))\n\t\tTNT1 A 6\n\t\tTNT1 A 2 A_CustomMissile (\"BD_LiquidBlood2\", 0, 0, 0, 2, random (0, 60))\n\t\tTNT1 A 6\n\t\tTNT1 A 2 A_CustomMissile (\"BD_LiquidBlood2\", 0, 0, 0, 2, random (0, 60))\n\t\tTNT1 A 6\n\t\tTNT1 A 2 A_CustomMissile (\"BD_LiquidBlood2\", 0, 0, 0, 2, random (0, 60))\n\t\tTNT1 A 9\n\t\tTNT1 A 2 A_CustomMissile (\"BD_LiquidBlood2\", 0, 0, 0, 2, random (0, 60))\n\t\tTNT1 A 9\n\t\tTNT1 A 2 A_CustomMissile (\"BD_LiquidBlood2\", 0, 0, 0, 2, random (0, 60))\n\t\tTNT1 A 9\n\t\tTNT1 A 2 A_CustomMissile (\"BD_LiquidBlood2\", 0, 0, 0, 2, random (0, 60))\n\t\tTNT1 A 9\n\t\tTNT1 A 2 A_CustomMissile (\"BD_LiquidBlood2\", 0, 0, 0, 2, random (0, 60))\n\t\tTNT1 A 12\n\t\tTNT1 A 2 A_CustomMissile (\"BD_LiquidBlood2\", 0, 0, 0, 2, random (0, 60))\n\t\tTNT1 A 12\n\t\tTNT1 A 2 A_CustomMissile (\"BD_LiquidBlood2\", 0, 0, 0, 2, random (0, 60))\n\t\tTNT1 A 16\n\t\tTNT1 A 2 A_CustomMissile (\"BD_LiquidBlood2\", 0, 0, 0, 2, random (0, 60))\n\t\tTNT1 A 19\n\t\tTNT1 A 2 A_CustomMissile (\"BD_LiquidBlood2\", 0, 0, 0, 2, random (0, 60))\n Stop\n }\n}\n\n/////////////////// CEILING BLOOD //////////////////////////\n\n//Launches bloodspots on the ceiling\nACTOR CeilBloodLauncher: BD_FLyingBlood\n{\n +THRUACTORS\n\t-DOOMBOUNCE\n\t-SKYEXPLODE\n\t+BOUNCEONWALLS\n Speed 15\n Gravity 0.0\n\tRadius 1\n\tHeight 1\n\tDecal BrutalBloodSplat\n States\n\t\t{\n\t\t Spawn:\n\t\t TNT1 A 0 A_JumpIf(waterlevel > 1, \"Splash\")\n\t\t\tTNT1 A 3\n\t\t\tStop\n\t\tSplash:\n\t\t\tBLOD A 0\n\t\t\tstop\n\t\t Death:\n\t\t\tTNT1 A 0\n\t\t\tTNT1 A 0 A_CheckCeiling(\"IsOnCeil\")\n\t\t\tTNT1 A 0\n\t\t\tstop\n\n\t\t IsOnCeil:\n\t\t\tTNT1 A 0\n\t\t\tTNT1 A 1 A_SpawnItem(\"CeilBloodSpot\",0,0,0,1)\n\t\t\tStop\n\t\t Melee:\n\t\t Xdeath:\n\t\t\tTNT1 A 1\n\t\t\tStop\n\t\t}\n}\n\n//Longer version (for extreme deaths)\nACTOR CeilBloodLauncherLong: CeilBloodLauncher\n{\n States\n {\n\t\t Spawn:\n\t\t\tTNT1 A 0 A_JumpIf(waterlevel > 1, \"Splash\")\n\t\t\tTNT1 A 12\n\t\t\tStop\n }\n}\n\n// The Ceil Blood Spot\nactor CeilBloodSpot\n{\n\t+MISSILE\n\t+CEILINGHUGGER\n\t-SKYEXPLODE\n\t+THRUACTORS\n\tHeight 1\n\tRadius 2\n\t+DontSplash\n\tMass 0\n\tScale 0.5\n\tGravity 0.0\n\tDecal BrutalBloodSplat\n\tRenderstyle Normal\n\tAlpha 0.9\n\tstates\n\t{\n\t\tSpawn:\n\t\t BPDL A 1\n\t\t TNT1 A 0 A_QueueCorpse\n\t\t TNT1 A 0 A_SpawnItem (\"DripingBloodLeavesSmallPool\")\n\t\t TNT1 A 0 A_SpawnItem (\"CeilBloodTinyBloodSpawner\")\n\t\tLive:\n\t\t BPDL A 5 ThrustThingZ(0, 20, 0, 1)\n\t\t Loop\n\t\t\t}\n}\n\n//Bigger version of a ceil blood spot, usually left by sticky gibs.\nactor CeilBloodSpotLarge: CeilBloodSpot\n{\n\tstates\n\t{\n\t\tSpawn:\n\t\t\tBPDL A 1\n\t\t\tTNT1 A 0 A_QueueCorpse\n\t\t\tTNT1 A 0 A_SpawnItem (\"DripingBloodLeavesSmallPool\")\n\t\t\tTNT1 A 0 A_SpawnItem (\"CeilBloodLargeBloodSpawner\")\n\t\tLive:\n\t\t\tBPDL A 5 ThrustThingZ(0, 20, 0, 1)\n\t\t\tLoop\n\t\tSplash:\n\t\t\tBLOD A 0\n\t\t\tstop\n\t\t\t}\n}\n\n//These are the actors that spawns blood drips. They are separate from the bloodspots so the sticky gibs can spawn them separately.\n\n//Small blood drips spawner, usually caused by regular blood touching the ceiling.\nACTOR CeilBloodTinyBloodSpawner: BD_FlyingBlood\n{\n\t+NOGRAVITY\n\t+THRUACTORS\n\t+NOCLIP\n\t States\n\t\t{\n\t\t Spawn:\n\t\t\t TNT1 A 0\n\t\t\t TNT1 A 1 A_SpawnItemEx (\"DripingBloodLeavesSmallPool\", random (-5, 5), random (-5, 5), 0, 0, 0, -5)\n\t\t\t TNT1 AAAAAAAAAAAAAA 5 A_SpawnItemEx (\"BloodDripingFromCeiling\", random (-5, 5), random (-5, 5), 0, 0, 0, -5)\n\t\t\t TNT1 AAAAAAAAAAAAAA 10 A_SpawnItemEx (\"BloodDripingFromCeiling\", random (-5, 5), random (-5, 5), 0, 0, 0, -5)\n\t\t\t TNT1 AAAAAAAAAAAAAA 16 A_SpawnItemEx (\"BloodDripingFromCeiling\", random (-5, 5), random (-5, 5), 0, 0, 0, -5)\n\t\t\t TNT1 AAAAAAAAAAAAAA 24 A_SpawnItem (\"BloodDripingFromCeiling\")\n\t\t\t stop\n\t\t}\n}\n\n//Large blood drips spawner, usually caused by huge chunks of meat getting stuck on the ceiling.\nACTOR CeilBloodLargeBloodSpawner: BD_FlyingBlood\n{\n\t+NOGRAVITY\n\t+THRUACTORS\n\t+NOCLIP\n\tScale 0.5\n\t States\n\t\t{\n\t\t Spawn:\n\t\t\t TNT1 A 0\n\t\t\t TNT1 A 1 A_SpawnItemEx (\"DripingBloodLeavesSmallPool\", random (-5, 5), random (-5, 5), 0, 0, 0, -5)\n\t\t\t TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 3 A_SpawnItemEx (\"BloodDripingFromCeilingBig\", random (-5, 5), random (-5, 5), 0, 0, 0, -5)\n\t\t\t TNT1 AAAAAAAAAAAAAA 10 A_SpawnItemEx (\"BloodDripingFromCeilingBig\", random (-5, 5), random (-5, 5), 0, 0, 0, -5)\n\t\t\t TNT1 AAAAAAAAAAAAAA 15 A_SpawnItemEx (\"BloodDripingFromCeiling\", random (-5, 5), random (-5, 5), 0, 0, 0, -5)\n\t\t\t TNT1 AAAAAAAAAAAAAA 20 A_SpawnItemEx (\"BloodDripingFromCeiling\", random (-5, 5), random (-5, 5), 0, 0, 0, -5)\n\t\t\t stop\n\t\t}\n}\n\n//This is the actual blood driping from the ceiling actor\nACTOR BloodDripingFromCeiling: BD_FlyingBlood\n{\n\t-NOGRAVITY\n\t-FORCEXYBILLBOARD\n\t+FORCEYBILLBOARD\n\tGravity 1.0\n\tRadius 4\n\tHeight 1\n States\n\t\t{\n\t\t Spawn:\n\t\t TNT1 A 0\n\t\t TNT1 A 0 A_Jump(230, \"NoSpawn\")\n\t\t TNT1 A 0 A_JumpIf(waterlevel > 1, \"Splash\")\n\t\t BLUD Z 500\n\t\t loop\n\n\t\t Death:\n\t\t\t TNT1 A 0\n\t\t\t TNT1 A 0 A_PlaySound(\"blooddrop2\")\n\t\t\t TNT1 A 0 A_Stop\n\t\t\t BL8A ABCDEF 2\n\t\t\t stop\n\t\t}\n}\n\n//This is a bigger and denser version of the blood drip, droped by sticky gibs\nACTOR BloodDripingFromCeilingBig: BloodDripingFromCeiling\n{\n\tXScale 0.4\n\tYScale 1.0\n\tGravity 0.8\n States\n {\n Spawn:\n TNT1 A 0\n\t TNT1 A 0 A_Jump(160, \"NoSpawn\")\n TNT1 A 0 A_JumpIf(waterlevel > 1, \"Splash\")\n BLUD Z 500\n loop\n\t Death:\n\t\t TNT1 A 0\n\t\t TNT1 A 0 A_PlaySound(\"blooddrop2\")\n\t\t TNT1 A 0 A_Stop\n\t\t TNT1 A 0 A_SetScale(0.5, 0.5)\n\t\t BL8A ABCDEF 2\n\t\t stop\n }\n}\n\n//This is the first drip spawned by the drip spawners, which leaves a small blood pool\nACTOR DripingBloodLeavesPool: BloodDripingFromCeiling\n{\n-FORCEXYBILLBOARD\n+FORCEYBILLBOARD\n\n scale 0.3\n States\n {\n Spawn:\n TNT1 A 0 A_JumpIf(waterlevel > 1, \"Splash\")\n BLUD Z 4\n loop\n\tSplash:\n BLOD A 0\n stop\n Death:\n\t TNT1 A 0\n\t\tTNT1 A 0 A_SpawnItem(\"MediumBloodSpot\")\n\t\tTNT1 A 0 A_PlaySound(\"blooddrop2\")\n BL8A ABCDEF 2\n stop\n }\n}\n\n//Just like above, but leaves a smaller pool\nACTOR DripingBloodLeavesSmallPool: DripingBloodLeavesPool\n{\n-FORCEXYBILLBOARD\n+FORCEYBILLBOARD\n+DONTSPLASH\nStates\n{\n Death:\n\t TNT1 A 0\n\t\tTNT1 A 0 A_SpawnItem(\"MinuscleBloodSpot\")\n\t\tTNT1 A 0 A_PlaySound(\"blooddrop2\")\n BL8A ABCDEF 2\n stop\n }\n}\n\n//An invisible projectile only used to spawn bloodsplats on the walls, usually spawned by extreme deaths.\nACTOR WallRedBlood\n{\n\tscale 0.6\n\tspeed 7\n\thealth 1\n\tradius 8\n\theight 1\n\tGravity 0.7\n\tdamage 0\n\tDamageType Blood\n\tDecal BrutalBloodSmearer\n +MISSILE\n +CLIENTSIDEONLY\n +NOTELEPORT\n +NOBLOCKMAP\n +THRUACTORS\n States\n {\n\t\tSpawn:\n\t\t TNT1 A 0 A_JumpIf(waterlevel > 1, \"Splash\")\n\t\t\tTNT1 ABCD 4\n\t\t\tloop\n\t\tSplash:\n\t\t\tBLOD A 0\n\t\t\tstop\n\t\t Death:\n\t\t\tTNT1 A 3\n\t\t\tstop\n }\n}\n\n//This one spawns an even bigger decal\nACTOR SuperWallRedBlood: WallRedBlood\n{\n speed 32\n Gravity 0.1\n Decal BrutalBlood\n States\n\t\t{\n\t\t Spawn:\n\t\t TNT1 A 0 A_JumpIf(waterlevel > 1, \"Splash\")\n\t\t\tTNT1 ABCD 1\n\t\t\tStop\n\t\t}\n}\n\n//This one spawns a ridiculously bigger decal, used by BFG extreme deaths\nACTOR GiantWallRedBlood: WallRedBlood\n{\n speed 32\n Gravity 0.1\n Decal BrutalBloodGiant\n States\n\t\t{\n\t\t Spawn:\n\t\t TNT1 A 0 A_JumpIf(waterlevel > 1, \"Splash\")\n\t\t TNT1 ABCD 1\n\t\t Stop\n\n\t\t}\n}\n\n//Spawns giant blood decals all around the area. Used in Brutal Doom's BFG deaths.\nActor BloodSplinter\n{\n\t+THRUACTORS\n\t+CLIENTSIDEONLY\n\tStates\n\t\t{\n\t\t\t Spawn:\n\t\t\t TNT1 A 0 A_JumpIf(waterlevel > 1, \"Splash\")\n\t\t\t TNT1 A 0 A_CustomMissile (\"GiantWallRedBlood\", 40, 0, 0, 2, random (0, 35))\n\t\t\t TNT1 A 0 A_CustomMissile (\"GiantWallRedBlood\", 40, 0, 45, 2, random (0, 35))\n\t\t\t TNT1 A 0 A_CustomMissile (\"GiantWallRedBlood\", 40, 0, 90, 2, random (0, 35))\n\t\t\t TNT1 A 0 A_CustomMissile (\"GiantWallRedBlood\", 40, 0, 135, 2, random (0, 35))\n\t\t\t TNT1 A 0 A_CustomMissile (\"GiantWallRedBlood\", 40, 0, 180, 2, random (0, 35))\n\t\t\t TNT1 A 0 A_CustomMissile (\"GiantWallRedBlood\", 40, 0, 225, 2, random (0, 35))\n\t\t\t TNT1 A 0 A_CustomMissile (\"GiantWallRedBlood\", 40, 0, 270, 2, random (0, 35))\n\t\t\t TNT1 A 0 A_CustomMissile (\"GiantWallRedBlood\", 40, 0, 315, 2, random (0, 35))\n\t\t\t Stop\n\n\t\t\tSplash:\n\t\t\t\tBLOD A 0\n\t\t\t\tstop\n\t\t}\n}\n\n//Spawned by BD's kicked heads to spawn blood decals and make the head bounce sound.\nACTOR ShortWallRedBlood: WallRedBlood\n{\n speed 2\n Gravity 1\n Radius 24\n Height 12\n States\n {\n Spawn:\n TNT1 A 0 A_JumpIf(waterlevel > 1, \"Splash\")\n TNT1 A 3\n Stop\n\tDeath:\n\t TNT1 AAAAAAAAAAAAAAAAAA 0 A_CustomMissile (\"BD_FlyingBloodFakeNoDecal\", 0, 0, random (0, 360), 2, random (0, 90))\n\t\tTNT1 A 0 A_SpawnItem(\"Bolognese_BloodSpot\",0,0,0,1)\n\t\tTNT1 A 0 A_PlaySound(\"HEDBON\")\n\t TNT1 A 20\n\t\tStop\n\t}\n}\n\n//Blood actors spawned underwater\nACTOR Underblood1\n{\n\tscale 1.4\n\tspeed 1\n\thealth 1\n\tradius 8\n\theight 1\n\tGravity 0.9\n\tRenderstyle Translucent\n\tAlpha 0.2\n\tDecal BrutalBloodSplat\n\t+MISSILE\n\t+CLIENTSIDEONLY\n\t+NOTELEPORT\n\t+NOBLOCKMAP\n\t+FORCEXYBILLBOARD\n\t-DONTSPLASH\n\t+THRUACTORS\n\tMass 1\n\t\tStates\n\t\t{\n\t\t Spawn:\n\t\t BSP4 ABCDEFGHIJKLMNOPQRSTUVWXYZ 2 A_JumpIf(waterlevel < 1, \"Splash\")\n\t\t Stop\n\n\t\tSplash:\n\t\t\tBLOD A 0\n\t\t\tstop\n\t\t Death:\n\t\t\tTNT1 A 0\n\t\t\tStop\n\t\t}\n}\n\n//Shorter version\nACTOR Underblood2: Underblood1\n{\n scale 0.7\n speed 0\n States\n {\n Spawn:\n\t BSP4 ABCDEFGHIJKLMNOPQRSTUVWXYZ 1 A_JumpIf(waterlevel < 1, \"Splash\")\n\t Stop\n\n\tSplash:\n BLOD A 0\n stop\n Death:\n \t TNT1 A 0\n Stop\n }\n}\n//Bigger version that moves, used for gibbing.\nACTOR Underblood3: Underblood1\n{\n scale 2.2\n speed 2\n Alpha 0.3\n}\n\n//Big blood mists\n\nactor SuperGore\n{\n\tDecal BloodSplat\n\tAlpha 0.4\n\t+FORCEXYBILLBOARD\n\t+GHOST\n\t+NOBLOCKMAP\n\tGravity 0.01\n\t+DontSplash\n\t-EXPLODEONWATER\n\t-ALLOWPARTICLES\n\t+CLIENTSIDEONLY\n\t-NOGRAVITY\n\t+THRUACTORS\n\t+NOCLIP\n\tGravity 0.1\n\tScale 0.4\n\tSpeed 3\n\tAlpha 0.6\n\t states\n\t {\n\t Spawn:\n\t\tTNT1 A 0\n\t\tBLOR EFGHIJK 4\n\t\tStop\n\t }\n}\n\nActor SuperGoreMist: SuperGore\n{\nScale 0.6\nSpeed 3\n+NOGRAVITY\n}\n\n//Used on bullet hit impacts\nActor SuperGoreMistTiny: SuperGore\n{\nScale 0.15\nAlpha 0.7\nSpeed 0\n\t states\n\t {\n\t Spawn:\n\t\tTNT1 A 0\n\t\tBLOR EFGHIJK 2\n\t\tStop\n\t }\n}\n\nactor BigSuperGore: SuperGore\n{\nScale 0.6\nSpeed 6\n}\n\nactor GiantSuperGore: SuperGore\n{\nScale 1.2\nSpeed 8\n}\n\n//Spawners for the supergore thing\nActor SuperGoreSpawner\n{\n\tProjectile\n\t+MISSILE\n\t+FORCEXYBILLBOARD\n\t+THRUACTORS\n\tDecal BloodSuper\n\tradius 2\n\theight 2\n\tspeed 15\n\tstates\n\t{\n\tSpawn:\n\t\tTNT1 A 3\n\t\tTNT1 AAA 3 A_CustomMissile(\"SuperGore\", 7, 0, random (0, 360), 2, random (30, 60))\n\t\tStop\n\tDeath:\n\tXDeath:\n\t\tTNT1 A 0\n\t\tStop\n\t}\n}\n\n//Bloody footprints still requires the player to be edited to work.\n//Gives the player an inventory item to indicate the feet are smeared.\nACTOR BootSmearerRed: GrowingBloodPool\n{\n\tMONSTER\n\t-SOLID\n\t+NOCLIP\n\t+THRUACTORS\n\t-COUNTKILL\n\t+LOOKALLAROUND\n\t-FRIENDLY\n\tRadius 0\n\tHeight 0\n\t states\n\t {\n\t Spawn:\n\t\t TNT1 A 0\n\t\t TNT1 A 1 A_Look\n\t\t Goto See\n\n\t See:\n\t\t TNT1 A 1 A_Chase(\"\",\"\")\n\t\t TNT1 A 0 A_Die(\"LookForPlayer\")\n\t Death:\n\t Death.LookForPlayer:\n\t\tTNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 8 A_JumpIfCloser(60, \"SmearBootsWithRedBlood\")\n\t\tStop\n\tSmearBootsWithRedBlood:\n\t\t//TNT1 A 0 A_GiveToTarget(\"BootsSmearedWithRedBlood\", 8)\n\t\tBPDL A 0\n\t\tStop\n\t}\n}\n\nACTOR RedBloodFootPrintLeft: GrowingBloodPool\n{\n\tScale 0.09\n\t+CLIENTSIDEONLY\n\tRenderstyle Shaded\n\tStencilColor \"55 00 00\"\n\t states\n\t {\n\t Spawn:\n\t Death:\n\t Crash:\n\t\tTNT1 A 0 A_JumpIf(waterlevel > 1, \"Splash\")\n\t\tTNT1 A 0 ACS_NamedExecuteAlways(\"BD_CheckIfOverLiquid\")//Check if is under a liquid\n\t\tTNT1 A 4\n\n\t\tTNT1 A 0 A_JumpIfInventory(\"IsOverWater\", 1, \"Splash\")\n\t\tTNT1 A 0 A_JumpIfInventory(\"IsOverSlime\", 1, \"Splash\")\n\t\tTNT1 A 0 A_JumpIfInventory(\"IsOverlava\", 1, \"Splash\")\n\t\tTNT1 A 0 A_CheckFloor(\"ShowUp\")\n\t\tGoto Splash\n\tShowUp:\n\t\tTNT1 A 0\n\t\tTNT1 A 0 A_QueueCorpse\n\t\tBPDL A 200\n\t\tTNT1 A 0 A_JumpIfInventory(\"LowGraphicsMode\", 1, \"Splash\")\n\t\tBPDL A -1\n\t\tStop\n\tSplash:\n\t\tTNT1 A 0\n\t\tStop\n\t }\n}\n\nACTOR RedBloodFootPrintRight: GrowingBloodPool\n{\nScale 0.09\n+CLIENTSIDEONLY\nRenderstyle Shaded\nStencilColor \"55 00 00\"\n states\n {\n\t Spawn:\n\t Death:\n\t Crash:\n\t\tTNT1 A 0 A_JumpIf(waterlevel > 1, \"Splash\")\n\t\tTNT1 A 0 ACS_NamedExecuteAlways(\"BD_CheckIfOverLiquid\")//Check if is under a liquid\n\t\tTNT1 A 4\n\n\t\tTNT1 A 0 A_JumpIfInventory(\"IsOverWater\", 1, \"Splash\")\n\t\tTNT1 A 0 A_JumpIfInventory(\"IsOverSlime\", 1, \"Splash\")\n\t\tTNT1 A 0 A_JumpIfInventory(\"IsOverlava\", 1, \"Splash\")\n\t\tTNT1 A 0 A_CheckFloor(\"ShowUp\")\n\t\tGoto Splash\n\t\tShowUp:\n\t\tTNT1 A 0\n\t\tTNT1 A 0 A_QueueCorpse\n\t\tBPDL A 200\n\t\tTNT1 A 0 A_JumpIfInventory(\"LowGraphicsMode\", 1, \"Splash\")\n\t\tBPDL A -1\n\t\tStop\n\tSplash:\n\t\tTNT1 A 0\n\t\tStop\n }\n}"
},
{
"source": "pk3",
"name": "DECORATE.txt",
"contents": "#include BLOOD.txt //Blood actors\n#include MEAT.txt //Gib actors\n#include SERVING.txt //Gore Groups (spawns gibs and blood when enemies explodes)\n\n//These are inventory tokens required for several things.\nActor IsOverWater : Inventory{inventory.maxamount 1}\nActor IsOverSlime : Inventory{inventory.maxamount 1}\nActor IsOverSludge : Inventory{inventory.maxamount 1}\nActor IsOverBlood : Inventory{inventory.maxamount 1}\nActor IsOverNukage : Inventory{inventory.maxamount 1}\nActor AnimuGore : Inventory{inventory.maxamount 1}\nActor IsOverLava : Inventory{inventory.maxamount 1}\nActor LowGraphicsMode : Inventory{inventory.maxamount 1}\nActor IsOverSlimy : Inventory{inventory.maxamount 1}"
},
{
"source": "pk3",
"name": "Meat.txt",
"contents": "//Gib actors\n\nACTOR XDeath1\n{\n Radius 1\n Height 1\n Speed 12\n\tMass 1\n +NOBLOCKMAP\n\t+MISSILE\n +NOTELEPORT\n +MOVEWITHSECTOR\n +CLIENTSIDEONLY\n\t-DONTSPLASH\n\t+THRUGHOST\n\t+THRUACTORS\n\t+FLOORCLIP\n +FORCEXYBILLBOARD\n\tMass 1\n States\n {\n Spawn:\n\t TNT1 A 0 A_JumpIf(waterlevel > 1, \"Underwater\")\n\t\tBLOD AAAAAAAAAAAAAAAAAAAAAAAAAAA 1 A_SpawnItem(\"BD_LiquidBloodTrail\")\n Stop\n Death:\n TNT1 A 0 A_SpawnItemEx (\"BDLargeBloodSpot\", 0, 0, 1)\n Stop\n }\n}\n\n//A flying piece of meat\nACTOR XDeath2: XDeath1\n{\n +CLIENTSIDEONLY\n\t+DONTSPLASH\n\tRadius 2\n\tHeight 2\n\tGravity 0.4\n DeathSound \"misc/xdeath2\"\n\tDecal BrutalBloodSuper\n States\n {\n Spawn:\n\t XMT1 A 0 A_JumpIf(waterlevel > 1, \"Splash\")\n XMT1 ABCDEFGH 2 A_CustomMissile (\"BD_FlyingBloodTrail\", 0, 0, random (0, 360), 2, random (0, 360))\n Loop\n Death:\n TNT1 AAAAAAA 0 A_CustomMissile (\"BD_FlyingBloodTrail\", 0, 0, random (0, 180), 2, random (0, 180))\n\t TNT1 A 0 A_CheckFloor(\"SpawnFloor\")\n\t\tTNT1 A 0 A_CheckCeiling(\"SpawnCeiling\")\n\t\tTNT1 A 0 A_SpawnItem(\"SmearingXDeath2\")\n\t\tStop\n\n\tSpawnFloor:\n\t XMT1 M 1\n\t\tTNT1 A 0 A_QueueCorpse\n\t\tTNT1 A 0 A_SpawnItemEx (\"BDLargeBloodSpot\", 0, 0, 1)\n\tSplash:\n\t\tXMT1 M -1\n\t\tStop\n\n\tSpawnCeiling:\n\t\tTNT1 A 0\n\t\tTNT1 A 0 A_SpawnItemEx (\"CeilXDeath2\", 0, 0, 1)\n\t\tTNT1 A 0 A_SpawnItemEx (\"CeilBloodSpotLarge\", 0, 0, 1)\n\t\tStop\n\n\tVanish:\n\t TNT1 A 5\n\t\tStop\n }\n}\n\nACTOR XDeath2b: XDeath2 {\tSpeed 4 } //Low-range version.\n\n//A piece of meat that has hit the wall, and now is slowly smearing\nACTOR SmearingXDeath2\n{\n Radius 1\n Height 1\n\tMass 1\n +NOBLOCKMAP\n +NOTELEPORT\n\t+THRUGHOST\n\t+CLIENTSIDEONLY\n +DONTSPLASH\n +MOVEWITHSECTOR\n\t+FORCEXYBILLBOARD\n\t+NOGRAVITY\n States\n {\n\tSpawn:\n\t\tXMT1 N 10\n\t\tTNT1 A 0 ThrustThingZ(0, 1, 1, 1)\n\t\tTNT1 A 0 A_Jump(255, \"Spawn1\", \"Spawn2\", \"Spawn3\", \"Spawn4\")\n\n\tSpawn1:\n\t\tXMT1 NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN 2 A_CheckFloor(\"Rest\")\n\t\tGoto Death\n\n\tSpawn2:\n\t\tXMT1 NNNNNNNNNNNNNNNNNNNNNNNN 2 A_CheckFloor(\"Rest\")\n\t\tGoto Death\n\n\tSpawn3:\n\t\tXMT1 NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN 2 A_CheckFloor(\"Rest\")\n\t\tGoto Death\n\n\tSpawn4:\n\t\tXMT1 NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN 2 A_CheckFloor(\"Rest\")\n\t\tGoto Death\n\n\tDeath:\n\t TNT1 A 0\n\t TNT1 A 0 A_SpawnItem(\"XDeath2NoStick\")\n Stop\n\n\tRest:\n\t\tXMT1 M 1\n\t\tTNT1 A 0 A_QueueCorpse\n\t\tTNT1 A 0 A_SpawnItem(\"BDLargeBloodSpot\",0,0,0,1)\n\t\tXMT1 M -1\n\t\tStop\n\n\tVanish:\n\t TNT1 A 5\n\t\tStop\n }\n}\n\n//piece of meat that got stuck in the ceiling\nactor CeilXDeath2: BDLargeBloodSpot\n{\n\tPROJECTILE\n\t+MISSILE\n\t+SPAWNCEILING\n\t+MOVEWITHSECTOR\n\t+NOGRAVITY\n\t+DontSplash\n\t+CEILINGHUGGER\n\tstates\n\t{\n\t\tSpawn:\n\t\t\tTNT1 A 0\n\t\t\tTNT1 A 0 A_JUmp (255, \"Live1\", \"Live2\", \"Live3\")\n\t\t\tGoto Live1\n\n\t\t Live1:\n\t\t\t XMT1 IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII 5 ThrustThingZ(0, 20, 0, 1)\n\t\t\t Goto Fall\n\n\t\t Live2:\n\t\t\t XMT1 IIIIIIIIIIIIIIIIIIIIIIIII 5 ThrustThingZ(0, 20, 0, 1)\n\t\t\t Goto Fall\n\n\t\t Live3:\n\t\t\t XMT1 IIIIIIIIIIIIIIIII 5 ThrustThingZ(0, 20, 0, 1)\n\t\t\t Goto Fall\n\n\t\t Fall:\n\t\t\t XMT1 F 0\n\t\t\t XMT1 JJJKKLL 2\n\t\t\t TNT1 A 0 A_SpawnItemEx(\"XDeath2NoStick\", 0, 0, 0, 0, 0, -1)\n\t\t\t stop\n\t\t Splash:\n\t\t\t BLOD A 0\n\t\t\t stop\n\t\t}\n}\n\n//piece of meat that got stuck on the ceiling/wall and now is falling\nACTOR XDeath2NoStick: XDeath2\n{\n Speed 0\n\tGravity 0.4\n DeathSound \"misc/xdeath2\"\n\tRadius 1\n\tHeight 0\n States\n {\n Spawn:\n\t\tXMT1 FFFGGH 2\n\tLive:\n\t TNT1 A 0 A_JumpIf(waterlevel > 1, \"Splash\")\n\t\tTNT1 A 0 A_CheckFloor(\"Death\")\n\t\tXMT1 ABCDEFGH 3 A_CustomMissile (\"BD_FlyingBloodTrail\", 0, 0, random (0, 360), 2, random (0, 360))\n Loop\n Death:\n TNT1 AAAAAAA 0 A_CustomMissile (\"BD_FlyingBloodTrail\", 0, 0, random (0, 360), 2, random (20, 70))\n XMT1 M 1\n\t\tTNT1 A 0 A_QueueCorpse\n\t\tXMT1 M 3\n\t\tTNT1 A 0 A_SpawnItem(\"BDLargeBloodSpot\",0,0,0,1)\n\t\tXMT1 M -1\n\t\tStop\n }\n}\n\n//Variation of XDeath2\nACTOR XDeath3: XDeath2\n{\n DeathSound \"misc/xdeath3\"\n\tDecal BrutalBloodSuper\n States\n {\n Spawn:\n\t TNT1 A 0 A_JumpIf(waterlevel > 1, \"Splash\")\n XMT2 ABCDEFGH 3 A_CustomMissile (\"BD_FlyingBloodTrail\", 0, 0, random (0, 360), 2, random (0, 360))\n Loop\n Death:\n TNT1 AAAAAAA 0 A_CustomMissile (\"BD_FlyingBloodTrail\", 0, 0, random (0, 180), 2, random (0, 180))\n\t TNT1 A 0 A_CheckFloor(\"SpawnFloor\")\n\t\tTNT1 A 0 A_CheckCeiling(\"SpawnCeiling\")\n\t\tTNT1 A 0 A_SpawnItem(\"SmearingXDeath3\")\n\t\tStop\n\n\tSpawnFloor:\n\t XMT2 I 1\n\t\tTNT1 A 0 A_QueueCorpse\n\t\tTNT1 A 0 A_SpawnItemEx (\"BDLargeBloodSpot\", 0, 0, 1)\n\t\tXMT2 I -1\n\t\tStop\n\n\tSpawnCeiling:\n\t\tTNT1 A 0\n\t\tTNT1 A 0 A_SpawnItemEx (\"CeilXDeath3\", 0, 0, 1)\n\t\tTNT1 A 0 A_SpawnItemEx (\"CeilBloodSpotLarge\", 0, 0, 1)\n\t\tStop\n\n\tVanish:\n\t TNT2 A 5\n\t\tStop\n }\n}\n\nACTOR XDeath3b: XDeath3 {\tSpeed 4 } //Low-range version.\n\n//A piece of meat that has hit the wall, and now is slowly smearing\nACTOR SmearingXDeath3: SmearingXDeath2\n{\n\n States\n {\n\tSpawn:\n\t\tXME2 G 10\n\t\tTNT1 A 0 ThrustThingZ(0, 1, 1, 1)\n\t\tTNT1 A 0 A_Jump(255, \"Spawn1\", \"Spawn2\", \"Spawn3\", \"Spawn4\")\n\n\tSpawn1:\n\t\tXMT2 OOOOOOOOOOOOOOOO 2 A_CheckFloor(\"Rest\")\n\t\tGoto Death\n\n\tSpawn2:\n\t\tXMT2 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO 2 A_CheckFloor(\"Rest\")\n\t\tGoto Death\n\n\tSpawn3:\n\t\tXMT2 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO 2 A_CheckFloor(\"Rest\")\n\t\tGoto Death\n\n\tSpawn4:\n\t\tXMT2 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO 2 A_CheckFloor(\"Rest\")\n\t\tGoto Death\n\n\tDeath:\n\t TNT1 A 0\n\t TNT1 A 0 A_SpawnItem(\"XDeath3NoStick\")\n Stop\n\n\tRest:\n\t\tXMT2 I 1\n\t\tTNT1 A 0 A_QueueCorpse\n\t\tTNT1 A 0 A_SpawnItem(\"BDLargeBloodSpot\",0,0,0,1)\n\t\tXMT2 I -1\n\t\tStop\n\n\tVanish:\n\t TNT1 A 5\n\t\tStop\n }\n}\n\n//piece of meat that got stuck in the ceiling\nactor CeilXDeath3: CeilXDeath2\n{\n\tstates\n\t{\n\t\tSpawn:\n\t\t\tGoto Crash\n\t\t\tDeath:\n\t\t\tCrash:\n\t\t\tTNT1 A 0\n\t\t\tTNT1 A 0 A_JUmp (255, \"Live1\", \"Live2\", \"Live3\")\n\t\t\tGoto Live1\n\n\t\t Live1:\n\t\t\t XMT2 JJJJJJJJJJJJJJJJJ 4 ThrustThingZ(0, 20, 0, 1)\n\t\t\t Goto Fall\n\n\t\t Live2:\n\t\t\t XMT2 JJJJJJJJJJJJJJJJJJJJJJJJJJJ 4 ThrustThingZ(0, 20, 0, 1)\n\t\t\t Goto Fall\n\n\t\t Live3:\n\t\t\t XMT2 JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ 4 ThrustThingZ(0, 20, 0, 1)\n\t\t\t Goto Fall\n\n\t\t Fall:\n\t\t\t XMT2 JJJJKKKLLM 2\n\t\t\t TNT1 A 0 A_SpawnItemEx(\"XDeath3NoStick\", 0, 0, 0, 0, 0, -1)\n\t\t\t XMT2 MMN 2\n\t\t\t stop\n\t\t Splash:\n\t\t\t BLOD A 0\n\t\t\t stop\n\t\t}\n}\n\n//piece of meat that got stuck on the ceiling/wall and now is falling\nACTOR XDeath3NoStick: XDeath2NoStick\n{\n\n States\n {\n Spawn:\n\t TNT1 A 0 A_JumpIf(waterlevel > 1, \"Splash\")\n\t\tTNT1 A 0 A_CheckFloor(\"Death\")\n XMT2 O 3\n Loop\n Death:\n TNT1 AAAAAAA 0 A_CustomMissile (\"BD_FlyingBloodTrail\", 0, 0, random (0, 360), 2, random (20, 70))\n XMT2 I 1\n\t\tTNT1 A 0 A_QueueCorpse\n\t\tXMT2 I 3\n\t\tTNT1 A 0 A_SpawnItem(\"BDLargeBloodSpot\",0,0,0,1)\n\t\tXMT2 I -1\n\t\tStop\n }\n}\n\n//Big piece of ribcage\nACTOR XDeath4: XDeath2\n{\n DeathSound \"misc/xdeath3\"\n\tGravity 1.0\n\twallbouncefactor 0.2\n States\n {\n Spawn:\n\t TNT1 A 0 A_JumpIf(waterlevel > 1, \"Splash\")\n XDB6 AAAAAA 3 A_CustomMissile (\"BD_FlyingBloodTrail\", 0, 0, random (0, 360), 2, random (0, 360))\n Loop\n Death:\n\t\tXDB6 B 1\n\t\tTNT1 A 0 A_QueueCorpse\n\t\tXDB6 B -1\n\t\tStop\n }\n}\n\n//Big piece of ribcage 2\nACTOR XDeath5: XDeath2\n{\n DeathSound \"misc/xdeath3\"\n\tGravity 0.6\n\tSpeed 4\n States\n {\n Spawn:\n\t TNT1 A 0 A_JumpIf(waterlevel > 1, \"Splash\")\n XME5 A 3 A_CustomMissile (\"BD_FlyingBloodTrail\", 0, 0, random (0, 360), 2, random (0, 360))\n Loop\n Death:\n TNT1 AAAAAAA 0 A_CustomMissile (\"BD_FlyingBloodTrail\", 0, 0, random (0, 180), 2, random (0, 180))\n TNT1 A 0 A_SpawnItemEx (\"BDLargeBloodSpot\", 0, 0, 1)\n\t\tXME5 B 1\n\t\tTNT1 A 0 A_QueueCorpse\n\t\tXME5 B -1\n\t\tTNT1 A 0\n XME5 B 3\n Living:\n\t\tXME5 B 800//duration\n\t\tTNT1 A 0 A_JumpIfInventory(\"lowgraphicsmode\", 1, \"Vanish\")\n Loop\n\tVanish:\n\t TNT1 A 1\n\t Stop\n\n }\n}\n//Big piece of ribcage 3\nACTOR XDeath6: XDeath2\n{\n DeathSound \"misc/xdeath3\"\n\tGravity 0.6\n\tSpeed 4\n States\n {\n Spawn:\n\t TNT1 A 0 A_JumpIf(waterlevel > 1, \"Splash\")\n XME5 C 3 A_CustomMissile (\"BD_FlyingBloodTrail\", 0, 0, random (0, 360), 2, random (0, 360))\n Loop\n Death:\n TNT1 AAAAAAA 0 A_CustomMissile (\"BD_FlyingBloodTrail\", 0, 0, random (0, 180), 2, random (0, 180))\n TNT1 A 0 A_SpawnItemEx (\"BDLargeBloodSpot\", 0, 0, 1)\n\t\tXME5 D 1\n\t\tTNT1 A 0 A_QueueCorpse\n\t\tXME5 D -1\n\t\tTNT1 A 0\n XME5 D 3\n Living:\n\t\tXME5 D 800//duration\n\t\tTNT1 A 0 A_JumpIfInventory(\"lowgraphicsmode\", 1, \"Vanish\")\n Loop\n\tVanish:\n\t TNT1 A 1\n\t Stop\n\n }\n}\n\nACTOR XDeath5Big: XDeath5\n{\n\tXScale -1.5\n\tYScale 1.5\n\tSpeed 6\n}\n\nACTOR XDeath6Big: XDeath6\n{\n\tXScale -1.5\n\tYScale 1.5\n\tSpeed 6\n}\n\n//Generic organ\nACTOR XDeathOrgan1: XDeath2\n{\n\tScale 0.9\n\tSpeed 4\n States\n {\n Spawn:\n\t XME8 A 4 A_CustomMissile (\"BD_FlyingBloodTrail\", 0, 0, random (0, 360), 2, random (0, 360))\n Loop\n Death:\n XME8 A 1\n\t\tTNT1 A 0 A_QueueCorpse\n\t\tXME8 A -1\n Stop\n }\n}\n\nACTOR XDeathOrgan1b: XDeathOrgan1\n{\n\tXScale -0.7\n\tYScale 0.5\n}\n\nACTOR XDeathOrgan2: XDeathOrgan1\n{\nStates\n{\n Spawn:\n\t XME8 B 4 A_CustomMissile (\"BD_FlyingBloodTrail\", 0, 0, random (0, 360), 2, random (0, 360))\n Loop\n Death:\n XME8 B 1\n\t\tTNT1 A 0 A_QueueCorpse\n\t\tXME8 B -1\n Stop\n }\n}\n\nACTOR GoreSound: XDeath2\n{\n SeeSound \"misc/xdeath4\"\n DeathSound \"none\"\n Decal \"None\"\n States\n {\n Spawn:\n\t TNT1 A 0 A_JumpIf(waterlevel > 1, \"Splash\")\n TNT1 A 2\n Loop\n Death:\n TNT1 BCDE 1\n Stop\n Splash:\n TNT1 A 1\n Stop\n }\n}\n\nACTOR Guts\n{\n Radius 8\n Height 12\n Speed 4\n\tMass 1\n\tBounceFactor 0.4\n\tAlpha 0.9\n\t+BOUNCEONWALLS\n\t+BOUNCEONCEILINGS\n +NOBLOCKMAP\n\t+MISSILE\n +NOTELEPORT\n +MOVEWITHSECTOR\n +CLIENTSIDEONLY\n +FORCEXYBILLBOARD\n\t-EXPLODEONWATER\n\tDecal BrutalBloodSplat\n\tGravity 0.4\n States\n {\n Spawn:\n\t\tGUTS A 1\n\t\tTNT1 A 0 A_Jump(255, \"Spawn1\", \"Spawn2\", \"Spawn3\", \"Spawn4\")\n\tSpawn1:\n\t\tTNT1 A 0\n\t\tTNT1 A 0 A_SetScale(0.9, 0.8)\n\t\tGoto Live\n\n\tSpawn2:\n\t\tTNT1 A 0\n\t\tTNT1 A 0 A_SetScale(-1.0, 1.0)\n\t\tGoto Live\n\n\tSpawn3:\n\t\tTNT1 A 0\n\t\tTNT1 A 0 A_SetScale(1.2, 1.0)\n\t\tGoto Live\n\n\tSpawn4:\n\t\tTNT1 A 0\n\t\tTNT1 A 0 A_SetScale(-0.6, 1.0)\n\t\tGoto Live\n\n\tLive:\n\t\tGUTS ABCDEFGH 3 A_JumpIf(waterlevel > 1, \"Water\")\n GUTS H -1\n\t\tLoop\n\n Death:\n\t\tTNT1 A 0 A_JumpIf(waterlevel > 1, \"Water\")\n TNT1 A 0\n\t Goto Rest\n\n\tRest:\n\t\tTNT1 A 0\n\t\tTNT1 A 0 A_QueueCorpse\n\t\tTNT1 A 0 A_Jump(255, \"Rest1\", \"Rest2\")\n\n\tRest1:\n GUTS K 1\n GUTS K -1\n\t\tStop\n\n\tRest2:\n\t\tGUTS L 1\n GUTS L -1\n\t\tStop\n\n\tDoNothing:\n\t\tTNT1 A 0\n\t\tStop\n\n\tWater:\n\t\tGUTS GHIH 10\n\t\tLoop\n }\n}\n\nACTOR Guts2: Guts\n{\n Speed 3\n}\n\nACTOR SmallBrainPiece: Xdeath2\n{\n Radius 2\n Height 2\n\tSpeed 10\n\tScale 0.6\n\tDecal None\n States\n {\n\tSpawn:\n\t\tTNT1 A 0\n\t\tTNT1 A 0 A_Jump(255, \"Spawn1\", \"Spawn2\", \"Spawn3\", \"Spawn4\", \"Fly\")\n\tSpawn1:\n\t\tTNT1 A 0\n\t\tTNT1 A 0 A_SetScale(0.2, 0.2)\n\t\tGoto Fly\n\tSpawn2:\n\t\tTNT1 A 0\n\t\tTNT1 A 0 A_SetScale(-0.5, 0.5)\n\t\tGoto Fly\n\tSpawn3:\n\t\tTNT1 A 0\n\t\tTNT1 A 0 A_SetScale(-0.3, 0.3)\n\t\tGoto Fly\n\tSpawn4:\n\t\tTNT1 A 0\n\t\tTNT1 A 0 A_SetScale(-0.2, 0.2)\n\t\tGoto Fly\n\tFly:\n\t\tXDB5 ABCDEFGH 2\n\t\tLoop\n\tDeath:\n\t\tTNT1 A 0\n\t\tTNT1 A 0 A_CheckFloor(\"Rest\")\n\t\tTNT1 A 0 A_CheckCeiling(\"SpawnCeil\")\n\t\tTNT1 A 0 A_SpawnItemEx(\"SmearingBrain\", 0, 0, 0, 0, 0, 0, 0, SXF_TRANSFERSCALE)\n\t\tStop\n\tSpawnCeil:\n\t\tTNT1 A 0\n\t\tTNT1 A 0 A_SpawnItemEx(\"SmallBrainPieceCeil\", 0, 0, 0, 0, 0, 0, 0, SXF_TRANSFERSCALE)\n\t\tStop\n\n\tRest:\n\t\tTNT1 A 0\n\t\tTNT1 A 0 A_QueueCorpse\n\t\tXDT5 O 1\n\t\tXDT5 O -1\n\t\tStop\n\n\tDoNothing:\n\t\tTNT1 A 0\n\t\tStop\n }\n}\n\nACTOR SmallBrainPieceFast: SmallBrainPiece { Speed 14 }\n\nActor SmallBrainPieceCeil: CeilXDeath2\n{\nScale 0.6\n\tStates\n\t{\n\t\tSpawn:\n\t\t\tTNT1 A 0\n\t\t\tTNT1 A 0 A_JUmp (255, \"Live1\", \"Live2\", \"Live3\")\n\t\t\tGoto Live1\n\n\t\t Live1:\n\t\t\t XDB5 JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ 4 ThrustThingZ(0, 20, 0, 1)\n\t\t\t Goto Fall\n\n\t\t Live2:\n\t\t\t XDB5 JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ 4 ThrustThingZ(0, 20, 0, 1)\n\t\t\t Goto Fall\n\n\t\t Live3:\n\t\t\t XDB5 JJJJJJJJJJJJJJJ 4 ThrustThingZ(0, 20, 0, 1)\n\t\t\t Goto Fall\n\n\t\t Fall:\n\t\t\t TNT1 A 0 A_SpawnItemEx(\"SmallBrainPieceFalling\", 0, 0, 0, 0, 0, -2, SXF_TRANSFERSCALE)\n\t\t\t stop\n\t\t Splash:\n\t\t\t BLOD A 0\n\t\t\t stop\n\t\t\t }\n}\n\nACTOR SmallBrainPieceFalling: SmallBrainPiece\n{\n States\n {\n\tSpawn:\n\t\tXDB5 P 1\n\t\tXDB5 P -1\n\t\tLoop\n\tDeath:\n\t\tTNT1 A 0\n\t\tTNT1 A 0 A_QueueCorpse\n\t\tXDB5 O 1\n\t\tXDB5 O -1\n\t\tStop\n }\n}\n\nACTOR SmearingBrain\n{\n Radius 2\n Height 2\n\tSpeed 10\n\tMass 1\n\tScale 0.6\n +NOBLOCKMAP\n +NOTELEPORT\n\t+THRUGHOST\n\t+CLIENTSIDEONLY\n +DONTSPLASH\n +MOVEWITHSECTOR\n\t-DONTSPLASH\n\t+FORCEXYBILLBOARD\n\t+QUARTERGRAVITY\n States\n {\n\tSpawn:\n\tTNT1 A 0\n\tTNT1 A 0 A_ChangeFlag(\"NOGRAVITY\", 1)\n\tTNT1 A 0 A_Jump(255, \"Spawn1\", \"Spawn2\", \"Spawn3\", \"Spawn4\")\n\tGoto Spawn1\n\n\tSpawn1:\n\tXDB5 PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP 2 A_CheckFloor(\"Rest\")\n\tGoto Death\n\n\tSpawn2:\n\tXDB5 PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP 2 A_CheckFloor(\"Rest\")\n\tGoto Death\n\n\tSpawn3:\n\tXDB5 PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP 2 A_CheckFloor(\"Rest\")\n\tGoto Death\n\n\tSpawn4:\n\tXDB5 PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP 2 A_CheckFloor(\"Rest\")\n\tGoto Death\n\n\tDeath:\n\tRest:\n\t TNT1 A 0\n\t\tTNT1 A 0 A_QueueCorpse\n\t TNT1 A 0 A_ChangeFlag(\"QUARTERGRAVITY\", 0)\n\t\tXDB5 P 2 ThrustThingZ(0,-2,0,1)\n\t\tTNT1 A 0 A_CheckFloor(\"Sleep\")\n\t\tXDB5 P 2 ThrustThingZ(0,-2,0,1)\n\t\tTNT1 A 0 A_CheckFloor(\"Sleep\")\n\t\tXDB5 P 2 ThrustThingZ(0,-2,0,1)\n\t\tTNT1 A 0 A_CheckFloor(\"Sleep\")\n\t\tXDB5 P 2 ThrustThingZ(0,-2,0,1)\n\t\tTNT1 A 0 A_CheckFloor(\"Sleep\")\n\t\tXDB5 P 2 ThrustThingZ(0,-2,0,1)\n\t\tTNT1 A 0 A_CheckFloor(\"Sleep\")\n\t\tXDB5 P 2 ThrustThingZ(0,-2,0,1)\n\t\tTNT1 A 0 A_CheckFloor(\"Sleep\")\n\t\tXDB5 P 2 ThrustThingZ(0,-2,0,1)\n\t\tTNT1 A 0 A_CheckFloor(\"Sleep\")\n\t\tXDB5 P 2 ThrustThingZ(0,-2,0,1)\n\t\tTNT1 A 0 A_CheckFloor(\"Sleep\")\n\t\tXDB5 P 2 ThrustThingZ(0,-2,0,1)\n\t\tTNT1 A 0 A_CheckFloor(\"Sleep\")\n\t\tXDB5 P 2 ThrustThingZ(0,-2,0,1)\n\t\tTNT1 A 0 A_CheckFloor(\"Sleep\")\n\t\tXDB5 P 2 ThrustThingZ(0,-2,0,1)\n\t\tLoop\n\tSleep:\n XDB5 K 1\n\t\tXDB5 K -1\n Stop\n\tDoNothing:\n\tTNT1 A 0\n\tStop\n }\n}\n\nACTOR GibEyeball\n{\n Radius 2\n Height 2\n\tSpeed 6\n\tMass 1\n Decal BrutalBloodSplat\n +CLIENTSIDEONLY\n\tBounceFactor 0.5\n\t+DOOMBOUNCE\n\t+MISSILE\n +NOBLOCKMAP\n +NOTELEPORT\n +DONTSPLASH\n +MOVEWITHSECTOR\n\t+FLOORCLIP\n\tScale 0.8\n States\n {\n Spawn:\n\t TNT1 A 0 A_JumpIf(waterlevel > 1, \"Death\")\n\t\tBRIB EFGH 4\n\t\tLoop\n\tDeath:\n\t BRIB E 1\n\t\tTNT1 A 0 A_QueueCorpse\n\t\tTNT1 A 0\n\t Goto Rest\n\n\tRest:\n\t\tTNT1 A 0\n\t\tTNT1 A 0 A_Jump(255, \"Rest1\", \"Rest2\", \"Rest3\", \"Rest4\")\n\tRest1:\n BRIB E 800\n\t\tTNT1 A 0 A_JumpIfInventory(\"lowgraphicsmode\", 1, \"DoNothing\")\n Loop\n\n\tRest2:\n\t\tBRIB F 800\n\t\tTNT1 A 0 A_JumpIfInventory(\"lowgraphicsmode\", 1, \"DoNothing\")\n Loop\n\tRest3:\n BRIB G 800\n\t\tTNT1 A 0 A_JumpIfInventory(\"lowgraphicsmode\", 1, \"DoNothing\")\n Loop\n\n\tRest4:\n\t\tBRIB H 800\n\t\tTNT1 A 0 A_JumpIfInventory(\"lowgraphicsmode\", 1, \"DoNothing\")\n Loop\n\tDoNothing:\n\tTNT1 A 0\n\tStop\n }\n}"
},
{
"source": "pk3",
"name": "modeldef.blood.txt",
"contents": "//Unfortunately, Zandronum still doesn't supports flat sprites, so to ensure that the mode can work\n//both on GZDoom and Zandronum, it's still necessary to use 3D models.\n\nModel GiantBloodSpot // Name of actor in DECORATE\n{\n Path \"models/bloodspot\" // Path to model in PK3\n Model 0 \"bloodspot.md3\" // Model index, model file\n Skin 0 \"SPLTBLD.png\" // Model index, texture (can be in any format supported by GZDoom)\n Scale 90.0 90.0 1.0 // Scale values\n ZOffset 0.6\n FrameIndex BPDL A 0 0 // The sprite lump, sprite frame, model index, frame number\n}\n\nModel BigBloodSpot // Name of actor in DECORATE\n{\n Path \"models/bloodspot\" // Path to model in PK3\n Model 0 \"bloodspot.md3\" // Model index, model file\n Skin 0 \"SPLTBLD.png\" // Model index, texture (can be in any format supported by GZDoom)\n Scale 70.0 70.0 1.0 // Scale values\n ZOffset 0.6\n FrameIndex BPDL A 0 0 // The sprite lump, sprite frame, model index, frame number\n}\n\n//Frame A\nModel Bolognese_BloodSpot // Name of actor in DECORATE\n{\n Path \"models/bloodspot\" // Path to model in PK3\n Model 0 \"bloodspot.md3\" // Model index, model file\n Skin 0 \"bloodspothd.png\" // Model index, texture (can be in any format supported by GZDoom)\n Scale 40.0 40.0 0.1 // Scale values\n FrameIndex BPDL A 0 0 // The sprite lump, sprite frame, model index, frame number\n ZOffset 2.5\n}\n\n//Frame B\nModel Bolognese_BloodSpot // Name of actor in DECORATE\n{\n Path \"models/bloodspot\" // Path to model in PK3\n Model 0 \"bloodspot.md3\" // Model index, model file\n Skin 0 \"bloodspothd2.png\" // Model index, texture (can be in any format supported by GZDoom)\n Scale 40.0 40.0 0.1 // Scale values\n FrameIndex BPDL B 0 0 // The sprite lump, sprite frame, model index, frame number\n ZOffset 2.25\n}\n\n//Frame C\nModel Bolognese_BloodSpot // Name of actor in DECORATE\n{\n Path \"models/bloodspot\" // Path to model in PK3\n Model 0 \"bloodspot.md3\" // Model index, model file\n Skin 0 \"bloodspothd3.png\" // Model index, texture (can be in any format supported by GZDoom)\n Scale 40.0 40.0 0.1 // Scale values\n FrameIndex BPDL C 0 0 // The sprite lump, sprite frame, model index, frame number\n ZOffset 2.0\n}\n\n//Frame A\nModel BDLargeBloodSpot // Name of actor in DECORATE\n{\n Path \"models/bloodspot\" // Path to model in PK3\n Model 0 \"bloodspot.md3\" // Model index, model file\n Skin 0 \"bloodspotbig1.png\" // Model index, texture (can be in any format supported by GZDoom)\n Scale 60.0 60.0 0.1 // Scale values\n FrameIndex BPDL A 0 0 // The sprite lump, sprite frame, model index, frame number\n ZOffset 2.5\n}\n\n//Frame B\nModel BDLargeBloodSpot // Name of actor in DECORATE\n{\n Path \"models/bloodspot\" // Path to model in PK3\n Model 0 \"bloodspot.md3\" // Model index, model file\n Skin 0 \"bloodspotbig2.png\" // Model index, texture (can be in any format supported by GZDoom)\n Scale 60.0 60.0 0.1 // Scale values\n FrameIndex BPDL B 0 0 // The sprite lump, sprite frame, model index, frame number\n ZOffset 2.25\n}\n\n//Frame C\nModel BDLargeBloodSpot // Name of actor in DECORATE\n{\n Path \"models/bloodspot\" // Path to model in PK3\n Model 0 \"bloodspot.md3\" // Model index, model file\n Skin 0 \"bloodspotbig3.png\" // Model index, texture (can be in any format supported by GZDoom)\n Scale 60.0 60.0 0.1 // Scale values\n FrameIndex BPDL C 0 0 // The sprite lump, sprite frame, model index, frame number\n ZOffset 2.0\n}\n\nModel MinuscleBloodSpot // Name of actor in DECORATE\n{\n Path \"models/bloodspot\" // Path to model in PK3\n Model 0 \"bloodspot.md3\" // Model index, model file\n Skin 0 \"bloodspothd.png\" // Model index, texture (can be in any format supported by GZDoom)\n Scale 30.0 30.0 30.0 // Scale values\n FrameIndex BPDL A 0 0 // The sprite lump, sprite frame, model index, frame number\n ZOffset 1.4\n}\n\nModel MinuscleBloodSpot // Name of actor in DECORATE\n{\n Path \"models/bloodspot\" // Path to model in PK3\n Model 0 \"bloodspot.md3\" // Model index, model file\n Skin 0 \"bloodpool.png\" // Model index, texture (can be in any format supported by GZDoom)\n Scale 40.0 40.0 30.0 // Scale values\n ZOffset 1.5\n FrameIndex BPDL B 0 0 // The sprite lump, sprite frame, model index, frame number\n}\n\nModel MinuscleBloodSpot // Name of actor in DECORATE\n{\n Path \"models/bloodspot\" // Path to model in PK3\n Model 0 \"bloodspot.md3\" // Model index, model file\n Skin 0 \"bloodpool.png\" // Model index, texture (can be in any format supported by GZDoom)\n Scale 35.0 35.0 30.0 // Scale values\n ZOffset 1.6\n FrameIndex BPDL C 0 0 // The sprite lump, sprite frame, model index, frame number\n}\n\nModel MinuscleBloodSpot // Name of actor in DECORATE\n{\n Path \"models/bloodspot\" // Path to model in PK3\n Model 0 \"bloodspot.md3\" // Model index, model file\n Skin 0 \"bloodpool.png\" // Model index, texture (can be in any format supported by GZDoom)\n Scale 41.0 41.0 30.0 // Scale values\n ZOffset 1.3\n FrameIndex BPDL D 0 0 // The sprite lump, sprite frame, model index, frame number\n}\n\nModel MinuscleBloodSpot // Name of actor in DECORATE\n{\n Path \"models/bloodspot\" // Path to model in PK3\n Model 0 \"bloodspot.md3\" // Model index, model file\n Skin 0 \"bloodpool.png\" // Model index, texture (can be in any format supported by GZDoom)\n Scale 30.0 30.0 30.0 // Scale values\n ZOffset 1.7\n FrameIndex BPDL C 0 0 // The sprite lump, sprite frame, model index, frame number\n}\n\nModel MinuscleBloodSpot // Name of actor in DECORATE\n{\n Path \"models/bloodspot\" // Path to model in PK3\n Model 0 \"bloodspot.md3\" // Model index, model file\n Skin 0 \"bloodpool.png\" // Model index, texture (can be in any format supported by GZDoom)\n Scale 30.0 30.0 30.0 // Scale values\n ZOffset 1.7\n FrameIndex BPDL D 0 0 // The sprite lump, sprite frame, model index, frame number\n}\n\nModel Waterbloodspot // Name of actor in DECORATE\n{\n Path \"models/bloodspot\" // Path to model in PK3\n Model 0 \"bloodspot.md3\" // Model index, model file\n Skin 0 \"BLODWAT.png\" // Model index, texture (can be in any format supported by GZDoom)\n Scale 40.0 40.0 0.1 // Scale values\n ZOffset 1.0\n ROTATING\n Rotation-Speed 1\n\n FrameIndex BPDL E 0 0 // The sprite lump, sprite frame, model index, frame number\n}\n\nModel BD_FlyingBlood // Name of actor in DECORATE\n{\n Path \"models/bloodspot\" // Path to model in PK3\n Model 0 \"bloodspot.md3\" // Model index, model file\n Skin 0 \"bloodpool.png\" // Model index, texture (can be in any format supported by GZDoom)\n Scale 40.0 40.0 50.0 // Scale values\n ZOffset 1.6\n FrameIndex BPDL B 0 0 // The sprite lump, sprite frame, model index, frame number\n}\n\nModel BD_FlyingBlood // Name of actor in DECORATE\n{\n Path \"models/bloodspot\" // Path to model in PK3\n Model 0 \"bloodspot.md3\" // Model index, model file\n Skin 0 \"bloodpool2.png\" // Model index, texture (can be in any format supported by GZDoom)\n Scale 46.0 46.0 46.0 // Scale values\n ZOffset 1.6\n FrameIndex BPDL A 0 0 // The sprite lump, sprite frame, model index, frame number\n}\n\nModel CeilBloodSpot // Name of actor in DECORATE\n{\n Path \"models/bloodspot\" // Path to model in PK3\n Model 0 \"bloodceil.md3\" // Model index, model file\n Skin 0 \"bloodspothd.png\" // Model index, texture (can be in any format supported by GZDoom)\n Scale 40.0 40.0 -60.0 // Scale values\n ZOffset -0.1\n FrameIndex BPDL A 0 0 // The sprite lump, sprite frame, model index, frame number\n}\n\nModel CeilBloodSpotLarge // Name of actor in DECORATE\n{\n Path \"models/bloodspot\" // Path to model in PK3\n Model 0 \"bloodceil.md3\" // Model index, model file\n Skin 0 \"bigbloodpool.png\" // Model index, texture (can be in any format supported by GZDoom)\n Scale 40.0 40.0 1.0 // Scale values\n ZOffset -0.1\n FrameIndex BPDL a 0 0 // The sprite lump, sprite frame, model index, frame number\n}\n\nModel MediumBloodSpot2 // Name of actor in DECORATE\n{\n Path \"models/bloodspot\" // Path to model in PK3\n Model 0 \"bloodspot.md3\" // Model index, model file\n Skin 0 \"bigbloodpool.png\" // Model index, texture (can be in any format supported by GZDoom)\n Scale 80.0 80.0 80.0 // Scale values\n ZOffset 1.6\n FrameIndex BPDL A 0 0 // The sprite lump, sprite frame, model index, frame number\n}\n\nModel MediumBloodSpot // Name of actor in DECORATE\n{\n Path \"models/bloodspot\" // Path to model in PK3\n Model 0 \"bloodspot.md3\" // Model index, model file\n Skin 0 \"bigbloodpool.png\" // Model index, texture (can be in any format supported by GZDoom)\n Scale 80.0 80.0 80.0 // Scale values\n ZOffset 1.6\n FrameIndex BPDL A 0 0 // The sprite lump, sprite frame, model index, frame number\n}\n\nModel SplatteredSmall // Name of actor in DECORATE\n{\n Path \"models/bloodspot\" // Path to model in PK3\n Model 0 \"bloodspot.md3\" // Model index, model file\n Skin 0 \"bigbloodpool.png\" // Model index, texture (can be in any format supported by GZDoom)\n Scale 60.0 60.0 60.0 // Scale values\n ZOffset 1.6\n FrameIndex BPDL A 0 0 // The sprite lump, sprite frame, model index, frame number\n}\n\nModel SplatteredLarge // Name of actor in DECORATE\n{\n Path \"models/bloodspot\" // Path to model in PK3\n Model 0 \"bloodspot.md3\" // Model index, model file\n Skin 0 \"SPLTBLD.png\" // Model index, texture (can be in any format supported by GZDoom)\n Scale 90.0 90.0 1.0 // Scale values\n ZOffset 0.6\n FrameIndex BPDL A 0 0 // The sprite lump, sprite frame, model index, frame number\n}\n\nModel GrowingBloodPool // Name of actor in DECORATE\n{\n Path \"models/bloodspot\" // Path to model in PK3\n Model 0 \"bloodspot.md3\" // Model index, model file\n Skin 0 \"bloodpool2.png\" // Model index, texture (can be in any format supported by GZDoom)\n Scale 20.0 20.0 1.0 // Scale values\n ZOffset 0.65\n FrameIndex TNT5 A 0 0 // The sprite lump, sprite frame, model index, frame number\n}\n\nModel Guts // Name of actor in DECORATE\n{\n Path \"models/bloodspot\" // Path to model in PK3\n Model 0 \"bloodspot.md3\" // Model index, model file\n Skin 0 \"guts1.png\" // Model index, texture (can be in any format supported by GZDoom)\n Scale 14.0 14.0 1.0 // Scale values\n ZOffset 1.6\n FrameIndex GUTS K 0 0 // The sprite lump, sprite frame, model index, frame number\n}\n\nModel Guts // Name of actor in DECORATE\n{\n Path \"models/bloodspot\" // Path to model in PK3\n Model 0 \"bloodspot.md3\" // Model index, model file\n Skin 0 \"guts2.png\" // Model index, texture (can be in any format supported by GZDoom)\n Scale 14.0 14.0 1.0 // Scale values\n ZOffset 1.4\n FrameIndex GUTS L 0 0 // The sprite lump, sprite frame, model index, frame number\n}"
},
{
"source": "pk3",
"name": "Serving.txt",
"contents": "//Gore Groups (spawns gibs and blood when enemies explodes)\n\nACTOR MeatDeath\n{\n Radius 1\n Height 56\n Scale 0.8\n\tSpeed 0\n\tMass 1\n\tBounceFactor 0.5\n\t+DOOMBOUNCE\n\t+MISSILE\n +NOBLOCKMAP\n +NOTELEPORT\n +MOVEWITHSECTOR\n +NOGRAVITY\n +NOCLIP\n +DONTSPLASH\n States\n {\n Spawn:\n\t\t TNT1 A 0\n\t\t TNT1 A 0 A_PlaySound(\"SLOP\", 1)\n TNT1 AAA 0 A_CustomMissile (\"CeilBloodLauncherLong\", 0, 0, random (0, 360), 2, random (50, 130))\n\t\t TNT1 AAAAAAAAAAAA 0 A_CustomMissile (\"SuperWallRedBlood\", 40, 0, random (0, 360), 2, random (0, 15))\n\t\t TNT1 A 0 A_CustomMissile (\"XDeath2\", 42, 0, random (0, 360), 2, random (30, 90))\n\t\t TNT1 A 0 A_CustomMissile (\"XDeath3\", 42, 0, random (0, 360), 2, random (30, 90))\n\t\t TNT1 A 0 A_CustomMissile (\"XDeath4\", 42, 0, random (0, 360), 2, random (30, 90))\n\t\t TNT1 AA 0 A_CustomMissile (\"SmallBrainPiece\", 42, 0, random (0, 360), 2, random (30, 60))\n\t\t TNT1 A 0 A_CustomMissile (\"SmallBrainPieceFast\", 42, 0, random (0, 360), 2, random (30, 60))\n\t\t TNT1 AA 0 A_CustomMissile (\"XDeath2b\", 42, 0, random (0, 360), 2, random (30, 90))\n\t\t TNT1 AA 0 A_CustomMissile (\"XDeath3b\", 42, 0, random (0, 360), 2, random (30, 90))\n\t\t TNT1 A 0 A_CustomMissile (\"XDeath5\", 42, 0, random (0, 360), 2, random (30, 90))\n\t\t TNT1 AA 0 A_CustomMissile (\"XDeath6\", 42, 0, random (0, 360), 2, random (30, 90))\n\t\t TNT1 AAA 0 A_CustomMissile (\"Guts\", 32, 0, random (0, 360), 2, random (20, 30))\n\t\t TNT1 A 0 A_CustomMissile (\"BloodMistExtraBig\", 10, 0, random (0, 360), 2, random (40, 60))\n\t\t TNT1 A 0 A_CustomMissile (\"BloodMistExtraBig\", 30, 0, random (0, 360), 2, random (40, 60))\n\t\t TNT1 AA 0 A_CustomMissile (\"BloodMistExtraBig\", 40, 0, random (0, 360), 2, random (40, 90))\n\t\t TNT1 AAAAA 0 A_CustomMissile (\"BloodmistSpray\", 40, 0, random (0, 360), 2, random (40, 90))\n\t\t TNT1 AA 0 A_CustomMissile (\"SuperGoreMist\", 32, 0, random (0, 360), 2, random (20, 60))\n\t\t TNT1 A 10\n\tDeath:\n\t TNT1 A 0\n Stop\n }\n}\n\n//A bit less gibs for the player\nACTOR PlayerMeatDeath: MeatDeath\n{\n States\n {\n Spawn:\n\t\t TNT1 A 0\n\t\t TNT1 A 0 A_PlaySound(\"SLOP\", 1)\n TNT1 AA 0 A_CustomMissile (\"CeilBloodLauncherLong\", 0, 0, random (0, 360), 2, random (50, 130))\n\t\t TNT1 AAAAAAAA 0 A_CustomMissile (\"SuperWallRedBlood\", 40, 0, random (0, 360), 2, random (0, 15))\n\t\t TNT1 A 0 A_CustomMissile (\"XDeath2\", 42, 0, random (0, 360), 2, random (30, 90))\n\t\t TNT1 A 0 A_CustomMissile (\"XDeath3\", 42, 0, random (0, 360), 2, random (30, 90))\n\t\t TNT1 A 0 A_CustomMissile (\"XDeath4\", 42, 0, random (0, 360), 2, random (30, 90))\n\t\t TNT1 A 0 A_CustomMissile (\"GibEyeball\", 42, 0, random (0, 360), 2, random (40, 60))\n\t\t TNT1 AA 0 A_CustomMissile (\"SmallBrainPiece\", 42, 0, random (0, 360), 2, random (30, 60))\n\t\t TNT1 A 0 A_CustomMissile (\"SmallBrainPieceFast\", 42, 0, random (0, 360), 2, random (30, 60))\n\t\t TNT1 AA 0 A_CustomMissile (\"XDeath2b\", 42, 0, random (0, 360), 2, random (30, 90))\n\t\t TNT1 AA 0 A_CustomMissile (\"XDeath3b\", 42, 0, random (0, 360), 2, random (30, 90))\n\t\tTNT1 A 0 A_CustomMissile (\"XDeathOrgan1\", 24, 0, random (0, 360), 2, random (30, 90))\n\t\t TNT1 A 0 A_CustomMissile (\"XDeathOrgan2\", 24, 0, random (0, 360), 2, random (30, 90))\n\t\t TNT1 AAA 0 A_CustomMissile (\"Guts\", 32, 0, random (0, 360), 2, random (20, 30))\n\t\t TNT1 A 0 A_CustomMissile (\"BloodMistExtraBig\", 10, 0, random (0, 360), 2, random (40, 60))\n\t\t TNT1 A 0 A_CustomMissile (\"BloodMistExtraBig\", 30, 0, random (0, 360), 2, random (40, 60))\n\t\t TNT1 AA 0 A_CustomMissile (\"BloodMistExtraBig\", 40, 0, random (0, 360), 2, random (40, 90))\n\t\t TNT1 AAAAA 0 A_CustomMissile (\"BloodmistSpray\", 40, 0, random (0, 360), 2, random (40, 90))\n\t\t TNT1 A 0 A_SpawnItem (\"BigBloodSpot\")\n\t\t TNT1 AA 0 A_CustomMissile (\"SuperGoreMist\", 32, 0, random (0, 360), 2, random (20, 60))\n\t\t TNT1 A 10\n\tDeath:\n\t TNT1 A 0\n Stop\n }\n}\n\n//Very large enemies, like a cyberdemon\nActor MeatDeathGiant: MeatDeath\n{\n States\n {\n Spawn:\n TNT1 AAAAA 0 A_CustomMissile (\"CeilBloodLauncherLong\", 0, 0, random (0, 360), 2, random (50, 130))\n TNT1 A 0 A_CustomMissile (\"XDeath2\", 82, 0, random (0, 360), 2, random (30, 90))\n\t\t TNT1 A 0 A_CustomMissile (\"XDeath3\", 82, 0, random (0, 360), 2, random (30, 90))\n\t\t TNT1 A 0 A_CustomMissile (\"XDeath4\", 82, 0, random (0, 360), 2, random (30, 90))\n\t\t TNT1 AA 0 A_CustomMissile (\"XDeath2b\", 82, 0, random (0, 360), 2, random (30, 90))\n\t\t TNT1 AA 0 A_CustomMissile (\"XDeath3b\", 82, 0, random (0, 360), 2, random (30, 90))\n\t\t TNT1 A 0 A_CustomMissile (\"XDeath5Big\", 82, 0, random (0, 360), 2, random (30, 90))\n\t\t TNT1 A 0 A_CustomMissile (\"XDeath6Big\", 82, 0, random (0, 360), 2, random (30, 90))\n\t\t TNT1 AAAAAAAA 0 A_CustomMissile (\"BloodMistExtraBig\", 80, 0, random (0, 360), 2, random (20, 90))\n\t\t TNT1 AAAAAAAA 0 A_CustomMissile (\"BloodmistSpray\", 80, 0, random (0, 360), 2, random (30, 90))\n\t\t TNT1 A 0 A_CustomMissile (\"XDeathOrgan1\", 24, 0, random (0, 360), 2, random (30, 90))\n\t\t TNT1 A 0 A_CustomMissile (\"XDeathOrgan2\", 24, 0, random (0, 360), 2, random (30, 90))\n\t\t TNT1 AAAA 0 A_CustomMissile (\"Guts\", 64, 0, random (0, 360), 2, random (30, 90))\n\t\t TNT1 A 0 A_SpawnItem (\"BigBloodSpot\")\n\t\t TNT1 AA 0 A_CustomMissile (\"BigSuperGore\", 80, 0, random (0, 360), 2, random (20, 60))\n\t\t TNT1 AAAAA 0 A_CustomMissile (\"SuperGoreSpawner\", 96, 0, random (0, 360), 2, random (20, 40))\n\tDeath:\n\t TNT1 A 0\n Stop\n }\n}\n\n//Small enemies, like a dog\nActor MeatDeathSmall: MeatDeath\n{\n States\n {\n Spawn:\n TNT1 AAA 0 A_CustomMissile (\"XDeath2b\", 16, 0, random (0, 360), 2, random (30, 90))\n\t\t TNT1 AAA 0 A_CustomMissile (\"XDeath3b\", 16, 0, random (0, 360), 2, random (30, 90))\n\t\t TNT1 A 0 A_CustomMissile (\"XDeathOrgan1\", 16, 0, random (0, 360), 2, random (30, 90))\n\t\t TNT1 A 0 A_CustomMissile (\"XDeathOrgan2\", 16, 0, random (0, 360), 2, random (30, 90))\n\t\t TNT1 AA 0 A_CustomMissile (\"Guts\", 16, 0, random (0, 360), 2, random (30, 90))\n\t\t TNT1 A 0 A_SpawnItem (\"BigBloodSpot\")\n\tDeath:\n\t TNT1 A 0\n Stop\n }\n}\n\n//Fat enemies, like a Mancubus\nActor MeatDeathFat: MeatDeath\n{\n States\n {\n Spawn:\n\t\tTNT1 A 0\n\t\tTNT1 AA 0 A_CustomMissile (\"XDeath5Big\", 45, 0, random (0, 360), 2, random (30, 90))\n\t\tTNT1 AAA 0 A_CustomMissile (\"XDeath6Big\", 45, 0, random (0, 360), 2, random (30, 90))\n\t\tTNT1 AAAAAAA 0 A_CustomMissile (\"SuperGoreSpawner\", 52, 0, random (0, 360), 2, random (20, 60))\n\t\tTNT1 AA 0 A_CustomMissile (\"Guts\", 42, 0, random (0, 360), 2, random (30, 90))\n\t\tTNT1 AA 0 A_CustomMissile (\"BigSuperGore\", 32, 0, random (0, 360), 2, random (20, 60))\n\t\tTNT1 AA 0 A_CustomMissile (\"Guts\", 42, 0, random (0, 360), 2, random (30, 90))\n\tDeath:\n\t TNT1 A 0\n Stop\n }\n}\n\n//Small enemies, like a rat\nActor MeatDeathTiny: MeatDeath\n{\n States\n {\n Spawn:\n\t\tTNT1 A 0\n\t\tTNT1 AA 0 A_CustomMissile (\"XDeath2b\", 3, 0, random (0, 360), 2, random (10, 40))\n\t\tTNT1 A 0 A_CustomMissile (\"XDeath3b\", 3, 0, random (0, 360), 2, random (10, 40))\n\t\tTNT1 AA 0 A_CustomMissile (\"Blood\", 3, 0, random (0, 360), 2, random (10, 40))\n\tDeath:\n\t TNT1 A 0\n Stop\n }\n}"
}
]
},
"maps": []
}