This commit is contained in:
SandPoot
2025-01-26 18:06:36 -03:00
parent 44e507dfef
commit cae94afdb7
37 changed files with 152 additions and 126 deletions

View File

@@ -30,6 +30,7 @@
#define COLOR_YELLOW "#FFFF00" #define COLOR_YELLOW "#FFFF00"
#define COLOR_VIVID_YELLOW "#FBFF23" #define COLOR_VIVID_YELLOW "#FBFF23"
#define COLOR_VERY_SOFT_YELLOW "#FAE48E" #define COLOR_VERY_SOFT_YELLOW "#FAE48E"
#define COLOR_GOLD "#FFD700"
#define COLOR_OLIVE "#808000" #define COLOR_OLIVE "#808000"
#define COLOR_VIBRANT_LIME "#00FF00" #define COLOR_VIBRANT_LIME "#00FF00"

View File

@@ -94,11 +94,12 @@
#define ui_palette_scroll_offset(north_offset) ("WEST+1:8,NORTH-[6+north_offset]:28") #define ui_palette_scroll_offset(north_offset) ("WEST+1:8,NORTH-[6+north_offset]:28")
//Middle right (status indicators) //Middle right (status indicators)
#define ui_healthdoll "EAST-1:28,CENTER-2:13" #define ui_healthdoll "EAST-1:28,CENTER-2:17"
#define ui_health "EAST-1:28,CENTER-1:15" #define ui_health "EAST-1:28,CENTER-1:19"
#define ui_internal "EAST-1:28,CENTER+1:19"//CIT CHANGE - moves internal icon up a little bit to accommodate for the stamina meter #define ui_internal "EAST-1:28,CENTER+1:21" // RIP, although nobody will remember this, unsmart coders have used this for other stuff. DO NOT REMOVE UNLESS RENAMING OR REPLACING.
#define ui_mood "EAST-1:28,CENTER-3:10" #define ui_mood "EAST-1:28,CENTER:21"
// #define ui_spacesuit "EAST-1:28,CENTER-4:10" #define ui_stamina "EAST-1:28,CENTER-3:14"
// #define ui_spacesuit "EAST-1:28,CENTER-4:14"
//Pop-up inventory //Pop-up inventory
#define ui_shoes "WEST+1:8,SOUTH:5" #define ui_shoes "WEST+1:8,SOUTH:5"
@@ -208,7 +209,6 @@
#define ui_ghost_spawners "SOUTH: 6, CENTER+1:24" // LEGACY. SAME LOC AS PAI #define ui_ghost_spawners "SOUTH: 6, CENTER+1:24" // LEGACY. SAME LOC AS PAI
//UI position overrides for 1:1 screen layout. (default is 7:5) //UI position overrides for 1:1 screen layout. (default is 7:5)
#define ui_stamina "EAST-1:28,CENTER:17" // replacing internals button
#define ui_overridden_resist "EAST-3:24,SOUTH+1:7" #define ui_overridden_resist "EAST-3:24,SOUTH+1:7"
#define ui_clickdelay "CENTER,SOUTH+1:-31" #define ui_clickdelay "CENTER,SOUTH+1:-31"
#define ui_resistdelay "EAST-3:24,SOUTH+1:4" #define ui_resistdelay "EAST-3:24,SOUTH+1:4"
@@ -231,6 +231,8 @@
#define SCRN_OBJ_IN_LIST "list" #define SCRN_OBJ_IN_LIST "list"
/// In the collapseable palette /// In the collapseable palette
#define SCRN_OBJ_IN_PALETTE "palette" #define SCRN_OBJ_IN_PALETTE "palette"
///Inserted first in the list
#define SCRN_OBJ_INSERT_FIRST "first"
/// The filter name for the hover outline /// The filter name for the hover outline
#define HOVER_OUTLINE_FILTER "hover_outline" #define HOVER_OUTLINE_FILTER "hover_outline"

View File

