camp2.pk3

PK3 58 MiB 4 map(s)

Counts

endoom0
graphics1
lumps1219
maps8
palettes0

Totals (across maps)

Things0
Linedefs0
Sectors0
Monsters0
Items0
Raw model (for completeness)
{
  "meta": {
    "id": "0c88dba4-dd05-427a-8e90-3b189386aba4",
    "sha1": "1cdc3961274c6e143f98d0c5d98fa7b7891644ff",
    "sha256": "393e6659445111dec896243b333ef85524e35986e4cd7380ca93634983d4fa5e",
    "filenames": [
      "camp2.pk3"
    ],
    "additional": {
      "engines": [],
      "iwad": [],
      "filename": null,
      "added": null,
      "locked": false,
      "canDownload": true,
      "adult": false,
      "hidden": false,
      "name": null,
      "description": null,
      "maps": null,
      "graphicOverrides": null,
      "screenshots": {
        "MAP00": "MAP00.png",
        "MAP01": "MAP01.png",
        "MAP02": "MAP02.png",
        "MAP03": "MAP03.png"
      },
      "palettes": null,
      "categories": null
    },
    "flags": {
      "locked": false,
      "canDownload": true,
      "adult": false,
      "hidden": false
    },
    "file": {
      "type": "PK3",
      "size": 61156593,
      "url": "https://wadarchive2.nyc3.digitaloceanspaces.com/1cdc3961274c6e143f98d0c5d98fa7b7891644ff/1cdc3961274c6e143f98d0c5d98fa7b7891644ff.pk3.gz",
      "corrupt": false
    },
    "content": {
      "maps": [
        "MAP00",
        "MAP02",
        "MAP01",
        "MAP03",
        "e0 prologue",
        "e1 nurseoffice",
        "e1 orientation",
        "e1 recess"
      ],
      "counts": {
        "endoom": 0,
        "graphics": 1,
        "lumps": 1219,
        "maps": 8,
        "palettes": 0
      }
    },
    "text_files": [
      {
        "source": "pk3",
        "name": "MAPINFO.TXT",
        "contents": "gameinfo\n{\n\tplayerclasses = \"OlliPlayer\"\n\tintermissioncounter = false\n\tintermissionmusic = \"BGMTITLE\"\n\ttitlepage = \"INTERPIC\"\n\ttitlemusic = \"BGMTITLE\"\n}\n\ndefaultmap {clipmidtextures StrifeFallingDamage}\nclearepisodes\nclearskills\n\nskill easy\n{\n\tAggressiveness = 0.25\n\tDamageFactor = 1.5\n\tMonsterHealth = 0.6\n\tEasyBossBrain\n\tSpawnFilter = Easy\n\tName = \"Slightly Spooky\"\n}\n\nskill normal\n{\n\tAggressiveness = 0.5\n\tDamageFactor = 2.0\n\tMonsterHealth = 0.7\n\tSpawnFilter = Normal\n\tName = \"Night Terror\"\n\tDefaultSkill\n}\n\nskill hard\n{\n\tDamageFactor = 2.5\n\tMonsterHealth = 0.8\n\tFastMonsters\n\tSpawnFilter = Hard\n\tName = \"Cosmic Horror\"\n}\n\n// Episodes\nEpisode MAP00\n{\n    Name = \"Prologue\"\n}\n\nEpisode MAP01\n{\n    Name = \"Camp Hell\"\n}\n\n// Maps\nmap MAP00 \"Prologue: Wayward Boys\"\n{\n\tlevelnum = 0\n\tnext = 1\n\tsky1 = \"RSKY2\"\n\tcluster = 1\n\tmusic = \"m_ekfnt\"\n\tnointermission\n}\n\nmap MAP01 \"Orientation\"\n{\n\tlevelnum = 1\n\tnext = 2\n\tsky1 = \"RSKY2\"\n\tcluster = 1\n\tmusic = \"BGM1\"\n}\n\nmap MAP02 \"Nurse's Office\"\n{\n\tlevelnum = 2\n\tnext = 3\n\tsky1 = \"RSKY2\"\n\tcluster = 1\n\tmusic = \"BGM1\"\n}\n\nmap MAP03 \"Recess Yard\"\n{\n\tlevelnum = 3\n\tnext = 4\n\tsky1 = \"RSKY2\"\n\tcluster = 1\n\tmusic = \"BGM1\"\n}\n\nmap MAP04 \"Cafeteria\"\n{\n\tlevelnum = 4\n\tnext = 5\n\tsky1 = \"RSKY2\"\n\tcluster = 1\n\tmusic = \"BGM1\"\n}\n\nmap MAP05 \"Barracks\"\n{\n\tlevelnum = 5\n\tnext = 6\n\tsky1 = \"RSKY2\"\n\tcluster = 1\n\tmusic = \"BGM1\"\n}\n\nmap MAP06 \"Shooting Range\"\n{\n\tlevelnum = 6\n\tnext = 7\n\tsky1 = \"RSKY2\"\n\tcluster = 1\n\tmusic = \"BGM1\"\n}\n\nmap MAP07 \"Showers\"\n{\n\tlevelnum = 7\n\tnext = 8\n\tsky1 = \"RSKY2\"\n\tcluster = 1\n\tmusic = \"BGM1\"\n}\n\nmap MAP08 \"Visitors Center\"\n{\n\tlevelnum = 8\n\tnext = 9\n\tsky1 = \"RSKY2\"\n\tcluster = 1\n\tmusic = \"BGM1\"\n}"
      },
      {
        "source": "pk3",
        "name": "DECORATE.TXT",
        "contents": "#include \"actors/player.txt\"\n#include \"actors/monsters.txt\"\n#include \"actors/furniture.txt\"\n#include \"actors/weapons.txt\"\n#include \"actors/rainspawn.txt\""
      },
      {
        "source": "pk3",
        "name": "SNDINFO.TXT",
        "contents": "//WORLD SOUNDS\nBar/Break      \t\t\tFBRBRK\nworld/glassbreak\t\tGLASBREK\nAmbient/Rain\tAMBRAIN\n\n//DOORS\ndoors/dr2_open \t\t\tDOOROPEN\ndoors/dr2_clos\t\t\tDOOROPEN\ndoors/dr1_open \t\t\tDOOROPEN\ndoors/dr1_clos\t\t\tDOOROPEN\n\n//SWITCHES\nswitches/smswitchon smswitchn\nswitches/smswitchof smswitchx\nswitches/scannerno scanno\nswitches/scanneryes scanyes\nswitches/elect swelect\nswitches/valve dsstnmov\n\n//PICKUPS\npickups/small \tchomp\n\n//JITTERHEADS\njhscrm1\t\tjhscrm1\njhscrm2\t\tjhscrm2\njhspek1\t\tjhspek1\njhspek2\t\tjhspek2\njhspek4\t\tjhspek4\njhspot1\t\tjhspot1\njhspot3\t\tjhspot3\n\njitterhead/attack \t\t\tjhscrm2\n$random jitterhead/spotted \t{ jhspot1 jhscrm2 }\n$random jitterhead/active \t{ jhspek1 jhspek2 jhspek4 jhspot1 jhspot3 jhspot3 }\njitterhead/pain\t\t\t\tjhscrm1\n\n//PIGMEN\npmpain\t\tpmpain\npmsit1\t\tpmsit1\npmsit2\t\tpmsit2\npmact1\t\tpmact1\npmact2\t\tpmact2\npmlaff1\t\tpmlaff1\n\n$random pigman/sight\t{ pmsit1 pmsit2 }\n$random pigman/active \t{ pmact1 pmact2 }\npigman/laugh\t\t\tpmlaff1\npigman/pain\t\t\t\tpmpain\n\n//VOICES\nbrenda/talk1 brend1\nbrenda/talk2 brend2\nbrenda/talk3 brend3\nbrenda/talk4 brend4\nbrenda/talk5 brend5\ndane/intro \t daneintr\ndane/quest1  daneq1\ndane/quest2  daneq2\ndane/quest3  daneq3\ndane/quest4  daneq4\ndane/quest5  daneq5\ndane/surge\t danesurj\n\nmessage/msg0\tmsg0\nmessage/msg1\tmsg1\nmessage/msg2\tmsg2\n\n//----------------------------------------\n\n//MENU SOUNDS\nmenu/quit1 tsting\nmenu/quit2 tsting\n\nmenu/activate\t\tdsswtchn\t// Activate a new menu\nmenu/backup\t\t\tdsswtchn\t// Backup to previous menu\nmenu/prompt\t\t\tdsswtchn\t// Activate a prompt \"menu\"\nmenu/cursor\t\t\tdsswtchn\t\t// Move cursor up/down\nmenu/change\t\t\tdsstnmov\t// Select new value for option\nmenu/invalid\t\tdsoof\t\t// Menu not available\nmenu/dismiss\t\tdsswtchx\t// Dismiss a prompt message\nmenu/choose\t\t\tdsswtchn \t// Choose a menu item\nmenu/clear\t\t\tdsswtchx\t// Close top menu\nmisc/chat\t\t\tdssnow2\n\n//----------------------------------------\n\n//PLAYER SOUNDS\n//OLLIE\n$playersound           olliplayer\t male\t *pain100\tolpain1\n$playersound           olliplayer\t male\t *pain75\tolpain2\n$playersound           olliplayer\t male\t *pain50\tolpain3\n$playersound           olliplayer\t male\t *pain25\tolpain3\n$playersound           olliplayer\t male\t *grunt\t    olpush2\n$playersound           olliplayer\t male\t *land\t    bootland\n$playersound           olliplayer\t male\t *usefail\tolpush2\n$playersound           olliplayer\t male\t *death\t    olpush1\n$playersound           olliplayer\t male\t *xdeath\tgrudeth\n\n$playersound           olliplayer\t female\t *pain100\tolpain1\n$playersound           olliplayer\t female\t *pain75\tolpain2\n$playersound           olliplayer\t female\t *pain50\tolpain3\n$playersound           olliplayer\t female\t *pain25\tolpain3\n$playersound           olliplayer\t female\t *grunt\t    olpush2\n$playersound           olliplayer\t female\t *land\t    bootland\n$playersound           olliplayer\t female\t *usefail\tolpush2\n$playersound           olliplayer\t female\t *death\t    olpush1\n$playersound           olliplayer\t female\t *xdeath\tgrudeth\n\nmisc/secret\t\t\t\tolsecret\nmisc/w_pkup\t\t\t\trifleup\n\n//----------------------------------------\n\n//AMBIENT SOUNDS\n//continuous sounds\nsnostorm\tm_storm\t\t// Gentle Cold Wind\ncavewind\tcavewind\t// Eerie Cave Wind\nfalls1\t\tfalls1\t\t// Waterfall 1\nfalls2\t\tfalls2\t\t// Waterfall 2\nriver\t\triver\t\t// Flowing River\nturbhum \tturbhum\t// turbines humming\nturbwhin \tturbwhin\t// turbines whining\nengine \t\tengine\t// sub engine\ncabin \t\tm_cabin // cabin ambience\nstable\t\tm_stable // stable ambience\nalisting\talisting // alien presence\nekidsnd\t\tekidsnd //echidna\n\n//point sounds\n$AMBIENT 1 snostorm WORLD CONTINUOUS 0.5\n$AMBIENT 2 cavewind POINT CONTINUOUS 0.5\n$AMBIENT 3 alisting POINT CONTINUOUS 1\n$AMBIENT 4 ekidsnd POINT CONTINUOUS 1\n$AMBIENT 6 falls1 POINT CONTINUOUS 0.5\n$AMBIENT 7 falls2 POINT CONTINUOUS 0.5\n$AMBIENT 8 river POINT CONTINUOUS 0.5\n$AMBIENT 9 turbhum POINT CONTINUOUS 0.5\n$AMBIENT 10 turbwhin POINT CONTINUOUS 0.5\n$AMBIENT 11 engine POINT CONTINUOUS 0.5\n$AMBIENT 12 cabin POINT CONTINUOUS 1\n$AMBIENT 13 stable POINT CONTINUOUS 1\n\n//----------------------------------------\n\n//WEAPON SOUNDS\nbootland \t\tbootland\nKickHitThing\tKICKHIT1\nKickHitHard\t\tKICKHIT2\nKickHitWall\t\tKICKWALL\nKickSwing\t\tKICKMISS\nweapons/riflefire riflfire\n\npodelect              podelect\npdprjxp               pdprjxp\nminejump              minejump\npodbigxp              podbigxp\n\nSPRNMNXP         SPRNMNXP\nMINLNCH          MINLNCH\nMINBNC           MINBNC\nSMINGET          SMINGET\nSMNSET1          SMNSET1\nSMNSET2          SMNSET2\n\nweapons/WasherHit\t\t\tRick004\n\n//----------------------------------------\n//SNEAKY SOUNDS\nsneak/silent\tsilenced\n$rolloff sneak/silent 2 768\n$alias menu/choose\tsneak/silent\n\nsneak/reload\treload\n\nsneak/stab\t\tDSKNIFE\nsneak/clang\t\tDSKNIFE3\nsneak/knife\t\tDSKNIFE2\n\n$random\t*whisper\t{sneak/whis4 sneak/whis5}\n\nsneak/whis4\t\tWHISTLE1\nsneak/whis5\t\tWHISTLE2\n\nsneak/nighton\tnighton\nsneak/nightoff\tnightoff\n\n// Footsteps V3\n// Sound Info\n\n// Define the actual sounds here\n\n// Default / Ground\nstep/default1\t\t\tDSSTP1\nstep/default2\t\t\tDSSTP2\nstep/default3\t\t\tDSSTP3\nstep/default4\t\t\tDSSTP4\n$random step/default { step/default1  step/default2  step/default3  step/default4 }\n\n// Water\nstep/water1\t\t\tDSWTR1\nstep/water2\t\t\tDSWTR2\nstep/water3\t\t\tDSWTR3\nstep/water4\t\t\tDSWTR4\n$random step/water { step/water1  step/water2  step/water3  step/water4 }\n\n// Carpet\nstep/carpet1\t\t\tDSCARP1\nstep/carpet2\t\t\tDSCARP2\nstep/carpet3\t\t\tDSCARP3\n$random step/carpet { step/carpet1 step/carpet2 step/carpet3 }\n\n// Dirt\nstep/dirt1\t\t\tDSDIRT1\nstep/dirt2\t\t\tDSDIRT2\nstep/dirt3\t\t\tDSDIRT3\nstep/dirt4\t\t\tDSDIRT4\nstep/dirt5\t\t\tDSDIRT5\nstep/dirt6\t\t\tDSDIRT6\n$random step/dirt { step/dirt1 step/dirt2 step/dirt3 step/dirt4 step/dirt5 step/dirt6 }\n\n// Gravel\nstep/gravel1\t\t\tDSGRAV1\nstep/gravel2\t\t\tDSGRAV2\nstep/gravel3\t\t\tDSGRAV3\nstep/gravel4\t\t\tDSGRAV4\n$random step/gravel { step/gravel1 step/gravel2 step/gravel3 step/gravel4 }\n\n// Hard\nstep/hard1\t\t\tDSHARD1\nstep/hard2\t\t\tDSHARD2\nstep/hard3\t\t\tDSHARD3\nstep/hard4\t\t\tDSHARD4\nstep/hard5\t\t\tDSHARD5\nstep/hard6\t\t\tDSHARD6\n$random step/hard { step/hard1 step/hard2 step/hard3 step/hard4 step/hard5 step/hard6 }\n\n// Metal A\nstep/metal/a1\t\t\tDSMET01\nstep/metal/a2\t\t\tDSMET02\nstep/metal/a3\t\t\tDSMET03\nstep/metal/a4\t\t\tDSMET04\nstep/metal/a5\t\t\tDSMET05\nstep/metal/a6\t\t\tDSMET06\n$random step/metal/a { step/metal/a1 step/metal/a2 step/metal/a3 step/metal/a4 step/metal/a5 step/metal/a6 }\n\n// Metal B (Thin Metals, Girders)\nstep/metal/b1\t\t\tDSMET201\nstep/metal/b2\t\t\tDSMET202\nstep/metal/b3\t\t\tDSMET203\nstep/metal/b4\t\t\tDSMET204\n$random step/metal/b { step/metal/b1 step/metal/b2 step/metal/b3 step/metal/b4 }\n\n// Rock\nstep/rock1\t\t\tDSROCK1\nstep/rock2\t\t\tDSROCK2\nstep/rock3\t\t\tDSROCK3\nstep/rock4\t\t\tDSROCK4\nstep/rock5\t\t\tDSROCK5\nstep/rock6\t\t\tDSROCK6\nstep/rock7\t\t\tDSROCK7\nstep/rock8\t\t\tDSROCK8\n$random step/rock { step/rock1 step/rock2 step/rock3 step/rock4 step/rock5 step/rock6 step/rock7 step/rock8 }\n\n// Snow\nstep/snow1\t\t\tDSSNOW1\nstep/snow2\t\t\tDSSNOW2\nstep/snow3\t\t\tDSSNOW3\nstep/snow4\t\t\tDSSNOW4\nstep/snow5\t\t\tDSSNOW5\nstep/snow6\t\t\tDSSNOW6\n$random step/snow { step/snow1 step/snow2 step/snow3 step/snow4 step/snow5 step/snow6 }\n\n// Tile A\nstep/tile/a1\t\t\tDSTILE01\nstep/tile/a2\t\t\tDSTILE02\nstep/tile/a3\t\t\tDSTILE03\nstep/tile/a4\t\t\tDSTILE04\nstep/tile/a5\t\t\tDSTILE05\nstep/tile/a6\t\t\tDSTILE06\n$random step/tile/a { step/tile/a1 step/tile/a2 step/tile/a3 step/tile/a4 step/tile/a5 step/tile/a6 }\n\n// Tile B (Hallways, Marble/Finer Tiles)\nstep/tile/b1\t\t\tDSTILE21\nstep/tile/b2\t\t\tDSTILE22\nstep/tile/b3\t\t\tDSTILE23\nstep/tile/b4\t\t\tDSTILE24\nstep/tile/b5\t\t\tDSTILE25\nstep/tile/b6\t\t\tDSTILE26\nstep/tile/b7\t\t\tDSTILE27\nstep/tile/b8\t\t\tDSTILE28\n$random step/tile/b { step/tile/b1 step/tile/b2 step/tile/b3 step/tile/b4 step/tile/b5 step/tile/b6 step/tile/b7 step/tile/b8 }\n\n// Wood\nstep/wood1\t\t\tDSWOOD1\nstep/wood2\t\t\tDSWOOD2\nstep/wood3\t\t\tDSWOOD3\nstep/wood4\t\t\tDSWOOD4\n$random step/wood { step/wood1 step/wood2 step/wood3 step/wood4 }\n\n// Slime\nstep/slime1\t\t\tDSSLIME1\nstep/slime2\t\t\tDSSLIME2\nstep/slime3\t\t\tDSSLIME3\nstep/slime4\t\t\tDSSLIME4\n$random step/slime { step/slime1 step/slime2 step/slime3 step/slime4 }\n\n// Slimy\nstep/slimy1\t\t\tDSSLIMY1\nstep/slimy2\t\t\tDSSLIMY2\nstep/slimy3\t\t\tDSSLIMY3\nstep/slimy4\t\t\tDSSLIMY4\n$random step/slimy { step/slimy1 step/slimy2 step/slimy3 step/slimy4 }\n\n// Lava\nstep/lava1\t\t\tDSLAVA1\nstep/lava2\t\t\tDSLAVA2\nstep/lava3\t\t\tDSLAVA3\nstep/lava4\t\t\tDSLAVA4\n$random step/lava { step/lava1 step/lava2 step/lava3 step/lava4 }"
      },
      {
        "source": "pk3",
        "name": "LOADACS.TXT",
        "contents": "sneaky\nsneakAI\nfoot"
      },
      {
        "source": "pk3",
        "name": "MENUDEF.txt",
        "contents": "ListMenu \"MainMenu\"\n{\n\tStaticPatch 96, 0, \"M_DOOM\"\n\tPosition 105, 70\n\tIfOption(ReadThis)\n\t\t{\n\t\tPosition 105, 70\n\t\t}\n\tFont \"BigFont\"\n    TextItem \"NEW GAME\", \"n\", \"PlayerclassMenu\"\n\tTextItem \"LOAD GAME\", \"r\", \"LoadGameMenu\"\n\tTextItem \"SAVE GAME\", \"s\", \"SaveGameMenu\"\n    TextItem \"OPTIONS\", \"o\", \"OptionsMenu\"\n    TextItem \"QUIT\", \"q\", \"QuitMenu\"\n}"
      },
      {
        "source": "pk3",
        "name": "language.txt",
        "contents": "[enu default]\n// MESSAGES\n\nQUITMSG = \"Press Y to take the easy way out.\";\nQUITMSG1 = \"Press Y to take the easy way out.\";\nQUITMSG2 = \"Press Y to take the easy way out.\";\nQUITMSG3 = \"Press Y to take the easy way out.\";\nQUITMSG4 = \"Press Y to take the easy way out.\";\nQUITMSG5 = \"Press Y to take the easy way out.\";\nQUITMSG6 = \"Press Y to take the easy way out.\";\nQUITMSG7 = \"Press Y to take the easy way out.\";\nQUITMSG8 = \"Press Y to take the easy way out.\";\nQUITMSG9 = \"Press Y to take the easy way out.\";\nQUITMSG10 = \"Press Y to take the easy way out.\";\nQUITMSG11 = \"Press Y to take the easy way out.\";\nQUITMSG12 = \"Press Y to take the easy way out.\";\nQUITMSG13 = \"Press Y to take the easy way out.\";\nQUITMSG14 = \"Press Y to take the easy way out.\";\nDOSY = \"[Press N or Y]\";\nTXT_YES = \"[Yes]\";\nTXT_NO = \"[No]\";\n\nPD_BLUECO = \"Locked. You need a Blue Key.\";\nPD_REDCO = \"Locked. You need a Red Key.\";\nPD_YELLOWCO = \"Locked. You need a Gold Key.\";\nGOTBLUECARD = \"You found a Blue Key!\";\nGOTREDCARD = \"You found a Red Key!\";\nGOTYELWCARD = \"You found a Gold Key!\";\nPD_BLUESK = \"Visitors Pass Required.\";\nPD_REDSK = \"You need a Credit Card to activate this.\";\nPD_YELLOWSK = \"Its asking for a staff ID Badge.\";\nGOTBLUESKUL = \"You found a Visitor Pass!\";\nGOTREDSKUL = \"You found a Credit Card!\";\nGOTYELWSKUL = \"You found an ID Badge!\";\n\n// Footsteps V3\n// Language Definitions\n\n// This is where the footstep sounds for each texture are defined.\n// The definition MUST be STEP_<texturename>\n// If you are adding a new texture, in addition to defining its sound\n// here, see the ACS source code.\n\n// You can also change a few settings for the mod here\n\nCONTROLWITHCVARS = \"FALSE\";\nVOLUMEMULTIPLIER_CVAR = \"cl_step_volmul\";\nDELAYMULTIPLIER_CVAR = \"cl_step_delaymul\";\nVOLUMEMULTIPLIER = \"12.0\";\nDELAYMULTIPLIER = \"0.66667\";\n\n// Sounds\nSTEP_DEFAULT = \"step/default\";\n\n// Water\nSTEP_FWATER1 = \"step/water\";\nSTEP_FWATER2 = \"step/water\";\nSTEP_FWATER3 = \"step/water\";\nSTEP_FWATER4 = \"step/water\";\n\n// Ground\nSTEP_FLOOR0_1 = \"step/default\";\nSTEP_FLOOR0_3 = \"step/default\";\nSTEP_FLOOR1_7 = \"step/default\";\nSTEP_FLOOR4_1 = \"step/default\";\nSTEP_FLOOR4_5 = \"step/default\";\nSTEP_FLOOR4_6 = \"step/default\";\nSTEP_TLITE6_1 = \"step/default\";\nSTEP_TLITE6_5 = \"step/default\";\nSTEP_CEIL3_1 = \"step/default\";\nSTEP_CEIL3_2 = \"step/default\";\nSTEP_CEIL4_2 = \"step/default\";\nSTEP_CEIL4_3 = \"step/default\";\nSTEP_CEIL5_1 = \"step/default\";\nSTEP_FLAT2 = \"step/default\";\nSTEP_FLAT5 = \"step/default\";\nSTEP_FLAT18 = \"step/default\";\nSTEP_FLOOR0_2 = \"step/default\";\nSTEP_FLOOR0_5 = \"step/default\";\nSTEP_FLOOR0_7 = \"step/default\";\nSTEP_FLAT5_3 = \"step/default\";\nSTEP_CRATOP1 = \"step/default\";\nSTEP_CRATOP2 = \"step/default\";\nSTEP_FLAT9 = \"step/default\";\nSTEP_FLAT17 = \"step/default\";\nSTEP_FLAT19 = \"step/default\";\nSTEP_COMP01 = \"step/default\";\nSTEP_GRNLITE1 = \"step/default\";\n\n// Carpet\nSTEP_FLOOR1_1 = \"step/carpet\";\nSTEP_FLAT14 = \"step/carpet\";\nSTEP_FLAT5_5 = \"step/carpet\";\nSTEP_FLOOR1_6 = \"step/carpet\";\nSTEP_CEIL4_1 = \"step/carpet\";\nSTEP_GRASS1 = \"step/carpet\";\nSTEP_GRASS2 = \"step/carpet\";\n\n// Dirt\nSTEP_RROCK16 = \"step/dirt\";\nSTEP_RROCK19 = \"step/dirt\";\n\n// Gravel\nSTEP_FLOOR6_1 = \"step/gravel\";\nSTEP_FLOOR6_2 = \"step/gravel\";\nSTEP_FLAT10 = \"step/gravel\";\nSTEP_MFLR8_3 = \"step/gravel\";\nSTEP_MFLR8_4 = \"step/gravel\";\nSTEP_RROCK17 = \"step/gravel\";\nSTEP_RROCK18 = \"step/gravel\";\n\n// Hard\nSTEP_FLOOR0_6 = \"step/hard\";\nSTEP_FLOOR4_8 = \"step/hard\";\nSTEP_FLOOR5_1 = \"step/hard\";\nSTEP_FLOOR5_2 = \"step/hard\";\nSTEP_FLOOR5_3 = \"step/hard\";\nSTEP_FLOOR5_4 = \"step/hard\";\nSTEP_TLITE6_4 = \"step/hard\";\nSTEP_TLITE6_6 = \"step/hard\";\nSTEP_FLOOR7_1 = \"step/hard\";\nSTEP_MFLR8_1 = \"step/hard\";\nSTEP_CEIL3_5 = \"step/hard\";\nSTEP_CEIL5_2 = \"step/hard\";\nSTEP_CEIL3_6 = \"step/hard\";\nSTEP_FLAT8 = \"step/hard\";\nSTEP_SLIME13 = \"step/hard\";\n\n// Metal A\nSTEP_STEP1 = \"step/metal/a\";\nSTEP_STEP2 = \"step/metal/a\";\nSTEP_GATE1 = \"step/metal/a\";\nSTEP_GATE2 = \"step/metal/a\";\nSTEP_GATE3 = \"step/metal/a\";\nSTEP_CEIL1_2 = \"step/metal/a\";\nSTEP_CEIL1_3 = \"step/metal/a\";\nSTEP_SLIME14 = \"step/metal/a\";\nSTEP_SLIME15 = \"step/metal/a\";\nSTEP_SLIME16 = \"step/metal/a\";\n\n// Metal B\nSTEP_F_VENTS = \"step/metal/b\";\nSTEP_FLAT22 = \"step/metal/b\";\nSTEP_FLAT23 = \"step/metal/b\";\nSTEP_CONS1_1 = \"step/metal/b\";\nSTEP_CONS1_5 = \"step/metal/b\";\nSTEP_CONS1_7 = \"step/metal/b\";\nSTEP_GATE4 = \"step/metal/b\";\nSTEP_FLAT4 = \"step/metal/b\";\n\n// Rock\nSTEP_FLAT1 = \"step/rock\";\nSTEP_FLAT5_4 = \"step/rock\";\nSTEP_MFLR8_2 = \"step/rock\";\nSTEP_FLAT1_1 = \"step/rock\";\nSTEP_FLAT1_2 = \"step/rock\";\nSTEP_FLAT1_3 = \"step/rock\";\nSTEP_FLAT5_7 = \"step/rock\";\nSTEP_FLAT5_8 = \"step/rock\";\nSTEP_GRNROCK = \"step/rock\";\nSTEP_RROCK01 = \"step/rock\";\nSTEP_RROCK02 = \"step/rock\";\nSTEP_RROCK03 = \"step/rock\";\nSTEP_RROCK04 = \"step/rock\";\nSTEP_RROCK05 = \"step/rock\";\nSTEP_RROCK06 = \"step/rock\";\nSTEP_RROCK07 = \"step/rock\";\nSTEP_RROCK08 = \"step/rock\";\nSTEP_RROCK09 = \"step/rock\";\nSTEP_RROCK10 = \"step/rock\";\nSTEP_RROCK11 = \"step/rock\";\nSTEP_RROCK12 = \"step/rock\";\nSTEP_RROCK13 = \"step/rock\";\nSTEP_RROCK14 = \"step/rock\";\nSTEP_RROCK15 = \"step/rock\";\nSTEP_RROCK20 = \"step/rock\";\nSTEP_SLIME09 = \"step/rock\";\nSTEP_SLIME10 = \"step/rock\";\nSTEP_SLIME11 = \"step/rock\";\nSTEP_SLIME12 = \"step/rock\";\n\n// Snow\nSTEP_FLAT5_6 = \"step/snow\";\n\n// Tile A\nSTEP_FLOOR3_3 = \"step/tile/a\";\nSTEP_FLAT20 = \"step/tile/a\";\nSTEP_CEIL3_3 = \"step/tile/a\";\nSTEP_CEIL3_4 = \"step/tile/a\";\nSTEP_FLAT3 = \"step/tile/a\";\n\n// Tile B\nSTEP_FLOOR7_2 = \"step/tile/b\";\nSTEP_DEM1_1 = \"step/tile/b\";\nSTEP_DEM1_2 = \"step/tile/b\";\nSTEP_DEM1_3 = \"step/tile/b\";\nSTEP_DEM1_4 = \"step/tile/b\";\nSTEP_DEM1_5 = \"step/tile/b\";\nSTEP_DEM1_6 = \"step/tile/b\";\n\n// Wood\nSTEP_CEIL1_1 = \"step/wood\";\nSTEP_FLAT5_1 = \"step/wood\";\nSTEP_FLAT5_2 = \"step/wood\";\n\n// Slime\nSTEP_NUKAGE1 = \"step/slime\";\nSTEP_NUKAGE2 = \"step/slime\";\nSTEP_NUKAGE3 = \"step/slime\";\nSTEP_BLOOD1 = \"step/slime\";\nSTEP_BLOOD2 = \"step/slime\";\nSTEP_BLOOD3 = \"step/slime\";\nSTEP_SLIME01 = \"step/slime\";\nSTEP_SLIME02 = \"step/slime\";\nSTEP_SLIME04 = \"step/slime\";\nSTEP_SLIME05 = \"step/slime\";\nSTEP_SLIME06 = \"step/slime\";\nSTEP_SLIME07 = \"step/slime\";\nSTEP_SLIME08 = \"step/slime\";\n\n// Slimy\nSTEP_SFLR6_1 = \"step/slimy\";\nSTEP_SFLR6_4 = \"step/slimy\";\nSTEP_SFLR7_1 = \"step/slimy\";\nSTEP_SFLR7_4 = \"step/slimy\";\n\n// Lava\nSTEP_LAVA1 = \"step/lava\";\nSTEP_LAVA2 = \"step/lava\";\nSTEP_LAVA3 = \"step/lava\";\nSTEP_LAVA4 = \"step/lava\";\n\n// None\nSTEP_F_SKY1 = \"\";"
      },
      {
        "source": "pk3",
        "name": "cvarinfo.txt",
        "contents": "// Footsteps V3\n// CVar Info\nuser float cl_step_volmul = 7.0;\nuser float cl_step_delaymul = 1.0;\nuser noarchive int strtoval = 0;\nuser noarchive float strtofloat = 0.0;"
      },
      {
        "source": "pk3",
        "name": "actors/monsters.txt",
        "contents": "actor SearchCounter : Inventory\n{\n\tInventory.MaxAmount 1000\n}\n\nactor Awareness : Inventory\n{\n\tInventory.MaxAmount 1000\n}\n\nactor Unaware : PowerProtection\n{\n\tDamageFactor \"Stun\", 3.5\n\tDamageFactor \"Fire\", 7.0\n\tDamageFactor \"RifleBullet\", 14.0\n\tPowerup.Duration 0x7FFFFFFF\n}\n\nactor SBulletPuff : BulletPuff replaces BulletPuff\n{\n\tDamageType \"RifleBullet\"\n}\n\nactor SnDmMonster\n{\n\tvar int user_senses;\n\tStates\n\t{\n\tSpawn:\n\t\tTNT1 A 0 NoDelay A_ChangeFlag(AMBUSH, false)\n\t\tTNT1 A 0 A_Jump(256, \"Idle\")\n\tIdle:\n\t\t\"####\" A 0 A_GiveInventory(\"Unaware\",1)\n\t\t\"####\" A 0 A_LookEx(LOF_NOSOUNDCHECK|LOF_NOSEESOUND|LOF_NOJUMP,0.0,0.0,0.0,135.0)\n\t\t\"####\" A 0 ACS_NamedExecuteAlways(\"CheckFOV\",0,user_senses)\n\t\t\"####\" A 10 A_LookEx(LOF_NOSIGHTCHECK|LOF_NOSEESOUND,0.0,0.0,8192.0,0.0,\"Heard\")\n\t\t\"####\" A 0 A_JumpIfInventory(\"Awareness\",100,\"See\")\n\t\t\"####\" A 0 A_JumpIfInventory(\"Awareness\",25,\"SearchStart\")\n\t\t\"####\" A 0 A_LookEx(LOF_NOSOUNDCHECK|LOF_NOSEESOUND|LOF_NOJUMP,0.0,0.0,0.0,135.0)\n\t\t\"####\" A 0 ACS_NamedExecuteAlways(\"CheckFOV\",0,user_senses)\n\t\t\"####\" B 10 A_LookEx(LOF_NOSIGHTCHECK|LOF_NOSEESOUND,0.0,0.0,8192.0,0.0,\"Heard\")\n\t\t\"####\" A 0 A_JumpIfInventory(\"Awareness\",100,\"See\")\n\t\t\"####\" A 0 A_JumpIfInventory(\"Awareness\",25,\"SearchStart\")\n\t\t//\"####\" A 0 A_ClearTarget\n\t\t\"####\" A 0 A_Jump(256, \"Idle\")\n\tSee:\n\t\t\"####\" A 0 A_TakeInventory(\"Unaware\",1)\n\t\t\"####\" A 0 A_JumpIfTargetInLOS(3)\n\t\t\"####\" A 0 A_TakeInventory(\"Awareness\", 3)\n\t\t\"####\" A 0 A_Jump(256, 2)\n\t\t\"####\" A 0 ACS_NamedExecuteAlways(\"CheckFOV\",0,user_senses)\n\t\t\"####\" A 0 A_JumpIfInventory(\"Awareness\", 50, \"See\")\n\t\t\"####\" A 0 A_Jump(256, \"LostTarget\")\n\tHeard:\n\t\t\"####\" A 0 ACS_NamedExecuteAlways(\"CheckFOV\",0,user_senses)\n\t\t\"####\" A 0 A_GiveInventory(\"Awareness\", 30)\n\t\t\"####\" A 0 A_JumpIfInventory(\"Awareness\",100,\"See\")\n\t\t\"####\" A 0 A_Jump(256, \"SearchStart\")\n\tLostTarget:\n\t\t\"####\" A 0 A_ClearTarget\n\t\t\"####\" A 0 A_Jump(256, \"Search\")\n\tGiveUp:\n\t\t\"####\" A 0 A_Pain\n\t\t\"####\" A 0 A_Jump(256, \"Idle\")\n\tSearchStart:\n\t\t\"####\" A 0 A_ActiveSound\n\t\t\"####\" A 0 A_FaceTarget\n\t\t\"####\" A 0 A_Recoil(-4.0)\n\t\t\"####\" A 0 A_Jump(256, \"Search\")\n\tSearch:\n\t\t\"####\" A 0 A_GiveInventory(\"Unaware\",1)\n\t\t\"####\" A 4 A_Wander\n\t\t\"####\" A 0 A_LookEx(LOF_NOSOUNDCHECK|LOF_NOSEESOUND|LOF_NOJUMP,0.0,0.0,0.0,135.0)\n\t\t\"####\" A 0 A_JumpIfTargetInLOS(2)\n\t\t\"####\" A 0 A_Jump(256, 2)\n\t\t\"####\" A 0 ACS_NamedExecuteAlways(\"CheckFOV\",0,user_senses)\n\t\t\"####\" A 0 A_LookEx(LOF_NOSIGHTCHECK|LOF_NOSEESOUND,0.0,0.0,8192.0,0.0,\"See\")\n\t\t\"####\" A 0 A_JumpIfInventory(\"Awareness\", 100, \"See\")\n\t\t\"####\" A 4 A_Wander\n\t\t\"####\" A 0 A_LookEx(LOF_NOSOUNDCHECK|LOF_NOSEESOUND|LOF_NOJUMP,0.0,0.0,0.0,135.0)\n\t\t\"####\" A 0 A_JumpIfTargetInLOS(2)\n\t\t\"####\" A 0 A_Jump(256, 2)\n\t\t\"####\" A 0 ACS_NamedExecuteAlways(\"CheckFOV\",0,user_senses)\n\t\t\"####\" A 0 A_LookEx(LOF_NOSIGHTCHECK|LOF_NOSEESOUND,0.0,0.0,8192.0,0.0,\"See\")\n\t\t\"####\" A 0 A_JumpIfInventory(\"Awareness\", 100, \"See\")\n\t\t\"####\" B 4 A_Wander\n\t\t\"####\" A 0 A_LookEx(LOF_NOSOUNDCHECK|LOF_NOSEESOUND|LOF_NOJUMP,0.0,0.0,0.0,135.0)\n\t\t\"####\" A 0 A_JumpIfTargetInLOS(2)\n\t\t\"####\" A 0 A_Jump(256, 2)\n\t\t\"####\" A 0 ACS_NamedExecuteAlways(\"CheckFOV\",0,user_senses)\n\t\t\"####\" A 0 A_LookEx(LOF_NOSIGHTCHECK|LOF_NOSEESOUND,0.0,0.0,8192.0,0.0,\"See\")\n\t\t\"####\" A 0 A_JumpIfInventory(\"Awareness\", 100, \"See\")\n\t\t\"####\" B 4 A_Wander\n\t\t\"####\" A 0 A_LookEx(LOF_NOSOUNDCHECK|LOF_NOSEESOUND|LOF_NOJUMP,0.0,0.0,0.0,135.0)\n\t\t\"####\" A 0 A_JumpIfTargetInLOS(2)\n\t\t\"####\" A 0 A_Jump(256, 2)\n\t\t\"####\" A 0 ACS_NamedExecuteAlways(\"CheckFOV\",0,user_senses)\n\t\t\"####\" A 0 A_LookEx(LOF_NOSIGHTCHECK|LOF_NOSEESOUND,0.0,0.0,8192.0,0.0,\"See\")\n\t\t\"####\" A 0 A_JumpIfInventory(\"Awareness\", 100, \"See\")\n\t\t\"####\" C 4 A_Wander\n\t\t\"####\" A 0 A_LookEx(LOF_NOSOUNDCHECK|LOF_NOSEESOUND|LOF_NOJUMP,0.0,0.0,0.0,135.0)\n\t\t\"####\" A 0 A_JumpIfTargetInLOS(2)\n\t\t\"####\" A 0 A_Jump(256, 2)\n\t\t\"####\" A 0 ACS_NamedExecuteAlways(\"CheckFOV\",0,user_senses)\n\t\t\"####\" A 0 A_LookEx(LOF_NOSIGHTCHECK|LOF_NOSEESOUND,0.0,0.0,8192.0,0.0,\"See\")\n\t\t\"####\" A 0 A_JumpIfInventory(\"Awareness\", 100, \"See\")\n\t\t\"####\" C 4 A_Wander\n\t\t\"####\" A 0 A_LookEx(LOF_NOSOUNDCHECK|LOF_NOSEESOUND|LOF_NOJUMP,0.0,0.0,0.0,135.0)\n\t\t\"####\" A 0 A_JumpIfTargetInLOS(2)\n\t\t\"####\" A 0 A_Jump(256, 2)\n\t\t\"####\" A 0 ACS_NamedExecuteAlways(\"CheckFOV\",0,user_senses)\n\t\t\"####\" A 0 A_LookEx(LOF_NOSIGHTCHECK|LOF_NOSEESOUND,0.0,0.0,8192.0,0.0,\"See\")\n\t\t\"####\" A 0 A_JumpIfInventory(\"Awareness\", 100, \"See\")\n\t\t\"####\" D 4 A_Wander\n\t\t\"####\" A 0 A_LookEx(LOF_NOSOUNDCHECK|LOF_NOSEESOUND|LOF_NOJUMP,0.0,0.0,0.0,135.0)\n\t\t\"####\" A 0 A_JumpIfTargetInLOS(2)\n\t\t\"####\" A 0 A_Jump(256, 2)\n\t\t\"####\" A 0 ACS_NamedExecuteAlways(\"CheckFOV\",0,user_senses)\n\t\t\"####\" A 0 A_LookEx(LOF_NOSIGHTCHECK|LOF_NOSEESOUND,0.0,0.0,8192.0,0.0,\"See\")\n\t\t\"####\" A 0 A_JumpIfInventory(\"Awareness\", 100, \"See\")\n\t\t\"####\" D 4 A_Wander\n\t\t\"####\" A 0 A_LookEx(LOF_NOSOUNDCHECK|LOF_NOSEESOUND|LOF_NOJUMP,0.0,0.0,0.0,135.0)\n\t\t\"####\" A 0 A_JumpIfTargetInLOS(3)\n\t\t\"####\" A 0 A_TakeInventory(\"Awareness\", 1)\n\t\t\"####\" A 0 A_Jump(256, 2)\n\t\t\"####\" A 0 ACS_NamedExecuteAlways(\"CheckFOV\",0,user_senses)\n\t\t\"####\" A 0 A_LookEx(LOF_NOSIGHTCHECK|LOF_NOSEESOUND,0.0,0.0,8192.0,0.0,\"See\")\n\t\t\"####\" A 0 A_JumpIfInventory(\"Awareness\", 100, \"See\")\n\t\t\"####\" A 0 A_ClearTarget\n\t\t\"####\" A 0 A_JumpIfInventory(\"Awareness\", 1, \"Search\")\n\t\t\"####\" A 0 A_Jump(256, \"GiveUp\")\n\t}\n}\n\nactor SnDmJitterhead : SnDmMonster\n{\n\tStates\n\t{\n\tIdle:\n\t\t\"####\" E 0 A_GiveInventory(\"Unaware\",1)\n\t\t\"####\" E 0 A_LookEx(LOF_NOSOUNDCHECK|LOF_NOSEESOUND|LOF_NOJUMP,0.0,0.0,0.0,135.0)\n\t\t\"####\" E 0 ACS_NamedExecuteAlways(\"CheckFOV\",0,user_senses)\n\t\t\"####\" E 1 A_LookEx(LOF_NOSIGHTCHECK|LOF_NOSEESOUND,0.0,0.0,8192.0,0.0,\"Heard\")\n\t\t\"####\" E 0 A_JumpIfInventory(\"Awareness\",100,\"See\")\n\t\t\"####\" E 0 A_JumpIfInventory(\"Awareness\",25,\"SearchStart\")\n\t\t\"####\" E 0 A_LookEx(LOF_NOSOUNDCHECK|LOF_NOSEESOUND|LOF_NOJUMP,0.0,0.0,0.0,135.0)\n\t\t\"####\" E 0 ACS_NamedExecuteAlways(\"CheckFOV\",0,user_senses)\n\t\t\"####\" E 1 A_LookEx(LOF_NOSIGHTCHECK|LOF_NOSEESOUND,0.0,0.0,8192.0,0.0,\"Heard\")\n\t\t\"####\" E 0 A_JumpIfInventory(\"Awareness\",100,\"See\")\n\t\t\"####\" E 0 A_JumpIfInventory(\"Awareness\",25,\"SearchStart\")\n\t\t\"####\" E 0 A_Jump(255,2)\n\t    \"####\" E 0 A_PlaySound(\"jitterhead/active\",CHAN_VOICE)\n\t\t//\"####\" E 0 A_ClearTarget\n\t\t\"####\" E 0 A_Jump(256, \"Idle\")\n\tSearch:\n\t\t\"####\" A 0 A_GiveInventory(\"Unaware\",1)\n\t\t\"####\" A 2 A_Wander\n\t\t\"####\" A 0 A_LookEx(LOF_NOSOUNDCHECK|LOF_NOSEESOUND|LOF_NOJUMP,0.0,0.0,0.0,135.0)\n\t\t\"####\" A 0 A_JumpIfTargetInLOS(2)\n\t\t\"####\" A 0 A_Jump(256, 2)\n\t\t\"####\" A 0 ACS_NamedExecuteAlways(\"CheckFOV\",0,user_senses)\n\t\t\"####\" A 0 A_LookEx(LOF_NOSIGHTCHECK|LOF_NOSEESOUND,0.0,0.0,8192.0,0.0,\"See\")\n\t\t\"####\" A 0 A_JumpIfInventory(\"Awareness\", 100, \"See\")\n\t\t\"####\" A 2 A_Wander\n\t\t\"####\" A 0 A_LookEx(LOF_NOSOUNDCHECK|LOF_NOSEESOUND|LOF_NOJUMP,0.0,0.0,0.0,135.0)\n\t\t\"####\" A 0 A_JumpIfTargetInLOS(2)\n\t\t\"####\" A 0 A_Jump(256, 2)\n\t\t\"####\" A 0 ACS_NamedExecuteAlways(\"CheckFOV\",0,user_senses)\n\t\t\"####\" A 0 A_LookEx(LOF_NOSIGHTCHECK|LOF_NOSEESOUND,0.0,0.0,8192.0,0.0,\"See\")\n\t\t\"####\" A 0 A_JumpIfInventory(\"Awareness\", 100, \"See\")\n\t\t\"####\" B 2 A_Wander\n\t\t\"####\" A 0 A_LookEx(LOF_NOSOUNDCHECK|LOF_NOSEESOUND|LOF_NOJUMP,0.0,0.0,0.0,135.0)\n\t\t\"####\" A 0 A_JumpIfTargetInLOS(2)\n\t\t\"####\" A 0 A_Jump(256, 2)\n\t\t\"####\" A 0 ACS_NamedExecuteAlways(\"CheckFOV\",0,user_senses)\n\t\t\"####\" A 0 A_LookEx(LOF_NOSIGHTCHECK|LOF_NOSEESOUND,0.0,0.0,8192.0,0.0,\"See\")\n\t\t\"####\" A 0 A_JumpIfInventory(\"Awareness\", 100, \"See\")\n\t\t\"####\" B 2 A_Wander\n\t\t\"####\" A 0 A_LookEx(LOF_NOSOUNDCHECK|LOF_NOSEESOUND|LOF_NOJUMP,0.0,0.0,0.0,135.0)\n\t\t\"####\" A 0 A_JumpIfTargetInLOS(2)\n\t\t\"####\" A 0 A_Jump(256, 2)\n\t\t\"####\" A 0 ACS_NamedExecuteAlways(\"CheckFOV\",0,user_senses)\n\t\t\"####\" A 0 A_LookEx(LOF_NOSIGHTCHECK|LOF_NOSEESOUND,0.0,0.0,8192.0,0.0,\"See\")\n\t\t\"####\" A 0 A_JumpIfInventory(\"Awareness\", 100, \"See\")\n\t\t\"####\" C 2 A_Wander\n\t\t\"####\" A 0 A_LookEx(LOF_NOSOUNDCHECK|LOF_NOSEESOUND|LOF_NOJUMP,0.0,0.0,0.0,135.0)\n\t\t\"####\" A 0 A_JumpIfTargetInLOS(2)\n\t\t\"####\" A 0 A_Jump(256, 2)\n\t\t\"####\" A 0 ACS_NamedExecuteAlways(\"CheckFOV\",0,user_senses)\n\t\t\"####\" A 0 A_LookEx(LOF_NOSIGHTCHECK|LOF_NOSEESOUND,0.0,0.0,8192.0,0.0,\"See\")\n\t\t\"####\" A 0 A_JumpIfInventory(\"Awareness\", 100, \"See\")\n\t\t\"####\" C 2 A_Wander\n\t\t\"####\" A 0 A_LookEx(LOF_NOSOUNDCHECK|LOF_NOSEESOUND|LOF_NOJUMP,0.0,0.0,0.0,135.0)\n\t\t\"####\" A 0 A_JumpIfTargetInLOS(2)\n\t\t\"####\" A 0 A_Jump(256, 2)\n\t\t\"####\" A 0 ACS_NamedExecuteAlways(\"CheckFOV\",0,user_senses)\n\t\t\"####\" A 0 A_LookEx(LOF_NOSIGHTCHECK|LOF_NOSEESOUND,0.0,0.0,8192.0,0.0,\"See\")\n\t\t\"####\" A 0 A_JumpIfInventory(\"Awareness\", 100, \"See\")\n\t\t\"####\" D 2 A_Wander\n\t\t\"####\" A 0 A_LookEx(LOF_NOSOUNDCHECK|LOF_NOSEESOUND|LOF_NOJUMP,0.0,0.0,0.0,135.0)\n\t\t\"####\" A 0 A_JumpIfTargetInLOS(2)\n\t\t\"####\" A 0 A_Jump(256, 2)\n\t\t\"####\" A 0 ACS_NamedExecuteAlways(\"CheckFOV\",0,user_senses)\n\t\t\"####\" A 0 A_LookEx(LOF_NOSIGHTCHECK|LOF_NOSEESOUND,0.0,0.0,8192.0,0.0,\"See\")\n\t\t\"####\" A 0 A_JumpIfInventory(\"Awareness\", 100, \"See\")\n\t\t\"####\" D 2 A_Wander\n\t\t\"####\" A 0 A_LookEx(LOF_NOSOUNDCHECK|LOF_NOSEESOUND|LOF_NOJUMP,0.0,0.0,0.0,135.0)\n\t\t\"####\" A 0 A_JumpIfTargetInLOS(3)\n\t\t\"####\" A 0 A_TakeInventory(\"Awareness\", random(2,4))\n\t\t\"####\" A 0 A_Jump(256, 2)\n\t\t\"####\" A 0 ACS_NamedExecuteAlways(\"CheckFOV\",0,user_senses)\n\t\t\"####\" A 0 A_LookEx(LOF_NOSIGHTCHECK|LOF_NOSEESOUND,0.0,0.0,8192.0,0.0,\"See\")\n\t\t\"####\" A 0 A_JumpIfInventory(\"Awareness\", 100, \"See\")\n\t\t\"####\" A 0 A_ClearTarget\n\t\t\"####\" A 0 A_JumpIfInventory(\"Awareness\", 1, \"Search\")\n\t\t\"####\" A 0 A_Jump(256, \"GiveUp\")\n\t}\n}\n\nactor Jitterhead : SnDmJitterhead 20633\n{\n\t//$Category CampMonster\n\tHealth 100\n\tPainChance 180\n\tPainChance \"Fire\", 32\n\tSpeed 10\n\tRadius 20\n\tHeight 80\n\tMass 400\n\tScale 0.75\n\tMonster\n\t+FLOORCLIP\n\t+DONTGIB\n\tObituary \" \"\n\tpainsound \"jitterhead/pain\"\n\tdeathsound \"jitterhead/pain\"\n\tactivesound \"jitterhead/active\"\n\tSpawnId 20633\n\tStates\n\t{\n\tIdle:\n\t\tJIT1 E 0 A_SetUserVar(\"user_senses\", 2)\n\t\tJIT2 E 2\n\t\tJIT3 E 2\n\t\tJIT1 E 2\n\t\tJIT4 E 2\n\t\tJIT3 E 2\n\t\tJIT1 E 2\n\t\tJIT2 E 2\n\t\tJIT4 E 2\n\t\tgoto Super::Idle\n\tSee:\n\t\tTNT1 A 0 A_TakeInventory(\"Unaware\",1)\n\t   JIT1 E 0 ACS_Execute(102,0,0,0,0)\n\t   JIT1 A 1 A_Chase\n\t   JIT2 A 1 A_Chase\n\t   JIT3 B 1 A_Chase\n\t   JIT4 B 1 A_Chase\n\t   JIT2 C 1 A_Chase\n\t   JIT3 C 1 A_Chase\n\t   JIT1 D 1 A_Chase\n\t   JIT4 D 1 A_Chase\n\t\tgoto Super::See\n\tSearch:\n\t\tJIT1 E 0 ACS_Execute(102,0,0,0,0)\n\t\tJIT1 A 0 A_GiveInventory(\"Unaware\",1)\n\t\tJIT1 A 2 A_Wander\n\t\tJIT1 A 0 A_LookEx(LOF_NOSOUNDCHECK|LOF_NOSEESOUND|LOF_NOJUMP,0.0,0.0,0.0,135.0)\n\t\tJIT1 A 0 A_JumpIfTargetInLOS(2)\n\t\tJIT1 A 0 A_Jump(256, 2)\n\t\tJIT1 A 0 ACS_NamedExecuteAlways(\"CheckFOV\",0,user_senses)\n\t\tJIT1 A 0 A_LookEx(LOF_NOSIGHTCHECK|LOF_NOSEESOUND,0.0,0.0,8192.0,0.0,\"See\")\n\t\tJIT1 A 0 A_JumpIfInventory(\"Awareness\", 100, \"See\")\n\t\tJIT2 A 2 A_Wander\n\t\tJIT1 A 0 A_LookEx(LOF_NOSOUNDCHECK|LOF_NOSEESOUND|LOF_NOJUMP,0.0,0.0,0.0,135.0)\n\t\tJIT1 A 0 A_JumpIfTargetInLOS(2)\n\t\tJIT1 A 0 A_Jump(256, 2)\n\t\tJIT1 A 0 ACS_NamedExecuteAlways(\"CheckFOV\",0,user_senses)\n\t\tJIT1 A 0 A_LookEx(LOF_NOSIGHTCHECK|LOF_NOSEESOUND,0.0,0.0,8192.0,0.0,\"See\")\n\t\tJIT1 A 0 A_JumpIfInventory(\"Awareness\", 100, \"See\")\n\t\tJIT3 B 2 A_Wander\n\t\tJIT1 A 0 A_LookEx(LOF_NOSOUNDCHECK|LOF_NOSEESOUND|LOF_NOJUMP,0.0,0.0,0.0,135.0)\n\t\tJIT1 A 0 A_JumpIfTargetInLOS(2)\n\t\tJIT1 A 0 A_Jump(256, 2)\n\t\tJIT1 A 0 ACS_NamedExecuteAlways(\"CheckFOV\",0,user_senses)\n\t\tJIT1 A 0 A_LookEx(LOF_NOSIGHTCHECK|LOF_NOSEESOUND,0.0,0.0,8192.0,0.0,\"See\")\n\t\tJIT1 A 0 A_JumpIfInventory(\"Awareness\", 100, \"See\")\n\t\tJIT4 B 2 A_Wander\n\t\tJIT1 A 0 A_LookEx(LOF_NOSOUNDCHECK|LOF_NOSEESOUND|LOF_NOJUMP,0.0,0.0,0.0,135.0)\n\t\tJIT1 A 0 A_JumpIfTargetInLOS(2)\n\t\tJIT1 A 0 A_Jump(256, 2)\n\t\tJIT1 A 0 ACS_NamedExecuteAlways(\"CheckFOV\",0,user_senses)\n\t\tJIT1 A 0 A_LookEx(LOF_NOSIGHTCHECK|LOF_NOSEESOUND,0.0,0.0,8192.0,0.0,\"See\")\n\t\tJIT1 A 0 A_JumpIfInventory(\"Awareness\", 100, \"See\")\n\t\tJIT1 C 2 A_Wander\n\t\tJIT1 A 0 A_LookEx(LOF_NOSOUNDCHECK|LOF_NOSEESOUND|LOF_NOJUMP,0.0,0.0,0.0,135.0)\n\t\tJIT1 A 0 A_JumpIfTargetInLOS(2)\n\t\tJIT1 A 0 A_Jump(256, 2)\n\t\tJIT1 A 0 ACS_NamedExecuteAlways(\"CheckFOV\",0,user_senses)\n\t\tJIT1 A 0 A_LookEx(LOF_NOSIGHTCHECK|LOF_NOSEESOUND,0.0,0.0,8192.0,0.0,\"See\")\n\t\tJIT1 A 0 A_JumpIfInventory(\"Awareness\", 100, \"See\")\n\t\tJIT2 C 2 A_Wander\n\t\tJIT1 A 0 A_LookEx(LOF_NOSOUNDCHECK|LOF_NOSEESOUND|LOF_NOJUMP,0.0,0.0,0.0,135.0)\n\t\tJIT1 A 0 A_JumpIfTargetInLOS(2)\n\t\tJIT1 A 0 A_Jump(256, 2)\n\t\tJIT1 A 0 ACS_NamedExecuteAlways(\"CheckFOV\",0,user_senses)\n\t\tJIT1 A 0 A_LookEx(LOF_NOSIGHTCHECK|LOF_NOSEESOUND,0.0,0.0,8192.0,0.0,\"See\")\n\t\tJIT1 A 0 A_JumpIfInventory(\"Awareness\", 100, \"See\")\n\t\tJIT3 D 2 A_Wander\n\t\tJIT1 A 0 A_LookEx(LOF_NOSOUNDCHECK|LOF_NOSEESOUND|LOF_NOJUMP,0.0,0.0,0.0,135.0)\n\t\tJIT1 A 0 A_JumpIfTargetInLOS(2)\n\t\tJIT1 A 0 A_Jump(256, 2)\n\t\tJIT1 A 0 ACS_NamedExecuteAlways(\"CheckFOV\",0,user_senses)\n\t\tJIT1 A 0 A_LookEx(LOF_NOSIGHTCHECK|LOF_NOSEESOUND,0.0,0.0,8192.0,0.0,\"See\")\n\t\tJIT1 A 0 A_JumpIfInventory(\"Awareness\", 100, \"See\")\n\t\tJIT4 D 2 A_Wander\n\t\tJIT1 A 0 A_LookEx(LOF_NOSOUNDCHECK|LOF_NOSEESOUND|LOF_NOJUMP,0.0,0.0,0.0,135.0)\n\t\tJIT1 A 0 A_JumpIfTargetInLOS(3)\n\t\tJIT1 A 0 A_TakeInventory(\"Awareness\", random(2,4))\n\t\tJIT1 A 0 A_Jump(256, 2)\n\t\tJIT1 A 0 ACS_NamedExecuteAlways(\"CheckFOV\",0,user_senses)\n\t\tJIT1 A 0 A_LookEx(LOF_NOSIGHTCHECK|LOF_NOSEESOUND,0.0,0.0,8192.0,0.0,\"See\")\n\t\tJIT1 A 0 A_JumpIfInventory(\"Awareness\", 100, \"See\")\n\t\tJIT1 A 0 A_ClearTarget\n\t\tJIT1 A 0 A_JumpIfInventory(\"Awareness\", 1, \"Search\")\n\t\tJIT1 A 0 A_Jump(256, \"GiveUp\")\n\t\tgoto Search\n\tMelee:\n\t   JIT3 E 1 A_FaceTarget\n\t   JIT4 E 1 A_FaceTarget\n\t   JIT1 E 1 A_FaceTarget\n       JIT4 E 1 A_CustomMeleeAttack(random[MummyAttack](3,8)*2, \"jitterhead/attack\", \"jitterhead/attack\")\n\t   JIT3 E 1 A_FaceTarget\n\t   JIT1 E 1 A_FaceTarget\n\t   JIT4 E 1 A_FaceTarget\n\t\tTNT1 A 0 A_RadiusGive(\"Awareness\", 640.0, RGF_MONSTERS, 25)\n\t\tGoto See\n\tPain:\n\t\tJIT1 E 2 A_Pain\n\t\tJIT3 E 2\n\t\tJIT2 E 2\n\t\tJIT1 E 2\n\t\tJIT4 E 2\n\t\tTNT1 A 0 A_RadiusGive(\"Awareness\", 256.0, RGF_MONSTERS, 10)\n\t\tGoto See\n  Death.Stun:\n    JITD A 3 A_Scream\n\tJITD D 3 A_RadiusGive(\"Awareness\", 512.0, RGF_MONSTERS, 25)\n\tJITD C 3\n\tJITD B 3\n\tJITD F 3\n\tJITD G 3\n\tJITD H 3\n\tJITD E 3\n\tGoto Stunned\n  Stunned:\n\tJITD I 200\n\tJITD I 200 A_Jump(128,2)\n\tJITD I 200\n\tJITD I 200\n\tTNT1 A 0 A_CheckProximity(\"Stunned\",\"playerpawn\",32,1,CPXF_ANCESTOR)\n\tTNT1 A 0 A_CheckProximity(\"Stunned\",\"Jitterhead\",32,1,CPXF_ANCESTOR)\n\tTNT1 A 0 A_CheckProximity(\"Stunned\",\"Pigman\",32,1,CPXF_ANCESTOR)\n\tGoto Revive\n  Revive:\n\tJITD I -1 Thing_Raise(0)\n\tStop\n  Death:\n    JITS A 4 A_Scream\n\tJITS B 3 A_RadiusGive(\"Awareness\", 512.0, RGF_MONSTERS, 25)\n\tJITS C 3\n\tJITS D 3\n\tJITS E 3 A_NoBlocking\n    JITS F -1\n    Stop\n   Death.Fire:\n\tTNT1 A 0 A_SpawnItemEx(\"BigBurn\")\n\tTNT1 A 0 A_RadiusGive(\"Awareness\", 512.0, RGF_MONSTERS, 25)\n\tTNT1 AAA 0 A_SpawnItemEx (\"BarrelFlames\", random (0, 40), random (0, 40), 0, 0, 0, 0, random (0, 360))\n\tTNT1 A 0 A_Noblocking\n\tStop\n   Raise:\n\tJITD HGFEDCBA 3\n\tJITD A 0 A_TakeInventory(\"Awareness\", 100)\n    Goto Spawn\n\t}\n}\n\nactor Jitterhead_Wander : Jitterhead 20639\n{\n\tSpawnId 20639\n\tStates\n\t{\n\tIdle:\n\t\tJIT1 A 0 A_SetUserVar(\"user_senses\", 2)\n\t\tJIT2 E 2\n\t\tJIT3 E 2\n\t\tJIT1 E 2\n\t\tJIT4 E 2\n\t\tJIT3 E 2\n\t\tJIT1 E 2\n\t\tJIT2 E 2\n\t\tJIT4 E 2\n\t\tTNT1 A 0 A_Jump(128,9)\n\t\tJIT1 A 2 A_Wander\n\t\tJIT3 A 2 A_Wander\n\t\tJIT2 B 2\n\t\tJIT4 B 2\n\t\tJIT1 C 2 A_Wander\n\t\tJIT3 C 2 A_Wander\n\t\tJIT2 D 2\n\t\tJIT4 D 2\n\t\tTNT1 A 0\n\t\tgoto Super::Idle\n\t}\n}\n\nactor SnDmPigman : SnDmMonster\n{\n\tStates\n\t{\n\tIdle:\n\t\t\"####\" E 0 A_GiveInventory(\"Unaware\",1)\n\t\t\"####\" E 0 A_LookEx(LOF_NOSOUNDCHECK|LOF_NOSEESOUND|LOF_NOJUMP,0.0,0.0,0.0,135.0)\n\t\t\"####\" E 0 ACS_NamedExecuteAlways(\"CheckFOV\",0,user_senses)\n\t\t\"####\" E 1 A_LookEx(LOF_NOSIGHTCHECK|LOF_NOSEESOUND,0.0,0.0,8192.0,0.0,\"Heard\")\n\t\t\"####\" E 0 A_JumpIfInventory(\"Awareness\",100,\"See\")\n\t\t\"####\" E 0 A_JumpIfInventory(\"Awareness\",25,\"SearchStart\")\n\t\t\"####\" E 0 A_LookEx(LOF_NOSOUNDCHECK|LOF_NOSEESOUND|LOF_NOJUMP,0.0,0.0,0.0,135.0)\n\t\t\"####\" E 0 ACS_NamedExecuteAlways(\"CheckFOV\",0,user_senses)\n\t\t\"####\" E 1 A_LookEx(LOF_NOSIGHTCHECK|LOF_NOSEESOUND,0.0,0.0,8192.0,0.0,\"Heard\")\n\t\t\"####\" E 0 A_JumpIfInventory(\"Awareness\",100,\"See\")\n\t\t\"####\" E 0 A_JumpIfInventory(\"Awareness\",25,\"SearchStart\")\n\t\t\"####\" E 0 A_Jump(255,2)\n\t    \"####\" E 0 A_PlaySound(\"pigman/active\",CHAN_VOICE)\n\t\t//\"####\" E 0 A_ClearTarget\n\t\t\"####\" E 0 A_Jump(256, \"Idle\")\n\tSearch:\n\t\t\"####\" A 0 A_GiveInventory(\"Unaware\",1)\n\t\t\"####\" A 2 A_Wander\n\t\t\"####\" A 0 A_LookEx(LOF_NOSOUNDCHECK|LOF_NOSEESOUND|LOF_NOJUMP,0.0,0.0,0.0,135.0)\n\t\t\"####\" A 0 A_JumpIfTargetInLOS(2)\n\t\t\"####\" A 0 A_Jump(256, 2)\n\t\t\"####\" A 0 ACS_NamedExecuteAlways(\"CheckFOV\",0,user_senses)\n\t\t\"####\" A 0 A_LookEx(LOF_NOSIGHTCHECK|LOF_NOSEESOUND,0.0,0.0,8192.0,0.0,\"See\")\n\t\t\"####\" A 0 A_JumpIfInventory(\"Awareness\", 100, \"See\")\n\t\t\"####\" A 2 A_Wander\n\t\t\"####\" A 0 A_LookEx(LOF_NOSOUNDCHECK|LOF_NOSEESOUND|LOF_NOJUMP,0.0,0.0,0.0,135.0)\n\t\t\"####\" A 0 A_JumpIfTargetInLOS(2)\n\t\t\"####\" A 0 A_Jump(256, 2)\n\t\t\"####\" A 0 ACS_NamedExecuteAlways(\"CheckFOV\",0,user_senses)\n\t\t\"####\" A 0 A_LookEx(LOF_NOSIGHTCHECK|LOF_NOSEESOUND,0.0,0.0,8192.0,0.0,\"See\")\n\t\t\"####\" A 0 A_JumpIfInventory(\"Awareness\", 100, \"See\")\n\t\t\"####\" B 2 A_Wander\n\t\t\"####\" A 0 A_LookEx(LOF_NOSOUNDCHECK|LOF_NOSEESOUND|LOF_NOJUMP,0.0,0.0,0.0,135.0)\n\t\t\"####\" A 0 A_JumpIfTargetInLOS(2)\n\t\t\"####\" A 0 A_Jump(256, 2)\n\t\t\"####\" A 0 ACS_NamedExecuteAlways(\"CheckFOV\",0,user_senses)\n\t\t\"####\" A 0 A_LookEx(LOF_NOSIGHTCHECK|LOF_NOSEESOUND,0.0,0.0,8192.0,0.0,\"See\")\n\t\t\"####\" A 0 A_JumpIfInventory(\"Awareness\", 100, \"See\")\n\t\t\"####\" B 2 A_Wander\n\t\t\"####\" A 0 A_LookEx(LOF_NOSOUNDCHECK|LOF_NOSEESOUND|LOF_NOJUMP,0.0,0.0,0.0,135.0)\n\t\t\"####\" A 0 A_JumpIfTargetInLOS(2)\n\t\t\"####\" A 0 A_Jump(256, 2)\n\t\t\"####\" A 0 ACS_NamedExecuteAlways(\"CheckFOV\",0,user_senses)\n\t\t\"####\" A 0 A_LookEx(LOF_NOSIGHTCHECK|LOF_NOSEESOUND,0.0,0.0,8192.0,0.0,\"See\")\n\t\t\"####\" A 0 A_JumpIfInventory(\"Awareness\", 100, \"See\")\n\t\t\"####\" C 2 A_Wander\n\t\t\"####\" A 0 A_LookEx(LOF_NOSOUNDCHECK|LOF_NOSEESOUND|LOF_NOJUMP,0.0,0.0,0.0,135.0)\n\t\t\"####\" A 0 A_JumpIfTargetInLOS(2)\n\t\t\"####\" A 0 A_Jump(256, 2)\n\t\t\"####\" A 0 ACS_NamedExecuteAlways(\"CheckFOV\",0,user_senses)\n\t\t\"####\" A 0 A_LookEx(LOF_NOSIGHTCHECK|LOF_NOSEESOUND,0.0,0.0,8192.0,0.0,\"See\")\n\t\t\"####\" A 0 A_JumpIfInventory(\"Awareness\", 100, \"See\")\n\t\t\"####\" C 2 A_Wander\n\t\t\"####\" A 0 A_LookEx(LOF_NOSOUNDCHECK|LOF_NOSEESOUND|LOF_NOJUMP,0.0,0.0,0.0,135.0)\n\t\t\"####\" A 0 A_JumpIfTargetInLOS(2)\n\t\t\"####\" A 0 A_Jump(256, 2)\n\t\t\"####\" A 0 ACS_NamedExecuteAlways(\"CheckFOV\",0,user_senses)\n\t\t\"####\" A 0 A_LookEx(LOF_NOSIGHTCHECK|LOF_NOSEESOUND,0.0,0.0,8192.0,0.0,\"See\")\n\t\t\"####\" A 0 A_JumpIfInventory(\"Awareness\", 100, \"See\")\n\t\t\"####\" D 2 A_Wander\n\t\t\"####\" A 0 A_LookEx(LOF_NOSOUNDCHECK|LOF_NOSEESOUND|LOF_NOJUMP,0.0,0.0,0.0,135.0)\n\t\t\"####\" A 0 A_JumpIfTargetInLOS(2)\n\t\t\"####\" A 0 A_Jump(256, 2)\n\t\t\"####\" A 0 ACS_NamedExecuteAlways(\"CheckFOV\",0,user_senses)\n\t\t\"####\" A 0 A_LookEx(LOF_NOSIGHTCHECK|LOF_NOSEESOUND,0.0,0.0,8192.0,0.0,\"See\")\n\t\t\"####\" A 0 A_JumpIfInventory(\"Awareness\", 100, \"See\")\n\t\t\"####\" D 2 A_Wander\n\t\t\"####\" A 0 A_LookEx(LOF_NOSOUNDCHECK|LOF_NOSEESOUND|LOF_NOJUMP,0.0,0.0,0.0,135.0)\n\t\t\"####\" A 0 A_JumpIfTargetInLOS(3)\n\t\t\"####\" A 0 A_TakeInventory(\"Awareness\", random(2,4))\n\t\t\"####\" A 0 A_Jump(256, 2)\n\t\t\"####\" A 0 ACS_NamedExecuteAlways(\"CheckFOV\",0,user_senses)\n\t\t\"####\" A 0 A_LookEx(LOF_NOSIGHTCHECK|LOF_NOSEESOUND,0.0,0.0,8192.0,0.0,\"See\")\n\t\t\"####\" A 0 A_JumpIfInventory(\"Awareness\", 100, \"See\")\n\t\t\"####\" A 0 A_ClearTarget\n\t\t\"####\" A 0 A_JumpIfInventory(\"Awareness\", 1, \"Search\")\n\t\t\"####\" A 0 A_Jump(256, \"GiveUp\")\n\t}\n}\n\nactor Pigman : SnDmPigman 20833\n{\n\t//$Category CampMonster\n\tHealth 100\n\tPainChance 120\n\tPainChance \"Fire\", 64\n\tSpeed 10\n\tRadius 20\n\tHeight 80\n\tMass 400\n\tScale 0.5\n\tMonster\n\t+FLOORCLIP\n\t+DONTGIB\n\tObituary \" \"\n\tpainsound \"pigman/pain\"\n\tdeathsound \"pigman/pain\"\n\tactivesound \"pigman/active\"\n\tseesound \"pigman/sight\"\n\tSpawnId 20833\n\tStates\n\t{\n\tIdle:\n\t\tPIGM A 0 A_SetUserVar(\"user_senses\", 2)\n\t\tgoto Super::Idle\n\tSee:\n\t\tTNT1 A 0 A_TakeInventory(\"Unaware\",1)\n\t\tPIGM A 0 ACS_Execute(102,0,0,0,0)\n\t\tPIGM AABBCCDD 2 A_Chase\n\t\tgoto Super::See\n\tSearch:\n\t\tPIGM A 0 ACS_Execute(102,0,0,0,0)\n\t\tgoto Super::Search\n\tMissile:\n\t\tTNT1 A 0 A_Jump(192,2)\n\t\tPIGM E 0 A_PlaySound(\"pigman/laugh\",CHAN_VOICE)\n\t\tPIGM E 12 A_FaceTarget\n\t\tPIGM E 0 A_PlaySound(\"weapons/riflefire\",CHAN_WEAPON)\n\t\tPIGM F 8 Bright A_CustomMissile(\"pigbullet\", 64, 0, 0,0)\n\t\tPIGM G 8\n\t\tTNT1 A 0 A_RadiusGive(\"Awareness\", 640.0, RGF_MONSTERS, 25)\n\t\tGoto See\n\tPain:\n\t\tPIGM H 0 A_Jump(128,2)\n\t\tPIGM H 6 A_Pain\n\t\tPIGM H 6\n\t\tPIGM H 6\n\t\tTNT1 A 0 A_RadiusGive(\"Awareness\", 256.0, RGF_MONSTERS, 10)\n\t\tGoto See\n\tDeath:\n\t\tTNT1 A 0 A_SpawnItemEX (\"magrifle\",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)\n\t\tPIGD A 8 A_Scream\n\t\tPIGD B 8\n\t\tTNT1 A 0 A_RadiusGive(\"Awareness\", 512.0, RGF_MONSTERS, 25)\n\t\tTNT1 A 0 A_Jump(208,5)\n\t\tPIGD A 4\n\t\tPIGD B 6\n\t\tPIGD A 6\n\t\tPIGD B 8\n\t\tPIGD C 8\n\t\tPIGD D 8 A_NoBlocking\n\t\tPIGD D -1\n\t\tStop\n  Death.Stun:\n    PIGS A 12 A_Scream\n\tPIGS B 8 A_RadiusGive(\"Awareness\", 512.0, RGF_MONSTERS, 25)\n\tPIGS C 8\n\tGoto Stunned\n  Stunned:\n\tPIGS C 200\n\tPIGS C 200 A_Jump(128,2)\n\tPIGS C 200\n\tPIGS C 200\n\tTNT1 A 0 A_CheckProximity(\"Stunned\",\"playerpawn\",32,1,CPXF_ANCESTOR)\n\tTNT1 A 0 A_CheckProximity(\"Stunned\",\"Jitterhead\",32,1,CPXF_ANCESTOR)\n\tTNT1 A 0 A_CheckProximity(\"Stunned\",\"Pigman\",32,1,CPXF_ANCESTOR)\n\tGoto Revive\n  Revive:\n\tPIGS C -1 Thing_Raise(0)\n\tStop\n   Death.Fire:\n\tTNT1 A 0 A_SpawnItemEx(\"BigBurn\")\n\tTNT1 A 0 A_RadiusGive(\"Awareness\", 512.0, RGF_MONSTERS, 25)\n\tTNT1 AAA 0 A_SpawnItemEx (\"BarrelFlames\", random (0, 40), random (0, 40), 0, 0, 0, 0, random (0, 360))\n\tTNT1 A 0 A_Noblocking\n\tStop\n   Raise:\n\tPIGS CBA 5\n    Goto Spawn\n\t}\n}\n\nactor Pigman_Wander : Pigman 20834\n{\n\tSpawnId 20834\n\tStates\n\t{\n\tIdle:\n\t\tPIGM A 0 A_SetUserVar(\"user_senses\", 2)\n\t\tPIGM AAAA 12\n\t\tTNT1 A 0 A_Jump(128,5)\n\t\tPIGM AA 3 A_Wander\n\t\tPIGM BB 3 A_Wander\n\t\tPIGM CC 3 A_Wander\n\t\tPIGM DD 3 A_Wander\n\t\tTNT1 A 0\n\t\tgoto Super::Idle\n\t}\n}\n\nACTOR BigBurn\n{\n  Height 56\n  Radius 20\n  Scale 1\n  States\n  {\n  Spawn:\n    BRN2 A 1 Bright\n    Goto Death\n  Death:\n\tBRN2 A 10 Bright\n\tBRN2 B 10 Bright\n\tBRN2 CDEFGHIJK 6 Bright\n\tBRN2 K -1\n\tStop\n  }\n}\n\nACTOR PigBullet : FastProjectile\n{\n  Radius 6\n  Height 8\n  Speed 30\n  Damage 8\n  Projectile\n  +RANDOMIZE\n  +BLOODSPLATTER\n  +HARMFRIENDS\n  RenderStyle Add\n  Alpha 1\n  Scale 0.5\n  States\n  {\n  Spawn:\n    PBUL A 2 Bright\n    Loop\n  Death:\n    PUFF ABC 3 Bright\n    Stop\n  }\n}"
      },
      {
        "source": "pk3",
        "name": "actors/player.txt",
        "contents": "actor IsHuman : Inventory\n{\n\tInventory.MaxAmount 1\n}\n\nactor SneakyPuff : BulletPuff\n{\n\t+FORCEPAIN\n\t+NOEXTREMEDEATH\n\tDamageType \"Bullet\"\n\tStates\n\t{\n\tSpawn:\n\tMelee:\n\tCrash:\n\t\tPUFF A 2 Bright A_RadiusGive(\"Awareness\", 256.0, RGF_MONSTERS, 25)\n\t\tPUFF B 3\n\t\tPUFF C 4\n\t\tPUFF D 5\n\t\tStop\n\t}\n}\n\nactor SniperPuff : SneakyPuff\n{\n\tDamageType \"Sniped\"\n}\n\nactor StealthProp : CustomInventory\n{\n\t+INVENTORY.INVBAR\n\t+INVENTORY.UNDROPPABLE\n\t+INVENTORY.ALWAYSPICKUP\n\t+INVENTORY.KEEPDEPLETED\n\tTag \"Stealth Indicator\"\n\tInventory.MaxAmount 500\n\tInventory.Icon \"STEAL\"\n\tStates\n\t{\n\t\tUse:\n\t\t\tTNT1 A 0\n\t\t\tFail\n\t}\n}\n\nACTOR OlliPlayer : PlayerPawn\n{\n  Player.DisplayName \"Ollie\"\n  Player.StartItem \"Kick\", 1\n  Player.StartItem \"Washer\", 1\n  Player.StartItem \"StepAlert\", 1\n  Player.StartItem \"IsHuman\", 1\n  Player.Weaponslot 1, \"Kick\"\n  Player.Weaponslot 2, \"Washer\"\n  Player.Weaponslot 3, \"MagnumRifle\"\n  Player.Weaponslot 4, \"BoobyTrap\"\n  Player.Weaponslot 5, \"DeathTrap\"\n  Player.SoundClass \"Olliplayer\"\n  Player.Crouchsprite \"RAPP\"\n  Player.ForwardMove 0.58, 0.62\n  Player.SideMove 0.575, 0.625\n  Player.ViewBob 0.3\n  Gravity 0.9\n  Player.JumpZ 7\n\n  States\n\t{\n\tSpawn:\n\t\tRAPP A -1 A_AlertMonsters(CallACS(\"SneakNoise\"))\n\t\tLoop\n\tSee:\n\t\tRAPP ABCD 4 A_AlertMonsters(CallACS(\"SneakNoise\"))\n\t\tLoop\n\tPain:\n\t\tRAPP B 3 A_Pain\n\t\tGoto Spawn\n\tMelee:\n\t\tRAPP AB 6 A_AlertMonsters(CallACS(\"SneakNoise\"))\n\t\tGoto Spawn\n\tMissile:\n\t\tRAPP AB 6 A_AlertMonsters(CallACS(\"SneakNoise\"))\n\t\tGoto Spawn\n\tDeath:\n\t\tTNT1 A -1\n\t\tStop\n\t}\n}\n\nactor RandomChGReplacer : RandomSpawner replaces Chaingun\n{\n\tDropItem 9mmBox, 256, 6\n\tDropItem SniperBox, 256, 3\n\tDropItem SMP5, 256, 1\n}\n\nactor RandomSmallAmmo : RandomSpawner replaces Shell\n{\n\tDropItem 9mmAmmo, 128, 5\n\tDropItem SniperAmmo, 128, 3\n}\n\nactor RandomBigAmmo : RandomSpawner replaces ShellBox\n{\n\tDropItem 9mmBox, 256, 5\n\tDropItem SniperBox, 256, 3\n}\n\nactor RandomHealth : RandomSpawner replaces SuperShotgun\n{\n\tDropItem Medikit, 256, 5\n\tDropItem Stimpack, 256, 3\n}\n\nactor RandomCells : RandomSpawner replaces PlasmaRifle\n{\n\tDropItem CellPack, 256, 5\n\tDropItem Cell, 256, 3\n}\n\nactor RandomPower : RandomSpawner replaces BFG9000\n{\n\tDropItem SoulSphere, 256, 3\n\tDropItem SneakSphere, 256, 2\n\tDropItem MegaSphere, 256, 1\n}\n\nactor SmokeDischarge\n{\n\t+NOGRAVITY\n\t+NOINTERACTION\n\t+FORCEXYBILLBOARD\n\tSpeed 6\n\tScale 0.1\n\tRenderStyle Translucent\n\tAlpha 0.3\n\tStates\n\t{\n\tSpawn:\n\t\tTNT1 A 2\n\t\tPOOF A 1\n\t\tPOOF A 1 A_SetScale(scalex + 0.1)\n\t\tPOOF B 1\n\t\tPOOF B 1 A_SetScale(scalex + 0.1)\n\t\tPOOF C 1\n\t\tPOOF D 1 A_SetScale(scalex + 0.2)\n\t\tPOOF C 1 A_FadeOut(0.1)\n\t\tPOOF D 1 A_SetScale(scalex + 0.2)\n\t\tPOOF C 1 A_FadeOut(0.1)\n\t\tPOOF D 1 A_SetScale(scalex + 0.2)\n\t\tPOOF C 1\n\t\tStop\n\t}\n}\n\nactor KevlarItem : CustomInventory replaces GreenArmor\n{\n\tRadius 20\n\tHeight 16\n\tInventory.PickupMessage \"Picked up a kevlar vest.\"\n\tInventory.MaxAmount 1\n\tInventory.Icon \"KEVLB0\"\n\t+INVENTORY.INVBAR\n\tStates\n\t{\n\tSpawn:\n\t\tKEVL A -1\n\t\tStop\n\tUse:\n\t\tTNT1 A 0 A_TakeInventory(\"StealthSuitEffect\", 1)\n\t\tTNT1 A 0 A_GiveInventory(\"Kevlar\", 1)\n\t\tStop\n\t}\n}\n\nactor StealthSuitEffect : Inventory\n{\n\tInventory.MaxAmount 1\n}\n\nactor StealthSuitItem : CustomInventory replaces BlueArmor\n{\n\tRadius 20\n\tHeight 16\n\tInventory.PickupMessage \"Picked up a stealth suit.\"\n\tInventory.MaxAmount 1\n\tInventory.Icon \"TACTB0\"\n\t+INVENTORY.INVBAR\n\tStates\n\t{\n\tSpawn:\n\t\tTACT A -1\n\t\tStop\n\tUse:\n\t\tTNT1 A 0 A_GiveInventory(\"StealthSuitEffect\", 1)\n\t\tTNT1 A 0 A_GiveInventory(\"StealthSuit\", 1)\n\t\tStop\n\t}\n}\n\nactor Kevlar : BasicArmorPickup\n{\n\tRadius 20\n\tHeight 16\n\tInventory.PickupMessage \"Picked up a kevlar vest.\"\n\tInventory.Icon \"KEVLA0\"\n\tArmor.SavePercent 33.335\n\tArmor.SaveAmount 100\n\tDamageFactor \"Bullet\", 0.335\n\tStates\n\t{\n\tSpawn:\n\t\tKEVL A -1\n\t\tStop\n\t}\n}\n\nactor StealthSuit : BasicArmorPickup\n{\n\tRadius 20\n\tHeight 16\n\tInventory.PickupMessage \"Picked up a stealth suit.\"\n\tInventory.Icon \"TACTA0\"\n\tArmor.SavePercent 5\n\tArmor.SaveAmount 50\n\tDamageFactor \"Bullet\", 0.6667\n\tStates\n\t{\n\tSpawn:\n\t\tTACT A -1\n\t\tStop\n\t}\n}\n\nactor StepAlert : Inventory\n{\n\tInventory.MaxAmount 512\n}\n\nactor NightGoggles : CustomInventory replaces infrared\n{\n\tTag \"Infrared Goggles\"\n\t+INVENTORY.INVBAR\n\t+INVENTORY.KEEPDEPLETED\n\t+INVENTORY.UNDROPPABLE\n\tInventory.MaxAmount 999\n\tInventory.Icon \"GOGLA0\"\n\tStates\n\t{\n\tSpawn:\n\t\tGOGL A 8\n\t\tGOGL A 8 Bright\n\t\tLoop\n\tUse:\n\t\tTNT1 A 0 A_JumpIfInventory(\"PowerGoggles\",1,\"Deactivate\")\n\t\tTNT1 A 0 A_JumpIfInventory(\"Cell\",1,1)\n\t\tFail\n\t\tTNT1 A 0 A_PlaySound(\"sneak/nighton\")\n\t\tTNT1 A 0 A_GiveInventory(\"InfraredVision\",1)\n\t\tFail\n\tDeactivate:\n\t\tTNT1 A 0 A_PlaySound(\"sneak/nightoff\")\n\t\tTNT1 A 0 A_TakeInventory(\"PowerGoggles\",1)\n\t\tFail\n\t}\n}\n\nactor InfraredVision : PowerupGiver\n{\n\t+INVENTORY.AUTOACTIVATE\n\t+INVENTORY.ALWAYSPICKUP\n\tInventory.MaxAmount 0\n\tPowerup.Type \"Goggles\"\n}\n\nactor PowerGoggles : PowerLightAmp\n{\n\tPowerup.Colormap 0.0,0.0,0.0,0.45,0.55,0.45\n\tPowerup.Duration 0x7FFFFFFF\n}\n\nactor WhisperPower : PowerupGiver\n{\n\t+INVENTORY.ALWAYSPICKUP\n\t+INVENTORY.AUTOACTIVATE\n\tInventory.MaxAmount 0\n\tPowerup.Type \"WhisperCooldown\"\n}\n\nactor PowerWhisperCooldown : Powerup\n{\n\tPowerup.Duration 18\n}\n\nactor SFist : Fist replaces Fist\n{\n\tWeapon.SelectionOrder 2200\n\tWeapon.Kickback 1\n\t+FORCEPAIN\n\t+WEAPON.NOALERT\n\tWeapon.BobStyle Smooth\n\tWeapon.BobSpeed 1.5\n\tWeapon.BobRangeX 1.5\n\tStates\n\t{\n\tDeselect:\n\t\tPUNG A 1 A_Lower\n\t\tPUNG A 0 A_Lower\n\t\tLoop\n\tSelect:\n\t\tPUNG A 1 A_Raise\n\t\tPUNG A 0 A_Raise\n\t\tLoop\n\tFire:\n\t\tPUNG A 1 Offset(32,48)\n\t\tPUNG A 1 Offset(48,64)\n\t\tPUNG A 1 Offset(56,72)\n\tHold:\n\t\tPUNG B 1 Offset(-96,56)\n\t\tPUNG B 1 Offset(-64,48) A_PlaySound(\"sneak/knife\", CHAN_WEAPON, 0.7)\n\t\tPUNG C 1 Offset(-43,43)\n\t\tPUNG C 1 Offset(-28,39)\n\t\tPUNG C 1 Offset(-19,37)\n\t\tPUNG D 1 Offset(-13,35)\n\t\tPUNG D 0 A_JumpIfInventory(\"PowerStrength\", 1, 3)\n\t\tPUNG D 1 Offset(0,32) A_CustomPunch(Random(1,11) + 9, true, CPF_PULLIN, \"FistPuff\", 44.0)\n\t\tPUNG D 0 A_Jump(256,2)\n\t\tPUNG D 1 Offset(0,32) A_CustomPunch(Random(1,21) + 19, true, CPF_PULLIN, \"FistPuff\", 44.0)\n\t\tPUNG D 1 Offset(1,33)\n\t\tPUNG D 1 Offset(2,35) A_GiveInventory(\"StealthProp\", 20)\n\t\tPUNG D 1 Offset(4,39)\n\t\tPUNG D 1 Offset(6,47)\n\t\tPUNG D 1 Offset(9,63)\n\t\tPUNG D 1 Offset(12,95)\n\t\tTNT1 A 3\n\t\tPUNG A 1 Offset(128,72) A_ReFire\n\t\tPUNG A 1 Offset(64,45)\n\t\tPUNG A 1 Offset(32,36)\n\t\tPUNG A 1 Offset(16,33)\n\t\tGoto Ready\n\tAltFire:\n\t\tTNT1 A 0 A_JumpIfInventory(\"PowerWhisperCooldown\",1,\"Ready\")\n\t\tPUNG A 14 A_PlaySound(\"*whisper\")\n\t\tTNT1 A 0 A_AlertMonsters(384)\n\t\tTNT1 A 0 A_GiveInventory(\"WhisperPower\", 1)\n\t\tGoto Ready\n\t}\n}\n\nactor FistPuff : BulletPuff\n{\n\t+NOEXTREMEDEATH\n\t+PUFFONACTORS\n\tSeeSound \"*fist\"\n\tAttackSound \"*fist\"\n\tRenderStyle translucent\n\tAlpha 0.3\n\tStates\n\t{\n\tSpawn:\n\t\tPUFF BCD 2\n\t\tStop\n\t}\n}\n\nactor Knife : Weapon replaces Chainsaw\n{\n  Game Doom\n  Weapon.SelectionOrder 3600\n  Weapon.Kickback 1\n  +FORCEPAIN\n  +WEAPON.MELEEWEAPON\n  +WEAPON.NOALERT\n  Weapon.BobStyle Smooth\n  Weapon.BobSpeed 1.5\n  Weapon.BobRangeX 1.5\n  Obituary \"%o was stabbed by %k.\"\n  Inventory.PickupMessage \"You found a tactical knife.\"\n  States\n  {\n  Spawn:\n    KNFE A -1\n    loop\n  Ready:\n    KNFG A 1 A_WeaponReady\n    loop\n  Deselect:\n    KNFG A 1 A_Lower\n\tKNFG A 0 A_Lower\n    loop\n  Select:\n    KNFG A 1 A_Raise\n\tKNFG A 0 A_Raise\n    loop\n  Fire:\n\tKNFG A 1\n    KNFG B 2 A_PlaySound(\"sneak/knife\", CHAN_WEAPON)\n\tKNFG B 0 A_JumpIfInventory(\"PowerStrength\", 1, 3)\n\tKNFG B 1 Offset(-10,32) A_CustomPunch(Random(1,11) + 24, true, 0, \"KnifePuff\", 54.0)\n\tKNFG B 0 A_Jump(256,2)\n\tKNFG B 1 Offset(-10,32) A_CustomPunch(Random(1,21) + 49, true, CPF_PULLIN, \"KnifePuff\", 54.0)\n    KNFG B 1 Offset(-20,32) A_GiveInventory(\"StealthProp\", 25)\n    KNFG C 1 Offset(10,32)\n\tKNFG C 1 Offset(-20,40)\n    KNFG D 2 A_ReFire(\"Fire2\")\n\tKNFG D 4 Offset(-10,32)\n\tKNFG E 2\n\tKNFG E 2 Offset(10,32)\n\tKNFG F 2\n    goto Ready\n  Fire2:\n\tKNFG D 1\n\tKNFG D 2 Offset(-10,32)\n\tKNFG E 1\n\tKNFG G 2 A_PlaySound(\"sneak/knife\", CHAN_WEAPON, 0.85)\n\tKNFG G 0 A_JumpIfInventory(\"PowerStrength\", 1, 3)\n\tKNFG G 1 Offset(-4,28) A_CustomPunch(Random(1,11) + 24, true, 0, \"KnifePuff\")\n\tKNFG G 0 A_Jump(256,2)\n\tKNFG G 1 Offset(-4,28) A_CustomPunch(Random(1,21) + 49, true, CPF_PULLIN, \"KnifePuff\")\n\tKNFG G 1 Offset(-10,20) A_GiveInventory(\"StealthProp\", 15)\n\tKNFG G 1 Offset(-22,4)\n\tKNFG G 1 Offset(-28,-28)\n\tKNFG G 2 Offset(-26,-32)\n\tKNFG G 4 Offset(-13,0)\n\tKNFG G 2 Offset(-6,16)\n\tKNFG C 1 Offset(64,96)\n\tKNFG A 3 Offset(-16,40)\n\tgoto Ready\n  AltFire:\n\tTNT1 A 0 A_JumpIfInventory(\"PowerWhisperCooldown\",1,\"Ready\")\n\tKNFG A 14 A_PlaySound(\"*whisper\")\n\tTNT1 A 0 A_AlertMonsters(384)\n\tTNT1 A 0 A_GiveInventory(\"WhisperPower\", 1)\n\tGoto Ready\n  }\n}\n\nACTOR KnifePuff\n{\n  +FORCEPAIN\n  +NOBLOCKMAP\n  +NOGRAVITY\n  +NOEXTREMEDEATH\n  +PUFFONACTORS\n  DamageType \"Knifed\"\n  RenderStyle Translucent\n  Alpha 0.6\n  SeeSound \"sneak/stab\"\n  AttackSound \"sneak/clang\"\n  VSpeed 1\n  States\n  {\n  Spawn:\n    PUFF BCD 2\n    Stop\n  }\n}\n/*\nactor SPlasmaRifle : PlasmaRifle replaces PlasmaRifle\n{\n\tStates\n\t{\n\tFire:\n\t\tPLSG A 0 A_GiveInventory(\"StealthProp\", 300)\n\t\tPLSG A 3 A_FirePlasma\n\t\tPLSG B 20 A_ReFire\n\t\tGoto Ready\n\tAltFire:\n\t\tTNT1 A 0 A_JumpIfInventory(\"PowerWhisperCooldown\",1,\"Ready\")\n\t\tPLSG A 14 A_PlaySound(\"*whisper\")\n\t\tTNT1 A 0 A_AlertMonsters(384)\n\t\tTNT1 A 0 A_GiveInventory(\"WhisperPower\", 1)\n\t\tGoto Ready\n\t}\n}\n\nactor SBFG9K : BFG9000 replaces BFG9000\n{\n\tStates\n\t{\n\tFire:\n\t\tBFGG A 0 A_GiveInventory(\"StealthProp\", 300)\n\t\tBFGG A 20 A_BFGSound\n\t\tBFGG A 0 A_GiveInventory(\"StealthProp\", 300)\n\t\tBFGG A 10 A_GunFlash\n\t\tBFGG A 0 A_GiveInventory(\"StealthProp\", 300)\n\t\tBFGG A 10 A_FireBFG\n\t\tBFGG B 20 A_ReFire\n\t\tGoto Ready\n\tAltFire:\n\t\tTNT1 A 0 A_JumpIfInventory(\"PowerWhisperCooldown\",1,\"Ready\")\n\t\tBFGG A 14 A_PlaySound(\"*whisper\")\n\t\tTNT1 A 0 A_AlertMonsters(384)\n\t\tTNT1 A 0 A_GiveInventory(\"WhisperPower\", 1)\n\t\tGoto Ready\n\t}\n}\n*/\nactor PowerStealthBonus : Powerup\n{\n\tPowerup.Duration -60\n}\n\nactor SneakSphere : PowerupGiver replaces BlurSphere\n{\n\t+COUNTITEM\n\t+VISIBILITYPULSE\n\t+INVENTORY.AUTOACTIVATE\n\t+INVENTORY.ALWAYSPICKUP\n\t+INVENTORY.BIGPOWERUP\n\tInventory.MaxAmount 0\n\tPowerup.Type \"StealthBonus\"\n\tRenderStyle Translucent\n\tInventory.PickupMessage \"Stealth Bonus!\"\n\tStates\n\t{\n\tSpawn:\n\t\tPINS ABCDCB 4 Bright\n\t\tLoop\n\t}\n}"
      },
      {
        "source": "pk3",
        "name": "actors/weapons.txt",
        "contents": "//------------------------------------------------------\n//KICK\nactor Kick : Weapon\n{\n  Weapon.SelectionOrder 2600\n  Weapon.Kickback 50\n  +WEAPON.WIMPY_WEAPON\n  +WEAPON.MELEEWEAPON\n  +NOEXTREMEDEATH\n  +NOALERT\n  +inventory.undroppable\n  Obituary \"%o was curb stomped.\"\n  Weapon.SlotNumber 1\n  States\n  {\n  Spawn:\n    BOOT A -1\n    loop\n  Ready:\n    MK0F A 1 A_WeaponReady\n    loop\n  Deselect:\n    MK0F A 1 A_Lower\n    loop\n  Select:\n    MK0F A 1 A_Raise\n    loop\n  Fire:\n    MK4F A 2\n    MK4F B 2\n    MK4F C 1\n    MK4F D 4 A_CustomPunch (1,0,0,\"KickPuff\",72)\n    MK4F E 3\n    MK4F F 3\n    MK4F G 3\n    MK4F H 2\n    goto Ready\n  AltFire:\n\tTNT1 A 0 A_JumpIfInventory(\"PowerWhisperCooldown\",1,\"Ready\")\n\tMK0F A 14 A_PlaySound(\"*whisper\")\n\tTNT1 A 0 A_AlertMonsters(384)\n\tTNT1 A 0 A_GiveInventory(\"WhisperPower\", 1)\n\tGoto Ready\n  }\n}\n\nACTOR JabPuff\n{\n  +NOBLOCKMAP\n  +NOGRAVITY\n  +NOEXTREMEDEATH\n  +PUFFONACTORS\n  +NODECAL\n  RenderStyle Translucent\n  Alpha 0.6\n  SeeSound \"KickHitThing\"\n  AttackSound \"KickHitWall\"\n  ActiveSound \"KickSwing\"\n  Damagetype Stun\n  VSpeed 1\n  States\n  {\n  Spawn:\n    PUFF ABCD 4\n    Stop\n  }\n}\n\nACTOR KickPuff\n{\n  +NOBLOCKMAP\n  +NOGRAVITY\n  +NOEXTREMEDEATH\n  +PUFFONACTORS\n  +NODECAL\n  RenderStyle Translucent\n  Alpha 0.6\n  SeeSound \"KickHitHard\"\n  AttackSound \"KickHitWall\"\n  ActiveSound \"KickSwing\"\n  Damagetype Stun\n  VSpeed 1\n  States\n  {\n  Spawn:\n    PUFF ABCD 4\n    Stop\n  }\n}\n\n//------------------------------------------------------\n// WASHER\nactor Washer : Weapon\n{\n\tObituary \"%o was pelted by %k's washer.\"\n\tInventory.PickupMessage \"A metal washer.\"\n\t+WEAPON.NOAUTOFIRE\n\t+WEAPON.NOALERT\n\t-WEAPON.WIMPY_WEAPON\n\tWeapon.BobStyle InverseSmooth\n\tWeapon.BobSpeed 2.333333\n\tWeapon.BobRangeX 0.2\n\tWeapon.BobRangeY 0.8\n\tStates\n\t{\n\tReady:\n\t\tPEBL A 1 A_WeaponReady\n\t\tLoop\n\tDeselect:\n\t\tPEBL A 1 A_Lower\n\t\tPEBL A 0 A_Lower\n\t\tLoop\n\tSelect:\n\t\tPEBL A 1 A_Raise\n\t\tPEBL A 0 A_Raise\n\t\tLoop\n\tFire:\n\t\tPEBL B 6\n\t\tPEBL C 4 A_GiveInventory(\"StealthProp\", 20)\n\t\tPEBL C 1 Offset(0,34) A_FireBullets(0.5, 0.5, -1, 0, \"WasherPuff\", FBF_NOFLASH)\n\t\tTNT1 A 0 A_Playsound(\"weapons/WasherHit\")\n\t\tPEBL A 0 A_SetAngle(angle + frandom(-1.0,1.0))\n\t\tPEBL A 0 A_SetPitch(pitch - 0.5)\n\t\tPEBL C 0 A_AlertMonsters(384)\n\t\tPEBL D 4\n\t\tPEBL EFGH 3\n\t\tGoto Ready\n\tAltFire:\n\t\tTNT1 A 0 A_JumpIfInventory(\"PowerWhisperCooldown\",1,\"Ready\")\n\t\tPEBL A 14 A_PlaySound(\"*whisper\")\n\t\tTNT1 A 0 A_AlertMonsters(384)\n\t\tTNT1 A 0 A_GiveInventory(\"WhisperPower\", 1)\n\t\tGoto Ready\n\tSpawn:\n\t\tPEBL A -1\n\t\tStop\n\t}\n}\n\nACTOR WasherPuff : SneakyPuff\n{\n  Damagetype Stun\n  States\n  {\n\tSpawn:\n\tTNT1 A 0 A_Playsound(\"weapons/WasherHit\")\n  }\n}\n\n//------------------------------------------------------\n//MAGNUM RIFLE\nactor MagRifle : Weapon 29999\n{\n  //$Category CampWeapons\n  Weapon.SelectionOrder 1\n  Weapon.AmmoUse 1\n  Weapon.AmmoGive 5\n  Weapon.AmmoType \"RifleAmmo\"\n  Weapon.slotNumber 2\n  Weapon.Kickback 50\n  decal BulletChip\n  +WEAPON.NOALERT\n  Inventory.PickupMessage \"A hard-hitting magnum rifle.\"\n  AttackSound \"weapons/riflefire\"\n  Obituary \"%o was John Wayned.\"\nStates\n  {\n  Ready:\n\tRIFL A 1 A_WeaponReady\n    Loop\n  Deselect:\n\tRIFL A 1 A_Lower\n    Loop\n  Select:\n\tRIFL A 1 A_Raise\n    Loop\n  Fire:\n\tRIFL A 0 A_FireBullets (2.6, 0, 1, 120, \"SneakyPuff\")\n    RIFL A 0 A_GiveInventory(\"StealthProp\", 20)\n\tRIFL A 0 A_AlertMonsters(1024)\n\tRIFL B 4 Bright\n\tRIFL A 2\n\tRIFL CDE 4\n\tRIFL DC 2\n    RIFL A 2 A_ReFire\n    Goto Ready\n  AltFire:\n\tTNT1 A 0 A_JumpIfInventory(\"PowerWhisperCooldown\",1,\"Ready\")\n\tRIFL A 14 A_PlaySound(\"*whisper\")\n\tTNT1 A 0 A_AlertMonsters(384)\n\tTNT1 A 0 A_GiveInventory(\"WhisperPower\", 1)\n\tGoto Ready\n  Spawn:\n    RIFI A -1\n    Stop\n  }\n}\n\nActor rifleammo : ammo 29998\n{\n\t//$Category CampAmmo\n\tInventory.Amount 5\n\tInventory.MaxAmount 50\n\tAmmo.BackpackAmount 8\n\tAmmo.BackpackMaxAmount 100\n\tInventory.Icon \"RBULA0\"\n\tInventory.PickupMessage \"Magnum slugs.\"\n\tScale 0.5\n    States\n    {\n     Spawn:\n     RBUL A -1\n     Stop\n    }\n}\n\nActor singlebullet : rifleammo 29997\n{\n\t//$Category CampAmmo\n\tInventory.Amount 1\n\tAmmo.BackpackAmount 8\n\tInventory.PickupMessage \"A single bullet.\"\n    States\n    {\n     Spawn:\n     RBU1 A -1\n     Stop\n    }\n}\n\n//------------------------------------------------------\n// STUN TRAP\nactor BoobyTrap : Weapon 12765\n{\n\t//$Category CampWeapons\n\tObituary \"%o fell for %k's booby trap.\"\n\tInventory.PickupMessage \"Booby Trap.\"\n\tweapon.Ammotype \"trapammo\"\n\tweapon.AmmoGive 1\n\tweapon.AmmoUse 1\n\t+WEAPON.NOAUTOFIRE\n\t+WEAPON.NOALERT\n\t-WEAPON.WIMPY_WEAPON\n\tWeapon.BobStyle InverseSmooth\n\tWeapon.BobSpeed 2.333333\n\tWeapon.BobRangeX 0.2\n\tWeapon.BobRangeY 0.8\n\tStates\n\t{\n\tReady:\n\t\tBTRW A 1 A_WeaponReady\n\t\tLoop\n\tDeselect:\n\t\tBTRW A 1 A_Lower\n\t\tBTRW A 0 A_Lower\n\t\tLoop\n\tSelect:\n\t\tBTRW A 1 A_Raise\n\t\tBTRW A 0 A_Raise\n\t\tLoop\n\tFire:\n\t\tPEBL B 6\n\t\tPEBL C 4 A_GiveInventory(\"StealthProp\", 20)\n\t\tPEBL C 1 A_FireCustomMissile(\"boobytrapset\",0,1,0,2)\n\t\tPEBL A 0 A_SetAngle(angle + frandom(-1.0,1.0))\n\t\tPEBL A 0 A_SetPitch(pitch - 0.5)\n\t\tPEBL D 4 A_CheckReload\n\t\tPEBL EFGH 3\n\t\tGoto Ready\n\tSpawn:\n\t\tTRPN A -1\n\t\tStop\n\t}\n}\n\nActor trapammo : ammo\n{\n\tInventory.Amount 1\n\tInventory.MaxAmount 3\n\tAmmo.BackpackAmount 1\n\tAmmo.BackpackMaxAmount 3\n\tInventory.Icon \"TRPNA0\"\n    States\n    {\n     Spawn:\n     TRPN A -1\n     Stop\n    }\n}\n\nACTOR TrapBooby : CustomInventory\n{\n   //$Category CampWeapons\n   Inventory.Amount 2\n   Inventory.MaxAmount 6\n   Inventory.PickupSound \"SMINGET\"\n   Inventory.PickupMessage \"Assembled a Booby Trap.\"\n   Inventory.Icon TRPNA0\n   Tag \"Booby Trap\"\n   +INVBAR\n   +FLOORCLIP\n   +COUNTITEM\n   States\n   {\n   Spawn:\n      TRPN A 2\n      Loop\n   Use:\n      TNT1 A 0\n      TRPN A 0 A_ThrowGrenade(\"BoobyTrapSet\",2,7,3,0)\n      Stop\n   }\n}\n\nACTOR BoobyTrapSet\n{\n\n   Radius 10\n   Height 5\n   Speed 22\n   +MISSILE\n   +DROPOFF\n   DONTHURTSHOOTER\n   +THRUACTORS\n   States\n   {\n   Spawn:\n      TNT1 A 0\n      TRPN AAAA 2 Bright\n\t  TRPN AAAA 2\n\t  Loop\n   Death:\n      TNT1 A 0\n      TNT1 A 0 A_SpawnItemEx(\"BoobyTrapActive\",0,0,0,0,0,0,0,32)\n      Stop\n   }\n}\n\nACTOR BoobyTrapActive\n{\n   //$Category CampWeapons\n   Radius 10\n   Height 5\n   Mass 1000000\n   Health 20\n   Damage 5\n   DamageType \"Stun\"\n   Speed 0\n   +NOBLOOD\n   -SHOOTABLE\n   +BRIGHT\n   +MISSILE\n   +MOVEWITHSECTOR\n   +NOCLIP\n   +PAINLESS\n   var int user_smine; //Related to visual pulse ring spawn.\n   States\n   {\n   Spawn:\n      TNT1 A 0\n      TRPN A 0 A_Gravity\n\t  TNT1 A 0 A_PlaySound(\"SMNSET1\")\n\t  TRPN AAAAAAAAAA 2\n\t  TNT1 A 0 A_PlaySound(\"SMNSET2\")\n      TRPN AA 1 A_CheckProximity(\"Detonate\",\"SnDmMonster\",64,1,CPXF_ANCESTOR)\n\t  TNT1 A 0 A_ChangeFlag(NOCLIP,0)\n      GoTo Spawn+14\n   Detonate:\n      TNT1 A 0 A_Die\n   Death:\n      TNT1 A 0\n      TNT1 A 0 A_ChangeFlag(THRUACTORS,1)\n\t  TRPN AAA 2\n      TNT1 A 0 ThrustThingZ(0,45,0,0)\n\t  TNT1 A 0 A_PlaySound(\"pdprjxp\")\n\t  TRPN AAA 1\n      TNT1 A 0 A_AlertMonsters(384)\n\t  TNT1 A 0 A_PlaySound(\"podbigxp\")\n\t  TNT1 A 0 A_Explode(105,96,0,1,185) //Source of damage dealt.\n\t  TNT1 A 0 A_SpawnItemEx(\"BTrapExplosion\",0,0,5,0,0,0,0,32)\n\t  TNT1 A 0 A_SetUserVar(\"user_smine\",0) //Related to visual pulse ring spawn.\n   Pulse:\n\t  TNT1 A 0 A_CustomMissile(\"BTrapPulseVisual\",0,0,user_smine,CMF_AIMDIRECTION)\n      TNT1 A 0 A_SetUserVar(\"user_smine\",user_smine+1)\n      TNT1 A 0 A_JumpIf(user_smine==360,\"EndPulse\")\n\t  Loop\n   EndPulse:\n\t  TNT1 A 0\n      Stop\n   }\n}\n\nACTOR BTrapPulseVisual //Aesthetic. Deals no damage.\n{\n   Speed 8\n   Radius 8\n   Height 5\n   RenderStyle Add\n   Alpha 0.4\n   Scale 0.3\n   PROJECTILE\n   +BRIGHT\n   +THRUACTORS\n   +MOVEWITHSECTOR\n   States\n   {\n   Spawn:\n      RGNA AAAAA 1\n      TNT1 A 0 A_SetTranslucent(0.1)\n      RGNA AA 3 A_SetScale(0.2)\n\t  RGNA A 1 A_SetScale(0.1)\n   Death:\n      TNT1 A 0\n      Stop\n   }\n}\n\nACTOR BTrapExplosion  //Deals no damage.\n{\n   Projectile\n   Radius 6\n   Height 6\n   Speed 0\n   RenderStyle Add\n   Alpha 0.2\n   Scale 1\n   +NOCLIP\n   +THRUACTORS\n   +BRIGHT\n   +MOVEWITHSECTOR\n   States\n   {\n   Spawn:\n      TNT1 A 0\n      Goto Death\n   Death:\n      PLXP A 1\n      TNT1 A 0 A_SetScale(2.1)\n      PLXP A 1\n      TNT1 A 0 A_SetScale(3.3)\n      PLXP A 1\n      TNT1 A 0 A_SetScale(4.5)\n      TNT1 A 0 A_SetTranslucent(0.1)\n      PLXP A 1\n      Stop\n   }\n}\n\n//------------------------------------------------------\n// DEATH TRAP\nactor DeathTrap : Weapon 12766\n{\n\t//$Category CampWeapons\n\tObituary \"%o fell for %k's death trap.\"\n\tInventory.PickupMessage \"Death Trap.\"\n\tWeapon.Ammotype \"deathtrapammo\"\n\tWeapon.AmmoGive 2\n\tWeapon.AmmoUse 1\n\t+WEAPON.NOAUTOFIRE\n\t+WEAPON.NOALERT\n\t-WEAPON.WIMPY_WEAPON\n\tWeapon.BobStyle InverseSmooth\n\tWeapon.BobSpeed 2.333333\n\tWeapon.BobRangeX 0.2\n\tWeapon.BobRangeY 0.8\n\tStates\n\t{\n\tReady:\n\t\tDTRW A 1 A_WeaponReady\n\t\tLoop\n\tDeselect:\n\t\tDTRW A 1 A_Lower\n\t\tDTRW A 0 A_Lower\n\t\tLoop\n\tSelect:\n\t\tDTRW A 1 A_Raise\n\t\tDTRW A 0 A_Raise\n\t\tLoop\n\tFire:\n\t\tPEBL B 6\n\t\tPEBL C 4 A_GiveInventory(\"StealthProp\", 20)\n\t\tPEBL C 1 A_FireCustomMissile(\"deathtrapset\",0,1,0,2)\n\t\tPEBL A 0 A_SetAngle(angle + frandom(-1.0,1.0))\n\t\tPEBL A 0 A_SetPitch(pitch - 0.5)\n\t\tPEBL D 4 A_CheckReload\n\t\tPEBL EFGH 3\n\t\tGoto Ready\n\tSpawn:\n\t\tTRPD A -1\n\t\tStop\n\t}\n}\n\nActor deathtrapammo : ammo\n{\n\tInventory.Amount 1\n\tInventory.MaxAmount 1\n\tAmmo.BackpackAmount 1\n\tAmmo.BackpackMaxAmount 1\n\tInventory.Icon \"TRPDA0\"\n    States\n    {\n     Spawn:\n     TRPD A -1\n     Stop\n    }\n}\n\nACTOR TrapDeath : CustomInventory\n{\n   //$Category CampWeapons\n   Inventory.Amount 2\n   Inventory.MaxAmount 6\n   Inventory.PickupSound \"SMINGET\"\n   Inventory.PickupMessage \"Assembled a Death Trap.\"\n   Inventory.Icon TRPDA0\n   Tag \"Death Trap\"\n   +INVBAR\n   +FLOORCLIP\n   +COUNTITEM\n   States\n   {\n   Spawn:\n      TRPD A 2\n      Loop\n   Use:\n      TNT1 A 0\n      TRPD A 0 A_ThrowGrenade(\"DeathTrapSet\",2,7,3,0)\n      Stop\n   }\n}\n\nACTOR DeathTrapSet\n{\n   Radius 10\n   Height 5\n   Speed 22\n   +MISSILE\n   +DROPOFF\n   DONTHURTSHOOTER\n   +THRUACTORS\n   States\n   {\n   Spawn:\n      TNT1 A 0\n      TRPD AAAA 2 Bright\n\t  TRPD AAAA 2\n\t  Loop\n   Death:\n      TNT1 A 0\n      TNT1 A 0 A_SpawnItemEx(\"DeathTrapActive\",0,0,0,0,0,0,0,32)\n      Stop\n   }\n}\n\nACTOR DeathTrapActive\n{\n   Radius 10\n   Height 5\n   Mass 1000000\n   Health 20\n   Damage 5\n   DamageType \"Fire\"\n   Speed 0\n   +NOBLOOD\n   -SHOOTABLE\n   +BRIGHT\n   +MISSILE\n   +MOVEWITHSECTOR\n   +NOCLIP\n   +PAINLESS\n   var int user_smine; //Related to visual pulse ring spawn.\n   States\n   {\n   Spawn:\n      TNT1 A 0\n      TRPD A 0 A_Gravity\n\t  TNT1 A 0 A_PlaySound(\"SMNSET1\")\n\t  TRPD AAAAAAAAAA 2\n\t  TNT1 A 0 A_PlaySound(\"SMNSET2\")\n      TRPD AA 1 A_CheckProximity(\"Detonate\",\"SnDmMonster\",64,1,CPXF_ANCESTOR)\n\t  TNT1 A 0 A_ChangeFlag(NOCLIP,0)\n      GoTo Spawn+14\n   Detonate:\n      TNT1 A 0 A_Die\n   Death:\n      TNT1 A 0\n      TNT1 A 0 A_ChangeFlag(THRUACTORS,1)\n\t  TRPD AAA 2\n      TNT1 A 0 ThrustThingZ(0,45,0,0)\n\t  TNT1 A 0 A_PlaySound(\"MINLNCH\")\n\t  TRPD AAA 1\n      TNT1 A 0 A_AlertMonsters(512)\n\t  TNT1 A 0 A_PlaySound(\"SPRNMNXP\")\n\t  TNT1 A 0 A_Explode(105,96,0,1,185) //Source of damage dealt.\n\t  TNT1 A 0 A_SpawnItemEx(\"DTrapExplosion\",0,0,5,0,0,0,0,32)\n\t  TNT1 A 0 A_SetUserVar(\"user_smine\",0) //Related to visual pulse ring spawn.\n   Pulse:\n\t  TNT1 A 0 A_CustomMissile(\"DTrapPulseVisual\",0,0,user_smine,CMF_AIMDIRECTION)\n      TNT1 A 0 A_SetUserVar(\"user_smine\",user_smine+1)\n      TNT1 A 0 A_JumpIf(user_smine==360,\"EndPulse\")\n\t  Loop\n   EndPulse:\n\t  TNT1 A 0\n      Stop\n   }\n}\n\nACTOR DTrapPulseVisual //Aesthetic. Deals no damage.\n{\n   Speed 8\n   Radius 8\n   Height 5\n   RenderStyle Add\n   Alpha 0.4\n   Scale 0.3\n   PROJECTILE\n   +BRIGHT\n   +THRUACTORS\n   +MOVEWITHSECTOR\n   States\n   {\n   Spawn:\n      DGNA AAAAA 1\n      TNT1 A 0 A_SetTranslucent(0.1)\n      DGNA AA 3 A_SetScale(0.2)\n\t  DGNA A 1 A_SetScale(0.1)\n   Death:\n      TNT1 A 0\n      Stop\n   }\n}\n\nACTOR DTrapExplosion  //Deals no damage.\n{\n   Projectile\n   Radius 6\n   Height 6\n   Speed 0\n   RenderStyle Add\n   Alpha 0.2\n   Scale 1\n   +NOCLIP\n   +THRUACTORS\n   +BRIGHT\n   +MOVEWITHSECTOR\n   States\n   {\n   Spawn:\n      TNT1 A 0\n      Goto Death\n   Death:\n      DLXP A 1\n      TNT1 A 0 A_SetScale(2.1)\n      DLXP A 1\n      TNT1 A 0 A_SetScale(3.3)\n      DLXP A 1\n      TNT1 A 0 A_SetScale(4.5)\n      TNT1 A 0 A_SetTranslucent(0.1)\n      DLXP A 1\n      Stop\n   }\n}"
      },
      {
        "source": "pk3",
        "name": "actors/furniture.txt",
        "contents": "//HUMANS\nactor ArtemisDane 20410\n{\n\t//$Category CampHumans\n\tHealth 10\n\tSpeed 0\n\tRadius 20\n\tHeight 80\n\tMass 400\n\tScale 0.65\n\t+FLOORCLIP\n\t+DONTGIB\n\tObituary \" \"\n\tSpawnId 20410\n\tStates\n\t{\n\tSpawn:\n\t\tADAN A 1\n\t\tLoop\n\t}\n}\n\nactor ArtemisTransf 20420\n{\n\t//$Category CampHumans\n\tHealth 10\n\tSpeed 0\n\tRadius 20\n\tHeight 80\n\tMass 400\n\tScale 0.65\n\t+FLOORCLIP\n\t+DONTGIB\n\tObituary \" \"\n\tSpawnId 20420\n\tStates\n\t{\n\tSpawn:\n\t\tADAN CD 2\n\t\tLoop\n\t}\n}\n\nactor Counselor 20411\n{\n\t//$Category CampHumans\n\tHealth 10\n\tSpeed 0\n\tRadius 20\n\tHeight 80\n\tMass 400\n\tScale 0.65\n\t+FLOORCLIP\n\t+DONTGIB\n\tObituary \" \"\n\tSpawnId 20411\n\tStates\n\t{\n\tSpawn:\n\t\tCOUN A 1\n\t\tLoop\n\t}\n}\n\nactor FemGuard 20412\n{\n\t//$Category CampHumans\n\tHealth 10\n\tSpeed 0\n\tRadius 20\n\tHeight 80\n\tMass 400\n\tScale 0.65\n\t+FLOORCLIP\n\t+DONTGIB\n\tObituary \" \"\n\tSpawnId 20412\n\tStates\n\t{\n\tSpawn:\n\t\tFXEC A 1\n\t\tLoop\n\t}\n}\n\n//OBJECTS\nACTOR TableLamp1 10410\n{\n  //$Category CampProps\n  Radius 20\n  Height 32\n  States\n  {\n  Spawn:\n    LEMP A -1\n    Stop\n  }\n}\n\nACTOR TableLamp2 10409\n{\n  //$Category CampProps\n  Radius 20\n  Height 32\n  Scale 0.5\n  States\n  {\n  Spawn:\n    TLM2 A -1\n    Stop\n  }\n}\n\nACTOR FloorLamp 10411\n{\n  //$Category CampProps\n  Radius 20\n  Height 32\n  States\n  {\n  Spawn:\n    FLMP A -1\n    Stop\n  }\n}\n\nACTOR Projector 10412\n{\n  //$Category CampProps\n  Radius 16\n  Height 32\n  +SOLID\n  States\n  {\n  Spawn:\n    PROJ A -1\n    Stop\n  }\n}\n\nACTOR ProjectorScreen 10413\n{\n  //$Category CampProps\n  Radius 20\n  Height 32\n  States\n  {\n  Spawn:\n    PRSC A -1\n    Stop\n  }\n}\n\nACTOR ChairLounge 10415\n{\n  //$Category CampProps\n  Radius 20\n  Height 32\n  +SOLID\n  States\n  {\n  Spawn:\n    CHAR A -1\n    Stop\n  }\n}\n\nACTOR ChairStool 10416\n{\n  //$Category CampProps\n  Radius 20\n  Height 32\n  States\n  {\n  Spawn:\n    CHAR B -1\n    Stop\n  }\n}\n\nACTOR ChairDesk 10417\n{\n  //$Category CampProps\n  Radius 20\n  Height 32\n  States\n  {\n  Spawn:\n    CHAR C -1\n    Stop\n  }\n}\n\nACTOR Table1 10418\n{\n  //$Category CampProps\n  Radius 20\n  Height 32\n  +SOLID\n  States\n  {\n  Spawn:\n    TABL A -1\n    Stop\n  }\n}\n\nACTOR Table2 10518\n{\n  //$Category CampProps\n  Radius 20\n  Height 32\n  +SOLID\n  States\n  {\n  Spawn:\n    TABL B -1\n    Stop\n  }\n}\n\nACTOR Table3 10618\n{\n  //$Category CampProps\n  Radius 20\n  Height 32\n  +SOLID\n  States\n  {\n  Spawn:\n    TABL C -1\n    Stop\n  }\n}\n\nACTOR PottedPlant1 10419\n{\n  //$Category CampProps\n  Radius 20\n  Height 32\n  States\n  {\n  Spawn:\n    PLNT A -1\n    Stop\n  }\n}\n\nACTOR PottedPlant2 10519\n{\n  //$Category CampProps\n  Radius 20\n  Height 32\n  States\n  {\n  Spawn:\n    PLNT B -1\n    Stop\n  }\n}\n\nACTOR PottedPlant3 10619\n{\n  //$Category CampProps\n  Radius 20\n  Height 32\n  +SPAWNCEILING\n  +NOGRAVITY\n  States\n  {\n  Spawn:\n    PLNT C -1\n    Stop\n  }\n}\n\nACTOR CeilingFan 10420\n{\n  //$Category CampProps\n  Radius 20\n  Height 32\n  +SPAWNCEILING\n  +NOGRAVITY\n  Scale 0.5\n  States\n  {\n  Spawn:\n    FAN1 ABC 6\n    Loop\n  }\n}\n\nACTOR TreeBig 10421\n{\n  //$Category CampProps\n  Radius 20\n  Height 96\n  +SOLID\n  States\n  {\n  Spawn:\n    SPRC A -1\n    Stop\n  }\n}\n\nACTOR TreeSmall 10521\n{\n  //$Category CampProps\n  Radius 20\n  Height 96\n  +SOLID\n  States\n  {\n  Spawn:\n    TRWN B -1\n    Stop\n  }\n}\n\nACTOR Toilet 10422\n{\n  //$Category CampProps\n  Radius 20\n  Height 16\n  States\n  {\n  Spawn:\n    TOIL A -1\n    Stop\n  }\n}\n\nACTOR TVStand 20721\n{\n  //$Category CampProps\n  Radius 16\n  Height 32\n  Scale 0.5\n  +SOLID\n  States\n  {\n  Spawn:\n    TVST A -1\n    Stop\n  }\n}\n\nACTOR TableWithLamp 20722\n{\n  //$Category CampProps\n  Radius 16\n  Height 32\n  Scale 0.75\n  +SOLID\n  States\n  {\n  Spawn:\n    TBLP A -1\n    Stop\n  }\n}\n\nACTOR TallLamp 20822\n{\n  //$Category CampProps\n  Radius 16\n  Height 128\n  +SOLID\n  States\n  {\n  Spawn:\n    ELEC A -1\n    Stop\n  }\n}\n\nACTOR TallLampBuggy 20812\n{\n  //$Category CampProps\n  Radius 16\n  Height 128\n  +SOLID\n  States\n  {\n  Spawn:\n    ELEC A -1\n    Stop\n  }\n}\n\nACTOR FaxMachine 20723\n{\n  //$Category CampProps\n  Radius 16\n  Height 32\n  Scale 0.75\n  +SOLID\n  States\n  {\n  Spawn:\n    FAXM A -1\n    Stop\n  }\n}\n\nACTOR CeilingLamp1 20631\n{\n  //$Category CampProps\n  Radius 20\n  Height 32\n  +SPAWNCEILING\n  +NOGRAVITY\n  States\n  {\n  Spawn:\n    LMP5 A -1\n    Stop\n  }\n}\n\nACTOR CeilingLamp2 20632\n{\n  //$Category CampProps\n  Radius 20\n  Height 20\n  +SPAWNCEILING\n  +NOGRAVITY\n  Scale 0.75\n  States\n  {\n  Spawn:\n    LMP7 A -1\n    Stop\n  }\n}\n\nACTOR CeilingLamp3 20732\n{\n  //$Category CampProps\n  Radius 20\n  Height 56\n  +SPAWNCEILING\n  +NOGRAVITY\n  Scale 0.75\n  States\n  {\n  Spawn:\n    TLMP A -1\n    Stop\n  }\n}\n\nACTOR CeilingLamp4 20733\n{\n  //$Category CampProps\n  Radius 20\n  Height 32\n  +SPAWNCEILING\n  +NOGRAVITY\n  Scale 0.75\n  States\n  {\n  Spawn:\n    TLP2 A -1\n    Stop\n  }\n}\n\nACTOR Horse 20934\n{\n  //$Category CampProps\n  Radius 16\n  Height 56\n  Scale 0.75\n  +SOLID\n  States\n  {\n  Spawn:\n    HORS A -1\n    Stop\n  }\n}\n\nACTOR Weeds1 20935\n{\n  //$Category CampProps\n  Radius 16\n  Height 56\n  Scale 1\n  States\n  {\n  Spawn:\n    WED1 A -1\n    Stop\n  }\n}\n\nACTOR Weeds2 20936\n{\n  //$Category CampProps\n  Radius 16\n  Height 56\n  Scale 1\n  States\n  {\n  Spawn:\n    WED2 A -1\n    Stop\n  }\n}\n\nACTOR SecCamera 20937\n{\n  //$Category CampProps\n  Radius 20\n  Height 32\n  +SPAWNCEILING\n  +NOGRAVITY\n  States\n  {\n  Spawn:\n    CAMR A -1\n    Stop\n  }\n}\n\nACTOR Toolbox 20839\n{\n  //$Category CampProps\n  Radius 20\n  Height 32\n  Scale 1\n  +SOLID\n  States\n  {\n  Spawn:\n    TBOX A -1\n    Stop\n  }\n}\n\nACTOR DeskPhone 20840\n{\n  //$Category CampProps\n  Radius 20\n  Height 16\n  Scale 0.35\n  States\n  {\n  Spawn:\n    PHON A -1\n    Stop\n  }\n}\n\nACTOR FireExtinguisher 20841\n{\n  //$Category CampProps\n  Radius 12\n  Height 32\n  Scale 0.5\n  States\n  {\n  Spawn:\n    FEXT A -1\n    Stop\n  }\n}\n\nACTOR DesktopComp 20843\n{\n  //$Category CampProps\n  Radius 20\n  Height 32\n  Scale 1\n  States\n  {\n  Spawn:\n    CPUT A -1\n    Stop\n  }\n}\n\nACTOR CoffeeMachine 20977\n{\n  //$Category CampProps\n  Radius 12\n  Height 32\n  Scale 1\n  States\n  {\n  Spawn:\n    COFM A -1\n    stop\n  }\n}\n\nACTOR DeskPhoneBlink 20978\n{\n  //$Category CampProps\n  Radius 20\n  Height 16\n  Scale 0.35\n  States\n  {\n  Spawn:\n    PHON A 10\n\tPHON B 10\n    loop\n  }\n}\n\nACTOR ArtemisStatue 20979\n{\n  //$Category CampProps\n  Radius 12\n  Height 64\n  Scale 1\n  States\n  {\n  Spawn:\n    ASTA A -1\n    stop\n  }\n}\n\nACTOR ArrowPointer 20980\n{\n  //$Category CampProps\n  Radius 12\n  Height 32\n  Scale 0.75\n  +FLOATBOB\n  +NOGRAVITY\n  States\n  {\n  Spawn:\n    ARRO A -1 bright\n    stop\n  }\n}\n\nACTOR FakeLurker 20981\n{\n  //$Category CampProps\n  Radius 20\n  Height 80\n  Scale 0.75\n  SpawnID 20981\n  +FLOATBOB\n  +NOGRAVITY\n  States\n  {\n  Spawn:\n    LRKR ABCDEFGHIJK 3\n    loop\n  }\n}\n\nACTOR OilDrum 10221\n{\n  //$Category CampProps\n  Health 20\n  Radius 10\n  Height 34\n  +SOLID\n  +SHOOTABLE\n  +NOBLOOD\n  +ACTIVATEMCROSS\n  +DONTGIB\n  +NOICEDEATH\n  +OLDRADIUSDMG\n  DeathSound \"world/barrelx\"\n  Obituary \"$OB_BARREL\"\n  States\n  {\n  Spawn:\n    OILD A 6\n    Loop\n  Death:\n    OILD A 5 BRIGHT\n    OILD A 5 BRIGHT A_Scream\n    OILD B 5 BRIGHT\n    OILD C 5 BRIGHT A_Explode\n    OILC CCCCC 0 BRIGHT A_SpawnItemEx (\"BarrelFlames\", random (0, 40), random (0, 40), 0, 0, 0, 0, random (0, 360))\n    OILD D 10 BRIGHT\n    OILD D 1050 BRIGHT A_BarrelDestroy\n    OILD D 5 A_Respawn\n    Wait\n  }\n}\n\nACTOR BarrelFlames\n{\n  Radius 16\n  Height 24\n  ReactionTime 75\n  damagetype \"fire\"\n  renderstyle Add\n  Projectile\n  +NODAMAGETHRUST\n  +BLOODLESSIMPACT\n  -NOGRAVITY\n  -DROPOFF\n  -MISSILE\n  -ACTIVATEIMPACT\n  -ACTIVATEPCROSS\n\n  States\n  {\n  Spawn:\n    OILS A 0 bright\n    OILS A 4 bright\n    OILS A 0 bright\n    OILS BC 4 bright\n  FireLoop:\n    OILF AB 4 bright\n    OILF C 4 bright A_Explode (5, 40)\n    OILF C 0 bright A_CountDown\n    Loop\n  Death:\n    OILS CB 4 bright\n    OILS A 4 bright\n    Stop\n  }\n}\n\nACTOR WoodTable 20634\n{\n  //$Category CampProps\n  Radius 20\n  Height 32\n  Scale 1\n  +SOLID\n  States\n  {\n  Spawn:\n    WTAB A -1\n    Stop\n  }\n}\n\nACTOR FirePlace 20635\n{\n  //$Category CampProps\n  Radius 20\n  Height 32\n  Scale 1\n  SpawnID 20635\n  States\n  {\n  Spawn:\n    PYRE ABCD 6 Bright\n    loop\n  }\n}"
      },
      {
        "source": "pk3",
        "name": "actors/rainspawn.txt",
        "contents": "//Place the RainDropSpawner on your map, and use values set on the specials tab to modify it\n\n//The first argument controls it's area. 128, for example makes it a 256x256 square or 256-radius circle (See fourth argument)\n//The second argument controls it's frequency. The lower the number, the heavier the rainfall\n//The third argument controls whether or not it plays it's ambient sound. 0 will play the sound, 1 will not\n//The fourth argument controls the area type. 0 is a square, 1 is a circle\n\nActor RainSpawner  30000\n{\n  //$Category Ambiance\n  Radius 1\n  Height 1\n  +NoClip\n  +ClientSideOnly\n  +SpawnCeiling\n  +NoGravity\n  States\n  {\n  Spawn:\n    TNT1 A 0\n    TNT1 A 0 A_JumpIf(Args[2] > 0, \"NoSound\")\n    TNT1 A 0 A_JumpIf(Args[3] > 0, \"Circle\")\n    TNT1 A 0 A_PlaySoundEx(\"Ambient/Rain\", \"SoundSlot7\", 1)\n    TNT1 AAA 2 A_SpawnItemEx(\"RainDrop\", Random(-Args[0], Args[0]), Random(-Args[0], Args[0]), -2, 0, 0, 0, 0, 128, Args[1])\n\tTNT1 AAA 2 A_SpawnItemEx(\"RainDrop\", Random(-Args[0], Args[0]), Random(-Args[0], Args[0]), -2, 0, 0, 0, 0, 128, Args[1])\n\tTNT1 AAA 2 A_SpawnItemEx(\"RainDrop\", Random(-Args[0], Args[0]), Random(-Args[0], Args[0]), -2, 0, 0, 0, 0, 128, Args[1])\n\tTNT1 AAA 2 A_SpawnItemEx(\"RainDrop\", Random(-Args[0], Args[0]), Random(-Args[0], Args[0]), -2, 0, 0, 0, 0, 128, Args[1])\n    Loop\n  Circle:\n    TNT1 A 2 A_SpawnItemEx(\"RainDrop\", Random(-Args[0], Args[0]), 0, -2, 0, 0, 0, Random(0, 360), 128, Args[1])\n  NoSound:\n    TNT1 A 0 A_Jumpif(Args[3] > 0, \"NoSoundCircle\")\n    TNT1 A 2 A_SpawnItemEx(\"RainDrop\", Random(-Args[0], Args[0]), Random(-Args[0], Args[0]), -2, 0, 0, 0, 0, 128, Args[1])\n    Loop\n  NoSoundCircle:\n    TNT1 A 2 A_SpawnItemEx(\"RainDrop\", Random(-Args[0], Args[0]), 0, -2, 0, 0, 0, Random(0, 360), 128, Args[1])\n    Loop\n  }\n}\n\nActor RainDrop 30001\n{\n  +Missile\n  +NoBlockMap\n  -NoGravity\n  Height 2\n  Radius 2\n  Renderstyle Translucent\n  Alpha 0.6\n  Scale 0.5\n  States\n  {\n  Spawn:\n    RNDR A 1 A_JumpIf(WaterLevel > 0, \"Death\")\n    Loop\n  Death:\n    RNDR BCDEFGH 3 A_FadeOut(0.15)\n    Stop\n  }\n}"
      },
      {
        "source": "pk3",
        "name": "actors/smg.txt",
        "contents": "actor SMGClip : Ammo\n{\n\t+IGNORESKILL\n\tInventory.MaxAmount 32\n}\n\nactor SMP5 : Weapon replaces Shotgun\n{\n  Obituary \"%o was quietly perforated by %k's 9mm SMG.\"\n  AttackSound \"sneak/silent\"\n  Inventory.PickupMessage \"You got the 9mm SMG!\"\n  +WEAPON.NOALERT\n  Weapon.BobStyle InverseSmooth\n  Weapon.BobSpeed 2.333333\n  Weapon.BobRangeX 0.2\n  Weapon.BobRangeY 0.8\n  Weapon.SlotNumber 3\n  Weapon.KickBack 1\n  Weapon.AmmoType1 \"9mmAmmo\"\n  Weapon.AmmoType2 \"SMGClip\"\n  Weapon.AmmoGive1 48\n  Decal \"BulletChip\"\n  states\n  {\n  Ready:\n    SSMG A 1 A_WeaponReady(WRF_ALLOWRELOAD)\n    loop\n  Deselect:\n    SSMG A 1 A_Lower\n    loop\n  Select:\n    SSMG A 1 A_Raise\n    loop\n  Fire:\n\tTNT1 A 0 A_JumpIfInventory(\"SMGClip\", 1, 2)\n\tTNT1 A 0 A_JumpIfInventory(\"9mmAmmo\", 1, \"Reload\")\n\tgoto Ready\n\tSSMG A 0 A_GiveInventory(\"StealthProp\", 20)\n\tTNT1 A 0 A_FireCustomMissile(\"SmokeDischarge\", 0, false)\n    SSMG A 1 A_FireBullets(1.0, 1.0, 1, 4, \"SneakyPuff\", FBF_NOFLASH)\n\tSSMG A 0 A_TakeInventory(\"SMGClip\", 1)\n\tSSMG A 0 A_AlertMonsters(384)\n\tTNT1 A 0 A_SetAngle(angle + frandom(-1.5,1.5))\n    SSMG A 1 Offset(1,40) A_SetPitch(Pitch-0.5)\n\tSSMG A 1 Offset(-1,36)\n\tSSMG A 1 Offset(0,34)\n\tSSMG A 0 A_ReFire\n    goto Ready\n  AltFire:\n\tTNT1 A 0 A_JumpIfInventory(\"PowerWhisperCooldown\",1,\"Ready\")\n\tSSMG A 14 A_PlaySound(\"*whisper\")\n\tTNT1 A 0 A_AlertMonsters(384)\n\tTNT1 A 0 A_GiveInventory(\"WhisperPower\", 1)\n\tGoto Ready\n  Reload:\n\tTNT1 A 0 A_JumpIfInventory(\"SMGClip\", 32, \"Ready\")\n\tTNT1 A 0 A_JumpIfInventory(\"9mmAmmo\", 1, 1)\n\tgoto Ready\n\tSSMG A 4 Offset(8,32)\n\tSSMG A 3 Offset(16,48)\n\tSSMG A 3 Offset(20,64)\n\tSSMG A 3 Offset(24,80)\n\tSSMG A 4 Offset(26,84)\n\tSSMG A 6 Offset(28,88)\n  AddRound:\n\tTNT1 A 0 A_GiveInventory(\"SMGClip\", 1)\n\tTNT1 A 0 A_TakeInventory(\"9mmAmmo\", 1)\n\tTNT1 A 0 A_JumpIfInventory(\"SMGClip\", 32, 2)\n\tTNT1 A 0 A_JumpIfInventory(\"9mmAmmo\", 1, \"AddRound\")\n\tSSMG A 8 Offset(24,80) A_PlaySound(\"sneak/reload\", CHAN_WEAPON)\n\tSSMG A 4 Offset(32,88)\n\tSSMG A 3 Offset(30,84)\n\tSSMG A 3 Offset(28,80)\n\tSSMG A 3 Offset(22,72)\n\tSSMG A 4 Offset(16,64)\n\tSSMG A 3 Offset(8,48)\n\tgoto Ready\n  Spawn:\n    MP5K X -1\n    stop\n  }\n}"
      },
      {
        "source": "pk3",
        "name": "actors/pistol.txt",
        "contents": "actor PistolClip : Ammo\n{\n\t+IGNORESKILL\n\tInventory.MaxAmount 15\n}\n\nactor 9mmAmmo : Ammo replaces Clip\n{\n\tInventory.PickupMessage \"Picked up a 9mm magazine.\"\n\tInventory.Amount 15\n\tInventory.MaxAmount 150\n\tAmmo.BackpackAmount 15\n\tAmmo.BackpackMaxAmount 300\n\tInventory.Icon \"CLIPA0\"\n\tXScale 0.5\n\tYScale 0.75\n\tStates\n\t{\n\tSpawn:\n\t\tCLIP A -1\n\t\tStop\n\t}\n}\n\nactor 9mmBox : 9mmAmmo replaces ClipBox\n{\n\tInventory.PickupMessage \"Picked up a box of 9mm ammo.\"\n\tInventory.Amount 45\n\tScale 0.666667\n\tStates\n\t{\n\tSpawn:\n\t\tAMMO A -1\n\t\tStop\n\t}\n}\n\nactor SPistol : Pistol\n{\n\tObituary \"%o was silenced by %k's Glock 9mm.\"\n\tInventory.PickupMessage \"Scavenged a Glock 9mm for ammo.\"\n\tWeapon.AmmoType1 \"9mmAmmo\"\n\tWeapon.AmmoType2 \"PistolClip\"\n\tWeapon.AmmoUse1 0\n\tWeapon.AmmoUse2 0\n\tDecal \"BulletChip\"\n\t+WEAPON.NOAUTOFIRE\n\t+WEAPON.NOALERT\n\t-WEAPON.WIMPY_WEAPON\n\tWeapon.BobStyle InverseSmooth\n\tWeapon.BobSpeed 2.333333\n\tWeapon.BobRangeX 0.2\n\tWeapon.BobRangeY 0.8\n\tWeapon.Kickback 1\n\tStates\n\t{\n\tReady:\n\t\tGLOK A 1 A_WeaponReady(WRF_ALLOWRELOAD)\n\t\tLoop\n\tDeselect:\n\t\tGLOK A 1 A_Lower\n\t\tGLOK A 0 A_Lower\n\t\tLoop\n\tSelect:\n\t\tGLOK A 1 A_Raise\n\t\tGLOK A 0 A_Raise\n\t\tLoop\n\tFire:\n\t\tTNT1 A 0 A_JumpIfInventory(\"PistolClip\",1,2)\n\t\tTNT1 A 0 A_JumpIfInventory(\"9mmAmmo\",1,\"Reload\")\n\t\tgoto Ready\n\t\tGLOK A 1 A_PlaySound(\"sneak/silent\", CHAN_WEAPON)\n\t\tTNT1 A 0 A_FireCustomMissile(\"SmokeDischarge\", 0, false)\n\t\tGLOK B 2\n\t\tGLOK C 0 A_GiveInventory(\"StealthProp\", 20)\n\t\tGLOK C 1 Offset(0,34) A_FireBullets(0.5, 0.5, -1, 4, \"SneakyPuff\", FBF_NOFLASH)\n\t\tTNT1 A 0 A_SetAngle(angle + frandom(-1.0,1.0))\n\t\tTNT1 A 0 A_SetPitch(pitch - 0.5)\n\t\tGLOK C 0 A_TakeInventory(\"PistolClip\", 1)\n\t\tGLOK C 0 A_AlertMonsters(384)\n\t\tGLOK C 2 Offset(0,36) A_WeaponReady(WRF_ALLOWRELOAD)\n\t\tGLOK B 3 Offset(0,38) A_WeaponReady(WRF_ALLOWRELOAD)\n\t\tGLOK A 4 Offset(0,35) A_WeaponReady(WRF_ALLOWRELOAD)\n\t\tGoto Ready\n\tAltFire:\n\t\tTNT1 A 0 A_JumpIfInventory(\"PowerWhisperCooldown\",1,\"Ready\")\n\t\tGLOK A 14 A_PlaySound(\"*whisper\")\n\t\tTNT1 A 0 A_AlertMonsters(384)\n\t\tTNT1 A 0 A_GiveInventory(\"WhisperPower\", 1)\n\t\tGoto Ready\n\tReload:\n\t\tTNT1 A 0 A_JumpIfInventory(\"PistolClip\", 15, \"Ready\")\n\t\tTNT1 A 0 A_JumpIfInventory(\"9mmAmmo\", 1, 1)\n\t\tgoto Ready\n\t\tGLOK C 3 Offset(8,32)\n\t\tGLOK C 2 Offset(16,48)\n\t\tGLOK C 2 Offset(20,64)\n\t\tGLOK C 2 Offset(24,80)\n\t\tGLOK C 3 Offset(26,84)\n\t\tGLOK C 6 Offset(28,88)\n\tAddRound:\n\t\tTNT1 A 0 A_GiveInventory(\"PistolClip\", 1)\n\t\tTNT1 A 0 A_TakeInventory(\"9mmAmmo\", 1)\n\t\tTNT1 A 0 A_JumpIfInventory(\"PistolClip\", 15, 2)\n\t\tTNT1 A 0 A_JumpIfInventory(\"9mmAmmo\", 1, \"AddRound\")\n\t\tGLOK C 4 Offset(24,80) A_PlaySound(\"sneak/reload\", CHAN_WEAPON)\n\t\tGLOK C 3 Offset(32,88)\n\t\tGLOK C 2 Offset(30,84)\n\t\tGLOK C 2 Offset(28,80)\n\t\tGLOK C 2 Offset(22,72)\n\t\tGLOK C 3 Offset(16,64)\n\t\tGLOK C 2 Offset(8,48)\n\t\tgoto Ready\n\tSpawn:\n\t\tSILP X -1\n\t\tStop\n\t}\n}"
      },
      {
        "source": "pk3",
        "name": "actors/sniper.txt",
        "contents": "actor SniperClip : Ammo\n{\n\t+IGNORESKILL\n\tInventory.MaxAmount 10\n}\n\nactor SniperAmmo : Ammo replaces RocketAmmo\n{\n\tInventory.PickupMessage \"Picked up a .22LR magazine.\"\n\tInventory.Amount 10\n\tInventory.MaxAmount 100\n\tAmmo.BackpackAmount 10\n\tAmmo.BackpackMaxAmount 200\n\tInventory.Icon \"CLIPA0\"\n\tXScale 0.666667\n\tYScale 0.5\n\tStates\n\t{\n\tSpawn:\n\t\tCLIP A -1\n\t\tStop\n\t}\n}\n\nactor SniperBox : SniperAmmo replaces RocketBox\n{\n\tInventory.PickupMessage \"Picked up a box of .22LR ammo.\"\n\tInventory.Amount 30\n\tScale 0.5\n\tTranslation \"112:127=64:79\", \"152:159=160:167\"\n\tStates\n\t{\n\tSpawn:\n\t\tAMMO A -1\n\t\tStop\n\t}\n}\n\nactor Scoped : Inventory\n{\n\tInventory.MaxAmount 1\n}\n\nactor SniperRifle : DoomWeapon replaces RocketLauncher\n{\n\tObituary \"%o didn't know what hit %h, but it was %k's .22LR sniper.\"\n\tInventory.PickupMessage \"You got the .22LR sniper rifle!\"\n\tWeapon.AmmoType1 \"SniperAmmo\"\n\tWeapon.AmmoType2 \"SniperClip\"\n\tWeapon.AmmoUse1 0\n\tWeapon.AmmoUse2 0\n\tDecal \"BulletChip\"\n\t+WEAPON.NOAUTOFIRE\n\t+WEAPON.NOALERT\n\t-WEAPON.WIMPY_WEAPON\n\tWeapon.BobStyle InverseSmooth\n\tWeapon.BobSpeed 2.333333\n\tWeapon.BobRangeX 0.2\n\tWeapon.BobRangeY 0.4\n\tWeapon.Kickback 1\n\tStates\n\t{\n\tReady:\n\t\tTNT1 A 0 A_JumpIfInventory(\"Scoped\", 1, 2)\n\t\tSNIP A 1 A_WeaponReady(WRF_ALLOWRELOAD|WRF_ALLOWZOOM)\n\t\tLoop\n\t\tSCOP A 1 A_WeaponReady(WRF_ALLOWRELOAD|WRF_ALLOWZOOM)\n\t\tLoop\n\tDeselect:\n\t\t\"----\" A 0 A_JumpIfInventory(\"Scoped\", 1, 2)\n\t\tSNIP A 1 A_Lower\n\t\tLoop\n\t\t\"----\" A 0 A_SetBlend(\"00 00 00\", 1.0, 17)\n\t\t\"----\" A 0 A_ZoomFactor(1.0)\n\t\t\"----\" A 0 A_TakeInventory(\"Scoped\", 1)\n\t\tLoop\n\tSelect:\n\t\tSNIP A 1 A_Raise\n\t\tLoop\n\tFire:\n\t\t\"----\" A 0 A_JumpIfInventory(\"SniperClip\",1,2)\n\t\t\"----\" A 0 A_JumpIfInventory(\"SniperAmmo\",1,\"Reload\")\n\t\tgoto Ready\n\t\t\"----\" A 1 A_PlaySound(\"sneak/silent\", CHAN_WEAPON)\n\t\t\"----\" A 0 A_FireCustomMissile(\"SmokeDischarge\", 0, false)\n\t\t\"----\" A 2\n\t\t\"----\" A 0 A_GiveInventory(\"StealthProp\", 20)\n\t\t\"----\" A 0 A_JumpIfInventory(\"Scoped\", 1, 3)\n\t\t\"----\" A 1 Offset(0,34) A_FireBullets(2.0, 2.0, -1, 4, \"SneakyPuff\", FBF_NOFLASH)\n\t\t\"----\" A 0 A_Jump(256, 2)\n\t\t\"----\" A 1 A_FireBullets(0.1, 0.1, -1, 4, \"SniperPuff\", FBF_NOFLASH)\n\t\t\"----\" A 0 A_TakeInventory(\"SniperClip\", 1)\n\t\t\"----\" A 0 A_AlertMonsters(384)\n\t\t\"----\" A 0 A_JumpIfInventory(\"Scoped\", 1, 6)\n\t\tSNIP A 0 A_SetPitch(pitch - 0.5)\n\t\tSNIP A 0 A_SetAngle(angle + frandom(-1.0,1.0))\n\t\tSNIP A 2 Offset(0,36)\n\t\tSNIP A 3 Offset(0,38)\n\t\tSNIP A 4 Offset(0,35)\n\t\tGoto Ready\n\t\tSCOP A 0 A_SetPitch(pitch - 0.25)\n\t\tSCOP A 1 ACS_NamedExecuteAlways(\"ScopedRecoil\")\n\t\tSCOP A 1 A_SetPitch(pitch - 0.125)\n\t\tSCOP A 1 A_SetPitch(pitch - 0.125)\n\t\tGoto Ready\n\tAltFire:\n\t\t\"----\" A 0 A_JumpIfInventory(\"PowerWhisperCooldown\",1,\"Ready\")\n\t\t\"----\" A 14 A_PlaySound(\"*whisper\")\n\t\t\"----\" A 0 A_AlertMonsters(384)\n\t\t\"----\" A 0 A_GiveInventory(\"WhisperPower\", 1)\n\t\tGoto Ready\n\tZoom:\n\t\t\"----\" A 0 A_JumpIfInventory(\"Scoped\", 1, 12)\n\t\tSNIP A 0 A_ZoomFactor(6.0)\n\t\tSNIP A 1 Offset(0,24)\n\t\tSNIP A 1 Offset(0,16)\n\t\tSNIP B 1 Offset(0,12)\n\t\tSNIP B 1 Offset(0,8)\n\t\tSNIP C 1 Offset(0,6)\n\t\tSNIP C 1 Offset(0,4)\n\t\tSNIP D 1 Offset(0,3)\n\t\tSNIP D 1 Offset(0,2)\n\t\tSCOP A 0 Offset(0,32) A_SetBlend(\"00 00 00\", 1.0, 17)\n\t\t\"----\" A 7 A_GiveInventory(\"Scoped\", 1)\n\t\tgoto Ready\n\t\tSNIP A 0 A_TakeInventory(\"Scoped\", 1)\n\t\tSNIP A 0 A_ZoomFactor(1.0)\n\t\tSNIP D 3 Offset(0,0) A_SetBlend(\"00 00 00\", 1.0, 17)\n\t\tSNIP D 1 Offset(0,2)\n\t\tSNIP D 1 Offset(0,3)\n\t\tSNIP C 1 Offset(0,4)\n\t\tSNIP C 1 Offset(0,6)\n\t\tSNIP B 1 Offset(0,8)\n\t\tSNIP B 1 Offset(0,12)\n\t\tSNIP A 1 Offset(0,16)\n\t\tSNIP A 1 Offset(0,24)\n\t\tgoto Ready\n\tUnZoomReload:\n\t\tSNIP A 0 A_TakeInventory(\"Scoped\", 1)\n\t\tSNIP A 0 A_ZoomFactor(1.0)\n\t\tSNIP D 3 Offset(0,0) A_SetBlend(\"00 00 00\", 1.0, 17)\n\t\tSNIP D 1 Offset(0,2)\n\t\tSNIP D 1 Offset(0,3)\n\t\tSNIP C 1 Offset(0,4)\n\t\tSNIP C 1 Offset(0,6)\n\t\tSNIP B 1 Offset(0,8)\n\t\tSNIP B 1 Offset(0,12)\n\t\tSNIP A 1 Offset(0,16)\n\t\tSNIP A 1 Offset(0,24)\n\t\tSNIP A 0 Offset(0,32)\n\tReload:\n\t\t\"----\" A 0 A_JumpIfInventory(\"Scoped\", 1, \"UnZoomReload\")\n\t\t\"----\" A 0 A_JumpIfInventory(\"SniperClip\", 10, \"Ready\")\n\t\t\"----\" A 0 A_JumpIfInventory(\"SniperAmmo\", 1, 1)\n\t\tgoto Ready\n\t\tSNIP A 3 Offset(8,32)\n\t\tSNIP A 2 Offset(16,48)\n\t\tSNIP A 2 Offset(20,64)\n\t\tSNIP A 2 Offset(24,80)\n\t\tSNIP A 3 Offset(26,84)\n\t\tSNIP A 6 Offset(28,88)\n\tAddRound:\n\t\t\"----\" A 0 A_GiveInventory(\"SniperClip\", 1)\n\t\t\"----\" A 0 A_TakeInventory(\"SniperAmmo\", 1)\n\t\t\"----\" A 0 A_JumpIfInventory(\"SniperClip\", 10, 2)\n\t\t\"----\" A 0 A_JumpIfInventory(\"SniperAmmo\", 1, \"AddRound\")\n\t\tSNIP A 8 Offset(24,80) A_PlaySound(\"sneak/reload\", CHAN_WEAPON)\n\t\tSNIP A 5 Offset(32,88)\n\t\tSNIP A 4 Offset(30,84)\n\t\tSNIP A 4 Offset(28,80)\n\t\tSNIP A 4 Offset(22,72)\n\t\tSNIP A 3 Offset(16,64)\n\t\tSNIP A 2 Offset(8,48)\n\t\tgoto Ready\n\tSpawn:\n\t\tSNIP X -1\n\t\tStop\n\t}\n}"
      }
    ]
  },
  "maps": [
    {
      "map": "MAP00",
      "title": "MAP00",
      "format": "unknown",
      "stats": {
        "things": 0,
        "linedefs": 0,
        "sidedefs": 0,
        "vertices": 0,
        "sectors": 0,
        "segs": 0,
        "ssectors": 0,
        "nodes": 0,
        "textures": {}
      },
      "monsters": {
        "total": 0,
        "by_type": {},
        "by_category": null
      },
      "items": {
        "total": 0,
        "by_type": {},
        "ammo_by_category": null,
        "weapons_present": null
      },
      "mechanics": {
        "teleports": false,
        "keys": [],
        "secret_exit": false
      },
      "difficulty": {
        "uv_monsters": 0,
        "hmp_monsters": 0,
        "htr_monsters": 0,
        "uv_items": 0,
        "hmp_items": 0,
        "htr_items": 0
      },
      "compatibility": "unknown",
      "metadata": {
        "title": null,
        "music": null,
        "source": "marker"
      }
    },
    {
      "map": "MAP01",
      "title": "MAP01",
      "format": "unknown",
      "stats": {
        "things": 0,
        "linedefs": 0,
        "sidedefs": 0,
        "vertices": 0,
        "sectors": 0,
        "segs": 0,
        "ssectors": 0,
        "nodes": 0,
        "textures": {}
      },
      "monsters": {
        "total": 0,
        "by_type": {},
        "by_category": null
      },
      "items": {
        "total": 0,
        "by_type": {},
        "ammo_by_category": null,
        "weapons_present": null
      },
      "mechanics": {
        "teleports": false,
        "keys": [],
        "secret_exit": false
      },
      "difficulty": {
        "uv_monsters": 0,
        "hmp_monsters": 0,
        "htr_monsters": 0,
        "uv_items": 0,
        "hmp_items": 0,
        "htr_items": 0
      },
      "compatibility": "unknown",
      "metadata": {
        "title": null,
        "music": null,
        "source": "marker"
      }
    },
    {
      "map": "MAP02",
      "title": "MAP02",
      "format": "unknown",
      "stats": {
        "things": 0,
        "linedefs": 0,
        "sidedefs": 0,
        "vertices": 0,
        "sectors": 0,
        "segs": 0,
        "ssectors": 0,
        "nodes": 0,
        "textures": {}
      },
      "monsters": {
        "total": 0,
        "by_type": {},
        "by_category": null
      },
      "items": {
        "total": 0,
        "by_type": {},
        "ammo_by_category": null,
        "weapons_present": null
      },
      "mechanics": {
        "teleports": false,
        "keys": [],
        "secret_exit": false
      },
      "difficulty": {
        "uv_monsters": 0,
        "hmp_monsters": 0,
        "htr_monsters": 0,
        "uv_items": 0,
        "hmp_items": 0,
        "htr_items": 0
      },
      "compatibility": "unknown",
      "metadata": {
        "title": null,
        "music": null,
        "source": "marker"
      }
    },
    {
      "map": "MAP03",
      "title": "MAP03",
      "format": "unknown",
      "stats": {
        "things": 0,
        "linedefs": 0,
        "sidedefs": 0,
        "vertices": 0,
        "sectors": 0,
        "segs": 0,
        "ssectors": 0,
        "nodes": 0,
        "textures": {}
      },
      "monsters": {
        "total": 0,
        "by_type": {},
        "by_category": null
      },
      "items": {
        "total": 0,
        "by_type": {},
        "ammo_by_category": null,
        "weapons_present": null
      },
      "mechanics": {
        "teleports": false,
        "keys": [],
        "secret_exit": false
      },
      "difficulty": {
        "uv_monsters": 0,
        "hmp_monsters": 0,
        "htr_monsters": 0,
        "uv_items": 0,
        "hmp_items": 0,
        "htr_items": 0
      },
      "compatibility": "unknown",
      "metadata": {
        "title": null,
        "music": null,
        "source": "marker"
      }
    }
  ]
}

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