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 888b825882f..db7ed723cf2 100644 Binary files a/icons/obj/guns/erifle.dmi and b/icons/obj/guns/erifle.dmi differ diff --git a/icons/obj/guns/harpoon.dmi b/icons/obj/guns/harpoon.dmi index 6b4fdbd04e4..b38185dcd07 100644 Binary files a/icons/obj/guns/harpoon.dmi and b/icons/obj/guns/harpoon.dmi differ diff --git a/icons/obj/guns/modular_laser.dmi b/icons/obj/guns/modular_laser.dmi index e06e105f238..9c3ebc06d08 100644 Binary files a/icons/obj/guns/modular_laser.dmi and b/icons/obj/guns/modular_laser.dmi differ diff --git a/icons/obj/kinetic_accelerators.dmi b/icons/obj/kinetic_accelerators.dmi index cd6dda51eb1..07e492d0064 100644 Binary files a/icons/obj/kinetic_accelerators.dmi and b/icons/obj/kinetic_accelerators.dmi differ