diff --git a/LANGUAGE b/LANGUAGE index a272d05..0bc9806 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_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 402ee6a..35c8170 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 22:26:07 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 } } +Sprite "828RA0", 4, 1 +{ + Offset 2, 2 + Patch "RCLSA3A7", 0, 0 + Patch "REDPXL", 1, 0 + { + Blend "#000000", 0.3 + } +} + +Sprite "828RB0", 4, 1 +{ + Offset 2, 1 + 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 new file mode 100644 index 0000000..5d1829f --- /dev/null +++ b/zscript/HDBulletLib/Ammunition/828 UAC.zsc @@ -0,0 +1,78 @@ +// ==================================================== +// UAC 8.28mm Battle Rifle cartridge by Niko Chevrier +// ==================================================== + +const ENC_828 = ENC_426 * 2.55; +const ENC_828_LOADED = ENC_426_LOADED * 2.65; + + +//[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; + 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.9; yscale 1.2; + tag "$TAG_828MM"; + hdpickup.refid "828"; + hdpickup.bulk ENC_828; + inventory.icon "828RA0"; + inventory.pickupmessage "$PICKUP_828MM"; + } + override string pickupmessage(){ + + string pms=amount==1?Stringtable.Localize("$PICKUP_828MM",false):Stringtable.Localize("$PICKUP_828MMCHUNK",false); + return pms; + } + override void splitpickup(){ + int amm=min(amount,random(10,16)); + while(amount>amm){ + 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); + inventory(a).amount=ld; + amount-=ld; + } + if(amount<1){ + destroy(); + return; + } + scale.y=default.scale.y*max(1.,amount*0.24); + 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){ + cache: + 828R B 0; + spawn: + 828R A -1; + stop; + } +} + +//[nkc] oh wait, mags should be the responsibility of the weapon modders, huh? \ No newline at end of file