Raw model (for completeness)
{
"meta": {
"id": "006e43f1-c4b8-40e6-8987-6eb3e593ab37",
"sha1": "287c61dea03bb3d1ed338bc6a7a164903916f3c3",
"sha256": "642917bee2a866e6fc82c6130977a47dadc19e61e0bf462031779419ecd7daca",
"filenames": [
"cata-wepzv1-1-.pk3"
],
"additional": {
"engines": [
"ZDOOM"
],
"iwad": [],
"filename": null,
"added": "2016-02-26 21:34:21",
"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": "2016-02-26 21:34:21",
"file": {
"type": "PK3",
"size": 6108906,
"url": "https://wadarchive2.nyc3.digitaloceanspaces.com/287c61dea03bb3d1ed338bc6a7a164903916f3c3/287c61dea03bb3d1ed338bc6a7a164903916f3c3.pk3.gz",
"corrupt": false
},
"content": {
"counts": {
"endoom": 0,
"graphics": 0,
"lumps": 2119,
"maps": 0,
"palettes": 0
},
"engines_guess": [
"ZDOOM"
]
},
"analysis": {
"title": "cata-wepzv1-1-",
"description": "This WAD is a weapon mod pack without traditional maps, designed for the ZDoom engine. It features a large collection of custom weapons including rifles, shotguns, rocket launchers, plasma rifles, miniguns, sniper rifles, and unique melee weapons like a lifeleech sword. The content focuses on enhancing combat variety and firepower rather than map progression or exploration. There are no standard Doom maps or monster encounters included, so difficulty and resource balance are not applicable. The textures and sprites are custom and tailored to the new weapons. Compatibility is specific to ZDoom and similar source ports supporting DECORATE scripting.",
"tags": [
"combat_enhancement",
"custom_weapons",
"no_maps",
"weapon_mod",
"zdoom"
],
"origin": "gpt-4.1-mini"
},
"text_files": [
{
"source": "pk3",
"name": "DECORATE.txt",
"contents": "#include \"actors/player/player.txt\"\n#include \"actors/core/weaponSpawner.txt\"\n#include \"actors/core/bugfixer.txt\"\n#include \"actors/ammo/rifleammo.txt\"\n#include \"actors/guns/shared/bulletpuff.txt\"\n#include \"actors/guns/shared/casing.txt\"\n#include \"actors/guns/shared/smoke.txt\"\n#include \"actors/guns/shotgun/shotgun.txt\"\n#include \"actors/guns/doubleshotgun/doubleshotgun.txt\"\n#include \"actors/guns/autoshotgun/autoshotgun.txt\"\n#include \"actors/guns/pumprifle/rifle.txt\"\n#include \"actors/guns/rocket launcher/rocketlauncher.txt\"\n#include \"actors/guns/plasma rifle/plasmarifle.txt\"\n#include \"actors/guns/minigun/minigun.txt\"\n#include \"actors/guns/sniper rifle/sniperrifle.txt\"\n#include \"actors/guns/plasma combuster/plasmacombustor.txt\"\n#include \"actors/guns/fist/fist.txt\"\n#include \"actors/guns/lifeleech sword/lifeleechsword.txt\"\n#include \"actors/guns/rapid rocket launcher/rapidrocketlauncher.txt\"\n#include \"actors/effects/teleport.txt\"\n#include \"actors/guns/revolver/revolver.txt\""
},
{
"source": "pk3",
"name": "Credits.txt",
"contents": "Tormentor667\nRealm667\nLogan MTM\nSgt. Shivers\nAeoD\nEriance\nBrutal Doom\nDaedalus\nCaptain J\nDoomNukem\nWildWeasel"
},
{
"source": "pk3",
"name": "TEXTURES.txt",
"contents": "// Texture definitions generated by SLADE3\n// on Sun Feb 14 20:33:03 2016\n\nSprite BRFLA0, 640, 240\n{\n\tPatch YES2, 92, -11\n\tPatch YES3, 246, 136\n\tPatch YES4, 178, 76\n\tPatch YES1, 135, 119\n}\n\nSprite BRFLB0, 640, 240\n{\n\tPatch YES2, 92, -11\n\tPatch YES3, 237, 128\n\tPatch YES4, 178, 76\n\tPatch YES1, 135, 119\n}\n\nSprite BRFLC0, 640, 240\n{\n\tPatch YES2, 92, -11\n\tPatch YES3, 234, 125\n\tPatch YES4, 178, 76\n\tPatch YES1, 135, 119\n}\n\nSprite BRFLD0, 640, 240\n{\n\tPatch YES2, 92, -11\n\tPatch YES3, 227, 120\n\tPatch YES4, 178, 76\n\tPatch YES1, 135, 119\n}\n\nSprite BRFLE0, 640, 240\n{\n\tPatch YES2, 92, -11\n\tPatch YES3, 218, 110\n\tPatch YES4, 178, 76\n\tPatch YES1, 135, 119\n}\n\nSprite BRFLF0, 640, 240\n{\n\tPatch YES2, 92, -11\n\tPatch YES3, 219, 102\n\tPatch YES4, 178, 76\n\tPatch YES1, 135, 119\n}\n\nSprite BRFLG0, 640, 240\n{\n\tPatch YES3, 213, 95\n\tPatch YES4, 178, 76\n\tPatch YES1, 135, 119\n}\n\nSprite BRFLH0, 640, 240\n{\n\tPatch YES3, 215, 99\n\tPatch YES4, 177, 77\n\tPatch YES1, 134, 120\n}\n\nSprite BRFLI0, 640, 240\n{\n\tPatch YES3, 216, 103\n\tPatch YES4, 175, 78\n\tPatch YES1, 132, 121\n}\n\nSprite BRFLJ0, 640, 240\n{\n\tPatch YES3, 218, 108\n\tPatch YES4, 174, 80\n\tPatch YES1, 131, 123\n}\n\nSprite BRFLK0, 640, 240\n{\n\tPatch YES3, 220, 112\n\tPatch YES4, 173, 81\n\tPatch YES1, 130, 124\n}\n\nSprite BRFLL0, 640, 240\n{\n\tPatch YES3, 223, 115\n\tPatch YES4, 173, 81\n\tPatch YES1, 130, 124\n}\n\nSprite BRFLM0, 640, 240\n{\n\tPatch YES3, 225, 118\n\tPatch YES4, 173, 81\n\tPatch YES1, 130, 124\n}\n\nSprite BRFLN0, 640, 240\n{\n\tPatch YES3, 228, 121\n\tPatch YES4, 173, 81\n\tPatch YES1, 130, 124\n}\n\nSprite BRFLO0, 640, 240\n{\n\tPatch YES3, 231, 124\n\tPatch YES4, 173, 81\n\tPatch YES1, 130, 124\n}\n\nSprite BRFLP0, 640, 240\n{\n\tPatch YES2, 94, -9\n\tPatch YES3, 248, 138\n\tPatch YES4, 180, 78\n\tPatch YES1, 137, 121\n}\n\nSprite BRFLQ0, 640, 240\n{\n\tPatch YES2, 96, -7\n\tPatch YES3, 250, 140\n\tPatch YES8, 84, -22\n\tPatch YES1, 139, 123\n}\n\nSprite BRFLR0, 640, 240\n{\n\tPatch YES2, 98, -5\n\tPatch YES3, 252, 142\n\tPatch YES8, 86, -20\n\tPatch YES1, 141, 125\n}\n\nSprite BRFLS0, 640, 240\n{\n\tPatch YES2, 101, -2\n\tPatch YES3, 255, 145\n\tPatch YES9, 89, -17\n\tPatch YES1, 144, 128\n}\n\nSprite BRFLT0, 640, 240\n{\n\tPatch YES2, 103, 0\n\tPatch YES3, 257, 147\n\tPatch YES9, 91, -15\n\tPatch YES1, 146, 130\n}\n\nSprite BRFLU0, 640, 240\n{\n\tPatch YES2, 105, 2\n\tPatch YES3, 259, 149\n\tPatch YES4, 191, 89\n\tPatch YES1, 148, 132\n}\n\nSprite BRFLV0, 640, 240\n{\n\tPatch YES2, 103, 0\n\tPatch YES3, 257, 147\n\tPatch YES4, 189, 87\n\tPatch YES1, 146, 130\n}\n\nSprite BRFLW0, 640, 240\n{\n\tPatch YES2, 101, -2\n\tPatch YES3, 255, 145\n\tPatch YES4, 187, 85\n\tPatch YES1, 144, 128\n}\n\nSprite BRFLX0, 640, 240\n{\n\tPatch YES2, 99, -4\n\tPatch YES3, 253, 143\n\tPatch YES4, 185, 83\n\tPatch YES1, 142, 126\n}\n\nSprite BRFLY0, 640, 240\n{\n\tPatch YES2, 97, -6\n\tPatch YES3, 251, 141\n\tPatch YES4, 183, 81\n\tPatch YES1, 140, 124\n}\n\nSprite BRFLZ0, 640, 240\n{\n\tPatch YES2, 95, -8\n\tPatch YES3, 249, 139\n\tPatch YES4, 181, 79\n\tPatch YES1, 138, 122\n}\n\nSprite BRF2A0, 640, 240\n{\n\tPatch YES2, 93, -10\n\tPatch YES3, 247, 137\n\tPatch YES4, 179, 77\n\tPatch YES1, 136, 120\n}\n\nTexture 00000000, 64, 128\n{\n}\n\nSprite SNIPA0, 640, 240\n{\n\tPatch YEPPA0, 65, -66\n}\n\nSprite SNIPB0, 640, 240\n{\n\tPatch YEPPB0, 68, -63\n}\n\nSprite SNIPC0, 640, 240\n{\n\tPatch YEPPC0, 73, -59\n}\n\nSprite SNIPD0, 640, 240\n{\n\tPatch YEPPD0, 80, -53\n}\n\nSprite SNIPE0, 640, 240\n{\n\tPatch YEPPE0, 83, -50\n}\n\nSprite SNIPF0, 640, 240\n{\n\tPatch YEPPA0, 85, -48\n}\n\nSprite SNIPG0, 640, 240\n{\n\tPatch YEPPA0, 80, -45\n}\n\nSprite SNIPH0, 640, 240\n{\n\tPatch YEPPA0, 75, -42\n}\n\nSprite SNIPI0, 640, 240\n{\n\tPatch YEPPA0, 69, -40\n}\n\nSprite SNIPJ0, 640, 240\n{\n\tPatch YEPPA0, 62, -38\n}\n\nSprite SNIPK0, 640, 240\n{\n\tPatch YEPPA0, 54, -36\n}\n\nSprite SNIPL0, 640, 240\n{\n\tPatch YEPPA0, 46, -35\n}\n\nSprite SNIPM0, 640, 240\n{\n\tPatch YEPPA0, 38, -34\n}\n\nSprite SNIPN0, 640, 240\n{\n\tPatch YES3, 255, 185\n\tPatch YEPPA0, 38, -34\n}\n\nSprite SNIPO0, 640, 240\n{\n\tPatch YES3, 243, 170\n\tPatch YEPPA0, 38, -34\n}\n\nSprite SNIPP0, 640, 240\n{\n\tPatch YES3, 232, 153\n\tPatch YEPPA0, 38, -34\n}\n\nSprite SNIPQ0, 640, 240\n{\n\tPatch YES3, 212, 137\n\tPatch YEPPA0, 38, -34\n}\n\nSprite SNIPR0, 640, 240\n{\n\tPatch YES3, 198, 129\n\tPatch YEPPA0, 38, -34\n}\n\nSprite SNIPS0, 640, 240\n{\n\tPatch YES3, 200, 134\n\tPatch YEPPA0, 38, -34\n}\n\nSprite SNIPT0, 640, 240\n{\n\tPatch YES3, 201, 138\n\tPatch YEPPA0, 38, -34\n}\n\nSprite SNIPU0, 640, 240\n{\n\tPatch YES3, 210, 148\n\tPatch YEPPA0, 38, -34\n}\n\nSprite SNIPV0, 640, 240\n{\n\tPatch YES3, 213, 152\n\tPatch YEPPA0, 38, -34\n}\n\nSprite SNIPW0, 640, 240\n{\n\tPatch YES3, 218, 157\n\tPatch YEPPA0, 38, -34\n}\n\nSprite SNIPX0, 640, 240\n{\n\tPatch YES3, 222, 161\n\tPatch YEPPA0, 38, -34\n}\n\nSprite SNIPY0, 640, 240\n{\n\tPatch YES3, 227, 169\n\tPatch YEPPA0, 38, -34\n}\n\nSprite SNIEA0, 640, 240\n{\n\tPatch YEPPA0, 69, -64\n}\n\nSprite SNIEB0, 640, 240\n{\n\tPatch YEPPA0, 73, -59\n}\n\nSprite SNIEC0, 640, 240\n{\n\tPatch YEPPA0, 80, -53\n}\n\nSprite SNIED0, 640, 240\n{\n\tPatch YEPPA0, 83, -50\n}\n\nSprite REV2D0, 320, 168\n{\n\tPatch REVOD0, 0, 9\n\tPatch HANDD, 66, 96\n}\n\nSprite REV2E0, 320, 168\n{\n\tPatch REVOE0, 0, 12\n\tPatch HANDD, 66, 96\n}\n\nSprite REV2F0, 320, 168\n{\n\tPatch REVOF0, 0, 18\n\tPatch HANDD, 65, 100\n}\n\nSprite REV2G0, 320, 168\n{\n\tPatch REVOG0, 0, 21\n\tPatch HANDD, 65, 100\n}\n\nSprite REV2H0, 320, 168\n{\n\tPatch REVOH0, 0, 32\n\tPatch HANDD, 61, 105\n}\n\nSprite REV2I0, 320, 168\n{\n\tPatch REVOI0, 0, 35\n\tPatch HANDD, 52, 111\n}\n\nSprite REV2J0, 320, 168\n{\n\tPatch REVOJ0, 0, 38\n\tPatch HANDD, 38, 122\n}\n\nSprite REV2K0, 320, 168\n{\n\tPatch REVOK0, 0, 41\n\tPatch HANDD, 25, 130\n}\n\nSprite REV2L0, 320, 168\n{\n\tPatch REVOL0, 0, 44\n\tPatch HANDD, 13, 139\n}\n\nSprite REV2M0, 320, 168\n{\n\tPatch REVOM0, 0, 48\n\tPatch HANDD, -5, 155\n}\n\n// End of texture definitions"
},
{
"source": "pk3",
"name": "LOADACS.txt",
"contents": "core\nweapons\nsprees\nlms"
},
{
"source": "pk3",
"name": "lms.txt",
"contents": "#library \"lms\"\n#include \"zcommon.acs\"\n\n#define CATAWEP 7490\n\n// Weapon remover for lms/tlms\nscript 6400 open\n{\n\tif(!getcvar(\"lastmanstanding\")) terminate;\n\tdelay(1);\n\tthing_remove(CATAWEP);\n}\n\n#define maxWeap 12\nint wepNames[maxWeap] = {\n\"SingleShotgun\",\n\"AutoShotgun\",\n\"DoubleShotgun\",\n\"BoltRifle\",\n\"RPG\",\n\"PlasmaGun\",\n\"Minigun\",\n\"SniperRifle\",\n\"PlasmaCombustor\",\n\"HomingRocketLauncher\",\n\"Revolver\",\n\"LifeLeechSword\",\n};\n\nscript 6401 (void)\n{\n\tfor(int i = 0; i < maxWeap; i++)\n\t\ttakeinventory(wepNames[i], 1);\n\n\ttakeinventory(\"pistol\", 1);\n\n\tgiveinventory(\"backpack\", 1);\n\tgiveinventory(\"LifeLeechSword\", 1);\n\tgiveinventory(\"Fisticuffs\", 1);\n\tgiveinventory(\"SingleShotgun\", 1);\n\tgiveinventory(\"DoubleShotgun\", 1);\n\tgiveinventory(\"BoltRifle\", 1);\n\tgiveinventory(\"SniperRifle\", 1);\n\tgiveinventory(\"Minigun\", 1);\n\tgiveinventory(\"Rpg\", 1);\n\tgiveinventory(\"PlasmaGun\", 1);\n\tgiveinventory(\"PlasmaCombustor\", 1);\n\n\ttakeinventory(\"clip\", 999);\n\ttakeinventory(\"shell\", 999);\n\ttakeinventory(\"rifleammo\", 999);\n\ttakeinventory(\"rocketammo\", 999);\n\ttakeinventory(\"cell\", 999);\n\n\tgiveinventory(\"clip\", 150);\n\tgiveinventory(\"shell\", 40);\n\tgiveinventory(\"rifleammo\", 10);\n\tgiveinventory(\"rocketammo\", 5);\n\tgiveinventory(\"cell\", 80);\n\n\tif(getcvar(\"skill\") == 4 || getcvar(\"skill\") == 1)\n\t{\n\t\ttakeinventory(\"clip\", checkinventory(\"clip\")/2);\n\t\ttakeinventory(\"shell\", checkinventory(\"shell\")/2);\n\t\ttakeinventory(\"rifleammo\", checkinventory(\"rifleammo\")/2);\n\t\ttakeinventory(\"rocketammo\", checkinventory(\"rocketammo\")/2);\n\t\ttakeinventory(\"cell\", checkinventory(\"cell\")/2);\n\t}\n}\n\nscript 6402 enter\n{\n\tif(getcvar(\"lastmanstanding\") == 0 && getcvar(\"teamlms\") == 0) terminate;\n\tacs_executealways(6401, 0, 0, 0, 0);\n}\n\nscript 6403 respawn\n{\n\tif(getcvar(\"lastmanstanding\") == 0 && getcvar(\"teamlms\") == 0) terminate;\n\tacs_executealways(6401, 0, 0, 0, 0);\n}"
},
{
"source": "pk3",
"name": "weapons.txt",
"contents": "#library \"weapons\"\n#include \"zcommon.acs\"\n\n//***********\n//Fist script\n//***********\nfunction int magnitudeThree_f(int x, int y, int z)\n{\n int len, ang;\n\n ang = VectorAngle(x, y);\n if (((ang + 0.125) % 0.5) > 0.25) { len = FixedDiv(y, sin(ang)); }\n else { len = FixedDiv(x, cos(ang)); }\n\n ang = VectorAngle(len, z);\n if (((ang + 0.125) % 0.5) > 0.25) { len = FixedDiv(z, sin(ang)); }\n else { len = FixedDiv(len, cos(ang)); }\n\n return len;\n}\n\nfunction int distance(int x1, int y1, int z1, int x2, int y2, int z2)\n{\n return magnitudeThree_f(x2-x1, y2-y1, z2-z1);\n}\n\nfunction int distance_ftoi(int x1, int y1, int z1, int x2, int y2, int z2)\n{\n return distance(x1,y1,z1, x2,y2,z2) >> 16;\n}\n\nfunction int GetPlayerX(int pln) { return getActorX(pln); }\nfunction int GetPlayerY(int pln) { return getActorY(pln); }\nfunction int GetPlayerZ(int pln) { return getActorZ(pln); }\n\nfunction int PlayerDistance(int pl1, int pl2)\n{\n int x1 = GetPlayerX(pl1), x2 = GetPlayerX(pl2);\n int y1 = GetPlayerY(pl1), y2 = GetPlayerY(pl2);\n int z1 = GetPlayerZ(pl1), z2 = GetPlayerZ(pl2);\n\n return distance_ftoi(x1, y1, z1, x2, y2, z2);\n}\n\n#define maxWeap 11\nint wepNames[maxWeap] = {\n\"SingleShotgun\",\n\"AutoShotgun\",\n\"DoubleShotgun\",\n\"BoltRifle\",\n\"RPG\",\n\"PlasmaGun\",\n\"Minigun\",\n\"SniperRifle\",\n\"PlasmaCombustor\",\n\"HomingRocketLauncher\",\n\"Revolver\",\n};\n\nscript 6969 (void)\n{\n\tint maxDist = 128;\n\tint tid = activatortid();\n\tsetactivatortotarget(0);\n\n\tif(tid == activatortid())\n\t\tterminate;\n\n\tif(PlayerDistance(tid, activatortid()) < maxDist)\n\t{\n\n\t\tfor(int i = 0; i < maxWeap; i++)\n\t\t{\n\t\t\tif(checkweapon(wepNames[i]) == true)\n\t\t\t\tbreak;\n\t\t}\n\n\t\tif(i == maxWeap)\n\t\t\tterminate;\n\n\t\ttakeactorinventory(activatortid(), wepNames[i], 1);\n\t\tsetweapon(\"Fisticuffs\");\n\t\tgiveactorinventory(activatortid(), \"soundfixer\", 1);\n\t\tsetactorvelocity(activatortid(), 0, 0, 0, 0, 0);\n\t\tdelay(3);\n\t\tthrustthing(GetActorAngle(tid) >> 8, 16, 0, 0);\n\n\t\tsetactivator(tid);\n\t\tgiveactorinventory(tid, wepNames[i], 1);\n\t\tdelay(3);\n\t\tsetweapon(wepNames[i]);\n\t\tgiveactorinventory(tid, \"fisticuffs\", 1);\n\n\t}\n\tterminate;\n}"
},
{
"source": "pk3",
"name": "core.txt",
"contents": "#library \"core\"\n#include \"zcommon.acs\"\n\n//***************\n//Spawning Script\n//***************\n#define PLAYER_BASE_TID 1000\nscript 6500 ENTER\n{\n // give new TID to playerr\n Thing_ChangeTid(0, PLAYER_BASE_TID + PlayerNumber());\n}\n\nscript 6501 RESPAWN\n{\n // remove corpse TID\n Thing_ChangeTid(PLAYER_BASE_TID + PlayerNumber(), 0);\n // give new TID to player\n Thing_ChangeTid(0, PLAYER_BASE_TID + PlayerNumber());\n}"
},
{
"source": "pk3",
"name": "sprees.txt",
"contents": "#library \"sprees\"\n#include \"zcommon.acs\"\n\n//******************\n// Message Variables\n//******************\n#define maxMessages 10\nint msgBaseID = 250;\nint clientMsgBaseID = 350;\n\nint activeMsg[maxMessages];\t//States whether or not a message is being displayed.\nint clientMsgX = 0.5;\nint clientMsgY = 0.2;\n\nint msgX = 0.5;\t\t//x\nint msgY = 0.25;\t\t//y\nint msgSpacing = 0.02;\n\nint msgFadeInTime = 0.5;\nint msgHoldTime = 4.0;\nint msgFadeOutTime = 0.5;\n\nint clientMsgFadeInTime = 0.5;\nint clientMsgHoldTime = 4.0;\nint clientMsgFadeOutTime = 0.5;\n\n//******************\n// Spree Variables\n//******************\n#define maxPlayers 64\nint spreeTracker[maxPlayers]; //Tracks sprees here.\n\nint spreeMsg[6] = {\n\"\\cj is on a Killing Spree.\",\n\"\\ch is on a Rampage.\",\n\"\\cd is Dominating!\",\n\"\\cf is Unstoppable!\",\n\"\\ck is GodLike!\",\n\"\\ca is Wicked Sick!!!\",\n};\n\nint spreeSound[6] = {\n\"killings\",\n\"rampage\",\n\"dominati\",\n\"unstoppa\",\n\"godlike\",\n\"wicked\",\n};\n\nint spreeMsgClient[6] = {\n\"\\cjKilling Spree\",\n\"\\chRampage\",\n\"\\cdDominating\",\n\"\\cfUnstoppable\",\n\"\\ckGodLike\",\n\"\\caWicked Sick\",\n};\n\n//******************\n// Core\n//******************\nscript 6600 (int type, int arg1, int arg2) EVENT\n{\n\tif(type == 0) //GAMEEVENT_PLAYERFRAGS\n\t{\n\t\tincrementComboKills(playernumber());\n\t\tincrementSpreeTracker(playernumber());\n\n\t\tif(spreeTracker[arg1] >= 5)\n\t\t\tclearSpreeTracker(arg1, playernumber());\n\t\telse\n\t\t\tspreeTracker[arg1] = 0;\n\t}\n}\n\nscript 6601 open\n{\n\tfor(int i = 0; i < maxMessages; i++)\n\t\tif(activeMsg[i] >= 1)\n\t\t\tactiveMsg[i]--;\n\n\tdelay(1);\n\trestart;\n}\n\n//******************\n// Spree Scripts\n//******************\nfunction void incrementSpreeTracker(int pnum)\n{\n\tsetactivator(pnum + 1000);\n\tspreeTracker[pnum]++;\n\n\tif(spreeTracker[pnum] % 5 == 0 && spreeTracker[pnum] <= 30 && spreeTracker[pnum] >= 5)\n\t{\n\t\tsetfont(\"bigfont\");\n\t\thudmessage(s:spreeMsgClient[(spreeTracker[pnum] / 5) - 1];\n\t\tHUDMSG_FADEINOUT, clientMsgBaseID - (spreeTracker[pnum] / 5), cr_red, clientMsgX, clientMsgY, clientMsgHoldTime, clientMsgFadeInTime, clientMsgFadeOutTime);\n\t\tLocalAmbientSound(spreeSound[(spreeTracker[pnum] / 5) - 1], 127);\n\t\tint msg = strParam(n:pnum+1, s:spreeMsg[(spreeTracker[pnum] / 5) - 1]);\n\t\taddHudMessage(msg);\n\t}\n}\n\nfunction void clearSpreeTracker(int pnum, int killernum)\n{\n\tint msg;\n\n\tif(pnum != killernum)\n\t\t\tmsg = strParam(n:pnum+1, s:\"\\cj's \", s:spreeMsgClient[(spreeTracker[pnum] / 5) - 1], s:\" (\", d:spreeTracker[pnum], s:\") \", s:\" \\cjwas ended by \", n:killernum+1);\n\telse if(killernum == -1)\n\t\t\tmsg = strParam(n:pnum+1, s:\"\\cj's \", s:spreeMsgClient[(spreeTracker[pnum] / 5) - 1], s:\" (\", d:spreeTracker[pnum], s:\") \", s:\" \\cjwas ended by a map hazard\");\n\telse\n\t{\n\t\tint gender = getPlayerInfo(pnum, PLAYERINFO_GENDER);\n\n\t\tif(gender == 0)\n\t\t\tmsg = strParam(n:pnum+1, s:\"\\cj took it upon himself to end his own \", s:spreeMsgClient[(spreeTracker[pnum] / 5) - 1], s:\" (\", d:spreeTracker[pnum], s:\") \");\n\n\t\telse if(gender == 1)\n\t\t\tmsg = strParam(n:pnum+1, s:\"\\cj took it upon herself to end her own \", s:spreeMsgClient[(spreeTracker[pnum] / 5) - 1], s:\" (\", d:spreeTracker[pnum], s:\") \");\n\n\t\telse\n\t\t\tmsg = strParam(n:pnum+1, s:\"\\cj took it upon itself to end its own \", s:spreeMsgClient[(spreeTracker[pnum] / 5) - 1], s:\" (\", d:spreeTracker[pnum], s:\") \");\n\t}\n\taddHudMessage(msg);\n\tspreeTracker[pnum] = 0;\n}\n\nfunction void addHudMessage(int msg)\n{\n\tint i;\n\tfor(i = 0; i < maxMessages; i++)\n\t\tif(activeMsg[i] == 0)\n\t\t\tbreak;\n\n\tactiveMsg[i] = 35 * 6;\n\n\tsetfont(\"smallfont\");\n\thudmessagebold(s:msg;\n\tHUDMSG_FADEINOUT, msgBaseID + i, cr_red, msgX, msgY + fixedmul(msgSpacing, i << 16), msgHoldTime, msgFadeInTime, msgFadeOutTime);\n}\n\nscript 6602 death\n{\n\tint killed = playernumber();\n\tsetactivatortotarget(0);\n\tint killer = playernumber();\n\n\tif(spreeTracker[killed] >= 5)\n\t\tclearSpreeTracker(killed, killer);\n\tif(activatortid() == -1)\n\t\tclearSpreeTracker(killed, -1);\n}\n\n//******************\n// Combo Variables\n//******************\nint comboKillDelay = 35 * 4; //Delay for combo-kills to register.\nint comboKillTimeTracker[maxPlayers];\nint comboKillTracker[maxPlayers];\nint comboMsgID = 450;\nint comboMsgX = 0.5;\nint comboMsgY = 0.8;\nint comboMsgHoldTime = 3.5;\nint comboMsgFadeOutTime = 0.5;\n\nint comboMsg[4] = {\n\"\\cjDouble Kill\",\n\"\\cdMulti Kill\",\n\"\\cfUlra Kill\",\n\"\\ckMonster Kill\",\n};\n\nint comboSound[4] = {\n\"double\",\n\"multi\",\n\"ultra\",\n\"monster\",\n};\n\nscript 6603 open\n{\n\tfor(int i = 0; i < maxPlayers; i++)\n\t\tif(comboKillTimeTracker[i] >= 1)\n\t\t{\n\t\t\tcomboKillTimeTracker[i]--;\n\t\t\tif(comboKillTimeTracker[i] == 0)\n\t\t\t{\n\t\t\t\tif(comboKillTracker[i] >= 6)\n\t\t\t\t{\n\t\t\t\t\tint msg = strParam(n:i+1, s:\" \\cjjust had a \\ckmonster kill x\", d:comboKillTracker[i]-4, s:\"\\cj!\");\n\t\t\t\t\taddHudMessage(msg);\n\t\t\t\t}\n\n\t\t\t\tcomboKillTracker[i] = 0;\n\t\t\t}\n\t\t}\n\n\tdelay(1);\n\trestart;\n}\n\nfunction void incrementComboKills(int pnum)\n{\n\tcomboKillTracker[pnum]++;\n\tcomboKillTimeTracker[pnum] = comboKillDelay;\n\n\tif(comboKillTracker[pnum] == 1)\n\t\treturn;\n\n\tsetfont(\"bigfont\");\n\tint msg;\n\n\tif(comboKillTracker[pnum] > 5)\n\t\tmsg = strParam(s:\"\\ckMonster Kill\", s:\" x\", d:comboKillTracker[pnum]-4);\n\telse\n\t\tmsg = strParam(s:comboMsg[comboKillTracker[pnum] - 2]);\n\n\thudmessage(s:msg;\n\tHUDMSG_FADEOUT, cr_red, comboMsgID, comboMsgX, comboMsgY, comboMsgHoldTime, comboMsgFadeOutTime);\n\n\tif(comboKillTracker[pnum] > 5)\n\tLocalAmbientSound(comboSound[3], 127);\n\telse\n\tLocalAmbientSound(comboSound[comboKillTracker[pnum] - 2], 127);\n}\n\nscript 6604 death\n{\n\tcomboKillTimeTracker[playernumber()] = 1;\n}"
},
{
"source": "pk3",
"name": "changelog.txt",
"contents": "Version changelog can be viewed below.\n\n+ New Content\n~ Balance\n! Fix\n* Note\n\n-=Version 1.1 final=-\n~ Mini-Homing Rocket Launcher damage decreased from 40 to 33.\n~ Mini-Homing Rocket Launcher projectile speed decreased from 25 to 20.\n! Monster kill messages should work now even if you die\n\n-=Version 1.1=-\n+ Added support for Team Last Man Standing\n+ Successful punches make a noise now\n~ Life-Leech Sword damage increased\n~ Revolver now shares its spawn with the Shotgun\n\t* Spawn Rate is 10%\n~ Bolt-Action Rifle now shares its spawn with the Double Shotgun\n\t* Spawn Rate is 25%\n~ Sniper Rifle now shares its spawn with the Rocket Launcher\n\t* Spawn Rate is 25%\n~ Plasma Combustor flame radius increased.\n~ Minigun Accuracy increased.\n~ The Mini-Homing Rockets seeking delay decreased.\n! Combo Kills no longer continue after respawning.\n! Suicide Spree message should display properly.\n\n-=Version 1.0=-\n+ Added Last Man Standing and Team Last Man Standing Support\n+ Added ORDERDEF Support (aka pwo)\n+ New Gun: Life-Leech Sword\n\t* Replaces Chainsaw\n\t* 1-hit KO\n\t* 100-unit melee range\n\t* Heals you for the amount of damage given\n\t* Cannot be stolen by fisticuffs ;)\n+ New Gun: Revolver\n\t* 25% chance of spawning instead of a Life-Leech Sword.\n\t* 2-hit KO\n\t* Holding fire will shoot slow but pinpoint accurate shots\n\t* Pressing fire AFTER the gun is done firing will let you burst 3 inaccurate shots.\n~ Minigun Damage slightly increased.\n~ Plasma Combuster damage increased.\n~ Mini Homing Rocket Launcher now homes permanently. (It still has a delay before it homes)\n~ Sniper Rifle has a reduced spawn rate of 33% now (Previously 50%).\n~ Bolt Rifle has a reduced spawn rate of 33% now (Previously 50%).\n~ Spree msg coordinates adjusted\n\n-=Release=-\n<- Announcer ->\n- Throwback to a Zdaemon-style announcer.\n- Can put multiple messages on the screen instead of overlapping.\n- Also displays additional info.\n\n<- Core Gameplay ->\n- Player movement speed lowered a bit.\n- Random Damage removed wherever possible.\n- Random Spread removed from most weapons.\n- Weapons switch faster.\n- Weapons are much more responsive.\n\n<- Fist ->\n- Steals a weapon from whoever you punch (lol)\n\n<- Shotgun ->\n- Fires bullets in a tight bulls-eye circular pattern.\n- Central bullet does additional damage, if all bullets hit, it is a 1-hit kill.\n- A bit faster than Doom's shotgun.\n\n<- Double Shotgun ->\n- Fires 20 Bullets in a oval'ish pattern.\n- The damage is lower than Doom's SSG.\n- This weapon fires much faster than Doom 2's SSG.\n\n<- Automatic Shotgun ->\n- Ultimate Weapon for Slot 3\n- Fires the same way the shotgun does, except it is much faster and does more damage.\n- Only weapon that allows autoaim\n\n<- Bolt-Action Rifle ->\n- Fires 1 bullet that loses accuracy over long distances.\n- Each bullet does 100 damage.\n\n<- Sniper Rifle ->\n- Fires 1 bullet that is pin-point accurate.\n- Each bullet does 110 damage.\n- The bullet behaves like a railgun and penetrates through multiple enemies.\n\n<- Minigun ->\n- Fires bullets at an extremely fast rate.\n- Greatly loses accuracy beyond mid-range.\n- This weapon needs to wind-down after firing.\n\n<- RPG ->\n- Fires rockets at a slightly faster rate than Doom's.\n- Rocket speed is much faster than Doom 2's.\n\n<- Mini Homing Rocket Launcher ->\n- Ultimate weapon for Slot 5\n- Rapidly fires mini rockets which home onto the target\n- Each rocket does 40 damage but no splash damage.\n- Rockets don't begin homing until half a second AFTER it's been fired.\n\n<- Plasma Gun ->\n- Fires plasma very rapidly.\n- Plasma does much more damage than Doom's Plasma.\n- Plasma is much faster than Doom's Plasma.\n- No longer needs to cool-down after firing.\n\n<- Plasma Combustor ->\n- Combusts plasma, making it behave much like a flamethrower.\n- The closer your are, the more damage it does.\n- At point-blank range this weapon will certainly instakill."
},
{
"source": "pk3",
"name": "WADINFO.txt",
"contents": "This project is made by Catastrophe\nhttp://zandronum.com/forum/showthread.php?tid=6703\n\nTL;DR: Weapon mod, primarily for PvP though coop/survival should work.\nYou can use code if you give me credit but not sprites cuz they arent made by me."
},
{
"source": "pk3",
"name": "actors/guns/autoshotgun/autoshotgun.txt",
"contents": "Actor \"AutoShotgun\" : Weapon\n{\n radius 20\n height 16\n Weapon.SlotNumber 3\n weapon.selectionorder 1000\n weapon.kickback 100\n obituary \"%o was overwhelmed by %k's automatic shotgun.\"\n decal \"BulletChip\"\n inventory.pickupmessage \"You got the automatic shotgun!\"\n weapon.ammotype \"shell\"\n weapon.ammouse 1\n weapon.ammogive 16\n scale 0.8\n weapon.preferredskin \"AutoShotgun\"\n damagetype \"Slot3\"\n states\n {\n Spawn:\n\tSGN2 AA 0 thing_changetid(tid, CATA_WEP)\n Spawn2:\n WASG A 1\n loop\n Ready:\n ASGG A 1 A_WeaponReady\n loop\n Deselect:\n\tTNT1 A 0 A_Lower\n ASGG A 1 A_Lower\n loop\n Select:\n\tTNT1 A 0 A_Raise\n ASGG A 1 A_Raise\n loop\n Fire:\n\t ASGG C 0 a_quake(3, 4, 0, 1)\n ASGG B 1 A_GunFlash\n\t ASGG C 0 A_FireBullets (0, 0, -1, 30, \"HitScanBulletPuff\", FBF_NORANDOM|FBF_EXPLICITANGLE)\n\t ASGG C 0 A_FireBullets (2.0, 0, -1, 20, \"HitScanBulletPuff\", FBF_NORANDOM|FBF_EXPLICITANGLE|FBF_USEAMMO)\n\t ASGG C 0 A_FireBullets (-2.0, 0, -1, 20, \"HitScanBulletPuff\", FBF_NORANDOM|FBF_EXPLICITANGLE)\n\t ASGG C 0 A_FireBullets (0, 2.0, -1, 20, \"HitScanBulletPuff\", FBF_NORANDOM|FBF_EXPLICITANGLE)\n\t ASGG C 0 A_FireBullets (0, -2.0, -1, 20, \"HitScanBulletPuff\", FBF_NORANDOM|FBF_EXPLICITANGLE)\n\t ASGG C 0 A_FireBullets (-1.3, 1.3, -1, 20, \"HitScanBulletPuff\", FBF_NORANDOM|FBF_EXPLICITANGLE)\n\t ASGG C 0 A_FireBullets (1.8, -1.3, -1, 20, \"HitScanBulletPuff\", FBF_NORANDOM|FBF_EXPLICITANGLE)\n\t ASGG C 0 A_FireBullets (1.3, 1.3, -1, 20, \"HitScanBulletPuff\", FBF_NORANDOM|FBF_EXPLICITANGLE)\n\t ASGG C 0 A_FireBullets (-1.3, -1.3, -1, 20, \"HitScanBulletPuff\", FBF_NORANDOM|FBF_EXPLICITANGLE)\n\t ASGG A 0 a_playsoundex(\"dsasgfir\", chan_auto, 0, 0)\n\t ASGG CDEFGH 1 bright\n\t ASGG H 0 A_SpawnItemEx (\"shotguncasing\",cos(-pitch)*36,-6,18+(sin(-pitch)*36),cos(-pitch)*0,random(-5, -8), random(4, 5),0,0,0)\n\t ASGG IJKLMN 1\n ASGG A 1 A_ReFire\n Goto Ready\n\tFlash:\n\t NULL A 3 bright A_Light1\n\t NULL A 3 bright A_Light2\n\t NULL A 0 bright A_Light0\n\t stop\n }\n}"
},
{
"source": "pk3",
"name": "actors/guns/doubleshotgun/doubleshotgun.txt",
"contents": "Actor \"DoubleShotgun\" : Weapon\n{\n radius 20\n height 16\n Weapon.SlotNumber 3\n weapon.selectionorder 4000\n weapon.kickback 100\n scale 0.8\n obituary \"%o was obliterated by %k's double barreled shotgun.\"\n inventory.pickupmessage \"You got the double barreled shotgun!\"\n weapon.ammotype \"shell\"\n weapon.ammouse 2\n weapon.ammogive 16\n weapon.preferredskin \"DoubleShotgun\"\n decal \"bulletchip\"\n +weapon.noautoaim\n damagetype \"Slot3\"\n states\n {\n Spawn:\n\tSGN2 AA 0 thing_changetid(tid, CATA_WEP)\n Spawn2:\n SGN2 A 1\n loop\n Ready:\n SHT2 A 1 A_WeaponReady\n loop\n Deselect:\n\tTNT1 A 0 A_Lower\n SHT2 A 1 A_Lower\n loop\n Select:\n\tTNT1 A 0 A_Raise\n SHT2 A 1 A_Raise\n loop\n Fire:\n SHT2 B 1 A_GunFlash\n\t SHT2 A 0 a_playsoundex(\"ssgfire\", chan_auto, 0, 0)\n\t SHT2 C 0 A_FireBullets (0, 0, -1, 10, \"HitScanBulletPuff\", FBF_NORANDOM|FBF_EXPLICITANGLE|FBF_USEAMMO)\n\n\t SHT2 C 0 A_FireBullets (1.0, 0, -1, 10, \"HitScanBulletPuff\", FBF_NORANDOM|FBF_EXPLICITANGLE)\n\t SHT2 C 0 A_FireBullets (2.5, 1.5, -1, 10, \"HitScanBulletPuff\", FBF_NORANDOM|FBF_EXPLICITANGLE)\n\t SHT2 C 0 A_FireBullets (4.0, -1.0, -1, 10, \"HitScanBulletPuff\", FBF_NORANDOM|FBF_EXPLICITANGLE)\n\t SHT2 C 0 A_FireBullets (5.5, 0.5, -1, 10, \"HitScanBulletPuff\", FBF_NORANDOM|FBF_EXPLICITANGLE)\n\t SHT2 C 0 A_FireBullets (-1.0, 0, -1, 10, \"HitScanBulletPuff\", FBF_NORANDOM|FBF_EXPLICITANGLE)\n\t SHT2 C 0 A_FireBullets (-2.5, -1.5, -1, 10, \"HitScanBulletPuff\", FBF_NORANDOM|FBF_EXPLICITANGLE)\n\t SHT2 C 0 A_FireBullets (-4.0, 1.0, -1, 10, \"HitScanBulletPuff\", FBF_NORANDOM|FBF_EXPLICITANGLE)\n\t SHT2 C 0 A_FireBullets (-5.5, 0.5, -1, 10, \"HitScanBulletPuff\", FBF_NORANDOM|FBF_EXPLICITANGLE)\n\n\t SHT2 C 0 A_FireBullets (1.75, 3.0, -1, 10, \"HitScanBulletPuff\", FBF_NORANDOM|FBF_EXPLICITANGLE)\n\t SHT2 C 0 A_FireBullets (3.25, 2.5, -1, 10, \"HitScanBulletPuff\", FBF_NORANDOM|FBF_EXPLICITANGLE)\n\t SHT2 C 0 A_FireBullets (4.75, 1.0, -1, 10, \"HitScanBulletPuff\", FBF_NORANDOM|FBF_EXPLICITANGLE)\n\t SHT2 C 0 A_FireBullets (1.75, -3.0, -1, 10, \"HitScanBulletPuff\", FBF_NORANDOM|FBF_EXPLICITANGLE)\n\t SHT2 C 0 A_FireBullets (3.25, -2.5, -1, 10, \"HitScanBulletPuff\", FBF_NORANDOM|FBF_EXPLICITANGLE)\n\t SHT2 C 0 A_FireBullets (4.75, -1.0, -1, 10, \"HitScanBulletPuff\", FBF_NORANDOM|FBF_EXPLICITANGLE)\n\n\t SHT2 C 0 A_FireBullets (-1.75, 3.0, -1, 10, \"HitScanBulletPuff\", FBF_NORANDOM|FBF_EXPLICITANGLE)\n\t SHT2 C 0 A_FireBullets (-3.25, 2.5, -1, 10, \"HitScanBulletPuff\", FBF_NORANDOM|FBF_EXPLICITANGLE)\n\t SHT2 C 0 A_FireBullets (-4.75, 1.0, -1, 10, \"HitScanBulletPuff\", FBF_NORANDOM|FBF_EXPLICITANGLE)\n\t SHT2 C 0 A_FireBullets (-1.75, -3.0, -1, 10, \"HitScanBulletPuff\", FBF_NORANDOM|FBF_EXPLICITANGLE)\n\t SHT2 C 0 A_FireBullets (-3.25, -2.5, -1, 10, \"HitScanBulletPuff\", FBF_NORANDOM|FBF_EXPLICITANGLE)\n\t SHT2 C 0 A_FireBullets (-4.75, -1.0, -1, 10, \"HitScanBulletPuff\", FBF_NORANDOM|FBF_EXPLICITANGLE)\n\t SHT2 C 0 a_quake(6, 6, 0, 1)\n SHT2 CDEFGH 1 bright\n\t SHT2 IKMOQSUWY 1\n\t SH2T BCDEFGH 1\n\n\t SHTG A 0 a_playsoundex(\"ssgopen\", chan_auto, 0, 0)\n\n\t SH2T JJ 0 A_SpawnItemEx (\"shotguncasing\",cos(-pitch)*36,-20,28+(sin(-pitch)*36),cos(-pitch)*0,random(-5, -8), random(2, 3),0,0,0)\n\n\t SH2T KLMNOP 1\n\t SHTG A 0 a_playsoundex(\"ssgload\", chan_auto, 0, 0)\n\t SH2T QRSTUVWXYZ 1\n\t SHTG A 0 a_playsoundex(\"ssgclose\", chan_auto, 0, 0)\n\t S2HT ABCDE 1\n\t SHT2 A 5 A_ReFire\n\t GOTO READY\n\tFlash:\n\t NULL A 4 bright A_Light1\n\t NULL A 3 bright A_Light2\n\t NULL A 0 bright A_Light0\n\t stop\n }\n}"
},
{
"source": "pk3",
"name": "actors/guns/pumprifle/rifle.txt",
"contents": "Actor \"BoltRifle\" : Weapon\n{\n radius 20\n height 16\n Weapon.SlotNumber 2\n weapon.selectionorder 7000\n weapon.kickback 100\n scale 0.9\n obituary \"%o was picked off by %k's Bolt-Action Rifle.\"\n decal \"BulletChipBig\"\n inventory.pickupmessage \"You got the Bolt-Action Rifle!\"\n weapon.ammotype \"RifleAmmo\"\n +weapon.noautoaim\n weapon.ammouse 1\n weapon.ammogive 16\n weapon.preferredskin \"boltrifle\"\n damagetype \"Slot2\"\n states\n {\n Spawn:\n\tSGN2 AA 0 thing_changetid(tid, CATA_WEP)\n Spawn2:\n SRIF A 1\n loop\n Ready:\n BRFL A 1 A_WeaponReady\n loop\n Deselect:\n\tTNT1 A 0 A_Lower\n BRFL A 1 A_Lower\n loop\n Select:\n\tTNT1 A 0 A_Raise\n BRFL A 1 A_Raise\n loop\n Fire:\n BRFL P 1 A_GunFlash\n\t BRFL Q 0 a_playsoundex(\"BOLTFIR\", chan_auto, 0, 0)\n\t BRFL Q 0 A_FireBullets (2.0, 2.0, -1, 100, \"HitScanBulletPuff\", FBF_NORANDOM|FBF_USEAMMO)\n\t BRFL QRST 1 bright a_setpitch(pitch - 0.5)\n\t BRFL UVWX 1 a_setpitch(pitch + 0.5)\n\t BRFL YZ 1\n\t BRFL A 1\n\t BRFL BCDEFG 1\n\t BRFL G 0 a_playsoundex(\"BOLTRELD\", chan_auto, 0, 0)\n\t BRFL HIJKL 1\n\t BRFL L 0 A_SpawnItemEx (\"riflecasing\", (cos(-pitch)*36), 12, 29+(sin(-pitch)*36),cos(-pitch)*0,random(5, 8), 0,0,0,0)\n\t BRFL MNOONMLKJIHGFEDCB 1\n\t BRFL A 3\n BRFL A 1 A_ReFire\n Goto Ready\n\tFlash:\n\t NULL A 3 bright A_Light1\n\t NULL A 3 bright A_Light2\n\t NULL A 0 bright A_Light0\n\t stop\n }\n}"
},
{
"source": "pk3",
"name": "actors/guns/shotgun/shotgun.txt",
"contents": "Actor \"SingleShotgun\" : Weapon\n{\n radius 20\n height 16\n Weapon.SlotNumber 3\n weapon.selectionorder 8000\n weapon.kickback 100\n obituary \"%o was smacked down by %k's shotgun.\"\n decal \"BulletChip\"\n inventory.pickupmessage \"You got the shotgun!\"\n weapon.ammotype \"shell\"\n weapon.ammouse 1\n weapon.ammogive 8\n weapon.preferredskin \"singleshotgun\"\n +weapon.noautoaim\n damagetype \"Slot3\"\n scale 0.8\n states\n {\n Spawn:\n\tSGN2 AA 0 thing_changetid(tid, CATA_WEP)\n Spawn2:\n SHOT A 1\n loop\n Ready:\n SHTG A 1 A_WeaponReady\n loop\n Deselect:\n\tTNT1 A 0 A_Lower\n SHTG A 1 A_Lower\n loop\n Select:\n\tTNT1 A 0 A_Raise\n SHTG A 1 A_Raise\n loop\n Fire:\n SHTG A 1 A_GunFlash\n\t SHTG A 0 a_playsoundex(\"sgfire\", chan_auto, 0, 0)\n\t SHTG C 0 A_FireBullets (0, 0, -1, 20, \"HitScanBulletPuff\", FBF_NORANDOM|FBF_EXPLICITANGLE)\n\t SHTG C 0 A_FireBullets (1.8, 0, -1, 15, \"HitScanBulletPuff\", FBF_NORANDOM|FBF_EXPLICITANGLE|FBF_USEAMMO)\n\t SHTG C 0 A_FireBullets (-1.8, 0, -1, 15, \"HitScanBulletPuff\", FBF_NORANDOM|FBF_EXPLICITANGLE)\n\t SHTG C 0 A_FireBullets (0, 1.8, -1, 15, \"HitScanBulletPuff\", FBF_NORANDOM|FBF_EXPLICITANGLE)\n\t SHTG C 0 A_FireBullets (0, -1.8, -1, 15, \"HitScanBulletPuff\", FBF_NORANDOM|FBF_EXPLICITANGLE)\n\t SHTG C 0 A_FireBullets (-1.1, 1.4, -1, 15, \"HitScanBulletPuff\", FBF_NORANDOM|FBF_EXPLICITANGLE)\n\t SHTG C 0 A_FireBullets (1.1, -1.4, -1, 15, \"HitScanBulletPuff\", FBF_NORANDOM|FBF_EXPLICITANGLE)\n\t SHTG C 0 A_FireBullets (1.1, 1.4, -1, 15, \"HitScanBulletPuff\", FBF_NORANDOM|FBF_EXPLICITANGLE)\n\t SHTG C 0 A_FireBullets (-1.1, -1.4, -1, 15, \"HitScanBulletPuff\", FBF_NORANDOM|FBF_EXPLICITANGLE)\n SHT2 C 0 a_quake(4, 3, 0, 1)\n\t SHTG CDEFGHI 1 bright\n SHTG JKLM 1\n\t SHTG NOPQ 1\n\t SHTG G 0 a_playsoundex(\"sgrelod\", chan_auto, 0, 0)\n\t SHTG RSTU 1\n\t SHTG V 2\n \t SHTG G 0 A_SpawnItemEx (\"shotguncasing\",cos(-pitch)*36,-18,34+(sin(-pitch)*36),cos(-pitch)*0,random(5, 8), random(0, 1),0,0,0)\n\t SHTG V 2\n\t SHTG UTSRQPONMLKJ 1\n SHTG A 1 A_ReFire\n Goto Ready\n\tFlash:\n\t NULL A 4 bright A_Light1\n\t NULL A 3 bright A_Light2\n\t NULL A 0 bright A_Light0\n\t stop\n }\n}"
},
{
"source": "pk3",
"name": "actors/guns/shared/bulletpuff.txt",
"contents": "Actor SparkPuff : BulletPuff\n{\n\t+DOOMBOUNCE\n\t+FLOORCLIP\n\t+DONTSPLASH\n\t+NOTELEPORT\n\t-NOGRAVITY\n\t-LOWGRAVITY\n\t-ALLOWPARTICLES\n\t+clientsideonly\n\tHealth 4\n\tRadius 4\n\tHeight 8\n\tSpeed 1\n\tMass 0\n\tScale 0.125\n\trenderstyle translucent\n\tStates\n\t{\n\t Spawn:\n\t Death:\n\t\tTNT1 AA 0\n\t\tPUFF ABABAB 1 bright\n\t\tPUFF ABABABABAB 1 bright\n\t DeathLoop:\n\t\tPUFF AB 1 bright a_fadeout(0.1)\n\t\tloop\n\t}\n}\n\nActor HitScanBulletPuff replaces bulletpuff\n{\n\t+CLIENTSIDEONLY\n\t+NOBLOCKMAP\n\t+NOGRAVITY\n\t+FORCEXYBILLBOARD\n\t-ALLOWPARTICLES\n\tvspeed 0\n\thealth 3\n\tStates\n\t{\n\t Spawn:\n\t\tTNT1 AA 0\n\t\tTNT1 A 0 bright A_SpawnDebris(\"SparkPuff\", 1, 0.5, 0.25)\n\t\tTNT1 A 1 bright\n\t\tstop\n\t}\n}\nActor HitScanBulletPuffRich\n{\n\t+CLIENTSIDEONLY\n\t+NOBLOCKMAP\n\t+NOGRAVITY\n\t+FORCEXYBILLBOARD\n\t-ALLOWPARTICLES\n\tvspeed 0\n\thealth 3\n\tStates\n\t{\n\t Spawn:\n\t\tTNT1 AA 0\n\t\tTNT1 A 0 bright A_SpawnDebris(\"SparkPuff\", 1, 0.5, 0.25)\n\t\tTNT1 A 4 bright\n\t\tTNT1 A 0 a_playsoundex(\"revorich\", chan_auto)\n\t\tstop\n\t}\n}"
},
{
"source": "pk3",
"name": "actors/guns/shared/casing.txt",
"contents": "actor shotgunsmoke\n{\n\tvspeed 3\n\trenderstyle translucent\n\tscale 0.05\n\talpha 0.25\n\t+clientsideonly\n\t+NOGRAVITY\n\tStates\n\t{\n\t\tspawn:\n\t\tdeath:\n\t\tBMOK ABCDEFGHIJKLNOPQ 1\n\t\tstop\n\t}\n}\n\nactor shotguncasing\n{\n\tPROJECTILE\n\t+CLIENTSIDEONLY\n\t+DONTSPLASH\n\t+DOOMBOUNCE\n\t-ACTIVATEIMPACT\n\t-NOGRAVITY\n\t-NOBLOCKMAP\n\tbouncefactor 0.6\n\tscale 0.25\n Radius 3\n seesound \"Weapons/shotguncasing\"\n States\n {\n Spawn:\n LCSC A 1 A_SpawnItemEx (\"shotguncasingsmoke\", 0, 0, 0, 0, 0, 1, 0,0, 0)\n LCSC A 1 A_SpawnItemEx (\"shotguncasingsmoke\", 0, 0, 0, 0, 0, 1, 0,0, 0)\n LCSC A 1 A_SpawnItemEx (\"shotguncasingsmoke\", 0, 0, 0, 0, 0, 1, 0,0, 0)\n LCSC B 1 A_SpawnItemEx (\"shotguncasingsmoke\", 0, 0, 0, 0, 0, 1, 0,0, 0)\n LCSC B 1 A_SpawnItemEx (\"shotguncasingsmoke\", 0, 0, 0, 0, 0, 1, 0,0, 0)\n LCSC B 1 A_SpawnItemEx (\"shotguncasingsmoke\", 0, 0, 0, 0, 0, 1, 0,0, 0)\n LCSC C 1 A_SpawnItemEx (\"shotguncasingsmoke\", 0, 0, 0, 0, 0, 1, 0,0, 0)\n LCSC C 1 A_SpawnItemEx (\"shotguncasingsmoke\", 0, 0, 0, 0, 0, 1, 0,0, 0)\n LCSC C 1 A_SpawnItemEx (\"shotguncasingsmoke\", 0, 0, 0, 0, 0, 1, 0,0, 0)\n LCSC D 1 A_SpawnItemEx (\"shotguncasingsmoke\", 0, 0, 0, 0, 0, 1, 0,0, 0)\n LCSC D 1 A_SpawnItemEx (\"shotguncasingsmoke\", 0, 0, 0, 0, 0, 1, 0,0, 0)\n LCSC D 1 A_SpawnItemEx (\"shotguncasingsmoke\", 0, 0, 0, 0, 0, 1, 0,0, 0)\n LCSC E 1 A_SpawnItemEx (\"shotguncasingsmoke\", 0, 0, 0, 0, 0, 1, 0,0, 0)\n LCSC E 1 A_SpawnItemEx (\"shotguncasingsmoke\", 0, 0, 0, 0, 0, 1, 0,0, 0)\n LCSC E 1 A_SpawnItemEx (\"shotguncasingsmoke\", 0, 0, 0, 0, 0, 1, 0,0, 0)\n LCSC F 1 A_SpawnItemEx (\"shotguncasingsmoke\", 0, 0, 0, 0, 0, 1, 0,0, 0)\n LCSC F 1 A_SpawnItemEx (\"shotguncasingsmoke\", 0, 0, 0, 0, 0, 1, 0,0, 0)\n LCSC F 1 A_SpawnItemEx (\"shotguncasingsmoke\", 0, 0, 0, 0, 0, 1, 0,0, 0)\n LCSC G 1 A_SpawnItemEx (\"shotguncasingsmoke\", 0, 0, 0, 0, 0, 1, 0,0, 0)\n LCSC G 1 A_SpawnItemEx (\"shotguncasingsmoke\", 0, 0, 0, 0, 0, 1, 0,0, 0)\n LCSC G 1 A_SpawnItemEx (\"shotguncasingsmoke\", 0, 0, 0, 0, 0, 1, 0,0, 0)\n LCSC H 1 A_SpawnItemEx (\"shotguncasingsmoke\", 0, 0, 0, 0, 0, 1, 0,0, 0)\n LCSC H 1 A_SpawnItemEx (\"shotguncasingsmoke\", 0, 0, 0, 0, 0, 1, 0,0, 0)\n LCSC H 1 A_SpawnItemEx (\"shotguncasingsmoke\", 0, 0, 0, 0, 0, 1, 0,0, 0)\n\n Death:\n LCSC C 0 A_Jump (85, \"death1\", \"death2\", \"death3\")\n LCSC C 0 A_Jump (85, \"death1\", \"death2\", \"death3\")\n LCSC C 0 A_Jump (85, \"death1\", \"death2\", \"death3\")\n\t\tdeath0:\n\t\tLCSC A 10 a_fadeout(0.05)\n goto death0\n\t\tdeath1:\n\t\tLCSC C 10 a_fadeout(0.05)\n goto death1\n\t\tdeath2:\n\t\tLCSC E 10 a_fadeout(0.05)\n goto death2\n\t\tdeath3:\n\t\tLCSC G 10 a_fadeout(0.05)\n goto death3\n }\n}\n\nactor shotgunCASINGSMOKE\n{\n\tvspeed 1\n\trenderstyle translucent\n\tscale 0.025\n\talpha 0.2\n\t+clientsideonly\n\t+NOGRAVITY\n\tStates\n\t{\n\t\tspawn:\n\t\tdeath:\n\t\tSMOK ABCDEFGHIJKLNOPQ 1\n\t\tstop\n\t}\n}\n\nactor riflecasingsmoke : shotgunCASINGSMOKE\n{\n\tscale 0.03\n}\n\nactor riflecasing\n{\n\tPROJECTILE\n\t+CLIENTSIDEONLY\n\t+DONTSPLASH\n\t+DOOMBOUNCE\n\t-ACTIVATEIMPACT\n\t-NOGRAVITY\n\t-NOBLOCKMAP\n\tbouncefactor 0.6\n\tscale 0.25\n Radius 3\n SeeSound \"Weapons/mincase\"\n States\n {\n Spawn:\n\t\tMCAS ABCDEFGH 2 A_SpawnItemEx (\"riflecasingsmoke\", 0, 0, 0, 0, 0, 1, 0,0, 0)\n Death:\n MCAS C 0 A_Jump (85, \"death1\", \"death2\", \"death3\")\n MCAS C 0 A_Jump (85, \"death1\", \"death2\", \"death3\")\n MCAS C 0 A_Jump (85, \"death1\", \"death2\", \"death3\")\n\t\tdeath0:\n\t\tMCAS A 10 a_fadeout(0.05)\n goto death0\n\t\tdeath1:\n\t\tMCAS C 10 a_fadeout(0.05)\n goto death1\n\t\tdeath2:\n\t\tMCAS E 10 a_fadeout(0.05)\n goto death2\n\t\tdeath3:\n\t\tMCAS G 10 a_fadeout(0.05)\n goto death3\n }\n}\n\nactor miniguncasing : riflecasing\n{\n\tscale 0.15\n}\n\nactor revolvercasing\n{\n\tPROJECTILE\n\t+CLIENTSIDEONLY\n\t+DONTSPLASH\n\t+DOOMBOUNCE\n\t-ACTIVATEIMPACT\n\t-NOGRAVITY\n\t-NOBLOCKMAP\n\tbouncefactor 0.6\n\tscale 0.2\n Radius 3\n SeeSound \"revocase\"\n States\n {\n Spawn:\n\t\tCAS4 ABCDEFGH 2 A_SpawnItemEx (\"riflecasingsmoke\", 0, 0, 0, 0, 0, 1, 0, 0, 0)\n Death:\n CAS4 C 0 A_Jump (85, \"death1\", \"death2\", \"death3\")\n CAS4 C 0 A_Jump (85, \"death1\", \"death2\", \"death3\")\n CAS4 C 0 A_Jump (85, \"death1\", \"death2\", \"death3\")\n\t\tdeath0:\n\t\tCAS4 A 10 a_fadeout(0.05)\n goto death0\n\t\tdeath1:\n\t\tCAS4 C 10 a_fadeout(0.05)\n goto death1\n\t\tdeath2:\n\t\tCAS4 E 10 a_fadeout(0.05)\n goto death2\n\t\tdeath3:\n\t\tCAS4 G 10 a_fadeout(0.05)\n goto death3\n }\n}"
},
{
"source": "pk3",
"name": "actors/guns/shared/smoke.txt",
"contents": "actor baseweaponsmoke\n{\n\tvspeed 3\n\trenderstyle translucent\n\tscale 0.05\n\talpha 0.25\n\t+clientsideonly\n\t+NOGRAVITY\n\tStates\n\t{\n\t\tspawn:\n\t\tdeath:\n\t\tSMOK ABCDEFGHIJKLNOPQ 1\n\t\tstop\n\t}\n}"
},
{
"source": "pk3",
"name": "actors/guns/rocket launcher/rocketlauncher.txt",
"contents": "Actor \"RPG\" : Weapon\n{\n radius 20\n height 16\n Weapon.SlotNumber 5\n weapon.selectionorder 9000\n weapon.kickback 100\n obituary \"%o was obliterated %k's rocket launcher.\"\n decal \"Scorch\"\n inventory.pickupmessage \"You got the rocket launcher!\"\n weapon.ammotype \"rocketammo\"\n weapon.ammouse 1\n weapon.ammogive 2\n +weapon.noautoaim\n weapon.preferredskin \"rocketlauncher\"\n damagetype \"Slot5\"\n scale 0.8\n states\n {\n Spawn:\n\tSGN2 AA 0 thing_changetid(tid, CATA_WEP)\n Spawn2:\n RPIC A 1\n loop\n Ready:\n RLNC A 1 A_WeaponReady\n loop\n Deselect:\n\tTNT1 A 0 A_Lower\n RLNC A 1 A_Lower\n loop\n Select:\n\tTNT1 A 0 A_Raise\n RLNC A 1 A_Raise\n loop\n Fire:\n RLNC B 1 A_GunFlash\n\t RLNC B 0 a_firecustommissile(\"rpgrocket\", 0, 1, 0, 0, 0, 0)\n\t RLNC B 0 a_playsoundex(\"BEEFAFIR\", chan_auto)\n\t RLNC CDEFGH 1 bright a_setpitch(pitch - 0.3)\n\t RLNC I 1 bright a_setpitch(pitch - 0.3)\n\t RLNC J 1 bright a_setpitch(pitch + 0.3)\n RLNC KLMNOP 1 a_setpitch(pitch + 0.3)\n\t RLNC A 5\n RLNC A 1 A_ReFire\n Goto Ready\n Flash:\n\t NULL A 4 bright A_Light1\n\t NULL A 3 bright A_Light2\n\t NULL A 0 bright A_Light0\n\t stop\n }\n}\n\nACTOR explosiveSmoke\n{\n Radius 0\n Height 1\n Speed 0\n PROJECTILE\n scale 0.75\n RENDERSTYLE Translucent\n ALPHA 0.45\n States\n {\n Spawn:\n NULL A 3 bright\n SMK2 ABCDE 2 Bright\n Stop\n }\n}\n\nACTOR rpgRocket\n{\n Radius 16\n Height 12\n Speed 35\n Damage (80)\n Projectile\n Obituary \"%o was obliterated by %k's rocket launcher.\" // \"%o rode %k's rocket.\"\n decal \"Scorch\"\n States\n {\n Spawn:\n MISL A 1 Bright a_spawnitem(\"explosiveSmoke\", 0, 8)\n Loop\n Death:\n MISL B 0\n MISL B 0 Bright A_Explode(156, 156)\n\tMISL B 0 a_spawnitem(\"rpgExplosion\")\n\tTNT1 A 5\n Stop\n }\n}\n\nactor rpgExplosion\n{\n\tObituary \"%o was obliterated by %k's rocket launcher.\"\n\trenderstyle translucent\n\talpha 1.0\n\t+NOGRAVITY\n\t-SOLID\n\t+NOBLOCKMAP\n\tradius 1\n\theight 1\n\tStates\n\t{\n\tSpawn:\n\t\tNKXP A 0\n\t\tNKXP A 0 A_spawndebris(\"rpgflame\", 0, 3.5, 1.5)\n\t\tNKXP A 0 A_spawndebris(\"rpgflamesmoke\", 0, 2.0, 1.2)\n\t\tNKXP A 0 A_spawndebris(\"rpgflamesmoke\", 0, 2.0, 1.2)\n\t\tNKXP A 0 A_spawndebris(\"rpgflamesmoke\", 0, 2.0, 1.2)\n\t\tNKXP A 0 A_PlaySound(\"DSQKLDTH\", CHAN_AUTO)\n\t\tNKXP A 0 radius_quake(1, 15, 0, 12, 0)\n\t\tNKXP BCDEFGHIJKLMNOPQRSTUV 1 bright A_FadeOut(0.04)\n\t\tStop\n\t}\n}\n\nactor rpgflamesmoke\n{\n\thealth 10\n\tPROJECTILE\n\t-NOGRAVITY\n\t-NOBLOCKMAP\n\t+clientsideonly\n\t-activateimpact\n\tscale 0.25\n\trenderstyle translucent\n Radius 6\n\theight 6\n\tspeed 0\n\tdamage 0\n Obituary \"%o died from %k's rocket debris.\"\n States\n {\n Spawn:\n\t\tSMOK ABCDEFGHIJKLMNOPQ 1 A_FADEOUT(0.03)\n\t\tloop\n Death:\n TNT1 A 1\n\t\tSTOP\n }\n}\n\nactor rpgflame\n{\n\thealth 10\n\tPROJECTILE\n\t-NOGRAVITY\n\t-NOBLOCKMAP\n\tscale 0.1\n Radius 6\n\theight 6\n\tspeed 0\n\tdamage (0)\n\trenderstyle translucent\n\talpha 0.7\n Obituary \"%o died from %k's rocket debris.\"\n States\n {\n Spawn:\n\t\tTNT1 A 0\n\t\tTNT1 A 1 a_jump(256, \"sprite1\", \"sprite2\", \"sprite3\")\n\t\tsprite1:\n\t\tBFIR A 1 bright\n\t\tgoto sprite1\n\t\tsprite2:\n\t\tBFIR B 1 bright\n\t\tgoto sprite2\n\t\tsprite3:\n\t\tBFIR C 1 bright\n\t\tgoto sprite3\n Death:\n TNT1 A 1\n\t\tSTOP\n }\n}"
},
{
"source": "pk3",
"name": "actors/guns/plasma rifle/plasmarifle.txt",
"contents": "Actor \"PlasmaGun\" : Weapon\n{\n radius 20\n height 16\n Weapon.SlotNumber 6\n weapon.selectionorder 2000\n weapon.kickback 100\n obituary \"%o was vaporized by %k's plasma rifle.\"\n inventory.pickupmessage \"You got the plasma rifle!\"\n weapon.ammotype \"cell\"\n weapon.ammouse 1\n weapon.ammogive 40\n +weapon.noautoaim\n weapon.preferredskin \"plasmagun\"\n scale 0.8\n damagetype \"Slot6\"\n states\n {\n Spawn:\n\tSGN2 AA 0 thing_changetid(tid, CATA_WEP)\n Spawn2:\n PRIF Y 1\n loop\n Ready:\n PRIF A 1 A_WeaponReady\n\tPRIF A 0 a_jumpifinventory(\"cell\", 1, \"Ready2\")\n loop\n Ready2:\n\tPRIF UVWX 2 bright A_WeaponReady\n\tloop\n Deselect:\n\tTNT1 A 0 A_Lower\n PRIF A 1 A_Lower\n loop\n Select:\n\tTNT1 A 0 A_Raise\n PRIF A 1 A_Raise\n loop\n Fire:\n\t PRIF A 0 a_firecustommissile(\"Coolplasmaball\", 0, 1, 0, 0, 0, 0)\n PRIF DEFG 1 bright\n\t PRIF G 0 bright a_refire(\"fire2\")\n\t goto ready\n Fire2:\n\t PRIF A 0 a_firecustommissile(\"Coolplasmaball\", 0, 1, 0, 0, 0, 0)\n\t PRIF HIJK 1 bright\n\t PRIF G 0 bright a_refire(\"fire3\")\n\t goto ready\n Fire3:\n\t PRIF A 0 a_firecustommissile(\"Coolplasmaball\", 0, 1, 0, 0, 0, 0)\n PRIF DEFG 1 bright\n\t PRIF G 0 bright a_refire(\"fire4\")\n\t goto ready\n Fire4:\n\t PRIF A 0 a_firecustommissile(\"Coolplasmaball\", 0, 1, 0, 0, 0, 0)\n\t PRIF HIJK 1 bright\n\t PRIF G 0 bright a_refire(\"hold\")\n\t goto ready\n Hold:\n\t PRIF A 0 a_firecustommissile(\"Coolplasmaball\", 0, 1, 0, 0, 0, 0)\n\t PRIF L 1 bright\n\t PRIF M 1 bright a_setpitch(pitch - 0.3)\n\t PRIF N 1 bright a_setpitch(pitch + 0.3)\n\t PRIF A 0 a_firecustommissile(\"Coolplasmaball\", 0, 1, 0, 0, 0, 0)\n\t PRIF O 1 bright a_setangle(angle - 0.3)\n\t PRIF P 1 bright a_setangle(angle + 0.3)\n PRIF Q 0 bright a_setpitch(pitch - 0.15)\n\t PRIF Q 1 bright a_setangle(angle + 0.15)\n\t PRIF A 0 a_firecustommissile(\"Coolplasmaball\", 0, 1, 0, 0, 0, 0)\n PRIF R 0 bright a_setpitch(pitch - 0.15)\n\t PRIF R 1 bright a_setangle(angle - 0.15)\n PRIF S 0 bright a_setpitch(pitch + 0.15)\n\t PRIF S 1 bright a_setangle(angle + 0.15)\n PRIF T 0 bright a_setpitch(pitch + 0.15)\n\t PRIF T 1 bright a_setangle(angle - 0.15)\n PRIF T 0 A_ReFire(\"ready2\")\n\t PRIF B 1 bright\n Goto Ready\n\tFlash:\n\t NULL A 4 bright A_Light1\n\t NULL A 3 bright A_Light2\n\t NULL A 0 bright A_Light0\n\t stop\n }\n}\n\nACTOR CoolPlasmaBall\n{\n Radius 13\n Height 8\n Speed 80\n Damage (25)\n Projectile\n RenderStyle Add\n Alpha 0.75\n scale 0.5\n SeeSound \"weapons/plasmaf\"\n DeathSound \"weapons/plasmax\"\n Obituary \"%o was vaporized by %k's plasma rifle.\"\n States\n {\n Spawn:\n PLAS ABCDEFGHIJ 2 Bright a_spawnitem(\"plasmatrail\")\n Loop\n Death:\n TNT1 A 0\n\tTNT1 A 0 a_spawnitem(\"plasmadeath\")\n\tTNT1 A 5\n Stop\n }\n}\n\nActor PlasmaTrail\n{\n\tscale 0.25\n\trenderstyle translucent\n\talpha 0.65\n\t+NOGRAVITY\n\t-SOLID\n\t+NOBLOCKMAP\n\tradius 1\n\theight 1\n\tStates\n\t{\n\t\tSpawn:\n\t\t\tPFOG ABCDEFG 1 bright\n\t\t\tstop\n\t}\n}\n\nActor PlasmaDeath\n{\n\trenderstyle translucent\n\talpha 0.65\n\tscale 0.15\n\t+NOGRAVITY\n\t-SOLID\n\t+NOBLOCKMAP\n\tradius 1\n\theight 1\n\tStates\n\t{\n\t\tSpawn:\n\t\t\tPLAS KLMNOPQRST 1 bright\n\t\t\tstop\n\t}\n}"
},
{
"source": "pk3",
"name": "actors/guns/minigun/minigun.txt",
"contents": "Actor \"Minigun\" : Weapon\n{\n radius 20\n height 16\n Weapon.SlotNumber 4\n weapon.selectionorder 5000\n weapon.kickback 100\n obituary \"%o was overwhelmed by %k's minigun.\"\n decal \"BulletChip\"\n inventory.pickupmessage \"You got the minigun!\"\n weapon.ammotype \"clip\"\n weapon.ammouse 1\n weapon.ammogive 400\n weapon.preferredskin \"minigun\"\n +weapon.noautoaim\n damagetype \"Slot4\"\n scale 0.8\n states\n {\n Spawn:\n\tSGN2 AA 0 thing_changetid(tid, CATA_WEP)\n Spawn2:\n MNGN A 1\n loop\n Ready:\n CHAG A 1 A_WeaponReady\n\tCHAG A 0 a_stopsound(7)\n loop\n Deselect:\n\tCHAG A 0 A_Lower\n\tCHAG A 0 a_stopsound(7)\n CHAG A 1 A_Lower\n loop\n Select:\n\tCHAG A 0 A_Raise\n\tCHAG A 0 a_stopsound(7)\n CHAG A 1 A_Raise\n loop\n Fire:\n\t CHAG ABCD 1\n\t CHAG D 0 A_ReFire(\"hold\")\n\t goto ready\n Hold:\n\t CHAF AA 0 a_playsoundex(\"DSMGMID\", \"SoundSlot7\", 1)\n\t CHAF A 1 bright A_firebullets(3.15, 3.15, 2, 6, \"HitScanBulletPuff\", FBF_NORANDOM|FBF_USEAMMO)\n\t CHAF A 0 a_playweaponsound(\"RW04M6F2\")\n\t CHAF A 0 a_quake(2, 7, 0, 1)\n\t CHAF C 1\n\t CHAF A 0 A_SpawnItemEx (\"miniguncasing\",cos(-pitch)*36,-6,18+(sin(-pitch)*36),cos(-pitch)*0,random(-5, -8), random(4, 5),0,0,0)\n\n\t CHAF D 1 bright A_firebullets(3.15, 3.15, 2, 5, \"HitScanBulletPuff\", FBF_NORANDOM|FBF_USEAMMO)\n\t CHAF D 0 a_playweaponsound(\"RW04M6F2\")\n\t CHAF F 1\n\t CHAF A 0 A_SpawnItemEx (\"miniguncasing\",cos(-pitch)*36,-6,18+(sin(-pitch)*36),cos(-pitch)*0,random(-5, -8), random(4, 5),0,0,0)\n\n\t CHAF G 1 bright A_firebullets(3.15, 3.15, 2, 6, \"HitScanBulletPuff\", FBF_NORANDOM|FBF_USEAMMO)\n\t CHAF G 0 a_playweaponsound(\"RW04M6F2\")\n\t CHAF I 1\n\t CHAF A 0 A_SpawnItemEx (\"miniguncasing\",cos(-pitch)*36,-6,18+(sin(-pitch)*36),cos(-pitch)*0,random(-5, -8), random(4, 5),0,0,0)\n\n\t CHAF I 0 a_refire\n\t CHAG A 0 a_stopsound(7)\n\t CHAF A 0 a_playsoundex(\"DSMGDOWN\", \"SoundSlot6\")\n\t CHAF A 2\n Goto Ready\n\tFlash:\n\t NULL A 3 bright A_Light1\n\t NULL A 3 bright A_Light2\n\t NULL A 0 bright A_Light0\n\t stop\n }\n}"
}
]
},
"maps": []
}