diff --git a/code/__DEFINES/color/colors.dm b/code/__DEFINES/color/colors.dm index a8896e3f01..d88320d094 100644 --- a/code/__DEFINES/color/colors.dm +++ b/code/__DEFINES/color/colors.dm @@ -123,6 +123,8 @@ #define COLOR_THEME_OPERATIVE "#B8221F" #define COLOR_THEME_GLASS "#75A4C4" #define COLOR_THEME_CLOCKWORK "#CFBA47" +#define COLOR_THEME_TRASENKNOX "#3ce375" +#define COLOR_THEME_DETECTIVE "#c7b08b" ///Colors for eigenstates #define COLOR_PERIWINKLEE "#9999FF" diff --git a/code/__HELPERS/type2type.dm b/code/__HELPERS/type2type.dm index 3939fb94cc..434cc05551 100644 --- a/code/__HELPERS/type2type.dm +++ b/code/__HELPERS/type2type.dm @@ -689,5 +689,11 @@ return 'modular_citadel/icons/ui/screen_operative.dmi' if('icons/mob/screen_clockwork.dmi') return 'modular_citadel/icons/ui/screen_clockwork.dmi' + if('icons/mob/screen_glass.dmi') + return 'modular_citadel/icons/ui/screen_glass.dmi' + if('icons/mob/screen_trasenknox.dmi') + return 'modular_citadel/icons/ui/screen_trasenknox.dmi' + if('icons/mob/screen_detective.dmi') + return 'modular_citadel/icons/ui/screen_detective.dmi' else return 'modular_citadel/icons/ui/screen_midnight.dmi' diff --git a/code/_onclick/hud/hud.dm b/code/_onclick/hud/hud.dm index 9d762332c6..d9f192e1c9 100644 --- a/code/_onclick/hud/hud.dm +++ b/code/_onclick/hud/hud.dm @@ -11,7 +11,10 @@ GLOBAL_LIST_INIT(available_ui_styles, list( "Plasmafire" = 'icons/mob/screen_plasmafire.dmi', "Slimecore" = 'icons/mob/screen_slimecore.dmi', "Operative" = 'icons/mob/screen_operative.dmi', - "Clockwork" = 'icons/mob/screen_clockwork.dmi' + "Glass" = 'icons/mob/screen_glass.dmi', + "Clockwork" = 'icons/mob/screen_clockwork.dmi', + "Trasen-Knox" = 'icons/mob/screen_trasenknox.dmi', + "Detective" = 'icons/mob/screen_detective.dmi', )) /proc/ui_style2icon(ui_style) diff --git a/code/_onclick/hud/human.dm b/code/_onclick/hud/human.dm index 96260f75a2..1a17d2fb74 100644 --- a/code/_onclick/hud/human.dm +++ b/code/_onclick/hud/human.dm @@ -324,11 +324,11 @@ using.hud = src hotkeybuttons += using - using = new /atom/movable/screen/rest() - using.icon = ui_style - using.screen_loc = ui_pull_resist - using.hud = src - static_inventory += using + rest_icon = new /atom/movable/screen/rest() + rest_icon.icon = ui_style + rest_icon.screen_loc = ui_pull_resist + rest_icon.hud = src + static_inventory += rest_icon //END OF CIT CHANGES using = new /atom/movable/screen/human/toggle() diff --git a/code/_onclick/hud/screen_objects.dm b/code/_onclick/hud/screen_objects.dm index 33c0bb0f04..e5cd4c71cc 100644 --- a/code/_onclick/hud/screen_objects.dm +++ b/code/_onclick/hud/screen_objects.dm @@ -154,9 +154,8 @@ if(!icon_empty) icon_empty = icon_state - if(!hud?.mymob || !slot_id || !icon_full) - return ..() - icon_state = hud.mymob.get_item_by_slot(slot_id) ? icon_full : icon_empty + if(hud?.mymob && slot_id && icon_full) + icon_state = hud.mymob.get_item_by_slot(slot_id) ? icon_full : icon_empty return ..() /atom/movable/screen/inventory/proc/add_overlays() @@ -207,7 +206,7 @@ . += blocked_overlay if(held_index == hud.mymob.active_hand_index) - . += "hand_active" + . += (held_index % 2) ? "lhandactive" : "rhandactive" /atom/movable/screen/inventory/hand/Click(location, control, params) @@ -411,6 +410,7 @@ name = "rest" icon = 'icons/mob/screen_midnight.dmi' icon_state = "act_rest" + base_icon_state = "act_rest" plane = HUD_PLANE /atom/movable/screen/rest/Click() @@ -422,10 +422,7 @@ var/mob/living/user = hud?.mymob if(!istype(user)) return ..() - if(!user.resting) - icon_state = "act_rest" - else - icon_state = "act_rest0" + icon_state = "[base_icon_state][user.resting ? 0 : null]" return ..() /atom/movable/screen/throw_catch diff --git a/code/datums/components/crafting/crafting.dm b/code/datums/components/crafting/crafting.dm index 3ed3e521e4..8e9124c306 100644 --- a/code/datums/components/crafting/crafting.dm +++ b/code/datums/components/crafting/crafting.dm @@ -1,17 +1,13 @@ /datum/component/personal_crafting/Initialize() if(ismob(parent)) - RegisterSignal(parent, COMSIG_MOB_CLIENT_LOGIN, .proc/create_mob_button) + RegisterSignal(parent, COMSIG_MOB_HUD_CREATED, .proc/create_mob_button) -/datum/component/personal_crafting/proc/create_mob_button(mob/user, client/CL) +/datum/component/personal_crafting/proc/create_mob_button(mob/user) var/datum/hud/H = user.hud_used - for(var/huds in H.static_inventory) - if(istype(huds, /atom/movable/screen/craft)) - return - //We don't want to be stacking multiple crafting huds on relogs var/atom/movable/screen/craft/C = new() C.icon = H.ui_style H.static_inventory += C - CL.screen += C + user.client.screen += C RegisterSignal(C, COMSIG_CLICK, .proc/component_ui_interact) /datum/component/personal_crafting diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index 4440b3f91a..314db6b016 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -950,6 +950,10 @@ GLOBAL_VAR_INIT(embedpocalypse, FALSE) // if true, all items will be able to emb outline_color = COLOR_THEME_CLOCKWORK //if you want free gbp go fix the fact that clockwork's tooltip css is glass' if("glass") outline_color = COLOR_THEME_GLASS + if("trasen-knox") + outline_color = COLOR_THEME_TRASENKNOX + if("detective") + outline_color = COLOR_THEME_DETECTIVE else //this should never happen, hopefully outline_color = COLOR_WHITE if(color) diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index e50539f91d..ae5bd1517e 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -2631,8 +2631,10 @@ GLOBAL_LIST_EMPTY(preferences_datums) var/pickedui = input(user, "Choose your UI style.", "Character Preference", UI_style) as null|anything in GLOB.available_ui_styles if(pickedui) UI_style = pickedui - if (parent && parent.mob && parent.mob.hud_used) - parent.mob.hud_used.update_ui_style(ui_style2icon(UI_style)) + if (pickedui && parent && parent.mob && parent.mob.hud_used) + QDEL_NULL(parent.mob.hud_used) + parent.mob.create_mob_hud() + parent.mob.hud_used.show_hud(1, parent.mob) if("pda_style") var/pickedPDAStyle = input(user, "Choose your PDA style.", "Character Preference", pda_style) as null|anything in GLOB.pda_styles if(pickedPDAStyle) @@ -3009,7 +3011,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) outline_enabled = !outline_enabled if("outline_color") var/pickedOutlineColor = input(user, "Choose your outline color.", "General Preference", outline_color) as color|null - if(pickedOutlineColor != pickedOutlineColor) + if(pickedOutlineColor != outline_color) outline_color = pickedOutlineColor // nullable if("screentip_pref") var/choice = input(user, "Choose your screentip preference", "Screentipping?", screentip_pref) as null|anything in GLOB.screentip_pref_options diff --git a/code/modules/mob/living/living_mobility.dm b/code/modules/mob/living/living_mobility.dm index 6aed30ab83..50d377abf7 100644 --- a/code/modules/mob/living/living_mobility.dm +++ b/code/modules/mob/living/living_mobility.dm @@ -16,6 +16,7 @@ /mob/living/proc/update_resting(update_mobility = TRUE) if(update_mobility) update_mobility() + update_rest_hud_icon() //Force mob to rest, does NOT do stamina damage. //It's really not recommended to use this proc to give feedback, hence why silent is defaulting to true. diff --git a/code/modules/tooltip/tooltip.html b/code/modules/tooltip/tooltip.html index 2743bc03d5..fd8a0d7475 100644 --- a/code/modules/tooltip/tooltip.html +++ b/code/modules/tooltip/tooltip.html @@ -80,12 +80,21 @@ .slimecore .wrap {border-color: #18640E;} .slimecore .content {color: #6EA161; border-color: #11450B; background-color: #354E35;} - .operative .wrap {border-color: #1E0101;} - .operative .content {color: #FFFFFF; border-color: #750000; background-color: #350000;} + .operative .wrap {border-color: #13121b;} + .operative .content {color: #b01232; border-color: #13121b; background-color: #282831;} .clockwork .wrap {border-color: #170800;} .clockwork .content {color: #B18B25; border-color: #000000; background-color: #5F380E;} + .glass .wrap {border-color: #273844;} + .glass .content {color: #5b7588; border-color: #273844; background-color: #1f252b;} + + .trasen-knox .wrap {border-color: #998e81;} + .trasen-knox .content {color: #3ce375; border-color: #998e81; background-color: #1e1d21;} + + .detective .wrap {border-color: #2c0F0c;} + .detective .content {color: #c7b08b; border-color: #2c0F0c; background-color: #221c1a;} + diff --git a/icons/mob/screen_alien.dmi b/icons/mob/screen_alien.dmi index fe23a59dfd..96d0e96fe0 100644 Binary files a/icons/mob/screen_alien.dmi and b/icons/mob/screen_alien.dmi differ diff --git a/icons/mob/screen_clockwork.dmi b/icons/mob/screen_clockwork.dmi index 268fed4094..1a3da0a625 100644 Binary files a/icons/mob/screen_clockwork.dmi and b/icons/mob/screen_clockwork.dmi differ diff --git a/icons/mob/screen_detective.dmi b/icons/mob/screen_detective.dmi new file mode 100644 index 0000000000..dfe74600af Binary files /dev/null and b/icons/mob/screen_detective.dmi differ diff --git a/icons/mob/screen_glass.dmi b/icons/mob/screen_glass.dmi new file mode 100644 index 0000000000..e913494e33 Binary files /dev/null and b/icons/mob/screen_glass.dmi differ diff --git a/icons/mob/screen_midnight.dmi b/icons/mob/screen_midnight.dmi index 3d89504272..6c84b074e6 100644 Binary files a/icons/mob/screen_midnight.dmi and b/icons/mob/screen_midnight.dmi differ diff --git a/icons/mob/screen_operative.dmi b/icons/mob/screen_operative.dmi index d51022b98a..89a39274d1 100644 Binary files a/icons/mob/screen_operative.dmi and b/icons/mob/screen_operative.dmi differ diff --git a/icons/mob/screen_plasmafire.dmi b/icons/mob/screen_plasmafire.dmi index f251b8b167..78ebfb2c2a 100644 Binary files a/icons/mob/screen_plasmafire.dmi and b/icons/mob/screen_plasmafire.dmi differ diff --git a/icons/mob/screen_retro.dmi b/icons/mob/screen_retro.dmi index e57cefa83e..44dc7bb5c4 100644 Binary files a/icons/mob/screen_retro.dmi and b/icons/mob/screen_retro.dmi differ diff --git a/icons/mob/screen_slimecore.dmi b/icons/mob/screen_slimecore.dmi index 01831250b8..df9d7b0eb6 100644 Binary files a/icons/mob/screen_slimecore.dmi and b/icons/mob/screen_slimecore.dmi differ diff --git a/icons/mob/screen_trasenknox.dmi b/icons/mob/screen_trasenknox.dmi new file mode 100644 index 0000000000..70cb09b146 Binary files /dev/null and b/icons/mob/screen_trasenknox.dmi differ diff --git a/modular_citadel/icons/ui/screen_detective.dmi b/modular_citadel/icons/ui/screen_detective.dmi new file mode 100644 index 0000000000..ef012d3e84 Binary files /dev/null and b/modular_citadel/icons/ui/screen_detective.dmi differ diff --git a/modular_citadel/icons/ui/screen_glass.dmi b/modular_citadel/icons/ui/screen_glass.dmi new file mode 100644 index 0000000000..d03ba9edae Binary files /dev/null and b/modular_citadel/icons/ui/screen_glass.dmi differ diff --git a/modular_citadel/icons/ui/screen_operative.dmi b/modular_citadel/icons/ui/screen_operative.dmi index 5e8abb5431..0f9173091b 100644 Binary files a/modular_citadel/icons/ui/screen_operative.dmi and b/modular_citadel/icons/ui/screen_operative.dmi differ diff --git a/modular_citadel/icons/ui/screen_trasenknox.dmi b/modular_citadel/icons/ui/screen_trasenknox.dmi new file mode 100644 index 0000000000..ef418fdf94 Binary files /dev/null and b/modular_citadel/icons/ui/screen_trasenknox.dmi differ