Raw model (for completeness)
{
"meta": {
"id": "03d587e4-8b9c-4adb-9c69-f41faf18a87b",
"sha1": "ca4398c759ea3a8095b2318ac7986ad4b72e2c86",
"sha256": "e42fe7125b816c231cbe3dce69493a280ad451a985327e27410584717ede1a22",
"filenames": [
"dndv1.0.pk3"
],
"additional": {
"engines": [
"ZDOOM"
],
"iwad": [],
"filename": null,
"added": "2014-08-24 12:09:56",
"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": "2014-08-24 12:09:56",
"file": {
"type": "PK3",
"size": 31175264,
"url": "https://wadarchive2.nyc3.digitaloceanspaces.com/ca4398c759ea3a8095b2318ac7986ad4b72e2c86/ca4398c759ea3a8095b2318ac7986ad4b72e2c86.pk3.gz",
"corrupt": false
},
"content": {
"counts": {
"endoom": 0,
"graphics": 3,
"lumps": 10951,
"maps": 0,
"palettes": 14
},
"engines_guess": [
"ZDOOM"
]
},
"analysis": {
"title": "dndv1.0",
"description": "This WAD is a large PK3 archive designed for the ZDoom engine, containing no traditional maps but extensive graphical and decorative content with over 10,000 lumps. It features custom decals, animations, and sprite replacements, focusing on atmospheric enhancements rather than gameplay levels. The resource balance and monster profiles are not applicable due to the absence of maps. The theme leans toward fantasy or dungeon motifs suggested by the file naming and decal styles. The WAD is not compatible with vanilla Doom or Boom without ZDoom. It serves as a comprehensive mod resource pack rather than a playable mapset or megawad.",
"authors": [
"Enjay",
"Infirnex",
"Blue Shadow",
"Popsoap",
"TheUltimateDoomer",
"Eriance",
"Kappes Buur",
"Nash",
"Vegeta",
"ijonTichy",
"Daedalus",
"Bloax",
"hnsolo77",
"Jimmy",
"wildweasel",
"NMN",
"Captain Ventris",
"Ghastly Dragon",
"Woolie Wool",
"LoganMTM",
"Tormentor667",
"TerminusEst13",
"TheMightyHeracross",
"Catastrophe",
"icytux",
"ichor",
"Jaeden",
"Sandypaper",
"Vader",
"Xaser",
"Qent",
"Synert",
"Mark Knight",
"James Stanfield"
],
"tags": [
"custom_decals",
"decorative",
"graphics_mod",
"no_maps",
"resource_pack",
"sprite_replacements",
"zd_oom"
],
"origin": "gpt-4.1-mini"
},
"text_files": [
{
"source": "pk3",
"name": "ANIMDEFS.txt",
"contents": "warp2 flat LAVA1\nwarp2 flat LAVA2\nwarp2 flat LAVA3\nwarp2 flat LAVA4"
},
{
"source": "pk3",
"name": "CREDITS.txt",
"contents": "- Weapon sprite credits are in the decorate files.\n\nThanks to:\n\n- Enjay\n- Infirnex,\n- Blue Shadow,\n- Popsoap,\n- TheUltimateDoomer,\n- Eriance,\n- Kappes Buur,\n- Nash,\n- Vegeta,\n- ijonTichy,\n- Daedalus,\n- Bloax,\n- hnsolo77,\n- Jimmy,\n- wildweasel,\n- NMN,\n- Captain Ventris,\n- Ghastly Dragon,\n- Woolie Wool,\n- LoganMTM,\n- Tormentor667,\n- TerminusEst13,\n- TheMightyHeracross,\n- Catastrophe,\n- icytux,\n- ichor,\n- Jaeden,\n- Sandypaper,\n- Vader,\n- Xaser,\n- Qent,\n- Synert,\n- Mark Knight and\n- James Stanfield (Duke4.net, AMC TC) for various sprites and decorates.\n- 3D Realms, Blizzard, Monolith, ID Software, Raven Software for various graphics and sounds."
},
{
"source": "pk3",
"name": "DECALDEF.txt",
"contents": "decal NewPlasmaScorch\n{\n\tpic SCORCH1\n\tshade \"00 00 00\"\n\tx-scale 0.35\n\ty-scale 0.35\n\trandomflipx\n\trandomflipy\n}\n\ndecal NewPlasmaDecal1\n{\n pic BFLRA0\n shade \"08 08 10\"\n\t add 0.9\n\t x-scale 0.15\n\t y-scale 0.15\n\t animator GoAway2\n\t lowerdecal NewPlasmaScorch\n}\n\ndecal NewPlasmaDecal2\n{\n pic BFLRB0\n shade \"08 08 10\"\n\t add 0.9\n\t x-scale 0.15\n\t y-scale 0.15\n\t animator GoAway2\n\t lowerdecal NewPlasmaScorch\n}\n\ndecalgroup NewPlasmaDecal\n{\n\tNewPlasmaDecal1 1\n\tNewPlasmaDecal2 1\n}\n\ngenerator CrackodemonBall CacoScorch\ngenerator Blusoul CacoScorch\n\nDecal RedRailScorchLower1\n{\n\tPic CBALSCR1\n\tShade \"00 00 00\"\n\tX-Scale 0.1\n\tY-Scale 0.1\n\tRandomFlipX\n\tRandomFlipY\n}\n\nDecal RedRailScorchLower2\n{\n\tPic CBALSCR2\n\tShade \"00 00 00\"\n\tX-scale 0.1\n\tY-scale 0.1\n\tRandomFlipX\n\tRandomFlipY\n}\n\nDecalGroup RedRailScorchLower\n{\n\tRedRailScorchLower1 1\n\tRedRailScorchLower2 1\n}\n\nDecal RedRailScorch1\n{\n\tPic CBALSCR1\n\tShade \"56 00 00\"\n\tFullBright\n\tX-Scale 0.2\n\tY-Scale 0.2\n\tAnimator GoAway\n\tLowerDecal RedRailScorchLower\n}\n\nDecal RedRailScorch2\n{\n\tPic CBALSCR2\n\tShade \"56 00 00\"\n\tFullBright\n\tX-Scale 0.2\n\tY-Scale 0.2\n\tAnimator GoAway\n\tLowerDecal RedRailScorchLower\n}\n\nDecalGroup RedRailScorch\n{\n\tRedRailScorch1 1\n\tRedRailScorch2 1\n}"
},
{
"source": "pk3",
"name": "DECORATE.txt",
"contents": "#include \"Actors/Weapons/THRU.txt\"\n#include \"Actors/Weapons/LVL1.txt\"\n#include \"Actors/Weapons/LVL2.txt\"\n#include \"Actors/Weapons/LVL3.txt\"\n#include \"Actors/Weapons/LVL4.txt\"\n#include \"Actors/Weapons/LVL5.txt\"\n#include \"Actors/Weapons/LVL6.txt\"\n#include \"Actors/Weapons/LVL7.txt\"\n#include \"Actors/Weapons/Temp.txt\"\n\n#include \"Actors/Items.txt\"\n#include \"Actors/Misc.txt\"\n#include \"Actors/Gore.txt\"\n#include \"Actors/Player.txt\"\n#include \"Actors/Decorations.txt\"\n\n#include \"Actors/Monsters/Zombieman.txt\"\n#include \"Actors/Monsters/Shotgunguy.txt\"\n#include \"Actors/Monsters/Chaingunguy.txt\"\n#include \"Actors/Monsters/Demon.txt\"\n#include \"Actors/Monsters/Spectre.txt\"\n#include \"Actors/Monsters/Imp.txt\"\n#include \"Actors/Monsters/LostSoul.txt\"\n#include \"Actors/Monsters/Cacodemon.txt\"\n#include \"Actors/Monsters/PainElemental.txt\"\n#include \"Actors/Monsters/Revenant.txt\"\n#include \"Actors/Monsters/HellKnight.txt\"\n#include \"Actors/Monsters/BaronofHell.txt\"\n#include \"Actors/Monsters/Mancubus.txt\"\n#include \"Actors/Monsters/Arachnotron.txt\"\n#include \"Actors/Monsters/ArchVile.txt\"\n#include \"Actors/Monsters/Cyberdemon.txt\"\n#include \"Actors/Monsters/SpiderMastermind.txt\"\n#include \"Actors/Monsters/WolfenSS.txt\""
},
{
"source": "pk3",
"name": "DND.txt",
"contents": "#library \"DND\"\n#include \"zcommon.acs\"\n\n#define MAXPLAYERS 64\n#define MAXWEPS 23\n#define MAXUPG 13\n#define MAXAMMOTYPES 9\n#define MAXTEMPWEPS 8\n#define MAXREWARDS 10\n#define MAXBACKPACK 35 // To reach 400 shells\n#define BASECLIP 50\n\n#define VORTEXMAX 1\n#define TRIPLEMAX 1\n#define BLOODRUNEMAX 1\n#define BLOODRUNETIMER 30\n#define BOOKMAX 1\n#define TALISMANMAX 10\n#define CHANCEPERTALISMAN 2 // percent\n//#define TRIGGERMAX 1\n#define SOLVEMAX 1\n#define STASISMAX 3\n#define FKITMAX 15\n#define NANOCAP 150\n\n#define UPGRADETEXTID 450\n#define SURVIVEICO 500\n#define SURVIVETOPTEXTID 501\n#define SURVIVETEXTID 502\n#define SURVIVEID 503\n#define UPGRADEID 600\n#define P_TIDSTART 1000\n#define RAILINITTID 2000\n#define RAILTIDADD 500\n\n// THUDEFS\n#define USE_HITSCAN_CVAR \"coopbullets_cl_use_hitscan\"\n// TIP BOXES\n#define DND_TIPS \"dnd_cl_tips\"\n\nglobal int 13: useHitscan[];\nglobal int 14: DnDTips[];\n// THRU DEFS END\n\nglobal int 0: MedkitAmount[];\n// The capacities are manually set to prevent a bug where the game can't recognize your updated capacities unless you pick a new backpack up.\n// Formula is: ammo ID * MAXPLAYERS + PlayerNumber = Capacity\n// For example, Bullet has ID 0, so 0 to 63 will be the Bullet capacities of everyone.\n// Then, shell has ID 1, so 64 to 127 will be the shell capacities of everyone.\nglobal int 1: AmmoCapacity[];\nglobal int 2: StatListOpened[];\nglobal int 3: ShieldAmount[];\n\nstr AmmoTypes[MAXAMMOTYPES] = { \"Clip\", \"Shell\", \"RocketAmmo\", \"Cell\", \"Grenades\", \"MISAmmo\", \"Nail\", \"ExplodingShell\", \"Souls\" };\nint InitialCapacity[MAXAMMOTYPES] = { 200, 50, 50, 300, 50, 40, 100, 40, 75 };\nint CapacityPerBackPack[MAXAMMOTYPES] = { 40, 10, 10, 60, 10, 8, 20, 8, 0 };\nint BackpackAmounts[MAXAMMOTYPES] = { 10, 4, 1, 20, 1, 2, 2, 2, 0 };\nstr Upgrades[MAXUPG] = { \"MGPowerUpgrade\", \"ShotgunUpgrade\", \"SSGUpgrade\", \"RocketUpgrade\", \"GrenadeUpgrade\", \"PlasmaUpgrade\", \"RailgunUpgrade\", \"BFGUpgrade\", \"MovementUpgrade\", \"ResistUpgrade\", \"NanobotUpgrade\", \"TemporaryUpgrade\", \"SoulUpgrade\" };\nstr UpgradeText[MAXUPG] = { \"Machinegun Upgrade\", \"Shotgun Upgrade\", \"Super Shotgun Upgrade\", \"Rocket Upgrade\", \"Grenade Upgrade\", \"Plasma Upgrade\", \"Railgun Upgrade\", \"BFGUpgrade\", \"Speed Upgrade\", \"Tenacity Upgrade\", \"Nanobots\", \"Temporal Upgrade\", \"Soul Upgrade\" };\nstr PickupText[2] = { \"\\cgPicked up a stimpack\", \"\\cgPicked up a medikit.\" };\n\nstr UpgradeDetail[MAXUPG] = { \"Spread is reduced by 0.8 and damage increases by 10.\",\n\t\t\t\t\t\t\t \"Spread is reduced by 2.4 and shoots 10 pellets each doing 15 damage.\",\n\t\t\t\t\t\t\t \"Spread is reduced by 0.3 and each pellet does 15 damage.\",\n\t\t\t\t\t\t\t \"Speed is increased by 12 and damage becomes 120-160.\",\n\t\t\t\t\t\t\t \"Explosion damage is increased by 64 and radius by 16.\",\n\t\t\t\t\t\t\t \"Damage becomes 30-45.\",\n\t\t\t\t\t\t\t \"Rail damage increases by 92 for each upgrade.\",\n\t\t\t\t\t\t\t \"Does 500-800 on impact, explodes for 256 damage in a 128 radius and shoots 64 tracers.\",\n\t\t\t\t\t\t\t \"Movement speed increases by 15%.\",\n\t\t\t\t\t\t\t \"You take 15% less damage from anything.\",\n\t\t\t\t\t\t\t \"Nanobots heal you if you're lower than 30+StatBonus hp. Capped at 150 health.\",\n\t\t\t\t\t\t\t \"Ammo taken from temporary weapons increases by 50%.\",\n\t\t\t\t\t\t\t \"Gain souls for demon kills. Also increases the soul cap to 100.\"\n\t\t\t\t\t\t\t};\n\nstr UpgradeNames[MAXUPG] = { \"\\cuMachine gun Power Increased!\\c-\",\n\t\t\t\t\t\t\t \"\\ckShotgun Power Increased!\\c-\",\n\t\t\t\t\t\t\t \"\\cgSuper Shotgun Power Increased!\\c-\",\n\t\t\t\t\t\t\t \"\\ciRocket Launcher Power Increased!\\c-\",\n\t\t\t\t\t\t\t \"Grenade Launcher Power Increased!\\c-\",\n\t\t\t\t\t\t\t \"\\cvPlasma Rifle Power Increased!\\c-\",\n\t\t\t\t\t\t\t \"\\cnRailgun Power Increased!\\c-\",\n\t\t\t\t\t\t\t \"\\cdBFG 9000 Power Increased!\\c-\",\n\t\t\t\t\t\t\t \"\\cqMovement Speed Increased!\\c-\",\n\t\t\t\t\t\t\t \"\\cmDamage Resistance Increased!\\c-\",\n\t\t\t\t\t\t\t \"\\cqNanobots Obtained!\\c-\",\n\t\t\t\t\t\t\t \"\\csTemporal Mastery Acquired!\\c-\",\n\t\t\t\t\t\t\t \"\\ctSoul Stealer!\\c-\"\n\t\t\t\t\t\t };\n\nstr RewardIcon[MAXREWARDS] = { \"BASCA0\",\n\t\t\t\t\t\t\t \"FKITD0\",\n\t\t\t\t\t\t\t \"SALVICO\",\n\t\t\t\t\t\t\t \"SHIELICO\",\n\t\t\t\t\t\t\t \"BRUNICO\",\n\t\t\t\t\t\t\t \"DMGICO\",\n\t\t\t\t\t\t\t \"SHRUA0\",\n\t\t\t\t\t\t\t \"BPAKA0\",\n\t\t\t\t\t\t\t \"BOTDF0\",\n\t\t\t\t\t\t\t \"TALICO\"\n\t\t\t\t\t\t\t //\"TRIGICO\"\n\t\t\t\t\t\t\t };\n\nstr RewardNames[MAXREWARDS] = { \"BasicStatBoost\",\n\t\t\t\t\t\t\t\t\"FieldKit\",\n\t\t\t\t\t\t\t\t\"SalvationSphere\",\n\t\t\t\t\t\t\t\t\"PortableShield\",\n\t\t\t\t\t\t\t\t\"BloodRune\",\n\t\t\t\t\t\t\t\t\"TripleDamage\",\n\t\t\t\t\t\t\t\t\"BladeVortex\",\n\t\t\t\t\t\t\t\t\"NewBackPack\",\n\t\t\t\t\t\t\t\t\"BookOfTheDead\",\n\t\t\t\t\t\t\t\t\"Talisman\"\n\t\t\t\t\t\t\t\t//\"TriggerPower\"\n\t\t\t\t\t\t\t };\n\nstr RewardTextTop[MAXREWARDS] = { \"\t\tSTAT BONUS\",\n\t\t\t\t\t\t\t\t \"\t\tPORTABLE MEDIKIT\",\n\t\t\t\t\t\t\t\t \"\t\tSALVATION\",\n\t\t\t\t\t\t\t\t \"\t\tSHIELD\",\n\t\t\t\t\t\t\t\t \"\t\tBLOODRUNE\",\n\t\t\t\t\t\t\t\t \"\t\tTRIPLE DAMAGE\",\n\t\t\t\t\t\t\t\t \"\t\tBLADE VORTEX\",\n\t\t\t\t\t\t\t\t \"\t\tBACKPACK\",\n\t\t\t\t\t\t\t\t \"\t\tBOOK OF THE DEAD\",\n\t\t\t\t\t\t\t\t \"\t\tTALISMAN OF LUCK\"\n\t\t\t\t\t\t\t\t //\"TRIGGER HAPPY\"\n\t\t\t\t\t\t\t\t};\n\nstr RewardTextBot[MAXREWARDS] = { \"\", // this one is hardcoded as random values\n\t\t\t\t\t\t\t\t \"\\cfYou have been given 5 portable medikits\\n\\cfthat heal 25 health.\",\n\t\t\t\t\t\t\t\t \"\\cfYou have been given a salvation sphere!\\n\\cfHeals 100 hp and teleports to safety.\",\n\t\t\t\t\t\t\t\t \"\\cfYou have been given a portable shield!\\n\\cfProtects from all harm for the next 5 seconds.\",\n\t\t\t\t\t\t\t\t \"\\cfYou have been given a blood rune!\\n\\cfDrain health from damage for 30 seconds.\",\n\t\t\t\t\t\t\t\t \"\\cfYou have been given triple damage!\\n\\cfLasts 15 seconds.\",\n\t\t\t\t\t\t\t\t \"\\cfCreates a ring of blades that damages and\\n\\cfreduces damage taken by 50% for 20 seconds.\",\n\t\t\t\t\t\t\t\t \"\\cfYou have been given a backpack. \\n\\cfAmmo capacities increased.\",\n\t\t\t\t\t\t\t\t \"\\cfYou have been given the book fo the dead.\\n\\cfUse it to release the wrath of the undead.\",\n\t\t\t\t\t\t\t\t \"\\cfYou have been given a talisman of luck.\\n\\cfIncreases your chance of rare drops by 2%.\"\n\t\t\t\t\t\t\t\t //\"You have been given a trigger powerup.\\nYou can fire weapons without\\n using ammo for 15 seconds.\"\n\t\t\t\t\t\t\t\t};\n\nstr RailGunTrails[3] = { \"RedRayTrail\", \"YellowRayTrail\", \"BlueRayTrail\" };\nstr RailGunDamagers[3] = { \"RailDamager_Red\", \"RailDamager_Yellow\", \"RailDamager_Blue\" };\n\nstr TemporaryWeapons[MAXTEMPWEPS] = { \"Sawedoff\", \"Soul Render\", \"SMG\", \"Hellforge Cannon\", \"Bloodfiend Spine\", \"Enforcer Rifle\", \"Venom\" };\nstr TemporaryAmmos[MAXTEMPWEPS] = { \"SawedoffShell\", \"BladeHits\", \"SMGAmmo\", \"IronBalls\", \"BloodAmmo\", \"LaserAmmo\", \"VenomAmmo\" };\n// Shared keys Defs\nint key[6]; //0, 1, 2: R/Y/B card. 3, 4 ,5: R/Y/B skull.\nstr colour[6] = {\"\\cg\", \"\\ck\", \"\\ch\", \"\\cg\", \"\\ck\", \"\\ch\"};\nstr keys[6] = {\"RedCard\", \"YellowCard\", \"BlueCard\", \"RedSkull\", \"YellowSkull\", \"BlueSkull\"};\n// End of Shared keys defs\n\nint PlayerGotWeapon[MAXPLAYERS][MAXWEPS];\nstr Weapons[MAXWEPS] = { \t\t \" Chainsaw \",\n\t\t\t\t\t\t\t\t\t \" Shotgun \",\n\t\t\t\t\t\t\t\t\t \" Super Shotgun \",\n\t\t\t\t\t\t\t\t\t \"Silver Gun\",\n\t\t\t\t\t\t\t\t\t \" Machine gun \",\n\t\t\t\t\t\t\t\t\t \" Chaingun \",\n\t\t\t\t\t\t\t\t\t \"Rocket Launcher\",\n\t\t\t\t\t\t\t\t\t \"Grenade Launcher\",\n\t\t\t\t\t\t\t\t\t \"Heavy Missile Launcher\",\n\t\t\t\t\t\t\t\t\t \"Plasma Rifle\",\n\t\t\t\t\t\t\t\t\t \"BFG 9000\",\n\t\t\t\t\t\t\t\t\t \"Rail gun\",\n\t\t\t\t\t\t\t\t\t \"Nailgun\",\n\t\t\t\t\t\t\t\t\t \"Death Staff\",\n\t\t\t\t\t\t\t\t\t \"Razorfang\",\n\t\t\t\t\t\t\t\t\t \"Sun Staff\",\n\t\t\t\t\t\t\t\t\t \"Sawedoff\",\n\t\t\t\t\t\t\t\t\t \"Soul Render\",\n\t\t\t\t\t\t\t\t\t \"SMG\",\n\t\t\t\t\t\t\t\t\t \"Hellforge Cannon\",\n\t\t\t\t\t\t\t\t\t \"Bloodfiend Spine\",\n\t\t\t\t\t\t\t\t\t \"Enforcer Rifle\",\n\t\t\t\t\t\t\t\t\t \"Venom\"\n\t\t\t\t };\n\nint WeaponSlotNum[MAXWEPS] = { 1, 3, 3, 3, 4, 4, 5, 5, 5, 6, 7, 7, 6, 7, 7, 7, 8, 8, 8, 8, 8, 8 };\n\nstr WeaponImages[MAXWEPS] = { \"CSAWA0\",\n\t\t\t\t\t\t\t\t\t \"SHOTA0\",\n\t\t\t\t\t\t\t\t\t \"SGN2A0\",\n\t\t\t\t\t\t\t\t\t \"EXSGX0\",\n\t\t\t\t\t\t\t\t\t \"WASGA0\",\n\t\t\t\t\t\t\t\t\t \"CHNGA0\",\n\t\t\t\t\t\t\t\t\t \"LAUNA0\",\n\t\t\t\t\t\t\t\t\t \"NGLPA0\",\n\t\t\t\t\t\t\t\t\t \"WMLNA0\",\n\t\t\t\t\t\t\t\t\t \"NRAIE0\",\n\t\t\t\t\t\t\t\t\t \"DEBFA0\",\n\t\t\t\t\t\t\t\t\t \"WRALA0\",\n\t\t\t\t\t\t\t\t\t \"NAIGA0\",\n\t\t\t\t\t\t\t\t\t \"LICICO\",\n\t\t\t\t\t\t\t\t\t \"WRAZA0\",\n\t\t\t\t\t\t\t\t\t \"SUNICO\",\n\t\t\t\t\t\t\t\t\t \"SAWNICO\",\n\t\t\t\t\t\t\t\t\t \"SWOICO\",\n\t\t\t\t\t\t\t\t\t \"MPPUA0\",\n\t\t\t\t\t\t\t\t\t \"WHFCA0\",\n\t\t\t\t\t\t\t\t\t \"WGORA0\",\n\t\t\t\t\t\t\t\t\t \"ENRPA0\",\n\t\t\t\t\t\t\t\t\t \"VENOICO\"\n\t\t\t\t\t\t };\n\nint WeaponImageYAdjust[MAXWEPS] = { 0, 0, 0, 0, 0, 0, 10, 5, 5, 5, 5, 7, -3, 4, 4, 8, 0, 0, 8, 3, 5, 5 };\n\nstr WeaponPickupText[MAXWEPS] = { \"Double the blade, double the fun! \\nTwice as much damage, same firing rate.\",\n\t\t\t\t\t\t\t\t\t \"Typical boomstick, now spreads vertically too.\\n9 pellets, each doing 5-10-15 damage.\\nCan be upgraded.\",\n\t\t\t\t\t\t\t\t\t \"Same old buckshot we all love!\\nCan be upgraded.\",\n\t\t\t\t\t\t\t\t\t \"The explosive shotgun, the best there is.\\nFires 8 pellets, each doing 10-15 on hit.\\nEach pellet does 32-40 damage in a small area.\\nDoes self damage.\",\n\t\t\t\t\t\t\t\t\t \"A slow yet accurate and a reliable weapon.\\nEach bullet does 15 damage.\\nAlt fire reloads.\\nCan be upgraded.\",\n\t\t\t\t\t\t\t\t\t \"Stronger, faster and better than ever!\\nPoor accuracy, but each bullet does 30 damage.\",\n\t\t\t\t\t\t\t\t\t \"A true classic. Just don't blow yourself up.\\nCan be upgraded.\",\n\t\t\t\t\t\t\t\t\t \"Useful for when you can't reach around corners.\\nDoes 80 damage on impact and 96 area damage.\\nLarger explosion area than a rocket.\\nCan be upgraded.\",\n\t\t\t\t\t\t\t\t\t \"Top of the food chain in terms of rockets.\\nShoots two homing rockets each doing 128 damage\\nboth on impact and explosion.\",\n\t\t\t\t\t\t\t\t\t \"Best friend of the trigger happy.\\nCan be upgraded.\",\n\t\t\t\t\t\t\t\t\t \"BFG 9000, highest in the food chain.\\nCan be upgraded.\",\n\t\t\t\t\t\t\t\t\t \"This baby can rip through concrete with ease.\\nEach shot does multiples of 92.\\nCan be upgraded 2 times.\",\n\t\t\t\t\t\t\t\t\t \"UAC's favorite in demon hunting.\\nEach nail does 8-14 damage and rips through.\",\n\t\t\t\t\t\t\t\t\t \"A magical staff, using demon souls as energy.\\nFires meteors of magic, bursting on impact.\\nAlt fire fires 3 columns of fire both on \\nfloor and ceiling that travel and explode in flames.\",\n\t\t\t\t\t\t\t\t\t \"This once was the ribcage of a powerful demon.\\nFires magical bone shards that rip through.\\nAlt fire fires 3 demon shredders to tear down demons.\",\n\t\t\t\t\t\t\t\t\t \"This holy relic was lost in ancient battles.\\nFires sun beams to burn anything.\\nAlt fire channels the very essence of sun\\ncausing a massive meltdown.\",\n\t\t\t\t\t\t\t\t\t \"The sawedoff is a western classic.\\nFires 16 pellets each doing 15 damage.\\n\\cdTemporary Weapon.\",\n\t\t\t\t\t\t\t\t\t \"Soul Render is an unholy melee weapon.\\nEach hit makes the weapon become less durable.\\nAlt fire toggles life drain mode.\\n\\cdTemporary Weapon.\",\n\t\t\t\t\t\t\t\t\t \"A standard UAC submachine gun.\\nEach bullet does 7-21 damage.\\n\\cdTemporary Weapon.\",\n\t\t\t\t\t\t\t\t\t \"The arm-cannon of a Corpulent.\\nShoots metallic cannon balls that split on impact.\\nAlt fire shoots tiny ripping cannon balls.\\n\\cdTemporary Weapon.\",\n\t\t\t\t\t\t\t\t\t \"The spine of a Bloodfiend.\\nShoots tiny explosive pukes.\\nAlt fire changes it to a limited range hitscan.\\n\\cdTemporary Weapon.\",\n\t\t\t\t\t\t\t\t\t \"The rifle of an enforcer. Shoots a laser\\nor two if using alt fire. Ignores shields.\\n\\cdTemporary Weapon.\",\n\t\t\t\t\t\t\t\t\t \"The torso of a Vulgar. Shoots acidic bones.\\nAlt fire shoots bouncing acid bombs.\\n\\cdTemporary Weapon.\"\n\t\t\t\t };\n\n// Checks if you should be receiving that reward or not\nfunction int ValidateReward (int tid, int type)\n{\n\tswitch (type)\n\t{\n\t\tcase 1:\n\t\t\t// FUCK IT MAX\n\t\t\tif(CheckActorInventory(tid, \"FieldKit\") == FKITMAX)\n\t\t\t return 1;\n\t\t\telse\n\t\t\t return 0;\n\t\tbreak;\n\t\tcase 2:\n\t\t\tif(CheckActorInventory(tid, \"SalvationSphere\") == SOLVEMAX)\n\t\t\t return 1;\n\t\t\telse\n\t\t\t return 0;\n\t\tbreak;\n\t\tcase 3:\n\t\t\tif(CheckActorInventory(tid, \"PortableShield\") == STASISMAX)\n\t\t\t return 1;\n\t\t\telse\n\t\t\t return 0;\n\t\tbreak;\n\t\tcase 4:\n\t\t\tif(CheckActorInventory(tid, \"BloodRune\") == BLOODRUNEMAX)\n\t\t\t return 1;\n\t\t\telse\n\t\t\t return 0;\n\t\tbreak;\n\t\tcase 5:\n\t\t\tif(CheckActorInventory(tid, \"TripleDamage\") == TRIPLEMAX)\n\t\t\t return 1;\n\t\t\telse\n\t\t\t return 0;\n\t\tbreak;\n\t\tcase 6:\n\t\t\tif(CheckActorInventory(tid, \"BladeVortex\") == VORTEXMAX)\n\t\t\t return 1;\n\t\t\telse\n\t\t\t return 0;\n\t\tbreak;\n\t\tcase 7:\n\t\t\tif(CheckActorInventory(tid, \"BackpackCounter\") >= MAXBACKPACK)\n\t\t\t return 1;\n\t\t\telse\n\t\t\t return 0;\n\t break;\n\t\tcase 8:\n\t\t\tif(CheckActorInventory(tid, \"BookOfTheDead\") == BOOKMAX)\n\t\t\t return 1;\n\t\t\telse\n\t\t\t return 0;\n\t\tbreak;\n\t\tcase 9:\n\t\t\tif(CheckActorInventory(tid, \"Talisman\") >= TALISMANMAX)\n\t\t\t return 1;\n\t\t\telse\n\t\t\t return 0;\n\t\tbreak;\n\t\t/*\n\t\tcase 8:\n\t\t\tif(CheckActorInventory(tid, \"TriggerPower\") == TRIGGERMAX)\n\t\t\t return 1;\n\t\t\telse\n\t\t\t return 0;\n\t\tbreak;\n\t\t*/\n\t}\n}\n\n// Copied from ZDWiki.\n// Fixed-point version, only works up to 30,000 or so:\nfunction int fsqrt(int number)\n{\n int samples=15; //Samples for accuracy\n\n if (number == 1.0) return 1.0;\n if (number <= 0) return 0;\n int val = samples<<17 + samples<<19; //x*10 = x<<1 + x<<3\n for (int i=0; i<samples; i++)\n val = (val + FixedDiv(number, val)) >> 1;\n\n return val;\n}\n\nfunction int sqrt_z(int number)\n{\n\tif(number <= 3)\n\t{\n\t\tif(number > 0)\n\t\t{\n\t\t\treturn 1;\n\t\t}\n\t\treturn 0;\n\t}\n\n\tint oldAns = number >> 1,\n\t newAns = (oldAns + number / oldAns) >> 1;\n\n\twhile(newAns < oldAns)\n\t{\n\t\toldAns = newAns;\n\t\tnewAns = (oldAns + number / oldAns) >> 1;\n\t}\n\n\treturn oldAns;\n}\n\nfunction int magnitudeThree(int x, int y, int z)\n{\n return sqrt_z(x*x + y*y + z*z);\n}\n\nfunction int fdistance (int tid1, int tid2)\n{\n\tint len;\n\tint y = getactory(tid1) - getactory(tid2);\n\tint x = getactorx(tid1) - getactorx(tid2);\n\tint z = getactorz(tid1) - getactorz(tid2);\n\n\tint ang = vectorangle(x,y);\n\tif(((ang+0.125)%0.5) > 0.25) len = fixeddiv(y, sin(ang));\n\telse len = fixeddiv(x, cos(ang));\n\n\tang = vectorangle(len, z);\n\tif(((ang+0.125)%0.5) > 0.25) len = fixeddiv(z, sin(ang));\n\telse len = fixeddiv(len, cos(ang));\n\n\treturn len;\n}\n\nfunction int GetClosestinTIDRange (int activator, int basetid, int maxtid)\n{\n\tint basedist = fdistance(activator, basetid);\n\tint res = 0;\n\tfor(int i = basetid; i < maxtid; i++)\n\t{\n\t\tif(ThingCount(0, i))\n\t\t{\n\t\t\tif(fdistance(activator, i) < basedist)\n\t\t\t{\n\t\t\t\tbasedist = fdistance(activator, i);\n\t\t\t\tres = i;\n\t\t\t}\n\t\t}\n\t}\n\treturn res;\n}\n\n// Health Kits Script (Used by Portable Medikits as well, ported here)\nScript 818 (int amt, int isspecial)\n{\n\tint hp = GetActorProperty(0, APROP_HEALTH);\n\tint stat = CheckInventory(\"MaxHealthBonusCounter\");\n\tint condition;\n\tif(isspecial == 3)\n\t{\n\t\tGiveInventory(\"HealthBonusX\", 100 + stat - hp);\n\t\tTerminate;\n\t}\n\telse\n\tif(isspecial == 2)\n\t condition = 300 + stat - hp;\n\telse\n\tif(isspecial == 1)\n\t // max for pickup + stat - current hp\n\t condition = 200 + stat - hp;\n\telse\n\t condition = 100 + stat - hp;\n if(condition > amt)\n\t GiveInventory(\"HealthBonusX\", amt);\n else\n\t GiveInventory(\"HealthBonusX\", condition);\n}\n\nScript 819 (int pnum, int type)\n{\n\tif(type)\n\t{\n\t\t// portable kit\n\t\tif(GetActorProperty(0, APROP_HEALTH) < 100+CheckInventory(\"MaxHealthBonusCounter\"))\n\t\t SetResultValue(1);\n\t\telse\n\t\t SetResultValue(0);\n\t}\n\telse\n\t{\n\t\tif(GetActorProperty(0, APROP_HEALTH) < 100+CheckInventory(\"MaxHealthBonusCounter\") && PlayerNumber() == pnum)\n\t\t SetResultValue(1);\n\t\telse\n\t\t SetResultValue(0);\n\t}\n}\n// Health kits end here\n\nScript 898 (int tips) CLIENTSIDE\n{\n if(PlayerNumber() != ConsolePlayerNumber()) Terminate;\n\n if(tips)\n Log(s:\"Weapon tip boxes off\");\n else\n Log(s:\"Weapon tip boxes on\");\n\n ConsoleCommand(StrParam(s:\"set \", s:DND_TIPS, s:\" \", d:tips));\n ConsoleCommand(StrParam(s:\"archivecvar \", s:DND_TIPS));\n}\n\nScript 899 (int tips) NET\n{\n tips |= !DnDTips[PlayerNumber()];\n\n ACS_ExecuteAlways(898, 0, tips);\n DnDTips[PlayerNumber()] = tips;\n}\n\n// Upgrades/Stats board\nScript 900 (void) NET CLIENTSIDE\n{\n\tint i;\n\tif(StatListOpened[ActivatorTID()])\n\t{\n\t LocalAmbientSound(\"menu/clear\",127);\n\t\tfor(i = 0; i <= MAXUPG+5; i++)\n\t\t HudMessage(s:\"\"; HUDMSG_PLAIN, UPGRADEID+i, -1, 200.0, 2.1, 0.0, 0.0);\n\t\tStatListOpened[ActivatorTID()] = 0;\n\t}\n\telse\n\t{\n\t\tint sw = CheckInventory(\" Chaingun \") + CheckInventory(\"Silver Gun\") + CheckInventory(\"Heavy Missile Launcher\") + CheckInventory(\"Nailgun\") + CheckInventory(\"Rail Gun\") + CheckInventory(\"Death Staff\") + CheckInventory(\"RazorFang\");\n\t\tSetHudSize(800, 600, 1);\n\t\tSetFont(\"BIGFONT\");\n\t\tHudMessage(s: \"CURRENT UPGRADES\"; HUDMSG_PLAIN, UPGRADEID, CR_GOLD, 400.4, 2.1, 0.0, 0.0);\n\t\tSetFont(\"SMALLFONT\");\n\t\tHudMessage(s:\"\\cdStat Bonus: \\cg\", d:CheckInventory(\"MaxHealthBonusCounter\"), s:\"\\c-/\", d:CheckInventory(\"MaxArmorBonusCounter\"); HUDMSG_PLAIN, UPGRADEID+1, CR_WHITE, 30.1, 60.1, 0.0, 0.0);\n\t\tHudMessage(s:\"\\cdSecret Weapons: \\c-\", d:sw; HUDMSG_PLAIN, UPGRADEID+2, CR_WHITE, 200.1, 60.1, 0.0, 0.0);\n//\t\tHudMessage(s:\"\\cdLives Left: \\c-\", d:CheckInventory(\"CurrentLives\"); HUDMSG_PLAIN, UPGRADEID+3, CR_WHITE, 370.1, 60.1, 0.0, 0.0);\n\t\tHudMessage(s:\"\\cdLives Left: \\c-\", d:GetPlayerLivesLeft(PlayerNumber()); HUDMSG_PLAIN, UPGRADEID+3, CR_WHITE, 370.1, 60.1, 0.0, 0.0);\n\t\tHudMessage(s:\"\\cdLuck: \\c-\", d:CheckInventory(\"Talisman\")*CHANCEPERTALISMAN, s:\"%\"; HUDMSG_PLAIN, UPGRADEID+4, CR_WHITE, 540.1, 60.1, 0.0, 0.0);\n\t\tfor(i = 0; i < MAXUPG; i++)\n\t\t{\n\t\t\tif(!CheckInventory(Upgrades[i]))\n\t\t\t\tHudMessage(s:\"\\cj*\\c- \", s:UpgradeText[i], s:\": \", s:UpgradeDetail[i]; HUDMSG_PLAIN, UPGRADEID+i+5, CR_RED, 30.1, (92.1+(32.0*i)), 0.0, 0.0);\n\t\t\telse\n\t\t\t{\n\t\t\t\tHudMessage(s:\"\\cv*\\c- \", s:UpgradeText[i], s:\": \", s:UpgradeDetail[i]; HUDMSG_PLAIN, UPGRADEID+i+5, CR_GREEN, 30.1, (92.1+(32.0*i)), 0.0, 0.0);\n\t\t\t}\n\t\t}\n\t\tStatListOpened[ActivatorTID()] = 1;\n\t\tLocalAmbientSound(\"menu/activate\",127);\n\t}\n}\n\n// THRU BULLETS\nscript 901 (int switchToHitscan) NET {\n switchToHitscan |= !useHitscan[PlayerNumber()];\n if(switchToHitscan)\n TakeInventory(\"UseCoopBullets\", 1);\n else\n GiveInventory(\"UseCoopBullets\", 1);\n\n ACS_ExecuteAlways(902, 0, switchToHitscan);\n useHitscan[PlayerNumber()] = switchToHitscan;\n}\n\nscript 902 (int switchToHitscan) CLIENTSIDE {\n if(PlayerNumber() != ConsolePlayerNumber()) Terminate;\n\n if(switchToHitscan)\n Log(l:\"COOPBULLETSOFF\");\n else\n Log(l:\"COOPBULLETSON\");\n\n ConsoleCommand(StrParam(s:\"set \", s:USE_HITSCAN_CVAR, s:\" \", d:switchToHitscan));\n ConsoleCommand(StrParam(s:\"archivecvar \", s:USE_HITSCAN_CVAR));\n}\n\nscript 903 ENTER CLIENTSIDE {\n if(ConsolePlayerNumber() != PlayerNumber()) Terminate;\n if(GetCVar(USE_HITSCAN_CVAR))\n ConsoleCommand(StrParam(s:\"puke -\", d:901, s:\" 1\"));\n if(GetCVar(DND_TIPS))\n ConsoleCommand(StrParam(s:\"puke -\", d:899, s:\" 1\"));\n}\n// END OF THRU BULLETS\n\n// Form the blade vortex\nScript 974 (int radius)\n{\n\tint tid = ActivatorTID(); // Owner TID\n\n\tfor(int m = 0; m < 16; m++)\n\t\tThing_Remove(tid+16*((tid+1)%100)+m);\n\n\tint cx, cy, cz;\n\tcz = GetActorZ(tid) + 26.125;\n\tint pang = GetActorAngle(tid) >> 8;\n\n\t// i goes to 16, pang += 16 to complete 256, 360 degrees of doom.\n\tfor(int i = 0; i < 16; i++)\n\t{\n\t\tcx = GetActorX(tid) + radius*cos(pang<<8);\n\t\tcy = GetActorY(tid) + radius*sin(pang<<8);\n\t\tpang += 16;\n\t\tSpawn(\"VortexBlade\", cx, cy, cz, tid+16*((tid+1)%100)+i, 0); // Basically, first 1032 are for playernum 0, then a 32 is added and it becomes 1064 etc... Max Value is 3144. (For 64th player)\n\t}\n\n\tACS_executeAlways(975, 0, tid, pang, radius); // Align coords\n}\n\nScript 975 (int tid, int pang, int radius) // Constantly rotate the ring\n{\n\t// Create the phase\n\tstatic int angadd;\n\tif(!CheckActorInventory(tid, \"VortexTimer\") || GetActorProperty(tid, APROP_HEALTH) <= 0)\n\t{\n\t\tfor(int m = 0; m < 16; m++)\n\t\t\tThing_Remove(tid+16*((tid+1)%100)+m);\n\t\tangadd = 0;\n\t\tTerminate;\n\t}\n\tint cx, cy;\n\tint cz = GetActorZ(tid) + 26.125;\n\n\tfor(int i = 0; i < 16; i++)\n\t{\n\t\tpang += 16;\n\t\tcx = GetActorX(tid) + radius*cos((pang+angadd)<<8);\n\t\tcy = GetActorY(tid) + radius*sin((pang+angadd)<<8);\n\t\tSetActorPosition(tid+16*((tid+1)%100)+i, cx, cy, cz, 0);\n\t}\n\tangadd += 4;\n\tDelay(2);\n\tRestart;\n}\n\n// Weapon pickup detecting\nScript 976 ENTER CLIENTSIDE\n{\n\tint i = 0;\n\twhile(i < MAXWEPS)\n\t{\n\t\tif(CheckInventory(Weapons[i]) == 1 && PlayerGotWeapon[PlayerNumber()][i] == 0)\n\t\t{\n\t\t\tPlayerGotWeapon[PlayerNumber()][i] = 1;\n\t\t\tif(!GetCVar(DND_TIPS))\n\t\t\t ACS_ExecuteAlways(977, 0, i);\n\t\t}\n\t\ti++;\n\t}\n\tDelay(5);\n\tRestart;\n}\n\n// Weapon tip display\nScript 977 (int weapnum) CLIENTSIDE\n{\n\tif(ConsolePlayerNumber() != PlayerNumber())\n\t Terminate;\n\tLocalAmbientSound(\"Weapon/Popup\", 127);\n\tSetHudSize(640, 480, 1);\n\tSetFont(\"MSGBOX2\");\n\tHudMessage(s:\"A\"; HUDMSG_FADEINOUT, SURVIVEID, CR_UNTRANSLATED, 515.0, 70.0, 4.0, 1.0, 1.0);\n\tSetFont(WeaponImages[weapnum]);\n\tHudMessage(s:\"A\"; HUDMSG_FADEINOUT, SURVIVEICO, CR_UNTRANSLATED, 545.0, 30.0 + (WeaponImageYAdjust[weapnum])*1.0, 4.0, 1.0, 1.0);\n\tSetFont(\"OBJFONT\");\n\tif(weapnum == 22) // some weird bcc bug again, causing nothing to appear\n\t HudMessage(s:\"8\"; HUDMSG_FADEINOUT, SURVIVETOPTEXTID, CR_GOLD, 416.0, 18.0, 4.0, 1.0, 1.0);\n\telse\n\t HudMessage(d:WeaponSlotNum[weapnum]; HUDMSG_FADEINOUT, SURVIVETOPTEXTID, CR_GOLD, 416.0, 18.0, 4.0, 1.0, 1.0);\n\n\tSetHudSize(960, 600, 1);\n\tHudMessage(s:WeaponPickupText[weapnum]; HUDMSG_FADEINOUT, SURVIVETEXTID, CR_WHITE, 780.0, 85.0, 4.0, 1.0, 1.0);\n}\n\n// Allow Uber weapon pickup\nScript 978 (void)\n{\n\tif(CheckInventory(\"Death Staff\") || CheckInventory(\"Razorfang\") || CheckInventory(\"Sun Staff\"))\n\t SetResultValue(1);\n\telse\n\t SetResultValue(0);\n}\n\n// Shared Keys by Synert\nscript 979 ENTER //give keys\n{\n\twhile(PlayerInGame(PlayerNumber()))\n\t{\n\t\tfor(int lol = 0; lol < 6; lol++)\n\t\t{\n\t\t\tif(key[lol] == 1)\n\t\t\t GiveInventory(keys[lol], 1);\n\t\t}\n\t\tdelay(10);\n\t}\n}\n\nscript 980 (int a) // picked up a key\n{\n\tif(!key[a])\n\t{\n\t\tHudMessageBold(s:\"\\n\\n\\n\",n:0,s:\"\\c* has picked up the \",s:colour[a],s:keys[a],s:\"\\c*!\"; HUDMSG_FADEOUT, 901, CR_GOLD, 0.5, 0.4, 5.0, 0.5);\n\t}\n\tkey[a] = 1;\n}\n\n// because I noticed, BCC is fucking up the hudmessages to permanently stay up with hudmsg_log in them...\nScript 981 (int a) CLIENTSIDE\n{\n\tLog(s:\"\\n\\n\\n\",n:0,s:\"\\c* has picked up the \",s:colour[a],s:keys[a],s:\"\\c*!\");\n}\n// End of shared keys\n\n// Script for Bloodseeker\nScript 982 (void)\n{\n\tSetActivatorToTarget(0);\n\tif(GetActorProperty(0, APROP_HEALTH) <= 50+CheckInventory(\"MaxHealthBonusCounter\")/2)\n\t SetResultValue(1);\n\telse\n\t SetResultValue(0);\n}\n\n// Calculate chance of item drop, drop if needed (out of 100)\nScript 983 (int basechance)\n{\n\tSetActivatorToTarget(0);\n\tint dropchance = random(1, 100);\n//\tprintbold(s:\"Current Chance: \", d:CheckInventory(\"Talisman\")*CHANCEPERTALISMAN+basechance);\n\tif((CheckInventory(\"Talisman\")*CHANCEPERTALISMAN+basechance) >= dropchance)\n\t SetResultValue(1);\n\telse\n\t SetResultValue(0);\n}\n\n// Set a TID before the initiation of the rail trails\nScript 984 (void)\n{\n\tThing_ChangeTID(0, RAILINITTID);\n\tSetactivatorToTarget(RAILINITTID);\n\tint newtid = ActivatorTID();\n\tSetActivator(RAILINITTID);\n\tThing_ChangeTID(RAILINITTID, newtid+RAILTIDADD);\n\t// changed TID\n\tint tid = ActivatorTID();\n}\n\n// Puts the necessary actors for railgun (Original by ijonTichy, edited)\nScript 985 (int actortype, int actortid, int density)\n{\n int plX; int plY; int plZ;\n int grX; int grY; int grZ;\n int vX; int vY; int vZ;\n int nX; int nY; int nZ;\n int bX; int bY; int bZ;\n int magnitude;\n int pointCount;\n int pointOffset;\n\tint ptid = actortid-RAILTIDADD;\n plX = GetActorX(ptid); grX = GetActorX(actortid);\n plY = GetActorY(ptid); grY = GetActorY(actortid);\n plZ = GetActorZ(ptid)+32.0; grZ = GetActorZ(actortid);\n vX = grX - plX; vY = grY - plY; vZ = grZ - plZ;\n\n magnitude = magnitudeThree(vX >> 16, vY >> 16, vZ >> 16);\n\n pointCount = magnitude / density;\n pointOffset = magnitude - (pointCount * density);\n\n if (magnitude != 0)\n {\n nX = vX / magnitude; nY = vY / magnitude; nZ = vZ / magnitude;\n\n int i; int j;\n for (i = 1; i < pointCount; i++)\n {\n j = (i * density) + pointOffset;\n\n bX = (nX * j) + plX;\n bY = (nY * j) + plY;\n bZ = (nZ * j) + plZ;\n\n Spawn(RailGunTrails[actortype], bX, bY, bZ);\n\t\t\tSpawn(RailGunDamagers[actortype], bX, bY, bZ);\n }\n }\n}\n\n// Pickup check for the temporary weapons\nScript 986 (int wepnum)\n{\n\tint t = 0;\n\tfor(int i = 0; i < MAXTEMPWEPS; i++)\n\t{\n\t // if I'm trying to pickup a weapon I already have\n\t\tif(i == wepnum)\n\t\t{\n\t\t\tif(CheckInventory(TemporaryAmmos[i]) == GetAmmoCapacity(TemporaryAmmos[i]))\n\t\t\t t++;\n\t\t}\n\t\telse\n\t if(CheckInventory(TemporaryWeapons[i]))\n\t t++;\n\t}\n\tif(t)\n\t SetResultValue(0);\n\telse\n\t SetResultValue(1);\n}\n\nScript 987 RESPAWN\n{\n\tThing_ChangeTID(0, P_TIDSTART+PlayerNumber());\n\tif(CheckInventory(\"CurrentLives\"))\n\t TakeInventory(\"CurrentLives\", 1);\n\telse\n\t{\n\t\t// After tests, it enters this block when you die and respawn after losing all lives ie. round restarted. Safer than Death script.\n\t\tMedkitAmount[ActivatorTID()] = 0;\n\t\tShieldAmount[ActivatorTID()] = 0;\n\t\tfor(int j = 0; j < MAXAMMOTYPES; j++)\n\t\t AmmoCapacity[j*MAXPLAYERS+ActivatorTID()-P_TIDSTART] = 0;\n\t}\n}\n\n// Save the stuff to the console\nScript 988 (int num, int type) CLIENTSIDE\n{\n\tif(ConsolePlayerNumber() != PlayerNumber())\n\t Terminate;\n\tSetFont(\"BIGFONT\");\n\tif(!type)\n\t{\n\t\tHudMessage(s:UpgradeNames[num]; HUDMSG_FADEINOUT, UPGRADETEXTID, -1, 0.5, 0.15, 2.0, 0.5, 0.5);\n\t\tLog(s:UpgradeNames[num]);\n\t}\n\telse\n\t\tLog(s:RewardTextBot[num]);\n}\n\n// Clear upon leaving\nScript 989 (int pnum) DISCONNECT\n{\n\tMedkitAmount[pnum] = 0;\n\tShieldAmount[ActivatorTID()] = 0;\n\tStatListOpened[pnum] = 0;\n\tfor(int j = 0; j < MAXAMMOTYPES; j++)\n\t AmmoCapacity[j*MAXPLAYERS+pnum-P_TIDSTART] = 0;\n}\n\n// End of level rewards check\nScript 990 UNLOADING\n{\n\tfor(int i = 0; i < MAXPLAYERS; i++)\n\t{\n\t if(GetActorProperty(P_TIDSTART+i, APROP_HEALTH) > 0)\n\t\t GiveActorInventory(P_TIDSTART+i, \"LevelToken\", 1);\n//\t\tif(CheckActorInventory(P_TIDSTART+i, \"FieldKit\") > 0)\n\t\t MedkitAmount[P_TIDSTART+i] = CheckActorInventory(P_TIDSTART+i, \"FieldKit\");\n//\t\tif(CheckActorInventory(P_TIDSTART+i, \"PortableShield\") > 0)\n\t\t ShieldAmount[P_TIDSTART+i] = CheckActorInventory(P_TIDSTART+i, \"PortableShield\");\n\t}\n\n\tfor(int j = 0; j < MAXAMMOTYPES; j++)\n\t for(int k = 0; k < MAXPLAYERS; k++)\n\t {\n\t // set so that ammo capacity can return a proper value\n\t SetActivator(P_TIDSTART+k);\n\t AmmoCapacity[j*MAXPLAYERS+k] = GetAmmoCapacity(AmmoTypes[j]);\n\t }\n}\n\n// End of level rewards and a few other things\nScript 991 ENTER\n{\n\tThing_ChangeTID(0, P_TIDSTART+PlayerNumber());\n\tif(MedkitAmount[P_TIDSTART+PlayerNumber()] > 1)\n\t\tGiveInventory(\"FieldKit\", MedkitAmount[P_TIDSTART+PlayerNumber()]-1);\n\tif(ShieldAmount[P_TIDSTART+PlayerNumber()] > 1)\n\t\tGiveInventory(\"PortableShield\", ShieldAmount[P_TIDSTART+PlayerNumber()]-1);\n\n\t// Checks if we should set the lives to the inventory or not\n\tif(CheckInventory(\"SetMyLives\"))\n\t{\n\t\tGiveInventory(\"CurrentLives\", GetCvar(\"sv_maxlives\")-1);\n\t\tTakeInventory(\"SetMyLives\", 1);\n\t}\n\n\t// Set the ammo capacity\n\tfor(int j = 0; j < MAXAMMOTYPES; j++)\n\t // If not set to a value before, set it to initial\n\t if(AmmoCapacity[j*MAXPLAYERS+PlayerNumber()] == 0)\n\t\tAmmoCapacity[j*MAXPLAYERS+PlayerNumber()] = InitialCapacity[j];\n\t else\n\t SetAmmoCapacity(AmmoTypes[j], AmmoCapacity[j*MAXPLAYERS+PlayerNumber()]);\n\n\tif(CheckInventory(\"LevelToken\"))\n\t{\n\t\tint reward;\n\t\tdo\n\t\t{\n\t\t\treward = random(0, MAXREWARDS-1);\n\t\t} while(ValidateReward(ActivatorTID(), reward));\n\n\t\tTakeInventory(\"LevelToken\", 1);\n\t\tGiveInventory(\"RoundsSurvived\", 1);\n\t\tSetHudSize(640, 480, 1);\n\t\tSetFont(\"MSGBOXX\");\n\t\tHudMessage(s:\"A\"; HUDMSG_FADEINOUT, SURVIVEID, CR_UNTRANSLATED, 515.0, 70.0, 2.0, 1.0, 1.0);\n\t\tSetFont(RewardIcon[reward]);\n\t\tHudMessage(s:\"A\"; HUDMSG_FADEINOUT, SURVIVEICO, CR_UNTRANSLATED, 420.0, 42.0, 2.0, 1.0, 1.0);\n\t\tSetHudSize(960, 600, 1);\n\t\tSetFont(\"OBJFONT\");\n\t\t// 0 is hardcoded, which is the stat bonus\n\t\tif(reward)\n\t\t{\n\t\t\tHudMessage(s:RewardTextTop[reward]; HUDMSG_FADEINOUT, SURVIVETOPTEXTID, CR_CYAN, 750.0, 24.0, 2.0, 1.0, 1.0);\n\t\t\tHudMessage(s:RewardTextBot[reward]; HUDMSG_FADEINOUT, SURVIVETEXTID, CR_WHITE, 780.0, 72.0, 2.0, 1.0, 1.0);\n\t\t\tACS_ExecuteAlways(988, 0, reward, 1);\n\t\t}\n\t\tswitch (reward)\n\t\t{\n\t\t\tcase 0:\n\t\t\t\tint surv = CheckInventory(\"RoundsSurvived\");\n\t\t\t\tint pt = 1;\n\t\t\t\tif(surv > 1)\n\t\t\t\t pt = random(1, surv);\n\t\t\t\tGiveInventory(\"MaxArmorBonusNew\", pt);\n\t\t\t\tGiveInventory(\"MaxHealthBonusNew\", pt);\n\t\t\t\tGiveInventory(\"MaxHealthBonusCounter\", pt);\n\t\t\t\tGiveInventory(\"MaxArmorBonusCounter\", pt);\n\t\t\t\tHudMessage(s:\"You have been rewarded with a stat boost of: \\cd\", d:pt, s:\"\\c-!\"; HUDMSG_FADEINOUT, SURVIVETEXTID, CR_WHITE, 780.0, 72.0, 2.0, 1.0, 1.0);\n\t\t\tbreak;\n\t\t\tcase 1:\n\t\t\t\tGiveInventory(\"FieldKit\", 5);\n\t\t\tbreak;\n\t\t\tcase 2:\n\t\t\t\tGiveInventory(\"SalvationSphere\", 1);\n\t\t\tbreak;\n\t\t\tcase 3:\n\t\t\t\tGiveInventory(\"PortableShield\", 1);\n\t\t\tbreak;\n\t\t\tcase 4:\n\t\t\t\tGiveInventory(\"BloodRune\", 1);\n\t\t\tbreak;\n\t\t\tcase 5:\n\t\t\t\tGiveInventory(\"TripleDamage\", 1);\n\t\t\tbreak;\n\t\t\tcase 6:\n\t\t\t\tGiveInventory(\"BladeVortex\", 1);\n\t\t\tbreak;\n\t\t\tcase 7:\n\t\t\t\tACS_ExecuteAlways(996, 0);\n\t\t\tbreak;\n\t\t\tcase 8:\n\t\t\t // GiveInventory(\"TriggerPower\", 1);\n\t\t\t\tGiveInventory(\"BookOfTheDead\", 1);\n\t\t\tbreak;\n\t\t\tcase 9:\n\t\t\t\tGiveInventory(\"Talisman\", 1);\n\t\t\tbreak;\n\t\t}\n\t\tLocalAmbientSound(\"Bonus/Received\", 127);\n\t}\n}\n\n// Control for ammo capacity bug\nScript 992 (int t)\n{\n\tif(t == 0)\n\t{\n\t\tif((CheckInventory(\"Shell\") == InitialCapacity[1]+CapacityPerBackPack[1]*CheckInventory(\"BackPackCounter\")) && (CheckInventory(\"ExplodingShell\") == InitialCapacity[7]+CapacityPerBackPack[7]*CheckInventory(\"BackPackCounter\")))\n\t\t SetResultValue(1);\n\t\telse\n\t\t SetResultValue(0);\n\t}\n\telse\n\tif(t == 1)\n\t{\n\t\tif((CheckInventory(\"RocketAmmo\") == InitialCapacity[2]+CapacityPerBackPack[2]*CheckInventory(\"BackPackCounter\")) && (CheckInventory(\"Grenades\") == InitialCapacity[4]+CapacityPerBackPack[4]*CheckInventory(\"BackPackCounter\")) && (CheckInventory(\"MISAmmo\") == InitialCapacity[5]+CapacityPerBackPack[5]*CheckInventory(\"BackPackCounter\")))\n\t\t SetResultValue(1);\n\t\telse\n\t\t SetResultValue(0);\n\t}\n\telse\n\tif(t == 2)\n\t{\n\t\tif((CheckInventory(\"Cell\") == InitialCapacity[3]+CapacityPerBackPack[3]*CheckInventory(\"BackPackCounter\")) && (CheckInventory(\"Nail\") == InitialCapacity[6]+CapacityPerBackPack[6]*CheckInventory(\"BackPackCounter\")))\n\t\t SetResultValue(1);\n\t\telse\n\t\t SetResultValue(0);\n\t}\n}\n\n// Upgrade giver\nScript 993 (int u)\n{\n\tGiveInventory(Upgrades[u], 1);\n if(u == 8)\n\t SetActorProperty(0, APROP_SPEED, 1.15);\n\telse\n\tif(u == 9)\n\t GiveInventory(\"Resist\", 1);\n\telse\n\tif(u == 12)\n\t SetAmmoCapacity(\"Souls\", 100);\n}\n\n// Pickup check for backpacks\nScript 994 (void)\n{\n\tif(GetAmmoCapacity(\"Shell\") != 400)\n\t SetResultValue(1);\n\telse\n\t SetResultValue(0);\n}\n\n// Custom Rune based Powerup script\nScript 995 (int power)\n{\n//\tif(!power)\n//\t{\n\t\tActivatorSound(\"items/bloodrun\", 127);\n\t\tGiveInventory(\"RuneDrain\", 1);\n\t\tGiveInventory(\"FakeBloodPower\", 1);\n\t\tfor(int i = 0; i < BLOODRUNETIMER; i++)\n\t\t\tdelay(35);\n\t\tTakeInventory(\"RuneDrain\", 1);\n//\t}\n}\n\n// Backpack script\nScript 996 (int type)\n{\n\tfor(int j = 0; j < MAXAMMOTYPES; j++)\n\t{\n\t SetAmmoCapacity(AmmoTypes[j], GetAmmoCapacity(AmmoTypes[j])+CapacityPerBackpack[j]);\n\t\tGiveInventory(AmmoTypes[j], BackPackAmounts[j]);\n\t}\n\tGiveInventory(\"BackpackCounter\", 1);\n\t// Reduce if over the limits\n\tif(GetAmmoCapacity(\"Shell\") > 400)\n\t{\n\t\tSetAmmoCapacity(\"Clip\", 1600);\n\t\tSetAmmoCapacity(\"MISAmmo\", 320);\n\t\tSetAmmoCapacity(\"Shell\", 400);\n\t\tSetAmmoCapacity(\"RocketAmmo\", 400);\n\t\tSetAmmoCapacity(\"Cell\", 2400);\n\t\tSetAmmoCapacity(\"Grenades\", 400);\n\t\tSetAmmoCapacity(\"Nail\", 800);\n\t\tSetAmmoCapacity(\"ExplodingShell\", 320);\n\t}\n}\n\n// Stat boost item\nScript 997 (void)\n{\n\tGiveInventory(\"MaxArmorBonusNew\", 1);\n\tGiveInventory(\"MaxHealthBonusNew\", 1);\n\tGiveInventory(\"MaxHealthBonusCounter\", 1);\n\tGiveInventory(\"MaxArmorBonusCounter\", 1);\n}\n\n// reload script\nScript 998 (void)\n{\n\tif(CheckInventory(\"Clip\") < BASECLIP)\n\t{\n\t\tint prev = CheckInventory(\"Clip\");\n\t\tTakeInventory(\"Clip\", BASECLIP-CheckInventory(\"MGClip\"));\n\t\tGiveInventory(\"MGClip\", prev);\n\t}\n\telse\n\t{\n\t\tTakeInventory(\"Clip\", BASECLIP-CheckInventory(\"MGClip\"));\n\t\tGiveInventory(\"MGClip\", BASECLIP-CheckInventory(\"MGClip\"));\n\t}\n}\n\n// Nanobots\nScript 999 ENTER\n{\n\tif(CheckInventory(\"NanobotUpgrade\"))\n\t{\n\t\tint hp = GetActorProperty(0, APROP_HEALTH);\n\t\tif(hp < NANOCAP && hp < 30+CheckInventory(\"MaxHealthBonusCounter\"))\n\t\t{\n\t\t\tif(hp > 28+CheckInventory(\"MaxHealthBonusCounter\") || hp == NANOCAP-1)\n\t\t\t GiveInventory(\"HealthBonusX\", 1);\n\t\t\telse\n\t\t GiveInventory(\"HealthBonusX\", 2);\n\t\t\tLocalAmbientSound(\"misc/i_pkup\",127);\n\t\t\tfadeto(32, 32, 128, 0.03, 0.0);\n\t\t\tDelay(5);\n\t\t\tfadeto(32, 32, 128, 0.0, 0.0);\n\t\t}\n\t}\n\tDelay(30);\n\tRestart;\n}"
},
{
"source": "pk3",
"name": "KEYCONF.txt",
"contents": "clearplayerclasses\n addplayerclass TheDoomGuy\n\nAddKeySection \"DnD Keys\" DNDKEYS\n\tAddMenuKey \"Display Upgrades\" upgs\n\tAlias upgs \"Puke 900\"\n\tAddMenuKey \"Toggle Thru-Bullets\" thru\n\tAlias thru \"Puke 901\"\n\tAddMenuKey \"Toggle Weapon Tip Boxes\" tips\n\tAlias tips \"Puke 899\""
},
{
"source": "pk3",
"name": "language.txt",
"contents": "[en enu default]\nCOOPBULLETSON = \"Switched to thru-bullets\";\nCOOPBULLETSOFF = \"Switched to hitscan\";"
},
{
"source": "pk3",
"name": "LOCKDEFS.txt",
"contents": "CLEARLOCKS\n\nLock 1\n{\n\tRedCard\n\tMessage \"$PD_REDC\"\n\tRemoteMessage \"$PD_REDCO\"\n\tMapcolor 255 0 0\n\tLockedSound \"keys/nokeycard\"\n}\n\nLock 2 Doom\n{\n\tBlueCard\n\tMessage \"$PD_BLUEC\"\n\tRemoteMessage \"$PD_BLUECO\"\n\tMapcolor 0 0 255\n\tLockedSound \"keys/nokeycard\"\n}\n\nLock 3 Doom\n{\n\tYellowCard\n\tMessage \"$PD_YELLOWC\"\n\tRemoteMessage \"$PD_YELLOWCO\"\n\tMapcolor 255 255 0\n\tLockedSound \"keys/nokeycard\"\n}\n\nLock 4 Doom\n{\n\tRedSkull\n\tMessage \"$PD_REDS\"\n\tRemoteMessage \"$PD_REDSO\"\n\tMapcolor 255 0 0\n\tLockedSound \"keys/noskullkey\"\n}\n\nLock 5 Doom\n{\n\tBlueSkull\n\tMessage \"$PD_BLUES\"\n\tRemoteMessage \"$PD_BLUESO\"\n\tMapcolor 0 0 255\n\tLockedSound \"keys/noskullkey\"\n}\n\nLock 6 Doom\n{\n\tYellowSkull\n\tMessage \"$PD_YELLOWS\"\n\tRemoteMessage \"$PD_YELLOWSO\"\n\tMapcolor 255 255 0\n\tLockedSound \"keys/noskullkey\"\n}\n\nLock 129 Doom\n{\n\tAny { RedCard RedSkull KeyGreen }\n\tMessage \"$PD_REDK\"\n\tRemoteMessage \"$PD_REDO\"\n\tMapcolor 255 0 0\n\tLockedSound \"keys/noskullkey\"\n}\n\nLock 130 Doom\n{\n\tAny { BlueCard BlueSkull KeyBlue }\n\tMessage \"$PD_BLUEK\"\n\tRemoteMessage \"$PD_BLUEO\"\n\tMapcolor 0 0 255\n\tLockedSound \"keys/noskullkey\"\n}\n\nLock 131 Doom\n{\n\tAny { YellowCard YellowSkull KeyYellow }\n\tMessage \"$PD_YELLOWK\"\n\tRemoteMessage \"$PD_YELLOWO\"\n\tMapcolor 255 255 0\n\tLockedSound \"keys/noskullkey\"\n}\n\nLock 132 Doom\n{\n\tAny { RedCard RedSkull }\n\tMessage \"$PD_REDK\"\n\tRemoteMessage \"$PD_REDO\"\n\tMapcolor 255 0 0\n\tLockedSound \"keys/nokeycard\"\n}\n\nLock 133 Doom\n{\n\tAny { BlueCard BlueSkull }\n\tMessage \"$PD_BLUEK\"\n\tRemoteMessage \"$PD_BLUEO\"\n\tMapcolor 0 0 255\n\tLockedSound \"keys/nokeycard\"\n}\n\nLock 134 Doom\n{\n\tAny { YellowCard YellowSkull }\n\tMessage \"$PD_YELLOWK\"\n\tRemoteMessage \"$PD_YELLOWO\"\n\tMapcolor 255 255 0\n\tLockedSound \"keys/nokeycard\"\n}\n\nLock 100\n{\n\tMessage \"$PD_ANY\"\n\tRemoteMessage \"$PD_ANYOBJ\"\n\tMapcolor 128 128 255\n\tLockedSound \"keys/noskullkey\"\n}\n\nLock 228\n{\n\tMessage \"$PD_ANY\"\n\tRemoteMessage \"$PD_ANYOBJ\"\n\tMapcolor 128 128 255\n}\n\nLock 229 Doom\n{\n\tAny { BlueCard BlueSkull KeyBlue}\n\tAny { YellowCard YellowSkull KeyYellow}\n\tAny { RedCard RedSkull KeyGreen}\n\tMessage \"$PD_ALL3\"\n\tRemoteMessage \"$PD_ALL3O\"\n\tLockedSound \"keys/noskullkey\"\n}\n\nLock 101 Doom\n{\n\tBlueCard\n\tBlueSkull\n\tYellowCard\n\tYellowSkull\n\tRedCard\n\tRedSkull\n\tMessage \"$PD_ALL6\"\n\tRemoteMessage \"$PD_ALL6O\"\n\tLockedSound \"keys/noskullkey\"\n}"
},
{
"source": "pk3",
"name": "SBARINFO.txt",
"contents": "height 32;\nmonospacefonts true, \"0\";\n\nstatusbar fullscreen, fullscreenoffsets // ZDoom HUD\n{\n //health\n drawimage \"MEDIA0\", 20, -2, centerbottom;\n drawnumber 3, HUDFONT_DOOM, untranslated, health, drawshadow, 82, -20;\n\n //armor\n drawimage armoricon, 20, -24, centerbottom;\n drawnumber 3, HUDFONT_DOOM, untranslated, armor, drawshadow, whennotzero, 82, -39;\n //ammo\n drawimage ammoicon1, -14, -4, centerbottom;\n\n drawnumber 4, HUDFONT_DOOM, untranslated, ammo1, drawshadow, -100, -20;\n\tIsSelected not \" Fists \", \" Chainsaw \" {\n\t\tdrawimage \"SLASHUD\", -96, -19;\n\t}\n\n\tIsSelected \" Pistol \" {\n\t\tdrawnumber 4, HUDFONT_DOOM, untranslated, ammocapacity Clip, drawshadow, -24, -20;\n\t}\n\tIsSelected \" Shotgun \", \" Super Shotgun \" {\n\t\tdrawnumber 4, HUDFONT_DOOM, untranslated, ammocapacity Shell, drawshadow, -24, -20;\n\t}\n\tIsSelected \"Silver Gun\" {\n\t\tdrawnumber 4, HUDFONT_DOOM, untranslated, ammocapacity ExplodingShell, drawshadow, -24, -20;\n\t}\n\tIsSelected \" Machine gun \", \" Chaingun \" {\n\t\tdrawnumber 4, HUDFONT_DOOM, untranslated, ammocapacity Clip, drawshadow, -24, -20;\n\t}\n\tIsSelected \"Rocket Launcher\" {\n\t\tdrawnumber 4, HUDFONT_DOOM, untranslated, ammocapacity RocketAmmo, drawshadow, -24, -20;\n\t}\n\tIsSelected \"Grenade Launcher\" {\n\t\tdrawnumber 4, HUDFONT_DOOM, untranslated, ammocapacity Grenades, drawshadow, -24, -20;\n\t}\n\tIsSelected \"Heavy Missile Launcher\" {\n\t\tdrawnumber 4, HUDFONT_DOOM, untranslated, ammocapacity MISAmmo, drawshadow, -24, -20;\n\t}\n\tIsSelected \"Plasma Rifle\", \"BFG 9000\" {\n\t\tdrawnumber 4, HUDFONT_DOOM, untranslated, ammocapacity Cell, drawshadow, -24, -20;\n\t}\n\tIsSelected \"Rail gun\" {\n\t\tdrawnumber 4, HUDFONT_DOOM, untranslated, ammocapacity Cell, drawshadow, -24, -20;\n\t}\n\tIsSelected \"Nailgun\"{\n\t\tdrawnumber 4, HUDFONT_DOOM, untranslated, ammocapacity Nail, drawshadow, -24, -20;\n\t}\n\tIsSelected \"Death Staff\", \"Razorfang\" {\n\t\tdrawnumber 4, HUDFONT_DOOM, untranslated, ammocapacity Souls, drawshadow, -24, -20;\n\t}\n\tIsSelected \"Sun Staff\" {\n\t\tdrawnumber 4, HUDFONT_DOOM, untranslated, ammocapacity Souls, drawshadow, -24, -20;\n\t}\n\t// Temporaries\n\tIsSelected \"Sawedoff\" {\n\t\tdrawnumber 2, HUDFONT_DOOM, untranslated, ammocapacity SawedoffShell, drawshadow, -24, -20;\n\t}\n\tIsSelected \"Soul Render\" {\n\t\tdrawnumber 3, HUDFONT_DOOM, untranslated, ammocapacity BladeCharge, drawshadow, -24, -20;\n\t}\n\tIsSelected \"SMG\" {\n\t\tdrawnumber 3, HUDFONT_DOOM, untranslated, ammocapacity SMGAmmo, drawshadow, -24, -20;\n\t}\n\tIsSelected \"Hellforge Cannon\" {\n\t\tdrawnumber 2, HUDFONT_DOOM, untranslated, ammocapacity IronBalls, drawshadow, -24, -20;\n\t}\n\tIsSelected \"Bloodfiend Spine\" {\n\t\tdrawnumber 2, HUDFONT_DOOM, untranslated, ammocapacity BloodAmmo, drawshadow, -24, -20;\n\t}\n\tIsSelected \"Enforcer Rifle\" {\n\t\tdrawnumber 3, HUDFONT_DOOM, untranslated, ammocapacity LaserAmmo, drawshadow, -24, -20;\n\t}\n\tIsSelected \"Venom\" {\n\t\tdrawnumber 2, HUDFONT_DOOM, untranslated, ammocapacity VenomAmmo, drawshadow, -24, -20;\n\t}\n\n usesammo\n {\n //secondary ammo and inventory\n usessecondaryammo\n {\n drawimage ammoicon2, -14, -22, centerbottom;\n drawnumber 4, HUDFONT_DOOM, untranslated, ammo2, drawshadow, -25, -38;\n inventorybarnotvisible\n {\n drawselectedinventory centerbottom, drawshadow, alwaysshowcounter, HUDFONT_DOOM, -14, -39, -26, -56, untranslated;\n }\n }\n //no secondary ammo\n usessecondaryammo not\n {\n inventorybarnotvisible\n {\n drawselectedinventory centerbottom, drawshadow, alwaysshowcounter, HUDFONT_DOOM, -14, -21, -26, -38, untranslated;\n }\n }\n }\n\n // no ammo but inventory\n usesammo not\n {\n inventorybarnotvisible\n {\n drawselectedinventory centerbottom, drawshadow, alwaysshowcounter, HUDFONT_DOOM, -14, -3, -26, -20, untranslated;\n }\n }\n\n gamemode deathmatch\n {\n drawnumber 2, HUDFONT_DOOM, untranslated, frags, drawshadow, -3, 1;\n }\n gamemode singleplayer, cooperative, teamgame\n {\n drawkeybar 6, vertical, reverserows, auto, -10, 70, 0, 3, auto;\n\t\t// Rounds Survived\n\t\tdrawimage \"SURVIVD\", -38, 0;\n\t\tdrawnumber 2, SMALLFONT, untranslated, ammo RoundsSurvived, -12, 45;\n }\n}\n\nstatusbar normal // Standard Doom Status bar\n{\n drawimage \"STBAR\", 0, 168;\n drawimage \"STTPRCNT\", 90, 171;\n drawimage \"STTPRCNT\", 221, 171;\n\n\tIsSelected \" Machine gun \"\n\t{\n\t\tdrawnumber 4, HUDFONT_DOOM, untranslated, ammo MGClip, 44, 171;\n\t}\n\tIsSelected not \" Machine gun \"\n\t{\n\t\tdrawnumber 4, HUDFONT_DOOM, untranslated, ammo1, 44, 171;\n\t}\n\n drawnumber 3, HUDFONT_DOOM, untranslated, health, 90, 171;\n drawnumber 3, HUDFONT_DOOM, untranslated, armor, 221, 171;\n\n //keys\n drawswitchableimage keyslot 2 && 5, \"nullimage\", \"STKEYS0\", \"STKEYS3\", \"STKEYS6\", 239, 171;\n drawswitchableimage keyslot 3 && 6, \"nullimage\", \"STKEYS1\", \"STKEYS4\", \"STKEYS7\", 239, 181;\n drawswitchableimage keyslot 1 && 4, \"nullimage\", \"STKEYS2\", \"STKEYS5\", \"STKEYS8\", 239, 191;\n\n drawnumber 4, INDEXFONT, gold, ammo Clip, 288, 173;\n drawnumber 4, INDEXFONT, gold, ammo Shell, 288, 179;\n drawnumber 4, INDEXFONT, gold, ammo RocketAmmo, 288, 185;\n drawnumber 4, INDEXFONT, gold, ammo Cell, 288, 191;\n\n drawnumber 4, INDEXFONT, gold, ammocapacity Clip, 314, 173;\n drawnumber 4, INDEXFONT, gold, ammocapacity Shell, 314, 179;\n drawnumber 4, INDEXFONT, gold, ammocapacity RocketAmmo, 314, 185;\n drawnumber 4, INDEXFONT, gold, ammocapacity Cell, 314, 191;\n gamemode deathmatch, teamgame\n {\n drawnumber 2, HUDFONT_DOOM, untranslated, frags, 138, 171;\n }\n gamemode cooperative, singleplayer\n {\n drawimage \"STARMS\", 104, 168;\n drawswitchableimage weaponslot 2, \"STGNUM2\", \"STYSNUM2\", 111, 172;\n drawswitchableimage weaponslot 3, \"STGNUM3\", \"STYSNUM3\", 123, 172;\n drawswitchableimage weaponslot 4, \"STGNUM4\", \"STYSNUM4\", 135, 172;\n drawswitchableimage weaponslot 5, \"STGNUM5\", \"STYSNUM5\", 111, 182;\n drawswitchableimage weaponslot 6, \"STGNUM6\", \"STYSNUM6\", 123, 182;\n drawswitchableimage weaponslot 7, \"STGNUM7\", \"STYSNUM7\", 135, 182;\n\t\t// Rounds Survived\n\t\tdrawimage \"SMLSURV\", 295, 0;\n\t\tdrawnumber 2, SMALLFONT, untranslated, ammo RoundsSurvived, 315, 26;\n\t}\n\n gamemode cooperative, deathmatch, teamgame\n {\n drawimage translatable \"STFBANY\", 143, 169;\n }\n\n drawselectedinventory alternateonempty, INDEXFONT, 143, 168\n\t{\n\t\tdrawmugshot 5, 143, 168;\n\t}\n}\n\nstatusbar inventory // Standard bar overlay (ZDoom Addition)\n{\n drawinventorybar Doom, 7, INDEXFONT, 50, 170;\n}\n\nstatusbar inventoryfullscreen // ZDoom HUD overlay.\n{\n drawinventorybar Doom, translucent, 7, INDEXFONT, 50, 170;\n}\n\nmugshot \"Normal\", health2\n{\n\tST00 30;\n\tST03 3;\n\tST04 11;\n\tST03 3;\n\tST00 20;\n\tST01 3;\n\tST02 8;\n\tST01 3;\n\tST00 5;\n\tST03 3;\n\tST04 15;\n\tST03 3;\n\tST00 40;\n\tST01 3;\n\tST02 11;\n\tST01 3;\n\tST00 50;\n\tST01 3;\n\tST02 14;\n\tST01 3;\n}\n\nmugshot \"death\"\n{\n\tDEAD0 3;\n\tDEAD1 3;\n\tDEAD2 3;\n\tDEAD3 -1;\n}\n\nmugshot \"xdeath\"\n{\n\tXDTH0 3;\n\tXDTH1 2;\n\tXDTH2 2;\n\tXDTH3 2;\n\tXDTH4 -1;\n}"
},
{
"source": "pk3",
"name": "SNDINFO.txt",
"contents": "Weapons/fisthit\t\t\tdspunch\nWeapons/fistmiss\t\tdspunmis\n\nWeapons/NewPist\t\t\tNEWPIST\n\nweapons/shotgunfire\t SGUNFIRE\nweapons/shotgunfirenew\tSGUNFIRN\nweapons/ssgfire\t\t\tSSGFIRE\nweapons/ssgfirenew\t\tSSGFIREN\nweapons/ssgopen\t\t\tDSD2OPN\nweapons/ssgload\t\t\tDSD2LOAD\nweapons/ssgclose\t\tDSD2CLS\n\nweapons/expshotgunfire\tEXSGFIRE\nweapons/expshotgunpump\tEXSGPUMP\nweapons/expshotgunxpl\tEXSGXPL\n$volume weapons/expshotgunxpl 0.3\n$limit weapons/expshotgunxpl 0\n\nweapons/mgfire\t\t\tMGFIRE\nweapons/mgfirenew\t\tMGFIRE2\n\nweapons/minigunhold\t\tMGSHOT3\nweapons/minigunup\t\tdsmgup\nweapons/minigundown\t\tdsmgdown\nweapons/minigunfire\t\tCGUNFIRE\n\nweapons/newrocketfire\tRLANFIR\nweapons/glauncherfire GRNFIRE\nweapons/glauncherfiren GRNFIREN\nweapons/grenadexpl\t\tGRNEXP\nweapons/gbnc1\t\t\tGRNBNC1\nweapons/gbnc2\t\t\tGRNBNC2\n$random weapons/grenadebounce { weapons/gbnc1 weapons/gbnc2 }\n\nweapons/heavyrlfire\t\tHRLFIR\nweapons/heavyrlexp\t\tHRLEXP\n\nweapons/newplasmafire\tDSPLASMX\n$limit weapons/newplasmafire 0\nweapons/plasmahit\t\tDSPLASH\nweapons/plasmacharge\tPLASCH\nweapons/plasmabeep\t\tPLASBEP\nweapons/nailfire\t\tNAILFIRE\nweapons/nailflight\t\tNAILFLY\nweapons/nailric1\t\tNAILRIC1\nweapons/nailric2\t\tNAILRIC2\nweapons/nailric3\t\tNAILRIC3\n$random weapons/nailric { weapons/nailric1 weapons/nailric2 weapons/nailric3 }\n\nweapons/newrailfire\t\tRAILFIR\nweapons/burning\t\t\tFLBURN\nweapons/deathstexp1\t\tDSTEXP1\nweapons/deathstexp2\t\tDSTEXP2\nweapons/deathstfire\t\tDSTFIRE\nweapons/deathstfire2\tDSTFIR2\n\nweapons/boltfi dsboltfi\nweapons/boltf2 dsboltf2\ndoor/flsd1a dsflsd1a\n\nWeapons/SunStaffFire\t\t\tSUNFIRE\nWeapons/SunStaffFire2\t\t\tSUNFIRE2\nWeapons/SunStaffLoop\t\t\tSUNLOOP\nWeapons/SunStaffRecharge\t\tSUNRCHR\nWeapons/SunStaffHit\t\t\t\tSUNHIT\nWeapons/SunStaffCharge\t\t\tSUNCHRG\nWeapons/SunStaffMelt\t\t\tSUNALTH\n\nitems/armor\t\t\t\tQARMOR\nitems/stimpack\t\t\tQHEAL1\nitems/medikit\t\t\tQHEAL2\nitems/invul\t\t\t\tINVULGET\nitems/radsuit\t\t\tRADSTGET\n\nkeys/noskullkey\t\t\tNOSKULL\nkeys/nokeycard\t\t\tNOCARD\nkeys/keycard\t\t\tCARDGET\nkeys/skull\t\t\t\tSKULLGET\n\nweapons/pick1\t\t\tWEAPGET\nweapons/pick2\t\t\tWEAPGET2\nweapons/pick3\t\t\tWEAPGET3\nweapons/pick4\t\t\tWEAPGET4\nweapons/pick5\t\t\tWEAPGET5\n$random weapons/pickup { weapons/pick1 weapons/pick2 weapons/pick3 weapons/pick4 weapons/pick5 }\n\nitems/pickup\t\t\tBONPICK\nitems/backpack\t\t\tBPACKGET\nitems/upgrade\t\t\tUPGCGET\nitems/soulsphere\t\tSSPHGET\nitems/megasphere\t\tMEGAGET\nitems/ubersphere\t\tUBERSPH\nitems/evilsphere\t\tEVILSPH\nitems/fieldkit\t\t\tFKITUSE\nitems/bloodrun\t\t\tBRUNUSE\nitems/salvation\t\t\tDSALVATE\nitems/shield\t\t\tDSSHIEL\nitems/triple\t\t\tDSTRIPL\nitems/bookofthedead\t\tDSBOTDF\nitems/bookofthedeadhit\tDSBOTDH\nitems/bladevortex\t\tDSVORT\nitems/trigger\t\t\tDSTRIG\n\nitems/pickup1\t\t\tBPGET1\nitems/pickup2\t\t\tBPGET2\nitems/pickup3\t\t\tBPGET3\nitems/pickup4\t\t\tBPGET4\n$random items/ammo { items/pickup1 items/pickup2 items/pickup3 items/pickup4 }\n\n//SHOUT out to legacy of suffering for these awesome sounds\nWeapons/shotguncasing1 SHELCAS1\nWeapons/shotguncasing2 SHELCAS2\nWeapons/shotguncasing3 SHELCAS3\nWeapons/shotguncasing4 SHELCAS4\n\n$Random Weapons/shotguncasing\n{\n Weapons/shotguncasing1\n Weapons/shotguncasing2\n Weapons/shotguncasing3\n Weapons/shotguncasing4\n}\n\nWeapons/mincase1 BULLCAS1\nWeapons/mincase2 BULLCAS2\nWeapons/mincase3 BULLCAS3\nweapons/mincase4\t BULLCAS4\n\n$Random Weapons/bulletcasing\n{\n Weapons/mincase1\n Weapons/mincase2\n Weapons/mincase3\n Weapons/mincase4\n}\n\nbloodsplat1 dsblud01\nbloodsplat2 dsblud02\nbloodsplat3 dsblud03\nbloodsplat4 dsblud04\nbloodsplat5 dsblud05\nbloodsplat6 dsblud06\n\n$random bloodsplat { bloodsplat1 bloodsplat2 bloodsplat3 bloodsplat4 bloodsplat5 bloodsplat6 }\n$limit bloodsplat 1\n\nBonus/Received\t\tBONRECEI\nWeapon/Popup\t\tWEPPOPUP\n\n// Splashes\nslime\t\t\t\tdsmuck\nslimesmall\t\t\tdsmucksm\nwater\t\t\t\tdsgloop\nwatersmall\t\t\tdsfloush\nburn\t\t\t\tdsburn\nburnsmall\t\t\tdsburnsm\nblood1\t\t\t\tdssplat1\nblood2\t\t\t\tdssplat2\n$RANDOM blood { blood1 blood2 }\nbloodsmall1\t\t\tdssplat3\nbloodsmall2\t\t\tdssplat4\n$RANDOM bloodsmall { bloodsmall1 bloodsmall2 }\n\n// World Sounds / Terrain sounds\n\nworld/drip\t\t\tdsempty\n$random world/watersplash\t\t{dssplash dssplas2 water}\ndssplash\tdssplash\ndssplas2\tdssplas2\nworld/watersplashsmall\t\tdssplsml\nworld/sludgegloop\t\tdsploosh\nworld/sludgegloopsmall\t\tdsplosml\nworld/lavasizzle\t\tdslvsiz\nworld/lavsiz2\t\t\tdslvsiz2\nworld/lavasizzlesmall\t\tdslavsml\n\n$limit world/watersplash 0\n$limit world/sludgegloop 0\n$limit world/lavasizzle 0\n$limit world/drip 0\n$limit world/hotsiz 0\n\n// Ricochet Sounds\n$random puff/ric \t\t{ puff/ric1 puff/ric2 puff/ric3 puff/ric4 puff/ric5 puff/ric6 puff/ric7 }\npuff/ric1 \t\t\tdsrich1\npuff/ric2 \t\t\tdsrich2\npuff/ric3 \t\t\tdsrich3\npuff/ric4 \t\t\tdsrich4\npuff/ric5 \t\t\tdsrich5\npuff/ric6 \t\t\tdsrich6\npuff/ric7 \t\t\tdsrich7\n\n// Temporary Weapons\nSawedoff/Fire1\t\tSAWNF1\nSawedoff/Fire2\t\tSAWNF2\nSawedoff/Load\t\tSAWNLOD\n\nweapons/vblhit dsvblhit\nweapons/vblhi2 dsvblhi2\nweapons/vblhi3 dsvblhi3\nweapons/vblwal dsvblwal\nweapons/vblwa2 dsvblwa2\nweapons/vblswg dsvblswg\nweapons/hamswg dshamswg\n\nweapons/gorfi1 dsgorfi1\nweapons/gorfi2 dsgorfi2\nweapons/gorhit dsgorhit\nweapons/gorsuc dsgorsuc\n\nweapons/crabfi dscrabfi\nweapons/crabex dscrabex\nweapons/crabf2 dscrabf2\nweapons/crabx2 dscrabx2\nweapons/wiggl1 dswiggl1\nweapons/wiggl2 dswiggl2\n\n// Burning\nPlayer/Burn\t\t\t\t\t DSBRNNG\nBurn/Death1\t\t\t\t\t DSBURN1\nBurn/Death2 \t\t\t\t DSBURN2\nBurn/Death3\t\t\t\t\t DSBURN3\n$random Burn/Death { Burn/Death1 Burn/Death2 Burn/Death3 }"
},
{
"source": "pk3",
"name": "Actors/Decorations.txt",
"contents": "// Tech lamp ---------------------------------------------------------------\n\nActor TechLamp3 : TechLamp replaces TechLamp\n{\n\tSpecies \"ThruDecor\"\n}\n\n// Tech lamp 2 -------------------------------------------------------------\n\nActor TechLamp22 : TechLamp2 replaces TechLamp2\n{\n\tSpecies \"ThruDecor\"\n}\n\n// Column ------------------------------------------------------------------\n\nActor Column3 : Column replaces Column\n{\n\tSpecies \"ThruDecor\"\n}\n\n// Tall green column -------------------------------------------------------\n\nActor TallGreenColumn3 : TallGreenColumn\n{\n\tSpecies \"ThruDecor\"\n}\n\n// Short green column ------------------------------------------------------\n\nActor ShortGreenColumn3 : ShortGreenColumn\n{\n\tSpecies \"ThruDecor\"\n}\n\n// Tall red column ---------------------------------------------------------\n\nActor TallRedColumn3 : TallRedColumn replaces TallRedColumn\n{\n\tSpecies \"ThruDecor\"\n}\n\n// Short red column --------------------------------------------------------\n\nActor ShortRedColumn3 : ShortRedColumn replaces ShortRedColumn\n{\n\tSpecies \"ThruDecor\"\n}\n\n// Skull column ------------------------------------------------------------\n\nActor SkullColumn3 : SkullColumn replaces SkullColumn\n{\n\tSpecies \"ThruDecor\"\n}\n\n// Heart column ------------------------------------------------------------\n\nActor HeartColumn3 : HeartColumn replaces HeartColumn\n{\n\tSpecies \"ThruDecor\"\n}\n\n// Evil eye ----------------------------------------------------------------\n\nActor EvilEye2 : EvilEye replaces EvilEye\n{\n\tSpecies \"ThruDecor\"\n}\n\n// Floating skull ----------------------------------------------------------\n\nActor FloatingSkull2 : FloatingSkull replaces FloatingSkull\n{\n\tSpecies \"ThruDecor\"\n}\n\n// Torch tree --------------------------------------------------------------\n\nActor TorchTree2 : TorchTree replaces TorchTree\n{\n\tSpecies \"ThruDecor\"\n}\n\n// Blue torch --------------------------------------------------------------\n\nActor BlueTorch2 : BlueTorch replaces BlueTorch\n{\n\tSpecies \"ThruDecor\"\n}\n\n// Green torch -------------------------------------------------------------\n\nActor GreenTorch2 : GreenTorch replaces GreenTorch\n{\n\tSpecies \"ThruDecor\"\n}\n\n// Red torch ---------------------------------------------------------------\n\nActor RedTorch2 : RedTorch replaces RedTorch\n{\n\tSpecies \"ThruDecor\"\n}\n\n// Short blue torch --------------------------------------------------------\n\nActor ShortBlueTorch2 : ShortBlueTorch replaces ShortBlueTorch\n{\n\tSpecies \"ThruDecor\"\n}\n\n// Short green torch -------------------------------------------------------\n\nActor ShortGreenTorch2 : ShortGreenTorch replaces ShortGreenTorch\n{\n\tSpecies \"ThruDecor\"\n}\n\n// Short red torch ---------------------------------------------------------\n\nActor ShortRedTorch2 : ShortRedTorch replaces ShortRedTorch\n{\n\tSpecies \"ThruDecor\"\n}\n\n// Stalagtite --------------------------------------------------------------\n\nActor Stalagtite2 : Stalagtite replaces Stalagtite\n{\n\tSpecies \"ThruDecor\"\n}\n\n// Tech pillar -------------------------------------------------------------\n\nActor TechPillar2 : TechPillar replaces TechPillar\n{\n\tSpecies \"ThruDecor\"\n}\n\n// Candelabra --------------------------------------------------------------\n\nActor Candelabra2 : Candelabra replaces Candelabra\n{\n\tSpecies \"ThruDecor\"\n}\n\n// Bloody twitch -----------------------------------------------------------\n\nActor BloodyTwitch2 : BloodyTwitch replaces BloodyTwitch\n{\n\tSpecies \"ThruDecor\"\n}\n\n// Meat 2 ------------------------------------------------------------------\n\nActor Meat22 : Meat2 replaces Meat2\n{\n\tSpecies \"ThruDecor\"\n}\n\n// Meat 3 ------------------------------------------------------------------\n\nActor Meat32 : Meat3 replaces Meat3\n{\n\tSpecies \"ThruDecor\"\n}\n\n// Meat 4 ------------------------------------------------------------------\n\nActor Meat42 : Meat4 replaces Meat4\n{\n\tSpecies \"ThruDecor\"\n}\n\n// Meat 5 ------------------------------------------------------------------\n\nActor Meat52 : Meat5 replaces Meat5\n{\n\tSpecies \"ThruDecor\"\n}\n\n// Head on a stick ---------------------------------------------------------\n\nActor HeadOnAStick2 : HeadOnAStick replaces HeadOnAStick\n{\n\tSpecies \"ThruDecor\"\n}\n\n// Heads (plural!) on a stick ----------------------------------------------\n\nActor HeadsOnAStick2 : HeadsOnAStick replaces HeadsOnAStick\n{\n\tSpecies \"ThruDecor\"\n}\n\n// Head candles ------------------------------------------------------------\n\nActor HeadCandles2 : HeadCandles replaces HeadCandles\n{\n\tSpecies \"ThruDecor\"\n}\n\n// Dead on a stick ---------------------------------------------------------\n\nActor DeadStick2 : DeadStick replaces DeadStick\n{\n\tSpecies \"ThruDecor\"\n}\n\n// Still alive on a stick --------------------------------------------------\n\nActor LiveStick2 : LiveStick replaces LiveStick\n{\n\tSpecies \"ThruDecor\"\n}\n\n// Big tree ----------------------------------------------------------------\n\nActor BigTree3 : BigTree replaces BigTree\n{\n\tSpecies \"ThruDecor\"\n}\n\n// Burning barrel ----------------------------------------------------------\n\nActor BurningBarrel2 : BurningBarrel replaces BurningBarrel\n{\n\tSpecies \"ThruDecor\"\n}\n\n// Hanging with no guts ----------------------------------------------------\n\nActor HangNoGuts2 : HangNoGuts replaces HangNoGuts\n{\n\tSpecies \"ThruDecor\"\n}\n\n// Hanging from bottom with no brain ---------------------------------------\n\nActor HangBNoBrain2 : HangBNoBrain replaces HangBNoBrain\n{\n\tSpecies \"ThruDecor\"\n}\n\n// Hanging from top, looking down ------------------------------------------\n\nActor HangTLookingDown2 : HangTLookingDown replaces HangTLookingDown\n{\n\tSpecies \"ThruDecor\"\n}\n\n// Hanging from top, looking up --------------------------------------------\n\nActor HangTLookingUp2 : HangTLookingUp replaces HangTLookingUp\n{\n\tSpecies \"ThruDecor\"\n}\n\n// Hanging from top, skully ------------------------------------------------\n\nActor HangTSkull2 : HangTSkull replaces HangTSkull\n{\n\tSpecies \"ThruDecor\"\n}\n\n// Hanging from top without a brain ----------------------------------------\n\nActor HangTNoBrain2 : HangTNoBrain replaces HangTNoBrain\n{\n\tSpecies \"ThruDecor\"\n}\n\n// Grey stalagmite (unused Doom sprite, definition taken from Skulltag -----\n\nActor Stalagmite2 : Stalagmite replaces Stalagmite\n{\n\tSpecies \"ThruDecor\"\n}"
},
{
"source": "pk3",
"name": "Actors/Items.txt",
"contents": "// Upgrades start\n\nActor MGPowerUpgrade : Inventory\n{\n\tinventory.maxamount 1\n}\n\nActor ShotgunUpgrade : Inventory\n{\n\tinventory.maxamount 1\n}\n\nActor SSGUpgrade : Inventory\n{\n\tinventory.maxamount 1\n}\n\nActor RocketUpgrade : Inventory\n{\n\tinventory.maxamount 1\n}\n\nActor GrenadeUpgrade : Inventory\n{\n\tinventory.maxamount 1\n}\n\nActor PlasmaUpgrade : Inventory\n{\n\tinventory.maxamount 1\n}\n\nActor RailgunUpgrade : Inventory\n{\n\tinventory.maxamount 2\n}\n\nActor BFGUpgrade : Inventory\n{\n\tinventory.maxamount 1\n}\n\nActor MovementUpgrade : Inventory\n{\n\tinventory.maxamount 1\n}\n\nActor ResistUpgrade : Inventory\n{\n\tinventory.maxamount 1\n}\n\nActor NanobotUpgrade : Inventory\n{\n\tinventory.maxamount 1\n}\n\nActor TemporaryUpgrade : Inventory\n{\n\tinventory.maxamount 1\n}\n\nActor SoulUpgrade : Inventory\n{\n\tinventory.maxamount 1\n}\n\nActor Resist : PowerProtection\n{\n\tdamagefactor \"normal\", 0.85\n\tpowerup.duration 0x7FFFFFFF\n}\n\nActor UpgradeCrate_MGP : CustomInventory\n{\n\tRadius 20\n\tHeight 16\n\tinventory.pickupsound \"items/upgrade\"\n\tinventory.pickupmessage \"UPGRADE CRATE!\"\n\tTranslation \"160:167=88:95\", \"236:239=97:104\"\n\tStates\n\t{\n\t\tSpawn:\n\t\t\tUPGC A -1\n\t\tStop\n\t\tPickup:\n\t\t\tTNT1 A 1 A_JumpIfInventory(\"MGPowerUpgrade\", 1, \"Failed\")\n\t\t\tTNT1 A 0 ACS_ExecuteAlways(988, 0, 0)\n\t\t\tTNT1 A 1 ACS_ExecuteAlways(993, 0, 0)\n\t\tStop\n\t\tFailed:\n\t\t\tTNT1 A 1\n\t\tFail\n\t}\n}\n\nActor UpgradeCrate_SGP : UpgradeCrate_MGP\n{\n\tTranslation \"160:167=160:162\", \"236:239=163:165\"\n\tStates\n\t{\n\t\tPickup:\n\t\t\tTNT1 A 1 A_JumpIfInventory(\"ShotgunUpgrade\", 1, \"Failed\")\n\t\t\tTNT1 A 0 ACS_ExecuteAlways(988, 0, 1)\n\t\t\tTNT1 A 1 ACS_ExecuteAlways(993, 0, 1)\n\t\tStop\n\t\tFailed:\n\t\t\tTNT1 A 1\n\t\tFail\n\t}\n}\n\nActor UpgradeCrate_SSGP : UpgradeCrate_MGP\n{\n\tTranslation \"160:167=173:180\", \"236:239=182:187\"\n\tStates\n\t{\n\t\tPickup:\n\t\t\tTNT1 A 1 A_JumpIfInventory(\"SSGUpgrade\", 1, \"Failed\")\n\t\t\tTNT1 A 0 ACS_ExecuteAlways(988, 0, 2)\n\t\t\tTNT1 A 1 ACS_ExecuteAlways(993, 0, 2)\n\t\tStop\n\t\tFailed:\n\t\t\tTNT1 A 1\n\t\tFail\n\t}\n}\n\nActor UpgradeCrate_RLP : UpgradeCrate_MGP\n{\n\tTranslation \"160:167=212:219\", \"236:239=220:223\"\n\tStates\n\t{\n\t\tPickup:\n\t\t\tTNT1 A 1 A_JumpIfInventory(\"RocketUpgrade\", 1, \"Failed\")\n\t\t\tTNT1 A 0 ACS_ExecuteAlways(988, 0, 3)\n\t\t\tTNT1 A 1 ACS_ExecuteAlways(993, 0, 3)\n\t\tStop\n\t\tFailed:\n\t\t\tTNT1 A 1\n\t\tFail\n\t}\n}\n\nActor UpgradeCrate_GLP : UpgradeCrate_MGP\n{\n\tTranslation \"160:167=128:135\", \"236:239=136:141\"\n\tStates\n\t{\n\t\tPickup:\n\t\t\tTNT1 A 1 A_JumpIfInventory(\"GrenadeUpgrade\", 1, \"Failed\")\n\t\t\tTNT1 A 0 ACS_ExecuteAlways(988, 0, 4)\n\t\t\tTNT1 A 1 ACS_ExecuteAlways(993, 0, 4)\n\t\tStop\n\t\tFailed:\n\t\t\tTNT1 A 1\n\t\tFail\n\t}\n}\n\nActor UpgradeCrate_PRP : UpgradeCrate_MGP\n{\n\tTranslation \"160:167=192:195\", \"236:239=196:198\"\n\tStates\n\t{\n\t\tPickup:\n\t\t\tTNT1 A 1 A_JumpIfInventory(\"PlasmaUpgrade\", 1, \"Failed\")\n\t\t\tTNT1 A 0 ACS_ExecuteAlways(988, 0, 5)\n\t\t\tTNT1 A 1 ACS_ExecuteAlways(993, 0, 5)\n\t\tStop\n\t\tFailed:\n\t\t\tTNT1 A 1\n\t\tFail\n\t}\n}\n\nActor UpgradeCrate_RGP : UpgradeCrate_MGP\n{\n\tTranslation \"160:167=193:200\", \"236:239=201:204\"\n\tStates\n\t{\n\t\tPickup:\n\t\t\tTNT1 A 1 A_JumpIfInventory(\"RailgunUpgrade\", 2, \"Failed\")\n\t\t\tTNT1 A 0 ACS_ExecuteAlways(988, 0, 6)\n\t\t\tTNT1 A 1 ACS_ExecuteAlways(993, 0, 6)\n\t\tStop\n\t\tFailed:\n\t\t\tTNT1 A 1\n\t\tFail\n\t}\n}\n\nActor UpgradeCrate_BFG : UpgradeCrate_MGP\n{\n\tTranslation \"160:167=112:117\", \"236:239=120:122\"\n\tStates\n\t{\n\t\tPickup:\n\t\t\tTNT1 A 1 A_JumpIfInventory(\"BFGUpgrade\", 1, \"Failed\")\n\t\t\tTNT1 A 0 ACS_ExecuteAlways(988, 0, 7)\n\t\t\tTNT1 A 1 ACS_ExecuteAlways(993, 0, 7)\n\t\tStop\n\t\tFailed:\n\t\t\tTNT1 A 1\n\t\tFail\n\t}\n}\n\nActor UpgradeCrate_MSI : UpgradeCrate_MGP\n{\n\tTranslation \"160:167=152:157\", \"236:239=159:159\"\n\tStates\n\t{\n\t\tPickup:\n\t\t\tTNT1 A 1 A_JumpIfInventory(\"MovementUpgrade\", 1, \"Failed\")\n\t\t\tTNT1 A 0 ACS_ExecuteAlways(988, 0, 8)\n\t\t\tTNT1 A 1 ACS_ExecuteAlways(993, 0, 8)\n\t\tStop\n\t\tFailed:\n\t\t\tTNT1 A 1\n\t\tFail\n\t}\n}\n\nActor UpgradeCrate_REU : UpgradeCrate_MGP\n{\n\tTranslation \"160:167=5:6\", \"236:239=7:8\"\n\tStates\n\t{\n\t\tPickup:\n\t\t\tTNT1 A 1 A_JumpIfInventory(\"ResistUpgrade\", 1, \"Failed\")\n\t\t\tTNT1 A 0 ACS_ExecuteAlways(988, 0, 9)\n\t\t\tTNT1 A 1 ACS_ExecuteAlways(993, 0, 9)\n\t\tStop\n\t\tFailed:\n\t\t\tTNT1 A 1\n\t\tFail\n\t}\n}\n\nActor UpgradeCrate_NAN : UpgradeCrate_MGP\n{\n\tTranslation \"160:167=152:157\", \"236:239=159:159\"\n\tStates\n\t{\n\t\tPickup:\n\t\t\tTNT1 A 1 A_JumpIfInventory(\"NanobotUpgrade\", 1, \"Failed\")\n\t\t\tTNT1 A 0 ACS_ExecuteAlways(988, 0, 10)\n\t\t\tTNT1 A 1 ACS_ExecuteAlways(993, 0, 10)\n\t\tStop\n\t\tFailed:\n\t\t\tTNT1 A 1\n\t\tFail\n\t}\n}\n\nActor UpgradeCrate_TMP : UpgradeCrate_MGP\n{\n\tTranslation \"160:167=236:238\", \"236:239=239:239\"\n\tStates\n\t{\n\t\tPickup:\n\t\t\tTNT1 A 1 A_JumpIfInventory(\"TemporaryUpgrade\", 1, \"Failed\")\n\t\t\tTNT1 A 0 ACS_ExecuteAlways(988, 0, 11)\n\t\t\tTNT1 A 1 ACS_ExecuteAlways(993, 0, 11)\n\t\tStop\n\t\tFailed:\n\t\t\tTNT1 A 1\n\t\tFail\n\t}\n}\n\nActor UpgradeCrate_SOU : UpgradeCrate_MGP\n{\n\tTranslation \"160:167=250:252\", \"236:239=253:254\"\n\tStates\n\t{\n\t\tPickup:\n\t\t\tTNT1 A 1 A_JumpIfInventory(\"SoulUpgrade\", 1, \"Failed\")\n\t\t\tTNT1 A 0 ACS_ExecuteAlways(988, 0, 12)\n\t\t\tTNT1 A 1 ACS_ExecuteAlways(993, 0, 12)\n\t\tStop\n\t\tFailed:\n\t\t\tTNT1 A 1\n\t\tFail\n\t}\n}\n\n// Upgrades end here\n\n// Replicates\n\nActor NewGreenArmor : GreenArmor replaces GreenArmor\n{\n\tinventory.pickupsound \"Items/armor\"\n\tScale 1.15\n}\n\nActor NewBlueArmor : BlueArmor\n{\n\tinventory.pickupsound \"Items/armor\"\n\tScale 1.15\n}\n\nActor Stimpack2 : Stimpack replaces Stimpack\n{\n\tinventory.pickupsound \"Items/Stimpack\"\n}\n\nActor Medikit2 : Medikit replaces Medikit\n{\n\tinventory.pickupsound \"Items/medikit\"\n}\n\nActor NewHealthBonus : HealthBonus\n{\n\tinventory.pickupsound \"items/pickup\"\n}\n\nActor NewArmorBonus : ArmorBonus\n{\n\tinventory.pickupsound \"items/pickup\"\n}\n\nActor BonusReplacer : Randomspawner replaces HealthBonus\n{\n\tDropItem \"NewHealthBonus\", 255, 24\n\tDropItem \"MaxHealthBonusPickup\", 255, 8\n\tDropItem \"BasicStatBoost\", 255, 4\n}\n\nActor BonusReplacer2 : Randomspawner replaces ArmorBonus\n{\n\tDropItem \"NewArmorBonus\", 255, 24\n\tDropItem \"MaxArmorBonusPickup\", 255, 8\n\tDropItem \"BasicStatBoost\", 255, 4\n}\n\nActor NewClip : Clip replaces Clip\n{\n\tinventory.pickupsound \"items/ammo\"\n}\n\nActor NewClipbox : Clipbox replaces Clipbox\n{\n\tinventory.pickupsound \"items/ammo\"\n}\n\nActor NewShell : Shell\n{\n\tinventory.pickupsound \"items/ammo\"\n}\n\nActor NewShellBox : ShellBox\n{\n\tinventory.pickupsound \"items/ammo\"\n}\n\nActor Slot3AmmoSmallSpawner : RandomSpawner replaces Shell\n{\n\tDropItem \"NewShell\", 255, 16\n\tDropItem \"ExplodingShell\", 255, 4\n}\n\nActor Slot3AmmoContainer : CustomInventory\n{\n\tRadius 20\n\tHeight 20\n\tinventory.pickupsound \"items/ammo\"\n\tinventory.pickupmessage \"Picked up a box of explosive and normal shells!\"\n\tStates\n\t{\n\t\tSpawn:\n\t\t\tSLO3 A -1\n\t\tStop\n\t\tPickup:\n\t\t\tTNT1 A 0 A_JumpIf(1 == ACS_ExecuteWithResult(992, 0, 0), \"Failed\")\n\t\t\tTNT1 A 0 A_GiveInventory(\"Shell\", 20)\n\t\t\tTNT1 A 0 A_GiveInventory(\"ExplodingShell\", 15)\n\t\tStop\n\t\tFailed:\n\t\t\tTNT1 A 0\n\t\tFail\n\t}\n}\n\nActor Slot3AmmoBigSpawner : RandomSpawner replaces ShellBox\n{\n\tDropItem \"NewShellBox\", 255, 16\n\tDropItem \"Slot3AmmoContainer\", 255, 8\n//\tDropItem \"ExplodingShellBox\", 255, 4\n}\n\nActor Slot5WeaponSpawner : Randomspawner replaces RocketLauncher\n{\n\tDropItem \"Rocket Launcher\"\n\tDropItem \"Grenade Launcher\"\n}\n\nActor RocketAmmo2 : RocketAmmo\n{\n\tinventory.pickupsound \"items/ammo\"\n}\n\nActor RocketBox2 : RocketBox\n{\n\tinventory.pickupsound \"items/ammo\"\n}\n\nActor Slot5AmmoSmallSpawner : Randomspawner replaces RocketAmmo\n{\n\tDropItem \"RocketAmmo2\", 255, 8\n\tDropItem \"Grenades\", 255, 8\n\tDropItem \"MISAmmo\", 255, 4\n}\n\nActor Slot5AmmoContainer : Slot3AmmoContainer\n{\n\tinventory.pickupmessage \"Picked up a box of rockets, grenades and heavy missiles!\"\n\tStates\n\t{\n\t\tSpawn:\n\t\t\tSLO5 A -1\n\t\tStop\n\t\tPickup:\n\t\t\tTNT1 A 0 A_JumpIf(1 == ACS_ExecuteWithResult(992, 0, 1), \"Failed\")\n\t\t\tTNT1 A 0 A_GiveInventory(\"RocketAmmo\", 5)\n\t\t\tTNT1 A 0 A_GiveInventory(\"Grenades\", 5)\n\t\t\tTNT1 A 0 A_GiveInventory(\"MISAmmo\", 6)\n\t\tStop\n\t\tFailed:\n\t\t\tTNT1 A 0\n\t\tFail\n\t}\n}\n\nActor Slot5AmmoBigSpawner : Randomspawner replaces RocketBox\n{\n\tDropItem \"RocketBox2\", 255, 8\n\tDropItem \"GrenadeBox\", 255, 8\n\tDropItem \"Slot5AmmoContainer\", 255, 8\n//\tDropItem \"MISBox\", 255, 4\n}\n\nActor Cell2 : Cell\n{\n\tinventory.pickupsound \"items/ammo\"\n}\n\nActor Cellpack2 : Cellpack\n{\n\tinventory.pickupsound \"items/ammo\"\n}\n\nActor Slot6AmmoSmallSpawner : Randomspawner replaces Cell\n{\n\tDropItem \"Cell2\", 255, 16\n\tDropItem \"Nail\", 255, 8\n}\n\nActor Slot6AmmoContainer : Slot3AmmoContainer\n{\n\tinventory.pickupmessage \"Picked up a box of cells and nails!\"\n\tTranslation \"78:78=5:5\", \"125:126=108:109\", \"154:159=96:106\"\n\tStates\n\t{\n\t\tSpawn:\n\t\t\tAMMO A -1\n\t\tStop\n\t\tPickup:\n\t\t\tTNT1 A 0 A_JumpIf(1 == ACS_ExecuteWithResult(992, 0, 2), \"Failed\")\n\t\t\tTNT1 A 0 A_GiveInventory(\"Cell\", 100)\n\t\t\tTNT1 A 0 A_GiveInventory(\"Nail\", 35)\n\t\tStop\n\t\tFailed:\n\t\t\tTNT1 A 0\n\t\tFail\n\t}\n}\n\nActor Slot6AmmoBigSpawner : Randomspawner replaces Cellpack\n{\n\tDropItem \"Cellpack2\", 255, 16\n//\tDropItem \"NailBox\", 255, 16\n\tDropItem \"Slot6AmmoContainer\", 255, 8\n//\tDropItem \"LargeSouls\", 255, 4\n}\n\n// Replicates end here\n\n// Entirely new things\n\nActor MaxArmorBonusNew : MaxArmorBonus\n{\n\tarmor.maxbonus 1\n\tarmor.maxbonusmax 200\n\tarmor.maxsaveamount 400\n\tinventory.pickupmessage \"Picked up a max armor bonus.\"\n\tinventory.pickupsound \"items/pickup\"\n\tStates\n\t{\n\t\tSpawn:\n\t\t\tBON4 ABCDCB 6\n\t\tLoop\n\t}\n}\n\nActor MaxArmorBonusPickup : CustomInventory\n{\n Radius 12\n Height 16\n Inventory.Amount 1\n Inventory.MaxAmount 200\n +COUNTITEM\n Inventory.PickupMessage \"Picked up a max armor bonus.\"\n inventory.pickupsound \"items/pickup\"\n Translation \"112:123=168:188\", \"124:124=43:43\", \"125:127=47:47\"\n States\n {\n Spawn:\n BON2 ABCDCB 6\n Loop\n\tPickup:\n\t\tTNT1 A 0 A_GiveInventory(\"MaxArmorBonusNew\", 1)\n\t\tTNT1 A 0 A_giveInventorY(\"MaxArmorBonusCounter\", 1)\n\tStop\n }\n}\n\nActor MaxHealthBonusNew : MaxHealthBonus\n{\n\tinventory.amount 1\n\tinventory.maxamount 200\n}\n\nActor HealthBonusX : HealthBonus\n{\n\tinventory.maxamount 400\n}\n\nActor MaxHealthBonusCounter : Ammo\n{\n\tinventory.amount 1\n\tinventory.maxamount 200\n\tammo.backpackamount 0\n\t+IGNORESKILL\n}\n\nActor MaxArmorBonusCounter : Ammo\n{\n\tinventory.amount 1\n\tinventory.maxamount 200\n\tammo.backpackamount 0\n\t+IGNORESKILL\n}\n\nActor MaxHealthBonusPickup : CustomInventory\n{\n Radius 12\n Height 16\n Inventory.Amount 1\n Inventory.MaxAmount 200\n +COUNTITEM\n Inventory.PickupMessage \"Picked up a max health bonus.\"\n inventory.pickupsound \"items/pickup\"\n Translation \"0:8=47:47\", \"198:206=173:188\", \"207:207=44:44\", \"240:243=44:47\", \"244:247=47:47\"\n States\n {\n Spawn:\n BON1 ABCDCB 6\n Loop\n\tPickup:\n\t\tTNT1 A 0 A_GiveInventory(\"MaxHealthBonusNew\", 1)\n\t\tTNT1 A 0 A_giveInventorY(\"MaxHealthBonusCounter\", 1)\n\tStop\n }\n}\n\nActor BasicStatBoost : CustomInventory\n{\n\tradius 20\n\theight 16\n\tinventory.pickupmessage \"Picked up a basic stat boost.\"\n\tinventory.pickupsound \"items/pickup\"\n +COUNTITEM\n +INVENTORY.ALWAYSPICKUP\n\tstates\n\t{\n\t\tSpawn:\n\t\t\tBASC ABCD 3 Bright\n\t\tLoop\n\t\tPickup:\n\t\t\tTNT1 A 0 ACS_ExecuteAlways(997, 0)\n\t\tStop\n\t}\n}\n\nActor BackpackCounter : Ammo\n{\n\tinventory.amount 1\n\tinventory.maxamount 70\n\tammo.backpackamount 0\n\tammo.backpackmaxamount 70\n\t+IGNORESKILL\n}\n\nActor NewBackPack : CustomInventory\n{\n Inventory.PickupMessage \"Picked up a backpack, ammo capacities increased!\"\n inventory.pickupsound \"items/backpack\"\n States\n {\n Spawn:\n BPAK A -1\n Loop\n Pickup:\n TNT1 A 0 A_JumpIf(1 == ACS_ExecuteWithResult(994, 0), \"Success\")\n Fail\n Success:\n TNT1 A 0 ACS_ExecuteAlways(996, 0)\n Stop\n }\n}\n\nActor TheRedArmor : BasicArmorPickup\n{\n Radius 20\n Height 16\n Inventory.Pickupmessage \"Picked up the red armor!\"\n Inventory.Icon \"QRARB0\"\n Armor.Savepercent 75.0\n Armor.Saveamount 300\n Inventory.PickupSound \"items/armor\"\n States\n {\n Spawn:\n QRAR A 7 Bright\n\tQRAR B 6\n Loop\n }\n}\n\nActor BlueArmorSpawner : Randomspawner replaces BlueArmor\n{\n\tDropItem \"NewBlueArmor\", 255, 16\n\tDropItem \"TheRedArmor\", 255, 4\n}\n\nACTOR RedCardS2 : CustomInventory replaces RedCard\n{\n inventory.pickupmessage \"$GOTREDCARD\" // \"Picked up a red keycard.\"\n inventory.icon \"STKEYS2\"\n inventory.pickupsound \"keys/keycard\"\n inventory.respawntics -1\n States\n {\n Spawn:\n RKEY A 10\n RKEY B 10 bright\n loop\n Pickup:\n TNT1 A 0 ACS_ExecuteAlways(980,0,0)\n\t TNT1 A 0 ACS_ExecuteAlways(981,0,0)\n\t Stop\n }\n}\n\nACTOR YellowCardS2 : CustomInventory replaces YellowCard\n{\n inventory.pickupmessage \"$GOTYELWCARD\" // \"Picked up a yellow keycard.\"\n inventory.icon \"STKEYS1\"\n inventory.pickupsound \"keys/keycard\"\n inventory.respawntics -1\n States\n {\n Spawn:\n YKEY A 10\n YKEY B 10 bright\n loop\n Pickup:\n TNT1 A 0 ACS_ExecuteAlways(980,0,1)\n\t TNT1 A 0 ACS_ExecuteAlways(981,0,1)\n\t Stop\n }\n}\n\nACTOR BlueCardS2 : CustomInventory replaces BlueCard\n{\n inventory.pickupmessage \"$GOTBLUECARD\" // \"Picked up a blue keycard.\"\n inventory.icon \"STKEYS0\"\n inventory.pickupsound \"keys/keycard\"\n inventory.respawntics -1\n States\n {\n Spawn:\n BKEY A 10\n BKEY B 10 bright\n loop\n Pickup:\n TNT1 A 0 ACS_ExecuteAlways(980,0,2)\n\t TNT1 A 0 ACS_ExecuteAlways(981,0,2)\n\t Stop\n }\n}\n\nACTOR RedSkullS2 : CustomInventory replaces RedSkull\n{\n inventory.pickupmessage \"$GOTREDSKUL\" // \"Picked up a red skull key.\"\n inventory.icon \"STKEYS5\"\n inventory.pickupsound \"keys/skull\"\n inventory.respawntics -1\n States\n {\n Spawn:\n RSKU A 10\n RSKU B 10 bright\n loop\n Pickup:\n TNT1 A 0 ACS_ExecuteAlways(980,0,3)\n\t TNT1 A 0 ACS_ExecuteAlways(981,0,3)\n\t Stop\n }\n}\n\nACTOR YellowSkullS2 : CustomInventory replaces YellowSkull\n{\n inventory.pickupmessage \"$GOTYELWSKUL\" // \"Picked up a yellow skull key.\"\n inventory.icon \"STKEYS4\"\n inventory.pickupsound \"keys/skull\"\n inventory.respawntics -1\n States\n {\n Spawn:\n YSKU A 10\n YSKU B 10 bright\n loop\n Pickup:\n TNT1 A 0 ACS_ExecuteAlways(980,0,4)\n\t TNT1 A 0 ACS_ExecuteAlways(981,0,4)\n\t Stop\n }\n}\n\nACTOR BlueSkullS2 : CustomInventory replaces BlueSkull\n{\n inventory.pickupmessage \"$GOTBLUESKUL\" // \"Picked up a blue skull key.\"\n inventory.icon \"STKEYS3\"\n inventory.pickupsound \"keys/skull\"\n inventory.respawntics -1\n States\n {\n Spawn:\n BSKU A 10\n BSKU B 10 bright\n loop\n Pickup:\n TNT1 A 0 ACS_ExecuteAlways(980,0,5)\n\t TNT1 A 0 ACS_ExecuteAlways(981,0,5)\n\t Stop\n }\n}\n\nActor EvilSphere : Powerupgiver replaces Blursphere\n{\n inventory.pickupmessage \"Evil Sphere!\"\n Powerup.Color GoldMap\n inventory.maxamount 0\n inventory.pickupsound \"items/evilsphere\"\n powerup.type \"Frightener\"\n powerup.duration 1400\n +AUTOACTIVATE\n +INVENTORY.ALWAYSPICKUP\n States\n {\n\tSpawn:\n\t\tHELS ABCD 4 Bright\n\tLoop\n }\n}\n\nACTOR NewBerserk : CustomInventory replaces Berserk\n{\n Game Doom\n SpawnID 134\n +COUNTITEM\n +INVENTORY.ALWAYSPICKUP\n Inventory.PickupMessage \"$GOTBERSERK\" // \"Berserk!\"\n Inventory.PickupSound \"misc/p_pkup\"\n States\n {\n Spawn:\n PSTR A -1\n Stop\n Pickup:\n TNT1 A 0 A_GiveInventory(\"PowerStrength\")\n TNT1 A 0 ACS_ExecuteAlways(818, 0, 0, 3)\n TNT1 A 0 A_SelectWeapon(\" Fists \")\n Stop\n }\n}\n\nActor InvulnerabilitySphere2 : InvulnerabilitySphere replaces InvulnerabilitySphere\n{\n\tinventory.pickupsound \"items/invul\"\n\tInventory.PickupAnnouncerEntry \"\"\n}\n\nACTOR RadSuit2 : Radsuit replaces Radsuit\n{\n\tinventory.pickupsound \"items/radsuit\"\n}\n\nActor SoulSphere2 : CustomInventory replaces SoulSphere\n{\n\tInventory.PickupAnnouncerEntry \"\"\n\tinventory.pickupsound \"items/soulsphere\"\n SpawnID 25\n +COUNTITEM\n +INVENTORY.ALWAYSPICKUP\n Inventory.PickupMessage \"$GOTSUPER\" // \"MegaSphere!\"\n States\n {\n\t\tSpawn:\n\t\t SOUL ABCDCB 6 Bright\n\t\tLoop\n\t\tPickup:\n\t\t TNT1 A 0 ACS_ExecuteAlways(818, 0, 100, 1)\n\t\tStop\n }\n}\n\nActor MegaSphere2 : CustomInventory\n{\n\tInventory.PickupAnnouncerEntry \"\"\n\tinventory.pickupsound \"items/megasphere\"\n SpawnID 132\n +COUNTITEM\n +INVENTORY.ALWAYSPICKUP\n Inventory.PickupMessage \"$GOTMSPHERE\" // \"MegaSphere!\"\n States\n {\n\t\tSpawn:\n\t\t MEGA ABCD 6 Bright\n\t\tLoop\n\t\tPickup:\n\t\t TNT1 A 0 A_GiveInventory(\"NewBlueArmor\", 1)\n\t\t TNT1 A 0 ACS_ExecuteAlways(818, 0, 200, 1)\n\t\tStop\n }\n}\n\nActor UberSphere : CustomInventory\n{\n inventory.pickupmessage \"UberSphere!\"\n inventory.pickupsound \"items/ubersphere\"\n +COUNTITEM\n +INVENTORY.AUTOACTIVATE\n +INVENTORY.ALWAYSPICKUP\n states\n {\n Spawn:\n CARN ABCD 5 Bright\n loop\n Pickup:\n GIGA A 0 A_GiveInventory(\"TheRedArmor\")\n TNT1 A 0 ACS_ExecuteAlways(818, 0, 300, 2)\n stop\n }\n}\n\nActor Megaspherespawner : Randomspawner replaces MegaSphere\n{\n\tDropItem \"MegaSphere2\", 255, 16\n\tDropItem \"UberSphere\", 255, 4\n}\n\nActor FieldKit : CustomInventory\n{\n Inventory.PickupMessage \"You got a field kit\"\n Inventory.PickupSound \"Misc/I_PkUp\"\n Inventory.UseSound \"Items/fieldkit\"\n Inventory.Icon \"FKITC0\"\n Inventory.MaxAmount 15\n +INVBAR\n States\n {\n Spawn:\n FKIT A -1\n\tStop\n\tUse:\n\t\tTNT1 A 0 A_JumpIf(0 == ACS_ExecuteWithResult(819, 0, 1), 2)\n\t\tTNT1 A 0 ACS_ExecuteAlways(818, 0, 25)\n\tStop\n\tFailed:\n\t\tTNT1 A 1\n\tFail\n }\n}\n\nactor Salvationsphere : CustomInventory\n{\n Inventory.PickupMessage \"Salvationsphere!\"\n Inventory.Amount 1\n Inventory.MaxAmount 1\n Inventory.PickupSound \"misc/p_pkup\"\n Inventory.UseSound \"items/salvation\"\n Inventory.Icon \"ARTISALV\"\n Renderstyle Add\n +INVENTORY.FANCYPICKUPSOUND\n +INVBAR\n +COUNTITEM\n +FLOATBOB\n states\n {\n Spawn:\n\tSALV ABCDE 3 Bright\n\tloop\n Use:\n \tTNT1 A 0 A_GiveInventory(\"Soulsphere2\")\n\tTNT1 A 0 A_GiveInventory(\"Salvate\")\n\tTNT1 A 0 A_GiveInventory(\"SalvationEffectGiver\")\n\tStop\n }\n}\n\n//Alternate Salvation\n\nactor Salvate : ArtiTeleport\n{\n +INVENTORY.AUTOACTIVATE\n +INVENTORY.ALWAYSPICKUP\n}\n\nActor PortableShield : CustomInventory\n{\n Inventory.PickupMessage \"Shield!\"\n Inventory.Amount 1\n Inventory.MaxAmount 3\n Inventory.PickupSound \"misc/p_pkup\"\n Inventory.UseSound \"items/shield\"\n Inventory.Icon \"ELPDP\"\n +INVBAR\n States\n {\n\tSpawn:\n\t\tELPD A -1\n\tStop\n\tUse:\n\t\tTNT1 A 0 A_GiveInventory(\"ShieldPowerupGiver\", 1)\n\tStop\n }\n}\n\nActor ShieldPowerupGiver : PowerInvulnerable\n{\n\tpowerup.duration -5\n\tPowerup.Color Goldmap\n\t+INVENTORY.ADDITIVETIME\n}\n\nActor FakeBloodPower : PowerProtection\n{\n\tdamagefactor \"normal\", 1.0\n\tpowerup.duration -30\n\tPowerup.Color \"128 5 5\"\n}\n\nActor BloodRune : CustomInventory\n{\n\tinventory.pickupmessage \"Rune!\"\n\tinventory.maxamount 1\n\tinventory.icon \"BRUICO\"\n\t+INVBAR\n\tStates\n\t{\n\t\tSpawn:\n\t\t\tELPD A -1\n\t\tStop\n\t\tUse:\n\t\t\tTNT1 A 0\n\t\t\tTNT1 A 1 ACS_ExecuteAlways(995, 0, 0)\n\t\tStop\n\t}\n}\n\nActor TripleDamage : CustomInventory\n{\n\tinventory.pickupmessage \"Rune!\"\n\tinventory.maxamount 1\n\tinventory.usesound \"items/triple\"\n\tinventory.icon \"ARTIDMG\"\n\t+INVBAR\n\tStates\n\t{\n\t\tSpawn:\n\t\t\tTNT1 A 1\n\t\tStop\n\t\tUse:\n\t\t\tTNT1 A 0 A_GiveInventory(\"TripleDamagePower\", 1)\n\t\tStop\n\t}\n}\n\nActor TripleDamagePower : PowerDamage\n{\n\tdamagefactor \"normal\", 3.0\n\tpowerup.duration -15\n\tPowerup.Color Redmap\n}\n\nActor BookofTheDead : CustomInventory\n{\n\tinventory.maxamount 1\n\tinventory.icon \"BOTDG0\"\n\tinventory.usesound \"items/bookofthedead\"\n\t+INVBAR\n\tStates\n\t{\n\t\tSpawn:\n\t\t\tTNT1 A 1\n\t\tStop\n\t\tUse:\n\t\t\tTNT1 A 0 A_AlertMonsters\n\t\t\tTNT1 A 0 A_SpawnItem(\"UndeadParticleFX2\")\n\t\t\tTNT1 A 0 A_CustomMissile(\"BookDamager\",32,0,0,2,0)\n\t\tStop\n\t}\n}\n\nActor BookDamager : plasmaball\n{\n\tseesound \"\"\n\tDeathsound \"\"\n\tspeed 0\n\tDamage 1\n\trenderstyle none\n\t+NOINTERACTION\n\tObituary \"%o was struck down by %k's Undead Book\"\n\tStates\n\t{\n\t\tSpawn:\n\t\t\tTNT1 A 1\n\t\tDeath:\n\t\t\tTNT1 A 1 A_BFGSpray(\"UndeadFx\", 40, Random(15, 20))\n\t\tStop\n\t}\n}\n\n// Trick to keep it on player\nActor Talisman : Ammo\n{\n\tinventory.amount 1\n\tinventory.maxamount 50\n\tammo.backpackamount 0\n\tammo.backpackmaxamount 50\n\t+IGNORESKILL\n}\n\nActor UndeadFX\n{\n\t+CANNOTPUSH\n\t+NODAMAGETHRUST\n\t+NOGRAVITY\n\trenderstyle Add\n\tScale .75\n\tObituary \"%o was torn appart by the undead\"\n\tstates\n\t{\n\t\tSpawn:\n\t\t\tTNT1 AA 0 A_PlaySound(\"items/bookofthedeadhit\")\n\t\t\tTNT1 AAAAAAAA 0 A_SpawnItemEx(\"UndeadParticleFX\",0,0,8,random(-4, 4),random(-4, 4),random(2, 5),0,143)\n\t\t\tSRBA EE 2 A_SpawnItemEx(\"UndeadParticleFX\",0,0,8,random(-4, 4),random(-4, 4),random(2, 5),0,143)\n\t\t\tSRBA FF 2 A_SpawnItemEx(\"UndeadParticleFX\",0,0,8,random(-4, 4),random(-4, 4),random(2, 5),0,143)\n\t\t\tSRBA GG 2 A_SpawnItemEx(\"UndeadParticleFX\",0,0,8,random(-4, 4),random(-4, 4),random(2, 5),0,143)\n\t\t\tSRBA HH 2 A_SpawnItemEx(\"UndeadParticleFX\",0,0,8,random(-4, 4),random(-4, 4),random(2, 5),0,143)\n\t\t\tSRBA I 4\n\t\t\tSRBA J 2\n\t\tGoto Fade\n\t\tFade:\n\t\t\tSRBA J 1 A_Fadeout(0.035)\n\t\tLoop\n\t}\n}\n\nActor UndeadParticleFX\n{\n\tHeight 1\n\tRadius 1\n\tAlpha 0.75\n\tRenderstyle Add\n\t+CLIENTSIDEONLY\n\t+NOGRAVITY\n\tScale 0.75\n\tStates\n\t{\n\t\tSpawn:\n\t\t\tSRBA D 2 A_FadeOut(0.075)\n\t\tLoop\n\t}\n}\n\nActor UndeadParticleFX2 : UndeadParticleFX\n{\n\tAlpha 0.9\n\tScale 1.15\n\tStates\n\t{\n\t\tSpawn:\n\t\t\tSRBA K 2 A_FadeOut(0.15)\n\t\tLoop\n\t}\n}\n\nActor BladeVortex : CustomInventory\n{\n\tinventory.maxamount 1\n\tinventory.icon \"SHRUB0\"\n\tinventory.usesound \"items/bladevortex\"\n\t+INVBAR\n\tStates\n\t{\n\t\tSpawn:\n\t\t\tTNT1 A 1\n\t\tStop\n\t\tUse:\n\t\t\tTNT1 A 0 A_AlertMonsters\n\t\t\tTNT1 A 0 A_SetBlend(\"FF FF FF\", 1.0, 35)\n\t\t\tTNT1 A 0 A_GiveInventory(\"VortexTimer\", 1)\n\t\t\tTNT1 A 0 ACS_ExecuteAlways(974, 0, 128)\n\t\tStop\n\t}\n}\n\nActor VortexTimer : PowerProtection\n{\n\tdamagefactor \"normal\", 0.5\n\tpowerup.duration -20\n}\n\nActor VortexBlade\n{\n\tPROJECTILE\n\t+RIPPER\n\tSpecies \"Player\"\n\t+THRUSPECIES\n\t+NOCLIP\n\t+NODAMAGETHRUST\n\t+FORCERADIUSDMG\n\tRadius 5\n\tHeight 8\n\tSpeed 8\n\tScale 0.4\n\tDamage (0)\n\tDamageType \"P_Rail\"\n\n\tStates\n\t{\n\t\tSpawn:\n\t\t\tSHFL ABCD 3 Bright A_Explode(40, 18, 0)\n\t\tLoop\n\t\tDeath:\n\t\t\tTNT1 A 2\n\t\tStop\n\t}\n}\n\n/*\nActor TriggerPower : CustomInventory\n{\n\tinventory.maxamount 1\n\tinventory.icon \"TRIGICO\"\n\tinventory.usesound \"items/trigger\"\n\t+INVBAR\n\tStates\n\t{\n\t\tSpawn:\n\t\t\tTNT1 A 1\n\t\tStop\n\t\tUse:\n\t\t\tTNT1 A 0 A_GiveInventory(\"TheTriggerPower\", 1)\n\t\tStop\n\t}\n}\n\nActor TheTriggerPower : PowerWeaponLevel2\n{\n\tpowerup.duration -15\n\tPowerup.Color \"45 45 45\"\n}\n*/\nActor BackpackSpawner : Randomspawner replaces Backpack\n{\n\tDropItem \"NewBackPack\", 255, 40\n\tDropItem \"UpgradeCrate_MGP\", 255, 1\n\tDropItem \"UpgradeCrate_SGP\", 255, 1\n\tDropItem \"UpgradeCrate_SSGP\", 255, 1\n\tDropItem \"UpgradeCrate_RLP\", 255, 1\n\tDropItem \"UpgradeCrate_GLP\", 255, 1\n\tDropItem \"UpgradeCrate_PRP\", 255, 1\n\tDropItem \"UpgradeCrate_RGP\", 255, 1\n\tDropItem \"UpgradeCrate_MSI\", 255, 1\n\tDropItem \"UpgradeCrate_REU\", 255, 1\n\tDropItem \"UpgradeCrate_BFG\", 255, 1\n\tDropItem \"UpgradeCrate_NAN\", 255, 1\n\tDropItem \"UpgradeCrate_TMP\", 255, 1\n\tDropItem \"UpgradeCrate_SOU\", 255, 1\n}\n\nActor CrateSpawner : RandomSpawner\n{\n\tDropItem \"UpgradeCrate_MGP\", 255\n\tDropItem \"UpgradeCrate_SGP\", 255\n\tDropItem \"UpgradeCrate_SSGP\", 255\n\tDropItem \"UpgradeCrate_RLP\", 255\n\tDropItem \"UpgradeCrate_GLP\", 255\n\tDropItem \"UpgradeCrate_PRP\", 255\n\tDropItem \"UpgradeCrate_RGP\", 255\n\tDropItem \"UpgradeCrate_MSI\", 255\n\tDropItem \"UpgradeCrate_REU\", 255\n\tDropItem \"UpgradeCrate_BFG\", 255\n\tDropItem \"UpgradeCrate_NAN\", 255\n\tDropItem \"UpgradeCrate_TMP\", 255\n\tDropItem \"UpgradeCrate_SOU\", 255\n}\n\nActor RareWeaponSpawner : Randomspawner\n{\n\tDropItem \" Chaingun \", 255, 24\n\tDropItem \"Silver Gun\", 255, 24\n\tDropItem \"Heavy Missile Launcher\", 255, 24\n\tDropItem \"Nailgun\", 255, 24\n\tDropItem \"RailgunPickup\", 255, 8\n\tDropItem \"DeathStaffPickup\", 255, 4\n\tDropItem \"RazorFangPickup\", 255, 4\n\tDropItem \"SunStaffPickup\", 255, 4\n}\n\nActor CrateorWeapon : Randomspawner\n{\n\tDropItem \"RareWeaponSpawner\", 255, 8\n\tDropItem \"CrateSpawner\", 255, 4\n}"
},
{
"source": "pk3",
"name": "Actors/Gore.txt",
"contents": "// Gib generator fixed by LilWhiteMouse - thanks LWM!\nactor NashGore_GibGenerator\n{\n+CLIENTSIDEONLY\nstates\n\t{\n\tSpawn:\n TNT1 A 0\n TNT1 A 0 A_Jump(128, 8)\n TNT1 A 0 A_Jump(128, 4)\n TNT1 A 0 A_Jump(128, 2)\n TNT1 A 1 A_SpawnDebris(\"NashGore_Gib1\", 1)\n stop\n\t TNT1 A 1 A_SpawnDebris(\"NashGore_Gib2\", 1)\n stop\n TNT1 A 0 A_Jump(128, 2)\n TNT1 A 1 A_SpawnDebris(\"NashGore_Gib3\", 1)\n stop\n TNT1 A 1 A_SpawnDebris(\"NashGore_Gib4\", 1)\n stop\n TNT1 A 0 A_Jump(128, 4)\n TNT1 A 0 A_Jump(128, 2)\n TNT1 A 1 A_SpawnDebris(\"NashGore_Gib5\", 1)\n stop\n TNT1 A 1 A_SpawnDebris(\"NashGore_Gib6\", 1)\n stop\n TNT1 A 0 A_Jump(128, 2)\n TNT1 A 1 A_SpawnDebris(\"NashGore_Gib7\", 1)\n stop\n TNT1 A 1 A_SpawnDebris(\"NashGore_Gib8\", 1)\n stop\n }\n}\n\nActor NashGore_GibGenerator_G : NashGore_GibGenerator\n{\n\tTranslation \"168:191=96:111\", \"16:47=96:111\"\n}\n\nActor NashGore_GibGenerator_Green : NashGore_GibGenerator\n{\n\tTranslation \"168:191=112:127\", \"32:47=112:127\"\n}\n\nActor NashGore_GibGenerator_Blue : NashGore_GibGenerator\n{\n\tTranslation \"168:191=192:207\", \"32:47=192:207\"\n}\n\nActor NashGore_GibGenerator_Purple : NashGore_GibGenerator\n{\n\tTranslation \"168:191=250:254\", \"32:47=250:254\"\n}\n\n// Gib 1\nactor NashGore_Gib1\n{\nhealth 1\nradius 8\nheight 8\nmass 1\nscale 0.75\n+CORPSE\n+NOTELEPORT\n+CLIENTSIDEONLY\nstates\n\t{\n\tSpawn:\n\t GIB1 A 8 A_SpawnDebris(\"NashGore_FlyingBlood\",1)\n\t loop\n\tCrash:\n\t GIB1 A 3500\n\t GIB1 AAAAAAAAAA 7 A_FadeOut(0.1)\n\t stop\n\t}\n}\n\n// Gib 2\nactor NashGore_Gib2\n{\nhealth 1\nradius 8\nheight 8\nmass 1\nscale 0.75\n+CORPSE\n+NOTELEPORT\n+CLIENTSIDEONLY\nstates\n\t{\n\tSpawn:\n\t GIB2 A 8 A_SpawnDebris(\"NashGore_FlyingBlood\",1)\n\t loop\n\tCrash:\n\t GIB2 A 3500\n\t GIB2 AAAAAAAAAA 7 A_FadeOut(0.1)\n\t stop\n\t}\n}\n\n// Gib 3\nactor NashGore_Gib3\n{\nhealth 1\nradius 8\nheight 8\nmass 1\nscale 0.75\n+CORPSE\n+NOTELEPORT\n+CLIENTSIDEONLY\nstates\n\t{\n\tSpawn:\n\t GIB3 A 8 A_SpawnDebris(\"NashGore_FlyingBlood\",1)\n\t loop\n\tCrash:\n\t GIB3 A 3500\n\t GIB3 AAAAAAAAAA 7 A_FadeOut(0.1)\n\t stop\n\t}\n}\n\n// Gib 4\nactor NashGore_Gib4\n{\nhealth 1\nradius 8\nheight 8\nmass 1\nscale 0.75\n+CORPSE\n+NOTELEPORT\n+CLIENTSIDEONLY\nstates\n\t{\n\tSpawn:\n\t GIB4 A 8 A_SpawnDebris(\"NashGore_FlyingBlood\",1)\n\t loop\n\tCrash:\n\t GIB4 A 3500\n\t GIB4 AAAAAAAAAA 7 A_FadeOut(0.1)\n\t stop\n\t}\n}\n\n// Gib 5\nactor NashGore_Gib5\n{\nhealth 1\nradius 8\nheight 8\nmass 1\nscale 0.75\n+CORPSE\n+NOTELEPORT\n+CLIENTSIDEONLY\nstates\n\t{\n\tSpawn:\n\t GIB5 A 8 A_SpawnDebris(\"NashGore_FlyingBlood\",1)\n\t loop\n\tCrash:\n\t GIB5 A 3500\n\t GIB5 AAAAAAAAAA 7 A_FadeOut(0.1)\n\t stop\n\t}\n}\n\n// Gib 6\nactor NashGore_Gib6\n{\nhealth 1\nradius 8\nheight 8\nmass 1\nscale 0.75\n+CORPSE\n+NOTELEPORT\n+CLIENTSIDEONLY\nstates\n\t{\n\tSpawn:\n\t GIB6 A 8 A_SpawnDebris(\"NashGore_FlyingBlood\",1)\n\t loop\n\tCrash:\n\t GIB6 A 3500\n\t GIB6 AAAAAAAAAA 7 A_FadeOut(0.1)\n\t stop\n\t}\n}\n\n// Gib 7\nactor NashGore_Gib7\n{\nhealth 1\nradius 8\nheight 8\nmass 1\nscale 0.75\n+CORPSE\n+NOTELEPORT\n+CLIENTSIDEONLY\nstates\n\t{\n\tSpawn:\n\t GIB7 A 8 A_SpawnDebris(\"NashGore_FlyingBlood\",1)\n\t loop\n\tCrash:\n\t GIB7 A 3500\n\t GIB7 AAAAAAAAAA 7 A_FadeOut(0.1)\n\t stop\n\t}\n}\n\n// Gib 8\nactor NashGore_Gib8\n{\nhealth 1\nradius 8\nheight 8\nmass 1\nscale 0.75\n+CORPSE\n+NOTELEPORT\n+CLIENTSIDEONLY\nstates\n\t{\n\tSpawn:\n\t GIB8 A 8 A_SpawnDebris(\"NashGore_FlyingBlood\",1)\n\t loop\n\tCrash:\n\t GIB8 A 3500\n\t GIB8 AAAAAAAAAA 7 A_FadeOut(0.1)\n\t stop\n\t}\n}\n\n// Gib 9 (hand)\nactor NashGore_Gib9\n{\nhealth 1\nradius 8\nheight 8\nmass 1\nscale 0.75\n+CORPSE\n+NOTELEPORT\n+CLIENTSIDEONLY\nstates\n\t{\n\tSpawn:\n\t GIB9 A 8 A_SpawnDebris(\"NashGore_FlyingBlood\",1)\n\t loop\n\tCrash:\n\t GIB9 A 3500\n\t GIB9 AAAAAAAAAA 7 A_FadeOut(0.1)\n\t stop\n\t}\n}\n\nActor NashGore_Gib9_G : NashGore_Gib9\n{\n\tTranslation \"168:191=96:111\", \"16:47=96:111\"\n}\n\n// Gib 10 (arm)\nactor NashGore_Gib10\n{\nhealth 1\nradius 8\nheight 8\nmass 1\nscale 0.75\n+CORPSE\n+NOTELEPORT\n+CLIENTSIDEONLY\nstates\n\t{\n\tSpawn:\n\t GIB0 A 8 A_SpawnDebris(\"NashGore_FlyingBlood\",1)\n\t loop\n\tCrash:\n\t GIB0 A 3500\n\t GIB0 AAAAAAAAAA 7 A_FadeOut(0.1)\n\t stop\n\t}\n}\n\nActor NashGore_Gib10_G : NashGore_Gib10\n{\n\tTranslation \"168:191=96:111\", \"16:47=96:111\"\n}\n\n// Gib 11 (eyeball)\nactor NashGore_Gib11\n{\nhealth 1\nradius 8\nheight 8\nmass 1\nscale 0.75\n+CORPSE\n+NOTELEPORT\n+CLIENTSIDEONLY\nstates\n\t{\n\tSpawn:\n\t GIBI A 8 A_SpawnDebris(\"NashGore_FlyingBlood\",1)\n\t loop\n\tCrash:\n\t GIBI A 3500\n\t GIBI AAAAAAAAAA 7 A_FadeOut(0.1)\n\t stop\n\t}\n}\n\nActor NashGore_Gib11_G : NashGore_Gib11\n{\n\tTranslation \"168:191=96:111\", \"16:47=96:111\"\n}\n\n// Modify the internal Blood actor to spawn flying blood\nactor NashGore_Blood : Blood replaces Blood\n{\n +CLIENTSIDEONLY\n states\n {\n Spawn:\n TNT1 A 0\n TNT1 A 0 A_Jump(128, \"Var1\", \"Var2\", \"Var3\")\n BLUD C 8 A_SpawnDebris(\"NashGore_FlyingBlood\",1)\n BLUD B 8\n BLUD A 8\n stop\n Var1:\n\tTNT1 A 0 A_SpawnItem(\"BloodVariant1\", 0, 0, 0, 1)\n\tTNT1 A 0 A_SpawnDebris(\"NashGore_FlyingBlood\",1)\n\tStop\n\tVar2:\n\tTNT1 A 0 A_SpawnItem(\"BloodVariant2\", 0, 0, 0, 1)\n\tTNT1 A 0 A_SpawnDebris(\"NashGore_FlyingBlood\",1)\n\tStop\n\tVar3:\n\tTNT1 A 0 A_SpawnItem(\"BloodVariant3\", 0, 0, 0, 1)\n\tTNT1 A 0 A_SpawnDebris(\"NashGore_FlyingBlood\",1)\n\tStop\n }\n}\n\nActor BloodVariant1\n{\n\t+NOBLOCKMAP\n\t+NOINTERACTION\n\t+CLIENTSIDEONLY\n\tStates\n\t{\n\t\tSpawn:\n\t\t\tNBLU ABCDEF 3\n\t\tStop\n\t}\n}\n\nActor BloodVariant2 : BloodVariant1\n{\n\tStates\n\t{\n\t\tSpawn:\n\t\t\tNBL2 ABCD 4\n\t\tStop\n\t}\n}\n\nActor BloodVariant3 : BloodVariant1\n{\n\tStates\n\t{\n\t\tSpawn:\n\t\t\tNBL3 ABCDEF 3\n\t\tStop\n\t}\n}\n\nactor NashGore_BloodSplatter : BloodSplatter replaces BloodSplatter\n{\n +CLIENTSIDEONLY\n states\n {\n Spawn:\n TNT1 A 0\n TNT1 A 0 A_Jump(128, \"Var1\", \"Var2\", \"Var3\")\n BLUD C 8 A_SpawnDebris(\"NashGore_FlyingBlood\",1)\n BLUD B 8\n BLUD A 8\n stop\n Var1:\n\tTNT1 A 0 A_SpawnItem(\"BloodVariant1\", 0, 0, 0, 1)\n\tTNT1 A 0 A_SpawnDebris(\"NashGore_FlyingBlood\",1)\n\tStop\n\tVar2:\n\tTNT1 A 0 A_SpawnItem(\"BloodVariant2\", 0, 0, 0, 1)\n\tTNT1 A 0 A_SpawnDebris(\"NashGore_FlyingBlood\",1)\n\tStop\n\tVar3:\n\tTNT1 A 0 A_SpawnItem(\"BloodVariant3\", 0, 0, 0, 1)\n\tTNT1 A 0 A_SpawnDebris(\"NashGore_FlyingBlood\",1)\n\tStop\n }\n}\n\n// Blood sprite that flies outwards and leaves trails behind\nactor NashGore_FlyingBlood\n{\n game Doom\n scale 0.75\n health 1\n radius 8\n height 1\n mass 1\n +CORPSE\n +NOTELEPORT\n +NOBLOCKMAP\n +CLIENTSIDEONLY\n states\n {\n Spawn:\n TNT1 A 0\n TNT1 A 0 A_Jump(128, \"Variant2\")\n SpawnLoop:\n TNT1 A 0 A_JumpIf(waterlevel > 1, \"Remove\")\n B000 A 1 A_SpawnItem(\"NashGore_FlyingBloodTrail\",0,0,0,1)\n B000 A 1 A_JumpIf(waterlevel > 1, \"Remove\")\n B000 A 1 A_SpawnItem(\"NashGore_FlyingBloodTrail\",0,0,0,1)\n B000 A 1 A_JumpIf(waterlevel > 1, \"Remove\")\n B000 B 1 A_SpawnItem(\"NashGore_FlyingBloodTrail\",0,0,0,1)\n B000 B 1 A_JumpIf(waterlevel > 1, \"Remove\")\n B000 B 1 A_SpawnItem(\"NashGore_FlyingBloodTrail\",0,0,0,1)\n B000 B 1 A_JumpIf(waterlevel > 1, \"Remove\")\n B000 C 1 A_SpawnItem(\"NashGore_FlyingBloodTrail\",0,0,0,1)\n B000 C 1 A_JumpIf(waterlevel > 1, \"Remove\")\n B000 C 1 A_SpawnItem(\"NashGore_FlyingBloodTrail\",0,0,0,1)\n B000 C 1 A_JumpIf(waterlevel > 1, \"Remove\")\n B000 D 1 A_SpawnItem(\"NashGore_FlyingBloodTrail\",0,0,0,1)\n B000 D 1 A_JumpIf(waterlevel > 1, \"Remove\")\n B000 D 1 A_SpawnItem(\"NashGore_FlyingBloodTrail\",0,0,0,1)\n B000 D 1\n loop\n Variant2:\n TNT1 A 0 A_JumpIf(waterlevel > 1, \"Remove\")\n B000 E 1 A_SpawnItem(\"NashGore_FlyingBloodTrail2\",0,0,0,1)\n B000 E 1 A_JumpIf(waterlevel > 1, \"Remove\")\n B000 E 1 A_SpawnItem(\"NashGore_FlyingBloodTrail2\",0,0,0,1)\n B000 E 1 A_JumpIf(waterlevel > 1, \"Remove\")\n B000 F 1 A_SpawnItem(\"NashGore_FlyingBloodTrail2\",0,0,0,1)\n B000 F 1 A_JumpIf(waterlevel > 1, \"Remove\")\n B000 F 1 A_SpawnItem(\"NashGore_FlyingBloodTrail2\",0,0,0,1)\n B000 F 1 A_JumpIf(waterlevel > 1, \"Remove\")\n B000 G 1 A_SpawnItem(\"NashGore_FlyingBloodTrail2\",0,0,0,1)\n B000 G 1 A_JumpIf(waterlevel > 1, \"Remove\")\n B000 G 1 A_SpawnItem(\"NashGore_FlyingBloodTrail2\",0,0,0,1)\n B000 G 1 A_JumpIf(waterlevel > 1, \"Remove\")\n B000 H 1 A_SpawnItem(\"NashGore_FlyingBloodTrail2\",0,0,0,1)\n B000 H 1 A_JumpIf(waterlevel > 1, \"Remove\")\n B000 H 1 A_SpawnItem(\"NashGore_FlyingBloodTrail2\",0,0,0,1)\n B000 H 1\n Loop\n Crash:\n TNT1 A 1 A_SpawnItem(\"NashGore_BloodSpot\",0,0,0,1)\n stop\n Remove:\n\tTNT1 A 1\n Stop\n }\n}\n\nactor NashGore_BloodSpot\n{\n game Doom\n radius 12\n height 2\n mass 1\n +NOTELEPORT\n -NOBLOCKMAP\n +CLIENTSIDEONLY\n states\n {\n Spawn:\n TNT1 A 0\n TNT1 A 0 A_PlaySound(\"bloodsplat\")\n TNT1 A 0 A_Jump(256,\"S1\", \"S2\", \"S3\", \"S4\", \"S5\")\n // make the blood spots stay on the ground. 1500 is the default duration.\n S1:\n BSPT A 1500\n stop\n S2:\n BSPT B 1500\n stop\n S3:\n BSPT C 1500\n stop\n S4:\n BSPT D 1500\n stop\n S5:\n GIBX ABCDEF 6\n Stop\n\n }\n}\n\n// Blood trails spawned by FlyingBlood\nactor NashGore_FlyingBloodTrail\n{\n game Doom\n scale 0.70\n mass 1\n +LOWGRAVITY\n +NOTELEPORT\n +NOBLOCKMAP\n +CLIENTSIDEONLY\n states\n {\n Spawn:\n BTRL ABCD 4\n stop\n }\n}\n\nactor NashGore_FlyingBloodTrail2 : NashGore_FlyingBloodTrail\n{\n states\n {\n Spawn:\n\tB000 EFGH 4\n stop\n }\n}\n\nActor MetalScrap\n{\n game Doom\n scale 0.6\n radius 8\n height 1\n health 1\n mass 1\n +CORPSE\n +NOTELEPORT\n +NOBLOCKMAP\n +CLIENTSIDEONLY\n States\n {\n\tSpawn:\n\t\tTNT1 A 0\n\t\tTNT1 A 0 A_Jump(128, \"Variant2\")\n\t\tTNT1 A 1 A_SpawnDebris(\"MetalPiece1\")\n\tStop\n\tVariant2:\n\t\tTNT1 A 1 A_SpawnDebris(\"MetalPiece2\")\n\tStop\n }\n}\n\nActor MetalPiece1 : MetalScrap\n{\n\tStates\n\t{\n\t\tSpawn:\n\t\t\tSCRP ABCD 3\n\t\tLoop\n\t\tCrash:\n\t\t\tTNT1 A 0 A_Jump(256, \"1\", \"2\", \"3\", \"4\")\n\t\t1:\n\t\t\tSCRP AAAAAAAAA 140 A_FadeOut(0.1)\n\t\tStop\n\t\t2:\n\t\t\tSCRP BBBBBBBBB 140 A_FadeOut(0.1)\n\t\tStop\n\t\t3:\n\t\t\tSCRP CCCCCCCCC 140 A_FadeOut(0.1)\n\t\tStop\n\t\t4:\n\t\t\tSCRP DDDDDDDDD 140 A_FadeOut(0.1)\n\t\tStop\n\t}\n}\n\nActor MetalPiece2 : MetalPiece1\n{\n\tStates\n\t{\n\t\tSpawn:\n\t\t\tSCRP EFGH 3\n\t\tLoop\n\t\tCrash:\n\t\t\tTNT1 A 0 A_Jump(256, \"1\", \"2\", \"3\", \"4\")\n\t\t1:\n\t\t\tSCRP EEEEEEEEE 140 A_FadeOut(0.1)\n\t\tStop\n\t\t2:\n\t\t\tSCRP FFFFFFFFF 140 A_FadeOut(0.1)\n\t\tStop\n\t\t3:\n\t\t\tSCRP GGGGGGGGG 140 A_FadeOut(0.1)\n\t\tStop\n\t\t4:\n\t\t\tSCRP HHHHHHHHH 140 A_FadeOut(0.1)\n\t\tStop\n\t}\n}"
},
{
"source": "pk3",
"name": "Actors/Misc.txt",
"contents": "Actor RoundsSurvived : Ammo\n{\n\tinventory.amount 1\n\tinventory.maxamount 255\n\tammo.backpackamount 0\n\tammo.backpackmaxamount 0\n\t+IGNORESKILL\n}\n\nActor LevelToken : Inventory\n{\n\tinventory.maxamount 1\n}\n\nActor SetMyLives : Inventory\n{\n\tinventory.maxamount 1\n}\n\nActor NoDrop : Inventory\n{\n\tinventory.maxamount 1\n}\n\nActor ShockWaveCounter : Ammo\n{\n\tinventory.amount 1\n\tinventory.maxamount 100\n\tammo.backpackamount 0\n\tammo.backpackmaxamount 100\n\tinventory.icon \"STTPRCNT\"\n\t+IGNORESKILL\n}\n\nActor CurrentLives : Ammo\n{\n\tinventory.amount 1\n\tinventory.maxamount 4\n\tammo.backpackamount 0\n\tammo.backpackmaxamount 0\n\t+IGNORESKILL\n}\n\nactor pistolcasing\n{\n\tPROJECTILE\n\t+CLIENTSIDEONLY\n\t+DONTSPLASH\n\t+DOOMBOUNCE\n\t-ACTIVATEIMPACT\n\t-NOGRAVITY\n\t-NOBLOCKMAP\n\tbouncefactor 0.6\n\tscale 0.1\n Radius 3\n SeeSound \"Weapons/bulletcasing\"\n States\n {\n Spawn:\n\t\tMCAS ABCDEFGH 2\n Death:\n MCAS C 0 A_Jump (85, \"death1\", \"death2\", \"death3\")\n MCAS C 0 A_Jump (85, \"death1\", \"death2\", \"death3\")\n MCAS C 0 A_Jump (85, \"death1\", \"death2\", \"death3\")\n\t\tdeath0:\n\t\tMCAS A 10 a_fadeout(0.05)\n goto death0\n\t\tdeath1:\n\t\tMCAS C 10 a_fadeout(0.05)\n goto death1\n\t\tdeath2:\n\t\tMCAS E 10 a_fadeout(0.05)\n goto death2\n\t\tdeath3:\n\t\tMCAS G 10 a_fadeout(0.05)\n goto death3\n }\n}\n\nactor shotguncasing\n{\n\tPROJECTILE\n\t+CLIENTSIDEONLY\n\t+DONTSPLASH\n\t+DOOMBOUNCE\n\t-ACTIVATEIMPACT\n\t-NOGRAVITY\n\t-NOBLOCKMAP\n\tbouncefactor 0.6\n\tscale 0.25\n Radius 3\n seesound \"Weapons/shotguncasing\"\n States\n {\n Spawn:\n LCSC A 1 A_SpawnItemEx (\"casingsmoke\", 0, 0, 0, 0, 0, 1, 0,0, 0)\n LCSC A 1 A_SpawnItemEx (\"casingsmoke\", 0, 0, 0, 0, 0, 1, 0,0, 0)\n LCSC A 1 A_SpawnItemEx (\"casingsmoke\", 0, 0, 0, 0, 0, 1, 0,0, 0)\n LCSC B 1 A_SpawnItemEx (\"casingsmoke\", 0, 0, 0, 0, 0, 1, 0,0, 0)\n LCSC B 1 A_SpawnItemEx (\"casingsmoke\", 0, 0, 0, 0, 0, 1, 0,0, 0)\n LCSC B 1 A_SpawnItemEx (\"casingsmoke\", 0, 0, 0, 0, 0, 1, 0,0, 0)\n LCSC C 1 A_SpawnItemEx (\"casingsmoke\", 0, 0, 0, 0, 0, 1, 0,0, 0)\n LCSC C 1 A_SpawnItemEx (\"casingsmoke\", 0, 0, 0, 0, 0, 1, 0,0, 0)\n LCSC C 1 A_SpawnItemEx (\"casingsmoke\", 0, 0, 0, 0, 0, 1, 0,0, 0)\n LCSC D 1 A_SpawnItemEx (\"casingsmoke\", 0, 0, 0, 0, 0, 1, 0,0, 0)\n LCSC D 1 A_SpawnItemEx (\"casingsmoke\", 0, 0, 0, 0, 0, 1, 0,0, 0)\n LCSC D 1 A_SpawnItemEx (\"casingsmoke\", 0, 0, 0, 0, 0, 1, 0,0, 0)\n LCSC E 1 A_SpawnItemEx (\"casingsmoke\", 0, 0, 0, 0, 0, 1, 0,0, 0)\n LCSC E 1 A_SpawnItemEx (\"casingsmoke\", 0, 0, 0, 0, 0, 1, 0,0, 0)\n LCSC E 1 A_SpawnItemEx (\"casingsmoke\", 0, 0, 0, 0, 0, 1, 0,0, 0)\n LCSC F 1 A_SpawnItemEx (\"casingsmoke\", 0, 0, 0, 0, 0, 1, 0,0, 0)\n LCSC F 1 A_SpawnItemEx (\"casingsmoke\", 0, 0, 0, 0, 0, 1, 0,0, 0)\n LCSC F 1 A_SpawnItemEx (\"casingsmoke\", 0, 0, 0, 0, 0, 1, 0,0, 0)\n LCSC G 1 A_SpawnItemEx (\"casingsmoke\", 0, 0, 0, 0, 0, 1, 0,0, 0)\n LCSC G 1 A_SpawnItemEx (\"casingsmoke\", 0, 0, 0, 0, 0, 1, 0,0, 0)\n LCSC G 1 A_SpawnItemEx (\"casingsmoke\", 0, 0, 0, 0, 0, 1, 0,0, 0)\n LCSC H 1 A_SpawnItemEx (\"casingsmoke\", 0, 0, 0, 0, 0, 1, 0,0, 0)\n LCSC H 1 A_SpawnItemEx (\"casingsmoke\", 0, 0, 0, 0, 0, 1, 0,0, 0)\n LCSC H 1 A_SpawnItemEx (\"casingsmoke\", 0, 0, 0, 0, 0, 1, 0,0, 0)\n Death:\n LCSC C 0 A_Jump (85, \"death1\", \"death2\", \"death3\")\n LCSC C 0 A_Jump (85, \"death1\", \"death2\", \"death3\")\n LCSC C 0 A_Jump (85, \"death1\", \"death2\", \"death3\")\n\t\tdeath0:\n\t\tLCSC A 10 a_fadeout(0.05)\n goto death0\n\t\tdeath1:\n\t\tLCSC C 10 a_fadeout(0.05)\n goto death1\n\t\tdeath2:\n\t\tLCSC E 10 a_fadeout(0.05)\n goto death2\n\t\tdeath3:\n\t\tLCSC G 10 a_fadeout(0.05)\n goto death3\n }\n}\n\nactor exshotguncasing : shotguncasing\n{\n\tTranslation \"13:15=94:96\", \"16:47=80:111\", \"48:79=80:95\", \"174:191=96:111\", \"208:223=80:95\", \"236:239=94:97\"\n States\n {\n Spawn:\n LCSC A 1 A_SpawnItemEx (\"casingsmoke\", 0, 0, 0, 0, 0, 1, 0,0, 0)\n LCSC A 1 A_SpawnItemEx (\"casingsmoke\", 0, 0, 0, 0, 0, 1, 0,0, 0)\n LCSC A 1 A_SpawnItemEx (\"casingsmoke\", 0, 0, 0, 0, 0, 1, 0,0, 0)\n LCSC B 1 A_SpawnItemEx (\"casingsmoke\", 0, 0, 0, 0, 0, 1, 0,0, 0)\n LCSC B 1 A_SpawnItemEx (\"casingsmoke\", 0, 0, 0, 0, 0, 1, 0,0, 0)\n LCSC B 1 A_SpawnItemEx (\"casingsmoke\", 0, 0, 0, 0, 0, 1, 0,0, 0)\n LCSC C 1 A_SpawnItemEx (\"casingsmoke\", 0, 0, 0, 0, 0, 1, 0,0, 0)\n LCSC C 1 A_SpawnItemEx (\"casingsmoke\", 0, 0, 0, 0, 0, 1, 0,0, 0)\n LCSC C 1 A_SpawnItemEx (\"casingsmoke\", 0, 0, 0, 0, 0, 1, 0,0, 0)\n LCSC D 1 A_SpawnItemEx (\"casingsmoke\", 0, 0, 0, 0, 0, 1, 0,0, 0)\n LCSC D 1 A_SpawnItemEx (\"casingsmoke\", 0, 0, 0, 0, 0, 1, 0,0, 0)\n LCSC D 1 A_SpawnItemEx (\"casingsmoke\", 0, 0, 0, 0, 0, 1, 0,0, 0)\n LCSC E 1 A_SpawnItemEx (\"casingsmoke\", 0, 0, 0, 0, 0, 1, 0,0, 0)\n LCSC E 1 A_SpawnItemEx (\"casingsmoke\", 0, 0, 0, 0, 0, 1, 0,0, 0)\n LCSC E 1 A_SpawnItemEx (\"casingsmoke\", 0, 0, 0, 0, 0, 1, 0,0, 0)\n LCSC F 1 A_SpawnItemEx (\"casingsmoke\", 0, 0, 0, 0, 0, 1, 0,0, 0)\n LCSC F 1 A_SpawnItemEx (\"casingsmoke\", 0, 0, 0, 0, 0, 1, 0,0, 0)\n LCSC F 1 A_SpawnItemEx (\"casingsmoke\", 0, 0, 0, 0, 0, 1, 0,0, 0)\n LCSC G 1 A_SpawnItemEx (\"casingsmoke\", 0, 0, 0, 0, 0, 1, 0,0, 0)\n LCSC G 1 A_SpawnItemEx (\"casingsmoke\", 0, 0, 0, 0, 0, 1, 0,0, 0)\n LCSC G 1 A_SpawnItemEx (\"casingsmoke\", 0, 0, 0, 0, 0, 1, 0,0, 0)\n LCSC H 1 A_SpawnItemEx (\"casingsmoke\", 0, 0, 0, 0, 0, 1, 0,0, 0)\n LCSC H 1 A_SpawnItemEx (\"casingsmoke\", 0, 0, 0, 0, 0, 1, 0,0, 0)\n LCSC H 1 A_SpawnItemEx (\"casingsmoke\", 0, 0, 0, 0, 0, 1, 0,0, 0)\n Death:\n LCSC C 0 A_Jump (85, \"death1\", \"death2\", \"death3\")\n LCSC C 0 A_Jump (85, \"death1\", \"death2\", \"death3\")\n LCSC C 0 A_Jump (85, \"death1\", \"death2\", \"death3\")\n\t\tdeath0:\n\t\tLCSC A 10 a_fadeout(0.05)\n goto death0\n\t\tdeath1:\n\t\tLCSC C 10 a_fadeout(0.05)\n goto death1\n\t\tdeath2:\n\t\tLCSC E 10 a_fadeout(0.05)\n goto death2\n\t\tdeath3:\n\t\tLCSC G 10 a_fadeout(0.05)\n goto death3\n }\n}\n\nactor bulletcasing\n{\n\tPROJECTILE\n\t+CLIENTSIDEONLY\n\t+DONTSPLASH\n\t+DOOMBOUNCE\n\t-ACTIVATEIMPACT\n\t-NOGRAVITY\n\t-NOBLOCKMAP\n\tbouncefactor 0.6\n\tscale 0.2\n Radius 3\n SeeSound \"Weapons/bulletcasing\"\n States\n {\n Spawn:\n MCAS A 1 A_SpawnItemEx (\"bulletCASINGSMOKE\", 0, 0, 0, 0, 0, 1, 0,0, 0)\n MCAS A 1 A_SpawnItemEx (\"bulletCASINGSMOKE\", 0, 0, 0, 0, 0, 1, 0,0, 0)\n MCAS B 1 A_SpawnItemEx (\"bulletCASINGSMOKE\", 0, 0, 0, 0, 0, 1, 0,0, 0)\n MCAS B 1 A_SpawnItemEx (\"bulletCASINGSMOKE\", 0, 0, 0, 0, 0, 1, 0,0, 0)\n MCAS C 1 A_SpawnItemEx (\"bulletCASINGSMOKE\", 0, 0, 0, 0, 0, 1, 0,0, 0)\n MCAS C 1 A_SpawnItemEx (\"bulletCASINGSMOKE\", 0, 0, 0, 0, 0, 1, 0,0, 0)\n MCAS D 1 A_SpawnItemEx (\"bulletCASINGSMOKE\", 0, 0, 0, 0, 0, 1, 0,0, 0)\n MCAS D 1 A_SpawnItemEx (\"bulletCASINGSMOKE\", 0, 0, 0, 0, 0, 1, 0,0, 0)\n MCAS E 1 A_SpawnItemEx (\"bulletCASINGSMOKE\", 0, 0, 0, 0, 0, 1, 0,0, 0)\n MCAS E 1 A_SpawnItemEx (\"bulletCASINGSMOKE\", 0, 0, 0, 0, 0, 1, 0,0, 0)\n MCAS F 1 A_SpawnItemEx (\"bulletCASINGSMOKE\", 0, 0, 0, 0, 0, 1, 0,0, 0)\n MCAS F 1 A_SpawnItemEx (\"bulletCASINGSMOKE\", 0, 0, 0, 0, 0, 1, 0,0, 0)\n MCAS G 1 A_SpawnItemEx (\"bulletCASINGSMOKE\", 0, 0, 0, 0, 0, 1, 0,0, 0)\n MCAS G 1 A_SpawnItemEx (\"bulletCASINGSMOKE\", 0, 0, 0, 0, 0, 1, 0,0, 0)\n MCAS H 1 A_SpawnItemEx (\"bulletCASINGSMOKE\", 0, 0, 0, 0, 0, 1, 0,0, 0)\n MCAS H 1 A_SpawnItemEx (\"bulletCASINGSMOKE\", 0, 0, 0, 0, 0, 1, 0,0, 0)\n MCAS A 1 A_SpawnItemEx (\"bulletCASINGSMOKE\", 0, 0, 0, 0, 0, 1, 0,0, 0)\n MCAS A 1 A_SpawnItemEx (\"bulletCASINGSMOKE\", 0, 0, 0, 0, 0, 1, 0,0, 0)\n MCAS B 1 A_SpawnItemEx (\"bulletCASINGSMOKE\", 0, 0, 0, 0, 0, 1, 0,0, 0)\n MCAS B 1 A_SpawnItemEx (\"bulletCASINGSMOKE\", 0, 0, 0, 0, 0, 1, 0,0, 0)\n MCAS C 1 A_SpawnItemEx (\"bulletCASINGSMOKE\", 0, 0, 0, 0, 0, 1, 0,0, 0)\n MCAS C 1 A_SpawnItemEx (\"bulletCASINGSMOKE\", 0, 0, 0, 0, 0, 1, 0,0, 0)\n MCAS D 1 A_SpawnItemEx (\"bulletCASINGSMOKE\", 0, 0, 0, 0, 0, 1, 0,0, 0)\n MCAS D 1 A_SpawnItemEx (\"bulletCASINGSMOKE\", 0, 0, 0, 0, 0, 1, 0,0, 0)\n MCAS E 1 A_SpawnItemEx (\"bulletCASINGSMOKE\", 0, 0, 0, 0, 0, 1, 0,0, 0)\n MCAS E 1 A_SpawnItemEx (\"bulletCASINGSMOKE\", 0, 0, 0, 0, 0, 1, 0,0, 0)\n MCAS F 1 A_SpawnItemEx (\"bulletCASINGSMOKE\", 0, 0, 0, 0, 0, 1, 0,0, 0)\n MCAS F 1 A_SpawnItemEx (\"bulletCASINGSMOKE\", 0, 0, 0, 0, 0, 1, 0,0, 0)\n MCAS G 1 A_SpawnItemEx (\"bulletCASINGSMOKE\", 0, 0, 0, 0, 0, 1, 0,0, 0)\n MCAS G 1 A_SpawnItemEx (\"bulletCASINGSMOKE\", 0, 0, 0, 0, 0, 1, 0,0, 0)\n MCAS H 1 A_SpawnItemEx (\"bulletCASINGSMOKE\", 0, 0, 0, 0, 0, 1, 0,0, 0)\n MCAS H 1 A_SpawnItemEx (\"bulletCASINGSMOKE\", 0, 0, 0, 0, 0, 1, 0,0, 0)\n Death:\n MCAS C 0 A_Jump (85, \"death1\", \"death2\", \"death3\")\n MCAS C 0 A_Jump (85, \"death1\", \"death2\", \"death3\")\n MCAS C 0 A_Jump (85, \"death1\", \"death2\", \"death3\")\n\t\tdeath0:\n\t\tMCAS A 10 a_fadeout(0.05)\n goto death0\n\t\tdeath1:\n\t\tMCAS C 10 a_fadeout(0.05)\n goto death1\n\t\tdeath2:\n\t\tMCAS E 10 a_fadeout(0.05)\n goto death2\n\t\tdeath3:\n\t\tMCAS G 10 a_fadeout(0.05)\n goto death3\n }\n}\n\nactor shotgunsmoke\n{\n\tvspeed 3\n\trenderstyle translucent\n\tscale 0.05\n\talpha 0.25\n\t+clientsideonly\n\t+NOGRAVITY\n\tStates\n\t{\n\t\tspawn:\n\t\tdeath:\n\t\tSMOK ABCDEFGHIJKLNOPQ 1\n\t\tstop\n\t}\n}\n\nactor chaingunsmoke\n{\n\tvspeed 3\n\trenderstyle translucent\n\tscale 0.04\n\talpha 0.25\n\t+clientsideonly\n\t+NOGRAVITY\n\tStates\n\t{\n\t\tspawn:\n\t\tdeath:\n\t\tSMOK ABCDEFGHIJKLNOPQ 1\n\t\tstop\n\t}\n}\n\nactor CASINGSMOKE\n{\n\tvspeed 1\n\trenderstyle translucent\n\tscale 0.025\n\talpha 0.2\n\t+clientsideonly\n\t+NOGRAVITY\n\tStates\n\t{\n\t\tspawn:\n\t\tdeath:\n\t\tSMOK ABCDEFGHIJKLNOPQ 1\n\t\tstop\n\t}\n}\n\nactor bulletCASINGSMOKE\n{\n\tvspeed 1\n\trenderstyle translucent\n\tscale 0.02\n\talpha 0.18\n\t+clientsideonly\n\t+NOGRAVITY\n\tStates\n\t{\n\t\tspawn:\n\t\tdeath:\n\t\tSMOK ABCDEFGHIJKLNOPQ 1\n\t\tstop\n\t}\n}\n\nActor NewBulletPuff : BulletPuff\n{\n\tStates\n\t{\n\t Spawn:\n\t\tPUFF A 0\n\t\tTNT1 A 0 A_SpawnDebris(\"SparkPuff\", 1)\n\t\tPUFF A 4 bright A_PlaySound(\"puff/ric\")\n\t\tPUFF B 4\n\t Melee:\n\t\tPUFF CD 4\n\t\tstop\n\t}\n}\n\nActor SparkPuff : BulletPuff\n{\n\t+DOOMBOUNCE\n\t+FLOORCLIP\n\t+DONTSPLASH\n\t+NOTELEPORT\n\t-NOGRAVITY\n\t-LOWGRAVITY\n\t-ALLOWPARTICLES\n\t+clientsideonly\n\tHealth 4\n\tRadius 4\n\tHeight 8\n\tSpeed 1\n\tMass 0\n\tScale 0.125\n\tStates\n\t{\n\t Spawn:\n\t Death:\n\t\tBPFF ABABAB 1 bright\n\t\tBPFF A 0 bright\n\t\tBPFF ABABABABAB 1 bright A_FadeOut(0.01)\n\t\tStop\n\t}\n}\n\n// Taken from Zdoomwars\nACTOR ExplosionFX\n{\n Radius 10\n Height 10\n Speed 5\n PROJECTILE\n +CLIENTSIDEONLY\n +NOCLIP\n States\n {\n Spawn:\n MISL B 2\n MISL B 2 BRIGHT A_PlaySound (\"weapons/rocklx\")\n MISL B 4 BRIGHT\n MISL C 6\n MISL D 4\n Stop\n }\n}\n\nActor ExplosionFXGreen : ExplosionFX\n{\n States\n {\n Spawn:\n CROC C 2\n CROC C 2 BRIGHT A_PlaySound (\"weapons/rocklx\")\n CROC D 4 BRIGHT\n CROC D 6\n CROC E 4\n Stop\n }\n}\n\nActor ExplosionFXMagic : ExplosionFX\n{\n Alpha 0.85\n Renderstyle Add\n States\n {\n Spawn:\n\t D2FX GHI 4\n\t D2FX JK 3\n\t D2FX L 2\n Stop\n }\n}\n\nActor ExplosionFXMagicBlue : ExplosionFXMagic\n{\n States\n {\n Spawn:\n\t D3FX GHI 4\n\t D3FX JK 3\n\t D3FX L 2\n Stop\n }\n}\n\nActor SalvationGlow\n{\n +NoGravity\n +NoBlockmap\n +NoInteraction\n -Solid\n Radius 0\n Height 0\n States\n {\n\tSpawn:\n\t\tTNT1 A 35\n\tStop\n }\n}\n\nActor BaseSparkle\n{\n +Missile\n +NoGravity\n +NoBlockmap\n +NoInteraction\n -Solid\n Radius 0\n Height 0\n RenderStyle Add\n Alpha 1.0\n Scale 0.25\n States\n {\n Spawn:\n SKFX A 0 Bright\n SKFX A 1 Bright A_FadeOut(0.1)\n SKFX A 1 Bright\n SKFX A 1 Bright A_FadeOut(0.1)\n SKFX A 1 Bright\n SKFX A 1 Bright A_FadeOut(0.1)\n SKFX A 1 Bright\n SKFX A 1 Bright A_FadeOut(0.1)\n SKFX A 1 Bright\n SKFX A 1 Bright A_FadeOut(0.1)\n SKFX A 1 Bright\n SKFX A 1 Bright A_FadeOut(0.1)\n SKFX A 1 Bright\n SKFX A 1 Bright A_FadeOut(0.1)\n SKFX A 1 Bright\n SKFX A 1 Bright A_FadeOut(0.1)\n SKFX A 10 Bright\n Stop\n }\n}\n\nActor SalvationEffectGiver : CustomInventory\n{\n\tinventory.maxamount 1\n\t+INVENTORY.ALWAYSPICKUP\n\tStates\n\t{\n\t\tPickup:\n\t\t\tTNT1 A 0 A_SpawnItem(\"SalvationEffectSpawner\")\n\t\t\tTNT1 A 0 A_SpawnItem(\"SalvationGlow\")\n\t\tStop\n\t}\n}\n\nactor SalvationEffectSpawner\n{\n\ttranslation \"112:127=196:207\"\n\t+NoBlockMap +NoGravity +NoSector +NoInteraction +NoClip -Solid +CLIENTSIDEONLY\n states\n {\n Spawn:\n \tTNT1 A 0\n \tTNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1 A_SpawnItemEx (\"BaseSparkle\", random(-32,32), random(-32,32), random(0,32), 0, 0, 3, 0, 129)\n \tStop\n }\n\n}\n\nActor WaterParticleX\n{\n Height 0\n Radius 0\n Mass 0\n +Missile\n +NoBlockMap\n -NoGravity\n +DontSplash\n +DoomBounce\n +FORCEXYBILLBOARD\n +NOCLIP\n BounceFactor 0.1\n Gravity 0.8\n RenderStyle Add\n Scale 1.0\n //Speed 2\n Speed 4\n States\n {\n Spawn:\n SPKW B 1 Bright\n TNT1 A 0 A_ChangeFlag(DOOMBOUNCE, 0)\n Goto Stand\n Stand:\n SPKW B 2 Bright A_FadeOut(0.06)\n Loop\n Death:\n TNT1 A 1\n TNT1 A 0\n Stop\n\n }\n}\n\n// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\n// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-\n\n//********** Splashes **********\n\nactor WaterSplashBase2\n{\n Radius 1\n Height 1\n Mass 1\n alpha .6\n Scale 1.1\n +DONTSPLASH\n +NOGRAVITY\n +NOCLIP\n States\n {\n Spawn:\n SPSH E 6\n\tTNT1 FFF 0 A_CustomMissile (\"WaterParticleX\", 12, 0, random (0, 360), 2, random (70, 110))\n SPSH FGHIJKJKJK 6\n Stop\n }\n}\n\nactor WaterSplashBaseSmall\n{\n Radius 1\n Height 1\n Mass 1\n alpha .6\n Scale 0.7\n +DONTSPLASH\n +NOGRAVITY\n +NOCLIP\n States\n {\n Spawn:\n SPSH E 6\n TNT1 FFF 0 A_CustomMissile (\"WaterParticleX\", 12, 0, random (0, 360), 2, random (70, 110))\n SPSH FGHIJKJK 6\n Stop\n }\n}\n\nACTOR WaterSplashDrop\n{\n\trenderstyle add\n\tRadius 1\n Height 1\n\talpha .5\n\tHealth 5\n\tMass 400\n\tGravity 1.0\n\tScale\t1.1\n\tprojectile\n\t- nogravity\n\t+DONTSPLASH\n\t+CORPSE\n +EXPLODEONWATER\n\tStates\n\t{\n\t\tSPSH A 6\n\t\tSPSH B 7\n\t\tSPSH C 7\n\t\tSPSH D 6\n\t\tSPSH A 7\n\t\tStop\n\t}\n}\n\nactor BloodSplashBaseSmall\n{\n Radius 1\n Height 1\n Mass 1\n alpha .6\n Scale 0.5\n +NOCLIP\n +DONTSPLASH\n +NOGRAVITY\n States\n {\n Spawn:\n BSPH E 3\n BSPH F 3 A_SpawnDebris(\"BloodSplashDrop\")\n BSPH G 3\n BSPH H 3\n BSPH I 3\n BSPH J 3\n BSPH K 3\n Stop\n }\n}\n\nACTOR BloodSplashDrop\n{\n\trenderstyle add\n\tRadius 1\n\tHeight 1\n\talpha .5\n\tHealth 5\n\tMass 9\n\tScale\t.3\n\tprojectile\n\t- nogravity\n\t+DONTSPLASH\n\t+CORPSE\n +EXPLODEONWATER\n\tStates\n\t{\n\t\tBSPH A 7\n\t\tBSPH B 7\n\t\tBSPH C 7\n\t\tBSPH D 7\n\t\tBSPH A 7\n\t\tStop\n\t}\n}\n\nACTOR WanderingSpirit : KoraxSpirit\n{\n Speed 8\n Projectile\n +NOCLIP\n -ACTIVATEPCROSS\n -ACTIVATEIMPACT\n RenderStyle Translucent\n Alpha 0.5\n States\n {\n Spawn:\n SPIR ABABABAB 5 A_KSpiritRoam\n Death:\n SPIR DEFGHI 5\n Stop\n }\n}\n\nActor BaseExplosionDamage // this is necessary, calling A_Explode in actor can cause unwanted effects.\n{\n\tSpeed 0\n\tHeight 4\n\tRadius 4\n\tDamage (0)\n\t+NOBLOCKMAP\n\t+NOGRAVITY\n\t-TELESTOMP\n\tStates\n\t{\n\t\tSpawn:\n\t\t\tTNT1 A 0\n\t\t\tTNT1 A 1\n\t\tStop\n\t}\n}\n\nactor SmoothFog : TeleportFog replaces TeleportFog\n{\nstates\n\t{\n\tspawn:\n\tSFOG ABCDEFGHIJKLMNOPQRSTRQPO 2 bright\n\tstop\n\t}\n}\n\n// By Tormentor667\nActor SoulUseEffect\n{\n\t+Missile\n\t+NoGravity\n\t+NoBlockmap\n\t+NoInteraction\n\t+CLIENTSIDEONLY\n\t-Solid\n\tRadius 0\n\tHeight 0\n\tRenderStyle Add\n\tAlpha 0.01\n\tScale 0.6\n\tStates\n\t{\n\tSpawn:\n\t\tSPFX AAAAA 1 Bright A_FadeIn(0.2)\n\t\tSPFX AAAAAAAAAAAAAAAA 1 Bright A_FadeOut(0.06)\n\t\tStop\n\t}\n}\n\nActor SoulEffectSpawner\n{\n\t+NoBlockMap\n\t+NoGravity\n\t+NoInteraction\n\t-Solid\n\t+CLIENTSIDEONLY\n\tStates\n\t{\n\tSpawn:\n\t\tTNT1 A 0\n\t\tTNT1 A 1 A_SpawnItemEx(\"SoulUseEffect\", random(-32, 32), random(-32, 32), random(0, 8), 0, 0, random(2,8), 0, 129, 0)\n\t\tTNT1 A 0 A_SpawnItemEx(\"SoulUseEffect\", random(-32, 32), random(-32, 32), random(0, 8), 0, 0, random(2,8), 0, 129, 0)\n\t\tTNT1 A 1 A_SpawnItemEx(\"SoulUseEffect\", random(-32, 32), random(-32, 32), random(0, 8), 0, 0, random(2,8), 0, 129, 0)\n\t\tTNT1 A 0 A_SpawnItemEx(\"SoulUseEffect\", random(-32, 32), random(-32, 32), random(0, 8), 0, 0, random(2,8), 0, 129, 0)\n\t\tTNT1 A 1 A_SpawnItemEx(\"SoulUseEffect\", random(-32, 32), random(-32, 32), random(0, 8), 0, 0, random(2,8), 0, 129, 0)\n\t\tTNT1 A 0 A_SpawnItemEx(\"SoulUseEffect\", random(-32, 32), random(-32, 32), random(0, 8), 0, 0, random(2,8), 0, 129, 0)\n\t\tTNT1 A 1 A_SpawnItemEx(\"SoulUseEffect\", random(-32, 32), random(-32, 32), random(0, 8), 0, 0, random(2,8), 0, 129, 0)\n\t\tTNT1 A 0 A_SpawnItemEx(\"SoulUseEffect\", random(-32, 32), random(-32, 32), random(0, 8), 0, 0, random(2,8), 0, 129, 0)\n\t\tTNT1 A 1 A_SpawnItemEx(\"SoulUseEffect\", random(-32, 32), random(-32, 32), random(0, 8), 0, 0, random(2,8), 0, 129, 0)\n\t\tTNT1 A 0 A_SpawnItemEx(\"SoulUseEffect\", random(-32, 32), random(-32, 32), random(0, 8), 0, 0, random(2,8), 0, 129, 0)\n\t\tTNT1 A 1 A_SpawnItemEx(\"SoulUseEffect\", random(-32, 32), random(-32, 32), random(0, 8), 0, 0, random(2,8), 0, 129, 0)\n\t\tTNT1 A 0 A_SpawnItemEx(\"SoulUseEffect\", random(-32, 32), random(-32, 32), random(0, 8), 0, 0, random(2,8), 0, 129, 0)\n\t\tTNT1 A 1 A_SpawnItemEx(\"SoulUseEffect\", random(-32, 32), random(-32, 32), random(0, 8), 0, 0, random(2,8), 0, 129, 0)\n\t\tTNT1 A 0 A_SpawnItemEx(\"SoulUseEffect\", random(-32, 32), random(-32, 32), random(0, 8), 0, 0, random(2,8), 0, 129, 0)\n\t\tTNT1 A 1 A_SpawnItemEx(\"SoulUseEffect\", random(-32, 32), random(-32, 32), random(0, 8), 0, 0, random(2,8), 0, 129, 0)\n\t\tTNT1 A 0 A_SpawnItemEx(\"SoulUseEffect\", random(-32, 32), random(-32, 32), random(0, 8), 0, 0, random(2,8), 0, 129, 0)\n\t\tTNT1 A 1 A_SpawnItemEx(\"SoulUseEffect\", random(-32, 32), random(-32, 32), random(0, 8), 0, 0, random(2,8), 0, 129, 0)\n\t\tTNT1 A 0 A_SpawnItemEx(\"SoulUseEffect\", random(-32, 32), random(-32, 32), random(0, 8), 0, 0, random(2,8), 0, 129, 0)\n\t\tTNT1 A 1 A_SpawnItemEx(\"SoulUseEffect\", random(-32, 32), random(-32, 32), random(0, 8), 0, 0, random(2,8), 0, 129, 0)\n\t\tTNT1 A 0 A_SpawnItemEx(\"SoulUseEffect\", random(-32, 32), random(-32, 32), random(0, 8), 0, 0, random(2,8), 0, 129, 0)\n\t\tStop\n\t}\n}\n\nActor SoulEffectSpawnerLarge : SoulEffectSpawner\n{\n\tStates\n\t{\n\tSpawn:\n\t\tTNT1 A 0\n\t\tTNT1 A 1 A_SpawnItemEx(\"SoulUseEffect\", random(-64, 64), random(-64, 64), random(0, 16), 0, 0, random(2,8), 0, 129, 0)\n\t\tTNT1 A 0 A_SpawnItemEx(\"SoulUseEffect\", random(-64, 64), random(-64, 64), random(0, 16), 0, 0, random(2,8), 0, 129, 0)\n\t\tTNT1 A 1 A_SpawnItemEx(\"SoulUseEffect\", random(-64, 64), random(-64, 64), random(0, 16), 0, 0, random(2,8), 0, 129, 0)\n\t\tTNT1 A 0 A_SpawnItemEx(\"SoulUseEffect\", random(-64, 64), random(-64, 64), random(0, 16), 0, 0, random(2,8), 0, 129, 0)\n\t\tTNT1 A 1 A_SpawnItemEx(\"SoulUseEffect\", random(-64, 64), random(-64, 64), random(0, 16), 0, 0, random(2,8), 0, 129, 0)\n\t\tTNT1 A 0 A_SpawnItemEx(\"SoulUseEffect\", random(-64, 64), random(-64, 64), random(0, 16), 0, 0, random(2,8), 0, 129, 0)\n\t\tTNT1 A 1 A_SpawnItemEx(\"SoulUseEffect\", random(-64, 64), random(-64, 64), random(0, 16), 0, 0, random(2,8), 0, 129, 0)\n\t\tTNT1 A 0 A_SpawnItemEx(\"SoulUseEffect\", random(-64, 64), random(-64, 64), random(0, 16), 0, 0, random(2,8), 0, 129, 0)\n\t\tTNT1 A 1 A_SpawnItemEx(\"SoulUseEffect\", random(-64, 64), random(-64, 64), random(0, 16), 0, 0, random(2,8), 0, 129, 0)\n\t\tTNT1 A 0 A_SpawnItemEx(\"SoulUseEffect\", random(-64, 64), random(-64, 64), random(0, 16), 0, 0, random(2,8), 0, 129, 0)\n\t\tTNT1 A 1 A_SpawnItemEx(\"SoulUseEffect\", random(-64, 64), random(-64, 64), random(0, 16), 0, 0, random(2,8), 0, 129, 0)\n\t\tTNT1 A 0 A_SpawnItemEx(\"SoulUseEffect\", random(-64, 64), random(-64, 64), random(0, 16), 0, 0, random(2,8), 0, 129, 0)\n\t\tTNT1 A 1 A_SpawnItemEx(\"SoulUseEffect\", random(-64, 64), random(-64, 64), random(0, 16), 0, 0, random(2,8), 0, 129, 0)\n\t\tTNT1 A 0 A_SpawnItemEx(\"SoulUseEffect\", random(-64, 64), random(-64, 64), random(0, 16), 0, 0, random(2,8), 0, 129, 0)\n\t\tTNT1 A 1 A_SpawnItemEx(\"SoulUseEffect\", random(-64, 64), random(-64, 64), random(0, 16), 0, 0, random(2,8), 0, 129, 0)\n\t\tTNT1 A 0 A_SpawnItemEx(\"SoulUseEffect\", random(-64, 64), random(-64, 64), random(0, 16), 0, 0, random(2,8), 0, 129, 0)\n\t\tTNT1 A 1 A_SpawnItemEx(\"SoulUseEffect\", random(-64, 64), random(-64, 64), random(0, 16), 0, 0, random(2,8), 0, 129, 0)\n\t\tTNT1 A 0 A_SpawnItemEx(\"SoulUseEffect\", random(-64, 64), random(-64, 64), random(0, 16), 0, 0, random(2,8), 0, 129, 0)\n\t\tTNT1 A 1 A_SpawnItemEx(\"SoulUseEffect\", random(-64, 64), random(-64, 64), random(0, 16), 0, 0, random(2,8), 0, 129, 0)\n\t\tTNT1 A 0 A_SpawnItemEx(\"SoulUseEffect\", random(-64, 64), random(-64, 64), random(0, 16), 0, 0, random(2,8), 0, 129, 0)\n\t\tTNT1 A 1 A_SpawnItemEx(\"SoulUseEffect\", random(-64, 64), random(-64, 64), random(0, 16), 0, 0, random(2,8), 0, 129, 0)\n\t\tTNT1 A 0 A_SpawnItemEx(\"SoulUseEffect\", random(-64, 64), random(-64, 64), random(0, 16), 0, 0, random(2,8), 0, 129, 0)\n\t\tTNT1 A 1 A_SpawnItemEx(\"SoulUseEffect\", random(-64, 64), random(-64, 64), random(0, 16), 0, 0, random(2,8), 0, 129, 0)\n\t\tTNT1 A 0 A_SpawnItemEx(\"SoulUseEffect\", random(-64, 64), random(-64, 64), random(0, 16), 0, 0, random(2,8), 0, 129, 0)\n\t\tTNT1 A 1 A_SpawnItemEx(\"SoulUseEffect\", random(-64, 64), random(-64, 64), random(0, 16), 0, 0, random(2,8), 0, 129, 0)\n\t\tTNT1 A 0 A_SpawnItemEx(\"SoulUseEffect\", random(-64, 64), random(-64, 64), random(0, 16), 0, 0, random(2,8), 0, 129, 0)\n\t\tTNT1 A 1 A_SpawnItemEx(\"SoulUseEffect\", random(-64, 64), random(-64, 64), random(0, 16), 0, 0, random(2,8), 0, 129, 0)\n\t\tTNT1 A 0 A_SpawnItemEx(\"SoulUseEffect\", random(-64, 64), random(-64, 64), random(0, 16), 0, 0, random(2,8), 0, 129, 0)\n\t\tTNT1 A 1 A_SpawnItemEx(\"SoulUseEffect\", random(-64, 64), random(-64, 64), random(0, 16), 0, 0, random(2,8), 0, 129, 0)\n\t\tTNT1 A 0 A_SpawnItemEx(\"SoulUseEffect\", random(-64, 64), random(-64, 64), random(0, 16), 0, 0, random(2,8), 0, 129, 0)\n\t\tTNT1 A 1 A_SpawnItemEx(\"SoulUseEffect\", random(-64, 64), random(-64, 64), random(0, 16), 0, 0, random(2,8), 0, 129, 0)\n\t\tTNT1 A 0 A_SpawnItemEx(\"SoulUseEffect\", random(-64, 64), random(-64, 64), random(0, 16), 0, 0, random(2,8), 0, 129, 0)\n\t\tTNT1 A 1 A_SpawnItemEx(\"SoulUseEffect\", random(-64, 64), random(-64, 64), random(0, 16), 0, 0, random(2,8), 0, 129, 0)\n\t\tTNT1 A 0 A_SpawnItemEx(\"SoulUseEffect\", random(-64, 64), random(-64, 64), random(0, 16), 0, 0, random(2,8), 0, 129, 0)\n\t\tTNT1 A 1 A_SpawnItemEx(\"SoulUseEffect\", random(-64, 64), random(-64, 64), random(0, 16), 0, 0, random(2,8), 0, 129, 0)\n\t\tTNT1 A 0 A_SpawnItemEx(\"SoulUseEffect\", random(-64, 64), random(-64, 64), random(0, 16), 0, 0, random(2,8), 0, 129, 0)\n\t\tTNT1 A 1 A_SpawnItemEx(\"SoulUseEffect\", random(-64, 64), random(-64, 64), random(0, 16), 0, 0, random(2,8), 0, 129, 0)\n\t\tTNT1 A 0 A_SpawnItemEx(\"SoulUseEffect\", random(-64, 64), random(-64, 64), random(0, 16), 0, 0, random(2,8), 0, 129, 0)\n\t\tTNT1 A 1 A_SpawnItemEx(\"SoulUseEffect\", random(-64, 64), random(-64, 64), random(0, 16), 0, 0, random(2,8), 0, 129, 0)\n\t\tTNT1 A 0 A_SpawnItemEx(\"SoulUseEffect\", random(-64, 64), random(-64, 64), random(0, 16), 0, 0, random(2,8), 0, 129, 0)\n\t\tStop\n\t}\n}"
},
{
"source": "pk3",
"name": "Actors/Player.txt",
"contents": "Actor TheDoomGuy : DoomPlayer replaces DoomPlayer\n{\n\t// Never remove the original pistol and fist, causes weird errors\n\tPlayer.StartItem \" Pistol \"\n\tPlayer.StartItem \" Fists \"\n\tPlayer.StartItem \"Clip\", 50\n\tPlayer.StartItem \"SetMyLives\"\n\tPlayer.WeaponSlot 1, \" Fists\", \" Chainsaw\"\n\tPlayer.WeaponSlot 2, \" Pistol \"\n\tPlayer.Face \"STF\"\n\tSpecies \"Player\"\n\tDamageFactor \"P_Rail\", 0.0\n\tStates\n\t{\n\t\tPain.PaineCurse:\n\t\tTNT1 A 0 A_GiveInventory(\"Cursed\",1)\n\t\tTNT1 A 0 A_PlaySound(\"CurseHit\", CHAN_AUTO, 1.0, 0)\n\t\tGoto See\n\t\tXdeath:\n\t\tDeath.Explosives:\n\t\tPLAY O 0 A_PlayerSkinCheck(\"AltSkinXDeath\")\n\t XDeath1:\n\t\tTNT1 A 0 A_SpawnDebris(\"NashGore_Gib9\",0)\n\t\tTNT1 A 0 A_SpawnDebris(\"NashGore_Gib10\",0)\n\t\tTNT1 A 0 A_SpawnDebris(\"NashGore_Gib11\",0)\n\t\tTNT1 A 0 A_SpawnDebris(\"NashGore_Gib11\",0)\n\t\tTNT1 A 0 A_SpawnItem(\"NashGore_GibGenerator\",0,0,0,0)\n\t\tPLAY O 5\n\t\tTNT1 A 0 A_SpawnItem(\"NashGore_GibGenerator\",0,0,0,0)\n\t\tPLAY P 5 A_XScream\n\t\tTNT1 A 0 A_SpawnItem(\"NashGore_GibGenerator\",0,0,0,0)\n\t\tPLAY Q 5 A_NoBlocking\n\t\tTNT1 A 0 A_SpawnItem(\"NashGore_GibGenerator\",0,0,0,0)\n\t\tPLAY RSTUV 5\n\t\tPLAY W -1\n\t\tStop\n\t AltSkinDeath:\n\t\tTNT1 A 0 A_SpawnDebris(\"NashGore_Gib9\",0)\n\t\tTNT1 A 0 A_SpawnDebris(\"NashGore_Gib10\",0)\n\t\tTNT1 A 0 A_SpawnDebris(\"NashGore_Gib11\",0)\n\t\tTNT1 A 0 A_SpawnDebris(\"NashGore_Gib11\",0)\n\t\tTNT1 A 0 A_SpawnItem(\"NashGore_GibGenerator\",0,0,0,0)\n\t\tPLAY H 6\n\t\tTNT1 A 0 A_SpawnItem(\"NashGore_GibGenerator\",0,0,0,0)\n\t\tPLAY I 6 A_PlayerScream\n\t\tTNT1 A 0 A_SpawnItem(\"NashGore_GibGenerator\",0,0,0,0)\n\t\tPLAY JK 6\n\t\tPLAY L 6 A_NoBlocking\n\t\tPLAY MNO 6\n\t\tPLAY P -1\n\t\tStop\n\t AltSkinXDeath:\n\t\tTNT1 A 0 A_SpawnDebris(\"NashGore_Gib9\",0)\n\t\tTNT1 A 0 A_SpawnDebris(\"NashGore_Gib10\",0)\n\t\tTNT1 A 0 A_SpawnDebris(\"NashGore_Gib11\",0)\n\t\tTNT1 A 0 A_SpawnDebris(\"NashGore_Gib11\",0)\n\t\tTNT1 A 0 A_SpawnItem(\"NashGore_GibGenerator\",0,0,0,0)\n\t\tPLAY Q 5 A_PlayerScream\n\t\tTNT1 A 0 A_SpawnItem(\"NashGore_GibGenerator\",0,0,0,0)\n\t\tPLAY R 0 A_NoBlocking\n\t\tTNT1 A 0 A_SpawnItem(\"NashGore_GibGenerator\",0,0,0,0)\n\t\tPLAY R 5 A_SkullPop\n\t\tTNT1 A 0 A_SpawnItem(\"NashGore_GibGenerator\",0,0,0,0)\n\t\tPLAY STUVWX 5\n\t\tPLAY Y -1\n\t\tStop\n\t\tDeath.ImpFire:\n\t\tDeath.CacoFire:\n\t\tDeath.PaineFire:\n\t\tDeath.BaronsFire:\n\t\tDeath.FattyFire:\n\t\tDeath.ArachnoFire:\n\t\tDeath.VileFire:\n\t\tDeath.Fire:\n\t\tPLAY G 3\n\t\tTNT1 A 0 A_Fall\n\t\tTNT1 A 0 A_Scream\n \tTNT1 A 0 A_SpawnItem(\"BurnDeath1\",1)\n\t\tBLAN A -1\n\t\tStop\n\t}\n}\n\nACTOR PowerHalfProtection : PowerProtection\n{\n DamageFactor \"Normal\", 2\n}\n\nACTOR Cursed : PowerupGiver\n{\n -INVENTORY.INVBAR\n +INVENTORY.AUTOACTIVATE\n Inventory.MaxAmount 0\n Powerup.Color \"Red2\" 0.3\n Powerup.Type \"PowerHalfProtection\"\n Powerup.Duration 1050\n}\n\nActor ShockExplosionFX\n{\n\tScale 0.6\n\tAlpha 0.85\n\tRenderstyle Add\n\t+NOINTERACTION\n\t+CLIENTSIDEONLY\n\n\tStates\n\t{\n\t\tSpawn:\n\t\t\tDPLX D 6 Bright\n\t\t\tDPLX E 2 Bright\n\t\t\tDPLX EFF 3 Bright A_Fadeout(0.1)\n\t\t\tDPLX GGGG 2 Bright A_Fadeout(0.1)\n\t\tStop\n\t}\n}\n\nActor ShockLighter\n{\n\t+NOGRAVITY\n\t+NOINTERACTION\n\t-SOLID\n\t+NOBLOCKMAP\n\tRadius 0\n\tHeight 0\n\tstates\n\t{\n\t\tSpawn:\n\t\t\tTNT1 A 18\n\t\tStop\n\t}\n}\n\nactor BFireTrail\n{\n radius 13\n height 8\n RENDERSTYLE ADD\n Scale 0.3\n alpha 0.9\n Vspeed 2\n +NOBLOCKMAP\n +RANDOMIZE\n +NOGRAVITY\n +WINDTHRUST\n +CLIENTSIDEONLY\n states\n {\n Spawn:\n TNT1 A 0\n TNT1 A 0 A_Jump(128, \"Var2\")\n TNT1 A 0 A_Jump(220,1,2,3,4,5,6,7)\n SFIR ABCDEFGH 4 bright\n stop\n Var2:\n TNT1 A 0 A_Jump(220,1,2,3,4,5,6,7)\n SFIR IJKLMNOP 4 bright\n Stop\n }\n}\n\nactor NapalmDebris\n{\n health 5\n radius 1\n height 1\n Speed 10\n Scale 0.2\n PROJECTILE\n +NOBLOCKMAP\n +DONTSPLASH\n +RANDOMIZE\n -NOGRAVITY\n -SOLID\n +WINDTHRUST\n //RENDERSTYLE ADD\n +CLIENTSIDEONLY\n states\n {\n Spawn:\n FSPK A 0 bright A_Jump(192,3,4,6,8)\n FSPK A 10 bright\n FSPK A 200 bright A_LowGravity\n stop\n FSPK B 10 bright\n FSPK B 200 bright A_LowGravity\n stop\n FSPK C 10 bright\n FSPK C 200 bright A_LowGravity\n stop\n FSPK D 10 bright\n FSPK D 200 bright A_LowGravity\n stop\n FSPK E 10 bright\n FSPK E 200 bright A_LowGravity\n stop\n Death:\n FSPK A 1\n stop\n }\n}\n\nactor BurnDeathSmoke\n{\n radius 64\n height 16\n RENDERSTYLE Translucent\n ALPHA 0.30\n +NOBLOCKMAP\n +NOGRAVITY\n +DONTSPLASH\n +FIXMAPTHINGPOS\n +CLIENTSIDEONLY\n -SOLID\n states\n {\n Spawn:\n LVAS KGHIJGHIJGHIJGHIJGHIJGHIJGHIJGHIJGHIJGHIJGHIJGHIJGHIJGHIJGHIJK 4\n Stop\n }\n}\n\nACTOR BurnDeath1\n{\n Radius 16\n Height 56\n Speed 4\n Scale 0.45\n +DONTSPLASH\n +FLOORCLIP\n +LOOKALLAROUND\n States\n {\n Spawn:\n FGUY AA 1 A_Look\n\t\tTNT1 A 0 A_Playsound(\"Burn/Death\")\n\t\tFGUY A 2 Bright A_Look\n goto See\n See:\n FGUY A 0 A_SpawnItem (\"BFireTrail\",8+random(-5,5),58+random(-5,5),0,0)\n FGUY AAA 1 Bright A_Wander\n FGUY A 0 //A_LoopActiveSound\n FGUY A 0 A_SpawnItem (\"BFireTrail\",8+random(-5,5),58+random(-5,5),0,0)\n FGUY BBB 1 Bright A_Wander\n FGUY A 0 //A_LoopActiveSound\n FGUY A 0 A_SpawnItem (\"BFireTrail\",8+random(-5,5),58+random(-5,5),0,0)\n FGUY CCC 1 Bright A_Wander\n FGUY A 0 //A_LoopActiveSound\n FGUY A 0 A_SpawnItem (\"BFireTrail\",8+random(-5,5),58+random(-5,5),0,0)\n FGUY DDD 1 Bright A_Wander\n FGUY A 0\n FGUY A 0 A_SpawnItem (\"BFireTrail\",8+random(-5,5),58+random(-5,5),0,0)\n FGUY EEE 1 Bright A_Wander\n FGUY A 0\n FGUY A 0 A_SpawnItem (\"BFireTrail\",8+random(-5,5),58+random(-5,5),0,0)\n FGUY FFF 1 Bright A_Wander\n FGUY A 0 //A_LoopActiveSound\n FGUY A 0 A_SpawnItem (\"BFireTrail\",8+random(-5,5),58+random(-5,5),0,0)\n FGUY AAA 1 Bright A_Wander\n FGUY A 0 A_LoopActiveSound\n FGUY A 0 A_SpawnItem (\"BFireTrail\",8+random(-5,5),58+random(-5,5),0,0)\n FGUY BBB 1 Bright A_Wander\n FGUY A 0 //A_LoopActiveSound\n FGUY A 0 A_SpawnItem (\"BFireTrail\",8+random(-5,5),58+random(-5,5),0,0)\n FGUY CCC 1 Bright A_Wander\n FGUY A 0 A_LoopActiveSound\n FGUY A 0 A_SpawnItem (\"BFireTrail\",8+random(-5,5),58+random(-5,5),0,0)\n FGUY DDD 1 Bright A_Wander\n FGUY A 0 //A_LoopActiveSound\n FGUY A 0 A_SpawnItem (\"BFireTrail\",8+random(-5,5),58+random(-5,5),0,0)\n FGUY EEE 1 Bright A_Wander\n FGUY A 0 A_LoopActiveSound\n FGUY A 0 A_SpawnItem (\"BFireTrail\",8+random(-5,5),58+random(-5,5),0,0)\n FGUY FFF 1 Bright A_Wander\n FGUY A 0 //A_LoopActiveSound\n FGUY A 0 A_SpawnItem (\"BFireTrail\",8+random(-5,5),58+random(-5,5),0,0)\n FGUY AAA 1 Bright A_Wander\n FGUY A 0 A_LoopActiveSound\n FGUY A 0 A_SpawnItem (\"BFireTrail\",8+random(-5,5),58+random(-5,5),0,0)\n FGUY BBB 1 Bright A_Wander\n FGUY A 0 //A_LoopActiveSound\n FGUY A 0 A_SpawnItem (\"BFireTrail\",8+random(-5,5),58+random(-5,5),0,0)\n FGUY CCC 1 Bright A_Wander\n FGUY A 0 A_LoopActiveSound\n FGUY A 0 A_SpawnItem (\"BFireTrail\",8+random(-5,5),58+random(-5,5),0,0)\n FGUY DDD 1 Bright A_Wander\n FGUY A 0 //A_LoopActiveSound\n FGUY A 0 A_SpawnItem (\"BFireTrail\",8+random(-5,5),58+random(-5,5),0,0)\n FGUY EEE 1 Bright A_Wander\n FGUY A 0 //A_LoopActiveSound\n FGUY A 0 A_SpawnItem (\"BFireTrail\",8+random(-5,5),58+random(-5,5),0,0)\n FGUY FFF 1 Bright A_Wander\n FGUY A 0 A_LoopActiveSound\n FGUY A 0 A_SpawnItem (\"BFireTrail\",8+random(-5,5),58+random(-5,5),0,0)\n FGUY AAA 1 Bright A_Wander\n FGUY A 0 //A_LoopActiveSound\n FGUY A 0 A_SpawnItem (\"BFireTrail\",8+random(-5,5),58+random(-5,5),0,0)\n FGUY BBB 1 Bright A_Wander\n FGUY A 0 A_LoopActiveSound\n FGUY A 0 A_SpawnItem (\"BFireTrail\",8+random(-5,5),58+random(-5,5),0,0)\n FGUY CCC 1 Bright A_Wander\n FGUY A 0 //A_LoopActiveSound\n FGUY A 0 A_SpawnItem (\"BFireTrail\",8+random(-5,5),58+random(-5,5),0,0)\n FGUY DDD 1 Bright A_Wander\n FGUY A 0 A_LoopActiveSound\n FGUY A 0 A_SpawnItem (\"BFireTrail\",8+random(-5,5),58+random(-5,5),0,0)\n FGUY EEE 1 Bright A_Wander\n FGUY A 0 //A_LoopActiveSound\n FGUY A 0 A_SpawnItem (\"BFireTrail\",8+random(-5,5),58+random(-5,5),0,0)\n FGUY FFF 1 Bright A_Wander\n FGUY A 0 A_LoopActiveSound\n FGUY A 0 A_SpawnItem (\"BFireTrail\",8+random(-5,5),58+random(-5,5),0,0)\n FGUY AAA 1 Bright A_Wander\n FGUY A 0 //A_LoopActiveSound\n FGUY A 0 A_SpawnItem (\"BFireTrail\",8+random(-5,5),58+random(-5,5),0,0)\n FGUY BBB 1 Bright A_Wander\n FGUY A 0 A_LoopActiveSound\n FGUY A 0 A_SpawnItem (\"BFireTrail\",8+random(-5,5),58+random(-5,5),0,0)\n FGUY CCC 1 Bright A_Wander\n FGUY A 0 //A_LoopActiveSound\n FGUY A 0 A_SpawnItem (\"BFireTrail\",8+random(-5,5),58+random(-5,5),0,0)\n FGUY DDD 1 Bright A_Wander\n FGUY A 0\n FGUY A 0 A_SpawnItem (\"BFireTrail\",8+random(-5,5),58+random(-5,5),0,0)\n FGUY EEE 1 Bright A_Wander\n FGUY A 0\n\t\tFGUY A 0 A_Jump(160,\"See\")\n FGUY A 0 A_SpawnItem (\"BFireTrail\",8+random(-5,5),58+random(-5,5),0,0)\n FGUY FFF 1 Bright A_Wander\n FGUY A 0 A_SpawnItem (\"BFireTrail\",8+random(-5,5),58+random(-5,5),0,0)\n Goto Death\n Death:\n\t\tFGUY G 0 A_StopSound\n FGUY G 3 Bright\n FGUY G 0 A_SpawnDebris(\"NashGore_FlyingBlood\")\n FGUY G 0 A_SpawnDebris(\"NashGore_FlyingBlood\")\n FGUY G 0 A_SpawnDebris(\"NashGore_FlyingBlood\")\n FGUY G 0 A_SpawnDebris(\"NashGore_FlyingBlood\")\n FGUY G 0 A_SpawnDebris(\"NashGore_FlyingBlood\")\n FGUY G 0 A_SpawnDebris (\"NapalmDebris\")\n FGUY G 0 A_Fall\n FGUY GGHHII 3 Bright A_SpawnItem(\"BFireTrail\",8+random(-5,5),20+random(-5,5))\n FGUY A 0 //A_LoopActiveSound\n FGUY A 0 Bright A_SpawnItem (\"BurnDeathSmoke\")\n FGUY JJKKLLMMNNOO 3 Bright A_SpawnItem (\"BFireTrail\",8+random(-5,5),20+random(-5,5))\n FGUY A 0 //A_LoopActiveSound\n FGUY JJKKLLMMNNOO 3 Bright A_SpawnItem (\"BFireTrail\",8+random(-5,5),20+random(-5,5))\n FGUY A 0 //A_LoopActiveSound\n FGUY JJKKLLMMNNOO 3 Bright A_SpawnItem (\"BFireTrail\",8+random(-5,5),20+random(-5,5))\n FGUY O 0 //A_StopSound\n FGUY PPQQRRSS 3 Bright\n FGUT T -1\n Stop\n }\n}"
},
{
"source": "pk3",
"name": "Actors/Weapons/THRU.txt",
"contents": "actor UseCoopBullets : Ammo {\n Inventory.MaxAmount 1\n +UNDROPPABLE\n Ammo.BackpackAmount 0\n Ammo.BackpackMaxAmount 1\n}\n\nActor FistPuff : BulletPuff\n{\n\tStates\n\t{\n\t\tSpawn:\n\t\tCrash:\n\t\t\tPUFF CD 4\n\t\tStop\n\t\tMelee:\n\t\t\tTNT1 A 0\n\t\t\tTNT1 A 0 A_PlaySound(\"weapons/fisthit\")\n\t\t\tPUFF CD 4\n\t\tStop\n\t}\n}\n\nactor Bullet {\n Damage (Random(1,3)*5)\n Radius 1\n Height 1\n Speed 10\n Projectile\n Renderstyle \"None\"\n Species \"ThruDecor\"\n +THRUSPECIES\n +BLOODSPLATTER\n +MTHRUSPECIES\n +NOTIMEFREEZE\n Decal \"BulletChip\"\n States {\n Spawn:\n TNT1 A 0\n TNT1 A 0 A_SpawnItemEx(\"FastBullet\", 0,0,0, momx*3276.7,momy*3276.7,momz*3276.7, 0, SXF_ABSOLUTEMOMENTUM)\n Stop\n\tCrash:\n Death:\n TNT1 A 1 A_SpawnItem(\"NewBulletPuff\")\n Stop\n\tXDeath:\n\t TNT1 A 1\n\t Stop\n }\n}\n\nActor FistProjectile\n{\n Damage (10*random(1,3))\n Radius 2\n Height 2\n Speed 48\n Projectile\n Renderstyle \"None\"\n Species \"ThruDecor\"\n +THRUSPECIES\n +BLOODSPLATTER\n +MTHRUSPECIES\n +NOTIMEFREEZE\n States {\n Spawn:\n TNT1 A 1\n Stop\n Death:\n TNT1 A 1 A_SpawnItem(\"FistPuff\")\n Stop\n XDeath:\n TNT1 A 1 A_PlaySound(\"weapons/fisthit\")\n Stop\n }\n}\n\nActor FistProjectileX : FistProjectile\n{\n\tDamage (15*random(12,16))\n States {\n Spawn:\n TNT1 A 1\n Stop\n }\n}\n\nActor BulletU : Bullet\n{\n\tDamage (15)\n States {\n Spawn:\n TNT1 A 0\n TNT1 A 0 A_SpawnItemEx(\"FastBulletU\", 0,0,0, momx*3276.7,momy*3276.7,momz*3276.7, 0, SXF_ABSOLUTEMOMENTUM)\n Stop\n }\n}\n\nActor BulletMGU : Bullet\n{\n Damage(25)\n States {\n Spawn:\n TNT1 A 0\n TNT1 A 0 A_SpawnItemEx(\"FastBulletMGU\", 0,0,0, momx*3276.7,momy*3276.7,momz*3276.7, 0, SXF_ABSOLUTEMOMENTUM)\n Stop\n }\n}\n\nActor BulletCG : Bullet\n{\n\tDamage (30)\n States {\n Spawn:\n TNT1 A 0\n TNT1 A 0 A_SpawnItemEx(\"FastBulletCG\", 0,0,0, momx*3276.7,momy*3276.7,momz*3276.7, 0, SXF_ABSOLUTEMOMENTUM)\n Stop\n }\n}\n\nActor BulletSMG : Bullet\n{\n\tDamage (7*random(1,3))\n States {\n Spawn:\n TNT1 A 0\n TNT1 A 0 A_SpawnItemEx(\"FastBulletSMG\", 0,0,0, momx*3276.7,momy*3276.7,momz*3276.7, 0, SXF_ABSOLUTEMOMENTUM)\n Stop\n }\n}\n\nActor BloodBullet : Bullet\n{\n\tDecal \"\"\n States {\n Spawn:\n TNT1 A 0\n TNT1 A 0 A_SpawnItemEx(\"FastBloodBullet\", 0,0,0, momx*3276.7,momy*3276.7,momz*3276.7, 0, SXF_ABSOLUTEMOMENTUM)\n Stop\n }\n}\n\nactor FastBullet : FastProjectile {\n Damage (Random(1,3)*5)\n Radius 1\n Height 1\n Speed 320\n Projectile\n Renderstyle \"None\"\n Species \"ThruDecor\"\n +THRUSPECIES\n +BLOODSPLATTER\n +MTHRUSPECIES\n +NOTIMEFREEZE\n Decal \"Bulletchip\"\n States {\n Spawn:\n PLSE E 1\n Loop\n\tCrash:\n Death:\n TNT1 A 1 A_SpawnItem(\"NewBulletPuff\")\n Stop\n\tXDeath:\n\t TNT1 A 1\n\t Stop\n }\n}\n\nActor FastBulletU : FastBullet\n{\n\tDamage (15)\n}\n\nActor FastBulletMGU : FastBullet\n{\n\tDamage (25)\n}\n\nActor FastBulletCG : FastBullet\n{\n\tDamage (30)\n}\n\nActor FastBulletSMG : FastBullet\n{\n\tDamage (7*random(1,3))\n}\n\nActor BloodFX : BulletPuff\n{\n Radius 3\n Height 3\n RENDERSTYLE ADD\n ALPHA 0.75\n +NOGRAVITY\n +FORCEXYBILLBOARD\n Vspeed 0\n States\n {\n Spawn:\n BLFX ABCDEF 3 BRIGHT\n stop\n }\n}\n\nActor FastBloodBullet : FastBullet\n{\n\tDecal \"\"\n\tSpeed 384\n States {\n Spawn:\n PLSE E 1\n Stop\n Death:\n TNT1 A 1 A_SpawnItem(\"BloodFX\")\n Stop\n XDeath:\n TNT1 A 1 A_SpawnItem(\"BloodFX\")\n Stop\n }\n}\n\nActor FastExplodingPuff : FastProjectile\n{\n\tRenderstyle Translucent\n\tAlpha 0.85\n\tScale 0.55\n\tHeight 1\n\tRadius 1\n\tDecal \"Scorch\"\n\tDamage (10)\n\tSpeed 320\n\tPROJECTILE\n\tDamageType \"Explosives\"\n Species \"ThruDecor\"\n +THRUSPECIES\n +BLOODSPLATTER\n +MTHRUSPECIES\n +NOTIMEFREEZE\n\t+EXTREMEDEATH\n\t+FOILINVUL\n\tStates\n\t{\n\t\tDeath:\n\t\t\tTNT1 AA 0 A_SpawnItem(\"ExpShellSoundEmitter\")\n\t\t\tTNT1 AA 0 A_SpawnDebris(\"ExplosiveSpark\", 1)\n\t\t\tDKSX A 2\n\t\t\tTNT1 A 0 A_Explode(8*random(4,5), 96)\n\t\t\tDKSX BCDEFG 2\n\t\t\tDKSX HIJKL 1\n\t\tStop\n\t}\n}\n\nActor FastExplodingPuffNoDmg : FastExplodingPuff\n{\n\tStates\n\t{\n\t\tDeath:\n\t\t\tTNT1 AA 0 A_SpawnItem(\"ExpShellSoundEmitter\")\n\t\t\tTNT1 AA 0 A_SpawnDebris(\"ExplosiveSpark\", 1)\n\t\t\tDKSX A 2\n\t\t\tTNT1 A 0 A_Explode(8*random(4,5), 96, 0)\n\t\t\tDKSX BCDEFG 2\n\t\t\tDKSX HIJKL 1\n\t\tStop\n\t}\n}"
},
{
"source": "pk3",
"name": "Actors/Weapons/LVL1.txt",
"contents": "Actor \" Fists \" : Fist replaces Fist\n{\n\tWeapon.SlotNumber 1\n\t+WEAPON.NOALERT\n\t+INVENTORY.UNDROPPABLE\n\tStates\n\t{\n\t\tReady:\n\t\t\tPKFS A 1 A_WeaponReady\n\t\tLoop\n\t\tSelect:\n\t\t\tPKFS A 1 A_Raise\n\t\t\tTNT1 A 0 A_Raise\n\t\tLoop\n\t\tDeselect:\n\t\t\tPKFS A 1 A_Lower\n\t\t\tTNT1 A 0 A_Lower\n\t\tLoop\n\t Fire:\n\t\t\tTNT1 A 0 A_PlaySound(\"weapons/fistmiss\")\n\t\t\tPKFS LBCD 1\n\t\t\tTNT1 A 0 A_JumpIfInventory(\"UseCoopBullets\", 1, \"FireCoop\")\n\t\t\tTNT1 A 0 A_JumpIfInventory(\"PowerStrength\", 1, \"FireX\")\n\t\t\tPKFS E 2 A_CustomPunch(10*random(1,3), 1, 0, \"FistPuff\")\n\t\tContinue:\n\t\t\tPKFS FGHI 2\n\t\t\tPKFS JKL 1\n\t\t\tPKFS A 5 A_ReFire\n\t\tgoto Ready\n\t\tFireCoop:\n\t\t\tTNT1 A 0 A_JumpIfInventory(\"PowerStrength\", 1, \"FireXCoop\")\n\t\t\tPKFS E 2 A_FireCustomMissile(\"FistProjectile\")\n\t\tGoto Continue\n\t\tFireX:\n\t\t\tPKFS E 2 A_CustomPunch(15*random(12,16), 1, 0, \"FistPuff\")\n\t\tGoto Continue\n\t\tFireXCoop:\n\t\t\tPKFS E 2 A_FireCustomMissile(\"FistProjectileX\")\n\t\tGoto Continue\n\t}\n}\n\n// Sprites by Eriance\nACTOR \" Chainsaw \" : Chainsaw replaces Chainsaw\n{\n Weapon.Kickback 0\n Weapon.SlotNumber 1\n Weapon.SelectionOrder 2200\n Weapon.UpSound \"weapons/sawup\"\n Weapon.ReadySound \"weapons/sawidle\"\n Inventory.PickupMessage \"$GOTCHAINSAW\"\n Inventory.PickupSound \"weapons/pickup\"\n Obituary \"$OB_MPCHAINSAW\"\n Tag \"$TAG_CHAINSAW\"\n Decal \"BulletChip\"\n +WEAPON.MELEEWEAPON\n +INVENTORY.UNDROPPABLE\n States\n {\n Ready:\n SAWG CD 4 A_WeaponReady\n Loop\n Deselect:\n SAWG C 1 A_Lower\n\tTNT1 A 0 A_Lower\n Loop\n Select:\n SAWG C 1 A_Raise\n\tTNT1 A 0 A_Raise\n Loop\n Fire:\n TNT1 A 0 A_Saw(\"weapons/sawfull\", \"weapons/sawhit\", 4)\n SAWG A 4\n\tTNT1 A 0 A_Saw(\"weapons/sawfull\", \"weapons/sawhit\", 4)\n\tSAWG B 4\n SAWG B 0 A_ReFire\n Goto Ready\n Spawn:\n CSAW A -1\n Stop\n }\n}"
},
{
"source": "pk3",
"name": "Actors/Weapons/LVL2.txt",
"contents": "Actor \" Pistol \" : Pistol\n{\n\tWeapon.SlotNumber 2\n\tWeapon.AmmoGive 20\n\tWeapon.SelectionOrder 1900\n\tattacksound \"\"\n\tDecal \"BulletChip\"\n\t+INVENTORY.UNDROPPABLE\n\tStates\n\t{\n\t Ready:\n\t\tCOLT A 1 A_WeaponReady\n\t\tLoop\n\t Deselect:\n\t\tCOLT A 1 A_Lower\n\t\tTNT1 A 0 A_Lower\n\t\tLoop\n\t Select:\n\t\tCOLT A 1 A_Raise\n\t\tTNT1 A 0 A_Raise\n\t\tLoop\n\t Fire:\n\t\tCOLT A 0 A_JumpIfInventory(\"UseCoopBullets\", 1, \"FireCoop\")\n\t\tCOLF A 1 Bright A_FireBullets(0.5,0,1,15, \"NewBulletPuff\", FBF_NORANDOM | FBF_USEAMMO)\n\t\tGoto FireEnd\n\t FireCoop:\n\t COLF A 1 Bright A_FireCustomMissile(\"BulletU\", 0, 1, 0, 4)\n\t Goto FireEnd\n\t FireEnd:\n\t TNT1 A 0 A_GunFlash\n\t\tTNT1 A 0 A_PlayWeaponsound(\"Weapons/NewPist\")\n\t\tCOLF B 1 Bright\n\t\tCOLF C 1 Bright\n\t\tCOLT B 3\n\t\tTNT1 A 0 A_SpawnItemEx (\"pistolcasing\",cos(pitch)*20,0,32+(sin(pitch)*20),0,-8,random(4,8),0,0,0)\n\t\tCOLT C 1\n\t\tCOLX AB 1\n\t\tCOLT D 1\n\t\tCOLX CD 1\n\t\tCOLT E 1\n\t\tCOLX EF 1\n\t\tCOLT B 1 A_ReFire\n\t\tCOLX GH 1 A_ReFire\n\t Goto Ready\n\t Hold:\n\t\tCOLT A 0 A_JumpIfInventory(\"UseCoopBullets\", 1, \"HoldCoop\")\n\t\tCOLF A 1 Bright A_FireBullets(0.5,0,-1,15, \"NewBulletPuff\", FBF_NORANDOM | FBF_USEAMMO)\n\t\tGoto FireEnd\n\t HoldCoop:\n\t COLF A 1 Bright A_FireCustomMissile(\"BulletU\", random(-50, 50)/100.00, 1, 0, 4)\n\t Goto FireEnd\n\t Flash:\n\t\tTNT1 A 3 Bright A_Light1\n\t\tTNT1 A 3 Bright A_Light0\n\t\tGoto LightDone\n\t}\n}"
},
{
"source": "pk3",
"name": "Actors/Weapons/LVL3.txt",
"contents": "// Sprites by Eriance\nActor \" Shotgun \" : Weapon replaces Shotgun\n{\n radius 20\n height 16\n Weapon.SlotNumber 3\n weapon.selectionorder 1500\n weapon.kickback 100\n obituary \"%o got pummeled by %k's shotgun.\"\n Inventory.PickupSound \"weapons/pickup\"\n inventory.pickupmessage \"You got the shotgun!\"\n weapon.ammotype \"Shell\"\n weapon.ammouse 1\n weapon.ammogive 8\n Decal \"BulletChip\"\n +INVENTORY.UNDROPPABLE\n states\n {\n Spawn:\n SHOT A -1\n stop\n Ready:\n SHTG A 1 A_WeaponReady\n loop\n Deselect:\n SHTG A 1 A_Lower\n\tTNT1 A 0 A_Lower\n Loop\n Select:\n SHTG A 1 A_Raise\n\tTNT1 A 0 A_Raise\n Loop\n Fire:\n\t TNT1 A 0 A_JumpIfInventory(\"ShotgunUpgrade\", 1, \"Upgraded\")\n\t SHTG B 1\n SHTG E 0 A_GunFlash\n SHTG CD 1 Bright\n\t SHTG E 0 A_PlayWeaponSound(\"weapons/shotgunfire\")\n\t TNT1 A 0 A_JumpIfInventory(\"UseCoopBullets\", 1, \"FireCoop\")\n\t SHTG E 0 A_FireBullets (5.6, 5.6, 9, 5, \"NewBulletPuff\")\n Goto FireEnd\n Upgraded:\n\t SHTG B 1\n SHTG E 0 A_GunFlash\n SHTG CD 1 Bright\n\t SHTG E 0 A_PlayWeaponSound(\"weapons/shotgunfirenew\")\n\t TNT1 A 0 A_JumpIfInventory(\"UseCoopBullets\", 1, \"FireCoopU\")\n\t SHTG E 0 A_FireBullets (3.2, 3.2, 10, 15, \"NewBulletPuff\", FBF_NORANDOM | FBF_USEAMMO)\n\t Goto FireEnd\n\tFireCoop:\n SHTG A 0 A_FireCustomMissile(\"Bullet\", random(-560, 560)/100.00, 1, 0, 0, 1, random(-560, 560)/100.00)\n SHTG AAAAAAAA 0 A_FireCustomMissile(\"Bullet\", random(-560, 560)/100.00, 0, 0, 0, 1, random(-560, 560)/100.00)\n\t Goto FireEnd\n\tFireCoopU:\n SHTG A 0 A_FireCustomMissile(\"BulletU\", random(-320, 320)/100.00, 1, 0, 0, 1, random(-320, 320)/100.00)\n SHTG AAAAAAAAA 0 A_FireCustomMissile(\"BulletU\", random(-320, 320)/100.00, 0, 0, 0, 1, random(-320, 320)/100.00)\n\t Goto FireEnd\n\tFireEnd:\n\t SHTG EFGHI 1 bright\n\t SHTG G 0 A_SpawnItemEx (\"SHOTGUNSMOKE\",cos(-pitch)*20,-10,36+(sin(-pitch)*20),cos(-pitch)*0,0,2,0,0,0)\n\t SHTG JKLM 1\n\t SHTG G 0 A_SpawnItemEx (\"SHOTGUNSMOKE\",cos(-pitch)*20,-15,42+(sin(-pitch)*20),cos(-pitch)*0,0,2,0,0,0)\n\t SHTG NOPQ 1\n\t SHTG G 0 A_SpawnItemEx (\"SHOTGUNSMOKE\",cos(-pitch)*20,-15,42+(sin(-pitch)*20),cos(-pitch)*0,0,2,0,0,0)\n\t SHTG RSTU 1\n\t SHTG G 0 A_SpawnItemEx (\"SHOTGUNSMOKE\",cos(-pitch)*20,-15,42+(sin(-pitch)*20),cos(-pitch)*0,0,2,0,0,0)\n\t SHTG V 2\n\t SHTG G 0 A_SpawnItemEx (\"shotguncasing\",cos(-pitch)*36,-18,34+(sin(-pitch)*36),cos(-pitch)*0,random(5, 8), random(0, 1),0,0,0)\n\t SHTG V 2\n\t SHTG G 0 A_SpawnItemEx (\"SHOTGUNSMOKE\",cos(-pitch)*20,-15,42+(sin(-pitch)*20),cos(-pitch)*0,0,2,0,0,0)\n\t SHTG UTSRQPONMLKJ 1\n SHTG A 1 A_ReFire\n\t Goto Ready\n\tFlash:\n\t TNT1 A 4 bright A_Light1\n\t TNT1 A 3 bright A_Light2\n\t TNT1 A 0 bright A_Light0\n\t stop\n }\n}\n\n// Sprites by Eriance\nACTOR \" Super Shotgun \" : Weapon Replaces SuperShotgun\n{\n Weapon.SelectionOrder 400\n Weapon.AmmoUse 2\n Weapon.AmmoGive 8\n Weapon.AmmoType \"Shell\"\n Weapon.SlotNumber 3\n Inventory.PickupMessage \"$GOTSHOTGUN2\"\n Inventory.PickupSound \"weapons/pickup\"\n Obituary \"$OB_MPSSHOTGUN\"\n Tag \"Super Shotgun\"\n Decal \"BulletChip\"\n +INVENTORY.UNDROPPABLE\n States\n {\n Ready:\n SHT2 A 1 A_WeaponReady\n Loop\n Deselect:\n SHT2 A 1 A_Lower\n\tTNT1 A 0 A_Lower\n Loop\n Select:\n SHT2 A 1 A_Raise\n\tTNT1 A 0 A_Raise\n Loop\n Fire:\n\tTNT1 A 0 A_JumpIfInventory(\"SSGUpgrade\", 1, \"Upgraded\")\n\tSHT2 MNO 1 Bright\n\tSHT2 M 0 A_PlayWeaponSound(\"weapons/ssgfire\")\n\tTNT1 A 0 A_GunFlash\n\tTNT1 A 0 A_JumpIfInventory(\"UseCoopBullets\", 1, \"FireCoop\")\n SHT2 M 0 A_FireBullets (11.2, 7.1, 20, 5, \"NewBulletPuff\")\n Goto FireEnd\n Upgraded:\n\tSHT2 MNO 1 Bright\n\tSHT2 M 0 A_PlayWeaponSound(\"weapons/ssgfirenew\")\n\tTNT1 A 0 A_GunFlash\n\tTNT1 A 0 A_JumpIfInventory(\"UseCoopBullets\", 1, \"FireCoopU\")\n SHT2 M 0 A_FireBullets (10.9, 6.8, 20, 15, \"NewBulletPuff\", FBF_NORANDOM | FBF_USEAMMO)\n\tGoto FireEnd\n FireCoop:\n SHT2 A 0 A_FireCustomMissile(\"Bullet\", random(-1120, 1120)/100.00, 1, 0, 0, 1, random(-710, 710)/100.00)\n SHT2 AAAAAAAAAAAAAAAAAAA 0 A_FireCustomMissile(\"Bullet\", random(-1120, 1120)/100.00, 0, 0, 0, 1, random(-710, 710)/100.00)\n Goto FireEnd\n FireCoopU:\n SHT2 A 0 A_FireCustomMissile(\"BulletU\", random(-1090, 1090)/100.00, 1, 0, 0, 1, random(-690, 690)/100.00)\n SHT2 AAAAAAAAAAAAAAAAAAA 0 A_FireCustomMissile(\"BulletU\", random(-1090, 1090)/100.00, 0, 0, 0, 1, random(-690, 690)/100.00)\n goto FireEnd\n FireEnd:\n\tSHT2 PQRSTU 1 bright A_SpawnItemEx (\"SHOTGUNSMOKE\", cos(-pitch)*36, random(-6, 6),30+(sin(-pitch)*20),0,0,2,0,0,0)\n SHT2 T 0 A_CheckReload\n\tSHTX AB 1\n\tSHT2 B 1\n\tSHTX CD 1\n\tSHT2 C 1\n\tSHTX EF 1\n\tSHT2 D 1\n\tSHTX GH 1\n\tSHT2 E 1\n\tTNT1 AA 0 A_SpawnItemEx (\"shotguncasing\",cos(-pitch)*24,-18,34+(sin(-pitch)*36),0,-1*random(5, 8), random(0, 1),0,0,0)\n SHT2 F 4 A_PlaySound(\"weapons/ssgopen\")\n\tSHT2 GHI 4\n\tSHT2 J 4 A_PlaySound(\"weapons/ssgload\")\n\tSHT2 KL 4\n\tTNT1 A 0 A_PlaySound(\"weapons/ssgclose\")\n\tSHTX MNO 1\n SHT2 A 4\n\tSHT2 A 3 A_Refire\n Goto Ready\n Flash:\n TNT1 A 4 Bright A_Light1\n TNT1 A 3 Bright A_Light2\n Goto LightDone\n Spawn:\n SGN2 A -1\n Stop\n }\n}\n\n// An exploding shotgun, idk where the graphics come from\n// This weapon is monster drop only\nActor \"Silver Gun\" : Weapon\n{\n radius 20\n height 16\n Weapon.SlotNumber 3\n weapon.selectionorder 1600\n weapon.kickback 100\n obituary \"%o was devastated by %k's silver gun.\"\n Inventory.PickupSound \"weapons/pickup\"\n inventory.pickupmessage \"You got the silver gun!\"\n weapon.ammotype \"ExplodingShell\"\n weapon.ammouse 1\n weapon.ammogive 4\n DamageType \"Explosives\"\n +INVENTORY.UNDROPPABLE\n states\n {\n Spawn:\n EXSG X -1\n stop\n Ready:\n EXSG A 1 A_WeaponReady\n loop\n Deselect:\n EXSG A 1 A_Lower\n\tTNT1 A 0 A_Lower\n loop\n Select:\n EXSG A 1 A_Raise\n\tTNT1 A 0 A_Raise\n Loop\n Fire:\n\t EXSG B 1\n EXSG E 0 A_GunFlash\n EXSG CD 1 Bright\n\t TNT1 A 0 A_JumpIfInventory(\"UseCoopBullets\", 1, \"FireCoop\")\n\t TNT1 A 0 A_FireBullets (6.4, 4.8, 4, 5*random(2,3), \"ExplodingPuff\", FBF_NORANDOM | FBF_USEAMMO)\n\t TNT1 A 0 A_FireBullets (6.4, 4.8, 4, 5*random(2,3), \"ExplodingPuffNoSelfDmg\", FBF_NORANDOM)\n Goto FireEnd\n\tFireCoop:\n SHT2 A 0 A_FireCustomMissile(\"FastExplodingPuff\", random(-640, 640)/100.00, 1, 0, 0, 1, random(-480, 480)/100.00)\n SHT2 AAA 0 A_FireCustomMissile(\"FastExplodingPuff\", random(-640, 640)/100.00, 0, 0, 0, 1, random(-480, 480)/100.00)\n\t SHT2 AAAA 0 A_FireCustomMissile(\"FastExplodingPuffNoDmg\", random(-640, 640)/100.00, 0, 0, 0, 1, random(-480, 480)/100.00)\n\t Goto FireEnd\n\tFireEnd:\n\t SHTG E 0 A_PlayWeaponSound(\"weapons/expshotgunfire\")\n\t EXSG EFGHI 1 bright\n\t SHTG G 0 A_SpawnItemEx (\"SHOTGUNSMOKE\",cos(-pitch)*20,-10,36+(sin(-pitch)*20),cos(-pitch)*0,0,2,0,0,0)\n EXSG JKLM 1\n\t SHTG G 0 A_SpawnItemEx (\"SHOTGUNSMOKE\",cos(-pitch)*20,-15,42+(sin(-pitch)*20),cos(-pitch)*0,0,2,0,0,0)\n\t EXSG NOPQ 1\n\t TNT1 A 0 A_Playsound(\"weapons/expshotgunpump\")\n\t SHTG G 0 A_SpawnItemEx (\"SHOTGUNSMOKE\",cos(-pitch)*20,-15,42+(sin(-pitch)*20),cos(-pitch)*0,0,2,0,0,0)\n\t EXSG RSTU 1\n\t SHTG G 0 A_SpawnItemEx (\"SHOTGUNSMOKE\",cos(-pitch)*20,-15,42+(sin(-pitch)*20),cos(-pitch)*0,0,2,0,0,0)\n\t EXSG V 2\n\t SHTG G 0 A_SpawnItemEx (\"exshotguncasing\",cos(-pitch)*36,-18,34+(sin(-pitch)*36),cos(-pitch)*0,random(5, 8), random(0, 1),0,0,0)\n\t EXSG V 2\n\t SHTG G 0 A_SpawnItemEx (\"SHOTGUNSMOKE\",cos(-pitch)*20,-15,42+(sin(-pitch)*20),cos(-pitch)*0,0,2,0,0,0)\n\t EXSG UTSRQPONMLKJ 1\n EXSG A 1 A_ReFire\n\t Goto Ready\n\tFlash:\n\t TNT1 A 4 bright A_Light1\n\t TNT1 A 3 bright A_Light2\n\t TNT1 A 0 bright A_Light0\n\t stop\n }\n}\n\nActor ExplodingShell : Ammo\n{\n\tinventory.amount 4\n\tinventory.maxamount 40\n\tinventory.icon \"ESHAA0\"\n\tammo.backpackamount 4\n\tammo.backpackmaxamount 80\n\tinventory.pickupmessage \"Picked up 4 explosive shells.\"\n\tinventory.pickupsound \"items/ammo\"\n\tStates\n\t{\n\t\tSpawn:\n\t\t\tESHA A -1\n\t\tStop\n\t}\n}\n\nActor ExplodingShellBox : ExplodingShell\n{\n\tinventory.amount 15\n\tinventory.pickupmessage \"Picked up a box of explosive shells.\"\n\tStates\n\t{\n\t\tSpawn:\n\t\t\tESHA B -1\n\t\tStop\n\t}\n}\n\nActor ExpShellSoundEmitter\n{\n\t+NOINTERACTION\n\t+NOTELEPORT\n\n\tStates\n\t{\n\t\tSpawn:\n\t\t\tTNT1 AA 0 A_PlaySound(\"weapons/expshotgunxpl\")\n\t\tStop\n\t}\n}\n\n// Taken from Samsara\nactor ExplosiveSpark\n{\n health 5\n radius 1\n height 1\n Speed 10\n Scale 0.2\n Gravity 0.7\n PROJECTILE\n +NOBLOCKMAP\n +DONTSPLASH\n +RANDOMIZE\n -NOGRAVITY\n -SOLID\n +WINDTHRUST\n +CLIENTSIDEONLY\n States\n {\n Spawn:\n DXSK A 1 BRIGHT A_FadeOut(0.01)\n loop\n }\n}\n\nActor ExplodingPuff : BulletPuff\n{\n\tVSpeed 0\n\tRenderstyle Translucent\n\tAlpha 0.85\n\tScale 0.55\n\tDecal \"Scorch\"\n\tDamageType \"Explosives\"\n\t+ALWAYSPUFF\n\t+PUFFONACTORS\n\t+PUFFGETSOWNER\n\t+EXTREMEDEATH\n\t+MTHRUSPECIES\n\t+FOILINVUL\n\tStates\n\t{\n\t\tSpawn:\n\t\t\tTNT1 AA 0 A_SpawnItem(\"ExpShellSoundEmitter\")\n\t\t\tTNT1 AA 0 A_SpawnDebris(\"ExplosiveSpark\", 1)\n\t\t\tDKSX A 2\n\t\t\tTNT1 A 0 A_Explode(8*random(4,5), 96)\n\t\t\tDKSX BCDEFG 2\n\t\t\tDKSX HIJKL 1\n\t\tStop\n\t}\n}\n\nActor ExplodingPuffNoSelfDmg : ExplodingPuff\n{\n\tStates\n\t{\n\t\tSpawn:\n\t\t\tTNT1 AA 0 A_SpawnItem(\"ExpShellSoundEmitter\")\n\t\t\tTNT1 AA 0 A_SpawnDebris(\"ExplosiveSpark\", 1)\n\t\t\tDKSX A 2\n\t\t\tTNT1 A 0 A_Explode(8*random(4,5), 96, 0)\n\t\t\tDKSX BCDEFG 2\n\t\t\tDKSX HIJKL 1\n\t\tStop\n\t}\n}"
},
{
"source": "pk3",
"name": "Actors/Weapons/LVL4.txt",
"contents": "// Sprites by Eriance\nActor \" Machine gun \" : Chaingun replaces Chaingun\n{\n\tWeapon.SelectionOrder 720\n\tWeapon.SlotNumber 4\n Inventory.PickupSound \"weapons/pickup\"\n Inventory.PickupMessage \"You got the machinegun!\"\n Obituary \"%o was gunned down by %k's machinegun.\"\n\tWeapon.AmmoType1 \"Clip\"\n\tWeapon.AmmoType2 \"MGClip\"\n\tWeapon.AmmoUse2 0\n\tWeapon.AmmoUse1 0\n\tDecal \"BulletChip\"\n\t+WEAPON.NOALERT\n\tAttackSound \"\"\n\t+INVENTORY.UNDROPPABLE\n\tStates\n\t{\n\t\tSpawn:\n\t\t\tWASG A -1\n\t\tStop\n\t\tReady:\n\t\t\tASGG A 1 A_WeaponReady\n\t\tLoop\n\t\tDeselect:\n\t\t\tASGG A 1 A_Lower\n\t\t\tTNT1 A 0 A_Lower\n\t\tLoop\n\t\tSelect:\n\t\t\tASGG A 1 A_Raise\n\t\t\tTNT1 A 0 A_Raise\n\t\tLoop\n\t\tFire:\n\t\t\tTNT1 A 0 A_JumpIfInventory(\"MGClip\", 1, 1)\n\t\tGoto Altfire\n\t\t\tTNT1 A 0 A_JumpIfInventory(\"MGPowerUpgrade\", 1, \"Upgraded\")\n\t\t\tASGG L 2 Bright\n\t\t\tTNT1 A 0 A_TakeInventory(\"MGClip\", 1)\n\t\t\tTNT1 A 0 A_PlayWeaponSound(\"Weapons/Mgfire\")\n\t\t\tTNT1 A 0 A_AlertMonsters\n\t\t\tTNT1 A 0 A_GunFlash\n\t\t\tTNT1 A 0 A_JumpIfInventory(\"UseCoopBullets\", 1, \"FireCoop\")\n\t\t\tTNT1 A 0 A_FireBullets(2.4, 1.6, -1, 15, \"NewBulletPuff\", FBF_NORANDOM | FBF_USEAMMO)\n\t\tGoto FireEnd\n\t\tUpgraded:\n\t\t\tASGG L 2 Bright\n\t\t\tTNT1 A 0 A_TakeInventory(\"MGClip\", 1)\n\t\t\tTNT1 A 0 A_PlayWeaponSound(\"Weapons/MgfireNew\")\n\t\t\tTNT1 A 0 A_GunFlash\n\t\t\tTNT1 A 0 A_JumpIfInventory(\"UseCoopBullets\", 1, \"FireCoopU\")\n\t\t\tTNT1 A 0 A_FireBullets(1.6, 0.8, -1, 25, \"NewBulletPuff\", FBF_NORANDOM | FBF_USEAMMO)\n\t\tGoto FireEnd\n\t\tFireCoop:\n\t\t\tTNT1 A 0 A_FireCustomMissile(\"BulletU\", random(-240, 240)/100.00, 1, 0, 0, 1, random(-160, 160)/100.00 )\n\t\tGoto FireEnd\n\t\tFireCoopU:\n\t\t\tTNT1 A 0 A_FireCustomMissile(\"BulletMGU\", random(-160, 160)/100.00, 1, 0, 0, 1, random(-80, 80)/100.00)\n\t\tGoto FireEnd\n\t\tFireEnd:\n\t\t\tASGG M 2 Bright\n\t\t\tTNT1 A 0 A_SpawnItemEx (\"bulletcasing\",cos(pitch)*20,0,32+(sin(pitch)*20),0,-8,random(4,8),0,0,0)\n\t\t\tASGG N 2 Bright\n\t\t\tTNT1 A 0 A_SpawnItemEx (\"chaingunsmoke\",cos(-pitch)*20,0,36+(sin(-pitch)*20),cos(-pitch)*0,0,2,0,0,0)\n\t\t\tASGG A 3 A_Refire\n\t\tGoto Ready\n\t\tAltFire:\n\t\t\tTNT1 A 0 A_JumpIfInventory(\"Clip\", 1, 1)\n\t\tGoto Ready\n\t\t\tTNT1 A 0 A_JumpIfInventory(\"MGClip\", 50, \"Failed\")\n\t\t\tASGG AXYB 1\n\t\t\tASGG CDE 3\n\t\t\tTNT1 A 0 A_PlaySound(\"weapons/sshoto\")\n\t\t\tASGG FGHIJ 3\n\t\t\tTNT1 A 0 ACS_ExecuteAlways(998, 0)\n\t\t\tASGG K 8\n\t\t\tASGG JIHGFE 3\n\t\t\tTNT1 A 0 A_PlaySound(\"weapons/sshotl\")\n\t\t\tASGG DC 3\n\t\t\tASGG BYX 1\n\t\tGoto Ready\n\t\tFailed:\n\t\t\tASGG A 1\n\t\tGoto Ready\n\t\tFlash:\n\t\t TNT1 A 4 bright A_Light1\n\t\t TNT1 A 3 bright A_Light2\n\t\t TNT1 A 0 bright A_Light0\n\t\t stop\n\t}\n}\n\nActor MGClip : Ammo\n{\n\tinventory.amount 1\n\tinventory.maxamount 50\n\tammo.backpackamount 0\n\tammo.backpackmaxamount 50\n\t+IGNORESKILL\n}\n\n// Sprites by Eriance\n// Secret weapon\nACTOR \" Chaingun \" : Weapon\n{\n Weapon.SelectionOrder 680\n Weapon.SlotNumber 4\n Inventory.PickupSound \"weapons/pickup\"\n Inventory.PickupMessage \"$GOTCHAINGUN\"\n Obituary \"%o was fully perforated by %k's chaingun.\"\n Weapon.AmmoType \"Clip\"\n Weapon.AmmoGive 20\n decal \"BulletChip\"\n Weapon.AmmoUse 1\n XScale 1.15\n YScale 1.0\n AttackSound \"weapons/minigunfire\"\n +INVENTORY.UNDROPPABLE\n States\n {\n\t Spawn:\n\t\t CHNG A -1\n\t\t Stop\n\t\tReady:\n\t\t\tHCGG A 1 A_WeaponReady\n\t\t\tLoop\n\t\tDeselect:\n\t\t\tHCGG A 1 A_Lower\n\t\t\tTNT1 A 0 A_Lower\n\t\t\tLoop\n\t\tSelect:\n\t\t\tHCGG A 1 A_Raise\n\t\t\tTNT1 A 0 A_Raise\n\t\t\tLoop\n\t\tFire:\n\t\t\tTNT1 A 0 A_PlayWeaponSound(\"weapons/minigunup\")\n\t\t\tHCGG CD 7 // Spinup\n\t\t\tHCGG AB 6\n\t\t\tGoto Hold\n\t\tHold:\n\t\t\tHCGF A 0 A_GunFlash // 3 2\n\t\t\t//HCGF A 0 A_SpawnItemEx (\"chaingunsmoke\", 20, 0, 36, 0, 0, 2, 0,0, 0)\n\t\t\tHCGF A 0 A_SpawnItemEx (\"chaingunsmoke\",cos(-pitch)*20,0,36+(sin(-pitch)*20),cos(-pitch)*0,0,2,0,0,0)\n\t\t\tTNT1 A 0 A_JumpIfInventory(\"UseCoopBullets\", 1, \"FireCoopA\")\n\t\t\tHCGF A 2 bright A_FireBullets (6.4, 4.8, -1, 30, \"NewBulletPuff\", FBF_NORANDOM | FBF_USEAMMO)\n\t\t\tContinue1:\n\t\t\tHCGF B 2 bright A_SpawnItemEx (\"bulletcasing\",cos(-pitch)*20,0,32+(sin(-pitch)*20),cos(-pitch)*0,8,random(4,8),0,0,0)\n\t\t\tHCGF A 0 A_GunFlash\n\t\t\t//HCGF A 0 A_SpawnItemEx (\"chaingunsmoke\", 20, 0, 36, 0, 0, 2, 0,0, 0)\n\t\t\tHCGF A 0 A_SpawnItemEx (\"chaingunsmoke\",cos(-pitch)*20,0,36+(sin(-pitch)*20),cos(-pitch)*0,0,2,0,0,0)\n\t\t\tTNT1 A 0 A_JumpIfInventory(\"UseCoopBullets\", 1, \"FireCoopB\")\n\t\t\tHCGF C 2 bright A_FireBullets (6.4, 4.8, -1, 30, \"NewBulletPuff\", FBF_NORANDOM | FBF_USEAMMO)\n\t\t\tContinue2:\n\t\t\tHCGF D 2 bright A_SpawnItemEx (\"bulletcasing\",cos(-pitch)*20,0,32+(sin(-pitch)*20),cos(-pitch)*0,8,random(4,8),0,0,0)\n\t\t\tHCGF A 0 A_Refire\n\t\t\tgoto Spindown\n\t\tFireCoopA:\n\t\t\tTNT1 A 0 A_PlayWeaponSound(\"weapons/minigunfire\")\n\t\t\tHCGF A 2 bright A_FireCustomMissile(\"BulletCG\", random(-640, 640)/100.00, 1, 0, 0, 1, random(-480, 480)/100.00 )\n\t\t Goto Continue1\n\t\tFireCoopB:\n\t\t\tTNT1 A 0 A_PlayWeaponSound(\"weapons/minigunfire\")\n\t\t\tHCGF C 2 bright A_FireCustomMissile(\"BulletCG\", random(-640, 640)/100.00, 1, 0, 0, 1, random(-480, 480)/100.00 )\n\t\t\tGoto Continue2\n\t\tSpindown:\n\t\t\tTNT1 A 0 A_PlayWeaponSound(\"weapons/minigundown\")\n\t\t\tHCGF A 0 A_SpawnItemEx (\"chaingunsmoke\",cos(-pitch)*20,0,36+(sin(-pitch)*20),cos(-pitch)*0,0,1,0,0,0)\n\t\t\tHCGG GFE 1\n\t\t\tHCGF A 0 A_SpawnItemEx (\"chaingunsmoke\",cos(-pitch)*20,0,36+(sin(-pitch)*20),cos(-pitch)*0,0,1,0,0,0)\n\t\t\tHCGG B 2 A_SpawnItemEx (\"chaingunsmoke\",cos(-pitch)*20,0,36+(sin(-pitch)*20),cos(-pitch)*0,0,1,0,0,0)\n\t\t\tHCGG B 2 A_SpawnItemEx (\"chaingunsmoke\",cos(-pitch)*20,0,36+(sin(-pitch)*20),cos(-pitch)*0,0,1,0,0,0)\n\t\t\tHCGG B 2 A_SpawnItemEx (\"chaingunsmoke\",cos(-pitch)*20,0,36+(sin(-pitch)*20),cos(-pitch)*0,0,1,0,0,0)\n\t\t\tHCGG C 2 A_SpawnItemEx (\"chaingunsmoke\",cos(-pitch)*20,0,36+(sin(-pitch)*20),cos(-pitch)*0,0,1,0,0,0)\n\t\t\tHCGG C 2 A_SpawnItemEx (\"chaingunsmoke\",cos(-pitch)*20,0,36+(sin(-pitch)*20),cos(-pitch)*0,0,1,0,0,0)\n\t\t\tHCGG C 2 A_SpawnItemEx (\"chaingunsmoke\",cos(-pitch)*20,0,36+(sin(-pitch)*20),cos(-pitch)*0,0,1,0,0,0)\n\t\t\tHCGG D 6 a_weaponready\n\t\t\tGoto Ready\n\t}\n}"
}
]
},
"maps": []
}