diff --git a/CVARINFO b/CVARINFO index 233405c..2b6c0a7 100644 --- a/CVARINFO +++ b/CVARINFO @@ -18,20 +18,20 @@ server int hdb_12gslug_shell_spawn_bias = -1; server int hdb_12gslug_casing_spawn_bias = -1; server bool hdb_12gslug_persistent_spawning = false; -// .420 Frei +// .451 Frei server int hdb_420frei_box_spawn_bias = -1; server int hdb_420frei_casing_spawn_bias = -1; server bool hdb_420frei_persistent_spawning = false; -// .069 Bore +// .066 Bore server int hdb_069bore_box_spawn_bias = -1; server int hdb_069bore_casing_spawn_bias = -1; server bool hdb_069bore_persistent_spawning = false; -// .50 AE -server int hdb_50ae_box_spawn_bias = -1; -server int hdb_50ae_casing_spawn_bias = -1; -server bool hdb_50ae_persistent_spawning = false; +// 9mm NDM +server int hdb_ndm_box_spawn_bias = -1; +server int hdb_ndm_casing_spawn_bias = -1; +server bool hdb_ndm_persistent_spawning = false; // .50 OMG server int hdb_50omg_box_spawn_bias = -1; diff --git a/KEYCONF b/KEYCONF index fa62058..a06d0c9 100644 --- a/KEYCONF +++ b/KEYCONF @@ -5,7 +5,7 @@ alias hdb_500sw_reset_cvars "resetcvar hdb_500sw_shellbox_spawn_bias; alias hdb_12gslug_reset_cvars "resetcvar hdb_12gslug_shellbox_spawn_bias; resetcvar hdb_12gslug_shell_spawn_bias; resetcvar hdb_12gslug_casing_spawn_bias; resetcvar hdb_12gslug_persistent_spawning" alias hdb_420frei_reset_cvars "resetcvar hdb_420frei_box_spawn_bias; resetcvar hdb_420frei_casing_spawn_bias; resetcvar hdb_420frei_persistent_spawning" alias hdb_069bore_reset_cvars "resetcvar hdb_069bore_box_spawn_bias; resetcvar hdb_069bore_casing_spawn_bias; resetcvar hdb_069bore_persistent_spawning" -alias hdb_50ae_reset_cvars "resetcvar hdb_50ae_box_spawn_bias; resetcvar hdb_50ae_casing_spawn_bias; resetcvar hdb_50ae_persistent_spawning" +alias hdb_ndm_reset_cvars "resetcvar hdb_ndm_box_spawn_bias; resetcvar hdb_ndm_casing_spawn_bias; resetcvar hdb_ndm_persistent_spawning" alias hdb_50OMG_reset_cvars "resetcvar hdb_50omg_box_spawn_bias; resetcvar hdb_50omg_casing_spawn_bias; resetcvar hdb_50omg_persistent_spawning" alias hdb_45ACP_reset_cvars "resetcvar hdb_45acp_box_spawn_bias; resetcvar hdb_45acp_casing_spawn_bias; resetcvar hdb_45acp_persistent_spawning" alias hdb_10mmAuto_reset_cvars "resetcvar hdb_10mm_box_spawn_bias; resetcvar hdb_10mm_casing_spawn_bias; resetcvar hdb_10mm_persistent_spawning" diff --git a/LANGUAGE b/LANGUAGE index de337b9..a272d05 100644 --- a/LANGUAGE +++ b/LANGUAGE @@ -12,8 +12,10 @@ MENU_WITHALL = "With All"; // All of these are for the individual rounds to allow external mods to modify their tags. This can be incredibly helpful for resprites that may want to change lorebits. - [Ted] TAG_069BORE = ".066 bore shell"; TAG_420FREI = ".451 Frei round"; -TAG_420FREI_BOX = ".451 Frei Boxes"; -TAG_069BORE_BOX = ".066 Bore Boxes"; +TAG_420FREI_BOX = ".451 Frei Box"; +TAG_069BORE_BOX = ".066 Bore Box"; +TAG_NDM = "Nail Driver Maximum round"; +TAG_NDMBOX = "Nail Driver Maximum Box"; TAG_500SWL = ".500 S&W light"; TAG_500SWH = ".500 S&W heavy"; TAG_500SW = ".500 S&W"; @@ -21,7 +23,6 @@ TAG_EXPLSHL = "Explosive Shotgun Slugs"; TAG_FLARESHELL = "Flare Shells"; TAG_G45LC = "Golden .45 LC round"; TAG_45LC = ".45 LC Round"; -TAG_50AE = ".50 AE round"; TAG_50AM = ".50 Action Mega"; TAG_50OMG = ".50 OMG round"; TAG_MUSKETBALL = "Lead Ball"; @@ -47,8 +48,6 @@ TAG_300SAVAGEBRASS=".300 Savage casing"; TAG_762TOKAREV="7.62 Tokarev round"; TAG_762TOKAREVBRASS="7.62 Tokarev casing"; -PICKUP_50AE="Picked up a .50 AE round."; -PICKUP_50AEBOX="Picked up some .50 Action Express ammo."; PICKUP_10MM="Picked up a 10mm round."; PICKUP_10MMBRASS="Picked up some 10mm brass."; PICKUP_10MMBOX="Picked up a box of 10mm rounds."; @@ -106,6 +105,8 @@ PICKUP_420FREI="Picked up a .451 Frei round."; PICKUP_420FREIBOX="Picked up some .451 Frei ammo."; PICKUP_069BORE="Picked up a .066 bore shell."; PICKUP_069BOREBOX="Picked up some .066 bore shells."; +PICKUP_NDM="Picked up a 9mm NDM round."; +PICKUP_NDMBOX="Picked up some 9mm NDM ammo."; TAG_BELTLINKS="Belt Links"; TAG_776BELTLINK="Small Belt Link"; diff --git a/MENUDEF b/MENUDEF index f9483cf..b4175d3 100644 --- a/MENUDEF +++ b/MENUDEF @@ -25,14 +25,12 @@ OptionMenu "HDBulletLibMenu" StaticText "" SafeCommand "Reset all options", "hdb_reset_cvars" StaticText "" - StaticText "Created by Accensus", "cyan" - Submenu "$TAG_50AE", "50AE", 0, 1 - StaticText "" StaticText "Created by Peppergrinder Team", "purple" Submenu "$TAG_12SLUG", "12GaugeSlugs", 0, 1 Submenu "$TAG_500SW", "500SW", 0, 1 Submenu "$TAG_420FREI", "420Frei", 0, 1 Submenu "$TAG_069BORE", "069Bore", 0, 1 + Submenu "$TAG_NDM", "9mmNDM", 0, 1 StaticText "" StaticText "Created by Bogus", "white" Submenu "$TAG_50OMG", "50OMG", 0, 1 @@ -73,34 +71,6 @@ OptionMenu "HDBulletLibMenu" Submenu "$TAG_3006", "3006", 0, 1 } -OptionMenu 50AE -{ - Title "------ .50 AE Options ------" - StaticText "Notice:", "Cyan" - StaticText "Setting 'spawn rate' to Replace All will suppress", "white" - StaticText "spawns of that given type.", "white" - StaticText "" - StaticText "Spawn Options", "Cyan" - StaticText "Control the spawn rate of .50 AE on Clip Boxes", "white" - ScaleSlider "Spawn Rate: ", "hdb_50ae_box_spawn_bias", -1, 999, 1, "$MENU_REPLACEALL", "$MENU_DISABLED" - SafeCommand "Reset spawn options", "resetcvar hdb_50ae_box_spawn_bias" - StaticText "" - StaticText "Control the spawn rate of .50 AE casings", "white" - ScaleSlider "Spawn Rate: ", "hdb_50ae_casing_spawn_bias", -1, 999, 1, "$MENU_REPLACEALL", "$MENU_DISABLED" - SafeCommand "Reset spawn options", "resetcvar hdb_50ae_casing_spawn_bias" - StaticText "" - StaticText "Enable/Disable .50 AE from spawning in Ammo Boxes and Backpacks.", "Cyan" - FlagOption "$TAG_50AE", "hdblib_enableammo_1", "OnOff", 0 - StaticText "" - StaticText "Control whether replacements happen after a mapload.", "white" - Option "Persistent Spawns: ", "hdb_50ae_persistent_spawning", "OnOff" - SafeCommand "Reset persistence options", "resetcvar hdb_50ae_persistent_spawning" - StaticText "" - StaticText "" - StaticText "Reset Options", "Cyan" - SafeCommand "Reset all options", "hdb_50ae_reset_cvars" -} - OptionMenu 500SW { Title "------ .500 S&W Options ------" @@ -222,6 +192,34 @@ OptionMenu 069Bore SafeCommand "Reset all options", "hdb_069bore_reset_cvars" } +OptionMenu 9mmNDM +{ + Title "------ Nail Driver Maximum Options ------" + StaticText "Notice:", "purple" + StaticText "Setting 'spawn rate' to Replace All will suppress", "white" + StaticText "spawns of that given type.", "white" + StaticText "" + StaticText "Spawn Options", "purple" + StaticText "Control the spawn rate of NDM on Clip Boxes", "white" + ScaleSlider "Spawn Rate: ", "hdb_ndm_box_spawn_bias", -1, 999, 1, "$MENU_REPLACEALL", "$MENU_DISABLED" + SafeCommand "Reset spawn options", "resetcvar hdb_ndm_box_spawn_bias" + StaticText "" + StaticText "Control the spawn rate of NDM casings", "white" + ScaleSlider "Spawn Rate: ", "hdb_ndm_casing_spawn_bias", -1, 999, 1, "$MENU_REPLACEALL", "$MENU_DISABLED" + SafeCommand "Reset spawn options", "resetcvar hdb_ndm_casing_spawn_bias" + StaticText "" + StaticText "Enable/Disable NDM from spawning in Ammo Boxes and Backpacks.", "purple" + FlagOption "$TAG_NDM", "hdblib_enableammo_1", "OnOff", 18 + StaticText "" + StaticText "Control whether replacements happen after a mapload.", "white" + Option "Persistent Spawns: ", "hdb_ndm_persistent_spawning", "OnOff" + SafeCommand "Reset persistence options", "resetcvar hdb_ndm_persistent_spawning" + StaticText "" + StaticText "" + StaticText "Reset Options", "purple" + SafeCommand "Reset all options", "hdb_ndm_reset_cvars" +} + OptionMenu 50OMG { Title "------ .50 OMG Options ------" diff --git a/README.md b/README.md index 1aa2fd6..e801019 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,7 @@ It's better to opt-in than it is to opt-out in this case. Check out the menu. Currently Includes: - .50 AE by Accensus -- 12 Gauge Slugs, .500 S&W Lights and Heavies, .451 Frei and .066 Bore by the Peppergrinder team +- 12 Gauge Slugs, .500 S&W Lights and Heavies, .451 Frei, .066 Bore, and 9mm NDM by the Peppergrinder team - .50 OMG by Bogus - .45 ACP and 4-Gauge Buckshot by Popguy - 10mm Auto, .45 LC, Golden .45 LC, Less-Lethal Shells, Explosive Slugs and Flare Shells by Swampyrad diff --git a/TEXTURES b/TEXTURES index af154e8..efb932f 100644 --- a/TEXTURES +++ b/TEXTURES @@ -1,5 +1,5 @@ // Texture definitions generated by SLADE3 -// on Sun Aug 6 19:23:59 2023 +// on Sat May 31 14:54:42 2025 Sprite "SLUGA0", 15, 7 { @@ -1039,7 +1039,6 @@ Sprite "G50YA0", 10, 7 } } -// .069 Bore & .420 Frei Sprite "42TEA0", 10, 6 { Offset 5, 6 @@ -1211,7 +1210,6 @@ Sprite "LLS4A0", 15, 7 } } -//fumbled shell sprites Sprite "ELLSA1", 3, 4 { Offset 1, 4 @@ -1272,7 +1270,6 @@ Sprite "ELLSE5", 3, 4 Patch "ELLSE5", 0, 0 } -//single flare shells Sprite "FLARA0", 3, 10 { XScale 0.500 @@ -1281,7 +1278,6 @@ Sprite "FLARA0", 3, 10 Patch "FLARA0", 0, 0 } -//four flare shells Sprite "FLA4A0", 15, 10 { XScale 0.500 @@ -1290,7 +1286,6 @@ Sprite "FLA4A0", 15, 10 Patch "FLA4A0", 0, 0 } -//flare shellbox Sprite "FLBXA0", 32, 12 { Offset 16, 12 @@ -1321,7 +1316,6 @@ Sprite "XLBXA0", 32, 12 Patch "XLBXA0", 0, 0 } -//fumbled shell sprites Sprite "XLLSA1", 3, 4 { Offset 1, 4 @@ -1486,11 +1480,6 @@ Sprite "T710A0", 40, 23 Patch "T710A0", 0, 0 } -// End of texture definitions - -//Belt Links - -//Large Sprite "HW0LA0", 14, 6 { Offset 7, 6 @@ -1508,3 +1497,23 @@ Sprite "HW1LA0", 56, 6 Offset 29, 6 Patch "ATCN_ST1", 0, 0 } + +Sprite "TNNDA0", 10, 4 +{ + Offset 5, 4 + Patch "TEN9A0", 0, 0 + { + Translation "64:111=@72[128,13,0]", "128:167=#[91,168,244]" + } +} + +Sprite "NRNDA0", 1, 3 +{ + Offset 1, 3 + Patch "TEN9A0", 0, -1 + { + Translation "64:111=@72[128,13,0]", "128:167=#[91,168,244]" + } +} + +// End of texture definitions diff --git a/ZSCRIPT.zsc b/ZSCRIPT.zsc index 2ea06ca..1460983 100644 --- a/ZSCRIPT.zsc +++ b/ZSCRIPT.zsc @@ -2,7 +2,6 @@ version "4.10" #include "zscript/HDBulletLib/SpawnHandler.zsc" -#include "zscript/HDBulletLib/Ammunition/50AE.zsc" #include "zscript/HDBulletLib/Ammunition/Slugs.zsc" #include "zscript/HDBulletLib/Ammunition/500S&W.zsc" #include "zscript/HDBulletLib/Ammunition/50OMG.zsc" @@ -18,7 +17,8 @@ version "4.10" #include "zscript/HDBulletLib/Ammunition/5mm.zsc" #include "zscript/HDBulletLib/Ammunition/6mmFlechettes.zsc" #include "zscript/HDBulletLib/Ammunition/50AM.zsc" -#include "zscript/HDBulletLib/Ammunition/069 Bore 420 Frei.zsc" +#include "zscript/HDBulletLib/Ammunition/066 Bore 451 Frei.zsc" +#include "zscript/HDBulletLib/Ammunition/9mmNDM.zsc" #include "zscript/HDBulletLib/Ammunition/Thunder & Tortoise Rockets.zsc" #include "zscript/HDBulletLib/Ammunition/20mm Grenades.zsc" #include "zscript/HDBulletLib/Ammunition/30-06.zsc" diff --git a/sprites/9mmNDM/NDMBA0 b/sprites/9mmNDM/NDMBA0 new file mode 100644 index 0000000..67e8308 Binary files /dev/null and b/sprites/9mmNDM/NDMBA0 differ diff --git a/zscript/HDBulletLib/Ammunition/069 Bore 420 Frei.zsc b/zscript/HDBulletLib/Ammunition/066 Bore 451 Frei.zsc similarity index 94% rename from zscript/HDBulletLib/Ammunition/069 Bore 420 Frei.zsc rename to zscript/HDBulletLib/Ammunition/066 Bore 451 Frei.zsc index a6408bd..90df994 100644 --- a/zscript/HDBulletLib/Ammunition/069 Bore 420 Frei.zsc +++ b/zscript/HDBulletLib/Ammunition/066 Bore 451 Frei.zsc @@ -1,3 +1,7 @@ +// ------------------------------------------------------------ +// CREATED BY a1337spy +// ------------------------------------------------------------ + const HDLD_420="4fr"; const HDLD_069BORE="66b"; const ENC_420=1; diff --git a/zscript/HDBulletLib/Ammunition/9mmNDM.zsc b/zscript/HDBulletLib/Ammunition/9mmNDM.zsc new file mode 100644 index 0000000..346c882 --- /dev/null +++ b/zscript/HDBulletLib/Ammunition/9mmNDM.zsc @@ -0,0 +1,71 @@ +// ------------------------------------------------------------ +// CREATED BY Sledge +// ------------------------------------------------------------ + +class HDSpentNDM:HDSpent9mm{ + default{ + Translation "128:167=#[91,168,244]"; + } +} +////////////////////////////////////////////////////// +const HDLD_NDM="ndm"; + +class HDB_NDM:HDBulletActor{ + default{ + pushfactor 0.4; + mass 60; + speed 740; + accuracy 450; + stamina 762; + woundhealth 30; + hdbulletactor.hardness 15; + } +} + +class HDNDMLoose:HDRoundAmmo{ + default{ + +inventory.ignoreskill + +cannotpush + +forcexybillboard + +rollsprite +rollcenter + +hdpickup.multipickup + xscale 0.7; + yscale 0.6; + inventory.pickupmessage "$PICKUP_NDM"; + hdpickup.refid HDLD_NDM; + tag "$TAG_NDM"; + hdpickup.bulk ENC_9; + inventory.icon "TNNDA0"; + } + override void SplitPickup(){ + SplitPickupBoxableRound(10,60,"HDNDMBoxPickup","TNNDA0","NRNDA0"); + } + override void GetItemsThatUseThis(){ + itemsthatusethis.push("HDGuillotine"); + itemsthatusethis.push("HDBreakerP90"); + } + states{ + spawn: + NRND A -1; + TNND A -1; + } +} + +class HDNDMBoxPickup:HDUPK{ + default{ + //$Category "Ammo/Hideous Destructor/" + //$Title "Box of 9mm" + //$Sprite "9BOXA0" + + tag "$TAG_NDMBOX"; + scale 0.4; + hdupk.amount 60; + hdupk.pickupsound "weapons/pocket"; + hdupk.pickupmessage "$PICKUP_NDMBOX"; + hdupk.pickuptype "HDNDMLoose"; + } + states{ + spawn: + NDMB A -1; + } +} \ No newline at end of file diff --git a/zscript/HDBulletLib/Ammunition/Slugs.zsc b/zscript/HDBulletLib/Ammunition/Slugs.zsc index 57c782b..fa2a821 100644 --- a/zscript/HDBulletLib/Ammunition/Slugs.zsc +++ b/zscript/HDBulletLib/Ammunition/Slugs.zsc @@ -1,6 +1,6 @@ -// ------------------------------ -// CREATED BY SLEDGE -// ------------------------------ +// ------------------------------------------------------------ +// CREATED BY Sledge & prettyFist +// ------------------------------------------------------------ class HDB_Slug : HDBulletActor { diff --git a/zscript/HDBulletLib/SpawnHandler.zsc b/zscript/HDBulletLib/SpawnHandler.zsc index 11f1506..cc7ab92 100644 --- a/zscript/HDBulletLib/SpawnHandler.zsc +++ b/zscript/HDBulletLib/SpawnHandler.zsc @@ -3,7 +3,6 @@ const HDCONST_HDBLEVENT = HDCONST_BPSPAWNPOOLEVENT + 1; class HDBulletLibHandler : EventHandler { // [Ace] Order here must match order in menu. And zscript files. - [Ted] static const class RemovedClasses[] = { - 'HD50AEAmmo', 'HDSlugAmmo', 'HD500SWLightAmmo', 'HD500SWHeavyAmmo', @@ -22,6 +21,7 @@ class HDBulletLibHandler : EventHandler { 'HD50AM_Ammo', 'HDAurochsAmmo', 'HD069BoreAmmo', + 'HDNDMLoose', 'TenMilBrass', 'Wan_ThuRKTAmmo', 'Wan_TortRKTAmmo', @@ -241,34 +241,34 @@ class HDBulletLibAmmoSpawner: EventHandler { spawns_12gslugcase.push(addAmmoEntry('HDSpentShell', hdb_12gslug_casing_spawn_bias)); addAmmo('HDSpentSlug', spawns_12gslugcase, hdb_12gslug_persistent_spawning); - // .420 Frei Box Pickup + // .451 Frei Box Pickup Array spawns_420freibox; spawns_420freibox.push(addAmmoEntry('ClipBoxPickup', hdb_420frei_box_spawn_bias)); addAmmo('HD420BoxPickup', spawns_420freibox, hdb_420frei_persistent_spawning); - // .420 Frei Casing + // .451 Frei Casing Array spawns_420freicasing; spawns_420freicasing.push(addAmmoEntry('HDSpent9mm', hdb_420frei_casing_spawn_bias)); spawns_420freicasing.push(addAmmoEntry('HDSpent355', hdb_420frei_casing_spawn_bias)); addAmmo('HDSpent420', spawns_420freicasing, hdb_420frei_persistent_spawning); - // .069 Bore Box Pickup + // .066 Bore Box Pickup Array spawns_069borebox; spawns_069borebox.push(addAmmoEntry('ShellBoxRandom', hdb_069bore_box_spawn_bias)); addAmmo('HD069BoreBox', spawns_069borebox, hdb_069bore_persistent_spawning); - // .069 Bore Casing + // .066 Bore Casing Array spawns_069borecasing; spawns_069borecasing.push(addAmmoEntry('HDSpentShell', hdb_069bore_casing_spawn_bias)); addAmmo('HDSpent069Bore', spawns_069borecasing, hdb_069bore_persistent_spawning); - // .50 AE Box Pickup - Array spawns_50aebox; - spawns_50aebox.push(addAmmoEntry('ClipBoxPickup', hdb_50ae_box_spawn_bias)); - addAmmo('HD50AEBoxPickup', spawns_50aebox, hdb_50ae_persistent_spawning); - // .50 AE Casing - Array spawns_50aecasing; - spawns_50aecasing.push(addAmmoEntry('HDSpent9mm', hdb_50ae_casing_spawn_bias)); - spawns_50aecasing.push(addAmmoEntry('HDSpent355', hdb_50ae_casing_spawn_bias)); - addAmmo('HDSpent50AE', spawns_50aecasing, hdb_50ae_persistent_spawning); + // 9mm NDM Box Pickup + Array spawns_NDMbox; + spawns_NDMbox.push(addAmmoEntry('ClipBoxPickup', hdb_NDM_box_spawn_bias)); + addAmmo('HDNDMBoxPickup', spawns_NDMbox, hdb_NDM_persistent_spawning); + // 9mm NDM Casing + Array spawns_NDMcasing; + spawns_NDMcasing.push(addAmmoEntry('HDSpent9mm', hdb_NDM_casing_spawn_bias)); + spawns_NDMcasing.push(addAmmoEntry('HDSpent355', hdb_NDM_casing_spawn_bias)); + addAmmo('HDSpentNDM', spawns_NDMcasing, hdb_NDM_persistent_spawning); // .50 OMG Box Pickup Array spawns_50omgbox;