From 6f10dc6bd8f26fa0789ea2ad5619e92438d0c4ac Mon Sep 17 00:00:00 2001 From: Hatterhat <31829017+Hatterhat@users.noreply.github.com> Date: Tue, 7 Jan 2025 17:57:19 -0700 Subject: [PATCH] Even More Magazine Miscellany - Pen Interactions, Stripes, Descriptions (#88930) ## About The Pull Request ![image](https://github.com/user-attachments/assets/dd4d2935-de64-4a23-8789-7ca17fe2d488) The original purpose of this PR was to extend the previous Magazine Miscellany PR by adding the ability to recolor magazine indicators if they had a defined icon. This functionality is present by using a pen on a magazine that has a defined ammo band icon state. This PR also further standardizes magazines with different ammo types by using a define to append their description and magazine color for AP ammo, hollow-points, and incendiary ammo. This PR also _also_ gives ammo indicator bands to the magazines for the Stechkin APS and C-20r. And also gives descriptions to every magazine so they're not using a placeholder that mentions error signs anymore. Each description is roughly in the format of "caliber, suitable for gun". Not sure if I should standardize magazine names to be "caliber and special ammo type" - the only outlier I can think of right now for that would be the 7mm ammo boxes for the L6. ## Why It's Good For The Game Ammo stripes are neat, functionally, so changing the stripes on magazines in case someone chooses to reload spent mags with autolathe ammo is probably nice as a QoL thing. Descriptions that aren't placeholders are pretty cool too. ## Changelog :cl: add: Magazines with defined ammo bands can now have their color changed with a pen, in case you're reloading spent magazines or speedloaders with different ammunition and want to change magazine colors to be appropriate. qol: C-20r magazines and Stechkin APS magazines now have ammo band support. qol: Standardized some descriptions for AP, HP, and incendiary magazines. /:cl: --------- Co-authored-by: Hatterhat --- code/__DEFINES/colors.dm | 6 +++ code/__DEFINES/magazines.dm | 21 ++++++++ .../boxes_magazines/_box_magazine.dm | 21 +++++--- .../boxes_magazines/external/grenade.dm | 1 + .../boxes_magazines/external/lmg.dm | 25 +++++++--- .../boxes_magazines/external/pistol.dm | 44 ++++++---------- .../boxes_magazines/external/rifle.dm | 19 ++++--- .../boxes_magazines/external/shotgun.dm | 2 +- .../boxes_magazines/external/smg.dm | 47 ++++++++++-------- .../boxes_magazines/external/sniper.dm | 12 +++-- .../projectiles/guns/ballistic/automatic.dm | 2 +- icons/obj/weapons/guns/ammo.dmi | Bin 28291 -> 28763 bytes tgstation.dme | 1 + 13 files changed, 123 insertions(+), 78 deletions(-) create mode 100644 code/__DEFINES/magazines.dm diff --git a/code/__DEFINES/colors.dm b/code/__DEFINES/colors.dm index f2b0daf1264..ee1ebd0cfe1 100644 --- a/code/__DEFINES/colors.dm +++ b/code/__DEFINES/colors.dm @@ -435,6 +435,7 @@ #define COLOR_ICECREAM_CUSTOM "#f3f3f3" #define COLOR_ICECREAM_CHERRY_CHOCOLATE "#800000" +// defines for .38 ammo type colors #define COLOR_AMMO_TRACK "#bd0ed4" #define COLOR_AMMO_MATCH "#ff0000a8" #define COLOR_AMMO_RUBBER "#3d3181" @@ -443,6 +444,11 @@ #define COLOR_AMMO_HOTSHOT "#ff7b00" #define COLOR_AMMO_ICEBLOX "#0de3ff" +// defines for other ammo type colors (should this be merged with above?) +#define COLOR_AMMO_INCENDIARY "#f4001f" +#define COLOR_AMMO_ARMORPIERCE "#d9d9d9" +#define COLOR_AMMO_HOLLOWPOINT "#ff9900" + GLOBAL_LIST_INIT(cable_colors, list( CABLE_COLOR_BLUE = CABLE_HEX_COLOR_BLUE, CABLE_COLOR_CYAN = CABLE_HEX_COLOR_CYAN, diff --git a/code/__DEFINES/magazines.dm b/code/__DEFINES/magazines.dm new file mode 100644 index 00000000000..3a7b19a7768 --- /dev/null +++ b/code/__DEFINES/magazines.dm @@ -0,0 +1,21 @@ +/// Appended to the description of magazines that spawn with old-fashioned incendiary ammo, which generally leave fire trails and give firestacks in return for less base damage. +#define MAGAZINE_DESC_INC "
Carries rounds which ignite targets and leave flaming trails, but inflict less damage." +/// Appended to the description of magazines that spawn with hollow-point ammo, which generally has higher base damage but is weak against armor. +#define MAGAZINE_DESC_HOLLOWPOINT "
Carries hollow-point rounds which are effective against unarmored targets, but suffer greatly against armor." +/// Appended to the description of magazines that spawn with armor-piercing ammo, which generally has less base damage but penetrates armor. +#define MAGAZINE_DESC_ARMORPIERCE "
Carries armor-piercing rounds which are effective against armored targets, but less effective against unarmored targets." + +/// Defines a magazine to, visually, be for incendiary ammo by setting the ammo band color and appending a short blurb to the description. +#define MAGAZINE_TYPE_INCENDIARY \ + ammo_band_color = COLOR_AMMO_INCENDIARY; \ + desc = parent_type::desc + MAGAZINE_DESC_INC; + +/// Defines a magazine to, visually, be for hollow-point ammo by setting the ammo band color and appending a short blurb to the description. +#define MAGAZINE_TYPE_HOLLOWPOINT \ + ammo_band_color = COLOR_AMMO_HOLLOWPOINT; \ + desc = parent_type::desc + MAGAZINE_DESC_HOLLOWPOINT; + +/// Defines a magazine to, visually, be for armor-piercing ammo by setting the ammo band color and appending a short blurb to the description. +#define MAGAZINE_TYPE_ARMORPIERCE \ + ammo_band_color = COLOR_AMMO_ARMORPIERCE; \ + desc = parent_type::desc + MAGAZINE_DESC_ARMORPIERCE; diff --git a/code/modules/projectiles/boxes_magazines/_box_magazine.dm b/code/modules/projectiles/boxes_magazines/_box_magazine.dm index b87821e219a..8dfec7a32f2 100644 --- a/code/modules/projectiles/boxes_magazines/_box_magazine.dm +++ b/code/modules/projectiles/boxes_magazines/_box_magazine.dm @@ -20,7 +20,7 @@ ///type that the magazine will be searching for, rejects if not a subtype of var/ammo_type = /obj/item/ammo_casing /// wording used for individual units of ammo, e.g. cartridges (regular ammo), shells (shotgun shells) - var/casing_phrasing = "cartridge" + var/casing_phrasing = "round" ///maximum amount of ammo in the magazine var/max_ammo = 7 ///Controls how sprites are updated for the ammo box; see defines in combat.dm: AMMO_BOX_ONE_SPRITE; AMMO_BOX_PER_BULLET; AMMO_BOX_FULL_EMPTY @@ -162,6 +162,17 @@ return TRUE /obj/item/ammo_box/attackby(obj/item/tool, mob/user, params, silent = FALSE, replace_spent = 0) + + if(IS_WRITING_UTENSIL(tool)) + if(!ammo_band_icon) + balloon_alert(user, "no indicator support!") + return + var/new_color = input(user, "Set a new ammo band color, cancel to remove indicator", "Ammo Box Indicator Color", ammo_band_color) as color|null + ammo_band_color = new_color + balloon_alert(user, "indicator updated") + update_appearance() + return + var/num_loaded = 0 if(!can_load(user)) return @@ -208,19 +219,15 @@ /obj/item/ammo_box/examine(mob/user) . = ..() + var/shells_left = LAZYLEN(stored_ammo) var/top_round = get_round() if(!top_round) return + . += "It has [shells_left] [casing_phrasing]\s remaining." // this is kind of awkward phrasing, but it's the top/ready ammo in the box // intended for people who have like three mislabeled magazines . += span_notice("The [top_round] is ready in [src].") - -/obj/item/ammo_box/update_desc(updates) - . = ..() - var/shells_left = LAZYLEN(stored_ammo) - desc = "[initial(desc)]
There [(shells_left == 1) ? "is" : "are"] [shells_left] [casing_phrasing]\s left!" - /obj/item/ammo_box/update_icon_state() . = ..() var/shells_left = LAZYLEN(stored_ammo) diff --git a/code/modules/projectiles/boxes_magazines/external/grenade.dm b/code/modules/projectiles/boxes_magazines/external/grenade.dm index 4ba7d43efae..43903277d0d 100644 --- a/code/modules/projectiles/boxes_magazines/external/grenade.dm +++ b/code/modules/projectiles/boxes_magazines/external/grenade.dm @@ -1,5 +1,6 @@ /obj/item/ammo_box/magazine/m75 name = "specialized magazine (.75)" + desc = "A .75 gyrojet magazine, suitable for use in the Gyrojet pistol." icon_state = "75" ammo_type = /obj/item/ammo_casing/a75 caliber = CALIBER_75 diff --git a/code/modules/projectiles/boxes_magazines/external/lmg.dm b/code/modules/projectiles/boxes_magazines/external/lmg.dm index 5af59b03777..be204f0b7e7 100644 --- a/code/modules/projectiles/boxes_magazines/external/lmg.dm +++ b/code/modules/projectiles/boxes_magazines/external/lmg.dm @@ -1,32 +1,43 @@ /obj/item/ammo_box/magazine/m7mm name = "box magazine (7mm)" - icon_state = "a7mm-50" + desc = "A sizeable 7mm box magazine, suitable for the L6 SAW." + icon_state = "a7mm" + ammo_band_icon = "+a7mmab" ammo_type = /obj/item/ammo_casing/m7mm caliber = CALIBER_A7MM max_ammo = 50 /obj/item/ammo_box/magazine/m7mm/hollow - name = "box magazine (Hollow-Point 7mm)" + name = "box magazine (7mm HP)" + MAGAZINE_TYPE_HOLLOWPOINT ammo_type = /obj/item/ammo_casing/m7mm/hollow /obj/item/ammo_box/magazine/m7mm/ap - name = "box magazine (Armor Penetrating 7mm)" + name = "box magazine (7mm AP)" + MAGAZINE_TYPE_ARMORPIERCE ammo_type = /obj/item/ammo_casing/m7mm/ap /obj/item/ammo_box/magazine/m7mm/incen - name = "box magazine (Incendiary 7mm)" + name = "box magazine (7mm Incendiary)" + MAGAZINE_TYPE_INCENDIARY ammo_type = /obj/item/ammo_casing/m7mm/incen /obj/item/ammo_box/magazine/m7mm/match - name = "box magazine (Match 7mm)" + name = "box magazine (7mm Match)" + ammo_band_color = COLOR_AMMO_MATCH + desc = parent_type::desc + "
Carries match-grade rounds, which are designed to ricochet off walls in an exceedingly stylish, but possibly user-unfriendly manner." ammo_type = /obj/item/ammo_casing/m7mm/match /obj/item/ammo_box/magazine/m7mm/bouncy - name = "box magazine (Rubber 7mm)" + name = "box magazine (7mm Rubber)" + ammo_band_color = COLOR_AMMO_MATCH // this doesn't seem attainable in game (probably a good thing) so i guess it can get away with a color reuse + desc = parent_type::desc + "
Carries lethal rubber rounds, which deal less damage and bounce off everything in an incredibly irresponsible, user-unfriendly manner." ammo_type = /obj/item/ammo_casing/m7mm/bouncy /obj/item/ammo_box/magazine/m7mm/bouncy/hicap - name = "hi-cap box magazine (Rubber 7mm)" + name = "hi-cap box magazine (7mm Rubber)" + desc = "A very concerningly sizeable 7mm box magazine, suitable for the L6 SAW.
\ + Carries lethal rubber rounds, which deal less damage and bounce off everything in an incredibly irresponsible, user-unfriendly manner." max_ammo = 150 /obj/item/ammo_box/magazine/m7mm/update_icon_state() diff --git a/code/modules/projectiles/boxes_magazines/external/pistol.dm b/code/modules/projectiles/boxes_magazines/external/pistol.dm index 7c7d61761be..250ec30af39 100644 --- a/code/modules/projectiles/boxes_magazines/external/pistol.dm +++ b/code/modules/projectiles/boxes_magazines/external/pistol.dm @@ -1,6 +1,3 @@ -#define FIRE_BULLETS " Carries rounds which ignite targets and leave flaming trails, but inflict less damage." -#define HP_BULLETS " Carries hollow-point rounds which are effective against unarmored targets, but suffer greatly against armor." -#define AP_BULLETS " Carries armor-piercing rounds which are effective against armored targets, but less effective against unarmored targets." // Makarov (9mm) // @@ -9,6 +6,8 @@ icon_state = "9x19p" base_icon_state = "9x19p" desc = "A 9mm handgun magazine, suitable for the Makarov pistol." + ammo_band_icon = "+9x19ab" + ammo_band_color = null ammo_type = /obj/item/ammo_casing/c9mm caliber = CALIBER_9MM max_ammo = 12 @@ -17,23 +16,17 @@ /obj/item/ammo_box/magazine/m9mm/fire name = "pistol magazine (9mm incendiary)" - icon_state = "9x19pI" - base_icon_state = "9x19pI" - desc = parent_type::desc + FIRE_BULLETS + MAGAZINE_TYPE_INCENDIARY ammo_type = /obj/item/ammo_casing/c9mm/fire /obj/item/ammo_box/magazine/m9mm/hp name = "pistol magazine (9mm HP)" - icon_state = "9x19pH" - base_icon_state = "9x19pH" - desc = parent_type::desc + HP_BULLETS + MAGAZINE_TYPE_HOLLOWPOINT ammo_type = /obj/item/ammo_casing/c9mm/hp /obj/item/ammo_box/magazine/m9mm/ap name = "pistol magazine (9mm AP)" - icon_state = "9x19pA" - base_icon_state = "9x19pA" - desc = parent_type::desc + AP_BULLETS + MAGAZINE_TYPE_ARMORPIERCE ammo_type = /obj/item/ammo_casing/c9mm/ap // Stechkin APS (9mm) // @@ -43,6 +36,8 @@ desc = "A 9mm handgun magazine, suitable for the Stechkin APS machine pistol." icon_state = "9mmaps-15" base_icon_state = "9mmaps" + ammo_band_icon = "+9mmapsab" + ammo_band_color = null ammo_type = /obj/item/ammo_casing/c9mm caliber = CALIBER_9MM max_ammo = 15 @@ -53,17 +48,17 @@ /obj/item/ammo_box/magazine/m9mm_aps/fire name = "stechkin pistol magazine (9mm incendiary)" - desc = parent_type::desc + FIRE_BULLETS + MAGAZINE_TYPE_INCENDIARY ammo_type = /obj/item/ammo_casing/c9mm/fire /obj/item/ammo_box/magazine/m9mm_aps/hp name = "stechkin pistol magazine (9mm HP)" - desc = parent_type::desc + HP_BULLETS + MAGAZINE_TYPE_HOLLOWPOINT ammo_type = /obj/item/ammo_casing/c9mm/hp /obj/item/ammo_box/magazine/m9mm_aps/ap name = "stechkin pistol magazine (9mm AP)" - desc = parent_type::desc + AP_BULLETS + MAGAZINE_TYPE_ARMORPIERCE ammo_type = /obj/item/ammo_casing/c9mm/ap // Ansem (10mm) // @@ -73,6 +68,9 @@ desc = "A 10mm handgun magazine, suitable for the Ansem pistol." icon_state = "9x19p" base_icon_state = "9x19p" + ammo_band_icon = "+9x19ab" + ammo_band_color = null + ammo_type = /obj/item/ammo_casing/c10mm caliber = CALIBER_10MM max_ammo = 8 @@ -81,23 +79,17 @@ /obj/item/ammo_box/magazine/m10mm/fire name = "pistol magazine (10mm incendiary)" - icon_state = "9x19pI" - base_icon_state = "9x19pI" - desc = parent_type::desc + FIRE_BULLETS + MAGAZINE_TYPE_INCENDIARY ammo_type = /obj/item/ammo_casing/c10mm/fire /obj/item/ammo_box/magazine/m10mm/hp name = "pistol magazine (10mm HP)" - icon_state = "9x19pH" - base_icon_state = "9x19pH" - desc = parent_type::desc + HP_BULLETS + MAGAZINE_TYPE_HOLLOWPOINT ammo_type = /obj/item/ammo_casing/c10mm/hp /obj/item/ammo_box/magazine/m10mm/ap name = "pistol magazine (10mm AP)" - icon_state = "9x19pA" - base_icon_state = "9x19pA" - desc = parent_type::desc + AP_BULLETS + MAGAZINE_TYPE_ARMORPIERCE ammo_type = /obj/item/ammo_casing/c10mm/ap // Regal Condor (10mm) // @@ -136,7 +128,3 @@ caliber = CALIBER_50AE max_ammo = 7 multiple_sprites = AMMO_BOX_PER_BULLET - -#undef FIRE_BULLETS -#undef HP_BULLETS -#undef AP_BULLETS diff --git a/code/modules/projectiles/boxes_magazines/external/rifle.dm b/code/modules/projectiles/boxes_magazines/external/rifle.dm index d3d1ce3ca99..7aa388db324 100644 --- a/code/modules/projectiles/boxes_magazines/external/rifle.dm +++ b/code/modules/projectiles/boxes_magazines/external/rifle.dm @@ -8,7 +8,9 @@ /obj/item/ammo_box/magazine/m223 name = "toploader magazine (.223)" + desc = "A top-loading .223 magazine, suitable for the M-90gl carbine." icon_state = ".223" + ammo_band_icon = "+.223ab" ammo_type = /obj/item/ammo_casing/a223 caliber = CALIBER_A223 max_ammo = 30 @@ -16,13 +18,14 @@ /obj/item/ammo_box/magazine/m223/phasic name = "toploader magazine (.223 Phasic)" + desc = parent_type::desc + "
Carries phasic rounds, which completely ignore armor and phase through cover, but not targets." ammo_type = /obj/item/ammo_casing/a223/phasic // .38 (Battle Rifle) // /obj/item/ammo_box/magazine/m38 name = "battle rifle magazine (.38)" - desc = "A magazine for a BR-38 battle rifle." + desc = "A .38 magazine for a BR-38 battle rifle." icon_state = "38mag" base_icon_state = "38mag" w_class = WEIGHT_CLASS_NORMAL @@ -41,42 +44,42 @@ /obj/item/ammo_box/magazine/m38/trac name = "battle rifle magazine (.38 TRAC)" - desc = "A magazine for a BR-38 battle rifle. TRAC bullets embed a tracking implant within the target's body and are entirely nonlethal." + desc = parent_type::desc + " TRAC bullets embed a tracking implant within the target's body and are entirely nonlethal." ammo_type = /obj/item/ammo_casing/c38/trac ammo_band_color = COLOR_AMMO_TRACK /obj/item/ammo_box/magazine/m38/match name = "battle rifle magazine (.38 Match)" - desc = "A magazine for a BR-38 battle rifle. These rounds are manufactured within extremely tight tolerances, making them easy to show off trickshots with." + desc = parent_type::desc + " These rounds are manufactured within extremely tight tolerances, making them easy to show off trickshots with." ammo_type = /obj/item/ammo_casing/c38/match ammo_band_color = COLOR_AMMO_MATCH /obj/item/ammo_box/magazine/m38/match/bouncy name = "battle rifle magazine (.38 Rubber)" - desc = "A magazine for a BR-38 battle rifle. These rounds are incredibly bouncy and MOSTLY nonlethal, making them great to show off trickshots with." + desc = parent_type::desc + " These rounds are incredibly bouncy and MOSTLY nonlethal, making them great to show off trickshots with." ammo_type = /obj/item/ammo_casing/c38/match/bouncy ammo_band_color = COLOR_AMMO_RUBBER /obj/item/ammo_box/magazine/m38/true name = "battle rifle magazine (.38 True Strike)" - desc = "A magazine for a BR-38 battle rifle. Bullets bounce towards new targets with surprising accuracy." + desc = parent_type::desc + " Bullets bounce towards new targets with surprising accuracy." ammo_type = /obj/item/ammo_casing/c38/match/true ammo_band_color = COLOR_AMMO_TRUESTRIKE /obj/item/ammo_box/magazine/m38/dumdum name = "battle rifle magazine (.38 DumDum)" - desc = "A magazine for a BR-38 battle rifle. These rounds expand on impact, allowing them to shred the target and cause massive bleeding. Very weak against armor and distant targets." + desc = parent_type::desc + " These rounds expand on impact, allowing them to shred the target and cause massive bleeding. Very weak against armor and distant targets." ammo_type = /obj/item/ammo_casing/c38/dumdum ammo_band_color = COLOR_AMMO_DUMDUM /obj/item/ammo_box/magazine/m38/hotshot name = "battle rifle magazine (.38 Hot Shot)" - desc = "A magazine for a BR-38 battle rifle. Hot Shot bullets contain an incendiary payload." + desc = parent_type::desc + " Hot Shot bullets contain an incendiary payload." ammo_type = /obj/item/ammo_casing/c38/hotshot ammo_band_color = COLOR_AMMO_HOTSHOT /obj/item/ammo_box/magazine/m38/iceblox name = "battle rifle magazine (.38 Iceblox)" - desc = "A magazine for a BR-38 battle rifle. Iceblox bullets contain a cryogenic payload." + desc = parent_type::desc + " Iceblox bullets contain a cryogenic payload." ammo_type = /obj/item/ammo_casing/c38/iceblox ammo_band_color = COLOR_AMMO_ICEBLOX diff --git a/code/modules/projectiles/boxes_magazines/external/shotgun.dm b/code/modules/projectiles/boxes_magazines/external/shotgun.dm index 6d90c54fc69..469c7590f99 100644 --- a/code/modules/projectiles/boxes_magazines/external/shotgun.dm +++ b/code/modules/projectiles/boxes_magazines/external/shotgun.dm @@ -1,6 +1,6 @@ /obj/item/ammo_box/magazine/m12g name = "shotgun magazine (12g buckshot slugs)" - desc = "A drum magazine." + desc = "A drum magazine of shotgun shells, suitable for the Bulldog combat shotgun." icon_state = "m12gb" base_icon_state = "m12gb" ammo_type = /obj/item/ammo_casing/shotgun/buckshot diff --git a/code/modules/projectiles/boxes_magazines/external/smg.dm b/code/modules/projectiles/boxes_magazines/external/smg.dm index 40837d9ddbc..d8563905475 100644 --- a/code/modules/projectiles/boxes_magazines/external/smg.dm +++ b/code/modules/projectiles/boxes_magazines/external/smg.dm @@ -1,7 +1,10 @@ /obj/item/ammo_box/magazine/wt550m9 - name = "wt550 magazine (4.6x30mm)" + name = "\improper WT-550 magazine (4.6x30mm)" + desc = "A top-loading 4.6x30mm magazine, specifically for the WT-550 autorifle." icon_state = "46x30mmt-20" base_icon_state = "46x30mmt" + ammo_band_icon = "+46x30mmab" + ammo_band_color = null ammo_type = /obj/item/ammo_casing/c46x30mm caliber = CALIBER_46X30MM max_ammo = 20 @@ -11,27 +14,19 @@ icon_state = "[base_icon_state]-[round(ammo_count(), 4)]" /obj/item/ammo_box/magazine/wt550m9/wtap - name = "wt550 magazine (Armour Piercing 4.6x30mm)" - icon_state = "46x30mmtA-20" - base_icon_state = "46x30mmtA" + name = "\improper WT-550 magazine (4.6x30mm AP)" + MAGAZINE_TYPE_ARMORPIERCE ammo_type = /obj/item/ammo_casing/c46x30mm/ap -/obj/item/ammo_box/magazine/wt550m9/wtap/update_icon_state() - . = ..() - icon_state = "[base_icon_state]-[round(ammo_count(), 4)]" - /obj/item/ammo_box/magazine/wt550m9/wtic - name = "wt550 magazine (Incendiary 4.6x30mm)" - icon_state = "46x30mmtI-20" - base_icon_state = "46x30mmtI" + name = "\improper WT-550 magazine (4.6x30mm incendiary)" + MAGAZINE_TYPE_INCENDIARY ammo_type = /obj/item/ammo_casing/c46x30mm/inc -/obj/item/ammo_box/magazine/wt550m9/wtic/update_icon_state() - . = ..() - icon_state = "[base_icon_state]-[round(ammo_count(), 4)]" /obj/item/ammo_box/magazine/smartgun name = "Abielle magazine (.160 Smart)" + desc = "A deep .160 Smart magazine, suitable for the Abielle smart-SMG." icon_state = "smartgun" base_icon_state = "smartgun" ammo_type = /obj/item/ammo_casing/c160smart @@ -41,7 +36,8 @@ max_ammo = 50 /obj/item/ammo_box/magazine/uzim9mm - name = "uzi magazine (9mm)" + name = "\improper Uzi magazine (9mm)" + desc = "A long 9mm magazine, suitable for the Uzi SMG." icon_state = "uzi9mm-32" base_icon_state = "uzi9mm" ammo_type = /obj/item/ammo_casing/c9mm @@ -53,7 +49,8 @@ icon_state = "[base_icon_state]-[round(ammo_count(), 4)]" /obj/item/ammo_box/magazine/smgm9mm - name = "SMG magazine (9mm)" + name = "\improper SMG magazine (9mm)" + desc = "A sleek 9mm magazine, suitable for the Nanotrasen Saber SMG." icon_state = "smg9mm" base_icon_state = "smg9mm" ammo_type = /obj/item/ammo_casing/c9mm @@ -65,17 +62,22 @@ icon_state = "[base_icon_state]-[LAZYLEN(stored_ammo) ? "full" : "empty"]" /obj/item/ammo_box/magazine/smgm9mm/ap - name = "SMG magazine (Armour Piercing 9mm)" + name = "SMG magazine (9mm AP)" + MAGAZINE_TYPE_ARMORPIERCE ammo_type = /obj/item/ammo_casing/c9mm/ap /obj/item/ammo_box/magazine/smgm9mm/fire - name = "SMG Magazine (Incendiary 9mm)" + name = "SMG magazine (9mm incendiary)" + MAGAZINE_TYPE_INCENDIARY ammo_type = /obj/item/ammo_casing/c9mm/fire /obj/item/ammo_box/magazine/smgm45 name = "SMG magazine (.45)" + desc = "A long .45 magazine, suitable for the C-20r SMG." icon_state = "c20r45" base_icon_state = "c20r45" + ammo_band_icon = "+c20rab" + ammo_band_color = null ammo_type = /obj/item/ammo_casing/c45 caliber = CALIBER_45 max_ammo = 24 @@ -85,15 +87,18 @@ icon_state = "[base_icon_state]-[round(ammo_count(), 2)]" /obj/item/ammo_box/magazine/smgm45/ap - name = "SMG magazine (Armour Piercing .45)" + name = "SMG magazine (.45 AP)" + MAGAZINE_TYPE_ARMORPIERCE ammo_type = /obj/item/ammo_casing/c45/ap /obj/item/ammo_box/magazine/smgm45/hp - name = "SMG magazine (Hollow Point .45)" + name = "SMG magazine (.45 HP)" + MAGAZINE_TYPE_HOLLOWPOINT ammo_type = /obj/item/ammo_casing/c45/hp /obj/item/ammo_box/magazine/smgm45/incen - name = "SMG magazine (Incendiary .45)" + name = "SMG magazine (.45 incendiary)" + MAGAZINE_TYPE_INCENDIARY ammo_type = /obj/item/ammo_casing/c45/inc /obj/item/ammo_box/magazine/tommygunm45 diff --git a/code/modules/projectiles/boxes_magazines/external/sniper.dm b/code/modules/projectiles/boxes_magazines/external/sniper.dm index b0b437b8b23..c937e435f0e 100644 --- a/code/modules/projectiles/boxes_magazines/external/sniper.dm +++ b/code/modules/projectiles/boxes_magazines/external/sniper.dm @@ -1,5 +1,6 @@ /obj/item/ammo_box/magazine/sniper_rounds name = "anti-materiel sniper rounds (.50 BMG)" + desc = "A .50 BMG box magazine suitable for anti-materiel sniper rifles." icon_state = ".50mag" base_icon_state = ".50mag" ammo_type = /obj/item/ammo_casing/p50 @@ -12,31 +13,32 @@ /obj/item/ammo_box/magazine/sniper_rounds/surplus name = "anti-materiel sniper rounds (.50 BMG Surplus)" + desc = parent_type::desc + " Improper storage means they don't punch through armor, dismember, or stun like fresh ammo, but they're still very good at killing people." icon_state = "surplus" base_icon_state = "surplus" ammo_type = /obj/item/ammo_casing/p50/surplus /obj/item/ammo_box/magazine/sniper_rounds/disruptor name = "anti-materiel sniper rounds (.50 BMG Bzzt)" - desc = "Disruptor sniper rounds. A special blend of soporific chemicals \ - and a electromagnetic payload to cause anything to come to a grinding halt." + desc = parent_type::desc + " Loaded with disruptor sniper rounds, filled with a special blend of soporific chemicals \ + and a electromagnetic payload to cause anything hit to come to a grinding halt." base_icon_state = "disruptor" ammo_type = /obj/item/ammo_casing/p50/disruptor /obj/item/ammo_box/magazine/sniper_rounds/incendiary name = "anti-materiel sniper rounds (.50 BMG incendiary)" - desc = "Incediary sniper rounds. Causes a massive combustion at the site of impact." + desc = parent_type::desc + " Loaded with incendiary sniper rounds, which cause massive combustion at the site of impact." base_icon_state = "incendiary" ammo_type = /obj/item/ammo_casing/p50/incendiary /obj/item/ammo_box/magazine/sniper_rounds/penetrator name = "anti-materiel sniper rounds (.50 BMG penetrator)" - desc = "An extremely powerful round capable of passing straight through cover and anyone unfortunate enough to be behind it." + desc = parent_type::desc + " Loaded with extremely powerful penetrator rounds, capable of passing straight through cover and anyone unfortunate enough to be behind it." base_icon_state = "penetrator" ammo_type = /obj/item/ammo_casing/p50/penetrator /obj/item/ammo_box/magazine/sniper_rounds/marksman name = "anti-materiel sniper rounds (.50 BMG marksman)" - desc = "An extremely fast sniper round able to pretty much instantly shoot through something." + desc = parent_type::desc + " Loaded with extremely fast marksman rounds, able to pretty much instantly hit their targets." base_icon_state = "marksman" ammo_type = /obj/item/ammo_casing/p50/marksman diff --git a/code/modules/projectiles/guns/ballistic/automatic.dm b/code/modules/projectiles/guns/ballistic/automatic.dm index 0c230649fa9..57adddc62c7 100644 --- a/code/modules/projectiles/guns/ballistic/automatic.dm +++ b/code/modules/projectiles/guns/ballistic/automatic.dm @@ -67,7 +67,7 @@ desc = "Recalled by Nanotrasen due to public backlash around heat distribution resulting in unintended discombobulation. \ This outcry was fabricated through various Syndicate-backed misinformation operations to force Nanotrasen to abandon \ its ballistics weapon program, cornering them into the energy weapons market. Most often found today in the hands of pirates, \ - underfunded security personnel, cargo technicians, theoritical physicists and gang bangers out on the rim. \ + underfunded security personnel, cargo technicians, theoretical physicists, and gang bangers out on the rim. \ Light-weight and fully automatic. Uses 4.6x30mm rounds." icon_state = "wt550" w_class = WEIGHT_CLASS_BULKY diff --git a/icons/obj/weapons/guns/ammo.dmi b/icons/obj/weapons/guns/ammo.dmi index 743d365489ba00846ee2fade096afabfefca72bf..521ec8376e44cd695a485f90f3b917beac897fbc 100644 GIT binary patch literal 28763 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 literal 28291 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 z

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 diff --git a/tgstation.dme b/tgstation.dme index 9b9bd545f50..33a666f5c8b 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -133,6 +133,7 @@ #include "code\__DEFINES\living.dm" #include "code\__DEFINES\logging.dm" #include "code\__DEFINES\machines.dm" +#include "code\__DEFINES\magazines.dm" #include "code\__DEFINES\magic.dm" #include "code\__DEFINES\map_exporter.dm" #include "code\__DEFINES\map_switch.dm"