strongholdrejuvenated-v6.pk3

PK3 53 MiB 1 map(s)

Counts

endoom0
graphics0
lumps345
maps46
palettes0

Totals (across maps)

Things706
Linedefs28085
Sectors5969
Monsters0
Items0
Raw model (for completeness)
{
  "meta": {
    "id": "061930af-11c5-4106-9da8-582ebe2f487a",
    "sha1": "71d7ce3acdc88bd22fc4179d97c3d835213d8902",
    "sha256": "b5ed49c3fa8cc51b494ae3426889668d10742fffcadf692c16ec0b183338f936",
    "filenames": [
      "strongholdrejuvenated-v6.pk3"
    ],
    "additional": {
      "engines": [
        "GZDOOM"
      ],
      "iwad": [],
      "filename": null,
      "added": "2018-11-25 02:16:40",
      "locked": false,
      "canDownload": true,
      "adult": false,
      "hidden": false,
      "name": null,
      "description": null,
      "maps": null,
      "graphicOverrides": null,
      "screenshots": null,
      "palettes": null,
      "categories": null
    },
    "flags": {
      "locked": false,
      "canDownload": true,
      "adult": false,
      "hidden": false
    },
    "added": "2018-11-25 02:16:40",
    "file": {
      "type": "PK3",
      "size": 55816198,
      "url": "https://wadarchive2.nyc3.digitaloceanspaces.com/71d7ce3acdc88bd22fc4179d97c3d835213d8902/71d7ce3acdc88bd22fc4179d97c3d835213d8902.pk3.gz",
      "corrupt": false
    },
    "content": {
      "maps": [
        "CREDMAP",
        "MAP99",
        "STR01",
        "STR02",
        "STR03",
        "STR04",
        "STR05",
        "STR06",
        "STR07",
        "STR08",
        "STR09",
        "STR10",
        "STR11",
        "STR12",
        "STR13",
        "STR14",
        "STR15",
        "STR16",
        "STR17",
        "STR18",
        "STR19",
        "STR20",
        "STR21",
        "STR22",
        "STR23",
        "STR24",
        "STR25",
        "STR26",
        "STR27",
        "STR28",
        "STR29",
        "STR30",
        "STR31",
        "STR32",
        "STR33",
        "STR34",
        "STR35",
        "STR40",
        "STR41",
        "STR42",
        "STR43",
        "STR44",
        "STR50",
        "STR52",
        "STR54",
        "STR56"
      ],
      "counts": {
        "endoom": 0,
        "graphics": 0,
        "lumps": 345,
        "maps": 46,
        "palettes": 0
      },
      "engines_guess": [
        "GZDOOM"
      ]
    },
    "text_files": [
      {
        "source": "pk3",
        "name": "CHANGELOG.txt",
        "contents": "//////////////////////////\n/ CHANGES FROM V5B TO V6 /\n//////////////////////////\n\nSAMSARAHOLD REJUVENATED:\n\nReduced the Wraithverge's damage amount (from 5-40 to 3-24). It also no longer pushes enemies around.\nAdded the tomed hellstaff rain effect's missing sound.\nAllies spawned by beacons (samsarahold_allymarines 0) should now track kills properly.\nBeacons now fade when depleted.\nHades spheres can now be frozen.\nAdded the dragon claw puff's Spawn (actor hit) sound.\nBoth normal and elite beacons spawn an extra ally (bringing the total spawn amount for both beacons to 5).\nThe Quake (Old) armour mode has been effectively phased out. The Quake armour mode now goes as follows: Green -> Yellow -> Red -> Silver.\nOn that note, samsara_armormode 2 has been replaced with Heretic armour. It goes as follows: Silver (100 armour, 50% damage absorption) -> Yellow (150 armour, 67.5% damage absorption) -> Orange (200 armour, 75% damage absorption) -> Red (250 armour, 87.5% damage absorption, extra fire/explosive attack protection).\nReworked unique start switches to prevent possible exploits. They also look less misaligned in netplay.\nThe Indifferent (no uniques spawning), Hit Taker (no armour spawning), and Unlucky 7 (no slot 7 equipment spawning) bonuses now give 500/1000/1500 credits (increased from 250/500/750), respectively.\n\nSTRONGHOLD REJUVENATED:\n\nThe homing rocket launcher (powered version) has been nerfed. Direct damage has been reduced (from 93 to 80). Splash damage has also been reduced (from 96 to 80 on both explosions). The first explosion's radius is also decreased (from 320 to 240). Finally, only half of its splash damage is forced on enemies now.\nThe land mines (powered version) have been buffed. Both fire modes now throw three land mines (with the middle one being more powerful). The mines thrown via primary fire also go faster.\nThe BFG9000 (powered version) no longer damages the user (but they can still BFG jump with it), and it creates tracers on impact. It also takes 5 cells to fire again (increased from 3).\nThe rocket launcher (powered version) now forces half of its splash damage on enemies. Direct damage is also increased (from 93 to 96).\nMade the marine spawns in The Final Stand and Fortress Of Damnation a little more consistent.\n\nBOTH:\n\nNPCs can no longer walk into the familiar missions room.\nLand mines no longer stop randomly in mid-air.\nAllies and cores can no longer be targeted with autoaim.\nThe chaos cyberdemon now gives more of a cue before executing its bullet attack.\nWaves 3 and 4 in Frozen were switched around.\nWaves 8 to 10 in Black Gold are slightly harder. Wave 6 is also a little less crazy.\nSmall balance changes regarding the Overmind's damage factors. The Overmind and cores also gain temporary damage resistance instead of temporary invulnerability now.\nThe Overmind timer no longer glitches out if more waves start while it's still going.\nTags have been added for keys and monsters.\nTouched up on some obituaries.\nWave 5 in Slaughtered was changed.\nFixed handling of best times. Best times will no longer exceed par times, and longer best times can no longer overwrite shorter ones.\nAdded yellow armour throughout the maps.\nThe repeater puff's explosion damage now triggers properly when time is frozen.\nThe final boss has new sprites!\nThe hellhound now resists (by 50%) all fire-based damage types instead of just the Fire damage type.\nPlayer-spawned barrels now explode after two minutes if enemies haven't attacked them. This is mainly meant to stop people from blocking the intermission map spawn.\nPowerups and health items should now always spawn on the pads.\n\nCOLOURED OBITUARIES (V2):\n\nChanged/added some obituaries to match the new ones.\n\n//////////////////////////\n/ CHANGES FROM V5 TO V5B /\n//////////////////////////\n\nSAMSARAHOLD REJUVENATED:\n\nReduced the Wraithverge's damage amount while under the effects of a doomsphere (from 4x to 2.5x).\nPossibly fixed equipment spawns randomly not showing up in netplay. Keeping a close eye on it, though.\nImplemented (and reworked) Security Officer's weapon skin code from Samsara v0.3 ZDoom. This means that any Security Officers dual wielding magnums or shotguns will actually be shown dual wielding (and even firing) them again. Hopefully, it shouldn't crash. No guarantees, though.\nAdded bloodyhell stuff to the Duke It Out enemies, the City Of Silence enemies, the Moloch, the mini cyberdemon, the chaos cyberdemon, and the Inferno Demon.\nTouched up on some enemy blood colours.\nTimon's axe now spawns the axe blood again (since it now supports different blood colours).\nFixed some sprite conflicts with bloodyhell level 1's effects.\nHades spheres and the Inferno Demon can now be zorched.\nThe friendly grunt now has a more proper translation.\n\nSTRONGHOLD REJUVENATED:\n\nNone.\n\nBOTH:\n\nSome map tweaks. Experimental at best.\nAdded some missing sounds for the City Of Silence apprentice.\nFixed some projectiles not having lights.\nThe repeater puff now has a sound and a different decal.\nDuke It Out protector drones and enforcers no longer multi jump. No hacking for them tonight.\nReduced the speed of pinky demons, spectres, blood demons, and nightmare demons on Nightmare difficulty. They also no longer recover from pain twice as fast, and nightmare demons no longer fire projectiles twice as fast.\n\n//////////////////////////\n/ CHANGES FROM V4D TO V5 /\n//////////////////////////\n\nSAMSARAHOLD REJUVENATED:\n\nFixed an oversight where zorch propulsor shots (from players) would kill cyberdemons. They now zorch them properly.\nThe Overmind (during invulnerability) can no longer be damaged by the Wraithverge's hardcoded trickery.\nFrozen nightmare cacodemons are no longer transparent.\nFixed nightmare cacodemons, abaddons, archons of Hell, and diabolists spurting out the wrong blood colour on death while samsara_cl_bloodyhell is 2.\nAdded missing bloodyhell stuff to Parias, chickens, and bruiser demons.\nCorvus' elven wand was dealing more damage than normal since the change to A_FireBullets due to miscalculations. Fixed.\nCorrected the amount of bullets Doomguy's shotgun (both classic and Stronghold versions) fires (changed from 8 to 7).\nHopefully fixed the Wraithverge's damage issues.\nWeapon pickups spawned via scripts are no longer treated as if they were dropped by enemies, meaning they give the proper amount of ammo on pickup (instead of just half). They can still only be picked up one time.\nThe weapon bobbing of Security Officer's and Ranger's weapons is now more accurate to their original games.\nFixed some sprite conflicts with bloodyhell level -1's effects.\nWhen joining as random, the random character checker now forces you into spectator mode instead of killing you.\nFixed players being temporarily unable to move when tomed phoenix rod flames went through them.\nStronghold enemies now play sounds when zorched. Bosses now play sounds when frozen.\nAlternate uniques now play the weapon pickup sound for Doomguy.\nThe Duke It Out and City Of Silence enemies can now be frozen.\n\nSTRONGHOLD REJUVENATED:\n\nPicking up a berserk should now automatically switch to the fist again.\nThe modified green armour in the shop is now a yellow armour.\nThe modified blue armour in the shop is now a normal blue armour again.\nThe super shield in the shop has been replaced with the red armour! It gives 250 points of armour and reduces damage by two thirds. It also gives extra protection against fire and explosive attacks.\nThe shop prices for the armours now match SamsaraHold's prices.\nChanged the death sound of the BFG9000's powered projectile.\nThe pyro cannon now does its full amount of damage to the user again.\nThe HRL marine now uses the proper sprites.\n\nBOTH:\n\nThe pickup messages for the weapons (in the Stronghold version) and the Stronghold-specific items, the obituary messages, the weapon/ammo/item tags, the locked door messages, and the map names are now in a LANGUAGE entry. As a result, the coloured obituary messages used in SamsaraHold are now an optional addon.\nRemoved some leftover coloured lighting in Volcanic Installation.\nWhen switching weapons, the winding down sound of the chaingun (Stronghold version) no longer gets interrupted.\nEnemies should no longer get stuck in the spawn zone in Terrorforming.\nThe marine in the small cave in the tunnel should no longer get randomly stuck when moving around in The Final Stand.\nThe later waves of Terrorforming have been rebalanced.\nImplemented stronghold_cl_announcer. Exactly what it says on the tin. This does not affect the Zandronum announcer. Defaults to true.\nImplemented stronghold_cl_iwinbuttonmusic. It lets you turn the music that plays whenever someone uses an I Win button on or off. Defaults to true.\nArch-viles can now resurrect non-boss enemies.\nAny extra lives that spawn in will now disappear properly when time is frozen, and infinite lives is on.\nSuicide bombers, Hades spheres, and Duke It Out sentry drones will now display their obituaries when killing players. Their explosions should show up in netplay as well.\nBlood demons and nightmare demons now move, attack, and recover from pain faster on Nightmare difficulty.\nBipolar Bunker has had its equipment/enemy layout redone.\nAntlion Nebula's early waves have been changed around. It also has an actual hard mode now!\nDusk (Old)'s waves have been changed. Also, enemies should no longer fail to spawn if the second spawn zone is blocked.\nConvulsion: Aftermath should be more balanced.\nThe first release candidate version of Slaughtered has been added as a familiar mission!\nThe charging sequence of the Cyberdemon Mk. II's super attack no longer damages nearby players.\nActivated spawn zones are now mentioned accordingly in Armageddon and Smoldering Caves.\nLocus Of Pestilence has been moved back to tier five, and Orbit has been moved back to tier three.\nSentries now track kills properly.\nHealth decay (caused by degeneration) should no longer count towards damage checks.\nThe secret levels' hard modes have been rebalanced.\nRestored some missing GLDEFS entries and decals.\nWhen receiving bonuses, you are now shown the total amount of credits gained.\nPlayers should no longer lose everything upon exiting a map while on a death hazard.\nWhen a player starts a vote, the map name is now shown.\nFixed a \"quick map exit\" exploit in Introduction.\nThe BFG9000 (Stronghold version) makes a humming sound now.\nThe Duke It Out overlord's death sound no longer conflicts with the City Of Silence fat zombie's death sound.\nYou can now skip the ending sequence.\nWhen a map starts, an alarm will sound to indicate the invasion has started.\nThe silent alarm CVar has new settings to accommodate the new alarm. 0 keeps both alarms enabled, 1 only prevents the warning alarm from sounding, 2 only prevents the starting alarm from sounding, and 3 prevents both alarms from playing.\nThe silent alarm CVar now takes Overmind core deaths into account.\nA super max. armour enhancement item has been added to the shop. Much like its health counterpart, it instantly increases your maximum armour capacity by 100%.\nAdded some new NPCs in the intermission map. They give you some tips and advice.\n\nCOLOURED OBITUARIES (V1):\n\nInitial release.\n\n///////////////////////////\n/ CHANGES FROM V4C TO V4D /\n///////////////////////////\n\nSAMSARAHOLD REJUVENATED:\n\nIf you try to get armour from the shop while samsara_armormode is 4, it will now tell you it is currently out of stock. The price tags will also disappear as a result.\nWhen samsarahold_allymarines is enabled, the (elite) allied reinforcements' description will change accordingly.\nSame deal with the armours and samsara_armormode.\nThe unique start switches should no longer look glitchy when players join.\n\nSTRONGHOLD REJUVENATED:\n\nGave the land mines ammo pickup the proper PickupSound entry.\n\nBOTH:\n\nAdded a stronghold_effectiveplayercount CVar. If it's not 0, it will add to (or subtract from) the player amount checker (the checker cannot go below 1, though). Mainly a debug CVar, but, hey. Defaults to 0.\nAdded a stronghold_effectiveplayercounttype CVar. If 0, it uses the aforementioned method. If 1, it replaces the checker's amount with stronghold_effectiveplayercount's value regardless of player count, and it does not check for jailed players. Defaults to 0.\nAdded a stronghold_infinitelives CVar. If true, you simply don't lose any lives on death. You also won't be jailed if you're late to the game, and extra lives will not spawn (they also won't be in the shop). Defaults to false.\nWhen stronghold_bruisermorph is enabled, the morph device's description will change accordingly.\nCalling the debug mode script will now open the secret levels.\nApparently, enemies wouldn't spawn on certain maps with almost thirty-two players. That's probably fixed. I think. No guarantees.\nWhen dune warriors enter their Pain state, they should now only uncloak while cloaked.\nCorrected the textures in Introduction.\nBrought back some coloured lighting (that accidentally got erased several versions ago) in various maps. Whoops.\nOn that note, the intermission map's details have been restored.\nThe trees no longer inexplicably fall from the sky when starting Aurora Emitter.\nThe secret levels now have hard modes added to them.\n\n///////////////////////////////////\n/ CHANGES FROM V4B(-FIXED) TO V4C /\n///////////////////////////////////\n\nSAMSARAHOLD REJUVENATED:\n\nIncorporated the changes from v4b-fixed.\nThe serpent staff gives 25 ammo instead of 50.\nThe serpent staff should now only take 1 ammo for the drain attack. It also heals past 200 with max. health enhancements (which the original engine code didn't do for some reason).\nNerfed Parias' resistance against hellion projectiles (from 50% to 25%).\n\nSTRONGHOLD REJUVENATED:\n\nNone.\n\nBOTH:\n\nThe message that displays when the jail is opened now shows who opened it.\nCorrected a typo in the terminator morph description.\n\n/////////////////////////////////////////////////////////\n/ CHANGES FROM V4B TO V4B-FIXED (SAMSARAHOLD CORE ONLY) /\n/////////////////////////////////////////////////////////\n\nSAMSARAHOLD REJUVENATED:\n\nDoomguy's chainsaw (with berserk) has been slowed down to 3 tics (from 2). It could beat out the axe in some scenarios.\nDoomguy's railgun has had some damage numbers tweaked, mostly relating to scope usage.\nCorvus' hellstaff does slightly more damage (which is also more random).\nCorvus' tomed staff has had a significant damage buff. No one will use it, but it's there!\nCorvus' tomed ethereal crossbow is slightly nerfed.\nB.J.'s rocket launcher does a bit more damage to non-rippable enemies...and less to actual bosses.\nB.J.'s flamethrower does slightly more damage (increased from 5-40 to 8-64).\nParias' sapphire wand does 1-8 damage (decreased from 2-16). That was too much.\nParias' axe does slightly less damage.\nParias' serpent staff, for some reason, had a shorter melee range than heal distance. Fixed.\nParias' hammer of retribution does more damage.\nParias' firestorm has been tweaked. It has a larger radius and longer range, but it does less damage.\n\nSTRONGHOLD REJUVENATED:\n\nNone.\n\nBOTH:\n\nNone.\n\n//////////////////////////\n/ CHANGES FROM V4 TO V4B /\n//////////////////////////\n\nSAMSARAHOLD REJUVENATED:\n\nAssault troopers in Duke It Out now drop the correct amount of ammo.\nDoomguy's Gentleman mode unique should now trigger properly with unique start.\nCatharsi detonators should no longer be targeted by friendlies.\nThe inventory counter in the full screen HUD now uses Samsara's font instead of Stronghold's.\n\nSTRONGHOLD REJUVENATED:\n\nNone.\n\nBOTH:\n\nFixed the jail in Smoldering Caves not working on certain skill levels.\nSome minor map fixes.\nSome maps have had their par times changed.\n\n/////////////////////////\n/ CHANGES FROM V3 TO V4 /\n/////////////////////////\n\nSAMSARAHOLD REJUVENATED:\n\nFixed the random weapon device not giving Ranger a rocket launcher at random times.\nCorvus no longer gets a redundant deathmatch version of the morph ovum from unique items in Gentleman mode.\nCertain friendly (elite) marines no longer randomly switch to the plasma gun/auto shotgun (they were still able to use their original weapons). That was odd.\nFixed Corvus' tomed gauntlets not checking for max. health enhancements. Forgot to check the engine behaviour at the time.\nDuke's devastator weapon should now be taken away when ending a level.\nSecurity Officer now gets some reserve ammo from weapon pickups. Running over dropped weapons also no longer refills magazines.\nBlack Gold should no longer cause obscene amounts of lag whenever a player gets killed because of overwritten scripts. Hopefully, hopefully.\nAmmo and dropped weapons will no longer spawn in Gentleman mode.\nParias' mystic ambit incant sound now plays for every player affected by it.\nThe MA-75B can be reloaded underwater now.\nThe fusion pistol now takes ammo when you die while charging it.\nThe Tech.50 Pacifier now plays its sound when stunning enemies.\nThe random character checker now only kills you when you (re)spawn with random selected.\nHopefully fixed the weapon pickup sounds randomly not triggering for others.\nWhen starting a map with Gentleman mode on and with unique start, Ranger's Mjolnir should no longer be taken away.\nThe Talon Ceramic Combat Blade should now always play its actual impact sound when it stops bouncing.\nYou should no longer get dummy weapons in Gentleman mode.\nThe time bomb and remote of the Ancients should no longer break on map change.\nEnemies that cloak or otherwise go invisible (like the dune warrior and phase imp) or are normally translucent now lose their (near) invisibility when frozen.\n\nSTRONGHOLD REJUVENATED:\n\nCorrected the pickup message for the shotgun shells (since dropped amounts give 2).\nFixed some marines not leaving decals.\nThe BFG9000 (powered version) now takes 3 cells to fire (decreased from 5).\n\nBOTH:\n\nAuto shotgun pickups no longer refill the clip if weapon stay is off.\nThe homing rocket launcher, repeater, and pyro cannon now have +NOAUTOFIRE. This is so you don't blow yourself up unintentionally in case you run out of ammo.\nFixed a strange hole in the tunnel floor in The Final Stand.\nYou can now walk into the first enemy spawn zone in Emerald Skies. Kinda forgot about that one.\nIt should no longer be possible for the bank to have a negative amount of money.\nSince Black Gold has become much more challenging (which is par for the course for tier six), its par time has been raised to 50:00 (from 26:00).\nSmoldering Caves' par time has been raised to 40:00 (from 30:00) for the same reason as Black Gold.\nRaised the deadline door in Tunnel a bit so cyberdemons and other big enemies can pass through.\nThe land mines should now always play their sound on the final bounce.\nSince Convulsion Of Nature doesn't really have a hard mode (its value was originally 5, now N/A), the enemy limit is now increased based on player count.\nThe release candidate version of Dusk has been added as a familiar mission!\nAs a bonus, an alternate version of Convulsion Of Nature (named Convulsion: Aftermath) has been thrown in as well.\nAdded the original implementation of the Dominator bonus (now called the Survivor bonus). It is given when you complete a deathless run of a level, and it gives 500 credits. Damage bonuses will take precedence over it.\nThe phase imp's back sprite (during its Pain state) apparently had missing offsets. Fixed.\nAll players should now properly receive their respective bonuses instead of reading off the first player's.\n\n/////////////////////////\n/ CHANGES FROM V2 TO V3 /\n/////////////////////////\n\nSAMSARAHOLD REJUVENATED:\n\nSince you get both WSTE-M5s on pickup, its pickup message was changed accordingly.\nThe mace of contrition, Timon's axe, and the hammer of retribution (melee) have had their damage/range values increased.\nThe sapphire wand has its original radius/height/damage values now (changed from 3/2/1-4, respectively).\nThe serpent staff projectiles deal the original amount of 5-40 damage (changed from 5-30).\nThe hammer of retribution projectiles deal 30-240 damage (changed from 20-160).\nThe firestorm small flame explosion radius was increased to 80 (from 64).\nThe Wraithverge is still as unpredictable as ever!\nThe mystic ambit incant's radius was increased to 512 (from 255), and the armour it gives now has an absorption percentage of 75 (increased from 70). It also takes max. health enhancements into account.\nEnemies that float now remain in the air when zorched.\nAll the SamsaraHold CVars have been removed (except for samsarahold_cl_strweapons and samsarahold_allymarines). Since the CVars were added in the Stronghold version (and function the same), there was simply no need to have duplicates.\nB.J.'s extra life will no longer take effect in the jail, meaning you can no longer exploit the jail system with it and keep fighting.\nChexguy's different pain flash colour (when getting damaged by slime) is now handled by Player.DamageScreenColor in single player. It doesn't work in netplay, though, so the old behaviour is still used there.\nParias' krater of might will now restore ammo 1 and 4 by half instead of a quarter if he got a backpack from samsara_backpackstart.\nWeapon pickups should now always show the pickup corresponding to the actual character.\nMarines no longer dance in place when they don't have a target. As funny as it was to see, it actually confused some people as to whether the marines were stuck or able to move.\nThe time bomb/remote/eye of the Ancients, tome of power, and poison cloud flechette now play a sound when used.\nThe random weapon device should now work much better than before.\nIf Duke's jetpack is active when using an I Win button, the jetpack will automatically turn itself off to save fuel.\nHexen marines now take quarter damage from explosions instead of every marine.\nThe red armour spawned in the disco room should no longer respawn.\nFriendly elite marines (auto shotgun variant) should now reload properly.\nGave the friendly bipedicus its active sound.\nThe friendly vore's projectile now has the proper explosion on impact.\nSimilar to Stronghold's marines, the friendly (elite) marine (with samsarahold_allymarines 0) now shows the weapon being used (except for the pistol, which is still shown as a rifle).\nThe chainsaw/shotgun/unique start CVars should no longer take effect in the intermission map.\nsamsara_uniquestart 1/3 will now give a random unique for characters with more than one unique.\nIt should no longer be possible to pick up a unique to get a different unique if you were full on the expected one.\n\nSTRONGHOLD REJUVENATED:\n\nThe plasma and repeater puffs now leave decals.\nThe plasma puff now shows regardless of cl_pufftype.\nThe full screen HUD now shows if you have a berserk.\nThe random weapon device triggers a pickup flash on successful use now.\nYou should now always start with 50 bullets.\n\nBOTH:\n\nThe enemy/item spawns and Overmind timer can no longer go below the initial values if everyone's in jail. A bit of forgetfulness on my part.\nIncreased the amount of health, rockets, and cells given throughout the waves in Black Gold. Waves 7 and 8 were also switched around.\nWhen you join a game, the amount of credits you start with is now based on the tier you joined at instead of being a set value no matter what. You start with 800 credits with the amount increasing for each tier unlocked.\nA counter has been added on the HUD that shows the amount of jailed players (currently full screen only). It appears if at least one player is in jail. In SamsaraHold, this counter is identified by a red number over the credits amount. Doesn't work for spectators at the moment.\nA bank system has been implemented! You can bind a key to it using the controls menu (or just typing \"str_bankmenu\" in the console). It opens a menu where you can withdraw/deposit credits of your chosen amount. To prevent abuse, though, a fee (proportionate to the amount of credits you get on joining) must be paid before you can use the bank. The intermission map also displays the amount of credits in the bank as well.\nAdded music aliases.\nEveryone is now notified when someone runs out of lives, is late to the game, or leaves the jail.\nYou can now walk into the enemy spawn zones in the first side in Inferno, but they will deal 20 fire damage.\nYou can now walk into the enemy spawn zones in Introduction and Tarstone Fortress.\nFor some reason, land mine layers in Tarstone Fortress were spawned via map script. They are now spawned properly so more than one player can pick them up. Also, one of them was changed into a chainsaw.\nEnemies can no longer enter the elevator areas (and, by extension, the upper levels) or fly out of the map in Tarstone Fortress.\nAdded some unused announcer sound files for the Limit, Overmind, and Goals game modes as well as successfully completing a level, beating the par time, and (getting close to) exceeding the par time.\nSlightly improved the charging sequence of the Cyberdemon Mk. II's super attack.\nCorrected some minor cosmetic anomalies.\nIt is no longer possible to fly out of the map in Eye Of The Storm.\nFixed an incorrect texture in Bipolar Bunker.\nSlaughtered mistook cybruisers for Hell warriors in wave 7's description. That has been corrected.\nCoins can no longer be dropped. The ability to store coins in the bank basically made dropping them obsolete.\nYou can no longer jump into the other spawn zones by jumping over the sides of the barriers in Skyfire Research.\nLanding on rocks in Convulsion Of Nature will no longer mysteriously kill you.\nThe teleporters in Three Ways To Die now teleport you to the correct teleporters.\nThe backpack now prevents you from picking it up if you're full on all ammo (unless you didn't have a backpack to begin with).\nThe backpack's cooldown timer will no longer trigger in single player.\nSince Terrorforming pretty much no longer takes forever to load in netplay, the delay until the first wave starts has been reduced.\nZandronum announcer sounds now play whenever a vote to start a mission is called, failed, or passed. Everyone is also notified whenever someone votes.\nFixed the level exit in the jails of certain maps. They should now be triggered repeatedly.\nOkay, now the autodrones should actually work properly. Completely. We can only hope.\n\n//////////////////////////////\n/ CHANGES FROM V2 BETA TO V2 /\n//////////////////////////////\n\nSAMSARAHOLD REJUVENATED:\n\nMax. armour bonuses now actually have a maximum of 100 instead of 50.\nThe red armour now resists zorch propulsor explosions, phoenix rod explosions, hammer of retribution explosions, WMC explosions, and various fire/explosive enemy projectiles.\nPlayers can get burned by various enemy projectiles (where appropriate) now. They also no longer get burned by cybruiser rockets.\nSecurity Officer is now flung properly by arch-viles when samsara_nocustomgravity is true.\nSlot 3, 5, and 7 Duke marines now gib enemies properly.\nArch-viles should now always burn players.\nSecurity Officer's armour should no longer get set to 1 upon picking up a megasphere while having max. armour.\nMegaspheres have their intended behaviour of giving you armour restored.\nYou can now get the secret red card in single player.\nThe supercharge breakfast (outside of Gentleman mode) is now troll-proof.\nWhen Ranger's quad damage recharges, the icon and sound should now always play.\nMedikits now respect max. health enhancements for all characters.\nYellow armour now shows up in the shop if samsara_armormode is 2.\n\nSTRONGHOLD REJUVENATED:\n\nArchons of Hell are now immune to non-forced splash damage.\nSome maps now use SamsaraHold's par times.\nThe pyro cannon marines had a mass of 10 (instead of 100), causing them to get flung really high by explosions. Corrected.\n\nBOTH:\n\nSlaughtered now gives a rocket launcher (but even then, you're not gonna get much ammo for it). Wave 5 was also changed.\nMorphed players should now always go into their Pain states when hit.\nSince Black Gold's lag/crashing issues have been fixed (aside from taking several seconds to load in netplay), it has been moved back to tier six. Shell Shock is now a familiar mission.\nMaps with more than one (mini)boss now have their health indicators merged into one.\nThe plasma rifle (Stronghold version), pyro cannon, and plasma repeater now have offsets in their firing animations to make them look a little nicer.\nSmoldering Caves now gives 3000 credits (same amount as Black Gold and Shell Shock) instead of 1700 (same amount as Delta Bunker). It has also had its equipment/enemy layout changed.\nAdded more alarms in Terrorforming.\nAllies can no longer teleport away via the limit gateway in Tarstone Fortress.\nPlayers could fall behind a tree and get trapped in Dusk. Moved the tree to allow getting out without suiciding, flying, or rocket jumping.\nYou can no longer fall into the little gap in the tunnel with lava in The Final Stand.\nYou can no longer fly or rocket jump over walls and get stuck in Duke It Out and City Of Silence - Apocalypse. You're still given some freedom to explore, but not enough to break the maps.\nThe snow in City Of Silence - Apocalypse's third enemy spawn zone no longer damages you.\nFortress Of Damnation now has an alarm.\nThe Override bonus (don't let the Overmind destroy any cores) now works.\nThe par time bonuses (Timeslicer, Timesplitter, and Timestealer) are now handled properly. They are also no longer given outside of replay mode.\nThe spider demolisher now uses the correct attack sound.\nBefore you enter a map, you're now shown how many players it needs to trigger hard mode (\"N/A\" means the map doesn't have a hard mode). Likewise, before you play it in replay mode, you're shown the par time (as well as the best time if you beat the par time) instead.\nWhen playing a map after completing it for the second time, it now shows the par time. The best time is shown below the par time.\nThe familiar missions room has some detail going for it now.\nMorphed players can no longer get stuck in the doorway to the familiar missions room.\nA super max. health enhancement item has been added to the shop. It instantly brings your health to 400% (credits are taken accordingly, so you don't need to worry about wasting credits in case you got normal max. health enhancement items). Just in case you get tired of cracking the Use button in half on your keyboard/mouse/controller/whatever.\nYou can no longer waste credits if you have the maximum amount of max. health/armour enhancement items. You can also no longer waste credits if you're trying to buy armour, and your current armour is at or above the amount the armour gives.\nThe berserk is now troll-proof.\n(Mini)bosses should now always spawn. No more standing over their spawn zones and preventing them from triggering.\nThe sentry drones in Duke It Out should now work again.\nThe pyro demon should now play its proper attack sound.\nMorphed players no longer have attack names shown twice in the console in netplay.\nItem/enemy spawns should no longer count jailed players! Yay!\nReadded the fade effect that happens when a vote is passed. It was removed when the vote system was implemented.\n\n///////////////////////////////\n/ CHANGES FROM V1B TO V2 BETA /\n///////////////////////////////\n\nSAMSARAHOLD REJUVENATED:\n\nSecurity Officer can now be damaged with the level 3 wave motion cannon shot. The explosion code originally got chewed up and spat out, apparently.\nThe doomsphere powerup now plays its sound again. Guess I wasn't fully awake when I put the sound aliases together. As usual.\nReworked Parias' mystic ambit incant to behave more like Hexen. Instead of healing and spraying armour shards, it now gives exactly 100 health and 50 armour (up to 300 with an absorption percentage of 70) for everyone in a radius of 255 map units.\nBecause I'm extremely crazy, Duke now taunts no matter what weapon he's using. He also taunts when using Ranger's quad damage (but not getting it, the pickup code handles it), the I Win button, and team powerups.\nThe mini cyberdemon and chaos cyberdemon can now be frozen.\nDuke now taunts when killing Hades spheres.\nDuke can now gib and taunt chickens.\nDoomguy's pistol now plays the reload animation whenever a level starts with samsarahold_cl_strweapons on.\nMarines now drop the proper yellow armour.\nSpear of Destiny shots should no longer explode twice on rare occurrences.\n\nSTRONGHOLD REJUVENATED:\n\nReworked the weapon powerup kit. The weapons still behave the same, but they should feel more responsive now.\nAll weapons now have BRIGHT frames where appropriate.\nJust like in SamsaraHold, you are now given a green armour when you're below 50 armour on enter/respawn.\n\nBOTH:\n\nMini cyberdemons can now be stunned.\nThe bruiser demon and ethereal soul now have BRIGHT frames when stunned.\nThe second (and possibly final) phase of bringing back Smoldering Caves and Black Gold has been completed. Mostly balance work was done (thanks, Untitled!).\nSlaughtered, Snake Corridors, and Orbit should be more balanced now.\nYou can now walk into the first two enemy spawn zones in Deepspace 12.\nMarines now fade away when dead.\nThe mission briefing in Tunnel should now end properly.\nIt is now possible to walk into the first enemy spawn zone in Delta Bunker.\nThe invuln timer in Overmind now fades in with everything else in the first wave.\nUsing the secondary fire button while morphed now tells you what attack mode you are now using.\nThe terminator's decimation missile now plays a sound when fired.\nThe railgun's firing animation (level 3 charge) is extended by 2 tics to match the other charge levels.\nThe auto shotgun can now be reloaded with the reload button, and you can zoom in with the railgun with the zoom button. The secondary fire button can still be used in case you're used to it.\nFixed some missing textures in Armageddon and Antlion Nebula.\nFixed a slope in Antlion Nebula.\nThe land mine explosion now has BRIGHT frames in its Death state. It also no longer falls (that just looked weird!).\nDebug information is no longer shown when getting bonuses.\nReadded the bruiser demon morph! As a result, the stronghold_bruisermorph/samsarahold_bruisermorph CVar has been implemented. Setting it to true will make players morph into bruiser demons when using a morph device. False makes them morph into terminators instead. Defaults to false.\n\n//////////////////////////\n/ CHANGES FROM V1 TO V1B /\n//////////////////////////\n\nSAMSARAHOLD REJUVENATED:\n\nFixed Security Officer bringing up dual magnums while reloading and holding down the fire button.\nSecurity Officer's wave motion cannon now actually requires at least 5 cells/rockets to reload the primary/secondary, respectively.\nIt is no longer possible to waste Hexen armour (that is, the 25 armour and 50 extra armour pickups).\nIt is no longer possible to waste unbound megaspheres when you're at 200 health and armour.\nThe Marathon 1 alien weapon can no longer be fired underwater.\nThe dual WSTE-M5s no longer jitter when you try to fire underwater or without at least 2 shells.\nThe doomsphere and time freeze powerups now have sound aliases.\nMade samsara_armormode 3 more fair in terms of getting damage bonuses. The reduced damage bonuses don't take effect until you lose at least 1 point of Marathon armour.\nWhenever a map starts with samsara_armormode 4 in effect, your armour won't be drained to nothing if you had less than 50 armour.\nThe friendly slaughtaur now has its gibbed animation. It also plays its melee sound now.\nThe Wolfenstein chicken leg and the various gib items that B.J. can drink from now respect samsara_nohealth.\nChicken corpses are now removed after some time.\nThe Moloch's lightning attack will no longer spawn the sapphire wand missile trail. It just looked weird (thanks, inheritance).\n\nSTRONGHOLD REJUVENATED:\n\nYou can no longer pick up health/armour bonuses when you're at full health/armour.\n\nBOTH:\n\nAdded two new names to the radio (wave descriptions) in between the waves.\nAdded separate voice clips for completing waves (thanks, Espio!).\nFixed some missing/incorrect textures in Too Young To Defend and Slaughtered.\nFixed a falling tree in Too Young To Defend.\nPlaced an alarm at the base entrance in Smoldering Caves.\nThe shops should be perfectly responsive now.\nPlayers can no longer lose lives in Introduction. It's meant to be a training map, after all.\nEnemies were getting stuck on a tree close to the second spawn zone in Swamp. Moved the tree so they shouldn't get stuck now.\n\n/////////////////////////////////////////////////////////////////////\n/ CHANGES FROM tv50patch2b TO STRONGHOLD/SAMSARAHOLD REJUVENATED V1 /\n/////////////////////////////////////////////////////////////////////\n\nSAMSARAHOLD REJUVENATED:\n\nIt is no longer possible to save ammo by using the mighty foot at the same time as the primary fire.\nSecurity Officer's WMC now properly takes ammo when suiciding with the primary fire.\nPipebombs should now always explode when hit instead of leaving a dud.\nFrozen enemies no longer drop items as soon as they're frozen. They should only drop items after they've shattered.\nDuke's Glock 17 now shows bullet ammo when samsara_pistolammo is on.\nHolograms in Introduction can no longer be frozen. They also take double damage from the fusion pistol.\nMini cyberdemons now take double damage from the fusion pistol.\nThe catharsi's detonator can now only be damaged by the fusion pistol.\nDuke's pipebombs should no longer damage cores and allies.\nThe key bar has been disabled in the full screen HUD.\nProjectiles and effects that bounce no longer make their bounce sound on spawn.\nDropped weapons and ammo no longer fade away.\nThe rest of Doomguy's weapons (Stronghold versions) now use the proper sprites for puffs and projectiles.\nFixed Doomguy's pistol (classic version) using the Stronghold puff.\nUnique start should no longer happen if samsara_nounique is on.\nsamsara_armormode 4 should no longer leave dummy pickups.\nRunning over health spawns while samsara_nohealth is active will no longer give you health. Same deal with slot 7 equipment (samsara_noult) and uniques (samsara_nounique).\nFake hitscan bullets are now real hitscan bullets in netplay! Rejoice!\nPipebombs no longer make their bounce sound when detonating in mid-air. They should also no longer explode twice randomly.\nApparently, the thunderbolt could cause massive amounts of lag if shot into liquids. This should be fixed.\nsamsarahold_cl_dukemusic now works for spectators.\nDoomguy's chaingun (classic version), Chexter's super large zorcher (projectile bounce) and rapid zorcher, and Duke's devastator weapon now have sound aliases.\nThe terminator morph can no longer jump.\nMini cyberdemons and the rest of the City Of Silence enemies can be zorched now.\nDuke now gibs enemies that can be gibbed. He also taunts when seeing/killing boss enemies properly.\nThe friendly flemoidus maximus now has its proper sounds. It also has the proper blood colour (along with the friendly flemoidus bipedicus).\nThe difficulty switches now show their Samsara names (along with the original names in case you get confused).\nIt is no longer possible to carry duplicates of (elite) allied reinforcements. It also spawns a teleport fog when it fails to spawn allies.\nA magnum now appears along with the KKV-7 for Security Officer. Likewise, another WSTE-M5 combat shotgun will appear along with the first one. Once again, character-specific pickup sprites only.\n\nSTRONGHOLD REJUVENATED:\n\nstronghold_cl_dukemusic now works for spectators.\nCores are now immune to non-forced splash damage and can no longer be ripped through to match SamsaraHold.\n\nBOTH:\n\nReworked the boss health indicators. They flickered like mad before in netplay. They should work properly now.\nFixed some misaligned textures in Twilight, Inferno, Snake Corridors, and Eye Of The Storm.\nThe vote counters now recognise if one player has voted instead of saying one player \"have\" voted.\nBegan the first phase of bringing back Smoldering Caves and Black Gold. They are tucked away in a secret \"Familiar Missions\" room. I'll let you figure out how to unlock it. The maps are unmodified, though (with the exception of double par time and different music for Smoldering Caves. Its original track was used thrice already here!), so expect balance and/or stability issues.\nThe flames from the Overmind's pyro shot attack are now unaffected by time freeze. Whoops!\nPlayers can be damaged by barrels (spawned from barrel items) again. In addition, both player barrels and map-spawned barrels take red armour into account in SamsaraHold.\nImp holograms can be gibbed now.\nThe I Win button's music will no longer take effect whenever a mission ends (either victory or defeat).\nThe Overmind now has a timer that shows how long until it (and, by extension, the cores) loses its invulnerability. It's lazily done, but it works.\nThe fat zombie's bile attack now actually has a chance to home in.\nFixed the second jump pad in Antlion Nebula not making any sound. These bugs are getting more and more specific by the minute!\nRunning up to the Nightmare difficulty switch now warns you (similar to selecting it in the main menu itself).\nUsing the extra life or I Win button in the credits should no longer cause the server/console log to whine about nonexistent scripts.\nThe disco room now spawns the proper items. (There's also an Easter egg with it in SamsaraHold.)\nThe terminator morph's pain and footstep sounds now have sound aliases.\nWhen a vote fails, the mission description disappears as well.\nVoting devices should be taken away properly when a map starts. Hopefully.\n\n//////////////////////////////////////////\n/ CHANGES FROM tv50patch2 TO tv50patch2b /\n//////////////////////////////////////////\n\nSAMSARAHOLD:\n\nThe cultists now drop the proper dropped ammo.\nThe terminator morph can now be damaged by smart bombs again. For now.\nThe cultists now play their attack sounds.\nEnemies in City Of Silence - Apocalypse now drop their items when zorched. Whoops.\n\nSTRONGHOLD UNTITLED EDITION:\n\nThe auto shotgun (unpowered version) now respects infinite ammo.\nMarines are now affected by time freeze.\nThe random weapon device now has a 5/256 chance of giving you a superweapon to match SamsaraHold further. Turns out that superweapons became more common from the SamsaraHold-like A_Jump conversion due to miscalculations. That was ridiculous.\nThe cacolantern/nightmare cacodemon projectile now has a speed of 20 to match SamsaraHold.\nThe devastator's projectile debris should now track kills properly.\nThe railgun (powered version) now has BRIGHT frames on the zoomed firing sprites.\nThe terminator morph is no longer immune to enemy terminators' decimation missile attack. It is also now immune to sentry and autodrone shots (which go through anyway, but ya never know).\nThe Thompson cultist now plays its proper attack sound.\nThe babes in Duke It Out have their health changed to match SamsaraHold.\n\nBOTH:\n\nPretty much every boss fight now has a health indicator.\nEveryone is now notified with a message if someone gets a superweapon from the random weapon device.\nWhen an important boss fight happens, the I Win button's music will no longer take effect.\nThe Cyberdemon Mk. II's and final boss' effects are now unaffected by time freeze. Because why not?\nThe terminator morph's decimation missile blast should now track kills properly.\nThe catharsi's detonator now has an obituary message.\nThe marine/allied reinforcements and elite marine/allied reinforcements now actually have a limit of 5 and 2, respectively.\nThe terminator morph now has actual sounds.\nCorrected some typos in The Final Stand.\nThe chaingun (Stronghold version) now performs its attack functions at the proper timing.\nThe barrier item now plays the item pickup sound.\nEnemy projectiles that bounce no longer make their bounce sound on spawn.\nSmart bombs and autodrones were able to work on some bosses for some reason. This has been fixed.\n\n//////////////////////////////////////////\n/ CHANGES FROM tv50patch1c TO tv50patch2 /\n//////////////////////////////////////////\n\nSAMSARAHOLD:\n\nActually fixed Security Officer wasting combined ammo.\nRanger now properly picks up small rockets.\nPicking up slot 7 equipment as Ranger while under the effects of the I Win button will now give you the intended 60 seconds of quad damage.\nIt is no longer possible to restart the tome of power's cooldown timer while its effects are active.\nParias' frost shards now plays its firing sound again.\nFixed B.J.'s ammo crate suddenly not making a sound on use in netplay.\nDuke's night vision goggles now have a tag.\nRanger's thunderbolt discharge no longer damages cores and allies. If you survive it, the thunderbolt will also have a delay before you can fire it again (because an I Win button with that thing is ridiculous).\nParias now respects the blursphere troll-proofing. Ranger properly respects the blursphere, invulnerability, and megasphere troll-proofing as well.\nSkill 0 now gives double ammo again.\nRanger's invulnerability is now properly taken away on map change.\nsamsarahold_cl_turnthatdamnalarmoff has been touched upon and readded. Hopefully, it works this time!\nInfinite ammo now actually works for Parias' axe and hammer. A bit messy, but it works. The axe puff also properly takes ammo when time is frozen.\nDoomguy's BFG9000 (classic version) and Chex Warrior's LAZ device (classic LAZ version) now animate properly.\nThe marines should play their weapon sounds now.\nEveryone plays their quad damage sounds. Just in case someone triggers that certain Zandronum bug.\nRanger now yelps when getting hit by the Inferno Demon's attacks.\nEnemies that drop ammo now drop ammo when zorched.\n\nSTRONGHOLD UNTITLED EDITION:\n\nThe random weapon device now tells you what weapon you got from it. The A_Jump calls were also changed to match SamsaraHold's chances.\nAdded stronghold_cl_turnthatdamnalarmoff. It does what you'd expect.\n\nBOTH:\n\nThe railgun (unpowered version) no longer has pseudo-fusion pistol syndrome. In other words, it will no longer charge to the next charge level until it has enough ammo.\nFixed some incorrect/missing textures in the cave spawns in Swamp.\nFixed some missing textures in Asteroid.\nFixed a mysteriously scrolling floor under the left bridge path in Dusk (as well as the scrolling sides).\nPlaced an alarm by the core area in Phobos Anomaly.\nThe voting device now animates properly and \"fires\" instantly. It also has a tag now.\nReadded the blue particle generators at the spawn spot.\nCorrected a typo in Wave 7's description in Duke It Out.\n\n///////////////////////////////////////////\n/ CHANGES FROM tv50patch1b TO tv50patch1c /\n///////////////////////////////////////////\n\nSAMSARAHOLD:\n\nRemoved the RenderStyle stuff from the doomsphere and time freeze pickups (likely a leftover from very early builds of SamsaraHold).\nThe 1.5x damage and lesser tome powerups are now troll-proof.\nAllies and walls are now immune to samsara_peoplediewhentheyarekilled. You shouldn't be able to troll them period.\n\nSTRONGHOLD UNTITLED EDITION:\n\nThe elite marines' projectiles now go through players and allies.\nPlayers and allies can now move and shoot through the terminator player morph.\nIf a vote for Deepspace 12 fails, you can now try to vote for it again.\nThe auto shotgun (powered version) properly displays its ammo counter on the normal HUD.\n\nBOTH:\n\nThe terminator weapon has a tag.\nFixed some fences that weren't marked as blockable in Snake Corridors and Convulsion Of Nature.\nBarrels spawned by players can no longer hurt cores and allies.\nAdded the unused LAX_STAR as a jukebox song.\n\n//////////////////////////////////////////\n/ CHANGES FROM tv50patch1 TO tv50patch1b /\n//////////////////////////////////////////\n\nSAMSARAHOLD:\n\nGave the sentries the missing immunities.\nDoomguy's berserk sprite is now affected by samsarahold_cl_strweapons.\n\nSTRONGHOLD UNTITLED EDITION:\n\nGave the player BFG tracers +MTHRUSPECIES support. Just to be safe.\n\nBOTH:\n\nFixed the autodrones telefragging the user. I somehow misread A_SpawnItemEx's flags and gave them the telefrag flag by accident. They're still not actually fixed despite all the SXF_NOCHECKPOSITION checks!\nThe stats screen in replay mode should now actually play a sound when you get credits from meeting the par time.\n\n///////////////////////\n/ FIRST PATCH RELEASE /\n///////////////////////\n\nSAMSARAHOLD:\n\nDoomguy's fist (smooth animation) ends 1 tic slower to match the vanilla animation.\nDoomguy's chainsaw (Stronghold version) now plays its proper Select sound.\nDoomguy's chainsaw plays its Ready sound at the proper speed for both classic and Stronghold versions.\nDoomguy's automatic shotgun can no longer be reloaded if the clip is full.\nDoomguy's automatic shotgun now plays its firing sound in the correct sound channel (CHAN_WEAPON).\nDoomguy's flamethrower is tagged \"Flamethrower\" to match the original version.\nDoomguy's plasma rifle projectile (Stronghold version) uses its own sounds (which makes literally no difference, but it exists in case some sound replacer mod wants to replace those sounds).\nDoomguy's BFG projectile (Stronghold version) now plays its proper death sound.\nDoomguy's plasma repeater now plays its firing sound in the correct sound channel (CHAN_WEAPON).\nChex Warrior's super bootspork plays its attack sounds at the proper speed.\nCorvus' gauntlets now plays its sounds in the correct sound channel (CHAN_AUTO). It also plays its hit sounds now (albeit sloppily done).\nCorvus' gauntlets perform its attack functions at the proper timing.\nB.J.'s ammo crate can no longer be used while you have full Ammo 1, preventing waste.\nParias now respects the backpack pickup cooldown timer.\nDuke's taunt cooldown now works properly when picking up a medikit. (backported fix)\nSecurity Officer can no longer pick up combined ammo while you have full ammo, preventing waste.\nRanger's rocket launcher DOE firing animation ends 1 tic slower to match the normal firing animation.\nRanger should no longer have a dummy Wolfenstein rocket launcher when exiting a map.\nRanger's weapons should now properly switch when out of ammo.\nRanger's gauntlet and Doomguy's BFG9000 now properly check for PowerDoubleFiringSpeed.\nDuke's, Security Officer's, and Ranger's weapons now have their own weapon bobbing.\nEveryone that isn't B.J. actually gets yellow armour upon using a Wolfenstein extra life.\nChex Warrior actually uses the Wolfenstein extra life when killed by slime.\nDuke uses the proper sprite when using a Wolfenstein extra life.\nSecurity Officer's Pain blend flashes actually trigger while holding a Wolfenstein extra life.\nRanger uses the proper sounds when getting damaged while holding a Wolfenstein extra life.\nThe unique team powerup device item now has the proper pickup message and tag.\nThe allied reinforcements item now has the proper pickup message and tag.\nThe elite allied reinforcements item now has the proper pickup message and tag.\nAdded a coin counter to the full screen HUD.\nThe following weapons now light up properly on the HUD when selected: Duke's riot shotgun, B.J.'s chaingun, Ranger's rocket launcher, Duke's devastator weapon, Security Officer's wave motion cannon (full screen).\nDoomguy's, Chexter's, Corvus', B.J.'s, and Ranger's pistol weapons now show ammo on the automap while samsara_pistolammo is on.\nThe Ammo 1 number now lights up when using Security Officer's magnum(s) while samsara_pistolammo is on.\nThe Marathon bullet puff sounds no longer conflict with the Stronghold bullet puff sounds.\nThe CVar switches now tell you if a CVar is enabled or disabled. The chainsaw start option also recognises the second option that is automatically turned on when tier six is accessible.\nReadded the flying spaceships that show up every now and then.\nDoomguy's Stronghold weapons now have their respective puffs.\nIf Stronghold weapons are enabled, marines that are spawned now have Stronghold's weapon sounds and puffs instead. Marines in The Final Stand and Fortress Of Damnation have a chance of spawning with these changes no matter what.\nHell Warriors no longer get wiped out of existence when samsara_cl_bloodyhell is 2 or -1.\nThe Azazel red projectile impact sound no longer conflicts with Ranger's explosion sound.\nThe team power item now has its pickup sound.\nThe unique start switches in the intermission map no longer look misaligned offline when the map is reset. Still broken in netplay for now.\nThe chaingun (dropped by chaingunners) now has its proper Spawn sprite.\nParias' Wraithverge now shows an Ammo 4 icon on the full screen HUD. Security Officer's MA-75B and WMC ammo icons in the full screen HUD are also adjusted properly.\nPlayers no longer leave standing dead bodies if they join in as random.\nThe 1.5x damage powerup and lesser tome of power now expire properly.\nsamsarahold_cl_dukemusic now works for every player that has it on. Still doesn't work for spectators. Setting it to 2 will also just play the music without displaying credits (in case you get tired of seeing it for the literal one thousandth time).\nThe Hexen armour now has sprites.\nAdded tags on inventory items.\nThe random weapon item can now give alternate unique equipment.\nWhen samsarahold_cl_strweapons is on, Doomguy's weapon pickup sprites and sounds will change accordingly. Character-specific sprites only, though.\nDropped ammo pickups now use their own sprites instead of the Samsara ammo pickup sprites.\nDoomguy's extra Stronghold weapons now appear on top of the weapon pickup the extra weapon occupies (railgun over plasma rifle, for example). Again, character-specific pickup sprites only.\nEnemy ammo drops now give the proper amount of ammo.\nEnemies that fire bullet puffs now use the proper bullet puffs.\nSlot 5 Chex marines now properly zorch enemies.\nDoomguy's pistol now properly loops to the Ready state if samsarahold_cl_strweapons is on.\nDoomguy's berserk (BFG replacement version) now has the proper sprite in Gentleman mode.\nDoomguy's plasma repeater shots now have the correct decal.\nSecurity Officer's player sprites are now scaled properly.\nB.J.'s ammo crate now has a character-specific pickup sprite.\nUpdated bloodyhell levels -1, 1, and 2 to the latest code.\nFixed pipebombs trying to point to M1911.\nHopefully fixed Duke's fingers breaking when he kicks and runs out of ammo for the Glock 17.\nMarines now play their sounds properly again.\nDoomguy's Stronghold weapons now have GLDEFS entries.\n\nSTRONGHOLD UNTITLED EDITION:\n\nThe chainsaw (unpowered version) now has an actual tag.\nThe weapon powerup kit can no longer be used while its effect is active, preventing waste.\nThe automatic shotgun is tagged \"Auto Shotgun\".\nThe healing stations now heal you at a rate of 1 tic to match the SamsaraHold version.\nRemoved some DECORATE code that was only necessary for SamsaraHold.\nThe planet name over the entrance to Delta Bunker now matches what the description says.\nPowerups now play their pickup sounds properly.\nThe pyro cannon now bobs, but only vertically.\nThe auto shotgun (powered version) has its proper reload speed when reloaded via primary fire button.\nThe pistol's firing animation now has the proper timing. The powered version now animates properly.\nThe nightmare cacodemon's and cacolantern's projectiles now have the proper sprites.\nThe invulnerability powerup is now actually troll-proof.\nThe plasma rifle no longer fires a conflicting PlasmaBall2 projectile.\nThe radsuit is now troll-proof.\nThe flamethrower/pyro cannon ammo now has a pickup sound.\nAdded a stronghold_hardmode CVar.\nThe fist, chainsaw, and railgun now use normal puffs.\nAdded a stronghold_cl_dukemusic CVar.\nMade sure replaced actors are actually replaced in Zandronum...at the cost of breaking in ZDoom.\nCores and goals can now be damaged and destroyed by demolisher BFG tracers again.\nCorrected the enhanced cacodemon obituaries to match SamsaraHold.\nThe nightmare cacodemon has the correct blood colour now.\nPlayers and marines can shoot through each other with hitscan weapons.\n\nBOTH:\n\nThe chainsaw now plays its attack sounds at the proper speed.\nThe railgun (unpowered version) no longer skips its second level shot in skills 0 and 4.\nThe announcer now has a \"Twentieth wave!\" sound entry. There's still no sound, but the entry is there for sound replacer mod purposes.\nAntlion Nebula's jump pad now plays a sound.\nCyclone no longer has a win message trigger at the start of the final wave.\nThe final boss' skeletons no longer play their hit sound when they don't actually hit anything.\nThe stats \"screen\" in replay mode now shows how much credits you gain from the par time and plays a sound accordingly. The \"Hard mode completed!\" message is also no longer separate, halving the wait time.\nFixed some typos in Deepspace 12.\nThe powerups in Zandronum now have their announcer sounds play.\nDangoo Desert, Bipolar Bunker, Duke It Out, and City Of Silence - Apocalypse no longer play another win message after the intended win message.\nThe STR35 trigger now uses the vote system.\nThe credits now takes you back to MAP99 when it's complete.\nThe Cyberdemon Mk. II's and final boss' projectiles are now unaffected by time freeze.\nThe land mines no longer make their bounce sound on spawn.\nAdded a missing TimeAttackMode check for Antlion Nebula's hard mode.\nSwitched the cybruiser's and archon of Hell's enemy types around in the enemy gallery.\nMarines, sentries, and mission-critical objectives can no longer be damaged by players.\nThe weapon powerup kit/unique team powerup device now has a pickup sound.\nJUKE08 and JUKE09 now play from the jukebox. MR_FINAL also plays instead of D_INT if all the missions are complete. It also maintains its song order properly with multiple players.\nThe difficulty setting room now tells you what difficulty is currently set when you enter the room.\nThe railgun now plays its sounds properly (in both sound files and timing).\nThe plasma repeater, railgun, and pyro cannon have sound aliases that point to the original sounds (again, sound replacer mod purposes).\nThe autodrones should now spawn properly.\nTouched up on some enemy obituaries.\nThe allmap is now actually troll-proof.\nAdded a 1 tic delay to the final boss' Heal state (both phases) in an attempt to stop crashing.\nFixed a typo in Tunnel's planet name in the description.\nThe final boss' health display now shows throughout the whole fight instead of just the first half of the first phase.\nThe smart bomb can now be thrown through players and barriers. It also now uses the proper damage type.\nCity Of Silence - Apocalypse no longer triggers music twice on the third wave.\nThe diabolist is now correctly referred to as such.\nInfinite ammo now works properly for all weapons.\nThe Overmind's pyro shot debris is now unaffected by time freeze powerups. It can also actually hit players and cores again.\nIt should no longer be possible to trigger votes again if a vote is already underway.\nYou can no longer get stuck whenever MAP99 is refreshed during a vote.\nThe pyro cannon no longer damages any teammate that didn't shoot it with the lingering flames. The owner can still get hurt by them, though.\nThe limit on the amount of barrels you can hold is fixed. You can also buy the maximum of 50 barrels.\nShops should be even more responsive now."
      },
      {
        "source": "pk3",
        "name": "cvarinfo.txt",
        "contents": "server bool stronghold_hardmode = false;\nserver bool stronghold_bruisermorph = false;\nserver int stronghold_effectiveplayercount = 0; // stronghold_screwthisweneedmoreplayers\nserver int stronghold_effectiveplayercounttype = 0;\nserver bool stronghold_infinitelives = false;\n\nuser int stronghold_cl_dukemusic = 0;\nuser int stronghold_cl_turnthatdamnalarmoff = 0;\nuser noarchive int stronghold_cl_bankcredits = 0;\nuser bool stronghold_cl_announcer = true;\nuser bool stronghold_cl_iwinbuttonmusic = true;"
      },
      {
        "source": "pk3",
        "name": "decorate.txt",
        "contents": "#include \"actors/monsters/cyberdemon2.txt\"\n\n#include \"actors/tokens.txt\"\n#include \"actors/misc.txt\"\n#include \"actors/effects.txt\"\n\nActor SuperSentryItem : CustomInventory 25008\n{\n//$Category Stronghold_Items\n  inventory.pickupmessage \"$STR_GOTSUPERSENTRY\"\n  inventory.maxamount 2\n  inventory.icon SSEIA0\n  Tag \"$STR_POWERUPTAG_SUPERSENTRY\"\n  +INVENTORY.INVBAR\n  Scale 0.75\n  States\n  {\n  Spawn:\n        SSEN A -1 BRIGHT\n    \tStop\n  Use:\n\t\tTNT1 A 0 A_SpawnItemEx(\"ItemFogSentry\",64,0,16,0,0,0,0,SXF_TRANSFERTRANSLATION|SXF_NOCHECKPOSITION)\n        TNT1 A 0 A_SpawnItemEx(\"SuperSentry\",64,0,0,0,0,0,0,SXF_TRANSFERTRANSLATION|SXF_NOCHECKPOSITION)\n        Stop\n  }\n}\n\nActor SuperSentryPlasma\n{\n\tradius 1\n\theight 2\n\tspeed 20\n        damage (18)\n        scale 0.3\n    DamageType \"BossFactor\"\n    +NOEXTREMEDEATH\n\t+DONTBLAST\n\t+PAINLESS\n    +THRUSPECIES\n    Species \"Player\"\n\tPROJECTILE\n        translation \"192:207=208:223\",\"240:246=223:223\"\n        SeeSound \"weapons/repfir\"\n        DeathSound \"weapons/railf1\"\n\tstates\n \t{\n \tspawn:\n   \t\tPLSS AB 4 Bright\n   \t\tloop\n \tDeath:\n   \t\tPLSE ABCDE 4 Bright\n  \t\tStop\n \t}\n}\n\nActor SuperSentry 12858\n{\n//$Category Stronghold_Marines\n    Mass 0x7FFFFFFF\n    DamageFactor \"OvermindFactor\", 10\n    DamageFactor \"OvermindFactorFire\", 10\n    DamageFactor \"Inferno\", 10\n    DamageFactor \"InfernoRock\", 10\n    DamageFactor \"Cyber2Factor\", 10\n    DamageFactor \"Cyber2FactorExplosive\", 10\n    DamageFactor \"Cyber2FactorFire\", 10\n    DamageFactor \"STBoss\", 10\n    DamageFactor \"STBossFactor\", 10\n    DamageFactor \"SpiritBoss\", 10\n    DamageFactor \"SpiritBossFactor\", 10\n    DamageFactor \"Animate\", 10\n    DamageFactor \"BossFactor\", 0\n    DamageFactor \"PlayerAlly\", 0\n    DamageFactor \"PlayerAllyRocket\", 0\n    DamageFactor \"PlayerAllyPlasma\", 0\n    DamageFactor \"PlayerAllyRailgun\", 0\n    DamageFactor \"PlayerAllyRepeater\", 0\n    DamageFactor \"PlayerAllyFire\", 0\n    DamageFactor \"PlayerAllyBFG\", 0\n    DamageFactor \"PlayerAllyBFGSplash\", 0\n    DamageFactor \"PlayerAllyIce\", 0\n    DamageFactor \"MarineAlly\", 0\n    DamageFactor \"MarineAllyRocket\", 0\n    DamageFactor \"MarineAllyPlasma\", 0\n    DamageFactor \"MarineAllyRailgun\", 0\n    DamageFactor \"MarineAllyRepeater\", 0\n    DamageFactor \"MarineAllyFire\", 0\n    DamageFactor \"MarineAllyBFG\", 0\n    DamageFactor \"MarineAllyBFGSplash\", 0\n    DamageFactor \"MarineAllyIce\", 0\n    Damagefactor \"Stunner\", 0\n    DamageFactor \"SmartBomb\", 0\n    DamageFactor \"CoreFriendly\", 0\n    DamageFactor \"CoreFriendlyFire\",0\n    Radius 16\n    Height 16\n    Health 5000\n    MaxStepHeight 512\n    MaxDropOffHeight 512\n    RadiusDamageFactor 0.25\n\t//+nodamage\n\t-solid\n\t-shootable\n\t+notarget\n\t+noblood\n\t+friendly\n\t+lookallaround\n    +ALWAYSFAST\n\t+missilemore\n\t+missileevenmore\n\t+thruspecies\n    +ISMONSTER\n    -COUNTKILL\n    +NOTAUTOAIMED\n\tSpecies \"Player\"\n    MinMissileChance 0\n    Speed 0\n    Obituary \"$STR_OB_SUPERSENTRY\"\n    Tag \"$STR_MONSTERTAG_SUPERSENTRY\"\n\tstates\n \t{\n \tspawn:\n \t\tDGUN A 4 A_Look\n \t\tloop\n \tsee:\n \t\tDGUN A 4 A_Chase\n \t\tloop\n\tmissile:\n \t\tDGUN A 4 A_FaceTarget\n \t\tDGUN B 4 bright A_CustomMissile(\"SuperSentryPlasma\", 16, -10, 0)\n \t\tDGUN C 4 bright A_CustomMissile(\"SuperSentryPlasma\", 16, 10, 0)\n        DGUN A 4 A_FaceTarget\n \t\tGoto See\n\tdeath:\n \t\tTNT1 A 4\n \t\tstop\n \t}\n}\n\nActor SuperMarineItem : CustomInventory 25009\n{\n//$Category Stronghold_Items\n  inventory.pickupmessage \"$STR_GOTSUPERMARINE\"\n  inventory.maxamount 2\n  Tag \"$STR_POWERUPTAG_SUPERMARINE\"\n  inventory.icon SMRIA0\n  +INVENTORY.INVBAR\n  Scale 0.75\n  States\n  {\n  Spawn:\n   \tSMAR A -1 BRIGHT\n    stop\n  Use:\n\tTNT1 A 0 A_SpawnItemEx(\"TeleportFog\",64,0,16,0,0,0,0,SXF_TRANSFERTRANSLATION|SXF_NOCHECKPOSITION)\n\tTNT1 A 0 A_Jump(128, \"BFGMarine\")\n\tTNT1 A 0 A_Jump(128, \"PyroMarine\")\n\tGoto DevaMarine\n  BFGMarine:\n\tTNT1 A 0 A_SpawnItemEx(\"STMarineBFG\",64,0,16,0,0,0,0,SXF_TRANSFERTRANSLATION|SXF_NOCHECKPOSITION)\n\tStop\n  PyroMarine:\n\tTNT1 A 0 A_SpawnItemEx(\"STMarinePyroCannon\",64,0,16,0,0,0,0,SXF_TRANSFERTRANSLATION|SXF_NOCHECKPOSITION)\n\tStop\n  DevaMarine:\n\tTNT1 A 0 A_SpawnItemEx(\"STMarineDevastator\",64,0,16,0,0,0,0,SXF_TRANSFERTRANSLATION|SXF_NOCHECKPOSITION)\n\tStop\n  }\n}\n\nActor SuperMarineTimer : Powerup { Powerup.Duration 52 }\n\nactor STMarineSuperBase\n{\n    PainChance 128\n    MONSTER\n    Species \"Player\"\n    +THRUSPECIES\n    +NEVERRESPAWN\n    -COUNTKILL\n    -ACTIVATEMCROSS\n    +MISSILEMORE\n    +NODROPOFF\n    +FRIENDLY\n    +SLIDESONWALLS\n    +LOOKALLAROUND\n    +QUICKTORETALIATE\n    +NOBLOCKMONST\n    +FLOORCLIP\n    +NOTAUTOAIMED\n    Radius 16\n    Height 56\n    Mass 100\n    Health 400\n    DamageFactor \"PlayerAlly\", 0\n    DamageFactor \"PlayerAllyRocket\", 0\n    DamageFactor \"PlayerAllyPlasma\", 0\n    DamageFactor \"PlayerAllyRailgun\", 0\n    DamageFactor \"PlayerAllyRepeater\", 0\n    DamageFactor \"PlayerAllyFire\", 0\n    DamageFactor \"PlayerAllyBFG\", 0\n    DamageFactor \"PlayerAllyBFGSplash\", 0\n    DamageFactor \"PlayerAllyIce\", 0\n    DamageFactor \"MarineAlly\", 0\n    DamageFactor \"MarineAllyRocket\", 0\n    DamageFactor \"MarineAllyPlasma\", 0\n    DamageFactor \"MarineAllyRailgun\", 0\n    DamageFactor \"MarineAllyRepeater\", 0\n    DamageFactor \"MarineAllyFire\", 0\n    DamageFactor \"MarineAllyBFG\", 0\n    DamageFactor \"MarineAllyBFGSplash\", 0\n    DamageFactor \"MarineAllyIce\", 0\n    DamageFactor \"Stunner\", 0\n    DamageFactor \"SmartBomb\", 0\n    DamageFactor \"CoreFriendly\", 0\n    DamageFactor \"CoreFriendlyFire\",0\n\tSeeSound \"marine/sight\"\n    ActiveSound \"marine/active\"\n    DeathSound \"marine/death\"\n    PainSound \"marine/pain\"\n    Obituary \"$STR_OB_SUPERMARINE\"\n    Tag \"$STR_MONSTERTAG_SUPERMARINE\"\n}\n\nActor STMarineBFG : STMarineSuperBase\n{\n\tSpeed 11\n\tStates\n\t{\n\tSpawn:\n\t\tPB10 A 4 A_Look\n\t\tLoop\n\tSee:\n\t\tPB10 A 2 A_Chase\n\t\tPB10 A 1 A_Chase\n\t\tPB10 B 2 A_Chase\n\t\tPB10 B 1 A_Chase\n\t\tPB10 C 2 A_Chase\n\t\tPB10 C 1 A_Chase\n\t\tPB10 D 2 A_Chase\n\t\tPB10 D 1 A_Chase\n\t\tLoop\n\tMissile:\n\t\tTNT1 A 0 A_JumpIfInventory(\"SuperMarineTimer\", 1, \"See\")\n\t\t//TNT1 A 0 A_ChangeFlag(\"NOPAIN\",1)\n\t\tTNT1 A 0 A_PlayWeaponSound(\"weapons/bfgf\")\n\t\tPB10 EEEE 6 A_FaceTarget\n\t\tPB10 E 7 A_FaceTarget\n        TNT1 A 0 A_GiveInventory(\"SuperMarineTimer\")\n      \tPB10 F 10 bright A_CustomMissile(\"MarineBFGBall\")\n      \tPB10 E 33\n\t\t//TNT1 A 0 A_ChangeFlag(\"NOPAIN\",0)\n\t\tGoto See\n\tPain:\n\t\tPB10 G 4\n\t\tPB10 G 4 A_Pain\n\t\tTNT1 A 0 A_Chase(\"\", \"\", CHF_FASTCHASE)\n\t\tGoto See\n\tDeath:\n\t\tPB10 H 10\n\t\tPB10 I 10 A_Scream\n\t\tPB10 J 10 A_NoBlocking\n\t\tPB10 KLM 10\n\t\tPB10 N 3000\n\t\tPB10 N 2 A_FadeOut(0.1)\n\t\twait\n\tXDeath:\n\t\tPB10 O 5\n\t\tPB10 P 5 A_XScream\n\t\tPB10 Q 5 A_NoBlocking\n\t\tPB10 RSTUV 5\n\t\tPB10 W 3000\n\t\tPB10 W 2 A_FadeOut(0.1)\n\t\twait\n\t}\n}\n\nactor STMarineBFG2 : STMarineBFG replaces MarineBFG {}\n\nActor MarineBFGBall\n{\n  Radius 13\n  Height 8\n  Speed 25\n  Damage 100\n  RenderStyle Add\n  Alpha 0.75\n  DeathSound \"weapons/bfgx\"\n  DamageType \"MarineAllyBFG\"\n  PROJECTILE\n  Species \"Player\"\n  +THRUSPECIES\n  +RANDOMIZE\n  +FORCERADIUSDMG\n  Decal BFGLightning\n  States\n  {\n  Spawn:\n    BFS1 AB 4 bright\n    Loop\n  Death:\n    BFE1 AB 8 bright\n    TNT1 A 0 A_BFGSpray(\"MarineBFGExtra\")\n    BFE1 CDEF 8 bright\n    Stop\n  }\n}\n\nActor MarineBFGExtra : BFGExtra\n{\n  DamageType \"MarineAllyBFGSplash\"\n  Species \"Player\"\n  +MTHRUSPECIES\n}\n\nActor STMarinePyroCannon : STMarineSuperBase\n{\n\tSpeed 9\n\tStates\n\t{\n\tSpawn:\n\t\tPPYR A 4 A_Look\n\t\tLoop\n\tSee:\n\t\tPPYR A 2 A_Chase\n\t\tPPYR A 1 A_Chase\n\t\tPPYR B 2 A_Chase\n\t\tPPYR B 1 A_Chase\n\t\tPPYR C 2 A_Chase\n\t\tPPYR C 1 A_Chase\n\t\tPPYR D 2 A_Chase\n\t\tPPYR D 1 A_Chase\n\t\tLoop\n\tMissile:\n\t\tTNT1 A 0 A_JumpIfInventory(\"SuperMarineTimer\", 1, \"See\")\n\t\t//TNT1 A 0 A_ChangeFlag(\"NOPAIN\",1)\n\t\tPPYR E 6 A_FaceTarget\n\t\tPPYR E 7 A_FaceTarget\n        TNT1 A 0 A_GiveInventory(\"SuperMarineTimer\")\n\t\tPPYR F 15 bright A_CustomMissile(\"MarinePyroShot\")\n      \tPPYR E 20\n\t\t//TNT1 A 0 A_ChangeFlag(\"NOPAIN\",0)\n\t\tGoto See\n\tPain:\n\t\tPPYR G 4\n\t\tPPYR G 4 A_Pain\n\t\tTNT1 A 0 A_Chase(\"\", \"\", CHF_FASTCHASE)\n\t\tGoto See\n\tDeath:\n\t\tPPYR H 10\n\t\tPPYR I 10 A_Scream\n\t\tPPYR J 10 A_NoBlocking\n\t\tPPYR KLM 10\n\t\tPPYR N 3000\n\t\tPPYR N 2 A_FadeOut(0.1)\n\t\twait\n\tXDeath:\n\t\tPPYR O 5\n\t\tPPYR P 5 A_XScream\n\t\tPPYR Q 5 A_NoBlocking\n\t\tPPYR RSTUV 5\n\t\tPPYR W 3000\n\t\tPPYR W 2 A_FadeOut(0.1)\n\t\twait\n\t}\n}\n\nActor MarinePyroShot\n{\n   Radius 8\n   Height 12\n   Speed 30\n   Damage 180\n   PROJECTILE\n   RenderStyle Add\n   DamageType \"MarineAllyFire\"\n   Alpha 0.95\n   Scale 0.75\n   SeeSound \"weapons/hellfi2\"\n   DeathSound \"weapons/hellex2\"\n   Decal BigScorch\n   Species \"Player\"\n   +THRUSPECIES\n   States\n   {\n   Spawn:\n      PBAL AB 4 Bright A_Explode(128,128,0)\n      Loop\n   Death:\n      TNT1 A 0 A_NoGravity\n      PYXP AB 2 Bright\n      PYXP C 2 Bright A_Explode(192,256,0)\n      TNT1 A 0 A_CustomMissile(\"MarinePyroSpawner\",0,0,0,4)\n      TNT1 A 0 A_CustomMissile(\"MarinePyroSpawner\",0,0,45,4)\n      TNT1 A 0 A_CustomMissile(\"MarinePyroSpawner\",0,0,90,4)\n      TNT1 A 0 A_CustomMissile(\"MarinePyroSpawner\",0,0,135,4)\n      TNT1 A 0 A_CustomMissile(\"MarinePyroSpawner\",0,0,180,4)\n      TNT1 A 0 A_CustomMissile(\"MarinePyroSpawner\",0,0,225,4)\n      TNT1 A 0 A_CustomMissile(\"MarinePyroSpawner\",0,0,270,4)\n      TNT1 A 0 A_CustomMissile(\"MarinePyroSpawner\",0,0,315,4)\n      TNT1 A 0 A_GiveInventory(\"StrAMushroomBypassOn\")\n      TNT1 A 0 A_Mushroom(\"MarinePyroFlare\",16,MSF_DontHurt)\n      TNT1 A 0 A_GiveInventory(\"StrAMushroomBypassOff\")\n      TNT1 A 0 A_SetDamageType(\"MarineAllyFire\")\n      PYXP DEFGHIJKLMNOPQRSTU 2 Bright\n      stop\n   }\n}\n\nActor MarinePyroSpawner\n{\n   Radius 1\n   Height 1\n   Damage 0\n   PROJECTILE\n   Speed 15\n   +THRUACTORS\n   +BLOODLESSIMPACT\n   +PAINLESS\n   States\n   {\n   Spawn:\n      TNT1 AAAAA 5 A_CustomMissile(\"MarinePyroBoom\",0,0,0,4)\n      stop\n   }\n}\n\nActor MarinePyroBoom\n{\n   Radius 0\n   Height 1\n   PROJECTILE\n   RenderStyle Add\n   Alpha 0.95\n   Scale 0.67\n   Species \"Player\"\n   +THRUSPECIES\n   SeeSound \"weapons/boom1_2\"\n   States\n   {\n   Spawn:\n      PYXP ABCDEFGHIJKLMNOPQRSTU 2 Bright\n      stop\n   }\n}\n\nActor MarinePyroFlare\n{\n   Radius 8\n   Height 11\n   Speed 35\n   Damage 10\n   PROJECTILE\n   RenderStyle Add\n   DamageType \"MarineAllyFire\"\n   Decal DoomImpScorch\n   Alpha 0.95\n   Species \"Player\"\n   +THRUSPECIES\n   -NOGRAVITY\n   +FORCERADIUSDMG\n   DeathSound \"weapons/bang1_2\"\n   States\n   {\n   Spawn:\n      TNT1 A 1 A_SpawnItemEx(\"PyroFX\",0,0,0,0,0,0,0,128)\n      loop\n   Death:\n      TNT1 A 0 A_NoGravity\n      FRFX HIJ 2 Bright\n      FRFX J 0 A_Explode(64,64,0)\n      FRFX J 0 A_SpawnItemEx(\"MarinePyroDropFire\",0,0,0,0,0,0,0,SXF_TRANSFERPOINTERS)\n      FRFX KLMNO 2 Bright\n      stop\n   }\n}\n\nActor MarinePyroDropFire\n{\n   Radius 8\n   Height 40\n   PROJECTILE\n   RenderStyle Add\n   DamageType \"MarineAllyFire\"\n   Alpha 0.90\n   DONTHURTSHOOTER\n   Species \"Player\"\n   +THRUSPECIES\n   +PAINLESS\n   -NOGRAVITY\n   +LOWGRAVITY\n   +NOEXPLODEFLOOR\n   +NODAMAGETHRUST\n   +DONTSPLASH\n   States\n   {\n   Spawn:\n      FLME A 0 Bright\n      FLME A 0 Bright A_Playsound(\"weapons/onfire2\")\n      FLME A 2 Bright A_Explode(5,16,0)\n      FLME BCDEFGHIJKLMN 2 Bright A_Explode(5,16,0)\n      TNT1 A 0 A_Playsound(\"weapons/onfire2\")\n      FLME A 2 Bright A_Explode(5,32,0)\n      FLME BCDEFGHIJKLMN 2 Bright A_Explode(5,16,0)\n      TNT1 A 0 A_Playsound(\"weapons/onfire2\")\n      FLME A 2 Bright A_Explode(5,32,0)\n      FLME BCDEFGHIJKLMN 2 Bright A_Explode(5,16,0)\n      TNT1 A 0 A_Playsound(\"weapons/onfire2\")\n      FLME A 2 Bright A_Explode(5,32,0)\n      FLME BCDEFGHIJKLMN 2 Bright A_Explode(5,16,0)\n   SpawnLoop:\n      TNT1 A 0 A_Playsound(\"weapons/onfire2\")\n      FLME A 2 Bright A_Explode(5,32,0)\n      FLME BCDEFGHIJKLMN 2 Bright A_Explode(5,16,0)\n      TNT1 A 0 A_Jump(192,1)\n      loop\n   Death:\n      TNT1 A 0\n      stop\n   }\n}\n\nActor STMarineDevastator : STMarineSuperBase\n{\n\tSpeed 8\n\tStates\n\t{\n\tSpawn:\n\t\tPDEV A 4 A_Look\n\t\tLoop\n\tSee:\n\t\tPDEV A 2 A_Chase\n\t\tPDEV A 1 A_Chase\n\t\tPDEV B 2 A_Chase\n\t\tPDEV B 1 A_Chase\n\t\tPDEV C 2 A_Chase\n\t\tPDEV C 1 A_Chase\n\t\tPDEV D 2 A_Chase\n\t\tPDEV D 1 A_Chase\n\t\tLoop\n\tMissile:\n\t\tTNT1 A 0 A_JumpIfInventory(\"SuperMarineTimer\", 1, \"See\")\n\t\t//TNT1 A 0 A_ChangeFlag(\"NOPAIN\",1)\n\t\tTNT1 A 0 A_PlayWeaponSound(\"weapons/devchr2\")\n\t\tPDEV EEEEEEEE 6 A_FaceTarget\n\t\tPDEV E 7 A_FaceTarget\n        TNT1 A 0 A_GiveInventory(\"SuperMarineTimer\")\n\t\tTNT1 A 0 A_PlaySound(\"weapons/devfir2\")\n      \tPDEV F 10 bright A_CustomMissile(\"MarineDevastatorBall\")\n      \tPDEV E 7\n\t\t//TNT1 A 0 A_ChangeFlag(\"NOPAIN\",0)\n\t\tGoto See\n\tPain:\n\t\tPDEV G 4\n\t\tPDEV G 4 A_Pain\n\t\tTNT1 A 0 A_Chase(\"\", \"\", CHF_FASTCHASE)\n\t\tGoto See\n\tDeath:\n\t\tPDEV H 10\n\t\tPDEV I 10 A_Scream\n\t\tPDEV J 10 A_NoBlocking\n\t\tPDEV KLM 10\n\t\tPDEV N 3000\n\t\tPDEV N 2 A_FadeOut(0.1)\n\t\twait\n\tXDeath:\n\t\tPDEV O 5\n\t\tPDEV P 5 A_XScream\n\t\tPDEV Q 5 A_NoBlocking\n\t\tPDEV RSTUV 5\n\t\tPDEV W 3000\n\t\tPDEV W 2 A_FadeOut(0.1)\n\t\twait\n\t}\n}\n\nActor MarineDevastatorBall\n{\n   Radius 12\n   Height 8\n   Speed 30\n   Damage 100\n   PROJECTILE\n   RenderStyle Add\n   Alpha 0.90\n   DamageType \"MarineAllyBFG\"\n   DeathSound \"weapons/devexp2\"\n   Decal DevastatorLightning\n   Species \"Player\"\n   +THRUSPECIES\n   +FORCEXYBILLBOARD\n   States\n   {\n   Spawn:\n      DBAL AB 4 Bright\n      DBAL A 4 Bright A_Explode(128,128,0)\n      TNT1 A 0 A_Jump (160,3)\n      TNT1 AAA 0 A_CustomMissile(\"MarineLiteShot\",0,0,Random(0,360),4)\n      DBAL B 4 Bright A_Explode(128,128,0)\n      TNT1 A 0 A_Jump (160,3)\n      TNT1 AAA 0 A_CustomMissile(\"MarineLiteShot\",0,0,Random(0,360),4)\n      Goto Spawn+2\n   Death:\n      DBAL C 5 Bright\n      TNT1 A 0 A_CustomMissile(\"MarineDevastatorBall2\",0,0,0,6)\n      TNT1 A 0 A_CustomMissile(\"MarineDevastatorBall2\",0,0,18,6)\n      TNT1 A 0 A_CustomMissile(\"MarineDevastatorBall2\",0,0,36,6)\n      TNT1 A 0 A_CustomMissile(\"MarineDevastatorBall2\",0,0,54,6)\n      TNT1 A 0 A_CustomMissile(\"MarineDevastatorBall2\",0,0,72,6)\n      TNT1 A 0 A_CustomMissile(\"MarineDevastatorBall2\",0,0,90,6)\n      TNT1 A 0 A_CustomMissile(\"MarineDevastatorBall2\",0,0,108,6)\n      TNT1 A 0 A_CustomMissile(\"MarineDevastatorBall2\",0,0,126,6)\n      TNT1 A 0 A_CustomMissile(\"MarineDevastatorBall2\",0,0,144,6)\n      TNT1 A 0 A_CustomMissile(\"MarineDevastatorBall2\",0,0,162,6)\n      TNT1 A 0 A_CustomMissile(\"MarineDevastatorBall2\",0,0,180,6)\n      TNT1 A 0 A_CustomMissile(\"MarineDevastatorBall2\",0,0,196,6)\n      TNT1 A 0 A_CustomMissile(\"MarineDevastatorBall2\",0,0,216,6)\n      TNT1 A 0 A_CustomMissile(\"MarineDevastatorBall2\",0,0,234,6)\n      TNT1 A 0 A_CustomMissile(\"MarineDevastatorBall2\",0,0,252,6)\n      TNT1 A 0 A_CustomMissile(\"MarineDevastatorBall2\",0,0,270,6)\n      TNT1 A 0 A_CustomMissile(\"MarineDevastatorBall2\",0,0,288,6)\n      TNT1 A 0 A_CustomMissile(\"MarineDevastatorBall2\",0,0,306,6)\n      TNT1 A 0 A_CustomMissile(\"MarineDevastatorBall2\",0,0,324,6)\n      TNT1 A 0 A_CustomMissile(\"MarineDevastatorBall2\",0,0,342,6)\n      DBAL D 5 Bright A_Explode(320,256,0)\n      DBAL EFG 5 Bright\n      DBAL HI 3 Bright\n      Stop\n   }\n}\n\nActor MarineDevastatorBall2\n{\n   Radius 8\n   Height 8\n   Speed 10\n   Damage 10\n   PROJECTILE\n   RenderStyle Add\n   Alpha 0.90\n   DamageType \"MarineAllyBFG\"\n   Decal DoomImpScorch\n   +FORCEXYBILLBOARD\n   SeeSound \"weapons/devbal2\"\n   DeathSound \"weapons/devex2_2\"\n   Species \"Player\"\n   +THRUSPECIES\n   States\n   {\n   Spawn:\n      DBA2 AB 4 Bright\n      Loop\n   Death:\n      TNT1 A 0 A_Explode(64,64,0)\n      DBA2 CDE 4 Bright\n      Stop\n   }\n}\n\nActor MarineLiteShot\n{\n   Radius 8\n   Height 12\n   Speed 32\n   Damage 10\n   PROJECTILE\n   RenderStyle Add\n   Alpha 0.85\n   DamageType \"MarineAllyBFG\"\n   Species \"Player\"\n   +THRUSPECIES\n   +RIPPER\n   +FORCEXYBILLBOARD\n   SeeSound \"weapons/devlit2\"\n   DeathSound \"weapons/devzap2\"\n   States\n   {\n   Spawn:\n      DLIT AAABBBCCC 1 Bright A_SpawnItemEx(\"LiteTrail\",0,0,0,0,0,0,0,0,128)\n      Loop\n   Death:\n      DLIT DEFGHIJKLMNO 1 Bright\n      Stop\n   }\n}\n\nActor STMarineAutoShotgun : STMarineBase\n{\n\tSpeed 16\n\tAttackSound \"weapons/asgfir\"\n\tStates\n\t{\n\tSpawn:\n\t\tPASG A 4 A_Look\n\t\tLoop\n\tSee:\n\t\tPASG AABBCCDD 2 A_Chase\n\t\tLoop\n\tMissile:\n\t\tPASG E 4 A_FaceTarget\n    \tPASG F 5 Bright A_CustomBulletAttack(5, 4, 7, 5, \"MarineImmunePuff\")\n    \tPASG E 6\n\t\tTNT1 A 0 A_PlaySoundEx(\"weapons/asgld1\",\"auto\",0)\n        TNT1 A 0 A_CPosRefire\n    \tPASG E 4 A_FaceTarget\n    \tPASG F 5 Bright A_CustomBulletAttack(5, 4, 7, 5, \"MarineImmunePuff\")\n    \tPASG E 6\n\t\tTNT1 A 0 A_PlaySoundEx(\"weapons/asgld1\",\"auto\",0)\n        TNT1 A 0 A_CPosRefire\n    \tPASG E 4 A_FaceTarget\n    \tPASG F 5 Bright A_CustomBulletAttack(5, 4, 7, 5, \"MarineImmunePuff\")\n    \tPASG E 6\n\t\tTNT1 A 0 A_PlaySoundEx(\"weapons/asgld1\",\"auto\",0)\n        TNT1 A 0 A_CPosRefire\n    \tPASG E 4 A_FaceTarget\n    \tPASG F 5 Bright A_CustomBulletAttack(5, 4, 7, 5, \"MarineImmunePuff\")\n    \tPASG E 6\n\t\tTNT1 A 0 A_PlaySoundEx(\"weapons/asgld1\",\"auto\",0)\n        Goto See\n\tPain:\n\t\tPASG G 4\n\t\tPASG G 4 A_Pain\n\t\tTNT1 A 0 A_Chase(\"\", \"\", CHF_FASTCHASE)\n\t\tGoto See\n\tDeath:\n\t\tPASG H 10\n\t\tPASG I 10 A_Scream\n\t\tPASG J 10 A_NoBlocking\n\t\tPASG KLM 10\n\t\tPASG N 3000\n\t\tPASG N 2 A_FadeOut(0.1)\n\t\twait\n\tXDeath:\n\t\tPASG O 5\n\t\tPASG P 5 A_XScream\n\t\tPASG Q 5 A_NoBlocking\n\t\tPASG RSTUV 5\n\t\tPASG W 3000\n\t\tPASG W 2 A_FadeOut(0.1)\n\t\twait\n\t}\n}\n\nActor STMarineHRL : STMarineBase\n{\n\tSpeed 12\n\tStates\n\t{\n\tSpawn:\n\t\tPHRL A 4 A_Look\n\t\tLoop\n\tSee:\n\t\tPHRL AABBCCDD 2 A_Chase\n\t\tLoop\n\tMissile:\n\t\tPHRL E 8 A_FaceTarget\n\t\tPHRL F 12 bright A_CustomMissile(\"MarineHomRocket1\")\n\t\tPHRL E 8 A_SpidRefire\n\t\tGoto Missile+1\n\tPain:\n\t\tPHRL G 4\n\t\tPHRL G 4 A_Pain\n\t\tTNT1 A 0 A_Chase(\"\", \"\", CHF_FASTCHASE)\n\t\tGoto See\n\tDeath:\n\t\tPHRL H 10\n\t\tPHRL I 10 A_Scream\n\t\tPHRL J 10 A_NoBlocking\n\t\tPHRL KLM 10\n\t\tPHRL N 3000\n\t\tPHRL N 2 A_FadeOut(0.1)\n\t\twait\n\tXDeath:\n\t\tPHRL O 5\n\t\tPHRL P 5 A_XScream\n\t\tPHRL Q 5 A_NoBlocking\n\t\tPHRL RSTUV 5\n\t\tPHRL W 3000\n\t\tPHRL W 2 A_FadeOut(0.1)\n\t\twait\n\t}\n}\n\nactor MarineHomRocket1 : Rocket\n{\n   Speed 30\n   Damage 15\n   SeeSound \"weapons/hrlfir2\"\n   DeathSound \"weapons/hrlexp2\"\n   DamageType \"MarineAllyRocket\"\n   Decal Scorch\n   Species \"Player\"\n   +THRUSPECIES\n   +SEEKERMISSILE\n   -DEHEXPLOSION\n   States\n   {\n   Spawn:\n      HMIS A 4 bright A_SeekerMissile(10,25,SMF_LOOK)\n      loop\n   Death:\n      TNT1 A 0 A_SetTranslucent(0.67,1)\n      MISL B 8 bright A_Explode(128,128,0)\n      MISL C 6 bright\n      MISL D 4 bright\n      stop\n   }\n}\n\nActor STMarineRepeater : STMarineBase\n{\n\tSpeed 10\n\tAttackSound \"weapons/repfir2\"\n\tStates\n\t{\n\tSpawn:\n\t\tPREP A 4 A_Look\n\t\tLoop\n\tSee:\n\t\tPREP AABBCCDD 2 A_Chase\n\t\tLoop\n\tMissile:\n\t\tPREP E 2 A_FaceTarget\n\t\tPREP FF 4 bright A_CustomBulletAttack(4, 4, 2, 9, \"MarineImmuneRepPuff\")\n\t\tTNT1 A 0 A_CPosRefire\n\t\tGoto Missile+1\n\tPain:\n\t\tPREP G 4\n\t\tPREP G 4 A_Pain\n\t\tTNT1 A 0 A_Chase(\"\", \"\", CHF_FASTCHASE)\n\t\tGoto See\n\tDeath:\n\t\tPREP H 10\n\t\tPREP I 10 A_Scream\n\t\tPREP J 10 A_NoBlocking\n\t\tPREP KLM 10\n\t\tPREP N 3000\n\t\tPREP N 2 A_FadeOut(0.1)\n\t\twait\n\tXDeath:\n\t\tPREP O 5\n\t\tPREP P 5 A_XScream\n\t\tPREP Q 5 A_NoBlocking\n\t\tPREP RSTUV 5\n\t\tPREP W 3000\n\t\tPREP W 2 A_FadeOut(0.1)\n\t\twait\n\t}\n}\n\nActor MarineImmuneRepPuff\n{\n   Radius 3\n   Height 3\n   RenderStyle Add\n   Alpha 0.75\n   DamageType \"MarineAllyRepeater\"\n   Species \"Player\"\n   +MTHRUSPECIES\n   +ALWAYSPUFF\n   +PUFFONACTORS\n   +NOGRAVITY\n   +NOBLOCKMAP\n   +PUFFGETSOWNER\n   +NOTIMEFREEZE\n   AttackSound \"weapons/rephit\"\n   SeeSound \"weapons/rephit\"\n   Decal MummyScorch\n   States\n   {\n   Spawn:\n      BLAS A 0 Bright\n      BLAS A 0 Bright A_Explode(32,88,0)\n      BLAS A 3 Bright A_ChangeFlag(\"NOTIMEFREEZE\",0)\n      BLAS BCDEFG 3 Bright\n      stop\n   }\n}\n\nActor STMarineFlamer : STMarineBase\n{\n\tSpeed 14\n    MaxTargetRange 380\n    States\n    {\n    Spawn:\n        PFLM A 4 A_Look\n        Loop\n    See:\n\t\tPFLM AABBCCDD 2 A_Chase\n\t\tLoop\n    Missile:\n\t\tTNT1 A 0 A_JumpIfCloser(560,1)\n\t\tGoto See\n        PFLM E 10 A_FaceTarget\n    MissileLoop:\n      \tPFLM FFFFFFFFF 1 A_CustomMissile(\"MarineFTFire\",32,0,random(-4,4),0)\n\t\tTNT1 A 0 A_CPosRefire\n\t\tTNT1 A 0 A_JumpIfCloser(560,\"MissileLoop\")\n\t\tGoto See\n    Pain:\n\t\tPFLM G 4\n\t\tPFLM G 4 A_Pain\n\t\tTNT1 A 0 A_Chase(\"\", \"\", CHF_FASTCHASE)\n        Goto See\n    Death:\n\t\tPFLM H 10\n\t\tPFLM I 10 A_Scream\n\t\tPFLM J 10 A_NoBlocking\n\t\tPFLM KLM 10\n\t\tPFLM N 3000\n\t\tPFLM N 2 A_FadeOut(0.1)\n\t\twait\n\tXDeath:\n\t\tPFLM O 5\n\t\tPFLM P 5 A_XScream\n\t\tPFLM Q 5 A_NoBlocking\n\t\tPFLM RSTUV 5\n\t\tPFLM W 3000\n\t\tPFLM W 2 A_FadeOut(0.1)\n\t\twait\n    }\n}\n\nActor MarineFTFire\n{\n   Radius 2\n   Height 4\n   Speed 16\n   Damage 1\n   PROJECTILE\n   RenderStyle Add\n   DamageType \"MarineAllyFire\"\n   Alpha 0.67\n   Scale 0.67\n   SeeSound \"weapons/flamer2\"\n   DeathSound \"weapons/scorch2\"\n   DONTHURTSHOOTER\n   Species \"Player\"\n   +THRUSPECIES\n   +DONTSPLASH\n   States\n   {\n   Spawn:\n      TNT1 A 2\n      FRFX ABCD 2 Bright A_Explode(5,8,0)\n      TNT1 A 0 A_LowGravity\n      FRFX EFG 2 Bright A_Explode(5,16,0)\n      FRFX HIJ 2 Bright A_Explode(5,32,0)\n      FRFX KLM 2 Bright A_Explode(5,64,0)\n      FRFX NO 2 Bright\n      stop\n   Death:\n      TNT1 A 0 A_NoGravity\n      FRFX HIJ 2 Bright A_Explode(5,32,0)\n      TNT1 A 0 A_CustomMissile(\"MarineDropFire\",0,0,0,4)\n      FRFX KLM 2 Bright A_Explode(5,64,0)\n      FRFX NO 2 Bright\n      stop\n   }\n}\n\nActor MarineDropFire\n{\n   Radius 8\n   Height 40\n   PROJECTILE\n   RenderStyle Add\n   DamageType \"MarineAllyFire\"\n   Alpha 0.90\n   DONTHURTSHOOTER\n   Species \"Player\"\n   +THRUSPECIES\n   +PAINLESS\n   -NOGRAVITY\n   +LOWGRAVITY\n   +NOEXPLODEFLOOR\n   +NODAMAGETHRUST\n   +DONTSPLASH\n   States\n   {\n   Spawn:\n      FLME A 0 Bright\n      FLME A 0 Bright A_Playsound(\"weapons/onfire3\")\n      FLME A 2 Bright A_Explode(5,16,0)\n      FLME BCDEFGHIJKLMN 2 Bright A_Explode(5,16,0)\n      TNT1 A 0 A_Playsound(\"weapons/onfire3\")\n      FLME A 2 Bright A_Explode(5,32,0)\n      FLME BCDEFGHIJKLMN 2 Bright A_Explode(5,16,0)\n      TNT1 A 0 A_Playsound(\"weapons/onfire3\")\n      FLME A 2 Bright A_Explode(5,32,0)\n      FLME BCDEFGHIJKLMN 2 Bright A_Explode(5,16,0)\n      TNT1 A 0 A_Playsound(\"weapons/onfire3\")\n      FLME A 2 Bright A_Explode(5,32,0)\n      FLME BCDEFGHIJKLMN 2 Bright A_Explode(5,16,0)\n   SpawnLoop:\n      TNT1 A 0 A_Playsound(\"weapons/onfire3\")\n      FLME A 2 Bright A_Explode(5,32,0)\n      FLME BCDEFGHIJKLMN 2 Bright A_Explode(5,16,0)\n      TNT1 A 0 A_Jump(192,1)\n      loop\n   Death:\n      TNT1 A 0\n      Stop\n   }\n}\n\nActor STMarineSpawner1 : RandomSpawner 12851\n{\n\tDropItem \"STMarineShotgun3\"\n\tDropItem \"STMarineAutoShotgun3\"\n\t+FRIENDLY\n}\nActor STMarineSpawner2 : RandomSpawner 12852\n{\n\tDropItem \"STMarineChaingun3\"\n\tDropItem \"STMarinePlasma3\"\n\t+FRIENDLY\n}\nActor STMarineSpawner3 : RandomSpawner 12853\n{\n\tDropItem \"STMarineSSG3\"\n\tDropItem \"STMarineFlamer3\"\n\t+FRIENDLY\n}\nActor STMarineSpawner4 : RandomSpawner 12854\n{\n\tDropItem \"STMarineRocket3\"\n\tDropItem \"STMarineHRL3\"\n\t+FRIENDLY\n}\nActor STMarineSpawner5 : RandomSpawner 12855\n{\n\tDropItem \"STMarineRailgun3\"\n\tDropItem \"STMarineRepeater3\"\n\t+FRIENDLY\n}\nActor STMarineSpawner6 : RandomSpawner 12857\n{\n\tDropItem \"STMarineBFG3\"\n\tDropItem \"STMarinePyroCannon3\"\n\tDropItem \"STMarineDevastator3\"\n\t+FRIENDLY\n}\n\nActor STMarineShotgun3 : STMarineShotgun {}\nActor STMarineChaingun3 : STMarineChaingun {}\nActor STMarineSSG3 : STMarineSSG {}\nActor STMarineAutoShotgun3 : STMarineAutoShotgun {}\nActor STMarineRocket3 : STMarineRocket {}\nActor STMarineHRL3 : STMarineHRL {}\nActor STMarinePlasma3 : STMarinePlasma {}\nActor STMarineRailgun3 : STMarineRailgun {}\nActor STMarineRepeater3 : STMarineRepeater {}\nActor STMarineFlamer3 : STMarineFlamer {}\nActor STMarineBFG3 : STMarineBFG {}\nActor STMarinePyroCannon3 : STMarinePyroCannon {}\nActor STMarineDevastator3 : STMarineDevastator {}"
      },
      {
        "source": "pk3",
        "name": "gldefs.txt",
        "contents": "// Yellow armour\npointlight YELLOWARMOR1\n{\n    color 0.6 0.6 0.0\n    size 48\n}\n\npointlight YELLOWARMOR2\n{\n    color 0.6 0.6 0.0\n    size 32\n}\n\nobject StrYellowArmor\n{\n    frame ARM4A { light YELLOWARMOR1 }\n    frame ARM4B { light YELLOWARMOR2 }\n}\n\n// Red armour\npointlight REDARMOR1\n{\n    color 0.6 0.0 0.0\n    size 48\n}\n\npointlight REDARMOR2\n{\n    color 0.6 0.0 0.0\n    size 32\n}\n\nobject StrRedArmor\n{\n    frame ARM3A { light REDARMOR1 }\n    frame ARM3B { light REDARMOR2 }\n}\n\n// Soulsphere\nobject FixedSoulsphere\n{\n    frame SOUL { light SOULSPHERE }\n}\n\n// Invulnerability Sphere\nobject StrInvulnerabilitySphere\n{\n    frame PINV { light INVULN }\n}\n\n// Blur Sphere\nobject StrBlurSphere\n{\n    frame PINS { light BLURSPHERE1 }\n\n    frame PINSA { light BLURSPHERE2 }\n    frame PINSB { light BLURSPHERE3 }\n    frame PINSC { light BLURSPHERE4 }\n    frame PINSD { light BLURSPHERE5 }\n}\n\n// Mega Sphere\npointlight MEGASPHERE1\n{\n    color 0.7 0.59 0.51\n    size 40\n    offset 0 16 0\n}\n\npointlight MEGASPHERE2\n{\n    color 0.7 0.59 0.51\n    size 32\n    offset 0 16 0\n}\n\npointlight MEGASPHERE3\n{\n    color 0.7 0.59 0.51\n    size 24\n    offset 0 16 0\n}\n\npointlight MEGASPHERE4\n{\n    color 0.7 0.59 0.51\n    size 16\n    offset 0 16 0\n}\n\nobject FixedMegasphere\n{\n    frame MEGAA { light MEGASPHERE1 }\n    frame MEGAB { light MEGASPHERE2 }\n    frame MEGAC { light MEGASPHERE3 }\n    frame MEGAD { light MEGASPHERE4 }\n}\n\n// Health Potion\npulselight MAXHEALTHPOTION\n{\n    color 0.6 0.0 0.0\n    size 16\n    secondarySize 18\n    interval 2.0\n}\n\nobject FixedHealthBonus\n{\n    frame BON1 { light HEALTHPOTION }\n}\n\nobject MaxHealthBonus2\n{\n    frame BON3 { light MAXHEALTHPOTION }\n}\n\nobject MaxHealthBonus2Super\n{\n    frame BON3 { light MAXHEALTHPOTION }\n}\n\n// Armour Helmet\npulselight MAXARMORBONUS\n{\n    color 0.0 0.0 0.6\n    size 16\n    secondarySize 14\n    interval 1.0\n\tdontlightself 1\n}\n\nobject FixedArmorBonus\n{\n    frame BON2 { light ARMORBONUS }\n}\n\nobject MaxArmorBonus2\n{\n    frame BON4 { light MAXARMORBONUS }\n}\n\nobject MaxArmorBonus2Super\n{\n    frame BON4 { light MAXARMORBONUS }\n}\n\n// Red Card\nobject StrRedCardDN\n{\n    frame RKEY { light REDKEY }\n}\n\n// Yellow Card\nobject StrYellowCardFamiliarMaps\n{\n    frame YKEY { light YELLOWKEY }\n}\n\n// Terminator morph\nobject MorphedPlayer\n{\n    frame TERMF { light TerminatorAttack2 }\n    frame TERMH { light TerminatorAttack1 }\n    frame TERMI { light TerminatorAttack1 }\n    frame TERMK { light TerminatorAttack3 }\n    frame TERMM { light TerminatorDeath1 }\n    frame TERMN { light TerminatorDeath2 }\n    frame TERMO { light TerminatorDeath3 }\n    frame TERMP { light TerminatorDeath4 }\n    frame TERMQ { light TerminatorDeath5 }\n    frame TERMR { light TerminatorDeath6 }\n    frame TERMS { light TerminatorDeath7 }\n    frame TERMT { light TerminatorDeath8 }\n    frame TERMU { light TerminatorDeath9 }\n    frame TERMV { light TerminatorDeath10 }\n    frame TERMW { light TerminatorDeath11 }\n    frame TERMX { light TerminatorDeath12 }\n    frame TERMY { light TerminatorDeath13 }\n}\n\nobject TerminatorBlaster2\n{\n    frame BLSTA { light TerminatorBlaster }\n    frame BLSTB { light TerminatorBlaster2 }\n    frame BLSTC { light TerminatorBlaster3 }\n    frame BLSTD { light TerminatorBlaster4 }\n    frame BLSTE { light TerminatorBlaster5 }\n    frame BLSTF { light TerminatorBlaster6 }\n    frame BLSTG { light TerminatorBlaster7 }\n    frame BLSTH { light TerminatorBlaster8 }\n    frame BLSTI { light TerminatorBlaster9 }\n    frame BLSTJ { light TerminatorBlaster10 }\n    frame BLSTK { light TerminatorBlaster11 }\n    frame BLSTL { light TerminatorBlaster12 }\n}\n\nobject RedStar2\n{\n    frame STAXA { light RedStar }\n    frame STAXB { light RedStar2 }\n    frame STAXC { light RedStar3 }\n    frame STAXD { light RedStar4 }\n    frame STAXE { light RedStar5 }\n    frame STAXF { light RedStar6 }\n    frame STAXG { light RedStar7 }\n    frame STAXH { light RedStar8 }\n    frame STAXI { light RedStar9 }\n    frame STAXJ { light RedStar10 }\n    frame STAXK { light RedStar11 }\n    frame STAXL { light RedStar12 }\n}\n\nobject Redgrenade2\n{\n    frame TGNDA { light Redgrenade }\n    frame TGNDB { light Redgrenade }\n    frame TGNDC { light Redgrenade }\n    frame STAXE { light RedStar5 }\n    frame STAXF { light RedStar6 }\n    frame STAXG { light RedStar7 }\n    frame STAXH { light RedStar8 }\n    frame STAXI { light RedStar9 }\n    frame STAXJ { light RedStar10 }\n    frame STAXK { light RedStar11 }\n    frame STAXL { light RedStar12 }\n}\n\nobject Grenadeblast2\n{\n    frame TGBLA { light Grenadeblast1 }\n    frame TGBLB { light Grenadeblast2 }\n    frame TGBLC { light Grenadeblast3 }\n    frame TGBLD { light Grenadeblast4 }\n    frame TGBLE { light Grenadeblast5 }\n    frame TGBLF { light Grenadeblast6 }\n    frame TGBLG { light Grenadeblast7 }\n    frame TGBLH { light Grenadeblast8 }\n    frame TGBLI { light Grenadeblast9 }\n    frame TGBLJ { light Grenadeblast10 }\n    frame TGBLK { light Grenadeblast11 }\n}\n\nobject Terminatorpuff2\n{\n    frame TPUFA { light Terminatorpuff1 }\n    frame TPUFB { light Terminatorpuff2 }\n    frame TPUFC { light Terminatorpuff3 }\n    frame TPUFD { light Terminatorpuff4 }\n    frame TPUFE { light Terminatorpuff5 }\n    frame TPUFF { light Terminatorpuff6 }\n    frame TPUFG { light Terminatorpuff7 }\n    frame TPUFH { light Terminatorpuff8 }\n    frame TPUFI { light Terminatorpuff9 }\n    frame TPUFJ { light Terminatorpuff10 }\n    frame TPUFK { light Terminatorpuff11 }\n    frame TPUFL { light Terminatorpuff12 }\n    frame TPUFM { light Terminatorpuff13 }\n    frame TPUFN { light Terminatorpuff14 }\n    frame TPUFO { light Terminatorpuff15 }\n}\n\n// Bruiser morph\nobject MorphedPlayer2\n{\n    frame BRUSA { light BruiserDemon }\n    frame BRUSB { light BruiserDemon }\n    frame BRUSC { light BruiserDemon }\n    frame BRUSD { light BruiserDemon }\n    frame BRUSE { light BruiserDemon }\n    frame BRUSF { light BruiserDemon }\n    frame BRUSG { light BruiserDemon }\n    frame BRUSH { light BruiserDemon }\n    frame BRUSI { light BruiserDemon }\n    frame BRUSJ { light BruiserDemon }\n    frame BRUSK { light BruiserDemon }\n    frame BRUSL { light BruiserDemon }\n    frame BRUSM { light BruiserDemon }\n    frame BRUDA { light BruiserDeath5 }\n    frame BRUDB { light BruiserDeath4 }\n    frame BRUDC { light BruiserDeath3 }\n    frame BRUDD { light BruiserDeath2 }\n    frame BRUDE { light BruiserDeath1 }\n    frame BRUDF { light BruiserDeath1 }\n    frame BRUDG { light BruiserDeath1 }\n    frame BRUDH { light BruiserDeath1 }\n    frame BRUDI { light BruiserDeath2 }\n    frame BRUDJ { light BruiserDeath3 }\n    frame BRUDK { light BruiserDeath4 }\n    frame BRUDL { light BruiserDeath5 }\n    frame BRUDM { light BruiserDeath5 }\n    frame BRUDN { light BruiserDeath5 }\n}\n\nobject BruiserBallPlayer\n{\n    frame BRBAA { light BruiserBall11 }\n    frame BRBAB { light BruiserBall11 }\n    frame BRBAK { light BruiserBall11 }\n    frame BRBAL { light BruiserBall12 }\n    frame BRBAM { light BruiserBall12 }\n    frame BRBAN { light BruiserBall13 }\n    frame BRBAO { light BruiserBall13 }\n    frame BRBAP { light BruiserBall12 }\n    frame BRBAQ { light BruiserBall12 }\n    frame BRBAR { light BruiserBall11 }\n    frame BRBAS { light BruiserBall14 }\n    frame BRBAT { light BruiserBall15 }\n    frame BRBAU { light BruiserBall16 }\n    frame BRBAV { light BruiserBall17 }\n    frame BRBAW { light BruiserBall18 }\n}\n\nobject BruiserBall2Player\n{\n    frame BRB2A { light BruiserBall21 }\n    frame BRB2B { light BruiserBall21 }\n    frame BRB2C { light BruiserBall22 }\n    frame BRB2D { light BruiserBall22 }\n    frame BRB2E { light BruiserBall21 }\n    frame BRB2F { light BruiserBall21 }\n    frame BRB2G { light BruiserBall23 }\n    frame BRB2H { light BruiserBall24 }\n}\n\nobject BruiserFirePlayer\n{\n    frame XXBFA { light BruiserFire_1 }\n    frame XXBFB { light BruiserFire_2 }\n    frame XXBFC { light BruiserFire_3 }\n    frame XXBFD { light BruiserFire_4 }\n    frame XXBFE { light BruiserFire_5 }\n    frame XXBFF { light BruiserFire_6 }\n    frame XXBFG { light BruiserFire_7 }\n    frame XXBFH { light BruiserFire_8 }\n    frame XXBFI { light BruiserFire_9 }\n    frame XXBFJ { light BruiserFire_10 }\n    frame XXBFK { light BruiserFire_11 }\n    frame XXBFL { light BruiserFire_12 }\n    frame XXBFM { light BruiserFire_13 }\n    frame XXBFN { light BruiserFire_14 }\n    frame XXBFO { light BruiserFire_15 }\n    frame XXBFP { light BruiserFire_16 }\n    frame XXBFQ { light BruiserFire_17 }\n    frame XXBFR { light BruiserFire_18 }\n    frame XXBFS { light BruiserFire_19 }\n}\n\n// Weapons\nobject NewPuffPlayer\n{\n    frame PUFFA { light BPUFF1 }\n    frame PUFFB { light BPUFF2 }\n}\n\nobject StrMeleePuff\n{\n    frame PUFFA { light BPUFF1 }\n    frame PUFFB { light BPUFF2 }\n}\n\nobject RailPuff\n{\n    frame PUFFA { light BPUFF1 }\n    frame PUFFB { light BPUFF2 }\n}\n\nobject MarineRailPuff\n{\n    frame PUFFA { light BPUFF1 }\n    frame PUFFB { light BPUFF2 }\n}\n\nobject LightRailerPuff\n{\n    frame PUFFA { light BPUFF1 }\n    frame PUFFB { light BPUFF2 }\n}\n\nobject PowerLandMine2A\n{\n    frame MINEB { light LandMineSpawnB }\n}\n\nObject PowerLandMine2B\n{\n    frame MINEB { light LandMineSpawnB }\n}\n\nobject PowerLandMine3A\n{\n    frame MINEB { light LandMineSpawnB }\n}\n\nObject PowerLandMine3B\n{\n    frame MINEB { light LandMineSpawnB }\n}\n\nobject PowerRocket2\n{\n    frame MISLA { light ROCKET }\n\n    frame MISLB { light ROCKET_X1 }\n    frame MISLC { light ROCKET_X2 }\n    frame MISLD { light ROCKET_X3 }\n}\n\nobject HomRocket1\n{\n    frame HMISA { light ROCKET }\n\n    frame MISLB { light ROCKET_X1 }\n    frame MISLC { light ROCKET_X2 }\n    frame MISLD { light ROCKET_X3 }\n}\n\nobject MarineHomRocket1\n{\n    frame HMISA { light ROCKET }\n\n    frame MISLB { light ROCKET_X1 }\n    frame MISLC { light ROCKET_X2 }\n    frame MISLD { light ROCKET_X3 }\n}\n\nobject PowerHomRocket1\n{\n    frame MISLA { light ROCKET }\n\n    frame MISLB { light ROCKET_X1 }\n    frame MISLC { light ROCKET_X2 }\n    frame MISLD { light ROCKET_X3 }\n}\n\nobject StrPlasmaBall\n{\n    frame PLSSA { light PLASMABALL }\n    frame PLSSB { light PLASMABALL }\n\n    frame PLSEA { light PLASMA_X1 }\n    frame PLSEB { light PLASMA_X2 }\n    frame PLSEC { light PLASMA_X2 }\n    frame PLSED { light PLASMA_X3 }\n    frame PLSEE { light PLASMA_X4 }\n}\n\nobject PowerPlasmaBall\n{\n    frame PLSEA { light PLASMA_X1 }\n    frame PLSEB { light PLASMA_X2 }\n    frame PLSEC { light PLASMA_X2 }\n    frame PLSED { light PLASMA_X3 }\n    frame PLSEE { light PLASMA_X4 }\n}\n\nobject PowerPlasmaBall2\n{\n    frame PLSEA { light PLASMA_X1 }\n    frame PLSEB { light PLASMA_X2 }\n    frame PLSEC { light PLASMA_X2 }\n    frame PLSED { light PLASMA_X3 }\n    frame PLSEE { light PLASMA_X4 }\n}\n\nobject PowerStunnerBall\n{\n    frame STPR { light StunnerBallLight }\n    frame PLSEA { light\tStunnerBallDeathA }\n    frame PLSEB { light\tStunnerBallDeathB }\n    frame PLSEC { light\tStunnerBallDeathC }\n    frame PLSED { light\tStunnerBallDeathD }\n    frame PLSEE { light\tStunnerBallDeathE }\n}\n\nobject StrBFGBall\n{\n    frame BFS1A { light BFGBALL }\n    frame BFS1B { light BFGBALL }\n\n    frame BFE1A { light BFGBALL_X1 }\n    frame BFE1B { light BFGBALL_X2 }\n    frame BFE1C { light BFGBALL_X3 }\n    frame BFE1D { light BFGBALL_X1 }\n    frame BFE1E { light BFGBALL_X4 }\n    frame BFE1F { light BFGBALL_X5 }\n}\n\nobject StrBFGExtra\n{\n    frame BFE2A { light BFGBALL }\n    frame BFE2B { light BFGBALL_X1 }\n    frame BFE2C { light BFGBALL_X4 }\n    frame BFE2D { light BFGBALL_X5 }\n}\n\nobject MarineBFGExtra\n{\n    frame BFE2A { light BFGBALL }\n    frame BFE2B { light BFGBALL_X1 }\n    frame BFE2C { light BFGBALL_X4 }\n    frame BFE2D { light BFGBALL_X5 }\n}\n\nobject PowerBFGExtra\n{\n    frame BFE2A { light BFGBALL }\n    frame BFE2B { light BFGBALL_X1 }\n    frame BFE2C { light BFGBALL_X4 }\n    frame BFE2D { light BFGBALL_X5 }\n}\n\nobject ClusterPyroShot\n{\n    frame PBALAB { light PyroSpawnAB }\n    frame PYXPA { light PyroDeathA }\n    frame PYXPB { light PyroDeathB }\n    frame PYXPC { light PyroDeathC }\n    frame PYXPD { light PyroDeathD }\n    frame PYXPE { light PyroDeathE }\n    frame PYXPF { light PyroDeathF }\n    frame PYXPG { light PyroDeathG }\n    frame PYXPH { light PyroDeathH }\n    frame PYXPI { light PyroDeathI }\n    frame PYXPJ { light PyroDeathJ }\n    frame PYXPK { light PyroDeathK }\n    frame PYXPL { light PyroDeathL }\n    frame PYXPM { light PyroDeathM }\n    frame PYXPN { light PyroDeathN }\n    frame PYXPO { light PyroDeathO }\n    frame PYXPP { light PyroDeathP }\n    frame PYXPQ { light PyroDeathQ }\n    frame PYXPR { light PyroDeathR }\n    frame PYXPS { light PyroDeathS }\n    frame PYXPT { light PyroDeathT }\n    frame PYXPU { light PyroDeathU }\n}\n\nobject PyroDropFire\n{\n    frame FLME { light FTFireSpawn }\n}\n\nobject MarinePyroDropFire\n{\n    frame FLME { light FTFireSpawn }\n}\n\nobject DevastatorBall1\n{\n    frame DBALA\t{ light\tDevBallLight }\n    frame DBALB\t{ light\tDevBallLight }\n    frame DBALC\t{ light\tDevBallBoomA }\n    frame DBALD\t{ light\tDevBallBoomB }\n    frame DBALE\t{ light\tDevBallBoomC }\n    frame DBALF\t{ light\tDevBallBoomD }\n    frame DBALG\t{ light\tDevBallBoomE }\n}\n\nobject RepPuffNoDamage\n{\n    frame BLASA { light\tRepPuffSpawnG }\n    frame BLASB { light\tRepPuffSpawnF }\n    frame BLASC { light\tRepPuffSpawnE }\n    frame BLASD { light\tRepPuffSpawnD }\n    frame BLASE { light\tRepPuffSpawnC }\n    frame BLASF { light\tRepPuffSpawnB }\n    frame BLASG { light\tRepPuffSpawnA }\n}\n\n// Allies\nobject STMarineShotgun\n{\n    frame PLA3F { light ZOMBIEATK }\n}\n\nobject STMarineShotgun2\n{\n    frame PLA3F { light ZOMBIEATK }\n}\n\nobject STMarineShotgun3\n{\n    frame PLA3F { light ZOMBIEATK }\n}\n\nobject STMarineSSG\n{\n    frame PLA9F { light ZOMBIEATK }\n}\n\nobject STMarineSSG2\n{\n    frame PLA9F { light ZOMBIEATK }\n}\n\nobject STMarineSSG3\n{\n    frame PLA9F { light ZOMBIEATK }\n}\n\nobject STMarineChaingun\n{\n    frame PLA4F { light ZOMBIEATK }\n}\n\nobject STMarineChaingun2\n{\n    frame PLA4F { light ZOMBIEATK }\n}\n\nobject STMarineChaingun3\n{\n    frame PLA4F { light ZOMBIEATK }\n}\n\nobject STMarineRocket\n{\n    frame PLA5F { light ZOMBIEATK }\n}\n\nobject STMarineRocket2\n{\n    frame PLA5F { light ZOMBIEATK }\n}\n\nobject STMarineRocket3\n{\n    frame PLA5F { light ZOMBIEATK }\n}\n\nobject STMarinePlasma\n{\n    frame PLA6F { light ZOMBIEATK }\n}\n\nobject STMarinePlasma2\n{\n    frame PLA6F { light ZOMBIEATK }\n}\n\nobject STMarinePlasma3\n{\n    frame PLA6F { light ZOMBIEATK }\n}\n\nobject STMarineRailgun\n{\n    frame PRAIF { light ZOMBIEATK }\n    frame PRAIG { light ZOMBIEATK }\n    frame PRAIH { light ZOMBIEATK }\n}\n\nobject STMarineRailgun3\n{\n    frame PRAIF { light ZOMBIEATK }\n    frame PRAIG { light ZOMBIEATK }\n    frame PRAIH { light ZOMBIEATK }\n}\n\nobject STMarineBerserk\n{\n    frame PLAYF { light ZOMBIEATK }\n}\n\nobject STMarineBFG\n{\n    frame PB10F { light ZOMBIEATK }\n}\n\nobject STMarineBFG2\n{\n    frame PB10F { light ZOMBIEATK }\n}\n\nobject STMarineBFG3\n{\n    frame PB10F { light ZOMBIEATK }\n}\n\nobject STMarinePyroCannon\n{\n    frame PPYRF { light ZOMBIEATK }\n}\n\nobject STMarinePyroCannon3\n{\n    frame PPYRF { light ZOMBIEATK }\n}\n\nobject STMarineDevastator\n{\n    frame PDEVF { light ZOMBIEATK }\n}\n\nobject STMarineDevastator3\n{\n    frame PDEVF { light ZOMBIEATK }\n}\n\nobject STMarineAutoShotgun\n{\n    frame PASGF { light ZOMBIEATK }\n}\n\nobject STMarineAutoShotgun3\n{\n    frame PASGF { light ZOMBIEATK }\n}\n\nobject STMarineHRL\n{\n    frame PHRLF { light ZOMBIEATK }\n}\n\nobject STMarineHRL3\n{\n    frame PHRLF { light ZOMBIEATK }\n}\n\nobject STMarineRepeater\n{\n    frame PREPF { light ZOMBIEATK }\n}\n\nobject STMarineRepeater3\n{\n    frame PREPF { light ZOMBIEATK }\n}\n\nobject STMarineFlamer\n{\n    frame PFLMF { light ZOMBIEATK }\n}\n\nobject STMarineFlamer3\n{\n    frame PFLMF { light ZOMBIEATK }\n}\n\n// Monsters\nobject ZombiemanStun\n{\n    frame POSSF { light ZOMBIEATK }\n}\n\nobject ShotgunGuyStun\n{\n    frame SPOSF { light ZOMBIEATK }\n}\n\nobject ChaingunGuyStun\n{\n    frame CPOSE { light ZOMBIEATK }\n    frame CPOSF { light ZOMBIEATK }\n}\n\nobject StrDoomImpBall\n{\n    frame BAL1A { light IMPBALL }\n    frame BAL1B { light IMPBALL }\n\n    frame BAL1C { light IMPBALL_X1 }\n    frame BAL1D { light IMPBALL_X2 }\n    frame BAL1E { light IMPBALL_X3 }\n}\n\nobject StrFatShot\n{\n    frame MANFA { light IMPBALL }\n    frame MANFB { light IMPBALL }\n\n    frame MISLB { light ROCKET_X1 }\n    frame MISLC { light ROCKET_X2 }\n    frame MISLD { light ROCKET_X3 }\n}\n\nobject NewRevenantMissile\n{\n    frame FATBA { light TRACER }\n    frame FATBB { light TRACER }\n\n    frame FBXPA { light TRACER_X1 }\n    frame FBXPB { light TRACER_X2 }\n    frame FBXPC { light TRACER_X3 }\n}\n\nobject NewRevenantSeeker\n{\n    frame FATBA { light TRACER }\n    frame FATBB { light TRACER }\n\n    frame FBXPA { light TRACER_X1 }\n    frame FBXPB { light TRACER_X2 }\n    frame FBXPC { light TRACER_X3 }\n}\n\nobject NewSeekerSmoke\n{\n    frame PUFFA { light BPUFF1 }\n    frame PUFFB { light BPUFF2 }\n}\n\nobject ArchvileStun\n{\n    frame VILEH { light ARCHATK1 }\n    frame VILEI { light ARCHATK2 }\n    frame VILEJ { light ARCHATK3 }\n    frame VILEK { light ARCHATK4 }\n    frame VILEL { light ARCHATK4 }\n    frame VILEM { light ARCHATK4 }\n    frame VILEN { light ARCHATK5 }\n    frame VILEO { light ARCHATK6 }\n    frame VILEP { light ARCHATK7 }\n\n    frame VILE[ { light ARCHRES }\n    frame VILE\\ { light ARCHRES }\n    frame VILE] { light ARCHRES }\n}\n\nobject StrRocket\n{\n    frame MISLA { light ROCKET }\n\n    frame MISLB { light ROCKET_X1 }\n    frame MISLC { light ROCKET_X2 }\n    frame MISLD { light ROCKET_X3 }\n}\n\nobject BaronBallFast\n{\n    frame BAL7A { light BARONBALL }\n    frame BAL7B { light BARONBALL }\n\n    frame BAL7C { light BARONBALL_X1 }\n    frame BAL7D { light BARONBALL_X2 }\n    frame BAL7E { light BARONBALL_X3 }\n}\n\nflickerlight CACOLANTERNBALL\n{\n    color 0.0 0.0 1.0\n    size 56\n    secondarysize 64\n    chance 0.25\n}\n\nflickerlight CACOLANTERNBALL_X1\n{\n    color 0.0 0.0 0.9\n    size 72\n    secondarysize 80\n    chance 0.25\n}\n\nflickerlight CACOLANTERNBALL_X2\n{\n    color 0.0 0.0 0.8\n    size 88\n    secondarysize 96\n    chance 0.25\n}\n\nflickerlight CACOLANTERNBALL_X3\n{\n    color 0.0 0.0 0.7\n    size 104\n    secondarysize 112\n    chance 0.25\n}\n\nobject CacolanternBall\n{\n    frame BAL8A0 { light CACOLANTERNBALL }\n    frame BAL8B0 { light CACOLANTERNBALL }\n\n    frame BAL8C0 { light CACOLANTERNBALL_X1 }\n    frame BAL8D0 { light CACOLANTERNBALL_X2 }\n    frame BAL8E0 { light CACOLANTERNBALL_X3 }\n}\n\nobject DarkImpBallFast\n{\n    frame DIMBA { light DarkImpBall }\n    frame DIMBB { light DarkImpBall }\n\n    frame DIMBC { light DarkImpBall_X1 }\n    frame DIMBD { light DarkImpBall_X2 }\n    frame DIMBE { light DarkImpBall_X3 }\n}\n\npointlight PlasmaZombieAttack\n{\n    color 0.0 0.0 1.0\n    size 28\n}\n\nobject PlasmaZombie\n{\n    frame ZMAYF { light PlasmaZombieAttack }\n}\n\nobject DuneWarrior\n{\n    frame ZHRTF { light ZOMBIEATK }\n}\n\nobject DuneWarriorMissile\n{\n    frame FBRSA { light BruiserMissile }\n    frame BAL3C { light BruiserMissile2 }\n    frame BAL3D { light BruiserMissile3 }\n    frame BAL3E { light BruiserMissile4 }\n}\n\nobject HS\n{\n    frame HADEM { light HadesBoom_1 }\n    frame HADEN { light HadesBoom_2 }\n    frame HADEO { light HadesBoom_3 }\n    frame HADEP { light HadesBoom_4 }\n    frame HADEQ { light HadesBoom_5 }\n}\n\nobject FlameBreathOvermind\n{\n    frame XPLOA { light NetherworldQueenFlameBreath_1 }\n    frame XPLOB { light NetherworldQueenFlameBreath_2 }\n    frame XPLOC { light NetherworldQueenFlameBreath_3 }\n    frame XPLOD { light NetherworldQueenFlameBreath_4 }\n    frame XPLOE { light NetherworldQueenFlameBreath_5 }\n    frame XPLOF { light NetherworldQueenFlameBreath_6 }\n    frame XPLOG { light NetherworldQueenFlameBreath_7 }\n    frame XPLOH { light NetherworldQueenFlameBreath_8 }\n    frame XPLOI { light NetherworldQueenFlameBreath_9 }\n    frame XPLOJ { light NetherworldQueenFlameBreath_10 }\n    frame XPLOK { light NetherworldQueenFlameBreath_11 }\n    frame XPLOL { light NetherworldQueenFlameBreath_12 }\n    frame XPLOM { light NetherworldQueenFlameBreath_13 }\n    frame XPLON { light NetherworldQueenFlameBreath_14 }\n    frame XPLOO { light NetherworldQueenFlameBreath_15 }\n    frame XPLOP { light NetherworldQueenFlameBreath_16 }\n    frame XPLOQ { light NetherworldQueenFlameBreath_17 }\n    frame XPLOR { light NetherworldQueenFlameBreath_18 }\n    frame XPLOS { light NetherworldQueenFlameBreath_19 }\n    frame XPLOT { light NetherworldQueenFlameBreath_20 }\n    frame XPLOU { light NetherworldQueenFlameBreath_21 }\n}\n\nobject CatharsiBallLarge\n{\n    frame SDFBA { light CatharsiShot1 }\n    frame SDFBB { light CatharsiShot2 }\n    frame SDFBC { light CatharsiShot3 }\n    frame SDFBD { light CatharsiShot4 }\n    frame SDFBE { light CatharsiShot5 }\n}\n\nobject OvermindMissile1\n{\n    frame XPLOA { light NetherworldQueenFlameBreath_1 }\n    frame XPLOB { light NetherworldQueenFlameBreath_2 }\n    frame XPLOC { light NetherworldQueenFlameBreath_3 }\n    frame XPLOD { light NetherworldQueenFlameBreath_4 }\n    frame XPLOE { light NetherworldQueenFlameBreath_5 }\n    frame XPLOF { light NetherworldQueenFlameBreath_6 }\n    frame XPLOG { light NetherworldQueenFlameBreath_7 }\n    frame XPLOH { light NetherworldQueenFlameBreath_8 }\n    frame XPLOI { light NetherworldQueenFlameBreath_9 }\n    frame XPLOJ { light NetherworldQueenFlameBreath_10 }\n    frame XPLOK { light NetherworldQueenFlameBreath_11 }\n    frame XPLOL { light NetherworldQueenFlameBreath_12 }\n    frame XPLOM { light NetherworldQueenFlameBreath_13 }\n    frame XPLON { light NetherworldQueenFlameBreath_14 }\n    frame XPLOO { light NetherworldQueenFlameBreath_15 }\n    frame XPLOP { light NetherworldQueenFlameBreath_16 }\n    frame XPLOQ { light NetherworldQueenFlameBreath_17 }\n    frame XPLOR { light NetherworldQueenFlameBreath_18 }\n    frame XPLOS { light NetherworldQueenFlameBreath_19 }\n    frame XPLOT { light NetherworldQueenFlameBreath_20 }\n    frame XPLOU { light NetherworldQueenFlameBreath_21 }\n}\n\nobject OvermindMissile2\n{\n    frame FBRSA { light BruiserMissile }\n    frame BAL3C { light BruiserMissile2 }\n    frame BAL3D { light BruiserMissile3 }\n    frame BAL3E { light BruiserMissile4 }\n}\n\nobject OvermindPyroShot\n{\n    frame PBALAB { light PyroSpawnAB }\n    frame PYXPA { light PyroDeathA }\n    frame PYXPB { light PyroDeathB }\n    frame PYXPC { light PyroDeathC }\n    frame PYXPD { light PyroDeathD }\n    frame PYXPE { light PyroDeathE }\n    frame PYXPF { light PyroDeathF }\n    frame PYXPG { light PyroDeathG }\n    frame PYXPH { light PyroDeathH }\n    frame PYXPI { light PyroDeathI }\n    frame PYXPJ { light PyroDeathJ }\n    frame PYXPK { light PyroDeathK }\n    frame PYXPL { light PyroDeathL }\n    frame PYXPM { light PyroDeathM }\n    frame PYXPN { light PyroDeathN }\n    frame PYXPO { light PyroDeathO }\n    frame PYXPP { light PyroDeathP }\n    frame PYXPQ { light PyroDeathQ }\n    frame PYXPR { light PyroDeathR }\n    frame PYXPS { light PyroDeathS }\n    frame PYXPT { light PyroDeathT }\n    frame PYXPU { light PyroDeathU }\n}\n\nobject OvermindDropFire\n{\n    frame FLME { light FTFireSpawn }\n}\n\nobject Redgrenade\n{\n    frame TGNDA { light Redgrenade }\n    frame TGNDB { light Redgrenade }\n    frame TGNDC { light Redgrenade }\n    frame STAXE { light RedStar5 }\n    frame STAXF { light RedStar6 }\n    frame STAXG { light RedStar7 }\n    frame STAXH { light RedStar8 }\n    frame STAXI { light RedStar9 }\n    frame STAXJ { light RedStar10 }\n    frame STAXK { light RedStar11 }\n    frame STAXL { light RedStar12 }\n}\n\nobject RainCometNullBoss\n{\n    frame ZAP5A { light RainCometNull }\n    frame ZAP5B { light RainCometNull }\n    frame ZAP5C { light RainCometNull }\n    frame ZAP5D { light RainCometNull }\n}\n\nobject FallingCometBoss\n{\n    frame COMTA { light Comet1 }\n    frame COMTB { light Comet1 }\n    frame COMTC { light Comet1 }\n    frame COMTD { light Comet2 }\n    frame COMTE { light Comet3 }\n    frame COMTF { light Comet4 }\n}\n\nobject CometDeathBoss\n{\n    frame COMTG { light Comet5 }\n    frame COMTH { light Comet6 }\n    frame COMTI { light Comet7 }\n}\n\nobject STBossPyroDropFire\n{\n    frame FLME { light FTFireSpawn }\n}\n\nobject PowerFTFire2\n{\n    frame STEM { light PowerFTFireBlue }\n}\n\nobject PowerFTFire2NoDMG\n{\n    frame STEM { light PowerFTFireBlue }\n}\n\nobject StrRocketMk2\n{\n    frame MISLA { light ROCKET }\n\n    frame MISLB { light ROCKET_X1 }\n    frame MISLC { light ROCKET_X2 }\n    frame MISLD { light ROCKET_X3 }\n}\n\nobject HadesBallMk2\n{\n    frame HEFXA { light HadesBall1 }\n    frame HEFXB { light HadesBall1 }\n    frame HEFXC { light HadesBall2 }\n    frame HEFXD { light HadesBall3 }\n    frame HEFXE { light HadesBall4 }\n    frame HEFXF { light HadesBall5 }\n    frame HEFXG { light HadesBall6 }\n    frame HEFXH { light HadesBall7 }\n}\n\nobject LiteShot2\n{\n    frame DLITA\t{ light DevLiteABCD }\n    frame DLITB\t{ light DevLiteABCD }\n    frame DLITC\t{ light DevLiteABCD }\n    frame DLITD\t{ light DevLiteABCD }\n    frame DLITE\t{ light DevLiteE }\n    frame DLITF\t{ light DevLiteF }\n    frame DLITG\t{ light DevLiteG }\n    frame DLITH\t{ light DevLiteH }\n    frame DLITI\t{ light DevLiteI }\n    frame DLITJ\t{ light DevLiteJ }\n    frame DLITK\t{ light DevLiteK }\n    frame DLITL\t{ light DevLiteL }\n    frame DLITM\t{ light DevLiteM }\n    frame DLITN\t{ light DevLiteN }\n    frame DLITO\t{ light DevLiteO }\n}\n\nobject LiteShotNoDMG\n{\n    frame DLITA\t{ light DevLiteABCD }\n    frame DLITB\t{ light DevLiteABCD }\n    frame DLITC\t{ light DevLiteABCD }\n    frame DLITD\t{ light DevLiteABCD }\n    frame DLITE\t{ light DevLiteE }\n    frame DLITF\t{ light DevLiteF }\n    frame DLITG\t{ light DevLiteG }\n    frame DLITH\t{ light DevLiteH }\n    frame DLITI\t{ light DevLiteI }\n    frame DLITJ\t{ light DevLiteJ }\n    frame DLITK\t{ light DevLiteK }\n    frame DLITL\t{ light DevLiteL }\n    frame DLITM\t{ light DevLiteM }\n    frame DLITN\t{ light DevLiteN }\n    frame DLITO\t{ light DevLiteO }\n}\n\nobject LiteTrailMk2\n{\n    frame DLIT { light DevPuffLight }\n}\n\nobject CyberDevastatorBall\n{\n    frame DBALA\t{ light\tDevBallLight }\n    frame DBALB\t{ light\tDevBallLight }\n    frame DBALC\t{ light\tDevBallBoomA }\n    frame DBALD\t{ light\tDevBallBoomB }\n    frame DBALE\t{ light\tDevBallBoomC }\n    frame DBALF\t{ light\tDevBallBoomD }\n    frame DBALG\t{ light\tDevBallBoomE }\n}\n\nobject DevastatorBall3\n{\n    frame DBA2 { light DevPuffLight }\n}\n\nobject DevastatorBall4\n{\n    frame DBA2 { light DevPuffLight }\n}\n\nobject UltraBallA\n{\n    frame DBALA\t{ light\tDevBallLight }\n    frame DBALB\t{ light\tDevBallLight }\n    frame DBALC\t{ light\tDevBallBoomA }\n    frame DBALD\t{ light\tDevBallBoomB }\n    frame DBALE\t{ light\tDevBallBoomC }\n    frame DBALF\t{ light\tDevBallBoomD }\n    frame DBALG\t{ light\tDevBallBoomE }\n}\n\nobject UltraBallB\n{\n    frame DBALA\t{ light\tDevBallLight }\n    frame DBALB\t{ light\tDevBallLight }\n    frame DBALC\t{ light\tDevBallBoomA }\n    frame DBALD\t{ light\tDevBallBoomB }\n    frame DBALE\t{ light\tDevBallBoomC }\n    frame DBALF\t{ light\tDevBallBoomD }\n    frame DBALG\t{ light\tDevBallBoomE }\n}\n\nobject UltraBallC\n{\n    frame DBALA\t{ light\tDevBallLight }\n    frame DBALB\t{ light\tDevBallLight }\n    frame DBALC\t{ light\tDevBallBoomA }\n    frame DBALD\t{ light\tDevBallBoomB }\n    frame DBALE\t{ light\tDevBallBoomC }\n    frame DBALF\t{ light\tDevBallBoomD }\n    frame DBALG\t{ light\tDevBallBoomE }\n}\n\nobject DevastatorZone\n{\n    frame DBALA\t{ light\tDevBallLight }\n    frame DBALB\t{ light\tDevBallLight }\n}\n\n/*object ZoneKillerLightning\n{\n    frame LFX2F { light HadeslightningA }\n    frame LFX2G { light HadeslightningB }\n    frame LFX2H { light HadeslightningC }\n    frame LFX2I { light HadeslightningD }\n    frame LFX2J { light HadeslightningE }\n}*/\n\nobject MiniRocket\n{\n    frame MISLA { light ROCKET }\n\n    frame MISLB { light ROCKET_X1 }\n    frame MISLC { light ROCKET_X2 }\n    frame MISLD { light ROCKET_X3 }\n}\n\nobject ChaosRocket\n{\n    frame MISLA { light ROCKET }\n\n    frame MISLB { light ROCKET_X1 }\n    frame MISLC { light ROCKET_X2 }\n    frame MISLD { light ROCKET_X3 }\n}\n\nobject DropFire2\n{\n    frame FLME { light FTFireSpawn }\n}\n\nobject BattleLord\n{\n    frame LORDF { light ZOMBIEATK }\n}\n\nobject BattleLordPal\n{\n    frame LORDF { light ZOMBIEATK }\n}\n\nobject SuperBattleLord\n{\n    frame LORDF { light ZOMBIEATK }\n}\n\nobject LizardCommando\n{\n    frame LIZDJ { light ZOMBIEATK }\n}\n\nobject PigCop\n{\n    frame LARDG { light ZOMBIEATK }\n    frame LARDJ { light ZOMBIEATK }\n}\n\nobject RedExplosion\n{\n    frame XPLOA { light NetherworldQueenFlameBreath_1 }\n    frame XPLOB { light NetherworldQueenFlameBreath_2 }\n    frame XPLOC { light NetherworldQueenFlameBreath_3 }\n    frame XPLOD { light NetherworldQueenFlameBreath_4 }\n    frame XPLOE { light NetherworldQueenFlameBreath_5 }\n    frame XPLOF { light NetherworldQueenFlameBreath_6 }\n    frame XPLOG { light NetherworldQueenFlameBreath_7 }\n    frame XPLOH { light NetherworldQueenFlameBreath_8 }\n    frame XPLOI { light NetherworldQueenFlameBreath_9 }\n    frame XPLOJ { light NetherworldQueenFlameBreath_10 }\n    frame XPLOK { light NetherworldQueenFlameBreath_11 }\n    frame XPLOL { light NetherworldQueenFlameBreath_12 }\n    frame XPLOM { light NetherworldQueenFlameBreath_13 }\n    frame XPLON { light NetherworldQueenFlameBreath_14 }\n    frame XPLOO { light NetherworldQueenFlameBreath_15 }\n    frame XPLOP { light NetherworldQueenFlameBreath_16 }\n    frame XPLOQ { light NetherworldQueenFlameBreath_17 }\n    frame XPLOR { light NetherworldQueenFlameBreath_18 }\n    frame XPLOS { light NetherworldQueenFlameBreath_19 }\n    frame XPLOT { light NetherworldQueenFlameBreath_20 }\n    frame XPLOU { light NetherworldQueenFlameBreath_21 }\n}\n\nobject RedExplosionSilent\n{\n    frame XPLOA { light NetherworldQueenFlameBreath_1 }\n    frame XPLOB { light NetherworldQueenFlameBreath_2 }\n    frame XPLOC { light NetherworldQueenFlameBreath_3 }\n    frame XPLOD { light NetherworldQueenFlameBreath_4 }\n    frame XPLOE { light NetherworldQueenFlameBreath_5 }\n    frame XPLOF { light NetherworldQueenFlameBreath_6 }\n    frame XPLOG { light NetherworldQueenFlameBreath_7 }\n    frame XPLOH { light NetherworldQueenFlameBreath_8 }\n    frame XPLOI { light NetherworldQueenFlameBreath_9 }\n    frame XPLOJ { light NetherworldQueenFlameBreath_10 }\n    frame XPLOK { light NetherworldQueenFlameBreath_11 }\n    frame XPLOL { light NetherworldQueenFlameBreath_12 }\n    frame XPLOM { light NetherworldQueenFlameBreath_13 }\n    frame XPLON { light NetherworldQueenFlameBreath_14 }\n    frame XPLOO { light NetherworldQueenFlameBreath_15 }\n    frame XPLOP { light NetherworldQueenFlameBreath_16 }\n    frame XPLOQ { light NetherworldQueenFlameBreath_17 }\n    frame XPLOR { light NetherworldQueenFlameBreath_18 }\n    frame XPLOS { light NetherworldQueenFlameBreath_19 }\n    frame XPLOT { light NetherworldQueenFlameBreath_20 }\n    frame XPLOU { light NetherworldQueenFlameBreath_21 }\n}\n\npointlight FireBlast1\n{\n    color 0.6 0.3 0.0\n    size 48\n}\n\npointlight FireBlast2\n{\n    color 0.7 0.5 0.0\n    size 96\n}\n\npointlight FireBlast3\n{\n    color 0.7 0.5 0.0\n    size 80\n}\n\npointlight FireBlast4\n{\n    color 0.7 0.4 0.0\n    size 72\n}\n\npointlight FireBlast5\n{\n    color 0.6 0.4 0.05\n    size 64\n}\n\npointlight FireBlast6\n{\n    color 0.5 0.3 0.0\n    size 64\n}\n\npointlight FireBlast7\n{\n    color 0.5 0.2 0.0\n    size 40\n}\n\nobject FireBlast\n{\n    frame PROJA { light FireBlast1 }\n    frame PROJB { light FireBlast1 }\n    frame PROJC { light FireBlast1 }\n    frame PROJD { light FireBlast2 }\n    frame PROJE { light FireBlast3 }\n    frame PROJF { light FireBlast4 }\n    frame PROJG { light FireBlast5 }\n    frame PROJH { light FireBlast6 }\n    frame PROJI { light FireBlast7 }\n}\n\npointlight SuperFireBlast1\n{\n    color 0.6 0.3 0.0\n    size 64\n}\n\npointlight SuperFireBlast2\n{\n    color 0.7 0.5 0.0\n    size 128\n}\n\npointlight SuperFireBlast3\n{\n    color 0.7 0.5 0.0\n    size 112\n}\n\npointlight SuperFireBlast4\n{\n    color 0.7 0.4 0.0\n    size 96\n}\n\npointlight SuperFireBlast5\n{\n    color 0.6 0.4 0.05\n    size 80\n}\n\npointlight SuperFireBlast6\n{\n    color 0.5 0.3 0.0\n    size 72\n}\n\npointlight SuperFireBlast7\n{\n    color 0.5 0.2 0.0\n    size 56\n}\n\nobject SuperFireBlast\n{\n    frame PROJA { light SuperFireBlast1 }\n    frame PROJB { light SuperFireBlast1 }\n    frame PROJC { light SuperFireBlast1 }\n    frame PROJD { light SuperFireBlast2 }\n    frame PROJE { light SuperFireBlast3 }\n    frame PROJF { light SuperFireBlast4 }\n    frame PROJG { light SuperFireBlast5 }\n    frame PROJH { light SuperFireBlast6 }\n    frame PROJI { light SuperFireBlast7 }\n}\n\npointlight ThrallShot1\n{\n    color 0.0 0.0 1.0\n    size 20\n}\n\npointlight ThrallShot12\n{\n    color 0.0 0.0 1.0\n    size 25\n}\n\npointlight ThrallShot13\n{\n    color 0.0 0.0 0.8\n    size 20\n}\n\npointlight ThrallShot14\n{\n    color 0.0 0.0 0.6\n    size 15\n}\n\npointlight ThrallShot15\n{\n    color 0.0 0.0 0.4\n    size 10\n}\n\nobject ThrallShot1\n{\n    frame CFX4A { light ThrallShot1 }\n    frame CFX4B { light ThrallShot1 }\n    frame CFX4C { light ThrallShot12 }\n    frame CFX4D { light ThrallShot13 }\n    frame CFX4E { light ThrallShot14 }\n    frame CFX4F { light ThrallShot15 }\n}\n\npointlight DeathIncarnate\n{\n    color 1.0 0.0 0.0\n    offset 0 54 0\n    size 32\n}\n\npointlight IncarnateExplode1\n{\n    color 0.8 0.0 0.0\n    offset 0 54 0\n    size 32\n}\n\npointlight IncarnateExplode2\n{\ncolor 0.85 0.0 0.0\noffset 0 54 0\nsize 40\n}\n\npointlight IncarnateExplode3\n{\n    color 0.9 0.0 0.0\n    offset 0 54 0\n    size 48\n}\n\npointlight IncarnateExplode4\n{\n    color 1.0 0.0 0.0\n    offset 0 54 0\n    size 80\n}\n\npointlight IncarnateExplode5\n{\n    color 1.0 0.0 0.0\n    offset 0 54 0\n    size 72\n}\n\npointlight IncarnateExplode6\n{\n    color 0.7 0.0 0.0\n    offset 0 54 0\n    size 56\n}\n\npointlight IncarnateExplode7\n{\n    color 0.5 0.0 0.0\n    offset 0 54 0\n    size 48\n}\n\npointlight IncarnateExplode8\n{\n    color 0.3 0.0 0.0\n    offset 0 54 0\n    size 24\n}\n\nobject Incarnate\n{\n    frame INCAU { light DeathIncarnate }\n    frame INCXA { light IncarnateExplode1 }\n    frame INCXB { light IncarnateExplode2 }\n    frame INCXC { light IncarnateExplode3 }\n    frame INCXD { light IncarnateExplode4 }\n    frame INCXE { light IncarnateExplode5 }\n    frame INCXF { light IncarnateExplode6 }\n    frame INCXG { light IncarnateExplode7 }\n    frame INCXH { light IncarnateExplode8 }\n}\n\npointlight DogFire1\n{\n    color 0.8 0.8 0.0\n    size 8\n}\n\npointlight DogFire2\n{\n    color 0.8 0.8 0.0\n    size 12\n}\n\npointlight DogFire3\n{\n    color 0.8 0.8 0.0\n    size 16\n}\n\npointlight DogFire4\n{\n    color 0.8 0.8 0.0\n    size 20\n}\n\npointlight DogFire5\n{\n    color 0.9 0.9 0.0\n    size 24\n}\n\npointlight DogFire6\n{\n    color 0.9 0.9 0.0\n    size 28\n}\n\npointlight DogFire7\n{\n    color 1.0 1.0 0.0\n    size 32\n}\n\npointlight DogFire8\n{\n    color 1.0 1.0 0.0\n    size 40\n}\n\npointlight DogFire9\n{\n    color 1.0 1.0 0.0\n    size 48\n}\n\npointlight DogFire10\n{\n    color 0.9 0.9 0.0\n    size 44\n}\n\npointlight DogFire11\n{\n    color 0.8 0.8 0.0\n    size 40\n}\n\npointlight DogFire12\n{\n    color 0.7 0.7 0.0\n    size 36\n}\n\npointlight DogFire13\n{\n    color 0.6 0.6 0.0\n    size 28\n}\n\npointlight DogFire14\n{\n    color 0.5 0.5 0.0\n    size 24\n}\n\npointlight DogFire15\n{\n    color 0.4 0.4 0.0\n    size 16\n}\n\npointlight DogFire16\n{\n    color 0.2 0.2 0.0\n    size 12\n}\n\nobject DogFire\n{\n    frame FRFXA { light DogFire1 }\n    frame FRFXB { light DogFire2 }\n    frame FRFXC { light DogFire3 }\n    frame FRFXD { light DogFire4 }\n    frame FRFXE { light DogFire5 }\n    frame FRFXF { light DogFire6 }\n    frame FRFXG { light DogFire7 }\n    frame FRFXH { light DogFire8 }\n    frame FRFXI { light DogFire9 }\n    frame FRFXJ { light DogFire10 }\n    frame FRFXK { light DogFire11 }\n    frame FRFXL { light DogFire12 }\n    frame FRFXM { light DogFire13 }\n    frame FRFXN { light DogFire14 }\n    frame FRFXO { light DogFire15 }\n    frame FRFXP { light DogFire16 }\n}\n\npointlight VulgarShot\n{\n    color 0.0 1.0 0.0\n    size 25\n}\n\npointlight VulgarShot2\n{\n    color 0.0 1.0 0.0\n    size 30\n}\n\npointlight VulgarShot3\n{\n    color 0.0 0.7 0.0\n    size 25\n}\n\npointlight VulgarShot4\n{\n    color 0.0 0.4 0.0\n    size 20\n}\n\npointlight VulgarShot5\n{\n    color 0.0 0.2 0.0\n    size 15\n}\n\nobject VulgarShot\n{\n    frame FVULA { light VulgarShot }\n    frame FVULB { light VulgarShot }\n    frame FVULC { light VulgarShot2 }\n    frame FVULD { light VulgarShot3 }\n    frame FVULE { light VulgarShot4 }\n    frame FVULF { light VulgarShot5 }\n}\n\nobject ChaingunCultist\n{\n    frame BCULF { light ZOMBIEATK }\n}\n\nobject ShotgunCultist\n{\n    frame BCULF { light ZOMBIEATK }\n}\n\n// Goals\nobject StrGoal_Red\n{\n    frame TRGT { light Goal_Red }\n}\n\nobject StrGoal_Orange\n{\n    frame TRGT { light Goal_Orange }\n}\n\nobject StrGoal_Blue\n{\n    frame TRGT { light Goal_Blue }\n}\n\nobject StrGoal_Green\n{\n    frame TRGT { light Goal_Green }\n}\n\nobject StrGoal_White\n{\n    frame TRGT { light Goal_White }\n}\n\n// Miscellaneous\nobject ExplosiveBarrelTimer // may look odd with translations\n{\n    frame BAR1 { light BARREL }\n\n    frame BEXPC { light ROCKET_X1 }\n    frame BEXPD { light ROCKET_X2 }\n    frame BEXPE { light ROCKET_X3 }\n}\n\nobject StrExplosiveBarrel\n{\n    frame BAR1 { light BARREL }\n\n    frame BEXPC { light ROCKET_X1 }\n    frame BEXPD { light ROCKET_X2 }\n    frame BEXPE { light ROCKET_X3 }\n}\n\nobject StrExplosionHazard\n{\n    frame MISLB { light ROCKET_X1 }\n    frame MISLC { light ROCKET_X2 }\n    frame MISLD { light ROCKET_X3 }\n}\n\nobject StrCometLarge_Enhanced_NoDmg\n{\n    frame COMTABC { light Comet }\n    frame COMTD { light CometX_1 }\n    frame COMTE { light CometX_2 }\n}"
      },
      {
        "source": "pk3",
        "name": "keyconf.txt",
        "contents": "alias str_bankmenu \"openmenu StrongholdBankMenu\"\nalias str_bankpayfee \"closemenu;pukename \\\"StrBankSystem\\\" always 1\" // Turns out you can't call these commands together in MENUDEF directly, so I had to make aliases.\nalias str_bankwithdraw \"closemenu;pukename \\\"StrBankSystem\\\" always 2\"\nalias str_bankdeposit \"closemenu;pukename \\\"StrBankSystem\\\" always 3\"\n\naddkeysection \"$STR_KEYSECTION_STRONGHOLDREJUV\" StrongholdRejuv\n\naddmenukey \"$STR_CONTROLS_SHOWBANKMENU\" \"str_bankmenu\""
      },
      {
        "source": "pk3",
        "name": "language.txt",
        "contents": "[en enu default]\n\n// Items\n\nSTR_GOTCOIN = \"Picked up a coin.\";\nSTR_GOTYELLOWARMOR = \"Picked up the yellow armor.\";\nSTR_GOTREDARMOR = \"Picked up the red armor!\";\nSTR_GOTSUPERSHIELD = \"Picked up the super shield!\";\nSTR_GOTMAXARMORBONUS = \"Picked up a max. armor bonus.\";\nSTR_GOTMAXHEALTHBONUS = \"Picked up a max. health bonus.\";\n\n// Item tags\n\nSTR_ITEMTAG_COIN = \"Credits\";\n\n// Weapons\n\nSTR_GOTAUTOSHOTGUN = \"You got the automatic shotgun!\";\nSTR_GOTLANDMINELAYER = \"You got some land mines!\";\nSTR_GOTHRL = \"You got the homing rocket launcher!\";\nSTR_GOTRAILGUN = \"You got the railgun!\";\nSTR_GOTSTUNNERRIFLE = \"You got the stunner rifle!\";\nSTR_GOTPYROCANNON = \"You got the pyro cannon prototype!\";\nSTR_GOTFLAMER = \"You got the flamethrower! Time for a BBQ!\";\nSTR_GOTDEVASTATOR = \"You got the devastator! Hell yeah!\";\nSTR_GOTREPEATER = \"You got the plasma repeater!\";\n\n// Weapon tags\n\nSTR_WEAPONTAG_AUTOSHOTGUN = \"Auto Shotgun\";\nSTR_WEAPONTAG_LANDMINELAYER = \"Land Mines\";\nSTR_WEAPONTAG_HRL = \"Homing Rocket Launcher\";\nSTR_WEAPONTAG_RAILGUN = \"Railgun\";\nSTR_WEAPONTAG_STUNNERRIFLE = \"Stunner Rifle\";\nSTR_WEAPONTAG_PYROCANNON = \"Pyro Cannon\";\nSTR_WEAPONTAG_FLAMER = \"Flamethrower\";\nSTR_WEAPONTAG_DEVASTATOR = \"Devastator\";\nSTR_WEAPONTAG_REPEATER = \"Plasma Repeater\";\nSTR_WEAPONTAG_TERMINATORWEAPON = \"Terminator Arsenal\";\nSTR_WEAPONTAG_BRUISERWEAPON = \"Bruiser Attacks\";\nSTR_WEAPONTAG_VOTINGDEVICE = \"Voting Device\";\n\n// Ammo\n\nGOTSHELLS = \"Picked up some shotgun shells.\";\nSTR_GOTMINES = \"Picked up some additional land mines.\";\nSTR_GOTGAS = \"Picked up a gas canister.\";\nSTR_GOTFUEL = \"Picked up a gas pack.\";\n\n// Ammo tags\n\nSTR_AMMOTAG_MINES = \"Land Mines\";\nSTR_AMMOTAG_GAS = \"Gas\";\n\n// Powerups\n\nGOTMAP = \"Computer Area Map and Scanner!\";\nSTR_GOTMARINE = \"Picked up some marine reinforcements.\";\nSTR_GOTSENTRY = \"Picked up a deployable sentry turret.\";\nSTR_GOTBARREL = \"Picked up a portable barrel.\";\nSTR_GOTLIFE = \"Picked up an extra life!\";\nSTR_GOTSUPERMEDKIT = \"Picked up a portable super medikit.\";\nSTR_GOTMEDKIT = \"Picked up a portable medikit.\";\nSTR_GOTTIMEFREEZER = \"Picked up a time freeze sphere.\";\nSTR_GOTTIMEFREEZERPOWERUP = \"Time freeze!\";\nSTR_GOTQUADDAMAGE = \"Picked up a quad damage sphere.\";\nSTR_GOTQUADDAMAGEPOWERUP = \"Doomsphere!\";\nSTR_GOTINVULNERABILITY = \"Picked up an invulnerability sphere.\";\nSTR_GOTREGENERATION = \"Picked up a regeneration sphere.\";\nSTR_GOTWALL = \"Picked up a barrier kit.\";\nSTR_GOTRANDOMWEAPON = \"Picked up a random weapon sphere.\";\nSTR_GOTAUTODRONE = \"Picked up an autodrone.\";\nSTR_GOTSMARTBOMB = \"Picked up the smart bomb!\";\nSTR_GOTDRAIN = \"Picked up a vampirism sphere.\";\nSTR_GOTPROTECTION = \"Picked up a protection sphere.\";\nSTR_GOTMORPHPLAYER = \"Picked up a morph sphere.\";\nSTR_GOTIWINBUTTON = \"You got the I Win button. Yay!\";\nSTR_GOTWEAPONPOWER = \"Picked up a weapon powerup kit.\";\nSTR_GOTSUPERSENTRY = \"Picked up a deployable super sentry turret.\";\nSTR_GOTSUPERMARINE = \"Picked up some elite marine reinforcements.\";\n\n// Powerup tags\n\nSTR_POWERUPTAG_MARINE = \"Marine Reinforcements\";\nSTR_POWERUPTAG_SENTRY = \"Sentry Turret\";\nSTR_POWERUPTAG_BARREL = \"Barrel\";\nSTR_POWERUPTAG_LIFE = \"Lives (Multiplayer Use Only)\";\nSTR_POWERUPTAG_SUPERMEDKIT = \"Portable Super Medikit\";\nSTR_POWERUPTAG_MEDKIT = \"Portable Medikit\";\nSTR_POWERUPTAG_TIMEFREEZER = \"Time Freeze\";\nSTR_POWERUPTAG_QUADDAMAGE = \"Quad Damage\";\nSTR_POWERUPTAG_INVULNERABILITY = \"Invulnerability\";\nSTR_POWERUPTAG_REGENERATION = \"Regeneration\";\nSTR_POWERUPTAG_WALL = \"Barrier Kit\";\nSTR_POWERUPTAG_RANDOMWEAPON = \"Random Weapon\";\nSTR_POWERUPTAG_AUTODRONE = \"Autodrone\";\nSTR_POWERUPTAG_SMARTBOMB = \"Smart Bomb\";\nSTR_POWERUPTAG_DRAIN = \"Vampirism\";\nSTR_POWERUPTAG_PROTECTION = \"Protection\";\nSTR_POWERUPTAG_MORPHPLAYER = \"Morpher\";\nSTR_POWERUPTAG_IWINBUTTON = \"I Win Button\";\nSTR_POWERUPTAG_WEAPONPOWER = \"Weapon Powerup Kit\";\nSTR_POWERUPTAG_SUPERSENTRY = \"Super Sentry Turret\";\nSTR_POWERUPTAG_SUPERMARINE = \"Elite Marine Reinforcements\";\n\n// Keys\n\nSTR_GOTREDCARDDN = \"Picked up a red keycard.\";\nSTR_GOTACCESSDISCBLUE = \"Picked up a blue access disk.\";\nSTR_GOTACCESSDISCGREEN = \"Picked up a green access disk.\";\nSTR_GOTYELLOWCARDFAMILIARMAPS = \"Picked up a yellow keycard.\";\n\n// Key tags\n\nSTR_KEYTAG_REDCARDDN = \"Red Keycard\\c-\"; // the \\c- hack is there to ensure the sv_sharekeys pickup message is formatted properly\nSTR_KEYTAG_ACCESSDISCBLUE = \"Blue Access Disk\\c-\";\nSTR_KEYTAG_ACCESSDISCGREEN = \"Green Access Disk\\c-\";\nSTR_KEYTAG_YELLOWCARDFAMILIARMAPS = \"Yellow Keycard\\c-\";\n\n// Locks\n\nSTR_REDCARDDNLOCK = \"You need a red card to open this door\";\nSTR_REDCARDDNLOCKREMOTE = \"You need a red card to activate this object\";\nSTR_ACCESSDISCBLUELOCK = \"Blue access disk required.\";\nSTR_ACCESSDISCBLUELOCKREMOTE = \"Blue access disk required.\";\nSTR_ACCESSDISCGREENLOCK = \"Green access disk required.\";\nSTR_ACCESSDISCGREENLOCKREMOTE = \"Green access disk required.\";\nSTR_YELLOWCARDFAMILIARMAPSLOCK = \"You need a yellow card to open this door\";\nSTR_YELLOWCARDFAMILIARMAPSLOCKREMOTE = \"You need a yellow card to activate this object\";\n\n// Monster tags\n\nFN_ZOMBIE = \"Former Human\";\nFN_SHOTGUN = \"Former Human Sergeant\";\nFN_HEAVY = \"Former Human Commando\";\nFN_IMP = \"Imp\";\nFN_DEMON = \"Bull Demon\";\nFN_SPECTRE = \"Spectre\";\nFN_LOST = \"Lost Soul\";\nFN_CACO = \"Cacodemon\";\nFN_HELL = \"Hell Knight\";\nFN_BARON = \"Baron of Hell\";\nFN_ARACH = \"Arachnotron\";\nFN_PAIN = \"Pain Elemental\";\nFN_REVEN = \"Revenant\";\nFN_MANCU = \"Mancubus\";\nFN_ARCH = \"Arch-Vile\";\nFN_SPIDER = \"Spider Mastermind\";\nFN_CYBER = \"Cyberdemon\";\nFN_WOLFSS = \"Nazi\";\nFN_DOG = \"Dog\";\nFN_BARREL = \"Explosive Barrel\"; // internal tag name likely subject to change\nSTR_MONSTERTAG_ARCHONOFHELL = \"Archon of Hell\";\nSTR_MONSTERTAG_AZAZEL = \"Azazel\";\nSTR_MONSTERTAG_SATYR = \"Satyr\";\nSTR_MONSTERTAG_STBOSS = \"Mephistopheles\";\nSTR_MONSTERTAG_STBOSSATTACK4 = \"Skull\";\nSTR_MONSTERTAG_STBOSSSKELETON = \"Skeleton\";\nSTR_MONSTERTAG_STBOSSSKELETON2 = \"Skeleton\";\nSTR_MONSTERTAG_SPIRITKNIGHT = \"Spirit Knight\";\nSTR_MONSTERTAG_SPIRITBOSS = \"Mephistopheles' Spirit\";\nSTR_MONSTERTAG_CYBERDEMONMK2 = \"Cyberdemon Mk. II\";\nSTR_MONSTERTAG_MINICYBER = \"Mini Cyberdemon\";\nSTR_MONSTERTAG_CHAOSCYBER = \"Chaos Cyberdemon\";\nSTR_MONSTERTAG_BLOODDEMON = \"Blood Demon\";\nSTR_MONSTERTAG_BRUISERDEMON = \"Bruiser Demon\";\nSTR_MONSTERTAG_CATHARSI = \"Catharsi\";\nSTR_MONSTERTAG_CATHARSIDETONATOR = \"Catharsi Detonator\";\nSTR_MONSTERTAG_CYBRUISER = \"Cybruiser\";\nSTR_MONSTERTAG_DEMOLISHER = \"Spider Demolisher\";\nSTR_MONSTERTAG_DIABLOIST = \"Diabolist\";\nSTR_MONSTERTAG_DUNEWARRIOR = \"Dune Warrior\";\nSTR_MONSTERTAG_ENHANCEDCACO = \"Enhanced Cacodemon\";\nSTR_MONSTERTAG_FUSIONSPIDER = \"Fusion Cannon Arachnotron\";\nSTR_MONSTERTAG_GUARDIAN = \"Guardian Cube\";\nSTR_MONSTERTAG_HECTEBUS = \"Hectebus\";\nSTR_MONSTERTAG_HELEMENTAL = \"Hades Elemental\";\nSTR_MONSTERTAG_HS = \"Hades Sphere\";\nSTR_MONSTERTAG_HELLION = \"Hellion\";\nSTR_MONSTERTAG_HELLWARRIOR = \"Hell Warrior\";\nSTR_MONSTERTAG_INFERNODEMON = \"Inferno Demon\";\nSTR_MONSTERTAG_MOLOCH = \"Moloch\";\nSTR_MONSTERTAG_NIGHTMAREDEMON = \"Nightmare Demon\";\nSTR_MONSTERTAG_OVERMIND = \"Overmind\";\nSTR_MONSTERTAG_PHASEIMP = \"Phase Imp\";\nSTR_MONSTERTAG_PYRODEMON = \"Pyro Demon\";\nSTR_MONSTERTAG_ROCKETGUY = \"Former Human Rocketeer\";\nSTR_MONSTERTAG_PLASMAZOMBIE = \"Former Human Plasma Gunner\";\nSTR_MONSTERTAG_SHADOW = \"Shadow\";\nSTR_MONSTERTAG_SUICIDEBOMBER = \"Suicide Bomber\";\nSTR_MONSTERTAG_TERMINATOR = \"Terminator\";\nSTR_MONSTERTAG_WICKED = \"Wicked\";\nSTR_MONSTERTAG_ZOMBIETANK = \"Zombie Tank\";\nSTR_MONSTERTAG_ABADDON = \"Abaddon\";\nSTR_MONSTERTAG_BELPHEGOR = \"Belphegor\";\nSTR_MONSTERTAG_CACOLANTERN = \"Cacolantern\";\nSTR_MONSTERTAG_DARKIMP = \"Dark Imp\";\nSTR_MONSTERTAG_NIGHTMARECACO = \"Nightmare Cacodemon\";\nSTR_MONSTERTAG_APPRENTICE = \"Apprentice\";\nSTR_MONSTERTAG_MINISPIDER = \"Mini Spider\";\nSTR_MONSTERTAG_LARGESPIDER = \"Large Spider\";\nSTR_MONSTERTAG_THRALL = \"Cultist\";\nSTR_MONSTERTAG_INCARNATE = \"Death Incarnate\";\nSTR_MONSTERTAG_HOTDOG = \"Hellhound\";\nSTR_MONSTERTAG_VULGAR = \"Vulgar\";\nSTR_MONSTERTAG_ESOUL = \"Ethereal Soul\";\nSTR_MONSTERTAG_WRAITH = \"Wraith\";\nSTR_MONSTERTAG_CHAINGUNCULTIST = \"Thompson Cultist\";\nSTR_MONSTERTAG_SHOTGUNCULTIST = \"Shotgun Cultist\";\nSTR_MONSTERTAG_FATTY = \"Fat Zombie\";\nSTR_MONSTERTAG_ZOMBIE = \"Zombie\";\nSTR_MONSTERTAG_QUEEN = \"Alien Queen\";\nSTR_MONSTERTAG_CYCLOID = \"Cycloid Emperor\";\nSTR_MONSTERTAG_OVERLORD = \"Overlord\";\nSTR_MONSTERTAG_ALIENDRONE = \"Protector Drone\";\nSTR_MONSTERTAG_KAMIKAZESENTRY = \"Sentry Drone\";\nSTR_MONSTERTAG_COMMANDER = \"Commander\";\nSTR_MONSTERTAG_BATTLELORD = \"Battlelord\";\nSTR_MONSTERTAG_SUPERBATTLELORD = \"Super Battlelord\";\nSTR_MONSTERTAG_OCTABRAIN = \"Octabrain\";\nSTR_MONSTERTAG_LIZARDCOMMANDO = \"Enforcer\";\nSTR_MONSTERTAG_PIGCOP = \"Pig Cop\";\nSTR_MONSTERTAG_DUKEFODDER = \"Assault Trooper\";\nSTR_MONSTERTAG_TELEFODDER = \"Assault Captain\";\nSTR_MONSTERTAG_HOLODOOMIMP = \"Holographic Imp\";\nSTR_MONSTERTAG_HOLOZOMBIEMAN = \"Holographic Former Human\";\nSTR_MONSTERTAG_HOLODEMON = \"Holographic Bull Demon\";\nSTR_MONSTERTAG_MARINE = \"Marine\";\nSTR_MONSTERTAG_SENTRY = \"Sentry Turret\";\nSTR_MONSTERTAG_BARREL = \"Explosive Barrel\";\nSTR_MONSTERTAG_WALL = \"Barrier\";\nSTR_MONSTERTAG_AUTODRONE = \"Autodrone\";\nSTR_MONSTERTAG_SUPERSENTRY = \"Super Sentry Turret\";\nSTR_MONSTERTAG_SUPERMARINE = \"Elite Marine\";\n// Objectives\nSTR_MONSTERTAG_GOAL = \"Goal\";\nSTR_MONSTERTAG_GOAL_RED = \"Red Goal\";\nSTR_MONSTERTAG_GOAL_ORANGE = \"Orange Goal\";\nSTR_MONSTERTAG_GOAL_BLUE = \"Blue Goal\";\nSTR_MONSTERTAG_GOAL_GREEN = \"Green Goal\";\nSTR_MONSTERTAG_GOAL_WHITE = \"White Goal\";\nSTR_MONSTERTAG_POWERCORE = \"Power Core\";\nSTR_MONSTERTAG_OVERMINDCORE = \"Power Core\";\nSTR_MONSTERTAG_BABE = \"Babe\";\n// MAP99\nSTR_MONSTERTAG_STATISTMARINE = \"Marine\";\nSTR_MONSTERTAG_STATISTSCIENTIST = \"Scientist\";\nSTR_MONSTERTAG_STATISTARMORER = \"Armorer\";\nSTR_MONSTERTAG_STATISTSELLER = \"Seller\";\nSTR_MONSTERTAG_LTRANDYHEIT = \"Lt. R. Heit\";\nSTR_MONSTERTAG_SGTMNIGGEL = \"Sgt. M. Niggel\";\nSTR_MONSTERTAG_PROFDROELCKERS = \"Prof. C. Oelcker\";\nSTR_MONSTERTAG_SGTROWAND = \"Sgt. Rowand\";\nSTR_MONSTERTAG_LTTOENAIL = \"Lt. Toenail\";\nSTR_MONSTERTAG_PROFICTUX = \"Prof. I. C. Tux\";\nSTR_MONSTERTAG_MAJORBJOERNV = \"Major B. Ostmann\";\nSTR_MONSTERTAG_PROFMIKECUTMAN = \"Prof. M. Cutman\";\nSTR_MONSTERTAG_SGTJPADDOCK = \"Sgt. J. Paddock\";\nSTR_MONSTERTAG_CMDNICKBAKER = \"Cmd. Nick Baker\";\nSTR_MONSTERTAG_PROFDARCHON = \"Prof. D. Archon\";\nSTR_MONSTERTAG_COLLWMOUSE = \"Cpl. L. W. Mouse\";\nSTR_MONSTERTAG_LTWWEASEL = \"Lt. W. Weasel\";\nSTR_MONSTERTAG_LTSPRIESTESS = \"Lt. S. Priestess\";\nSTR_MONSTERTAG_LEONIDAS = \"Leonidas OS\";\nSTR_MONSTERTAG_DRDENTZ = \"Dr. Dentz\";\nSTR_MONSTERTAG_BLASTHARDCHEESE = \"Blast Hardcheese\";\nSTR_MONSTERTAG_GREGTGREAT = \"Greg T. Great\";\nSTR_MONSTERTAG_PRIVATEGINA = \"Private Gina\";\nSTR_MONSTERTAG_PROFDRPEGCOP = \"Prof. Peg Kobb\";\nSTR_MONSTERTAG_PROFGDRAGON = \"Prof. G. Dragon\";\nSTR_MONSTERTAG_MCKENZIE = \"Corp. McKenzie\";\nSTR_MONSTERTAG_REINHARDT = \"Priv. Reinhardt\";\nSTR_MONSTERTAG_THATCHER = \"Sgt. Thatcher\";\nSTR_MONSTERTAG_DEMONSLAYER = \"Cpt. Demonslayer\";\nSTR_MONSTERTAG_SHOEMAKER = \"F. Taggart Jr.\";\nSTR_MONSTERTAG_LTCARMACK = \"Lt. Carmack\";\nSTR_MONSTERTAG_STARSCREAM = \"Corp. S. Scream\";\nSTR_MONSTERTAG_SGTMORPHEUS = \"Sgt. M. Orpheus\";\nSTR_MONSTERTAG_DRAEOND = \"Dr. Aeon D.\";\nSTR_MONSTERTAG_CAPTESPIO = \"Capt. Espio\";\nSTR_MONSTERTAG_LTTVAPPY = \"Lt. T. Vappy\";\n\n// Weapon obituaries\n\nOB_MPSHOTGUN = \"%o got pummeled by %k's shotgun.\";\nSTR_OB_MPAUTOSHOTGUN = \"%o got blasted away by %k's auto shotgun.\";\nSTR_OB_MPHRL = \"%o couldn't dodge %k's homing rockets.\";\nSTR_OB_MPRAILGUN = \"%o was railed by %k.\";\nSTR_OB_MPPYROCANNON = \"%o was incinerated by %k's pyro cannon.\";\nSTR_OB_MPFLAMER = \"%o was BBQed by %k's flamethrower.\";\nSTR_OB_MPDEVASTATOR = \"%o was disintegrated by %k's devastator.\";\nSTR_OB_MPREPEATER = \"%o was disintegrated by %k's repeater.\";\nSTR_OB_PBFG = \"%o couldn't handle the overwhelming power.\";\n\n// Monster obituaries\n\nOB_STEALTHVILE = \"%o thought %g saw an arch-vile.\";\nOB_STEALTHBARON = \"%o thought %g saw a baron of Hell.\";\nOB_STEALTHKNIGHT = \"%o thought %g saw a Hell knight.\";\nOB_BARONHIT = \"%o was ripped open by a baron of Hell.\";\nOB_KNIGHTHIT = \"%o was gutted by a Hell knight.\";\nOB_VILE = \"%o was incinerated by an arch-vile.\";\nOB_BARON = \"%o was bruised by a baron of Hell.\";\nOB_KNIGHT = \"%o was splayed by a Hell knight.\";\nOB_SPIDER = \"%o stood in awe of a spider demon.\";\nSTR_OB_ARCHONOFHELL = \"%o was no match for an archon of Hell.\";\nSTR_OB_ARCHONOFHELLHIT = \"%o was ripped apart by an archon of Hell.\";\nSTR_OB_AZAZEL = \"%o was slaughtered by an Azazel.\";\nSTR_OB_SATYR = \"%o was mauled by a satyr.\";\nSTR_OB_STBOSS = \"%o couldn't evade the wrath of Mephistopheles.\";\nSTR_OB_STBOSSATTACK4 = \"%o was chewed up by a skull.\";\nSTR_OB_STBOSSSKELETON = \"%o got whalloped by a skeleton.\";\nSTR_OB_STBOSSSKELETON2 = \"%o got whalloped by a skeleton.\";\nSTR_OB_SPIRITKNIGHT = \"%o was wrung from existence by Mephistopheles' spirit minions.\";\nSTR_OB_SPIRITKNIGHTHIT = \"%o was wrung from existence by Mephistopheles' spirit minions.\";\nSTR_OB_SPIRITBOSS = \"%o's existence was erased by the spirit of Mephistopheles.\";\nSTR_OB_CYBERDEMONMK2 = \"%o was destroyed by the Cyberdemon Mk. II!\";\nSTR_OB_MINICYBER = \"%o was made into a firework by a mini cyberdemon.\";\nSTR_OB_CHAOSCYBER = \"%o met an irritating cyberdemon.\";\nSTR_OB_BLOODDEMON = \"%o was chewed up and spat out by a blood demon.\";\nSTR_OB_BRUISERDEMON = \"%o was slaughtered by a bruiser demon.\";\nSTR_OB_BRUISERDEMONHIT = \"%o was cremated by a bruiser demon.\";\nSTR_OB_BRUISERDEMONFIRE = \"%o was melted by a bruiser demon's fire trail.\";\nSTR_OB_CATHARSI = \"%o was blasted by a catharsi.\";\nSTR_OB_CATHARSIDETONATOR = \"%o was blasted by a catharsi's detonator.\";\nSTR_OB_CYBRUISER = \"%o was blown away by a cybruiser.\";\nSTR_OB_CYBRUISERHIT = \"%o was smashed by a cybruiser.\";\nSTR_OB_DEMOLISHER = \"%o felt the power of a spider demolisher.\";\nSTR_OB_DIABLOIST = \"%o was set ablaze by a diabolist.\";\nSTR_OB_DUNEWARRIOR = \"%o was killed by a dune warrior.\";\nSTR_OB_ENHANCEDCACO = \"%o was mowed down by an enhanced cacodemon.\";\nSTR_OB_ENHANCEDCACOHIT = \"%o was made into a snack by an enhanced cacodemon.\";\nSTR_OB_FUSIONSPIDER = \"%o was vaporized by a fusion cannon arachnotron.\";\nSTR_OB_GUARDIAN = \"%o got fried by a guardian cube.\";\nSTR_OB_HECTEBUS = \"%o was cremated by a hectebus.\";\nSTR_OB_HELEMENTAL = \"%o was electrocuted by a Hades elemental.\";\nSTR_OB_HELEMENTALHIT = \"%o got chomped by a Hades elemental.\";\nSTR_OB_HS = \"%o was blown away by a Hades sphere.\";\nSTR_OB_HELLION = \"A hellion burned %o to a crisp.\";\nSTR_OB_HELLWARRIOR = \"%o was tagged by a Hell warrior's fireball.\";\nSTR_OB_HELLWARRIORHIT = \"%o was torn apart by a Hell warrior.\";\nSTR_OB_INFERNODEMON = \"%o was sent to burn in the fires of Hell for an eternity.\";\nSTR_OB_MOLOCH = \"%o was sacrificed to a Moloch.\";\nSTR_OB_MOLOCHHIT = \"%o got shredded by a Moloch's claws.\";\nSTR_OB_NIGHTMAREDEMON = \"%o was spooked by a nightmare demon.\";\nSTR_OB_OVERMIND = \"%o was slaughtered by the Overmind.\";\nSTR_OB_PHASEIMP = \"%o was incinerated by a phase imp.\";\nSTR_OB_PHASEIMPHIT = \"%o was scratched by a phase imp.\";\nSTR_OB_PYRODEMON = \"%o was burnt to a crisp by a pyro demon.\";\nSTR_OB_PYRODEMONHIT = \"%o was melted by a pyro demon.\";\nSTR_OB_PYRODEMONFIREBOMB = \"%o was killed by a pyro demon's pyroblast explosion.\";\nSTR_OB_ROCKETGUY = \"%o was splattered by a zombie rocketeer.\";\nSTR_OB_PLASMAZOMBIE = \"%o got burned by a zombie plasma gunner.\";\nSTR_OB_SHADOW = \"%o was assassinated by a shadow.\";\nSTR_OB_SUICIDEBOMBER = \"%o was killed by a crazy suicide bomber.\";\nSTR_OB_TERMINATOR = \"%o was liquidated by a terminator.\";\nSTR_OB_TERMINATORGRENADE = \"%o was torn apart by a terminator's decimation missile.\";\nSTR_OB_WICKED = \"%o got blasted by a wicked.\";\nSTR_OB_ZOMBIETANK = \"%o was shot by a zombie in a tank.\";\nSTR_OB_ABADDON = \"%o was smitten by an abaddon.\";\nSTR_OB_ABADDONHIT = \"%o became food for an abaddon.\";\nSTR_OB_BELPHEGOR = \"%o was slain by a belphegor.\";\nSTR_OB_BELPHEGORHIT = \"%o was slain by a belphegor.\";\nSTR_OB_CACOLANTERN = \"%o was smitten by a cacolantern.\";\nSTR_OB_CACOLANTERNHIT = \"%o got too close to a cacolantern.\";\nSTR_OB_DARKIMP = \"%o was burned by a dark imp.\";\nSTR_OB_DARKIMPHIT = \"%o was slashed by a dark imp.\";\nSTR_OB_NIGHTMARECACO = \"%o couldn't dodge a nightmare cacodemon's fireball.\";\nSTR_OB_NIGHTMARECACOHIT = \"%o was snuck up on by a nightmare cacodemon.\";\nSTR_OB_APPRENTICE = \"%o was spooked by an apprentice.\";\nSTR_OB_MINISPIDER = \"%o succumbed to the swarm.\";\nSTR_OB_LARGESPIDER = \"%o succumbed to the swarm.\";\nSTR_OB_THRALL = \"%o was killed by a lowly cultist.\";\nSTR_OB_INCARNATE = \"%o was killed by a death incarnate's glowing eyes.\";\nSTR_OB_INCARNATEHIT = \"%o was beaten to death by a death incarnate.\";\nSTR_OB_HOTDOG = \"%o was burned alive by a hellhound.\";\nSTR_OB_HOTDOGHIT = \"A hellhound had %o for dinner.\";\nSTR_OB_VULGAR = \"%o was poisoned by a vulgar.\";\nSTR_OB_VULGARHIT = \"A vulgar had %o for lunch.\";\nSTR_OB_ESOUL = \"%o's soul was leeched by an ethereal soul.\";\nSTR_OB_WRAITH = \"A wraith had its way with %o.\";\nSTR_OB_WRAITHHIT = \"%o got bitten by a wraith too many times.\";\nSTR_OB_CHAINGUNCULTIST = \"%o was shot by a cultist with a Thompson.\";\nSTR_OB_SHOTGUNCULTIST = \"%o was shot by a cultist with a shotgun.\";\nSTR_OB_FATTY = \"%o couldn't evade a fat zombie's bile.\";\nSTR_OB_FATTYHIT = \"%o was punched by a fat zombie.\";\nSTR_OB_ZOMBIE = \"%o was axed by a zombie.\";\nSTR_OB_QUEEN = \"%o met an alien queen.\";\nSTR_OB_CYCLOID = \"%o tried to face a cycloid emperor.\";\nSTR_OB_OVERLORD = \"%o was blown apart by an overlord.\";\nSTR_OB_ALIENDRONE = \"%o was scratched by a protector drone.\";\nSTR_OB_KAMIKAZESENTRY = \"%o let a sentry drone get too close.\";\nSTR_OB_COMMANDER = \"%o sucked down a commander's rocket.\";\nSTR_OB_BATTLELORD = \"%o was stomped on by a battlelord.\";\nSTR_OB_SUPERBATTLELORD = \"%o was annihilated by a super battlelord.\";\nSTR_OB_OCTABRAIN = \"%o was killed by an octabrain.\";\nSTR_OB_LIZARDCOMMANDO = \"%o was rattled by an enforcer.\";\nSTR_OB_PIGCOP = \"%o was filled with lead by a pig cop.\";\nSTR_OB_DUKEFODDER = \"%o was taken down by an assault trooper.\";\nSTR_OB_TELEFODDER = \"%o didn't see an assault captain coming.\";\nSTR_OB_MARINE = \"%o was betrayed by a marine.\";\nSTR_OB_SENTRY = \"%o was betrayed by a sentry turret.\";\nSTR_OB_BARREL = \"%o went boom.\";\nSTR_OB_SUPERSENTRY = \"%o was betrayed by a super sentry turret.\";\nSTR_OB_SUPERMARINE = \"%o was betrayed by an elite marine.\";\nSTR_OB_SMARTBOMB = \"%o was completely obliterated by a smart bomb!\";\n\n// Menu stuff\n\nSTR_KEYSECTION_STRONGHOLDREJUV = \"Stronghold Rejuvenated\";\n\nSTR_CONTROLS_SHOWBANKMENU = \"Show Bank Menu\";\n\nSTR_MENU_TITLE_BANK = \"BANK\";\nSTR_MENU_BANKCREDITS = \"Amount Of Credits\";\nSTR_MENU_BANKPAYFEE = \"Pay Initial Fee\";\nSTR_MENU_BANKWITHDRAW = \"Withdraw Credits\";\nSTR_MENU_BANKDEPOSIT = \"Deposit Credits\";\n\n// Maps\n\nSTR_EPISODE = \"Stronghold\";\nSTR_MAP_STR01 = \"Introduction\";\nSTR_MAP_STR02 = \"Too Young To Defend\";\nSTR_MAP_STR03 = \"Swamp\";\nSTR_MAP_STR04 = \"Asteroid\";\nSTR_MAP_STR05 = \"Twilight\";\nSTR_MAP_STR06 = \"Downtown\";\nSTR_MAP_STR07 = \"Sandstorm\";\nSTR_MAP_STR08 = \"Tropical Paradox\";\nSTR_MAP_STR09 = \"Volcanic Installation\";\nSTR_MAP_STR10 = \"Skyfire Research\";\nSTR_MAP_STR11 = \"Tunnel\";\nSTR_MAP_STR12 = \"Dangoo Desert\";\nSTR_MAP_STR13 = \"Inferno\";\nSTR_MAP_STR14 = \"Orbit\";\nSTR_MAP_STR15 = \"Armageddon\";\nSTR_MAP_STR16 = \"Frozen\";\nSTR_MAP_STR17 = \"Slaughtered\";\nSTR_MAP_STR18 = \"Delta Bunker\";\nSTR_MAP_STR19 = \"Tarstone Fortress\";\nSTR_MAP_STR20 = \"Snake Corridors\";\nSTR_MAP_STR21 = \"Overmind\";\nSTR_MAP_STR22 = \"Locus Of Pestilence\";\nSTR_MAP_STR23 = \"Bipolar Bunker\";\nSTR_MAP_STR24 = \"Aurora Emitter\";\nSTR_MAP_STR25 = \"Eye Of The Storm\";\nSTR_MAP_STR26 = \"Deepspace 12\";\nSTR_MAP_STR27 = \"Cyclone\";\nSTR_MAP_STR28 = \"Terrorforming\";\nSTR_MAP_STR29 = \"Emerald Skies\";\nSTR_MAP_STR30 = \"Convulsion Of Nature\";\nSTR_MAP_STR31 = \"Black Gold\";\nSTR_MAP_STR32 = \"Dusk\";\nSTR_MAP_STR33 = \"Antlion Nebula\";\nSTR_MAP_STR34 = \"Three Ways To Die\";\nSTR_MAP_STR35 = \"The Final Stand\";\nSTR_MAP_STR40 = \"Smoldering Caves\";\nSTR_MAP_STR41 = \"Shell Shock\";\nSTR_MAP_STR42 = \"Dusk (Old)\";\nSTR_MAP_STR43 = \"Slaughtered (Old)\";\nSTR_MAP_STR44 = \"Convulsion: Aftermath\";\nSTR_MAP_STR50 = \"Duke It Out\";\nSTR_MAP_STR52 = \"City Of Silence - Apocalypse\";\nSTR_MAP_STR54 = \"Fortress Of Damnation\";\nSTR_MAP_STR56 = \"Phobos Anomaly\";\nSTR_MAP_MAP99 = \"Intermission\";\nSTR_MAP_CREDMAP = \"End & Credits\";\nSTR_MAP_TITLEMAP = \"Titlemap\";"
      },
      {
        "source": "pk3",
        "name": "lockdefs.txt",
        "contents": "Lock 24\n{\n    Any { RedCardDN StrRedCardDN }\n\tMessage \"$STR_REDCARDDNLOCK\"\n\tRemoteMessage \"$STR_REDCARDDNLOCKREMOTE\"\n\tMapcolor 255 0 0\n}\n\nLock 25\n{\n    Any { AccessDiscBlue StrAccessDiscBlue }\n\tMessage \"$STR_ACCESSDISCBLUELOCK\"\n\tRemoteMessage \"$STR_ACCESSDISCBLUELOCKREMOTE\"\n\tMapcolor 50 50 255\n}\n\nLock 26\n{\n\tAny { AccessDiscGreen StrAccessDiscGreen }\n\tMessage \"$STR_ACCESSDISCGREENLOCK\"\n\tRemoteMessage \"$STR_ACCESSDISCGREENLOCKREMOTE\"\n\tMapcolor 50 255 50\n}\n\nLock 27\n{\n\tStrYellowCardFamiliarMaps\n\tMessage \"$STR_YELLOWCARDFAMILIARMAPSLOCK\"\n\tRemoteMessage \"$STR_YELLOWCARDFAMILIARMAPSLOCKREMOTE\"\n\tMapcolor 255 255 0\n}"
      },
      {
        "source": "pk3",
        "name": "mapinfo.txt",
        "contents": "skill baby\n{\n\tAutoUseHealth\n\tAmmoFactor = 2\n\tDamageFactor = 0.5\n\tEasyBossBrain\n\tSpawnFilter = Baby\n\tPicName = \"M_JKILL\"\n\tName = \"$SKILL_BABY\"\n\tKey = \"i\"\n\tACSReturn = 0\n}\n\nskill easy\n{\n\tEasyBossBrain\n\tSpawnFilter = Easy\n\tPicName = \"M_ROUGH\"\n\tName = \"$SKILL_EASY\"\n\tKey = \"h\"\n\tACSReturn = 1\n}\n\nskill normal\n{\n\tSpawnFilter = Normal\n\tPicName = \"M_HURT\"\n\tKey = \"h\"\n\tName = \"$SKILL_NORMAL\"\n\tACSReturn = 2\n}\n\nskill hard\n{\n\tSpawnFilter = Hard\n\tPicName = \"M_ULTRA\"\n\tName = \"$SKILL_HARD\"\n\tKey = \"u\"\n\tACSReturn = 3\n}\n\nskill nightmare\n{\n\tAmmoFactor = 2\n\tFastMonsters\n\tDisableCheats\n\t//RespawnTime = 12\n\tSpawnFilter = Nightmare\n\tPicName = \"M_NMARE\"\n\tName = \"$SKILL_NIGHTMARE\"\n\tMustConfirm\n\tKey = \"n\"\n\tACSReturn = 4\n}\n\nclearepisodes\nepisode \"STR01\"\n{\n\tname = \"$STR_EPISODE\"\n}\n\ndefaultmap\n{\n\tnointermission\n\tkeepfullinventory\n\tallowrespawn\n\tnoinfighting\n\tnext = MAP99\n\tsecretnext = MAP99\n}\n\nmap STR01 lookup \"STR_MAP_STR01\"\n{\n\tlevelnum = 1\n\tsky1 = BROM, 0.0\n\tmusic = \"D_STR01\"\n}\n\nmap STR02 lookup \"STR_MAP_STR02\"\n{\n\tlevelnum = 2\n\tsky1 = BROM, 0.0\n\tmusic = \"D_STR02\"\n}\n\nmap STR03 lookup \"STR_MAP_STR03\"\n{\n\tlevelnum = 3\n\tsky1 = SWAMP, 0.0\n\tmusic = \"D_STR03\"\n}\n\nmap STR04 lookup \"STR_MAP_STR04\"\n{\n\tlevelnum = 4\n\tsky1 = FORGE, 0.20\n\tskyrotate = 0.6, 0.4, 0.3\n\tmusic = \"D_STR04\"\n}\n\nmap STR05 lookup \"STR_MAP_STR05\"\n{\n\tlevelnum = 5\n\tsky1 = CRIM, 0.0\n\tmusic = \"D_STR05\"\n}\n\nmap STR06 lookup \"STR_MAP_STR06\"\n{\n\tlevelnum = 6\n\tsky1 = ABRA, 0.0\n\tmusic = \"D_STR06\"\n}\n\nmap STR07 lookup \"STR_MAP_STR07\"\n{\n\tlevelnum = 7\n\tsky1 = NULL, 0.0\n\tmusic = \"D_STR07\"\n}\n\nmap STR08 lookup \"STR_MAP_STR08\"\n{\n\tlevelnum = 8\n\tsky1 = GORGE, 0\n\tmusic = \"D_STR08\"\n}\n\nmap STR09 lookup \"STR_MAP_STR09\"\n{\n\tlevelnum = 9\n\tsky1 = HERES, 0.0\n\tmusic = \"D_STR09\"\n}\n\nmap STR10 lookup \"STR_MAP_STR10\"\n{\n\tlevelnum = 10\n\tsky1 = CYCLO, 0.0\n\tmusic = \"D_STR10\"\n}\n\nmap STR11 lookup \"STR_MAP_STR11\"\n{\n\tlevelnum = 11\n\tsky1 = SORB, 0.0\n\tmusic = \"D_STR11\"\n}\n\nmap STR12 lookup \"STR_MAP_STR12\"\n{\n\tlevelnum = 12\n\tsky1 = SORB, 0.0\n\tmusic = \"D_STR12\"\n}\n\nmap STR13 lookup \"STR_MAP_STR13\"\n{\n\tfade = \"33 11 00\"\n\tlevelnum = 13\n\tsky1 = FORGE, 0.5\n\tmusic = \"D_STR13\"\n}\n\nmap STR14 lookup \"STR_MAP_STR14\"\n{\n\tlevelnum = 14\n\tsky1 = ORBIT, 0.6\n\tmusic = \"D_STR14\"\n}\n\nmap STR15 lookup \"STR_MAP_STR15\"\n{\n\tlevelnum = 15\n\tsky1 = STYX, 0.0\n\tmusic = \"D_STR15\"\n}\n\nmap STR16 lookup \"STR_MAP_STR16\"\n{\n\tlevelnum = 16\n\tsky1 = FROZ, 0.0\n\tmusic = \"D_STR16\"\n}\n\nmap STR17 lookup \"STR_MAP_STR17\"\n{\n\tlevelnum = 17\n\tsky1 = SWAMP, 0.0\n\tmusic = \"D_STR17\"\n}\n\nmap STR18 lookup \"STR_MAP_STR18\"\n{\n\tlevelnum = 18\n\tsky1 = MID, 0.0\n\tmusic = \"D_STR18\"\n}\n\nmap STR19 lookup \"STR_MAP_STR19\"\n{\n\tlevelnum = 19\n\tsky1 = STYX, 0.0\n\tmusic = \"D_STR19\"\n}\n\nmap STR20 lookup \"STR_MAP_STR20\"\n{\n\tlevelnum = 20\n\tmusic = \"D_STR20\"\n\tsky1 = HELL, 0.0\n}\n\nmap STR21 lookup \"STR_MAP_STR21\"\n{\n\tlevelnum = 21\n\tsky1 = MID, 0.0\n\tmusic = \"D_STR21\"\n}\n\nmap STR22 lookup \"STR_MAP_STR22\"\n{\n\tlevelnum = 22\n\tsky1 = BLOOD, 0.0\n\tmusic = \"D_STR22\"\n}\n\nmap STR23 lookup \"STR_MAP_STR23\"\n{\n\tlevelnum = 23\n\tsky1 = CHLOR, 0.0\n\tmusic = \"D_STR23\"\n}\n\nmap STR24 lookup \"STR_MAP_STR24\"\n{\n\tlevelnum = 24\n\tsky1 = MID, 0.0\n\tmusic = \"D_STR24\"\n}\n\nmap STR25 lookup \"STR_MAP_STR25\"\n{\n\tlevelnum = 25\n\tsky1 = BROMX, 0.0\n\tmusic = \"D_STR25\"\n}\n\nmap STR26 lookup \"STR_MAP_STR26\"\n{\n\tlevelnum = 26\n\tsky1 = SPACE, 0.1\n\tmusic = \"D_STR26\"\n}\n\nmap STR27 lookup \"STR_MAP_STR27\"\n{\n\tlevelnum = 27\n\tsky1 = MID, 0.0\n\tmusic = \"D_STR27\"\n\tevenlighting\n}\n\nmap STR28 lookup \"STR_MAP_STR28\"\n{\n\tlevelnum = 28\n\tsky1 = SORB, 0.0\n\tmusic = \"D_STR28\"\n\tfogdensity = 70\n}\n\nmap STR29 lookup \"STR_MAP_STR29\"\n{\n\tlevelnum = 29\n\tsky1 = JAIL, 0.0\n\tmusic = \"D_STR29\"\n}\n\nmap STR30 lookup \"STR_MAP_STR30\"\n{\n\tlevelnum = 30\n\tsky1 = SPACE, 0.8\n\tskyrotate = 0.6, 0.4, 0.3\n\tsky2 = ABRA, 0.1\n\t//skyrotate2 = 0.0, 0.0, 0.0\n\tmusic = \"D_STR30\"\n}\n\nmap STR31 lookup \"STR_MAP_STR31\"\n{\n\tlevelnum = 31\n\tsky1 = NULL, 0.0\n\tmusic = \"D_STR31\"\n}\n\nmap STR32 lookup \"STR_MAP_STR32\"\n{\n\tlevelnum = 32\n\tsky1 = CRIM, 0.0\n\tmusic = \"D_STR32\"\n}\n\nmap STR33 lookup \"STR_MAP_STR33\"\n{\n\tlevelnum = 33\n\tsky1 = ABRA, 0.0\n\tmusic = \"D_STR33\"\n}\n\nmap STR34 lookup \"STR_MAP_STR34\"\n{\n\tlevelnum = 34\n\tsky1 = BLOOD, 0.0\n\tmusic = \"D_STR34\"\n}\n\nmap STR35 lookup \"STR_MAP_STR35\"\n{\n\tlevelnum = 35\n\tsky1 = BROMX, 0.0\n\tmusic = \"D_STR35\"\n\tnext = CREDMAP\n\tsecretnext = MAP99\n}\n/////////////////// FAMILIAR MAPS ///////////////////\nmap STR40 lookup \"STR_MAP_STR40\"\n{\n\tlevelnum = 40\n\tsky1 = CRIM, 0.0\n\tmusic = \"D_STR40\"\n}\n\nmap STR41 lookup \"STR_MAP_STR41\"\n{\n\tlevelnum = 41\n\tsky1 = NULL, 0.0\n\tmusic = \"D_STR41\"\n}\n\nmap STR42 lookup \"STR_MAP_STR42\"\n{\n\tlevelnum = 42\n\tsky1 = CRIM, 0.0\n\tmusic = \"D_STR42\"\n}\n\nmap STR43 lookup \"STR_MAP_STR43\"\n{\n\tlevelnum = 43\n\tsky1 = SWAMP, 0.0\n\tmusic = \"D_STR43\"\n}\n\nmap STR44 lookup \"STR_MAP_STR44\"\n{\n\tlevelnum = 44\n\tsky1 = SPACE, 0.8\n\tskyrotate = 0.6, 0.4, 0.3\n\tsky2 = ABRA, 0.1\n\t//skyrotate2 = 0.0, 0.0, 0.0\n\tmusic = \"D_STR44\"\n}\n/////////////////// SECRET MAPS ///////////////////\nmap STR50 lookup \"STR_MAP_STR50\"\n{\n\tlevelnum = 50\n\tsky1 = DUKESKY, 0.0\n\tmusic = \"D_STR50\"\n}\n\nmap STR52 lookup \"STR_MAP_STR52\"\n{\n\tlevelnum = 52\n\tsky1 = RSKY1, 0.0\n\tmusic = \"D_STR52\"\n}\n\nmap STR54 lookup \"STR_MAP_STR54\"\n{\n\tlevelnum = 54\n\tsky1 = RSKY1, 0.0\n\tmusic = \"D_STR54\"\n}\n\nmap STR56 lookup \"STR_MAP_STR56\"\n{\n\tlevelnum = 56\n\tsky1 = PHOBOS, 0.1\n\tmusic = \"D_STR56\"\n}\n//////////////// INTERMAP ////////////////\nmap MAP99 lookup \"STR_MAP_MAP99\"\n{\n\tlevelnum = 999\n\tsky1 = BROM, 0.0\n\tmusic = \"D_STRINT\"\n}\n//////////////// TITLEMAP ////////////////\nmap TITLEMAP lookup \"STR_MAP_TITLEMAP\"\n{\n\tmusic = \"D_STRTTL\"\n\tevenlighting\n\tnext = TITLEMAP\n}\n//////////////// CREDMAP ////////////////\nmap CREDMAP lookup \"STR_MAP_CREDMAP\"\n{\n\tevenlighting\n\tmusic = \"D_STRCR1\"\n\tnext = MAP99\n}"
      },
      {
        "source": "pk3",
        "name": "menudef.txt",
        "contents": "OptionMenu \"StrongholdBankMenu\"\n{\n    Title \"$STR_MENU_TITLE_BANK\"\n    TextField \"$STR_MENU_BANKCREDITS\", \"stronghold_cl_bankcredits\"\n    Command \"$STR_MENU_BANKPAYFEE\",    \"str_bankpayfee\"\n    Command \"$STR_MENU_BANKWITHDRAW\",  \"str_bankwithdraw\"\n    Command \"$STR_MENU_BANKDEPOSIT\",   \"str_bankdeposit\"\n}"
      },
      {
        "source": "pk3",
        "name": "sbarinfo.txt",
        "contents": "height 32;\nmonospacefonts true, \"0\";\n\nstatusbar fullscreen, fullscreenoffsets\n{\n\tdrawimage \"STBARFS\", 0+center, -32, center;\n\n\tInInventory JailTrackerAllPlayers\n\t{\n\t\tDrawString SMALLFONT, Red, \"Players in jail:\", -17+center, -71;\n\t\tDrawNumber 3, SMALLFONT, Red, JailTrackerAllPlayers, Alignment(Left), -9+center, -71;\n\t}\n\n\tInInventory PowerStrength\n\t{\n\t\tdrawimage \"PSTRA0\", -98+center, -28, centerbottom;\n\t} else {\n\t\tdrawimage \"MEDIA0\", -98+center, -28, centerbottom;\n\t}\n\tdrawnumber 3, HUDFONT_DOOM, untranslated, health, -41+center, -42;\n\tdrawimage \"WIPCNTSM\", -38+center, -37;\n\n\tdrawimage armoricon, -98+center, -6;\n\tdrawnumber 3, HUDFONT_DOOM, untranslated, armor, -41+center, -21;\n\tdrawimage \"WIPCNTSM\", -38+center, -16;\n\n\tIsSelected not AutoShotgun\n\t{\n\t\tdrawimage ammoicon1, -6+center, -7;\n\t\tdrawnumber 3, HUDFONT_DOOM, untranslated, ammo1, 49+center, -21;\n\t}\n\n\tIsSelected AutoShotgun\n\t{\n\t\tdrawimage ammoicon1, -6+center, -29;\n\t\tdrawnumber 3, HUDFONT_DOOM, untranslated, ammo1, 49+center, -42;\n\t\tdrawimage ammoicon2, -6+center, -7;\n\t\tdrawnumber 3, HUDFONT_DOOM, untranslated, ammo2, 49+center, -21;\n\t}\n\n\tdrawnumber 3, HUDFONT_DOOM, untranslated, LifeItem, 85+center, -21;\n\n\tgamemode deathmatch, teamgame\n\t{\n\t\tdrawnumber 2, HUDFONT_DOOM, untranslated, frags, -8, 1;\n\t}\n\n\tdrawselectedinventory center, alwaysshowcounter, INDEXFON, 116+center, -35, 142+center, -38, gold;\n\tdrawimage \"SACKA0\", 100+center, -25;\n\tdrawnumber 5, INDEXFON, gold, CoinItem, 142+center, -16;\n}\n\nstatusbar normal\n{\n\tdrawimage \"STBAR\", 0, 168;\n\tdrawimage \"WIPCNTSM\", 87, 177;\n\tdrawimage \"WIPCNTSM\", 217, 177;\n\tdrawnumber 3, HUDFONT_DOOM, untranslated, LifeItem, 248, 172;\n\tdrawnumber 3, HUDFONT_DOOM, untranslated, health, 85, 172;\n\tdrawnumber 3, HUDFONT_DOOM, untranslated, armor, 216, 172;\n\t// Special case for the Auto Shotgun - if AS is selected then display clip\n\t// Don't worry, the shells remaining are still shown to the right.\n\tIsSelected not AutoShotgun\n\t{\n\t\tdrawnumber 3, HUDFONT_DOOM, untranslated, ammo1, 40, 172;\n\t}\n\tIsSelected AutoShotgun\n\t{\n\t\tdrawnumber 3, HUDFONT_DOOM, gold, ammo1, 40, 172;\n\t}\n\n/*\t//keys\n\tdrawswitchableimage BlueCard && BlueSkull, \"nullimage\", \"STKEYS0\", \"STKEYS3\", \"STKEYS6\", 239, 171;\n\tdrawswitchableimage YellowCard && YellowSkull, \"nullimage\", \"STKEYS1\", \"STKEYS4\", \"STKEYS7\", 239, 181;\n\tdrawswitchableimage RedCard && RedSkull, \"nullimage\", \"STKEYS2\", \"STKEYS5\", \"STKEYS8\", 239, 191;\n*/\n\tdrawnumber 3, INDEXFON, gold, ammo Clip, 284, 173;\n\tdrawnumber 3, INDEXFON, gold, ammo Shell, 284, 182;\n\tdrawnumber 3, INDEXFON, gold, ammo RocketAmmo, 284, 191;\n\tdrawnumber 3, INDEXFON, gold, ammo Gas, 315, 173;\n\tdrawnumber 3, INDEXFON, gold, ammo Mines, 315, 182;\n\tdrawnumber 3, INDEXFON, gold, ammo Cell, 315, 191;\n\n/*\tdrawnumber 3, INDEXFON, gold, ammocapacity Clip, 314, 173;\n\tdrawnumber 3, INDEXFON, gold, ammocapacity Shell, 314, 179;\n\tdrawnumber 3, INDEXFON, gold, ammocapacity RocketAmmo, 314, 185;\n\tdrawnumber 3, INDEXFON, gold, ammocapacity Cell, 314, 191;\n*/\n/*\tgamemode deathmatch, teamgame\n\t{\n\t\tdrawnumber 2, HUDFONT_DOOM, untranslated, frags, 138, 171;\n\t}\n*/\n\n//\tgamemode cooperative, singleplayer\n//\t{\n//\t\tdrawimage \"STARMS\", 104, 168;\n\t\tdrawswitchableimage weaponslot 2, \"STGNUM2\", \"STYSNUM2\", 106, 172;\n\t\tdrawswitchableimage weaponslot 3, \"STGNUM3\", \"STYSNUM3\", 114, 172;\n\t\tdrawswitchableimage weaponslot 4, \"STGNUM4\", \"STYSNUM4\", 122, 172;\n\t\tdrawswitchableimage weaponslot 5, \"STGNUM5\", \"STYSNUM5\", 130, 172;\n\t\tdrawswitchableimage weaponslot 6, \"STGNUM6\", \"STYSNUM6\", 106, 182;\n\t\tdrawswitchableimage weaponslot 7, \"STGNUM7\", \"STYSNUM7\", 114, 182;\n\t\tdrawswitchableimage weaponslot 8, \"STGNUM8\", \"STYSNUM8\", 122, 182;\n\t\tdrawswitchableimage weaponslot 9, \"STGNUM9\", \"STYSNUM9\", 130, 182;\n//\t}\n\n\tdrawselectedinventory alternateonempty, INDEXFON, 140, 169\n\t{\n\t\tdrawmugshot \"STF\", 5, 140, 169;\n\t}\n}\n\nstatusbar inventory\n{\n\tdrawinventorybar Doom, 7, INDEXFONT, 50, 170;\n}\n\nstatusbar inventoryfullscreen // ZDoom HUD overlay.\n{\n\tdrawinventorybar Doom, translucent, 7, INDEXFONT, 50, 170;\n}\n\n/* Skulltag can't handle \"center\"\nstatusbar inventoryfullscreen, fullscreenoffsets // ZDoom HUD overlay.\n{\n\tdrawinventorybar Doom, translucent, 7, INDEXFONT, -106+center, -31, -80+center, -9;\n}\n*/"
      },
      {
        "source": "pk3",
        "name": "sndinfo.txt",
        "contents": "satyr/sight\t\tDSSATSIT\nsatyr/death\t\tDSSATDTH\n\n$alias fatty/stomp\t\tbattlelord/stomp\nfatty/die\t\t\t\tb3die03g\n$alias cycloid/stomp\tbattlelord/stomp\n\nwizard2/sight\t\t\tWIZ2SIT\nwizard2/attack\t\t\tWIZ2ATK\nwizard2/death\t\t\tWIZ2DTH\nwizard2/pain\t\t\tWIZ2PAI\nwizard2/active1\t\t\tWIZ2ACT\n$random wizard2/active \t{ wizard2/sight wizard2/active1 }\n\n$alias misc/pickup\tmisc/ammo_pkup\n$alias pickup\t\tmisc/i_pkup\n\n$alias weapons/repfir2\tweapons/repfir\n$alias weapons/railf1_2\tweapons/railf1\n$alias weapons/railf2_2\tweapons/railf2\n$alias weapons/railf3_2\tweapons/railf3\n$alias weapons/hellfi2\tweapons/hellfi\n$alias weapons/hellex2\tweapons/hellex\n$alias weapons/boom1_2\tweapons/boom1\nweapons/bang1\t\t\tdsempty\n$alias weapons/bang1_2\tweapons/bang1\n$alias weapons/onfire2\tweapons/onfire // Pyro Cannon\n$alias weapons/devchr2\tweapons/devchr\n$alias weapons/devfir2\tweapons/devfir\n$alias weapons/devfch2\tweapons/devfch\n$alias weapons/devexp2\tweapons/devexp\n$alias weapons/devbal2\tweapons/devbal\n$alias weapons/devex2_2\tweapons/devex2\n$alias weapons/devlit2\tweapons/devlit\n$alias weapons/devzap2\tweapons/devzap\n$alias weapons/autodronef\tweapons/devbal\n$alias weapons/autodronex\tweapons/devex2\npyro/flame\t\t\t\tsounds/monsters/pyrodemon/dsflamer.ogg\n$alias weapons/flamer2\tweapons/flamer\n$alias weapons/scorch2\tweapons/scorch\n$alias weapons/onfire3\tweapons/onfire // Flamethrower\n$alias weapons/hrlfir2\tweapons/hrlfir\n$alias weapons/hrlexp2\tweapons/hrlexp\nweapons/bfg_explode\t\tdsbarexp\n$volume weapons/bfg_hum\t0.2\n\n$alias alarm/sounding\tAMB16\nalarm/missionstart\t\tsounds/ambience/MissionStart_Alarm.ogg // From Warframe.\n\n//$alias rwd/superweapon\tamb16\n\n$playeralias\tMorphPlayerTerminator\tmale\t*death\t\tmonster/termdth\n$playersounddup\tMorphPlayerTerminator\tmale\t*xdeath\t\t*death\n$playersounddup\tMorphPlayerTerminator\tmale\t*wimpydeath\t*death\n$playersounddup\tMorphPlayerTerminator\tmale\t*crazydeath\t*death\n$playersounddup\tMorphPlayerTerminator\tmale\t*burndeath\t*death\n$playersounddup\tMorphPlayerTerminator\tmale\t*gibbed\t\t*death\n$playeralias\tMorphPlayerTerminator\tmale\t*pain100\tmonster/termpin2\n$playersounddup\tMorphPlayerTerminator\tmale\t*pain75\t\t*pain100\n$playersounddup\tMorphPlayerTerminator\tmale\t*pain50\t\t*pain100\n$playersounddup\tMorphPlayerTerminator\tmale\t*pain25\t\t*pain100\n$playeralias\tMorphPlayerTerminator\tmale\t*grunt\t\tTerminator/termact\n$playeralias\tMorphPlayerTerminator\tmale\t*land\t\tTerminator/terstepA2\n$playersounddup\tMorphPlayerTerminator\tmale\t*usefail\t*grunt\n$playeralias\tMorphPlayerTerminator\tmale\t*taunt\t\tmonster/termsit\n\n$alias monster/termpin2\t\tmonster/termpin\n$alias Terminator/terstepA2\tTerminator/terstepA\n\n$playeralias\tMorphPlayerBruiser\tmale\t*death\t\tsuperbaron/death\n$playersounddup\tMorphPlayerBruiser\tmale\t*xdeath\t\t*death\n$playersounddup\tMorphPlayerBruiser\tmale\t*wimpydeath\t*death\n$playersounddup\tMorphPlayerBruiser\tmale\t*crazydeath\t*death\n$playersounddup\tMorphPlayerBruiser\tmale\t*burndeath\t*death\n$playersounddup\tMorphPlayerBruiser\tmale\t*gibbed\t\t*death\n$playeralias\tMorphPlayerBruiser\tmale\t*pain100\tsuperbaron/pain2\n$playersounddup\tMorphPlayerBruiser\tmale\t*pain75\t\t*pain100\n$playersounddup\tMorphPlayerBruiser\tmale\t*pain50\t\t*pain100\n$playersounddup\tMorphPlayerBruiser\tmale\t*pain25\t\t*pain100\n$playeralias\tMorphPlayerBruiser\tmale\t*grunt\t\tsuperbaron/act\n$playersound\tMorphPlayerBruiser\tmale\t*land\t\tdsempty\n$playersounddup\tMorphPlayerBruiser\tmale\t*usefail\t*grunt\n$playeralias\tMorphPlayerBruiser\tmale\t*taunt\t\tsuperbaron/scream\n\n$alias superbaron/pain2\tsuperbaron/pain\n\n// Wave\nT_WAVDN1\t\t\t\tT_WAVDN1\nT_WAVDN2\t\t\t\tT_WAVDN2\nT_WAVDN3\t\t\t\tT_WAVDN3\nT_WAVDN4\t\t\t\tT_WAVDN4\nT_WAVDN5\t\t\t\tT_WAVDN5\nT_WAVDN6\t\t\t\tT_WAVDN6\nT_WAVDN7\t\t\t\tT_WAVDN7\nT_WAVDN8\t\t\t\tT_WAVDN8\nT_WAVDN9\t\t\t\tT_WAVDN9\nT_WAVD10\t\t\t\tT_WAVD10\nT_WAVD11\t\t\t\tT_WAVD11\nT_WAVD12\t\t\t\tT_WAVD12\nT_WAVD13\t\t\t\tT_WAVD13\nT_WAVD14\t\t\t\tT_WAVD14\nT_WAVD15\t\t\t\tT_WAVD15\nT_WAVD16\t\t\t\tT_WAVD16\nT_WAVD17\t\t\t\tT_WAVD17\nT_WAVD18\t\t\t\tT_WAVD18\nT_WAVD19\t\t\t\tT_WAVD19\n$alias T_WAVD20\t\t\tT_WAVDON\nT_WAVDNF\t\t\t\tT_WAVDNF\n\n// Deadline/Milestone/Limit\nT_APPDED\t\t\t\tT_APPDED\n\n// Overmind\n$alias overmind/coredestroyed\tamb16\nT_ALLCOR\t\t\t\tT_ALLCOR\nT_CORDES\t\t\t\tT_CORDES\nT_OVDES\t\t\t\t\tT_OVDES\n\n// Goals\nT_BGOAL\t\t\t\t\tT_BGOAL\nT_GGOAL\t\t\t\t\tT_GGOAL\nT_OGOAL\t\t\t\t\tT_OGOAL\nT_RGOAL\t\t\t\t\tT_RGOAL\nT_WGOAL\t\t\t\t\tT_WGOAL\n\n// Time Attack\nT_10SEC\t\t\t\t\tT_10SEC\nT_1MIN\t\t\t\t\tT_1MIN\nT_1SEC\t\t\t\t\tT_1SEC\nT_2SEC\t\t\t\t\tT_2SEC\nT_30SEC\t\t\t\t\tT_30SEC\nT_3MINS\t\t\t\t\tT_3MINS\nT_3SEC\t\t\t\t\tT_3SEC\nT_4SEC\t\t\t\t\tT_4SEC\nT_5MINS\t\t\t\t\tT_5MINS\nT_5SEC\t\t\t\t\tT_5SEC\nT_6SEC\t\t\t\t\tT_6SEC\nT_7SEC\t\t\t\t\tT_7SEC\nT_8SEC\t\t\t\t\tT_8SEC\nT_9SEC\t\t\t\t\tT_9SEC\nT_TLIMIT\t\t\t\tT_TLIMIT\nT_TLVIC\t\t\t\t\tT_TLVIC\n\n$alias bank/fail\t\tNo\n$alias bank/success\t\tCash\n\nradio/message\t\t\tDSRADIO\n$volume radio/message\t0.5\n\n$volume DSSTPLAC\t\t0.7\n$limit DSSTPLAC\t\t\t0\n\nweapons/rephit\t\t\tDSREPHIT\n$limit weapons/rephit\t0\n\n// Soundpacks wouldn't play these sounds online unless actually defined here.\ncycloid/thud\t\t\tdsempty\novermind/step\t\t\tdsempty\novermind/thud\t\t\tdsempty\nKoraxStep\t\t\t\tdsempty\nweapons/minebeep\t\tdsempty\nweapons/buzz\t\t\tdsempty\nsentry/active\t\t\tdsempty\nmonster/disht1\t\t\tdsempty\narchvile/pain\t\t\tdsempty\nwallitem/explode\t\tdsempty\nweapons/railzoomin\t\tdsempty\nweapons/railzoomout\t\tdsempty\n\n// Music aliases\n$musicalias\tD_STRINT\tD_INT\n$musicalias\tD_STRINB\tMR_FINAL\n$musicalias\tD_STRINC\tTBM_ORPH\n$musicalias\tD_JUKE01\tJUKE01\n$musicalias\tD_JUKE02\tJUKE02\n$musicalias\tD_JUKE03\tJUKE03\n$musicalias\tD_JUKE04\tJUKE04\n$musicalias\tD_JUKE05\tJUKE05\n$musicalias\tD_JUKE06\tJUKE06\n$musicalias\tD_JUKE07\tJUKE07\n$musicalias\tD_JUKE08\tJUKE08\n$musicalias\tD_JUKE09\tJUKE09\n$musicalias\tD_JUKE10\tLAX_STAR\n$musicalias\tD_STR01\t\tTBM_ERIN\n$musicalias\tD_STR02\t\tLAM_LOST\n$musicalias\tD_STR03\t\tTBM_CERB\n$musicalias\tD_STR04\t\tLAM_TORM\n$musicalias\tD_STR05\t\tTBM_CHAR\n$musicalias\tD_STR06\t\tSG_ART\n$musicalias\tD_STR07\t\tTBM_OCEA\n$musicalias\tD_STR08\t\tLAM_BLOO\n$musicalias\tD_STR09\t\tTBM_TART\n$musicalias\tD_STR10\t\tTBM_NEME\n$musicalias\tD_STR11\t\tSG_ODD\n$musicalias\tD_STR12\t\tTBM_STYX\n$musicalias\tD_STR13\t\tLAX_WOLF\n$musicalias\tD_STR14\t\tLAM_LOST\n$musicalias\tD_STR15\t\tTBM_ERIN\n$musicalias\tD_STR16\t\tSG_PRT\n$musicalias\tD_STR17\t\tTBM_EURD\n$musicalias\tD_STR18\t\tLAM_LOST\n$musicalias\tD_STR19\t\tLAX_HERE\n$musicalias\tD_STR20\t\tTBM_NEME\n$musicalias\tD_STR21\t\tSG_TMJ\n$musicalias\tD_STR21B\tSG_PRT\n$musicalias\tD_STR22\t\tLAM_BLOO\n$musicalias\tD_STR23\t\tTBM_TART\n$musicalias\tD_STR24\t\tTBM_EURD\n$musicalias\tD_STR25\t\tTBM_ORPH\n$musicalias\tD_STR25B\tTBM_INTR\n$musicalias\tD_STR26\t\tSG_FMJ\n$musicalias\tD_STR26B\tnone\n$musicalias\tD_STR26C\tSG_MTD\n$musicalias\tD_STR26D\tSG_PRY\n$musicalias\tD_STR26E\tnone\n$musicalias\tD_STR26F\tSG_FIN\n$musicalias\tD_STR27\t\tTBM_STYX\n$musicalias\tD_STR27B\tTBM_CERB\n$musicalias\tD_STR27C\tLAM_FINA\n$musicalias\tD_STR28\t\tLAM_TORM\n$musicalias\tD_STR28B\tSG_ODD\n$musicalias\tD_STR29\t\tTBM_TART\n$musicalias\tD_STR29B\tTBM_CHAR\n$musicalias\tD_STR29C\tSG_FMJ\n$musicalias\tD_STR30\t\tLAX_HERE\n$musicalias\tD_STR30B\tSG_PRY\n$musicalias\tD_STR31\t\tTBM_OCEA\n$musicalias\tD_STR31B\tSG_MTD\n$musicalias\tD_STR32\t\tLAM_FINA\n$musicalias\tD_STR32B\tSG_TMJ\n$musicalias\tD_STR33\t\tSG_ART\n$musicalias\tD_STR33B\tSG_PRT\n$musicalias\tD_STR33C\tSG_TMJ\n$musicalias\tD_STR34\t\tTBM_OCEA\n$musicalias\tD_STR34B\tTBM_INTR\n$musicalias\tD_STR35\t\tMR_FINAL\n$musicalias\tD_STR35B\tnone\n$musicalias\tD_STR35C\tSG_FIN\n$musicalias\tD_STR40\t\tLAM_LOST\n$musicalias\tD_STR41\t\tTBM_ORPH\n$musicalias\tD_STR42\t\tLAM_FINA\n$musicalias\tD_STR43\t\tTBM_EURD // TBM_TART\n$musicalias\tD_STR43B\tLAX_WOLF\n$musicalias\tD_STR44\t\tLAX_HERE\n$musicalias\tD_STR44B\tSG_FMJ\n$musicalias\tD_STR44C\tSG_TMJ\n$musicalias\tD_STR50\t\tDN_STALK\n$musicalias\tD_STR50B\tGRAB1\n$musicalias\tD_STR50C\tGRAB2\n$musicalias\tD_STR52\t\tSH_SIL\n$musicalias\tD_STR52B\tSH_ASH\n$musicalias\tD_STR54\t\tD_TNT03B\n$musicalias\tD_STR54B\tD_TNT04A\n$musicalias\tD_STR54C\tD_TNT04B\n$musicalias\tD_STR54D\tTUTNTBOS\n$musicalias\tD_STR54E\tD_TNTLE\n$musicalias\tD_STR56\t\tD_E1M8\n$musicalias\tD_STR56B\tD_E1M8B\n$musicalias\tD_STR56C\tD_E1M8C\n$musicalias\tD_STRTTL\tTBM_OCEA\n$musicalias\tD_STRCR1\tCM_MUS2\n$musicalias\tD_STRCR2\tCM_MUS1\n$musicalias\tD_STRCR3\tnone\n$musicalias\tD_GRAB1\t\tGRAB1\n$musicalias\tD_GRAB2\t\tGRAB2\n$musicalias\tD_WINNIN\tWINNING"
      },
      {
        "source": "pk3",
        "name": "textures.txt",
        "contents": "sprite PLSGF0, 86, 103 // Plasma Rifle\n{\n    patch PLSGF0, 0, 0\n    offset -117, -77\n}\n\nsprite PLSGG0, 86, 99\n{\n    patch PLSGG0, 0, 0\n    offset -117, -78\n}\n\nsprite PLSGH0, 86, 93\n{\n    patch PLSGH0, 0, 0\n    offset -117, -81\n}\n\nsprite PYRGB0, 313, 148 // Pyro Cannon\n{\n    patch PYRGB0, 0, 0\n    offset 10, -85\n}\n\nsprite PYRGC0, 313, 163\n{\n    patch PYRGC0, 0, 0\n    offset 10, -80\n}\n\nsprite PYRGD0, 313, 156\n{\n    patch PYRGD0, 0, 0\n    offset 10, -84\n}\n\nsprite PYRGE0, 313, 157\n{\n    patch PYRGE0, 0, 0\n    offset 10, -80\n}\n\nsprite PYRGF0, 313, 153\n{\n    patch PYRGF0, 0, 0\n    offset 10, -77\n}\n\nsprite PYRGG0, 313, 153\n{\n    patch PYRGG0, 0, 0\n    offset 10, -77\n}\n\nsprite REPGE0, 205, 112 // Plasma Repeater\n{\n    patch REPGE0, 0, 0\n    offset -23, -84\n}\n\nsprite REPGF0, 205, 95\n{\n    patch REPGF0, 0, 0\n    offset -23, -98\n}\n\nsprite REPGG0, 205, 100\n{\n    patch REPGG0, 0, 0\n    offset -23, -96\n}\n\nsprite REPGH0, 205, 104\n{\n    patch REPGH0, 0, 0\n    offset -23, -89\n}"
      },
      {
        "source": "pk3",
        "name": "actors/cityofsilence.txt",
        "contents": "ACTOR Apprentice 30000\n{\n//$Category Stronghold_CityOfSilence\n    PainChance \"Stunner\", 128\n    SpawnID 174\n    Health 500\n    Radius 20\n    Height 56\n    Speed 8\n    Mass 500\n    PainChance 100\n    MONSTER\n    +FloorClip\n    +NoGravity\n    +Float\n    //DropItem \"Heart\" 96 // these don't exist, but ZCC displays them anyway\n    SEESOUND \"wizard2/sight\"\n    PAINSOUND \"wizard2/pain\"\n    DEATHSOUND \"wizard2/death\"\n    ACTIVESOUND \"wizard2/active\"\n    OBITUARY \"$STR_OB_APPRENTICE\"\n    Tag \"$STR_MONSTERTAG_APPRENTICE\"\n    states\n    {\n    Spawn:\n        APDP AB 10 A_Look\n        Loop\n    See:\n        APDP A 0 A_SetTranslucent(1,0)\n        APDP AABB 3 A_Chase\n        Loop\n    Missile:\n        APDP C 0 A_FaceTarget\n        APDP C 2 A_SetTranslucent(.50,0)\n        APDP C 2 A_SetTranslucent(1,0)\n        APDP C 2 A_SetTranslucent(.50,0)\n        APDP C 2 A_SetTranslucent(1,0)\n        APDP C 2 A_SetTranslucent(.50,0)\n        APDP C 2 A_SetTranslucent(1,0)\n        APDP C 2 A_SetTranslucent(.50,0)\n        APDP C 2 A_SetTranslucent(1,0)\n        //APDP C 0 A_Jump(128,6)\n        //APDP C 0 A_Jump(64,128)\n        APDP C 0 A_PlaySound(\"wizard2/attack\")\n        APDP D 0 A_CustomMissile(\"FireBlast\",30,-10,-4)\n        APDP D 0 A_CustomMissile(\"FireBlast\",30,0,0)\n        APDP D 6 A_CustomMissile(\"FireBlast\",30,10,4)\n        //Goto See\n        APDP D 1 A_SetTranslucent(.90,0)\n        APDP D 1 A_SetTranslucent(.80,0)\n        APDP D 1 A_SetTranslucent(.70,0)\n        APDP D 1 A_SetTranslucent(.60,0)\n        APDP D 1 A_SetTranslucent(.50,0)\n        APDP D 1 A_SetTranslucent(.40,0)\n        APDP D 1 A_SetTranslucent(.30,0)\n        APDP D 1 A_SetTranslucent(.20,0)\n        APDP D 1 A_SetTranslucent(.10,0)\n        APDP D 1 A_SetTranslucent(.0,0)\n\t//APDP D 0 A_ChangeFlag(\"GHOST\",1)\n        APDP DDDDDDDDDDDDDDDD 2 A_Wander\n        APDP D 0 A_FaceTarget\n        APDP C 0 A_PlaySound(\"wizard2/attack\")\n        APDP D 0 A_CustomMissile(\"FireBlast\",30,-10,-4)\n        APDP D 0 A_CustomMissile(\"FireBlast\",30,0,0)\n        APDP D 6 A_CustomMissile(\"FireBlast\",30,10,4)\n        APDP DDDDDDDDDDDDDDDD 2 A_Wander\n        APDP D 0 A_FaceTarget\n        APDP C 0 A_PlaySound(\"wizard2/attack\")\n        APDP D 0 A_CustomMissile(\"FireBlast\",30,-10,-4)\n        APDP D 0 A_CustomMissile(\"FireBlast\",30,0,0)\n        APDP D 6 A_CustomMissile(\"FireBlast\",30,10,4)\n        APDP DDDDDDDDDDDDDDDD 2 A_Wander\n        APDP D 0 A_FaceTarget\n        APDP C 0 A_PlaySound(\"wizard2/attack\")\n        APDP D 0 A_CustomMissile(\"FireBlast\",30,-10,-4)\n        APDP D 0 A_CustomMissile(\"FireBlast\",30,0,0)\n        APDP D 6 A_CustomMissile(\"FireBlast\",30,10,4)\n        APDP DDDDDDDDDDDDDDDD 2 A_Wander\n        APDP D 0 A_FaceTarget\n        APDP C 0 A_PlaySound(\"wizard2/attack\")\n        APDP D 0 A_CustomMissile(\"FireBlast\",30,-10,-4)\n        APDP D 0 A_CustomMissile(\"FireBlast\",30,0,0)\n        APDP D 6 A_CustomMissile(\"FireBlast\",30,10,4)\n        APDP DDDDDDDDDDDDDDDD 2 A_Wander\n\t//APDP D 0 A_ChangeFlag(\"GHOST\",0)\n        APDP D 1 A_SetTranslucent(.10,0)\n        APDP D 1 A_SetTranslucent(.20,0)\n        APDP D 1 A_SetTranslucent(.30,0)\n        APDP D 1 A_SetTranslucent(.40,0)\n        APDP D 1 A_SetTranslucent(.50,0)\n        APDP D 1 A_SetTranslucent(.60,0)\n        APDP D 1 A_SetTranslucent(.70,0)\n        APDP D 1 A_SetTranslucent(.80,0)\n        APDP D 1 A_SetTranslucent(.90,0)\n        APDP D 1 A_SetTranslucent(1,0)\n        //Goto See\n        APDP C 0 A_FaceTarget\n        APDP C 0 A_PlaySound(\"wizard2/attack\")\n        APDP D 4 A_CustomMissile(\"SuperFireBlast\",15,0,0)\n        Goto See\n    Pain:\n\t//APDP E 0 A_ChangeFlag(\"GHOST\",0)\n        APDP E 0 A_SetTranslucent(1,0)\n        APDP E 2\n        APDP E 2 A_Pain\n        Goto See\n    Pain.Stunner:\n\t//APDP E 0 A_ChangeFlag(\"GHOST\",0)\n        APDP E 0 A_SetTranslucent(1,0)\n    \tAPDP E 2 A_ChangeFlag(\"NoPain\", 1)\n    \tAPDP E 300 A_Pain\n \tAPDP E 0 A_ChangeFlag(\"NoPain\", 0)\n    \tgoto See\n    Death:\n        TNT1 A 0 A_GiveToTarget(\"AwardItem\", 12)\n        APDP E 0 A_SetTranslucent(1,0)\n        APDP E 4\n        APDP F 4\n        APDP G 3 A_Scream\n        TNT1 A 0 A_Fall\n        APDP H 3 A_CustomMissile(\"AoDGhost\",8,0,0)\n        APDP I 3\n        APDP JKL 2\n        APDP M 3000 CanRaise\n        APDP M 2 A_FadeOut(0.1)\n        wait\n    Raise:\n        APDP MLKJIHGFE 4\n        goto See\n    }\n}\n\nACTOR FireBlast\n{\n    Speed 25\n    Scale 0.75\n    Damage 3\n    PROJECTILE\n    +NoGravity\n    DEATHSOUND \"fireblast/explode\"\n    Decal Scorch\n    DamageType \"Fire\"\n    states\n    {\n    Spawn:\n          PROJ ABC 4 BRIGHT\n          Loop\n    Death:\n          PROJ D 4 BRIGHT A_Explode(8,64,1)\n          PROJ EFGH 4 BRIGHT\n          PROJ I 4 BRIGHT A_FadeOut(0.5)\n          Stop\n          }\n}\n\nACTOR SuperFireBlast : FireBlast\n{\n    Speed 16\n    Scale 1.5\n    Damage 24\n    DEATHSOUND \"superfireblast/explode\"\n    Decal BigScorch\n    states\n    {\n    Spawn:\n          PROJ ABC 4 BRIGHT\n          Loop\n    Death:\n          PROJ D 4 BRIGHT A_Explode(256,128,1)\n          PROJ EFGH 4 BRIGHT\n          PROJ I 4 BRIGHT A_FadeOut(0.5)\n          Stop\n          }\n}\n\nACTOR AoDGhost\n{\n    Radius 1\n    Height 1\n    Speed 0\n    PROJECTILE\n    RENDERSTYLE TRANSLUCENT\n    Alpha 0.75\n    +Noclip\n    SEESOUND \"aod/ghost\"\n    states\n    {\n    Spawn:\n    Death:\n        AODG ABCDEF 5 BRIGHT\n        AODG G 5 BRIGHT A_FadeOut\n        Stop\n    }\n}\n\nACTOR MiniSpider 22290\n{\n//$Category Stronghold_CityOfSilence\n   PainChance \"Stunner\", 128\n   SpawnID 175\n   Radius 8\n   Height 16\n   Health 100\n   Scale 0.25\n   Translation 0\n   MONSTER\n   +FLOORCLIP\n   seesound \"littlespider/sight\"\n   attacksound \"littlespider/attack\"\n   painsound \"littlespider/pain\"\n   deathsound \"littlespider/death\"\n   activesound \"littlespider/sight\"\n   meleesound \"littlespider/pain\"\n   Obituary \"$STR_OB_MINISPIDER\"\n   Tag \"$STR_MONSTERTAG_MINISPIDER\"\n   Speed 10\n   Damage (0)\n   MeleeDamage 2\n   States\n   {\n   Spawn:\n     MNTR AB 10 A_Look\n     Loop\n   See:\n     MNTR A 0 A_Jump(256,\"See1\",\"See1\",\"See1\",\"See1\",\"See2\",\"See2\",\"See2\",\"See3\",\"See3\",\"See4\")\n   See1:\n     MNTR ABCD 4 A_Chase\n     Goto See\n   See2:\n     MNTR ABCD 3 A_Chase\n     Goto See\n   See3:\n     MNTR ABCD 2 A_Chase\n     Goto See\n   See4:\n     MNTR ABCD 1 A_Chase\n     Goto See\n   Melee:\n     MNTR VW 3 A_FaceTarget\n     MNTR X 6 A_MeleeAttack\n     Goto See\n   Pain.Stunner:\n     MNTR A 2 A_ChangeFlag(\"NoPain\", 1)\n     MNTR A 300 A_Pain\n     MNTR A 0 A_ChangeFlag(\"NoPain\", 0)\n     goto See\n   Death:\n     TNT1 A 0 A_GiveToTarget(\"AwardItem\", 4)\n     MNTS F 5\n     MNTS E 5 A_Scream\n     MNTS D 5\n     MNTS C 5 A_NoBlocking\n     MNTS B 5\n     MNTS A 3000 A_BossDeath\n     MNTS A 2 A_FadeOut(0.1)\n     wait\n   }\n}\n\nACTOR LargeSpider 22291\n{\n//$Category Stronghold_CityOfSilence\n   PainChance \"Stunner\", 128\n   SpawnID 176\n   Radius 16\n   Height 32\n   Health 200\n   Scale 0.5\n   Translation 1\n   MONSTER\n   +FLOORCLIP\n   //DropItem \"Heart\" 160\n   seesound \"littlespider/sight\"\n   attacksound \"littlespider/attack\"\n   painsound \"littlespider/pain\"\n   deathsound \"littlespider/death\"\n   activesound \"littlespider/sight\"\n   meleesound \"littlespider/pain\"\n   Obituary \"$STR_OB_LARGESPIDER\"\n   Tag \"$STR_MONSTERTAG_LARGESPIDER\"\n   Speed 20\n   Damage (0)\n   MeleeDamage 4\n   States\n   {\n   Spawn:\n     MNTR AB 10 A_Look\n     Loop\n   See:\n     MNTR A 0 A_Jump(256,\"See1\",\"See1\",\"See1\",\"See1\",\"See2\",\"See2\",\"See3\")\n   See1:\n     MNTR ABCD 4 A_Chase\n     Goto See\n   See2:\n     MNTR ABCD 3 A_Chase\n     Goto See\n   See3:\n     MNTR ABCD 2 A_Chase\n     Goto See\n   Missile:\n     MNTR A 10 A_FaceTarget\n     MNTR A 0 A_SkullAttack\n     MNTR ABCD 2\n     Goto Missile+2\n   Melee:\n     MNTR VW 4 A_FaceTarget\n     MNTR X 4 A_MeleeAttack\n     Goto See\n   Pain.Stunner:\n     MNTR A 2 A_ChangeFlag(\"NoPain\", 1)\n     MNTR A 300 A_Pain\n     MNTR A 0 A_ChangeFlag(\"NoPain\", 0)\n     goto See\n   Death:\n   TNT1 A 0 A_GiveToTarget(\"AwardItem\", 6)\n     MNTS F 5\n     MNTS E 5 A_Scream\n     MNTS D 5\n     MNTS C 5 A_NoBlocking\n     MNTS B 5\n     MNTS A 3000 A_BossDeath\n     MNTS A 2 A_FadeOut(0.1)\n     wait\n   }\n}\n\nACTOR Thrall 30119\n{\n//$Category Stronghold_CityOfSilence\nPainChance \"Stunner\", 128\nSpawnID 177\nHealth 100\nPainChance 200\nScale 0.9\nSpeed 8\nRadius 20\nHeight 56\nMass 100\nMONSTER\n+FloorClip\n+DontHurtSpecies\nOBITUARY \"$STR_OB_THRALL\"\nTag \"$STR_MONSTERTAG_THRALL\"\nSEESOUND \"monster/culsit\"\nATTACKSOUND \"monster/culatk\"\nPAINSOUND \"monster/culpai\"\nDEATHSOUND \"monster/culdth\"\nACTIVESOUND \"monster/culact\"\nstates\n   {\n   Spawn:\n       CULT AB 10 A_Look\n       Loop\n   See:\n       CULT AABBCCDD 2 A_Chase\n       Loop\n   Missile:\n       CULT EE 5 A_FaceTarget\n       CULT F 0 BRIGHT A_CustomMissile (\"ThrallShot1\",42,-6,0,1,0)\n       CULT F 0 BRIGHT A_CustomMissile (\"ThrallShot1\",42,6,0,1,0)\n       CULT F 8 BRIGHT A_PlaySound(\"monster/culatk\")\n       Goto See\n   Pain:\n       CULT G 2\n       CULT G 2 A_Pain\n       Goto See\n   Pain.Stunner:\n    \tCULT G 2 A_ChangeFlag(\"NoPain\", 1)\n    \tCULT G 300 A_Pain\n \tCULT G 0 A_ChangeFlag(\"NoPain\", 0)\n    \tgoto See\n   Death:\n       TNT1 A 0 A_GiveToTarget(\"AwardItem\", 4)\n       CULT H 8\n       CULT I 8 A_Scream\n       CULT J 4\n       CULT K 4 A_NoBlocking\n       CULT L 4\n       CULT M 3000 CanRaise\n       CULT M 2 A_FadeOut(0.1)\n       wait\n   XDeath:\n       TNT1 A 0 A_GiveToTarget(\"AwardItem\", 6)\n       CULT N 5\n       CULT O 5 A_XScream\n       CULT P 5 A_NoBlocking\n       CULT QRSTUV 5\n       CULT W 3000 CanRaise\n       CULT W 2 A_FadeOut(0.1)\n       wait\n   Raise:\n       CULT MLKJIH 5\n       goto See\n   }\n}\n\nACTOR ThrallShot1\n{\n   Radius 4\n   Height 6\n   Speed 14\n   Damage 1\n   RENDERSTYLE ADD\n   Alpha 0.67\n   PROJECTILE\n   DEATHSOUND \"monster/disht1\"\n   states\n   {\n   Spawn:\n      CFX4 AB 2 BRIGHT\n      Loop\n   Death:\n      CFX4 CDEF 3 BRIGHT\n      Stop\n   }\n}\n\nACTOR Incarnate 30115\n{\n//$Category Stronghold_CityOfSilence\nPainChance \"Stunner\", 128\nSpawnID 178\nHealth 300\nGibHealth -50\nRadius 20\nHeight 56\nMass 500\nSpeed 12\n//Damage 1\nMeleeDamage 8\nPainChance 32\n//DropItem \"Heart\" 160\nMONSTER\n+FloorClip\n+MissileMore\n+ShortMissileRange\n+DontHurtSpecies\nOBITUARY \"$STR_OB_INCARNATE\"\nHITOBITUARY \"$STR_OB_INCARNATEHIT\"\nTag \"$STR_MONSTERTAG_INCARNATE\"\nSEESOUND \"monster/incsit\"\nPAINSOUND \"skeleton/pain\"\nDEATHSOUND \"monster/incdth\"\nACTIVESOUND \"monster/incact\"\nATTACKSOUND \"monster/incatk\"\nMELEESOUND \"monster/inchit\"\nstates\n   {\n   Spawn:\n       INCA AB 10 A_Look\n       Loop\n   See:\n       INCA AABBCCDDEEFF 2 A_Chase\n       Loop\n   Melee:\n       INCA G 0 A_Jump(128,5)\n       INCA G 0 A_FaceTarget\n       INCA G 6 A_SkelWhoosh\n       INCA H 6 A_FaceTarget\n       INCA I 6 A_MeleeAttack\n       Goto See\n       INCA R 0 A_FaceTarget\n       INCA R 5 A_SkelWhoosh\n       INCA S 5 A_FaceTarget\n       INCA T 5 A_MeleeAttack\n       INCA G 0 A_FaceTarget\n       INCA G 5 A_SkelWhoosh\n       INCA H 5 A_FaceTarget\n       INCA I 5 A_MeleeAttack\n       Goto See\n   Missile:\n       INCA J 5 A_FaceTarget\n       INCA J 5\n       INCA U 4 A_CustomMissile(\"ShadowBall\", 64, 0, random(20, 10))\n       INCA U 4 A_CustomMissile(\"ShadowBall\", 64, 0, random(-10, -20))\n       INCA U 4 A_CustomMissile(\"ShadowBall\", 64, 0, 0)\n       INCA K 10\n       Goto See\n   Pain:\n       INCA L 5\n       INCA L 5 A_Pain\n       Goto See\n   Pain.Stunner:\n    \tINCA L 2 A_ChangeFlag(\"NoPain\", 1)\n    \tINCA L 300 A_Pain\n \tINCA L 0 A_ChangeFlag(\"NoPain\", 0)\n    \tgoto See\n   Death:\n       TNT1 A 0 A_JumpIfInventory(\"Clip\",2,\"XDeath\")\n       TNT1 A 0 A_GiveInventory(\"Clip\",1)\n       TNT1 A 0 A_GiveToTarget(\"AwardItem\", 4)\n       INCA LM 7\n       INCA N 7 A_Scream\n       INCA O 7 A_NoBlocking\n       INCA P 7\n       INCA Q 175\n       INCA Q 1 CanRaise Thing_Raise(0)\n       wait\n   Death.PlayerAllyRocket:\n   Death.PlayerAllyPlasma:\n   Death.PlayerAllyRailgun:\n   Death.PlayerAllyRepeater:\n   Death.PlayerAllyFire:\n   Death.PlayerAllyBFG:\n   Death.PlayerAllyBFGSplash:\n   Death.PlayerAllyIce:\n   Death.MarineAllyRocket:\n   Death.MarineAllyPlasma:\n   Death.MarineAllyRailgun:\n   Death.MarineAllyRepeater:\n   Death.MarineAllyFire:\n   Death.MarineAllyBFG:\n   Death.MarineAllyBFGSplash:\n   Death.MarineAllyIce:\n   Death.SmartBomb:\n   XDeath:\n       TNT1 A 0 A_GiveToTarget(\"AwardItem\", 12)\n       INCX A 10 BRIGHT A_PlaySound(\"monster/incexp\",2)\n       INCX BC 5 BRIGHT\n       INCX D 5 BRIGHT A_NoBlocking\n       TNT1 A 0 A_SpawnItem(\"HS\",0,32)\n       INCX EFGHIJ 5 BRIGHT\n       INCX K 3000\n       INCX K 2 A_FadeOut(0.1)\n       wait\n   Raise:\n       INCA QPONML 5\n       Goto See\n   }\n}\n\nACTOR HotDog 30121\n{\n//$Category Stronghold_CityOfSilence\nPainChance \"Stunner\", 128\n// fire resistance damagefactors\nDamageFactor \"Fire\", 0.5\nDamageFactor \"PlayerAllyFire\", 0.5\nDamageFactor \"MarineAllyFire\", 0.5\nDamageFactor \"BruiserAttack\", 0.5\nDamageFactor \"Inferno\", 0.5\nDamageFactor \"CoreFriendlyFire\", 0.5\nDamageFactor \"OvermindFactorFire\", 0.5\nDamageFactor \"STBoss\", 0.5\nDamageFactor \"STBossFactor\", 0.5\nDamageFactor \"Animate\", 0.5\nDamageFactor \"Cyber2FactorFire\", 0.5\nSpawnID 179\nHealth 300\nPainChance 128\nSpeed 6\nRadius 30\nHeight 50\nMass 500\nMeleeDamage 7\n//DropItem \"Heart\" 160\nMONSTER\n+FloorClip\n+DontHurtSpecies\nOBITUARY \"$STR_OB_HOTDOG\"\nHITOBITUARY \"$STR_OB_HOTDOGHIT\"\nTag \"$STR_MONSTERTAG_HOTDOG\"\nSEESOUND \"monster/dogsit\"\nATTACKSOUND \"monster/dogatk\"\nMELEESOUND \"monster/dogbit\"\nPAINSOUND \"monster/dogpai\"\nDEATHSOUND \"monster/dogdth\"\nACTIVESOUND \"monster/dogact\"\nSpawnID 170\nstates\n   {\n   Spawn:\n       HDOG AA 10 A_Look\n       Loop\n   See:\n       HDOG AAAABBBBCCCCDDDDEEEEFFFF 1 A_Chase\n       Loop\n   Melee:\n       HDOG GH 6 A_FaceTarget\n       HDOG I 6 A_MeleeAttack\n       Goto See\n   Missile:\n       TNT1 A 0 A_JumpIfCloser(256,1)\n       Goto See\n       HDOG G 10 A_FaceTarget\n       HDOG HHHHHHHHHHHH 1 A_CustomMissile(\"DogFire\",28,0,0,0,0)\n       HDOG I 6\n       Goto See\n   Pain:\n       HDOG J 2\n       HDOG J 2 A_Pain\n       Goto See\n   Pain.Stunner:\n       HDOG J 2 A_ChangeFlag(\"NoPain\", 1)\n       HDOG J 300 A_Pain\n       HDOG J 0 A_ChangeFlag(\"NoPain\", 0)\n       goto See\n   Death:\n       TNT1 A 0 A_GiveToTarget(\"AwardItem\", 9)\n       HDOG K 8\n       HDOG L 8 A_Scream\n       HDOG M 4\n       HDOG N 4 A_NoBlocking\n       HDOG OP 4\n       HDOG Q 3000 CanRaise\n       HDOG Q 2 A_FadeOut(0.1)\n       wait\n   Raise:\n       HDOG QPONMLK 5\n       goto See\n   }\n}\n\nACTOR DogFire\n{\n   Radius 2\n   Height 4\n   Speed 16\n   Damage 1\n   PROJECTILE\n   RENDERSTYLE ADD\n   DamageType Fire\n   Alpha 0.67\n   Scale 0.67\n   SEESOUND \"weapons/bigbrn\"\n   DEATHSOUND \"weapons/bigbrn\"\n   DontHurtShooter\n   states\n   {\n   Spawn:\n      TNT1 A 2\n      FRFX ABCD 2 BRIGHT A_Explode(1,8)\n      FRFX D 0 BRIGHT A_LowGravity\n      FRFX EFG 2 BRIGHT A_Explode(1,16)\n      FRFX HIJ 2 BRIGHT A_Explode(1,32)\n      FRFX KLM 2 BRIGHT A_Explode(1,64)\n      FRFX NO 2 BRIGHT\n      Stop\n   Death:\n      FRFX HIJ 2 BRIGHT A_Explode(1,32)\n      FRFX KLM 2 BRIGHT A_Explode(1,64)\n      FRFX NO 2 BRIGHT\n      Stop\n   }\n}\n\nactor Vulgar : DoomImp 30127\n{\n//$Category Stronghold_CityOfSilence\n  PainChance \"Stunner\", 128\n  SpawnID 180\n  obituary \"$STR_OB_VULGAR\"\n  hitobituary \"$STR_OB_VULGARHIT\"\n  Tag \"$STR_MONSTERTAG_VULGAR\"\n  health 100\n  radius 20\n  height 56\n  mass 120\n  speed 8\n  PainChance 120\n  MeleeDamage 4\n  +DONTHURTSPECIES\n  seesound \"monster/vulsit\"\n  painsound \"monster/vulpai\"\n  deathsound \"monster/vuldth\"\n  activesound \"monster/vulact\"\n  meleesound \"monster/vulhit\"\n  //DropItem \"Heart\" 128\n  MONSTER\n  +FLOORCLIP\n  states\n  {\n  Spawn:\n    VULG AB 10 A_Look\n    loop\n  See:\n    VULG AABBCCDD 3 A_Chase\n    loop\n  Melee:\n    VULG E 8 A_FaceTarget\n    TNT1 A 0 A_PlaySound(\"monster/vulswg\")\n    VULG F 8 A_FaceTarget\n    VULG G 6 A_MeleeAttack\n    goto See\n  Missile:\n    VULG EF 8 A_FaceTarget\n    VULG G 6 A_CustomMissile(\"VulgarShot\",37,0,0,0,0)\n    goto See\n  Pain:\n    VULG H 2\n    VULG H 2 A_Pain\n    goto See\n  Pain.Stunner:\n       VULG H 2 A_ChangeFlag(\"NoPain\", 1)\n       VULG H 300 A_Pain\n       VULG H 0 A_ChangeFlag(\"NoPain\", 0)\n       goto See\n  Death:\n    TNT1 A 0 A_GiveToTarget(\"AwardItem\", 4)\n    VULG I 8\n    VULG J 8 A_Scream\n    VULG KL 6\n    VULG M 6 A_NoBlocking\n    VULG N 3000 CanRaise\n    VULG N 2 A_FadeOut(0.1)\n    wait\n  XDeath:\n    TNT1 A 0 A_GiveToTarget(\"AwardItem\", 6)\n    VULG O 5\n    VULG P 5 A_XScream\n    VULG Q 5\n    VULG R 5 A_NoBlocking\n    VULG STU 5\n    VULG V 3000 CanRaise\n    VULG V 2 A_FadeOut(0.1)\n    wait\n  Raise:\n    VULG ML 8\n    VULG KJI 6\n    goto See\n  }\n}\n\nACTOR VulgarShot\n{\n   Radius 8\n   Height 16\n   Speed 10\n   Damage 4\n   PoisonDamage 32\n   RENDERSTYLE ADD\n   ALPHA 0.67\n   PROJECTILE\n   Seesound \"poly/stmdr1\"\n   DeathSound \"weapons/bloodx\"\n   Decal DoomImpScorch\n   States\n   {\n   Spawn:\n      FVUL AB 3 Bright\n      loop\n   Death:\n      FVUL CDEF 4 Bright\n      stop\n   }\n}\n\nACTOR ESoul 29012\n{\n//$Category Stronghold_CityOfSilence\n  PainChance \"Stunner\", 128\n  SpawnID 181\n  obituary \"$STR_OB_ESOUL\"\n  Tag \"$STR_MONSTERTAG_ESOUL\"\n  health 90\n  radius 16\n  height 32\n  mass 400\n  speed 5\n  damage 5\n  PainChance 128\n  renderstyle Add\n  //DropItem \"Heart\" 160\n  Alpha 0.4\n  attacksound \"skull/melee\"\n  PainSound \"nightmare/pain\"\n  DeathSound \"nightmare/death\"\n  ActiveSound \"nightmare/active\"\n  MONSTER\n  +FLOAT\n  +NOGRAVITY\n  +NOICEDEATH\n  +MISSILEMORE\n  +DONTFALL\n  +STEALTH\n  +NOBLOOD\n  states\n  {\n  Spawn:\n    ETHS ABCD 10 bright A_Look\n    loop\n  See:\n    ETHS AABBCCDD 3 bright A_Chase\n    loop\n  Missile:\n    ETHS C 0 bright A_Jump(128,9)\n    ETHS C 6 bright A_FaceTarget\n    ETHS E 4 bright A_SkullAttack\n    ETHS E 0 bright A_FaceTarget\n    ETHS F 4 bright A_SkullAttack\n    ETHS F 0 bright A_FaceTarget\n    ETHS E 4 bright A_SkullAttack\n    ETHS E 0 bright A_FaceTarget\n    ETHS F 4 bright A_SkullAttack\n    goto See\n    ETHS P 3 bright A_FaceTarget\n    ETHS Q 4 bright A_FaceTarget\n    ETHS R 5 bright A_CustomMissile(\"ShadowBall\", 0, 0, 0)\n    ETHS E 4 bright\n    goto See\n  Pain:\n    ETHS G 3 bright\n    ETHS G 3 bright A_Pain\n    goto See\n  Pain.Stunner:\n       ETHS G 2 bright A_ChangeFlag(\"NoPain\", 1)\n       ETHS G 300 bright A_Pain\n       ETHS G 0 A_ChangeFlag(\"NoPain\", 0)\n       goto See\n  Death:\n    TNT1 A 0 A_GiveToTarget(\"AwardItem\", 4)\n    ETHS F 3 bright\n    ETHS H 3 bright A_ScreamAndUnblock\n    ETHS IJKLMNO 3 bright\n    stop\n  }\n}\n\nACTOR WraithX 30106\n{\n//$Category Stronghold_CityOfSilence\nPainChance \"Stunner\", 128\nSpawnID 182\nHealth 50\nRadius 16\nHeight 32\nMass 50\nSpeed 10\nDamage 2\nMeleeDamage 1\nRENDERSTYLE ADD\nOBITUARY \"$STR_OB_WRAITH\"\nHITOBITUARY \"$STR_OB_WRAITHHIT\"\nTag \"$STR_MONSTERTAG_WRAITH\"\nAlpha 0.67\nPainChance 64\nMONSTER\n+DontGib\n+NoGravity\n+Float\n+DontFall\n+DontHurtSpecies\n+NOICEDEATH\nATTACKSOUND \"monster/sprsit\"\nMELEESOUND \"monster/spratk\"\nPAINSOUND \"archvile/pain\"\nDEATHSOUND \"monster/sprdth\"\nSpawnID 176\nstates\n   {\n   Spawn:\n       WRAI AB 10 A_Look\n       Loop\n   See:\n       WRAI AABB 3 A_VileChase\n       Loop\n   Missile:\n       WRAI A 10 A_FaceTarget\n       WRAI B 4 A_SkullAttack\n       WRAI AB 4\n       Goto Missile+2\n   Melee:\n       WRAI A 5 A_FaceTarget\n       WRAI B 5 A_MeleeAttack\n       Goto See\n   Heal:\n       WRAI A 1 A_Die(\"WraithHeal\")\n       goto Death.WraithHeal\n   Pain:\n       WRAI A 3\n       WRAI A 3 A_Pain\n       Goto See\n   Pain.Stunner:\n       WRAI A 2 A_ChangeFlag(\"NoPain\", 1)\n       WRAI A 300 A_Pain\n       WRAI A 0 A_ChangeFlag(\"NoPain\", 0)\n       goto See // Why did it jump to Death?!\n   Death.WraithHeal:\n       WRAI AB 3\n       goto Death+1\n   Death:\n       TNT1 A 0 A_GiveToTarget(\"AwardItem\", 3)\n       WRAI E 4 A_NoBlocking\n       WRAI F 5 A_Scream\n       WRAI GHIJ 4\n       Stop\n   }\n}\n\nACTOR ChaingunCultist 29011\n{\n//$Category Stronghold_CityOfSilence\n  PainChance \"Stunner\", 128\n  SpawnID 183\n  OBITUARY \"$STR_OB_CHAINGUNCULTIST\"\n  Tag \"$STR_MONSTERTAG_CHAINGUNCULTIST\"\n  Health 60\n  Radius 20\n  Height 56\n  Mass 100\n  Speed 8\n  Scale 0.5\n  PainChance 100\n  SEESOUND \"monster/culsit\"\n  ATTACKSOUND \"chainguy/attack\"\n  PAINSOUND \"monster/culpai\"\n  DEATHSOUND \"monster/culdth\"\n  ACTIVESOUND \"monster/culact\"\n  DropItem \"Clip\" 255\n  DropItem \"Clip\" 255\n  MONSTER\n  +FloorClip\n  states\n  {\n  Spawn:\n    BCUL AB 10 A_Look\n    Loop\n  See:\n    BCUL AABBCCDD 3 A_Chase\n    Loop\n  Missile:\n    BCUL E 20 A_FaceTarget\n    BCUL FEFEFEFE 5 BRIGHT A_CPosAttack\n    Goto See\n  Pain:\n    BCUL G 3\n    BCUL G 3 A_Pain\n    Goto See\n  Pain.Stunner:\n       BCUL G 2 A_ChangeFlag(\"NoPain\", 1)\n       BCUL G 300 A_Pain\n       BCUL G 0 A_ChangeFlag(\"NoPain\", 0)\n       goto See\n  Death:\n    TNT1 A 0 A_GiveToTarget(\"AwardItem\", 3)\n    BCUL H 5\n    BCUL I 5 A_Scream\n    BCUL J 5 A_NoBlocking\n    BCUL KLM 5\n    BCUL N 3000 CanRaise\n    BCUL N 2 A_FadeOut(0.1)\n    wait\n  XDeath:\n    TNT1 A 0 A_GiveToTarget(\"AwardItem\", 4)\n    BCUL O 5\n    BCUL P 5 A_XScream\n    BCUL Q 5 A_NoBlocking\n    BCUL RST 5\n    BCUL U 3000 CanRaise\n    BCUL U 2 A_FadeOut(0.1)\n    wait\n  Raise:\n    BCUL NMLKJIH 5\n    goto See\n  }\n}\n\nACTOR ShotgunCultist : ChaingunCultist 29010\n{\n//$Category Stronghold_CityOfSilence\n  SpawnID 187\n  OBITUARY \"$STR_OB_SHOTGUNCULTIST\"\n  Tag \"$STR_MONSTERTAG_SHOTGUNCULTIST\"\n  Health 80\n  Translation \"80:111=48:79\"\n  AttackSound \"shotguy/attack\"\n  DropItem \"Shell\" 96\n  states\n  {\n  Missile:\n    BCUL E 20 A_FaceTarget\n    BCUL F 10 BRIGHT A_SPosAttack\n    BCUL E 10\n    Goto See\n  }\n}\n\nACTOR FattyX 25010\n{\n//$Category Stronghold_CityOfSilence\n  PainChance \"Stunner\", 128\n  SpawnID 185\n  OBITUARY \"$STR_OB_FATTY\"\n  HITOBITUARY \"$STR_OB_FATTYHIT\"\n  Tag \"$STR_MONSTERTAG_FATTY\"\n  Health 270\n  Radius 12\n  Height 56\n  Mass 500\n  Speed 7\n  Scale 0.6\n  PainChance 100\n  SEESOUND \"fatty/sit\"\n  PAINSOUND \"skeleton/pain\"\n  DEATHSOUND \"fatty/death\"\n  ACTIVESOUND \"fatty/act\"\n  MONSTER\n  //DropItem \"Heart\" 128\n  +FloorClip\n  +LongMeleeRange\n  +MissileMore\n  states\n  {\n  Spawn:\n    BFAT AB 10 A_Look\n    Loop\n  See:\n    BFAT AABBCCDDEEFF 4 A_Chase\n    Loop\n  Melee:\n    BFAT G 0 A_FaceTarget\n    BFAT G 6 A_SkelWhoosh\n    BFAT H 6 A_FaceTarget\n    BFAT I 6 A_SkelFist\n    Goto See\n  Missile:\n    BFAT J 0 A_FaceTarget\n    BFAT J 10 A_FaceTarget\n    BFAT J 0 A_Jump(128,3)\n    BFAT K 10 A_CustomMissile(\"FattyTracer1\",32,0,0)\n    BFAT K 10 A_FaceTarget\n    Goto See\n    BFAT K 10 A_CustomMissile(\"FattyTracer2\",32,0,0)\n    BFAT K 10 A_FaceTarget\n    Goto See\n  Pain:\n    BFAT L 5\n    BFAT L 5 A_Pain\n    Goto See\n  Pain.Stunner:\n    BFAT L 2 A_ChangeFlag(\"NoPain\", 1)\n    BFAT L 300 A_Pain\n    BFAT L 0 A_ChangeFlag(\"NoPain\", 0)\n    goto See\n  Death:\n    TNT1 A 0 A_GiveToTarget(\"AwardItem\", 8)\n    BFAT LM 9\n    BFAT N 9 A_Scream\n    BFAT O 9 A_NoBlocking\n    BFAT P 9\n    BFAT Q 3000 CanRaise\n    BFAT Q 2 A_FadeOut(0.1)\n    wait\n  Raise:\n    BFAT QPONML 5\n    goto See\n  }\n}\n\nACTOR FattyTracer1\n{\n  Radius 11\n  Height 8\n  Speed 10\n  Damage 3\n  SEESOUND \"fatty/attack\"\n  DEATHSOUND \"fatty/attack\"\n  PROJECTILE\n  +Randomize\n  states\n  {\n  Spawn:\n    FATX AB 2\n    Loop\n  Death:\n    FBXX A 8\n    FBXX B 6\n    FBXX C 4\n    Stop\n  }\n}\n\nACTOR FattyTracer2 : FattyTracer1\n{\n  +SEEKERMISSILE\n  states\n  {\n  Spawn:\n    FATX A 2 A_SeekerMissile(10,20)\n    FATX B 2 A_SpawnItemEx(\"FattyTracerTrail\", 0, 0, 0, 0, 0, 0, 180, 128)\n    Loop\n  }\n}\n\nACTOR FattyTracerTrail\n{\n    Radius 1\n    Height 1\n    Speed 0\n    PROJECTILE\n    RENDERSTYLE Translucent\n    Alpha 0.5\n    Scale 0.5\n    +Noclip\n    states\n    {\n    Spawn:\n    Death:\n    \tFBXX ABC 3\n    \tTNT1 A 1\n        Stop\n    }\n}\n\nACTOR ZombieX 31002\n{\n//$Category Stronghold_CityOfSilence\n  PainChance \"Stunner\", 128\n  SpawnID 186\n  HITOBITUARY \"$STR_OB_ZOMBIE\"\n  Tag \"$STR_MONSTERTAG_ZOMBIE\"\n  Health 150\n  PainChance 0\n  Speed 9\n  Radius 30\n  //DropItem \"Heart\" 160\n  Height 56\n  Mass 400\n  MeleeDamage 10\n  Scale 0.5\n  MELEESOUND \"zombieblood/hit\"\n  SEESOUND \"zombieblood/sit\"\n  ATTACKSOUND \"zombieblood/fis\"\n  PAINSOUND \"zombieblood/pan\"\n  DEATHSOUND \"zombieblood/dth\"\n  ACTIVESOUND \"zombieblood/act\"\n  MONSTER\n  +FloorClip\n  states\n  {\n  Spawn:\n    BZOM AB 10 A_Look\n    Loop\n  See:\n    BZOM AABBCCDD 3 A_Chase\n    Loop\n  Melee:\n    BZOM EF 8 A_FaceTarget\n    BZOM G 8 A_MeleeAttack\n    Goto See\n  Pain:\n    BZOM H 2\n    BZOM H 2 A_Pain\n    Goto See\n  Pain.Stunner:\n    BZOM H 2 A_ChangeFlag(\"NoPain\", 1)\n    BZOM H 300 A_Pain\n    BZOM H 0 A_ChangeFlag(\"NoPain\", 0)\n    goto See\n  Death:\n    TNT1 A 0 A_GiveToTarget(\"AwardItem\", 6)\n    BZOM I 8\n    BZOM J 8 A_Scream\n    BZOM K 4\n    BZOM L 4 A_NoBlocking\n    BZOM M 4\n    BZOM N 3000 CanRaise\n    BZOM N 2 A_FadeOut(0.1)\n    wait\n  Raise:\n    BZOM NMLKJI 5\n    goto See\n  }\n}"
      },
      {
        "source": "pk3",
        "name": "actors/critters.txt",
        "contents": "// Crab\nactor Crab 8589\n{\n//$Category Stronghold_Critters\n    Health 1\n    Radius 8\n    Height 4\n    Speed 4\n    Scale 0.7\n    PainChance 0\n    Mass 10\n    MONSTER\n    +FLOORCLIP\n    +Friendly\n    -COUNTKILL\n    -ACTIVATEMCROSS\n    -SOLID\n    +NOTAUTOAIMED\n    States\n    {\n    Spawn:\n        CRAB ABCD 4 A_Wander\n        Loop\n    Death:\n        CRAB EFGHIJ 4\n        Stop\n    }\n}\n\nactor Babycrab 8590\n{\n//$Category Stronghold_Critters\n    Health 1\n    Radius 4\n    Height 2\n    Speed 2\n    Scale 0.4\n    PainChance 0\n    Mass 5\n    +FLOORCLIP\n    +Friendly\n    -countkill\n    -ACTIVATEMCROSS\n    -SOLID\n    +NOTAUTOAIMED\n    States\n    {\n    Spawn:\n        CRAB ABCD 4 A_Wander\n        Loop\n    Death:\n        CRAB EFGHIJ 4\n        Stop\n    }\n}\n\nACTOR FireFly 3100\n{\n//$Category Stronghold_Critters\n    Health 2\n    Radius 1\n    Height 1\n    Speed 0.5\n    Mass 5\n    PainChance 0\n    Scale 0.25\n    +NOGRAVITY\n    +NOTARGET\n    +FloatBob\n    +SPAWNFLOAT\n    +NOLIFTDROP\n    +DONTOVERLAP\n    +CANNOTPUSH\n    +RANDOMIZE\n    +PUSHABLE\n    +FRIENDLY\n    -ACTIVATEMCROSS\n    -SOLID\n    +NOTAUTOAIMED\n    States\n     {\n    Spawn:\n        FFLY ABABABABABABABABABABABA 2 A_Wander\n        FFLY BBB 2  Bright A_Wander\n        Loop\n    Death:\n        FFLY A 2 A_Scream\n        FFLY B 2 A_Fall\n        Stop\n    }\n}\n\nACTOR DragonFly 3103\n{\n//$Category Stronghold_Critters\n    Health 2\n    Radius 1\n    Height 1\n    Speed 10\n    Mass 5\n    PainChance 0\n    Scale 0.25\n    +NOGRAVITY\n    +NOTARGET\n    +FloatBob\n    +SPAWNFLOAT\n    +NOLIFTDROP\n    +DONTOVERLAP\n    +CANNOTPUSH\n    +RANDOMIZE\n    -PUSHABLE\n    +FRIENDLY\n    -ACTIVATEMCROSS\n    -SOLID\n    +NOTAUTOAIMED\n   States\n    {\n    Spawn:\n        DRAG AB 2 A_Wander\n        Loop\n    Death:\n        DRAG A 2 A_Scream\n        DRAG B 2 A_Fall\n        Stop\n    }\n}\n\nactor StrangeLight_Red 3104\n{\n//$Category Stronghold_Critters\n    Radius 1\n    Height 1\n    Speed 1\n    Mass 5\n    PainChance 0\n    Renderstyle Add\n    Alpha 1.0\n    Scale 0.2\n    MONSTER\n    +NOGRAVITY\n    +NOTARGET\n    +FLOATBOB\n    +SPAWNFLOAT\n    +NOLIFTDROP\n    +DONTOVERLAP\n    +CANNOTPUSH\n    +RANDOMIZE\n    -PUSHABLE\n    -SHOOTABLE\n    +FRIENDLY\n    -ACTIVATEMCROSS\n    -SOLID\n    +ALLOWCLIENTSPAWN\n    +NOTAUTOAIMED\n   States\n    {\n    Spawn:\n        STLI A 2 A_Wander\n        Loop\n    }\n}\n\nactor StrangeLight_Blue 3105\n{\n//$Category Stronghold_Critters\n    Radius 1\n    Height 1\n    Speed 1\n    Mass 5\n    PainChance 0\n    Renderstyle Add\n    Alpha 1.0\n    Scale 0.2\n    MONSTER\n    +NOGRAVITY\n    +NOTARGET\n    +FLOATBOB\n    +SPAWNFLOAT\n    +NOLIFTDROP\n    +DONTOVERLAP\n    +CANNOTPUSH\n    +RANDOMIZE\n    -PUSHABLE\n    -SHOOTABLE\n    +FRIENDLY\n    -ACTIVATEMCROSS\n    -SOLID\n    +ALLOWCLIENTSPAWN\n    +NOTAUTOAIMED\n   States\n    {\n    Spawn:\n        STLI B 2 A_Wander\n        Loop\n    }\n}\n\nactor StrangeLight_White 3106\n{\n//$Category Stronghold_Critters\n    Radius 1\n    Height 1\n    Speed 1\n    Mass 5\n    PainChance 0\n    Renderstyle Add\n    Alpha 1.0\n    Scale 0.2\n    MONSTER\n    +NOGRAVITY\n    +NOTARGET\n    +FLOATBOB\n    +SPAWNFLOAT\n    +NOLIFTDROP\n    +DONTOVERLAP\n    +CANNOTPUSH\n    +RANDOMIZE\n    -PUSHABLE\n    -SHOOTABLE\n    +FRIENDLY\n    -ACTIVATEMCROSS\n    +ALLOWCLIENTSPAWN\n    -SOLID\n    +NOTAUTOAIMED\n   States\n    {\n    Spawn:\n        STLI C 2 A_Wander\n        Loop\n    }\n}\n\nactor StrangeLight_Green 3107\n{\n//$Category Stronghold_Critters\n    Radius 1\n    Height 1\n    Speed 1\n    Mass 5\n    PainChance 0\n    Renderstyle Add\n    Alpha 1.0\n    Scale 0.2\n    MONSTER\n    +NOGRAVITY\n    +NOTARGET\n    +FLOATBOB\n    +SPAWNFLOAT\n    +NOLIFTDROP\n    +DONTOVERLAP\n    +CANNOTPUSH\n    +RANDOMIZE\n    -PUSHABLE\n    -SHOOTABLE\n    +FRIENDLY\n    -ACTIVATEMCROSS\n    +ALLOWCLIENTSPAWN\n    -SOLID\n    +NOTAUTOAIMED\n   States\n    {\n    Spawn:\n        STLI D 2 A_Wander\n        Loop\n    }\n}\n\nActor Creep2 19251\n{\n//$Category Stronghold_Critters\n\thealth 1\n\tradius 2\n\theight 2\n\tscale 0.1\n\tspeed 2\n\tmaxstepheight 4\n\tmaxdropoffheight 4\n\tbloodcolor red\n\t+SHOOTABLE\n\t+RANDOMIZE\n\t-SOLID\n\t+FRIENDLY\n\t-ACTIVATEMCROSS\n    +NOTAUTOAIMED\n\tStates\n\t\t{\n\t\tSpawn:\n\t\t CRIZ AAABBB 1 A_Wander\n\t\t CRIZ A 0 A_Jump(20,\"Spawn2\")\n\t\t loop\n\t\tSpawn2:\n\t\t CRIZ A 5 A_Jump(20,\"Spawn\")\n\t\t loop\n\t\tDeath:\n\t\t CRIZ D 3 A_Playsound(\"Creep2/die\")\n\t\t CRIZ E 3 A_UnsetShootable\n\t\t CRIZ F -1\n\t\tstop\n\t\t}\n}\n\nActor Spiderbug_Brown 19252\n{\n//$Category Stronghold_Critters\n\thealth 1\n\tradius 2\n\theight 2\n\tscale 0.2\n\ttranslation \"176:191=64:79\", \"32:47=64:79\"\n\tspeed 2\n\tmaxstepheight 4\n\tmaxdropoffheight 4\n\tbloodcolor green\n\t+SHOOTABLE\n\t+RANDOMIZE\n\t-SOLID\n\t+FRIENDLY\n\t-ACTIVATEMCROSS\n    +NOTAUTOAIMED\n\tStates\n\t\t{\n\t\tSpawn:\n\t\t\tCR3P AAAABBBBCCCC 1 A_Wander\n\t\t\tCR3P A 0 A_Jump(20,\"Jump\")\n\t\t\tloop\n\t\tJump:\n\t\t\tCR3P A 1 ThrustThingZ(0,20,0,0)\n\t\t\tGoto Spawn\n\t\tDeath:\n\t\t\tCR3P D 3 A_Playsound(\"Creep/die\")\n\t\t\tCR3P EF 3 A_UnsetShootable\n\t\t\tCR3P G -1\n\t\t\tstop\n\t\t}\n}\n\nActor Spiderbug_Red 19253\n{\n//$Category Stronghold_Critters\n\thealth 1\n\tradius 2\n\theight 2\n\tscale 0.2\n\tspeed 2\n\tmaxstepheight 4\n\tmaxdropoffheight 4\n\tbloodcolor green\n\t+SHOOTABLE\n\t+RANDOMIZE\n\t-SOLID\n\t+FRIENDLY\n\t-ACTIVATEMCROSS\n    +NOTAUTOAIMED\n\tStates\n\t\t{\n\t\tSpawn:\n\t\t\tCR3P AAAABBBBCCCC 1 A_Wander\n\t\t\tCR3P A 0 A_Jump(20,\"Jump\")\n\t\t\tloop\n\t\tJump:\n\t\t\tCR3P A 1 ThrustThingZ(0,20,0,0)\n\t\t\tGoto Spawn\n\t\tDeath:\n\t\t\tCR3P D 3 A_Playsound(\"Creep/die\")\n\t\t\tCR3P EF 3 A_UnsetShootable\n\t\t\tCR3P G -1\n\t\t\tstop\n\t\t}\n}"
      },
      {
        "source": "pk3",
        "name": "actors/duke3d.txt",
        "contents": "actor ShrunkenPlayer : StrongholdPlayer\n{\n  Scale 0.125\n  Radius 4\n  Height 7\n  Speed 0.45\n  Player.ViewHeight 5\n  Player.MorphWeapon \"DEShrinkFist\"\n}\n\nactor DEShrinkFist : DEFist\n{\n  Weapon.SisterWeapon \"\" // Just in case.\n  Tag \"$TAG_FIST\"\n  +NOALERT\n  +CHEATNOTWEAPON\n  States\n  {\n  Ready:\n    PUNG Z 1 A_WeaponReady\n\tLoop\n  Select:\n    TNT1 A 0 A_Raise\n    PUNG Z 1 A_Raise\n\tLoop\n  Deselect:\n    TNT1 A 0 A_Lower\n    PUNG Z 1 A_Lower\n\tLoop\n  Fire:\n    PUNG Z 0\n    Goto Ready\n  }\n}\n\n/****** actor prototypes - changing these changes all the actors that inherit from them, no need to doomednum ******/\n\nACTOR DukeMetalBarrelPrototype\n{\n\tRadius 16\n\tHeight 40\n\tMass 100\n\tScale 0.7\n\tHealth 50\n//\t+SHOOTABLE\n\t+SOLID\n\t+NOBLOOD\n\tStates\n\t{\n\tDeath:\n\t\tDNBR A 0\n\t\tStop\n\t}\n}\n\n/****** normal definitions, start numbering ******/\n\nACTOR DukeParkingMeter 164\n{\n//$Category Stronghold_DukeNukem\n\tRadius 4\n\tHeight 40\n\tScale 0.6\n\tMass 900000\n\t+SOLID\n\tStates\n\t{\n\tSpawn:\n\t\tDNST C -1\n        stop\n\t}\n}\n\nACTOR DukeLampPost  165\n{\n//$Category Stronghold_DukeNukem\n\tRadius 4\n\tHeight 128\n\t+SOLID\n\tStates\n\t{\n\tSpawn:\n\t\tDNST D -1\n        stop\n\t}\n}\n\nACTOR DukeBin 166\n{\n//$Category Stronghold_DukeNukem\n\tHealth 100\n\tRadius 16\n\tHeight 40\n\tScale 0.6\n\t+SOLID\n\t+SHOOTABLE\n\t+NOBLOOD\n\t+NODAMAGE\n\tMass 0x7fffffff\n    PainChance 255\n\tStates\n\t{\n\tSpawn:\n\t\tDNBR B -1\n        stop\n\tPain:\n\t\tDNBR C 10\n\t\tGoto Spawn\n\t}\n}\n\nACTOR DukeBox 167\n{\n//$Category Stronghold_DukeNukem\n\tRadius 4\n\tHeight 8\n\tScale 0.6\n\tStates\n\t{\n\tSpawn:\n\t\tDNBX A -1\n        stop\n\t}\n}\n\n/****** inherited classes ******/\n\nACTOR DukeMetalBarrel1 : DukeMetalBarrelPrototype 168\n{\n//$Category Stronghold_DukeNukem\n\tStates\n\t{\n\tSpawn:\n\t\tDNBR A -1\n        stop\n\t}\n}\n\nACTOR FlameBreathX {\n\tRadius 16\n\tHeight 1\n\tSpeed 16\n\tRenderStyle ADD\n\tScale 0.5\n    DamageType \"Fire\"\n\tProjectile\n\tDamage 1\n\tExplosionDamage 2\n\tExplosionRadius 64\n\t+Ripper\n\t+NoDamageThrust\n\t+StrifeDamage\n\tDontHurtShooter\n\tSeeSound \"duke/flame\"\n\tStates\n\t{\n\tSpawn:\n\t\tXPLO ABCDEFGHIJKLMN 3 BRIGHT A_Explode\n\t\tXPLO OPQRSTU 3 BRIGHT\n\t\tStop\n\t}\n}\n\nACTOR Queen\n{\n//$Category Stronghold_DukeNukem\n    PainChance \"Stunner\", 128\n\tBloodType \"DN3DBlood\", \"DN3DBlood\", \"AxeBlood\"\n\tspawnid 173\n\tHealth 6000\n\tMass 800\n\tRadius 40\n\tHeight 140\n\tScale 0.65\n\tSpeed 20\n    PainChance 32\n\tMONSTER\n\t+FLOORCLIP\n    //+DONTRIP\n    +DONTMORPH\n\t+BOSS\n\t+FULLVOLACTIVE\n\tSeeSound \"queen/sight\"\n\tPainSound \"queen/pain\"\n\tDeathSound \"queen/death\"\n\tActiveSound \"queen/active\"\n\tObituary \"$STR_OB_QUEEN\"\n    Tag \"$STR_MONSTERTAG_QUEEN\"\n\tStates\n\t{\n\tSpawn:\n\t\tQUEE AB 10 A_Look\n\t\tLoop\n\tSee:\n\t\tQUEE AABBCCDD 3 A_Chase\n\t\tLoop\n\tMissile:\n\t\tQUEE S 0 A_PlaySound(\"queen/scream\")\n\t\tQUEE STU 8 A_FaceTarget\n\t\tQUEE UUUUUUUUUUUUUUUUUUUU 2 Bright A_CustomMissile(\"FlameBreathX\", random(42,46), 0, random(-8,8))\n\t\tGoto See\n\tMelee:\n\t\tQUEE E 3 A_FaceTarget\n\t\tQUEE E 3 A_PlaySound(\"queen/shock\")\n\t\tQUEE FG 3 BRIGHT A_CustomMeleeAttack(5,\"\",\"\",\"Melee\",0) // was originally 1-2, I think\n\t\tQUEE F 0 A_FaceTarget\n\t\tQUEE FG 3 BRIGHT A_CustomMeleeAttack(5,\"\",\"\",\"Melee\",0)\n\t\tQUEE F 0 A_FaceTarget\n\t\tQUEE FG 3 BRIGHT A_CustomMeleeAttack(5,\"\",\"\",\"Melee\",0)\n\t\tQUEE F 0 A_FaceTarget\n\t\tQUEE FG 3 BRIGHT A_CustomMeleeAttack(5,\"\",\"\",\"Melee\",0)\n\t\tQUEE F 0 A_FaceTarget\n\t\tGoto See\n\tPain:\n\t\tQUEE S 3\n\t\tQUEE S 3 A_Pain\n\t\tGoto See\n\tPain.Stunner:\n\t\tQUEE S 2 A_ChangeFlag(\"NoPain\", 1)\n\t\tQUEE S 300 A_Pain\n\t\tQUEE S 0 A_ChangeFlag(\"NoPain\", 0)\n\t\tgoto See\n\tDeath:\n\t\tTNT1 A 0 A_GiveToTarget(\"AwardItem\", 40)\n\t\tQUEE H 6\n\t\tQUEE I 6 A_Scream\n\t\tQUEE J 6 A_Fall\n\t\tQUEE KLMNOP 6\n\t\tQUEE Q 3000\n\t\tQUEE Q 2 A_FadeOut(0.1)\n\t\twait\n\t}\n}\n\nACTOR Cycloid\n{\n//$Category Stronghold_DukeNukem\n    PainChance \"Stunner\", 32\n\tBloodType \"DN3DBlood\", \"DN3DBlood\", \"AxeBlood\"\n\tspawnid 172\n\tHealth 4500\n\tMass 10000\n\tRadius 40\n\tHeight 140\n\tScale 1.35\n\tSpeed 20\n    PainChance 32\n\tMONSTER\n\t+BOSS\n    +DONTMORPH\n    //+DONTRIP\n\t+FLOORCLIP\n\tSeeSound \"cycloid/sight\"\n\tPainSound \"cycloid/pain\"\n\tDeathSound \"cycloid/death\"\n\tActiveSound \"cycloid/active\"\n\tObituary \"$STR_OB_CYCLOID\"\n    Tag \"$STR_MONSTERTAG_CYCLOID\"\n\tStates\n\t{\n\tSpawn:\n\t\tCYCL AB 10 A_Look\n\t\tLoop\n\tSee:\n\t\tCYCL A 0 A_PlaySound(\"cycloid/stomp\")\n\t\tCYCL ABCD 5 A_Chase\n\t\tCYCL A 0 A_JumpIfCloser(1024,\"See\")\n\t\tGoto Charge\n\tCharge:\n\t\tCYCL A 0 A_PlaySound(\"cycloid/stomp\")\n\t\tCYCL ABCD 3 A_Chase\n\t\tLoop\n\tMissile:\n\t\tCYCL E 0 A_PlaySound(\"cycloid/attack\")\n\t\tCYCL E 0 A_JumpIfCloser(512, \"Psi\") //change to jump if closer+chance\n        Rockets:\n\t\tCYCL E 4 A_FaceTarget\n\t\tCYCL F 4 BRIGHT\tA_CustomMissile(\"DukeRocket\", 48, 12, random(-45,45))\n\t\tCYCL E 0 A_CPosRefire\n\t\tLoop\n\tPsi:\n\t\tCYCL A 0 A_Jump(128,\"Rockets\")\n\t\tCYCL G 20 A_FaceTarget\n\t\tCYCL HHHHHHHHHH 4 A_CustomMissile(\"PsiBlast\", 64, 0, random(-45,45))\n\t\tCYCL E 0 A_Jump(128, \"See\")\n\t\tGoto Missile+1\n\tPain:\n\t\tCYCL I 1\n\t\tCYCL I 1 A_Pain\n        goto PainFinish\n\tPain.Stunner:\n\t\tCYCL I 2 A_ChangeFlag(\"NoPain\", 1)\n\t\tCYCL I 300 A_Pain\n\t\tCYCL I 0 A_ChangeFlag(\"NoPain\", 0)\n    PainFinish:\n\t\tCYCL A 0 A_JumpIfCloser(1024,\"See\")\n\t\tGoto Charge\n\tDeath:\n\t\tTNT1 A 0 A_GiveToTarget(\"AwardItem\", 48)\n\t\tCYCL I 8\n\t\tCYCL J 8 A_Scream\n\t\tCYCL K 8 A_Fall\n\t\tCYCL LMNOP 8\n\t\tCYCL Q 0 A_PlaySound(\"cycloid/thud\")\n\t\tCYCL Q 3000\n\t\tCYCL Q 2 A_FadeOut(0.1)\n\t\twait\n\t}\n}\n\nACTOR Overlord\n{\n//$Category Stronghold_DukeNukem\n    PainChance \"Stunner\", 128\n\tBloodType \"DN3DBlood\", \"DN3DBlood\", \"AxeBlood\"\n\tspawnid 171\n\tHealth 4500\n\tMass 2000\n\tRadius 48\n\tHeight 100\n\tScale 1.2\n\tSpeed 25\n    PainChance 32\n\tMONSTER\n    //+DONTRIP\n    +BOSS\n\t+FLOORCLIP\n    +DONTMORPH\n\tSeeSound \"fatty/sight\"\n\tAttackSound \"duke/rocket\"\n\tPainSound \"fatty/pain\"\n\tDeathSound \"fatty/die\"\n\tActiveSound \"fatty/active\"\n\tMissileType \"DukeRocketSlow\"\n\tMissileHeight 100\n\tObituary \"$STR_OB_OVERLORD\"\n    Tag \"$STR_MONSTERTAG_OVERLORD\"\n\tStates\n\t{\n\tSpawn:\n\t\tFATY AB 10 A_Look\n\t\tLoop\n\tSee:\n\t\tFATY A 0 A_PlaySound(\"fatty/stomp\")\n\t\tFATY ABCD 6 A_Chase\n\t\tLoop\n\tCharge:\n\t\tFATY A 0 A_PlaySound(\"fatty/stomp\")\n\t\tFATY ABCD 5 A_Chase\n\t\tLoop\n\tMissile:\n\t\tFATY E 0 A_JumpIfCloser(1024, 1)\n\t\tGoto Charge\n\t\tFATY EF 15 A_FaceTarget\n\t\tFATY G 8 A_FaceTarget\n\t\tFATY G 7 A_FaceTarget\n\t\tFATY H 7 Bright\tA_MissileAttack\n\t\tFATY G 0 A_CPosRefire\n\t\tGoto Missile+4\n\tPain:\n\t\tFATY I 3\n\t\tFATY I 3 A_Pain\n\t\tGoto See\n\tPain.Stunner:\n\t\tFATY I 2 A_ChangeFlag(\"NoPain\", 1)\n\t\tFATY I 300 A_Pain\n\t\tFATY I 0 A_ChangeFlag(\"NoPain\", 0)\n\t\tgoto See\n\tDeath:\n\t\tTNT1 A 0 A_GiveToTarget(\"AwardItem\", 33)\n\t\tFATY J 6\n\t\tFATY K 6 A_Scream\n\t\tFATY L 6 A_Fall\n\t\tFATY MNOPQ 6\n\t\tFATY R 3000\n\t\tFATY R 2 A_FadeOut(0.1)\n\t\twait\n\t}\n}\n\nACTOR AlienDrone\n{\n//$Category Stronghold_DukeNukem\n    PainChance \"Stunner\", 128\n\tBloodType \"DN3DBlood\", \"DN3DBlood\", \"AxeBlood\"\n    spawnid 170\n\tHealth 300\n\tGibHealth -150\n\tRadius 20\n\tHeight 56\n\tScale 0.75\n\tSpeed 16\n    PainChance 60\n\tGravity 0.75\n\tMONSTER\n\t+FLOORCLIP\n\tSeeSound \"alien/sight\"\n\tPainSound \"alien/pain\"\n\tDeathSound \"alien/death\"\n\tActiveSound \"alien/active\"\n\tMissileType \"AlienDroneRay\"\n\tMissileHeight 52\n\tObituary \"$STR_OB_ALIENDRONE\" // HitObituary only works with the Melee damage type\n    Tag \"$STR_MONSTERTAG_ALIENDRONE\"\n\tStates\n\t{\n\tSpawn:\n\t\tDGRD A 10 A_Look\n\t\tLoop\n\tSee:\n\t\tDGRD BBCCDDEE 3 A_Chase\n\t\tTNT1 A 0 A_Jump(128,1) //change to jump if closer\n\t\tloop\n\t\tDGRD BBCCDDEEBBCCDDEEBBCCDDEE 2 A_Chase //running speed\n\t\tloop\n\tMelee:\n\t\tDGRD F 6 A_FaceTarget\n\t\tDGRD F 0 A_PlaySound(\"alien/attack\")\n\t\tDGRD G 6 A_CustomMeleeAttack(22,\"\",\"\",\"Melee\")\n\t\tDGRD H 6\n\t\tGoto See\n\tMissile:\n\t\tDGRD I 0 A_Jump(240,\"Jump\")\n\t\tDGRD I 0 A_PlaySound(\"alien/missile\")\n\t\tDGRD IIIJJJJ 5 Bright A_FaceTarget\n\t\tDGRD J 0 A_MissileAttack\n\t\tGoto See\n\tJump:\n        TNT1 A 0 A_JumpIf(velz==0,1)\n        goto See\n\t\tDGRD R 1 A_FaceTarget\n\t\tTNT1 A 0 A_Recoil(-8)\n\t\tDGRD RRR 3 ThrustThingZ(0,35,0,0)\n\t\tDGRD SSSSSSSSS 1\n\tCheckforFloor:\n\t\tDGRD T 1 A_JumpIf(velz==0,\"Land\")\n\t\tLoop\n\tLand:\n\t\tTNT1 A 0 A_PlaySound(\"alien/splode\")\n\t\tTNT1 A 0 Thing_Stop(0)\n\t\tGoto See\n\tPain:\n\t\tDGRD L 3\n\t\tDGRD L 3 A_Pain\n\t\tGoto See\n\tPain.Stunner:\n\t\tDGRD L 2 A_ChangeFlag(\"NoPain\", 1)\n\t\tDGRD L 300 A_Pain\n\t\tDGRG L 0 A_ChangeFlag(\"NoPain\", 0)\n\t\tgoto See\n\tDeath:\n\t\tTNT1 A 0 A_GiveToTarget(\"AwardItem\", 9)\n\t\tDGRD L 6\n\t\tDGRD M 6 A_Scream\n\t\tDGRD N 6 A_Fall\n\t\tDGRD OP 6\n\t\tDGRD Q 3000\n\t\tDGRD Q 2 A_FadeOut(0.1)\n\t\twait\n\tXDeath:\n\t\tTNT1 A 0 A_GiveToTarget(\"AwardItem\", 12)\n        TNT1 A 0 A_UnsetSolid\n\t\tTNT1 A 0 A_PlaySound(\"duke/splat\")\n\t\tTNT1 A 0 A_CustomMissile(\"Gibbage1\",24,0,random(0,359),2,random(30,50))\n\t\tTNT1 A 0 A_CustomMissile(\"Gibbage2\",24,0,random(0,359),2,random(30,50))\n\t\tTNT1 A 0 A_CustomMissile(\"Gibbage3\",24,0,random(0,359),2,random(30,50))\n\t\tTNT1 A 0 A_CustomMissile(\"Gibbage4\",24,0,random(0,359),2,random(30,50))\n\t\tTNT1 A 0 A_CustomMissile(\"Gibbage5\",24,0,random(0,359),2,random(30,50))\n\t\tTNT1 AAAAAAAAAA 0 A_CustomMissile(\"Gibbage6\",24,0,random(0,359),2,random(30,50))\n        TNT1 A 5\n\t\tStop\n\t}\n}\n\nACTOR AlienDroneRay : MorphProjectile\n{\n//$Category Stronghold_DukeNukem\n\tScale 0.5\n\tRadius 8\n\tHeight 8\n\tSpeed 25\n\tDamage (1)\n\tDontHurtShooter\n\tProjectile\n\tSeeSound \"\"\n\tDeathSound \"alien/splode\"\n\tMorphProjectile.PlayerClass \"ShrunkenPlayer\"\n\tMorphProjectile.Duration 175\n\tMorphProjectile.MorphStyle MRF_FULLHEALTH|MRF_UNDOBYTOMEOFPOWER|MRF_FAILNOTELEFRAG|MRF_LOSEACTUALWEAPON|MRF_NEWTIDBEHAVIOUR|MRF_UNDOBYDEATH|MRF_UNDOBYDEATHFORCED\n\tMorphProjectile.MorphFlash \"ShrinkFuzz\"\n\tMorphProjectile.UnMorphFlash \"ShrinkFuzz\"\n\tStates\n\t{\n\tSpawn:\n\t\tDGS1 ABCD 4 Bright\n\t\tLoop\n\tDeath:\n\t\tDGE1 ABCD 4 Bright\n\t\tStop\n\t}\n}\n\nACTOR KamikazeSentry\n{\n//$Category Stronghold_DukeNukem\n    PainChance \"Stunner\", 128\n\tBloodType \"DN3DBlood\", \"DN3DBlood\", \"AxeBlood\"\n\tspawnid 169\n\tHealth 150\n\tMass 80\n\tRadius 20\n\tHeight 56\n\tScale 0.7\n\tSpeed 15\n    PainChance 255\n\tMONSTER\n\t+NOGRAVITY\n\t+DROPOFF\n\t+FLOAT\n\t+NOBLOOD\n\tSeeSound \"sentry/sight\"\n\tPainSound \"sentry/pain\"\n\tActiveSound \"sentry/active\"\n\tDeathSound \"duke/splode\"\n\tDamage (0)\n\tMeleeRange 96\n    //Decal Scorch\n\tObituary \"$STR_OB_KAMIKAZESENTRY\"\n    Tag \"$STR_MONSTERTAG_KAMIKAZESENTRY\"\n\tStates\n\t{\n\tSpawn:\n\t\tSENT A 10 A_Look\n\t\tLoop\n\tSee:\n\t\tSENT A 4 A_Chase\n\t\tSENT A 0 A_PlaySound(\"sentry/jet\")\n\t\tLoop\n\tMissile:\n\t\tSENT A 0 A_PlaySound(\"sentry/charge\") //unlike the lost soul, the sentry stops charging after a while so he doesnt get stuck\n\t\tSENT A 6 A_FaceTarget\n\t\tSENT A 6 A_SkullAttack\n\t\tSENT A 6 A_FaceTarget\n\t\tSENT A 30 A_SkullAttack // 6 + SENT AAAA 6\n\t\tGoto See\n\tPain:\n\t\tSENT A 3\n\t\tSENT A 3 A_Pain\n\t\tGoto See\n\tPain.Stunner:\n\t\tSENT A 2 A_ChangeFlag(\"NoPain\", 1)\n\t\tSENT A 300 A_Pain\n\t\tSENT A 0 A_ChangeFlag(\"NoPain\", 0)\n\t\tgoto See\n\tMelee:\n\t\tSENT A 3 A_PlaySound(\"sentry/arm\")\n\t\tTNT1 A 0 A_GiveToTarget(\"AwardItem\", 6)\n\t\tTNT1 A 0 A_Die(\"KamikazeSentry\")\n        goto Death.KamikazeSentry\n\tDeath:\n\t\tTNT1 A 0 A_GiveToTarget(\"AwardItem\", 8)\n\tDeath.KamikazeSentry:\n        TNT1 A 0 A_SetDamageType(\"Rocket\")\n\t\tTNT1 A 0 A_Explode(27,128,4)\n\t\tTNT1 AAAAAAAAAA 0 A_CustomMissile(\"Scrap1\",24,0,random(0,359),2,random(30,50))\n\t\tTNT1 AAAAAAAAAA 0 A_CustomMissile(\"Scrap2\",24,0,random(0,359),2,random(30,50))\n\t\tTNT1 A 0 A_SpawnItem(\"RedExplosion\",0,12)\n\t\tTNT1 A 0 A_Fall\n\t\tStop\n\t}\n}\n\nactor RedExplosion\n{\n    DeathSound \"duke/splode\"\n    +CLIENTSIDEONLY\n    +NOINTERACTION\n    States\n    {\n      Spawn:\n        XPLO A 0 bright\n        XPLO A 0 bright A_Scream\n        XPLO ABCDEFGHIJKLMNOPQRSTU 2 bright\n        stop\n    }\n}\n\nactor RedExplosionSilent : RedExplosion\n{\n    DeathSound \"\"\n    States\n    {\n      Spawn:\n        goto Super::Spawn+2\n    }\n}\n\nACTOR Commander\n{\n//$Category Stronghold_DukeNukem\n    PainChance \"Stunner\", 128\n\tBloodType \"DN3DBlood\", \"DN3DBlood\", \"AxeBlood\"\n\tspawnid 168\n\tHealth 350\n\tGibHealth -175\n\tMass 200\n\tRadius 20\n\tHeight 56\n\tScale 0.7\n\tSpeed 4\n    PainChance 64\n\tMONSTER\n\t+NOGRAVITY\n\t+DROPOFF\n\t+FLOAT\n\tSeeSound \"commander/sight\"\n\tPainSound \"commander/pain\"\n\tDeathSound \"commander/death\"\n\tActiveSound \"commander/active\"\n\tMissileType \"DukeRocketTrailer\"\n\tMissileHeight 16\n\tObituary \"$STR_OB_COMMANDER\"\n    Tag \"$STR_MONSTERTAG_COMMANDER\"\n\tStates\n\t{\n\tSpawn:\n\t\tCOMM A 10 A_Look\n\t\tLoop\n\tSee:\n\t\tCOMM AAAABBBBCCCC 1 A_Chase\n\t\tLoop\n\tMissile:\n\t\tCOMM I 0 A_PlaySound(\"commander/attack\")\n\t\tCOMM JJJJJJJJJJ 6 A_FaceTarget\n\t\tCOMM J 4 BRIGHT A_MissileAttack\n\t\tCOMM J 8\n\t\tCOMM J 0 A_Jump(150,1)\n\t\tGoto See\n\t\tCOMM I 0 A_SpidRefire\n\t\tGoto Missile+6\n\tPain:\n\t\tCOMM K 3\n\t\tCOMM K 3 A_Pain\n\t\tGoto See\n\tPain.Stunner:\n\t\tCOMM K 2 A_ChangeFlag(\"NoPain\", 1)\n\t\tCOMM K 300 A_Pain\n\t\tCOMM K 0 A_ChangeFlag(\"NoPain\", 0)\n\t\tGoto See\n\tDeath:\n\t\tTNT1 A 0 A_GiveToTarget(\"AwardItem\", 9)\n\t\tCOMM K 8 A_Scream\n\t\tCOMM LM 8\n\t\tCOMM N 3000\n\t\tCOMM N 2 A_FadeOut(0.1)\n\t\twait\n\tCrash:\n\t\tCOMM O 8 A_Fall\n\t\tCOMM PQ 8\n\t\tCOMM R 3000\n\t\tCOMM R 2 A_FadeOut(0.1)\n\t\twait\n\tXDeath:\n\t\tTNT1 A 0 A_GiveToTarget(\"AwardItem\", 12)\n        TNT1 A 0 A_UnsetSolid\n\t\tTNT1 A 0 A_PlaySound(\"duke/splat\")\n\t\tTNT1 A 0 A_CustomMissile(\"Gibbage1\",24,0,random(0,359),2,random(30,50))\n\t\tTNT1 A 0 A_CustomMissile(\"Gibbage2\",24,0,random(0,359),2,random(30,50))\n\t\tTNT1 A 0 A_CustomMissile(\"Gibbage3\",24,0,random(0,359),2,random(30,50))\n\t\tTNT1 A 0 A_CustomMissile(\"Gibbage4\",24,0,random(0,359),2,random(30,50))\n\t\tTNT1 A 0 A_CustomMissile(\"Gibbage5\",24,0,random(0,359),2,random(30,50))\n\t\tTNT1 AAAAAAAAAA 0 A_CustomMissile(\"Gibbage6\",24,0,random(0,359),2,random(30,50))\n        TNT1 A 5 A_ChangeFlag(\"DONTCORPSE\",1) // don't jump to the crash state if it hits the ground\n\t\tStop\n\t}\n}\n\nACTOR DukeRocket {\n\tScale 0.6\n\tRadius 8\n\tHeight 8\n\tSpeed 25\n\tDontHurtShooter\n\tProjectile\n\tSeeSound \"duke/rocket\"\n\tDeathSound \"duke/splode\"\n    DamageType \"Rocket\"\n\tMissileType \"DukeRocketTrail\"\n\tMissileHeight 3\n    Decal Scorch\n\tStates\n\t{\n\tSpawn:\n\t\tDROK A 1\n\t\tLoop\n\tDeath:\n\t\tTNT1 A 0 A_Explode(156,104,1)\n\t\tTNT1 A 1 A_SpawnItem(\"RedExplosionSilent\",0,32)\n\t\tStop\n\t}\n}\n\nactor DukeRocketTrailer : DukeRocket {\n\tSeeSound \"\"\n\tStates\n\t{\n\tSpawn:\n\t\tDROK A 0\n\t\tDROK A 1 A_SpawnItemEx(\"DukeRocketTrail\", 0, 0, 3, 0, 0, 1, 0, 128)\n\t\tLoop\n\tDeath:\n\t\tTNT1 A 0 A_Explode(39,91,1)\n\t\tTNT1 A 1 A_SpawnItem(\"RedExplosionSilent\",0,32)\n\t\tStop\n\t}\n}\n\nactor DukeRocketSlow : DukeRocket {\n\tSeeSound \"\"\n\tScale 0.5\n\tSpeed 18\n}\n\nACTOR DukeRocketTrail {\n\tScale 0.5\n\tRadius 12\n\tHeight 8\n\tSpeed 1\n\tDamage (0)\n\tRenderStyle Translucent\n\tPROJECTILE\n\tStates\n\t{\n\tSpawn:\n\t\tTRAI XABCD 2\n\t\tStop\n\t}\n}\n\nACTOR BattleLord\n{\n//$Category Stronghold_DukeNukem\n    PainChance \"Stunner\", 64\n\tBloodType \"DN3DBlood\", \"DN3DBlood\", \"AxeBlood\"\n\tspawnid 167\n\tHealth 1000\n\tMass 2000\n\tRadius 20\n\tHeight 72\n\tScale 0.75\n\tSpeed 10\n    PainChance 32\n\tMONSTER\n\t+FLOORCLIP\n\t+BOSS\n\t+FULLVOLACTIVE\n    //+DONTRIP\n\tSeeSound \"battlelord/sight\"\n\tAttackSound \"lizard/attack\"\n\tPainSound \"battlelord/pain\"\n\tDeathSound \"battlelord/death\"\n\tActiveSound \"battlelord/active\"\n\tMissileType \"Mortar\"\n\tMissileHeight 24\n\tObituary \"$STR_OB_BATTLELORD\"\n    Tag \"$STR_MONSTERTAG_BATTLELORD\"\n\tStates\n\t{\n\tSpawn:\n\t\tLORD AB 10 A_Look\n\t\tLoop\n\tSee:\n\t\tLORD AABBCCDD 3 A_Chase\n\t\tLoop\n\tMissile:\n\t\tLORD E 2 A_Jump(90, \"Mortar\")\n\t\tGoto Chaingun\n\tChaingun:\n\t\tLORD E 3 A_FaceTarget\n\t\tLORD F 3 Bright\tA_CustomBulletAttack(22.5,5,6,6,\"NewPuff\",0,CBAF_NORANDOM)\n\t\tLORD E 3 A_FaceTarget\n\t\tLORD F 3 Bright\tA_CustomBulletAttack(22.5,5,6,6,\"NewPuff\",0,CBAF_NORANDOM)\n\t\tLORD E 3 A_FaceTarget\n\t\tLORD F 3 Bright A_CustomBulletAttack(22.5,5,6,6,\"NewPuff\",0,CBAF_NORANDOM)\n\t\tLORD E 3 A_FaceTarget\n\t\tLORD F 3 Bright\tA_CustomBulletAttack(22.5,5,6,6,\"NewPuff\",0,CBAF_NORANDOM)\n\t\tLORD E 3 A_FaceTarget\n\t\tLORD F 3 Bright\tA_CustomBulletAttack(22.5,5,6,6,\"NewPuff\",0,CBAF_NORANDOM)\n\t\tLORD E 3 A_FaceTarget\n\t\tLORD F 3 Bright A_CustomBulletAttack(22.5,5,6,6,\"NewPuff\",0,CBAF_NORANDOM)\n\t\tLORD E 3 A_FaceTarget\n\t\tLORD F 3 Bright\tA_CustomBulletAttack(22.5,5,6,6,\"NewPuff\",0,CBAF_NORANDOM)\n\t\tLORD E 3 A_FaceTarget\n\t\tLORD F 3 Bright\tA_CustomBulletAttack(22.5,5,6,6,\"NewPuff\",0,CBAF_NORANDOM)\n\t\tLORD E 3 A_FaceTarget\n\t\tLORD F 3 Bright A_CustomBulletAttack(22.5,5,6,6,\"NewPuff\",0,CBAF_NORANDOM)\n\t\tLORD E 3 A_FaceTarget\n\t\tLORD F 3 Bright\tA_CustomBulletAttack(22.5,5,6,6,\"NewPuff\",0,CBAF_NORANDOM)\n\t\tLORD E 3 A_FaceTarget\n\t\tLORD F 3 Bright\tA_CustomBulletAttack(22.5,5,6,6,\"NewPuff\",0,CBAF_NORANDOM)\n\t\tLORD E 3 A_FaceTarget\n\t\tLORD F 3 Bright A_CustomBulletAttack(22.5,5,6,6,\"NewPuff\",0,CBAF_NORANDOM)\n\t\tLORD E 3 A_FaceTarget\n\t\tLORD F 3 Bright\tA_CustomBulletAttack(22.5,5,6,6,\"NewPuff\",0,CBAF_NORANDOM)\n\t\tLORD E 3 A_FaceTarget\n\t\tLORD F 3 Bright\tA_CustomBulletAttack(22.5,5,6,6,\"NewPuff\",0,CBAF_NORANDOM)\n\t\tLORD E 3 A_FaceTarget\n\t\tLORD F 3 Bright A_CustomBulletAttack(22.5,5,6,6,\"NewPuff\",0,CBAF_NORANDOM)\n\t\tLORD E 3 A_FaceTarget\n\t\tLORD F 3 Bright\tA_CustomBulletAttack(22.5,5,6,6,\"NewPuff\",0,CBAF_NORANDOM)\n\t\tLORD E 3 A_FaceTarget\n\t\tLORD F 3 Bright\tA_CustomBulletAttack(22.5,5,6,6,\"NewPuff\",0,CBAF_NORANDOM)\n\t\tGoto See\n\tMortar:\n\t\tLORD G 10 A_FaceTarget\n\t\tLORD G 0 A_PlaySound(\"duke/rocket\")\n\t\tLORD H 10 Bright A_CustomMissile(\"Mortar\",32,20,0,2,35)\n\t\tLORD G 10 A_FaceTarget\n\t\tLORD G 0 A_PlaySound(\"duke/rocket\")\n\t\tLORD H 10 Bright A_CustomMissile(\"Mortar\",32,20,0,2,35)\n\t\tLORD G 10 A_FaceTarget\n\t\tLORD G 0 A_PlaySound(\"duke/rocket\")\n\t\tLORD H 10 Bright A_CustomMissile(\"Mortar\",32,20,0,2,35)\n\t\tLORD G 10 A_SpidRefire\n\t\tLORD E 0 A_Jump(256,\"See\",\"Missile\")\n\t\tGoto See\n\tPain:\n\t\tLORD I 3\n\t\tLORD I 3 A_Pain\n\t\tGoto See\n\tPain.Stunner:\n\t\tLORD I 2 A_ChangeFlag(\"NoPain\", 1)\n\t\tLORD I 300 A_Pain\n\t\tLORD I 0 A_ChangeFlag(\"NoPain\", 0)\n\t\tgoto See\n\tDeath:\n\t\tTNT1 A 0 A_GiveToTarget(\"AwardItem\", 16)\n\t\tLORD I 14 A_Scream\n\t\tLORD J 14 A_Fall\n\t\tLORD KLM 14\n\t\tLORD N 3000\n\t\tLORD N 2 A_FadeOut(0.1)\n\t\twait\n\t}\n}\n\nACTOR BattleLordPal : BattleLord\n{\n    Health 1500\n//$Category Stronghold_DukeNukem\n\tspawnid 166\n}\n\nACTOR SuperBattleLord : BattleLord\n{\n//$Category Stronghold_DukeNukem\n\tspawnid 165\n\tScale 1.4\n\tSpeed 18\n\tRadius 69\n\tHeight 130\n\tHealth 4500\n\tMass 6000\n\tMissileHeight 64\n\tMinMissileChance 48\n\tObituary \"$STR_OB_SUPERBATTLELORD\"\n    Tag \"$STR_MONSTERTAG_SUPERBATTLELORD\"\n    +DONTMORPH\n\tStates\n\t{\n\tSee:\n\tRoam:\n\t\tLORD G 0 A_PlaySound(\"battlelord/stomp\")\n\t\tLORD AABBCCDD 3 A_Chase\n\t\tLoop\n\tCharge:\n\t\tLORD G 0 A_PlaySound(\"battlelord/stomp\")\n\t\tLORD AABBCCDD 2 A_Chase\n\t\tLoop\n\tMissile:\n\t\tLORD E 0 A_JumpIfCloser(1024, 1)\n\t\tGoto Charge\n\t\tLORD E 0 A_Jump(90, \"Mortar\")\n\t\tGoto Chaingun\n\tChaingun:\n\t\tLORD E 3 A_FaceTarget\n\t\tLORD F 3 Bright\tA_CustomBulletAttack(22.5,5,6,6,\"NewPuff\",0,CBAF_NORANDOM)\n\t\tLORD E 3 A_FaceTarget\n\t\tLORD F 3 Bright\tA_CustomBulletAttack(22.5,5,6,6,\"NewPuff\",0,CBAF_NORANDOM)\n\t\tLORD E 3 A_FaceTarget\n\t\tLORD F 3 Bright A_CustomBulletAttack(22.5,5,6,6,\"NewPuff\",0,CBAF_NORANDOM)\n\t\tLORD E 3 A_FaceTarget\n\t\tLORD F 3 Bright\tA_CustomBulletAttack(22.5,5,6,6,\"NewPuff\",0,CBAF_NORANDOM)\n\t\tLORD E 3 A_FaceTarget\n\t\tLORD F 3 Bright\tA_CustomBulletAttack(22.5,5,6,6,\"NewPuff\",0,CBAF_NORANDOM)\n\t\tLORD E 3 A_FaceTarget\n\t\tLORD F 3 Bright A_CustomBulletAttack(22.5,5,6,6,\"NewPuff\",0,CBAF_NORANDOM)\n\t\tLORD E 3 A_FaceTarget\n\t\tLORD F 3 Bright\tA_CustomBulletAttack(22.5,5,6,6,\"NewPuff\",0,CBAF_NORANDOM)\n\t\tLORD E 3 A_FaceTarget\n\t\tLORD F 3 Bright\tA_CustomBulletAttack(22.5,5,6,6,\"NewPuff\",0,CBAF_NORANDOM)\n\t\tLORD E 3 A_FaceTarget\n\t\tLORD F 3 Bright A_CustomBulletAttack(22.5,5,6,6,\"NewPuff\",0,CBAF_NORANDOM)\n\t\tLORD E 3 A_FaceTarget\n\t\tLORD F 3 Bright\tA_CustomBulletAttack(22.5,5,6,6,\"NewPuff\",0,CBAF_NORANDOM)\n\t\tLORD E 3 A_FaceTarget\n\t\tLORD F 3 Bright\tA_CustomBulletAttack(22.5,5,6,6,\"NewPuff\",0,CBAF_NORANDOM)\n\t\tLORD E 3 A_FaceTarget\n\t\tLORD F 3 Bright A_CustomBulletAttack(22.5,5,6,6,\"NewPuff\",0,CBAF_NORANDOM)\n\t\tLORD E 3 A_FaceTarget\n\t\tLORD F 3 Bright\tA_CustomBulletAttack(22.5,5,6,6,\"NewPuff\",0,CBAF_NORANDOM)\n\t\tLORD E 3 A_FaceTarget\n\t\tLORD F 3 Bright\tA_CustomBulletAttack(22.5,5,6,6,\"NewPuff\",0,CBAF_NORANDOM)\n\t\tLORD E 3 A_FaceTarget\n\t\tLORD F 3 Bright A_CustomBulletAttack(22.5,5,6,6,\"NewPuff\",0,CBAF_NORANDOM)\n\t\tLORD E 3 A_FaceTarget\n\t\tLORD F 3 Bright\tA_CustomBulletAttack(22.5,5,6,6,\"NewPuff\",0,CBAF_NORANDOM)\n\t\tLORD E 3 A_FaceTarget\n\t\tLORD F 3 Bright\tA_CustomBulletAttack(22.5,5,6,6,\"NewPuff\",0,CBAF_NORANDOM)\n\t\tGoto See\n\tMortar:\n\t\tLORD G 10 A_FaceTarget\n\t\tLORD G 0 A_PlaySound(\"duke/rocket\")\n\t\tLORD H 12 Bright A_CustomMissile(\"Mortar\",38,40,0,2,45)\n\t\tLORD G 12 A_FaceTarget\n\t\tLORD G 0 A_PlaySound(\"duke/rocket\")\n\t\tLORD H 12 Bright A_CustomMissile(\"Mortar\",38,40,0,2,45)\n\t\tLORD G 12 A_FaceTarget\n\t\tLORD G 0 A_PlaySound(\"duke/rocket\")\n\t\tLORD H 12 Bright A_CustomMissile(\"Mortar\",38,40,0,2,45)\n\t\tLORD G 12 A_SpidRefire\n\t\tLORD E 0 A_Jump(256,\"See\",\"Missile\")\n\t\tGoto See\n\tPain:\n\t\tLORD I 3\n\t\tLORD I 3 A_Pain\n\t\tGoto See\n\tPain.Stunner:\n\t\tLORD I 2 A_ChangeFlag(\"NoPain\", 1)\n\t\tLORD I 300 A_Pain\n\t\tLORD I 0 A_ChangeFlag(\"NoPain\", 0)\n\t\tgoto See\n\t}\n}\n\nActor Mortar {\n\tScale 0.6\n\tRadius 8\n\tHeight 8\n\tSpeed 16\n\tDamage (0)\n\tDontHurtShooter\n\tPROJECTILE\n\t-NOGRAVITY\n\tBounceType \"Doom\"\n\tBounceSound \"duke/bounce\"\n\tStates\n\t{\n\tSpawn:\n\t\tLGRE ABCD 2 A_SpawnItemEx(\"MortarTrail\",0,0,0,0,0,0,0,128)\n\t\tLoop\n\tDeath:\n\t\tXPLO A 0 A_SpawnItemEx(\"MortarTrap\",0,0,0,0,0,0,0,1024)\n\t\tStop\n\t}\n}\n\nActor MortarTrap {\n   Scale 0.6\n   Radius 16\n   Height 12\n   Mass 1000000\n   Health 10\n   Damage (0)\n   DONTHURTSHOOTER\n   Speed 0\n   DamageType \"Rocket\"\n   Decal Scorch\n   +NOBLOOD\n   +SHOOTABLE\n   +MISSILE\n   States\n   {\n   Spawn:\n      LGRE A 0 A_Gravity\n      LGRE ABCD 2\n      Loop\n   Melee:\n        TNT1 A 0 A_Die\n   Death:\n        TNT1 A 0 A_SetDamageType(\"Rocket\")\n\t\tTNT1 A 0 A_Explode(56,96)\n\t\tTNT1 A 1 A_SpawnItem(\"RedExplosion\",0,0)\n\t\tStop\n\t}\n}\n\nACTOR MortarTrail {\n\t+NOGRAVITY\n\t+NOBLOCKMAP\n\tScale 0.5\n\tStates\n\t{\n\tSpawn:\n\t\tLGRE ABCD 2 A_FadeOut(0.125)\n\t\tloop\n\t}\n}\n\nACTOR OctaBrain\n{\n//$Category Stronghold_DukeNukem\n    PainChance \"Stunner\", 128\n\tBloodType \"DN3DBlood\", \"DN3DBlood\", \"AxeBlood\"\n\tspawnid 164\n\tHealth 175\n\tGibHealth -105\n\tRadius 20\n\tHeight 56\n\tScale 0.7\n\tSpeed 10\n\tMass 400\n    PainChance 200\n\tMONSTER\n\t+NOGRAVITY\n\t+DROPOFF\n\t+FLOAT\n\tSeeSound \"octabrain/sight\"\n\tAttackSound \"octabrain/attack\"\n\tPainSound \"octabrain/pain\"\n\tDeathSound \"octabrain/death\"\n\tActiveSound \"octabrain/active\"\n\tMissileType \"PsiBlast\"\n\tMissileHeight 32\n    Obituary \"$STR_OB_OCTABRAIN\"\n    Tag \"$STR_MONSTERTAG_OCTABRAIN\"\n\tStates\n\t{\n\tSpawn:\n\t\tOCTA AB 10 A_Look\n\t\tLoop\n\tSee:\n\t\tOCTA AABBCC 3 A_Chase\n\t\tLoop\n\tMissile:\n\t\tOCTA B 5\n\t\tOCTA C 5 A_FaceTarget\n\t\tOCTA D 20 A_FaceTarget\n\t\tOCTA D 5 BRIGHT A_CustomComboAttack(\"PsiBlast\",32,11,\"octabrain/attack\",\"Melee\")\n\t\tOCTA C 5\n\t\tGoto See\n\tPain:\n\t\tOCTA E 3\n\t\tOCTA E 3 A_Pain\n\t\tGoto See\n\tPain.Stunner:\n\t\tOCTA E 2 A_ChangeFlag(\"NoPain\", 1)\n\t\tOCTA E 300 A_Pain\n\t\tOCTA E 0 A_ChangeFlag(\"NoPain\", 0)\n\t\tgoto See\n\tDeath:\n\t\tTNT1 A 0 A_GiveToTarget(\"AwardItem\", 6)\n\t\tOCTA E 8\n\t\tOCTA F 8 A_Scream\n\t\tOCTA G 8 A_Fall\n\t\tOCTA HI 8\n\t\tOCTA J 3000\n\t\tOCTA J 2 A_FadeOut(0.1)\n\t\twait\n\tXDeath:\n\t\tTNT1 A 0 A_GiveToTarget(\"AwardItem\", 10)\n        TNT1 A 0 A_UnsetSolid\n\t\tTNT1 A 0 A_PlaySound(\"duke/splat\")\n\t\tTNT1 A 0 A_CustomMissile(\"Gibbage1\",24,0,random(0,359),2,random(30,50))\n\t\tTNT1 A 0 A_CustomMissile(\"Gibbage2\",24,0,random(0,359),2,random(30,50))\n\t\tTNT1 A 0 A_CustomMissile(\"Gibbage3\",24,0,random(0,359),2,random(30,50))\n\t\tTNT1 A 0 A_CustomMissile(\"Gibbage4\",24,0,random(0,359),2,random(30,50))\n\t\tTNT1 A 0 A_CustomMissile(\"Gibbage5\",24,0,random(0,359),2,random(30,50))\n\t\tTNT1 AAAAAAAAAA 0 A_CustomMissile(\"Gibbage6\",24,0,random(0,359),2,random(30,50))\n        TNT1 A 5\n\t\tStop\n\t}\n}\n\nACTOR PsiBlast {\n\tScale 0.7\n\tRadius 12\n\tHeight 8\n\tRenderStyle Translucent\n\tAlpha 0.85\n\tSpeed 20\n\tDamage (38)\n\tProjectile\n\tSeeSound \"octabrain/blast\"\n\tStates\n\t{\n\tSpawn:\n\t\tOPSI ABCDEFGHIJKLMNOPQRST 2 Bright\n\t\tStop\n\tDeath:\n\t\tOPSI T 0\n\t\tStop\n\t}\n}\n\nACTOR LizardCommando\n{\n//$Category Stronghold_DukeNukem\n    PainChance \"Stunner\", 128\n\tBloodType \"DN3DBlood\", \"DN3DBlood\", \"AxeBlood\"\n\tspawnid 163\n\tHealth 100\n\tGibHealth -75\n\tRadius 20\n\tHeight 56\n\tScale 0.7\n\tSpeed 24\n    PainChance 32\n\tGravity 0.6\n\tMONSTER\n\t+FLOORCLIP\n\tSeeSound \"lizard/sight\"\n\tAttackSound \"lizard/attack\"\n\tPainSound \"lizard/pain\"\n\tDeathSound \"lizard/death\"\n\tActiveSound \"lizard/roam\"\n\tMissileType \"LizardPhlegm\"\n\tMissileHeight 24\n\tObituary \"$STR_OB_LIZARDCOMMANDO\"\n    Tag \"$STR_MONSTERTAG_LIZARDCOMMANDO\"\n\tStates\n\t{\n\tSpawn:\n\t\tLIZD AB 10 A_Look\n\t\tLoop\n\tSee:\n\t\tLIZD A 0 A_Chase\n\t\tLIZD AB 5 A_Chase\n\t\tLIZD C 0 A_Chase\n\t\tLIZD CD 5 A_Chase\n\t\tLoop\n\tMissile:\n\t\tTNT1 A 0 A_JumpIfCloser(512,1)\n\t\tGoto Jump\n\t\tTNT1 A 0 A_Jump(256,\"Chaingun\",\"Jump\",\"Spit\")\n\tChaingun:\n\t\tLIZD I 2 A_FaceTarget\n\t\tLIZD J 2 BRIGHT A_CustomBulletAttack(22.5,2.25,1,5,\"NewPuff\",0,CBAF_NORANDOM)\n\t\tTNT1 A 0 A_SpidRefire\n\t\tLoop\n\tSpit:\n\t\tLIZD EEEEFFFFGGGG 3 A_FaceTarget\n\t\tLIZD E 0 A_CustomMissile(\"LizardPhlegm\",24,0,-20,2,3)\n\t\tLIZD E 0 A_CustomMissile(\"LizardPhlegm\",24,0,20,2,3)\n\t\tLIZD E 8 A_CustomMissile(\"LizardPhlegm\",24,0,0,2,3)\n\t\tGoto See\n\tJump:\n        TNT1 A 0 A_JumpIf(velz==0,1)\n        goto See\n\t\tLIZD Q 1 A_FaceTarget\n\t\tTNT1 A 0 A_Recoil(-8)\n\t\tLIZD QQQ 3 ThrustThingZ(0,35,0,0)\n\t\tLIZD RRRRRRRRR 1\n\tCheckforFloor:\n\t\tLIZD S 1 A_JumpIf(velz==0,\"Land\")\n\t\tLoop\n\tLand:\n\t\tTNT1 A 0 A_PlaySound(\"alien/splode\")\n\t\tTNT1 A 0 Thing_Stop(0)\n\t\tGoto See\n\tPain:\n\t\tLIZD K 3\n\t\tLIZD K 3 A_Pain\n        goto PainFinish\n\tPain.Stunner:\n\t\tLIZD K 2 A_ChangeFlag(\"NoPain\", 1)\n\t\tLIZD K 300 A_Pain\n\t\tLIZD K 0 A_ChangeFlag(\"NoPain\", 0)\n    PainFinish:\n\t\tLIZD E 0 A_Jump(25, 1) //dump chance\n\t\tGoto See\n\t\tLIZD EF 10\n\t\tLIZD G 15\n\t\tLIZD H 15 A_CustomMissile(\"ADump\", 4,0,0)\n\t\tLIZD G 10\n\t\tGoto See\n\tDeath:\n\t\tTNT1 A 0 A_GiveToTarget(\"AwardItem\", 4)\n\t\tLIZD K 6\n\t\tLIZD L 6 A_Scream\n\t\tTNT1 A 0 A_Jump(64, \"DropStuff\") // emulates DropItem \"LizardAmmoDrop\" 64 properly\n\tDeathContinue:\n\t\tLIZD M 6 A_Fall\n\t\tLIZD NO 6\n\t\tLIZD P 3000\n\t\tLIZD P 2 A_FadeOut(0.1)\n\t\twait\n\tXDeath:\n\t\tTNT1 A 0 A_GiveToTarget(\"AwardItem\", 6)\n        TNT1 A 0 A_UnsetSolid\n\t\tTNT1 A 0 A_PlaySound(\"duke/splat\")\n    \tTNT1 A 0 A_CustomMissile(\"Gibbage1\",24,0,random(0,359),2,random(30,50))\n    \tTNT1 A 0 A_CustomMissile(\"Gibbage2\",24,0,random(0,359),2,random(30,50))\n    \tTNT1 A 0 A_CustomMissile(\"Gibbage3\",24,0,random(0,359),2,random(30,50))\n    \tTNT1 A 0 A_CustomMissile(\"Gibbage4\",24,0,random(0,359),2,random(30,50))\n    \tTNT1 A 0 A_CustomMissile(\"Gibbage5\",24,0,random(0,359),2,random(30,50))\n    \tTNT1 AAAAAAAAAA 0 A_CustomMissile(\"Gibbage6\",24,0,random(0,359),2,random(30,50))\n        TNT1 A 5\n\t\tStop\n\tDropStuff:\n\t\tTNT1 A 0 A_Jump(256,1,2)\n\t\tTNT1 A 0 A_DropItem(\"Chaingun\")\n\t\tgoto DeathContinue\n\t\tTNT1 A 0 A_DropItem(\"ClipBox\")\n\t\tgoto DeathContinue\n\t}\n}\n\nACTOR LizardAmmoDrop : RandomSpawner\n{\n//$Category Stronghold_DukeNukem\n  DropItem Chaingun 255 1\n  DropItem ClipBox 255 4\n}\n\nACTOR LizardPhlegm {\n\tScale 0.7\n\tRadius 13\n\tHeight 8\n\tSpeed 20\n\tVSpeed 20\n\tDamage (8)\n\tPROJECTILE\n\t-NOGRAVITY\n\tGravity 0.6\n\tPoisonDamage 8\n\tSeeSound \"lizard/spit\"\n\tStates\n\t{\n\tSpawn:\n\t\tSPIT A 3 A_SpawnItemEx(\"LizardPhlegmTrail\", 0, 0, 0, 0, 0, 0, 0, 128)\n\t\tLoop\n\t}\n}\n\nACTOR LizardPhlegmTrail {\n\tScale 0.35\n\tRadius 13\n\tHeight 8\n\t+LOWGRAVITY\n\tStates\n\t{\n\tSpawn:\n\t\tSPIT Z 2\n\t\tSPIT A 6\n\t\tStop\n\t}\n}\n\nACTOR ADump {\n\tScale 0.4\n\tRadius 13\n\tHeight 8\n\tSpeed 0\n\tStates\n\t{\n\tSpawn:\n\t\tSHIT A 10 A_Look\n\t\tLoop\n\tSee:\n\t\tSHIT A 15 A_Chase\n\t\tLoop\n\tMelee:\n\t\tSHIT A 1 A_PlaySound(\"lizard/shit\")\n\tDeath:\n\t\tSHIT A 0\n\t\tStop\n\t}\n}\n\nACTOR PigCop\n{\n//$Category Stronghold_DukeNukem\n    PainChance \"Stunner\", 128\n\tBloodType \"DN3DBlood\", \"DN3DBlood\", \"AxeBlood\"\n\tspawnid 162\n\tHealth 100\n\tGibHealth -75\n\tRadius 20\n\tHeight 56\n\tScale 0.7\n\tSpeed 8\n    PainChance 32\n\tMONSTER\n\t+FLOORCLIP\n\tSeeSound \"pig/sight\"\n\tAttackSound \"pig/attack\"\n\tPainSound \"pig/pain\"\n\tDeathSound \"pig/death\"\n\tActiveSound \"pig/active\"\n\tObituary \"$STR_OB_PIGCOP\"\n    Tag \"$STR_MONSTERTAG_PIGCOP\"\n\tStates\n\t{\n\tSpawn:\n\t\tLARD AB 10 A_Look\n\t\tLoop\n\tSee:\n\t\tLARD AABBCCDD 4 A_Chase\n\t\tLoop\n\tMissile:\n\t\tLARD F 0 A_Jump(64,\"DuckShoot\")\n\tShoot:\n\t\tLARD F 12 A_FaceTarget\n\t\tLARD G 10 Bright A_CustomBulletAttack(22.5,2.25,5,5,\"NewPuff\",0,CBAF_NORANDOM)\n\t\tLARD E 10 A_PlaySound(\"pig/cock\")\n\t\tLARD EFF 7\n\t\tLARD E 0 A_Jump(128,\"See\")\n\t\tGoto Shoot+1\n\tDuckShoot: //heh\n\t\tLARD H 12 A_FaceTarget\n\t\tLARD I 22\n\t\tLARD J 10 Bright A_CustomBulletAttack(22.5,2.25,3,10,\"NewPuff\",0,CBAF_NORANDOM)\n\t\tLARD I 10 A_PlaySound(\"pig/cock\")\n\t\tLARD E 0 A_Jump(128,\"See\")\n\t\tGoto DuckShoot+1\n\tPain:\n\t\tLARD K 3\n\t\tLARD K 3 A_Pain\n\t\tGoto See\n\tPain.Stunner:\n\t\tLARD K 2 A_ChangeFlag(\"NoPain\", 1)\n\t\tLARD K 300 A_Pain\n\t\tLARD K 0 A_ChangeFlag(\"NoPain\", 0)\n\t\tgoto See\n\tDeath:\n\t\tTNT1 A 0 A_GiveToTarget(\"AwardItem\", 2)\n\t\tLARD K 6\n\t\tLARD L 6 A_Scream\n\t\tTNT1 A 0 A_Jump(128, \"DropStuff\") // emulates DropItem \"PigCopAmmoDrop\" 128 properly\n\tDeathContinue:\n\t\tLARD N 6 A_Fall\n\t\tLARD O 6\n\t\tLARD P 6\n\t\tLARD Q 3000\n\t\tLARD Q 2 A_FadeOut(0.1)\n\t\twait\n\tXDeath:\n\t\tTNT1 A 0 A_GiveToTarget(\"AwardItem\", 3)\n        TNT1 A 0 A_UnsetSolid\n\t\tTNT1 A 0 A_PlaySound(\"duke/splat\")\n\t\tTNT1 A 0 A_CustomMissile(\"Gibbage1\",24,0,random(0,359),2,random(30,50))\n\t\tTNT1 A 0 A_CustomMissile(\"Gibbage2\",24,0,random(0,359),2,random(30,50))\n\t\tTNT1 A 0 A_CustomMissile(\"Gibbage3\",24,0,random(0,359),2,random(30,50))\n\t\tTNT1 A 0 A_CustomMissile(\"Gibbage4\",24,0,random(0,359),2,random(30,50))\n\t\tTNT1 A 0 A_CustomMissile(\"Gibbage5\",24,0,random(0,359),2,random(30,50))\n\t\tTNT1 AAAAAAAAAA 0 A_CustomMissile(\"Gibbage6\",24,0,random(0,359),2,random(30,50))\n        TNT1 A 5\n\t\tStop\n\tDropStuff:\n\t\tTNT1 A 0 A_Jump(256,1,2)\n\t\tTNT1 A 0 A_DropItem(\"Shotgun\")\n\t\tgoto DeathContinue\n\t\tTNT1 A 0 A_DropItem(\"Shell\")\n\t\tgoto DeathContinue\n\t}\n}\n\nACTOR PigCopAmmoDrop : RandomSpawner\n{\n//$Category Stronghold_DukeNukem\n  DropItem Shotgun 255 1\n  DropItem Shell 255 4\n}\n\nACTOR DukeFodder\n{\n//$Category Stronghold_DukeNukem\n    PainChance \"Stunner\", 128\n\tBloodType \"DN3DBlood\", \"DN3DBlood\", \"AxeBlood\"\n\tspawnid 160\n\tHealth 30\n\tGibHealth -30\n\tRadius 20\n\tHeight 56\n\tScale 0.7\n\tSpeed 12\n    PainChance 200\n\tMONSTER\n\t+FLOORCLIP\n\tSeeSound \"lizard/sight\"\n\tPainSound \"lizard/pain\"\n\tDeathSound \"lizard/death\"\n\tActiveSound \"lizard/active\"\n\tMissileType \"FodderLaser\"\n\tMissileHeight 26\n\tDropItem Clip 128\n\tObituary \"$STR_OB_DUKEFODDER\"\n    Tag \"$STR_MONSTERTAG_DUKEFODDER\"\n\tStates\n\t{\n\tSpawn:\n\t\tDFOD AB 10 A_Look\n\t\tLoop\n\tSee:\n\t\tDFOD G 0 A_ChangeFlag(\"NOGRAVITY\",0)\n\t\tDFOD G 0 A_ChangeFlag(\"NOPAIN\",0)\n\t\tDFOD G 0 A_ChangeFlag(\"FLOAT\",0)\n\t\tDFOD ABCD 4 A_Chase\n\t\tGoto See+3\n\tMissile:\n\t\tDFOD F 0 A_JumpIfCloser(1024,2)\n\t\tDFOD F 0 A_Jump(224,1)\n\t\tGoto SeeJetpackRising\n\t\tDFOD F 0 A_Jump(128, \"DuckMissile\")\n\t\tDFOD F 10 A_FaceTarget\n\t\tDFOD F 6 Bright A_MissileAttack\n\t\tDFOD F 10 A_FaceTarget\n\t\tDFOD F 6 Bright A_MissileAttack\n\t\tDFOD F 10 A_FaceTarget\n\t\tDFOD F 6 Bright A_MissileAttack\n\t\tGoto See+3\n\tSeeJetpackRising:\n\t\tDFOD G 0 A_ChangeFlag(\"NOGRAVITY\",1)\n\t\tDFOD G 0 A_ChangeFlag(\"NOPAIN\",1)\n\t\tDFOD G 0 A_JumpIf(z-floorz>=128,\"SeeJetpack\")\n\t\tDFOD G 0 A_JumpIf(ceilingz-z<=56,\"SeeJetpack\")\n\t\tDFOD G 0 ThrustThingZ(0,3,0,0)\n\t\tDFOD G 2 A_Chase(\"\",\"\",0)\n\t\tGoto SeeJetpackRising+2\n\tSeeJetpack:\n        TNT1 A 0 A_ChangeFlag(\"FLOAT\",1)\n\t\tDFOD G 1\n\t\tDFOD G 1 A_Chase(\"\",\"JetpackAttack\",0)\n\t\tGoto SeeJetpack+1\n\tJetpackAttack:\n\t\tDFOD G 0 A_Jump(64,1)\n\t\tGoto SeeJetpack+1\n\t\tDFOD G 0 A_FaceTarget\n\t\tDFOD G 0 A_MissileAttack\n\t\tDFOD G 0 ThrustThingZ(0,2,1,0)\n\t\tDFOD H 0 A_Chase(\"\",\"\",0)\n\t\tDFOD HHHH 1 Bright A_CheckFloor(\"See\")\n\t\tDFOD G 0 ThrustThingZ(0,2,1,0)\n\t\tDFOD H 0 A_Chase(\"\",\"\",0)\n\t\tDFOD HHHH 1 Bright A_CheckFloor(\"See\")\n\t\tDFOD G 0 ThrustThingZ(0,2,1,0)\n\t\tDFOD G 0 A_Chase(\"\",\"\",0)\n\t\tDFOD GG 1 A_CheckFloor(\"See\")\n\t\tDFOD G 0 ThrustThingZ(0,2,1,0)\n\t\tDFOD G 0 A_Chase(\"\",\"\",0)\n\t\tDFOD GG 1 A_CheckFloor(\"See\")\n\t\tDFOD G 0 ThrustThingZ(0,2,1,0)\n\t\tDFOD G 0 A_Chase(\"\",\"\",0)\n\t\tDFOD GG 1 A_CheckFloor(\"See\")\n\t\tDFOD G 0 ThrustThingZ(0,2,1,0)\n\t\tDFOD G 0 A_Chase(\"\",\"\",0)\n\t\tDFOD GG 1 A_CheckFloor(\"See\")\n\t\tDFOD G 0 ThrustThingZ(0,2,1,0)\n\t\tDFOD G 0 A_Chase(\"\",\"\",0)\n\t\tDFOD GG 1 A_CheckFloor(\"See\")\n\t\tDFOD G 0 ThrustThingZ(0,2,1,0)\n\t\tDFOD G 0 A_Chase(\"\",\"\",0)\n\t\tDFOD GG 1 A_CheckFloor(\"See\")\n\t\tDFOD G 0 ThrustThingZ(0,2,1,0)\n\t\tDFOD G 0 A_Chase(\"\",\"\",0)\n\t\tDFOD GG 1 A_CheckFloor(\"See\")\n\t\tDFOD G 0 ThrustThingZ(0,2,1,0)\n\t\tDFOD G 0 A_Chase(\"\",\"\",0)\n\t\tDFOD GG 1 A_CheckFloor(\"See\")\n\t\tDFOD G 0 ThrustThingZ(0,2,1,0)\n\t\tDFOD G 0 A_Chase(\"\",\"\",0)\n\t\tDFOD GG 1 A_CheckFloor(\"See\")\n\t\tDFOD G 0 ThrustThingZ(0,2,1,0)\n\t\tDFOD G 0 A_Chase(\"\",\"\",0)\n\t\tDFOD GG 1 A_CheckFloor(\"See\")\n\t\tDFOD G 0 ThrustThingZ(0,2,1,0)\n\t\tDFOD G 0 A_Chase(\"\",\"\",0)\n\t\tDFOD GG 1 A_CheckFloor(\"See\")\n\t\tDFOD G 0 ThrustThingZ(0,2,1,0)\n\t\tDFOD G 0 A_Chase(\"\",\"\",0)\n\t\tDFOD GG 1 A_CheckFloor(\"See\")\n\t\tLoop\n\tDuckMissile:\n\t\tDFOD Q 10 A_FaceTarget\n\t\tDFOD R 8 Bright A_FaceTarget\n\t\tDFOD Q 8 Bright A_MissileAttack\n\t\tDFOD R 8 Bright A_FaceTarget\n\t\tDFOD Q 8 Bright A_MissileAttack\n\t\tDFOD R 8 Bright A_FaceTarget\n\t\tDFOD Q 8 Bright A_MissileAttack\n\t\tGoto See+3\n\tPain:\n\t\tDFOD I 3\n\t\tDFOD I 3 A_Pain\n\t\tGoto See+3\n\tPain.Stunner:\n\t\tDFOD I 2 A_ChangeFlag(\"NoPain\", 1)\n\t\tDFOD I 300 A_Pain\n\t\tDFOD I 0 A_ChangeFlag(\"NoPain\", 0)\n\t\tgoto See+3\n\tDeath:\n\t\tTNT1 A 0 A_GiveToTarget(\"AwardItem\", 3)\n\t\tDFOD I 6\n\t\tDFOD J 6 A_Scream\n\t\tDFOD K 6 A_Fall\n\t\tDFOD L 6\n\t\tDFOD M 3000\n\t\tDFOD M 2 A_FadeOut(0.1)\n\t\twait\n\tXDeath:\n\t\tTNT1 A 0 A_GiveToTarget(\"AwardItem\", 5)\n        TNT1 A 0 A_UnsetSolid\n\t\tTNT1 A 0 A_PlaySound(\"duke/splat\")\n    \tTNT1 A 0 A_CustomMissile(\"Gibbage1\",24,0,random(0,359),2,random(30,50))\n    \tTNT1 A 0 A_CustomMissile(\"Gibbage2\",24,0,random(0,359),2,random(30,50))\n    \tTNT1 A 0 A_CustomMissile(\"Gibbage3\",24,0,random(0,359),2,random(30,50))\n    \tTNT1 A 0 A_CustomMissile(\"Gibbage4\",24,0,random(0,359),2,random(30,50))\n    \tTNT1 A 0 A_CustomMissile(\"Gibbage5\",24,0,random(0,359),2,random(30,50))\n    \tTNT1 AAAAAAAAAA 0 A_CustomMissile(\"Gibbage6\",24,0,random(0,359),2,random(30,50))\n        TNT1 A 5\n\t\tStop\n\t}\n}\n\nACTOR FodderLaser {\n\tScale 0.4\n\tRadius 8\n\tHeight 8\n\tSpeed 25\n\tDamage (7)\n\tProjectile\n\tSeeSound \"lizard/laser\"\n\tDeathSound \"duke/hit\"\n\tStates\n\t{\n\tSpawn:\n\t\tDLAS A 1 BRIGHT A_SpawnItem(\"FodderLaserTrail\",0)\n\t\tLoop\n\t}\n}\n\nACTOR FodderLaserTrail {\n\tScale 0.4\n\tRadius 8\n\tHeight 8\n\t+Nogravity\n\tStates\n\t{\n\tSpawn:\n\t\tDLAS A 4 Bright\n\t\tStop\n\t}\n}\n\nACTOR TeleFodder : DukeFodder\n{\n//$Category Stronghold_DukeNukem\n\tspawnid 161\n\tTranslation \"112:127=[255,75,25]:[68,12,4]\"\n\tHealth 60\n\tGibHealth -60\n\tObituary \"$STR_OB_TELEFODDER\"\n    Tag \"$STR_MONSTERTAG_TELEFODDER\"\n\tStates\n\t{\n\tSeeInvisible:\n\t\tTNT1 A 0\n\t\tTNT1 A 0 A_Chase(\"GoVisible\",\"\",2)\n\t\tTNT1 A 1 A_Jump(10, \"GoVisibleSee\")\n\t\tLoop\n\tMissile:\n\t\tDFOD F 0 A_Jump(90, \"GoInvisible\")\n\t\tDFOD F 0 A_Jump(128, \"DuckMissile\")\n\t\tDFOD F 10 A_FaceTarget\n\t\tDFOD F 6 Bright A_MissileAttack\n\t\tDFOD F 10 A_FaceTarget\n\t\tDFOD F 6 Bright A_MissileAttack\n\t\tDFOD F 10 A_FaceTarget\n\t\tDFOD F 6 Bright A_MissileAttack\n\t\tGoto See+3\n\tGoInvisible:\n\t\tDFOD S 20 A_UnSetShootable\n\t\tDFOD T 4\n\t\tDFOD TTTTTTTTT 1 A_FadeOut(0.1)\n\t\tTNT1 A 0 A_SpawnItem(\"TeleportFuzz\",0,32)\n\t\tTNT1 A 0 A_PlaySound(\"lizard/teleport\")\n\t\tTNT1 A 0 A_UnSetSolid\n\t\tGoto SeeInvisible\n\tGoVisible:\n\t\tTNT1 A 6 A_SpawnItem(\"TeleportFuzz\",0,32)\n\t\tTNT1 A 0 A_PlaySound(\"lizard/teleport\")\n\t\tTNT1 A 0 A_SetShootable\n\t\tTNT1 A 0 A_SetSolid\n\t\tTNT1 A 0 A_SetTranslucent(1.0,0)\n\t\tGoto Missile+2\n\tGoVisibleSee:\n\t\tTNT1 A 6 A_SpawnItem(\"TeleportFuzz\",0,32)\n\t\tTNT1 A 0 A_PlaySound(\"lizard/teleport\")\n\t\tTNT1 A 0 A_SetShootable\n\t\tTNT1 A 0 A_SetSolid\n\t\tTNT1 A 0 A_SetTranslucent(1.0,0)\n\t\tGoto See\n\tDeath:\n\t\tTNT1 A 0 A_GiveToTarget(\"AwardItem\", 4)\n\t\tgoto Super::Death+1\n\t}\n}\n\nactor TeleportFuzz\n{\n  PROJECTILE\n  Speed 0\n  XScale 0.4\n  YScale 0.5\n  RenderStyle Translucent\n  Alpha 0.756\n  +ClientSideOnly\n  States\n  {\n  Spawn:\n  Death:\n    DFOG ABCDE 1\n    Stop\n  }\n}\n\nactor ShrinkFuzz : TeleportFuzz\n{\n  Translation \"80:111=112:127\"\n  RenderStyle Add\n  SeeSound \"duke/shrink\"\n}\n\n// Duke babes - added by Jimmy91 :D\n\nACTOR BabeSpawner : RandomSpawner 20088\n{\n//$Category Stronghold_DukeNukem\n  DropItem Babe1 255 1\n  DropItem Babe2 255 1\n  DropItem Babe3 255 1\n  DropItem Babe4 255 1\n  DropItem Babe5 255 1\n}\n\nACTOR BabeBase\n{\n  +SOLID\n  +SHOOTABLE\n  +FRIENDLY\n  +ISMONSTER\n  +DONTMORPH\n  +NOTAUTOAIMED\n  +THRUSPECIES\n  Species \"Player\"\n  DamageFactor \"Massacre\", 0\n  DamageFactor \"MarineAlly\",0\n  DamageFactor \"MarineAllyRocket\",0\n  DamageFactor \"MarineAllyPlasma\",0\n  DamageFactor \"MarineAllyRailgun\",0\n  DamageFactor \"MarineAllyRepeater\",0\n  DamageFactor \"MarineAllyFire\",0\n  DamageFactor \"MarineAllyBFG\",0\n  DamageFactor \"MarineAllyBFGSplash\",0\n  DamageFactor \"MarineAllyIce\",0\n  DamageFactor \"SmartBomb\",0\n  DamageFactor \"CoreFriendly\",0\n  DamageFactor \"CoreFriendlyFire\",0\n  DamageFactor \"BossFactor\",0\n  DamageFactor \"PlayerAlly\",0\n  DamageFactor \"PlayerAllyRocket\",0\n  DamageFactor \"PlayerAllyPlasma\",0\n  DamageFactor \"PlayerAllyRailgun\",0\n  DamageFactor \"PlayerAllyRepeater\",0\n  DamageFactor \"PlayerAllyFire\",0\n  DamageFactor \"PlayerAllyBFG\",0\n  DamageFactor \"PlayerAllyBFGSplash\",0\n  DamageFactor \"PlayerAllyIce\",0\n  DamageFactor \"Stunner\",0\n  DamageFactor \"Cyber2Factor\", 0.5\n  DamageFactor \"Cyber2FactorExplosive\", 0.5\n  DamageFactor \"Cyber2FactorFire\", 0.5\n  DamageFactor \"STBoss\", 0.02\n  DamageFactor \"STBossFactor\", 0.25\n  DamageFactor \"SpiritBoss\", 0.02\n  DamageFactor \"SpiritBossFactor\", 0.25\n  DamageFactor \"Animate\", 0.1\n  DamageFactor \"Bullet\", 0.8\n  DamageFactor \"Melee\", 0.8\n  RadiusDamageFactor 0.5\n  BloodType \"DN3DBlood\", \"DN3DBlood\", \"AxeBlood\"\n  Health 500 // 300\n  Height 64\n  Radius 24\n  Mass 9999999\n  Scale 0.5\n  DeathSound \"duke/babedie\"\n  Tag \"$STR_MONSTERTAG_BABE\"\n}\n\nACTOR Babe1 : BabeBase\n{\n//$Category Stronghold_DukeNukem\n  //Health 600\n  States\n  {\n  Spawn:\n    BABE A 1\n\tLoop\n  Death:\n    TNT1 A 0 A_UnsetSolid\n    TNT1 A 0 A_Scream\n\tTNT1 A 0 A_PlaySound(\"duke/splat\")\n    TNT1 A 0 A_CustomMissile(\"Gibbage1\",24,0,random(0,359),2,random(30,50))\n    TNT1 A 0 A_CustomMissile(\"Gibbage2\",24,0,random(0,359),2,random(30,50))\n    TNT1 A 0 A_CustomMissile(\"Gibbage3\",24,0,random(0,359),2,random(30,50))\n    TNT1 A 0 A_CustomMissile(\"Gibbage4\",24,0,random(0,359),2,random(30,50))\n    TNT1 A 0 A_CustomMissile(\"Gibbage5\",24,0,random(0,359),2,random(30,50))\n    TNT1 AAAAAAAAAA 0 A_CustomMissile(\"Gibbage6\",24,0,random(0,359),2,random(30,50))\n    BABE E -1\n    stop\n  }\n}\n\nACTOR Babe2 : BabeBase\n{\n//$Category Stronghold_DukeNukem\n  Height 48\n  States\n  {\n  Spawn:\n    BABE B 1\n\tLoop\n  Death:\n    TNT1 A 0 A_UnsetSolid\n    TNT1 A 0 A_Scream\n\tTNT1 A 0 A_PlaySound(\"duke/splat\")\n    TNT1 A 0 A_CustomMissile(\"Gibbage1\",24,0,random(0,359),2,random(30,50))\n    TNT1 A 0 A_CustomMissile(\"Gibbage2\",24,0,random(0,359),2,random(30,50))\n    TNT1 A 0 A_CustomMissile(\"Gibbage3\",24,0,random(0,359),2,random(30,50))\n    TNT1 A 0 A_CustomMissile(\"Gibbage4\",24,0,random(0,359),2,random(30,50))\n    TNT1 A 0 A_CustomMissile(\"Gibbage5\",24,0,random(0,359),2,random(30,50))\n    TNT1 AAAAAAAAAA 0 A_CustomMissile(\"Gibbage6\",24,0,random(0,359),2,random(30,50))\n    BABE F -1\n    stop\n  }\n}\n\nACTOR Babe3 : BabeBase\n{\n//$Category Stronghold_DukeNukem\n  States\n  {\n  Spawn:\n    BABE D 1\n\tLoop\n  Death:\n    TNT1 A 0 A_UnsetSolid\n    TNT1 A 0 A_Scream\n\tTNT1 A 0 A_PlaySound(\"duke/splat\")\n    TNT1 A 0 A_CustomMissile(\"Gibbage1\",24,0,random(0,359),2,random(30,50))\n    TNT1 A 0 A_CustomMissile(\"Gibbage2\",24,0,random(0,359),2,random(30,50))\n    TNT1 A 0 A_CustomMissile(\"Gibbage3\",24,0,random(0,359),2,random(30,50))\n    TNT1 A 0 A_CustomMissile(\"Gibbage4\",24,0,random(0,359),2,random(30,50))\n    TNT1 A 0 A_CustomMissile(\"Gibbage5\",24,0,random(0,359),2,random(30,50))\n    TNT1 AAAAAAAAAA 0 A_CustomMissile(\"Gibbage6\",24,0,random(0,359),2,random(30,50))\n    BABE H -1\n    stop\n  }\n}\n\nACTOR Babe4 : BabeBase\n{\n//$Category Stronghold_DukeNukem\n  //Health 200\n  States\n  {\n  Spawn:\n    BABE I 1\n\tLoop\n  Death:\n    TNT1 A 0 A_UnsetSolid\n    TNT1 A 0 A_Scream\n\tTNT1 A 0 A_PlaySound(\"duke/splat\")\n    TNT1 A 0 A_CustomMissile(\"Gibbage1\",24,0,random(0,359),2,random(30,50))\n    TNT1 A 0 A_CustomMissile(\"Gibbage2\",24,0,random(0,359),2,random(30,50))\n    TNT1 A 0 A_CustomMissile(\"Gibbage3\",24,0,random(0,359),2,random(30,50))\n    TNT1 A 0 A_CustomMissile(\"Gibbage4\",24,0,random(0,359),2,random(30,50))\n    TNT1 A 0 A_CustomMissile(\"Gibbage5\",24,0,random(0,359),2,random(30,50))\n    TNT1 AAAAAAAAAA 0 A_CustomMissile(\"Gibbage6\",24,0,random(0,359),2,random(30,50))\n    BABE J -1\n    stop\n  }\n}\n\nACTOR Babe5 : BabeBase\n{\n//$Category Stronghold_DukeNukem\n  States\n  {\n  Spawn:\n    BABE C 1\n\tLoop\n  Death:\n    TNT1 A 0 A_UnsetSolid\n    TNT1 A 0 A_Scream\n\tTNT1 A 0 A_PlaySound(\"duke/splat\")\n    TNT1 A 0 A_CustomMissile(\"Gibbage1\",24,0,random(0,359),2,random(30,50))\n    TNT1 A 0 A_CustomMissile(\"Gibbage2\",24,0,random(0,359),2,random(30,50))\n    TNT1 A 0 A_CustomMissile(\"Gibbage3\",24,0,random(0,359),2,random(30,50))\n    TNT1 A 0 A_CustomMissile(\"Gibbage4\",24,0,random(0,359),2,random(30,50))\n    TNT1 A 0 A_CustomMissile(\"Gibbage5\",24,0,random(0,359),2,random(30,50))\n    TNT1 AAAAAAAAAA 0 A_CustomMissile(\"Gibbage6\",24,0,random(0,359),2,random(30,50))\n    BABE G -1\n    stop\n  }\n}\n\n// Duke gibs added by Jimmy91\n\nactor DN3DBlood : Blood\n{\n  Scale 0.45\n  +CORPSE\n  States\n  {\n  Spawn:\n    DNBD AAA 0\n    DNBD A 0 A_Jump(128,2)\n    DNBD A 0 A_SpawnItem(\"DN3DBloodSplat\",0,0,0,1)\n    DNBD A 1\n    wait\n\n  Crash:\n    DNBD BCDEFGH 3\n    Stop\n  }\n}\n\nactor DN3DBloodSplat\n{\n  Radius 1\n  Height 1\n  +NOCLIP\n  +NOBLOCKMAP\n  +NOGRAVITY\n  States\n  {\n  Spawn:\n    DNBS ABCD 2\n    Stop\n  }\n}\n\nactor Gibbage1\n{\n  PROJECTILE\n  Radius 2\n  Height 2\n  Speed 9\n  VSpeed 24\n  Mass 5\n  Scale 0.65\n  Gravity 0.5\n  Decal BloodSplat\n  -NOGRAVITY\n  -ACTIVATEIMPACT\n  -ACTIVATEPCROSS\n  +RIPPER\n  +NOBLOCKMAP\n  +CORPSE\n  +ClientSideOnly\n  +BLOODLESSIMPACT\n  States\n  {\n  Spawn:\n    GIB1 ABCD 6\n    Loop\n  Death:\n    DNBD BCDEFGH 3\n    Stop\n  }\n}\n\nactor Gibbage2 : Gibbage1\n{\n  States\n  {\n  Spawn:\n    GIB2 ABCD 6\n    Loop\n  }\n}\n\nactor Gibbage3 : Gibbage1\n{\n  States\n  {\n  Spawn:\n    GIB3 ABCD 6\n    Loop\n  }\n}\n\nactor Gibbage4 : Gibbage1\n{\n  States\n  {\n  Spawn:\n    GIB4 ABCD 6\n    Loop\n  }\n}\n\nactor Gibbage5 : Gibbage1\n{\n  States\n  {\n  Spawn:\n    GIB5 ABCD 6\n    Loop\n  }\n}\n\nactor Gibbage6 : Gibbage1\n{\n  States\n  {\n  Spawn:\n    DNBD A 1\n    Loop\n  }\n}\n\nactor Scrap1 : Gibbage1\n{\n  Decal \"\"\n  Scale 0.5\n  States\n  {\n  Spawn:\n    SCRP ABCD 6\n    Loop\n  Death:\n    SCRP A 0\n    Stop\n  }\n}\n\nactor Scrap2 : Scrap1\n{\n  States\n  {\n  Spawn:\n    SCRP EFGHIJKLM 6\n    Loop\n  }\n}"
      },
      {
        "source": "pk3",
        "name": "actors/effects.txt",
        "contents": "actor StrSFX_WaterSplash_Large : SFX_WaterSplash_Large replaces SFX_WaterSplash_Large { +DONTSPLASH } // cut back on lag, hopefully\nactor StrSFX_WaterSplash_Small : SFX_WaterSplash_Small replaces SFX_WaterSplash_Small { +DONTSPLASH }\nactor StrWatersplash_Medium : Watersplash_Medium replaces Watersplash_Medium { +DONTSPLASH }\n\nactor StrRainSpawner : RainSpawner replaces RainSpawner { +DONTSPLASH }\nactor StrRainDrop : RainDrop replaces RainDrop { +DONTSPLASH }\n\nactor StrThunder_Generator : Thunder_Generator replaces Thunder_Generator { +DONTSPLASH }\nactor StrThunder_Smoke : Thunder_Smoke replaces Thunder_Smoke { +DONTSPLASH }\nactor StrThunder_Spark : Thunder_Spark replaces Thunder_Spark { +DONTSPLASH }\n\nactor StrRadioactive_Shower : Radioactive_Shower replaces Radioactive_Shower { +DONTSPLASH }\nactor StrBaseWasteShower01 : BaseWasteShower01 replaces BaseWasteShower01 { +DONTSPLASH }\n\nactor StrSpark_B1 : Spark_B1 replaces Spark_B1 { +DONTSPLASH }\nactor StrSpark_B2 : Spark_B2 replaces Spark_B2 { +DONTSPLASH }\nactor StrSpark_B3 : Spark_B3 replaces Spark_B3 { +DONTSPLASH }\nactor StrSpark_B4 : Spark_B4 replaces Spark_B4 { +DONTSPLASH }\nactor StrSpark_B5 : Spark_B5 replaces Spark_B5 { +DONTSPLASH }\nactor StrSpark_B6 : Spark_B6 replaces Spark_B6 { +DONTSPLASH }\nactor StrSpark_B7 : Spark_B7 replaces Spark_B7 { +DONTSPLASH }\nactor StrSpark_B8 : Spark_B8 replaces Spark_B8 { +DONTSPLASH }\nactor StrSpark_B9 : Spark_B9 replaces Spark_B9 { +DONTSPLASH }\n\nactor StrSpark_G1 : Spark_G1 replaces Spark_G1 { +DONTSPLASH }\nactor StrSpark_G2 : Spark_G2 replaces Spark_G2 { +DONTSPLASH }\nactor StrSpark_G3 : Spark_G3 replaces Spark_G3 { +DONTSPLASH }\nactor StrSpark_G4 : Spark_G4 replaces Spark_G4 { +DONTSPLASH }\nactor StrSpark_G5 : Spark_G5 replaces Spark_G5 { +DONTSPLASH }\nactor StrSpark_G6 : Spark_G6 replaces Spark_G6 { +DONTSPLASH }\nactor StrSpark_G7 : Spark_G7 replaces Spark_G7 { +DONTSPLASH }\nactor StrSpark_G8 : Spark_G8 replaces Spark_G8 { +DONTSPLASH }\nactor StrSpark_G9 : Spark_G9 replaces Spark_G9 { +DONTSPLASH }\n\nactor StrSpark_O1 : Spark_O1 replaces Spark_O1 { +DONTSPLASH }\nactor StrSpark_O2 : Spark_O2 replaces Spark_O2 { +DONTSPLASH }\nactor StrSpark_O3 : Spark_O3 replaces Spark_O3 { +DONTSPLASH }\nactor StrSpark_O4 : Spark_O4 replaces Spark_O4 { +DONTSPLASH }\nactor StrSpark_O5 : Spark_O5 replaces Spark_O5 { +DONTSPLASH }\nactor StrSpark_O6 : Spark_O6 replaces Spark_O6 { +DONTSPLASH }\nactor StrSpark_O7 : Spark_O7 replaces Spark_O7 { +DONTSPLASH }\nactor StrSpark_O8 : Spark_O8 replaces Spark_O8 { +DONTSPLASH }\nactor StrSpark_O9 : Spark_O9 replaces Spark_O9 { +DONTSPLASH }\n\nactor StrSpark_R1 : Spark_R1 replaces Spark_R1 { +DONTSPLASH }\nactor StrSpark_R2 : Spark_R2 replaces Spark_R2 { +DONTSPLASH }\nactor StrSpark_R3 : Spark_R3 replaces Spark_R3 { +DONTSPLASH }\nactor StrSpark_R4 : Spark_R4 replaces Spark_R4 { +DONTSPLASH }\nactor StrSpark_R5 : Spark_R5 replaces Spark_R5 { +DONTSPLASH }\nactor StrSpark_R6 : Spark_R6 replaces Spark_R6 { +DONTSPLASH }\nactor StrSpark_R7 : Spark_R7 replaces Spark_R7 { +DONTSPLASH }\nactor StrSpark_R8 : Spark_R8 replaces Spark_R8 { +DONTSPLASH }\nactor StrSpark_R9 : Spark_R9 replaces Spark_R9 { +DONTSPLASH }\n\nactor StrSpark_C1 : Spark_C1 replaces Spark_C1 { +DONTSPLASH }\nactor StrSpark_C2 : Spark_C2 replaces Spark_C2 { +DONTSPLASH }\nactor StrSpark_C3 : Spark_C3 replaces Spark_C3 { +DONTSPLASH }\nactor StrSpark_C4 : Spark_C4 replaces Spark_C4 { +DONTSPLASH }\nactor StrSpark_C5 : Spark_C5 replaces Spark_C5 { +DONTSPLASH }\nactor StrSpark_C6 : Spark_C6 replaces Spark_C6 { +DONTSPLASH }\nactor StrSpark_C7 : Spark_C7 replaces Spark_C7 { +DONTSPLASH }\nactor StrSpark_C8 : Spark_C8 replaces Spark_C8 { +DONTSPLASH }\nactor StrSpark_C9 : Spark_C9 replaces Spark_C9 { +DONTSPLASH }\n\nactor StrSpark_Y1 : Spark_Y1 replaces Spark_Y1 { +DONTSPLASH }\nactor StrSpark_Y2 : Spark_Y2 replaces Spark_Y2 { +DONTSPLASH }\nactor StrSpark_Y3 : Spark_Y3 replaces Spark_Y3 { +DONTSPLASH }\nactor StrSpark_Y4 : Spark_Y4 replaces Spark_Y4 { +DONTSPLASH }\nactor StrSpark_Y5 : Spark_Y5 replaces Spark_Y5 { +DONTSPLASH }\nactor StrSpark_Y6 : Spark_Y6 replaces Spark_Y6 { +DONTSPLASH }\nactor StrSpark_Y7 : Spark_Y7 replaces Spark_Y7 { +DONTSPLASH }\nactor StrSpark_Y8 : Spark_Y8 replaces Spark_Y8 { +DONTSPLASH }\nactor StrSpark_Y9 : Spark_Y9 replaces Spark_Y9 { +DONTSPLASH }\n\nactor StrSteam1 : Steam1 replaces Steam1 { +DONTSPLASH }\nactor StrSteam2 : Steam2 replaces Steam2 { +DONTSPLASH }\nactor StrSteam3 : Steam3 replaces Steam3 { +DONTSPLASH }\nactor StrSteam4 : Steam4 replaces Steam4 { +DONTSPLASH }\nactor StrSteam5 : Steam5 replaces Steam5 { +DONTSPLASH }\n\nactor StrCometLarge_Enhanced_NoDmg : CometLarge_Enhanced_NoDmg replaces CometLarge_Enhanced_NoDmg\n{\n    States\n    {\n      Death:\n        COMT DEFGHI 3 Bright\n        stop\n    }\n}"
      },
      {
        "source": "pk3",
        "name": "actors/exclamation.txt",
        "contents": "//////////////////////\n// EXCLAMATION MARK //\n//////////////////////\n\nactor Exclamation 21236\n{\n//$Category Stronghold\n  scale 1.2\n  alpha 1.0\n  renderstyle Add\n  -SOLID\n  +NOGRAVITY\n  +CLIENTSIDEONLY\n  states\n  {\n  Spawn:\n    EXCL A 1 Bright\n    loop\n  }\n}\n\n// Do not define DoomEdNums for these!\nactor Exclamation2 : Exclamation { states { Spawn: EXCL A 1 Bright Thing_Move(0,2,1) loop } }\nactor Exclamation3 : Exclamation { states { Spawn: EXCL A 1 Bright Thing_Move(0,3,1) loop } }\nactor Exclamation122 : Exclamation { states { Spawn: EXCL A 1 Bright Thing_Move(0,122,1) loop } }\nactor Exclamation9 : Exclamation { states { Spawn: EXCL A 1 Bright Thing_Move(0,9,1) loop } }\nactor Exclamation8 : Exclamation { states { Spawn: EXCL A 1 Bright Thing_Move(0,8,1) loop } }\nactor Exclamation10 : Exclamation { states { Spawn: EXCL A 1 Bright Thing_Move(0,10,1) loop } }\nactor Exclamation11 : Exclamation { states { Spawn: EXCL A 1 Bright Thing_Move(0,11,1) loop } }\nactor Exclamation12 : Exclamation { states { Spawn: EXCL A 1 Bright Thing_Move(0,12,1) loop } }\nactor Exclamation13 : Exclamation { states { Spawn: EXCL A 1 Bright Thing_Move(0,13,1) loop } }\nactor Exclamation14 : Exclamation { states { Spawn: EXCL A 1 Bright Thing_Move(0,14,1) loop } }\nactor Exclamation15 : Exclamation { states { Spawn: EXCL A 1 Bright Thing_Move(0,15,1) loop } }\nactor Exclamation16 : Exclamation { states { Spawn: EXCL A 1 Bright Thing_Move(0,16,1) loop } }\nactor Exclamation17 : Exclamation { states { Spawn: EXCL A 1 Bright Thing_Move(0,17,1) loop } }\nactor Exclamation20 : Exclamation { states { Spawn: EXCL A 1 Bright Thing_Move(0,20,1) loop } }\nactor Exclamation21 : Exclamation { states { Spawn: EXCL A 1 Bright Thing_Move(0,21,1) loop } }\nactor Exclamation22 : Exclamation { states { Spawn: EXCL A 1 Bright Thing_Move(0,22,1) loop } }\nactor Exclamation23 : Exclamation { states { Spawn: EXCL A 1 Bright Thing_Move(0,23,1) loop } }\nactor Exclamation24 : Exclamation { states { Spawn: EXCL A 1 Bright Thing_Move(0,24,1) loop } }\nactor Exclamation25 : Exclamation { states { Spawn: EXCL A 1 Bright Thing_Move(0,25,1) loop } }\nactor Exclamation36 : Exclamation { states { Spawn: EXCL A 1 Bright Thing_Move(0,36,1) loop } }\nactor Exclamation37 : Exclamation { states { Spawn: EXCL A 1 Bright Thing_Move(0,37,1) loop } }\nactor Exclamation38 : Exclamation { states { Spawn: EXCL A 1 Bright Thing_Move(0,38,1) loop } }\nactor Exclamation39 : Exclamation { states { Spawn: EXCL A 1 Bright Thing_Move(0,39,1) loop } }\nactor Exclamation40 : Exclamation { states { Spawn: EXCL A 1 Bright Thing_Move(0,40,1) loop } }\nactor Exclamation41 : Exclamation { states { Spawn: EXCL A 1 Bright Thing_Move(0,41,1) loop } }\nactor Exclamation44 : Exclamation { states { Spawn: EXCL A 1 Bright Thing_Move(0,44,1) loop } }\nactor Exclamation46 : Exclamation { states { Spawn: EXCL A 1 Bright Thing_Move(0,46,1) EXCL A 0 Thing_ChangeTid(0,1200) loop } }\nactor ExclamationCaptEspio : Exclamation { states { Spawn: EXCL A 1 bright Thing_Move(0,141,1) loop } }\nactor ExclamationLtTVappy : Exclamation { states { Spawn: EXCL A 1 bright Thing_Move(0,142,1) loop } }\n\nACTOR ExclamationSpawner 21750\n{\n//$Category Stronghold\n  +CLIENTSIDEONLY\n  states {\n  Spawn:\n    TNT1 A 0\n\tTNT1 A 0 A_SpawnItemEx(\"Exclamation2\")\n    TNT1 A 0 A_SpawnItemEx(\"Exclamation3\")\n    TNT1 A 0 A_SpawnItemEx(\"Exclamation122\")\n    TNT1 A 0 A_SpawnItemEx(\"Exclamation9\")\n    TNT1 A 0 A_SpawnItemEx(\"Exclamation8\")\n    TNT1 A 0 A_SpawnItemEx(\"Exclamation10\")\n    TNT1 A 0 A_SpawnItemEx(\"Exclamation11\")\n    TNT1 A 0 A_SpawnItemEx(\"Exclamation12\")\n    TNT1 A 0 A_SpawnItemEx(\"Exclamation13\")\n    TNT1 A 0 A_SpawnItemEx(\"Exclamation14\")\n    TNT1 A 0 A_SpawnItemEx(\"Exclamation15\")\n    TNT1 A 0 A_SpawnItemEx(\"Exclamation16\")\n    TNT1 A 0 A_SpawnItemEx(\"Exclamation17\")\n    TNT1 A 0 A_SpawnItemEx(\"Exclamation20\")\n    TNT1 A 0 A_SpawnItemEx(\"Exclamation21\")\n    TNT1 A 0 A_SpawnItemEx(\"Exclamation22\")\n    TNT1 A 0 A_SpawnItemEx(\"Exclamation23\")\n    TNT1 A 0 A_SpawnItemEx(\"Exclamation24\")\n    TNT1 A 0 A_SpawnItemEx(\"Exclamation25\")\n    TNT1 A 0 A_SpawnItemEx(\"Exclamation36\")\n    TNT1 A 0 A_SpawnItemEx(\"Exclamation37\")\n    TNT1 A 0 A_SpawnItemEx(\"Exclamation38\")\n    TNT1 A 0 A_SpawnItemEx(\"Exclamation39\")\n    TNT1 A 0 A_SpawnItemEx(\"Exclamation40\")\n    TNT1 A 0 A_SpawnItemEx(\"Exclamation41\")\n    TNT1 A 0 A_SpawnItemEx(\"Exclamation44\")\n\tTNT1 A 0 A_SpawnItemEx(\"Exclamation46\")\n    TNT1 A 0 A_SpawnItemEx(\"ExclamationCaptEspio\")\n    TNT1 A 0 A_SpawnItemEx(\"ExclamationLtTVappy\")\n    stop\n  }\n}"
      },
      {
        "source": "pk3",
        "name": "actors/holo.txt",
        "contents": "/////////////////////////////////////////////////////////////////////////////////////\n// MONSTER ENCYCLOPEDIA /////////////////////////////////////////////////////////////\n/////////////////////////////////////////////////////////////////////////////////////\n\nactor HoloDecoBase\n{\n\trenderstyle Translucent\n\talpha 0.45\n\t+FLOORCLIP\n\t-SOLID\n\t-SHOOTABLE\n}\n\nactor HoloDeco_Mancutank : HoloDecoBase 21801\n{\n//$Category Stronghold_HoloDeco\n\tstates\n\t{\n\t\tspawn:\n\t\tZMNC A -1 BRIGHT\n\t\tstop\n\t}\n}\n\nactor HoloDeco_HS : HoloDecoBase 21802\n{\n//$Category Stronghold_HoloDeco\n\tstates\n\t{\n\t\tspawn:\n\t\tYADE A -1 BRIGHT\n\t\tstop\n\t}\n}\n\nactor HoloDeco_DuneWarrior : HoloDecoBase 21803\n{\n//$Category Stronghold_HoloDeco\n\tstates\n\t{\n\t\tspawn:\n\t\tXHRT A -1 BRIGHT\n\t\tstop\n\t}\n}\n\nactor HoloDeco_HellWarrior : HoloDecoBase 21804\n{\n//$Category Stronghold_HoloDeco\n\tstates\n\t{\n\t\tspawn:\n\t\tZWAR A -1 BRIGHT\n\t\tstop\n\t}\n}\n\nactor HoloDeco_Azazel : HoloDecoBase 21805\n{\n//$Category Stronghold_HoloDeco\n\tstates\n\t{\n\t\tspawn:\n\t\tZZEA A -1 BRIGHT\n\t\tstop\n\t}\n}\n\nactor HoloDeco_GuardianCube : HoloDecoBase 21806\n{\n//$Category Stronghold_HoloDeco\n\tstates\n\t{\n\t\tspawn:\n\t\tZUBE A -1 BRIGHT\n\t\tstop\n\t}\n}\n\nactor HoloDeco_ZombieTank : HoloDecoBase 21807\n{\n//$Category Stronghold_HoloDeco\n\tstates\n\t{\n\t\tspawn:\n\t\tXTNK A -1 BRIGHT\n\t\tstop\n\t}\n}\n\nactor HoloDeco_ArchonOfHell : HoloDecoBase 21808\n{\n//$Category Stronghold_HoloDeco\n\tstates\n\t{\n\t\tspawn:\n\t\tZOS4 A -1 BRIGHT\n\t\tstop\n\t}\n}\n\nactor HoloDeco_Diabolist : HoloDecoBase 21809\n{\n//$Category Stronghold_HoloDeco\n\tstates\n\t{\n\t\tspawn:\n\t\tZIAB A -1 BRIGHT\n\t\tstop\n\t}\n}\n\nactor HoloDeco_PainElemental : HoloDecoBase 21810\n{\n//$Category Stronghold_HoloDeco\n\tstates\n\t{\n\t\tspawn:\n\t\tYAIN A -1 BRIGHT\n\t\tstop\n\t}\n}\n\nactor HoloDeco_NightmareDemon : HoloDecoBase 21811\n{\n//$Category Stronghold_HoloDeco\n\tstates\n\t{\n\t\tspawn:\n\t\tYAR2 A -1 BRIGHT\n\t\tstop\n\t}\n}\n\nactor HoloDeco_Demon : HoloDecoBase 21812\n{\n//$Category Stronghold_HoloDeco\n\tstates\n\t{\n\t\tspawn:\n\t\tYARG A -1 BRIGHT\n\t\tstop\n\t}\n}\n\nactor HoloDeco_Fatso : HoloDecoBase 21813\n{\n//$Category Stronghold_HoloDeco\n\tstates\n\t{\n\t\tspawn:\n\t\tYATT A -1 BRIGHT\n\t\tstop\n\t}\n}\n\nactor HoloDeco_Catharsi : HoloDecoBase 21814\n{\n//$Category Stronghold_HoloDeco\n\tstates\n\t{\n\t\tspawn:\n\t\tYDDM A -1 BRIGHT\n\t\tstop\n\t}\n}\n\nactor HoloDeco_Cacodemon : HoloDecoBase 21815\n{\n//$Category Stronghold_HoloDeco\n\tstates\n\t{\n\t\tspawn:\n\t\tYEAD A -1 BRIGHT\n\t\tstop\n\t}\n}\n\nactor HoloDeco_Hectebus : HoloDecoBase 21816\n{\n//$Category Stronghold_HoloDeco\n\tstates\n\t{\n\t\tspawn:\n\t\tYECT A -1 BRIGHT\n\t\tstop\n\t}\n}\n\nactor HoloDeco_Helemental : HoloDecoBase 21817\n{\n//$Category Stronghold_HoloDeco\n\tstates\n\t{\n\t\tspawn:\n\t\tYELE A -1 BRIGHT\n\t\tstop\n\t}\n}\n\nactor HoloDeco_Hellion : HoloDecoBase 21818\n{\n//$Category Stronghold_HoloDeco\n\tstates\n\t{\n\t\tspawn:\n\t\tYELN A -1 BRIGHT\n\t\tstop\n\t}\n}\n\nactor HoloDeco_Demolisher : HoloDecoBase 21819\n{\n//$Category Stronghold_HoloDeco\n\tscale 0.6\n\tstates\n\t{\n\t\tspawn:\n\t\tYEMO A -1 BRIGHT\n\t\tstop\n\t}\n}\n\nactor HoloDeco_Terminator : HoloDecoBase 21820\n{\n//$Category Stronghold_HoloDeco\n\tstates\n\t{\n\t\tspawn:\n\t\tYERM A -1 BRIGHT\n\t\tstop\n\t}\n}\n\nactor HoloDeco_Shadow : HoloDecoBase 21821\n{\n//$Category Stronghold_HoloDeco\n\tstates\n\t{\n\t\tspawn:\n\t\tYHDW A -1 BRIGHT\n\t\tstop\n\t}\n}\n\nactor HoloDeco_Wicked : HoloDecoBase 21822\n{\n//$Category Stronghold_HoloDeco\n\tstates\n\t{\n\t\tspawn:\n\t\tYICK A -1 BRIGHT\n\t\tstop\n\t}\n}\n\nactor HoloDeco_ArchVile : HoloDecoBase 21823\n{\n//$Category Stronghold_HoloDeco\n\tstates\n\t{\n\t\tspawn:\n\t\tYILE A -1 BRIGHT\n\t\tstop\n\t}\n}\n\nactor HoloDeco_PhaseImp : HoloDecoBase 21824\n{\n//$Category Stronghold_HoloDeco\n\tstates\n\t{\n\t\tspawn:\n\t\tYIMP A -1 BRIGHT\n\t\tstop\n\t}\n}\n\nactor HoloDeco_Revenant : HoloDecoBase 21825\n{\n//$Category Stronghold_HoloDeco\n\tstates\n\t{\n\t\tspawn:\n\t\tYKEL A -1 BRIGHT\n\t\tstop\n\t}\n}\n\nactor HoloDeco_LostSoul : HoloDecoBase 21826\n{\n//$Category Stronghold_HoloDeco\n\tstates\n\t{\n\t\tspawn:\n\t\tYKUL A -1 BRIGHT\n\t\tstop\n\t}\n}\n\nactor HoloDeco_SuicideBomber : HoloDecoBase 21827\n{\n//$Category Stronghold_HoloDeco\n\tstates\n\t{\n\t\tspawn:\n\t\tYMBE A -1 BRIGHT\n\t\tstop\n\t}\n}\n\nactor HoloDeco_EnhancedCaco : HoloDecoBase 21828\n{\n//$Category Stronghold_HoloDeco\n\tstates\n\t{\n\t\tspawn:\n\t\tYNCD A -1 BRIGHT\n\t\tstop\n\t}\n}\n\nactor HoloDeco_HellKnight : HoloDecoBase 21829\n{\n//$Category Stronghold_HoloDeco\n\tstates\n\t{\n\t\tspawn:\n\t\tYOS2 A -1 BRIGHT\n\t\tstop\n\t}\n}\n\nactor HoloDeco_BaronOfHell : HoloDecoBase 21830\n{\n//$Category Stronghold_HoloDeco\n\tstates\n\t{\n\t\tspawn:\n\t\tYOSS A -1 BRIGHT\n\t\tstop\n\t}\n}\n\nactor HoloDeco_Mastermind : HoloDecoBase 21831\n{\n//$Category Stronghold_HoloDeco\n\tscale 0.6\n\tstates\n\t{\n\t\tspawn:\n\t\tYPID A -1 BRIGHT\n\t\tstop\n\t}\n}\n\nactor HoloDeco_Chaingunner : HoloDecoBase 21832\n{\n//$Category Stronghold_HoloDeco\n\tstates\n\t{\n\t\tspawn:\n\t\tYPOS A -1 BRIGHT\n\t\tstop\n\t}\n}\n\nactor HoloDeco_BloodDemon : HoloDecoBase 21833\n{\n//$Category Stronghold_HoloDeco\n\tstates\n\t{\n\t\tspawn:\n\t\tYRG2 A -1 BRIGHT\n\t\tstop\n\t}\n}\n\nactor HoloDeco_Imp : HoloDecoBase 21834\n{\n//$Category Stronghold_HoloDeco\n\tstates\n\t{\n\t\tspawn:\n\t\tYROO A -1 BRIGHT\n\t\tstop\n\t}\n}\n\nactor HoloDeco_Cybruiser : HoloDecoBase 21835\n{\n//$Category Stronghold_HoloDeco\n\tstates\n\t{\n\t\tspawn:\n\t\tYRU2 A -1 BRIGHT\n\t\tstop\n\t}\n}\n\nactor HoloDeco_BruiserDemon : HoloDecoBase 21836\n{\n//$Category Stronghold_HoloDeco\n\tstates\n\t{\n\t\tspawn:\n\t\tYRUS A -1 BRIGHT\n\t\tstop\n\t}\n}\n\nactor HoloDeco_Arachnotron : HoloDecoBase 21837\n{\n//$Category Stronghold_HoloDeco\n\tstates\n\t{\n\t\tspawn:\n\t\tYSPI A -1 BRIGHT\n\t\tstop\n\t}\n}\n\nactor HoloDeco_RocketTrooper : HoloDecoBase 21838\n{\n//$Category Stronghold_HoloDeco\n\tstates\n\t{\n\t\tspawn:\n\t\tYXOS A -1 BRIGHT\n\t\tstop\n\t}\n}\n\nactor HoloDeco_FusionSpider : HoloDecoBase 21839\n{\n//$Category Stronghold_HoloDeco\n\tstates\n\t{\n\t\tspawn:\n\t\tYXPI A -1 BRIGHT\n\t\tstop\n\t}\n}\n\nactor HoloDeco_CyberDemon : HoloDecoBase 21840\n{\n//$Category Stronghold_HoloDeco\n\tscale 0.8\n\tstates\n\t{\n\t\tspawn:\n\t\tYYBR A -1 BRIGHT\n\t\tstop\n\t}\n}\n\nactor HoloDeco_Shotgunguy : HoloDecoBase 21841\n{\n//$Category Stronghold_HoloDeco\n\tstates\n\t{\n\t\tspawn:\n\t\tYYOS A -1 BRIGHT\n\t\tstop\n\t}\n}\n\nactor HoloDeco_PyroDemon : HoloDecoBase 21842\n{\n//$Category Stronghold_HoloDeco\n\tstates\n\t{\n\t\tspawn:\n\t\tYYRO A -1 BRIGHT\n\t\tstop\n\t}\n}\n\nactor HoloDeco_Zombieman : HoloDecoBase 21843\n{\n//$Category Stronghold_HoloDeco\n\tstates\n\t{\n\t\tspawn:\n\t\tYYSS A -1 BRIGHT\n\t\tstop\n\t}\n}\n\n//////////////////////////////////////////////////////////////////////////////////////////\n// INTRODUCTION TUTORIAL MAP /////////////////////////////////////////////////////////////\n//////////////////////////////////////////////////////////////////////////////////////////\n\nactor HoloDoomImp\n{\n//$Category Stronghold_HoloMons\n  spawnid 255\n  health 60\n  radius 20\n  height 56\n  mass 100\n  renderstyle Add\n  alpha 1\n  speed 8\n  painchance 200\n  PainChance \"Stunner\", 255\n  seesound \"imp/sight\"\n  painsound \"imp/pain\"\n  deathsound \"imp/death\"\n  activesound \"imp/active\"\n  Tag \"$STR_MONSTERTAG_HOLODOOMIMP\"\n  MONSTER\n  +FLOORCLIP\n  +NOBLOOD\n  +NOICEDEATH\n  states\n  {\n  Spawn:\n    HROO AB 10 A_Look\n    loop\n  See:\n    HROO AABBCCDD 3 A_Chase\n    loop\n  Melee:\n  Missile:\n    HROO EF 8 A_FaceTarget\n    HROO G 6 A_CustomComboAttack(\"HoloDoomImpBall\",32,0,\"\") //A_CustomMissile(\"HoloDoomImpBall\",32,0,0)\n    goto See\n  Pain:\n    HROO H 2\n    HROO H 2 A_Pain\n    goto See\n  Pain.Stunner:\n    HROO H 2 A_ChangeFlag(\"NoPain\", 1)\n    HROO H 300 A_Pain\n    HROO H 0 A_ChangeFlag(\"NoPain\", 0)\n    goto See\n  Death:\n    HROO I 8\n    HROO J 8 A_Scream\n    HROO K 6\n    HROO L 6 A_NoBlocking\n    HROO M 40\n    HROO M 1 A_FadeOut(0.05)\n    wait\n  XDeath:\n    HROO N 5\n    HROO O 5 A_XScream\n    HROO P 5\n    HROO Q 5 A_NoBlocking\n    HROO RST 5\n    HROO U 40\n    HROO U 1 A_FadeOut(0.05)\n    wait\n  Raise:\n    stop\n  }\n}\n\nactor HoloDoomImpBall\n{\n  radius 6\n  height 8\n  speed 10\n  FastSpeed 20\n  damage (0)\n  renderstyle Add\n  alpha 1\n  seesound \"imp/attack\"\n  deathsound \"imp/shotx\"\n  PROJECTILE\n  +RANDOMIZE\n  states\n  {\n  Spawn:\n    HAL1 AB 4 bright\n    loop\n  Death:\n    HAL1 CDE 6 bright\n    stop\n  }\n}\n\nactor HoloZombieMan\n{\n//$Category Stronghold_HoloMons\n  spawnid 254\n  health 20\n  radius 20\n  height 56\n  renderstyle Add\n  alpha 1\n  mass 100\n  speed 8\n  painchance 200\n  PainChance \"Stunner\", 255\n  seesound \"grunt/sight\"\n  attacksound \"grunt/attack\"\n  painsound \"grunt/pain\"\n  deathsound \"grunt/death\"\n  activesound \"grunt/active\"\n  Tag \"$STR_MONSTERTAG_HOLOZOMBIEMAN\"\n  MONSTER\n  +FLOORCLIP\n  +NOBLOOD\n  +NOICEDEATH\n  states\n  {\n  Spawn:\n    HOSS AB 10 A_Look\n    loop\n  See:\n    HOSS AABBCCDD 4 A_Chase\n    loop\n  Missile:\n    HOSS E 10 A_FaceTarget\n    HOSS FE 8\n    goto See\n  Pain:\n    HOSS G 3\n    HOSS G 3 A_Pain\n    goto See\n  Pain.Stunner:\n    HOSS G 2 A_ChangeFlag(\"NoPain\", 1)\n    HOSS G 300 A_Pain\n    HOSS G 0 A_ChangeFlag(\"NoPain\", 0)\n    goto See\n  Death:\n    HOSS H 5\n    HOSS I 5 A_Scream\n    HOSS J 5 A_NoBlocking\n    HOSS K 5\n    HOSS L 40\n    HOSS L 1 A_FadeOut(0.05)\n    wait\n  XDeath:\n    HOSS M 5\n    HOSS N 5 A_XScream\n    HOSS O 5 A_NoBlocking\n    HOSS PQRST 5\n    HOSS U 40\n    HOSS U 1 A_FadeOut(0.05)\n    wait\n  Raise:\n    stop\n  }\n}\n\nactor HoloDemon\n{\n//$Category Stronghold_HoloMons\n  spawnid 253\n  health 150\n  painchance 180\n  PainChance \"Stunner\", 255\n  speed 10\n  FastSpeed 14\n  radius 30\n  height 56\n  renderstyle Add\n  alpha 1\n  mass 400\n  seesound \"demon/sight\"\n  attacksound \"demon/melee\"\n  painsound \"demon/pain\"\n  deathsound \"demon/death\"\n  activesound \"demon/active\"\n  Tag \"$STR_MONSTERTAG_HOLODEMON\"\n  MONSTER\n  +FLOORCLIP\n  +NOBLOOD\n  +NOICEDEATH\n  states\n  {\n  Spawn:\n    HARG AB 10 A_Look\n    loop\n  See:\n    HARG AABBCCDD 2 A_Chase\n    loop\n  Melee:\n    HARG EF 8 fast A_FaceTarget\n    HARG G 8 fast\n    goto See\n  Pain:\n    HARG H 2\n    HARG H 2 A_Pain\n    goto See\n  Pain.Stunner:\n    HARG H 2 A_ChangeFlag(\"NoPain\", 1)\n    HARG H 300 A_Pain\n    HARG H 0 A_ChangeFlag(\"NoPain\", 0)\n    goto See\n  Death:\n    HARG I 8\n    HARG J 8 A_Scream\n    HARG K 4\n    HARG L 4 A_NoBlocking\n    HARG M 4\n    HARG N 40\n    HARG N 1 A_FadeOut(0.05)\n    wait\n  Raise:\n    stop\n  }\n}"
      },
      {
        "source": "pk3",
        "name": "actors/misc.txt",
        "contents": "actor StrVictoryInvulnerability : InvulnerabilitySphere\n{\n    Powerup.Color \"00 00 00\", 0.0 // None\n    Powerup.Duration 0x7FFFFFFF // last until the level change triggers\n    -COUNTITEM\n}\n\nactor StrExplosionHazard\n{\n    Radius 11\n    Height 8\n    Speed 20\n    Damage (0)\n    Projectile\n    +RANDOMIZE\n    DeathSound \"weapons/rocklx\"\n    DamageType \"Rocket\"\n    +DONTSPLASH\n    +DONTREFLECT\n    +DONTBLAST\n    +NOTIMEFREEZE\n    +NOTRIGGER\n    States\n    {\n      Spawn:\n        TNT1 A 1\n        loop\n\n      Death:\n        TNT1 A 0 A_NoGravity\n        TNT1 A 0 A_SetTranslucent(0.67,1)\n        TNT1 A 0 A_Explode\n        MISL B 8 bright A_ChangeFlag(\"NOTIMEFREEZE\",0)\n        MISL C 6 bright\n        MISL D 4 bright\n        stop\n    }\n}"
      },
      {
        "source": "pk3",
        "name": "actors/npcs.txt",
        "contents": "///////////////////\n// BASE STATISTS //\n///////////////////\n\nactor StatistMarine1 : Zombieman 25101\n{\n//$Category Stronghold_StatistNPCs\n  speed 6\n  MaxStepHeight 16\n  MaxDropoffHeight 32\n  MONSTER\n  Tag \"$STR_MONSTERTAG_STATISTMARINE\"\n  +FLOORCLIP\n  +FRIENDLY\n  -SHOOTABLE\n  states\n  {\n  Spawn:\n    PLAY A 1 A_Look2\n    loop\n  See:\n    PLAY ABCD 8 A_Wander\n    loop\n  }\n}\n\nactor StatistMarine2 : StatistMarine1 25102\n{\n//$Category Stronghold_StatistNPCs\n  states\n  {\n  Spawn:\n    PLA2 A 1 A_Look2\n    loop\n  See:\n    PLA2 ABCD 8 A_Wander\n    loop\n  }\n}\n\nactor StatistScientist : StatistMarine1 25103\n{\n//$Category Stronghold_StatistNPCs\n  Tag \"$STR_MONSTERTAG_STATISTSCIENTIST\"\n  states\n  {\n  Spawn:\n    SCIN U 1 A_Look2\n    loop\n  See:\n    SCIN ABCD 8 A_Wander\n    loop\n  }\n}\n\nactor StatistArmorer : StatistMarine1 25104\n{\n//$Category Stronghold_StatistNPCs\n  Tag \"$STR_MONSTERTAG_STATISTARMORER\"\n  states\n  {\n  Spawn:\n    MRST A 80\n    MRLK A 40\n    MRST A 80\n    MRLK B 40\n    MRBD ABC 80\n    loop\n  }\n}\n\nactor StatistSellerr : StatistMarine1 25105\n{\n//$Category Stronghold_StatistNPCs\n  Tag \"$STR_MONSTERTAG_STATISTSELLER\"\n  states\n  {\n  Spawn:\n    LEDR A 80\n    LEDR B 40\n    LEDR A 80\n    LEDR C 40\n    loop\n  }\n}\n\nactor StatistMarine5 : StatistMarine1 25106\n{\n//$Category Stronghold_StatistNPCs\n  states\n  {\n  Spawn:\n    HAVC A 1 A_Look2\n    loop\n  See:\n    HAVC ABCD 8 A_Wander\n    loop\n  }\n}\n\nactor StatistMarine6 : StatistMarine1 25107\n{\n//$Category Stronghold_StatistNPCs\n  states\n  {\n  Spawn:\n    RAVW A 1 A_Look2\n    loop\n  See:\n    RAVW ABCD 8 A_Wander\n    loop\n  }\n}\n\nactor StatistMarine7 : StatistMarine1 25108\n{\n//$Category Stronghold_StatistNPCs\n  states\n  {\n  Spawn:\n    REEG A 1 A_Look2\n    loop\n  See:\n    REEG ABCD 8 A_Wander\n    loop\n  }\n}\n\nactor StatistFemaleMarine : StatistMarine1 25109\n{\n//$Category Stronghold_StatistNPCs\n  states\n  {\n  Spawn:\n    FEML A 1 A_Look2\n    loop\n  See:\n    FEML ABCD 8 A_Wander\n    loop\n  }\n}\n\n/////////////////////////////\n// STRIFE INTERMAP SCRIPTS //\n/////////////////////////////\n\nactor LtRandyHeit : StatistMarine1 28001\n{\n//$Category Stronghold_StatistNPCs\n    ConversationID 1 //this value will be referenced from in the dialog editor.\n    Translation 2\n    Tag \"$STR_MONSTERTAG_LTRANDYHEIT\"\n}\n\nactor SgtMNiggel : StatistMarine2 28002\n{\n//$Category Stronghold_StatistNPCs\n    ConversationID 2\n    Translation 2\n    Tag \"$STR_MONSTERTAG_SGTMNIGGEL\"\n}\n\nactor ProfDrOelckers : StatistScientist 28003\n{\n//$Category Stronghold_StatistNPCs\n    ConversationID 3\n    Translation 2\n    Tag \"$STR_MONSTERTAG_PROFDROELCKERS\"\n}\n\nactor SgtRowand : StatistMarine1 28004\n{\n//$Category Stronghold_StatistNPCs\n    ConversationID 4\n    Translation 0\n    Tag \"$STR_MONSTERTAG_SGTROWAND\"\n}\n\nactor LTToenail : StatistMarine2 28005\n{\n//$Category Stronghold_StatistNPCs\n    ConversationID 5\n    Translation 0\n    Tag \"$STR_MONSTERTAG_LTTOENAIL\"\n}\n\nactor ProfICTux : StatistScientist 28006\n{\n//$Category Stronghold_StatistNPCs\n    ConversationID 6\n    Translation 0\n    Tag \"$STR_MONSTERTAG_PROFICTUX\"\n}\n\nactor MajorBjoernV : StatistMarine1 28007\n{\n//$Category Stronghold_StatistNPCs\n    ConversationID 7\n    Translation 2\n    speed 0\n    Tag \"$STR_MONSTERTAG_MAJORBJOERNV\"\n    states\n    {\n    Spawn:\n     LEDR A 1 A_Look2\n     loop\n    See:\n     LEDR ABAC 50 A_Wander\n     loop\n    }\n}\n\nactor ProfMikeCutman : StatistScientist 28008\n{\n//$Category Stronghold_StatistNPCs\n    ConversationID 8\n    Translation 0\n    Tag \"$STR_MONSTERTAG_PROFMIKECUTMAN\"\n}\n\nactor SgtJPaddock : StatistMarine5 28009\n{\n//$Category Stronghold_StatistNPCs\n    ConversationID 9\n    Translation 1\n    Tag \"$STR_MONSTERTAG_SGTJPADDOCK\"\n}\n\nactor CmdNickBaker : StatistMarine7 28010\n{\n//$Category Stronghold_StatistNPCs\n    ConversationID 10\n    Translation 2\n    Tag \"$STR_MONSTERTAG_CMDNICKBAKER\"\n}\n\nactor ProfDArchon : StatistScientist 28011\n{\n//$Category Stronghold_StatistNPCs\n    ConversationID 11\n    Translation 0\n    Tag \"$STR_MONSTERTAG_PROFDARCHON\"\n}\n\nactor ColLWMouse : StatistFemaleMarine 28012\n{\n//$Category Stronghold_StatistNPCs\n    ConversationID 12\n    Translation 1\n    Tag \"$STR_MONSTERTAG_COLLWMOUSE\"\n}\n\nactor LtWWeasel : StatistMarine6 28013\n{\n//$Category Stronghold_StatistNPCs\n    ConversationID 13\n    Translation 2\n    Tag \"$STR_MONSTERTAG_LTWWEASEL\"\n}\n\nactor LtSPriestess : StatistFemaleMarine 28014\n{\n//$Category Stronghold_StatistNPCs\n    ConversationID 14\n    Translation 0\n    Tag \"$STR_MONSTERTAG_LTSPRIESTESS\"\n}\n\nactor Leonidas : StatistMarine2 28015\n{\n//$Category Stronghold_StatistNPCs\n    ConversationID 15\n    Tag \"$STR_MONSTERTAG_LEONIDAS\"\n    states\n    {\n    Spawn:\n      TNT1 A 1 A_Look2\n      loop\n    See:\n      TNT1 A 1 A_Wander\n      loop\n  }\n}\n\nactor DrDentz : StatistScientist 28016\n{\n//$Category Stronghold_StatistNPCs\n    ConversationID 16\n    Translation 1\n    Tag \"$STR_MONSTERTAG_DRDENTZ\"\n}\n\nactor BlastHardcheese : StatistMarine7 28017\n{\n//$Category Stronghold_StatistNPCs\n    ConversationID 17\n    Translation 2\n    Tag \"$STR_MONSTERTAG_BLASTHARDCHEESE\"\n}\n\nactor GregTGreat : StatistMarine5 28018\n{\n//$Category Stronghold_StatistNPCs\n    ConversationID 18\n    Translation 1\n    Tag \"$STR_MONSTERTAG_GREGTGREAT\"\n}\n\nactor PrivateGina : StatistFemaleMarine 28019\n{\n//$Category Stronghold_StatistNPCs\n    ConversationID 19\n    Translation 2\n    Tag \"$STR_MONSTERTAG_PRIVATEGINA\"\n}\n\nactor ProfDrPegCOp : StatistScientist 28020\n{\n//$Category Stronghold_StatistNPCs\n    ConversationID 20\n    Translation 0\n    Tag \"$STR_MONSTERTAG_PROFDRPEGCOP\"\n}\n\nactor FemaleScientist : StatistMarine1 28021\n{\n//$Category Stronghold_StatistNPCs\n  Tag \"$STR_MONSTERTAG_STATISTSCIENTIST\"\n  states\n  {\n  Spawn:\n    SCI3 N 1 A_Look2\n    loop\n  See:\n    SCI3 ABCD 8 A_Wander\n    loop\n  }\n}\n\nactor ProfGDragon : FemaleScientist 28022\n{\n//$Category Stronghold_StatistNPCs\n    ConversationID 21\n    Tag \"$STR_MONSTERTAG_PROFGDRAGON\"\n}\n\nactor McKenzie : StatistMarine6 28023\n{\n//$Category Stronghold_StatistNPCs\n    ConversationID 22\n    Translation 1\n    Tag \"$STR_MONSTERTAG_MCKENZIE\"\n}\n\nactor Reinhardt : StatistMarine5 28024\n{\n//$Category Stronghold_StatistNPCs\n    ConversationID 23\n    Translation 0\n    Tag \"$STR_MONSTERTAG_REINHARDT\"\n}\n\nactor Thatcher : StatistMarine2 28025\n{\n//$Category Stronghold_StatistNPCs\n    ConversationID 24\n    Translation 1\n    Tag \"$STR_MONSTERTAG_THATCHER\"\n}\n\nactor Demonslayer : StatistMarine7 28026\n{\n//$Category Stronghold_StatistNPCs\n    ConversationID 25\n    Translation 2\n    Tag \"$STR_MONSTERTAG_DEMONSLAYER\"\n}\n\nactor Shoemaker : StatistMarine2 28027\n{\n//$Category Stronghold_StatistNPCs\n    ConversationID 26\n    Translation 0\n    Tag \"$STR_MONSTERTAG_SHOEMAKER\"\n}\n\nactor LtCarmack : StatistMarine1 28028\n{\n//$Category Stronghold_StatistNPCs\n    ConversationID 27\n    speed 0\n    Tag \"$STR_MONSTERTAG_LTCARMACK\"\n    states\n    {\n    Spawn:\n     LTCR A 1\n     loop\n    }\n}\n\nactor Starscream : StatistMarine7 28029\n{\n//$Category Stronghold_StatistNPCs\n    ConversationID 28\n    Translation 2\n    Tag \"$STR_MONSTERTAG_STARSCREAM\"\n}\n\nactor SgtMOrpheus : StatistMarine7 28030\n{\n//$Category Stronghold_StatistNPCs\n    ConversationID 29\n    Translation 1\n    Tag \"$STR_MONSTERTAG_SGTMORPHEUS\"\n}\n\nactor DrAeonD : StatistMarine1 //No doomednum necessary.\n{\n    ConversationID 30\n    Tag \"$STR_MONSTERTAG_DRAEOND\"\n\tstates\n    {\n    Spawn:\n     LANN A 1\n     loop\n    }\n}\n\nactor StrMetCaptEspio : Inventory { Inventory.MaxAmount 1 +UNDROPPABLE -INVBAR }\n\nactor StrCaptEspio : StatistMarine1 28031\n{\n    //ConversationID 7\n    Speed 0\n    Tag \"$STR_MONSTERTAG_CAPTESPIO\"\n    States\n    {\n      Spawn:\n        LEDR ABAC 50\n        loop\n    }\n}\n\nactor StrMetLtTVappy : Inventory { Inventory.MaxAmount 1 +UNDROPPABLE -INVBAR }\n\nactor StrLtTVappy : StatistMarine1 28032\n{\n    //ConversationID 7\n    Translation \"112:127=208:223\"\n    Speed 0\n    Tag \"$STR_MONSTERTAG_LTTVAPPY\"\n    States\n    {\n      Spawn:\n        PLAY A -1\n        stop\n    }\n}"
      }
    ]
  },
  "maps": [
    {
      "map": "MAP99",
      "title": "MAP99",
      "format": "hexen",
      "stats": {
        "things": 706,
        "linedefs": 28085,
        "sidedefs": 50028,
        "vertices": 29939,
        "sectors": 5969,
        "segs": 63443,
        "ssectors": 21186,
        "nodes": 21185,
        "textures": {
          "PRIC0400": 1,
          "N5META21": 338,
          "PRIC0600": 2,
          "N5TECH12": 10,
          "PRIC0050": 3,
          "N_LTRD05": 38,
          "PD2A": 1,
          "EBAS013": 6,
          "NFCL43GN": 8,
          "NFCL52GR": 1003,
          "NFCL42RD": 25,
          "N_TLGR06": 8,
          "P_CERBER": 1,
          "PRIC0750": 2,
          "P_FORGE": 2,
          "TEKWALL1": 18,
          "ERUST013": 13,
          "TEKWALL4": 352,
          "GRNUM0": 10,
          "FLAT5_4": 123,
          "N_CSPN20": 1,
          "P_HELO": 1,
          "N_MTTK10": 8,
          "CRATOP1": 8,
          "SILVER1": 24,
          "P_CYCLON": 2,
          "TEKWALL6": 88,
          "WARPW4": 32,
          "N_MTTBC2": 26,
          "N5FL14RD": 307,
          "T6ONE": 4,
          "AD0006": 1,
          "N_MTTK01": 470,
          "N_TWGN04": 64,
          "P_STYX": 2,
          "NFSTEP11": 10,
          "N5META31": 225,
          "PANBOOK": 10,
          "DOOR15_2": 3,
          "N_BITS06": 32,
          "NFFT1BR": 1182,
          "PD1A": 1,
          "WARPW1": 2,
          "N5LITE03": 4,
          "N5META09": 1610,
          "ECOMP40": 4,
          "AD0004": 1,
          "LIGRRED": 64,
          "N_BRNZ09": 14,
          "PD4A": 1,
          "PRIC1500": 1,
          "P_CHLOR": 1,
          "P_HERROS": 1,
          "NFCL41RD": 32,
          "N5META16": 5,
          "NFLTRD03": 91,
          "PD3A": 1,
          "N_MTTK30": 1,
          "CRATELIT": 8,
          "N_AFMSH2": 204,
          "DOOR1": 2,
          "P_SPACE": 3,
          "RROCK17": 143,
          "XRCK19": 7,
          "TEKWALL2": 111,
          "PANBORD2": 22,
          "N_GRAY01": 149,
          "TANROCK2": 32,
          "CDOTDOT1": 1,
          "LITE3": 2,
          "LITE5": 40,
          "N5META01": 2,
          "METAL3": 1,
          "N5META07": 282,
          "N5META20": 78,
          "NFRR10GN": 22,
          "PINKI": 2,
          "P_ORMANT": 1,
          "TANROCK3": 225,
          "P_CRIM": 4,
          "METAL": 97,
          "P_JAIL": 1,
          "T6THR": 1,
          "P_PHOTON": 1,
          "ECOMP39": 1,
          "CRATOP2": 2,
          "NFLTWT03": 4,
          "CRATE3": 4,
          "EBAS015": 2,
          "N_CSPN07": 2,
          "N5VTX019": 14,
          "N_MTTK22": 84,
          "N_MTTK07": 22,
          "STEP10": 35,
          "N_MTTK03": 1133,
          "PRIC0300": 4,
          "XLIT012": 12,
          "N5META29": 418,
          "SW1MET2": 2,
          "EDIS014": 1,
          "FLAT1": 468,
          "MONITOR": 2,
          "FLAT22": 2,
          "N_BGBB03": 40,
          "N_GRGN05": 1,
          "CABLES2": 41,
          "ESIGN03": 1,
          "MIDSPACE": 24,
          "N_LTGN03": 10,
          "T6TWO": 4,
          "ECOMP32": 32,
          "AD0007": 1,
          "N_CSPN28": 20,
          "N_MTTK47": 13,
          "N_CSPN11": 7,
          "VADOOR3": 28,
          "VADOOR4": 42,
          "PANBORD1": 14,
          "ADEL_S04": 6,
          "NFLTGN02": 2,
          "REDWALL1": 2,
          "SILVER2": 16,
          "N_MTTK36": 9,
          "EBLACK": 8,
          "ECOMP34": 1,
          "NFFT14RD": 57,
          "TANROCK7": 96,
          "COMPSTA2": 8,
          "N5META24": 24,
          "N_CSPN08": 53,
          "N_TLGR05": 14,
          "DOORTRAK": 125,
          "ESIGN01": 5,
          "INDICATE": 22,
          "LIG2RED": 16,
          "CRATE1": 4,
          "N_MTTK20": 52,
          "EDRHUGE3": 15,
          "COMPBLUE": 1,
          "STONE6": 62,
          "COMPWERD": 20,
          "METAL4": 4,
          "SW1SKULL": 1,
          "F_SKY1": 670,
          "N_MTSV04": 162,
          "N_WARN01": 50,
          "N_CMSN03": 1,
          "P_SWAMP": 3,
          "PIPEWAL2": 65,
          "COMPSPAN": 189,
          "N_MTTK09": 109,
          "ECOMP41": 11,
          "N_TKRD17": 6,
          "ENCYCL1": 1,
          "PRIC0100": 2,
          "N5META43": 3,
          "N5META19": 48,
          "P_SKORP": 3,
          "SW1COMP": 12,
          "N_MTTK15": 14,
          "TOPS": 2,
          "NFLTGNXX": 6,
          "N_BRNZ10": 4,
          "N_CSPN25": 14,
          "N_MTTK08": 59,
          "N_MTTK04": 8,
          "P_MIDNAT": 3,
          "XLIT011": 28,
          "BROWN1": 467,
          "FLAT5_5": 470,
          "COMPTALL": 5,
          "N_MTTK62": 1001,
          "NFLTW05V": 6,
          "NFSPHT01": 7,
          "STEP4": 735,
          "N5META26": 88,
          "BIGDOOR4": 12,
          "EXITSIGN": 2,
          "N5VTX021": 28,
          "N_LTOR03": 12,
          "ICYBNR03": 1,
          "N_BKBG03": 103,
          "DATEC": 1,
          "PANCASE2": 153,
          "MONSTCAM": 1,
          "NFBRWN01": 119,
          "N_MTTK24": 3,
          "X_TBMACH": 4,
          "FLOOR4_1": 166,
          "NFFT22GN": 1,
          "PRIC5000": 1,
          "N_MTTK25": 204,
          "VADOOR1": 46,
          "TELEPTY1": 32,
          "P_NULL": 3,
          "N_MTSH05": 297,
          "WFALL1": 4,
          "N_BRGR12": 363,
          "N5STGN01": 6,
          "PIPEWAL1": 77,
          "ECOMP13": 12,
          "CABLES1": 41,
          "STEP6": 152,
          "N_MTSH04": 1045,
          "PRIC1000": 2,
          "N_CSPN22": 22,
          "QROCK1": 1472,
          "SHAWN2": 195,
          "DOORSTOP": 30,
          "N5BRIK01": 829,
          "N_MTTK05": 725,
          "N5LITE05": 4,
          "BIGAD00": 10,
          "NFLTWT02": 25,
          "P_MARS": 2,
          "N5META15": 5,
          "WWATER": 50,
          "NFCL43GR": 444,
          "P_ROUGER": 2,
          "N5META22": 162,
          "NFLTRD01": 45,
          "N5META08": 140,
          "FLOOR7_1": 45,
          "N_MTSV05": 140,
          "TLITE6_5": 8,
          "P_ABRA": 3,
          "AD0003": 1,
          "CEIL5_1": 9820,
          "NFLTBL03": 1,
          "FLAT23": 6,
          "WARPW2": 32,
          "N_LTYL09": 18,
          "EWAL036": 48,
          "GRASS1": 78,
          "N_BGBB05": 30,
          "N_GRBR07": 361,
          "N_MTWA02": 54,
          "AD0005": 1,
          "NFLTRD02": 105,
          "N_LTMTBN": 2,
          "NFLTOR02": 21,
          "P_MAP": 2,
          "RROCK16": 6,
          "TANROCK5": 60,
          "N_MTTK63": 216,
          "N_CORA01": 1,
          "ESIGN04": 6,
          "N_BGBG03": 591,
          "P_GORGE": 1,
          "SLBRNZ02": 287,
          "NFBRGN01": 11,
          "NFLTYL02": 29,
          "N5META11": 15,
          "VADOOR5": 1,
          "JBOX01": 15,
          "N_MTGT13": 8,
          "2SECS": 2,
          "T6FOR": 2,
          "SPACEMAP": 7,
          "N_CSPN03": 10,
          "CEIL4_2": 66,
          "N_BKSM03": 59,
          "N_TKGR01": 1,
          "EDRHUGE2": 87,
          "DOORHI": 2,
          "ECOMP33": 23,
          "LITE4": 2,
          "ADSW1A": 2,
          "ECOMP35": 1,
          "N5VTX028": 2,
          "NFRR16GN": 24,
          "N_CSPN05": 10,
          "N_MTTK21": 96,
          "DOORTRA2": 60,
          "CEIL5_2": 527,
          "N_MTTK19": 37,
          "N_MTVN10": 206,
          "EDRHUGE1": 33,
          "NFCL42GN": 1,
          "AD0002": 3,
          "NFLTGN03": 13,
          "N_CSPN01": 2,
          "N_LTYL05": 76,
          "CRATINY": 12,
          "N_LTYL03": 10,
          "PRIC0500": 4,
          "PRIC0025": 3,
          "N_LTOR05": 18,
          "ECOMP38": 2,
          "N_WARN06": 4,
          "ICY_HOUS": 2,
          "N_BRNZ12": 214,
          "N_LTGN05": 24,
          "NFCL42GR": 241,
          "N_MTWA04": 4,
          "NFLTOR03": 23,
          "T6FIV": 4,
          "PRIC0200": 3,
          "RROCK03": 592,
          "T6SIX": 8
        }
      },
      "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": true
      },
      "difficulty": {
        "uv_monsters": 0,
        "hmp_monsters": 0,
        "htr_monsters": 0,
        "uv_items": 0,
        "hmp_items": 0,
        "htr_items": 0
      },
      "compatibility": "hexen",
      "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.