From 56f4960ed497c64fc96d043276ced0a65e80eeec Mon Sep 17 00:00:00 2001 From: warriorstar-orion Date: Mon, 28 Jul 2025 15:13:28 -0400 Subject: [PATCH] refactor action buttons (#29416) * refactor action buttons * fix cult spell charge overlay * lewc review * update for a/mhelp buttons and xenobio organs * update for minebot * properly create button each time * directly add/remove unavail overlay for reasons * lewc review --- code/__DEFINES/action_defines.dm | 9 + code/__DEFINES/dcs/datum_signals.dm | 3 +- code/_onclick/hud/action_button.dm | 16 +- code/datums/actions/action.dm | 225 ++++++++++++++---- code/datums/actions/item_action.dm | 73 ++---- code/datums/actions/spell_action.dm | 33 ++- code/datums/components/action_item_overlay.dm | 81 +++++++ code/datums/components/scope.dm | 2 +- code/datums/holocall.dm | 2 +- code/datums/spell_cooldown/spell_charges.dm | 2 +- code/datums/spell_cooldown/spell_cooldown.dm | 4 +- .../alien_spells/basetype_alien_spell.dm | 4 +- .../spells/alien_spells/neurotoxin_spit.dm | 4 +- code/datums/spells/lichdom.dm | 2 +- code/datums/spells/spell_base.dm | 10 +- code/datums/spells/wizard_spells.dm | 4 +- code/game/gamemodes/cult/blood_magic.dm | 66 ++--- code/game/gamemodes/cult/cult_actions.dm | 14 +- code/game/gamemodes/cult/cult_items.dm | 2 +- .../gamemodes/malfunction/Malf_Modules.dm | 4 +- .../abduction/machinery/abductor_camera.dm | 12 +- .../demons/shadow_demon/shadow_demon.dm | 4 +- .../demons/slaughter_demon/slaughter.dm | 4 +- .../miniantags/guardian/host_actions.dm | 14 +- code/game/gamemodes/miniantags/morph/morph.dm | 10 +- .../miniantags/morph/spells/morph_spell.dm | 2 +- .../miniantags/pulsedemon/pulsedemon.dm | 8 +- .../pulsedemon/pulsedemon_abilities.dm | 6 +- .../miniantags/revenant/revenant_abilities.dm | 4 +- code/game/jobs/job/support.dm | 10 +- .../machinery/computer/camera_advanced.dm | 4 +- code/game/mecha/mecha_actions.dm | 64 ++--- code/game/objects/items.dm | 10 +- .../weapons/bio_chips/bio_chip_stealth.dm | 9 +- .../changeling/changeling_power.dm | 2 +- .../antagonists/changeling/evolution_menu.dm | 2 +- .../antagonists/changeling/powers/absorb.dm | 2 +- .../changeling/powers/apex_predator.dm | 2 +- .../changeling/powers/augmented_eyesight.dm | 2 +- .../changeling/powers/become_headslug.dm | 2 +- .../changeling/powers/biodegrade.dm | 2 +- .../changeling/powers/chameleon_skin.dm | 2 +- .../changeling/powers/contort_body.dm | 2 +- .../changeling/powers/digitalcamo.dm | 2 +- .../powers/environmental_adaption.dm | 2 +- .../changeling/powers/epinephrine.dm | 2 +- .../changeling/powers/fakedeath.dm | 2 +- .../changeling/powers/fleshmend.dm | 2 +- .../antagonists/changeling/powers/hivemind.dm | 2 +- .../changeling/powers/humanform.dm | 2 +- .../changeling/powers/lesserform.dm | 2 +- .../changeling/powers/mimic_voice.dm | 2 +- .../changeling/powers/mutations.dm | 12 +- .../antagonists/changeling/powers/panacea.dm | 2 +- .../antagonists/changeling/powers/revive.dm | 2 +- .../antagonists/changeling/powers/shriek.dm | 4 +- .../changeling/powers/strained_muscles.dm | 2 +- .../changeling/powers/summon_spiders.dm | 2 +- .../changeling/powers/swap_form.dm | 2 +- .../changeling/powers/tiny_prick.dm | 10 +- .../changeling/powers/transform.dm | 2 +- .../mind_flayer/powers/flayer_passives.dm | 4 +- .../modules/antagonists/vampire/vamp_datum.dm | 2 +- .../vampire/vampire_powers/umbrae_powers.dm | 2 +- code/modules/clothing/chameleon.dm | 8 +- code/modules/events/blob/blob_mobs.dm | 4 +- code/modules/games/cards.dm | 18 +- code/modules/martial_arts/krav_maga.dm | 8 +- code/modules/martial_arts/martial.dm | 2 +- .../dead/observer/observer_admin_actions.dm | 33 +-- .../basic/minebots/minebot_abilities.dm | 8 +- code/modules/mob/living/brain/MMI.dm | 8 +- .../mob/living/carbon/alien/alien_base.dm | 2 +- .../mob/living/carbon/human/species/golem.dm | 7 +- .../living/carbon/human/species/machine.dm | 2 +- .../mob/living/carbon/human/species/moth.dm | 4 +- .../carbon/human/species/slimepeople.dm | 8 +- .../mob/living/carbon/human/species/unathi.dm | 4 +- .../silicon/robot/robot_module_actions.dm | 32 +-- .../simple_animal/friendly/diona_nymph.dm | 12 +- .../friendly/nian_caterpillar.dm | 4 +- .../mob/living/simple_animal/hide_action.dm | 8 +- .../simple_animal/hostile/giant_spider.dm | 12 +- .../simple_animal/hostile/gorilla/gorilla.dm | 4 +- .../hostile/megafauna/blood_drunk_miner.dm | 12 +- .../hostile/megafauna/bubblegum.dm | 16 +- .../hostile/megafauna/colossus.dm | 16 +- .../simple_animal/hostile/megafauna/drake.dm | 16 +- .../hostile/megafauna/hierophant.dm | 16 +- .../hostile/megafauna/megafauna.dm | 4 +- .../hostile/mining/elites/elite.dm | 14 +- .../mining/elites/goliath_broodmother.dm | 8 +- .../hostile/mining/elites/herald.dm | 8 +- .../hostile/mining/elites/legionnaire.dm | 8 +- .../hostile/mining/elites/pandora.dm | 8 +- .../hostile/terror_spiders/actions.dm | 48 ++-- .../hostile/terror_spiders/empress_terror.dm | 2 +- .../simple_animal/slime/slime_powers.dm | 10 +- code/modules/mob/living/stat_states.dm | 2 +- code/modules/mod/mod_actions.dm | 42 ++-- code/modules/mod/modules/_modules.dm | 2 +- code/modules/mod/modules/module_pathfinder.dm | 9 +- .../research/xenobiology/xenobio_camera.dm | 14 +- .../xenobiology/xenobiology_organs.dm | 8 +- code/modules/shuttle/navigation_computer.dm | 8 +- code/modules/surgery/dental_implant.dm | 7 +- code/modules/surgery/organs/augments_arms.dm | 96 +++++--- .../surgery/organs/augments_internal.dm | 4 +- .../surgery/organs/subtypes/skrell_organs.dm | 7 +- code/modules/vehicle/ambulance.dm | 4 +- code/modules/vehicle/bicycle.dm | 4 +- code/modules/vehicle/janivehicle.dm | 4 +- .../vehicle/tg_vehicles/tg_vehicle_actions.dm | 10 +- icons/mob/actions/actions.dmi | Bin 147013 -> 123577 bytes paradise.dme | 1 + 115 files changed, 815 insertions(+), 584 deletions(-) create mode 100644 code/datums/components/action_item_overlay.dm diff --git a/code/__DEFINES/action_defines.dm b/code/__DEFINES/action_defines.dm index 726148081d9..e291940a436 100644 --- a/code/__DEFINES/action_defines.dm +++ b/code/__DEFINES/action_defines.dm @@ -4,3 +4,12 @@ #define UPDATE_BUTTON_BACKGROUND (1<<2) #define UPDATE_BUTTON_OVERLAY (1<<3) #define UPDATE_BUTTON_STATUS (1<<4) + +// Defines for formatting cooldown actions for the stat panel. +/// The stat panel the action is displayed in. +#define PANEL_DISPLAY_PANEL "panel" +/// The status shown in the stat panel. +/// Can be stuff like "ready", "on cooldown", "active", "charges", "charge cost", etc. +#define PANEL_DISPLAY_STATUS "status" +/// The name shown in the stat panel. +#define PANEL_DISPLAY_NAME "name" diff --git a/code/__DEFINES/dcs/datum_signals.dm b/code/__DEFINES/dcs/datum_signals.dm index 381204c413c..fdf51c9c793 100644 --- a/code/__DEFINES/dcs/datum_signals.dm +++ b/code/__DEFINES/dcs/datum_signals.dm @@ -85,7 +85,8 @@ #define COMSIG_ACTION_REMOVED "action_removed" /// From /datum/action/Remove(): (datum/action) #define COMSIG_MOB_REMOVED_ACTION "mob_action_removed" - +/// From /datum/action/apply_button_overlay() +#define COMSIG_ACTION_OVERLAY_APPLY "action_overlay_applied" // /datum/objective diff --git a/code/_onclick/hud/action_button.dm b/code/_onclick/hud/action_button.dm index 085a5152631..d4ee835fe28 100644 --- a/code/_onclick/hud/action_button.dm +++ b/code/_onclick/hud/action_button.dm @@ -10,6 +10,13 @@ /// The HUD this action button belongs to var/datum/hud/our_hud + /// The overlay we have overtop our button + var/mutable_appearance/button_overlay + /// The icon state of our active overlay, used to prevent re-applying identical overlays + var/active_overlay_icon_state + /// The icon state of our active underlay, used to prevent re-applying identical underlays + var/active_underlay_icon_state + /// Where we are currently placed on the hud. SCRN_OBJ_DEFAULT asks the linked action what it thinks var/location = SCRN_OBJ_DEFAULT /// A unique bitflag, combined with the name of our linked action this lets us persistently remember any user changes to our position @@ -212,10 +219,9 @@ closeToolTip(usr) return ..() -/mob/proc/update_action_buttons_icon(status_only = FALSE) - for(var/X in actions) - var/datum/action/A = X - A.UpdateButtons(status_only) +/mob/proc/update_action_buttons_icon(update_flags = ALL, force = FALSE) + for(var/datum/action/current_action as anything in actions) + current_action.build_all_button_icons(update_flags, force) //This is the proc used to update all the action buttons. /mob/proc/update_action_buttons(reload_screen) @@ -227,7 +233,7 @@ for(var/datum/action/action as anything in actions) var/atom/movable/screen/movable/action_button/button = action.viewers[hud_used] - action.UpdateButtons() + action.build_all_button_icons() if(reload_screen) client.screen += button client.update_active_keybindings() diff --git a/code/datums/actions/action.dm b/code/datums/actions/action.dm index d5f28797bb8..09290724b73 100644 --- a/code/datums/actions/action.dm +++ b/code/datums/actions/action.dm @@ -3,14 +3,22 @@ var/desc = null var/obj/target = null var/check_flags = 0 - /// Icon that our button screen object overlay and background - var/button_overlay_icon = 'icons/mob/actions/actions.dmi' - /// Icon state of screen object overlay - var/button_overlay_icon_state = ACTION_BUTTON_DEFAULT_OVERLAY - /// Icon that our button screen object background will have - var/button_background_icon = 'icons/mob/actions/actions.dmi' + + /// This is the icon state state for the BACKGROUND underlay icon of the button + /// (If set to ACTION_BUTTON_DEFAULT_BACKGROUND, uses the hud's default background) + var/background_icon = 'icons/mob/actions/actions.dmi' /// Icon state of screen object background - var/button_background_icon_state = ACTION_BUTTON_DEFAULT_BACKGROUND + var/background_icon_state = ACTION_BUTTON_DEFAULT_BACKGROUND + + /// This is the file for the icon that appears on the button + var/button_icon = 'icons/mob/actions/actions.dmi' + /// This is the icon state for the icon that appears on the button + var/button_icon_state = ACTION_BUTTON_DEFAULT_OVERLAY + + /// This is the file for any FOREGROUND overlay icons on the button (such as borders) + var/overlay_icon = 'icons/mob/actions/actions.dmi' + /// This is the icon state for any FOREGROUND overlay icons on the button (such as borders) + var/overlay_icon_state var/buttontooltipstyle = "" var/transparent_when_unavailable = TRUE var/mob/owner @@ -20,10 +28,21 @@ var/list/viewers = list() /// Whether or not this will be shown to observers var/show_to_observers = TRUE + /// Toggles whether this action is usable or not + var/action_disabled = FALSE + /// The appearance used as an overlay for when the action is unavailable + var/mutable_appearance/unavailable_effect +/datum/action/New(target) + link_to(target) -/datum/action/New(Target) - target = Target +/// Links the passed target to our action, registering any relevant signals +/datum/action/proc/link_to(target_) + target = target_ + RegisterSignal(target, COMSIG_PARENT_QDELETING, PROC_REF(clear_ref), override = TRUE) + + if(isatom(target)) + RegisterSignal(target, COMSIG_ATOM_UPDATED_ICON, PROC_REF(on_target_icon_update)) /datum/action/proc/should_draw_cooldown() return !IsAvailable() @@ -79,10 +98,10 @@ UnregisterSignal(owner, COMSIG_PARENT_QDELETING) owner = null -/datum/action/proc/UpdateButtons(status_only, force) - for(var/datum/hud/hud in viewers) - var/atom/movable/screen/movable/button = viewers[hud] - UpdateButton(button, status_only, force) +/// Builds / updates all buttons we have shared or given out +/datum/action/proc/build_all_button_icons(update_flags = ALL, force) + for(var/datum/hud/hud as anything in viewers) + build_button_icon(viewers[hud], update_flags, force) /datum/action/proc/Trigger(left_click = TRUE) if(!IsAvailable()) @@ -123,31 +142,60 @@ return FALSE return TRUE -/datum/action/proc/UpdateButton(atom/movable/screen/movable/action_button/button, status_only = FALSE, force = FALSE) +/** + * Builds the icon of the button. + * + * Concept: + * - Underlay (Background icon) + * - Icon (button icon) + * - Maptext + * - Overlay (Background border) + * + * button - which button we are modifying the icon of + * force - whether we're forcing a full update + */ +/datum/action/proc/build_button_icon(atom/movable/screen/movable/action_button/button, update_flags = ALL, force = FALSE) if(!button) return - if(!status_only) - button.name = name - if(desc) - button.desc = "[desc] [initial(button.desc)]" - if(owner?.hud_used && button_background_icon_state == ACTION_BUTTON_DEFAULT_BACKGROUND) - var/list/settings = owner.hud_used.get_action_buttons_icons() - if(button.icon != settings["bg_icon"]) - button.icon = settings["bg_icon"] - if(button.icon_state != settings["bg_state"]) - button.icon_state = settings["bg_state"] - else - if(button.icon != button_background_icon) - button.icon = button_background_icon - if(button.icon_state != button_background_icon_state) - button.icon_state = button_background_icon_state + if(update_flags & UPDATE_BUTTON_NAME) + update_button_name(button, force) + + if(update_flags & UPDATE_BUTTON_BACKGROUND) + apply_button_background(button, force) + + if(update_flags & UPDATE_BUTTON_ICON) + apply_button_icon(button, force) + + if(update_flags & UPDATE_BUTTON_OVERLAY) apply_button_overlay(button, force) + if(update_flags & UPDATE_BUTTON_STATUS) + update_button_status(button, force) + +/** + * Updates the name and description of the button to match our action name and discription. + * + * button - what button are we editing? + * force - whether an update is forced regardless of existing status + */ +/datum/action/proc/update_button_name(atom/movable/screen/movable/action_button/button, force = FALSE) + button.name = name + if(desc) + button.desc = desc + +/** + * Any other miscellaneous "status" updates within the action button is handled here, + * such as redding out when unavailable or modifying maptext. + * + * button - what button are we editing? + * force - whether an update is forced regardless of existing status + */ +/datum/action/proc/update_button_status(atom/movable/screen/movable/action_button/button, force = FALSE) + button.overlays -= unavailable_effect + button.maptext = "" if(should_draw_cooldown()) apply_unavailable_effect(button) - else - return TRUE //Give our action button to the player /datum/action/proc/GiveAction(mob/viewer) @@ -164,7 +212,7 @@ return - var/atom/movable/screen/movable/action_button/button = CreateButton() + var/atom/movable/screen/movable/action_button/button = create_button() SetId(button, viewer) button.our_hud = our_hud @@ -186,10 +234,11 @@ qdel(button) -/datum/action/proc/CreateButton() +/datum/action/proc/create_button() var/atom/movable/screen/movable/action_button/button = new() button.linked_action = src - button.name = name + build_button_icon(button, ALL, force = TRUE) + // TODO: Pull all of this into the build button structure somehow later button.actiontooltipstyle = buttontooltipstyle var/list/our_description = list() our_description += desc @@ -197,7 +246,6 @@ button.desc = our_description.Join(" ") return button - /datum/action/proc/SetId(atom/movable/screen/movable/action_button/our_button, mob/owner) //button id generation var/bitfield = 0 @@ -215,20 +263,97 @@ our_button.id = bitflag return -/datum/action/proc/apply_unavailable_effect(atom/movable/screen/movable/action_button/B) - var/image/img = image('icons/mob/screen_white.dmi', icon_state = "template") - img.alpha = 200 - img.appearance_flags = RESET_COLOR | RESET_ALPHA - img.color = "#000000" - img.plane = FLOAT_PLANE + 1 - B.add_overlay(img) +/datum/action/proc/apply_unavailable_effect(atom/movable/screen/movable/action_button/button) + if(isnull(unavailable_effect)) + unavailable_effect = mutable_appearance('icons/mob/screen_white.dmi', icon_state = "template") + unavailable_effect.alpha = 200 + unavailable_effect.appearance_flags = RESET_COLOR | RESET_ALPHA + unavailable_effect.color = "#000000" + unavailable_effect.plane = FLOAT_PLANE + 1 + button.overlays |= unavailable_effect +/** + * Applies any overlays to our button + * + * button - what button are we editing? + * force - whether an update is forced regardless of existing status + */ +/datum/action/proc/apply_button_overlay(atom/movable/screen/movable/action_button/button, force = FALSE) + SEND_SIGNAL(src, COMSIG_ACTION_OVERLAY_APPLY, button, force) -/datum/action/proc/apply_button_overlay(atom/movable/screen/movable/action_button/current_button) - current_button.cut_overlays() - if(button_overlay_icon && button_overlay_icon_state) - var/image/img = image(button_overlay_icon, current_button, button_overlay_icon_state) - img.appearance_flags = RESET_COLOR | RESET_ALPHA - img.pixel_x = 0 - img.pixel_y = 0 - current_button.add_overlay(img) + if(!overlay_icon || !overlay_icon_state || (button.active_overlay_icon_state == overlay_icon_state && !force)) + return + + button.cut_overlay(button.button_overlay) + button.button_overlay = mutable_appearance(icon = overlay_icon, icon_state = overlay_icon_state, appearance_flags = (RESET_COLOR|RESET_ALPHA)) + button.add_overlay(button.button_overlay) + button.active_overlay_icon_state = overlay_icon_state + +/// Checks if our action is actively selected. Used for selecting icons primarily. +/datum/action/proc/is_action_active(atom/movable/screen/movable/action_button/button) + return FALSE + +/** + * Creates the background underlay for the button + * + * button - what button are we editing? + * force - whether an update is forced regardless of existing status + */ +/datum/action/proc/apply_button_background(atom/movable/screen/movable/action_button/button, force = FALSE) + if(!background_icon || !background_icon_state || (button.active_underlay_icon_state == background_icon_state && !force)) + return + + // What icons we use for our background + var/list/icon_settings = list( + // The icon file + "bg_icon" = background_icon, + // The icon state, if is_action_active() returns FALSE + "bg_state" = background_icon_state, + // The icon state, if is_action_active() returns TRUE + "bg_state_active" = background_icon_state, + ) + + // If background_icon_state is ACTION_BUTTON_DEFAULT_BACKGROUND instead use our hud's action button scheme + if(background_icon_state == ACTION_BUTTON_DEFAULT_BACKGROUND && owner?.hud_used) + icon_settings = owner.hud_used.get_action_buttons_icons() + + // Determine which icon to use + var/used_icon_key = is_action_active(button) ? "bg_state_active" : "bg_state" + + // Make the underlay + button.underlays.Cut() + var/image/underlay = image(icon = icon_settings["bg_icon"], icon_state = icon_settings[used_icon_key]) + button.underlays += underlay + button.active_underlay_icon_state = icon_settings[used_icon_key] + +/** + * Applies our button icon and icon state to the button + * + * button - what button are we editing? + * force - whether an update is forced regardless of existing status + */ +/datum/action/proc/apply_button_icon(atom/movable/screen/movable/action_button/button, force = FALSE) + if(!button_icon || !button_icon_state || (button.icon_state == button_icon_state && !force)) + return + + button.icon = button_icon + button.icon_state = button_icon_state + +/// Updates our buttons if our target's icon was updated +/datum/action/proc/on_target_icon_update(datum/source, updates, updated) + SIGNAL_HANDLER // COMSIG_ATOM_UPDATED_ICON + + var/update_flag = NONE + var/forced = FALSE + if(updates & UPDATE_ICON_STATE) + update_flag |= UPDATE_BUTTON_ICON + forced = TRUE + if(updates & UPDATE_OVERLAYS) + update_flag |= UPDATE_BUTTON_OVERLAY + forced = TRUE + if(updates & (UPDATE_NAME|UPDATE_DESC)) + update_flag |= UPDATE_BUTTON_NAME + // Status is not relevant, and background is not relevant. Neither will change + + // Force the update if an icon state or overlay change was done + build_all_button_icons(update_flag, forced) diff --git a/code/datums/actions/item_action.dm b/code/datums/actions/item_action.dm index 8ad5b4cdd9f..eec08e49a57 100644 --- a/code/datums/actions/item_action.dm +++ b/code/datums/actions/item_action.dm @@ -1,17 +1,15 @@ //Presets for item actions /datum/action/item_action check_flags = AB_CHECK_RESTRAINED|AB_CHECK_STUNNED|AB_CHECK_HANDS_BLOCKED|AB_CHECK_CONSCIOUS - var/use_itemicon = TRUE + button_icon_state = null -/datum/action/item_action/New(Target, custom_icon, custom_icon_state) +/datum/action/item_action/New(Target) ..() var/obj/item/I = target I.actions += src - if(custom_icon && custom_icon_state) - use_itemicon = FALSE - button_overlay_icon = custom_icon - button_overlay_icon_state = custom_icon_state - UpdateButtons() + // If our button state is null, use the target's icon instead + if(target && isnull(button_icon_state)) + AddComponent(/datum/component/action_item_overlay, target) /datum/action/item_action/Destroy() var/obj/item/I = target @@ -27,25 +25,6 @@ I.ui_action_click(owner, type, left_click) return TRUE -/datum/action/item_action/apply_button_overlay(atom/movable/screen/movable/action_button/current_button) - if(use_itemicon) - if(target) - var/obj/item/I = target - var/old_layer = I.layer - var/old_plane = I.plane - var/old_appearance_flags = I.appearance_flags - I.layer = FLOAT_LAYER //AAAH - I.plane = FLOAT_PLANE //^ what that guy said - I.appearance_flags |= RESET_COLOR | RESET_ALPHA - current_button.cut_overlays() - current_button.add_overlay(I) - I.layer = old_layer - I.plane = old_plane - I.appearance_flags = old_appearance_flags - else - ..() - - /datum/action/item_action/toggle_light name = "Toggle Light" @@ -60,13 +39,11 @@ /datum/action/item_action/print_forensic_report name = "Print Report" - button_overlay_icon_state = "scanner_print" - use_itemicon = FALSE + button_icon_state = "scanner_print" /datum/action/item_action/clear_records name = "Clear Scanner Records" - button_overlay_icon_state = "scanner_clear" - use_itemicon = FALSE + button_icon_state = "scanner_clear" /datum/action/item_action/toggle_gunlight name = "Toggle Gunlight" @@ -86,14 +63,9 @@ /datum/action/item_action/set_internals name = "Set Internals" -/datum/action/item_action/set_internals/UpdateButton(atom/movable/screen/movable/action_button/button, status_only = FALSE, force) - if(!..()) // no button available - return - if(!iscarbon(owner)) - return - var/mob/living/carbon/C = owner - if(target == C.internal) - button.icon_state = "template_active" +/datum/action/item_action/set_internals/is_action_active(atom/movable/screen/movable/action_button/button) + var/mob/living/carbon/carbon_owner = owner + return istype(carbon_owner) && target == carbon_owner.internal /datum/action/item_action/toggle_mister name = "Toggle Mister" @@ -121,27 +93,27 @@ /datum/action/item_action/toggle_unfriendly_fire name = "Toggle Friendly Fire \[ON\]" desc = "Toggles if the club's blasts cause friendly fire." - button_overlay_icon_state = "vortex_ff_on" + button_icon_state = "vortex_ff_on" /datum/action/item_action/toggle_unfriendly_fire/Trigger(left_click) if(..()) - UpdateButtons() + build_all_button_icons() -/datum/action/item_action/toggle_unfriendly_fire/UpdateButtons() +/datum/action/item_action/toggle_unfriendly_fire/build_all_button_icons(update_flags, force) if(istype(target, /obj/item/hierophant_club)) var/obj/item/hierophant_club/H = target if(H.friendly_fire_check) - button_overlay_icon_state = "vortex_ff_off" + button_icon_state = "vortex_ff_off" name = "Toggle Friendly Fire \[OFF\]" else - button_overlay_icon_state = "vortex_ff_on" + button_icon_state = "vortex_ff_on" name = "Toggle Friendly Fire \[ON\]" ..() /datum/action/item_action/vortex_recall name = "Vortex Recall" desc = "Recall yourself, and anyone nearby, to an attuned hierophant beacon at any time.
If the beacon is still attached, will detach it." - button_overlay_icon_state = "vortex_recall" + button_icon_state = "vortex_recall" /datum/action/item_action/vortex_recall/IsAvailable() if(istype(target, /obj/item/hierophant_club)) @@ -278,7 +250,7 @@ /datum/action/item_action/toggle_research_scanner name = "Toggle Research Scanner" - button_overlay_icon_state = "scan_mode" + button_icon_state = "scan_mode" /datum/action/item_action/toggle_research_scanner/Trigger(left_click) if(IsAvailable()) @@ -293,8 +265,8 @@ /datum/action/item_action/toggle_research_scanner/apply_button_overlay(atom/movable/screen/movable/action_button/current_button) current_button.cut_overlays() - if(button_overlay_icon && button_overlay_icon_state) - var/image/img = image(button_overlay_icon, current_button, "scan_mode") + if(button_icon && button_icon_state) + var/image/img = image(button_icon, current_button, "scan_mode") img.appearance_flags = RESET_COLOR | RESET_ALPHA current_button.overlays += img @@ -320,15 +292,13 @@ /datum/action/item_action/slipping name = "Tactical Slip" desc = "Activates the clown shoes' ankle-stimulating module, allowing the user to do a short slip forward going under anyone." - button_overlay_icon_state = "clown" + button_icon_state = "clown" // Jump boots /datum/action/item_action/bhop name = "Activate Jump Boots" desc = "Activates the jump boot's internal propulsion system, allowing the user to dash over 4-wide gaps." - button_overlay_icon_state = "jetboot" - use_itemicon = FALSE - + button_icon_state = "jetboot" /datum/action/item_action/gravity_jump name = "Gravity jump" @@ -408,3 +378,4 @@ /datum/action/item_action/call_link name = "Call MODlink" + diff --git a/code/datums/actions/spell_action.dm b/code/datums/actions/spell_action.dm index 60d57021f51..739338a06a0 100644 --- a/code/datums/actions/spell_action.dm +++ b/code/datums/actions/spell_action.dm @@ -1,6 +1,6 @@ //Preset for spells /datum/action/spell_action - button_background_icon_state = "bg_spell" + background_icon_state = "bg_spell" var/recharge_text_color = "#FFFFFF" /datum/action/spell_action/New(Target) @@ -9,12 +9,11 @@ S.action = src name = S.name desc = S.desc - button_overlay_icon = S.action_icon - button_background_icon = S.action_background_icon - button_overlay_icon_state = S.action_icon_state - button_background_icon_state = S.action_background_icon_state - UpdateButtons() - + button_icon = S.action_icon + button_icon_state = S.action_icon_state + background_icon = S.action_background_icon + background_icon_state = S.action_background_icon_state + build_all_button_icons() /datum/action/spell_action/Destroy() var/datum/spell/S = target @@ -53,17 +52,17 @@ if(!istype(S)) return ..() - var/alpha = S.cooldown_handler.get_cooldown_alpha() + unavailable_effect = mutable_appearance('icons/mob/screen_white.dmi', icon_state = "template") + unavailable_effect.appearance_flags = RESET_COLOR | RESET_ALPHA + unavailable_effect.color = "#000000" + unavailable_effect.plane = FLOAT_PLANE + 1 + unavailable_effect.alpha = S.cooldown_handler.get_cooldown_alpha() - var/image/img = image('icons/mob/screen_white.dmi', icon_state = "template") - img.alpha = alpha - img.appearance_flags = RESET_COLOR | RESET_ALPHA - img.color = "#000000" - img.plane = FLOAT_PLANE + 1 - button.add_overlay(img) // Make a holder for the charge text - var/image/count_down_holder = image('icons/effects/effects.dmi', icon_state = "nothing") - count_down_holder.plane = FLOAT_PLANE + 1.1 + var/image/count_down_holder = mutable_appearance('icons/effects/effects.dmi', icon_state = "nothing", appearance_flags = RESET_COLOR | RESET_ALPHA) var/text = S.cooldown_handler.cooldown_info() + count_down_holder.maptext_y = 4 count_down_holder.maptext = "
[text]
" - button.add_overlay(count_down_holder) + unavailable_effect.add_overlay(count_down_holder) + + button.overlays |= unavailable_effect diff --git a/code/datums/components/action_item_overlay.dm b/code/datums/components/action_item_overlay.dm new file mode 100644 index 00000000000..bb5a049edbf --- /dev/null +++ b/code/datums/components/action_item_overlay.dm @@ -0,0 +1,81 @@ +/** + * Apply to an action to allow it to take an item + * and apply it as an overlay of the action button + */ +/datum/component/action_item_overlay + /// UID of the item the component uses to apply as an overlay. + var/item_uid + /// Callback that dictates what item the component uses to apply as an overlay. + var/datum/callback/item_callback + + /// The appearance of the item we've applied + var/mutable_appearance/item_appearance + +/datum/component/action_item_overlay/Initialize(atom/movable/item, datum/callback/item_callback) + if(!istype(parent, /datum/action)) + return COMPONENT_INCOMPATIBLE + + if(item && !istype(item)) + stack_trace("[type] created with a non-null, non-movable item; item must be null or movable") + return COMPONENT_INCOMPATIBLE + + if(!item && !item_callback) + stack_trace("[type] created without a reference item or an item callback - one or the other is required.") + return COMPONENT_INCOMPATIBLE + + src.item_uid = item.UID() + src.item_callback = item_callback + +/datum/component/action_item_overlay/Destroy(force) + item_uid = null + item_callback = null + item_appearance = null + return ..() + +/datum/component/action_item_overlay/RegisterWithParent() + RegisterSignal(parent, COMSIG_ACTION_OVERLAY_APPLY, PROC_REF(on_overlays_applied)) + + var/datum/action/parent_action = parent + parent_action.build_all_button_icons(UPDATE_BUTTON_OVERLAY) + +/datum/component/action_item_overlay/UnregisterFromParent() + UnregisterSignal(parent, COMSIG_ACTION_OVERLAY_APPLY) + + // If we're being unregistered / deleted but our parent is sticking around, + // force an overlay update to get rid of our item appearance + if(!QDELING(parent)) + var/datum/action/parent_action = parent + parent_action.build_all_button_icons(UPDATE_BUTTON_OVERLAY) + +/// Signal proc for [COMSIG_ACTION_OVERLAY_APPLY], applies the item appearance if possible. +/datum/component/action_item_overlay/proc/on_overlays_applied(datum/action/source, atom/movable/screen/movable/action_button/current_button, force) + SIGNAL_HANDLER + + // We're in the middle of being removed / deleted, remove our associated overlay + if(QDELING(src)) + if(item_appearance) + current_button.cut_overlay(item_appearance) + item_appearance = null + return + + var/atom/movable/muse = item_callback?.Invoke() || locateUID(item_uid) + if(!istype(muse)) + if(item_appearance) // New item does not exist but we have an old appearance + current_button.cut_overlay(item_appearance) + item_appearance = null + return + + if(item_appearance) + // For caching purposes, we will try not to update if we don't need to + if(!force && item_appearance.icon == muse.icon && item_appearance.icon_state == muse.icon_state) + return + current_button.cut_overlay(item_appearance) + + var/mutable_appearance/muse_appearance = new(muse.appearance) + muse_appearance.plane = FLOAT_PLANE + muse_appearance.layer = FLOAT_LAYER + muse_appearance.pixel_x = 0 + muse_appearance.pixel_y = 0 + + current_button.add_overlay(muse_appearance) + item_appearance = muse_appearance diff --git a/code/datums/components/scope.dm b/code/datums/components/scope.dm index 324896538d9..37b046a8791 100644 --- a/code/datums/components/scope.dm +++ b/code/datums/components/scope.dm @@ -276,4 +276,4 @@ /datum/action/zoom name = "Toggle Scope" check_flags = AB_CHECK_CONSCIOUS|AB_CHECK_RESTRAINED|AB_CHECK_STUNNED|AB_CHECK_LYING - button_overlay_icon_state = "sniper_zoom" + button_icon_state = "sniper_zoom" diff --git a/code/datums/holocall.dm b/code/datums/holocall.dm index e7248ca6594..28c075bcc1f 100644 --- a/code/datums/holocall.dm +++ b/code/datums/holocall.dm @@ -168,7 +168,7 @@ /// The hangup action handler, for handling the hangup button displayed in the top left corner of the screen /datum/action/innate/end_holocall name = "End Holocall" - button_overlay_icon_state = "camera_off" + button_icon_state = "camera_off" var/datum/holocall/hcall /datum/action/innate/end_holocall/New(Target, datum/holocall/HC) diff --git a/code/datums/spell_cooldown/spell_charges.dm b/code/datums/spell_cooldown/spell_charges.dm index 47803609ab2..e2e33b3653b 100644 --- a/code/datums/spell_cooldown/spell_charges.dm +++ b/code/datums/spell_cooldown/spell_charges.dm @@ -28,7 +28,7 @@ if(recharge_time > world.time) return FALSE current_charges++ - spell_parent.action.UpdateButtons() + spell_parent.action.build_all_button_icons() if(current_charges < max_charges) // we have more recharges to go recharge_time = world.time + recharge_duration return FALSE diff --git a/code/datums/spell_cooldown/spell_cooldown.dm b/code/datums/spell_cooldown/spell_cooldown.dm index 9ac6dbf4520..62b0a71a7df 100644 --- a/code/datums/spell_cooldown/spell_cooldown.dm +++ b/code/datums/spell_cooldown/spell_cooldown.dm @@ -33,7 +33,7 @@ if(!spell_parent.action) stack_trace("[spell_parent.type] ended up with a null action") return PROCESS_KILL - spell_parent.action.UpdateButtons() + spell_parent.action.build_all_button_icons() if(should_end_cooldown()) return PROCESS_KILL @@ -58,7 +58,7 @@ else recharge_time = get_recharge_time() if(spell_parent.action) - spell_parent.action.UpdateButtons() + spell_parent.action.build_all_button_icons() START_PROCESSING(SSfastprocess, src) /datum/spell_cooldown/proc/revert_cast() diff --git a/code/datums/spells/alien_spells/basetype_alien_spell.dm b/code/datums/spells/alien_spells/basetype_alien_spell.dm index 02ac8ddab2a..f832e490e59 100644 --- a/code/datums/spells/alien_spells/basetype_alien_spell.dm +++ b/code/datums/spells/alien_spells/basetype_alien_spell.dm @@ -15,7 +15,7 @@ Updates the spell's actions on use as well, so they know when they can or can't vessel.stored_plasma = clamp(vessel.stored_plasma + amount, 0, vessel.max_plasma) update_plasma_display(src) for(var/datum/action/spell_action/action in actions) - action.UpdateButtons() + action.build_all_button_icons() /datum/spell/alien_spell action_background_icon_state = "bg_alien" @@ -35,7 +35,7 @@ Updates the spell's actions on use as well, so they know when they can or can't name = "[name] ([plasma_cost])" action.name = name action.desc = desc - action.UpdateButtons() + action.build_all_button_icons() /datum/spell/alien_spell/write_custom_logs(list/targets, mob/user) user.create_log(ATTACK_LOG, "Cast the spell [name]") diff --git a/code/datums/spells/alien_spells/neurotoxin_spit.dm b/code/datums/spells/alien_spells/neurotoxin_spit.dm index 4886e28a179..55048177d82 100644 --- a/code/datums/spells/alien_spells/neurotoxin_spit.dm +++ b/code/datums/spells/alien_spells/neurotoxin_spit.dm @@ -14,8 +14,8 @@ /datum/spell/alien_spell/neurotoxin/update_spell_icon() if(!action) return - action.button_overlay_icon_state = "alien_neurotoxin_[active]" - action.UpdateButtons() + action.button_icon_state = "alien_neurotoxin_[active]" + action.build_all_button_icons() /datum/spell/alien_spell/neurotoxin/cast(list/targets, mob/living/carbon/user) var/target = targets[1] diff --git a/code/datums/spells/lichdom.dm b/code/datums/spells/lichdom.dm index 4df3537367f..45073690978 100644 --- a/code/datums/spells/lichdom.dm +++ b/code/datums/spells/lichdom.dm @@ -105,7 +105,7 @@ if(action) action.name = name action.desc = desc - UpdateButtons() + build_all_button_icons() target.name = "ensouled [target.name]" target.desc += "
A terrible aura surrounds this item, its very existence is offensive to life itself..." diff --git a/code/datums/spells/spell_base.dm b/code/datums/spells/spell_base.dm index b6bd4ed4e43..f783b871951 100644 --- a/code/datums/spells/spell_base.dm +++ b/code/datums/spells/spell_base.dm @@ -212,7 +212,7 @@ GLOBAL_LIST_INIT(spells, typesof(/datum/spell)) custom_handler?.spend_spell_cost(user, src) if(action) - action.UpdateButtons() + action.build_all_button_icons() /datum/spell/proc/invocation(mob/user) //spelling the spell out and setting it on recharge/reducing charges amount switch(invocation_type) @@ -350,7 +350,7 @@ GLOBAL_LIST_INIT(spells, typesof(/datum/spell)) cast(targets, user = user) after_cast(targets, user) if(action) - action.UpdateButtons() + action.build_all_button_icons() /** * Will write additional logs if create_custom_logs is TRUE and the caster has a ckey. Override this @@ -421,11 +421,11 @@ GLOBAL_LIST_INIT(spells, typesof(/datum/spell)) custom_handler?.revert_cast(user, src) if(action) - action.UpdateButtons() + action.build_all_button_icons() -/datum/spell/proc/UpdateButtons() +/datum/spell/proc/build_all_button_icons() if(action) - action.UpdateButtons() + action.build_all_button_icons() /datum/spell/proc/adjust_var(mob/living/target = usr, type, amount) //handles the adjustment of the var when the spell is used. has some hardcoded types switch(type) diff --git a/code/datums/spells/wizard_spells.dm b/code/datums/spells/wizard_spells.dm index 6d94d5fe0bc..6b285e68557 100644 --- a/code/datums/spells/wizard_spells.dm +++ b/code/datums/spells/wizard_spells.dm @@ -340,8 +340,8 @@ /datum/spell/fireball/update_spell_icon() if(!action) return - action.button_overlay_icon_state = "fireball[active]" - action.UpdateButtons() + action.button_icon_state = "fireball[active]" + action.build_all_button_icons() /datum/spell/fireball/cast(list/targets, mob/living/user = usr) var/target = targets[1] //There is only ever one target for fireball diff --git a/code/game/gamemodes/cult/blood_magic.dm b/code/game/gamemodes/cult/blood_magic.dm index 5366ffd69e0..9e36133dc96 100644 --- a/code/game/gamemodes/cult/blood_magic.dm +++ b/code/game/gamemodes/cult/blood_magic.dm @@ -1,7 +1,7 @@ /// Blood magic handles the creation of blood spells (formerly talismans) /datum/action/innate/cult/blood_magic name = "Prepare Blood Magic" - button_overlay_icon_state = "carve" + button_icon_state = "carve" desc = "Prepare blood magic by carving runes into your flesh. This is easier with an empowering rune." default_button_position = DEFAULT_BLOODSPELLS var/list/spells = list() @@ -74,7 +74,7 @@ /// The next generation of talismans, handles storage/creation of blood magic /datum/action/innate/cult/blood_spell name = "Blood Magic" - button_overlay_icon_state = "telerune" + button_icon_state = "telerune" desc = "Fear the Old Blood." default_button_position = SCRN_OBJ_CULT_LIST var/charges = 1 @@ -86,7 +86,11 @@ var/health_cost = 0 /// Have we already been positioned into our starting location? var/positioned = FALSE + var/mutable_appearance/button_charge_count +/datum/action/innate/cult/blood_spell/New(target) + . = ..() + button_charge_count = image('icons/effects/effects.dmi', icon_state = "nothing") /datum/action/innate/cult/blood_spell/proc/get_panel_text() if(initial(charges) == 1) @@ -94,14 +98,17 @@ var/available_charges = hand_magic ? "[hand_magic.uses]" : "[charges]" return "[available_charges]/[initial(charges)]" -/datum/action/innate/cult/blood_spell/UpdateButton(atom/movable/screen/movable/action_button/button, status_only, force) +/datum/action/innate/cult/blood_spell/update_button_status(atom/movable/screen/movable/action_button/button, force) . = ..() + if(!button) + return + button.overlays -= button_charge_count + var/text = get_panel_text() if(!text || !button) return - var/image/count_down_holder = image('icons/effects/effects.dmi', icon_state = "nothing") - count_down_holder.maptext = "
[text]
" - button.add_overlay(count_down_holder) + button_charge_count.maptext = "
[text]
" + button.overlays |= button_charge_count /datum/action/innate/cult/blood_spell/Grant(mob/living/owner, datum/action/innate/cult/blood_magic/BM) if(health_cost) @@ -148,21 +155,21 @@ /datum/action/innate/cult/blood_spell/stun name = "Stun" desc = "Will knock down and mute a victim on contact. Strike them with a cult blade to complete the invocation, stunning them and extending the mute." - button_overlay_icon_state = "stun" + button_icon_state = "stun" magic_path = /obj/item/melee/blood_magic/stun health_cost = 10 /datum/action/innate/cult/blood_spell/teleport name = "Teleport" desc = "Empowers your hand to teleport yourself or another cultist to a teleport rune on contact." - button_overlay_icon_state = "teleport" + button_icon_state = "teleport" magic_path = /obj/item/melee/blood_magic/teleport health_cost = 7 /datum/action/innate/cult/blood_spell/emp name = "Electromagnetic Pulse" desc = "Releases an Electromagnetic Pulse, affecting nearby non-cultists. The pulse will still affect you." - button_overlay_icon_state = "emp" + button_icon_state = "emp" health_cost = 10 invocation = "Ta'gh fara'qha fel d'amar det!" @@ -198,24 +205,24 @@ /datum/action/innate/cult/blood_spell/shackles name = "Shadow Shackles" desc = "Empowers your hand to start handcuffing victim on contact, and mute them if successful." - button_overlay_icon_state = "shackles" + button_icon_state = "shackles" charges = 4 magic_path = /obj/item/melee/blood_magic/shackles /datum/action/innate/cult/blood_spell/construction name = "Twisted Construction" desc = "Empowers your hand to corrupt certain metalic objects.
Converts:
Plasteel into runed metal
50 metal into a construct shell
Cyborg shells into construct shells
Airlocks into brittle runed airlocks after a delay (harm intent)" - button_overlay_icon_state = "transmute" + button_icon_state = "transmute" magic_path = "/obj/item/melee/blood_magic/construction" health_cost = 12 /datum/action/innate/cult/blood_spell/dagger name = "Summon Dagger" desc = "Summon a ritual dagger, necessary to scribe runes." - button_overlay_icon_state = "cult_dagger" + button_icon_state = "cult_dagger" /datum/action/innate/cult/blood_spell/dagger/New() - button_overlay_icon_state = GET_CULT_DATA(dagger_icon, "cult_dagger") + button_icon_state = GET_CULT_DATA(dagger_icon, "cult_dagger") ..() /datum/action/innate/cult/blood_spell/dagger/Activate() @@ -238,13 +245,13 @@ /datum/action/innate/cult/blood_spell/equipment name = "Summon Equipment" desc = "Empowers your hand to summon combat gear onto a cultist you touch, including cult armor into open slots, a cult bola, and a cult sword." - button_overlay_icon_state = "equip" + button_icon_state = "equip" magic_path = /obj/item/melee/blood_magic/armor /datum/action/innate/cult/blood_spell/horror name = "Hallucinations" desc = "Gives hallucinations to a target at range. A silent and invisible spell." - button_overlay_icon_state = "horror" + button_icon_state = "horror" var/datum/spell/horror/PH charges = 4 @@ -296,10 +303,9 @@ var/mob/living/carbon/human/H = target H.Hallucinate(120 SECONDS) attached_action.charges-- - attached_action.UpdateButtons() attached_action.desc = attached_action.base_desc attached_action.desc += "
Has [attached_action.charges] use\s remaining." - attached_action.UpdateButtons() + attached_action.build_all_button_icons() user.ranged_ability.remove_ranged_ability(user, "[H] has been cursed with living nightmares!") if(attached_action.charges <= 0) to_chat(ranged_ability_user, "You have exhausted the spell's power!") @@ -309,7 +315,7 @@ name = "Conceal Presence" desc = "Alternates between hiding and revealing nearby cult structures, cult airlocks and runes." invocation = "Kla'atu barada nikt'o!" - button_overlay_icon_state = "veiling" + button_icon_state = "veiling" charges = 10 var/revealing = FALSE //if it reveals or not @@ -329,7 +335,7 @@ O.cult_conceal() revealing = TRUE // Switch on use name = "Reveal Runes" - button_overlay_icon_state = "revealing" + button_icon_state = "revealing" else // Unhiding stuff owner.visible_message("A flash of light shines from [owner]'s hand!", \ @@ -344,19 +350,19 @@ O.cult_reveal() revealing = FALSE // Switch on use name = "Conceal Runes" - button_overlay_icon_state = "veiling" + button_icon_state = "veiling" if(charges <= 0) qdel(src) desc = "[revealing ? "Reveals" : "Conceals"] nearby cult structures, airlocks, and runes." desc += "
Has [charges] use\s remaining." - UpdateButtons() + build_all_button_icons() /datum/action/innate/cult/blood_spell/manipulation name = "Blood Rites" desc = "Empowers your hand to manipulate blood. Use on blood or a noncultist to absorb blood to be used later, use on yourself or another cultist to heal them using absorbed blood. \ \nUse the spell in-hand to cast advanced rites, such as summoning a magical blood spear, firing blood projectiles out of your hands, and more!" invocation = "Fel'th Dol Ab'orod!" - button_overlay_icon_state = "manip" + button_icon_state = "manip" charges = 5 magic_path = /obj/item/melee/blood_magic/manipulator @@ -403,7 +409,7 @@ source.charges = uses source.desc = source.base_desc source.desc += "
Has [uses] use\s remaining." - source.UpdateButtons() + source.build_all_button_icons() return ..() /obj/item/melee/blood_magic/customised_abstract_text(mob/living/carbon/owner) @@ -436,7 +442,7 @@ else if(source) source.desc = source.base_desc source.desc += "
Has [uses] use\s remaining." - source.UpdateButtons() + source.build_all_button_icons() //The spell effects @@ -576,7 +582,7 @@ user.visible_message("This victim doesn't have enough arms to complete the restraint!") return CuffAttack(C, user) - source.UpdateButtons() + source.build_all_button_icons() ..() /obj/item/melee/blood_magic/shackles/proc/CuffAttack(mob/living/carbon/C, mob/living/user) @@ -872,12 +878,12 @@ target.clean_blood() else steal_blood(user, target) - source.UpdateButtons() + source.build_all_button_icons() return if(isconstruct(target)) heal_construct(user, target) - source.UpdateButtons() + source.build_all_button_icons() return if(istype(target, /obj/item/blood_orb)) @@ -887,10 +893,10 @@ to_chat(user, "You obtain [candidate.blood] blood from the orb of blood!") playsound(user, 'sound/misc/enter_blood.ogg', 50, extrarange = SOUND_RANGE_SET(7)) qdel(candidate) - source.UpdateButtons() + source.build_all_button_icons() return blood_draw(target, user) - source.UpdateButtons() + source.build_all_button_icons() /obj/item/melee/blood_magic/manipulator/proc/blood_draw(atom/target, mob/living/carbon/human/user) var/temp = 0 @@ -994,4 +1000,4 @@ to_chat(user, "You need a free hand for this rite!") uses += BLOOD_BARRAGE_COST // Refund the charges qdel(rite) - source.UpdateButtons() + source.build_all_button_icons() diff --git a/code/game/gamemodes/cult/cult_actions.dm b/code/game/gamemodes/cult/cult_actions.dm index 0fc42ddf9fe..fc3dc0aaae7 100644 --- a/code/game/gamemodes/cult/cult_actions.dm +++ b/code/game/gamemodes/cult/cult_actions.dm @@ -1,6 +1,6 @@ /datum/action/innate/cult - button_overlay_icon = 'icons/mob/actions/actions_cult.dmi' - button_background_icon_state = "bg_cult" + button_icon = 'icons/mob/actions/actions_cult.dmi' + background_icon_state = "bg_cult" check_flags = AB_CHECK_RESTRAINED|AB_CHECK_STUNNED|AB_CHECK_CONSCIOUS buttontooltipstyle = "cult" @@ -14,7 +14,7 @@ /datum/action/innate/cult/comm name = "Communion" desc = "Whispered words that all cultists can hear.
Warning:Nearby non-cultists can still hear you." - button_overlay_icon_state = "cult_comms" + button_icon_state = "cult_comms" check_flags = AB_CHECK_CONSCIOUS /datum/action/innate/cult/comm/Activate() @@ -87,12 +87,12 @@ //Objectives /datum/action/innate/cult/check_progress name = "Study the Veil" - button_overlay_icon_state = "tome" + button_icon_state = "tome" desc = "Check your cult's current progress and objective." check_flags = AB_CHECK_CONSCIOUS /datum/action/innate/cult/check_progress/New() - button_overlay_icon_state = GET_CULT_DATA(tome_icon, "tome") + button_icon_state = GET_CULT_DATA(tome_icon, "tome") ..() /datum/action/innate/cult/check_progress/IsAvailable() @@ -111,11 +111,11 @@ /datum/action/innate/cult/use_dagger name = "Draw Blood Rune" desc = "Use the ritual dagger to create a powerful blood rune." - button_overlay_icon_state = "blood_dagger" + button_icon_state = "blood_dagger" default_button_position = "10:29,4:-2" /datum/action/innate/cult/use_dagger/Grant() - button_overlay_icon_state = GET_CULT_DATA(dagger_icon, "blood_dagger") + button_icon_state = GET_CULT_DATA(dagger_icon, "blood_dagger") ..() /datum/action/innate/cult/use_dagger/Activate() diff --git a/code/game/gamemodes/cult/cult_items.dm b/code/game/gamemodes/cult/cult_items.dm index 0c832552ab1..3bbc69ada00 100644 --- a/code/game/gamemodes/cult/cult_items.dm +++ b/code/game/gamemodes/cult/cult_items.dm @@ -634,7 +634,7 @@ /datum/action/innate/cult/spear name = "Bloody Bond" desc = "Recall the blood spear to your hand." - button_overlay_icon_state = "bloodspear" + button_icon_state = "bloodspear" default_button_position = "11:31,4:-2" var/obj/item/cult_spear/spear var/cooldown = 0 diff --git a/code/game/gamemodes/malfunction/Malf_Modules.dm b/code/game/gamemodes/malfunction/Malf_Modules.dm index eb64cbf6ebc..8c15e1bc1e0 100644 --- a/code/game/gamemodes/malfunction/Malf_Modules.dm +++ b/code/game/gamemodes/malfunction/Malf_Modules.dm @@ -76,7 +76,7 @@ if(QDELETED(src) || uses) //Not sure if not having src here would cause a runtime, so it's here to be safe return desc = "[initial(desc)] It has [uses] use\s remaining." - UpdateButtons() + build_all_button_icons() /datum/spell/ai_spell/proc/check_camera_vision(mob/user, atom/target) var/turf/target_turf = get_turf(target) @@ -207,7 +207,7 @@ else //Adding uses to an existing module action.uses += initial(action.uses) action.desc = "[initial(action.desc)] It has [action.uses] use\s remaining." - action.UpdateButtons() + action.build_all_button_icons() temp = "Additional use[action.uses > 1 ? "s" : ""] added to [action.name]!" processing_time -= AM.cost diff --git a/code/game/gamemodes/miniantags/abduction/machinery/abductor_camera.dm b/code/game/gamemodes/miniantags/abduction/machinery/abductor_camera.dm index 654f550d503..a7810d43556 100644 --- a/code/game/gamemodes/miniantags/abduction/machinery/abductor_camera.dm +++ b/code/game/gamemodes/miniantags/abduction/machinery/abductor_camera.dm @@ -69,7 +69,7 @@ /datum/action/innate/teleport_in name = "Send To" - button_overlay_icon_state = "beam_down" + button_icon_state = "beam_down" /datum/action/innate/teleport_in/Activate() if(!target || !iscarbon(owner)) @@ -83,7 +83,7 @@ /datum/action/innate/teleport_out name = "Retrieve" - button_overlay_icon_state = "beam_up" + button_icon_state = "beam_up" /datum/action/innate/teleport_out/Activate() if(!target || !iscarbon(owner)) @@ -96,7 +96,7 @@ /datum/action/innate/teleport_self name = "Send Self" - button_overlay_icon_state = "beam_down" + button_icon_state = "beam_down" /datum/action/innate/teleport_self/Activate() if(!target || !iscarbon(owner)) @@ -110,7 +110,7 @@ /datum/action/innate/vest_mode_swap name = "Switch Vest Mode" - button_overlay_icon_state = "vest_mode" + button_icon_state = "vest_mode" /datum/action/innate/vest_mode_swap/Activate() if(!target || !iscarbon(owner)) @@ -121,7 +121,7 @@ /datum/action/innate/vest_disguise_swap name = "Switch Vest Disguise" - button_overlay_icon_state = "vest_disguise" + button_icon_state = "vest_disguise" /datum/action/innate/vest_disguise_swap/Activate() if(!target || !iscarbon(owner)) @@ -131,7 +131,7 @@ /datum/action/innate/set_droppoint name = "Set Experiment Release Point" - button_overlay_icon_state = "set_drop" + button_icon_state = "set_drop" /datum/action/innate/set_droppoint/Activate() if(!target || !iscarbon(owner)) diff --git a/code/game/gamemodes/miniantags/demons/shadow_demon/shadow_demon.dm b/code/game/gamemodes/miniantags/demons/shadow_demon/shadow_demon.dm index ed9e02690b6..90d5313d5fb 100644 --- a/code/game/gamemodes/miniantags/demons/shadow_demon/shadow_demon.dm +++ b/code/game/gamemodes/miniantags/demons/shadow_demon/shadow_demon.dm @@ -170,8 +170,8 @@ AddSpell(new /datum/spell/fireball/shadow_grapple) var/datum/spell/bloodcrawl/shadow_crawl/S = new AddSpell(S) - whisper_action.button_overlay_icon_state = "shadow_whisper" - whisper_action.button_background_icon_state = "shadow_demon_bg" + whisper_action.button_icon_state = "shadow_whisper" + whisper_action.background_icon_state = "shadow_demon_bg" if(istype(loc, /obj/effect/dummy/slaughter)) S.phased = TRUE RegisterSignal(loc, COMSIG_MOVABLE_MOVED, TYPE_PROC_REF(/mob/living/simple_animal/demon/shadow, check_darkness)) diff --git a/code/game/gamemodes/miniantags/demons/slaughter_demon/slaughter.dm b/code/game/gamemodes/miniantags/demons/slaughter_demon/slaughter.dm index 96f4257fff6..a07f50aa10b 100644 --- a/code/game/gamemodes/miniantags/demons/slaughter_demon/slaughter.dm +++ b/code/game/gamemodes/miniantags/demons/slaughter_demon/slaughter.dm @@ -164,8 +164,8 @@ /datum/action/innate/demon_whisper name = "Demonic Whisper" - button_overlay_icon_state = "demon_comms" - button_background_icon_state = "bg_demon" + button_icon_state = "demon_comms" + background_icon_state = "bg_demon" /datum/action/innate/demon_whisper/IsAvailable() return ..() diff --git a/code/game/gamemodes/miniantags/guardian/host_actions.dm b/code/game/gamemodes/miniantags/guardian/host_actions.dm index e21f2509415..957c94ee55d 100644 --- a/code/game/gamemodes/miniantags/guardian/host_actions.dm +++ b/code/game/gamemodes/miniantags/guardian/host_actions.dm @@ -5,8 +5,8 @@ */ /datum/action/guardian name = "Generic guardian host action" - button_overlay_icon = 'icons/mob/guardian.dmi' - button_overlay_icon_state = "base" + button_icon = 'icons/mob/guardian.dmi' + button_icon_state = "base" var/mob/living/simple_animal/hostile/guardian/guardian /datum/action/guardian/Grant(mob/M, mob/living/simple_animal/hostile/guardian/G) @@ -24,7 +24,7 @@ /datum/action/guardian/communicate name = "Communicate" desc = "Communicate telepathically with your guardian." - button_overlay_icon_state = "communicate" + button_icon_state = "communicate" /datum/action/guardian/communicate/Trigger(left_click) var/input = tgui_input_text(owner, "Enter a message to tell your guardian:", "Message") @@ -50,7 +50,7 @@ /datum/action/guardian/recall name = "Recall Guardian" desc = "Forcibly recall your guardian." - button_overlay_icon_state = "recall" + button_icon_state = "recall" /datum/action/guardian/recall/Trigger(left_click) guardian.Recall() @@ -63,7 +63,7 @@ /datum/action/guardian/reset_guardian name = "Replace Guardian Player" desc = "Replace your guardian's player with a ghost. This can only be done once." - button_overlay_icon_state = "reset" + button_icon_state = "reset" var/cooldown_timer /datum/action/guardian/reset_guardian/IsAvailable() @@ -82,7 +82,7 @@ // Do this immediately, so the user can't spam a bunch of polls. cooldown_timer = addtimer(CALLBACK(src, PROC_REF(reset_cooldown)), 5 MINUTES) - UpdateButtons() + build_all_button_icons() to_chat(owner, "Searching for a replacement ghost...") var/list/mob/dead/observer/candidates = SSghost_spawns.poll_candidates("Do you want to play as [guardian.real_name]?", ROLE_GUARDIAN, FALSE, 15 SECONDS, source = guardian) @@ -184,7 +184,7 @@ */ /datum/action/guardian/reset_guardian/proc/reset_cooldown() cooldown_timer = null - UpdateButtons() + build_all_button_icons() /** * Grants all existing `/datum/action/guardian` type actions to the src mob. diff --git a/code/game/gamemodes/miniantags/morph/morph.dm b/code/game/gamemodes/miniantags/morph/morph.dm index 139ded6b2dc..dcc7382b7f5 100644 --- a/code/game/gamemodes/miniantags/morph/morph.dm +++ b/code/game/gamemodes/miniantags/morph/morph.dm @@ -145,7 +145,7 @@ /mob/living/simple_animal/hostile/morph/proc/add_food(amount) gathered_food += amount for(var/datum/action/spell_action/action in actions) - action.UpdateButtons() + action.build_all_button_icons() /mob/living/simple_animal/hostile/morph/proc/assume() @@ -155,8 +155,8 @@ melee_damage_lower = 5 melee_damage_upper = 5 speed = MORPHED_SPEED - ambush_spell.UpdateButtons() - pass_airlock_spell.UpdateButtons() + ambush_spell.build_all_button_icons() + pass_airlock_spell.build_all_button_icons() move_resist = MOVE_FORCE_DEFAULT // They become more fragile and easier to move /mob/living/simple_animal/hostile/morph/proc/restore() @@ -171,7 +171,7 @@ if(ambush_prepared) to_chat(src, "The ambush potential has faded as you take your true form.") failed_ambush() - pass_airlock_spell.UpdateButtons() + pass_airlock_spell.build_all_button_icons() move_resist = MOVE_FORCE_STRONG // Return to their fatness @@ -183,7 +183,7 @@ /mob/living/simple_animal/hostile/morph/proc/failed_ambush() ambush_prepared = FALSE - ambush_spell.UpdateButtons() + ambush_spell.build_all_button_icons() mimic_spell.perfect_disguise = FALSE // Reset the perfect disguise remove_status_effect(/datum/status_effect/morph_ambush) UnregisterSignal(src, COMSIG_MOVABLE_MOVED) diff --git a/code/game/gamemodes/miniantags/morph/spells/morph_spell.dm b/code/game/gamemodes/miniantags/morph/spells/morph_spell.dm index af85ca31121..eba026f9d61 100644 --- a/code/game/gamemodes/miniantags/morph/spells/morph_spell.dm +++ b/code/game/gamemodes/miniantags/morph/spells/morph_spell.dm @@ -10,7 +10,7 @@ name = "[name] ([hunger_cost])" action.name = name action.desc = desc - action.UpdateButtons() + action.build_all_button_icons() /datum/spell/morph_spell/create_new_handler() var/datum/spell_handler/morph/H = new diff --git a/code/game/gamemodes/miniantags/pulsedemon/pulsedemon.dm b/code/game/gamemodes/miniantags/pulsedemon/pulsedemon.dm index e81ec0d03ae..0ff4b65fad7 100644 --- a/code/game/gamemodes/miniantags/pulsedemon/pulsedemon.dm +++ b/code/game/gamemodes/miniantags/pulsedemon/pulsedemon.dm @@ -169,8 +169,8 @@ update_glow() playsound(get_turf(src), 'sound/effects/eleczap.ogg', 30, TRUE) give_spells() - whisper_action.button_overlay_icon_state = "pulse_whisper" - whisper_action.button_background_icon_state = "bg_pulsedemon" + whisper_action.button_icon_state = "pulse_whisper" + whisper_action.background_icon_state = "bg_pulsedemon" /mob/living/simple_animal/demon/pulse_demon/proc/deleted_handler(our_demon, force) SIGNAL_HANDLER @@ -344,7 +344,7 @@ if(!S.action || S.locked) continue if(S.requires_area) - S.action.UpdateButtons() + S.action.build_all_button_icons() // can enter an apc at all? /mob/living/simple_animal/demon/pulse_demon/proc/is_valid_apc(obj/machinery/power/apc/A) @@ -457,7 +457,7 @@ var/dist = S.cast_cost - orig // only update icon if the amount is actually enough to change a spell's availability if(dist == 0 || (dist > 0 && realdelta >= dist) || (dist < 0 && realdelta <= dist)) - S.action.UpdateButtons() + S.action.build_all_button_icons() return realdelta // linear scale for glow strength, see table: diff --git a/code/game/gamemodes/miniantags/pulsedemon/pulsedemon_abilities.dm b/code/game/gamemodes/miniantags/pulsedemon/pulsedemon_abilities.dm index 3731775c8bf..6b637f7e70b 100644 --- a/code/game/gamemodes/miniantags/pulsedemon/pulsedemon_abilities.dm +++ b/code/game/gamemodes/miniantags/pulsedemon/pulsedemon_abilities.dm @@ -34,7 +34,7 @@ desc = "[initial(desc)][spell_level == level_max ? "" : " It costs [format_si_suffix(upgrade_cost)] APC\s to upgrade. Alt-Click this spell to upgrade it."]" action.name = name action.desc = desc - action.UpdateButtons() + action.build_all_button_icons() /datum/spell/pulse_demon/can_cast(mob/living/simple_animal/demon/pulse_demon/user, charge_check, show_message) if(!..()) @@ -276,8 +276,8 @@ /datum/spell/pulse_demon/toggle/proc/do_toggle(varstate, mob/user) if(action) - action.button_background_icon_state = varstate ? action_background_icon_state : "[action_background_icon_state]_disabled" - action.UpdateButtons() + action.background_icon_state = varstate ? action_background_icon_state : "[action_background_icon_state]_disabled" + action.build_all_button_icons() if(user) to_chat(user, "You will [varstate ? "now" : "no longer"] [base_message]") return varstate diff --git a/code/game/gamemodes/miniantags/revenant/revenant_abilities.dm b/code/game/gamemodes/miniantags/revenant/revenant_abilities.dm index dc75a74b1da..d70d689f6ff 100644 --- a/code/game/gamemodes/miniantags/revenant/revenant_abilities.dm +++ b/code/game/gamemodes/miniantags/revenant/revenant_abilities.dm @@ -175,7 +175,7 @@ name = "[initial(name)] ([cast_amount]E)" action.name = name action.desc = desc - action.UpdateButtons() + action.build_all_button_icons() /datum/spell/aoe/revenant/revert_cast(mob/user) . = ..() @@ -212,7 +212,7 @@ user.reveal(reveal) user.stun(stun) if(action) - action.UpdateButtons() + action.build_all_button_icons() return TRUE //Overload Light: Breaks a light that's online and sends out lightning bolts to all nearby people. diff --git a/code/game/jobs/job/support.dm b/code/game/jobs/job/support.dm index 2ffc85bcdac..6c510820c06 100644 --- a/code/game/jobs/job/support.dm +++ b/code/game/jobs/job/support.dm @@ -456,15 +456,15 @@ //action given to antag clowns /datum/action/innate/toggle_clumsy name = "Toggle Clown Clumsy" - button_overlay_icon_state = "clown" + button_icon_state = "clown" /datum/action/innate/toggle_clumsy/Activate() var/mob/living/carbon/human/H = owner H.dna.SetSEState(GLOB.clumsyblock, TRUE) singlemutcheck(H, GLOB.clumsyblock, MUTCHK_FORCED) active = TRUE - button_background_icon_state = "bg_spell" - UpdateButtons() + background_icon_state = "bg_spell" + build_all_button_icons() to_chat(H, "You start acting clumsy to throw suspicions off. Focus again before using weapons.") /datum/action/innate/toggle_clumsy/Deactivate() @@ -472,8 +472,8 @@ H.dna.SetSEState(GLOB.clumsyblock, FALSE) singlemutcheck(H, GLOB.clumsyblock, MUTCHK_FORCED) active = FALSE - button_background_icon_state = "bg_default" - UpdateButtons() + background_icon_state = "bg_default" + build_all_button_icons() to_chat(H, "You focus and can now use weapons regularly.") /datum/job/mime diff --git a/code/game/machinery/computer/camera_advanced.dm b/code/game/machinery/computer/camera_advanced.dm index a920236b48d..1f0b1a6cf98 100644 --- a/code/game/machinery/computer/camera_advanced.dm +++ b/code/game/machinery/computer/camera_advanced.dm @@ -80,7 +80,7 @@ /datum/action/innate/camera_off name = "End Camera View" - button_overlay_icon_state = "camera_off" + button_icon_state = "camera_off" /datum/action/innate/camera_off/Activate() if(!target || !iscarbon(target)) @@ -92,7 +92,7 @@ /datum/action/innate/camera_jump name = "Jump To Camera" - button_overlay_icon_state = "camera_jump" + button_icon_state = "camera_jump" /datum/action/innate/camera_jump/Activate() if(!target || !iscarbon(target)) diff --git a/code/game/mecha/mecha_actions.dm b/code/game/mecha/mecha_actions.dm index 437cf6aba10..a6f22a90ff3 100644 --- a/code/game/mecha/mecha_actions.dm +++ b/code/game/mecha/mecha_actions.dm @@ -21,7 +21,7 @@ /datum/action/innate/mecha check_flags = AB_CHECK_RESTRAINED | AB_CHECK_STUNNED | AB_CHECK_CONSCIOUS - button_overlay_icon = 'icons/mob/actions/actions_mecha.dmi' + button_icon = 'icons/mob/actions/actions_mecha.dmi' var/obj/mecha/chassis /datum/action/innate/mecha/Grant(mob/living/L, obj/mecha/M) @@ -35,7 +35,7 @@ /datum/action/innate/mecha/mech_eject name = "Eject From Mech" - button_overlay_icon_state = "mech_eject" + button_icon_state = "mech_eject" /datum/action/innate/mecha/mech_eject/Activate() if(!owner) @@ -46,20 +46,20 @@ /datum/action/innate/mecha/mech_toggle_internals name = "Toggle Internal Airtank Usage" - button_overlay_icon_state = "mech_internals_off" + button_icon_state = "mech_internals_off" /datum/action/innate/mecha/mech_toggle_internals/Activate() if(!owner || !chassis || chassis.occupant != owner) return chassis.use_internal_tank = !chassis.use_internal_tank - button_overlay_icon_state = "mech_internals_[chassis.use_internal_tank ? "on" : "off"]" + button_icon_state = "mech_internals_[chassis.use_internal_tank ? "on" : "off"]" chassis.occupant_message("Now taking air from [chassis.use_internal_tank ? "internal airtank" : "environment"].") chassis.log_message("Now taking air from [chassis.use_internal_tank ? "internal airtank" : "environment"].") - UpdateButtons() + build_all_button_icons() /datum/action/innate/mecha/mech_toggle_lights name = "Toggle Lights" - button_overlay_icon_state = "mech_lights_off" + button_icon_state = "mech_lights_off" /datum/action/innate/mecha/mech_toggle_lights/Activate() if(!owner || !chassis || chassis.occupant != owner) @@ -67,17 +67,17 @@ chassis.lights = !chassis.lights if(chassis.lights) chassis.set_light(chassis.lights_range, chassis.lights_power) - button_overlay_icon_state = "mech_lights_on" + button_icon_state = "mech_lights_on" else chassis.set_light(chassis.lights_range_ambient, chassis.lights_power_ambient) - button_overlay_icon_state = "mech_lights_off" + button_icon_state = "mech_lights_off" chassis.occupant_message("Toggled lights [chassis.lights ? "on" : "off"].") chassis.log_message("Toggled lights [chassis.lights ? "on" : "off"].") - UpdateButtons() + build_all_button_icons() /datum/action/innate/mecha/mech_view_stats name = "View Stats" - button_overlay_icon_state = "mech_view_stats" + button_icon_state = "mech_view_stats" /datum/action/innate/mecha/mech_view_stats/Activate() if(!owner || !chassis || chassis.occupant != owner) @@ -86,7 +86,7 @@ /datum/action/innate/mecha/mech_defence_mode name = "Toggle Defence Mode" - button_overlay_icon_state = "mech_defense_mode_off" + button_icon_state = "mech_defense_mode_off" /datum/action/innate/mecha/mech_defence_mode/Activate(forced_state = null) if(!owner || !chassis || chassis.occupant != owner) @@ -95,7 +95,7 @@ chassis.defence_mode = forced_state else chassis.defence_mode = !chassis.defence_mode - button_overlay_icon_state = "mech_defense_mode_[chassis.defence_mode ? "on" : "off"]" + button_icon_state = "mech_defense_mode_[chassis.defence_mode ? "on" : "off"]" if(chassis.defence_mode) chassis.deflect_chance = chassis.defence_mode_deflect_chance chassis.occupant_message("You enable [chassis] defence mode.") @@ -103,11 +103,11 @@ chassis.deflect_chance = initial(chassis.deflect_chance) chassis.occupant_message("You disable [chassis] defence mode.") chassis.log_message("Toggled defence mode.") - UpdateButtons() + build_all_button_icons() /datum/action/innate/mecha/mech_overload_mode name = "Toggle leg actuators overload" - button_overlay_icon_state = "mech_overload_off" + button_icon_state = "mech_overload_off" /datum/action/innate/mecha/mech_overload_mode/Activate(forced_state = null) if(!owner || !chassis || chassis.occupant != owner) @@ -119,7 +119,7 @@ chassis.leg_overload_mode = forced_state else chassis.leg_overload_mode = !chassis.leg_overload_mode - button_overlay_icon_state = "mech_overload_[chassis.leg_overload_mode ? "on" : "off"]" + button_icon_state = "mech_overload_[chassis.leg_overload_mode ? "on" : "off"]" chassis.log_message("Toggled leg actuators overload.") if(chassis.leg_overload_mode) chassis.leg_overload_mode = 1 @@ -133,11 +133,11 @@ chassis.step_in = initial(chassis.step_in) chassis.step_energy_drain = chassis.normal_step_energy_drain chassis.occupant_message("You disable leg actuators overload.") - UpdateButtons() + build_all_button_icons() /datum/action/innate/mecha/mech_toggle_thrusters name = "Toggle Thrusters" - button_overlay_icon_state = "mech_thrusters_off" + button_icon_state = "mech_thrusters_off" /datum/action/innate/mecha/mech_toggle_thrusters/Activate() if(!owner || !chassis || chassis.occupant != owner) @@ -146,13 +146,13 @@ chassis.thrusters_active = !chassis.thrusters_active if(!chassis.thrusters_active) chassis.step_in = initial(chassis.step_in) - button_overlay_icon_state = "mech_thrusters_[chassis.thrusters_active ? "on" : "off"]" + button_icon_state = "mech_thrusters_[chassis.thrusters_active ? "on" : "off"]" chassis.log_message("Toggled thrusters.") chassis.occupant_message("Thrusters [chassis.thrusters_active ? "en" : "dis"]abled.") /datum/action/innate/mecha/mech_smoke name = "Smoke" - button_overlay_icon_state = "mech_smoke" + button_icon_state = "mech_smoke" /datum/action/innate/mecha/mech_smoke/Activate() if(!owner || !chassis || chassis.occupant != owner) @@ -168,14 +168,14 @@ /datum/action/innate/mecha/mech_zoom name = "Zoom" - button_overlay_icon_state = "mech_zoom_off" + button_icon_state = "mech_zoom_off" /datum/action/innate/mecha/mech_zoom/Activate() if(!owner || !chassis || chassis.occupant != owner) return if(owner.client) chassis.zoom_mode = !chassis.zoom_mode - button_overlay_icon_state = "mech_zoom_[chassis.zoom_mode ? "on" : "off"]" + button_icon_state = "mech_zoom_[chassis.zoom_mode ? "on" : "off"]" chassis.log_message("Toggled zoom mode.") chassis.occupant_message("Zoom mode [chassis.zoom_mode ? "en" : "dis"]abled.") if(chassis.zoom_mode) @@ -183,24 +183,24 @@ SEND_SOUND(owner, sound(chassis.zoomsound, volume = 50)) else owner.client.RemoveViewMod("mecha") - UpdateButtons() + build_all_button_icons() /datum/action/innate/mecha/mech_toggle_phasing name = "Toggle Phasing" - button_overlay_icon_state = "mech_phasing_off" + button_icon_state = "mech_phasing_off" /datum/action/innate/mecha/mech_toggle_phasing/Activate() if(!owner || !chassis || chassis.occupant != owner) return chassis.phasing = !chassis.phasing - button_overlay_icon_state = "mech_phasing_[chassis.phasing ? "on" : "off"]" + button_icon_state = "mech_phasing_[chassis.phasing ? "on" : "off"]" chassis.occupant_message("En":"#f00\">Dis"]abled phasing.") - UpdateButtons() + build_all_button_icons() /datum/action/innate/mecha/mech_switch_damtype name = "Reconfigure arm microtool arrays" - button_overlay_icon_state = "mech_damtype_brute" + button_icon_state = "mech_damtype_brute" /datum/action/innate/mecha/mech_switch_damtype/Activate() if(!owner || !chassis || chassis.occupant != owner) @@ -217,16 +217,16 @@ new_damtype = "tox" chassis.occupant_message("A bone-chillingly thick plasteel needle protracts from the exosuit's palm.") chassis.damtype = new_damtype - button_overlay_icon_state = "mech_damtype_[new_damtype]" + button_icon_state = "mech_damtype_[new_damtype]" playsound(src, 'sound/mecha/mechmove01.ogg', 50, TRUE) - UpdateButtons() + build_all_button_icons() // Floor Buffer Action /datum/action/innate/mecha/mech_toggle_floorbuffer name = "Toggle Floor Buffer" desc = "Movement speed is decreased while active." - button_overlay_icon = 'icons/obj/vehicles.dmi' - button_overlay_icon_state = "upgrade" + button_icon = 'icons/obj/vehicles.dmi' + button_icon_state = "upgrade" /datum/action/innate/mecha/mech_toggle_floorbuffer/Activate() if(!chassis.floor_buffer) @@ -245,8 +245,8 @@ if(!_equipment) return FALSE equipment = _equipment - button_overlay_icon = equipment.icon - button_overlay_icon_state = equipment.icon_state + button_icon = equipment.icon + button_icon_state = equipment.icon_state name = "Switch module to [equipment.name]" return ..() diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index 3161a02f1ea..9768d3b19b7 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -70,10 +70,6 @@ GLOBAL_DATUM_INIT(welding_sparks, /mutable_appearance, mutable_appearance('icons var/list/actions = list() /// List of paths of action datums to give to the item on New(). var/list/actions_types = list() - /// List of icons-sheets for a given action to override the icon. - var/list/action_icon = list() - /// List of icon states for a given action to override the icon_state. - var/list/action_icon_state = list() /// What materials the item yields when broken down. Some methods will not recover everything (autolathes only recover metal and glass, for example). var/list/materials = list() @@ -215,7 +211,7 @@ GLOBAL_DATUM_INIT(welding_sparks, /mutable_appearance, mutable_appearance('icons /obj/item/Initialize(mapload) . = ..() for(var/path in actions_types) - new path(src, action_icon[path], action_icon_state[path]) + new path(src) if(isstorage(loc)) //marks all items in storage as being such in_storage = TRUE @@ -1028,9 +1024,9 @@ GLOBAL_DATUM_INIT(welding_sparks, /mutable_appearance, mutable_appearance('icons /obj/item/proc/should_stack_with(obj/item/other) return type == other.type && name == other.name -/obj/item/proc/update_action_buttons(status_only = FALSE, force = FALSE) +/obj/item/proc/update_action_buttons(update_flags = ALL, force = FALSE) for(var/datum/action/current_action as anything in actions) - current_action.UpdateButtons(status_only, force) + current_action.build_all_button_icons(update_flags, force) /** * Handles the bulk of cigarette lighting interactions. You must call `light()` to actually light the cigarette. diff --git a/code/game/objects/items/weapons/bio_chips/bio_chip_stealth.dm b/code/game/objects/items/weapons/bio_chips/bio_chip_stealth.dm index e7050f91888..76a747c0a1c 100644 --- a/code/game/objects/items/weapons/bio_chips/bio_chip_stealth.dm +++ b/code/game/objects/items/weapons/bio_chips/bio_chip_stealth.dm @@ -18,9 +18,8 @@ name = "Deploy Box" desc = "Find inner peace, here, in the box." check_flags = AB_CHECK_HANDS_BLOCKED | AB_CHECK_IMMOBILE | AB_CHECK_CONSCIOUS | AB_CHECK_STUNNED - button_background_icon_state = "bg_agent" - button_overlay_icon_state = "deploy_box" - use_itemicon = FALSE + background_icon_state = "bg_agent" + button_icon_state = "deploy_box" /// If TRUE, the box can't be deployed var/on_cooldown = FALSE @@ -63,11 +62,11 @@ on_cooldown = TRUE addtimer(CALLBACK(src, PROC_REF(end_cooldown)), 10 SECONDS) owner.clear_fullscreen("agent_box") - UpdateButtons() + build_all_button_icons() /datum/action/item_action/agent_box/proc/end_cooldown() on_cooldown = FALSE - UpdateButtons() + build_all_button_icons() /datum/action/item_action/agent_box/IsAvailable() if(..() && !on_cooldown) diff --git a/code/modules/antagonists/changeling/changeling_power.dm b/code/modules/antagonists/changeling/changeling_power.dm index aac4c9a2d97..15fba006b05 100644 --- a/code/modules/antagonists/changeling/changeling_power.dm +++ b/code/modules/antagonists/changeling/changeling_power.dm @@ -3,7 +3,7 @@ /datum/action/changeling name = "Prototype Sting" desc = "" // Fluff - button_background_icon_state = "bg_changeling" + background_icon_state = "bg_changeling" /// A reference to the changeling's changeling antag datum. var/datum/antagonist/changeling/cling /// Datum path used to determine the location and name of the power in changeling evolution menu UI diff --git a/code/modules/antagonists/changeling/evolution_menu.dm b/code/modules/antagonists/changeling/evolution_menu.dm index cc6f218b970..150ea34343e 100644 --- a/code/modules/antagonists/changeling/evolution_menu.dm +++ b/code/modules/antagonists/changeling/evolution_menu.dm @@ -6,7 +6,7 @@ /datum/action/changeling/evolution_menu name = "Evolution Menu" desc = "Choose our method of subjugation." - button_overlay_icon_state = "changelingsting" + button_icon_state = "changelingsting" power_type = CHANGELING_INNATE_POWER /// Which UI view will be displayed. Compact mode will show only power names, and will leave out their descriptions and helptext. var/view_mode = EXPANDED_MODE diff --git a/code/modules/antagonists/changeling/powers/absorb.dm b/code/modules/antagonists/changeling/powers/absorb.dm index 1a6c9c5823a..7d57dbc67c8 100644 --- a/code/modules/antagonists/changeling/powers/absorb.dm +++ b/code/modules/antagonists/changeling/powers/absorb.dm @@ -1,7 +1,7 @@ /datum/action/changeling/absorb_dna name = "Absorb DNA" desc = "Absorb the DNA of our victim. Requires us to strangle them." - button_overlay_icon_state = "absorb_dna" + button_icon_state = "absorb_dna" power_type = CHANGELING_INNATE_POWER req_human = TRUE diff --git a/code/modules/antagonists/changeling/powers/apex_predator.dm b/code/modules/antagonists/changeling/powers/apex_predator.dm index cb1a6aecf7f..1db90bbae11 100644 --- a/code/modules/antagonists/changeling/powers/apex_predator.dm +++ b/code/modules/antagonists/changeling/powers/apex_predator.dm @@ -2,7 +2,7 @@ name = "Apex Predator" desc = "We evolve a keen intuition, allowing us to detect the anxieties of nearby lifeforms." helptext = "We will be able to detect the direction and room our prey is in, as well as if they have any injuries." - button_overlay_icon_state = "predator" + button_icon_state = "predator" dna_cost = 1 power_type = CHANGELING_PURCHASABLE_POWER category = /datum/changeling_power_category/utility diff --git a/code/modules/antagonists/changeling/powers/augmented_eyesight.dm b/code/modules/antagonists/changeling/powers/augmented_eyesight.dm index 61a4c0fd0c7..b7e0a5efef0 100644 --- a/code/modules/antagonists/changeling/powers/augmented_eyesight.dm +++ b/code/modules/antagonists/changeling/powers/augmented_eyesight.dm @@ -2,7 +2,7 @@ name = "Augmented Eyesight" desc = "Creates more light sensing rods in our eyes, allowing our vision to penetrate most blocking objects. Protects our vision from flashes while inactive." helptext = "Grants us x-ray vision or flash protection. We will become a lot more vulnerable to flash-based devices while x-ray vision is active." - button_overlay_icon_state = "augmented_eyesight" + button_icon_state = "augmented_eyesight" dna_cost = 4 power_type = CHANGELING_PURCHASABLE_POWER category = /datum/changeling_power_category/utility diff --git a/code/modules/antagonists/changeling/powers/become_headslug.dm b/code/modules/antagonists/changeling/powers/become_headslug.dm index 208b29c6215..b92cb5c9127 100644 --- a/code/modules/antagonists/changeling/powers/become_headslug.dm +++ b/code/modules/antagonists/changeling/powers/become_headslug.dm @@ -2,7 +2,7 @@ name = "Last Resort" desc = "We sacrifice our current body in a moment of need, placing us in control of a vessel that can plant our likeness in a new host. Costs 20 chemicals." helptext = "We will be placed in control of a small, fragile creature. We may attack a corpse like this to plant an egg which will slowly mature into a new form for us." - button_overlay_icon_state = "last_resort" + button_icon_state = "last_resort" chemical_cost = 20 dna_cost = 2 req_human = TRUE diff --git a/code/modules/antagonists/changeling/powers/biodegrade.dm b/code/modules/antagonists/changeling/powers/biodegrade.dm index 67bfa926634..e4b9b67e9bd 100644 --- a/code/modules/antagonists/changeling/powers/biodegrade.dm +++ b/code/modules/antagonists/changeling/powers/biodegrade.dm @@ -2,7 +2,7 @@ name = "Biodegrade" desc = "Dissolves restraints or other objects preventing free movement if we are restrained. Prepares hand to vomit acid on other objects, doesn't work on living targets. Costs 30 chemicals." helptext = "This is obvious to nearby people, and can destroy standard restraints and closets, and break you out of grabs." - button_overlay_icon_state = "biodegrade" + button_icon_state = "biodegrade" chemical_cost = 30 //High cost to prevent spam dna_cost = 4 req_human = TRUE diff --git a/code/modules/antagonists/changeling/powers/chameleon_skin.dm b/code/modules/antagonists/changeling/powers/chameleon_skin.dm index 22f99f870d7..18229432573 100644 --- a/code/modules/antagonists/changeling/powers/chameleon_skin.dm +++ b/code/modules/antagonists/changeling/powers/chameleon_skin.dm @@ -2,7 +2,7 @@ name = "Chameleon Skin" desc = "Our skin pigmentation rapidly changes to suit our current environment. Costs 25 chemicals." helptext = "Allows us to become invisible after a few seconds of standing still. While active, it silences our footsteps. Can be toggled on and off." - button_overlay_icon_state = "chameleon_skin" + button_icon_state = "chameleon_skin" dna_cost = 4 chemical_cost = 25 req_human = TRUE diff --git a/code/modules/antagonists/changeling/powers/contort_body.dm b/code/modules/antagonists/changeling/powers/contort_body.dm index e50686ee1c0..fb6fa8252d7 100644 --- a/code/modules/antagonists/changeling/powers/contort_body.dm +++ b/code/modules/antagonists/changeling/powers/contort_body.dm @@ -1,7 +1,7 @@ /datum/action/changeling/contort_body name = "Contort Body" desc = "We contort our body, allowing us to fit in and under things we normally wouldn't be able to. Costs 25 chemicals." - button_overlay_icon_state = "contort_body" + button_icon_state = "contort_body" chemical_cost = 25 dna_cost = 4 power_type = CHANGELING_PURCHASABLE_POWER diff --git a/code/modules/antagonists/changeling/powers/digitalcamo.dm b/code/modules/antagonists/changeling/powers/digitalcamo.dm index f9f25dc0f93..4ce7480153a 100644 --- a/code/modules/antagonists/changeling/powers/digitalcamo.dm +++ b/code/modules/antagonists/changeling/powers/digitalcamo.dm @@ -2,7 +2,7 @@ name = "Digital Camouflage" desc = "By evolving the ability to distort our form and proportions, we defeat common algorithms used to detect lifeforms on cameras." helptext = "We cannot be tracked by camera while using this skill." - button_overlay_icon_state = "digital_camo" + button_icon_state = "digital_camo" dna_cost = 2 power_type = CHANGELING_PURCHASABLE_POWER category = /datum/changeling_power_category/utility diff --git a/code/modules/antagonists/changeling/powers/environmental_adaption.dm b/code/modules/antagonists/changeling/powers/environmental_adaption.dm index 7d7e4623abe..41986cc7f63 100644 --- a/code/modules/antagonists/changeling/powers/environmental_adaption.dm +++ b/code/modules/antagonists/changeling/powers/environmental_adaption.dm @@ -3,7 +3,7 @@ desc = "Our skin pigmentations rapidly change to suit the environment around us. Needs 10 chemicals in-storage to toggle. Slows down our chemical regeneration by 15%" helptext = "Allows us to darken and change the translucency of our pigmentation. \ The translucent effect works best in dark environments and garments. Can be toggled on and off." - button_overlay_icon_state = "enviro_adaptation" + button_icon_state = "enviro_adaptation" dna_cost = 2 chemical_cost = 10 power_type = CHANGELING_PURCHASABLE_POWER diff --git a/code/modules/antagonists/changeling/powers/epinephrine.dm b/code/modules/antagonists/changeling/powers/epinephrine.dm index 2e95dcce8e2..00e1f19e7b1 100644 --- a/code/modules/antagonists/changeling/powers/epinephrine.dm +++ b/code/modules/antagonists/changeling/powers/epinephrine.dm @@ -2,7 +2,7 @@ name = "Epinephrine Overdose" desc = "We evolve additional sacs of adrenaline throughout our body. Costs 30 chemicals." helptext = "Removes all stuns instantly and adds a short term reduction in further stuns. Can be used while unconscious. Continued use poisons the body." - button_overlay_icon_state = "adrenaline" + button_icon_state = "adrenaline" chemical_cost = 30 dna_cost = 4 req_human = TRUE diff --git a/code/modules/antagonists/changeling/powers/fakedeath.dm b/code/modules/antagonists/changeling/powers/fakedeath.dm index be466f959ed..2ffddd180ad 100644 --- a/code/modules/antagonists/changeling/powers/fakedeath.dm +++ b/code/modules/antagonists/changeling/powers/fakedeath.dm @@ -1,7 +1,7 @@ /datum/action/changeling/fakedeath name = "Regenerative Stasis" desc = "We fall into a stasis, allowing us to regenerate and trick our enemies. Costs 15 chemicals." - button_overlay_icon_state = "fake_death" + button_icon_state = "fake_death" chemical_cost = 15 power_type = CHANGELING_INNATE_POWER req_dna = 1 diff --git a/code/modules/antagonists/changeling/powers/fleshmend.dm b/code/modules/antagonists/changeling/powers/fleshmend.dm index 0b2f31e4f92..b0ee5255b5c 100644 --- a/code/modules/antagonists/changeling/powers/fleshmend.dm +++ b/code/modules/antagonists/changeling/powers/fleshmend.dm @@ -2,7 +2,7 @@ name = "Fleshmend" desc = "Our flesh rapidly regenerates, healing our burns, bruises, and shortness of breath. Costs 20 chemicals." helptext = "Does not regrow limbs. Partially recovers our blood. Functions while unconscious." - button_overlay_icon_state = "fleshmend" + button_icon_state = "fleshmend" chemical_cost = 20 dna_cost = 5 req_stat = UNCONSCIOUS diff --git a/code/modules/antagonists/changeling/powers/hivemind.dm b/code/modules/antagonists/changeling/powers/hivemind.dm index 64abb25dc05..367c755db5f 100644 --- a/code/modules/antagonists/changeling/powers/hivemind.dm +++ b/code/modules/antagonists/changeling/powers/hivemind.dm @@ -5,7 +5,7 @@ GLOBAL_LIST_EMPTY(hivemind_bank) name = "Hivemind Access" desc = "Allows us to upload or absorb DNA in the airwaves. Does not count towards absorb objectives. Costs 10 chemicals." helptext = "Tunes our chemical receptors for hivemind communication, which passively grants us access to the Changeling Hivemind." - button_overlay_icon_state = "hive_absorb" + button_icon_state = "hive_absorb" chemical_cost = 10 power_type = CHANGELING_INNATE_POWER category = /datum/changeling_power_category/utility diff --git a/code/modules/antagonists/changeling/powers/humanform.dm b/code/modules/antagonists/changeling/powers/humanform.dm index 09cc9cf97e2..f85f7cb38c6 100644 --- a/code/modules/antagonists/changeling/powers/humanform.dm +++ b/code/modules/antagonists/changeling/powers/humanform.dm @@ -1,7 +1,7 @@ /datum/action/changeling/humanform name = "Human form" desc = "We change into a human. Costs 5 chemicals." - button_overlay_icon_state = "human_form" + button_icon_state = "human_form" chemical_cost = 5 req_dna = 1 diff --git a/code/modules/antagonists/changeling/powers/lesserform.dm b/code/modules/antagonists/changeling/powers/lesserform.dm index ac9a8ac6d26..bc47c6ea1d8 100644 --- a/code/modules/antagonists/changeling/powers/lesserform.dm +++ b/code/modules/antagonists/changeling/powers/lesserform.dm @@ -2,7 +2,7 @@ name = "Lesser form" desc = "We debase ourselves and become lesser. We become a monkey. Costs 5 chemicals." helptext = "The transformation greatly reduces our size, allowing us to slip out of cuffs and climb through vents." - button_overlay_icon_state = "lesser_form" + button_icon_state = "lesser_form" chemical_cost = 5 dna_cost = 2 req_human = TRUE diff --git a/code/modules/antagonists/changeling/powers/mimic_voice.dm b/code/modules/antagonists/changeling/powers/mimic_voice.dm index bf478f45dc9..f793790655f 100644 --- a/code/modules/antagonists/changeling/powers/mimic_voice.dm +++ b/code/modules/antagonists/changeling/powers/mimic_voice.dm @@ -2,7 +2,7 @@ name = "Mimic Voice" desc = "We shape our vocal glands to sound like a desired voice." helptext = "Will turn your voice into the name that you enter." - button_overlay_icon_state = "mimic_voice" + button_icon_state = "mimic_voice" dna_cost = 2 req_human = TRUE power_type = CHANGELING_PURCHASABLE_POWER diff --git a/code/modules/antagonists/changeling/powers/mutations.dm b/code/modules/antagonists/changeling/powers/mutations.dm index e13c8667235..b857a311e1e 100644 --- a/code/modules/antagonists/changeling/powers/mutations.dm +++ b/code/modules/antagonists/changeling/powers/mutations.dm @@ -119,7 +119,7 @@ name = "Arm Blade" desc = "We reform one of our arms into a deadly blade. Costs 15 chemicals." helptext = "We may retract our armblade in the same manner as we form it. Cannot be used while in lesser form." - button_overlay_icon_state = "armblade" + button_icon_state = "armblade" chemical_cost = 15 dna_cost = 4 req_human = TRUE @@ -183,7 +183,7 @@ Grab will immobilize the target and wrap a tentacle around them. \ Harm will drag the target closer and hit them with the object in our other hand. \ Cannot be used while in our lesser form." - button_overlay_icon_state = "tentacle" + button_icon_state = "tentacle" chemical_cost = 10 dna_cost = 4 req_human = TRUE @@ -406,7 +406,7 @@ name = "Organic Shield" desc = "We reform one of our arms into a hard shield. Costs 20 chemicals." helptext = "Organic tissue cannot resist damage forever, with the shield breaking after it is hit 6 times. Can be used to parry attacks and projectiles. Cannot be used while in lesser form." - button_overlay_icon_state = "organic_shield" + button_icon_state = "organic_shield" chemical_cost = 20 dna_cost = 2 req_human = TRUE @@ -441,7 +441,7 @@ name = "Organic Space Suit" desc = "We grow an organic suit to protect ourselves from space exposure. Costs 20 chemicals." helptext = "We must constantly repair our form to make it space proof, reducing chemical production while we are protected. Cannot be used in lesser form." - button_overlay_icon_state = "organic_suit" + button_icon_state = "organic_suit" chemical_cost = 20 dna_cost = 4 req_human = TRUE @@ -488,7 +488,7 @@ name = "Chitinous Armor" desc = "We turn our skin into tough chitin to protect us from damage. Costs 25 chemicals." helptext = "Upkeep of the armor requires a low expenditure of chemicals. The armor is strong against brute force, but does not provide much protection from lasers. Cannot be used in lesser form." - button_overlay_icon_state = "chitinous_armor" + button_icon_state = "chitinous_armor" chemical_cost = 25 dna_cost = 4 req_human = TRUE @@ -586,7 +586,7 @@ name = "Bone Shard" desc = "We evolve the ability to break off shards of our bone and shape them into throwing weapons which embed into our foes. Costs 15 chemicals." helptext = "The shards of bone will dull upon hitting a target, rendering them unusable as weapons." - button_overlay_icon_state = "boneshard" + button_icon_state = "boneshard" chemical_cost = 15 dna_cost = 3 req_human = TRUE diff --git a/code/modules/antagonists/changeling/powers/panacea.dm b/code/modules/antagonists/changeling/powers/panacea.dm index 2750089c4b9..231af787959 100644 --- a/code/modules/antagonists/changeling/powers/panacea.dm +++ b/code/modules/antagonists/changeling/powers/panacea.dm @@ -2,7 +2,7 @@ name = "Anatomic Panacea" desc = "Expels impurifications from our form, curing diseases, removing parasites, sobering us, purging toxins and radiation, and resetting our genetic code completely. Costs 20 chemicals." helptext = "Can be used while unconscious." - button_overlay_icon_state = "panacea" + button_icon_state = "panacea" chemical_cost = 20 dna_cost = 2 req_stat = UNCONSCIOUS diff --git a/code/modules/antagonists/changeling/powers/revive.dm b/code/modules/antagonists/changeling/powers/revive.dm index 7a8b6113438..e034033bf97 100644 --- a/code/modules/antagonists/changeling/powers/revive.dm +++ b/code/modules/antagonists/changeling/powers/revive.dm @@ -1,7 +1,7 @@ /datum/action/changeling/revive name = "Regenerate" desc = "We regenerate, healing all damage from our form." - button_overlay_icon_state = "revive" + button_icon_state = "revive" req_dna = 1 req_stat = DEAD bypass_fake_death = TRUE diff --git a/code/modules/antagonists/changeling/powers/shriek.dm b/code/modules/antagonists/changeling/powers/shriek.dm index 27b1303c534..d89a2f11793 100644 --- a/code/modules/antagonists/changeling/powers/shriek.dm +++ b/code/modules/antagonists/changeling/powers/shriek.dm @@ -2,7 +2,7 @@ name = "Resonant Shriek" desc = "Our lungs and vocal cords shift, allowing us to briefly emit a noise that deafens and confuses the weak minded. Costs 30 chemicals." helptext = "Emits a high frequency sound that confuses and deafens humans, blows out nearby lights and overloads cyborg sensors." - button_overlay_icon_state = "resonant_shriek" + button_icon_state = "resonant_shriek" chemical_cost = 30 dna_cost = 2 req_human = TRUE @@ -42,7 +42,7 @@ /datum/action/changeling/dissonant_shriek name = "Dissonant Shriek" desc = "We shift our vocal cords to release a high frequency sound that overloads nearby electronics. Costs 30 chemicals." - button_overlay_icon_state = "dissonant_shriek" + button_icon_state = "dissonant_shriek" chemical_cost = 30 dna_cost = 2 power_type = CHANGELING_PURCHASABLE_POWER diff --git a/code/modules/antagonists/changeling/powers/strained_muscles.dm b/code/modules/antagonists/changeling/powers/strained_muscles.dm index 7da6101062e..2fd30374bd1 100644 --- a/code/modules/antagonists/changeling/powers/strained_muscles.dm +++ b/code/modules/antagonists/changeling/powers/strained_muscles.dm @@ -5,7 +5,7 @@ name = "Strained Muscles" desc = "We evolve the ability to reduce the acid buildup in our muscles, allowing us to move much faster." helptext = "The strain will use up our chemicals faster over time, and is not sustainable. Can not be used in lesser form." - button_overlay_icon_state = "strained_muscles" + button_icon_state = "strained_muscles" dna_cost = 2 req_human = TRUE power_type = CHANGELING_PURCHASABLE_POWER diff --git a/code/modules/antagonists/changeling/powers/summon_spiders.dm b/code/modules/antagonists/changeling/powers/summon_spiders.dm index 72166420d84..d36f1fe9b5b 100644 --- a/code/modules/antagonists/changeling/powers/summon_spiders.dm +++ b/code/modules/antagonists/changeling/powers/summon_spiders.dm @@ -7,7 +7,7 @@ name = "Spread Infestation" desc = "Our form divides, creating an aggressive arachnid which will regard us as a friend. Costs 30 chemicals." helptext = "The spiders are thoughtless creatures, but will not attack their creators. Their orders can be changed via remote hivemind (Alt+Shift click)." - button_overlay_icon_state = "spread_infestation" + button_icon_state = "spread_infestation" chemical_cost = 30 dna_cost = 4 /// This var keeps track of the changeling's spider count diff --git a/code/modules/antagonists/changeling/powers/swap_form.dm b/code/modules/antagonists/changeling/powers/swap_form.dm index e69a8d6c37b..168e6b850a0 100644 --- a/code/modules/antagonists/changeling/powers/swap_form.dm +++ b/code/modules/antagonists/changeling/powers/swap_form.dm @@ -2,7 +2,7 @@ name = "Swap Forms" desc = "We force ourselves into the body of another form, pushing their consciousness into the form we left behind. Costs 40 chemicals." helptext = "We will bring all our abilities with us, but we will lose our old form DNA in exchange for the new one. The process will seem suspicious to any observers." - button_overlay_icon_state = "cling_mindswap" + button_icon_state = "cling_mindswap" chemical_cost = 40 dna_cost = 2 req_human = TRUE //Monkeys can't grab diff --git a/code/modules/antagonists/changeling/powers/tiny_prick.dm b/code/modules/antagonists/changeling/powers/tiny_prick.dm index 26462d7dc39..7cadb2500c3 100644 --- a/code/modules/antagonists/changeling/powers/tiny_prick.dm +++ b/code/modules/antagonists/changeling/powers/tiny_prick.dm @@ -79,7 +79,7 @@ name = "Extract DNA Sting" desc = "We stealthily sting a target and extract their DNA. Costs 25 chemicals." helptext = "Will give you the DNA of your target, allowing you to transform into them." - button_overlay_icon_state = "sting_extract" + button_icon_state = "sting_extract" sting_icon = "sting_extract" chemical_cost = 25 power_type = CHANGELING_INNATE_POWER @@ -99,7 +99,7 @@ name = "Mute Sting" desc = "We silently sting a human, completely silencing them for a short time. Costs 20 chemicals." helptext = "Does not provide a warning to the victim that they have been stung, until they try to speak and cannot." - button_overlay_icon_state = "sting_mute" + button_icon_state = "sting_mute" sting_icon = "sting_mute" chemical_cost = 20 dna_cost = 4 @@ -115,7 +115,7 @@ name = "Blind Sting" desc = "We temporarily blind our victim. Costs 25 chemicals." helptext = "This sting completely blinds a target for a short time, and leaves them with blurred vision for a long time." - button_overlay_icon_state = "sting_blind" + button_icon_state = "sting_blind" sting_icon = "sting_blind" chemical_cost = 25 dna_cost = 2 @@ -135,7 +135,7 @@ name = "Cryogenic Sting" desc = "We silently sting our victim with a cocktail of chemicals that freezes them from the inside. Costs 15 chemicals." helptext = "Does not provide a warning to the victim, though they will likely realize they are suddenly freezing." - button_overlay_icon_state = "sting_cryo" + button_icon_state = "sting_cryo" sting_icon = "sting_cryo" chemical_cost = 15 dna_cost = 4 @@ -153,7 +153,7 @@ name = "Lethargic Sting" desc = "We silently sting our victim with a chemical that will gradually drain their stamina. Costs 50 chemicals." helptext = "Does not provide a warning to the victim, though they will quickly realize they have been poisoned." - button_overlay_icon_state = "sting_lethargic" + button_icon_state = "sting_lethargic" sting_icon = "sting_lethargic" chemical_cost = 50 dna_cost = 4 diff --git a/code/modules/antagonists/changeling/powers/transform.dm b/code/modules/antagonists/changeling/powers/transform.dm index beab27727fc..5add4ad638b 100644 --- a/code/modules/antagonists/changeling/powers/transform.dm +++ b/code/modules/antagonists/changeling/powers/transform.dm @@ -1,7 +1,7 @@ /datum/action/changeling/transform name = "Transform" desc = "We take on the appearance and voice of one we have absorbed. Costs 5 chemicals." - button_overlay_icon_state = "transform" + button_icon_state = "transform" chemical_cost = 5 power_type = CHANGELING_INNATE_POWER req_dna = 1 diff --git a/code/modules/antagonists/mind_flayer/powers/flayer_passives.dm b/code/modules/antagonists/mind_flayer/powers/flayer_passives.dm index 7d670740e41..3653d6ac673 100644 --- a/code/modules/antagonists/mind_flayer/powers/flayer_passives.dm +++ b/code/modules/antagonists/mind_flayer/powers/flayer_passives.dm @@ -268,7 +268,7 @@ return // TODO, add a refund proc? user_eyes.AddComponent(/datum/component/scope, item_action_type = /datum/action/item_action/organ_action/toggle, flags = SCOPE_CLICK_MIDDLE) for(var/datum/action/action in user_eyes.actions) - action.button_background_icon_state = "bg_flayer" + action.background_icon_state = "bg_flayer" action.Grant(owner) /datum/mindflayer_passive/telescopic_eyes/on_remove() @@ -341,7 +341,7 @@ if(!internal_jammer) internal_jammer = new /obj/item/jammer(owner) //Shove it in the flayer's chest for(var/datum/action/action in internal_jammer.actions) - action.button_background_icon_state = "bg_flayer" + action.background_icon_state = "bg_flayer" action.Grant(owner) internal_jammer.range = 15 + ((level - 1) * 5) //Base range of the jammer is 15, each level adds 5 tiles for a max of 25 if you want to be REALLY annoying diff --git a/code/modules/antagonists/vampire/vamp_datum.dm b/code/modules/antagonists/vampire/vamp_datum.dm index 4d4fd9f9f5a..17aef421c7f 100644 --- a/code/modules/antagonists/vampire/vamp_datum.dm +++ b/code/modules/antagonists/vampire/vamp_datum.dm @@ -301,7 +301,7 @@ RESTRICT_TYPE(/datum/antagonist/vampire) check_vampire_upgrade(TRUE) for(var/datum/spell/S in powers) if(S.action) - S.action.UpdateButtons() + S.action.build_all_button_icons() /** * Safely subtract vampire's bloodusable. Clamped between 0 and bloodtotal. diff --git a/code/modules/antagonists/vampire/vampire_powers/umbrae_powers.dm b/code/modules/antagonists/vampire/vampire_powers/umbrae_powers.dm index 959edde1e36..ab290e1217a 100644 --- a/code/modules/antagonists/vampire/vampire_powers/umbrae_powers.dm +++ b/code/modules/antagonists/vampire/vampire_powers/umbrae_powers.dm @@ -14,7 +14,7 @@ action.name = "[initial(name)] ([V.iscloaking ? "Deactivate" : "Activate"])" SEND_SIGNAL(src, COMSIG_ATOM_UPDATE_NAME) - UpdateButtons() + build_all_button_icons() /datum/spell/vampire/self/cloak/cast(list/targets, mob/user = usr) var/datum/antagonist/vampire/V = user.mind.has_antag_datum(/datum/antagonist/vampire) diff --git a/code/modules/clothing/chameleon.dm b/code/modules/clothing/chameleon.dm index f4d1d3f7137..a6661fff68e 100644 --- a/code/modules/clothing/chameleon.dm +++ b/code/modules/clothing/chameleon.dm @@ -2,7 +2,7 @@ /datum/action/chameleon_outfit name = "Select Chameleon Outfit" - button_overlay_icon_state = "chameleon_outfit" + button_icon_state = "chameleon_outfit" var/list/outfit_options //By default, this list is shared between all instances. It is not static because if it were, subtypes would not be able to have their own. If you ever want to edit it, copy it first. /datum/action/chameleon_outfit/New() @@ -92,7 +92,7 @@ qdel(O) ..() -/datum/action/item_action/chameleon_change/UpdateButton(atom/movable/screen/movable/action_button/button, status_only, force) +/datum/action/item_action/chameleon_change/update_button_name(atom/movable/screen/movable/action_button/button, force) . = ..() if(.) button.name = "Change [chameleon_name] Appearance" @@ -138,7 +138,7 @@ update_look(usr, chameleon_list[chameleon_name][params["new_appearance"]]) /datum/action/item_action/chameleon_change/proc/initialize_disguises() - UpdateButtons() + build_all_button_icons() chameleon_blacklist |= typecacheof(target.type) if(!isnull(chameleon_list[chameleon_name])) return @@ -179,7 +179,7 @@ var/obj/item/thing = target thing.update_slot_icon() SStgui.update_uis(src) - UpdateButtons() + build_all_button_icons() /datum/action/item_action/chameleon_change/proc/update_item(obj/item/picked_item) target.name = initial(picked_item.name) diff --git a/code/modules/events/blob/blob_mobs.dm b/code/modules/events/blob/blob_mobs.dm index 0b29a557d36..9ab14900917 100644 --- a/code/modules/events/blob/blob_mobs.dm +++ b/code/modules/events/blob/blob_mobs.dm @@ -206,8 +206,8 @@ /datum/action/innate/communicate_overmind_blob name = "Speak with the overmind" - button_overlay_icon = 'icons/mob/guardian.dmi' - button_overlay_icon_state = "communicate" + button_icon = 'icons/mob/guardian.dmi' + button_icon_state = "communicate" /datum/action/innate/communicate_overmind_blob/Activate() var/mob/living/simple_animal/hostile/blob/blobbernaut/user = owner diff --git a/code/modules/games/cards.dm b/code/modules/games/cards.dm index 051821bbe57..9f6de17baac 100644 --- a/code/modules/games/cards.dm +++ b/code/modules/games/cards.dm @@ -301,8 +301,7 @@ // deck datum actions /datum/action/item_action/draw_card name = "Draw - Draw one card" - button_overlay_icon_state = "draw" - use_itemicon = FALSE + button_icon_state = "draw" /datum/action/item_action/draw_card/Trigger(left_click) if(istype(target, /obj/item/deck)) @@ -312,8 +311,7 @@ /datum/action/item_action/deal_card name = "Deal - deal one card to a person next to you" - button_overlay_icon_state = "deal_card" - use_itemicon = FALSE + button_icon_state = "deal_card" /datum/action/item_action/deal_card/Trigger(left_click) if(istype(target, /obj/item/deck)) @@ -323,8 +321,7 @@ /datum/action/item_action/deal_card_multi name = "Deal multiple card - Deal multiple card to a person next to you" - button_overlay_icon_state = "deal_card_multi" - use_itemicon = FALSE + button_icon_state = "deal_card_multi" /datum/action/item_action/deal_card_multi/Trigger(left_click) if(istype(target, /obj/item/deck)) @@ -334,8 +331,7 @@ /datum/action/item_action/shuffle name = "Shuffle - shuffle the deck" - button_overlay_icon_state = "shuffle" - use_itemicon = FALSE + button_icon_state = "shuffle" /datum/action/item_action/shuffle/Trigger(left_click) if(istype(target, /obj/item/deck)) @@ -890,8 +886,7 @@ /datum/action/item_action/remove_card name = "Remove a card - Remove a single card from the hand." - button_overlay_icon_state = "remove_card" - use_itemicon = FALSE + button_icon_state = "remove_card" /datum/action/item_action/remove_card/IsAvailable() var/obj/item/cardhand/C = target @@ -909,8 +904,7 @@ /datum/action/item_action/discard name = "Discard - Place one or more cards from your hand in front of you." - button_overlay_icon_state = "discard" - use_itemicon = FALSE + button_icon_state = "discard" /datum/action/item_action/discard/Trigger(left_click) if(istype(target, /obj/item/cardhand)) diff --git a/code/modules/martial_arts/krav_maga.dm b/code/modules/martial_arts/krav_maga.dm index b7412e498c9..b796c1ce4c9 100644 --- a/code/modules/martial_arts/krav_maga.dm +++ b/code/modules/martial_arts/krav_maga.dm @@ -13,7 +13,7 @@ /datum/action/neutral_stance name = "Neutral Stance - You relax, cancelling your last Krav Maga stance attack." - button_overlay_icon_state = "neutralstance" + button_icon_state = "neutralstance" /datum/action/neutral_stance/Trigger(left_click) var/mob/living/carbon/human/H = owner @@ -27,7 +27,7 @@ /datum/action/neck_chop name = "Neck Chop - Injures the neck, stopping the victim from speaking for a while." - button_overlay_icon_state = "neckchop" + button_icon_state = "neckchop" /datum/action/neck_chop/Trigger(left_click) var/mob/living/carbon/human/H = owner //This is a janky solution, but I want to refactor krav anyway and un-jank this (written in may 2023) @@ -45,7 +45,7 @@ H.mind.martial_art.in_stance = TRUE /datum/action/leg_sweep name = "Leg Sweep - Trips the victim, rendering them prone and unable to move for a short time." - button_overlay_icon_state = "legsweep" + button_icon_state = "legsweep" /datum/action/leg_sweep/Trigger(left_click) var/mob/living/carbon/human/H = owner @@ -70,7 +70,7 @@ /datum/action/lung_punch//referred to internally as 'quick choke' name = "Lung Punch - Delivers a strong punch just above the victim's abdomen, constraining the lungs. The victim will be unable to breathe for a short time." - button_overlay_icon_state = "lungpunch" + button_icon_state = "lungpunch" /datum/action/lung_punch/Trigger(left_click) var/mob/living/carbon/human/H = owner diff --git a/code/modules/martial_arts/martial.dm b/code/modules/martial_arts/martial.dm index 26d68428095..b2c21c82d6d 100644 --- a/code/modules/martial_arts/martial.dm +++ b/code/modules/martial_arts/martial.dm @@ -244,7 +244,7 @@ /datum/action/defensive_stance name = "Defensive Stance - Ready yourself to be attacked, allowing you to parry incoming melee hits." - button_overlay_icon_state = "block" + button_icon_state = "block" /datum/action/defensive_stance/Trigger(left_click) var/mob/living/carbon/human/H = owner diff --git a/code/modules/mob/dead/observer/observer_admin_actions.dm b/code/modules/mob/dead/observer/observer_admin_actions.dm index 9dcaa894b39..751e0a5dfa5 100644 --- a/code/modules/mob/dead/observer/observer_admin_actions.dm +++ b/code/modules/mob/dead/observer/observer_admin_actions.dm @@ -13,7 +13,7 @@ given_action.Grant(src) /datum/action/innate/admin - button_overlay_icon = 'icons/mob/actions/actions_admin.dmi' + button_icon = 'icons/mob/actions/actions_admin.dmi' var/rights_required = R_ADMIN /datum/action/innate/admin/Trigger() @@ -29,11 +29,12 @@ /datum/action/innate/admin/ticket name = "Adminhelps" desc = "There are 0 open tickets." - button_overlay_icon_state = "adminhelp" + button_icon_state = "adminhelp" + var/mutable_appearance/button_text var/ticket_amt = 0 /datum/action/innate/admin/ticket/New(Target) - button_overlay_icon_state = "nohelp" + button_icon_state = "nohelp" . = ..() register_ticket_signals() @@ -48,24 +49,26 @@ ticket_amt = _ticket_amt desc = "There are [ticket_amt] open tickets." if(ticket_amt > 0) - button_overlay_icon_state = initial(button_overlay_icon_state) + button_icon_state = initial(button_icon_state) else - button_overlay_icon_state = "nohelp" - UpdateButtons() + button_icon_state = "nohelp" + build_all_button_icons(force = TRUE) -/datum/action/innate/admin/ticket/UpdateButton(atom/movable/screen/movable/action_button/button, status_only, force) +/datum/action/innate/admin/ticket/apply_button_overlay(atom/movable/screen/movable/action_button/button, force) . = ..() - if(ticket_amt <= 0) - return - var/image/maptext_holder = image('icons/effects/effects.dmi', icon_state = "nothing") - maptext_holder.plane = FLOAT_PLANE + 1.1 - maptext_holder.maptext = "[ticket_amt]" - maptext_holder.maptext_x = 2 - button.add_overlay(maptext_holder) + // TODO: We need a generic way to handle button text for actions bc this is atrocious + // Yes cutting and adding the overlay each time is required + button.cut_overlay(button_text) + button_text = mutable_appearance('icons/effects/effects.dmi', icon_state = "nothing") + button_text.appearance_flags = RESET_COLOR | RESET_ALPHA + button_text.plane = FLOAT_PLANE + 1 + button_text.maptext_x = 2 + button_text.maptext = ticket_amt > 0 ? "[ticket_amt]" : "" + button.add_overlay(button_text) /datum/action/innate/admin/ticket/mentor name = "Mentorhelps" - button_overlay_icon_state = "mentorhelp" + button_icon_state = "mentorhelp" rights_required = R_MENTOR|R_ADMIN /datum/action/innate/admin/ticket/mentor/register_ticket_signals() diff --git a/code/modules/mob/living/basic/minebots/minebot_abilities.dm b/code/modules/mob/living/basic/minebots/minebot_abilities.dm index 65ff261a172..bc4920bf238 100644 --- a/code/modules/mob/living/basic/minebots/minebot_abilities.dm +++ b/code/modules/mob/living/basic/minebots/minebot_abilities.dm @@ -1,10 +1,10 @@ /datum/action/innate/minedrone check_flags = AB_CHECK_CONSCIOUS - button_background_icon_state = "bg_default" + background_icon_state = "bg_default" /datum/action/innate/minedrone/toggle_light name = "Toggle Light" - button_overlay_icon_state = "mech_lights_off" + button_icon_state = "mech_lights_off" /datum/action/innate/minedrone/toggle_light/Activate() var/mob/living/basic/mining_drone/user = owner @@ -18,7 +18,7 @@ /datum/action/innate/minedrone/toggle_meson_vision name = "Toggle Meson Vision" - button_overlay_icon_state = "meson" + button_icon_state = "meson" /datum/action/innate/minedrone/toggle_meson_vision/Activate() var/mob/living/user = owner @@ -41,7 +41,7 @@ /datum/action/innate/minedrone/dump_ore name = "Dump Ore" - button_overlay_icon_state = "mech_eject" + button_icon_state = "mech_eject" /datum/action/innate/minedrone/dump_ore/Activate() var/mob/living/basic/mining_drone/user = owner diff --git a/code/modules/mob/living/brain/MMI.dm b/code/modules/mob/living/brain/MMI.dm index 08e4b612726..7467d34c97c 100644 --- a/code/modules/mob/living/brain/MMI.dm +++ b/code/modules/mob/living/brain/MMI.dm @@ -79,7 +79,7 @@ alien = 0 if(radio_action) - radio_action.UpdateButtons() + radio_action.build_all_button_icons() SSblackbox.record_feedback("amount", "mmis_filled", 1) else to_chat(user, "You can't drop [B]!") @@ -178,7 +178,7 @@ /obj/item/mmi/proc/become_occupied(new_icon) icon_state = new_icon if(radio) - radio_action.UpdateButtons() + radio_action.build_all_button_icons() /obj/item/mmi/examine(mob/user) . = ..() @@ -212,8 +212,8 @@ return ..() /datum/action/generic/configure_mmi_radio/apply_button_overlay(atom/movable/screen/movable/action_button/current_button) - button_overlay_icon = mmi.icon - button_overlay_icon_state = mmi.icon_state + button_icon = mmi.icon + button_icon_state = mmi.icon_state ..() /obj/item/mmi/emp_act(severity) diff --git a/code/modules/mob/living/carbon/alien/alien_base.dm b/code/modules/mob/living/carbon/alien/alien_base.dm index 8db7eb9c5c6..f9322dd50de 100644 --- a/code/modules/mob/living/carbon/alien/alien_base.dm +++ b/code/modules/mob/living/carbon/alien/alien_base.dm @@ -213,7 +213,7 @@ Des: Removes all infected images from the alien. and carry the owner just to make sure*/ /mob/living/carbon/proc/update_plasma_display(mob/owner) for(var/datum/action/spell_action/action in actions) - action.UpdateButtons() + action.build_all_button_icons() if(!hud_used || !isalien(owner)) //clientless aliens or non aliens return hud_used.alien_plasma_display.maptext = "
[get_plasma()]
" diff --git a/code/modules/mob/living/carbon/human/species/golem.dm b/code/modules/mob/living/carbon/human/species/golem.dm index 3eb64444c5e..bf203601824 100644 --- a/code/modules/mob/living/carbon/human/species/golem.dm +++ b/code/modules/mob/living/carbon/human/species/golem.dm @@ -155,7 +155,7 @@ name = "Ignite" desc = "Set yourself aflame, bringing yourself closer to exploding!" check_flags = AB_CHECK_CONSCIOUS - button_overlay_icon_state = "sacredflame" + button_icon_state = "sacredflame" /datum/action/innate/golem_ignite/Activate() if(ishuman(owner)) @@ -504,6 +504,7 @@ /datum/action/innate/unstable_teleport name = "Unstable Teleport" check_flags = AB_CHECK_CONSCIOUS + button_icon_state = "blink" var/activated = FALSE // To prevent spamming var/cooldown = 150 var/last_teleport = 0 @@ -545,9 +546,9 @@ H.unbuckle(force = TRUE) do_teleport(H, picked) last_teleport = world.time - UpdateButtons() //action icon looks unavailable + build_all_button_icons() //action icon looks unavailable sleep(cooldown + 5) - UpdateButtons() //action icon looks available again + build_all_button_icons() //action icon looks available again /datum/unarmed_attack/golem/bluespace attack_verb = "bluespace punch" diff --git a/code/modules/mob/living/carbon/human/species/machine.dm b/code/modules/mob/living/carbon/human/species/machine.dm index 23c5c6bd92f..8506d7ee1f4 100644 --- a/code/modules/mob/living/carbon/human/species/machine.dm +++ b/code/modules/mob/living/carbon/human/species/machine.dm @@ -138,7 +138,7 @@ /datum/action/innate/change_monitor name = "Change Monitor" check_flags = AB_CHECK_CONSCIOUS - button_overlay_icon_state = "scan_mode" + button_icon_state = "scan_mode" /datum/action/innate/change_monitor/Activate() var/mob/living/carbon/human/H = owner diff --git a/code/modules/mob/living/carbon/human/species/moth.dm b/code/modules/mob/living/carbon/human/species/moth.dm index be74a62e4df..8797ec9f547 100644 --- a/code/modules/mob/living/carbon/human/species/moth.dm +++ b/code/modules/mob/living/carbon/human/species/moth.dm @@ -157,8 +157,8 @@ name = "Cocoon" desc = "Restore your wings and antennae, and heal some damage. If your cocoon is broken externally you will take heavy damage!" check_flags = AB_CHECK_RESTRAINED|AB_CHECK_STUNNED|AB_CHECK_CONSCIOUS|AB_CHECK_TURF - button_overlay_icon = 'icons/effects/effects.dmi' - button_overlay_icon_state = "cocoon1" + button_icon = 'icons/effects/effects.dmi' + button_icon_state = "cocoon1" /datum/action/innate/cocoon/Activate() var/mob/living/carbon/human/moth/H = owner diff --git a/code/modules/mob/living/carbon/human/species/slimepeople.dm b/code/modules/mob/living/carbon/human/species/slimepeople.dm index 32c1a498b91..c0a1257d33b 100644 --- a/code/modules/mob/living/carbon/human/species/slimepeople.dm +++ b/code/modules/mob/living/carbon/human/species/slimepeople.dm @@ -113,8 +113,8 @@ /datum/action/innate/slimecolor name = "Toggle Recolor" check_flags = AB_CHECK_CONSCIOUS - button_overlay_icon = 'icons/effects/effects.dmi' - button_overlay_icon_state = "greenglow" + button_icon = 'icons/effects/effects.dmi' + button_icon_state = "greenglow" /datum/action/innate/slimecolor/Activate() var/mob/living/carbon/human/H = owner @@ -129,8 +129,8 @@ /datum/action/innate/regrow name = "Regrow limbs" check_flags = AB_CHECK_CONSCIOUS - button_overlay_icon = 'icons/effects/effects.dmi' - button_overlay_icon_state = "greenglow" + button_icon = 'icons/effects/effects.dmi' + button_icon_state = "greenglow" /datum/action/innate/regrow/Activate() var/mob/living/carbon/human/H = owner diff --git a/code/modules/mob/living/carbon/human/species/unathi.dm b/code/modules/mob/living/carbon/human/species/unathi.dm index eddd9c9a6c2..7a9620aaaad 100644 --- a/code/modules/mob/living/carbon/human/species/unathi.dm +++ b/code/modules/mob/living/carbon/human/species/unathi.dm @@ -79,8 +79,8 @@ /datum/action/innate/unathi_ignite name = "Ignite" desc = "A fire forms in your mouth, fierce enough to... light a cigarette. Requires you to drink welding fuel beforehand." - button_overlay_icon = 'icons/obj/cigarettes.dmi' - button_overlay_icon_state = "match_unathi" + button_icon = 'icons/obj/cigarettes.dmi' + button_icon_state = "match_unathi" var/cooldown = 0 var/cooldown_duration = 20 SECONDS var/welding_fuel_used = 3 //one sip, with less strict timing diff --git a/code/modules/mob/living/silicon/robot/robot_module_actions.dm b/code/modules/mob/living/silicon/robot/robot_module_actions.dm index 84b34b0d345..f71b6db9928 100644 --- a/code/modules/mob/living/silicon/robot/robot_module_actions.dm +++ b/code/modules/mob/living/silicon/robot/robot_module_actions.dm @@ -1,7 +1,7 @@ /datum/action/innate/robot_sight var/sight_mode = null - button_overlay_icon = 'icons/obj/decals.dmi' - button_overlay_icon_state = "securearea" + button_icon = 'icons/obj/decals.dmi' + button_icon_state = "securearea" /datum/action/innate/robot_sight/Activate() var/mob/living/silicon/robot/R = owner @@ -22,19 +22,19 @@ /datum/action/innate/robot_sight/thermal name = "Thermal Vision" sight_mode = BORGTHERM - button_overlay_icon = 'icons/obj/clothing/glasses.dmi' - button_overlay_icon_state = "thermal" + button_icon = 'icons/obj/clothing/glasses.dmi' + button_icon_state = "thermal" // ayylmao /datum/action/innate/robot_sight/thermal/alien - button_overlay_icon = 'icons/mob/alien.dmi' - button_overlay_icon_state = "borg-extra-vision" + button_icon = 'icons/mob/alien.dmi' + button_icon_state = "borg-extra-vision" /datum/action/innate/robot_sight/meson name = "Meson Vision" sight_mode = BORGMESON - button_overlay_icon = 'icons/obj/clothing/glasses.dmi' - button_overlay_icon_state = "meson" + button_icon = 'icons/obj/clothing/glasses.dmi' + button_icon_state = "meson" #define MODE_NONE "" #define MODE_MESON "meson" @@ -46,8 +46,8 @@ /datum/action/innate/robot_sight/engineering_scanner name = "Engineering Scanner Vision" sight_mode = BORGMESON - button_overlay_icon = 'icons/obj/clothing/glasses.dmi' - button_overlay_icon_state = "trayson-meson" + button_icon = 'icons/obj/clothing/glasses.dmi' + button_icon_state = "trayson-meson" var/list/mode_list = list(MODE_NONE = MODE_MESON, MODE_MESON = MODE_TRAY, MODE_TRAY = MODE_RAD, MODE_RAD = MODE_PRESSURE, MODE_PRESSURE = MODE_NONE) var/mode = MODE_NONE @@ -55,7 +55,7 @@ var/mob/living/silicon/robot/R = owner mode = mode_list[mode] to_chat(owner, "You turn your enhanced optics [mode ? "to [mode] mode." : "off."]") - button_overlay_icon_state = "trayson-[mode]" + button_icon_state = "trayson-[mode]" if(mode == MODE_MESON) R.sight_mode |= sight_mode @@ -95,8 +95,8 @@ /datum/action/innate/robot_magpulse name = "Magnetic pulse" - button_overlay_icon = 'icons/obj/clothing/shoes.dmi' - button_overlay_icon_state = "magboots0" + button_icon = 'icons/obj/clothing/shoes.dmi' + button_icon_state = "magboots0" var/slowdown_active = 2 // Same as magboots /datum/action/innate/robot_magpulse/Activate() @@ -104,7 +104,7 @@ to_chat(owner, "You turn your magboots on.") var/mob/living/silicon/robot/robot = owner robot.speed += slowdown_active - button_overlay_icon_state = "magboots1" + button_icon_state = "magboots1" active = TRUE /datum/action/innate/robot_magpulse/Deactivate() @@ -112,12 +112,12 @@ to_chat(owner, "You turn your magboots off.") var/mob/living/silicon/robot/robot = owner robot.speed -= slowdown_active - button_overlay_icon_state = initial(button_overlay_icon_state) + button_icon_state = initial(button_icon_state) active = FALSE /datum/action/innate/robot_override_lock name = "Override lockdown" - button_overlay_icon_state = "unlock_self" + button_icon_state = "unlock_self" /datum/action/innate/robot_override_lock/Activate() to_chat(owner, "HARDWARE_OVERRIDE_SYNDICATE: Lockdown lifted. Connection to NT systems severed.") diff --git a/code/modules/mob/living/simple_animal/friendly/diona_nymph.dm b/code/modules/mob/living/simple_animal/friendly/diona_nymph.dm index c9f9d094e16..083c78a6b2b 100644 --- a/code/modules/mob/living/simple_animal/friendly/diona_nymph.dm +++ b/code/modules/mob/living/simple_animal/friendly/diona_nymph.dm @@ -57,8 +57,8 @@ /datum/action/innate/diona/merge name = "Merge with gestalt" - button_overlay_icon = 'icons/mob/human_races/r_diona.dmi' - button_overlay_icon_state = "preview" + button_icon = 'icons/mob/human_races/r_diona.dmi' + button_icon_state = "preview" /datum/action/innate/diona/merge/Activate() var/mob/living/simple_animal/diona/user = owner @@ -66,8 +66,8 @@ /datum/action/innate/diona/evolve name = "Evolve" - button_overlay_icon = 'icons/obj/cloning.dmi' - button_overlay_icon_state = "pod_cloning" + button_icon = 'icons/obj/cloning.dmi' + button_icon_state = "pod_cloning" /datum/action/innate/diona/evolve/Activate() var/mob/living/simple_animal/diona/user = owner @@ -75,8 +75,8 @@ /datum/action/innate/diona/steal_blood name = "Steal blood" - button_overlay_icon = 'icons/goonstation/objects/iv.dmi' - button_overlay_icon_state = "bloodbag" + button_icon = 'icons/goonstation/objects/iv.dmi' + button_icon_state = "bloodbag" /datum/action/innate/diona/steal_blood/Activate() var/mob/living/simple_animal/diona/user = owner diff --git a/code/modules/mob/living/simple_animal/friendly/nian_caterpillar.dm b/code/modules/mob/living/simple_animal/friendly/nian_caterpillar.dm index 8d5aeeadcfc..376ec0aabb0 100644 --- a/code/modules/mob/living/simple_animal/friendly/nian_caterpillar.dm +++ b/code/modules/mob/living/simple_animal/friendly/nian_caterpillar.dm @@ -132,8 +132,8 @@ /datum/action/innate/nian_caterpillar_emerge name = "Evolve" desc = "Weave a cocoon around yourself to evolve into a greater form. The worme." - button_overlay_icon = 'icons/effects/effects.dmi' - button_overlay_icon_state = "cocoon1" + button_icon = 'icons/effects/effects.dmi' + button_icon_state = "cocoon1" /datum/action/innate/nian_caterpillar_emerge/proc/emerge(obj/structure/moth_cocoon/C) for(var/mob/living/carbon/human/H in C) diff --git a/code/modules/mob/living/simple_animal/hide_action.dm b/code/modules/mob/living/simple_animal/hide_action.dm index 0f9d6768323..b2de59d53fb 100644 --- a/code/modules/mob/living/simple_animal/hide_action.dm +++ b/code/modules/mob/living/simple_animal/hide_action.dm @@ -4,7 +4,7 @@ var/layer_to_change_from = MOB_LAYER var/layer_to_change_to = TURF_LAYER + 0.2 check_flags = AB_CHECK_CONSCIOUS - button_overlay_icon_state = "mouse_gray_sleep" + button_icon_state = "mouse_gray_sleep" /datum/action/innate/hide/Activate() var/mob/living/simple_animal/simplemob = owner @@ -23,9 +23,9 @@ /datum/action/innate/hide/alien_larva_hide desc = "Allows to hide beneath tables or certain items. Toggled on or off." - button_background_icon_state = "bg_alien" - button_overlay_icon_state = "alien_hide" + background_icon_state = "bg_alien" + button_icon_state = "alien_hide" layer_to_change_to = ABOVE_NORMAL_TURF_LAYER /datum/action/innate/hide/drone_hide - button_overlay_icon_state = "repairbot" + button_icon_state = "repairbot" diff --git a/code/modules/mob/living/simple_animal/hostile/giant_spider.dm b/code/modules/mob/living/simple_animal/hostile/giant_spider.dm index f70a8397fb3..2c1d98f0be6 100644 --- a/code/modules/mob/living/simple_animal/hostile/giant_spider.dm +++ b/code/modules/mob/living/simple_animal/hostile/giant_spider.dm @@ -163,8 +163,8 @@ /datum/action/innate/web_giant_spider name = "Lay Web" - button_overlay_icon = 'icons/effects/effects.dmi' - button_overlay_icon_state = "stickyweb1" + button_icon = 'icons/effects/effects.dmi' + button_icon_state = "stickyweb1" /datum/action/innate/web_giant_spider/Activate() var/mob/living/simple_animal/hostile/poison/giant_spider/user = owner @@ -172,8 +172,8 @@ /datum/action/innate/wrap_giant_spider name = "Wrap" - button_overlay_icon = 'icons/effects/effects.dmi' - button_overlay_icon_state = "cocoon_large1" + button_icon = 'icons/effects/effects.dmi' + button_icon_state = "cocoon_large1" /datum/action/innate/wrap_giant_spider/Activate() var/mob/living/simple_animal/hostile/poison/giant_spider/nurse/user = owner @@ -181,8 +181,8 @@ /datum/action/innate/lay_eggs_giant_spider name = "Lay Eggs" - button_overlay_icon = 'icons/effects/effects.dmi' - button_overlay_icon_state = "eggs" + button_icon = 'icons/effects/effects.dmi' + button_icon_state = "eggs" /datum/action/innate/lay_eggs_giant_spider/Activate() var/mob/living/simple_animal/hostile/poison/giant_spider/nurse/user = owner diff --git a/code/modules/mob/living/simple_animal/hostile/gorilla/gorilla.dm b/code/modules/mob/living/simple_animal/hostile/gorilla/gorilla.dm index 8545e2e13ca..9a514ce668b 100644 --- a/code/modules/mob/living/simple_animal/hostile/gorilla/gorilla.dm +++ b/code/modules/mob/living/simple_animal/hostile/gorilla/gorilla.dm @@ -56,8 +56,8 @@ /datum/action/innate/gorilla_toggle name = "Toggle Stand" desc = "Toggles between crawling and standing up." - button_overlay_icon = 'icons/mob/actions/actions_animal.dmi' - button_overlay_icon_state = "gorilla_toggle" + button_icon = 'icons/mob/actions/actions_animal.dmi' + button_icon_state = "gorilla_toggle" check_flags = AB_CHECK_CONSCIOUS /datum/action/innate/gorilla_toggle/Activate() diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner.dm index d4d61b686b1..d7d96239e68 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner.dm @@ -73,22 +73,22 @@ Difficulty: Medium /datum/action/innate/megafauna_attack/dash name = "Dash To Target" - button_overlay_icon = 'icons/mob/actions/actions.dmi' - button_overlay_icon_state = "sniper_zoom" + button_icon = 'icons/mob/actions/actions.dmi' + button_icon_state = "sniper_zoom" chosen_message = "You are now dashing to your target." chosen_attack_num = 1 /datum/action/innate/megafauna_attack/kinetic_accelerator name = "Fire Kinetic Accelerator" - button_overlay_icon = 'icons/obj/guns/energy.dmi' - button_overlay_icon_state = "kineticgun" + button_icon = 'icons/obj/guns/energy.dmi' + button_icon_state = "kineticgun" chosen_message = "You are now shooting your kinetic accelerator." chosen_attack_num = 2 /datum/action/innate/megafauna_attack/transform_weapon name = "Transform Weapon" - button_overlay_icon = 'icons/obj/lavaland/artefacts.dmi' - button_overlay_icon_state = "cleaving_saw" + button_icon = 'icons/obj/lavaland/artefacts.dmi' + button_icon_state = "cleaving_saw" chosen_message = "You are now transforming your weapon." chosen_attack_num = 3 diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm index e61f4b84459..ab6d1aad75e 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm @@ -97,29 +97,29 @@ Difficulty: Hard /datum/action/innate/megafauna_attack/triple_charge name = "Triple Charge" - button_overlay_icon = 'icons/mob/actions/actions.dmi' - button_overlay_icon_state = "sniper_zoom" + button_icon = 'icons/mob/actions/actions.dmi' + button_icon_state = "sniper_zoom" chosen_message = "You are now triple charging at the target you click on." chosen_attack_num = 1 /datum/action/innate/megafauna_attack/hallucination_charge name = "Hallucination Charge" - button_overlay_icon = 'icons/effects/bubblegum.dmi' - button_overlay_icon_state = "smack ya one" + button_icon = 'icons/effects/bubblegum.dmi' + button_icon_state = "smack ya one" chosen_message = "You are now charging with hallucinations at the target you click on." chosen_attack_num = 2 /datum/action/innate/megafauna_attack/hallucination_surround name = "Surround Target" - button_overlay_icon = 'icons/turf/walls/wall.dmi' - button_overlay_icon_state = "wall-0" + button_icon = 'icons/turf/walls/wall.dmi' + button_icon_state = "wall-0" chosen_message = "You are now surrounding the target you click on with hallucinations." chosen_attack_num = 3 /datum/action/innate/megafauna_attack/blood_warp name = "Blood Warp" - button_overlay_icon = 'icons/effects/blood.dmi' - button_overlay_icon_state = "floor1" + button_icon = 'icons/effects/blood.dmi' + button_icon_state = "floor1" chosen_message = "You are now warping to blood around your clicked position." chosen_attack_num = 4 diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm index 478b637de9d..dbc0874c2a3 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm @@ -80,29 +80,29 @@ Difficulty: Very Hard /datum/action/innate/megafauna_attack/spiral_attack name = "Spiral Shots" - button_overlay_icon = 'icons/mob/actions/actions.dmi' - button_overlay_icon_state = "sniper_zoom" + button_icon = 'icons/mob/actions/actions.dmi' + button_icon_state = "sniper_zoom" chosen_message = "You are now firing in a spiral." chosen_attack_num = 1 /datum/action/innate/megafauna_attack/aoe_attack name = "All Directions" - button_overlay_icon = 'icons/effects/effects.dmi' - button_overlay_icon_state = "at_shield2" + button_icon = 'icons/effects/effects.dmi' + button_icon_state = "at_shield2" chosen_message = "You are now firing in all directions." chosen_attack_num = 2 /datum/action/innate/megafauna_attack/shotgun name = "Shotgun Fire" - button_overlay_icon = 'icons/obj/guns/projectile.dmi' - button_overlay_icon_state = "shotgun" + button_icon = 'icons/obj/guns/projectile.dmi' + button_icon_state = "shotgun" chosen_message = "You are now firing shotgun shots where you aim." chosen_attack_num = 3 /datum/action/innate/megafauna_attack/alternating_cardinals name = "Alternating Shots" - button_overlay_icon = 'icons/obj/guns/projectile.dmi' - button_overlay_icon_state = "pistol" + button_icon = 'icons/obj/guns/projectile.dmi' + button_icon_state = "pistol" chosen_message = "You are now firing in alternating cardinal directions." chosen_attack_num = 4 diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm index cbf347760d6..c108cc54504 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm @@ -73,29 +73,29 @@ Difficulty: Medium /datum/action/innate/megafauna_attack/fire_cone name = "Fire Cone" - button_overlay_icon = 'icons/obj/wizard.dmi' - button_overlay_icon_state = "fireball" + button_icon = 'icons/obj/wizard.dmi' + button_icon_state = "fireball" chosen_message = "You are now shooting fire at your target." chosen_attack_num = 1 /datum/action/innate/megafauna_attack/fire_cone_meteors name = "Fire Cone With Meteors" - button_overlay_icon = 'icons/mob/actions/actions.dmi' - button_overlay_icon_state = "sniper_zoom" + button_icon = 'icons/mob/actions/actions.dmi' + button_icon_state = "sniper_zoom" chosen_message = "You are now shooting fire at your target and raining fire around you." chosen_attack_num = 2 /datum/action/innate/megafauna_attack/mass_fire name = "Mass Fire Attack" - button_overlay_icon = 'icons/effects/fire.dmi' - button_overlay_icon_state = "1" + button_icon = 'icons/effects/fire.dmi' + button_icon_state = "1" chosen_message = "You are now shooting mass fire at your target." chosen_attack_num = 3 /datum/action/innate/megafauna_attack/lava_swoop name = "Lava Swoop" - button_overlay_icon = 'icons/effects/effects.dmi' - button_overlay_icon_state = "lavastaff_warn" + button_icon = 'icons/effects/effects.dmi' + button_icon_state = "lavastaff_warn" chosen_message = "You are now swooping and raining lava at your target." chosen_attack_num = 4 diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm index 7689123f784..83f0c298e0b 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm @@ -92,29 +92,29 @@ Difficulty: Hard /datum/action/innate/megafauna_attack/blink name = "Blink To Target" - button_overlay_icon = 'icons/mob/actions/actions.dmi' - button_overlay_icon_state = "sniper_zoom" + button_icon = 'icons/mob/actions/actions.dmi' + button_icon_state = "sniper_zoom" chosen_message = "You are now blinking to your target." chosen_attack_num = 1 /datum/action/innate/megafauna_attack/chaser_swarm name = "Chaser Swarm" - button_overlay_icon = 'icons/effects/effects.dmi' - button_overlay_icon_state = "hierophant_squares_indefinite" + button_icon = 'icons/effects/effects.dmi' + button_icon_state = "hierophant_squares_indefinite" chosen_message = "You are firing a chaser swarm at your target." chosen_attack_num = 2 /datum/action/innate/megafauna_attack/cross_blasts name = "Cross Blasts" - button_overlay_icon = 'icons/effects/effects.dmi' - button_overlay_icon_state = "hierophant_blast_indefinite" + button_icon = 'icons/effects/effects.dmi' + button_icon_state = "hierophant_blast_indefinite" chosen_message = "You are now firing cross blasts at your target." chosen_attack_num = 3 /datum/action/innate/megafauna_attack/blink_spam name = "Blink Chase" - button_overlay_icon = 'icons/obj/lavaland/artefacts.dmi' - button_overlay_icon_state = "hierophant_club_ready_beacon" + button_icon = 'icons/obj/lavaland/artefacts.dmi' + button_icon_state = "hierophant_club_ready_beacon" chosen_message = "You are now repeatedly blinking at your target." chosen_attack_num = 4 diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/megafauna.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/megafauna.dm index a9fe322e3ed..eae50b6984e 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/megafauna.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/megafauna.dm @@ -216,8 +216,8 @@ /datum/action/innate/megafauna_attack name = "Megafauna Attack" - button_overlay_icon = 'icons/mob/actions/actions_animal.dmi' - button_overlay_icon_state = "" + button_icon = 'icons/mob/actions/actions_animal.dmi' + button_icon_state = "" var/mob/living/simple_animal/hostile/megafauna/M var/chosen_message var/chosen_attack_num = 0 diff --git a/code/modules/mob/living/simple_animal/hostile/mining/elites/elite.dm b/code/modules/mob/living/simple_animal/hostile/mining/elites/elite.dm index d1f8f10f4a4..e902959a88e 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining/elites/elite.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining/elites/elite.dm @@ -102,15 +102,15 @@ While using this makes the system rely on OnFire, it still gives options for tim /datum/action/innate/elite_attack name = "Elite Attack" - button_overlay_icon = 'icons/mob/actions/actions_elites.dmi' - button_overlay_icon_state = "" - button_background_icon_state = "bg_default" + button_icon = 'icons/mob/actions/actions_elites.dmi' + button_icon_state = "" + background_icon_state = "bg_default" ///The displayed message into chat when this attack is selected var/chosen_message ///The internal attack ID for the elite's OpenFire() proc to use var/chosen_attack_num = 0 -/datum/action/innate/elite_attack/CreateButton() +/datum/action/innate/elite_attack/create_button() var/atom/movable/screen/movable/action_button/button = ..() button.maptext = "" button.maptext_x = 8 @@ -124,11 +124,11 @@ While using this makes the system rely on OnFire, it still gives options for tim STOP_PROCESSING(SSfastprocess, src) qdel(src) return - UpdateButtons() + build_all_button_icons() -/datum/action/innate/elite_attack/UpdateButton(atom/movable/screen/movable/action_button/button, status_only = FALSE, force = FALSE) +/datum/action/innate/elite_attack/build_button_icon(atom/movable/screen/movable/action_button/button, update_flags, force) . = ..() - if(status_only) + if(update_flags & UPDATE_BUTTON_STATUS) return var/mob/living/simple_animal/hostile/asteroid/elite/elite_owner = owner var/timeleft = max(elite_owner.ranged_cooldown - world.time, 0) diff --git a/code/modules/mob/living/simple_animal/hostile/mining/elites/goliath_broodmother.dm b/code/modules/mob/living/simple_animal/hostile/mining/elites/goliath_broodmother.dm index 8938920abc4..20b30461a60 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining/elites/goliath_broodmother.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining/elites/goliath_broodmother.dm @@ -52,25 +52,25 @@ /datum/action/innate/elite_attack/tentacle_patch name = "Tentacle Patch" - button_overlay_icon_state = "tentacle_patch" + button_icon_state = "tentacle_patch" chosen_message = "You are now attacking with a patch of tentacles." chosen_attack_num = TENTACLE_PATCH /datum/action/innate/elite_attack/spawn_children name = "Spawn Children" - button_overlay_icon_state = "spawn_children" + button_icon_state = "spawn_children" chosen_message = "You will spawn two children at your location to assist you in combat. You can have up to 8." chosen_attack_num = SPAWN_CHILDREN /datum/action/innate/elite_attack/rage name = "Rage" - button_overlay_icon_state = "rage" + button_icon_state = "rage" chosen_message = "You will temporarily increase your movement speed." chosen_attack_num = RAGE /datum/action/innate/elite_attack/call_children name = "Call Children" - button_overlay_icon_state = "call_children" + button_icon_state = "call_children" chosen_message = "You will summon your children to your location." chosen_attack_num = CALL_CHILDREN diff --git a/code/modules/mob/living/simple_animal/hostile/mining/elites/herald.dm b/code/modules/mob/living/simple_animal/hostile/mining/elites/herald.dm index 660a99a05d4..2d09242c622 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining/elites/herald.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining/elites/herald.dm @@ -74,25 +74,25 @@ /datum/action/innate/elite_attack/herald_trishot name = "Triple Shot" - button_overlay_icon_state = "herald_trishot" + button_icon_state = "herald_trishot" chosen_message = "You are now firing three shots in your chosen direction." chosen_attack_num = HERALD_TRISHOT /datum/action/innate/elite_attack/herald_directionalshot name = "Circular Shot" - button_overlay_icon_state = "herald_directionalshot" + button_icon_state = "herald_directionalshot" chosen_message = "You are firing projectiles in all directions." chosen_attack_num = HERALD_DIRECTIONALSHOT /datum/action/innate/elite_attack/herald_teleshot name = "Teleport Shot" - button_overlay_icon_state = "herald_teleshot" + button_icon_state = "herald_teleshot" chosen_message = "You will now fire a shot which teleports you where it lands." chosen_attack_num = HERALD_TELESHOT /datum/action/innate/elite_attack/herald_mirror name = "Summon Mirror" - button_overlay_icon_state = "herald_mirror" + button_icon_state = "herald_mirror" chosen_message = "You will spawn a mirror which duplicates your attacks." chosen_attack_num = HERALD_MIRROR diff --git a/code/modules/mob/living/simple_animal/hostile/mining/elites/legionnaire.dm b/code/modules/mob/living/simple_animal/hostile/mining/elites/legionnaire.dm index 9b0b7c52ca0..a3d5ab85394 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining/elites/legionnaire.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining/elites/legionnaire.dm @@ -55,25 +55,25 @@ /datum/action/innate/elite_attack/legionnaire_charge name = "Legionnaire Charge" - button_overlay_icon_state = "legionnaire_charge" + button_icon_state = "legionnaire_charge" chosen_message = "You will attempt to grab your opponent and throw them." chosen_attack_num = LEGIONNAIRE_CHARGE /datum/action/innate/elite_attack/head_detach name = "Release Head" - button_overlay_icon_state = "head_detach" + button_icon_state = "head_detach" chosen_message = "You will now detach your head or kill it if it is already released." chosen_attack_num = HEAD_DETACH /datum/action/innate/elite_attack/bonfire_teleport name = "Bonfire Teleport" - button_overlay_icon_state = "bonfire_teleport" + button_icon_state = "bonfire_teleport" chosen_message = "You will leave a bonfire. Second use will let you swap positions with it indefintiely. Using this move on the same tile as your active bonfire removes it." chosen_attack_num = BONFIRE_TELEPORT /datum/action/innate/elite_attack/spew_smoke name = "Spew Smoke" - button_overlay_icon_state = "spew_smoke" + button_icon_state = "spew_smoke" chosen_message = "Your head will spew smoke in an area, wherever it may be." chosen_attack_num = SPEW_SMOKE diff --git a/code/modules/mob/living/simple_animal/hostile/mining/elites/pandora.dm b/code/modules/mob/living/simple_animal/hostile/mining/elites/pandora.dm index 5ae6ed4fd32..bef759cf474 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining/elites/pandora.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining/elites/pandora.dm @@ -56,25 +56,25 @@ /datum/action/innate/elite_attack/chaser_burst name = "Chaser Burst" - button_overlay_icon_state = "singular_shot" + button_icon_state = "singular_shot" chosen_message = "You fire a chaser after all mobs in view." chosen_attack_num = CHASER_BURST /datum/action/innate/elite_attack/magic_box name = "Magic Box" - button_overlay_icon_state = "magic_box" + button_icon_state = "magic_box" chosen_message = "You are now attacking with a box of magic squares." chosen_attack_num = MAGIC_BOX /datum/action/innate/elite_attack/pandora_teleport name = "Line Teleport" - button_overlay_icon_state = "pandora_teleport" + button_icon_state = "pandora_teleport" chosen_message = "You will now teleport to your target." chosen_attack_num = PANDORA_TELEPORT /datum/action/innate/elite_attack/aoe_squares name = "AOE Blast" - button_overlay_icon_state = "aoe_squares" + button_icon_state = "aoe_squares" chosen_message = "Your attacks will spawn an AOE blast at your target location." chosen_attack_num = AOE_SQUARES diff --git a/code/modules/mob/living/simple_animal/hostile/terror_spiders/actions.dm b/code/modules/mob/living/simple_animal/hostile/terror_spiders/actions.dm index d5e86b80bfa..49032fa3112 100644 --- a/code/modules/mob/living/simple_animal/hostile/terror_spiders/actions.dm +++ b/code/modules/mob/living/simple_animal/hostile/terror_spiders/actions.dm @@ -2,8 +2,8 @@ /datum/action/innate/terrorspider/web name = "Web" - button_overlay_icon = 'icons/effects/effects.dmi' - button_overlay_icon_state = "stickyweb1" + button_icon = 'icons/effects/effects.dmi' + button_icon_state = "stickyweb1" /datum/action/innate/terrorspider/web/Activate() var/mob/living/simple_animal/hostile/poison/terror_spider/user = owner @@ -11,8 +11,8 @@ /datum/action/innate/terrorspider/wrap name = "Wrap" - button_overlay_icon = 'icons/effects/effects.dmi' - button_overlay_icon_state = "cocoon_large1" + button_icon = 'icons/effects/effects.dmi' + button_icon_state = "cocoon_large1" /datum/action/innate/terrorspider/wrap/Activate() var/mob/living/simple_animal/hostile/poison/terror_spider/user = owner @@ -23,8 +23,8 @@ /datum/action/innate/terrorspider/greeneggs name = "Lay Green Eggs" - button_overlay_icon = 'icons/effects/effects.dmi' - button_overlay_icon_state = "eggs" + button_icon = 'icons/effects/effects.dmi' + button_icon_state = "eggs" /datum/action/innate/terrorspider/greeneggs/Activate() var/mob/living/simple_animal/hostile/poison/terror_spider/green/user = owner @@ -35,8 +35,8 @@ /datum/action/innate/terrorspider/ventsmash name = "Smash Welded Vent" - button_overlay_icon = 'icons/atmos/vent_pump.dmi' - button_overlay_icon_state = "map_vent" + button_icon = 'icons/atmos/vent_pump.dmi' + button_icon_state = "map_vent" /datum/action/innate/terrorspider/ventsmash/Activate() var/mob/living/simple_animal/hostile/poison/terror_spider/user = owner @@ -44,8 +44,8 @@ /datum/action/innate/terrorspider/remoteview name = "Remote View" - button_overlay_icon = 'icons/obj/eyes.dmi' - button_overlay_icon_state = "heye" + button_icon = 'icons/obj/eyes.dmi' + button_icon_state = "heye" /datum/action/innate/terrorspider/remoteview/Activate() var/mob/living/simple_animal/hostile/poison/terror_spider/user = owner @@ -56,7 +56,7 @@ /datum/action/innate/terrorspider/mother/royaljelly name = "Lay Royal Jelly" - button_overlay_icon_state = "spiderjelly" + button_icon_state = "spiderjelly" /datum/action/innate/terrorspider/mother/royaljelly/Activate() var/mob/living/simple_animal/hostile/poison/terror_spider/mother/user = owner @@ -64,8 +64,8 @@ /datum/action/innate/terrorspider/mother/gatherspiderlings name = "Gather Spiderlings" - button_overlay_icon = 'icons/effects/effects.dmi' - button_overlay_icon_state = "spiderling" + button_icon = 'icons/effects/effects.dmi' + button_icon_state = "spiderling" /datum/action/innate/terrorspider/mother/gatherspiderlings/Activate() var/mob/living/simple_animal/hostile/poison/terror_spider/mother/user = owner @@ -73,8 +73,8 @@ /datum/action/innate/terrorspider/mother/incubateeggs name = "Incubate Eggs" - button_overlay_icon = 'icons/effects/effects.dmi' - button_overlay_icon_state = "eggs" + button_icon = 'icons/effects/effects.dmi' + button_icon_state = "eggs" /datum/action/innate/terrorspider/mother/incubateeggs/Activate() var/mob/living/simple_animal/hostile/poison/terror_spider/mother/user = owner @@ -84,8 +84,8 @@ /datum/action/innate/terrorspider/queen/queennest name = "Nest" - button_overlay_icon = 'icons/mob/terrorspider.dmi' - button_overlay_icon_state = "terror_queen" + button_icon = 'icons/mob/terrorspider.dmi' + button_icon_state = "terror_queen" /datum/action/innate/terrorspider/queen/queennest/Activate() var/mob/living/simple_animal/hostile/poison/terror_spider/queen/user = owner @@ -93,7 +93,7 @@ /datum/action/innate/terrorspider/queen/queensense name = "Hive Sense" - button_overlay_icon_state = "mindswap" + button_icon_state = "mindswap" /datum/action/innate/terrorspider/queen/queensense/Activate() var/mob/living/simple_animal/hostile/poison/terror_spider/queen/user = owner @@ -101,8 +101,8 @@ /datum/action/innate/terrorspider/queen/queeneggs name = "Lay Queen Eggs" - button_overlay_icon = 'icons/effects/effects.dmi' - button_overlay_icon_state = "eggs" + button_icon = 'icons/effects/effects.dmi' + button_icon_state = "eggs" /datum/action/innate/terrorspider/queen/queeneggs/Activate() var/mob/living/simple_animal/hostile/poison/terror_spider/queen/user = owner @@ -113,8 +113,8 @@ /datum/action/innate/terrorspider/queen/empress/empresserase name = "Empress Erase Brood" - button_overlay_icon = 'icons/effects/blood.dmi' - button_overlay_icon_state = "mgibbl1" + button_icon = 'icons/effects/blood.dmi' + button_icon_state = "mgibbl1" /datum/action/innate/terrorspider/queen/empress/empresserase/Activate() var/mob/living/simple_animal/hostile/poison/terror_spider/queen/empress/user = owner @@ -122,8 +122,8 @@ /datum/action/innate/terrorspider/queen/empress/empresslings name = "Empresss Spiderlings" - button_overlay_icon = 'icons/effects/effects.dmi' - button_overlay_icon_state = "spiderling" + button_icon = 'icons/effects/effects.dmi' + button_icon_state = "spiderling" /datum/action/innate/terrorspider/queen/empress/empresslings/Activate() var/mob/living/simple_animal/hostile/poison/terror_spider/queen/empress/user = owner diff --git a/code/modules/mob/living/simple_animal/hostile/terror_spiders/empress_terror.dm b/code/modules/mob/living/simple_animal/hostile/terror_spiders/empress_terror.dm index 8bf8842c359..5ce6056da41 100644 --- a/code/modules/mob/living/simple_animal/hostile/terror_spiders/empress_terror.dm +++ b/code/modules/mob/living/simple_animal/hostile/terror_spiders/empress_terror.dm @@ -44,7 +44,7 @@ /mob/living/simple_animal/hostile/poison/terror_spider/queen/empress/NestMode() ..() queeneggs_action.name = "Empress Eggs" - queeneggs_action.UpdateButtons() + queeneggs_action.build_all_button_icons() /mob/living/simple_animal/hostile/poison/terror_spider/queen/empress/LayQueenEggs() var/eggtype = tgui_input_list(src, "What kind of eggs?", "Egg laying", list(TS_DESC_QUEEN, TS_DESC_MOTHER, TS_DESC_PRINCE, TS_DESC_PRINCESS, TS_DESC_RED, TS_DESC_GRAY, TS_DESC_GREEN, TS_DESC_BLACK, TS_DESC_PURPLE, TS_DESC_WHITE, TS_DESC_BROWN)) diff --git a/code/modules/mob/living/simple_animal/slime/slime_powers.dm b/code/modules/mob/living/simple_animal/slime/slime_powers.dm index 9fa8b8c54c5..6b394e20ccc 100644 --- a/code/modules/mob/living/simple_animal/slime/slime_powers.dm +++ b/code/modules/mob/living/simple_animal/slime/slime_powers.dm @@ -7,8 +7,8 @@ /datum/action/innate/slime check_flags = AB_CHECK_CONSCIOUS - button_overlay_icon = 'icons/mob/actions/actions_slime.dmi' - button_background_icon_state = "bg_alien" + button_icon = 'icons/mob/actions/actions_slime.dmi' + background_icon_state = "bg_alien" var/needs_growth = NO_GROWTH_NEEDED /datum/action/innate/slime/IsAvailable() @@ -42,7 +42,7 @@ /datum/action/innate/slime/feed name = "Feed" - button_overlay_icon_state = "slimeeat" + button_icon_state = "slimeeat" /datum/action/innate/slime/feed/Activate() @@ -144,7 +144,7 @@ /datum/action/innate/slime/evolve name = "Evolve" - button_overlay_icon_state = "slimegrow" + button_icon_state = "slimegrow" needs_growth = GROWTH_NEEDED /datum/action/innate/slime/evolve/Activate() @@ -205,7 +205,7 @@ /datum/action/innate/slime/reproduce name = "Reproduce" - button_overlay_icon_state = "slimesplit" + button_icon_state = "slimesplit" needs_growth = GROWTH_NEEDED /datum/action/innate/slime/reproduce/Activate() diff --git a/code/modules/mob/living/stat_states.dm b/code/modules/mob/living/stat_states.dm index 0698dd7bf79..1f71e4a9d39 100644 --- a/code/modules/mob/living/stat_states.dm +++ b/code/modules/mob/living/stat_states.dm @@ -82,7 +82,7 @@ if(mind) for(var/S in mind.spell_list) var/datum/spell/spell = S - spell.UpdateButtons() + spell.build_all_button_icons() return TRUE diff --git a/code/modules/mod/mod_actions.dm b/code/modules/mod/mod_actions.dm index 5509a16fb45..647f8716d5e 100644 --- a/code/modules/mod/mod_actions.dm +++ b/code/modules/mod/mod_actions.dm @@ -1,12 +1,11 @@ /datum/action/item_action/mod - button_overlay_icon = 'icons/mob/actions/actions_mod.dmi' - button_overlay_icon_state = "bg_mod_border" - button_background_icon = 'icons/mob/actions/actions_mod.dmi' - button_background_icon_state = "bg_mod" + button_icon = 'icons/mob/actions/actions_mod.dmi' + button_icon_state = "bg_mod_border" + background_icon = 'icons/mob/actions/actions_mod.dmi' + background_icon_state = "bg_mod" check_flags = AB_CHECK_CONSCIOUS - use_itemicon = FALSE -/datum/action/item_action/mod/New(Target, custom_icon, custom_icon_state) +/datum/action/item_action/mod/New(Target) ..() if(!ismodcontrol(Target)) qdel(src) @@ -23,7 +22,7 @@ /datum/action/item_action/mod/deploy name = "Deploy MODsuit" desc = "LMB: Deploy/Undeploy full suit. MMB: Deploy/Undeploy part." - button_overlay_icon_state = "deploy" + button_icon_state = "deploy" /datum/action/item_action/mod/deploy/Trigger(left_click, attack_self) . = ..() @@ -38,7 +37,7 @@ /datum/action/item_action/mod/activate name = "Activate MODsuit" desc = "LMB: Activate/Deactivate suit with prompt. MMB: Activate/Deactivate suit skipping prompt." - button_overlay_icon_state = "activate" + button_icon_state = "activate" /// First time clicking this will set it to TRUE, second time will activate it. var/ready = FALSE @@ -48,8 +47,8 @@ return if(!ready && left_click) ready = TRUE - button_overlay_icon_state = "activate-ready" - UpdateButtons() + button_icon_state = "activate-ready" + build_all_button_icons() addtimer(CALLBACK(src, PROC_REF(reset_ready)), 3 SECONDS) return var/obj/item/mod/control/mod = target @@ -59,13 +58,13 @@ /// Resets the state requiring to be doubleclicked again. /datum/action/item_action/mod/activate/proc/reset_ready() ready = FALSE - button_overlay_icon_state = initial(button_overlay_icon_state) - UpdateButtons() + button_icon_state = initial(button_icon_state) + build_all_button_icons() /datum/action/item_action/mod/module name = "Toggle Module" desc = "Toggle a MODsuit module." - button_overlay_icon_state = "module" + button_icon_state = "module" /datum/action/item_action/mod/module/Trigger(left_click, attack_self) . = ..() @@ -77,7 +76,7 @@ /datum/action/item_action/mod/panel name = "MODsuit Panel" desc = "Open the MODsuit's panel." - button_overlay_icon_state = "panel" + button_icon_state = "panel" /datum/action/item_action/mod/panel/Trigger(left_click, attack_self) . = ..() @@ -88,20 +87,21 @@ /datum/action/item_action/mod/pinned_module desc = "Activate the module." - button_overlay_icon = 'icons/obj/clothing/modsuit/mod_modules.dmi' - button_overlay_icon_state = "module" + button_icon = 'icons/obj/clothing/modsuit/mod_modules.dmi' + button_icon_state = "module" /// Module we are linked to. var/obj/item/mod/module/module /// A ref to the mob we are pinned to. var/pinner_uid -/datum/action/item_action/mod/pinned_module/New(Target, custom_icon, custom_icon_state, obj/item/mod/module/linked_module, mob/user) +/datum/action/item_action/mod/pinned_module/New(Target, obj/item/mod/module/linked_module, mob/user) + button_icon = linked_module.icon + button_icon_state = linked_module.icon_state name = "Activate [capitalize(linked_module.name)]" desc = "Quickly activate [linked_module]." ..() module = linked_module - button_overlay_icon_state = module.icon_state - button_background_icon_state = ((module.module_type == MODULE_TOGGLE && module.active) ? "bg_mod_active" : "bg_mod") + background_icon_state = ((module.module_type == MODULE_TOGGLE && module.active) ? "bg_mod_active" : "bg_mod") if(linked_module.allow_flags & MODULE_ALLOW_INCAPACITATED) // clears check hands check_flags = AB_CHECK_CONSCIOUS @@ -131,5 +131,5 @@ /datum/action/item_action/mod/pinned_module/proc/linked_button_update() if(module.module_type != MODULE_PASSIVE) - button_background_icon_state = (module.active ? "bg_mod_active" : "bg_mod") - UpdateButtons() + background_icon_state = (module.active ? "bg_mod_active" : "bg_mod") + build_all_button_icons() diff --git a/code/modules/mod/modules/_modules.dm b/code/modules/mod/modules/_modules.dm index 6312dcaa4e0..a0b85e5dfa3 100644 --- a/code/modules/mod/modules/_modules.dm +++ b/code/modules/mod/modules/_modules.dm @@ -331,7 +331,7 @@ qdel(M) pinned_to = list() return - var/datum/action/item_action/mod/pinned_module/new_action = new(Target = mod, custom_icon = src.icon, custom_icon_state = src.icon_state, linked_module = src, user = user) + var/datum/action/item_action/mod/pinned_module/new_action = new(Target = mod, linked_module = src, user = user) to_chat(user, "[new_action] is now pinned to the UI!") diff --git a/code/modules/mod/modules/module_pathfinder.dm b/code/modules/mod/modules/module_pathfinder.dm index 8aada8f4cb8..f86588ea01e 100644 --- a/code/modules/mod/modules/module_pathfinder.dm +++ b/code/modules/mod/modules/module_pathfinder.dm @@ -211,12 +211,11 @@ /datum/action/item_action/mod_recall name = "Recall MOD" desc = "Recall a MODsuit anyplace, anytime." - use_itemicon = FALSE check_flags = AB_CHECK_CONSCIOUS - button_overlay_icon = 'icons/mob/actions/actions_mod.dmi' - button_overlay_icon_state = "recall" - button_background_icon = 'icons/mob/actions/actions_mod.dmi' - button_background_icon_state = "bg_mod" + button_icon = 'icons/mob/actions/actions_mod.dmi' + button_icon_state = "recall" + background_icon = 'icons/mob/actions/actions_mod.dmi' + background_icon_state = "bg_mod" /// The cooldown for the recall. COOLDOWN_DECLARE(recall_cooldown) diff --git a/code/modules/research/xenobiology/xenobio_camera.dm b/code/modules/research/xenobiology/xenobio_camera.dm index ba59fee6945..941c6c21010 100644 --- a/code/modules/research/xenobiology/xenobio_camera.dm +++ b/code/modules/research/xenobiology/xenobio_camera.dm @@ -191,7 +191,7 @@ // === SLIME ACTION DATUMS ==== /datum/action/innate/slime_place name = "Place Slimes" - button_overlay_icon_state = "slime_down" + button_icon_state = "slime_down" /datum/action/innate/slime_place/Activate() if(!target || !ishuman(owner)) @@ -211,7 +211,7 @@ /datum/action/innate/slime_pick_up name = "Pick up Slime" - button_overlay_icon_state = "slime_up" + button_icon_state = "slime_up" /datum/action/innate/slime_pick_up/Activate() if(!target || !ishuman(owner)) @@ -233,7 +233,7 @@ /datum/action/innate/feed_slime name = "Feed Slimes" - button_overlay_icon_state = "monkey_down" + button_icon_state = "monkey_down" /datum/action/innate/feed_slime/Activate() if(!target || !ishuman(owner)) @@ -276,7 +276,7 @@ /datum/action/innate/monkey_recycle name = "Recycle Monkeys" - button_overlay_icon_state = "monkey_up" + button_icon_state = "monkey_up" /datum/action/innate/monkey_recycle/Activate() if(!target || !ishuman(owner)) @@ -301,7 +301,7 @@ /datum/action/innate/slime_scan name = "Scan Slime" - button_overlay_icon_state = "slime_scan" + button_icon_state = "slime_scan" /datum/action/innate/slime_scan/Activate() if(!target || !isliving(owner)) @@ -317,7 +317,7 @@ /datum/action/innate/feed_potion name = "Apply Potion" - button_overlay_icon_state = "slime_potion" + button_icon_state = "slime_potion" /datum/action/innate/feed_potion/Activate() if(!target || !ishuman(owner)) @@ -340,7 +340,7 @@ /datum/action/innate/hotkey_help name = "Hotkey Help" - button_overlay_icon_state = "hotkey_help" + button_icon_state = "hotkey_help" /datum/action/innate/hotkey_help/Activate() if(!target || !isliving(owner)) diff --git a/code/modules/research/xenobiology/xenobiology_organs.dm b/code/modules/research/xenobiology/xenobiology_organs.dm index 0cabc01c86e..00efb06c765 100644 --- a/code/modules/research/xenobiology/xenobiology_organs.dm +++ b/code/modules/research/xenobiology/xenobiology_organs.dm @@ -248,8 +248,8 @@ /datum/spell/drake_breath/update_spell_icon() if(!action) return - action.button_overlay_icon_state = "fireball[active]" - action.UpdateButtons() + action.button_icon_state = "fireball[active]" + action.build_all_button_icons() /datum/spell/drake_breath/cast(list/targets, mob/living/user) . = ..() @@ -1030,8 +1030,8 @@ /datum/action/innate/migo_noise name = "Make some noise!" desc = "Your organ YEARNS to make noises of all kinds. Let it loose for a moment!" - button_overlay_icon = 'icons/mob/animal.dmi' - button_overlay_icon_state = "mi-go" + button_icon = 'icons/mob/animal.dmi' + button_icon_state = "mi-go" var/cooldown = 0 COOLDOWN_DECLARE(migo_cooldown) diff --git a/code/modules/shuttle/navigation_computer.dm b/code/modules/shuttle/navigation_computer.dm index 3111600bd47..83050ab1d16 100644 --- a/code/modules/shuttle/navigation_computer.dm +++ b/code/modules/shuttle/navigation_computer.dm @@ -257,8 +257,8 @@ /datum/action/innate/shuttledocker_rotate name = "Rotate" - button_overlay_icon = 'icons/mob/actions/actions_mecha.dmi' - button_overlay_icon_state = "mech_cycle_equip_off" + button_icon = 'icons/mob/actions/actions_mecha.dmi' + button_icon_state = "mech_cycle_equip_off" /datum/action/innate/shuttledocker_rotate/Activate() if(QDELETED(target) || !isliving(target)) @@ -270,8 +270,8 @@ /datum/action/innate/shuttledocker_place name = "Place" - button_overlay_icon = 'icons/mob/actions/actions_mecha.dmi' - button_overlay_icon_state = "mech_zoom_off" + button_icon = 'icons/mob/actions/actions_mecha.dmi' + button_icon_state = "mech_zoom_off" /datum/action/innate/shuttledocker_place/Activate() if(QDELETED(target) || !isliving(target)) diff --git a/code/modules/surgery/dental_implant.dm b/code/modules/surgery/dental_implant.dm index 841b13d39c7..b86d5cc82d1 100644 --- a/code/modules/surgery/dental_implant.dm +++ b/code/modules/surgery/dental_implant.dm @@ -37,7 +37,7 @@ user.drop_item() tool.forceMove(target) - var/datum/action/item_action/hands_free/activate_pill/P = new(tool, tool.icon, tool.icon_state) + var/datum/action/item_action/hands_free/activate_pill/P = new(tool) P.name = "Activate Pill ([tool.name])" P.Grant(target) @@ -47,6 +47,11 @@ /datum/action/item_action/hands_free/activate_pill name = "Activate Pill" +/datum/action/item_action/hands_free/activate_pill/New(Target, obj/item/tool) + button_icon = tool.icon + button_icon_state = tool.icon_state + return ..() + /datum/action/item_action/hands_free/activate_pill/Trigger(left_click = TRUE) if(!..(left_click, FALSE)) return diff --git a/code/modules/surgery/organs/augments_arms.dm b/code/modules/surgery/organs/augments_arms.dm index 23191f787ee..3ef8a489c0a 100644 --- a/code/modules/surgery/organs/augments_arms.dm +++ b/code/modules/surgery/organs/augments_arms.dm @@ -219,6 +219,9 @@ /obj/item/organ/internal/cyberimp/arm/gun/taser/l parent_organ = "l_arm" +/datum/action/item_action/organ_action/toggle/utility_belt + button_icon = 'icons/obj/clothing/belts.dmi' + button_icon_state = "utilitybelt" /obj/item/organ/internal/cyberimp/arm/toolset name = "integrated toolset implant" @@ -227,8 +230,7 @@ origin_tech = "materials=3;engineering=4;biotech=3;powerstorage=4" contents = newlist(/obj/item/screwdriver/cyborg, /obj/item/wrench/cyborg, /obj/item/weldingtool/largetank/cyborg, /obj/item/crowbar/cyborg, /obj/item/wirecutters/cyborg, /obj/item/multitool/cyborg) - action_icon = list(/datum/action/item_action/organ_action/toggle = 'icons/obj/clothing/belts.dmi') - action_icon_state = list(/datum/action/item_action/organ_action/toggle = "utilitybelt") + actions_types = list(/datum/action/item_action/organ_action/toggle/utility_belt) /obj/item/organ/internal/cyberimp/arm/toolset/l parent_organ = "l_arm" @@ -240,26 +242,32 @@ return TRUE return FALSE +/datum/action/item_action/organ_action/toggle/abductor_belt + button_icon = 'icons/obj/abductor.dmi' + button_icon_state = "belt" + /obj/item/organ/internal/cyberimp/arm/toolset_abductor name = "alien toolset implant" desc = "An alien toolset, designed to be installed on subject's arm." icon_state = "toolkit_engineering" origin_tech = "materials=5;engineering=5;plasmatech=5;powerstorage=4;abductor=3" contents = newlist(/obj/item/screwdriver/abductor, /obj/item/wirecutters/abductor, /obj/item/crowbar/abductor, /obj/item/wrench/abductor, /obj/item/weldingtool/abductor, /obj/item/multitool/abductor) - action_icon = list(/datum/action/item_action/organ_action/toggle = 'icons/obj/abductor.dmi') - action_icon_state = list(/datum/action/item_action/organ_action/toggle = "belt") + actions_types = list(/datum/action/item_action/organ_action/toggle/abductor_belt) /obj/item/organ/internal/cyberimp/arm/toolset_abductor/l parent_organ = "l_arm" +/datum/action/item_action/organ_action/toggle/abductor_janibelt + button_icon = 'icons/obj/abductor.dmi' + button_icon_state = "janibelt_abductor" + /obj/item/organ/internal/cyberimp/arm/janitorial_abductor name = "alien janitorial toolset implant" desc = "A set of alien janitorial tools, designed to be installed on subject's arm." icon_state = "toolkit_janitor" origin_tech = "materials=5;engineering=5;biotech=5;powerstorage=4;abductor=2" contents = newlist(/obj/item/mop/advanced/abductor, /obj/item/soap/syndie/abductor, /obj/item/lightreplacer/bluespace/abductor, /obj/item/holosign_creator/janitor, /obj/item/melee/flyswatter/abductor, /obj/item/reagent_containers/spray/cleaner/safety/abductor) - action_icon = list(/datum/action/item_action/organ_action/toggle = 'icons/obj/abductor.dmi') - action_icon_state = list(/datum/action/item_action/organ_action/toggle = "janibelt_abductor") + actions_types = list(/datum/action/item_action/organ_action/toggle/abductor_belt) /obj/item/organ/internal/cyberimp/arm/janitorial_abductor/l parent_organ = "l_arm" @@ -270,8 +278,7 @@ icon_state = "toolkit_surgical" origin_tech = "materials=5;engineering=5;plasmatech=5;powerstorage=4;abductor=2" contents = newlist(/obj/item/retractor/alien, /obj/item/hemostat/alien, /obj/item/bonesetter/alien, /obj/item/scalpel/laser/alien, /obj/item/circular_saw/alien, /obj/item/bonegel/alien, /obj/item/fix_o_vein/alien, /obj/item/surgicaldrill/alien) - action_icon = list(/datum/action/item_action/organ_action/toggle = 'icons/obj/abductor.dmi') - action_icon_state = list(/datum/action/item_action/organ_action/toggle = "belt") + actions_types = list(/datum/action/item_action/organ_action/toggle/abductor_belt) /obj/item/organ/internal/cyberimp/arm/surgical_abductor/l parent_organ = "l_arm" @@ -282,21 +289,27 @@ contents = newlist(/obj/item/melee/energy/blade/hardlight) origin_tech = "materials=4;combat=5;biotech=3;powerstorage=2;syndicate=5" +/datum/action/item_action/organ_action/toggle/medibeam + button_icon = 'icons/obj/chronos.dmi' + button_icon_state = "chronogun" + /obj/item/organ/internal/cyberimp/arm/medibeam name = "integrated medical beamgun" desc = "A cybernetic implant that allows the user to project a healing beam from their hand." contents = newlist(/obj/item/gun/medbeam) origin_tech = "materials=5;combat=2;biotech=5;powerstorage=4;syndicate=1" - action_icon = list(/datum/action/item_action/organ_action/toggle = 'icons/obj/chronos.dmi') - action_icon_state = list(/datum/action/item_action/organ_action/toggle = "chronogun") + actions_types = list(/datum/action/item_action/organ_action/toggle/medibeam) + +/datum/action/item_action/organ_action/toggle/flash + button_icon = 'icons/obj/device.dmi' + button_icon_state = "flash" /obj/item/organ/internal/cyberimp/arm/flash name = "integrated high-intensity photon projector" //Why not desc = "An integrated projector mounted onto a user's arm, that is able to be used as a powerful flash." contents = newlist(/obj/item/flash/armimplant) origin_tech = "materials=4;combat=3;biotech=4;magnets=4;powerstorage=3" - action_icon = list(/datum/action/item_action/organ_action/toggle = 'icons/obj/device.dmi') - action_icon_state = list(/datum/action/item_action/organ_action/toggle = "flash") + actions_types = list(/datum/action/item_action/organ_action/toggle/medibeam) /obj/item/organ/internal/cyberimp/arm/flash/New() ..() @@ -331,27 +344,33 @@ icon_state = "m1911" emp_proof = 1 +/datum/action/item_action/organ_action/toggle/dufflebag_med + button_icon = 'icons/obj/storage.dmi' + button_icon_state = "duffel-med" + /obj/item/organ/internal/cyberimp/arm/surgery name = "surgical toolset implant" desc = "A set of surgical tools hidden behind a concealed panel on the user's arm." icon_state = "toolkit_surgical" contents = newlist(/obj/item/retractor/augment, /obj/item/hemostat/augment, /obj/item/cautery/augment, /obj/item/bonesetter/augment, /obj/item/scalpel/augment, /obj/item/circular_saw/augment, /obj/item/bonegel/augment, /obj/item/fix_o_vein/augment, /obj/item/surgicaldrill/augment) origin_tech = "materials=3;engineering=3;biotech=3;programming=2;magnets=3" - action_icon = list(/datum/action/item_action/organ_action/toggle = 'icons/obj/storage.dmi') - action_icon_state = list(/datum/action/item_action/organ_action/toggle = "duffel-med") + actions_types = list(/datum/action/item_action/organ_action/toggle/dufflebag_med) /obj/item/organ/internal/cyberimp/arm/surgery/l parent_organ = "l_arm" slot = "l_arm_device" +/datum/action/item_action/organ_action/toggle/janibelt + button_icon = 'icons/obj/clothing/belts.dmi' + button_icon_state = "janibelt" + /obj/item/organ/internal/cyberimp/arm/janitorial name = "janitorial toolset implant" desc = "A set of janitorial tools hidden behind a concealed panel on the user's arm." icon_state = "toolkit_janitor" contents = newlist(/obj/item/mop/advanced, /obj/item/soap, /obj/item/lightreplacer, /obj/item/holosign_creator/janitor, /obj/item/melee/flyswatter, /obj/item/reagent_containers/spray/cleaner/safety) origin_tech = "materials=3;engineering=4;biotech=3" - action_icon = list(/datum/action/item_action/organ_action/toggle = 'icons/obj/clothing/belts.dmi') - action_icon_state = list(/datum/action/item_action/organ_action/toggle = "janibelt") + actions_types = list(/datum/action/item_action/organ_action/toggle/janibelt) /obj/item/organ/internal/cyberimp/arm/janitorial/l parent_organ = "l_arm" @@ -363,8 +382,7 @@ desc = "A set of advanced janitorial tools hidden behind a concealed panel on the user's arm." contents = newlist(/obj/item/mop/advanced, /obj/item/soap/deluxe, /obj/item/lightreplacer/bluespace, /obj/item/holosign_creator/janitor, /obj/item/melee/flyswatter, /obj/item/reagent_containers/spray/cleaner/advanced) origin_tech = "materials=5;engineering=6;biotech=5" - action_icon = list(/datum/action/item_action/organ_action/toggle = 'icons/obj/clothing/belts.dmi') - action_icon_state = list(/datum/action/item_action/organ_action/toggle = "janibelt") + actions_types = list(/datum/action/item_action/organ_action/toggle/janibelt) emp_proof = TRUE /// its for ERT, but still probably a good idea. @@ -372,14 +390,17 @@ parent_organ = "l_arm" slot = "l_arm_device" +/datum/action/item_action/organ_action/toggle/botanybelt + button_icon = 'icons/obj/clothing/belts.dmi' + button_icon_state = "botanybelt" + /obj/item/organ/internal/cyberimp/arm/botanical name = "botanical toolset implant" desc = "A set of botanical tools hidden behind a concealed panel on the user's arm." icon_state = "toolkit_hydro" contents = newlist(/obj/item/plant_analyzer, /obj/item/cultivator, /obj/item/hatchet, /obj/item/shovel/spade, /obj/item/reagent_containers/spray/weedspray, /obj/item/reagent_containers/spray/pestspray) origin_tech = "materials=3;engineering=4;biotech=3" - action_icon = list(/datum/action/item_action/organ_action/toggle = 'icons/obj/clothing/belts.dmi') - action_icon_state = list(/datum/action/item_action/organ_action/toggle = "botanybelt") + actions_types = list(/datum/action/item_action/organ_action/toggle/botanybelt) /obj/item/organ/internal/cyberimp/arm/botanical/l parent_organ = "l_arm" @@ -467,21 +488,27 @@ H.visible_message("[H] unplugs from \the [A].", "You unplug from \the [A].") drawing_power = FALSE +/datum/action/item_action/organ_action/toggle/telebaton + button_icon = 'icons/obj/items.dmi' + button_icon_state = "baton" + /obj/item/organ/internal/cyberimp/arm/telebaton name = "telebaton implant" desc = "Telescopic baton implant. Does what it says on the tin" // A better description contents = newlist(/obj/item/melee/classic_baton) - action_icon = list(/datum/action/item_action/organ_action/toggle = 'icons/obj/items.dmi') - action_icon_state = list(/datum/action/item_action/organ_action/toggle = "baton") + actions_types = list(/datum/action/item_action/organ_action/toggle/telebaton) + +/datum/action/item_action/organ_action/toggle/advanced_mop + button_icon = 'icons/obj/janitor.dmi' + button_icon_state = "advmop" /obj/item/organ/internal/cyberimp/arm/advmop name = "advanced mop implant" desc = "Advanced mop implant. Does what it says on the tin" // A better description contents = newlist(/obj/item/mop/advanced) - action_icon = list(/datum/action/item_action/organ_action/toggle = 'icons/obj/janitor.dmi') - action_icon_state = list(/datum/action/item_action/organ_action/toggle = "advmop") + actions_types = list(/datum/action/item_action/organ_action/toggle/advanced_mop) // Razorwire implant, long reach whip made of extremely thin wire, ouch! @@ -563,14 +590,17 @@ return FALSE return TRUE +/datum/action/item_action/organ_action/toggle/razorwire + button_icon = 'icons/obj/surgery.dmi' + button_icon_state = "razorwire" + /obj/item/organ/internal/cyberimp/arm/razorwire name = "razorwire spool implant" desc = "An integrated spool of razorwire, capable of being used as a weapon when whipped at your foes. \ Built into the back of your hand, try your best to not get it tangled." contents = newlist(/obj/item/melee/razorwire) icon_state = "razorwire" - action_icon = list(/datum/action/item_action/organ_action/toggle = 'icons/obj/surgery.dmi') - action_icon_state = list(/datum/action/item_action/organ_action/toggle = "razorwire") + actions_types = list(/datum/action/item_action/organ_action/toggle/razorwire) origin_tech = "combat=5;biotech=5;syndicate=2" stealth_level = 1 // Hidden from health analyzers @@ -618,13 +648,16 @@ ammo_type = /obj/item/ammo_casing/shotgun/rubbershot max_ammo = 1 +/datum/action/item_action/organ_action/toggle/shell_cannon + button_icon = 'icons/obj/surgery.dmi' + button_icon_state = "shell_cannon" + /obj/item/organ/internal/cyberimp/arm/shell_launcher name = "shell launch system implant" desc = "A mounted, single-shot housing for a shell launch cannon; capable of firing twelve-gauge shotgun shells." contents = newlist(/obj/item/gun/projectile/revolver/doublebarrel/shell_launcher) icon_state = "shell_cannon" - action_icon = list(/datum/action/item_action/organ_action/toggle = 'icons/obj/surgery.dmi') - action_icon_state = list(/datum/action/item_action/organ_action/toggle = "shell_cannon") + actions_types = list(/datum/action/item_action/organ_action/toggle/shell_cannon) /obj/item/organ/internal/cyberimp/arm/shell_launcher/emp_act(severity) if(!owner) @@ -673,6 +706,10 @@ mercenaries, and firearm enthusiasts. Its appeal lies not just in its stealth but also in its compatibility with Shellguard's range of modular products, \ and the potential beyond its advertised capabilities." +/datum/action/item_action/organ_action/toggle/v1_arm + button_icon = 'icons/obj/items.dmi' + button_icon_state = "v1_arm" + /obj/item/organ/internal/cyberimp/arm/v1_arm name = "vortex feedback arm implant" desc = "An implant, that when deployed surrounds the users arm in armor and circuitry, allowing them to redirect nearby projectiles with feedback from the vortex anomaly core." @@ -683,8 +720,7 @@ slot = "l_arm_device" contents = newlist(/obj/item/shield/v1_arm) - action_icon = list(/datum/action/item_action/organ_action/toggle = 'icons/obj/items.dmi') - action_icon_state = list(/datum/action/item_action/organ_action/toggle = "v1_arm") + actions_types = list(/datum/action/item_action/organ_action/toggle/v1_arm) var/disabled = FALSE /obj/item/organ/internal/cyberimp/arm/v1_arm/emp_act(severity) diff --git a/code/modules/surgery/organs/augments_internal.dm b/code/modules/surgery/organs/augments_internal.dm index e4c8a70d684..7772ad14adc 100644 --- a/code/modules/surgery/organs/augments_internal.dm +++ b/code/modules/surgery/organs/augments_internal.dm @@ -380,8 +380,8 @@ /datum/action/item_action/organ_action/toggle/sensory_enhancer name = "Activate Qani-Laaca System" desc = "Activates your Qani-Laaca computer and grants you its powers. LMB: Short, safer activation. ALT/MIDDLE: Longer, more powerful, more dangerous activation." - button_overlay_icon = 'icons/obj/surgery.dmi' - button_overlay_icon_state = "sandy" + button_icon = 'icons/obj/surgery.dmi' + button_icon_state = "sandy" /// Keeps track of how much mephedrone we inject into people on activation var/injection_amount = 10 diff --git a/code/modules/surgery/organs/subtypes/skrell_organs.dm b/code/modules/surgery/organs/subtypes/skrell_organs.dm index aaf6dd9390a..f0354eaa16d 100644 --- a/code/modules/surgery/organs/subtypes/skrell_organs.dm +++ b/code/modules/surgery/organs/subtypes/skrell_organs.dm @@ -15,13 +15,12 @@ var/obj/item/held_item /datum/action/item_action/organ_action/toggle/headpocket - use_itemicon = FALSE - button_overlay_icon_state = "skrell_headpocket_in" + button_icon_state = "skrell_headpocket_in" /obj/item/organ/internal/headpocket/proc/update_button_state() for(var/datum/action/item_action/T in actions) - T.button_overlay_icon_state = "skrell_headpocket[held_item ? "_out" : "_in"]" - T.UpdateButtons() + T.button_icon_state = "skrell_headpocket[held_item ? "_out" : "_in"]" + T.build_all_button_icons() /obj/item/organ/internal/headpocket/Destroy() empty_contents() diff --git a/code/modules/vehicle/ambulance.dm b/code/modules/vehicle/ambulance.dm index ef230e2b67e..72f21525f40 100644 --- a/code/modules/vehicle/ambulance.dm +++ b/code/modules/vehicle/ambulance.dm @@ -20,8 +20,8 @@ /datum/action/ambulance_alarm name = "Toggle Sirens" - button_overlay_icon = 'icons/obj/vehicles.dmi' - button_overlay_icon_state = "docwagon2" + button_icon = 'icons/obj/vehicles.dmi' + button_icon_state = "docwagon2" check_flags = AB_CHECK_RESTRAINED | AB_CHECK_STUNNED | AB_CHECK_LYING | AB_CHECK_CONSCIOUS var/toggle_cooldown = 40 var/cooldown = 0 diff --git a/code/modules/vehicle/bicycle.dm b/code/modules/vehicle/bicycle.dm index 6fd01b62bd6..b08239f06b0 100644 --- a/code/modules/vehicle/bicycle.dm +++ b/code/modules/vehicle/bicycle.dm @@ -45,8 +45,8 @@ /datum/action/bicycle_bell name = "Ring Bell" desc = "Go on, ring your bicycle bell!" - button_overlay_icon = 'icons/obj/bureaucracy.dmi' - button_overlay_icon_state = "desk_bell" + button_icon = 'icons/obj/bureaucracy.dmi' + button_icon_state = "desk_bell" COOLDOWN_DECLARE(ring_cooldown) /datum/action/bicycle_bell/Trigger(left_click) diff --git a/code/modules/vehicle/janivehicle.dm b/code/modules/vehicle/janivehicle.dm index bb7e0d4a282..e97ae0bf88a 100644 --- a/code/modules/vehicle/janivehicle.dm +++ b/code/modules/vehicle/janivehicle.dm @@ -46,8 +46,8 @@ /datum/action/floor_buffer name = "Toggle Floor Buffer" desc = "Movement speed is decreased while active." - button_overlay_icon = 'icons/obj/vehicles.dmi' - button_overlay_icon_state = "upgrade" + button_icon = 'icons/obj/vehicles.dmi' + button_icon_state = "upgrade" /datum/action/floor_buffer/Trigger(left_click) . = ..() diff --git a/code/modules/vehicle/tg_vehicles/tg_vehicle_actions.dm b/code/modules/vehicle/tg_vehicles/tg_vehicle_actions.dm index c82fb7f001b..44e59182199 100644 --- a/code/modules/vehicle/tg_vehicles/tg_vehicle_actions.dm +++ b/code/modules/vehicle/tg_vehicles/tg_vehicle_actions.dm @@ -188,9 +188,9 @@ /datum/action/vehicle check_flags = AB_CHECK_HANDS_BLOCKED | AB_CHECK_IMMOBILE | AB_CHECK_CONSCIOUS - button_background_icon = 'icons/mob/actions/actions_vehicle.dmi' - button_overlay_icon = 'icons/mob/actions/actions_vehicle.dmi' - button_overlay_icon_state = "vehicle_eject" + background_icon = 'icons/mob/actions/actions_vehicle.dmi' + button_icon = 'icons/mob/actions/actions_vehicle.dmi' + button_icon_state = "vehicle_eject" var/obj/tgvehicle/vehicle_target var/obj/tgvehicle/vehicle_ridden_target @@ -201,7 +201,7 @@ /datum/action/vehicle/skateboard/ollie name = "Ollie" desc = "Get some air! Land on a table or fence to do a gnarly grind." - button_overlay_icon_state = "skateboard_ollie" + button_icon_state = "skateboard_ollie" check_flags = AB_CHECK_CONSCIOUS /datum/action/vehicle/skateboard/ollie/Trigger(left_click) @@ -251,7 +251,7 @@ /datum/action/vehicle/skateboard/kickflip name = "Kickflip" desc = "Kick your board up and catch it." - button_overlay_icon_state = "skateboard_ollie" + button_icon_state = "skateboard_ollie" check_flags = AB_CHECK_CONSCIOUS /datum/action/vehicle/skateboard/kickflip/Trigger(left_click) diff --git a/icons/mob/actions/actions.dmi b/icons/mob/actions/actions.dmi index 22ca74f6e2f5a9bf708bd397f895d56f7ae2034f..e81510947ed0c6b7e48e8ad7a3fc761942d4a75b 100644 GIT binary patch literal 123577 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±;RF-c+NUG=LQBmLK5+0*LwBwE%d{4z3 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

jLzjRL-HSLihaGWtP(=XP=Mf?xw>5ppw literal 147013 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

  • =@{p;hk!mOsi-u{ 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

    Bs`0`cFc6VP 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

    7;2z9#99I+$btblU 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 QLBNlK%xmdVDbv9J2SZECyZ`_I diff --git a/paradise.dme b/paradise.dme index c860f2e42cc..ca19945519a 100644 --- a/paradise.dme +++ b/paradise.dme @@ -502,6 +502,7 @@ #include "code\datums\cache\crew.dm" #include "code\datums\cache\powermonitor.dm" #include "code\datums\components\_component.dm" +#include "code\datums\components\action_item_overlay.dm" #include "code\datums\components\ai_retaliate_advanced.dm" #include "code\datums\components\anti_magic.dm" #include "code\datums\components\basic_mob_aggro_emote.dm"