From 76d3bb56150140fc83a937ef87d7385b788ee0b3 Mon Sep 17 00:00:00 2001 From: Max-023 <42359139+Max-023@users.noreply.github.com> Date: Sun, 18 Aug 2024 15:24:53 -0400 Subject: [PATCH 1/5] New Loadout Items (And some Adjustments) (#384) Co-authored-by: Dumbgunner --- code/game/objects/items/storage/misc.dm | 2 +- code/modules/client/preferences_gear.dm | 12 +++++++++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/code/game/objects/items/storage/misc.dm b/code/game/objects/items/storage/misc.dm index 12f6fbb3d0..19e680a197 100644 --- a/code/game/objects/items/storage/misc.dm +++ b/code/game/objects/items/storage/misc.dm @@ -146,7 +146,7 @@ w_class = SIZE_LARGE max_w_class = SIZE_MEDIUM storage_slots = 3 - + /obj/item/storage/box/M1911_loadout/fill_preset_inventory() new /obj/item/weapon/gun/pistol/m1911(src) new /obj/item/ammo_magazine/pistol/m1911(src) diff --git a/code/modules/client/preferences_gear.dm b/code/modules/client/preferences_gear.dm index ef8cc16051..2c9b5ba243 100644 --- a/code/modules/client/preferences_gear.dm +++ b/code/modules/client/preferences_gear.dm @@ -73,6 +73,7 @@ var/global/list/gear_datums_by_name = list() /datum/gear/eyewear/sunglasses display_name = "Sunglasses" path = /obj/item/clothing/glasses/sunglasses + cost = 0 /datum/gear/eyewear/prescription_sunglasses display_name = "Prescription sunglasses" @@ -279,6 +280,10 @@ var/global/list/gear_datums_by_name = list() display_name = "USCM cap" path = /obj/item/clothing/head/cmcap +/datum/gear/headwear/uscm/cap/flap + display_name = "USCM flapcap" + path = /obj/item/clothing/head/cmcap/flap + /datum/gear/headwear/uscm/headband_brown display_name = "USCM headband, brown" path = /obj/item/clothing/head/headband/brown @@ -1083,7 +1088,7 @@ var/global/list/gear_datums_by_name = list() /datum/gear/misc/patch_uscm display_name = "USCM shoulder patch" path = /obj/item/clothing/accessory/patch - cost = 1 + cost = 0 slot = WEAR_IN_ACCESSORY allowed_origins = USCM_ORIGINS @@ -1117,3 +1122,8 @@ var/global/list/gear_datums_by_name = list() display_name = "M67 flak jacket" path = /obj/item/clothing/accessory/flak cost = 3 + +/datum/gear/misc/servicejacket + display_name = "Marine Service Jacket" + path = /obj/item/clothing/suit/storage/jacket/marine/service + cost = 3 From 36ffd3402849018d3fcf10f0b2641a1c6b56af70 Mon Sep 17 00:00:00 2001 From: Doubleumc Date: Sun, 18 Aug 2024 15:33:55 -0400 Subject: [PATCH 2/5] Update WeaponStats TGUI (#386) Co-authored-by: Drathek <76988376+Drulikar@users.noreply.github.com> Co-authored-by: Vile Beggar --- code/modules/asset_cache/asset_list_items.dm | 57 +++++--------- code/modules/autowiki/pages/guns.dm | 12 ++- code/modules/projectiles/gun.dm | 29 +++---- code/modules/projectiles/guns/pistols.dm | 4 +- code/modules/unit_tests/spritesheets.dm | 4 + .../weapons/guns/guns_by_faction/uscm.dmi | Bin 33526 -> 32010 bytes icons/obj/items/weapons/guns/lineart.dmi | Bin 7621 -> 15776 bytes .../obj/items/weapons/guns/lineart_modes.dmi | Bin 0 -> 571 bytes nano/images/weapons/88m4.png | Bin 737 -> 0 bytes nano/images/weapons/aamateba.png | Bin 852 -> 0 bytes nano/images/weapons/amateba.png | Bin 845 -> 0 bytes nano/images/weapons/auto.png | Bin 252 -> 0 bytes nano/images/weapons/auto9.png | Bin 765 -> 0 bytes nano/images/weapons/b92fs.png | Bin 708 -> 0 bytes nano/images/weapons/burst.png | Bin 257 -> 0 bytes nano/images/weapons/c70.png | Bin 733 -> 0 bytes nano/images/weapons/c_deagle.png | Bin 762 -> 0 bytes nano/images/weapons/cmateba.png | Bin 773 -> 0 bytes nano/images/weapons/cshotgun.png | Bin 682 -> 0 bytes nano/images/weapons/dartgun.png | Bin 693 -> 0 bytes nano/images/weapons/deagle.png | Bin 761 -> 0 bytes nano/images/weapons/disabled_automatic.png | Bin 251 -> 0 bytes nano/images/weapons/disabled_burst.png | Bin 256 -> 0 bytes nano/images/weapons/disabled_single.png | Bin 222 -> 0 bytes nano/images/weapons/dshotgun.png | Bin 656 -> 0 bytes nano/images/weapons/fp9000.png | Bin 743 -> 0 bytes nano/images/weapons/fp9000_pmc.png | Bin 743 -> 0 bytes nano/images/weapons/g_deagle.png | Bin 762 -> 0 bytes nano/images/weapons/hg3712.png | Bin 691 -> 0 bytes nano/images/weapons/highpower.png | Bin 678 -> 0 bytes nano/images/weapons/holdout.png | Bin 684 -> 0 bytes nano/images/weapons/hunting.png | Bin 636 -> 0 bytes nano/images/weapons/kt42.png | Bin 699 -> 0 bytes nano/images/weapons/l42mk1.png | Bin 674 -> 0 bytes nano/images/weapons/m16.png | Bin 710 -> 0 bytes nano/images/weapons/m240.png | Bin 822 -> 0 bytes nano/images/weapons/m240t.png | Bin 862 -> 0 bytes nano/images/weapons/m37-17.png | Bin 696 -> 0 bytes nano/images/weapons/m37.png | Bin 654 -> 0 bytes nano/images/weapons/m39.png | Bin 777 -> 0 bytes nano/images/weapons/m41a.png | Bin 791 -> 0 bytes nano/images/weapons/m41a2.png | Bin 851 -> 0 bytes nano/images/weapons/m41ae2.png | Bin 784 -> 0 bytes nano/images/weapons/m41amk1.png | Bin 787 -> 0 bytes nano/images/weapons/m41b.png | Bin 737 -> 0 bytes nano/images/weapons/m42a.png | Bin 720 -> 0 bytes nano/images/weapons/m42c.png | Bin 839 -> 0 bytes nano/images/weapons/m44r.png | Bin 692 -> 0 bytes nano/images/weapons/m44rc.png | Bin 763 -> 0 bytes nano/images/weapons/m46c.png | Bin 771 -> 0 bytes nano/images/weapons/m4a3.png | Bin 729 -> 0 bytes nano/images/weapons/m4a345.png | Bin 729 -> 0 bytes nano/images/weapons/m4a3c.png | Bin 768 -> 0 bytes nano/images/weapons/m5.png | Bin 699 -> 0 bytes nano/images/weapons/m56.png | Bin 688 -> 0 bytes nano/images/weapons/m57a4.png | Bin 714 -> 0 bytes nano/images/weapons/m60.png | Bin 744 -> 0 bytes nano/images/weapons/m79.png | Bin 782 -> 0 bytes nano/images/weapons/m81.png | Bin 726 -> 0 bytes nano/images/weapons/m82f.png | Bin 795 -> 0 bytes nano/images/weapons/m92.png | Bin 767 -> 0 bytes nano/images/weapons/m93b2.png | Bin 750 -> 0 bytes nano/images/weapons/mac15.png | Bin 766 -> 0 bytes nano/images/weapons/mar30.png | Bin 726 -> 0 bytes nano/images/weapons/mar40.png | Bin 692 -> 0 bytes nano/images/weapons/mateba.png | Bin 789 -> 0 bytes nano/images/weapons/mk221.png | Bin 669 -> 0 bytes nano/images/weapons/mou.png | Bin 709 -> 0 bytes nano/images/weapons/mp5.png | Bin 700 -> 0 bytes nano/images/weapons/mp7.png | Bin 706 -> 0 bytes nano/images/weapons/no_name.png | Bin 937 -> 0 bytes nano/images/weapons/ny762.png | Bin 703 -> 0 bytes nano/images/weapons/painless.png | Bin 730 -> 0 bytes nano/images/weapons/pk9.png | Bin 663 -> 0 bytes nano/images/weapons/pk9r.png | Bin 670 -> 0 bytes nano/images/weapons/pk9u.png | Bin 673 -> 0 bytes nano/images/weapons/ppsh17b.png | Bin 683 -> 0 bytes nano/images/weapons/single.png | Bin 224 -> 0 bytes nano/images/weapons/skorpion.png | Bin 732 -> 0 bytes nano/images/weapons/skorpion_u.png | Bin 740 -> 0 bytes nano/images/weapons/smartpistol.png | Bin 738 -> 0 bytes nano/images/weapons/spearhead.png | Bin 749 -> 0 bytes nano/images/weapons/sshotgun.png | Bin 648 -> 0 bytes nano/images/weapons/supremo.png | Bin 658 -> 0 bytes nano/images/weapons/svd003.png | Bin 654 -> 0 bytes nano/images/weapons/sw357.png | Bin 726 -> 0 bytes nano/images/weapons/sw358.png | Bin 731 -> 0 bytes nano/images/weapons/syringegun.png | Bin 725 -> 0 bytes nano/images/weapons/taser.png | Bin 715 -> 0 bytes nano/images/weapons/type71.png | Bin 794 -> 0 bytes nano/images/weapons/type71c.png | Bin 796 -> 0 bytes nano/images/weapons/type73.png | Bin 787 -> 0 bytes nano/images/weapons/vp78.png | Bin 740 -> 0 bytes nano/images/weapons/xm42b.png | Bin 835 -> 0 bytes tgui/packages/tgui/interfaces/WeaponStats.jsx | 72 ++++++++++-------- 95 files changed, 85 insertions(+), 93 deletions(-) create mode 100644 icons/obj/items/weapons/guns/lineart_modes.dmi delete mode 100644 nano/images/weapons/88m4.png delete mode 100644 nano/images/weapons/aamateba.png delete mode 100644 nano/images/weapons/amateba.png delete mode 100644 nano/images/weapons/auto.png delete mode 100644 nano/images/weapons/auto9.png delete mode 100644 nano/images/weapons/b92fs.png delete mode 100644 nano/images/weapons/burst.png delete mode 100644 nano/images/weapons/c70.png delete mode 100644 nano/images/weapons/c_deagle.png delete mode 100644 nano/images/weapons/cmateba.png delete mode 100644 nano/images/weapons/cshotgun.png delete mode 100644 nano/images/weapons/dartgun.png delete mode 100644 nano/images/weapons/deagle.png delete mode 100644 nano/images/weapons/disabled_automatic.png delete mode 100644 nano/images/weapons/disabled_burst.png delete mode 100644 nano/images/weapons/disabled_single.png delete mode 100644 nano/images/weapons/dshotgun.png delete mode 100644 nano/images/weapons/fp9000.png delete mode 100644 nano/images/weapons/fp9000_pmc.png delete mode 100644 nano/images/weapons/g_deagle.png delete mode 100644 nano/images/weapons/hg3712.png delete mode 100644 nano/images/weapons/highpower.png delete mode 100644 nano/images/weapons/holdout.png delete mode 100644 nano/images/weapons/hunting.png delete mode 100644 nano/images/weapons/kt42.png delete mode 100644 nano/images/weapons/l42mk1.png delete mode 100644 nano/images/weapons/m16.png delete mode 100644 nano/images/weapons/m240.png delete mode 100644 nano/images/weapons/m240t.png delete mode 100644 nano/images/weapons/m37-17.png delete mode 100644 nano/images/weapons/m37.png delete mode 100644 nano/images/weapons/m39.png delete mode 100644 nano/images/weapons/m41a.png delete mode 100644 nano/images/weapons/m41a2.png delete mode 100644 nano/images/weapons/m41ae2.png delete mode 100644 nano/images/weapons/m41amk1.png delete mode 100644 nano/images/weapons/m41b.png delete mode 100644 nano/images/weapons/m42a.png delete mode 100644 nano/images/weapons/m42c.png delete mode 100644 nano/images/weapons/m44r.png delete mode 100644 nano/images/weapons/m44rc.png delete mode 100644 nano/images/weapons/m46c.png delete mode 100644 nano/images/weapons/m4a3.png delete mode 100644 nano/images/weapons/m4a345.png delete mode 100644 nano/images/weapons/m4a3c.png delete mode 100644 nano/images/weapons/m5.png delete mode 100644 nano/images/weapons/m56.png delete mode 100644 nano/images/weapons/m57a4.png delete mode 100644 nano/images/weapons/m60.png delete mode 100644 nano/images/weapons/m79.png delete mode 100644 nano/images/weapons/m81.png delete mode 100644 nano/images/weapons/m82f.png delete mode 100644 nano/images/weapons/m92.png delete mode 100644 nano/images/weapons/m93b2.png delete mode 100644 nano/images/weapons/mac15.png delete mode 100644 nano/images/weapons/mar30.png delete mode 100644 nano/images/weapons/mar40.png delete mode 100644 nano/images/weapons/mateba.png delete mode 100644 nano/images/weapons/mk221.png delete mode 100644 nano/images/weapons/mou.png delete mode 100644 nano/images/weapons/mp5.png delete mode 100644 nano/images/weapons/mp7.png delete mode 100644 nano/images/weapons/no_name.png delete mode 100644 nano/images/weapons/ny762.png delete mode 100644 nano/images/weapons/painless.png delete mode 100644 nano/images/weapons/pk9.png delete mode 100644 nano/images/weapons/pk9r.png delete mode 100644 nano/images/weapons/pk9u.png delete mode 100644 nano/images/weapons/ppsh17b.png delete mode 100644 nano/images/weapons/single.png delete mode 100644 nano/images/weapons/skorpion.png delete mode 100644 nano/images/weapons/skorpion_u.png delete mode 100644 nano/images/weapons/smartpistol.png delete mode 100644 nano/images/weapons/spearhead.png delete mode 100644 nano/images/weapons/sshotgun.png delete mode 100644 nano/images/weapons/supremo.png delete mode 100644 nano/images/weapons/svd003.png delete mode 100644 nano/images/weapons/sw357.png delete mode 100644 nano/images/weapons/sw358.png delete mode 100644 nano/images/weapons/syringegun.png delete mode 100644 nano/images/weapons/taser.png delete mode 100644 nano/images/weapons/type71.png delete mode 100644 nano/images/weapons/type71c.png delete mode 100644 nano/images/weapons/type73.png delete mode 100644 nano/images/weapons/vp78.png delete mode 100644 nano/images/weapons/xm42b.png diff --git a/code/modules/asset_cache/asset_list_items.dm b/code/modules/asset_cache/asset_list_items.dm index 32364e1072..7c294da311 100644 --- a/code/modules/asset_cache/asset_list_items.dm +++ b/code/modules/asset_cache/asset_list_items.dm @@ -61,33 +61,9 @@ "nano/templates/", ) -/datum/asset/directory/nanoui/weapons - common_dirs = list( - "nano/images/weapons/", - ) - - uncommon_dirs = list() - -/datum/asset/directory/nanoui/weapons/send(client) - if(!client) - log_debug("Warning! Tried to send nanoui weapon data with a null client! (asset_list_items.dm line 93)") - return - SSassets.transport.send_assets(client, common) - - /datum/asset/simple/nanoui_images keep_local_name = TRUE - assets = list( - "auto.png" = 'nano/images/weapons/auto.png', - "burst.png" = 'nano/images/weapons/burst.png', - "single.png" = 'nano/images/weapons/single.png', - "disabled_automatic.png" = 'nano/images/weapons/disabled_automatic.png', - "disabled_burst.png" = 'nano/images/weapons/disabled_burst.png', - "disabled_single.png" = 'nano/images/weapons/disabled_single.png', - "no_name.png" = 'nano/images/weapons/no_name.png', - ) - var/list/common_dirs = list( "nano/images/", ) @@ -384,9 +360,29 @@ name = "gunlineart" /datum/asset/spritesheet/gun_lineart/register() - InsertAll("", 'icons/obj/items/weapons/guns/lineart.dmi') + var/icon_file = 'icons/obj/items/weapons/guns/lineart.dmi' + InsertAll("", icon_file) + + for(var/obj/item/weapon/gun/current_gun as anything in subtypesof(/obj/item/weapon/gun)) + if(isnull(initial(current_gun.icon_state))) + continue + if(initial(current_gun.flags_gun_features) & GUN_UNUSUAL_DESIGN) + continue // These don't have a way to inspect weapon stats + var/obj/item/weapon/gun/temp_gun = new current_gun + var/icon_state = temp_gun.base_gun_icon // base_gun_icon is set in Initialize generally + qdel(temp_gun) + if(icon_state && isnull(sprites[icon_state])) + // upgrade this to a stack_trace once all guns have a lineart and we want to lint against that + log_debug("[current_gun] does not have a valid lineart icon state, icon=[icon_file], icon_state=[json_encode(icon_state)]") + ..() +/datum/asset/spritesheet/gun_lineart_modes + name = "gunlineartmodes" + +/datum/asset/spritesheet/gun_lineart_modes/register() + InsertAll("", 'icons/obj/items/weapons/guns/lineart_modes.dmi') + ..() /datum/asset/simple/orbit assets = list( @@ -400,17 +396,6 @@ "ntosradarpointerS.png" = 'icons/images/ui_images/ntosradar_pointer_S.png' ) -/datum/asset/simple/firemodes - assets = list( - "auto.png" = 'html/images/auto.png', - "disabled_auto.png" = 'html/images/disabled_automatic.png', - "burst.png" = 'html/images/burst.png', - "disabled_burst.png" = 'html/images/disabled_burst.png', - "single.png" = 'html/images/single.png', - "disabled_single.png" = 'html/images/disabled_single.png', - ) - - /datum/asset/simple/particle_editor assets = list( "motion" = 'icons/images/ui_images/particle_editor/motion.png', diff --git a/code/modules/autowiki/pages/guns.dm b/code/modules/autowiki/pages/guns.dm index ad675c51a4..7f63602d56 100644 --- a/code/modules/autowiki/pages/guns.dm +++ b/code/modules/autowiki/pages/guns.dm @@ -7,14 +7,18 @@ var/list/gun_to_ammo = list() - for(var/obj/item/ammo_magazine/typepath as anything in subtypesof(/obj/item/ammo_magazine) - subtypesof(/obj/item/ammo_magazine/internal)) + for(var/obj/item/ammo_magazine/typepath as anything in subtypesof(/obj/item/ammo_magazine) - typesof(/obj/item/ammo_magazine/internal)) + if(isnull(initial(typepath.icon_state))) + continue // Skip mags with no icon_state (e.g. base types) LAZYADD(gun_to_ammo[initial(typepath.gun_type)], typepath) for(var/typepath in sort_list(subtypesof(/obj/item/weapon/gun), GLOBAL_PROC_REF(cmp_typepaths_asc))) - var/obj/item/weapon/gun/generating_gun = new typepath() + var/obj/item/weapon/gun/generating_gun = typepath + if(isnull(initial(generating_gun.icon_state))) + continue // Skip guns with no icon_state (e.g. base types) + generating_gun = new typepath() var/filename = SANITIZE_FILENAME(escape_value(format_text(generating_gun.name))) - var/list/gun_data = generating_gun.ui_data() var/list/valid_mag_types = list() @@ -70,6 +74,8 @@ var/list/attachments_by_slot = list() for(var/obj/item/attachable/attachment_typepath as anything in generating_gun.attachable_allowed) + if(isnull(initial(attachment_typepath.icon_state))) + continue // Skip attachments with no icon_state (e.g. base types) LAZYADD(attachments_by_slot[capitalize(initial(attachment_typepath.slot))], attachment_typepath) var/attachments = "" diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm index 70b0ad3b41..7dc0a56943 100644 --- a/code/modules/projectiles/gun.dm +++ b/code/modules/projectiles/gun.dm @@ -608,14 +608,13 @@ As sniper rifles have both and weapon mods can change them as well. ..() deals w gun_recoil = recoil_buildup var/penetration = 0 - var/armor_punch = 0 var/accuracy = 0 var/min_accuracy = 0 var/max_range = 0 + var/effective_range = 0 var/scatter = 0 var/list/damage_armor_profile_xeno = list() var/list/damage_armor_profile_marine = list() - var/list/damage_armor_profile_armorbreak = list() var/list/damage_armor_profile_headers = list() var/datum/ammo/in_ammo @@ -638,35 +637,26 @@ As sniper rifles have both and weapon mods can change them as well. ..() deals w falloff = in_ammo.damage_falloff * damage_falloff_mult penetration = in_ammo.penetration - armor_punch = in_ammo.damage_armor_punch accuracy = in_ammo.accurate_range min_accuracy = in_ammo.accurate_range_min max_range = in_ammo.max_range + effective_range = in_ammo.effective_range_max scatter = in_ammo.scatter for(var/i = 0; i<=CODEX_ARMOR_MAX; i+=CODEX_ARMOR_STEP) damage_armor_profile_headers.Add(i) - damage_armor_profile_marine.Add(round(armor_damage_reduction(GLOB.marine_ranged_stats, damage, i, penetration))) - damage_armor_profile_xeno.Add(round(armor_damage_reduction(GLOB.xeno_ranged_stats, damage, i, penetration))) - if(!GLOB.xeno_general.armor_ignore_integrity) - if(i != 0) - damage_armor_profile_armorbreak.Add("[round(armor_break_calculation(GLOB.xeno_ranged_stats, damage, i, penetration, in_ammo.pen_armor_punch, armor_punch)/i)]%") - else - damage_armor_profile_armorbreak.Add("N/A") + damage_armor_profile_marine.Add(floor(armor_damage_reduction(GLOB.marine_ranged_stats, damage, i, penetration))) + damage_armor_profile_xeno.Add(floor(armor_damage_reduction(GLOB.xeno_ranged_stats, damage, i, penetration))) var/rpm = max(fire_delay, 1) var/burst_rpm = max((fire_delay * 1.5 + (burst_amount - 1) * burst_delay)/max(burst_amount, 1), 0.0001) // weapon info - data["icon"] = SSassets.transport.get_asset_url("no_name.png") - - if(SSassets.cache["[base_gun_icon].png"]) - data["icon"] = SSassets.transport.get_asset_url("[base_gun_icon].png") - + data["icon"] = base_gun_icon data["name"] = name data["desc"] = desc data["two_handed_only"] = (flags_gun_features & GUN_WIELDED_FIRING_ONLY) @@ -688,19 +678,18 @@ As sniper rifles have both and weapon mods can change them as well. ..() deals w data["damage"] = damage data["falloff"] = falloff data["total_projectile_amount"] = bonus_projectile_amount+1 - data["armor_punch"] = armor_punch data["penetration"] = penetration data["accuracy"] = accuracy * accuracy_mult data["unwielded_accuracy"] = accuracy * accuracy_mult_unwielded data["min_accuracy"] = min_accuracy data["max_range"] = max_range + data["effective_range"] = effective_range // damage table data data["damage_armor_profile_headers"] = damage_armor_profile_headers data["damage_armor_profile_marine"] = damage_armor_profile_marine data["damage_armor_profile_xeno"] = damage_armor_profile_xeno - data["damage_armor_profile_armorbreak"] = damage_armor_profile_armorbreak return data @@ -715,10 +704,10 @@ As sniper rifles have both and weapon mods can change them as well. ..() deals w data["damage_max"] = 100 data["accuracy_max"] = 32 data["range_max"] = 32 + data["effective_range_max"] = EFFECTIVE_RANGE_MAX_TIER_4 data["falloff_max"] = DAMAGE_FALLOFF_TIER_1 data["penetration_max"] = ARMOR_PENETRATION_TIER_10 data["punch_max"] = 5 - data["glob_armourbreak"] = GLOB.xeno_general.armor_ignore_integrity data["automatic"] = (GUN_FIREMODE_AUTOMATIC in gun_firemode_list) data["auto_only"] = ((length(gun_firemode_list) == 1) && (GUN_FIREMODE_AUTOMATIC in gun_firemode_list)) @@ -726,8 +715,8 @@ As sniper rifles have both and weapon mods can change them as well. ..() deals w /obj/item/weapon/gun/ui_assets(mob/user) . = ..() || list() - . += get_asset_datum(/datum/asset/simple/firemodes) - //. += get_asset_datum(/datum/asset/spritesheet/gun_lineart) + . += get_asset_datum(/datum/asset/spritesheet/gun_lineart_modes) + . += get_asset_datum(/datum/asset/spritesheet/gun_lineart) // END TGUI \\ diff --git a/code/modules/projectiles/guns/pistols.dm b/code/modules/projectiles/guns/pistols.dm index ae8bef53f6..3397c75457 100644 --- a/code/modules/projectiles/guns/pistols.dm +++ b/code/modules/projectiles/guns/pistols.dm @@ -236,7 +236,6 @@ icon = 'icons/obj/items/weapons/guns/guns_by_faction/colony.dmi' icon_state = "c_deagle" item_state = "c_deagle" - base_gun_icon = "c_deagle" current_mag = /obj/item/ammo_magazine/pistol/heavy/super/highimpact black_market_value = 100 @@ -257,7 +256,6 @@ desc = "A Desert Eagle anodized in gold and adorned with rosewood grips. The living definition of ostentatious, it's flashy, unwieldy, tremendously heavy, and kicks like a mule. But as a symbol of power, there's nothing like it." icon_state = "g_deagle" item_state = "g_deagle" - base_gun_icon = "g_deagle" //------------------------------------------------------- //NP92 pistol @@ -588,7 +586,7 @@ name = "\improper 88 Mod 4 combat pistol" desc = "Standard issue USCM firearm. Also found in the hands of Weyland-Yutani PMC teams. Fires 9mm armor shredding rounds and is capable of 3-round burst." icon = 'icons/obj/items/weapons/guns/guns_by_faction/uscm.dmi' - icon_state = "88m4" + icon_state = "_88m4" // to comply with css standards item_state = "88m4" fire_sound = "88m4" firesound_volume = 20 diff --git a/code/modules/unit_tests/spritesheets.dm b/code/modules/unit_tests/spritesheets.dm index c7c16c6535..142d3f9588 100644 --- a/code/modules/unit_tests/spritesheets.dm +++ b/code/modules/unit_tests/spritesheets.dm @@ -2,6 +2,7 @@ /datum/unit_test/spritesheets /datum/unit_test/spritesheets/Run() + var/regex/valid_css_class = new(@"^([\l_][\w\-]|[\l_\-][\l_])") for(var/datum/asset/spritesheet/sheet as anything in subtypesof(/datum/asset/spritesheet)) if(!initial(sheet.name)) //Ignore abstract types continue @@ -9,3 +10,6 @@ for(var/sprite_name in sheet.sprites) if(!sprite_name) TEST_FAIL("Spritesheet [sheet.type] has a nameless icon state.") + if(!valid_css_class.Find(sprite_name)) + // https://www.w3.org/TR/CSS2/syndata.html#value-def-identifier + TEST_FAIL("Spritesheet [sheet.type] has a icon state that doesn't comply with css standards: '[sprite_name]'.") diff --git a/icons/obj/items/weapons/guns/guns_by_faction/uscm.dmi b/icons/obj/items/weapons/guns/guns_by_faction/uscm.dmi index c5946b587a19666e660cb8401ac6153c80a4da06..e57c625158892b6c6c8685d478a8da7d9bebad63 100644 GIT binary patch literal 32010 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 SGk`ZE$mNS#7qV4MAOA0D{ON=M literal 33526 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 P;Gde3mSUN_Rp|c$uEqCZ diff --git a/icons/obj/items/weapons/guns/lineart.dmi b/icons/obj/items/weapons/guns/lineart.dmi index 35241cf3a3b51c61120ca065dd5b9ee982e26264..6920290c7e43f567b91635453b3b9a80d196a0a2 100644 GIT binary patch literal 15776 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 W;&LLr;OqZa&{K6?wJH@L;(r0yYn2iJ diff --git a/icons/obj/items/weapons/guns/lineart_modes.dmi b/icons/obj/items/weapons/guns/lineart_modes.dmi new file mode 100644 index 0000000000000000000000000000000000000000..787fdd34f241587e8f51e9556871003486c94594 GIT binary patch literal 571 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 Mp00i_>zopr0DQL@4*&oF diff --git a/nano/images/weapons/b92fs.png b/nano/images/weapons/b92fs.png deleted file mode 100644 index 2788124dfb8f206bcb10ac9b32c4c266e67813eb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 708 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7Ro>VD!!mi71Ki^|4CM&(%vz$xlkv ztH>-n*TA>HIW;5GqpB!1xXLdi zxhgx^GDXSWj?1RP3TQxXYDuC(MQ%=Bu~mhw64+cTAR8pCucQE0Qj%?}N5ROz&|KfZT;I@G*TB%qz|6|nQUMB-?6?$c zic-?7f?V97mH~OTN*N_31y=g{<>lpi<;HsXMd|v6mX?H@am53o zAcL(Nn{1`ISV`@iy0XB4ude`@%$AjK*4FAE{-7?&Tnrzay2N3Fa*Aqx%WTi-eLis zn5p#(l}+-KxtkLVTqdi$+}>xFw{S|)*5gx(|NYr^^K-bxZH*4b1hxiAhBO9=UBWNQ zRr7zzo<3nc@#mMk6QT^p3}+Y&m=ExvGB)VuwaRVI-?8X(cmXR=(s}yB6Bmm_E#uZH leSR4~Q5$HM=Oh8myUec)bmyOW&;)cLgQu&X%Q~loCIId%Sjzwa diff --git a/nano/images/weapons/c70.png b/nano/images/weapons/c70.png deleted file mode 100644 index b7e2ed731ba189bb19a54d7ffa252dcb411c3904..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 733 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7Ro>VD!!mi71Ki^|4CM&(%vz$xlkv ztH>-n*TA>HIW;5GqpB!1xXLdi zxhgx^GDXSWj?1RP3TQxXYDuC(MQ%=Bu~mhw64+cTAR8pCucQE0Qj%?}N5ROz&|KfZT;I@G*TB%qz|6|nQUMB-?6?$c zic-?7f?V97mH~OTN*N_31y=g{<>lpi<;HsXMd|v6mX?*?YcQZeW4t%HTl1_G=B){~7af;g52bGZNVSZ8;{rQyi&5BDyzo%wP8 zU598tJ2*HoJLQdybHnf)7LD*{BPWr}i(AT^c=&3uxDkq?uzopr02`kNrvLx| diff --git a/nano/images/weapons/c_deagle.png b/nano/images/weapons/c_deagle.png deleted file mode 100644 index c2a5c991acf8d377fec6c79ce294a1b01fa5918b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 762 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7Ro>VD!!mi71Ki^|4CM&(%vz$xlkv ztH>-n*TA>HIW;5GqpB!1xXLdi zxhgx^GDXSWj?1RP3TQxXYDuC(MQ%=Bu~mhw64+cTAR8pCucQE0Qj%?}N5ROz&|KfZT;I@G*TB%qz|6|nQUMB-?6?$c zic-?7f?V97mH~OTN*N_31y=g{<>lpi<;HsXMd|v6mX?}%WQZeW4?URMg4g#zJH=i0p;_qFBix=b9uGwvqD zCYiony3E&hCKrdWLqsum*4HhX8EcpQUDaT~*zz{Zaj*KE&0E*Y{SRkt;Z#@?@#yp> zlc~3N#ZD2+HtpWATIWub_`-9nbEhyITD5G!{~Yo3*)`XE9L-f4Hmnl6QpL6FtM&R9 zEB=NvCNgnoZ(DHf}Z>-Z!x^=ovOTmW$s8!fu z2E(DQ;DG*<$4kD<1<3>XEFfEg?U(&x0js(ze__LqUtq}_iToKK%t4}1aN(r*C#KoY TGgIOpfJ8i9{an^LB{Ts5>LVD0 diff --git a/nano/images/weapons/cmateba.png b/nano/images/weapons/cmateba.png deleted file mode 100644 index f949d4b54731b79ebab7895827448b58b3c7af08..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 773 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7Ro>VD!!mi71Ki^|4CM&(%vz$xlkv ztH>-n*TA>HIW;5GqpB!1xXLdi zxhgx^GDXSWj?1RP3TQxXYDuC(MQ%=Bu~mhw64+cTAR8pCucQE0Qj%?}N5ROz&|KfZT;I@G*TB%qz|6|nQUMB-?6?$c zic-?7f?V97mH~OTN*N_31y=g{<>lpi<;HsXMd|v6mX?gnPbQZeW4Eyuh=1_G=BQC}r=EIHiIJ4O`smtE{#s&%3{*Y3jiX@Z81 zi+@U4%kY6i97w!>vAF8+w%p)-KT51>{UcYrDB3xtuK0ZMw(NQ5pI`c1GtKU7375dP ztw|U6Zo8ZP|65h{`+HwkrAIGc%6v#fA;*(tYt^HryZrjIc$U3rFkt0~7IM6Llhw(JzHSDpK=+?)ayEMn<(aVb^)b|OOJ=7L_E z2tnvNZhKV~R@^Ab^5W5c@EBF-7W?}GzAHN`)wro~-w;1fbTi!plgfHrYRWDm$0HR^wLtP!ihVu0- T9j_n$0Ev0J`njxgN@xNAYmp%K diff --git a/nano/images/weapons/cshotgun.png b/nano/images/weapons/cshotgun.png deleted file mode 100644 index 9820f58546795a503ffcb0b3ee2c9596c44b351b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 682 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7Ro>VD!!mi71Ki^|4CM&(%vz$xlkv ztH>-n*TA>HIW;5GqpB!1xXLdi zxhgx^GDXSWj?1RP3TQxXYDuC(MQ%=Bu~mhw64+cTAR8pCucQE0Qj%?}N5ROz&|KfZT;I@G*TB%qz|6|nQUMB-?6?$c zic-?7f?V97mH~OTN*N_31y=g{<>lpi<;HsXMd|v6mX?}%WQZeW4&4ank4k9c8GD}6c7M5@=oc<&&QL|%z=jRFfhbf-$+q_OUcAdf z)*S>(hdA2uN3MOIU%GAgnrqe$!UAdy8_sfBW$jH}9aq)2R~RfXo$J-gxrVD!!mi71Ki^|4CM&(%vz$xlkv ztH>-n*TA>HIW;5GqpB!1xXLdi zxhgx^GDXSWj?1RP3TQxXYDuC(MQ%=Bu~mhw64+cTAR8pCucQE0Qj%?}N5ROz&|KfZT;I@G*TB%qz|6|nQUMB-?6?$c zic-?7f?V97mH~OTN*N_31y=g{<>lpi<;HsXMd|v6mX?gnPbQZeW4ZO6Q30|C|xTV5GP6#X|Y5O{a#jnb-PlXP$YSyh++QiAo9 zsj~Em$Bf_r2NDMYxUm!ED1R0;DaFc~gT@Aqxl8gi^a8zkuI>gTe~DWM4f_Js3F diff --git a/nano/images/weapons/deagle.png b/nano/images/weapons/deagle.png deleted file mode 100644 index 059a730d7efdbdc0ff493c6bd2178f117d705358..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 761 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7Ro>VD!!mi71Ki^|4CM&(%vz$xlkv ztH>-n*TA>HIW;5GqpB!1xXLdi zxhgx^GDXSWj?1RP3TQxXYDuC(MQ%=Bu~mhw64+cTAR8pCucQE0Qj%?}N5ROz&|KfZT;I@G*TB%qz|6|nQUMB-?6?$c zic-?7f?V97mH~OTN*N_31y=g{<>lpi<;HsXMd|v6mX?FMGaQZeW4ZSSIH0|8bC^{L4lp8QMy;22TVpW+?5NP$(8zu@~NGqYz` zeR_Y`$bkc#f#L9;srM@E=I@q1|M}0(?=w>)yY?5lFHJV`z1)BNVeOlD8{8QZ<=0B* zc&}Nu_sW));meo~u?Sqd(-gJ$mdKXS%XOg+GZ+r>ZC!9t_}tA~*E{~N2FZu%d@PNf zeJc01o>%wQS*~|N#q!p62Rv``^I}L04Zcvnt$VYtUG%aA(n1aqq1;)vtapFS4Zo88 zA8c5c?uyb+nYDjUyx*qx?wk*63#Y=GpCw;9KCRD;56{sz4FTEM7Bj`Z=ycNh%vV}q z{;s>TZmf2_Q+i7?kTH>oL%J^e(Y3kf9)4K_a!%Qct{Le^`hr0+!XVv17tU#N^RW|) zzrV7<=Sv_j-s-X|+T1evpyS;A(K($539=%bzPF21?uvp00i_>zopr E0BAlG`~Uy| diff --git a/nano/images/weapons/disabled_automatic.png b/nano/images/weapons/disabled_automatic.png deleted file mode 100644 index 94da079d8049e3fc9e0eb957379e391bc2998e3b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 251 zcmeAS@N?(olHy`uVBq!ia0vp^2|%pC!3HGX9;gigQjEnx?oJHr&dIz4a#+$GeH|GX zHuiJ>Nn{1`ISV`@iy0XB4ude`@%$AjK*0%~E{-7?&TnrRay1z6I9z;jwCdYDpXq#& zT}qAqANISpHyl=vkeamQzSXtOcO)K1tv7sL^T+S|&-LfNiX34uU_QXZV9c=Q%lmo$ zeAYi*F4pdAk_HN#fyp2-He9Oi)w#cV&rbW7cK@e>RIMr5`svoYC#CP~;t%pRNIFbX caXG?Uxi3KX%p_G?pxYQcUHx3vIVCg!0J1e(1poj5 diff --git a/nano/images/weapons/disabled_burst.png b/nano/images/weapons/disabled_burst.png deleted file mode 100644 index 71b88bcaf945bc458a87ac7313ea0d3555c1e4ae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 256 zcmeAS@N?(olHy`uVBq!ia0vp^2|%pC!3HGX9;gigQjEnx?oJHr&dIz4a#+$GeH|GX zHuiJ>Nn{1`ISV`@iy0XB4ude`@%$AjK*6b=E{-7?&Tnrzay2N3Fa*9%ns;}yXj9|r zPx>V-&vJ7T1$f#rCaL_rcJY|*lR4|Z&G6Ekf8VV7A6L3Gt0BV~1_R~;JPgj|On=us z@!g*+S*dO`{~qs7rUbSINrp6r8H}imZAaH$NdCqfUh3I;G>MLsRVj kY8SB{;8E}tQd%l~?XH2YnBCPzpaU5^UHx3vIVCg!03qU4b^rhX diff --git a/nano/images/weapons/disabled_single.png b/nano/images/weapons/disabled_single.png deleted file mode 100644 index bf2cef4b150757441530c5fed8ed2818b584d65b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 222 zcmeAS@N?(olHy`uVBq!ia0vp^2|%pC!3HGX9;gigQjEnx?oJHr&dIz4a#+$GeH|GX zHuiJ>Nn{1`ISV`@iy0XB4ude`@%$AjK*3^97srqc=eIXE@*YtTU~v4?8)!ZCr!bRx zU-$`Q&LtV8mrlwt)Lh$o{_z>h_qDRwYm@JPysa+Cn8b91rGrzzI;*-O&o1BZc88CH zPs0obLzslHf*M4i{z#GW1a#SE`Ah>^&*16m=d#Wzp$P!j CdPWxj diff --git a/nano/images/weapons/dshotgun.png b/nano/images/weapons/dshotgun.png deleted file mode 100644 index cd795982816b25aee5560ec180bf09769f28b8be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 656 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7Ro>VD!!mi71Ki^|4CM&(%vz$xlkv ztH>-n*TA>HIW;5GqpB!1xXLdi zxhgx^GDXSWj?1RP3TQxXYDuC(MQ%=Bu~mhw64+cTAR8pCucQE0Qj%?}N5ROz&|KfZT;I@G*TB%qz|6|nQUMB-?6?$c zic-?7f?V97mH~OTN*N_31y=g{<>lpi<;HsXMd|v6mX?_0XLXlE` zJKrXPgBwCLY$}YL_C>0#a^C%yrc3r*;;yh_Z0Wtd?db9P*y|s^mqxq4eZJQA{Fjh@ z)ziv&)f9Xf5`%v~%MkrjUVfu?W`hA^i|>5-onha&(H@O7BMaLDWW#i_d&Tgxw4m%?<2MZhf9 z@|^#UM|P)JS~wNnyuN-h>v=xdJSGldkaEAVD!!mi71Ki^|4CM&(%vz$xlkv ztH>-n*TA>HIW;5GqpB!1xXLdi zxhgx^GDXSWj?1RP3TQxXYDuC(MQ%=Bu~mhw64+cTAR8pCucQE0Qj%?}N5ROz&|KfZT;I@G*TB%qz|6|nQUMB-?6?$c zic-?7f?V97mH~OTN*N_31y=g{<>lpi<;HsXMd|v6mX?vJuqZ&_xX`}oeWu-|nd4l`I<&fb<+eR_Yj=oA}m)3;kz)Y@w)_%IzR3%>ATTftM; zFn!hcS=GH<9FrS1{QRq0ts5NRS#4Q-@T&H_X-5}>gd7b$_mR{wWPK_HMbO^0JOw zVb?a<7e9M)c{T5<1_MqG>zIz-A3X0p-fl5Y^75Q}WF<&Y`d?|u=_@9`zP#lEyZz|4 z#ol+8_HGGaOayvz59`-iS^K5}Z9@bN!vpI-j1yumzLQ?jRs$0DboFyt=akR{065GM A)Bpeg diff --git a/nano/images/weapons/fp9000_pmc.png b/nano/images/weapons/fp9000_pmc.png deleted file mode 100644 index b9f971eb077398b4701f35d3f1b803406a8d9346..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 743 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7Ro>VD!!mi71Ki^|4CM&(%vz$xlkv ztH>-n*TA>HIW;5GqpB!1xXLdi zxhgx^GDXSWj?1RP3TQxXYDuC(MQ%=Bu~mhw64+cTAR8pCucQE0Qj%?}N5ROz&|KfZT;I@G*TB%qz|6|nQUMB-?6?$c zic-?7f?V97mH~OTN*N_31y=g{<>lpi<;HsXMd|v6mX?vJuqZ&_xX`}oeWu-|nd4l`I<&fb<+eR_Yj=oA}m)3;kz)Y@w)_%IzR3%>ATTftM; zFn!hcS=GH<9FrS1{QRq0ts5NRS#4Q-@T&H_X-5}>gd7b$_mR{wWPK_HMbO^0JOw zVb?a<7e9M)c{T5<1_MqG>zIz-A3X0p-fl5Y^75Q}WF<&Y`d?|u=_@9`zP#lEyZz|4 z#ol+8_HGGaOayvz59`-iS^K5}Z9@bN!vpI-j1yumzLQ?jRs$0DboFyt=akR{065GM A)Bpeg diff --git a/nano/images/weapons/g_deagle.png b/nano/images/weapons/g_deagle.png deleted file mode 100644 index c2a5c991acf8d377fec6c79ce294a1b01fa5918b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 762 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7Ro>VD!!mi71Ki^|4CM&(%vz$xlkv ztH>-n*TA>HIW;5GqpB!1xXLdi zxhgx^GDXSWj?1RP3TQxXYDuC(MQ%=Bu~mhw64+cTAR8pCucQE0Qj%?}N5ROz&|KfZT;I@G*TB%qz|6|nQUMB-?6?$c zic-?7f?V97mH~OTN*N_31y=g{<>lpi<;HsXMd|v6mX?}%WQZeW4?URMg4g#zJH=i0p;_qFBix=b9uGwvqD zCYiony3E&hCKrdWLqsum*4HhX8EcpQUDaT~*zz{Zaj*KE&0E*Y{SRkt;Z#@?@#yp> zlc~3N#ZD2+HtpWATIWub_`-9nbEhyITD5G!{~Yo3*)`XE9L-f4Hmnl6QpL6FtM&R9 zEB=NvCNgnoZ(DHf}Z>-Z!x^=ovOTmW$s8!fu z2E(DQ;DG*<$4kD<1<3>XEFfEg?U(&x0js(ze__LqUtq}_iToKK%t4}1aN(r*C#KoY TGgIOpfJ8i9{an^LB{Ts5>LVD0 diff --git a/nano/images/weapons/hg3712.png b/nano/images/weapons/hg3712.png deleted file mode 100644 index f7f32190c468fa35a83f67afaeab3f74c46ec161..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 691 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7Ro>VD!!mi71Ki^|4CM&(%vz$xlkv ztH>-n*TA>HIW;5GqpB!1xXLdi zxhgx^GDXSWj?1RP3TQxXYDuC(MQ%=Bu~mhw64+cTAR8pCucQE0Qj%?}N5ROz&|KfZT;I@G*TB%qz|6|nQUMB-?6?$c zic-?7f?V97mH~OTN*N_31y=g{<>lpi<;HsXMd|v6mX?==I zyZ3qN-n-xc2NOTUPH)Sd*m}LR_FwJ2@3oyVF6z(s&bj*L^}YW^8Hx=Xj;o7nZ=I{H zYBT%NKCkLP#zZEL=)T7l(f?}NxHyCzZk!gm@{8XtX_cq!g>`G9i{-uUuWm44Y~i)< zxVmN8rT5h{A1(;r#U?7C*03RodzI#S!C>F@nk!13q!*?s1%XVft`wW1byYC!UbmQu zAY+TDynFvVhp74bTh~>aeV%O!)|scf;`+h#XJv*>U^|sf-+u6BZQ)c{^Rsuxw#(B& wf-@Knv4AXjrkU}~-1q-PpculF3?F3c7$V-S4o}`V-xVb6>FVdQ&MBb@0Mruh9{>OV diff --git a/nano/images/weapons/highpower.png b/nano/images/weapons/highpower.png deleted file mode 100644 index a7d25c44803b27ae15b3a5bd9efb660a626b755b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 678 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7Ro>VD!!mi71Ki^|4CM&(%vz$xlkv ztH>-n*TA>HIW;5GqpB!1xXLdi zxhgx^GDXSWj?1RP3TQxXYDuC(MQ%=Bu~mhw64+cTAR8pCucQE0Qj%?}N5ROz&|KfZT;I@G*TB%qz|6|nQUMB-?6?$c zic-?7f?V97mH~OTN*N_31y=g{<>lpi<;HsXMd|v6mX?5O$cs08|~etMA_v z*@>lJJUJC|Zs@Ie9&l}Qd*yS+3wke@fU;4J$}*Cl_r8)|yXc({NXNfg*1fNCvI~R- z)EYKi;*zTUu}cZeei43Q`L%P?IDrO7l(X)QQqFol6T|`A0#uv0TcOVoWO4Oxy%P^# fgXCa71N!X+-&40>7FHvbUm!tGS3j3^P6VD!!mi71Ki^|4CM&(%vz$xlkv ztH>-n*TA>HIW;5GqpB!1xXLdi zxhgx^GDXSWj?1RP3TQxXYDuC(MQ%=Bu~mhw64+cTAR8pCucQE0Qj%?}N5ROz&|KfZT;I@G*TB%qz|6|nQUMB-?6?$c zic-?7f?V97mH~OTN*N_31y=g{<>lpi<;HsXMd|v6mX?n13qb{o3ORJFhG~ zwkHl8+F;^t&DOXF7Jb{(zt#TF-Fv=%OK$Y%_uub6?*1@`;ZR-L{SP+hw7BcmZV9=@RhrIph(*9`X;W3`!4CG- zQp)o0!0H$MXT7_2ndr7zyTRPH(15eg3?4b^Y}K?)1?jl9wW(_F$z4UIXQysg78X!z z*zl4+Y3Zy}TIXXz&t}c`KgrU;VY0d!izP1_C~cqB8r~!fgnLoS3j3^P6VD!!mi71Ki^|4CM&(%vz$xlkv ztH>-n*TA>HIW;5GqpB!1xXLdi zxhgx^GDXSWj?1RP3TQxXYDuC(MQ%=Bu~mhw64+cTAR8pCucQE0Qj%?}N5ROz&|KfZT;I@G*TB%qz|6|nQUMB-?6?$c zic-?7f?V97mH~OTN*N_31y=g{<>lpi<;HsXMd|v6mX?UU-T33{3<;;%vZ`baxN%J^x zoEaS0P-0!qjAfd(hu0O#+sysvzOE)X2JdTvZmmTjnfuJDVdUkj9v}vHQmUtmVtxg2XqP za&l~L*sx5rWQks1%!NLiXk%w@u$tu|7vj!%`^zq!8WdG%JE6gVn?rluf_q8#qL)sY s1mfMU5x)|>_f8{AOC+*;84i@zGQ=H>c5HBQbp}azy85}Sb4q9e0Bvj3*8l(j diff --git a/nano/images/weapons/kt42.png b/nano/images/weapons/kt42.png deleted file mode 100644 index ecf0ee41a9b70add6497ab052ec7e11d9baaf7df..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 699 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7Ro>VD!!mi71Ki^|4CM&(%vz$xlkv ztH>-n*TA>HIW;5GqpB!1xXLdi zxhgx^GDXSWj?1RP3TQxXYDuC(MQ%=Bu~mhw64+cTAR8pCucQE0Qj%?}N5ROz&|KfZT;I@G*TB%qz|6|nQUMB-?6?$c zic-?7f?V97mH~OTN*N_31y=g{<>lpi<;HsXMd|v6mX?W`uAVuUY*kq%l}s1eOutdkQlEkJ~cE+hnGXx zA>uN}s+-^cewe;jCUR@`x-VV7Gk>0$c5y9ZA`^%8R>9R*FRXfLF1^u{Q{l}OtraP6 zY}}a-u?U#uD4S)umOOoy*T%b;t%Xw|=Z4mbE7g9NqW=eKuai8t(nP_BAyHq_QFry? zODm>cieCaY&$KDZEPn6fM{|#PbAv7a&S7O-mS#~svlnE@n&0a?kDZH<5>RW{aHG(K zAIx~gktM0T_+0%zV~~y+3_#n}8VveZwq*i2aL~~BPFc8`&CRo#2_)v}>gTe~DWM4f DMG5iE diff --git a/nano/images/weapons/l42mk1.png b/nano/images/weapons/l42mk1.png deleted file mode 100644 index b5efcc14d33119f21ccba96b84c2a74c0e7d9952..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 674 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7Ro>VD!!mi71Ki^|4CM&(%vz$xlkv ztH>-n*TA>HIW;5GqpB!1xXLdi zxhgx^GDXSWj?1RP3TQxXYDuC(MQ%=Bu~mhw64+cTAR8pCucQE0Qj%?}N5ROz&|KfZT;I@G*TB%qz|6|nQUMB-?6?$c zic-?7f?V97mH~OTN*N_31y=g{<>lpi<;HsXMd|v6mX?;PV_D|sXN5BL+uzN7UU{SDG5@Ejb_cF%I^0;t5p`SGJ$xDS zArXa~h-pi`OSbr#zCK}f_+H%g=<^Fe!f#ZY`udub)s|jij$QwM5lCpwZIO`0BI2*h z{#DxiyZifZjap|I8Z>L>|HJH*&uOGS3j3^P6VD!!mi71Ki^|4CM&(%vz$xlkv ztH>-n*TA>HIW;5GqpB!1xXLdi zxhgx^GDXSWj?1RP3TQxXYDuC(MQ%=Bu~mhw64+cTAR8pCucQE0Qj%?}N5ROz&|KfZT;I@G*TB%qz|6|nQUMB-?6?$c zic-?7f?V97mH~OTN*N_31y=g{<>lpi<;HsXMd|v6mX?7W3HFvs2A7y;G?D#VgxC ziL=0=4JP!A*T0^%uRSwz+WvWu^KYAdm)U<*yOw#sA4B5%EBw>9%)NE3(CpdAUm0&b zSX($1-dqz4vA+G%)_T|FNa+y9L?({e-)sNRGOAY+6;Nx~&>wl>8@_X>-u%6xuH}D)8^|qdPFFi_-P|`# zEU@U4sS()z8>>5&&-=Vv!UVMK+Fn-MRI^Eo!0e^0OVcd;bIP?8d=P$Txc^vw@z0tj StsA|+L86|nelF{r5}E)PE&hxE diff --git a/nano/images/weapons/m240.png b/nano/images/weapons/m240.png deleted file mode 100644 index 72eb477c9efa7a96d500c68b087eaa2c0dc4a90b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 822 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7Ro>VD!!mi71Ki^|4CM&(%vz$xlkv ztH>-n*TA>HIW;5GqpB!1xXLdi zxhgx^GDXSWj?1RP3TQxXYDuC(MQ%=Bu~mhw64+cTAR8pCucQE0Qj%?}N5ROz&|KfZT;I@G*TB%qz|6|nQUMB-?6?$c zic-?7f?V97mH~OTN*N_31y=g{<>lpi<;HsXMd|v6mX?tcpoxL;rOT7&r7gOC_#shJS?=Q%)PTjpiHb3&Y z-x`J)j0f7bESULLwd&oOl`G3~pPEK68ZbAMW;(bUVq;;@61OjZH6?44eK>Cj>Mfkbvf{D)uQ9xy7Qe+ay3XYyjjhfy6VD!!mi71Ki^|4CM&(%vz$xlkv ztH>-n*TA>HIW;5GqpB!1xXLdi zxhgx^GDXSWj?1RP3TQxXYDuC(MQ%=Bu~mhw64+cTAR8pCucQE0Qj%?}N5ROz&|KfZT;I@G*TB%qz|6|nQUMB-?6?$c zic-?7f?V97mH~OTN*N_31y=g{<>lpi<;HsXMd|v6mX?^W>lU2}7fbFZYzUtmbxU;Fwrf^lP7? zhmN@YiJ-3Aw|yt6cmmNS&1ug+SKdl`z3bnct=G2Yo{r4!{jn(j!G2?g8+)r7lW$vY zYrXbb`TBk(ZH6?44U@z~a;=qfRbE>KUfdd$dyT6>l0hd|`I_<7EvLS91qYnB{eEY* zC<93Ia^0ROmDk!)^4pbn{BIm7i>k1n8;j{O=kMa*L${g&-?Cjd)D!b zlZ_Z6en@YeXgs-VTIk+~UE8K)bZ-Nhr(LhN!u^_wP;TMHZ=oAKw}8aBw=29_QE3)w zKOO8kk>G&-HIvp?I90cR`76^MFJ`;hOS{@e)~2u?;9)Q`VGW&LaLqhPIXiSS$N=x# z9ks7!`kR7+!GIa)ZJ=-1fF7N}cwpH-w>Pi;bFXNJ7_GbFk$=+qLm+qObctPg{A%s8 zqae;3Bi$F1Z=IV6QU%n-0}4;gWeTrezL1PyG+>?pj*m$yb03IbnygTe~DWM4f_>@PD diff --git a/nano/images/weapons/m37-17.png b/nano/images/weapons/m37-17.png deleted file mode 100644 index 7d53cbd76108f20b85b39593de54b39392d1be30..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 696 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7Ro>VD!!mi71Ki^|4CM&(%vz$xlkv ztH>-n*TA>HIW;5GqpB!1xXLdi zxhgx^GDXSWj?1RP3TQxXYDuC(MQ%=Bu~mhw64+cTAR8pCucQE0Qj%?}N5ROz&|KfZT;I@G*TB%qz|6|nQUMB-?6?$c zic-?7f?V97mH~OTN*N_31y=g{<>lpi<;HsXMd|v6mX?2N551r{&&OVqX9HS4G{u@3ozGT-2ZMoOAWe>*fF7UT|Va{9eu%7FD(` zq{3`z<VD!!mi71Ki^|4CM&(%vz$xlkv ztH>-n*TA>HIW;5GqpB!1xXLdi zxhgx^GDXSWj?1RP3TQxXYDuC(MQ%=Bu~mhw64+cTAR8pCucQE0Qj%?}N5ROz&|KfZT;I@G*TB%qz|6|nQUMB-?6?$c zic-?7f?V97mH~OTN*N_31y=g{<>lpi<;HsXMd|v6mX?k6a-iUvTeNH*SELz(n0kwt=%fzl2Wq$eh`~T)oH6ac&7!Iw{U9oiO znH@iRcI`O3Z_3ws{oOZQIThZlW$o2keJ?D)&OR$^*R3z1*6d*IPc8cTZ~L8Iy5?w4 zXKER@l&R#Z1_Q>H(CC1dS^0D8IziR~4P^mY)xJGEQcJ-H$qNh&HQU8|Z`Gfy5arqo O68CiVb6Mw<&;$U8hUgRk diff --git a/nano/images/weapons/m39.png b/nano/images/weapons/m39.png deleted file mode 100644 index f6fbb0a4896161b6b0d22bc186112152e6ecd5bf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 777 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7Ro>VD!!mi71Ki^|4CM&(%vz$xlkv ztH>-n*TA>HIW;5GqpB!1xXLdi zxhgx^GDXSWj?1RP3TQxXYDuC(MQ%=Bu~mhw64+cTAR8pCucQE0Qj%?}N5ROz&|KfZT;I@G*TB%qz|6|nQUMB-?6?$c zic-?7f?V97mH~OTN*N_31y=g{<>lpi<;HsXMd|v6mX?FMGaQZeW4EyJRw01?)J$tT$^1xM}Rnf}g5N8|10mL)}Pf`NAOMS_Iq`#m^*9U_sHLq8Vp!DUTX#M`^Vkev%tzq6t`VH8a^G&-ojcs lRqxlmRv-r!Yzzzri|tEeR{Z#VD!!mi71Ki^|4CM&(%vz$xlkv ztH>-n*TA>HIW;5GqpB!1xXLdi zxhgx^GDXSWj?1RP3TQxXYDuC(MQ%=Bu~mhw64+cTAR8pCucQE0Qj%?}N5ROz&|KfZT;I@G*TB%qz|6|nQUMB-?6?$c zic-?7f?V97mH~OTN*N_31y=g{<>lpi<;HsXMd|v6mX?f_uO`Js z<<1upSjLbTtGhz|oUz){X|_||M=q50beO@^lAGta_?DmllkC?yvGuKGDvXI-0%5k? zSu=y87VUbz^TLX28=ucpRq$av)YpGJIe7I=sq?n#UGuJ8{3IK_Y}vHy-Vl@19ix{o zkbIkQ>~L(R+igv-(YC&hwwL|7C3PRkPTk+k(xT}Qv6c1fjJx~x=}nKn{(sNixVo~} zS4@8Yh-Eq?qL6cA?}AxTU!opG?t8v+t?1jQcfp3}7Md1b*`L4FwEA3DR(78f$bDwD zTv}gkSiat`L;}=$p1GKySf=lI=I6)qy8x+5h{pfW$mq{an^LB{Ts50c<7} diff --git a/nano/images/weapons/m41a2.png b/nano/images/weapons/m41a2.png deleted file mode 100644 index 4179cb37f5c3ec814bc23339cb805e77cded1f67..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 851 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7Ro>VD!!mi71Ki^|4CM&(%vz$xlkv ztH>-n*TA>HIW;5GqpB!1xXLdi zxhgx^GDXSWj?1RP3TQxXYDuC(MQ%=Bu~mhw64+cTAR8pCucQE0Qj%?}N5ROz&|KfZT;I@G*TB%qz|6|nQUMB-?6?$c zic-?7f?V97mH~OTN*N_31y=g{<>lpi<;HsXMd|v6mX?;4J zEceZKm-9AAGU%8#8I{Uy3|_Ufz2Yp-;}dKLco?qPG*$J^^?B<3ddoWd!xozu4VW85 z@3UTg6O^^8>Phv&xW$i8RBr=`>i*tm-aG4BmE6w7Cwls3?cbPoJ>>Ieup!f`#INk) zmNM*fv$^A{e9SL}If0F#`W9BW-uPO!@76n*X*@Rv%!k{ v7MQ2*s}Q;glHmbbWWYQD5(g?T-~VP*YyG9X?9uG2puFJe>gTe~DWM4fBpf`e diff --git a/nano/images/weapons/m41ae2.png b/nano/images/weapons/m41ae2.png deleted file mode 100644 index 4a5232fd6638fdc3f56f1c6a71e4ae77774f09c8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 784 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7Ro>VD!!mi71Ki^|4CM&(%vz$xlkv ztH>-n*TA>HIW;5GqpB!1xXLdi zxhgx^GDXSWj?1RP3TQxXYDuC(MQ%=Bu~mhw64+cTAR8pCucQE0Qj%?}N5ROz&|KfZT;I@G*TB%qz|6|nQUMB-?6?$c zic-?7f?V97mH~OTN*N_31y=g{<>lpi<;HsXMd|v6mX?m9;?`O2;SdZ}{$Y zOmNoE&9k>&c*z0|bOweGUDIyAy_UN0^wUpwQx_h*RvLS$TBCM}`GwOD;x6u0chonYpdJb=U3pfB#(f|NAdZuyM|DN3x#Y5Bjt<{nWQjrS`gR@p3EHu4g*LA|SR~w)P3j zrBB?`s~z*b7!sdfk)0iPe)}5Z&#cT~TVsO*PL~)upFF>zT?*oibjQtiBkIJ!1~UPD sKZD`WvVF35U$cEW69VMGz=N-U7}RE+ICS}zCp$>Y)78&qol`;+0PqMTwEzGB diff --git a/nano/images/weapons/m41amk1.png b/nano/images/weapons/m41amk1.png deleted file mode 100644 index 3f44c62b0fad247d87d30bf83316d531f57e4817..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 787 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7Ro>VD!!mi71Ki^|4CM&(%vz$xlkv ztH>-n*TA>HIW;5GqpB!1xXLdi zxhgx^GDXSWj?1RP3TQxXYDuC(MQ%=Bu~mhw64+cTAR8pCucQE0Qj%?}N5ROz&|KfZT;I@G*TB%qz|6|nQUMB-?6?$c zic-?7f?V97mH~OTN*N_31y=g{<>lpi<;HsXMd|v6mX?`gzLr@D62Jfn^Mdvz1qlVEM%7%eI{Ttz&MspdbB{c3jVHEk2cOKX~Z+CIe udfPF11~>!`yIkPPej*8yfQ2Cg&o}PtYInE2JAYLRBVD!!mi71Ki^|4CM&(%vz$xlkv ztH>-n*TA>HIW;5GqpB!1xXLdi zxhgx^GDXSWj?1RP3TQxXYDuC(MQ%=Bu~mhw64+cTAR8pCucQE0Qj%?}N5ROz&|KfZT;I@G*TB%qz|6|nQUMB-?6?$c zic-?7f?V97mH~OTN*N_31y=g{<>lpi<;HsXMd|v6mX?+GhKiv~@J*+Wp z?ncG!(%|q05li2l-n8Z3gP%2Z;p=}^?R|GOds)p=^A9gs6y99i_+s0ekg45$L1k=4 z3O)>nqP#AIxm#ALgE{YB@A_A{%i^%-vfVYZccZV?r8vxBXt8w*ddcG(@LewGelrh; zaKna$!56N@t(v#cXX%+a9bhGYtCX(Uy2)wAhtCubof;!4pvI8+_VJ6n>Zhw;{pwge z|NcF1wiZr@8v&fFejR;p@%GKy;L_S7XTB>l9|Ah+gXW7DH@>}i^P(`!llr+g=dLwjaPsDTw1K5JW%%x1bMIc|$P*vt#7JB`z3t(obzX4S&i sU^Q#r%>NXc`8)IMETD7Yp~A4>0)Ha+x`z1Y@&O=0Pgg&ebxsLQ00`6-6951J diff --git a/nano/images/weapons/m42a.png b/nano/images/weapons/m42a.png deleted file mode 100644 index f0d07328c122f208d882dd683a822b9439a54f00..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 720 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7Ro>VD!!mi71Ki^|4CM&(%vz$xlkv ztH>-n*TA>HIW;5GqpB!1xXLdi zxhgx^GDXSWj?1RP3TQxXYDuC(MQ%=Bu~mhw64+cTAR8pCucQE0Qj%?}N5ROz&|KfZT;I@G*TB%qz|6|nQUMB-?6?$c zic-?7f?V97mH~OTN*N_31y=g{<>lpi<;HsXMd|v6mX?T@Uxx5X};rB1w)n-25Y5n_5p^UQ9qvvm$Zysluv^T5fq}8F< zS+}I$D$l>WI;_>p!HC(TERr?%>bYAJXT-+}hKJv==k!QpIJv8%BQ;WPv&q&)?|7p&DQ|Jck0vEUKSPOhLr6)`{Js-_D-1qHn@s)>n4+{ fAjOCVD!!mi71Ki^|4CM&(%vz$xlkv ztH>-n*TA>HIW;5GqpB!1xXLdi zxhgx^GDXSWj?1RP3TQxXYDuC(MQ%=Bu~mhw64+cTAR8pCucQE0Qj%?}N5ROz&|KfZT;I@G*TB%qz|6|nQUMB-?6?$c zic-?7f?V97mH~OTN*N_31y=g{<>lpi<;HsXMd|v6mX?x0PX7J1l=-VC^(tFA^e}b! z>fXAx?O~;a-97v2Z8^W)7wPX#i@Sd1Z3ox}|K=IrR|cP4ka+vrwpCxZuG?Qf`@|`` zaMLN3N`hYO9YA*$-v2&5S2{C&{n0(Odra@myJvULTD8A-$F+-7_U;6``;BIkjq1ga zqRAi62}H_YRO;LG-&$6|jq!+6b41ulJ5_VN{Mz&H`950xN&x!dm-Ek@Jt_N}X7tYL zxMsd|(%+X1hFl6}mAYb*`?8KYy^i)eX>j9La~;_6t$B`H*-Y}!NB#SB)25_Bf>l6U o>PVHVD!!mi71Ki^|4CM&(%vz$xlkv ztH>-n*TA>HIW;5GqpB!1xXLdi zxhgx^GDXSWj?1RP3TQxXYDuC(MQ%=Bu~mhw64+cTAR8pCucQE0Qj%?}N5ROz&|KfZT;I@G*TB%qz|6|nQUMB-?6?$c zic-?7f?V97mH~OTN*N_31y=g{<>lpi<;HsXMd|v6mX?8y>x^KJ%RyEZ3(ZLaNQZ}t{Wg*Q_Kx0sf>z6b zTdsv^mfM|BFrQb}(LKka`d&4=m4XjL;`E&zSFcQaXH(_{=I(Y6IQuNvE??HYTCb#h z0rMdifwEJsYqoCtG9_@cE69p9*(`5=KKnd{`-%owhx7IY%j>sWHt}%?JKVUC@3`eM zVYu`s!;9>p!h|5&;tQboFyt=akR{0A{1| A^Z)<= diff --git a/nano/images/weapons/m44rc.png b/nano/images/weapons/m44rc.png deleted file mode 100644 index 1c20973a0a99581ae8ffc974655241f457cc63c0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 763 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7Ro>VD!!mi71Ki^|4CM&(%vz$xlkv ztH>-n*TA>HIW;5GqpB!1xXLdi zxhgx^GDXSWj?1RP3TQxXYDuC(MQ%=Bu~mhw64+cTAR8pCucQE0Qj%?}N5ROz&|KfZT;I@G*TB%qz|6|nQUMB-?6?$c zic-?7f?V97mH~OTN*N_31y=g{<>lpi<;HsXMd|v6mX?uTLROm6k)Ws6#!`9hXe|uxPI>TWG!=Wg*3!67?&fRW{Fim>n=5+UPS<~}i8@!Y=p3OWTn!h0IBG|ZG$M@gvENcc^^(s=} zvx$NaL*mhg^pyPoSu>eg5N^>f#`Fq@IUDj1` zey~2MY>p$lT0P^Z0_#g4MUsx}yY@4#L+Awu8pHMP%oAQttBo-^x)vnh>FVdQ&MBb@ E0N&gXhyVZp diff --git a/nano/images/weapons/m46c.png b/nano/images/weapons/m46c.png deleted file mode 100644 index d404a6d88f67c3ba705b9c85b1da40739d250770..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 771 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7Ro>VD!!mi71Ki^|4CM&(%vz$xlkv ztH>-n*TA>HIW;5GqpB!1xXLdi zxhgx^GDXSWj?1RP3TQxXYDuC(MQ%=Bu~mhw64+cTAR8pCucQE0Qj%?}N5ROz&|KfZT;I@G*TB%qz|6|nQUMB-?6?$c zic-?7f?V97mH~OTN*N_31y=g{<>lpi<;HsXMd|v6mX?h@Cak(0IAIWrE2a5{C&qCAHV+g_S-IQ(Lik<@5VW9A+@J9R1ehrF(IU z>$fJhMGT3Pl``J(Ea~ZvDmk-vzuCN^)7zJA6SXO4yt?SyUa<1g`K(_v9=4b1Jxc8c z3xsZ8T>bx-|Hdn4QcnH5G>hAodt;-9!;Qoi?SO1K_c=n=+4HO~F(z^eY`fu<^W?@% zB~v!ALs!QMX5VbetNb@BeZn)af@`WxRrB9w-sF~2Ec3Eb@L@c(>yKmd7Gs;mNBum3 g9)*V&!-4-FIggkf$)4U|@d703>FVdQ&MBb@00ZnHYXATM diff --git a/nano/images/weapons/m4a3.png b/nano/images/weapons/m4a3.png deleted file mode 100644 index 9169c71c5176004a88891dd26a2aa8b9666760b4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 729 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7Ro>VD!!mi71Ki^|4CM&(%vz$xlkv ztH>-n*TA>HIW;5GqpB!1xXLdi zxhgx^GDXSWj?1RP3TQxXYDuC(MQ%=Bu~mhw64+cTAR8pCucQE0Qj%?}N5ROz&|KfZT;I@G*TB%qz|6|nQUMB-?6?$c zic-?7f?V97mH~OTN*N_31y=g{<>lpi<;HsXMd|v6mX?FMGaQZeW4t-!1n0}<8>nJPwxzp!fVDwwG5Bdy8)uPj3yW-uJu z^@cTe>DwuNevwbD{Vt~{mW48Lyxt^WZ6(;d;e-+E-6=pNIquW@wk^Bzt#lPH*o@Mf z+*Y@O`sM{oRi3Wm7Zp%z*zhhmU}f4N$x6X+XVw-@g*X1+o4mq*{4GT!o zD$Nzo^jpj4)p%(s_%I|o*9h)52J5~NCvZOm?3(&1_ly6{T?uk&=+*^c@;Be#=>y5Y bfz)rNxi8vx*ND6S2Z?#Q`njxgN@xNA3RMRe diff --git a/nano/images/weapons/m4a345.png b/nano/images/weapons/m4a345.png deleted file mode 100644 index 1ba00158467ed451b59ab89909d67a8a8d777db5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 729 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7Ro>VD!!mi71Ki^|4CM&(%vz$xlkv ztH>-n*TA>HIW;5GqpB!1xXLdi zxhgx^GDXSWj?1RP3TQxXYDuC(MQ%=Bu~mhw64+cTAR8pCucQE0Qj%?}N5ROz&|KfZT;I@G*TB%qz|6|nQUMB-?6?$c zic-?7f?V97mH~OTN*N_31y=g{<>lpi<;HsXMd|v6mX?FMGaQZeW4?ZB*N2NBi_TS_GBcKtU^QGB=bua?gO;VY7R`)r?UvnWqI zzIPALlaJs42NF9L_uI->+0C!tXMg_l_xG<;Bg^hqt33VecX`X}O8einvfm6EHmsj# zuARNSN4-=?AdMk0R(nOr>c!T%?zUNBOowqNJd z-d-6SzwiEPt94PSU~OlQUv$qA4`16|F5}LBis8_#?F**mrl0+)>t<0tslkAm!}_Vt zil-UBI=XfXfeksVwIVIsb~GB>cTUvyWbJ&_OARZ%zt zG)()&{xElautgVjJ!(B2<}kLrU8QjKVn0adjhDwSzIr_s%uM`0C0!Qc%HtQaSF8*N dX@Y?Qd;3#NVD!!mi71Ki^|4CM&(%vz$xlkv ztH>-n*TA>HIW;5GqpB!1xXLdi zxhgx^GDXSWj?1RP3TQxXYDuC(MQ%=Bu~mhw64+cTAR8pCucQE0Qj%?}N5ROz&|KfZT;I@G*TB%qz|6|nQUMB-?6?$c zic-?7f?V97mH~OTN*N_31y=g{<>lpi<;HsXMd|v6mX?Ov25kx>pP|;O4Qls&VT;%{{L*5E$@!DK&A=4oifwC2>xm%~(1|OL>?dqyC(JwFhg*wb&IK;Pg!CJAx=_j9a-4AAM z;Z#_2x-p`3{;O|ctAeL#zG!3-xc0_jjg?^RLxs~KEew}t`8sA_y*4Fk-##bl5XM9% zj_hq>A-S4YYp<=_lM=fWWYM)$t|)7xhcQ1D)`^M=s5NYOm+hEcZuzrL4a75G1X|+5 zkoZ*d#R=6`wfW^*Al^pfB%KhDbNphtAI;_B5O#=|KKWDiw{)=6!}1*0`fbW~=LQ?6 zw|%AE)b>)F2@F8Xzy_A?xBAuBcPHeNmR)BM$P+%?zaE@VD!!mi71Ki^|4CM&(%vz$xlkv ztH>-n*TA>HIW;5GqpB!1xXLdi zxhgx^GDXSWj?1RP3TQxXYDuC(MQ%=Bu~mhw64+cTAR8pCucQE0Qj%?}N5ROz&|KfZT;I@G*TB%qz|6|nQUMB-?6?$c zic-?7f?V97mH~OTN*N_31y=g{<>lpi<;HsXMd|v6mX?NGJRayKj^9^HGTc&GhP4qtW z`Fj;3IJiN?owTTFsEqFQeAr^tKU4p--gSKC}RecsGF zrT_XqhrF`4D%;{GE1=e};aj@n;le#=XDKhvKlpA{BuGT( zTl2BYcI7_3USKWj|NDOJIo0txZXw8IxQ7}3$nS4j)yo|;+wu`e(9_k=Wt~$(69AP9 B`MCf9 diff --git a/nano/images/weapons/m56.png b/nano/images/weapons/m56.png deleted file mode 100644 index baf9b9bd9c3c1e09b2c277ebf67857c3250732db..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 688 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7Ro>VD!!mi71Ki^|4CM&(%vz$xlkv ztH>-n*TA>HIW;5GqpB!1xXLdi zxhgx^GDXSWj?1RP3TQxXYDuC(MQ%=Bu~mhw64+cTAR8pCucQE0Qj%?}N5ROz&|KfZT;I@G*TB%qz|6|nQUMB-?6?$c zic-?7f?V97mH~OTN*N_31y=g{<>lpi<;HsXMd|v6mX?p1l;RlAE!@|dQp zUTFgkZ788Jb6V=ld(J0p&acn^AA7y@)R{_?x|Zjm+#hE$nEZZy?|`|I>Z28V-t2$> zymQKq6EkvtPGUUEvLJF7cUKAD)OU+6y>*d!YkWy_?$-Z*ZHyKGHO=0Z>%Fw*Tfk(~ zM;A=0^4+stPi^AKP-8fIk1r|wUZc#~*}A4TKMB2T(rVxO2BM`}+i_~ix*qvj{^C^e zDYE*^vp5|#U+Run8r>mrcjg}^$qPOVvs&YhoO>1Y&29RcQ!}(rHl#6K(5aP;4cuvE v_xkAD>nFehAx-aQ+$vWD>PPk?!}o9eFU{9$ggTe~DWM4fe`)uQ diff --git a/nano/images/weapons/m57a4.png b/nano/images/weapons/m57a4.png deleted file mode 100644 index 6c2cbcbdbe8bb5f4dcb1852e847e91cc3b72e810..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 714 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7Ro>VD!!mi71Ki^|4CM&(%vz$xlkv ztH>-n*TA>HIW;5GqpB!1xXLdi zxhgx^GDXSWj?1RP3TQxXYDuC(MQ%=Bu~mhw64+cTAR8pCucQE0Qj%?}N5ROz&|KfZT;I@G*TB%qz|6|nQUMB-?6?$c zic-?7f?V97mH~OTN*N_31y=g{<>lpi<;HsXMd|v6mX?}%WQZeW4ZO6Q30|u4@TV5Gkd=i*<&e`Hq|CbOK?Z{2i356!bUW-^H z!?Gor`q{xD4kSM0*?r4@R>{Zv*tYlak3W@rbxxP9S)O@o-{;D=6MlFzB*wevX2fro z`t9{?UFrSrCJH_biAObGOpUr~QT==Gg$4u0me93L-?XP)I(hW&mcGwDe^<>+GX<#% z4Gvi8wRcTQ)bYxvb(sz`7!I)rsDad53jTinJ^FaSBF01}4q+q-PK7tuIgjsJ7aJ4z z?ydpP?ZWFI<)-o6yMkW+@_GH-^tMeF&(izTGLZDhers^^dTr}n{#)Fi8EC_`zak~u zHJ46hYvEK_^IP+USNa{(wIGXLr*V1N@)Uj3@&+n{`JSO*L%!nLq|;WVD!!mi71Ki^|4CM&(%vz$xlkv ztH>-n*TA>HIW;5GqpB!1xXLdi zxhgx^GDXSWj?1RP3TQxXYDuC(MQ%=Bu~mhw64+cTAR8pCucQE0Qj%?}N5ROz&|KfZT;I@G*TB%qz|6|nQUMB-?6?$c zic-?7f?V97mH~OTN*N_31y=g{<>lpi<;HsXMd|v6mX?e=`XO{(4!tt@&~Y{%o4@6!ZV2DpFz zy77bwBRISn7-G-7-nH!g!?(JpKmEP^{Pwo9^|jw$|GT}gmElm_OX(TQl3P#Tniu-J zYu3hq$Lp%EH5f3q@ESH%SxB3vFIIMCKExtm_Ju<#(Pc_ik3KJlutUUEj#nQYzRY*K zUE?Jspw_VAaN(D!$yc@S)gIZZ^?yEC=(6sMQ#V#hYMR#9xAZP8ZClhr*i;ti5|md%pdQHBsby9~?`xX@5?$pM@S0z^XJr-8kUHx3vIVCg! E0E6Wbi~s-t diff --git a/nano/images/weapons/m79.png b/nano/images/weapons/m79.png deleted file mode 100644 index 365280f2424c5e9ba6949f858c2705209e17bacc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 782 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 IbxsLQ0CLO^tN;K2 diff --git a/nano/images/weapons/mac15.png b/nano/images/weapons/mac15.png deleted file mode 100644 index 179c8b7a61ad7fd62c774693638f8dff6aab60bd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 766 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7Ro>VD!!mi71Ki^|4CM&(%vz$xlkv ztH>-n*TA>HIW;5GqpB!1xXLdi zxhgx^GDXSWj?1RP3TQxXYDuC(MQ%=Bu~mhw64+cTAR8pCucQE0Qj%?}N5ROz&|KfZT;I@G*TB%qz|6|nQUMB-?6?$c zic-?7f?V97mH~OTN*N_31y=g{<>lpi<;HsXMd|v6mX?HJvcLo5QVD!!mi71Ki^|4CM&(%vz$xlkv ztH>-n*TA>HIW;5GqpB!1xXLdi zxhgx^GDXSWj?1RP3TQxXYDuC(MQ%=Bu~mhw64+cTAR8pCucQE0Qj%?}N5ROz&|KfZT;I@G*TB%qz|6|nQUMB-?6?$c zic-?7f?V97mH~OTN*N_31y=g{<>lpi<;HsXMd|v6mX?g45l+#sRpUi6}th)sW< zD!PC}8$#SUC?NQ;#;*JH3F+e>f3JW2*@i#;`lh2MzJh`uL!;TG0^S71Ivg`9n-;iv z&pt6<_ZNcYY71ttiB!AHvEEj_=BVG*XO|bV2?zKvckRt_bnh=N%eihgXSM7Ovm-wQ z5}8hAI&2K)OLEVN48MJ6Q{k`EEFza1lGk?S8vO)m4sN;xnSDGb8=SK?CuN6>Y9e+I{p*f&B&{IdUNx%I4WA2-K>ggssTT-G@yGywqEV+qLs diff --git a/nano/images/weapons/mar40.png b/nano/images/weapons/mar40.png deleted file mode 100644 index 043d6529ef3326764d7ee7025df4990682869c30..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 692 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7Ro>VD!!mi71Ki^|4CM&(%vz$xlkv ztH>-n*TA>HIW;5GqpB!1xXLdi zxhgx^GDXSWj?1RP3TQxXYDuC(MQ%=Bu~mhw64+cTAR8pCucQE0Qj%?}N5ROz&|KfZT;I@G*TB%qz|6|nQUMB-?6?$c zic-?7f?V97mH~OTN*N_31y=g{<>lpi<;HsXMd|v6mX?@-2ZkgEw<> zTyEG<{yX{WjQ+moYbKw+yKnK=kZ-wLt7kSC@N!hw?_ZMU+OuZIxi0CwyLV)R1*3%= zZI^eSI?+EbVxA4_*Euz}Ow|;8m=EPCzc|_PqH|@Wd7i)BwRbm9v$SM7+<5!=#i`81 zu#%8(t73{no|>dG9WqhK`LXoRD~nm7hciq~hZ$@wzSYX#<|i*X1T+@On+y&Y#TBn^^8EYMxdSBZ>FVdQ&MBb@ E0Lef9t^fc4 diff --git a/nano/images/weapons/mateba.png b/nano/images/weapons/mateba.png deleted file mode 100644 index 49ec3f897a2dbff3d2babece4dbcbe5a33a32450..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 789 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7Ro>VD!!mi71Ki^|4CM&(%vz$xlkv ztH>-n*TA>HIW;5GqpB!1xXLdi zxhgx^GDXSWj?1RP3TQxXYDuC(MQ%=Bu~mhw64+cTAR8pCucQE0Qj%?}N5ROz&|KfZT;I@G*TB%qz|6|nQUMB-?6?$c zic-?7f?V97mH~OTN*N_31y=g{<>lpi<;HsXMd|v6mX?gnPbQZeW4t%JEth61bsLQ8r2M4VoV9GYl1X|;0V@wn=r4)?5^J~p}4 zo7{T}32$JKSGdcsHP@ehdQ$fszvb^$rFnP7tv`EzyX*OU&GprG^JizBrbN5bTY0-4JQNpeDb<6aNwN*Xa4qmLy$`1316cSj* zkm${yWc%?=rg*jdoo^Nkrk;9VZzDJR`lJQ}R*u^yti9VhE;3&~^X1azUqRoOy_*OU z&fd0QrkG(>LS;&H#S@V);+!184I9!#^0(iQ%P)V4bh`iEmjY+xsr^GtcC!ToCK!PkoR0x_?1gTe~DWM4f9eW?- diff --git a/nano/images/weapons/mk221.png b/nano/images/weapons/mk221.png deleted file mode 100644 index a15773fb26dc2ecf95bffe039552cb15889f4b7a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 669 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7Ro>VD!!mi71Ki^|4CM&(%vz$xlkv ztH>-n*TA>HIW;5GqpB!1xXLdi zxhgx^GDXSWj?1RP3TQxXYDuC(MQ%=Bu~mhw64+cTAR8pCucQE0Qj%?}N5ROz&|KfZT;I@G*TB%qz|6|nQUMB-?6?$c zic-?7f?V97mH~OTN*N_31y=g{<>lpi<;HsXMd|v6mX?*?YcQZeW4&4azo1_G=XHrxt&v7e3Wp@;lUZOaJj6Mg$U?^#E66&n3o zY*=Xn4sIy%VpGm-vzp7LvGWg`{|&Hz$y{U2%JKW{&w`~_-~8V9#pdz;=lhcX2Sz=& zS?}#IgQ+Dp&vELH?NPz!OG>^*ZqA$=%ydXZVa=5$H(yy}e;rLBfn^MdXT?gkzTK1j zY2}QyYh(ZJ1B>bFu2}wdiJq5n{1L7F3t3t;9U`vpUU2Hy%@v)gSB`G@v}?zvd$%?_ zflSM>?0X!vCT+)$Gd4fx%xubYU_7+z-<0_WV{fH(gEZbaEfQiFJttcDV$SoNi46v< d$o_e7?;k_alA;7-+ky!oaZgu2mvv4FO#niR@p%9M diff --git a/nano/images/weapons/mou.png b/nano/images/weapons/mou.png deleted file mode 100644 index a471e16f6e0389f2461160ae2f18c2ce07b8d92b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 709 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7Ro>VD!!mi71Ki^|4CM&(%vz$xlkv ztH>-n*TA>HIW;5GqpB!1xXLdi zxhgx^GDXSWj?1RP3TQxXYDuC(MQ%=Bu~mhw64+cTAR8pCucQE0Qj%?}N5ROz&|KfZT;I@G*TB%qz|6|nQUMB-?6?$c zic-?7f?V97mH~OTN*N_31y=g{<>lpi<;HsXMd|v6mX?gnPbQZeW4&C|Kf4gzcs6c;sqIdCvFz$&$1LHm>mF>58}#D1PJ^>giU z(SFy(KTRE2z(Ecn-duBa@wq&u=yRgPzU$Yfr@mZw@AO2kdD$|@J34;sNb}AKY)JVV zDSj{O@aFTmH`hOZrBvcz#p+R(!E$$d#9NikrSIltZ%fmSDs?bo_4pRVGWRc2sF3@6 zCw7(KhLod%Ax6Dd+}u4=<_cOzUY?@4!jWsjn@pCg`($!uKbP)a8(%-~f6ua8wo}$@ zH}QShkOGudZ2DF+`DWJJ^Obd#&C%ai#jdw~re&otlS$>Za$on{TN%5GyfQV*-a%Bq z?7lJeeoa(w$7V2pP5+JWy-)Ae_fE7e0XxWmb?bP0l+XkKi7^IJ diff --git a/nano/images/weapons/mp5.png b/nano/images/weapons/mp5.png deleted file mode 100644 index e36fccdca47a1cc6d02dfcf165e81c95ef3ba492..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 700 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7Ro>VD!!mi71Ki^|4CM&(%vz$xlkv ztH>-n*TA>HIW;5GqpB!1xXLdi zxhgx^GDXSWj?1RP3TQxXYDuC(MQ%=Bu~mhw64+cTAR8pCucQE0Qj%?}N5ROz&|KfZT;I@G*TB%qz|6|nQUMB-?6?$c zic-?7f?V97mH~OTN*N_31y=g{<>lpi<;HsXMd|v6mX?NIu(hC2*t9Jg+oMkuf_vL5PR-`f{uD>RJ zYB5O5_WOkOow}`HN#D-THog6R z`LoU54l@{AO0PG)^WuIrg|TJsttPM4Y5Bz~E*^G{=jG%uZrJe5-d#S^&i&k8ug#Mh z4465x_cisc$n;(M*!%3N_Gg<_LH3os;@b77E5jFL{+b<4`*KB>cz_H(Dt9ExWd5wQ ztI?0adaX-YzY6@kcWoj|i=;!ub)d-?ANBteQ&BjB@GV0_bp^A<VD!!mi71Ki^|4CM&(%vz$xlkv ztH>-n*TA>HIW;5GqpB!1xXLdi zxhgx^GDXSWj?1RP3TQxXYDuC(MQ%=Bu~mhw64+cTAR8pCucQE0Qj%?}N5ROz&|KfZT;I@G*TB%qz|6|nQUMB-?6?$c zic-?7f?V97mH~OTN*N_31y=g{<>lpi<;HsXMd|v6mX?8#X-DPtpxFsQN2emShUn=p1(>N=tPs_pFDX zD?FJF@hIf{*uG%aCa$P|8&`#%>WIBo4>s&~sN>2N+pb*PJ+)K}tZ!p%z}e+jCxYEm zA{z3m#R{x$_O2$c@U_ZdyDoVD!!mi71Ki^|4CM&(%vz$xlkv ztH>-n*TA>HIW;5GqpB!1xXLdi zxhgx^GDXSWj?1RP3TQxXYDuC(MQ%=Bu~mhw64+cTAR8pCucQE0Qj%?}N5ROz&|KfZT;I@G*TB%qz|6|nQUMB-?6?$c zic-?7f?V97mH~OTN*N_31y=g{<>lpi<;HsXMd|v6mX?}FBt2amLn`LHy>08qE!ukx)`8Uu0uQp>;^PaaS|5@_(Rp8hF5(h5C9_71W;@fol z$LqqKfBX#3y-pJR`~P3?_0lgA*FSD=lweUPTfDC^KJRwr{k+NjGk43*?dB3tX4se% z6~LFLUA^+Pv-KSZUgfvJnc6g>c?!LQjbIV<`r@#ABw>{3b-e;(*qiez< zs^G?uB%bLwZCaAxt+KvtYbI~&3t7Qn$OLpenAn)JS>b+@YKfc3<_{b1G)sXs+`K2a zdCROBth0V^*?ju@o`6+H7j%~&VQXMGGU;4X(kYvgw4#z#Pqot8k{!W5GgMDn`1W<8 z-TNHV{MDg`@9QH27?W5O)N&mcR-10W{PN+i&yN=up9zY0|GJO~=<78zmM``-o_LlwL`OTb@J7P9~1U+5-T-G@yGywo*&0_Qb diff --git a/nano/images/weapons/ny762.png b/nano/images/weapons/ny762.png deleted file mode 100644 index bdd5fe500e1abf1a57fc943c1edf2a6821692a29..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 703 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7Ro>VD!!mi71Ki^|4CM&(%vz$xlkv ztH>-n*TA>HIW;5GqpB!1xXLdi zxhgx^GDXSWj?1RP3TQxXYDuC(MQ%=Bu~mhw64+cTAR8pCucQE0Qj%?}N5ROz&|KfZT;I@G*TB%qz|6|nQUMB-?6?$c zic-?7f?V97mH~OTN*N_31y=g{<>lpi<;HsXMd|v6mX?`ITYS}e;Y(nb&ez-rmjpA}6l=w#Eyr zdzo@Z{@LvNmd5+sr1Yb~hWPa_F#dXf)906eH%(i{n8?J@E$4o}vSiC55Zl_MY2QoN zmF6JhffllWUGPuvH^eQ=j$eGU9HFVdQ&MBb@0Em?L AKL7v# diff --git a/nano/images/weapons/painless.png b/nano/images/weapons/painless.png deleted file mode 100644 index f493c662eb6e0d4a7c4224a86e5c989f42365c4d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 730 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7Ro>VD!!mi71Ki^|4CM&(%vz$xlkv ztH>-n*TA>HIW;5GqpB!1xXLdi zxhgx^GDXSWj?1RP3TQxXYDuC(MQ%=Bu~mhw64+cTAR8pCucQE0Qj%?}N5ROz&|KfZT;I@G*TB%qz|6|nQUMB-?6?$c zic-?7f?V97mH~OTN*N_31y=g{<>lpi<;HsXMd|v6mX?}%WQZeW4Eyuh=1_G=XJdYY~dZHjRx4A%k*IF0hq(>iOf87&u%{y}4 z=eSuYIJiMXiD_tP?E35PxaXgLUVZxW_S?Cy{s}Sfj?oJZ{W`Ulmqnng>bQJlmj2q@ zSHdeB3>aJ1Zd(win{?Xh{{~s#P%Q;NhQ#Hoa-Z%`o%C|+%&ger)1ST1zp4Cx&9wga zyikW342R^FEm%6qa?w?p#PcSlM^wJ$_=*asHEcMW?s)#+?De(#+}9_+wVix#(lt|G zM`j_18_wLfg2UW>+}F<52^R2W5!hCxX@5)bqx#)7XFtEOsA6H_h`!sgxA@l2mmR(L zRy+^aQt)9&%>NmCL2j+N@8WHCW213DUp> q6uVD!!mi71Ki^|4CM&(%vz$xlkv ztH>-n*TA>HIW;5GqpB!1xXLdi zxhgx^GDXSWj?1RP3TQxXYDuC(MQ%=Bu~mhw64+cTAR8pCucQE0Qj%?}N5ROz&|KfZT;I@G*TB%qz|6|nQUMB-?6?$c zic-?7f?V97mH~OTN*N_31y=g{<>lpi<;HsXMd|v6mX?5A}AXD&AT)W#f~*s*cWc&iL=Y zlLroLFcEWf?~`Szk#=$OpZ_d59Mdw;iH zkDm9?XKQjK^C1?2Fx#eoXJ4or@^T0}%y3VD!!mi71Ki^|4CM&(%vz$xlkv ztH>-n*TA>HIW;5GqpB!1xXLdi zxhgx^GDXSWj?1RP3TQxXYDuC(MQ%=Bu~mhw64+cTAR8pCucQE0Qj%?}N5ROz&|KfZT;I@G*TB%qz|6|nQUMB-?6?$c zic-?7f?V97mH~OTN*N_31y=g{<>lpi<;HsXMd|v6mX?Z$ZM?;{xwZH0r$xN{ zy!LwaxeHlWZf31$Fkoyk-M%2-xLQd2ZvBV{f0E z$i*S-aO2DLPn+Ktmx6U(UaqkAnXRaRTEm7_VoQ3@EM_{yB5-YM$JGm)?gfJko4u(c i)B0-&&;bb0Q2m2hcz5DCF^BI{L86|nelF{r5}E))o$V0- diff --git a/nano/images/weapons/pk9u.png b/nano/images/weapons/pk9u.png deleted file mode 100644 index 519f574f6e4ceecebe9ce286220ca055cb0c35a4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 673 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7Ro>VD!!mi71Ki^|4CM&(%vz$xlkv ztH>-n*TA>HIW;5GqpB!1xXLdi zxhgx^GDXSWj?1RP3TQxXYDuC(MQ%=Bu~mhw64+cTAR8pCucQE0Qj%?}N5ROz&|KfZT;I@G*TB%qz|6|nQUMB-?6?$c zic-?7f?V97mH~OTN*N_31y=g{<>lpi<;HsXMd|v6mX?67NP&IJp=fS?83{1ONvB>i_@% diff --git a/nano/images/weapons/ppsh17b.png b/nano/images/weapons/ppsh17b.png deleted file mode 100644 index 4ea9e0214f94d8cb8d7960c45c869df6f84cf469..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 683 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7Ro>VD!!mi71Ki^|4CM&(%vz$xlkv ztH>-n*TA>HIW;5GqpB!1xXLdi zxhgx^GDXSWj?1RP3TQxXYDuC(MQ%=Bu~mhw64+cTAR8pCucQE0Qj%?}N5ROz&|KfZT;I@G*TB%qz|6|nQUMB-?6?$c zic-?7f?V97mH~OTN*N_31y=g{<>lpi<;HsXMd|v6mX?^Pxuubz$n(c&*fd2c`U6eX`nJIZ#4C zMT4!<1{~fH;@-h6I^I@o&6V@^*H`ab_qwE9XT3#teg6O0eZSfc$Ezs3xh578G;h8e zYm2ADjm_WL-`w^)t#Y}@?_~A)xZvM=%;ZD`)EE=*E?;n~+w-)g>hpes&Yc~+E=-4Z z`8aMBc6$HK=u@31MDy{G3zy2g^t{548Zd!%wQH^@zj^Ilid`cY$K-|$nYXujUpty! zwPta4uZ`f!1_Mrx>|3m{TeI>CudWZ#)Kc(aI@A?);l%4Z|NX!wE@aI#{T|GiC?sHZ nN8ZG1Pw?sxAP32J2UzPEHbm5AoJ`j`4iffs^>bP0l+XkK-uCQ| diff --git a/nano/images/weapons/single.png b/nano/images/weapons/single.png deleted file mode 100644 index 2f784868ca326d3ac13acc2a9be3664bfb92e83f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 224 zcmeAS@N?(olHy`uVBq!ia0vp^2|%pC!3HGX9;gigQjEnx?oJHr&dIz4a#+$GeH|GX zHuiJ>Nn{1`ISV`@iy0XB4ude`@%$AjK*3T^7srqc=eIXE@*YtTU~v3XdZ9k`%R_&T zITmq>=T#;wy6UN3&F~@ex?TU~YrDRep0Vt&J)S?`g{6a2Kv+S|;mwM-4|o3DW0|XL z#AwKv#B>BE;nOgK0W9!GuzMzmJ%4esnt~bwgUYcV%(^E9bkClf2J!=gr>mdKI;Vst E08af$)c^nh diff --git a/nano/images/weapons/skorpion.png b/nano/images/weapons/skorpion.png deleted file mode 100644 index 342fc75e3e6ee573821ae934f694f939ed472cc6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 732 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7Ro>VD!!mi71Ki^|4CM&(%vz$xlkv ztH>-n*TA>HIW;5GqpB!1xXLdi zxhgx^GDXSWj?1RP3TQxXYDuC(MQ%=Bu~mhw64+cTAR8pCucQE0Qj%?}N5ROz&|KfZT;I@G*TB%qz|6|nQUMB-?6?$c zic-?7f?V97mH~OTN*N_31y=g{<>lpi<;HsXMd|v6mX?YY-BLGGJL>w@FVbf}$Nc)U{?hK3ehi8Cb=mW?ms_nW zH~b~#>o9}i&?(U^=9BzmS#x_=C<_ayHEdWGdSTw~^&Nd7XXU3x?LR{ zt*YMZZMCr{A+ZKjHes?=^-FGYvih8v=eCpR#5F-^u zOI%7#i=I`w%j`bR(!!~*W@S^9nda5Aw>qYt5uMRsz}OO7C0g?2Z~DFMk_SNwa(=`M zzYk*7R8#O_NMzy=23g4hbRAG->2C2aOQMgY8!-YUUVn4x`ELkfL6wMAYuF!>HE#xK cgn`%8lA4;?d_Gan@6>FVdQ&MBb@07@nVi2wiq diff --git a/nano/images/weapons/skorpion_u.png b/nano/images/weapons/skorpion_u.png deleted file mode 100644 index 72128e1f46bf1b69e6d98758d7d9a7ddff19112d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 740 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7Ro>VD!!mi71Ki^|4CM&(%vz$xlkv ztH>-n*TA>HIW;5GqpB!1xXLdi zxhgx^GDXSWj?1RP3TQxXYDuC(MQ%=Bu~mhw64+cTAR8pCucQE0Qj%?}N5ROz&|KfZT;I@G*TB%qz|6|nQUMB-?6?$c zic-?7f?V97mH~OTN*N_31y=g{<>lpi<;HsXMd|v6mX?RysEnn#ufbGZNVSZ7zEs&@JlZ`J#bh@8)+ ziz7cgW&{T~14Ds({8iS|oA%h+o&TKwe)>!`c-TFJ8|S3d8&y4Ch= zIBN^1!kZ1fH)du>yKU*dczG@thpTX=r_5WKum$icgZhX*OvD7MX z%Q^ecJI``xDfloX9{xY8VrtlgMNEfSfTjYS#R(E+0x3>B-}LTF#}6N{y7s+-kL$tK rK-C?MJJnxs^y~tlxzK=NV7PN$zHVi&=Fd~})InmNu6{1-oD!M<+V2i4 diff --git a/nano/images/weapons/smartpistol.png b/nano/images/weapons/smartpistol.png deleted file mode 100644 index e688ac9260a8a1746ac705bc2af5eeb8e8789090..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 738 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7Ro>VD!!mi71Ki^|4CM&(%vz$xlkv ztH>-n*TA>HIW;5GqpB!1xXLdi zxhgx^GDXSWj?1RP3TQxXYDuC(MQ%=Bu~mhw64+cTAR8pCucQE0Qj%?}N5ROz&|KfZT;I@G*TB%qz|6|nQUMB-?6?$c zic-?7f?V97mH~OTN*N_31y=g{<>lpi<;HsXMd|v6mX?i@f9^kV-%oE9|abZ!6f$FIKL z4?mwGEF|#FFzMp8Z$Vkgr%R_LPdmRoD|PL^H@kQ7u4*vgt@@lPYwtO(gzDS6@4RO3%1r(E z_QPMlzpL3N>FoLXX*LVkgv0ttrc3WuJ^W=ecirRi%OduIUjrBug#^T^Wn+!En=Dgn zOJB%zNJU}IYS!L7>+e&t;vu%oZ;E>Utw(VD!!mi71Ki^|4CM&(%vz$xlkv ztH>-n*TA>HIW;5GqpB!1xXLdi zxhgx^GDXSWj?1RP3TQxXYDuC(MQ%=Bu~mhw64+cTAR8pCucQE0Qj%?}N5ROz&|KfZT;I@G*TB%qz|6|nQUMB-?6?$c zic-?7f?V97mH~OTN*N_31y=g{<>lpi<;HsXMd|v6mX?*?YcQZeW4t%JGE4g#zJ>Ry^6PA^5A^iPVq#$|_{{^k7X-bJ?RhuO!N ze|!XoHjr5MBV+Hz+}khXx9ObzzWMt1+Wd8o^ZJfg*sLp!ouBvLvfgu#Qp1Mz6X$B{ zF5T+;wD=#hsDN6-hIe9Deof8K4K_4l4ZSw`(`y@>*x6hh!VVGT+*!UBQ$M|*+n2VY zCjY&ad(?c8_>Bv#5lchXo6Y>PF8$lDP=^@|huWe7yz_6)GZno1ao!}bnklz0iiXby zYMdhvw&e1%1=@F>@0{f|JCreziDUPj)*IH}_cDRyG<8=zTGRf!JjdEyOTmXBG5DXj z$)}m_<@x%eVE$6ElCax5f4g4h0dtvvZUEXjD|o`m=e8jrCJWFT28=Dfl}c%!RtAI2 s2diKaxc1j&&GgO}ra)_8f%G8%7o$gXbEmv;$rq5Ar>mdKI;Vst0R4Xp761SM diff --git a/nano/images/weapons/sshotgun.png b/nano/images/weapons/sshotgun.png deleted file mode 100644 index f052433653b81401484e382ab4cc25077d87449a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 648 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7Ro>VD!!mi71Ki^|4CM&(%vz$xlkv ztH>-n*TA>HIW;5GqpB!1xXLdi zxhgx^GDXSWj?1RP3TQxXYDuC(MQ%=Bu~mhw64+cTAR8pCucQE0Qj%?}N5ROz&|KfZT;I@G*TB%qz|6|nQUMB-?6?$c zic-?7f?V97mH~OTN*N_31y=g{<>lpi<;HsXMd|v6mX?a8gAiB0V3+0%Tf!GN(vw0FTYd0FM{3#`Fh-o1Tk z{>+D11kAoz&9Vg<1GJDu0O*=!^+z(61Fb`HJwwJ9)<|#fHJ1M07lVX7UHx3vIVCg! E0CWA?2mk;8 diff --git a/nano/images/weapons/supremo.png b/nano/images/weapons/supremo.png deleted file mode 100644 index 83f6a6fb4b3ffe7d151949780ace2eeee7089e39..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 658 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7Ro>VD!!mi71Ki^|4CM&(%vz$xlkv ztH>-n*TA>HIW;5GqpB!1xXLdi zxhgx^GDXSWj?1RP3TQxXYDuC(MQ%=Bu~mhw64+cTAR8pCucQE0Qj%?}N5ROz&|KfZT;I@G*TB%qz|6|nQUMB-?6?$c zic-?7f?V97mH~OTN*N_31y=g{<>lpi<;HsXMd|v6mX?*mz} diff --git a/nano/images/weapons/svd003.png b/nano/images/weapons/svd003.png deleted file mode 100644 index 6395b8d3b686471babf9723487d73ced0196d94e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 654 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7Ro>VD!!mi71Ki^|4CM&(%vz$xlkv ztH>-n*TA>HIW;5GqpB!1xXLdi zxhgx^GDXSWj?1RP3TQxXYDuC(MQ%=Bu~mhw64+cTAR8pCucQE0Qj%?}N5ROz&|KfZT;I@G*TB%qz|6|nQUMB-?6?$c zic-?7f?V97mH~OTN*N_31y=g{<>lpi<;HsXMd|v6mX?)hY~hY$^Fmv^muX)j5Sx{QX`jCQ zRs|cmN_=D7x)mL>xONr$dOFNtY!Qt=GH=m!+t4nS7D*)MGccV0#yxRy-p5~uUiE>* NJzf1=);T3K0RRvj>DmAQ diff --git a/nano/images/weapons/sw357.png b/nano/images/weapons/sw357.png deleted file mode 100644 index a89ea9cb2f2d402d6f4df06837d16244462882e7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 726 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7Ro>VD!!mi71Ki^|4CM&(%vz$xlkv ztH>-n*TA>HIW;5GqpB!1xXLdi zxhgx^GDXSWj?1RP3TQxXYDuC(MQ%=Bu~mhw64+cTAR8pCucQE0Qj%?}N5ROz&|KfZT;I@G*TB%qz|6|nQUMB-?6?$c zic-?7f?V97mH~OTN*N_31y=g{<>lpi<;HsXMd|v6mX?y~-t-+Z4ob8-N!xxi(W zwRW-pjzVt(#zZEL>eWqA<=iXnU!1>n@(WmG_BQUUtH0(vmwvUh4Xi^`G-OrZJGOvVD!!mi71Ki^|4CM&(%vz$xlkv ztH>-n*TA>HIW;5GqpB!1xXLdi zxhgx^GDXSWj?1RP3TQxXYDuC(MQ%=Bu~mhw64+cTAR8pCucQE0Qj%?}N5ROz&|KfZT;I@G*TB%qz|6|nQUMB-?6?$c zic-?7f?V97mH~OTN*N_31y=g{<>lpi<;HsXMd|v6mX?EaktG3V{=gT2iLA}kl)WSxHC@!vFnV{c0SME$UwoEa>8%e$0X6c*cW za;&rghc}RD*!?rpw&3=*>(5JL=fCf}|NU?2yJ?T#r$kPBcK_@5Gu#ht8C(AL&Rei% zR#2q%R;#R^`^wHu%(gy!ah54#A`^#oh~wU?hTf-tW``OS%}u|zn3F@;;l{$=h_fe7 zEjP&)osy*d&6P#KY>(jUT0N7b6w#74$?vI5hk!ycj!WF{^1~=_n7WSRC^$A!567zKRb6Mw<&;$U!wg7(s diff --git a/nano/images/weapons/syringegun.png b/nano/images/weapons/syringegun.png deleted file mode 100644 index bf18bf425d7a5230d0e14a2238e1aa4ec3685e80..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 725 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7Ro>VD!!mi71Ki^|4CM&(%vz$xlkv ztH>-n*TA>HIW;5GqpB!1xXLdi zxhgx^GDXSWj?1RP3TQxXYDuC(MQ%=Bu~mhw64+cTAR8pCucQE0Qj%?}N5ROz&|KfZT;I@G*TB%qz|6|nQUMB-?6?$c zic-?7f?V97mH~OTN*N_31y=g{<>lpi<;HsXMd|v6mX?gnPbQZeW4Eyt`D2LaX#o->knd{L0Q+q~n8+)2G19SIlT)=d3AjoHYz z>;K9vpQ{+bAr2x+K8MyO%zIvMFMs^w@~;NvTXjy~zh5|O*`>|*_wqaUGPdlEmb-WD zoLO7?jo<68Jg-i#7R`=jI>e)}CdScy(X66Yt5uU44465zk7vYQzZ4eG`%3-s{nOua z4jbHPdUu53(5dJP6QeS2_Vr!y&U$RM_?L>p8HPi%-ZiZ%Ejco=DsyF1oOIOs&mIml z7+Xw3FNCeHUf3MIPj&CV&dsd06Bt`cS1*XWeN=SaR(nsdrO~WQ@9fOFy@$RcCh$*&u!L-+}wZpxpvb0D#+|bm2dOqxK&AM;F$8VD!!mi71Ki^|4CM&(%vz$xlkv ztH>-n*TA>HIW;5GqpB!1xXLdi zxhgx^GDXSWj?1RP3TQxXYDuC(MQ%=Bu~mhw64+cTAR8pCucQE0Qj%?}N5ROz&|KfZT;I@G*TB%qz|6|nQUMB-?6?$c zic-?7f?V97mH~OTN*N_31y=g{<>lpi<;HsXMd|v6mX?R_TmG+$NS|MHjMY{j*b$3OnN&wKd8m(qLLI&IH29d5X<5Wx$NxJyqjp{Y^L=UZKE3J3zwf%cO=n>T zA4hP*hO~REYde>%{rI(ZuU*ga^XoqAz0eU+$eFI6wAIYl`}h=}FxB9&lTy=OG#IdQ zbo)APHOq^BUut5d;KO(*NpMT~n=MZ4EkL(xE?b~{8RWoi-Yi>x6xz4~MG^jH_#jos X$onWOBbeu56-e0A)z4*}Q$iB}i>UgD diff --git a/nano/images/weapons/type71.png b/nano/images/weapons/type71.png deleted file mode 100644 index 700ff164d60ce19a40cc0e36d735d56a3f9f92e7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 794 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 diff --git a/nano/images/weapons/xm42b.png b/nano/images/weapons/xm42b.png deleted file mode 100644 index 645c552314f96b0d2aa612136b19f446dd374e25..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 835 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7Ro>VD!!mi71Ki^|4CM&(%vz$xlkv ztH>-n*TA>HIW;5GqpB!1xXLdi zxhgx^GDXSWj?1RP3TQxXYDuC(MQ%=Bu~mhw64+cTAR8pCucQE0Qj%?}N5ROz&|KfZT;I@G*TB%qz|6|nQUMB-?6?$c zic-?7f?V97mH~OTN*N_31y=g{<>lpi<;HsXMd|v6mX?AXQ5ywIke~ zwx@pXKV^_H>)6A2o}P!nArB)ST6(&NQz)ex!qQ!7dq|w z-FyN-t?h0BT3JDbQ$Fu2|99^KW0Hu2PS=8K?2E1iKImO`t*A~PtnFCt?U?DUdv{Nn zbhrDd?T)8^rhWhYH+^1zWu4VM>u0;xRmV#&WIm$N5K+#)QKoE9?*A9Nua%lFlatK; z-1l)2Nan^u!6$cTMwGEn+H5SDxBai-=Rel<9OuQS7^;bu%N+4*VCqP94S02b|Fz$O z#S=3B?g`+ZzVao=FVlJ!MD_DcJ2UxLPL_L0tZ-o3^EVGGRjeF(m^xgiFAmOfbw62= zAG2jg&0Qw2WA$|Tthc^f6S?);&BG5*gKeMjrY}N^%WK}OcMlVux`M+*P4G&R`sL4w it5`sqV4)1A7i`j>-2KEb(M;zzi0|p@=d#Wzp$Pyc!Zs}c diff --git a/tgui/packages/tgui/interfaces/WeaponStats.jsx b/tgui/packages/tgui/interfaces/WeaponStats.jsx index 4978e93ec0..4def237f6b 100644 --- a/tgui/packages/tgui/interfaces/WeaponStats.jsx +++ b/tgui/packages/tgui/interfaces/WeaponStats.jsx @@ -1,4 +1,5 @@ import { map } from 'common/collections'; +import { classes } from 'common/react'; import { useBackend } from '../backend'; import { Box, Divider, Flex, ProgressBar, Section, Table } from '../components'; @@ -68,7 +69,7 @@ const GeneralInfo = (props) => { - + @@ -78,25 +79,33 @@ const GeneralInfo = (props) => { - {!auto_only ? ( - - ) : ( - - )} + - {!auto_only && burst_amount > 1 ? ( - - ) : ( - - )} + 1 ? 'burst' : 'disabled_burst' + }`, + ])} + /> - {automatic ? ( - - ) : ( - - )} + @@ -272,13 +281,27 @@ const Accuracy = (props) => { const Range = (props) => { const { data } = useBackend(); - const { max_range, range_max, falloff, falloff_max } = data; + const { + max_range, + range_max, + falloff, + falloff_max, + effective_range, + effective_range_max, + } = data; return ( <> Max range: {max_range} / {range_max} + + Effective range: {effective_range} + + Falloff: {falloff} / {falloff_max} @@ -289,16 +312,13 @@ const Range = (props) => { const ArmourPen = (props) => { const { data } = useBackend(); - const { penetration, penetration_max, armor_punch, punch_max } = data; + const { penetration, penetration_max } = data; return ( <> Armour penetration: {penetration} / {penetration_max} - - Armour punch: {armor_punch} / {punch_max} - ); }; @@ -308,9 +328,7 @@ const DamageTable = (props) => { const { damage_armor_profile_marine, damage_armor_profile_xeno, - damage_armor_profile_armorbreak, damage_armor_profile_headers, - glob_armourbreak, } = data; return (
@@ -337,14 +355,6 @@ const DamageTable = (props) => { {entry} ))} - {!glob_armourbreak ? ( - - Armor break - {map(damage_armor_profile_armorbreak, (entry, i) => ( - {entry} - ))} - - ) : null}
); From b0a26b83b0769d847317d6273f2f606be9c5c338 Mon Sep 17 00:00:00 2001 From: cm13-github <128137806+cm13-github@users.noreply.github.com> Date: Sun, 18 Aug 2024 20:34:12 +0100 Subject: [PATCH 3/5] Automatic changelog for PR #386 [ci skip] --- html/changelogs/AutoChangeLog-pr-386.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-386.yml diff --git a/html/changelogs/AutoChangeLog-pr-386.yml b/html/changelogs/AutoChangeLog-pr-386.yml new file mode 100644 index 0000000000..f1e71e70fd --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-386.yml @@ -0,0 +1,4 @@ +author: "Doubleumc" +delete-after: True +changes: + - bugfix: "fixed WeaponStats TGUI" \ No newline at end of file From 3b631aedc58dfe2737f3ae27d5d5543260e81fbb Mon Sep 17 00:00:00 2001 From: cm13-github <128137806+cm13-github@users.noreply.github.com> Date: Sun, 18 Aug 2024 22:18:42 +0100 Subject: [PATCH 4/5] Automatic TGS DMAPI Update (#334) Co-authored-by: tgstation-server --- code/__DEFINES/tgs.dm | 100 ++++++++++++++------ code/modules/tgs/README.md | 2 +- code/modules/tgs/core/README.md | 2 +- code/modules/tgs/core/byond_world_export.dm | 22 +++++ code/modules/tgs/core/core.dm | 7 +- code/modules/tgs/core/datum.dm | 2 +- code/modules/tgs/includes.dm | 1 + code/modules/tgs/v5/api.dm | 7 +- code/modules/tgs/v5/bridge.dm | 21 ++-- 9 files changed, 119 insertions(+), 45 deletions(-) create mode 100644 code/modules/tgs/core/byond_world_export.dm diff --git a/code/__DEFINES/tgs.dm b/code/__DEFINES/tgs.dm index e2c89df90e..4766b3dfe6 100644 --- a/code/__DEFINES/tgs.dm +++ b/code/__DEFINES/tgs.dm @@ -1,18 +1,19 @@ // tgstation-server DMAPI +// The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in IETF RFC 2119. -#define TGS_DMAPI_VERSION "7.1.2" +#define TGS_DMAPI_VERSION "7.2.1" // All functions and datums outside this document are subject to change with any version and should not be relied on. // CONFIGURATION -/// Create this define if you want to do TGS configuration outside of this file. +/// Consumers SHOULD create this define if you want to do TGS configuration outside of this file. #ifndef TGS_EXTERNAL_CONFIGURATION -// Comment this out once you've filled in the below. +// Consumers MUST comment this out once you've filled in the below and are not using [TGS_EXTERNAL_CONFIGURATION]. #error TGS API unconfigured -// Uncomment this if you wish to allow the game to interact with TGS 3.. +// Consumers MUST uncomment this if you wish to allow the game to interact with TGS version 3. // This will raise the minimum required security level of your game to TGS_SECURITY_TRUSTED due to it utilizing call()(). //#define TGS_V3_API @@ -52,7 +53,7 @@ #ifndef TGS_FILE2TEXT_NATIVE #ifdef file2text -#error Your codebase is re-defining the BYOND proc file2text. The DMAPI requires the native version to read the result of world.Export(). You can fix this by adding "#define TGS_FILE2TEXT_NATIVE file2text" before your override of file2text to allow the DMAPI to use the native version. This will only be used for world.Export(), not regular file accesses +#error Your codebase is re-defining the BYOND proc file2text. The DMAPI requires the native version to read the result of world.Export(). You SHOULD fix this by adding "#define TGS_FILE2TEXT_NATIVE file2text" before your override of file2text to allow the DMAPI to use the native version. This will only be used for world.Export(), not regular file accesses #endif #define TGS_FILE2TEXT_NATIVE file2text #endif @@ -152,16 +153,17 @@ //REQUIRED HOOKS /** - * Call this somewhere in [/world/proc/New] that is always run. This function may sleep! + * Consumers MUST call this somewhere in [/world/proc/New] that is always run. This function may sleep! * * * event_handler - Optional user defined [/datum/tgs_event_handler]. * * minimum_required_security_level: The minimum required security level to run the game in which the DMAPI is integrated. Can be one of [TGS_SECURITY_ULTRASAFE], [TGS_SECURITY_SAFE], or [TGS_SECURITY_TRUSTED]. + * * http_handler - Optional user defined [/datum/tgs_http_handler]. */ -/world/proc/TgsNew(datum/tgs_event_handler/event_handler, minimum_required_security_level = TGS_SECURITY_ULTRASAFE) +/world/proc/TgsNew(datum/tgs_event_handler/event_handler, minimum_required_security_level = TGS_SECURITY_ULTRASAFE, datum/tgs_http_handler/http_handler) return /** - * Call this when your initializations are complete and your game is ready to play before any player interactions happen. + * Consumers MUST call this when world initializations are complete and the game is ready to play before any player interactions happen. * * This may use [/world/var/sleep_offline] to make this happen so ensure no changes are made to it while this call is running. * Afterwards, consider explicitly setting it to what you want to avoid this BYOND bug: http://www.byond.com/forum/post/2575184 @@ -170,12 +172,10 @@ /world/proc/TgsInitializationComplete() return -/// Put this at the start of [/world/proc/Topic]. +/// Consumers MUST run this macro at the start of [/world/proc/Topic]. #define TGS_TOPIC var/tgs_topic_return = TgsTopic(args[1]); if(tgs_topic_return) return tgs_topic_return -/** - * Call this as late as possible in [world/proc/Reboot] (BEFORE ..()). - */ +/// Consumers MUST call this as late as possible in [world/proc/Reboot] (BEFORE ..()). /world/proc/TgsReboot() return @@ -269,7 +269,7 @@ /// The [/datum/tgs_chat_channel] the user was from. var/datum/tgs_chat_channel/channel -/// User definable handler for TGS events. +/// User definable handler for TGS events This abstract version SHOULD be overridden to be used. /datum/tgs_event_handler /// If the handler receieves [TGS_EVENT_HEALTH_CHECK] events. var/receive_health_checks = FALSE @@ -283,7 +283,41 @@ set waitfor = FALSE return -/// User definable chat command. +/// User definable handler for HTTP calls. This abstract version MUST be overridden to be used. +/datum/tgs_http_handler + +/** + * User definable callback for executing HTTP GET requests. + * MUST perform BYOND sleeps while the request is in flight. + * MUST return a [/datum/tgs_http_result]. + * SHOULD log its own errors + * + * url - The full URL to execute the GET request for including query parameters. + */ +/datum/tgs_http_handler/proc/PerformGet(url) + CRASH("[type]/PerformGet not implemented!") + +/// Result of a [/datum/tgs_http_handler] call. MUST NOT be overridden. +/datum/tgs_http_result + /// HTTP response as text + var/response_text + /// Boolean request success flag. Set for any 2XX response code. + var/success + +/** + * Create a [/datum/tgs_http_result]. + * + * * response_text - HTTP response as text. Must be provided in New(). + * * success - Boolean request success flag. Set for any 2XX response code. Must be provided in New(). + */ +/datum/tgs_http_result/New(response_text, success) + if(response_text && !istext(response_text)) + CRASH("response_text was not text!") + + src.response_text = response_text + src.success = success + +/// User definable chat command. This abstract version MUST be overridden to be used. /datum/tgs_chat_command /// The string to trigger this command on a chat bot. e.g `@bot name ...` or `!tgs name ...`. var/name = "" @@ -296,21 +330,27 @@ /** * Process command activation. Should return a [/datum/tgs_message_content] to respond to the issuer with. + * MUST be implemented * - * sender - The [/datum/tgs_chat_user] who issued the command. - * params - The trimmed string following the command `/datum/tgs_chat_command/var/name]. + * * sender - The [/datum/tgs_chat_user] who issued the command. + * * params - The trimmed string following the command `/datum/tgs_chat_command/var/name]. */ /datum/tgs_chat_command/proc/Run(datum/tgs_chat_user/sender, params) CRASH("[type] has no implementation for Run()") -/// User definable chat message. +/// User definable chat message. MUST NOT be overridden. /datum/tgs_message_content - /// The tring content of the message. Must be provided in New(). + /// The string content of the message. Must be provided in New(). var/text /// The [/datum/tgs_chat_embed] to embed in the message. Not supported on all chat providers. var/datum/tgs_chat_embed/structure/embed +/** + * Create a [/datum/tgs_message_content]. + * + * * text - The string content of the message. + */ /datum/tgs_message_content/New(text) ..() if(!istext(text)) @@ -319,7 +359,7 @@ src.text = text -/// User definable chat embed. Currently mirrors Discord chat embeds. See https://discord.com/developers/docs/resources/channel#embed-object-embed-structure for details. +/// User definable chat embed. Currently mirrors Discord chat embeds. See https://discord.com/developers/docs/resources/message#embed-object for details. /datum/tgs_chat_embed/structure var/title var/description @@ -331,13 +371,13 @@ /// Colour must be #AARRGGBB or #RRGGBB hex string. var/colour - /// See https://discord.com/developers/docs/resources/channel#embed-object-embed-image-structure for details. + /// See https://discord.com/developers/docs/resources/message#embed-object-embed-image-structure for details. var/datum/tgs_chat_embed/media/image - /// See https://discord.com/developers/docs/resources/channel#embed-object-embed-thumbnail-structure for details. + /// See https://discord.com/developers/docs/resources/message#embed-object-embed-thumbnail-structure for details. var/datum/tgs_chat_embed/media/thumbnail - /// See https://discord.com/developers/docs/resources/channel#embed-object-embed-image-structure for details. + /// See https://discord.com/developers/docs/resources/message#embed-object-embed-video-structure for details. var/datum/tgs_chat_embed/media/video var/datum/tgs_chat_embed/footer/footer @@ -346,7 +386,7 @@ var/list/datum/tgs_chat_embed/field/fields -/// Common datum for similar discord embed medias. +/// Common datum for similar Discord embed medias. /datum/tgs_chat_embed/media /// Must be set in New(). var/url @@ -354,6 +394,7 @@ var/height var/proxy_url +/// Create a [/datum/tgs_chat_embed]. /datum/tgs_chat_embed/media/New(url) ..() if(!istext(url)) @@ -361,13 +402,14 @@ src.url = url -/// See https://discord.com/developers/docs/resources/channel#embed-object-embed-footer-structure for details. +/// See https://discord.com/developers/docs/resources/message#embed-object-embed-footer-structure for details. /datum/tgs_chat_embed/footer /// Must be set in New(). var/text var/icon_url var/proxy_icon_url +/// Create a [/datum/tgs_chat_embed/footer]. /datum/tgs_chat_embed/footer/New(text) ..() if(!istext(text)) @@ -375,16 +417,17 @@ src.text = text -/// See https://discord.com/developers/docs/resources/channel#embed-object-embed-provider-structure for details. +/// See https://discord.com/developers/docs/resources/message#embed-object-embed-provider-structure for details. /datum/tgs_chat_embed/provider var/name var/url -/// See https://discord.com/developers/docs/resources/channel#embed-object-embed-author-structure for details. Must have name set in New(). +/// See https://discord.com/developers/docs/resources/message#embed-object-embed-author-structure for details. Must have name set in New(). /datum/tgs_chat_embed/provider/author var/icon_url var/proxy_icon_url +/// Create a [/datum/tgs_chat_embed/footer]. /datum/tgs_chat_embed/provider/author/New(name) ..() if(!istext(name)) @@ -392,12 +435,15 @@ src.name = name -/// See https://discord.com/developers/docs/resources/channel#embed-object-embed-field-structure for details. Must have name and value set in New(). +/// See https://discord.com/developers/docs/resources/message#embed-object-embed-field-structure for details. /datum/tgs_chat_embed/field + /// Must be set in New(). var/name + /// Must be set in New(). var/value var/is_inline +/// Create a [/datum/tgs_chat_embed/field]. /datum/tgs_chat_embed/field/New(name, value) ..() if(!istext(name)) diff --git a/code/modules/tgs/README.md b/code/modules/tgs/README.md index 6319028d81..35ca73d7e9 100644 --- a/code/modules/tgs/README.md +++ b/code/modules/tgs/README.md @@ -1,6 +1,6 @@ # DMAPI Internals -This folder should be placed on it's own inside a codebase that wishes to use the TGS DMAPI. Warranty void if modified. +This folder should be placed on its own inside a codebase that wishes to use the TGS DMAPI. Warranty void if modified. - [includes.dm](./includes.dm) is the file that should be included by DM code, it handles including the rest. - The [core](./core) folder includes all code not directly part of any API version. diff --git a/code/modules/tgs/core/README.md b/code/modules/tgs/core/README.md index b82d8f49e2..965e21b549 100644 --- a/code/modules/tgs/core/README.md +++ b/code/modules/tgs/core/README.md @@ -3,7 +3,7 @@ This folder contains all DMAPI code not directly involved in an API. - [_definitions.dm](./definitions.dm) contains defines needed across DMAPI internals. +- [byond_world_export.dm](./byond_world_export.dm) contains the default `/datum/tgs_http_handler` implementation which uses `world.Export()`. - [core.dm](./core.dm) contains the implementations of the `/world/proc/TgsXXX()` procs. Many map directly to the `/datum/tgs_api` functions. It also contains the /datum selection and setup code. - [datum.dm](./datum.dm) contains the `/datum/tgs_api` declarations that all APIs must implement. - [tgs_version.dm](./tgs_version.dm) contains the `/datum/tgs_version` definition -- diff --git a/code/modules/tgs/core/byond_world_export.dm b/code/modules/tgs/core/byond_world_export.dm new file mode 100644 index 0000000000..6ef8d841b8 --- /dev/null +++ b/code/modules/tgs/core/byond_world_export.dm @@ -0,0 +1,22 @@ +/datum/tgs_http_handler/byond_world_export + +/datum/tgs_http_handler/byond_world_export/PerformGet(url) + // This is an infinite sleep until we get a response + var/export_response = world.Export(url) + TGS_DEBUG_LOG("byond_world_export: Export complete") + + if(!export_response) + TGS_ERROR_LOG("byond_world_export: Failed request: [url]") + return new /datum/tgs_http_result(null, FALSE) + + var/content = export_response["CONTENT"] + if(!content) + TGS_ERROR_LOG("byond_world_export: Failed request, missing content!") + return new /datum/tgs_http_result(null, FALSE) + + var/response_json = TGS_FILE2TEXT_NATIVE(content) + if(!response_json) + TGS_ERROR_LOG("byond_world_export: Failed request, failed to load content!") + return new /datum/tgs_http_result(null, FALSE) + + return new /datum/tgs_http_result(response_json, TRUE) diff --git a/code/modules/tgs/core/core.dm b/code/modules/tgs/core/core.dm index 15622228e9..63cb5a2c35 100644 --- a/code/modules/tgs/core/core.dm +++ b/code/modules/tgs/core/core.dm @@ -1,4 +1,4 @@ -/world/TgsNew(datum/tgs_event_handler/event_handler, minimum_required_security_level = TGS_SECURITY_ULTRASAFE) +/world/TgsNew(datum/tgs_event_handler/event_handler, minimum_required_security_level = TGS_SECURITY_ULTRASAFE, datum/tgs_http_handler/http_handler = null) var/current_api = TGS_READ_GLOBAL(tgs) if(current_api) TGS_ERROR_LOG("API datum already set (\ref[current_api] ([current_api]))! Was TgsNew() called more than once?") @@ -55,7 +55,10 @@ TGS_ERROR_LOG("Invalid parameter for event_handler: [event_handler]") event_handler = null - var/datum/tgs_api/new_api = new api_datum(event_handler, version) + if(!http_handler) + http_handler = new /datum/tgs_http_handler/byond_world_export + + var/datum/tgs_api/new_api = new api_datum(event_handler, version, http_handler) TGS_WRITE_GLOBAL(tgs, new_api) diff --git a/code/modules/tgs/core/datum.dm b/code/modules/tgs/core/datum.dm index f734fd0527..3ca53e9bf7 100644 --- a/code/modules/tgs/core/datum.dm +++ b/code/modules/tgs/core/datum.dm @@ -6,7 +6,7 @@ TGS_DEFINE_AND_SET_GLOBAL(tgs, null) var/list/warned_deprecated_command_runs -/datum/tgs_api/New(datum/tgs_event_handler/event_handler, datum/tgs_version/version) +/datum/tgs_api/New(datum/tgs_event_handler/event_handler, datum/tgs_version/version, datum/tgs_http_handler/http_handler) ..() src.event_handler = event_handler src.version = version diff --git a/code/modules/tgs/includes.dm b/code/modules/tgs/includes.dm index 23b714f9d0..f5118ed55a 100644 --- a/code/modules/tgs/includes.dm +++ b/code/modules/tgs/includes.dm @@ -1,4 +1,5 @@ #include "core\_definitions.dm" +#include "core\byond_world_export.dm" #include "core\core.dm" #include "core\datum.dm" #include "core\tgs_version.dm" diff --git a/code/modules/tgs/v5/api.dm b/code/modules/tgs/v5/api.dm index 95b8edd3ee..3e328fc7c2 100644 --- a/code/modules/tgs/v5/api.dm +++ b/code/modules/tgs/v5/api.dm @@ -31,9 +31,12 @@ var/detached = FALSE -/datum/tgs_api/v5/New() + var/datum/tgs_http_handler/http_handler + +/datum/tgs_api/v5/New(datum/tgs_event_handler/event_handler, datum/tgs_version/version, datum/tgs_http_handler/http_handler) . = ..() interop_version = version + src.http_handler = http_handler TGS_DEBUG_LOG("V5 API created: [json_encode(args)]") /datum/tgs_api/v5/ApiVersion() @@ -50,7 +53,9 @@ version = null // we want this to be the TGS version, not the interop version // sleep once to prevent an issue where world.Export on the first tick can hang indefinitely + TGS_DEBUG_LOG("Starting Export bug prevention sleep tick. time:[world.time] sleep_offline:[world.sleep_offline]") sleep(world.tick_lag) + TGS_DEBUG_LOG("Export bug prevention sleep complete") var/list/bridge_response = Bridge(DMAPI5_BRIDGE_COMMAND_STARTUP, list(DMAPI5_BRIDGE_PARAMETER_MINIMUM_SECURITY_LEVEL = minimum_required_security_level, DMAPI5_BRIDGE_PARAMETER_VERSION = api_version.raw_parameter, DMAPI5_PARAMETER_CUSTOM_COMMANDS = ListCustomCommands(), DMAPI5_PARAMETER_TOPIC_PORT = GetTopicPort())) if(!istype(bridge_response)) diff --git a/code/modules/tgs/v5/bridge.dm b/code/modules/tgs/v5/bridge.dm index 0c5e701a32..62201fcc9e 100644 --- a/code/modules/tgs/v5/bridge.dm +++ b/code/modules/tgs/v5/bridge.dm @@ -78,27 +78,24 @@ WaitForReattach(FALSE) TGS_DEBUG_LOG("Bridge request start") - // This is an infinite sleep until we get a response - var/export_response = world.Export(bridge_request) + var/datum/tgs_http_result/result = http_handler.PerformGet(bridge_request) TGS_DEBUG_LOG("Bridge request complete") - if(!export_response) - TGS_ERROR_LOG("Failed bridge request: [bridge_request]") + if(isnull(result)) + TGS_ERROR_LOG("Failed bridge request, handler returned null!") return - var/content = export_response["CONTENT"] - if(!content) - TGS_ERROR_LOG("Failed bridge request, missing content!") + if(!istype(result) || result.type != /datum/tgs_http_result) + TGS_ERROR_LOG("Failed bridge request, handler returned non-[/datum/tgs_http_result]!") return - var/response_json = TGS_FILE2TEXT_NATIVE(content) - if(!response_json) - TGS_ERROR_LOG("Failed bridge request, failed to load content!") + if(!result.success) + TGS_DEBUG_LOG("Failed bridge request, HTTP request failed!") return - var/list/bridge_response = json_decode(response_json) + var/list/bridge_response = json_decode(result.response_text) if(!bridge_response) - TGS_ERROR_LOG("Failed bridge request, bad json: [response_json]") + TGS_ERROR_LOG("Failed bridge request, bad json: [result.response_text]") return var/error = bridge_response[DMAPI5_RESPONSE_ERROR_MESSAGE] From 992f788911efe8daf521f57a24de012f970fff50 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Mon, 19 Aug 2024 01:19:21 +0000 Subject: [PATCH 5/5] Automatic changelog compile [ci skip] --- html/changelogs/AutoChangeLog-pr-386.yml | 4 ---- html/changelogs/archive/2024-08.yml | 3 +++ 2 files changed, 3 insertions(+), 4 deletions(-) delete mode 100644 html/changelogs/AutoChangeLog-pr-386.yml diff --git a/html/changelogs/AutoChangeLog-pr-386.yml b/html/changelogs/AutoChangeLog-pr-386.yml deleted file mode 100644 index f1e71e70fd..0000000000 --- a/html/changelogs/AutoChangeLog-pr-386.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Doubleumc" -delete-after: True -changes: - - bugfix: "fixed WeaponStats TGUI" \ No newline at end of file diff --git a/html/changelogs/archive/2024-08.yml b/html/changelogs/archive/2024-08.yml index 050c64bd12..b8745e8c53 100644 --- a/html/changelogs/archive/2024-08.yml +++ b/html/changelogs/archive/2024-08.yml @@ -76,3 +76,6 @@ xDanilcusx: - bugfix: AI can track through electrified/locked/welded doors - code_imp: AI now doesn't swipe on poddoors and shutters, opening them instead +2024-08-19: + Doubleumc: + - bugfix: fixed WeaponStats TGUI