@@ -5,10 +5,11 @@
var/datum/hud/our_hud var/datum/hud/our_hud
var/actiontooltipstyle = "" var/actiontooltipstyle = ""
screen_loc = null screen_loc = null
mouse_over_pointer = MOUSE_HAND_POINTER
var/button_icon_state var/button_icon_state
var/appearance_cache var/appearance_cache
var/mutable_appearance/button_overlay
/// Where we are currently placed on the hud. SCRN_OBJ_DEFAULT asks the linked action what it thinks /// Where we are currently placed on the hud. SCRN_OBJ_DEFAULT asks the linked action what it thinks
var/location = SCRN_OBJ_DEFAULT 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 /// A unique bitflag, combined with the name of our linked action this lets us persistently remember any user changes to our position
@@ -199,6 +200,7 @@
icon = 'icons/hud/64x16_actions.dmi' icon = 'icons/hud/64x16_actions.dmi'
icon_state = "screen_gen_palette" icon_state = "screen_gen_palette"
screen_loc = ui_action_palette screen_loc = ui_action_palette
mouse_over_pointer = MOUSE_HAND_POINTER
var/datum/hud/our_hud var/datum/hud/our_hud
var/expanded = FALSE var/expanded = FALSE
/// Id of any currently running timers that set our color matrix /// Id of any currently running timers that set our color matrix
@@ -324,6 +326,7 @@ GLOBAL_LIST_INIT(palette_removed_matrix, list(1.4,0,0,0, 0.7,0.4,0,0, 0.4,0,0.6,
/atom/movable/screen/palette_scroll /atom/movable/screen/palette_scroll
icon = 'icons/mob/screen_gen.dmi' icon = 'icons/mob/screen_gen.dmi'
screen_loc = ui_palette_scroll screen_loc = ui_palette_scroll
mouse_over_pointer = MOUSE_HAND_POINTER
/// How should we move the palette's actions? /// How should we move the palette's actions?
/// Positive scrolls down the list, negative scrolls back /// Positive scrolls down the list, negative scrolls back
var/scroll_direction = 0 var/scroll_direction = 0

View File

@@ -1,5 +1,6 @@
/atom/movable/screen/ai /atom/movable/screen/ai
icon = 'icons/mob/screen_ai.dmi' icon = 'icons/mob/screen_ai.dmi'
mouse_over_pointer = MOUSE_HAND_POINTER
/atom/movable/screen/ai/Click() /atom/movable/screen/ai/Click()
if(isobserver(usr) || usr.incapacitated()) if(isobserver(usr) || usr.incapacitated())

View File

@@ -91,6 +91,8 @@
name = "Alert" name = "Alert"
desc = "Something seems to have gone wrong with this alert, so report this bug please" desc = "Something seems to have gone wrong with this alert, so report this bug please"
mouse_opacity = MOUSE_OPACITY_ICON mouse_opacity = MOUSE_OPACITY_ICON
/// do we glow to represent we do stuff when clicked
var/clickable_glow = FALSE
var/timeout = 0 //If set to a number, this alert will clear itself after that many deciseconds var/timeout = 0 //If set to a number, this alert will clear itself after that many deciseconds
var/severity = 0 var/severity = 0
var/alerttooltipstyle = "" var/alerttooltipstyle = ""
@@ -100,6 +102,12 @@
/// Boolean. If TRUE, the Click() proc will attempt to Click() on the master first if there is a master. /// Boolean. If TRUE, the Click() proc will attempt to Click() on the master first if there is a master.
var/click_master = TRUE var/click_master = TRUE
/atom/movable/screen/alert/Initialize(mapload, datum/hud/hud_owner)
. = ..()
if(clickable_glow)
add_filter("clickglow", 2, outline_filter(color = COLOR_GOLD, size = 1))
mouse_over_pointer = MOUSE_HAND_POINTER
/atom/movable/screen/alert/MouseEntered(location,control,params) /atom/movable/screen/alert/MouseEntered(location,control,params)
if(!QDELETED(src)) if(!QDELETED(src))
openToolTip(usr,src,params,title = name,content = desc,theme = alerttooltipstyle) openToolTip(usr,src,params,title = name,content = desc,theme = alerttooltipstyle)
@@ -247,6 +255,7 @@ or something covering your eyes."
name = "Mind Control" name = "Mind Control"
desc = "Your mind has been hijacked! Click to view the mind control command." desc = "Your mind has been hijacked! Click to view the mind control command."
icon_state = "mind_control" icon_state = "mind_control"
clickable_glow = TRUE
var/command var/command
/atom/movable/screen/alert/mind_control/Click() /atom/movable/screen/alert/mind_control/Click()
@@ -271,6 +280,7 @@ or something covering your eyes."
desc = "Something got lodged into your flesh and is causing major bleeding. It might fall out with time, but surgery is the safest way. \ desc = "Something got lodged into your flesh and is causing major bleeding. It might fall out with time, but surgery is the safest way. \
If you're feeling frisky, examine yourself and click the underlined item to pull the object out." If you're feeling frisky, examine yourself and click the underlined item to pull the object out."
icon_state = "embeddedobject" icon_state = "embeddedobject"
clickable_glow = TRUE
/atom/movable/screen/alert/embeddedobject/Click() /atom/movable/screen/alert/embeddedobject/Click()
if(isliving(usr) && usr == owner) if(isliving(usr) && usr == owner)
@@ -299,6 +309,7 @@ or shoot a gun to move around via Newton's 3rd Law of Motion."
name = "On Fire" name = "On Fire"
desc = "You're on fire. Stop, drop and roll to put the fire out or move to a vacuum area." desc = "You're on fire. Stop, drop and roll to put the fire out or move to a vacuum area."
icon_state = "fire" icon_state = "fire"
clickable_glow = TRUE
/atom/movable/screen/alert/fire/Click() /atom/movable/screen/alert/fire/Click()
var/mob/living/L = usr var/mob/living/L = usr
@@ -310,8 +321,29 @@ or shoot a gun to move around via Newton's 3rd Law of Motion."
/atom/movable/screen/alert/give // information set when the give alert is made /atom/movable/screen/alert/give // information set when the give alert is made
icon_state = "default" icon_state = "default"
clickable_glow = TRUE
var/mob/living/carbon/offerer var/mob/living/carbon/offerer
var/obj/item/receiving var/obj/item/receiving
/// Additional text displayed in the description of the alert.
var/additional_desc_text = "Click this alert to take it, or shift click it to examine it."
/// Text to override what appears in screentips for the alert
var/screentip_override_text
/// Whether the offered item can be examined by shift-clicking the alert
var/examinable = TRUE
/atom/movable/screen/alert/give/Initialize(mapload, datum/hud/hud_owner)
. = ..()
register_context()
/atom/movable/screen/alert/give/Destroy()
offerer = null
receiving = null
return ..()
/atom/movable/screen/alert/give/add_context(atom/source, list/context, obj/item/held_item, mob/user)
LAZYSET(context[SCREENTIP_CONTEXT_LMB], INTENT_ANY, screentip_override_text || "Take [receiving.name]")
LAZYSET(context[SCREENTIP_CONTEXT_SHIFT_LMB], INTENT_ANY, "Examine")
return CONTEXTUAL_SCREENTIP_SET
/** /**
* Handles assigning most of the variables for the alert that pops up when an item is offered * Handles assigning most of the variables for the alert that pops up when an item is offered
@@ -341,6 +373,16 @@ or shoot a gun to move around via Newton's 3rd Law of Motion."
CRASH("User for [src] is of type \[[usr.type]\]. This should never happen.") CRASH("User for [src] is of type \[[usr.type]\]. This should never happen.")
handle_transfer() handle_transfer()
/atom/movable/screen/alert/give/examine(mob/user)
if(!examinable)
return ..()
return list(
span_boldnotice(name),
span_info("[offerer] is offering you the following item (click the alert to take it!):"),
"<hr>[jointext(receiving.examine(user), "\n")]",
)
/// An overrideable proc used simply to hand over the item when claimed, this is a proc so that high-fives can override them since nothing is actually transferred /// An overrideable proc used simply to hand over the item when claimed, this is a proc so that high-fives can override them since nothing is actually transferred
/atom/movable/screen/alert/give/proc/handle_transfer() /atom/movable/screen/alert/give/proc/handle_transfer()
var/mob/living/carbon/taker = owner var/mob/living/carbon/taker = owner
@@ -354,6 +396,11 @@ or shoot a gun to move around via Newton's 3rd Law of Motion."
to_chat(owner, span_warning("You moved out of range of [offerer]!")) to_chat(owner, span_warning("You moved out of range of [offerer]!"))
owner.clear_alert("[offerer]") owner.clear_alert("[offerer]")
/atom/movable/screen/alert/give/highfive
additional_desc_text = "Click this alert to slap it."
screentip_override_text = "High Five"
examinable = FALSE
/atom/movable/screen/alert/give/highfive/setup(mob/living/carbon/taker, mob/living/carbon/offerer, obj/item/receiving) /atom/movable/screen/alert/give/highfive/setup(mob/living/carbon/taker, mob/living/carbon/offerer, obj/item/receiving)
. = ..() . = ..()
name = "[offerer] is offering a high-five!" name = "[offerer] is offering a high-five!"
@@ -404,6 +451,9 @@ or shoot a gun to move around via Newton's 3rd Law of Motion."
/// Families handshakes /// Families handshakes
/atom/movable/screen/alert/give/secret_handshake /atom/movable/screen/alert/give/secret_handshake
icon_state = "default" icon_state = "default"
additional_desc_text = "Click this alert to accept."
screentip_override_text = "Handshake"
examinable = FALSE
/atom/movable/screen/alert/give/secret_handshake/setup(mob/living/carbon/taker, mob/living/carbon/offerer, obj/item/receiving) /atom/movable/screen/alert/give/secret_handshake/setup(mob/living/carbon/taker, mob/living/carbon/offerer, obj/item/receiving)
name = "[offerer] is offering a Handshake" name = "[offerer] is offering a Handshake"
@@ -666,7 +716,8 @@ so as to remain in compliance with the most up-to-date laws."
complete, you will have exclusive control of it, and you will gain \ complete, you will have exclusive control of it, and you will gain \
additional processing time to unlock more malfunction abilities." additional processing time to unlock more malfunction abilities."
icon_state = "hackingapc" icon_state = "hackingapc"
timeout = 600 timeout = 60 SECONDS
clickable_glow = TRUE
var/atom/target = null var/atom/target = null
/atom/movable/screen/alert/hackingapc/Click() /atom/movable/screen/alert/hackingapc/Click()
@@ -693,7 +744,8 @@ so as to remain in compliance with the most up-to-date laws."
name = "Revival" name = "Revival"
desc = "Someone is trying to revive you. Re-enter your corpse if you want to be revived!" desc = "Someone is trying to revive you. Re-enter your corpse if you want to be revived!"
icon_state = "template" icon_state = "template"
timeout = 300 timeout = 30 SECONDS
clickable_glow = TRUE
/atom/movable/screen/alert/notify_cloning/Click() /atom/movable/screen/alert/notify_cloning/Click()
if(!usr || !usr.client || usr != owner) if(!usr || !usr.client || usr != owner)
@@ -705,7 +757,8 @@ so as to remain in compliance with the most up-to-date laws."
name = "Body created" name = "Body created"
desc = "A body was created. You can enter it." desc = "A body was created. You can enter it."
icon_state = "template" icon_state = "template"
timeout = 300 timeout = 30 SECONDS
clickable_glow = TRUE
var/atom/target = null var/atom/target = null
var/action = NOTIFY_JUMP var/action = NOTIFY_JUMP
@@ -729,6 +782,9 @@ so as to remain in compliance with the most up-to-date laws."
//OBJECT-BASED //OBJECT-BASED
/atom/movable/screen/alert/restrained
clickable_glow = TRUE
/atom/movable/screen/alert/restrained/buckled /atom/movable/screen/alert/restrained/buckled
name = "Buckled" name = "Buckled"
desc = "You've been buckled to something. Click the alert to unbuckle unless you're handcuffed." desc = "You've been buckled to something. Click the alert to unbuckle unless you're handcuffed."
@@ -765,6 +821,7 @@ so as to remain in compliance with the most up-to-date laws."
name = "Knotted Shoes" name = "Knotted Shoes"
desc = "Someone tied your shoelaces together! Click the alert or your shoes to undo the knot." desc = "Someone tied your shoelaces together! Click the alert or your shoes to undo the knot."
icon_state = "shoealert" icon_state = "shoealert"
clickable_glow = TRUE
/atom/movable/screen/alert/shoes/Click() /atom/movable/screen/alert/shoes/Click()
var/mob/living/carbon/C = usr var/mob/living/carbon/C = usr
@@ -814,9 +871,9 @@ so as to remain in compliance with the most up-to-date laws."
return FALSE return FALSE
if(usr != owner) if(usr != owner)
return FALSE return FALSE
var/paramslist = params2list(params) var/modifiers = params2list(params)
if(paramslist["shift"]) // screen objects don't do the normal Click() stuff so we'll cheat if(LAZYACCESS(modifiers, SHIFT_CLICK)) // screen objects don't do the normal Click() stuff so we'll cheat
to_chat(usr, "<span class='boldnotice'>[name]</span> - <span class='info'>[desc]</span>") to_chat(usr, "<blockquote class='info'>[jointext(examine(usr), "\n")]</blockquote>")
return FALSE return FALSE
if(master && click_master) if(master && click_master)
return usr.client.Click(master, location, control, params) return usr.client.Click(master, location, control, params)
@@ -829,3 +886,9 @@ so as to remain in compliance with the most up-to-date laws."
master = null master = null
owner = null owner = null
screen_loc = "" screen_loc = ""
/atom/movable/screen/alert/examine(mob/user)
return list(
span_boldnotice(name),
span_info(desc),
)

View File

@@ -1,6 +1,7 @@
/atom/movable/screen/blob /atom/movable/screen/blob
icon = 'icons/mob/blob.dmi' icon = 'icons/mob/blob.dmi'
mouse_over_pointer = MOUSE_HAND_POINTER
/atom/movable/screen/blob/MouseEntered(location,control,params) /atom/movable/screen/blob/MouseEntered(location,control,params)
openToolTip(usr,src,params,title = name,content = desc, theme = "blob") openToolTip(usr,src,params,title = name,content = desc, theme = "blob")

View File

@@ -1,5 +1,6 @@
/atom/movable/screen/ghost /atom/movable/screen/ghost
icon = 'icons/mob/screen_ghost.dmi' icon = 'icons/mob/screen_ghost.dmi'
mouse_over_pointer = MOUSE_HAND_POINTER
/atom/movable/screen/ghost/MouseEntered() /atom/movable/screen/ghost/MouseEntered()
flick(icon_state + "_anim", src) flick(icon_state + "_anim", src)

View File

@@ -93,6 +93,7 @@
/atom/movable/screen/guardian /atom/movable/screen/guardian
icon = 'icons/mob/guardian.dmi' icon = 'icons/mob/guardian.dmi'
mouse_over_pointer = MOUSE_HAND_POINTER
/atom/movable/screen/guardian/Manifest /atom/movable/screen/guardian/Manifest
icon_state = "manifest" icon_state = "manifest"

View File

@@ -87,7 +87,6 @@ GLOBAL_LIST_INIT(available_ui_styles, list(
var/atom/movable/screen/healths var/atom/movable/screen/healths
var/atom/movable/screen/healthdoll var/atom/movable/screen/healthdoll
var/atom/movable/screen/internals
var/atom/movable/screen/wanted/wanted_lvl var/atom/movable/screen/wanted/wanted_lvl
// subtypes can override this to force a specific UI style // subtypes can override this to force a specific UI style
@@ -148,7 +147,6 @@ GLOBAL_LIST_INIT(available_ui_styles, list(
healths = null healths = null
healthdoll = null healthdoll = null
wanted_lvl = null wanted_lvl = null
internals = null
lingchemdisplay = null lingchemdisplay = null
devilsouldisplay = null devilsouldisplay = null
lingstingdisplay = null lingstingdisplay = null
@@ -365,6 +363,9 @@ GLOBAL_LIST_INIT(available_ui_styles, list(
listed_actions.insert_action(button) listed_actions.insert_action(button)
if(SCRN_OBJ_IN_PALETTE) if(SCRN_OBJ_IN_PALETTE)
palette_actions.insert_action(button) palette_actions.insert_action(button)
if(SCRN_OBJ_INSERT_FIRST)
listed_actions.insert_action(button, index = 1)
position = SCRN_OBJ_IN_LIST
else // If we don't have it as a define, this is a screen_loc, and we should be floating else // If we don't have it as a define, this is a screen_loc, and we should be floating
floating_actions += button floating_actions += button
button.screen_loc = position button.screen_loc = position

View File

@@ -4,6 +4,7 @@
/atom/movable/screen/human/toggle /atom/movable/screen/human/toggle
name = "toggle" name = "toggle"
icon_state = "toggle" icon_state = "toggle"
mouse_over_pointer = MOUSE_HAND_POINTER
/atom/movable/screen/human/toggle/Click() /atom/movable/screen/human/toggle/Click()
@@ -26,6 +27,7 @@
/atom/movable/screen/human/equip /atom/movable/screen/human/equip
name = "equip" name = "equip"
icon_state = "act_equip" icon_state = "act_equip"
mouse_over_pointer = MOUSE_HAND_POINTER
/atom/movable/screen/human/equip/Click() /atom/movable/screen/human/equip/Click()
if(ismecha(usr.loc)) // stops inventory actions in a mech if(ismecha(usr.loc)) // stops inventory actions in a mech
@@ -68,6 +70,7 @@
/atom/movable/screen/ling/sting /atom/movable/screen/ling/sting
name = "current sting" name = "current sting"
screen_loc = ui_lingstingdisplay screen_loc = ui_lingstingdisplay
mouse_over_pointer = MOUSE_HAND_POINTER
/atom/movable/screen/ling/sting/Click() /atom/movable/screen/ling/sting/Click()
if(isobserver(usr)) if(isobserver(usr))
@@ -412,10 +415,6 @@
throw_icon.hud = src throw_icon.hud = src
hotkeybuttons += throw_icon hotkeybuttons += throw_icon
internals = new /atom/movable/screen/internals()
internals.hud = src
infodisplay += internals
healths = new /atom/movable/screen/healths() healths = new /atom/movable/screen/healths()
healths.hud = src healths.hud = src
infodisplay += healths infodisplay += healths

View File

@@ -85,10 +85,6 @@
throw_icon.hud = src throw_icon.hud = src
hotkeybuttons += throw_icon hotkeybuttons += throw_icon
internals = new /atom/movable/screen/internals()
internals.hud = src
infodisplay += internals
healths = new /atom/movable/screen/healths() healths = new /atom/movable/screen/healths()
healths.hud = src healths.hud = src
infodisplay += healths infodisplay += healths

View File

@@ -62,8 +62,9 @@
screen_loc = "TOP,CENTER:-61" screen_loc = "TOP,CENTER:-61"
/atom/movable/screen/lobby/button /atom/movable/screen/lobby/button
mouse_over_pointer = MOUSE_HAND_POINTER
///Is the button currently enabled? ///Is the button currently enabled?
var/enabled = TRUE VAR_PROTECTED/enabled = TRUE
///Is the button currently being hovered over with the mouse? ///Is the button currently being hovered over with the mouse?
var/highlighted = FALSE var/highlighted = FALSE
/// The ref of the mob that owns this button. Only the owner can click on it. /// The ref of the mob that owns this button. Only the owner can click on it.
@@ -113,6 +114,7 @@
return FALSE return FALSE
enabled = status enabled = status
update_appearance(UPDATE_ICON) update_appearance(UPDATE_ICON)
mouse_over_pointer = enabled ? MOUSE_HAND_POINTER : MOUSE_INACTIVE_POINTER
return TRUE return TRUE
///Prefs menu ///Prefs menu
@@ -184,10 +186,10 @@
icon = 'icons/hud/lobby/join.dmi' icon = 'icons/hud/lobby/join.dmi'
icon_state = "" //Default to not visible icon_state = "" //Default to not visible
base_icon_state = "join_game" base_icon_state = "join_game"
enabled = FALSE
/atom/movable/screen/lobby/button/join/Initialize(mapload) /atom/movable/screen/lobby/button/join/Initialize(mapload)
. = ..() . = ..()
set_button_status(FALSE)
switch(SSticker.current_state) switch(SSticker.current_state)
if(GAME_STATE_PREGAME, GAME_STATE_STARTUP) if(GAME_STATE_PREGAME, GAME_STATE_STARTUP)
RegisterSignal(SSticker, COMSIG_TICKER_ENTER_SETTING_UP, PROC_REF(show_join_button)) RegisterSignal(SSticker, COMSIG_TICKER_ENTER_SETTING_UP, PROC_REF(show_join_button))
@@ -248,13 +250,13 @@
icon = 'icons/hud/lobby/observe.dmi' icon = 'icons/hud/lobby/observe.dmi'
icon_state = "observe_disabled" icon_state = "observe_disabled"
base_icon_state = "observe" base_icon_state = "observe"
enabled = FALSE
/atom/movable/screen/lobby/button/observe/Initialize(mapload) /atom/movable/screen/lobby/button/observe/Initialize(mapload)
. = ..() . = ..()
if(SSticker.current_state > GAME_STATE_STARTUP) if(SSticker.current_state > GAME_STATE_STARTUP)
set_button_status(TRUE) set_button_status(TRUE)
else else
set_button_status(FALSE)
RegisterSignal(SSticker, COMSIG_TICKER_ENTER_PREGAME, PROC_REF(enable_observing)) RegisterSignal(SSticker, COMSIG_TICKER_ENTER_PREGAME, PROC_REF(enable_observing))
/atom/movable/screen/lobby/button/observe/Click(location, control, params) /atom/movable/screen/lobby/button/observe/Click(location, control, params)

View File

@@ -1,5 +1,6 @@
/atom/movable/screen/robot /atom/movable/screen/robot
icon = 'icons/mob/screen_cyborg.dmi' icon = 'icons/mob/screen_cyborg.dmi'
mouse_over_pointer = MOUSE_HAND_POINTER
/atom/movable/screen/robot/module /atom/movable/screen/robot/module
name = "cyborg module" name = "cyborg module"

View File

@@ -57,6 +57,7 @@
/atom/movable/screen/swap_hand /atom/movable/screen/swap_hand
plane = HUD_PLANE plane = HUD_PLANE
name = "swap hand" name = "swap hand"
mouse_over_pointer = MOUSE_HAND_POINTER
/atom/movable/screen/swap_hand/Click() /atom/movable/screen/swap_hand/Click()
// At this point in client Click() code we have passed the 1/10 sec check and little else // At this point in client Click() code we have passed the 1/10 sec check and little else
@@ -85,12 +86,14 @@
icon = 'icons/mob/screen_midnight.dmi' icon = 'icons/mob/screen_midnight.dmi'
icon_state = "craft" icon_state = "craft"
screen_loc = ui_crafting screen_loc = ui_crafting
mouse_over_pointer = MOUSE_HAND_POINTER
/atom/movable/screen/area_creator /atom/movable/screen/area_creator
name = "create new area" name = "create new area"
icon = 'icons/mob/screen_midnight.dmi' icon = 'icons/mob/screen_midnight.dmi'
icon_state = "area_edit" icon_state = "area_edit"
screen_loc = ui_building screen_loc = ui_building
mouse_over_pointer = MOUSE_HAND_POINTER
/atom/movable/screen/area_creator/Click() /atom/movable/screen/area_creator/Click()
if(usr.incapacitated() || (isobserver(usr) && !IsAdminGhost(usr))) if(usr.incapacitated() || (isobserver(usr) && !IsAdminGhost(usr)))
@@ -106,11 +109,11 @@
icon = 'icons/mob/screen_midnight.dmi' icon = 'icons/mob/screen_midnight.dmi'
icon_state = "talk_wheel" icon_state = "talk_wheel"
screen_loc = ui_language_menu screen_loc = ui_language_menu
mouse_over_pointer = MOUSE_HAND_POINTER
/atom/movable/screen/language_menu/Click() /atom/movable/screen/language_menu/Click()
var/mob/M = usr
var/datum/language_holder/H = M.get_language_holder() usr.get_language_holder().open_language_menu(usr)
H.open_language_menu(usr)
/atom/movable/screen/inventory /atom/movable/screen/inventory
/// The identifier for the slot. It has nothing to do with ID cards. /// The identifier for the slot. It has nothing to do with ID cards.
@@ -172,7 +175,7 @@
var/image/item_overlay = image(holding) var/image/item_overlay = image(holding)
item_overlay.alpha = 92 item_overlay.alpha = 92
if(!user.can_equip(holding, slot_id, disable_warning = TRUE, bypass_equip_delay_self = TRUE)) if(!holding.mob_can_equip(user, slot_id, disable_warning = TRUE, bypass_equip_delay_self = TRUE))
item_overlay.color = "#FF0000" item_overlay.color = "#FF0000"
else else
item_overlay.color = "#00ff00" item_overlay.color = "#00ff00"
@@ -247,6 +250,7 @@
icon = 'icons/mob/screen_midnight.dmi' icon = 'icons/mob/screen_midnight.dmi'
icon_state = "act_drop" icon_state = "act_drop"
plane = HUD_PLANE plane = HUD_PLANE
mouse_over_pointer = MOUSE_HAND_POINTER
/atom/movable/screen/drop/Click() /atom/movable/screen/drop/Click()
if(usr.stat == CONSCIOUS) if(usr.stat == CONSCIOUS)
@@ -256,6 +260,7 @@
name = "intent" name = "intent"
icon_state = "help" icon_state = "help"
screen_loc = ui_acti screen_loc = ui_acti
mouse_over_pointer = MOUSE_HAND_POINTER
/atom/movable/screen/act_intent/Click(location, control, params) /atom/movable/screen/act_intent/Click(location, control, params)
usr.a_intent_change(INTENT_HOTKEY_RIGHT) usr.a_intent_change(INTENT_HOTKEY_RIGHT)
@@ -287,76 +292,11 @@
icon = 'icons/mob/screen_cyborg.dmi' icon = 'icons/mob/screen_cyborg.dmi'
screen_loc = ui_borg_intents screen_loc = ui_borg_intents
/atom/movable/screen/internals
name = "toggle internals"
icon_state = "internal0"
screen_loc = ui_internal
/atom/movable/screen/internals/Click()
if(!iscarbon(usr))
return
var/mob/living/carbon/C = usr
if(C.incapacitated())
return
if(C.internal)
C.internal = null
to_chat(C, span_notice("You are no longer running on internals."))
icon_state = "internal0"
else
if(!C.getorganslot(ORGAN_SLOT_BREATHING_TUBE))
if(HAS_TRAIT(C, TRAIT_NO_INTERNALS))
to_chat(C, span_warning("Due to cumbersome equipment or anatomy, you are currently unable to use internals!"))
return
var/obj/item/clothing/check
var/internals = FALSE
for(check in GET_INTERNAL_SLOTS(C))
if(istype(check, /obj/item/clothing/mask))
var/obj/item/clothing/mask/M = check
if(M.mask_adjusted)
M.adjustmask(C)
if((check.clothing_flags & ALLOWINTERNALS))
internals = TRUE
if(!internals)
to_chat(C, span_warning("You are not wearing an internals mask!"))
return
var/obj/item/I = C.is_holding_item_of_type(/obj/item/tank)
if(I)
to_chat(C, span_notice("You are now running on internals from [I] in your [C.get_held_index_name(C.get_held_index_of_item(I))]."))
C.internal = I
else if(ishuman(C))
var/mob/living/carbon/human/H = C
if(istype(H.s_store, /obj/item/tank))
to_chat(H, span_notice("You are now running on internals from [H.s_store] on your [H.wear_suit.name]."))
H.internal = H.s_store
else if(istype(H.belt, /obj/item/tank))
to_chat(H, span_notice("You are now running on internals from [H.belt] on your belt."))
H.internal = H.belt
else if(istype(H.l_store, /obj/item/tank))
to_chat(H, span_notice("You are now running on internals from [H.l_store] in your left pocket."))
H.internal = H.l_store
else if(istype(H.r_store, /obj/item/tank))
to_chat(H, span_notice("You are now running on internals from [H.r_store] in your right pocket."))
H.internal = H.r_store
//Separate so CO2 jetpacks are a little less cumbersome.
if(!C.internal && istype(C.back, /obj/item/tank))
to_chat(C, span_notice("You are now running on internals from [C.back] on your back."))
C.internal = C.back
if(C.internal)
icon_state = "internal1"
else
to_chat(C, span_warning("You don't have an oxygen tank!"))
return
C.update_action_buttons_icon()
/atom/movable/screen/mov_intent /atom/movable/screen/mov_intent
name = "run/walk toggle" name = "run/walk toggle"
icon = 'icons/mob/screen_midnight.dmi' icon = 'icons/mob/screen_midnight.dmi'
icon_state = "running" icon_state = "running"
mouse_over_pointer = MOUSE_HAND_POINTER
/atom/movable/screen/mov_intent/Initialize(mapload) /atom/movable/screen/mov_intent/Initialize(mapload)
. = ..() . = ..()
@@ -366,7 +306,10 @@
toggle(usr) toggle(usr)
/atom/movable/screen/mov_intent/update_icon_state() /atom/movable/screen/mov_intent/update_icon_state()
switch(hud?.mymob?.m_intent) if(!hud || !hud.mymob || !isliving(hud.mymob))
return
var/mob/living/living_hud_owner = hud.mymob
switch(living_hud_owner.m_intent)
if(MOVE_INTENT_WALK) if(MOVE_INTENT_WALK)
icon_state = CONFIG_GET(flag/sprint_enabled)? "walking" : "walking_nosprint" icon_state = CONFIG_GET(flag/sprint_enabled)? "walking" : "walking_nosprint"
if(MOVE_INTENT_RUN) if(MOVE_INTENT_RUN)
@@ -382,6 +325,8 @@
name = "stop pulling" name = "stop pulling"
icon = 'icons/mob/screen_midnight.dmi' icon = 'icons/mob/screen_midnight.dmi'
icon_state = "pull" icon_state = "pull"
base_icon_state = "pull"
mouse_over_pointer = MOUSE_HAND_POINTER
/atom/movable/screen/pull/Click() /atom/movable/screen/pull/Click()
if(isobserver(usr)) if(isobserver(usr))
@@ -389,17 +334,14 @@
usr.stop_pulling() usr.stop_pulling()
/atom/movable/screen/pull/update_icon_state() /atom/movable/screen/pull/update_icon_state()
if(hud?.mymob?.pulling) icon_state = "[base_icon_state][hud?.mymob?.pulling ? null : 0]"
icon_state = "pull"
else
icon_state = "pull0"
return ..() return ..()
/atom/movable/screen/resist /atom/movable/screen/resist
name = "resist" name = "resist"
icon = 'icons/mob/screen_midnight.dmi' icon = 'icons/mob/screen_midnight.dmi'
icon_state = "act_resist" icon_state = "act_resist"
plane = HUD_PLANE mouse_over_pointer = MOUSE_HAND_POINTER
/atom/movable/screen/resist/Click() /atom/movable/screen/resist/Click()
if(isliving(usr)) if(isliving(usr))
@@ -411,7 +353,7 @@
icon = 'icons/mob/screen_midnight.dmi' icon = 'icons/mob/screen_midnight.dmi'
icon_state = "act_rest" icon_state = "act_rest"
base_icon_state = "act_rest" base_icon_state = "act_rest"
plane = HUD_PLANE mouse_over_pointer = MOUSE_HAND_POINTER
/atom/movable/screen/rest/Click() /atom/movable/screen/rest/Click()
if(isliving(usr)) if(isliving(usr))
@@ -429,6 +371,7 @@
name = "throw/catch" name = "throw/catch"
icon = 'icons/mob/screen_midnight.dmi' icon = 'icons/mob/screen_midnight.dmi'
icon_state = "act_throw_off" icon_state = "act_throw_off"
mouse_over_pointer = MOUSE_HAND_POINTER
/atom/movable/screen/throw_catch/Click() /atom/movable/screen/throw_catch/Click()
if(iscarbon(usr)) if(iscarbon(usr))
@@ -439,6 +382,7 @@
name = "damage zone" name = "damage zone"
icon_state = "zone_sel" icon_state = "zone_sel"
screen_loc = ui_zonesel screen_loc = ui_zonesel
mouse_over_pointer = MOUSE_HAND_POINTER
var/overlay_icon = 'icons/mob/screen_gen.dmi' var/overlay_icon = 'icons/mob/screen_gen.dmi'
var/static/list/hover_overlays_cache = list() var/static/list/hover_overlays_cache = list()
var/hovering var/hovering
@@ -641,6 +585,7 @@
/atom/movable/screen/healthdoll /atom/movable/screen/healthdoll
name = "health doll" name = "health doll"
screen_loc = ui_healthdoll screen_loc = ui_healthdoll
mouse_over_pointer = MOUSE_HAND_POINTER
/atom/movable/screen/healthdoll/Click() /atom/movable/screen/healthdoll/Click()
if (iscarbon(usr)) if (iscarbon(usr))
@@ -656,6 +601,7 @@
name = "mood" name = "mood"
icon_state = "mood5" icon_state = "mood5"
screen_loc = ui_mood screen_loc = ui_mood
mouse_over_pointer = MOUSE_HAND_POINTER
/atom/movable/screen/mood/attack_tk() /atom/movable/screen/mood/attack_tk()
return return
@@ -708,6 +654,7 @@
/atom/movable/screen/component_button /atom/movable/screen/component_button
mouse_over_pointer = MOUSE_HAND_POINTER
var/atom/movable/screen/parent var/atom/movable/screen/parent
/atom/movable/screen/component_button/Initialize(mapload, atom/movable/screen/parent) /atom/movable/screen/component_button/Initialize(mapload, atom/movable/screen/parent)

View File

@@ -5,7 +5,7 @@
name = "toggle sprint" name = "toggle sprint"
icon = 'modular_citadel/icons/ui/screen_midnight.dmi' icon = 'modular_citadel/icons/ui/screen_midnight.dmi'
icon_state = "act_sprint" icon_state = "act_sprint"
layer = ABOVE_HUD_LAYER - 0.1 mouse_over_pointer = MOUSE_HAND_POINTER
var/mutable_appearance/flashy var/mutable_appearance/flashy
/atom/movable/screen/sprintbutton/Click() /atom/movable/screen/sprintbutton/Click()
@@ -44,6 +44,7 @@
name = "sprint buffer" name = "sprint buffer"
icon = 'icons/effects/progessbar.dmi' icon = 'icons/effects/progessbar.dmi'
icon_state = "prog_bar_100" icon_state = "prog_bar_100"
mouse_over_pointer = MOUSE_HAND_POINTER
/atom/movable/screen/sprint_buffer/Click() /atom/movable/screen/sprint_buffer/Click()
if(isliving(usr)) if(isliving(usr))

View File

@@ -1,19 +1,20 @@
/datum/hud/var/atom/movable/screen/staminas/staminas /datum/hud
/datum/hud/var/atom/movable/screen/staminabuffer/staminabuffer var/atom/movable/screen/staminas/staminas
var/atom/movable/screen/staminabuffer/staminabuffer
/atom/movable/screen/staminas /atom/movable/screen/staminas
icon = 'modular_citadel/icons/ui/screen_gen.dmi' icon = 'modular_citadel/icons/ui/screen_gen.dmi'
name = "stamina" name = "stamina"
icon_state = "stamina0" icon_state = "stamina0"
screen_loc = ui_stamina screen_loc = ui_stamina
mouse_opacity = 1 mouse_over_pointer = MOUSE_HAND_POINTER
/atom/movable/screen/staminas/Click(location,control,params) /atom/movable/screen/staminas/Click(location,control,params)
if(isliving(usr)) if(isliving(usr))
var/mob/living/L = usr var/mob/living/L = usr
CONFIG_CACHE_ENTRY_AND_FETCH_VALUE(number/stamina_combat/buffer_max, buffer_max) CONFIG_CACHE_ENTRY_AND_FETCH_VALUE(number/stamina_combat/buffer_max, buffer_max)
to_chat(L, "<span class='notice'>You have <b>[L.getStaminaLoss()]</b> stamina loss.<br>\ to_chat(L, "<blockquote class='info'><span class='notice'>You have <b>[L.getStaminaLoss()]</b> stamina loss.<br>\
<br>Your stamina buffer is <b>[round((L.stamina_buffer / buffer_max) * 100, 0.1)]%</b> full.</span>") <br>Your stamina buffer is <b>[round((L.stamina_buffer / buffer_max) * 100, 0.1)]%</b> full.</span></blockquote>")
/atom/movable/screen/staminas/update_icon_state() /atom/movable/screen/staminas/update_icon_state()
var/mob/living/carbon/user = hud?.mymob var/mob/living/carbon/user = hud?.mymob

View File

@@ -2,6 +2,7 @@
name = "toggle vore mode" name = "toggle vore mode"
icon = 'modular_citadel/icons/ui/screen_midnight.dmi' icon = 'modular_citadel/icons/ui/screen_midnight.dmi'
icon_state = "nom_off" icon_state = "nom_off"
mouse_over_pointer = MOUSE_HAND_POINTER
/atom/movable/screen/voretoggle/Click() /atom/movable/screen/voretoggle/Click()
if(usr != hud.mymob) if(usr != hud.mymob)

View File

@@ -39,6 +39,7 @@
var/icon_icon = 'icons/mob/actions.dmi' var/icon_icon = 'icons/mob/actions.dmi'
/// This is the icon state for the icon that appears on the button /// This is the icon state for the icon that appears on the button
var/button_icon_state = "default" var/button_icon_state = "default"
var/button_overlay_state
/datum/action/New(Target) /datum/action/New(Target)
link_to(Target) link_to(Target)
@@ -177,6 +178,11 @@
ApplyIcon(button, force) ApplyIcon(button, force)
if(button_overlay_state)
button.cut_overlay(button.button_overlay)
button.button_overlay = mutable_appearance(icon = 'icons/mob/actions.dmi', icon_state = button_overlay_state)
button.add_overlay(button.button_overlay)
if(!IsAvailable(TRUE)) if(!IsAvailable(TRUE))
button.color = transparent_when_unavailable ? rgb(128,0,0,128) : rgb(128,0,0) button.color = transparent_when_unavailable ? rgb(128,0,0,128) : rgb(128,0,0)
else else
@@ -362,6 +368,8 @@
/datum/action/item_action/set_internals /datum/action/item_action/set_internals
name = "Set Internals" name = "Set Internals"
default_button_position = SCRN_OBJ_INSERT_FIRST
button_overlay_state = "ab_goldborder"
/datum/action/item_action/set_internals/UpdateButton(atom/movable/screen/movable/action_button/button, status_only = FALSE, force) /datum/action/item_action/set_internals/UpdateButton(atom/movable/screen/movable/action_button/button, status_only = FALSE, force)
if(!..()) // no button available if(!..()) // no button available

View File

@@ -182,6 +182,7 @@
name = "toggle combat mode" name = "toggle combat mode"
icon = 'modular_citadel/icons/ui/screen_midnight.dmi' icon = 'modular_citadel/icons/ui/screen_midnight.dmi'
icon_state = "combat_off" icon_state = "combat_off"
mouse_over_pointer = MOUSE_HAND_POINTER
var/mutable_appearance/flashy var/mutable_appearance/flashy
var/combat_on = FALSE ///Wheter combat mode is enabled or not, so we don't have to store a reference. var/combat_on = FALSE ///Wheter combat mode is enabled or not, so we don't have to store a reference.

View File

@@ -971,6 +971,7 @@
desc = "A magical strand of Durathread is wrapped around your neck, preventing you from breathing! Click this icon to remove the strand." desc = "A magical strand of Durathread is wrapped around your neck, preventing you from breathing! Click this icon to remove the strand."
icon_state = "his_grace" icon_state = "his_grace"
alerttooltipstyle = "hisgrace" alerttooltipstyle = "hisgrace"
clickable_glow = TRUE
/atom/movable/screen/alert/status_effect/strandling/Click(location, control, params) /atom/movable/screen/alert/status_effect/strandling/Click(location, control, params)
. = ..() . = ..()

View File

@@ -102,6 +102,7 @@
/atom/movable/screen/alert/status_effect/wound /atom/movable/screen/alert/status_effect/wound
name = "Wounded" name = "Wounded"
desc = "Your body has sustained serious damage, click here to inspect yourself." desc = "Your body has sustained serious damage, click here to inspect yourself."
clickable_glow = TRUE
/atom/movable/screen/alert/status_effect/wound/Click() /atom/movable/screen/alert/status_effect/wound/Click()
var/mob/living/carbon/C = usr var/mob/living/carbon/C = usr

View File

@@ -647,6 +647,11 @@
/// Gets or creates the relevant language holder. For mindless atoms, gets the local one. For atom with mind, gets the mind one. /// Gets or creates the relevant language holder. For mindless atoms, gets the local one. For atom with mind, gets the mind one.
/atom/movable/proc/get_language_holder(get_minds = TRUE) /atom/movable/proc/get_language_holder(get_minds = TRUE)
RETURN_TYPE(/datum/language_holder)
if(QDELING(src))
CRASH("get_language_holder() called on a QDELing atom, \
this will try to re-instantiate the language holder that's about to be deleted, which is bad.")
if(!language_holder) if(!language_holder)
language_holder = new initial_language_holder(src) language_holder = new initial_language_holder(src)
return language_holder return language_holder

View File

@@ -291,7 +291,6 @@ Credit where due:
W.update_label() W.update_label()
if(plasmaman && !visualsOnly) //If we need to breathe from the plasma tank, we should probably start doing that if(plasmaman && !visualsOnly) //If we need to breathe from the plasma tank, we should probably start doing that
H.internal = H.get_item_for_held_index(2) H.internal = H.get_item_for_held_index(2)
H.update_internals_hud_icon(1)
PDA.owner = H.real_name PDA.owner = H.real_name
PDA.ownjob = "Assistant" PDA.ownjob = "Assistant"
PDA.update_label() PDA.update_label()

View File

@@ -176,7 +176,6 @@ GLOBAL_VAR_INIT(hsboxspawn, TRUE)
P.back.plane = ABOVE_HUD_PLANE P.back.plane = ABOVE_HUD_PLANE
P.update_inv_back() P.update_inv_back()
P.internal = P.back P.internal = P.back
P.update_internals_hud_icon(1)
if("hsbscrubber") // This is beyond its normal capability but this is sandbox and you spawned one, I assume you need it if("hsbscrubber") // This is beyond its normal capability but this is sandbox and you spawned one, I assume you need it
var/obj/hsb = new/obj/machinery/portable_atmospherics/scrubber{volume_rate=50*ONE_ATMOSPHERE;on=1}(usr.loc) var/obj/hsb = new/obj/machinery/portable_atmospherics/scrubber{volume_rate=50*ONE_ATMOSPHERE;on=1}(usr.loc)

View File

@@ -14,6 +14,7 @@
use_power = IDLE_POWER_USE use_power = IDLE_POWER_USE
idle_power_usage = 2 idle_power_usage = 2
resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF
mouse_over_pointer = MOUSE_HAND_POINTER
/obj/machinery/button/Initialize(mapload, ndir = 0, built = 0) /obj/machinery/button/Initialize(mapload, ndir = 0, built = 0)
if(istext(id) && mapload && id[1] == "!") if(istext(id) && mapload && id[1] == "!")

View File

@@ -10,6 +10,7 @@
idle_power_usage = 2 idle_power_usage = 2
active_power_usage = 4 active_power_usage = 4
resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF
mouse_over_pointer = MOUSE_HAND_POINTER
var/idSelf var/idSelf
/obj/machinery/doorButtons/attackby(obj/O, mob/user) /obj/machinery/doorButtons/attackby(obj/O, mob/user)

View File

@@ -21,6 +21,7 @@
max_integrity = 250 max_integrity = 250
integrity_failure = 0.4 integrity_failure = 0.4
armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 100, RAD = 100, FIRE = 90, ACID = 30) armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 100, RAD = 100, FIRE = 90, ACID = 30)
mouse_over_pointer = MOUSE_HAND_POINTER
use_power = IDLE_POWER_USE use_power = IDLE_POWER_USE
idle_power_usage = 2 idle_power_usage = 2
active_power_usage = 6 active_power_usage = 6

View File

@@ -5,6 +5,7 @@
icon_state = "light1" icon_state = "light1"
base_icon_state = "light" base_icon_state = "light"
desc = "Make dark." desc = "Make dark."
mouse_over_pointer = MOUSE_HAND_POINTER
var/area/area = null var/area/area = null
var/otherarea = null var/otherarea = null

View File

@@ -34,7 +34,6 @@
if(H.internal == src) if(H.internal == src)
to_chat(H, "<span class='notice'>You close [src] valve.</span>") to_chat(H, "<span class='notice'>You close [src] valve.</span>")
H.internal = null H.internal = null
H.update_internals_hud_icon(0)
else else
if(!H.getorganslot(ORGAN_SLOT_BREATHING_TUBE)) if(!H.getorganslot(ORGAN_SLOT_BREATHING_TUBE))
if(HAS_TRAIT(H, TRAIT_NO_INTERNALS)) if(HAS_TRAIT(H, TRAIT_NO_INTERNALS))
@@ -60,7 +59,6 @@
else else
to_chat(H, "<span class='notice'>You open [src] valve.</span>") to_chat(H, "<span class='notice'>You open [src] valve.</span>")
H.internal = src H.internal = src
H.update_internals_hud_icon(1)
H.update_action_buttons_icon() H.update_action_buttons_icon()

View File

@@ -878,7 +878,6 @@
/datum/outfit/ghostcafe/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source) /datum/outfit/ghostcafe/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source)
H.internal = H.get_item_for_held_index(1) H.internal = H.get_item_for_held_index(1)
H.update_internals_hud_icon(1)
/obj/item/storage/box/syndie_kit/chameleon/ghostcafe /obj/item/storage/box/syndie_kit/chameleon/ghostcafe
name = "ghost cafe costuming kit" name = "ghost cafe costuming kit"

View File

@@ -1,5 +1,6 @@
/atom/movable/screen/buildmode /atom/movable/screen/buildmode
icon = 'icons/misc/buildmode.dmi' icon = 'icons/misc/buildmode.dmi'
mouse_over_pointer = MOUSE_HAND_POINTER
var/datum/buildmode/bd var/datum/buildmode/bd
// If we don't do this, we get occluded by item action buttons // If we don't do this, we get occluded by item action buttons
layer = ABOVE_HUD_LAYER layer = ABOVE_HUD_LAYER

View File

@@ -793,10 +793,6 @@
else else
hud_used.healths.icon_state = "health7" hud_used.healths.icon_state = "health7"
/mob/living/carbon/proc/update_internals_hud_icon(internal_state = 0)
if(hud_used && hud_used.internals)
hud_used.internals.icon_state = "internal[internal_state]"
/mob/living/carbon/update_stat() /mob/living/carbon/update_stat()
if(status_flags & GODMODE) if(status_flags & GODMODE)
return return

View File

@@ -285,12 +285,9 @@ GLOBAL_LIST_INIT(strippable_human_items, create_strippable_list(list(
if(carbon_source.internal) if(carbon_source.internal)
carbon_source.internal = null carbon_source.internal = null
// This isn't meant to be FALSE, it correlates to the icon's name.
carbon_source.update_internals_hud_icon(0)
else if (!QDELETED(item)) else if (!QDELETED(item))
if(internals || carbon_source.getorganslot(ORGAN_SLOT_BREATHING_TUBE)) if(internals || carbon_source.getorganslot(ORGAN_SLOT_BREATHING_TUBE))
carbon_source.internal = item carbon_source.internal = item
carbon_source.update_internals_hud_icon(1)
carbon_source.visible_message( carbon_source.visible_message(
span_danger("[user] [isnull(carbon_source.internal) ? "closes": "opens"] the valve on [source]'s [item.name]."), span_danger("[user] [isnull(carbon_source.internal) ? "closes": "opens"] the valve on [source]'s [item.name]."),

View File

@@ -253,7 +253,6 @@
if((C.flags_inv & (HIDEHAIR|HIDEFACIALHAIR)) || (initial(C.flags_inv) & (HIDEHAIR|HIDEFACIALHAIR))) if((C.flags_inv & (HIDEHAIR|HIDEFACIALHAIR)) || (initial(C.flags_inv) & (HIDEHAIR|HIDEFACIALHAIR)))
update_hair() update_hair()
if(toggle_off && internal && !getorganslot(ORGAN_SLOT_BREATHING_TUBE)) if(toggle_off && internal && !getorganslot(ORGAN_SLOT_BREATHING_TUBE))
update_internals_hud_icon(0)
internal = null internal = null
if(C.flags_inv & HIDEEYES) if(C.flags_inv & HIDEEYES)
update_inv_glasses() update_inv_glasses()

View File

@@ -69,7 +69,6 @@
H.equipOutfit(O, visualsOnly) H.equipOutfit(O, visualsOnly)
H.internal = H.get_item_for_held_index(2) H.internal = H.get_item_for_held_index(2)
H.update_internals_hud_icon(1)
return FALSE return FALSE
/datum/species/plasmaman/random_name(gender,unique,lastname) /datum/species/plasmaman/random_name(gender,unique,lastname)

View File

@@ -329,12 +329,9 @@
if(internal) if(internal)
if(internal.loc != src) if(internal.loc != src)
internal = null internal = null
update_internals_hud_icon(0)
else if (!internals && !getorganslot(ORGAN_SLOT_BREATHING_TUBE)) else if (!internals && !getorganslot(ORGAN_SLOT_BREATHING_TUBE))
internal = null internal = null
update_internals_hud_icon(0)
else else
update_internals_hud_icon(1)
. = internal.remove_air_volume(volume_needed) . = internal.remove_air_volume(volume_needed)
if(!.) if(!.)
return FALSE //to differentiate between no internals and active, but empty internals return FALSE //to differentiate between no internals and active, but empty internals

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.8 KiB

After

Width:  |  Height:  |  Size: 9.2 KiB