From 9a92f1961046d4a86c2821f5302f0c34e0b2e9f5 Mon Sep 17 00:00:00 2001 From: beelzebold-ii Date: Thu, 29 Jan 2026 21:39:36 -0600 Subject: [PATCH 1/4] added 8.28mm ammo/projectile and LANGUAGE strings --- LANGUAGE | 3 + zscript/HDBulletLib/Ammunition/828 UAC.zsc | 73 ++++++++++++++++++++++ 2 files changed, 76 insertions(+) create mode 100644 zscript/HDBulletLib/Ammunition/828 UAC.zsc diff --git a/LANGUAGE b/LANGUAGE index a272d05..98e32bd 100644 --- a/LANGUAGE +++ b/LANGUAGE @@ -47,6 +47,7 @@ TAG_300SAVAGE=".300 Savage ammo"; TAG_300SAVAGEBRASS=".300 Savage casing"; TAG_762TOKAREV="7.62 Tokarev round"; TAG_762TOKAREVBRASS="7.62 Tokarev casing"; +TAG_828MM = "8.28mm UAC round"; PICKUP_10MM="Picked up a 10mm round."; PICKUP_10MMBRASS="Picked up some 10mm brass."; @@ -107,6 +108,8 @@ 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."; +PICKUP_826MM = "Picked up a stray 8.28mm round."; +PICKUP_826MMCHUNK = "Picked up some stray 8.28mm rounds."; TAG_BELTLINKS="Belt Links"; TAG_776BELTLINK="Small Belt Link"; diff --git a/zscript/HDBulletLib/Ammunition/828 UAC.zsc b/zscript/HDBulletLib/Ammunition/828 UAC.zsc new file mode 100644 index 0000000..b66b5ed --- /dev/null +++ b/zscript/HDBulletLib/Ammunition/828 UAC.zsc @@ -0,0 +1,73 @@ +// ==================================================== +// UAC 8.28mm Battle Rifle cartridge by Niko Chevrier +// ==================================================== + +const ENC_828 = ENC_426 * 2.45; +const ENC_828_LOADED = ENC_426_LOADED * 2.65; +const ENC_828MAG_EMPTY = ENC_426MAG_EMPTY * 1.4; +const ENC_828MAG = ENC_828MAG_EMPTY + (ENC_828_LOADED * 35); +const ENC_828MAG_LOADED = ENC_828MAG_EMPTY * 0.4; + + +//[nkc] 8.28mm differs from 7.76mm by basically being way lighter but fast as fuck +//[nkc] felt fitting given 4.26mm's gimmick of being tiny but lightning fast +class HDB_828:HDBulletActor{ + default{ + pushfactor 0.3; + mass 64; + speed HDCONST_MPSTODUPT*1120; + accuracy 700; + stamina 828; + woundhealth 8; + hdbulletactor.hardness 4; + hdbulletactor.distantsound "world/riflefar"; + } +} + +class EightMilAmmo:HDAmmo{ + default{ + +inventory.ignoreskill + +hdpickup.cheatnogive + +hdpickup.multipickup + xscale 0.5; yscale 0.6; + tag "$TAG_828MM"; + hdpickup.refid "828"; + hdpickup.bulk ENC_828; + inventory.icon "RCLSA3A7"; + inventory.pickupmessage "$PICKUP_828MM"; + } + override string pickupmessage(){ + + string pms=amount==1?Stringtable.Localize("$PICKUP_828MM"):Stringtable.Localize("$PICKUP_828MMCHUNK"); + return pms; + } + override void splitpickup(){ + int amm=min(amount,random(4,26)); + while(amount>amm){ + int ld=min(amount,random(4,26)); + actor a=spawn("EightMilAmmo",pos); + a.vel+=vel+(frandom(-1,1),frandom(-1,1),frandom(-1,1)); + a.angle=frandom(0,360); + inventory(a).amount=ld; + amount-=ld; + } + if(amount<1){ + destroy(); + return; + } + scale.y=default.scale.y*max(1.,amount*0.3); + if(amount>1)frame=1; + } + override void GetItemsThatUseThis(){ + //[nkc] do I just leave this empty for the weapon mods to add to it on their own? + //[nkc] for now I guess I will. + //itemsthatusethis.push("ZM81BattleRifle"); + } + states(actor){ + spawn: + RCLS A -1; + stop; + } +} + +//[nkc] oh wait, mags should be the responsibility of the weapon modders, huh? \ No newline at end of file From db891b95e11a42ac53dbcf833accbfaa411b2980 Mon Sep 17 00:00:00 2001 From: beelzebold-ii Date: Thu, 29 Jan 2026 21:57:44 -0600 Subject: [PATCH 2/4] removed unnecessary mag bulks, added sprites with TEXTURES (no rotations) --- TEXTURES | 31 +++++++++++++--------- ZSCRIPT.zsc | 3 ++- zscript/HDBulletLib/Ammunition/828 UAC.zsc | 19 +++++++------ 3 files changed, 32 insertions(+), 21 deletions(-) diff --git a/TEXTURES b/TEXTURES index 402ee6a..7fbb084 100644 --- a/TEXTURES +++ b/TEXTURES @@ -1,5 +1,5 @@ // Texture definitions generated by SLADE3 -// on Sat May 31 14:54:42 2025 +// on Thu Jan 29 21:49:35 2026 Sprite "SLUGA0", 15, 7 { @@ -1039,7 +1039,6 @@ Sprite "G50YA0", 10, 7 } } -// .069 Bore & .420 Frei Sprite "42TEA0", 10, 6 { Offset 5, 6 @@ -1070,6 +1069,24 @@ Sprite "42TEA0", 10, 6 } } +Texture "828RA0", 4, 1 +{ + Offset 2, 1 + Patch "RCLSA3A7", 0, 0 + Patch "REDPXL", 1, 0 + { + Blend "#000000", 0.3 + } +} + +Texture "828RB0", 4, 3 +{ + Offset 2, 4 + Patch "828RA0", 0, 0 + Patch "828RA0", 0, 1 + Patch "828RA0", 0, 2 +} + Sprite "42BTA0", 20, 8 { Offset 10, 8 @@ -1211,7 +1228,6 @@ Sprite "LLS4A0", 15, 7 } } -//fumbled shell sprites Sprite "ELLSA1", 3, 4 { Offset 1, 4 @@ -1272,7 +1288,6 @@ Sprite "ELLSE5", 3, 4 Patch "ELLSE5", 0, 0 } -//single flare shells Sprite "FLARA0", 3, 10 { XScale 0.500 @@ -1281,7 +1296,6 @@ Sprite "FLARA0", 3, 10 Patch "FLARA0", 0, 0 } -//four flare shells Sprite "FLA4A0", 15, 10 { XScale 0.500 @@ -1290,7 +1304,6 @@ Sprite "FLA4A0", 15, 10 Patch "FLA4A0", 0, 0 } -//flare shellbox Sprite "FLBXA0", 32, 12 { Offset 16, 12 @@ -1321,7 +1334,6 @@ Sprite "XLBXA0", 32, 12 Patch "XLBXA0", 0, 0 } -//fumbled shell sprites Sprite "XLLSA1", 3, 4 { Offset 1, 4 @@ -1486,11 +1498,6 @@ Sprite "T710A0", 40, 23 Patch "T710A0", 0, 0 } -// End of texture definitions - -//Belt Links - -//Large Sprite "HW0LA0", 14, 6 { Offset 7, 6 diff --git a/ZSCRIPT.zsc b/ZSCRIPT.zsc index 1460983..2fad808 100644 --- a/ZSCRIPT.zsc +++ b/ZSCRIPT.zsc @@ -26,4 +26,5 @@ version "4.10" #include "zscript/HDBulletLib/Ammunition/Birdshot.zsc" #include "zscript/HDBulletLib/Ammunition/300savage.zsc" #include "zscript/HDBulletLib/Ammunition/762Tokarev.zsc" -#include "zscript/HDBulletLib/Ammunition/BeltLinks.zsc" \ No newline at end of file +#include "zscript/HDBulletLib/Ammunition/BeltLinks.zsc" +#include "zscript/HDBulletLib/Ammunition/828 UAC.zsc" \ No newline at end of file diff --git a/zscript/HDBulletLib/Ammunition/828 UAC.zsc b/zscript/HDBulletLib/Ammunition/828 UAC.zsc index b66b5ed..f4b3749 100644 --- a/zscript/HDBulletLib/Ammunition/828 UAC.zsc +++ b/zscript/HDBulletLib/Ammunition/828 UAC.zsc @@ -2,15 +2,18 @@ // UAC 8.28mm Battle Rifle cartridge by Niko Chevrier // ==================================================== -const ENC_828 = ENC_426 * 2.45; +const ENC_828 = ENC_426 * 2.55; const ENC_828_LOADED = ENC_426_LOADED * 2.65; -const ENC_828MAG_EMPTY = ENC_426MAG_EMPTY * 1.4; -const ENC_828MAG = ENC_828MAG_EMPTY + (ENC_828_LOADED * 35); -const ENC_828MAG_LOADED = ENC_828MAG_EMPTY * 0.4; //[nkc] 8.28mm differs from 7.76mm by basically being way lighter but fast as fuck //[nkc] felt fitting given 4.26mm's gimmick of being tiny but lightning fast + +/* +[nkc] the idea of this round is to effectively be a hotter and heavier 4.26mm + which cooks off much faster and has much heftier recoil + it has great flesh damage pretty good armor pen, mediocre shield damage. +*/ class HDB_828:HDBulletActor{ default{ pushfactor 0.3; @@ -33,7 +36,7 @@ class EightMilAmmo:HDAmmo{ tag "$TAG_828MM"; hdpickup.refid "828"; hdpickup.bulk ENC_828; - inventory.icon "RCLSA3A7"; + inventory.icon "828RA0"; inventory.pickupmessage "$PICKUP_828MM"; } override string pickupmessage(){ @@ -42,9 +45,9 @@ class EightMilAmmo:HDAmmo{ return pms; } override void splitpickup(){ - int amm=min(amount,random(4,26)); + int amm=min(amount,random(8,28)); while(amount>amm){ - int ld=min(amount,random(4,26)); + int ld=min(amount,random(8,28)); actor a=spawn("EightMilAmmo",pos); a.vel+=vel+(frandom(-1,1),frandom(-1,1),frandom(-1,1)); a.angle=frandom(0,360); @@ -65,7 +68,7 @@ class EightMilAmmo:HDAmmo{ } states(actor){ spawn: - RCLS A -1; + 828R A -1; stop; } } From 98af5bf9ec32d67ca09ebdd8f2c0fb577ac8c634 Mon Sep 17 00:00:00 2001 From: beelzebold-ii Date: Thu, 29 Jan 2026 22:08:48 -0600 Subject: [PATCH 3/4] changed the ammo pickup to be larger graphically --- zscript/HDBulletLib/Ammunition/828 UAC.zsc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zscript/HDBulletLib/Ammunition/828 UAC.zsc b/zscript/HDBulletLib/Ammunition/828 UAC.zsc index f4b3749..6630424 100644 --- a/zscript/HDBulletLib/Ammunition/828 UAC.zsc +++ b/zscript/HDBulletLib/Ammunition/828 UAC.zsc @@ -32,7 +32,7 @@ class EightMilAmmo:HDAmmo{ +inventory.ignoreskill +hdpickup.cheatnogive +hdpickup.multipickup - xscale 0.5; yscale 0.6; + xscale 0.9; yscale 1.2; tag "$TAG_828MM"; hdpickup.refid "828"; hdpickup.bulk ENC_828; From f138a40ddbdc5b4c7b6c466d0d30c59327c22529 Mon Sep 17 00:00:00 2001 From: beelzebold-ii Date: Thu, 29 Jan 2026 22:29:22 -0600 Subject: [PATCH 4/4] fixed graphical error and incorrect pickup message references in 8.28mm ammo --- LANGUAGE | 4 ++-- TEXTURES | 10 +++++----- zscript/HDBulletLib/Ammunition/828 UAC.zsc | 10 ++++++---- 3 files changed, 13 insertions(+), 11 deletions(-) diff --git a/LANGUAGE b/LANGUAGE index 98e32bd..0bc9806 100644 --- a/LANGUAGE +++ b/LANGUAGE @@ -108,8 +108,8 @@ 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."; -PICKUP_826MM = "Picked up a stray 8.28mm round."; -PICKUP_826MMCHUNK = "Picked up some stray 8.28mm rounds."; +PICKUP_828MM = "Picked up a stray 8.28mm round."; +PICKUP_828MMCHUNK = "Picked up some stray 8.28mm rounds."; TAG_BELTLINKS="Belt Links"; TAG_776BELTLINK="Small Belt Link"; diff --git a/TEXTURES b/TEXTURES index 7fbb084..35c8170 100644 --- a/TEXTURES +++ b/TEXTURES @@ -1,5 +1,5 @@ // Texture definitions generated by SLADE3 -// on Thu Jan 29 21:49:35 2026 +// on Thu Jan 29 22:26:07 2026 Sprite "SLUGA0", 15, 7 { @@ -1069,9 +1069,9 @@ Sprite "42TEA0", 10, 6 } } -Texture "828RA0", 4, 1 +Sprite "828RA0", 4, 1 { - Offset 2, 1 + Offset 2, 2 Patch "RCLSA3A7", 0, 0 Patch "REDPXL", 1, 0 { @@ -1079,9 +1079,9 @@ Texture "828RA0", 4, 1 } } -Texture "828RB0", 4, 3 +Sprite "828RB0", 4, 1 { - Offset 2, 4 + Offset 2, 1 Patch "828RA0", 0, 0 Patch "828RA0", 0, 1 Patch "828RA0", 0, 2 diff --git a/zscript/HDBulletLib/Ammunition/828 UAC.zsc b/zscript/HDBulletLib/Ammunition/828 UAC.zsc index 6630424..5d1829f 100644 --- a/zscript/HDBulletLib/Ammunition/828 UAC.zsc +++ b/zscript/HDBulletLib/Ammunition/828 UAC.zsc @@ -41,13 +41,13 @@ class EightMilAmmo:HDAmmo{ } override string pickupmessage(){ - string pms=amount==1?Stringtable.Localize("$PICKUP_828MM"):Stringtable.Localize("$PICKUP_828MMCHUNK"); + string pms=amount==1?Stringtable.Localize("$PICKUP_828MM",false):Stringtable.Localize("$PICKUP_828MMCHUNK",false); return pms; } override void splitpickup(){ - int amm=min(amount,random(8,28)); + int amm=min(amount,random(10,16)); while(amount>amm){ - int ld=min(amount,random(8,28)); + int ld=min(amount,random(10,16)); actor a=spawn("EightMilAmmo",pos); a.vel+=vel+(frandom(-1,1),frandom(-1,1),frandom(-1,1)); a.angle=frandom(0,360); @@ -58,7 +58,7 @@ class EightMilAmmo:HDAmmo{ destroy(); return; } - scale.y=default.scale.y*max(1.,amount*0.3); + scale.y=default.scale.y*max(1.,amount*0.24); if(amount>1)frame=1; } override void GetItemsThatUseThis(){ @@ -67,6 +67,8 @@ class EightMilAmmo:HDAmmo{ //itemsthatusethis.push("ZM81BattleRifle"); } states(actor){ + cache: + 828R B 0; spawn: 828R A -1; stop;