From 270a81ab9d7ad5a053cc612cdf533c4cbf30ba46 Mon Sep 17 00:00:00 2001 From: fernerr <35879136+fernerr@users.noreply.github.com> Date: Sun, 20 Dec 2020 15:15:02 +0100 Subject: [PATCH] Fixes some guns going invisible, cleans up update_icon and wielded (#10840) --- .../objects/items/weapons/vaurca_items.dm | 7 ---- code/modules/custom_ka/core.dm | 14 -------- code/modules/projectiles/gun.dm | 10 ++++++ code/modules/projectiles/guns/energy.dm | 4 +-- .../projectiles/guns/energy/blaster.dm | 8 ----- code/modules/projectiles/guns/energy/crank.dm | 11 ++---- code/modules/projectiles/guns/energy/laser.dm | 8 ----- .../projectiles/guns/energy/modular.dm | 6 ---- code/modules/projectiles/guns/energy/rifle.dm | 21 ++--------- .../projectiles/guns/launcher/harpoon.dm | 7 ++-- .../projectiles/guns/projectile/automatic.dm | 32 ++--------------- .../projectiles/guns/projectile/cannon.dm | 16 +-------- .../projectiles/guns/projectile/musket.dm | 9 +---- .../projectiles/guns/projectile/plasma.dm | 2 -- .../projectiles/guns/projectile/rifle.dm | 11 ------ .../projectiles/guns/projectile/shotgun.dm | 19 +--------- .../projectiles/guns/projectile/sniper.dm | 34 +++--------------- .../Ferner-201220-bugfix_wieldedrifle.yml | 4 +++ icons/obj/guns/erifle.dmi | Bin 6209 -> 6591 bytes icons/obj/guns/harpoon.dmi | Bin 1874 -> 1880 bytes icons/obj/guns/modular_laser.dmi | Bin 20414 -> 20416 bytes icons/obj/kinetic_accelerators.dmi | Bin 31170 -> 31189 bytes 22 files changed, 31 insertions(+), 192 deletions(-) create mode 100644 html/changelogs/Ferner-201220-bugfix_wieldedrifle.yml diff --git a/code/game/objects/items/weapons/vaurca_items.dm b/code/game/objects/items/weapons/vaurca_items.dm index 805ce7a7d48..c167dc0ffb1 100644 --- a/code/game/objects/items/weapons/vaurca_items.dm +++ b/code/game/objects/items/weapons/vaurca_items.dm @@ -391,13 +391,6 @@ accuracy_wielded = -1 fire_delay_wielded = 1 -/obj/item/gun/launcher/crossbow/vaurca/update_icon() - if(wielded) - item_state = "gaussrifle-wielded" - else - item_state = "gaussrifle" - update_held_icon() - /obj/item/gun/launcher/crossbow/vaurca/consume_next_projectile(mob/user=null) return bolt diff --git a/code/modules/custom_ka/core.dm b/code/modules/custom_ka/core.dm index e7b8e73c73d..25835cbc80b 100644 --- a/code/modules/custom_ka/core.dm +++ b/code/modules/custom_ka/core.dm @@ -73,14 +73,6 @@ /obj/item/gun/custom_ka/can_wield() return 1 -/obj/item/gun/custom_ka/toggle_wield() - ..() - if(wielded) - item_state = "[initial(item_state)]_w" - else - item_state = initial(item_state) - update_held_icon() - /obj/item/gun/custom_ka/pickup(mob/user) ..() if(can_wield()) @@ -312,12 +304,6 @@ else name = initial(name) - if(wielded) - item_state = "[initial(item_state)]_w" - else - item_state = initial(item_state) - update_held_icon() - /obj/item/gun/custom_ka/proc/update_stats() //pls don't bully me for this code damage_increase = initial(damage_increase) diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm index 2080f38086a..7ffa56d8eb5 100644 --- a/code/modules/projectiles/gun.dm +++ b/code/modules/projectiles/gun.dm @@ -169,6 +169,16 @@ safety_overlay = image(gun_gui_icons,"[safety()]") add_overlay(safety_overlay, TRUE) + if(is_wieldable) + if(wielded) + var/list/gun_states = icon_states(icon) + if(("[item_state]-wielded_lh" in gun_states) || ("[item_state]-wielded_rh" in gun_states)) + item_state = "[item_state]-wielded" + else + item_state = replacetext(item_state,"-wielded","") + + update_held_icon() + //Checks whether a given mob can use the gun //Any checks that shouldn't result in handle_click_empty() being called if they fail should go here. //Otherwise, if you want handle_click_empty() to be called, check in consume_next_projectile() and return null there. diff --git a/code/modules/projectiles/guns/energy.dm b/code/modules/projectiles/guns/energy.dm index b39c0204732..4b3824e34f0 100644 --- a/code/modules/projectiles/guns/energy.dm +++ b/code/modules/projectiles/guns/energy.dm @@ -137,7 +137,6 @@ return /obj/item/gun/energy/update_icon() - ..() if(charge_meter && power_supply && power_supply.maxcharge) var/ratio = power_supply.charge / power_supply.maxcharge var/icon_state_ratio = "" @@ -160,7 +159,8 @@ else icon_state = "[initial(icon_state)][icon_state_ratio]" item_state = "[initial(item_state)][item_state_ratio]" - update_held_icon() + + ..() /obj/item/gun/energy/handle_post_fire() ..() diff --git a/code/modules/projectiles/guns/energy/blaster.dm b/code/modules/projectiles/guns/energy/blaster.dm index 6aae284bd71..47131da5545 100644 --- a/code/modules/projectiles/guns/energy/blaster.dm +++ b/code/modules/projectiles/guns/energy/blaster.dm @@ -103,14 +103,6 @@ is_wieldable = TRUE -/obj/item/gun/energy/blaster/rifle/update_icon() - ..() - if(wielded) - item_state = "blaster_rifle-wielded" - else - item_state = initial(item_state) - update_held_icon() - /obj/item/gun/energy/blaster/rifle/verb/scope() set category = "Object" set name = "Use Scope" diff --git a/code/modules/projectiles/guns/energy/crank.dm b/code/modules/projectiles/guns/energy/crank.dm index 0a2e65493f4..8610f5d000e 100644 --- a/code/modules/projectiles/guns/energy/crank.dm +++ b/code/modules/projectiles/guns/energy/crank.dm @@ -4,6 +4,7 @@ icon = 'icons/obj/guns/icelance.dmi' icon_state = "icelance" item_state = "icelance" + has_item_ratio = FALSE fire_sound = 'sound/weapons/laser1.ogg' max_shots = 3 accuracy = -1 @@ -51,12 +52,4 @@ is_charging = FALSE /obj/item/gun/energy/rifle/icelance/get_cell() - return DEVICE_NO_CELL - -/obj/item/gun/energy/rifle/icelance/update_icon() - ..() - if(wielded) - item_state = "icelance-wielded" - else - item_state = initial(item_state) - update_held_icon() + return DEVICE_NO_CELL \ No newline at end of file diff --git a/code/modules/projectiles/guns/energy/laser.dm b/code/modules/projectiles/guns/energy/laser.dm index 6930cb1b2ff..c990ee22712 100644 --- a/code/modules/projectiles/guns/energy/laser.dm +++ b/code/modules/projectiles/guns/energy/laser.dm @@ -202,14 +202,6 @@ obj/item/gun/energy/retro turret_is_lethal = TRUE turret_sprite_set = "laser" -/obj/item/gun/energy/laser/shotgun/update_icon() - ..() - if(wielded) - item_state = "[initial(icon_state)]-wielded" - else - item_state = initial(item_state) - update_held_icon() - /obj/item/gun/energy/laser/shotgun/research name = "expedition shotgun" desc = "A Nanotrasen designed laser weapon, designed to split a single amplified beam four times. This one is marked for expeditionary use." diff --git a/code/modules/projectiles/guns/energy/modular.dm b/code/modules/projectiles/guns/energy/modular.dm index f9d0e301cad..2de908788f6 100644 --- a/code/modules/projectiles/guns/energy/modular.dm +++ b/code/modules/projectiles/guns/energy/modular.dm @@ -52,17 +52,11 @@ /obj/item/gun/energy/laser/prototype/update_icon() ..() - if(origin_chassis == CHASSIS_LARGE) - if(wielded) - item_state = "large_3_wielded" - else - item_state = "large_3" underlays.Cut() if(length(gun_mods)) for(var/obj/item/laser_components/mod in gun_mods) if(mod.gun_overlay) underlays += mod.gun_overlay - update_held_icon() underlays.Cut() for(var/v in gun_mods) var/obj/item/laser_components/modifier/mod = v diff --git a/code/modules/projectiles/guns/energy/rifle.dm b/code/modules/projectiles/guns/energy/rifle.dm index 19cea29aa72..835f6a0c750 100644 --- a/code/modules/projectiles/guns/energy/rifle.dm +++ b/code/modules/projectiles/guns/energy/rifle.dm @@ -3,8 +3,8 @@ desc = "A Nanotrasen designed energy-based rifle with two settings: Stun and Kill." desc_fluff = "The NT ER-2 is an energy rifle developed and produced by Nanotrasen. Widely produced and sold across the galaxy. Designed to both stun and kill with concentrated energy blasts of varying strengths based on the fire mode, focused through a crystal lens. Considered to be a dual-purpose rifle with prolonged combat capability." icon = 'icons/obj/guns/erifle.dmi' - icon_state = "eriflestun100" - icon_state = "eriflestun100" + icon_state = "eriflestun" + item_state = "eriflestun" fire_sound = 'sound/weapons/Taser.ogg' slot_flags = SLOT_BACK w_class = ITEMSIZE_LARGE @@ -35,15 +35,6 @@ list(mode_name="lethal", projectile_type=/obj/item/projectile/beam, modifystate="eriflekill", fire_sound='sound/weapons/laser1.ogg') ) -/obj/item/gun/energy/rifle/update_icon() - ..() - if(wielded) - item_state = "[initial(icon_state)]-wielded" - else - item_state = initial(item_state) - update_held_icon() - - /obj/item/gun/energy/rifle/laser name = "laser rifle" desc = "A Nanotrasen designed laser weapon, designed to kill with concentrated energy blasts." @@ -67,14 +58,6 @@ firemodes = list() modifystate = null -/obj/item/gun/energy/rifle/laser/update_icon() - ..() - if(wielded) - item_state = "[initial(icon_state)]-wielded" - else - item_state = initial(item_state) - update_held_icon() - /obj/item/gun/energy/rifle/laser/heavy name = "laser cannon" desc = "A nanotrasen designed laser cannon capable of acting as a powerful support weapon." diff --git a/code/modules/projectiles/guns/launcher/harpoon.dm b/code/modules/projectiles/guns/launcher/harpoon.dm index e4a281f5b01..0df2a246b8c 100644 --- a/code/modules/projectiles/guns/launcher/harpoon.dm +++ b/code/modules/projectiles/guns/launcher/harpoon.dm @@ -32,11 +32,8 @@ /obj/item/gun/launcher/harpoon/update_icon() icon_state = "[initial(icon_state)]-[harpoons.len]" - if(wielded) - item_state = "[initial(item_state)]-[harpoons.len]-w" - else - item_state = "[initial(icon_state)]-[harpoons.len]" - update_held_icon() + item_state = "[initial(item_state)]-[harpoons.len]" + ..() /obj/item/gun/launcher/harpoon/special_check(mob/user) if(!wielded) diff --git a/code/modules/projectiles/guns/projectile/automatic.dm b/code/modules/projectiles/guns/projectile/automatic.dm index 3c6f8eec6c4..820229bbaf1 100644 --- a/code/modules/projectiles/guns/projectile/automatic.dm +++ b/code/modules/projectiles/guns/projectile/automatic.dm @@ -143,11 +143,6 @@ /obj/item/gun/projectile/automatic/rifle/sts35/update_icon() ..() icon_state = (ammo_magazine)? "arifle" : "arifle-empty" - if(wielded) - item_state = (ammo_magazine)? "arifle-wielded" : "arifle-wielded-empty" - else - item_state = (ammo_magazine)? "arifle" : "arifle-empty" - update_held_icon() /obj/item/gun/projectile/automatic/rifle/sol name = "battle rifle" @@ -167,12 +162,6 @@ icon_state = "battlerifle" else icon_state = "battlerifle-empty" - if(wielded) - item_state = "battlerifle-wielded" - else - item_state = "battlerifle" - update_held_icon() - return /datum/firemode/z8 var/use_launcher = 0 @@ -240,12 +229,6 @@ icon_state = "carbine" else icon_state = "carbine-empty" - if(wielded) - item_state = "carbine-wielded" - else - item_state = "carbine" - update_held_icon() - return /obj/item/gun/projectile/automatic/rifle/z8/examine(mob/user) ..() @@ -310,10 +293,7 @@ /obj/item/gun/projectile/automatic/rifle/l6_saw/update_icon() icon_state = "l6[cover_open ? "open" : "closed"][ammo_magazine ? round(ammo_magazine.stored_ammo.len*2, 25) : "-empty"]" - if(wielded) - item_state = "l6closedmag-wielded" - else - item_state = initial(item_state) + ..() /obj/item/gun/projectile/automatic/rifle/l6_saw/load_ammo(var/obj/item/A, mob/user) if(!cover_open) @@ -355,14 +335,6 @@ knife_x_offset = 23 knife_y_offset = 14 -/obj/item/gun/projectile/automatic/rifle/adhomian/update_icon() - ..() - if(wielded) - item_state = "tsarrayut-wielded" - else - item_state = "tsarrayut" - update_held_icon() - /obj/item/gun/projectile/automatic/tommygun name = "submachine gun" desc = "An adhomian made submachine gun. Uses .45 rounds." @@ -485,4 +457,4 @@ /obj/item/gun/projectile/automatic/rifle/shotgun/update_icon() ..() - icon_state = (ammo_magazine)? "assaultshotgun" : "assaultshotgun-empty" + icon_state = (ammo_magazine)? "assaultshotgun" : "assaultshotgun-empty" \ No newline at end of file diff --git a/code/modules/projectiles/guns/projectile/cannon.dm b/code/modules/projectiles/guns/projectile/cannon.dm index f3d528de411..0cebef4f98b 100644 --- a/code/modules/projectiles/guns/projectile/cannon.dm +++ b/code/modules/projectiles/guns/projectile/cannon.dm @@ -22,14 +22,6 @@ found in museums and forgotten warehouses were adapted into portable weapons, combining modern and ancient tajaran technology. This weapon is usually found in the hands of the \ sailors and marines of the Royal Navy." -/obj/item/gun/projectile/cannon/update_icon() - if(wielded) - item_state = "cannon-wielded" - else - item_state = "cannon" - update_held_icon() - - /obj/item/gun/projectile/cannon/special_check(mob/user) if(!wielded) to_chat(user, "You can't fire without stabilizing \the [src]!") @@ -62,18 +54,12 @@ causing the annihilation of the military base of Quizosa. The nuclear launcher was created by republican scientists as way to deploy this destructive force while on the field." /obj/item/gun/projectile/nuke/update_icon() + ..() if(ammo_magazine) icon_state = "blockbuster-[(ammo_magazine.stored_ammo.len)]" else icon_state = "blockbuster-0" - if(wielded) - item_state = "blockbuster-wielded" - else - item_state = "blockbuster" - - update_held_icon() - /obj/item/gun/projectile/nuke/special_check(mob/user) if(!wielded) to_chat(user, "You can't fire without stabilizing \the [src]!") diff --git a/code/modules/projectiles/guns/projectile/musket.dm b/code/modules/projectiles/guns/projectile/musket.dm index b59377a1bb2..1342c72ce46 100644 --- a/code/modules/projectiles/guns/projectile/musket.dm +++ b/code/modules/projectiles/guns/projectile/musket.dm @@ -35,13 +35,6 @@ var/has_powder = FALSE -/obj/item/gun/projectile/musket/update_icon() - if(wielded) - item_state = "musket-wielded" - else - item_state = "musket" - update_held_icon() - /obj/item/gun/projectile/musket/special_check(mob/user) if(!has_powder) to_chat(user, SPAN_WARNING("\The [src] is not loaded with gunpowder!")) @@ -82,4 +75,4 @@ amount_per_transfer_from_this = 5 possible_transfer_amounts = list(5) volume = 30 - reagents_to_add = list(/datum/reagent/gunpowder = 30) + reagents_to_add = list(/datum/reagent/gunpowder = 30) \ No newline at end of file diff --git a/code/modules/projectiles/guns/projectile/plasma.dm b/code/modules/projectiles/guns/projectile/plasma.dm index 66c0bd417e6..824f8650fa2 100644 --- a/code/modules/projectiles/guns/projectile/plasma.dm +++ b/code/modules/projectiles/guns/projectile/plasma.dm @@ -22,7 +22,6 @@ else icon_state = "[initial(icon_state)]-empty" - /obj/item/gun/projectile/plasma/bolter name = "plasma bolter" desc = "A miniaturized, less efficient version of the infamous plasma slammer. Sacrifices much of its power for a more compact frame." @@ -47,4 +46,3 @@ use_external_power = TRUE self_recharge = TRUE projectile_type = /obj/item/projectile/plasma - diff --git a/code/modules/projectiles/guns/projectile/rifle.dm b/code/modules/projectiles/guns/projectile/rifle.dm index 69a397143f2..42b1dbf79cf 100644 --- a/code/modules/projectiles/guns/projectile/rifle.dm +++ b/code/modules/projectiles/guns/projectile/rifle.dm @@ -13,7 +13,6 @@ rack_sound = 'sound/weapons/riflebolt.ogg' rack_verb = "pull back the bolt on" - has_wield_state = TRUE can_bayonet = TRUE knife_x_offset = 23 @@ -31,7 +30,6 @@ slot_flags &= ~SLOT_BACK slot_flags |= (SLOT_BELT|SLOT_HOLSTER) can_bayonet = FALSE - has_wield_state = FALSE if(bayonet) qdel(bayonet) bayonet = null @@ -51,7 +49,6 @@ accuracy = -2 slot_flags = SLOT_BELT|SLOT_HOLSTER can_bayonet = FALSE - has_wield_state = FALSE /obj/item/gun/projectile/contender name = "pocket rifle" @@ -254,14 +251,6 @@ ..() icon_state = (ammo_magazine)? "gauss_thumper" : "gauss_thumper-e" - if(wielded) - item_state = "gauss_thumper-wielded" - else - item_state = "gauss_thumper" - - update_held_icon() - return - /obj/item/gun/energy/gauss/mounted/mech name = "heavy gauss cannon" desc = "An outdated and power hungry gauss cannon, modified to deliver high explosive rounds at high velocities." diff --git a/code/modules/projectiles/guns/projectile/shotgun.dm b/code/modules/projectiles/guns/projectile/shotgun.dm index 1da5c2c571f..e02a26a9ca9 100644 --- a/code/modules/projectiles/guns/projectile/shotgun.dm +++ b/code/modules/projectiles/guns/projectile/shotgun.dm @@ -56,7 +56,6 @@ fire_sound = 'sound/weapons/gunshot/gunshot_shotgun2.ogg' is_wieldable = TRUE var/recentpump = 0 // to prevent spammage - var/has_wield_state = TRUE var/rack_sound = 'sound/weapons/shotgun_pump.ogg' var/rack_verb = "pump" @@ -91,14 +90,6 @@ update_maptext() update_icon() -/obj/item/gun/projectile/shotgun/pump/update_icon() - ..() - if(wielded && has_wield_state) - item_state = "[icon_state]-wielded" - else - item_state = "[icon_state]" - update_held_icon() - /obj/item/gun/projectile/shotgun/pump/combat name = "combat shotgun" desc = "Built for close quarters combat, the Hephaestus Industries KS-40 is widely regarded as a weapon of choice for repelling boarders." @@ -160,14 +151,6 @@ if(new_mode) to_chat(user, SPAN_NOTICE("\The [src] is now set to [new_mode.name].")) -/obj/item/gun/projectile/shotgun/doublebarrel/update_icon() - ..() - if(wielded && has_wield_state) - item_state = "[icon_state]-wielded" - else - item_state = "[icon_state]" - update_held_icon() - /obj/item/gun/projectile/shotgun/doublebarrel/pellet ammo_type = /obj/item/ammo_casing/shotgun/pellet @@ -249,4 +232,4 @@ if(folded) toggle_folded(user) return FALSE - return ..() + return ..() \ No newline at end of file diff --git a/code/modules/projectiles/guns/projectile/sniper.dm b/code/modules/projectiles/guns/projectile/sniper.dm index 607ae04b515..b3cceb25542 100644 --- a/code/modules/projectiles/guns/projectile/sniper.dm +++ b/code/modules/projectiles/guns/projectile/sniper.dm @@ -32,15 +32,11 @@ accuracy_wielded = -1 /obj/item/gun/projectile/heavysniper/update_icon() + ..() if(bolt_open) icon_state = "heavysniper-open" else icon_state = "heavysniper" - if(wielded) - item_state = "heavysniper-wielded" - else - item_state = "heavysniper" - update_held_icon() /obj/item/gun/projectile/heavysniper/attack_self(mob/user as mob) bolt_open = !bolt_open @@ -108,17 +104,13 @@ has_scope = FALSE /obj/item/gun/projectile/heavysniper/unathi/update_icon() + ..() if(bolt_open && length(loaded)) icon_state = "slugger-open-loaded" else if(bolt_open && !length(loaded)) icon_state = "slugger-open" else icon_state = "slugger" - if(wielded) - item_state = "slugger-wielded" - else - item_state = "slugger" - update_held_icon() /obj/item/gun/projectile/heavysniper/unathi/handle_post_fire(mob/user) ..() @@ -169,15 +161,11 @@ accuracy_wielded = 2 /obj/item/gun/projectile/heavysniper/tranq/update_icon() + ..() if(bolt_open) icon_state = "tranqsniper-open" else icon_state = "tranqsniper" - if(wielded) - item_state = "tranqsniper-wielded" - else - item_state = "tranqsniper" - update_held_icon() /obj/item/gun/projectile/dragunov name = "marksman rifle" @@ -211,19 +199,12 @@ accuracy_wielded = 1 /obj/item/gun/projectile/dragunov/update_icon() - + ..() if(ammo_magazine) icon_state = "dragunov" else icon_state = "dragunov-empty" - if(wielded) - item_state = "dragunov-wielded" - else - item_state = "dragunov" - - update_held_icon() - /obj/item/gun/projectile/dragunov/special_check(mob/user) if(!wielded) to_chat(user, "You can't fire without stabilizing the rifle!") @@ -278,10 +259,3 @@ toggle_scope(2.0, usr) else to_chat(usr, "You can't look through the scope without stabilizing the rifle!") - -/obj/item/gun/projectile/automatic/rifle/w556/update_icon() - if(wielded) - item_state = "w556rifle-wielded" - else - item_state = "w556rifle" - update_held_icon() diff --git a/html/changelogs/Ferner-201220-bugfix_wieldedrifle.yml b/html/changelogs/Ferner-201220-bugfix_wieldedrifle.yml new file mode 100644 index 00000000000..fce3b9c2a5c --- /dev/null +++ b/html/changelogs/Ferner-201220-bugfix_wieldedrifle.yml @@ -0,0 +1,4 @@ +author: Ferner +delete-after: True +changes: + - bugfix: "Fixed the energy rifle and some other wieldable guns occasionally going invisible." \ No newline at end of file diff --git a/icons/obj/guns/erifle.dmi b/icons/obj/guns/erifle.dmi index 888b825882f3a11ecc8af4157a44c4f1f1f793bc..db7ed723cf2cfacbeea20e24f16b467fd8581b14 100644 GIT binary patch literal 6591 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 literal 6209 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 diff --git a/icons/obj/guns/harpoon.dmi b/icons/obj/guns/harpoon.dmi index 6b4fdbd04e478a8b4753e40643b8f48b80414a4e..b38185dcd072ddc472ab573e6f0a51428db30b49 100644 GIT binary patch delta 60 zcmV-C0K@;%4%iNmZ2_H;Zh9-3sW~aBDJ0oIjwZwSB2xT7f?|XpNU?zkP09+celFld S0|2T{sBg+FRjRWM0YwH74H%OE delta 54 zcmV-60LlN@4$=;gZ2^~&Zh9ponN6B$10gxnrczRS=bVOxyV{&P5bZKvH004NLt(L)#+aM5z&+${B-K!hb zcDC&$mny3&huv2|V?43ZVn74VCU4(E(v6h_Llw(HN~DjU`Qi8AXZHK`&-R^d-nQ8u z$w{Nxnyr@Kv&E-ue8<+TDzin0vhDookMrP>t=W_7K`CB5Ws63Cl4EODWQ!d^kEh>P zT$#vKsT^0`1zk;}6i0h(ir0!fQxIor`By7>m(;tKn!g`Y4B!V3{o%RB&W#R_3Ew zElC@f)*Wbp4G+_QtBZb>S9z6JBcI-gkLV%-EC}fhMM*-bcZLKuJTmFWrK)0C=6A-p zN+8k26h~zY1X>RLoHclyU(v~0gxnrc6wA;bVOxyV{&P5bZKvH004NLt(L)V;xG_~&*Ukr_8OrL zf!$uXtf*ET+E=h9&X8DjY-{XLc>6s-O9VJ}MHE>A>GSXT?LXr@v%jzZw(o57w$1iP zP8!YDY&rjx%|2!ATefE9BAc}+o7SKHI1e7#nmxG=l;XuxHmfCnIksj+Hro+&c=~p=KuQ19gpav7%pSZaB6BqY> z=2EPGp`Q{}jrC8aBy85T`VXd5kc>JP&#W*Oqx)9D(P;Eh4oAU7Hmgy=k*(PxAIxe< z+PJiCK?|&Tm|k9g^vk@=%e)-;^hSI{7ZG4VNN*@g5=y-@B(Ua@Nxv^u74t=YXAG+Z z5^YRzP)1LnW#3I%gU9JLZEMKrDHSW#qq87zN>PQ{C8(77oiR8>tEBfxd>T1RD5S#? zwbiKF-ONr?8W|5>>SjdlB`S9-iyEmpawipPf$^81lUj0rLJ+|atVTmHIJ%x1H`2Jca!6UIuxoow1b10OWlA}{hH zzuyomAVL*gQ-e06>~OjHDj$rCi0mwxJ=Q#}!8;F?!ZA2y(LHJ($oul2)0BVnQi&3Zk}cuUsgu#ZCOapR1id5FDc~-c^95(G&E3(}6d^ z)l9l-sBM5|-BHjUa3XTbPO^resodN>I szn2wi2VRQ!2l%du_i%FvG0*JveZw|y+w4E~F-Y$O;z&=9v!wzXO)aN7>;M1& diff --git a/icons/obj/kinetic_accelerators.dmi b/icons/obj/kinetic_accelerators.dmi index cd6dda51eb1233c4243461f6beae9602acb1c626..07e492d0064ccc84e936a6e70d70b5b758583f53 100644 GIT binary patch delta 525 zcmV+o0`mRB^8wZK0gxnr>3URHbVOxyV{&P5bZKvH004NLmDEjc+b|FX;I(uLBH5-z z96L)bn%XVANUk7^$%#mG^aF~tp`N}A$!=@J;Ul!Mfo~r8JhblB%kJm?O>JNI<&pj9 z`c749^YyVTPR<0YDz$zp3(KytVg51(3al!1_wK3X$JJd~80SZSRjE~3ynAYS{(R-0 zK(_|n26WGu`-ZU>jD5%07Gpb%{lHkQr$g_XBtDS$EWmyjm|pN1)+7PN>Fcn-^nF<1 zjSKNy7KVi;RjKvE@|1<=lk3b!IrU(B-*?Hd)x+|98aBp(eM=#*|2T1db-Yj0gvMJr z|6t96tXH!j%hfD@$hI^KvMbGUb5mEWK14sJ?~`VcI(q6{Y^5gy{y@u`b0+L$eBW@^ zOiK;@b{*Go9y6I^IYUl_8xjnIFN-)do($L8x*-e0r}^bN4o)|*tHu7+o22$>-MUfN zEv0Mfz8y%1FDJ)h*dW=}2>xXOxLkce&esTlmo)%(?tUBItKHjHZD050AMKOqdeZh$^Z)=L P07*naRCt`T4Fa`y(l`o7 delta 496 zcmV?

JqPOD>}8-9JfLOFB^CD6hN0u4 z8c!YlaXsrfm9>RsB}GnzI}!|oKZ|+n0=2A-bz>2R-{!aLIXctLy%zgVZ?Zb%wRe-z zp7Jrx;72l1ACazSTtJUVwlglE2hLJ)odts>3PUJVqA&zv0(oxT?6E|P#U+$!vA6_M zS*DK@7AjE~LXi@MArL5%iO!H%UW-&Hg$&#ptsZ0>5`4qV