Refactors screen objects to /atom/movable (#24068)

* introduce helper + remove unused proc

* we love compatibility

* Update code/_onclick/hud/action_button.dm

Co-authored-by: Burzah <116982774+Burzah@users.noreply.github.com>

* Update code/_onclick/hud/action_button.dm

Co-authored-by: Burzah <116982774+Burzah@users.noreply.github.com>

* Update code/_onclick/hud/alert.dm

Co-authored-by: Burzah <116982774+Burzah@users.noreply.github.com>

* Update code/_onclick/hud/blob_overmind.dm

Co-authored-by: Burzah <116982774+Burzah@users.noreply.github.com>

* Update code/_onclick/hud/blob_overmind.dm

Co-authored-by: Burzah <116982774+Burzah@users.noreply.github.com>

* Update code/_onclick/hud/blob_overmind.dm

Co-authored-by: Burzah <116982774+Burzah@users.noreply.github.com>

* Update code/modules/martial_arts/martial.dm

Co-authored-by: Burzah <116982774+Burzah@users.noreply.github.com>

* Update code/modules/mining/lavaland/loot/tendril_loot.dm

Co-authored-by: Burzah <116982774+Burzah@users.noreply.github.com>

* Update code/modules/mob/living/carbon/human/species/shadow.dm

Co-authored-by: Burzah <116982774+Burzah@users.noreply.github.com>

* Update code/modules/mob/living/carbon/human/species/shadow.dm

Co-authored-by: Burzah <116982774+Burzah@users.noreply.github.com>

* Update code/modules/mob/living/living_update_status.dm

Co-authored-by: Burzah <116982774+Burzah@users.noreply.github.com>

* Update code/_onclick/hud/screen_objects.dm

Co-authored-by: Burzah <116982774+Burzah@users.noreply.github.com>

* Update code/_onclick/hud/screen_objects.dm

Co-authored-by: Burzah <116982774+Burzah@users.noreply.github.com>

* Update code/_onclick/hud/screen_objects.dm

Co-authored-by: Burzah <116982774+Burzah@users.noreply.github.com>

* Update code/game/objects/items/weapons/storage/internal.dm

Co-authored-by: Burzah <116982774+Burzah@users.noreply.github.com>

* Update code/game/machinery/computer/camera_advanced.dm

Co-authored-by: Burzah <116982774+Burzah@users.noreply.github.com>

* Update code/game/machinery/computer/camera_advanced.dm

Co-authored-by: Burzah <116982774+Burzah@users.noreply.github.com>

* Update code/game/objects/items/weapons/storage/internal.dm

Co-authored-by: Burzah <116982774+Burzah@users.noreply.github.com>

* Update code/game/mecha/mecha.dm

Co-authored-by: Burzah <116982774+Burzah@users.noreply.github.com>

* deconflict

---------

Co-authored-by: Burzah <116982774+Burzah@users.noreply.github.com>
This commit is contained in:
Contrabang
2024-03-03 12:37:51 -05:00
committed by GitHub
parent cc433a3794
commit 87a318a7de
125 changed files with 1036 additions and 1047 deletions
+2
View File
@@ -133,3 +133,5 @@ GLOBAL_LIST_INIT(turfs_pass_meteor, typecacheof(list(
)))
#define ispassmeteorturf(A) (is_type_in_typecache(A, GLOB.turfs_pass_meteor))
#define is_screen_atom(A) istype(A, /atom/movable/screen)
-8
View File
@@ -345,14 +345,6 @@
return candidates
/proc/ScreenText(obj/O, maptext="", screen_loc="CENTER-7,CENTER-7", maptext_height=480, maptext_width=480)
if(!isobj(O)) O = new /obj/screen/text()
O.maptext = maptext
O.maptext_height = maptext_height
O.maptext_width = maptext_width
O.screen_loc = screen_loc
return O
/proc/remove_images_from_clients(image/I, list/show_to)
for(var/client/C in show_to)
C.images -= I
+5 -5
View File
@@ -463,23 +463,23 @@
else direction = WEST
dir = direction
/obj/screen/click_catcher
/atom/movable/screen/click_catcher
icon = 'icons/mob/screen_gen.dmi'
icon_state = "catcher"
plane = CLICKCATCHER_PLANE
mouse_opacity = MOUSE_OPACITY_OPAQUE
screen_loc = "CENTER"
/obj/screen/click_catcher/MouseEntered(location, control, params)
/atom/movable/screen/click_catcher/MouseEntered(location, control, params)
return
/obj/screen/click_catcher/MouseExited(location, control, params)
/atom/movable/screen/click_catcher/MouseExited(location, control, params)
return
#define MAX_SAFE_BYOND_ICON_SCALE_TILES (MAX_SAFE_BYOND_ICON_SCALE_PX / world.icon_size)
#define MAX_SAFE_BYOND_ICON_SCALE_PX (33 * 32) //Not using world.icon_size on purpose.
/obj/screen/click_catcher/proc/UpdateGreed(view_size_x = 15, view_size_y = 15)
/atom/movable/screen/click_catcher/proc/UpdateGreed(view_size_x = 15, view_size_y = 15)
var/icon/newicon = icon('icons/mob/screen_gen.dmi', "catcher")
var/ox = min(MAX_SAFE_BYOND_ICON_SCALE_TILES, view_size_x)
var/oy = min(MAX_SAFE_BYOND_ICON_SCALE_TILES, view_size_y)
@@ -494,7 +494,7 @@
M.Scale(px/sx, py/sy)
transform = M
/obj/screen/click_catcher/Click(location, control, params)
/atom/movable/screen/click_catcher/Click(location, control, params)
var/list/modifiers = params2list(params)
if(modifiers["middle"] && iscarbon(usr))
var/mob/living/carbon/C = usr
+1 -1
View File
@@ -28,7 +28,7 @@ FALSE if not
return
var/lagging = could_be_click_lag()
drag_start = 0
if(!(istype(over, /obj/screen) || (loc && loc == over.loc)))
if(!(is_screen_atom(over) || (loc && loc == over.loc)))
if(!Adjacent(usr) || !over.Adjacent(usr)) // should stop you from dragging through windows
if(lagging)
usr.ClickOn(src, params)
+21 -21
View File
@@ -1,4 +1,4 @@
/obj/screen/movable/action_button
/atom/movable/screen/movable/action_button
desc = "CTRL-Shift click on this button to bind it to a hotkey."
var/datum/action/linked_action
var/actiontooltipstyle = ""
@@ -6,7 +6,7 @@
var/ordered = TRUE
var/datum/keybinding/mob/trigger_action_button/linked_keybind
/obj/screen/movable/action_button/MouseDrop(over_object)
/atom/movable/screen/movable/action_button/MouseDrop(over_object)
if(locked && could_be_click_lag()) // in case something bad happend and game realised we dragged our ability instead of pressing it
Click()
drag_start = 0
@@ -16,8 +16,8 @@
to_chat(usr, "<span class='warning'>Action button \"[name]\" is locked, unlock it first.</span>")
closeToolTip(usr)
return
if((istype(over_object, /obj/screen/movable/action_button) && !istype(over_object, /obj/screen/movable/action_button/hide_toggle)))
var/obj/screen/movable/action_button/B = over_object
if((istype(over_object, /atom/movable/screen/movable/action_button) && !istype(over_object, /atom/movable/screen/movable/action_button/hide_toggle)))
var/atom/movable/screen/movable/action_button/B = over_object
var/list/actions = usr.actions
actions.Swap(actions.Find(linked_action), actions.Find(B.linked_action))
moved = FALSE
@@ -26,13 +26,13 @@
B.ordered = TRUE
closeToolTip(usr)
usr.update_action_buttons()
else if(istype(over_object, /obj/screen/movable/action_button/hide_toggle))
else if(istype(over_object, /atom/movable/screen/movable/action_button/hide_toggle))
closeToolTip(usr)
else
closeToolTip(usr)
return ..()
/obj/screen/movable/action_button/Click(location,control,params)
/atom/movable/screen/movable/action_button/Click(location, control, params)
var/list/modifiers = params2list(params)
if(modifiers["ctrl"] && modifiers["shift"])
INVOKE_ASYNC(src, PROC_REF(set_to_keybind), usr)
@@ -63,7 +63,7 @@
animate(src, transform = matrix(), time = 0.4 SECONDS, alpha = 255)
return TRUE
/obj/screen/movable/action_button/proc/set_to_keybind(mob/user)
/atom/movable/screen/movable/action_button/proc/set_to_keybind(mob/user)
var/keybind_to_set_to = uppertext(input(user, "What keybind do you want to set this action button to?") as text)
if(keybind_to_set_to)
if(linked_keybind)
@@ -78,10 +78,10 @@
clean_up_keybinds(user)
to_chat(user, "<span class='info'>Your active keybinding on [src] has been cleared.</span>")
/obj/screen/movable/action_button/AltClick(mob/user)
/atom/movable/screen/movable/action_button/AltClick(mob/user)
return linked_action.AltTrigger()
/obj/screen/movable/action_button/proc/clean_up_keybinds(mob/owner)
/atom/movable/screen/movable/action_button/proc/clean_up_keybinds(mob/owner)
if(linked_keybind)
owner.client.active_keybindings[linked_keybind.binded_to] -= (linked_keybind)
if(!length(owner.client.active_keybindings[linked_keybind.binded_to]))
@@ -90,21 +90,21 @@
QDEL_NULL(linked_keybind)
//Hide/Show Action Buttons ... Button
/obj/screen/movable/action_button/hide_toggle
/atom/movable/screen/movable/action_button/hide_toggle
name = "Hide Buttons"
desc = "Shift-click any button to reset its position, and Control-click it to lock/unlock its position. Alt-click this button to reset all buttons to their default positions."
icon = 'icons/mob/actions/actions.dmi'
icon_state = "bg_default"
var/hidden = FALSE
/obj/screen/movable/action_button/hide_toggle/MouseDrop(over_object)
if(istype(over_object, /obj/screen/movable/action_button))
/atom/movable/screen/movable/action_button/hide_toggle/MouseDrop(over_object)
if(istype(over_object, /atom/movable/screen/movable/action_button))
closeToolTip(usr)
else
closeToolTip(usr)
return ..()
/obj/screen/movable/action_button/hide_toggle/Click(location,control,params)
/atom/movable/screen/movable/action_button/hide_toggle/Click(location, control, params)
var/list/modifiers = params2list(params)
if(modifiers["alt"])
@@ -121,17 +121,17 @@
update_icon(UPDATE_OVERLAYS)
usr.update_action_buttons()
/obj/screen/movable/action_button/hide_toggle/AltClick(mob/user)
/atom/movable/screen/movable/action_button/hide_toggle/AltClick(mob/user)
for(var/V in user.actions)
var/datum/action/A = V
var/obj/screen/movable/action_button/B = A.button
var/atom/movable/screen/movable/action_button/B = A.button
B.moved = FALSE
if(moved)
moved = FALSE
user.update_action_buttons(TRUE)
to_chat(user, "<span class='notice'>Action button positions have been reset.</span>")
/obj/screen/movable/action_button/hide_toggle/proc/InitialiseIcon(mob/living/user)
/atom/movable/screen/movable/action_button/hide_toggle/proc/InitialiseIcon(mob/living/user)
if(isalien(user))
icon = 'icons/mob/actions/actions.dmi'
icon_state = "bg_alien"
@@ -146,13 +146,13 @@
color = user.client.prefs.UI_style_color
update_icon(UPDATE_OVERLAYS)
/obj/screen/movable/action_button/hide_toggle/update_overlays()
/atom/movable/screen/movable/action_button/hide_toggle/update_overlays()
. = ..()
var/image/img = image(initial(icon), src, hidden ? "show" : "hide")
img.appearance_flags = RESET_COLOR | RESET_ALPHA
. += img
/obj/screen/movable/action_button/MouseEntered(location, control, params)
/atom/movable/screen/movable/action_button/MouseEntered(location, control, params)
. = ..()
if(!QDELETED(src))
if(!linked_keybind)
@@ -164,7 +164,7 @@
desc_information = desc_information.Join(" ")
openToolTip(usr, src, params, title = name, content = desc_information, theme = actiontooltipstyle)
/obj/screen/movable/action_button/MouseExited()
/atom/movable/screen/movable/action_button/MouseExited()
closeToolTip(usr)
/mob/proc/update_action_buttons_icon()
@@ -192,7 +192,7 @@
A.override_location() // If the action has a location override, call it
A.UpdateButtonIcon()
var/obj/screen/movable/action_button/B = A.button
var/atom/movable/screen/movable/action_button/B = A.button
if(B.ordered)
button_number++
if(!B.moved)
@@ -227,7 +227,7 @@
return "WEST[coord_col]:[coord_col_offset],NORTH[coord_row]:-6"
/datum/hud/proc/SetButtonCoords(obj/screen/button,number)
/datum/hud/proc/SetButtonCoords(atom/movable/screen/button,number)
var/row = round((number-1)/AB_MAX_COLUMNS)
var/col = ((number - 1)%(AB_MAX_COLUMNS)) + 1
var/x_offset = 32*(col-1) + 4 + 2*col
+49 -49
View File
@@ -1,138 +1,138 @@
/obj/screen/ai
/atom/movable/screen/ai
icon = 'icons/mob/screen_ai.dmi'
/obj/screen/ai/aicore
/atom/movable/screen/ai/aicore
name = "AI core"
icon_state = "ai_core"
/obj/screen/ai/aicore/Click()
/atom/movable/screen/ai/aicore/Click()
if(isAI(usr))
var/mob/living/silicon/ai/AI = usr
AI.view_core()
/obj/screen/ai/camera_list
/atom/movable/screen/ai/camera_list
name = "Show Camera List"
icon_state = "camera"
/obj/screen/ai/camera_list/Click()
/atom/movable/screen/ai/camera_list/Click()
var/mob/living/silicon/ai/AI = usr
var/camera = tgui_input_list(AI, "Choose which camera you want to view", "Cameras", AI.get_camera_list())
AI.ai_camera_list(camera)
/obj/screen/ai/camera_track
/atom/movable/screen/ai/camera_track
name = "Track With Camera"
icon_state = "track"
/obj/screen/ai/camera_track/Click()
/atom/movable/screen/ai/camera_track/Click()
if(isAI(usr))
var/mob/living/silicon/ai/AI = usr
var/target_name = tgui_input_list(AI, "Choose a target you want to track", "Tracking", AI.trackable_mobs())
if(target_name)
AI.ai_camera_track(target_name)
/obj/screen/ai/camera_light
/atom/movable/screen/ai/camera_light
name = "Toggle Camera Light"
icon_state = "camera_light"
/obj/screen/ai/camera_light/Click()
/atom/movable/screen/ai/camera_light/Click()
if(isAI(usr))
var/mob/living/silicon/ai/AI = usr
AI.toggle_camera_light()
/obj/screen/ai/crew_monitor
/atom/movable/screen/ai/crew_monitor
name = "Crew Monitoring Console"
icon_state = "crew_monitor"
/obj/screen/ai/crew_monitor/Click()
/atom/movable/screen/ai/crew_monitor/Click()
if(isAI(usr))
var/mob/living/silicon/ai/AI = usr
AI.subsystem_crew_monitor()
/obj/screen/ai/crew_manifest
/atom/movable/screen/ai/crew_manifest
name = "Crew Manifest"
icon_state = "manifest"
/obj/screen/ai/crew_manifest/Click()
/atom/movable/screen/ai/crew_manifest/Click()
if(isAI(usr))
var/mob/living/silicon/ai/AI = usr
AI.ai_roster()
/obj/screen/ai/alerts
/atom/movable/screen/ai/alerts
name = "Show Alerts"
icon_state = "alerts"
/obj/screen/ai/alerts/Click()
/atom/movable/screen/ai/alerts/Click()
if(isAI(usr))
var/mob/living/silicon/ai/AI = usr
AI.ai_alerts()
/obj/screen/ai/announcement
/atom/movable/screen/ai/announcement
name = "Make Announcement"
icon_state = "announcement"
/obj/screen/ai/announcement/Click()
/atom/movable/screen/ai/announcement/Click()
var/mob/living/silicon/ai/AI = usr
AI.announcement()
/obj/screen/ai/call_shuttle
/atom/movable/screen/ai/call_shuttle
name = "Call Emergency Shuttle"
icon_state = "call_shuttle"
/obj/screen/ai/call_shuttle/Click()
/atom/movable/screen/ai/call_shuttle/Click()
if(isAI(usr))
var/mob/living/silicon/ai/AI = usr
AI.ai_call_shuttle()
/obj/screen/ai/state_laws
/atom/movable/screen/ai/state_laws
name = "Law Manager"
icon_state = "state_laws"
/obj/screen/ai/state_laws/Click()
/atom/movable/screen/ai/state_laws/Click()
if(isAI(usr))
var/mob/living/silicon/ai/AI = usr
AI.subsystem_law_manager()
/obj/screen/ai/pda_msg_send
/atom/movable/screen/ai/pda_msg_send
name = "PDA - Send Message"
icon_state = "pda_send"
/obj/screen/ai/pda_msg_send/Click()
/atom/movable/screen/ai/pda_msg_send/Click()
if(isAI(usr))
var/mob/living/silicon/ai/AI = usr
AI.aiPDA.cmd_send_pdamesg()
/obj/screen/ai/pda_msg_show
/atom/movable/screen/ai/pda_msg_show
name = "PDA - Show Message Log"
icon_state = "pda_receive"
/obj/screen/ai/pda_msg_show/Click()
/atom/movable/screen/ai/pda_msg_show/Click()
if(isAI(usr))
var/mob/living/silicon/ai/AI = usr
AI.aiPDA.cmd_show_message_log()
/obj/screen/ai/image_take
/atom/movable/screen/ai/image_take
name = "Take Image"
icon_state = "take_picture"
/obj/screen/ai/image_take/Click()
/atom/movable/screen/ai/image_take/Click()
if(isAI(usr))
var/mob/living/silicon/ai/AI = usr
AI.aiCamera.toggle_camera_mode()
/obj/screen/ai/image_view
/atom/movable/screen/ai/image_view
name = "View Images"
icon_state = "view_images"
/obj/screen/ai/image_view/Click()
/atom/movable/screen/ai/image_view/Click()
if(isAI(usr))
var/mob/living/silicon/ai/AI = usr
AI.aiCamera.viewpictures()
/obj/screen/ai/sensors
/atom/movable/screen/ai/sensors
name = "Toggle Sensor Augmentation"
icon_state = "ai_sensor"
/obj/screen/ai/sensors/Click()
/atom/movable/screen/ai/sensors/Click()
if(isAI(usr))
var/mob/living/silicon/ai/AI = usr
AI.sensor_mode()
@@ -147,89 +147,89 @@
/datum/hud/ai/New(mob/owner)
..()
var/obj/screen/using
var/atom/movable/screen/using
using = new /obj/screen/language_menu
using = new /atom/movable/screen/language_menu
using.screen_loc = ui_borg_lanugage_menu
static_inventory += using
//AI core
using = new /obj/screen/ai/aicore()
using = new /atom/movable/screen/ai/aicore()
using.screen_loc = ui_ai_core
static_inventory += using
//Camera list
using = new /obj/screen/ai/camera_list()
using = new /atom/movable/screen/ai/camera_list()
using.screen_loc = ui_ai_camera_list
static_inventory += using
//Track
using = new /obj/screen/ai/camera_track()
using = new /atom/movable/screen/ai/camera_track()
using.screen_loc = ui_ai_track_with_camera
static_inventory += using
//Camera light
using = new /obj/screen/ai/camera_light()
using = new /atom/movable/screen/ai/camera_light()
using.screen_loc = ui_ai_camera_light
static_inventory += using
//Crew Monitorting
using = new /obj/screen/ai/crew_monitor()
using = new /atom/movable/screen/ai/crew_monitor()
using.screen_loc = ui_ai_crew_monitor
static_inventory += using
//Crew Manifest
using = new /obj/screen/ai/crew_manifest()
using = new /atom/movable/screen/ai/crew_manifest()
using.screen_loc = ui_ai_crew_manifest
static_inventory += using
//Alerts
using = new /obj/screen/ai/alerts()
using = new /atom/movable/screen/ai/alerts()
using.screen_loc = ui_ai_alerts
static_inventory += using
//Announcement
using = new /obj/screen/ai/announcement()
using = new /atom/movable/screen/ai/announcement()
using.screen_loc = ui_ai_announcement
static_inventory += using
//Shuttle
using = new /obj/screen/ai/call_shuttle()
using = new /atom/movable/screen/ai/call_shuttle()
using.screen_loc = ui_ai_shuttle
static_inventory += using
//Laws
using = new /obj/screen/ai/state_laws()
using = new /atom/movable/screen/ai/state_laws()
using.screen_loc = ui_ai_state_laws
static_inventory += using
//PDA message
using = new /obj/screen/ai/pda_msg_send()
using = new /atom/movable/screen/ai/pda_msg_send()
using.screen_loc = ui_ai_pda_send
static_inventory += using
//PDA log
using = new /obj/screen/ai/pda_msg_show()
using = new /atom/movable/screen/ai/pda_msg_show()
using.screen_loc = ui_ai_pda_log
static_inventory += using
//Take image
using = new /obj/screen/ai/image_take()
using = new /atom/movable/screen/ai/image_take()
using.screen_loc = ui_ai_take_picture
static_inventory += using
//View images
using = new /obj/screen/ai/image_view()
using = new /atom/movable/screen/ai/image_view()
using.screen_loc = ui_ai_view_images
static_inventory += using
//Medical/Security sensors
using = new /obj/screen/ai/sensors()
using = new /atom/movable/screen/ai/sensors()
using.screen_loc = ui_ai_sensor
static_inventory += using
//Intent
using = new /obj/screen/act_intent/robot/AI()
using = new /atom/movable/screen/act_intent/robot/AI()
using.icon_state = mymob.a_intent
static_inventory += using
action_intent = using
+110 -110
View File
@@ -21,7 +21,7 @@
if(!category)
return
var/obj/screen/alert/alert = LAZYACCESS(alerts, category)
var/atom/movable/screen/alert/alert = LAZYACCESS(alerts, category)
if(alert)
if(alert.override_alerts)
return 0
@@ -75,14 +75,14 @@
var/timeout = timeout_override || alert.timeout
if(timeout)
addtimer(CALLBACK(alert, TYPE_PROC_REF(/obj/screen/alert, do_timeout), src, category), timeout)
addtimer(CALLBACK(alert, TYPE_PROC_REF(/atom/movable/screen/alert, do_timeout), src, category), timeout)
alert.timeout = world.time + timeout - world.tick_lag
return alert
// Proc to clear an existing alert.
/mob/proc/clear_alert(category, clear_override = FALSE)
var/obj/screen/alert/alert = LAZYACCESS(alerts, category)
var/atom/movable/screen/alert/alert = LAZYACCESS(alerts, category)
if(!alert)
return 0
if(alert.override_alerts && !clear_override)
@@ -94,7 +94,7 @@
client.screen -= alert
qdel(alert)
/obj/screen/alert
/atom/movable/screen/alert
icon = 'icons/mob/screen_alert.dmi'
icon_state = "default"
name = "Alert"
@@ -105,16 +105,16 @@
var/alerttooltipstyle = ""
var/override_alerts = FALSE //If it is overriding other alerts of the same type
/obj/screen/alert/MouseEntered(location,control,params)
/atom/movable/screen/alert/MouseEntered(location, control, params)
. = ..()
openToolTip(usr, src, params, title = name, content = desc, theme = alerttooltipstyle)
/obj/screen/alert/MouseExited()
/atom/movable/screen/alert/MouseExited()
closeToolTip(usr)
return ..()
/obj/screen/alert/proc/do_timeout(mob/M, category)
/atom/movable/screen/alert/proc/do_timeout(mob/M, category)
if(!M || !M.alerts)
return
@@ -122,42 +122,42 @@
M.clear_alert(category)
//Gas alerts
/obj/screen/alert/not_enough_oxy
/atom/movable/screen/alert/not_enough_oxy
name = "Choking (No O2)"
desc = "You're not getting enough oxygen. Find some good air before you pass out! The box in your backpack has an oxygen tank and breath mask in it."
icon_state = "not_enough_oxy"
/obj/screen/alert/too_much_oxy
/atom/movable/screen/alert/too_much_oxy
name = "Choking (O2)"
desc = "There's too much oxygen in the air, and you're breathing it in! Find some good air before you pass out!"
icon_state = "too_much_oxy"
/obj/screen/alert/not_enough_nitro
/atom/movable/screen/alert/not_enough_nitro
name = "Choking (No N2)"
desc = "You're not getting enough nitrogen. Find some good air before you pass out!"
icon_state = "not_enough_nitro"
/obj/screen/alert/too_much_nitro
/atom/movable/screen/alert/too_much_nitro
name = "Choking (N2)"
desc = "There's too much nitrogen in the air, and you're breathing it in! Find some good air before you pass out!"
icon_state = "too_much_nitro"
/obj/screen/alert/not_enough_co2
/atom/movable/screen/alert/not_enough_co2
name = "Choking (No CO2)"
desc = "You're not getting enough carbon dioxide. Find some good air before you pass out!"
icon_state = "not_enough_co2"
/obj/screen/alert/too_much_co2
/atom/movable/screen/alert/too_much_co2
name = "Choking (CO2)"
desc = "There's too much carbon dioxide in the air, and you're breathing it in! Find some good air before you pass out!"
icon_state = "too_much_co2"
/obj/screen/alert/not_enough_tox
/atom/movable/screen/alert/not_enough_tox
name = "Choking (No Plasma)"
desc = "You're not getting enough plasma. Find some good air before you pass out!"
icon_state = "not_enough_tox"
/obj/screen/alert/too_much_tox
/atom/movable/screen/alert/too_much_tox
name = "Choking (Plasma)"
desc = "There's highly flammable, toxic plasma in the air and you're breathing it in. Find some fresh air. The box in your backpack has an oxygen tank and gas mask in it."
icon_state = "too_much_tox"
@@ -165,161 +165,161 @@
// Hunger alerts
/obj/screen/alert/hunger
/atom/movable/screen/alert/hunger
icon = 'icons/mob/screen_hunger.dmi'
/obj/screen/alert/hunger/fat
/atom/movable/screen/alert/hunger/fat
name = "Fat"
desc = "You ate too much food, lardass. Run around the station and lose some weight."
icon_state = "fat"
/obj/screen/alert/hunger/full
/atom/movable/screen/alert/hunger/full
name = "Full"
desc = "You feel full and satisfied, but you shouldn't eat much more."
icon_state = "full"
/obj/screen/alert/hunger/well_fed
/atom/movable/screen/alert/hunger/well_fed
name = "Well Fed"
desc = "You feel quite satisfied, but you may be able to eat a bit more."
icon_state = "well_fed"
/obj/screen/alert/hunger/fed
/atom/movable/screen/alert/hunger/fed
name = "Fed"
desc = "You feel moderately satisfied, but a bit more food may not hurt."
icon_state = "fed"
/obj/screen/alert/hunger/hungry
/atom/movable/screen/alert/hunger/hungry
name = "Hungry"
desc = "Some food would be good right about now."
icon_state = "hungry"
/obj/screen/alert/hunger/starving
/atom/movable/screen/alert/hunger/starving
name = "Starving"
desc = "You're severely malnourished. The hunger pains make moving around a chore."
icon_state = "starving"
/// Machine "hunger"
/obj/screen/alert/hunger/fat/machine
/atom/movable/screen/alert/hunger/fat/machine
name = "Over Charged"
desc = "Your cell has excessive charge due to electrical shocks. Run around the station and spend some energy."
/obj/screen/alert/hunger/full/machine
/atom/movable/screen/alert/hunger/full/machine
name = "Full Charge"
desc = "Your cell is at full charge. Might want to give APCs some space."
/obj/screen/alert/hunger/well_fed/machine
/atom/movable/screen/alert/hunger/well_fed/machine
name = "High Charge"
desc = "You're almost all charged, but could top up a bit more."
/obj/screen/alert/hunger/fed/machine
/atom/movable/screen/alert/hunger/fed/machine
name = "Half Charge"
desc = "You feel moderately charged, but a bit more juice couldn't hurt."
/obj/screen/alert/hunger/hungry/machine
/atom/movable/screen/alert/hunger/hungry/machine
name = "Low Charge"
desc = "Could use a little charging right about now."
/obj/screen/alert/hunger/starving/machine
/atom/movable/screen/alert/hunger/starving/machine
name = "Nearly Discharged"
desc = "You're almost drained. The low power makes moving around a chore."
// End of Machine "hunger"
///Vampire "hunger"
/obj/screen/alert/hunger/fat/vampire
/atom/movable/screen/alert/hunger/fat/vampire
desc = "You somehow drank too much blood, lardass. Run around the station and lose some weight."
/obj/screen/alert/hunger/full/vampire
/atom/movable/screen/alert/hunger/full/vampire
desc = "You feel full and satisfied, but you know you will thirst for more blood soon..."
/obj/screen/alert/hunger/well_fed/vampire
/atom/movable/screen/alert/hunger/well_fed/vampire
desc = "You feel quite satisfied, but you could do with a bit more blood."
/obj/screen/alert/hunger/fed/vampire
/atom/movable/screen/alert/hunger/fed/vampire
desc = "You feel moderately satisfied, but a bit more blood wouldn't hurt."
/obj/screen/alert/hunger/hungry/vampire
/atom/movable/screen/alert/hunger/hungry/vampire
desc = "You currently thirst for blood."
/obj/screen/alert/hunger/starving/vampire
/atom/movable/screen/alert/hunger/starving/vampire
desc = "You're severely thirsty. The thirst pains make moving around a chore."
//End of Vampire "hunger"
/obj/screen/alert/hot
/atom/movable/screen/alert/hot
name = "Too Hot"
desc = "You're flaming hot! Get somewhere cooler and take off any insulating clothing like a fire suit."
icon_state = "hot"
/obj/screen/alert/hot/robot
/atom/movable/screen/alert/hot/robot
desc = "The air around you is too hot for a humanoid. Be careful to avoid exposing them to this environment."
/obj/screen/alert/cold
/atom/movable/screen/alert/cold
name = "Too Cold"
desc = "You're freezing cold! Get somewhere warmer and take off any insulating clothing like a space suit."
icon_state = "cold"
/obj/screen/alert/cold/drask
/atom/movable/screen/alert/cold/drask
name = "Cold"
desc = "You're breathing supercooled gas! It's stimulating your metabolism to regenerate damaged tissue."
/obj/screen/alert/cold/robot
/atom/movable/screen/alert/cold/robot
desc = "The air around you is too cold for a humanoid. Be careful to avoid exposing them to this environment."
/obj/screen/alert/lowpressure
/atom/movable/screen/alert/lowpressure
name = "Low Pressure"
desc = "The air around you is hazardously thin. A space suit would protect you."
icon_state = "lowpressure"
/obj/screen/alert/highpressure
/atom/movable/screen/alert/highpressure
name = "High Pressure"
desc = "The air around you is hazardously thick. A fire suit would protect you."
icon_state = "highpressure"
/obj/screen/alert/lightexposure
/atom/movable/screen/alert/lightexposure
name = "Light Exposure"
desc = "You're exposed to light."
icon_state = "lightexposure"
/obj/screen/alert/nolight
/atom/movable/screen/alert/nolight
name = "No Light"
desc = "You're not exposed to any light."
icon_state = "nolight"
/obj/screen/alert/blind
/atom/movable/screen/alert/blind
name = "Blind"
desc = "You can't see! This may be caused by a genetic defect, eye trauma, being unconscious, \
or something covering your eyes."
icon_state = "blind"
/obj/screen/alert/high
/atom/movable/screen/alert/high
name = "High"
desc = "Whoa man, you're tripping balls! Careful you don't get addicted... if you aren't already."
icon_state = "high"
/obj/screen/alert/drunk
/atom/movable/screen/alert/drunk
name = "Drunk"
desc = "All that alcohol you've been drinking is impairing your speech, motor skills, and mental cognition."
icon_state = "drunk"
/obj/screen/alert/embeddedobject
/atom/movable/screen/alert/embeddedobject
name = "Embedded Object"
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, click yourself in help intent to pull the object out."
icon_state = "embeddedobject"
/obj/screen/alert/embeddedobject/Click()
/atom/movable/screen/alert/embeddedobject/Click()
if(isliving(usr))
var/mob/living/carbon/human/M = usr
return M.help_shake_act(M)
/obj/screen/alert/asleep
/atom/movable/screen/alert/asleep
name = "Asleep"
desc = "You've fallen asleep. Wait a bit and you should wake up. Unless you don't, considering how helpless you are."
icon_state = "asleep"
/obj/screen/alert/weightless
/atom/movable/screen/alert/weightless
name = "Weightless"
desc = "Gravity has ceased affecting you, and you're floating around aimlessly. You'll need something large and heavy, like a \
wall or lattice, to push yourself off if you want to move. A jetpack would enable free range of motion. A pair of \
@@ -327,48 +327,48 @@ magboots would let you walk around normally on the floor. Barring those, you can
or shoot a gun to move around via Newton's 3rd Law of Motion."
icon_state = "weightless"
/obj/screen/alert/fire
/atom/movable/screen/alert/fire
name = "On Fire"
desc = "You're on fire. Stop, drop and roll to put the fire out or move to a vacuum area."
icon_state = "fire"
/obj/screen/alert/fire/Click()
/atom/movable/screen/alert/fire/Click()
if(isliving(usr))
var/mob/living/L = usr
return L.resist()
/obj/screen/alert/direction_lock
/atom/movable/screen/alert/direction_lock
name = "Direction Lock"
desc = "You are facing only one direction, slowing your movement down. Click here to stop the direction lock."
icon_state = "direction_lock"
/obj/screen/alert/direction_lock/Click()
/atom/movable/screen/alert/direction_lock/Click()
if(isliving(usr))
var/mob/living/L = usr
return L.clear_forced_look()
//Constructs
/obj/screen/alert/holy_fire
/atom/movable/screen/alert/holy_fire
name = "Holy Fire"
desc = "Your body is crumbling from the holy energies. Get out."
icon_state = "fire"
//ALIENS
/obj/screen/alert/alien_tox
/atom/movable/screen/alert/alien_tox
name = "Plasma"
desc = "There's flammable plasma in the air. If it lights up, you'll be toast."
icon_state = "alien_tox"
alerttooltipstyle = "alien"
/obj/screen/alert/alien_fire
/atom/movable/screen/alert/alien_fire
// This alert is temporarily gonna be thrown for all hot air but one day it will be used for literally being on fire
name = "Too Hot"
desc = "It's too hot! Flee to space or at least away from the flames. Standing on weeds will heal you."
icon_state = "alien_fire"
alerttooltipstyle = "alien"
/obj/screen/alert/alien_vulnerable
/atom/movable/screen/alert/alien_vulnerable
name = "Severed Matriarchy"
desc = "Your queen has been killed, you will suffer movement penalties and loss of hivemind. A new queen cannot be made until you recover."
icon_state = "alien_noqueen"
@@ -376,7 +376,7 @@ or shoot a gun to move around via Newton's 3rd Law of Motion."
//BLOBS
/obj/screen/alert/nofactory
/atom/movable/screen/alert/nofactory
name = "No Factory"
desc = "You have no factory, and are slowly dying!"
icon_state = "blobbernaut_nofactory"
@@ -384,39 +384,39 @@ or shoot a gun to move around via Newton's 3rd Law of Motion."
//SILICONS
/obj/screen/alert/nocell
/atom/movable/screen/alert/nocell
name = "Missing Power Cell"
desc = "Unit has no power cell. No modules available until a power cell is reinstalled. Robotics may provide assistance."
icon_state = "nocell"
/obj/screen/alert/emptycell
/atom/movable/screen/alert/emptycell
name = "Out of Power"
desc = "Unit's power cell has no charge remaining. No modules available until power cell is recharged. \
Recharging stations are available in robotics, the dormitory bathrooms, and the AI satellite."
icon_state = "emptycell"
/obj/screen/alert/lowcell
/atom/movable/screen/alert/lowcell
name = "Low Charge"
desc = "Unit's power cell is running low. Recharging stations are available in robotics, the dormitory bathrooms, and the AI satellite."
icon_state = "lowcell"
//Diona Nymph
/obj/screen/alert/nymph
/atom/movable/screen/alert/nymph
name = "Gestalt merge"
desc = "You have merged with a diona gestalt and are now part of it's biomass. You can still wiggle yourself free though."
/obj/screen/alert/nymph/Click()
/atom/movable/screen/alert/nymph/Click()
if(!usr || !usr.client)
return
if(isnymph(usr))
var/mob/living/simple_animal/diona/D = usr
return D.resist()
/obj/screen/alert/gestalt
/atom/movable/screen/alert/gestalt
name = "Merged nymph"
desc = "You have merged with one or more diona nymphs. Click here to drop it (or one of them)."
/obj/screen/alert/gestalt/Click()
/atom/movable/screen/alert/gestalt/Click()
if(!usr || !usr.client)
return
@@ -433,25 +433,25 @@ Recharging stations are available in robotics, the dormitory bathrooms, and the
D.split(TRUE)
//Need to cover all use cases - emag, illegal upgrade module, malf AI hack, traitor cyborg
/obj/screen/alert/hacked
/atom/movable/screen/alert/hacked
name = "Hacked"
desc = "Hazardous non-standard equipment detected. Please ensure any usage of this equipment is in line with unit's laws, if any."
icon_state = "hacked"
/obj/screen/alert/locked
/atom/movable/screen/alert/locked
name = "Locked Down"
desc = "Unit has been remotely locked down. Usage of a Robotics Control Console like the one in the Research Director's \
office by your AI master or any qualified human may resolve this matter. Robotics may provide further assistance if necessary."
icon_state = "locked"
/obj/screen/alert/newlaw
/atom/movable/screen/alert/newlaw
name = "Law Update"
desc = "Laws have potentially been uploaded to or removed from this unit. Please be aware of any changes \
so as to remain in compliance with the most up-to-date laws."
icon_state = "newlaw"
timeout = 300
/obj/screen/alert/hackingapc
/atom/movable/screen/alert/hackingapc
name = "Hacking APC"
desc = "An Area Power Controller is being hacked. When the process is \
complete, you will have exclusive control of it, and you will gain \
@@ -460,11 +460,11 @@ so as to remain in compliance with the most up-to-date laws."
timeout = 600
var/atom/target = null
/obj/screen/alert/hackingapc/Destroy()
/atom/movable/screen/alert/hackingapc/Destroy()
target = null
return ..()
/obj/screen/alert/hackingapc/Click()
/atom/movable/screen/alert/hackingapc/Click()
if(!usr || !usr.client)
return
if(!target)
@@ -475,22 +475,22 @@ so as to remain in compliance with the most up-to-date laws."
AI.eyeobj.setLoc(T)
//MECHS
/obj/screen/alert/low_mech_integrity
/atom/movable/screen/alert/low_mech_integrity
name = "Mech Damaged"
desc = "Mech integrity is low."
icon_state = "low_mech_integrity"
/obj/screen/alert/mech_port_available
/atom/movable/screen/alert/mech_port_available
name = "Connect to Port"
desc = "Click here to connect to an air port and refill your oxygen!"
icon_state = "mech_port"
var/obj/machinery/atmospherics/unary/portables_connector/target = null
/obj/screen/alert/mech_port_available/Destroy()
/atom/movable/screen/alert/mech_port_available/Destroy()
target = null
return ..()
/obj/screen/alert/mech_port_available/Click()
/atom/movable/screen/alert/mech_port_available/Click()
if(!usr || !usr.client)
return
if(!ismecha(usr.loc) || !target)
@@ -501,12 +501,12 @@ so as to remain in compliance with the most up-to-date laws."
else
to_chat(usr, "<span class='notice'>[M] failed to connect to the port.</span>")
/obj/screen/alert/mech_port_disconnect
/atom/movable/screen/alert/mech_port_disconnect
name = "Disconnect from Port"
desc = "Click here to disconnect from your air port."
icon_state = "mech_port_x"
/obj/screen/alert/mech_port_disconnect/Click()
/atom/movable/screen/alert/mech_port_disconnect/Click()
if(!usr || !usr.client)
return
if(!ismecha(usr.loc))
@@ -517,40 +517,40 @@ so as to remain in compliance with the most up-to-date laws."
else
to_chat(usr, "<span class='notice'>[M] is not connected to a port at the moment.</span>")
/obj/screen/alert/mech_nocell
/atom/movable/screen/alert/mech_nocell
name = "Missing Power Cell"
desc = "Mech has no power cell."
icon_state = "nocell"
/obj/screen/alert/mech_emptycell
/atom/movable/screen/alert/mech_emptycell
name = "Out of Power"
desc = "Mech is out of power."
icon_state = "emptycell"
/obj/screen/alert/mech_lowcell
/atom/movable/screen/alert/mech_lowcell
name = "Low Charge"
desc = "Mech is running out of power."
icon_state = "lowcell"
/obj/screen/alert/mech_maintenance
/atom/movable/screen/alert/mech_maintenance
name = "Maintenance Protocols"
desc = "Maintenance protocols are currently in effect, most actions disabled."
icon_state = "locked"
//GUARDIANS
/obj/screen/alert/cancharge
/atom/movable/screen/alert/cancharge
name = "Charge Ready"
desc = "You are ready to charge at a location!"
icon_state = "guardian_charge"
alerttooltipstyle = "parasite"
/obj/screen/alert/canstealth
/atom/movable/screen/alert/canstealth
name = "Stealth Ready"
desc = "You are ready to enter stealth!"
icon_state = "guardian_canstealth"
alerttooltipstyle = "parasite"
/obj/screen/alert/instealth
/atom/movable/screen/alert/instealth
name = "In Stealth"
desc = "You are in stealth and your next attack will do bonus damage!"
icon_state = "guardian_instealth"
@@ -559,32 +559,32 @@ so as to remain in compliance with the most up-to-date laws."
//GHOSTS
//TODO: expand this system to replace the pollCandidates/CheckAntagonist/"choose quickly"/etc Yes/No messages
/obj/screen/alert/notify_cloning
/atom/movable/screen/alert/notify_cloning
name = "Revival"
desc = "Someone is trying to revive you. Re-enter your corpse if you want to be revived!"
icon_state = "template"
timeout = 300
/obj/screen/alert/notify_cloning/Click()
/atom/movable/screen/alert/notify_cloning/Click()
if(!usr || !usr.client)
return
var/mob/dead/observer/G = usr
G.reenter_corpse()
/obj/screen/alert/ghost
/atom/movable/screen/alert/ghost
name = "Ghost"
desc = "Would you like to ghost? You will be notified when your body is removed from the nest."
icon_state = "template"
timeout = 5 MINUTES // longer than any infection should be
/obj/screen/alert/ghost/Initialize(mapload)
/atom/movable/screen/alert/ghost/Initialize(mapload)
. = ..()
var/image/I = image('icons/mob/mob.dmi', icon_state = "ghost", layer = FLOAT_LAYER, dir = SOUTH)
I.layer = FLOAT_LAYER
I.plane = FLOAT_PLANE
overlays += I
/obj/screen/alert/ghost/Click()
/atom/movable/screen/alert/ghost/Click()
var/mob/living/carbon/human/infected_user = usr
if(!istype(infected_user) || infected_user.stat == DEAD)
infected_user.clear_alert("ghost_nest")
@@ -595,7 +595,7 @@ so as to remain in compliance with the most up-to-date laws."
return
infected_user.ghostize(TRUE)
/obj/screen/alert/notify_action
/atom/movable/screen/alert/notify_action
name = "Body created"
desc = "A body was created. You can enter it."
icon_state = "template"
@@ -607,7 +607,7 @@ so as to remain in compliance with the most up-to-date laws."
var/image/signed_up_overlay // image showing that you're signed up
var/datum/candidate_poll/poll // If set, on Click() it'll register the player as a candidate
/obj/screen/alert/notify_action/process()
/atom/movable/screen/alert/notify_action/process()
if(show_time_left)
var/timeleft = timeout - world.time
if(timeleft <= 0)
@@ -632,14 +632,14 @@ so as to remain in compliance with the most up-to-date laws."
qdel(O)
..()
/obj/screen/alert/notify_action/Destroy()
/atom/movable/screen/alert/notify_action/Destroy()
target = null
if(signed_up_overlay)
overlays -= signed_up_overlay
qdel(signed_up_overlay)
return ..()
/obj/screen/alert/notify_action/Click()
/atom/movable/screen/alert/notify_action/Click()
if(!usr || !usr.client)
return
var/mob/dead/observer/G = usr
@@ -672,7 +672,7 @@ so as to remain in compliance with the most up-to-date laws."
return
G.ManualFollow(target)
/obj/screen/alert/notify_action/Topic(href, href_list)
/atom/movable/screen/alert/notify_action/Topic(href, href_list)
if(!href_list["signup"])
return
if(!poll)
@@ -684,7 +684,7 @@ so as to remain in compliance with the most up-to-date laws."
poll.sign_up(G)
update_signed_up_alert(G)
/obj/screen/alert/notify_action/proc/update_signed_up_alert(mob/user)
/atom/movable/screen/alert/notify_action/proc/update_signed_up_alert(mob/user)
if(!signed_up_overlay)
signed_up_overlay = image('icons/mob/screen_gen.dmi', icon_state = "selector")
signed_up_overlay.layer = FLOAT_LAYER
@@ -694,7 +694,7 @@ so as to remain in compliance with the most up-to-date laws."
else
overlays -= signed_up_overlay
/obj/screen/alert/notify_action/proc/display_stacks(stacks = 1)
/atom/movable/screen/alert/notify_action/proc/display_stacks(stacks = 1)
if(stacks <= 1)
return
@@ -712,7 +712,7 @@ so as to remain in compliance with the most up-to-date laws."
qdel(O)
/obj/screen/alert/notify_soulstone
/atom/movable/screen/alert/notify_soulstone
name = "Soul Stone"
desc = "Someone is trying to capture your soul in a soul stone. Click to allow it."
icon_state = "template"
@@ -720,7 +720,7 @@ so as to remain in compliance with the most up-to-date laws."
var/obj/item/soulstone/stone = null
var/stoner = null
/obj/screen/alert/notify_soulstone/Click()
/atom/movable/screen/alert/notify_soulstone/Click()
if(!usr || !usr.client)
return
if(stone)
@@ -728,39 +728,39 @@ so as to remain in compliance with the most up-to-date laws."
impossible for you to get back into the game as your regular character.", "Respawn", list("No", "Yes")) == "Yes")
stone?.opt_in = TRUE
/obj/screen/alert/notify_soulstone/Destroy()
/atom/movable/screen/alert/notify_soulstone/Destroy()
stone = null
return ..()
/obj/screen/alert/notify_mapvote
/atom/movable/screen/alert/notify_mapvote
name = "Map Vote"
desc = "Vote on which map you would like to play on next!"
icon_state = "map_vote"
/obj/screen/alert/notify_mapvote/Click()
/atom/movable/screen/alert/notify_mapvote/Click()
usr.client.vote()
//OBJECT-BASED
/obj/screen/alert/restrained/buckled
/atom/movable/screen/alert/restrained/buckled
name = "Buckled"
desc = "You've been buckled to something. Click the alert to unbuckle unless you're handcuffed."
icon_state = "buckled"
/obj/screen/alert/restrained/handcuffed
/atom/movable/screen/alert/restrained/handcuffed
name = "Handcuffed"
desc = "You're handcuffed and can't act. If anyone drags you, you won't be able to move. Click the alert to free yourself."
/obj/screen/alert/restrained/legcuffed
/atom/movable/screen/alert/restrained/legcuffed
name = "Legcuffed"
desc = "You're legcuffed, which slows you down considerably. Click the alert to free yourself."
/obj/screen/alert/restrained/Click()
/atom/movable/screen/alert/restrained/Click()
if(isliving(usr))
var/mob/living/L = usr
return L.resist()
/obj/screen/alert/restrained/buckled/Click()
/atom/movable/screen/alert/restrained/buckled/Click()
var/mob/living/L = usr
if(!istype(L) || !L.can_resist())
return
@@ -780,7 +780,7 @@ so as to remain in compliance with the most up-to-date laws."
mymob.client.screen -= alerts[alerts[i]]
return TRUE
for(var/i in 1 to alerts.len)
var/obj/screen/alert/alert = alerts[alerts[i]]
var/atom/movable/screen/alert/alert = alerts[alerts[i]]
if(alert.icon_state == "template")
if(!icon_pref)
icon_pref = ui_style2icon(mymob.client.prefs.UI_style)
@@ -802,7 +802,7 @@ so as to remain in compliance with the most up-to-date laws."
mymob.client.screen |= alert
return TRUE
/obj/screen/alert/Click(location, control, params)
/atom/movable/screen/alert/Click(location, control, params)
if(!usr || !usr.client)
return
var/paramslist = params2list(params)
@@ -812,7 +812,7 @@ so as to remain in compliance with the most up-to-date laws."
if(master)
return usr.client.Click(master, location, control, params)
/obj/screen/alert/Destroy()
/atom/movable/screen/alert/Destroy()
severity = 0
master = null
screen_loc = ""
+25 -25
View File
@@ -1,20 +1,20 @@
/obj/screen/alien
/atom/movable/screen/alien
icon = 'icons/mob/screen_alien.dmi'
/obj/screen/alien/leap
/atom/movable/screen/alien/leap
name = "toggle leap"
icon_state = "leap_off"
/obj/screen/alien/leap/Click()
/atom/movable/screen/alien/leap/Click()
if(isalienadult(usr))
var/mob/living/carbon/alien/humanoid/hunter/AH = usr
AH.toggle_leap()
/obj/screen/alien/nightvision
/atom/movable/screen/alien/nightvision
name = "toggle night-vision"
icon_state = "nightvision1"
/obj/screen/alien/nightvision/Click()
/atom/movable/screen/alien/nightvision/Click()
var/mob/living/carbon/alien/humanoid/A = usr
A.night_vision_toggle()
@@ -32,7 +32,7 @@
update_sight()
/obj/screen/alien/plasma_display
/atom/movable/screen/alien/plasma_display
icon = 'icons/mob/screen_gen.dmi'
icon_state = "power_display2"
name = "plasma stored"
@@ -46,20 +46,20 @@
/datum/hud/alien/New(mob/living/carbon/alien/humanoid/owner)
..()
var/obj/screen/using
var/obj/screen/inventory/inv_box
var/atom/movable/screen/using
var/atom/movable/screen/inventory/inv_box
using = new /obj/screen/language_menu
using = new /atom/movable/screen/language_menu
using.screen_loc = ui_alien_language_menu
static_inventory += using
using = new /obj/screen/act_intent/alien()
using = new /atom/movable/screen/act_intent/alien()
using.icon_state = (mymob.a_intent == "hurt" ? INTENT_HARM : mymob.a_intent)
using.screen_loc = ui_acti
static_inventory += using
action_intent = using
using = new /obj/screen/mov_intent()
using = new /atom/movable/screen/mov_intent()
using.icon = 'icons/mob/screen_alien.dmi'
using.icon_state = (mymob.m_intent == MOVE_INTENT_RUN ? "running" : "walking")
using.screen_loc = ui_movi
@@ -67,13 +67,13 @@
move_intent = using
if(isalienhunter(mymob))
mymob.leap_icon = new /obj/screen/alien/leap()
mymob.leap_icon = new /atom/movable/screen/alien/leap()
mymob.leap_icon.icon = 'icons/mob/screen_alien.dmi'
mymob.leap_icon.screen_loc = ui_alien_storage_r
static_inventory += mymob.leap_icon
//equippable shit
inv_box = new /obj/screen/inventory/hand()
inv_box = new /atom/movable/screen/inventory/hand()
inv_box.name = "r_hand"
inv_box.icon = 'icons/mob/screen_alien.dmi'
inv_box.icon_state = "hand_r"
@@ -81,7 +81,7 @@
inv_box.slot_id = SLOT_HUD_RIGHT_HAND
static_inventory += inv_box
inv_box = new /obj/screen/inventory/hand()
inv_box = new /atom/movable/screen/inventory/hand()
inv_box.name = "l_hand"
inv_box.icon = 'icons/mob/screen_alien.dmi'
inv_box.icon_state = "hand_l"
@@ -89,14 +89,14 @@
inv_box.slot_id = SLOT_HUD_LEFT_HAND
static_inventory += inv_box
using = new /obj/screen/swap_hand()
using = new /atom/movable/screen/swap_hand()
using.name = "hand"
using.icon = 'icons/mob/screen_alien.dmi'
using.icon_state = "hand1"
using.screen_loc = ui_swaphand1
static_inventory += using
using = new /obj/screen/swap_hand()
using = new /atom/movable/screen/swap_hand()
using.name = "hand"
using.icon = 'icons/mob/screen_alien.dmi'
using.icon_state = "hand2"
@@ -105,47 +105,47 @@
//end of equippable shit
using = new /obj/screen/resist()
using = new /atom/movable/screen/resist()
using.name = "resist"
using.icon = 'icons/mob/screen_alien.dmi'
using.icon_state = "act_resist"
using.screen_loc = ui_pull_resist
static_inventory += using
using = new /obj/screen/drop()
using = new /atom/movable/screen/drop()
using.name = "drop"
using.icon = 'icons/mob/screen_alien.dmi'
using.icon_state = "act_drop"
using.screen_loc = ui_drop_throw
static_inventory += using
mymob.throw_icon = new /obj/screen/throw_catch()
mymob.throw_icon = new /atom/movable/screen/throw_catch()
mymob.throw_icon.icon = 'icons/mob/screen_alien.dmi'
mymob.throw_icon.screen_loc = ui_drop_throw
static_inventory += mymob.throw_icon
mymob.healths = new /obj/screen/healths/alien()
mymob.healths = new /atom/movable/screen/healths/alien()
infodisplay += mymob.healths
nightvisionicon = new /obj/screen/alien/nightvision()
nightvisionicon = new /atom/movable/screen/alien/nightvision()
infodisplay += nightvisionicon
mymob.pullin = new /obj/screen/pull()
mymob.pullin = new /atom/movable/screen/pull()
mymob.pullin.icon = 'icons/mob/screen_alien.dmi'
mymob.pullin.hud = src
mymob.pullin.update_icon(UPDATE_ICON_STATE)
mymob.pullin.screen_loc = ui_pull_resist
hotkeybuttons += mymob.pullin
alien_plasma_display = new /obj/screen/alien/plasma_display()
alien_plasma_display = new /atom/movable/screen/alien/plasma_display()
infodisplay += alien_plasma_display
zone_select = new /obj/screen/zone_sel/alien()
zone_select = new /atom/movable/screen/zone_sel/alien()
zone_select.hud = src
zone_select.update_icon(UPDATE_OVERLAYS)
static_inventory += zone_select
for(var/obj/screen/inventory/inv in (static_inventory + toggleable_inventory))
for(var/atom/movable/screen/inventory/inv in (static_inventory + toggleable_inventory))
if(inv.slot_id)
inv.hud = src
inv_slots[inv.slot_id] = inv
+8 -8
View File
@@ -5,37 +5,37 @@
/datum/hud/larva/New(mob/owner)
..()
var/obj/screen/using
var/atom/movable/screen/using
using = new /obj/screen/act_intent/alien()
using = new /atom/movable/screen/act_intent/alien()
using.icon_state = mymob.a_intent
static_inventory += using
action_intent = using
using = new /obj/screen/mov_intent()
using = new /atom/movable/screen/mov_intent()
using.icon = 'icons/mob/screen_alien.dmi'
using.icon_state = (mymob.m_intent == MOVE_INTENT_RUN ? "running" : "walking")
static_inventory += using
move_intent = using
mymob.healths = new /obj/screen/healths/alien()
mymob.healths = new /atom/movable/screen/healths/alien()
infodisplay += mymob.healths
nightvisionicon = new /obj/screen/alien/nightvision()
nightvisionicon = new /atom/movable/screen/alien/nightvision()
infodisplay += nightvisionicon
mymob.pullin = new /obj/screen/pull()
mymob.pullin = new /atom/movable/screen/pull()
mymob.pullin.icon = 'icons/mob/screen_alien.dmi'
mymob.pullin.hud = src
mymob.pullin.update_icon(UPDATE_ICON_STATE)
mymob.pullin.screen_loc = ui_pull_resist
hotkeybuttons += mymob.pullin
using = new /obj/screen/language_menu
using = new /atom/movable/screen/language_menu
using.screen_loc = ui_alienlarva_language_menu
static_inventory += using
zone_select = new /obj/screen/zone_sel/alien()
zone_select = new /atom/movable/screen/zone_sel/alien()
zone_select.hud = src
zone_select.update_icon(UPDATE_OVERLAYS)
static_inventory += zone_select
+41 -41
View File
@@ -2,135 +2,135 @@
if(client && !hud_used)
hud_used = new /datum/hud/blob_overmind(src)
/obj/screen/blob
/atom/movable/screen/blob
icon = 'icons/mob/blob.dmi'
/obj/screen/blob/MouseEntered(location,control,params)
/atom/movable/screen/blob/MouseEntered(location, control, params)
. = ..()
openToolTip(usr,src,params,title = name,content = desc, theme = "blob")
/obj/screen/blob/MouseExited()
/atom/movable/screen/blob/MouseExited()
closeToolTip(usr)
return ..()
/obj/screen/blob/BlobHelp
/atom/movable/screen/blob/BlobHelp
icon_state = "ui_help"
name = "Blob Help"
desc = "Help on playing blob!"
/obj/screen/blob/BlobHelp/Click()
/atom/movable/screen/blob/BlobHelp/Click()
if(isovermind(usr))
var/mob/camera/blob/B = usr
B.blob_help()
/obj/screen/blob/JumpToNode
/atom/movable/screen/blob/JumpToNode
icon_state = "ui_tonode"
name = "Jump to Node"
desc = "Moves your camera to a selected blob node."
/obj/screen/blob/JumpToNode/Click()
/atom/movable/screen/blob/JumpToNode/Click()
if(isovermind(usr))
var/mob/camera/blob/B = usr
B.jump_to_node()
/obj/screen/blob/JumpToCore
/atom/movable/screen/blob/JumpToCore
icon_state = "ui_tocore"
name = "Jump to Core"
desc = "Moves your camera to your blob core."
/obj/screen/blob/JumpToCore/MouseEntered(location,control,params)
/atom/movable/screen/blob/JumpToCore/MouseEntered(location, control, params)
if(hud && hud.mymob && isovermind(hud.mymob))
name = initial(name)
desc = initial(desc)
return ..()
/obj/screen/blob/JumpToCore/Click()
/atom/movable/screen/blob/JumpToCore/Click()
if(isovermind(usr))
var/mob/camera/blob/B = usr
B.transport_core()
/obj/screen/blob/Blobbernaut
/atom/movable/screen/blob/Blobbernaut
icon_state = "ui_blobbernaut"
name = "Produce Blobbernaut (60)"
desc = "Produces a strong, intelligent blobbernaut from a factory blob for 60 resources.<br>The factory blob will be destroyed in the process."
/obj/screen/blob/Blobbernaut/Click()
/atom/movable/screen/blob/Blobbernaut/Click()
if(isovermind(usr))
var/mob/camera/blob/B = usr
B.create_blobbernaut()
/obj/screen/blob/StorageBlob
/atom/movable/screen/blob/StorageBlob
icon_state = "ui_storage"
name = "Produce Storage Blob (40)"
desc = "Produces a storage blob for 40 resources.<br>Storage blobs will raise your max resource cap by 50."
/obj/screen/blob/StorageBlob/Click()
/atom/movable/screen/blob/StorageBlob/Click()
if(isovermind(usr))
var/mob/camera/blob/B = usr
B.create_storage()
/obj/screen/blob/ResourceBlob
/atom/movable/screen/blob/ResourceBlob
icon_state = "ui_resource"
name = "Produce Resource Blob (40)"
desc = "Produces a resource blob for 40 resources.<br>Resource blobs will give you resources every few seconds."
/obj/screen/blob/ResourceBlob/Click()
/atom/movable/screen/blob/ResourceBlob/Click()
if(isovermind(usr))
var/mob/camera/blob/B = usr
B.create_resource()
/obj/screen/blob/NodeBlob
/atom/movable/screen/blob/NodeBlob
icon_state = "ui_node"
name = "Produce Node Blob (60)"
desc = "Produces a node blob for 60 resources.<br>Node blobs will expand and activate nearby resource and factory blobs."
/obj/screen/blob/NodeBlob/Click()
/atom/movable/screen/blob/NodeBlob/Click()
if(isovermind(usr))
var/mob/camera/blob/B = usr
B.create_node()
/obj/screen/blob/FactoryBlob
/atom/movable/screen/blob/FactoryBlob
icon_state = "ui_factory"
name = "Produce Factory Blob (60)"
desc = "Produces a factory blob for 60 resources.<br>Factory blobs will produce spores every few seconds."
/obj/screen/blob/FactoryBlob/Click()
/atom/movable/screen/blob/FactoryBlob/Click()
if(isovermind(usr))
var/mob/camera/blob/B = usr
B.create_factory()
/obj/screen/blob/ReadaptChemical
/atom/movable/screen/blob/ReadaptChemical
icon_state = "ui_chemswap"
name = "Readapt Chemical (50)"
desc = "Randomly rerolls your chemical for 50 resources."
/obj/screen/blob/ReadaptChemical/MouseEntered(location,control,params)
/atom/movable/screen/blob/ReadaptChemical/MouseEntered(location, control, params)
if(hud && hud.mymob && isovermind(hud.mymob))
name = initial(name)
desc = initial(desc)
return ..()
/obj/screen/blob/ReadaptChemical/Click()
/atom/movable/screen/blob/ReadaptChemical/Click()
if(isovermind(usr))
var/mob/camera/blob/B = usr
B.chemical_reroll()
/obj/screen/blob/RelocateCore
/atom/movable/screen/blob/RelocateCore
icon_state = "ui_swap"
name = "Relocate Core (80)"
desc = "Swaps a node and your core for 80 resources."
/obj/screen/blob/RelocateCore/Click()
/atom/movable/screen/blob/RelocateCore/Click()
if(isovermind(usr))
var/mob/camera/blob/B = usr
B.relocate_core()
/obj/screen/blob/Split
/atom/movable/screen/blob/Split
icon_state = "ui_split"
name = "Split consciousness (100)"
desc = "Creates another Blob Overmind at the targeted node. One use only.<br>Offspring are unable to use this ability."
/obj/screen/blob/Split/Click()
/atom/movable/screen/blob/Split/Click()
if(isovermind(usr))
var/mob/camera/blob/B = usr
B.split_consciousness()
@@ -139,9 +139,9 @@
/datum/hud/blob_overmind/New(mob/user)
..()
var/obj/screen/using
var/atom/movable/screen/using
blobpwrdisplay = new /obj/screen()
blobpwrdisplay = new /atom/movable/screen()
blobpwrdisplay.name = "blob power"
blobpwrdisplay.icon_state = "block"
blobpwrdisplay.screen_loc = ui_health
@@ -150,56 +150,56 @@
blobpwrdisplay.plane = ABOVE_HUD_PLANE
static_inventory += blobpwrdisplay
blobhealthdisplay = new /obj/screen()
blobhealthdisplay = new /atom/movable/screen()
blobhealthdisplay.name = "blob health"
blobhealthdisplay.icon_state = "block"
blobhealthdisplay.screen_loc = ui_internal
static_inventory += blobhealthdisplay
using = new /obj/screen/blob/BlobHelp()
using = new /atom/movable/screen/blob/BlobHelp()
using.screen_loc = "WEST:6,NORTH:-3"
static_inventory += using
using = new /obj/screen/blob/JumpToNode()
using = new /atom/movable/screen/blob/JumpToNode()
using.screen_loc = ui_inventory
static_inventory += using
using = new /obj/screen/blob/JumpToCore()
using = new /atom/movable/screen/blob/JumpToCore()
using.screen_loc = ui_zonesel
using.hud = src
static_inventory += using
using = new /obj/screen/blob/Blobbernaut()
using = new /atom/movable/screen/blob/Blobbernaut()
using.screen_loc = ui_id
static_inventory += using
using = new /obj/screen/blob/StorageBlob()
using = new /atom/movable/screen/blob/StorageBlob()
using.screen_loc = ui_belt
static_inventory += using
using = new /obj/screen/blob/ResourceBlob()
using = new /atom/movable/screen/blob/ResourceBlob()
using.screen_loc = ui_back
static_inventory += using
using = new /obj/screen/blob/NodeBlob()
using = new /atom/movable/screen/blob/NodeBlob()
using.screen_loc = using.screen_loc = ui_rhand
static_inventory += using
using = new /obj/screen/blob/FactoryBlob()
using = new /atom/movable/screen/blob/FactoryBlob()
using.screen_loc = using.screen_loc = ui_lhand
static_inventory += using
using = new /obj/screen/blob/ReadaptChemical()
using = new /atom/movable/screen/blob/ReadaptChemical()
using.screen_loc = ui_storage1
using.hud = src
static_inventory += using
using = new /obj/screen/blob/RelocateCore()
using = new /atom/movable/screen/blob/RelocateCore()
using.screen_loc = ui_storage2
static_inventory += using
var/mob/camera/blob/B = user
if(!B.is_offspring) // Checks if the blob is an offspring, to not create split button if it is
using = new /obj/screen/blob/Split()
using = new /atom/movable/screen/blob/Split()
using.screen_loc = ui_acti
static_inventory += using
+7 -7
View File
@@ -1,12 +1,12 @@
/obj/screen/bot
/atom/movable/screen/bot
icon = 'icons/mob/screen_bot.dmi'
/obj/screen/bot/radio
/atom/movable/screen/bot/radio
name = "radio"
icon_state = "radio"
screen_loc = ui_bot_radio
/obj/screen/bot/radio/Click()
/atom/movable/screen/bot/radio/Click()
if(isbot(usr))
var/mob/living/simple_animal/bot/B = usr
B.Radio.interact(usr)
@@ -17,16 +17,16 @@
/datum/hud/bot/New(mob/owner)
..()
var/obj/screen/using
var/atom/movable/screen/using
using = new /obj/screen/bot/radio()
using = new /atom/movable/screen/bot/radio()
static_inventory += using
mymob.healths = new /obj/screen/healths/bot()
mymob.healths = new /atom/movable/screen/healths/bot()
mymob.healths.screen_loc = ui_borg_health
infodisplay += mymob.healths
mymob.pullin = new /obj/screen/pull()
mymob.pullin = new /atom/movable/screen/pull()
mymob.pullin.icon = 'icons/mob/screen_bot.dmi'
mymob.pullin.hud = src
mymob.pullin.update_icon(UPDATE_ICON_STATE)
+7 -7
View File
@@ -8,7 +8,7 @@
/datum/hud/construct/armoured/New(mob/owner)
..()
mymob.healths = new /obj/screen()
mymob.healths = new /atom/movable/screen()
mymob.healths.icon = 'icons/mob/screen_construct.dmi'
mymob.healths.icon_state = "juggernaut_health0"
mymob.healths.name = "health"
@@ -21,7 +21,7 @@
/datum/hud/construct/builder/New(mob/owner)
..()
mymob.healths = new /obj/screen()
mymob.healths = new /atom/movable/screen()
mymob.healths.icon = 'icons/mob/screen_construct.dmi'
mymob.healths.icon_state = "artificer_health0"
mymob.healths.name = "health"
@@ -34,7 +34,7 @@
/datum/hud/construct/wraith/New(mob/owner)
..()
mymob.healths = new /obj/screen()
mymob.healths = new /atom/movable/screen()
mymob.healths.icon = 'icons/mob/screen_construct.dmi'
mymob.healths.icon_state = "wraith_health0"
mymob.healths.name = "health"
@@ -47,7 +47,7 @@
/datum/hud/construct/harvester/New(mob/owner)
..()
mymob.healths = new /obj/screen()
mymob.healths = new /atom/movable/screen()
mymob.healths.icon = 'icons/mob/screen_construct.dmi'
mymob.healths.icon_state = "harvester_health0"
mymob.healths.name = "health"
@@ -56,13 +56,13 @@
/datum/hud/construct/New(mob/owner)
..()
mymob.pullin = new /obj/screen/pull()
mymob.pullin = new /atom/movable/screen/pull()
mymob.pullin.icon = 'icons/mob/screen_construct.dmi'
mymob.pullin.icon_state = "pull0"
mymob.pullin.name = "pull"
mymob.pullin.screen_loc = ui_construct_pull
var/obj/screen/using
using = new /obj/screen/act_intent/simple_animal()
var/atom/movable/screen/using
using = new /atom/movable/screen/act_intent/simple_animal()
using.icon_state = mymob.a_intent
static_inventory += using
action_intent = using
+14 -14
View File
@@ -1,4 +1,4 @@
/obj/screen/alert/augury
/atom/movable/screen/alert/augury
name = "Something interesting!"
desc = "Click to follow."
/// The atom being followed
@@ -19,7 +19,7 @@
* * follow_target: The atom to start out following. Can be null, in which case change_targets() should be used at some point.
* * alert_overlay_override: If follow_target is provided (or not), use this for the alert image.
*/
/obj/screen/alert/augury/Initialize(mapload, atom/movable/follow_target, image/alert_overlay_override)
/atom/movable/screen/alert/augury/Initialize(mapload, atom/movable/follow_target, image/alert_overlay_override)
. = ..()
src.follow_target = follow_target
@@ -37,7 +37,7 @@
alert_overlay_override.plane = FLOAT_PLANE
overlays += alert_overlay_override
/obj/screen/alert/augury/Click(location, control, params)
/atom/movable/screen/alert/augury/Click(location, control, params)
. = ..()
if(!usr || !usr.client || !isobserver(usr))
return
@@ -48,7 +48,7 @@
to_chat(usr, "<span class='notice'>You are now auto-following [thing_followed]. Click again to stop.</span>")
add_follower(usr)
/obj/screen/alert/augury/Destroy(force)
/atom/movable/screen/alert/augury/Destroy(force)
for(var/atom/movable/follower in followers) // in case something was nulled
follower.stop_orbit()
@@ -68,7 +68,7 @@
/// Executed when the parent is deleted.
/// Don't immediately kill ourselves, since it's possible that we might want to move somewhere else
/// (for example, after a meteor strike)
/obj/screen/alert/augury/proc/on_following_qdel(atom/movable/A)
/atom/movable/screen/alert/augury/proc/on_following_qdel(atom/movable/A)
SIGNAL_HANDLER // COMSIG_PARENT_QDELETING
for(var/atom/movable/follower in followers)
follower.stop_orbit()
@@ -86,7 +86,7 @@
* Arguments:
* * next_to - The next atom to follow.
*/
/obj/screen/alert/augury/proc/change_targets(atom/movable/next_to)
/atom/movable/screen/alert/augury/proc/change_targets(atom/movable/next_to)
// unregister first so we aren't bombarded when changing orbits
if(isnull(next_to))
return
@@ -100,15 +100,15 @@
RegisterSignal(follow_target, COMSIG_ATOM_ORBIT_STOP, PROC_REF(remove_follower_on_stop_orbit))
/obj/screen/alert/augury/proc/add_follower(atom/movable/follower)
/atom/movable/screen/alert/augury/proc/add_follower(atom/movable/follower)
followers |= follower
follower.orbit(follow_target)
/obj/screen/alert/augury/proc/remove_follower(atom/movable/follower)
/atom/movable/screen/alert/augury/proc/remove_follower(atom/movable/follower)
followers -= follower
follower.stop_orbit()
/obj/screen/alert/augury/proc/get_next_target()
/atom/movable/screen/alert/augury/proc/get_next_target()
if(!length(next_targets))
return
@@ -121,27 +121,27 @@
return target
/// Called when someone stops orbiting our followed object, so they can actually get out of the loop.
/obj/screen/alert/augury/proc/remove_follower_on_stop_orbit(atom/movable/followed, atom/movable/follower)
/atom/movable/screen/alert/augury/proc/remove_follower_on_stop_orbit(atom/movable/followed, atom/movable/follower)
SIGNAL_HANDLER // COMSIG_ATOM_ORBIT_STOP
if(locateUID(follower.orbiting_uid) != follow_target)
remove_follower(follower) // don't try to stop the orbit again
/// Meteor alert.
/// Appears during a meteor storm and allows for auto-following of debris.
/obj/screen/alert/augury/meteor
/atom/movable/screen/alert/augury/meteor
name = "Meteors incoming!"
desc = "Click to automatically follow debris, and click again to stop."
/obj/screen/alert/augury/meteor/Initialize(mapload)
/atom/movable/screen/alert/augury/meteor/Initialize(mapload)
var/image/meteor_img = image(icon = 'icons/obj/meteor.dmi', icon_state = "flaming")
. = ..(mapload, alert_overlay_override = meteor_img)
START_PROCESSING(SSfastprocess, src)
/obj/screen/alert/augury/meteor/Destroy(force)
/atom/movable/screen/alert/augury/meteor/Destroy(force)
. = ..()
STOP_PROCESSING(SSfastprocess, src)
/obj/screen/alert/augury/meteor/process()
/atom/movable/screen/alert/augury/meteor/process()
var/overridden = FALSE
for(var/obj/effect/meteor/M in GLOB.meteor_list)
if(!is_station_level(M.z))
+27 -27
View File
@@ -1,5 +1,5 @@
/mob/proc/overlay_fullscreen(category, type, severity)
var/obj/screen/fullscreen/screen = screens[category]
var/atom/movable/screen/fullscreen/screen = screens[category]
if(!screen || screen.type != type)
// needs to be recreated
clear_fullscreen(category, FALSE)
@@ -17,7 +17,7 @@
return screen
/mob/proc/clear_fullscreen(category, animated = 10)
var/obj/screen/fullscreen/screen = screens[category]
var/atom/movable/screen/fullscreen/screen = screens[category]
if(!screen)
return
@@ -41,7 +41,7 @@
/datum/hud/proc/reload_fullscreen()
if(mymob.client)
var/obj/screen/fullscreen/screen
var/atom/movable/screen/fullscreen/screen
var/list/screens = mymob.screens
for(var/category in screens)
screen = screens[category]
@@ -51,7 +51,7 @@
else
mymob.client.screen -= screen
/obj/screen/fullscreen
/atom/movable/screen/fullscreen
icon = 'icons/mob/screen_full.dmi'
icon_state = "default"
screen_loc = "CENTER-7,CENTER-7"
@@ -62,66 +62,66 @@
var/severity = 0
var/show_when_dead = FALSE
/obj/screen/fullscreen/proc/update_for_view(client_view)
/atom/movable/screen/fullscreen/proc/update_for_view(client_view)
if(screen_loc == "CENTER-7,CENTER-7" && view != client_view)
var/list/actualview = getviewsize(client_view)
view = client_view
transform = matrix(actualview[1]/FULLSCREEN_OVERLAY_RESOLUTION_X, 0, 0, 0, actualview[2]/FULLSCREEN_OVERLAY_RESOLUTION_Y, 0)
/obj/screen/fullscreen/proc/should_show_to(mob/mymob)
/atom/movable/screen/fullscreen/proc/should_show_to(mob/mymob)
if(!show_when_dead && mymob.stat == DEAD)
return FALSE
return TRUE
/obj/screen/fullscreen/Destroy()
/atom/movable/screen/fullscreen/Destroy()
severity = 0
return ..()
/obj/screen/fullscreen/brute
/atom/movable/screen/fullscreen/brute
icon_state = "brutedamageoverlay"
layer = UI_DAMAGE_LAYER
/obj/screen/fullscreen/oxy
/atom/movable/screen/fullscreen/oxy
icon_state = "oxydamageoverlay"
layer = UI_DAMAGE_LAYER
/obj/screen/fullscreen/crit
/atom/movable/screen/fullscreen/crit
icon_state = "passage"
layer = CRIT_LAYER
/obj/screen/fullscreen/blind
/atom/movable/screen/fullscreen/blind
icon_state = "blackimageoverlay"
layer = BLIND_LAYER
/obj/screen/fullscreen/impaired
/atom/movable/screen/fullscreen/impaired
icon_state = "impairedoverlay"
/obj/screen/fullscreen/payback
/atom/movable/screen/fullscreen/payback
icon = 'icons/mob/screen_payback.dmi'
icon_state = "payback"
show_when_dead = TRUE
/obj/screen/fullscreen/fog
/atom/movable/screen/fullscreen/fog
icon = 'icons/mob/screen_fog.dmi'
icon_state = "fog"
color = "#FF0000"
/obj/screen/fullscreen/flash
/atom/movable/screen/fullscreen/flash
icon = 'icons/mob/screen_gen.dmi'
screen_loc = "WEST,SOUTH to EAST,NORTH"
icon_state = "flash"
/obj/screen/fullscreen/flash/noise
/atom/movable/screen/fullscreen/flash/noise
icon = 'icons/mob/screen_gen.dmi'
screen_loc = "WEST,SOUTH to EAST,NORTH"
icon_state = "noise"
/obj/screen/fullscreen/high
/atom/movable/screen/fullscreen/high
icon = 'icons/mob/screen_gen.dmi'
screen_loc = "WEST,SOUTH to EAST,NORTH"
icon_state = "druggy"
/obj/screen/fullscreen/lighting_backdrop
/atom/movable/screen/fullscreen/lighting_backdrop
icon = 'icons/mob/screen_gen.dmi'
icon_state = "flash"
transform = matrix(200, 0, 0, 0, 200, 0)
@@ -130,18 +130,18 @@
show_when_dead = TRUE
//Provides darkness to the back of the lighting plane
/obj/screen/fullscreen/lighting_backdrop/lit
/atom/movable/screen/fullscreen/lighting_backdrop/lit
invisibility = INVISIBILITY_LIGHTING
layer = BACKGROUND_LAYER+21
color = "#000"
show_when_dead = TRUE
//Provides whiteness in case you don't see lights so everything is still visible
/obj/screen/fullscreen/lighting_backdrop/unlit
/atom/movable/screen/fullscreen/lighting_backdrop/unlit
layer = BACKGROUND_LAYER+20
show_when_dead = TRUE
/obj/screen/fullscreen/see_through_darkness
/atom/movable/screen/fullscreen/see_through_darkness
icon_state = "nightvision"
plane = LIGHTING_PLANE
layer = LIGHTING_LAYER
@@ -149,7 +149,7 @@
show_when_dead = TRUE
/// An effect which tracks the cursor's location on the screen
/obj/screen/fullscreen/cursor_catcher
/atom/movable/screen/fullscreen/cursor_catcher
icon_state = "fullscreen_blocker" // Fullscreen semi transparent icon
plane = HUD_PLANE
mouse_opacity = MOUSE_OPACITY_ICON
@@ -167,14 +167,14 @@
var/mouse_params
/// Links this up with a mob
/obj/screen/fullscreen/cursor_catcher/proc/assign_to_mob(mob/owner)
/atom/movable/screen/fullscreen/cursor_catcher/proc/assign_to_mob(mob/owner)
src.owner = owner
view_list = getviewsize(owner.client.view)
RegisterSignal(owner, COMSIG_MOVABLE_MOVED, PROC_REF(on_move))
calculate_params()
/// Update when the mob we're assigned to has moved
/obj/screen/fullscreen/cursor_catcher/proc/on_move(atom/source, atom/oldloc, dir, forced)
/atom/movable/screen/fullscreen/cursor_catcher/proc/on_move(atom/source, atom/oldloc, dir, forced)
SIGNAL_HANDLER
if(!given_turf)
@@ -184,18 +184,18 @@
given_turf = locate(given_turf.x + x_offset, given_turf.y + y_offset, given_turf.z)
/obj/screen/fullscreen/cursor_catcher/MouseEntered(location, control, params)
/atom/movable/screen/fullscreen/cursor_catcher/MouseEntered(location, control, params)
. = ..()
MouseMove(location, control, params)
if(usr == owner)
calculate_params()
/obj/screen/fullscreen/cursor_catcher/MouseMove(location, control, params)
/atom/movable/screen/fullscreen/cursor_catcher/MouseMove(location, control, params)
if(usr != owner)
return
mouse_params = params
/obj/screen/fullscreen/cursor_catcher/proc/calculate_params()
/atom/movable/screen/fullscreen/cursor_catcher/proc/calculate_params()
var/list/modifiers = params2list(mouse_params)
var/icon_x = text2num(LAZYACCESS(modifiers, "vis-x"))
if(isnull(icon_x))
+24 -24
View File
@@ -3,47 +3,47 @@
hud_used = new /datum/hud/ghost(src)
SEND_SIGNAL(src, COMSIG_MOB_HUD_CREATED)
/obj/screen/ghost
/atom/movable/screen/ghost
icon = 'icons/mob/screen_ghost.dmi'
/obj/screen/ghost/MouseEntered()
/atom/movable/screen/ghost/MouseEntered()
. = ..()
flick(icon_state + "_anim", src)
/obj/screen/ghost/orbit
/atom/movable/screen/ghost/orbit
name = "Orbit"
icon_state = "orbit"
/obj/screen/ghost/orbit/Click()
/atom/movable/screen/ghost/orbit/Click()
var/mob/dead/observer/G = usr
G.follow()
/obj/screen/ghost/reenter_corpse
/atom/movable/screen/ghost/reenter_corpse
name = "Re-enter corpse"
icon_state = "reenter_corpse"
/obj/screen/ghost/reenter_corpse/Click()
/atom/movable/screen/ghost/reenter_corpse/Click()
var/mob/dead/observer/G = usr
G.reenter_corpse()
/obj/screen/ghost/teleport
/atom/movable/screen/ghost/teleport
name = "Teleport"
icon_state = "teleport"
/obj/screen/ghost/teleport/Click()
/atom/movable/screen/ghost/teleport/Click()
var/mob/dead/observer/G = usr
G.dead_tele()
/obj/screen/ghost/respawn_list
/atom/movable/screen/ghost/respawn_list
name = "Ghost spawns"
icon = 'icons/mob/screen_midnight.dmi'
icon_state = "template"
/obj/screen/ghost/respawn_list/Initialize(mapload)
/atom/movable/screen/ghost/respawn_list/Initialize(mapload)
. = ..()
update_hidden_state()
/obj/screen/ghost/respawn_list/Click()
/atom/movable/screen/ghost/respawn_list/Click()
var/client/C = hud.mymob.client
hud.inventory_shown = !hud.inventory_shown
if(hud.inventory_shown)
@@ -52,7 +52,7 @@
C.screen -= hud.toggleable_inventory
update_hidden_state()
/obj/screen/ghost/respawn_list/proc/update_hidden_state()
/atom/movable/screen/ghost/respawn_list/proc/update_hidden_state()
var/matrix/M = matrix(transform)
M.Turn(-90)
@@ -61,19 +61,19 @@
img.transform = M
overlays += img
/obj/screen/ghost/respawn_mob
/atom/movable/screen/ghost/respawn_mob
name = "Mob spawners"
icon_state = "mob_spawner"
/obj/screen/ghost/respawn_mob/Click()
/atom/movable/screen/ghost/respawn_mob/Click()
var/mob/dead/observer/G = usr
G.open_spawners_menu()
/obj/screen/ghost/respawn_pai
/atom/movable/screen/ghost/respawn_pai
name = "Configure pAI"
icon_state = "pai"
/obj/screen/ghost/respawn_pai/Click()
/atom/movable/screen/ghost/respawn_pai/Click()
var/mob/dead/observer/G = usr
if(!GLOB.paiController.check_recruit(G))
to_chat(G, "<span class='warning'>You are not eligible to become a pAI.</span>")
@@ -85,34 +85,34 @@
/datum/hud/ghost/New(mob/owner)
..()
var/obj/screen/using
var/atom/movable/screen/using
using = new /obj/screen/ghost/orbit()
using = new /atom/movable/screen/ghost/orbit()
using.screen_loc = ui_ghost_orbit
static_inventory += using
using = new /obj/screen/ghost/reenter_corpse()
using = new /atom/movable/screen/ghost/reenter_corpse()
using.screen_loc = ui_ghost_reenter_corpse
static_inventory += using
using = new /obj/screen/ghost/teleport()
using = new /atom/movable/screen/ghost/teleport()
using.screen_loc = ui_ghost_teleport
static_inventory += using
static_inventory += using
using = new /obj/screen/ghost/respawn_list()
using = new /atom/movable/screen/ghost/respawn_list()
using.screen_loc = ui_ghost_respawn_list
static_inventory += using
using = new /obj/screen/ghost/respawn_mob()
using = new /atom/movable/screen/ghost/respawn_mob()
using.screen_loc = ui_ghost_respawn_mob
toggleable_inventory += using
using = new /obj/screen/ghost/respawn_pai()
using = new /atom/movable/screen/ghost/respawn_pai()
using.screen_loc = ui_ghost_respawn_pai
toggleable_inventory += using
for(var/obj/screen/S in (static_inventory + toggleable_inventory))
for(var/atom/movable/screen/S in (static_inventory + toggleable_inventory))
S.hud = src
/datum/hud/ghost/show_hud()
+19 -19
View File
@@ -4,49 +4,49 @@
/datum/hud/guardian/New(mob/owner)
..()
var/obj/screen/using
var/atom/movable/screen/using
guardianhealthdisplay = new /obj/screen/healths/guardian()
guardianhealthdisplay = new /atom/movable/screen/healths/guardian()
infodisplay += guardianhealthdisplay
using = new /obj/screen/act_intent/guardian()
using = new /atom/movable/screen/act_intent/guardian()
using.icon_state = mymob.a_intent
static_inventory += using
action_intent = using
using = new /obj/screen/guardian/Manifest()
using = new /atom/movable/screen/guardian/Manifest()
using.screen_loc = ui_rhand
static_inventory += using
using = new /obj/screen/guardian/Recall()
using = new /atom/movable/screen/guardian/Recall()
using.screen_loc = ui_lhand
static_inventory += using
using = new /obj/screen/guardian/ToggleMode()
using = new /atom/movable/screen/guardian/ToggleMode()
using.screen_loc = ui_storage1
static_inventory += using
using = new /obj/screen/guardian/ToggleLight()
using = new /atom/movable/screen/guardian/ToggleLight()
using.screen_loc = ui_inventory
static_inventory += using
using = new /obj/screen/guardian/Communicate()
using = new /atom/movable/screen/guardian/Communicate()
using.screen_loc = ui_back
static_inventory += using
//HUD BUTTONS
/obj/screen/guardian
/atom/movable/screen/guardian
icon = 'icons/mob/guardian.dmi'
icon_state = "base"
/obj/screen/guardian/Manifest
/atom/movable/screen/guardian/Manifest
icon_state = "manifest"
name = "Manifest"
desc = "Spring forth into battle!"
/obj/screen/guardian/Manifest/Click()
/atom/movable/screen/guardian/Manifest/Click()
if(isguardian(usr))
var/mob/living/simple_animal/hostile/guardian/G = usr
var/summoner_loc = G.summoner.loc
@@ -59,43 +59,43 @@
if(G.loc == G.summoner)
G.Manifest()
/obj/screen/guardian/Recall
/atom/movable/screen/guardian/Recall
icon_state = "recall"
name = "Recall"
desc = "Return to your user."
/obj/screen/guardian/Recall/Click()
/atom/movable/screen/guardian/Recall/Click()
if(isguardian(usr))
var/mob/living/simple_animal/hostile/guardian/G = usr
G.Recall()
/obj/screen/guardian/ToggleMode
/atom/movable/screen/guardian/ToggleMode
icon_state = "toggle"
name = "Toggle Mode"
desc = "Switch between ability modes."
/obj/screen/guardian/ToggleMode/Click()
/atom/movable/screen/guardian/ToggleMode/Click()
if(isguardian(usr))
var/mob/living/simple_animal/hostile/guardian/G = usr
G.ToggleMode()
/obj/screen/guardian/Communicate
/atom/movable/screen/guardian/Communicate
icon_state = "communicate"
name = "Communicate"
desc = "Communicate telepathically with your user."
/obj/screen/guardian/Communicate/Click()
/atom/movable/screen/guardian/Communicate/Click()
if(isguardian(usr))
var/mob/living/simple_animal/hostile/guardian/G = usr
G.Communicate()
/obj/screen/guardian/ToggleLight
/atom/movable/screen/guardian/ToggleLight
icon_state = "light"
name = "Toggle Light"
desc = "Glow like star dust."
/obj/screen/guardian/ToggleLight/Click()
/atom/movable/screen/guardian/ToggleLight/Click()
if(isguardian(usr))
var/mob/living/simple_animal/hostile/guardian/G = usr
G.ToggleLight()
+20 -20
View File
@@ -12,36 +12,36 @@
var/inventory_shown = TRUE //the inventory
var/hotkey_ui_hidden = FALSE //This is to hide the buttons that can be used via hotkeys. (hotkeybuttons list of buttons)
var/obj/screen/lingchemdisplay
var/obj/screen/lingstingdisplay
var/atom/movable/screen/lingchemdisplay
var/atom/movable/screen/lingstingdisplay
var/obj/screen/guardianhealthdisplay
var/atom/movable/screen/guardianhealthdisplay
var/obj/screen/blobpwrdisplay
var/obj/screen/blobhealthdisplay
var/obj/screen/vampire_blood_display
var/obj/screen/alien_plasma_display
var/obj/screen/nightvisionicon
var/obj/screen/action_intent
var/obj/screen/zone_select
var/obj/screen/move_intent
var/obj/screen/module_store_icon
var/obj/screen/combo/combo_display
var/atom/movable/screen/blobpwrdisplay
var/atom/movable/screen/blobhealthdisplay
var/atom/movable/screen/vampire_blood_display
var/atom/movable/screen/alien_plasma_display
var/atom/movable/screen/nightvisionicon
var/atom/movable/screen/action_intent
var/atom/movable/screen/zone_select
var/atom/movable/screen/move_intent
var/atom/movable/screen/module_store_icon
var/atom/movable/screen/combo/combo_display
var/list/static_inventory = list() //the screen objects which are static
var/list/toggleable_inventory = list() //the screen objects which can be hidden
var/list/hotkeybuttons = list() //the buttons that can be used via hotkeys
var/list/infodisplay = list() //the screen objects that display mob info (health, alien plasma, etc...)
var/list/inv_slots[SLOT_HUD_AMOUNT] // /obj/screen/inventory objects, ordered by their slot ID.
var/list/inv_slots[SLOT_HUD_AMOUNT] // /atom/movable/screen/inventory objects, ordered by their slot ID.
var/obj/screen/movable/action_button/hide_toggle/hide_actions_toggle
var/atom/movable/screen/movable/action_button/hide_toggle/hide_actions_toggle
var/action_buttons_hidden = FALSE
var/list/obj/screen/plane_master/plane_masters = list() // see "appearance_flags" in the ref, assoc list of "[plane]" = object
var/list/atom/movable/screen/plane_master/plane_masters = list() // see "appearance_flags" in the ref, assoc list of "[plane]" = object
///Assoc list of controller groups, associated with key string group name with value of the plane master controller ref
var/list/atom/movable/plane_master_controller/plane_master_controllers = list()
///UI for screentips that appear when you mouse over things
var/obj/screen/screentip/screentip_text
var/atom/movable/screen/screentip/screentip_text
/mob/proc/create_mob_hud()
if(client && !hud_used)
@@ -53,8 +53,8 @@
hide_actions_toggle = new
hide_actions_toggle.InitialiseIcon(mymob)
for(var/mytype in subtypesof(/obj/screen/plane_master))
var/obj/screen/plane_master/instance = new mytype()
for(var/mytype in subtypesof(/atom/movable/screen/plane_master))
var/atom/movable/screen/plane_master/instance = new mytype()
plane_masters["[instance.plane]"] = instance
instance.backdrop(mymob)
@@ -181,7 +181,7 @@
/datum/hud/proc/plane_masters_update()
// Plane masters are always shown to OUR mob, never to observers
for(var/thing in plane_masters)
var/obj/screen/plane_master/PM = plane_masters[thing]
var/atom/movable/screen/plane_master/PM = plane_masters[thing]
PM.backdrop(mymob)
mymob.client.screen += PM
+49 -49
View File
@@ -1,11 +1,11 @@
/obj/screen/human
/atom/movable/screen/human
icon = 'icons/mob/screen_midnight.dmi'
/obj/screen/human/toggle
/atom/movable/screen/human/toggle
name = "toggle"
icon_state = "toggle"
/obj/screen/human/toggle/Click()
/atom/movable/screen/human/toggle/Click()
if(usr.hud_used.inventory_shown)
usr.hud_used.inventory_shown = FALSE
usr.client.screen -= usr.hud_used.toggleable_inventory
@@ -15,28 +15,28 @@
usr.hud_used.hidden_inventory_update()
/obj/screen/human/equip
/atom/movable/screen/human/equip
name = "equip"
icon_state = "act_equip"
/obj/screen/human/equip/Click()
/atom/movable/screen/human/equip/Click()
if(ismecha(usr.loc)) // stops inventory actions in a mech
return 1
var/mob/living/carbon/human/H = usr
H.quick_equip()
/obj/screen/ling
/atom/movable/screen/ling
invisibility = INVISIBILITY_ABSTRACT
/obj/screen/ling/sting
/atom/movable/screen/ling/sting
name = "current sting"
screen_loc = ui_lingstingdisplay
/obj/screen/ling/sting/Click()
/atom/movable/screen/ling/sting/Click()
var/datum/antagonist/changeling/cling = usr.mind.has_antag_datum(/datum/antagonist/changeling)
cling?.chosen_sting?.unset_sting()
/obj/screen/ling/chems
/atom/movable/screen/ling/chems
name = "chemical storage"
icon_state = "power_display"
screen_loc = ui_lingchemdisplay
@@ -58,32 +58,32 @@
/datum/hud/human/New(mob/living/carbon/human/owner, ui_style = 'icons/mob/screen_white.dmi', ui_color = "#ffffff", ui_alpha = 255)
..()
owner.overlay_fullscreen("see_through_darkness", /obj/screen/fullscreen/see_through_darkness)
owner.overlay_fullscreen("see_through_darkness", /atom/movable/screen/fullscreen/see_through_darkness)
var/obj/screen/using
var/obj/screen/inventory/inv_box
var/atom/movable/screen/using
var/atom/movable/screen/inventory/inv_box
hud_alpha = ui_alpha
using = new /obj/screen/craft
using = new /atom/movable/screen/craft
using.icon = ui_style
using.color = ui_color
using.alpha = ui_alpha
static_inventory += using
using = new /obj/screen/language_menu
using = new /atom/movable/screen/language_menu
using.icon = ui_style
using.color = ui_color
using.alpha = ui_alpha
static_inventory += using
using = new /obj/screen/act_intent()
using = new /atom/movable/screen/act_intent()
using.icon_state = mymob.a_intent
using.alpha = ui_alpha
static_inventory += using
action_intent = using
using = new /obj/screen/mov_intent()
using = new /atom/movable/screen/mov_intent()
using.icon = ui_style
using.icon_state = (mymob.m_intent == MOVE_INTENT_RUN ? "running" : "walking")
using.screen_loc = ui_movi
@@ -92,14 +92,14 @@
static_inventory += using
move_intent = using
using = new /obj/screen/drop()
using = new /atom/movable/screen/drop()
using.icon = ui_style
using.screen_loc = ui_drop_throw
using.color = ui_color
using.alpha = ui_alpha
static_inventory += using
inv_box = new /obj/screen/inventory()
inv_box = new /atom/movable/screen/inventory()
inv_box.name = "i_clothing"
inv_box.icon = ui_style
inv_box.slot_id = SLOT_HUD_JUMPSUIT
@@ -109,7 +109,7 @@
inv_box.alpha = ui_alpha
toggleable_inventory += inv_box
inv_box = new /obj/screen/inventory()
inv_box = new /atom/movable/screen/inventory()
inv_box.name = "o_clothing"
inv_box.icon = ui_style
inv_box.slot_id = SLOT_HUD_OUTER_SUIT
@@ -119,7 +119,7 @@
inv_box.alpha = ui_alpha
toggleable_inventory += inv_box
inv_box = new /obj/screen/inventory/hand()
inv_box = new /atom/movable/screen/inventory/hand()
inv_box.name = "r_hand"
inv_box.icon = ui_style
inv_box.icon_state = "hand_r"
@@ -129,7 +129,7 @@
inv_box.slot_id = SLOT_HUD_RIGHT_HAND
static_inventory += inv_box
inv_box = new /obj/screen/inventory/hand()
inv_box = new /atom/movable/screen/inventory/hand()
inv_box.name = "l_hand"
inv_box.icon = ui_style
inv_box.icon_state = "hand_l"
@@ -139,7 +139,7 @@
inv_box.slot_id = SLOT_HUD_LEFT_HAND
static_inventory += inv_box
using = new /obj/screen/swap_hand()
using = new /atom/movable/screen/swap_hand()
using.name = "hand"
using.icon = ui_style
using.icon_state = "swap_1"
@@ -148,7 +148,7 @@
using.alpha = ui_alpha
static_inventory += using
using = new /obj/screen/swap_hand()
using = new /atom/movable/screen/swap_hand()
using.name = "hand"
using.icon = ui_style
using.icon_state = "swap_2"
@@ -157,7 +157,7 @@
using.alpha = ui_alpha
static_inventory += using
inv_box = new /obj/screen/inventory()
inv_box = new /atom/movable/screen/inventory()
inv_box.name = "id"
inv_box.icon = ui_style
inv_box.icon_state = "id"
@@ -167,7 +167,7 @@
inv_box.alpha = ui_alpha
static_inventory += inv_box
inv_box = new /obj/screen/inventory()
inv_box = new /atom/movable/screen/inventory()
inv_box.name = "pda"
inv_box.icon = ui_style
inv_box.icon_state = "pda"
@@ -177,7 +177,7 @@
inv_box.alpha = ui_alpha
static_inventory += inv_box
inv_box = new /obj/screen/inventory()
inv_box = new /atom/movable/screen/inventory()
inv_box.name = "mask"
inv_box.icon = ui_style
inv_box.icon_state = "mask"
@@ -187,7 +187,7 @@
inv_box.alpha = ui_alpha
toggleable_inventory += inv_box
inv_box = new /obj/screen/inventory()
inv_box = new /atom/movable/screen/inventory()
inv_box.name = "back"
inv_box.icon = ui_style
inv_box.icon_state = "back"
@@ -197,7 +197,7 @@
inv_box.alpha = ui_alpha
static_inventory += inv_box
inv_box = new /obj/screen/inventory()
inv_box = new /atom/movable/screen/inventory()
inv_box.name = "storage1"
inv_box.icon = ui_style
inv_box.icon_state = "pocket"
@@ -207,7 +207,7 @@
inv_box.alpha = ui_alpha
static_inventory += inv_box
inv_box = new /obj/screen/inventory()
inv_box = new /atom/movable/screen/inventory()
inv_box.name = "storage2"
inv_box.icon = ui_style
inv_box.icon_state = "pocket"
@@ -217,7 +217,7 @@
inv_box.alpha = ui_alpha
static_inventory += inv_box
inv_box = new /obj/screen/inventory()
inv_box = new /atom/movable/screen/inventory()
inv_box.name = "suit storage"
inv_box.icon = ui_style
inv_box.icon_state = "suit_storage"
@@ -227,28 +227,28 @@
inv_box.slot_id = SLOT_HUD_SUIT_STORE
static_inventory += inv_box
using = new /obj/screen/resist()
using = new /atom/movable/screen/resist()
using.icon = ui_style
using.color = ui_color
using.alpha = ui_alpha
using.screen_loc = ui_pull_resist
hotkeybuttons += using
using = new /obj/screen/human/toggle()
using = new /atom/movable/screen/human/toggle()
using.icon = ui_style
using.color = ui_color
using.alpha = ui_alpha
using.screen_loc = ui_inventory
static_inventory += using
using = new /obj/screen/human/equip()
using = new /atom/movable/screen/human/equip()
using.icon = ui_style
using.color = ui_color
using.alpha = ui_alpha
using.screen_loc = ui_equip
static_inventory += using
inv_box = new /obj/screen/inventory()
inv_box = new /atom/movable/screen/inventory()
inv_box.name = "gloves"
inv_box.icon = ui_style
inv_box.icon_state = "gloves"
@@ -258,7 +258,7 @@
inv_box.alpha = ui_alpha
toggleable_inventory += inv_box
inv_box = new /obj/screen/inventory()
inv_box = new /atom/movable/screen/inventory()
inv_box.name = "eyes"
inv_box.icon = ui_style
inv_box.icon_state = "glasses"
@@ -268,7 +268,7 @@
inv_box.alpha = ui_alpha
toggleable_inventory += inv_box
inv_box = new /obj/screen/inventory()
inv_box = new /atom/movable/screen/inventory()
inv_box.name = "l_ear"
inv_box.icon = ui_style
inv_box.icon_state = "ears"
@@ -278,7 +278,7 @@
inv_box.alpha = ui_alpha
toggleable_inventory += inv_box
inv_box = new /obj/screen/inventory()
inv_box = new /atom/movable/screen/inventory()
inv_box.name = "r_ear"
inv_box.icon = ui_style
inv_box.icon_state = "ears"
@@ -288,7 +288,7 @@
inv_box.alpha = ui_alpha
toggleable_inventory += inv_box
inv_box = new /obj/screen/inventory()
inv_box = new /atom/movable/screen/inventory()
inv_box.name = "head"
inv_box.icon = ui_style
inv_box.icon_state = "head"
@@ -298,7 +298,7 @@
inv_box.alpha = ui_alpha
toggleable_inventory += inv_box
inv_box = new /obj/screen/inventory()
inv_box = new /atom/movable/screen/inventory()
inv_box.name = "shoes"
inv_box.icon = ui_style
inv_box.icon_state = "shoes"
@@ -308,7 +308,7 @@
inv_box.alpha = ui_alpha
toggleable_inventory += inv_box
inv_box = new /obj/screen/inventory()
inv_box = new /atom/movable/screen/inventory()
inv_box.name = "belt"
inv_box.icon = ui_style
inv_box.icon_state = "belt"
@@ -318,33 +318,33 @@
inv_box.alpha = ui_alpha
static_inventory += inv_box
mymob.throw_icon = new /obj/screen/throw_catch()
mymob.throw_icon = new /atom/movable/screen/throw_catch()
mymob.throw_icon.icon = ui_style
mymob.throw_icon.screen_loc = ui_drop_throw
mymob.throw_icon.color = ui_color
mymob.throw_icon.alpha = ui_alpha
hotkeybuttons += mymob.throw_icon
mymob.healths = new /obj/screen/healths()
mymob.healths = new /atom/movable/screen/healths()
infodisplay += mymob.healths
mymob.healthdoll = new()
infodisplay += mymob.healthdoll
mymob.pullin = new /obj/screen/pull()
mymob.pullin = new /atom/movable/screen/pull()
mymob.pullin.icon = ui_style
mymob.pullin.hud = src
mymob.pullin.update_icon(UPDATE_ICON_STATE)
mymob.pullin.screen_loc = ui_pull_resist
static_inventory += mymob.pullin
lingchemdisplay = new /obj/screen/ling/chems()
lingchemdisplay = new /atom/movable/screen/ling/chems()
infodisplay += lingchemdisplay
lingstingdisplay = new /obj/screen/ling/sting()
lingstingdisplay = new /atom/movable/screen/ling/sting()
infodisplay += lingstingdisplay
zone_select = new /obj/screen/zone_sel()
zone_select = new /atom/movable/screen/zone_sel()
zone_select.color = ui_color
zone_select.icon = ui_style
zone_select.alpha = ui_alpha
@@ -357,7 +357,7 @@
combo_display = new()
infodisplay += combo_display
for(var/obj/screen/inventory/inv in (static_inventory + toggleable_inventory))
for(var/atom/movable/screen/inventory/inv in (static_inventory + toggleable_inventory))
if(inv.slot_id)
inv.hud = src
inv_slots[inv.slot_id] = inv
@@ -372,13 +372,13 @@
if(!istype(H) || !H.dna.species)
return
var/datum/species/S = H.dna.species
for(var/obj/screen/inventory/inv in (static_inventory + toggleable_inventory))
for(var/atom/movable/screen/inventory/inv in (static_inventory + toggleable_inventory))
if(inv.slot_id)
if(inv.slot_id in S.no_equip)
inv.alpha = hud_alpha / 2
else
inv.alpha = hud_alpha
for(var/obj/screen/craft/crafting in static_inventory)
for(var/atom/movable/screen/craft/crafting in static_inventory)
if(!S.can_craft)
crafting.invisibility = INVISIBILITY_ABSTRACT
H.handcrafting?.close(H)
+8 -23
View File
@@ -3,30 +3,15 @@
* Assoc list with all the active maps - when a screen obj is added to
* a map, it's put in here as well.
*
* Format: list(<mapname> = list(/obj/screen))
* Format: list(<mapname> = list(/atom/movable/screen))
*/
var/list/screen_maps = list()
/obj/screen
/**
* Map name assigned to this object.
* Automatically set by /client/proc/add_obj_to_map.
*/
var/assigned_map
/**
* Mark this object as garbage-collectible after you clean the map
* it was registered on.
*
* This could probably be changed to be a proc, for conditional removal.
* But for now, this works.
*/
var/del_on_map_removal = TRUE
/**
* A screen object, which acts as a container for turfs and other things
* you want to show on the map, which you usually attach to "vis_contents".
*/
/obj/screen/map_view
/atom/movable/screen/map_view
// Map view has to be on the lowest plane to enable proper lighting
layer = GAME_PLANE
plane = GAME_PLANE
@@ -36,7 +21,7 @@
* It is also implicitly used to allocate a rectangle on the map, which will
* be used for auto-scaling the map.
*/
/obj/screen/background
/atom/movable/screen/background
name = "background"
icon = 'icons/mob/map_backgrounds.dmi'
icon_state = "clear"
@@ -49,7 +34,7 @@
*
* If applicable, "assigned_map" has to be assigned before this proc call.
*/
/obj/screen/proc/set_position(x, y, px = 0, py = 0)
/atom/movable/screen/proc/set_position(x, y, px = 0, py = 0)
if(assigned_map)
screen_loc = "[assigned_map]:[x]:[px],[y]:[py]"
else
@@ -60,7 +45,7 @@
*
* If applicable, "assigned_map" has to be assigned before this proc call.
*/
/obj/screen/proc/fill_rect(x1, y1, x2, y2)
/atom/movable/screen/proc/fill_rect(x1, y1, x2, y2)
if(assigned_map)
screen_loc = "[assigned_map]:[x1],[y1] to [x2],[y2]"
else
@@ -70,7 +55,7 @@
* Registers screen obj with the client, which makes it visible on the
* assigned map, and becomes a part of the assigned map's lifecycle.
*/
/client/proc/register_map_obj(obj/screen/screen_obj)
/client/proc/register_map_obj(atom/movable/screen/screen_obj)
if(!screen_obj.assigned_map)
CRASH("Can't register [screen_obj] without 'assigned_map' property.")
if(!screen_maps[screen_obj.assigned_map])
@@ -92,7 +77,7 @@
/client/proc/clear_map(map_name)
if(!map_name || !(map_name in screen_maps))
return FALSE
for(var/obj/screen/screen_obj in screen_maps[map_name])
for(var/atom/movable/screen/screen_obj in screen_maps[map_name])
screen_maps[map_name] -= screen_obj
if(screen_obj.del_on_map_removal)
qdel(screen_obj)
@@ -146,7 +131,7 @@
var/y_value = world.icon_size * tilesize * height
var/map_name = create_popup(popup_name, x_value, y_value)
var/obj/screen/background/background = new
var/atom/movable/screen/background/background = new
background.assigned_map = map_name
background.fill_rect(1, 1, width, height)
if(bg_icon)
+5 -5
View File
@@ -8,7 +8,7 @@
//Movable Screen Object
//Not tied to the grid, places it's center where the cursor is
/obj/screen/movable
/atom/movable/screen/movable
var/snap2grid = FALSE
var/moved = FALSE
var/locked = TRUE
@@ -18,10 +18,10 @@
//Snap Screen Object
//Tied to the grid, snaps to the nearest turf
/obj/screen/movable/snap
/atom/movable/screen/movable/snap
snap2grid = TRUE
/obj/screen/movable/MouseDrop(over_object, src_location, over_location, src_control, over_control, params)
/atom/movable/screen/movable/MouseDrop(over_object, src_location, over_location, src_control, over_control, params)
if(locked) //no! I am locked! begone!
return
@@ -55,7 +55,7 @@
set category = "Debug"
set name = "Spawn Movable UI Object"
var/obj/screen/movable/M = new()
var/atom/movable/screen/movable/M = new()
M.name = "Movable UI Object"
M.icon_state = "block"
M.maptext = "Movable"
@@ -73,7 +73,7 @@
set category = "Debug"
set name = "Spawn Snap UI Object"
var/obj/screen/movable/snap/S = new()
var/atom/movable/screen/movable/snap/S = new()
S.name = "Snap UI Object"
S.icon_state = "block"
S.maptext = "Snap"
+5 -5
View File
@@ -4,11 +4,11 @@
/datum/hud/simple_animal/New(mob/user)
..()
mymob.healths = new /obj/screen/healths()
mymob.healths = new /atom/movable/screen/healths()
infodisplay += mymob.healths
var/obj/screen/using
using = new /obj/screen/act_intent/simple_animal()
var/atom/movable/screen/using
using = new /atom/movable/screen/act_intent/simple_animal()
using.icon_state = mymob.a_intent
static_inventory += using
action_intent = using
@@ -21,10 +21,10 @@
/datum/hud/corgi/New(mob/user)
..()
mymob.healths = new /obj/screen/healths/corgi()
mymob.healths = new /atom/movable/screen/healths/corgi()
infodisplay += mymob.healths
mymob.pullin = new /obj/screen/pull()
mymob.pullin = new /atom/movable/screen/pull()
mymob.pullin.icon = 'icons/mob/screen_corgi.dmi'
mymob.pullin.hud = src
mymob.pullin.update_icon(UPDATE_ICON_STATE)
+29 -29
View File
@@ -1,7 +1,7 @@
/client
var/list/parallax_layers
var/list/parallax_layers_cached
var/static/list/parallax_static_layers_tail = newlist(/obj/screen/parallax_pmaster, /obj/screen/parallax_space_whitifier)
var/static/list/parallax_static_layers_tail = newlist(/atom/movable/screen/parallax_pmaster, /atom/movable/screen/parallax_space_whitifier)
var/atom/movable/movingmob
var/turf/previous_turf
var/dont_animate_parallax //world.time of when we can state animate()ing parallax again
@@ -16,7 +16,7 @@
if(!apply_parallax_pref())
return
// this is needed so it blends properly with the space plane and blackness plane.
var/obj/screen/plane_master/space/S = plane_masters["[PLANE_SPACE]"]
var/atom/movable/screen/plane_master/space/S = plane_masters["[PLANE_SPACE]"]
if(C.prefs.toggles2 & PREFTOGGLE_2_PARALLAX_IN_DARKNESS)
S.color = rgb(0, 0, 0, 0)
else
@@ -27,16 +27,16 @@
S.appearance_flags |= NO_CLIENT_COLOR
if(!length(C.parallax_layers_cached))
C.parallax_layers_cached = list()
C.parallax_layers_cached += new /obj/screen/parallax_layer/layer_1(null, C.view)
C.parallax_layers_cached += new /obj/screen/parallax_layer/layer_2(null, C.view)
C.parallax_layers_cached += new /obj/screen/parallax_layer/planet(null, C.view)
C.parallax_layers_cached += new /atom/movable/screen/parallax_layer/layer_1(null, C.view)
C.parallax_layers_cached += new /atom/movable/screen/parallax_layer/layer_2(null, C.view)
C.parallax_layers_cached += new /atom/movable/screen/parallax_layer/planet(null, C.view)
if(SSparallax.random_layer)
C.parallax_layers_cached += new SSparallax.random_layer
C.parallax_layers_cached += new /obj/screen/parallax_layer/layer_3(null, C.view)
C.parallax_layers_cached += new /atom/movable/screen/parallax_layer/layer_3(null, C.view)
C.parallax_layers = C.parallax_layers_cached.Copy()
var/obj/screen/plane_master/parallax/parallax_plane_master = plane_masters["[PLANE_SPACE_PARALLAX]"]
var/atom/movable/screen/plane_master/parallax/parallax_plane_master = plane_masters["[PLANE_SPACE_PARALLAX]"]
if(C.prefs.toggles2 & PREFTOGGLE_2_PARALLAX_IN_DARKNESS)
parallax_plane_master.blend_mode = BLEND_ADD
else
@@ -51,7 +51,7 @@
var/client/C = mymob.client
C.screen -= (C.parallax_layers_cached + C.parallax_static_layers_tail)
C.parallax_layers = null
var/obj/screen/plane_master/space/S = plane_masters["[PLANE_SPACE]"]
var/atom/movable/screen/plane_master/space/S = plane_masters["[PLANE_SPACE]"]
S.color = null
S.appearance_flags &= ~NO_CLIENT_COLOR
@@ -101,7 +101,7 @@
if(!new_parallax_movedir)
var/animate_time = 0
for(var/thing in C.parallax_layers)
var/obj/screen/parallax_layer/L = thing
var/atom/movable/screen/parallax_layer/L = thing
L.icon_state = initial(L.icon_state)
L.update_o(C.view)
var/T = PARALLAX_LOOP_TIME / L.speed
@@ -123,7 +123,7 @@
var/shortesttimer
for(var/thing in C.parallax_layers)
var/obj/screen/parallax_layer/L = thing
var/atom/movable/screen/parallax_layer/L = thing
var/T = PARALLAX_LOOP_TIME / L.speed
if(isnull(shortesttimer))
@@ -148,7 +148,7 @@
/datum/hud/proc/update_parallax_motionblur(client/C, animatedir, new_parallax_movedir, matrix/newtransform)
C.parallax_animate_timer = FALSE
for(var/thing in C.parallax_layers)
var/obj/screen/parallax_layer/L = thing
var/atom/movable/screen/parallax_layer/L = thing
if(!new_parallax_movedir)
animate(L)
continue
@@ -206,7 +206,7 @@
C.last_parallax_shift = world.time
for(var/thing in C.parallax_layers)
var/obj/screen/parallax_layer/L = thing
var/atom/movable/screen/parallax_layer/L = thing
L.update_status(mymob)
if(L.view_sized != C.view)
L.update_o(C.view)
@@ -236,7 +236,7 @@
if(M && M.client && M.hud_used && length(M.client.parallax_layers))
M.hud_used.update_parallax()
/obj/screen/parallax_layer
/atom/movable/screen/parallax_layer
icon = 'icons/effects/parallax.dmi'
var/speed = 1
var/offset_x = 0
@@ -249,13 +249,13 @@
mouse_opacity = 0
/obj/screen/parallax_layer/New(view)
/atom/movable/screen/parallax_layer/New(view)
..()
if(!view)
view = world.view
update_o(view)
/obj/screen/parallax_layer/proc/update_o(view)
/atom/movable/screen/parallax_layer/proc/update_o(view)
if(!view)
view = world.view
@@ -278,70 +278,70 @@
// Cache this
view_sized = view
/obj/screen/parallax_layer/proc/update_status(mob/M)
/atom/movable/screen/parallax_layer/proc/update_status(mob/M)
return
/obj/screen/parallax_layer/layer_1
/atom/movable/screen/parallax_layer/layer_1
icon_state = "layer1"
speed = 0.6
layer = 1
/obj/screen/parallax_layer/layer_2
/atom/movable/screen/parallax_layer/layer_2
icon_state = "layer2"
speed = 1
layer = 2
/obj/screen/parallax_layer/layer_3
/atom/movable/screen/parallax_layer/layer_3
icon_state = "layer3"
speed = 1.4
layer = 3
/obj/screen/parallax_layer/random
/atom/movable/screen/parallax_layer/random
blend_mode = BLEND_OVERLAY
speed = 3
layer = 3
/obj/screen/parallax_layer/random/space_gas
/atom/movable/screen/parallax_layer/random/space_gas
icon_state = "space_gas"
/obj/screen/parallax_layer/random/space_gas/New(view)
/atom/movable/screen/parallax_layer/random/space_gas/New(view)
..()
add_atom_colour(SSparallax.random_parallax_color, ADMIN_COLOUR_PRIORITY)
/obj/screen/parallax_layer/random/asteroids
/atom/movable/screen/parallax_layer/random/asteroids
icon_state = "asteroids"
layer = 4
/obj/screen/parallax_layer/planet
/atom/movable/screen/parallax_layer/planet
icon_state = "planet_lava"
blend_mode = BLEND_OVERLAY
absolute = TRUE //Status of seperation
speed = 3
layer = 30
/obj/screen/parallax_layer/planet/Initialize(mapload)
/atom/movable/screen/parallax_layer/planet/Initialize(mapload)
. = ..()
if(SSmapping.lavaland_theme?.planet_icon_state)
icon_state = SSmapping.lavaland_theme.planet_icon_state
/obj/screen/parallax_layer/planet/update_status(mob/M)
/atom/movable/screen/parallax_layer/planet/update_status(mob/M)
var/turf/T = get_turf(M)
if(is_station_level(T.z))
invisibility = 0
else
invisibility = INVISIBILITY_ABSTRACT
/obj/screen/parallax_layer/planet/update_o()
/atom/movable/screen/parallax_layer/planet/update_o()
return //Shit wont move
/obj/screen/parallax_pmaster
/atom/movable/screen/parallax_pmaster
appearance_flags = PLANE_MASTER
plane = PLANE_SPACE_PARALLAX
blend_mode = BLEND_MULTIPLY
mouse_opacity = FALSE
screen_loc = "CENTER-7,CENTER-7"
/obj/screen/parallax_space_whitifier
/atom/movable/screen/parallax_space_whitifier
appearance_flags = PLANE_MASTER
plane = PLANE_SPACE
color = list(
+18 -18
View File
@@ -1,4 +1,4 @@
/obj/screen/movable/pic_in_pic
/atom/movable/screen/movable/pic_in_pic
name = "Picture-in-picture"
screen_loc = "CENTER"
plane = FLOOR_PLANE
@@ -7,18 +7,18 @@
var/height = 0
var/list/shown_to = list()
var/list/viewing_turfs = list()
var/obj/screen/component_button/button_x
var/obj/screen/component_button/button_expand
var/obj/screen/component_button/button_shrink
var/atom/movable/screen/component_button/button_x
var/atom/movable/screen/component_button/button_expand
var/atom/movable/screen/component_button/button_shrink
var/mutable_appearance/standard_background
var/const/max_dimensions = 10
/obj/screen/movable/pic_in_pic/Initialize()
/atom/movable/screen/movable/pic_in_pic/Initialize()
. = ..()
make_backgrounds()
/obj/screen/movable/pic_in_pic/Destroy()
/atom/movable/screen/movable/pic_in_pic/Destroy()
for(var/C in shown_to)
unshow_to(C)
QDEL_NULL(button_x)
@@ -26,7 +26,7 @@
QDEL_NULL(button_expand)
return ..()
/obj/screen/movable/pic_in_pic/component_click(obj/screen/component_button/component, params)
/atom/movable/screen/movable/pic_in_pic/component_click(atom/movable/screen/component_button/component, params)
if(component == button_x)
qdel(src)
else if(component == button_expand)
@@ -34,13 +34,13 @@
else if(component == button_shrink)
set_view_size(width-1, height-1)
/obj/screen/movable/pic_in_pic/proc/make_backgrounds()
/atom/movable/screen/movable/pic_in_pic/proc/make_backgrounds()
standard_background = new /mutable_appearance()
standard_background.icon = 'icons/misc/pic_in_pic.dmi'
standard_background.icon_state = "background"
standard_background.layer = SPACE_LAYER
/obj/screen/movable/pic_in_pic/proc/add_buttons()
/atom/movable/screen/movable/pic_in_pic/proc/add_buttons()
var/static/mutable_appearance/move_tab
if(!move_tab)
move_tab = new /mutable_appearance()
@@ -55,7 +55,7 @@
overlays += move_tab
if(!button_x)
button_x = new /obj/screen/component_button(null, src)
button_x = new /atom/movable/screen/component_button(null, src)
var/mutable_appearance/MA = new /mutable_appearance()
MA.name = "close"
MA.icon = 'icons/misc/pic_in_pic.dmi'
@@ -68,7 +68,7 @@
vis_contents += button_x
if(!button_expand)
button_expand = new /obj/screen/component_button(null, src)
button_expand = new /atom/movable/screen/component_button(null, src)
var/mutable_appearance/MA = new /mutable_appearance()
MA.name = "expand"
MA.icon = 'icons/misc/pic_in_pic.dmi'
@@ -81,7 +81,7 @@
vis_contents += button_expand
if(!button_shrink)
button_shrink = new /obj/screen/component_button(null, src)
button_shrink = new /atom/movable/screen/component_button(null, src)
var/mutable_appearance/MA = new /mutable_appearance()
MA.name = "shrink"
MA.icon = 'icons/misc/pic_in_pic.dmi'
@@ -93,7 +93,7 @@
button_shrink.transform = M
vis_contents += button_shrink
/obj/screen/movable/pic_in_pic/proc/add_background()
/atom/movable/screen/movable/pic_in_pic/proc/add_background()
if((width > 0) && (height > 0))
var/matrix/M = matrix()
M.Scale(width + 0.5, height + 0.5)
@@ -101,7 +101,7 @@
standard_background.transform = M
overlays += standard_background
/obj/screen/movable/pic_in_pic/proc/set_view_size(width, height, do_refresh = TRUE)
/atom/movable/screen/movable/pic_in_pic/proc/set_view_size(width, height, do_refresh = TRUE)
width = clamp(width, 0, max_dimensions)
height = clamp(height, 0, max_dimensions)
src.width = width
@@ -115,12 +115,12 @@
if(do_refresh)
refresh_view()
/obj/screen/movable/pic_in_pic/proc/set_view_center(atom/target, do_refresh = TRUE)
/atom/movable/screen/movable/pic_in_pic/proc/set_view_center(atom/target, do_refresh = TRUE)
center = target
if(do_refresh)
refresh_view()
/obj/screen/movable/pic_in_pic/proc/refresh_view()
/atom/movable/screen/movable/pic_in_pic/proc/refresh_view()
vis_contents -= viewing_turfs
if(!width || !height)
return
@@ -133,12 +133,12 @@
vis_contents += viewing_turfs
/obj/screen/movable/pic_in_pic/proc/show_to(client/C)
/atom/movable/screen/movable/pic_in_pic/proc/show_to(client/C)
if(C)
shown_to[C] = 1
C.screen += src
/obj/screen/movable/pic_in_pic/proc/unshow_to(client/C)
/atom/movable/screen/movable/pic_in_pic/proc/unshow_to(client/C)
if(C)
shown_to -= C
C.screen -= src
+20 -20
View File
@@ -1,4 +1,4 @@
/obj/screen/plane_master
/atom/movable/screen/plane_master
screen_loc = "CENTER"
icon_state = "blank"
appearance_flags = PLANE_MASTER|NO_CLIENT_COLOR
@@ -6,58 +6,58 @@
var/show_alpha = 255
var/hide_alpha = 0
/obj/screen/plane_master/proc/Show(override)
/atom/movable/screen/plane_master/proc/Show(override)
alpha = override || show_alpha
/obj/screen/plane_master/proc/Hide(override)
/atom/movable/screen/plane_master/proc/Hide(override)
alpha = override || hide_alpha
//Why do plane masters need a backdrop sometimes? Read http://www.byond.com/forum/?post=2141928
//Trust me, you need one. Period. If you don't think you do, you're doing something extremely wrong.
/obj/screen/plane_master/proc/backdrop(mob/mymob)
/atom/movable/screen/plane_master/proc/backdrop(mob/mymob)
addtimer(CALLBACK(src, TYPE_PROC_REF(/atom, add_filter), "displace", 1, displacement_map_filter(render_source = GRAVITY_PULSE_RENDER_TARGET, size = 10)), 2 SECONDS)//Why a timer vs just apply on initialize / async? I don't know. It just can't be, neither works correctly. Don't lower below 2 seconds unless you can see effects through walls with no issue.
/obj/screen/plane_master/floor
/atom/movable/screen/plane_master/floor
name = "floor plane master"
plane = FLOOR_PLANE
appearance_flags = PLANE_MASTER
blend_mode = BLEND_OVERLAY
/obj/screen/plane_master/game_world
/atom/movable/screen/plane_master/game_world
name = "game world plane master"
plane = GAME_PLANE
appearance_flags = PLANE_MASTER
blend_mode = BLEND_OVERLAY
/obj/screen/plane_master/game_world/backdrop(mob/mymob)
/atom/movable/screen/plane_master/game_world/backdrop(mob/mymob)
. = ..() //if you delete it so help me god
clear_filters()
if(istype(mymob) && mymob.client && mymob.client.prefs && (mymob.client.prefs.toggles & PREFTOGGLE_AMBIENT_OCCLUSION))
add_filter("AO", 1, drop_shadow_filter(x = 0, y = -2, size = 4, color = "#04080FAA"))
/obj/screen/plane_master/lighting
/atom/movable/screen/plane_master/lighting
name = "lighting plane master"
plane = LIGHTING_PLANE
appearance_flags = PLANE_MASTER
blend_mode = BLEND_MULTIPLY
mouse_opacity = MOUSE_OPACITY_TRANSPARENT
/obj/screen/plane_master/lighting/backdrop(mob/mymob)
/atom/movable/screen/plane_master/lighting/backdrop(mob/mymob)
. = ..()
mymob.overlay_fullscreen("lighting_backdrop_lit", /obj/screen/fullscreen/lighting_backdrop/lit)
mymob.overlay_fullscreen("lighting_backdrop_unlit", /obj/screen/fullscreen/lighting_backdrop/unlit)
mymob.overlay_fullscreen("lighting_backdrop_lit", /atom/movable/screen/fullscreen/lighting_backdrop/lit)
mymob.overlay_fullscreen("lighting_backdrop_unlit", /atom/movable/screen/fullscreen/lighting_backdrop/unlit)
/obj/screen/plane_master/lighting/Initialize()
/atom/movable/screen/plane_master/lighting/Initialize()
. = ..()
add_filter("emissives", 1, alpha_mask_filter(render_source = EMISSIVE_RENDER_TARGET, flags = MASK_INVERSE))
/obj/screen/plane_master/point
/atom/movable/screen/plane_master/point
name = "point plane master"
plane = POINT_PLANE
appearance_flags = PLANE_MASTER //should use client color
blend_mode = BLEND_OVERLAY
/obj/screen/plane_master/point/backdrop(mob/mymob)
/atom/movable/screen/plane_master/point/backdrop(mob/mymob)
if(istype(mymob) && mymob.client && mymob.client.prefs)
alpha = (mymob.client.prefs.toggles2 & PREFTOGGLE_2_THOUGHT_BUBBLE) ? 255 : 0
@@ -67,29 +67,29 @@
* Gets masked by blocking plane. Use for things that you want blocked by
* mobs, items, etc.
*/
/obj/screen/plane_master/emissive
/atom/movable/screen/plane_master/emissive
name = "emissive plane master"
plane = EMISSIVE_PLANE
mouse_opacity = MOUSE_OPACITY_TRANSPARENT
render_target = EMISSIVE_RENDER_TARGET
/obj/screen/plane_master/emissive/Initialize()
/atom/movable/screen/plane_master/emissive/Initialize()
. = ..()
add_filter("em_block_masking", 1, color_matrix_filter(GLOB.em_mask_matrix))
/obj/screen/plane_master/space
/atom/movable/screen/plane_master/space
name = "space plane master"
plane = PLANE_SPACE
appearance_flags = PLANE_MASTER
blend_mode = BLEND_OVERLAY
/obj/screen/plane_master/parallax
/atom/movable/screen/plane_master/parallax
name = "parallax plane master"
plane = PLANE_SPACE_PARALLAX
appearance_flags = PLANE_MASTER
blend_mode = BLEND_MULTIPLY
/obj/screen/plane_master/blackness
/atom/movable/screen/plane_master/blackness
name = "blackness plane master"
plane = BLACKNESS_PLANE
mouse_opacity = MOUSE_OPACITY_TRANSPARENT
@@ -97,7 +97,7 @@
blend_mode = BLEND_ADD
appearance_flags = PLANE_MASTER | NO_CLIENT_COLOR | PIXEL_SCALE
/obj/screen/plane_master/gravpulse
/atom/movable/screen/plane_master/gravpulse
name = "gravpulse plane"
mouse_opacity = MOUSE_OPACITY_TRANSPARENT
plane = GRAVITY_PULSE_PLANE
+9 -9
View File
@@ -11,7 +11,7 @@
owner_hud = hud
var/assoc_controlled_planes = list()
for(var/i in controlled_planes)
var/obj/screen/plane_master/instance = owner_hud.plane_masters["[i]"]
var/atom/movable/screen/plane_master/instance = owner_hud.plane_masters["[i]"]
assoc_controlled_planes["[i]"] = instance
controlled_planes = assoc_controlled_planes
@@ -19,41 +19,41 @@
/atom/movable/plane_master_controller/add_filter(name, priority, list/params)
. = ..()
for(var/i in controlled_planes)
var/obj/screen/plane_master/pm_iterator = controlled_planes[i]
var/atom/movable/screen/plane_master/pm_iterator = controlled_planes[i]
pm_iterator.add_filter(name, priority, params)
///Full override so we can just use filterrific
/atom/movable/plane_master_controller/remove_filter(name_or_names)
. = ..()
for(var/i in controlled_planes)
var/obj/screen/plane_master/pm_iterator = controlled_planes[i]
var/atom/movable/screen/plane_master/pm_iterator = controlled_planes[i]
pm_iterator.remove_filter(name_or_names)
/atom/movable/plane_master_controller/update_filters()
. = ..()
for(var/i in controlled_planes)
var/obj/screen/plane_master/pm_iterator = controlled_planes[i]
var/atom/movable/screen/plane_master/pm_iterator = controlled_planes[i]
pm_iterator.update_filters()
///Gets all filters for this controllers plane masters
/atom/movable/plane_master_controller/proc/get_filters(name)
. = list()
for(var/i in controlled_planes)
var/obj/screen/plane_master/pm_iterator = controlled_planes[i]
var/atom/movable/screen/plane_master/pm_iterator = controlled_planes[i]
. += pm_iterator.get_filter(name)
///Transitions all filters owned by this plane master controller
/atom/movable/plane_master_controller/transition_filter(name, time, list/new_params, easing, loop)
. = ..()
for(var/i in controlled_planes)
var/obj/screen/plane_master/pm_iterator = controlled_planes[i]
var/atom/movable/screen/plane_master/pm_iterator = controlled_planes[i]
pm_iterator.transition_filter(name, time, new_params, easing, loop)
///Full override so we can just use filterrific
/atom/movable/plane_master_controller/add_atom_colour(coloration, colour_priority)
. = ..()
for(var/i in controlled_planes)
var/obj/screen/plane_master/pm_iterator = controlled_planes[i]
var/atom/movable/screen/plane_master/pm_iterator = controlled_planes[i]
pm_iterator.add_atom_colour(coloration, colour_priority)
@@ -61,14 +61,14 @@
/atom/movable/plane_master_controller/remove_atom_colour(colour_priority, coloration)
. = ..()
for(var/i in controlled_planes)
var/obj/screen/plane_master/pm_iterator = controlled_planes[i]
var/atom/movable/screen/plane_master/pm_iterator = controlled_planes[i]
pm_iterator.remove_atom_colour(colour_priority, coloration)
///Resets the atom's color to null, and then sets it to the highest priority colour available
/atom/movable/plane_master_controller/update_atom_colour()
for(var/i in controlled_planes)
var/obj/screen/plane_master/pm_iterator = controlled_planes[i]
var/atom/movable/screen/plane_master/pm_iterator = controlled_planes[i]
pm_iterator.update_atom_colour()
+16 -16
View File
@@ -3,51 +3,51 @@
GLOBAL_LIST_EMPTY(radial_menus)
/obj/screen/radial
/atom/movable/screen/radial
icon = 'icons/mob/radial.dmi'
layer = ABOVE_HUD_LAYER
plane = ABOVE_HUD_PLANE
var/datum/radial_menu/parent
/obj/screen/radial/Destroy()
/atom/movable/screen/radial/Destroy()
parent = null
return ..()
/obj/screen/radial/slice
/atom/movable/screen/radial/slice
icon_state = "radial_slice"
var/choice
var/next_page = FALSE
/obj/screen/radial/slice/MouseEntered(location, control, params)
/atom/movable/screen/radial/slice/MouseEntered(location, control, params)
. = ..()
icon_state = "radial_slice_focus"
openToolTip(usr, src, params, title = name)
/obj/screen/radial/slice/MouseExited(location, control, params)
/atom/movable/screen/radial/slice/MouseExited(location, control, params)
. = ..()
icon_state = "radial_slice"
closeToolTip(usr)
/obj/screen/radial/slice/Click(location, control, params)
/atom/movable/screen/radial/slice/Click(location, control, params)
if(usr.client == parent.current_user)
if(next_page)
parent.next_page()
else
parent.element_chosen(choice,usr)
/obj/screen/radial/center
/atom/movable/screen/radial/center
name = "Close Menu"
icon_state = "radial_center"
/obj/screen/radial/center/Click(location, control, params)
/atom/movable/screen/radial/center/Click(location, control, params)
if(usr.client == parent.current_user)
parent.finished = TRUE
/obj/screen/radial/center/MouseEntered(location, control, params)
/atom/movable/screen/radial/center/MouseEntered(location, control, params)
. = ..()
openToolTip(usr, src, params, title = name)
/obj/screen/radial/center/MouseExited(location, control, params)
/atom/movable/screen/radial/center/MouseExited(location, control, params)
. = ..()
closeToolTip(usr)
@@ -59,8 +59,8 @@ GLOBAL_LIST_EMPTY(radial_menus)
var/selected_choice
var/list/obj/screen/elements = list()
var/obj/screen/radial/center/close_button
var/list/atom/movable/screen/elements = list()
var/atom/movable/screen/radial/center/close_button
var/client/current_user
var/atom/movable/anchor
var/pixel_x_difference
@@ -94,7 +94,7 @@ GLOBAL_LIST_EMPTY(radial_menus)
if(elements.len < max_elements)
var/elements_to_add = max_elements - elements.len
for(var/i in 1 to elements_to_add) //Create all elements
var/obj/screen/radial/new_element = new /obj/screen/radial/slice
var/atom/movable/screen/radial/new_element = new /atom/movable/screen/radial/slice
new_element.parent = src
elements += new_element
@@ -128,14 +128,14 @@ GLOBAL_LIST_EMPTY(radial_menus)
pixel_x_difference = ((world.icon_size * anchor.x) + anchor.step_x + anchor.pixel_x) - ((world.icon_size * current_user.mob.x) + current_user.mob.step_x + current_user.mob.pixel_x)
pixel_y_difference = ((world.icon_size * anchor.y) + anchor.step_y + anchor.pixel_y) - ((world.icon_size * current_user.mob.y) + current_user.mob.step_y + current_user.mob.pixel_y)
for(var/i in 1 to elements.len)
var/obj/screen/radial/E = elements[i]
var/atom/movable/screen/radial/E = elements[i]
var/angle = WRAP(starting_angle + (i - 1) * angle_per_element, 0, 360)
if(i > page_choices.len)
HideElement(E)
else
SetElement(E,page_choices[i], angle)
/datum/radial_menu/proc/HideElement(obj/screen/radial/slice/E)
/datum/radial_menu/proc/HideElement(atom/movable/screen/radial/slice/E)
E.cut_overlays()
E.alpha = 0
E.name = "None"
@@ -144,7 +144,7 @@ GLOBAL_LIST_EMPTY(radial_menus)
E.choice = null
E.next_page = FALSE
/datum/radial_menu/proc/SetElement(obj/screen/radial/slice/E, choice_id, angle)
/datum/radial_menu/proc/SetElement(atom/movable/screen/radial/slice/E, choice_id, angle)
//Position
E.pixel_y = round(cos(angle) * radius) + py_shift
E.pixel_x = round(sin(angle) * radius)
+35 -35
View File
@@ -1,11 +1,11 @@
/obj/screen/robot
/atom/movable/screen/robot
icon = 'icons/mob/screen_robot.dmi'
/obj/screen/robot/module
/atom/movable/screen/robot/module
name = "cyborg module"
icon_state = "nomod"
/obj/screen/robot/module/Click()
/atom/movable/screen/robot/module/Click()
if(isrobot(usr))
var/mob/living/silicon/robot/R = usr
if(R.module)
@@ -13,76 +13,76 @@
return 1
R.pick_module()
/obj/screen/robot/module1
/atom/movable/screen/robot/module1
name = "module1"
icon_state = "inv1"
/obj/screen/robot/module1/Click()
/atom/movable/screen/robot/module1/Click()
if(isrobot(usr))
var/mob/living/silicon/robot/R = usr
R.toggle_module(1)
/obj/screen/robot/module2
/atom/movable/screen/robot/module2
name = "module2"
icon_state = "inv2"
/obj/screen/robot/module2/Click()
/atom/movable/screen/robot/module2/Click()
if(isrobot(usr))
var/mob/living/silicon/robot/R = usr
R.toggle_module(2)
/obj/screen/robot/module3
/atom/movable/screen/robot/module3
name = "module3"
icon_state = "inv3"
/obj/screen/robot/module3/Click()
/atom/movable/screen/robot/module3/Click()
if(isrobot(usr))
var/mob/living/silicon/robot/R = usr
R.toggle_module(3)
/obj/screen/robot/radio
/atom/movable/screen/robot/radio
name = "radio"
icon_state = "radio"
/obj/screen/robot/radio/Click()
/atom/movable/screen/robot/radio/Click()
if(issilicon(usr))
var/mob/living/silicon/robot/R = usr
R.radio_menu()
/obj/screen/robot/store
/atom/movable/screen/robot/store
name = "store"
icon_state = "store"
/obj/screen/robot/store/Click()
/atom/movable/screen/robot/store/Click()
if(isrobot(usr))
var/mob/living/silicon/robot/R = usr
R.uneq_active()
R.hud_used.update_robot_modules_display()
/obj/screen/robot/lamp
/atom/movable/screen/robot/lamp
name = "Toggle Headlamp"
icon_state = "lamp0"
screen_loc = ui_borg_lamp
/obj/screen/robot/lamp/Click()
/atom/movable/screen/robot/lamp/Click()
if(isrobot(usr))
var/mob/living/silicon/robot/R = usr
R.control_headlamp()
/obj/screen/robot/thrusters
/atom/movable/screen/robot/thrusters
name = "ion thrusters"
icon_state = "ionpulse0"
/obj/screen/robot/thrusters/Click()
/atom/movable/screen/robot/thrusters/Click()
var/mob/living/silicon/robot/R = usr
R.toggle_ionpulse()
/obj/screen/robot/mov_intent
/atom/movable/screen/robot/mov_intent
name = "fast/slow toggle"
icon_state = "running"
/obj/screen/robot/mov_intent/Click()
/atom/movable/screen/robot/mov_intent/Click()
usr.toggle_move_intent()
@@ -93,31 +93,31 @@
/datum/hud/robot/New(mob/user)
..()
var/obj/screen/using
var/atom/movable/screen/using
var/mob/living/silicon/robot/mymobR = mymob
//Language menu
using = new /obj/screen/language_menu
using = new /atom/movable/screen/language_menu
using.screen_loc = ui_borg_lanugage_menu
static_inventory += using
//Radio
using = new /obj/screen/robot/radio()
using = new /atom/movable/screen/robot/radio()
using.screen_loc = ui_borg_radio
static_inventory += using
//Module select
using = new /obj/screen/robot/module1()
using = new /atom/movable/screen/robot/module1()
using.screen_loc = ui_inv1
static_inventory += using
mymobR.inv1 = using
using = new /obj/screen/robot/module2()
using = new /atom/movable/screen/robot/module2()
using.screen_loc = ui_inv2
static_inventory += using
mymobR.inv2 = using
using = new /obj/screen/robot/module3()
using = new /atom/movable/screen/robot/module3()
using.screen_loc = ui_inv3
static_inventory += using
mymobR.inv3 = using
@@ -125,55 +125,55 @@
//End of module select
//Sec/Med HUDs
using = new /obj/screen/ai/sensors()
using = new /atom/movable/screen/ai/sensors()
using.screen_loc = ui_borg_sensor
static_inventory += using
//Intent
// Attack intent
using = new /obj/screen/act_intent/robot()
using = new /atom/movable/screen/act_intent/robot()
using.icon_state = mymob.a_intent
static_inventory += using
action_intent = using
// Movement intent
using = new /obj/screen/robot/mov_intent()
using = new /atom/movable/screen/robot/mov_intent()
using.icon_state = (mymob.m_intent == MOVE_INTENT_RUN ? "running" : "walking")
static_inventory += using
using.screen_loc = ui_movi
move_intent = using
//Health
mymob.healths = new /obj/screen/healths/robot()
mymob.healths = new /atom/movable/screen/healths/robot()
infodisplay += mymob.healths
//Installed Module
mymobR.hands = new /obj/screen/robot/module()
mymobR.hands = new /atom/movable/screen/robot/module()
mymobR.hands.screen_loc = ui_borg_module
static_inventory += mymobR.hands
module_store_icon = new /obj/screen/robot/store()
module_store_icon = new /atom/movable/screen/robot/store()
module_store_icon.screen_loc = ui_borg_store
mymob.pullin = new /obj/screen/pull()
mymob.pullin = new /atom/movable/screen/pull()
mymob.pullin.icon = 'icons/mob/screen_robot.dmi'
mymob.pullin.hud = src
mymob.pullin.update_icon(UPDATE_ICON_STATE)
mymob.pullin.screen_loc = ui_borg_pull
hotkeybuttons += mymob.pullin
zone_select = new /obj/screen/zone_sel/robot()
zone_select = new /atom/movable/screen/zone_sel/robot()
zone_select.hud = src
zone_select.update_icon(UPDATE_OVERLAYS)
static_inventory += zone_select
//Headlamp
mymobR.lamp_button = new /obj/screen/robot/lamp()
mymobR.lamp_button = new /atom/movable/screen/robot/lamp()
mymobR.lamp_button.screen_loc = ui_borg_lamp
static_inventory += mymobR.lamp_button
//Thrusters
using = new /obj/screen/robot/thrusters()
using = new /atom/movable/screen/robot/thrusters()
using.screen_loc = ui_borg_thrusters
static_inventory += using
mymobR.thruster_button = using
+88 -78
View File
@@ -1,34 +1,44 @@
/*
Screen objects
Screen "objects"
Todo: improve/re-implement
Screen objects are only used for the hud and should not appear anywhere "in-game".
They are not actually objects, which is counterintuitive to their name.
They are used with the client/screen list and the screen_loc var.
For more information, see the byond documentation on the screen_loc and screen vars.
*/
/obj/screen
/atom/movable/screen
name = ""
icon = 'icons/mob/screen_gen.dmi'
layer = HUD_LAYER
plane = HUD_PLANE
flags = NO_SCREENTIPS
resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF
var/obj/master = null //A reference to the object in the slot. Grabs or items, generally.
var/datum/hud/hud = null
appearance_flags = NO_CLIENT_COLOR
/**
* Map name assigned to this object.
* Automatically set by /client/proc/add_obj_to_map.
*/
var/assigned_map
/**
* Mark this object as garbage-collectible after you clean the map
* it was registered on.
*
* This could probably be changed to be a proc, for conditional removal.
* But for now, this works.
*/
var/del_on_map_removal = TRUE
/obj/screen/take_damage()
return
/obj/screen/Destroy()
/atom/movable/screen/Destroy()
master = null
hud = null
return ..()
/obj/screen/proc/component_click(obj/screen/component_button/component, params)
/atom/movable/screen/proc/component_click(atom/movable/screen/component_button/component, params)
return
/obj/screen/text
/atom/movable/screen/text
icon = null
icon_state = null
mouse_opacity = MOUSE_OPACITY_TRANSPARENT
@@ -36,44 +46,44 @@
maptext_height = 480
maptext_width = 480
/obj/screen/close
/atom/movable/screen/close
name = "close"
layer = ABOVE_HUD_LAYER
plane = ABOVE_HUD_PLANE
/obj/screen/close/Click()
/atom/movable/screen/close/Click()
if(master)
if(isstorage(master))
var/obj/item/storage/S = master
S.close(usr)
return 1
/obj/screen/drop
/atom/movable/screen/drop
name = "drop"
icon_state = "act_drop"
/obj/screen/drop/Click()
/atom/movable/screen/drop/Click()
usr.drop_item_v()
/obj/screen/grab
/atom/movable/screen/grab
name = "grab"
/obj/screen/grab/Click()
/atom/movable/screen/grab/Click()
var/obj/item/grab/G = master
G.s_click(src)
return 1
/obj/screen/grab/attack_hand()
/atom/movable/screen/grab/attack_hand()
return
/obj/screen/grab/attackby()
/atom/movable/screen/grab/attackby()
return
/obj/screen/act_intent
/atom/movable/screen/act_intent
name = "intent"
icon_state = "help"
screen_loc = ui_acti
/obj/screen/act_intent/Click(location, control, params)
/atom/movable/screen/act_intent/Click(location, control, params)
if(ishuman(usr))
var/_x = text2num(params2list(params)["icon-x"])
var/_y = text2num(params2list(params)["icon-y"])
@@ -88,69 +98,69 @@
else
usr.a_intent_change("right")
/obj/screen/act_intent/alien
/atom/movable/screen/act_intent/alien
icon = 'icons/mob/screen_alien.dmi'
screen_loc = ui_acti
/obj/screen/act_intent/robot
/atom/movable/screen/act_intent/robot
icon = 'icons/mob/screen_robot.dmi'
screen_loc = ui_borg_intents
/obj/screen/act_intent/robot/AI
/atom/movable/screen/act_intent/robot/AI
screen_loc = "SOUTH+1:6,EAST-1:32"
/obj/screen/mov_intent
/atom/movable/screen/mov_intent
name = "run/walk toggle"
icon_state = "running"
/obj/screen/act_intent/simple_animal
/atom/movable/screen/act_intent/simple_animal
icon = 'icons/mob/screen_simplemob.dmi'
screen_loc = ui_acti
/obj/screen/act_intent/guardian
/atom/movable/screen/act_intent/guardian
icon = 'icons/mob/guardian.dmi'
screen_loc = ui_acti
/obj/screen/mov_intent/Click()
/atom/movable/screen/mov_intent/Click()
usr.toggle_move_intent()
/obj/screen/pull
/atom/movable/screen/pull
name = "stop pulling"
icon_state = "pull"
/obj/screen/pull/Click()
/atom/movable/screen/pull/Click()
usr.stop_pulling()
/obj/screen/pull/update_icon_state()
/atom/movable/screen/pull/update_icon_state()
if(hud?.mymob?.pulling)
icon_state = "pull"
else
icon_state = "pull0"
/obj/screen/resist
/atom/movable/screen/resist
name = "resist"
icon = 'icons/mob/screen_midnight.dmi'
icon_state = "act_resist"
/obj/screen/resist/Click()
/atom/movable/screen/resist/Click()
if(isliving(usr))
var/mob/living/L = usr
L.resist()
/obj/screen/throw_catch
/atom/movable/screen/throw_catch
name = "throw/catch"
icon = 'icons/mob/screen_midnight.dmi'
icon_state = "act_throw_off"
/obj/screen/throw_catch/Click()
/atom/movable/screen/throw_catch/Click()
if(iscarbon(usr))
var/mob/living/carbon/C = usr
C.toggle_throw_mode()
/obj/screen/storage
/atom/movable/screen/storage
name = "storage"
/obj/screen/storage/Click(location, control, params)
/atom/movable/screen/storage/Click(location, control, params)
if(world.time <= usr.next_move)
return TRUE
if(usr.incapacitated(ignore_restraints = TRUE))
@@ -163,7 +173,7 @@
master.attackby(I, usr, params)
return TRUE
/obj/screen/storage/proc/is_item_accessible(obj/item/I, mob/user)
/atom/movable/screen/storage/proc/is_item_accessible(obj/item/I, mob/user)
if(!user || !I)
return FALSE
@@ -180,7 +190,7 @@
return TRUE
return FALSE
/obj/screen/storage/MouseDrop_T(obj/item/I, mob/user)
/atom/movable/screen/storage/MouseDrop_T(obj/item/I, mob/user)
if(!user || !istype(I) || user.incapacitated(ignore_restraints = TRUE) || ismecha(user.loc) || !master)
return
@@ -219,7 +229,7 @@
S.attackby(I, user)
return TRUE
/obj/screen/zone_sel
/atom/movable/screen/zone_sel
name = "damage zone"
icon_state = "zone_sel"
screen_loc = ui_zonesel
@@ -228,7 +238,7 @@
var/static/list/hover_overlays_cache = list()
var/hovering
/obj/screen/zone_sel/Click(location, control,params)
/atom/movable/screen/zone_sel/Click(location, control,params)
if(isobserver(usr))
return
@@ -241,11 +251,11 @@
return set_selected_zone(choice, usr)
/obj/screen/zone_sel/MouseEntered(location, control, params)
/atom/movable/screen/zone_sel/MouseEntered(location, control, params)
. = ..()
MouseMove(location, control, params)
/obj/screen/zone_sel/MouseMove(location, control, params)
/atom/movable/screen/zone_sel/MouseMove(location, control, params)
if(isobserver(usr))
return
@@ -275,13 +285,13 @@
layer = ABOVE_HUD_LAYER
plane = ABOVE_HUD_PLANE
/obj/screen/zone_sel/MouseExited(location, control, params)
/atom/movable/screen/zone_sel/MouseExited(location, control, params)
if(!isobserver(usr) && hovering)
cut_overlay(hover_overlays_cache[hovering])
hovering = null
return ..()
/obj/screen/zone_sel/proc/get_zone_at(icon_x, icon_y)
/atom/movable/screen/zone_sel/proc/get_zone_at(icon_x, icon_y)
switch(icon_y)
if(1 to 3) //Feet
switch(icon_x)
@@ -325,7 +335,7 @@
return "eyes"
return "head"
/obj/screen/zone_sel/proc/set_selected_zone(choice)
/atom/movable/screen/zone_sel/proc/set_selected_zone(choice)
if(!hud)
return
if(isobserver(hud.mymob))
@@ -334,58 +344,58 @@
if(choice != selecting)
selecting = choice
update_icon(UPDATE_OVERLAYS)
return 1
return TRUE
/obj/screen/zone_sel/update_overlays()
/atom/movable/screen/zone_sel/update_overlays()
. = ..()
var/image/sel = image(overlay_file, "[selecting]")
sel.appearance_flags = RESET_COLOR
. += sel
hud.mymob.zone_selected = selecting
/obj/screen/zone_sel/alien
/atom/movable/screen/zone_sel/alien
icon = 'icons/mob/screen_alien.dmi'
overlay_file = 'icons/mob/screen_alien.dmi'
/obj/screen/zone_sel/robot
/atom/movable/screen/zone_sel/robot
icon = 'icons/mob/screen_robot.dmi'
/obj/screen/craft
/atom/movable/screen/craft
name = "crafting menu"
icon = 'icons/mob/screen_midnight.dmi'
icon_state = "craft"
screen_loc = ui_crafting
/obj/screen/craft/Click()
/atom/movable/screen/craft/Click()
var/mob/living/M = usr
M.OpenCraftingMenu()
/obj/screen/language_menu
/atom/movable/screen/language_menu
name = "language menu"
icon = 'icons/mob/screen_midnight.dmi'
icon_state = "talk_wheel"
screen_loc = ui_language_menu
/obj/screen/language_menu/Click()
/atom/movable/screen/language_menu/Click()
var/mob/M = usr
if(!istype(M))
return
M.check_languages()
/obj/screen/inventory
/atom/movable/screen/inventory
var/slot_id //The indentifier for the slot. It has nothing to do with ID cards.
var/list/object_overlays = list()
/obj/screen/inventory/MouseEntered()
/atom/movable/screen/inventory/MouseEntered()
. = ..()
add_overlays()
/obj/screen/inventory/MouseExited()
/atom/movable/screen/inventory/MouseExited()
..()
cut_overlay(object_overlays)
object_overlays.Cut()
/obj/screen/inventory/proc/add_overlays()
/atom/movable/screen/inventory/proc/add_overlays()
var/mob/user = hud.mymob
if(hud && user && slot_id)
@@ -405,7 +415,7 @@
object_overlays += item_overlay
add_overlay(object_overlays)
/obj/screen/inventory/MouseDrop(atom/over)
/atom/movable/screen/inventory/MouseDrop(atom/over)
cut_overlay(object_overlays)
object_overlays.Cut()
if(could_be_click_lag())
@@ -414,7 +424,7 @@
return
return ..()
/obj/screen/inventory/Click(location, control, params)
/atom/movable/screen/inventory/Click(location, control, params)
// At this point in client Click() code we have passed the 1/10 sec check and little else
// We don't even know if it's a middle click
if(world.time <= usr.next_move)
@@ -432,14 +442,14 @@
if(usr.attack_ui(slot_id))
usr.update_inv_l_hand()
usr.update_inv_r_hand()
return 1
return TRUE
/obj/screen/inventory/hand
/atom/movable/screen/inventory/hand
var/image/active_overlay
var/image/handcuff_overlay
var/static/mutable_appearance/blocked_overlay = mutable_appearance('icons/mob/screen_gen.dmi', "blocked")
/obj/screen/inventory/hand/update_overlays()
/atom/movable/screen/inventory/hand/update_overlays()
. = ..()
if(!active_overlay)
active_overlay = image("icon"=icon, "icon_state"="hand_active")
@@ -462,7 +472,7 @@
else if(slot_id == SLOT_HUD_RIGHT_HAND && !hud.mymob.hand)
. += active_overlay
/obj/screen/inventory/hand/Click()
/atom/movable/screen/inventory/hand/Click()
// At this point in client Click() code we have passed the 1/10 sec check and little else
// We don't even know if it's a middle click
if(world.time <= usr.next_move)
@@ -479,12 +489,12 @@
M.activate_hand("r")
if("left hand", "l_hand")
M.activate_hand("l")
return 1
return TRUE
/obj/screen/swap_hand
/atom/movable/screen/swap_hand
name = "swap hand"
/obj/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
// We don't even know if it's a middle click
if(world.time <= usr.next_move)
@@ -498,57 +508,57 @@
M.swap_hand()
return 1
/obj/screen/healths
/atom/movable/screen/healths
name = "health"
icon_state = "health0"
screen_loc = ui_health
/obj/screen/healths/alien
/atom/movable/screen/healths/alien
icon = 'icons/mob/screen_alien.dmi'
screen_loc = ui_alien_health
/obj/screen/healths/bot
/atom/movable/screen/healths/bot
icon = 'icons/mob/screen_bot.dmi'
screen_loc = ui_borg_health
/obj/screen/healths/robot
/atom/movable/screen/healths/robot
icon = 'icons/mob/screen_robot.dmi'
screen_loc = ui_borg_health
/obj/screen/healths/corgi
/atom/movable/screen/healths/corgi
icon = 'icons/mob/screen_corgi.dmi'
/obj/screen/healths/slime
/atom/movable/screen/healths/slime
icon = 'icons/mob/screen_slime.dmi'
icon_state = "slime_health0"
screen_loc = ui_slime_health
mouse_opacity = MOUSE_OPACITY_TRANSPARENT
/obj/screen/healths/guardian
/atom/movable/screen/healths/guardian
name = "summoner health"
icon = 'icons/mob/guardian.dmi'
icon_state = "base"
screen_loc = ui_health
mouse_opacity = MOUSE_OPACITY_TRANSPARENT
/obj/screen/healthdoll
/atom/movable/screen/healthdoll
name = "health doll"
icon_state = "healthdoll_DEAD"
screen_loc = ui_healthdoll
var/list/cached_healthdoll_overlays = list() // List of icon states (strings) for overlays
/obj/screen/healthdoll/Click()
/atom/movable/screen/healthdoll/Click()
if(ishuman(usr) && !usr.is_dead())
var/mob/living/carbon/H = usr
H.check_self_for_injuries()
/obj/screen/component_button
var/obj/screen/parent
/atom/movable/screen/component_button
var/atom/movable/screen/parent
/obj/screen/component_button/Initialize(mapload, obj/screen/new_parent)
/atom/movable/screen/component_button/Initialize(mapload, atom/movable/screen/new_parent)
. = ..()
parent = new_parent
/obj/screen/component_button/Click(params)
/atom/movable/screen/component_button/Click(params)
if(parent)
parent.component_click(src, params)
+3 -3
View File
@@ -1,4 +1,4 @@
/obj/screen/screentip
/atom/movable/screen/screentip
icon = null
mouse_opacity = MOUSE_OPACITY_TRANSPARENT
screen_loc = "TOP,LEFT"
@@ -7,12 +7,12 @@
maptext_y = -50
maptext = ""
/obj/screen/screentip/Initialize(mapload, _hud)
/atom/movable/screen/screentip/Initialize(mapload, _hud)
. = ..()
hud = _hud
update_view()
/obj/screen/screentip/proc/update_view(datum/source)
/atom/movable/screen/screentip/proc/update_view(datum/source)
if(!hud) //Might not have been initialized by now
return
maptext_width = getviewsize(hud.mymob.client.view)[1] * world.icon_size
+1 -1
View File
@@ -1,6 +1,6 @@
/datum/hud/slime/New(mob/living/simple_animal/slime/owner, ui_style = 'icons/mob/screen_slime.dmi')
..()
mymob.healths = new /obj/screen/healths/slime()
mymob.healths = new /atom/movable/screen/healths/slime()
infodisplay += mymob.healths
/mob/living/simple_animal/slime/create_mob_hud()
+4 -4
View File
@@ -44,7 +44,7 @@ SUBSYSTEM_DEF(debugview)
C.debug_text_overlay.maptext = "<span class='maptext' style='background-color: #272727;'>[out_text]</span>"
/datum/controller/subsystem/debugview/proc/start_processing(client/C)
C.debug_text_overlay = new /obj/screen/debugtextholder(null, C)
C.debug_text_overlay = new /atom/movable/screen/debugtextholder(null, C)
C.screen |= C.debug_text_overlay
processing |= C
@@ -53,7 +53,7 @@ SUBSYSTEM_DEF(debugview)
C.screen -= C.debug_text_overlay
QDEL_NULL(C.debug_text_overlay)
/obj/screen/debugtextholder
/atom/movable/screen/debugtextholder
icon = 'icons/mob/screen_full.dmi'
icon_state = "empty"
screen_loc = "TOP,LEFT"
@@ -61,11 +61,11 @@ SUBSYSTEM_DEF(debugview)
maptext_height = 480 // 15 * 32 (15 tiles, 32 pixels each)
maptext_width = 480 // changes with prefs
/obj/screen/debugtextholder/Initialize(mapload, client/C)
/atom/movable/screen/debugtextholder/Initialize(mapload, client/C)
. = ..()
update_view(C)
/obj/screen/debugtextholder/proc/update_view(client/C)
/atom/movable/screen/debugtextholder/proc/update_view(client/C)
var/list/viewsizes = getviewsize(C.view)
maptext_width = viewsizes[1] * world.icon_size
+2 -2
View File
@@ -70,7 +70,7 @@ SUBSYSTEM_DEF(ghost_spawns)
// If we somehow send two polls for the same mob type, but with a duration on the second one shorter than the time left on the first one,
// we need to keep the first one's timeout rather than use the shorter one
var/obj/screen/alert/notify_action/current_alert = LAZYACCESS(M.alerts, category)
var/atom/movable/screen/alert/notify_action/current_alert = LAZYACCESS(M.alerts, category)
var/alert_time = poll_time
var/alert_poll = P
if(current_alert && current_alert.timeout > (world.time + poll_time - world.tick_lag))
@@ -78,7 +78,7 @@ SUBSYSTEM_DEF(ghost_spawns)
alert_poll = current_alert.poll
// Send them an on-screen alert
var/obj/screen/alert/notify_action/A = M.throw_alert(category, /obj/screen/alert/notify_action, timeout_override = alert_time, no_anim = TRUE)
var/atom/movable/screen/alert/notify_action/A = M.throw_alert(category, /atom/movable/screen/alert/notify_action, timeout_override = alert_time, no_anim = TRUE)
if(!A)
continue
+1 -1
View File
@@ -17,7 +17,7 @@ SUBSYSTEM_DEF(parallax)
/datum/controller/subsystem/parallax/PreInit()
. = ..()
if(prob(70)) //70% chance to pick a special extra layer
random_layer = pick(/obj/screen/parallax_layer/random/space_gas, /obj/screen/parallax_layer/random/asteroids)
random_layer = pick(/atom/movable/screen/parallax_layer/random/space_gas, /atom/movable/screen/parallax_layer/random/asteroids)
random_parallax_color = pick(COLOR_TEAL, COLOR_GREEN, COLOR_SILVER, COLOR_YELLOW, COLOR_CYAN, COLOR_ORANGE, COLOR_PURPLE) //Special color for random_layer1. Has to be done here so everyone sees the same color.
planet_y_offset = rand(100, 160)
planet_x_offset = rand(100, 160)
+2 -2
View File
@@ -54,7 +54,7 @@ SUBSYSTEM_DEF(ticker)
/// Holder for inital autotransfer vote timer
var/next_autotransfer = 0
/// Used for station explosion cinematic
var/obj/screen/cinematic = null
var/atom/movable/screen/cinematic = null
/// Spam Prevention. Announce round end only once.
var/round_end_announced = FALSE
/// Is the ticker currently processing? If FALSE, roundstart is delayed
@@ -364,7 +364,7 @@ SUBSYSTEM_DEF(ticker)
auto_toggle_ooc(TRUE) // Turn it on
//initialise our cinematic screen object
cinematic = new /obj/screen(src)
cinematic = new /atom/movable/screen(src)
cinematic.icon = 'icons/effects/station_explosion.dmi'
cinematic.icon_state = "station_intact"
cinematic.layer = 21
+4 -4
View File
@@ -12,7 +12,7 @@
var/desc = null
var/obj/target = null
var/check_flags = 0
var/obj/screen/movable/action_button/button = null
var/atom/movable/screen/movable/action_button/button = null
var/button_icon = 'icons/mob/actions/actions.dmi'
var/background_icon_state = "bg_default"
var/buttontooltipstyle = ""
@@ -129,7 +129,7 @@
img.plane = FLOAT_PLANE + 1
button.add_overlay(img)
/datum/action/proc/ApplyIcon(obj/screen/movable/action_button/current_button)
/datum/action/proc/ApplyIcon(atom/movable/screen/movable/action_button/current_button)
current_button.cut_overlays()
if(icon_icon && button_icon_state)
var/image/img = image(icon_icon, current_button, button_icon_state)
@@ -165,7 +165,7 @@
I.ui_action_click(owner, type, left_click)
return TRUE
/datum/action/item_action/ApplyIcon(obj/screen/movable/action_button/current_button)
/datum/action/item_action/ApplyIcon(atom/movable/screen/movable/action_button/current_button)
if(use_itemicon)
if(target)
var/obj/item/I = target
@@ -436,7 +436,7 @@
owner.research_scanner = FALSE
..()
/datum/action/item_action/toggle_research_scanner/ApplyIcon(obj/screen/movable/action_button/current_button)
/datum/action/item_action/toggle_research_scanner/ApplyIcon(atom/movable/screen/movable/action_button/current_button)
current_button.cut_overlays()
if(button_icon && button_icon_state)
var/image/img = image(button_icon, current_button, "scan_mode")
+2 -2
View File
@@ -8,8 +8,8 @@
/datum/click_intercept
/// A reference to the client which is assigned this click intercept datum.
var/client/holder = null
/// Any `obj/screen/buttons` the client is meant to receive when assigned this click intercept datum.
var/list/obj/screen/buttons = list()
/// Any `atom/movable/screen/buttons` the client is meant to receive when assigned this click intercept datum.
var/list/atom/movable/screen/buttons = list()
/datum/click_intercept/New(client/C)
create_buttons()
+1 -1
View File
@@ -168,7 +168,7 @@
if(!C.check_has_body_select())
return
var/obj/screen/zone_sel/selector = C.mob.hud_used.zone_select
var/atom/movable/screen/zone_sel/selector = C.mob.hud_used.zone_select
selector.set_selected_zone(body_part, C.mob)
/datum/keybinding/mob/target/head
+1 -1
View File
@@ -19,7 +19,7 @@
var/perfect_disguise = FALSE
var/static/list/black_listed_form_types = list(
/obj/screen,
/atom/movable/screen,
/obj/singularity,
/obj/effect,
/mob/living/simple_animal/hostile/megafauna,
+2 -2
View File
@@ -1,5 +1,5 @@
/datum/status_effect/blob_burst
alert_type = /obj/screen/alert/status_effect/blob_burst
alert_type = /atom/movable/screen/alert/status_effect/blob_burst
var/datum/callback/blob_burst_callback
/datum/status_effect/blob_burst/on_creation(mob/living/new_owner, duration = 120 SECONDS, datum/callback/burst_callback)
@@ -20,7 +20,7 @@
/datum/status_effect/blob_burst/on_timeout()
blob_burst_callback.Invoke()
/obj/screen/alert/status_effect/blob_burst
/atom/movable/screen/alert/status_effect/blob_burst
name = "Blob burst"
desc = "You're about to burst into a blob, be sure to find a safe place before that you burst!"
icon = 'icons/mob/blob.dmi'
+25 -25
View File
@@ -4,18 +4,18 @@
id = "his_grace"
duration = -1
tick_interval = 4
alert_type = /obj/screen/alert/status_effect/his_grace
alert_type = /atom/movable/screen/alert/status_effect/his_grace
var/bloodlust = 0
/// Attached His Grace toolbox
var/obj/item/his_grace/toolbox
/obj/screen/alert/status_effect/his_grace
/atom/movable/screen/alert/status_effect/his_grace
name = "His Grace"
desc = "His Grace hungers, and you must feed Him."
icon_state = "his_grace"
alerttooltipstyle = "hisgrace"
/obj/screen/alert/status_effect/his_grace/MouseEntered(location, control, params)
/atom/movable/screen/alert/status_effect/his_grace/MouseEntered(location, control, params)
desc = initial(desc)
var/datum/status_effect/his_grace/HG = attached_effect
desc += "<br><font size=3><b>Current Bloodthirst: [HG.bloodlust]</b></font>\
@@ -61,9 +61,9 @@
/datum/status_effect/shadow_mend
id = "shadow_mend"
duration = 3 SECONDS
alert_type = /obj/screen/alert/status_effect/shadow_mend
alert_type = /atom/movable/screen/alert/status_effect/shadow_mend
/obj/screen/alert/status_effect/shadow_mend
/atom/movable/screen/alert/status_effect/shadow_mend
name = "Shadow Mend"
desc = "Shadowy energies wrap around your wounds, sealing them at a price. After healing, you will slowly lose health every three seconds for thirty seconds."
icon_state = "shadow_mend"
@@ -88,10 +88,10 @@
duration = 30 SECONDS
tick_interval = 3 SECONDS
status_type = STATUS_EFFECT_REFRESH
alert_type = /obj/screen/alert/status_effect/void_price
alert_type = /atom/movable/screen/alert/status_effect/void_price
var/price = 3 //This is how much hp you lose per tick. Each time the buff is refreshed, it increased by 1. Healing too much in a short period of time will cause your swift demise
/obj/screen/alert/status_effect/void_price
/atom/movable/screen/alert/status_effect/void_price
name = "Void Price"
desc = "Black tendrils cinch tightly against you, digging wicked barbs into your flesh."
icon_state = "shadow_mend"
@@ -108,10 +108,10 @@
id = "blooddrunk"
duration = 10
tick_interval = 0
alert_type = /obj/screen/alert/status_effect/blooddrunk
alert_type = /atom/movable/screen/alert/status_effect/blooddrunk
var/blooddrunk_damage_mod_remove = 4 // Damage is multiplied by this at the end of the status effect. Modify this one, it changes the _add
/obj/screen/alert/status_effect/blooddrunk
/atom/movable/screen/alert/status_effect/blooddrunk
name = "Blood-Drunk"
desc = "You are drunk on blood! Your pulse thunders in your ears! Nothing can harm you!" //not true, and the item description mentions its actual effect
icon_state = "blooddrunk"
@@ -147,7 +147,7 @@
if(islist(owner.stun_absorption) && owner.stun_absorption["blooddrunk"])
owner.remove_stun_absorption("blooddrunk")
/obj/screen/alert/status_effect/dash
/atom/movable/screen/alert/status_effect/dash
name = "Dash"
desc = "Your have the ability to dash!"
icon = 'icons/mob/actions/actions.dmi'
@@ -157,16 +157,16 @@
id = "dash"
duration = 5 SECONDS
tick_interval = 0
alert_type = /obj/screen/alert/status_effect/dash
alert_type = /atom/movable/screen/alert/status_effect/dash
/datum/status_effect/bloodswell
id = "bloodswell"
duration = 30 SECONDS
tick_interval = 0
alert_type = /obj/screen/alert/status_effect/blood_swell
alert_type = /atom/movable/screen/alert/status_effect/blood_swell
var/bonus_damage_applied = FALSE
/obj/screen/alert/status_effect/blood_swell
/atom/movable/screen/alert/status_effect/blood_swell
name = "Blood Swell"
desc = "Your body has been infused with crimson magics, your resistance to attacks has greatly increased!"
icon = 'icons/mob/actions/actions.dmi'
@@ -206,9 +206,9 @@
id = "vampire_gladiator"
duration = 30 SECONDS
tick_interval = 1 SECONDS
alert_type = /obj/screen/alert/status_effect/vampire_gladiator
alert_type = /atom/movable/screen/alert/status_effect/vampire_gladiator
/obj/screen/alert/status_effect/vampire_gladiator
/atom/movable/screen/alert/status_effect/vampire_gladiator
name = "Gladiatorial Resilience"
desc = "Roused by the thrill of the fight, your body has become more resistant to breaking!"
icon = 'icons/mob/actions/actions.dmi'
@@ -408,7 +408,7 @@
if(!heal_points)
return
/obj/screen/alert/status_effect/regenerative_core
/atom/movable/screen/alert/status_effect/regenerative_core
name = "Reinforcing Tendrils"
desc = "You can move faster than your broken body could normally handle!"
icon_state = "regenerative_core"
@@ -418,7 +418,7 @@
id = "Regenerative Core"
duration = 1 MINUTES
status_type = STATUS_EFFECT_REPLACE
alert_type = /obj/screen/alert/status_effect/regenerative_core
alert_type = /atom/movable/screen/alert/status_effect/regenerative_core
/datum/status_effect/regenerative_core/on_apply()
ADD_TRAIT(owner, TRAIT_IGNOREDAMAGESLOWDOWN, id)
@@ -551,9 +551,9 @@
id = "chainsaw_slaying"
duration = 5 SECONDS
status_type = STATUS_EFFECT_REFRESH
alert_type = /obj/screen/alert/status_effect/chainsaw
alert_type = /atom/movable/screen/alert/status_effect/chainsaw
/obj/screen/alert/status_effect/chainsaw
/atom/movable/screen/alert/status_effect/chainsaw
name = "Revved up!"
desc = "<span class='danger'>... guts, huge guts! Kill them... must kill them all!</span>"
icon_state = "chainsaw"
@@ -585,9 +585,9 @@
duration = -1
tick_interval = 2 SECONDS
status_type = STATUS_EFFECT_UNIQUE
alert_type = /obj/screen/alert/status_effect/hope
alert_type = /atom/movable/screen/alert/status_effect/hope
/obj/screen/alert/status_effect/hope
/atom/movable/screen/alert/status_effect/hope
name = "Hope."
desc = "A ray of hope beyond dispair."
icon_state = "hope"
@@ -640,13 +640,13 @@
return ..()
/datum/status_effect/drill_payback/on_apply()
owner.overlay_fullscreen("payback", /obj/screen/fullscreen/payback, 0)
owner.overlay_fullscreen("payback", /atom/movable/screen/fullscreen/payback, 0)
addtimer(CALLBACK(src, PROC_REF(payback_phase_2)), 2.7 SECONDS)
return TRUE
/datum/status_effect/drill_payback/proc/payback_phase_2()
owner.clear_fullscreen("payback")
owner.overlay_fullscreen("payback", /obj/screen/fullscreen/payback, 1)
owner.overlay_fullscreen("payback", /atom/movable/screen/fullscreen/payback, 1)
/datum/status_effect/drill_payback/tick() //They are not staying down. This will be a fight.
if(!drilled_successfully && (get_dist(owner, drilled) >= 9)) //We don't want someone drilling the safe at arivals then raiding bridge with the buff
@@ -752,9 +752,9 @@
id = "bearserker rage"
duration = 5 SECONDS
status_type = STATUS_EFFECT_REFRESH
alert_type = /obj/screen/alert/status_effect/bearserker_rage
alert_type = /atom/movable/screen/alert/status_effect/bearserker_rage
/obj/screen/alert/status_effect/bearserker_rage
/atom/movable/screen/alert/status_effect/bearserker_rage
name = "Bearserker Rage"
desc = "<span class='danger'>Blood flows between your fingers, and Foh'Sie roars; \"MORE BLOOD!\"</span>"
icon_state = "bearserker"
+17 -17
View File
@@ -5,9 +5,9 @@
id = "his_wrath"
duration = -1
tick_interval = 4
alert_type = /obj/screen/alert/status_effect/his_wrath
alert_type = /atom/movable/screen/alert/status_effect/his_wrath
/obj/screen/alert/status_effect/his_wrath
/atom/movable/screen/alert/status_effect/his_wrath
name = "His Wrath"
desc = "You fled from His Grace instead of feeding Him, and now you suffer."
icon_state = "his_grace"
@@ -188,10 +188,10 @@
id = "teleportation sickness"
duration = 30 SECONDS
status_type = STATUS_EFFECT_REFRESH
alert_type = /obj/screen/alert/status_effect/teleport_sickness
alert_type = /atom/movable/screen/alert/status_effect/teleport_sickness
var/teleports = 1
/obj/screen/alert/status_effect/teleport_sickness
/atom/movable/screen/alert/status_effect/teleport_sickness
name = "Teleportation sickness"
desc = "You feel like you are going to throw up with all this teleporting."
icon_state = "bluespace"
@@ -464,7 +464,7 @@
owner.Slur(actual_strength)
if(!alert_thrown)
alert_thrown = TRUE
owner.throw_alert("drunk", /obj/screen/alert/drunk)
owner.throw_alert("drunk", /atom/movable/screen/alert/drunk)
owner.sound_environment_override = SOUND_ENVIRONMENT_PSYCHOTIC
// THRESHOLD_BRAWLING (60 SECONDS)
if(M)
@@ -1011,7 +1011,7 @@
/datum/status_effect/bubblegum_curse
id = "bubblegum curse"
alert_type = /obj/screen/alert/status_effect/bubblegum_curse
alert_type = /atom/movable/screen/alert/status_effect/bubblegum_curse
duration = -1 //Kill it. There is no other option.
tick_interval = 1 SECONDS
/// The damage the status effect does per tick.
@@ -1023,7 +1023,7 @@
/datum/status_effect/bubblegum_curse/on_creation(mob/living/new_owner, mob/living/source)
. = ..()
source_UID = source.UID()
owner.overlay_fullscreen("Bubblegum", /obj/screen/fullscreen/fog, 1)
owner.overlay_fullscreen("Bubblegum", /atom/movable/screen/fullscreen/fog, 1)
/datum/status_effect/bubblegum_curse/tick()
var/mob/living/simple_animal/hostile/megafauna/bubblegum/attacker = locateUID(source_UID)
@@ -1031,7 +1031,7 @@
qdel(src)
if(attacker.health <= attacker.maxHealth / 2)
owner.clear_fullscreen("Bubblegum")
owner.overlay_fullscreen("Bubblegum", /obj/screen/fullscreen/fog, 2)
owner.overlay_fullscreen("Bubblegum", /atom/movable/screen/fullscreen/fog, 2)
if(!coward_checking)
if(owner.z != attacker.z)
addtimer(CALLBACK(src, PROC_REF(onstation_coward_callback)), 12 SECONDS)
@@ -1123,20 +1123,20 @@
playsound(targetturf, 'sound/misc/exit_blood.ogg', 100, TRUE, -1)
addtimer(CALLBACK(attacker, TYPE_PROC_REF(/mob/living/simple_animal/hostile/megafauna/bubblegum, FindTarget), list(owner), 1), 2)
/obj/screen/alert/status_effect/bubblegum_curse
/atom/movable/screen/alert/status_effect/bubblegum_curse
name = "I SEE YOU"
desc = "YOUR SOUL WILL BE MINE FOR YOUR INSOLENCE"
icon_state = "bubblegumjumpscare"
/obj/screen/alert/status_effect/bubblegum_curse/Initialize(mapload)
/atom/movable/screen/alert/status_effect/bubblegum_curse/Initialize(mapload)
. = ..()
START_PROCESSING(SSobj, src)
/obj/screen/alert/status_effect/bubblegum_curse/Destroy()
/atom/movable/screen/alert/status_effect/bubblegum_curse/Destroy()
STOP_PROCESSING(SSobj, src)
return ..()
/obj/screen/alert/status_effect/bubblegum_curse/process()
/atom/movable/screen/alert/status_effect/bubblegum_curse/process()
var/new_filter = isnull(get_filter("ray"))
ray_filter_helper(1, 40,"#ce3030", 6, 20)
if(new_filter)
@@ -1146,10 +1146,10 @@
/datum/status_effect/abductor_cooldown
id = "abductor_cooldown"
alert_type = /obj/screen/alert/status_effect/abductor_cooldown
alert_type = /atom/movable/screen/alert/status_effect/abductor_cooldown
duration = 10 SECONDS
/obj/screen/alert/status_effect/abductor_cooldown
/atom/movable/screen/alert/status_effect/abductor_cooldown
name = "Teleportation cooldown"
desc = "Per article A-113, all experimentors must wait 10000 milliseconds between teleports in order to ensure no long term genetic or mental damage happens to experimentor or test subjects."
icon_state = "bluespace"
@@ -1160,7 +1160,7 @@
/// Purposebuilt for cursed slot machines.
/datum/status_effect/cursed
id = "cursed"
alert_type = /obj/screen/alert/status_effect/cursed
alert_type = /atom/movable/screen/alert/status_effect/cursed
/// The max number of curses a target can incur with this status effect.
var/max_curse_count = DEFAULT_MAX_CURSE_COUNT
/// The amount of times we have been "applied" to the target.
@@ -1304,12 +1304,12 @@
oxy = (curse_count * ticked_coefficient),
)
/obj/screen/alert/status_effect/cursed
/atom/movable/screen/alert/status_effect/cursed
name = "Cursed!"
desc = "The brand on your hand reminds you of your greed, yet you seem to be okay otherwise."
icon_state = "cursed_by_slots"
/obj/screen/alert/status_effect/cursed/update_desc()
/atom/movable/screen/alert/status_effect/cursed/update_desc()
. = ..()
var/datum/status_effect/cursed/linked_effect = attached_effect
var/curses = linked_effect.curse_count
+2 -2
View File
@@ -2,11 +2,11 @@
id = "frozen"
duration = 100
status_type = STATUS_EFFECT_UNIQUE
alert_type = /obj/screen/alert/status_effect/freon
alert_type = /atom/movable/screen/alert/status_effect/freon
var/icon/cube
var/can_melt = TRUE
/obj/screen/alert/status_effect/freon
/atom/movable/screen/alert/status_effect/freon
name = "Frozen Solid"
desc = "You're frozen inside an ice cube, and cannot move! You can still do stuff, like shooting. Resist out of the cube!"
icon_state = "frozen"
+2 -2
View File
@@ -2,11 +2,11 @@
id = "magic_disguise"
duration = -1
tick_interval = -1
alert_type = /obj/screen/alert/status_effect/magic_disguise
alert_type = /atom/movable/screen/alert/status_effect/magic_disguise
status_type = STATUS_EFFECT_REPLACE
var/datum/icon_snapshot/disguise
/obj/screen/alert/status_effect/magic_disguise
/atom/movable/screen/alert/status_effect/magic_disguise
name = "Disguised"
desc = "You are disguised as a crewmember."
icon = 'icons/mob/actions/actions.dmi'
+5 -5
View File
@@ -10,8 +10,8 @@
var/status_type = STATUS_EFFECT_UNIQUE //How many of the effect can be on one mob, and what happens when you try to add another
var/on_remove_on_mob_delete = FALSE //if we call on_remove() when the mob is deleted
var/examine_text //If defined, this text will appear when the mob is examined - to use he, she etc. use "SUBJECTPRONOUN" and replace it in the examines themselves
var/alert_type = /obj/screen/alert/status_effect //the alert thrown by the status effect, contains name and description
var/obj/screen/alert/status_effect/linked_alert = null //the alert itself, if it exists
var/alert_type = /atom/movable/screen/alert/status_effect //the alert thrown by the status effect, contains name and description
var/atom/movable/screen/alert/status_effect/linked_alert = null //the alert itself, if it exists
/datum/status_effect/New(list/arguments)
on_creation(arglist(arguments))
@@ -28,7 +28,7 @@
duration = world.time + duration
tick_interval = world.time + tick_interval
if(alert_type)
var/obj/screen/alert/status_effect/A = owner.throw_alert(id, alert_type)
var/atom/movable/screen/alert/status_effect/A = owner.throw_alert(id, alert_type)
A.attached_effect = src //so the alert can reference us, if it needs to
linked_alert = A //so we can reference the alert, if we need to
if(duration > 0 || initial(tick_interval) > 0) //don't process if we don't care
@@ -89,12 +89,12 @@
// ALERT HOOK //
////////////////
/obj/screen/alert/status_effect
/atom/movable/screen/alert/status_effect
name = "Curse of Mundanity"
desc = "You don't feel any different..."
var/datum/status_effect/attached_effect
/obj/screen/alert/status_effect/Destroy()
/atom/movable/screen/alert/status_effect/Destroy()
if(attached_effect)
attached_effect.linked_alert = null
attached_effect = null
@@ -164,7 +164,7 @@
if(lum_count > 0.2)
if(!thrown_alert)
thrown_alert = TRUE
throw_alert("light", /obj/screen/alert/lightexposure)
throw_alert("light", /atom/movable/screen/alert/lightexposure)
alpha = 255
speed = initial(speed)
else
@@ -12,8 +12,8 @@
var/toggle = FALSE
var/stealthcooldown = 0
var/default_stealth_cooldown = 10 SECONDS
var/obj/screen/alert/canstealthalert
var/obj/screen/alert/instealthalert
var/atom/movable/screen/alert/canstealthalert
var/atom/movable/screen/alert/instealthalert
/mob/living/simple_animal/hostile/guardian/assassin/Initialize(mapload, mob/living/host)
. = ..()
@@ -88,12 +88,12 @@
if(stealthcooldown <= world.time)
if(toggle)
if(!instealthalert)
instealthalert = throw_alert("instealth", /obj/screen/alert/instealth)
instealthalert = throw_alert("instealth", /atom/movable/screen/alert/instealth)
clear_alert("canstealth")
canstealthalert = null
else
if(!canstealthalert)
canstealthalert = throw_alert("canstealth", /obj/screen/alert/canstealth)
canstealthalert = throw_alert("canstealth", /atom/movable/screen/alert/canstealth)
clear_alert("instealth")
instealthalert = null
else
@@ -11,13 +11,13 @@
tech_fluff_string = "Boot sequence complete. Charge modules loaded. Holoparasite swarm online."
bio_fluff_string = "Your scarab swarm finishes mutating and stirs to life, ready to deal damage."
var/charging = FALSE
var/obj/screen/alert/chargealert
var/atom/movable/screen/alert/chargealert
/mob/living/simple_animal/hostile/guardian/charger/Life()
. = ..()
if(ranged_cooldown <= world.time)
if(!chargealert)
chargealert = throw_alert("charge", /obj/screen/alert/cancharge)
chargealert = throw_alert("charge", /atom/movable/screen/alert/cancharge)
else
clear_alert("charge")
chargealert = null
@@ -40,7 +40,7 @@
id = "morph_ambush"
duration = -1
tick_interval = MORPH_AMBUSH_PERFECTION_TIME
alert_type = /obj/screen/alert/status_effect/morph_ambush
alert_type = /atom/movable/screen/alert/status_effect/morph_ambush
/datum/status_effect/morph_ambush/tick()
STOP_PROCESSING(SSfastprocess, src)
@@ -49,7 +49,7 @@
linked_alert.name = "Perfect Ambush!"
linked_alert.desc = "You have prepared an ambush! Your disguise is flawless!"
/obj/screen/alert/status_effect/morph_ambush
/atom/movable/screen/alert/status_effect/morph_ambush
name = "Ambush!"
desc = "You have prepared an ambush!"
icon_state = "morph_ambush"
@@ -502,7 +502,7 @@
// 2 * initial_rate - upgrade_level
rate += initial(health_loss_rate)
adjustHealth(rate)
throw_alert(ALERT_CATEGORY_NOPOWER, /obj/screen/alert/pulse_nopower)
throw_alert(ALERT_CATEGORY_NOPOWER, /atom/movable/screen/alert/pulse_nopower)
if(regen_lock > 0)
if(--regen_lock == 0)
@@ -704,7 +704,7 @@
return
visible_message("<span class='danger'>[src] [pick("fizzles", "wails", "flails")] in anguish!</span>")
playsound(get_turf(src), pick(hurt_sounds), 30, TRUE)
throw_alert(ALERT_CATEGORY_NOREGEN, /obj/screen/alert/pulse_noregen)
throw_alert(ALERT_CATEGORY_NOREGEN, /atom/movable/screen/alert/pulse_noregen)
switch(severity)
if(EMP_LIGHT)
adjustHealth(round(max(initial(health) / 4, round(maxHealth / 8))))
@@ -843,12 +843,12 @@
cell_location.update_icon() //update power meters and such
cell_to_charge.update_icon()
/obj/screen/alert/pulse_nopower
/atom/movable/screen/alert/pulse_nopower
name = "No Power"
desc = "You are not connected to a cable or machine and are losing health!"
icon_state = "pd_nopower"
/obj/screen/alert/pulse_noregen
/atom/movable/screen/alert/pulse_noregen
name = "Regeneration Stalled"
desc = "You've been EMP'd and cannot regenerate health!"
icon_state = "pd_noregen"
+1 -1
View File
@@ -144,7 +144,7 @@
SEND_SOUND(player_client, sound('sound/misc/notice2.ogg'))
window_flash(player_client)
var/obj/screen/alert/notify_soulstone/A = player_mob.throw_alert("\ref[src]_soulstone_thingy", /obj/screen/alert/notify_soulstone)
var/atom/movable/screen/alert/notify_soulstone/A = player_mob.throw_alert("\ref[src]_soulstone_thingy", /atom/movable/screen/alert/notify_soulstone)
if(player_client.prefs && player_client.prefs.UI_style)
A.icon = ui_style2icon(player_client.prefs.UI_style)
+1 -1
View File
@@ -390,7 +390,7 @@
/obj/machinery/camera/get_remote_view_fullscreens(mob/user)
if(view_range == short_range) //unfocused
user.overlay_fullscreen("remote_view", /obj/screen/fullscreen/impaired, 2)
user.overlay_fullscreen("remote_view", /atom/movable/screen/fullscreen/impaired, 2)
/obj/machinery/camera/update_remote_sight(mob/living/user)
if(isXRay() && isAI(user))
@@ -206,9 +206,9 @@
var/obj/machinery/camera/final = T[camera]
playsound(origin, "terminal_type", 25, 0)
if(final)
playsound(origin, 'sound/machines/terminal_prompt_confirm.ogg', 25, 0)
playsound(origin, 'sound/machines/terminal_prompt_confirm.ogg', 25, FALSE)
remote_eye.setLoc(get_turf(final))
C.overlay_fullscreen("flash", /obj/screen/fullscreen/flash/noise)
C.overlay_fullscreen("flash", /atom/movable/screen/fullscreen/flash/noise)
C.clear_fullscreen("flash", 3) //Shorter flash than normal since it's an ~~advanced~~ console!
else
playsound(origin, 'sound/machines/terminal_prompt_deny.ogg', 25, 0)
playsound(origin, 'sound/machines/terminal_prompt_deny.ogg', 25, FALSE)
@@ -15,10 +15,10 @@
// Stuff needed to render the map
var/map_name
var/const/default_map_size = 15
var/obj/screen/map_view/cam_screen
var/atom/movable/screen/map_view/cam_screen
/// All the plane masters that need to be applied.
var/list/cam_plane_masters
var/obj/screen/background/cam_background
var/atom/movable/screen/background/cam_background
// Parent object this camera is assigned to. Used for camera bugs
var/atom/movable/parent
@@ -39,8 +39,8 @@
cam_screen.del_on_map_removal = FALSE
cam_screen.screen_loc = "[map_name]:1,1"
cam_plane_masters = list()
for(var/plane in subtypesof(/obj/screen/plane_master))
var/obj/screen/instance = new plane()
for(var/plane in subtypesof(/atom/movable/screen/plane_master))
var/atom/movable/screen/instance = new plane()
instance.assigned_map = map_name
instance.del_on_map_removal = FALSE
instance.screen_loc = "[map_name]:CENTER"
+2 -2
View File
@@ -94,10 +94,10 @@
/// pushes an alert to the AI and its borgs about the law changes
/obj/machinery/computer/aiupload/proc/alert_silicons()
current.show_laws()
current.throw_alert("newlaw", /obj/screen/alert/newlaw)
current.throw_alert("newlaw", /atom/movable/screen/alert/newlaw)
for(var/mob/living/silicon/robot/borg in current.connected_robots)
borg.cmd_show_laws()
borg.throw_alert("newlaw", /obj/screen/alert/newlaw)
borg.throw_alert("newlaw", /atom/movable/screen/alert/newlaw)
/obj/machinery/computer/aiupload/attack_hand(mob/user)
if(stat & NOPOWER)
+10 -10
View File
@@ -329,7 +329,7 @@
if(move_type & (MECHAMOVE_RAND | MECHAMOVE_STEP) && occupant)
var/obj/machinery/atmospherics/unary/portables_connector/possible_port = locate(/obj/machinery/atmospherics/unary/portables_connector) in loc
if(possible_port)
var/obj/screen/alert/mech_port_available/A = occupant.throw_alert("mechaport", /obj/screen/alert/mech_port_available)
var/atom/movable/screen/alert/mech_port_available/A = occupant.throw_alert("mechaport", /atom/movable/screen/alert/mech_port_available)
if(A)
A.target = possible_port
else
@@ -1059,10 +1059,10 @@
if(occupant)
occupant.clear_alert("mechaport")
occupant.throw_alert("mechaport_d", /obj/screen/alert/mech_port_disconnect)
occupant.throw_alert("mechaport_d", /atom/movable/screen/alert/mech_port_disconnect)
log_message("Connected to gas port.")
return 1
return TRUE
/obj/mecha/proc/disconnect()
if(!connected_port)
@@ -1167,9 +1167,9 @@
else if(!hasInternalDamage())
SEND_SOUND(occupant, sound(nominalsound, volume = 50))
if(state)
H.throw_alert("locked", /obj/screen/alert/mech_maintenance)
H.throw_alert("locked", /atom/movable/screen/alert/mech_maintenance)
if(connected_port)
H.throw_alert("mechaport_d", /obj/screen/alert/mech_port_disconnect)
H.throw_alert("mechaport_d", /atom/movable/screen/alert/mech_port_disconnect)
return TRUE
else
return FALSE
@@ -1394,20 +1394,20 @@
if(0.75 to INFINITY)
occupant.clear_alert("charge")
if(0.5 to 0.75)
occupant.throw_alert("charge", /obj/screen/alert/mech_lowcell, 1)
occupant.throw_alert("charge", /atom/movable/screen/alert/mech_lowcell, 1)
if(0.25 to 0.5)
occupant.throw_alert("charge", /obj/screen/alert/mech_lowcell, 2)
occupant.throw_alert("charge", /atom/movable/screen/alert/mech_lowcell, 2)
if(power_warned)
power_warned = FALSE
if(0.01 to 0.25)
occupant.throw_alert("charge", /obj/screen/alert/mech_lowcell, 3)
occupant.throw_alert("charge", /atom/movable/screen/alert/mech_lowcell, 3)
if(!power_warned)
SEND_SOUND(occupant, sound(lowpowersound, volume = 50))
power_warned = TRUE
else
occupant.throw_alert("charge", /obj/screen/alert/mech_emptycell)
occupant.throw_alert("charge", /atom/movable/screen/alert/mech_emptycell)
else
occupant.throw_alert("charge", /obj/screen/alert/mech_nocell)
occupant.throw_alert("charge", /atom/movable/screen/alert/mech_nocell)
/obj/mecha/proc/reset_icon()
if(initial_icon)
+1 -1
View File
@@ -331,7 +331,7 @@
state = 1
to_chat(user, "The securing bolts are now exposed.")
if(occupant)
occupant.throw_alert("locked", /obj/screen/alert/mech_maintenance)
occupant.throw_alert("locked", /atom/movable/screen/alert/mech_maintenance)
else if(state==1)
state = 0
to_chat(user, "The securing bolts are now hidden.")
+1 -1
View File
@@ -90,7 +90,7 @@
M.setDir(dir)
buckled_mobs |= M
ADD_TRAIT(M, TRAIT_IMMOBILIZED, BUCKLING_TRAIT)
M.throw_alert("buckled", /obj/screen/alert/restrained/buckled)
M.throw_alert("buckled", /atom/movable/screen/alert/restrained/buckled)
post_buckle_mob(M)
SEND_SIGNAL(src, COMSIG_MOVABLE_BUCKLE, M, force)
return TRUE
@@ -372,7 +372,7 @@
/datum/hud/sword/New(mob/user)
..()
mymob.healths = new /obj/screen/healths()
mymob.healths = new /atom/movable/screen/healths()
infodisplay += mymob.healths
/mob/living/simple_animal/shade/sword/ClickOn(atom/A, params)
@@ -61,7 +61,7 @@
/obj/item/storage/belt/MouseDrop(obj/over_object, src_location, over_location)
var/mob/M = usr
if(!istype(over_object, /obj/screen))
if(!is_screen_atom(over_object))
return ..()
playsound(loc, "rustle", 50, TRUE, -5)
if(!M.restrained() && !M.stat && can_use())
@@ -37,10 +37,10 @@
if(over_object == user && Adjacent(user)) // this must come before the screen objects only block
open(user)
return 0
return FALSE
if(!istype(over_object, /obj/screen))
return 1
if(!is_screen_atom(over_object))
return TRUE
//makes sure master_item is equipped before putting it in hand, so that we can't drag it into our hand from miles away.
//there's got to be a better way of doing this...
@@ -26,8 +26,8 @@
var/max_combined_w_class = 14
/// The number of storage slots in this container.
var/storage_slots = 7
var/obj/screen/storage/boxes = null
var/obj/screen/close/closer = null
var/atom/movable/screen/storage/boxes = null
var/atom/movable/screen/close/closer = null
/// Set this to make it possible to use this item in an inverse way, so you can have the item in your hand and click items on the floor to pick them up.
var/use_to_pickup = FALSE
@@ -59,14 +59,14 @@
populate_contents()
boxes = new /obj/screen/storage()
boxes = new /atom/movable/screen/storage()
boxes.name = "storage"
boxes.master = src
boxes.icon_state = "block"
boxes.screen_loc = "7,7 to 10,8"
boxes.layer = HUD_LAYER
boxes.plane = HUD_PLANE
closer = new /obj/screen/close()
closer = new /atom/movable/screen/close()
closer.master = src
closer.icon_state = "backpack_close"
closer.layer = ABOVE_HUD_LAYER
@@ -136,7 +136,7 @@
update_icon() // For content-sensitive icons
return
if(!(istype(over_object, /obj/screen)))
if(!is_screen_atom(over_object))
return ..()
if(!(loc == M) || (loc && loc.loc == M))
return
@@ -233,7 +233,7 @@
/obj/structure/closet/MouseDrop_T(atom/movable/O, mob/living/user)
..()
if(istype(O, /obj/screen)) //fix for HUD elements making their way into the world -Pete
if(is_screen_atom(O)) //fix for HUD elements making their way into the world -Pete
return
if(O.loc == user)
return
@@ -371,7 +371,7 @@
/obj/structure/closet/get_remote_view_fullscreens(mob/user)
if(user.stat == DEAD || !(user.sight & (SEEOBJS|SEEMOBS)))
user.overlay_fullscreen("remote_view", /obj/screen/fullscreen/impaired, 1)
user.overlay_fullscreen("remote_view", /atom/movable/screen/fullscreen/impaired, 1)
/obj/structure/closet/ex_act(severity)
for(var/atom/A in contents)
+2 -2
View File
@@ -241,7 +241,7 @@
/obj/structure/morgue/get_remote_view_fullscreens(mob/user)
if(user.stat == DEAD || !(user.sight & (SEEOBJS|SEEMOBS)))
user.overlay_fullscreen("remote_view", /obj/screen/fullscreen/impaired, 2)
user.overlay_fullscreen("remote_view", /atom/movable/screen/fullscreen/impaired, 2)
/*
* Morgue tray
@@ -534,7 +534,7 @@ GLOBAL_LIST_EMPTY(crematoriums)
/obj/structure/crematorium/get_remote_view_fullscreens(mob/user)
if(user.stat == DEAD || !(user.sight & (SEEOBJS|SEEMOBS)))
user.overlay_fullscreen("remote_view", /obj/screen/fullscreen/impaired, 2)
user.overlay_fullscreen("remote_view", /atom/movable/screen/fullscreen/impaired, 2)
/*
* Crematorium tray
+2 -2
View File
@@ -359,13 +359,13 @@ GLOBAL_LIST_EMPTY(safes)
drill.song.start_playing(driller)
notify_ghosts("Security assault in progress in [get_area(src)]!", enter_link="<a href=?src=[UID()];follow=1>(Click to jump to!)</a>", source = src, action = NOTIFY_FOLLOW)
for(var/mob/dead/observer/O in GLOB.player_list)
O.overlay_fullscreen("payback", /obj/screen/fullscreen/payback, 0)
O.overlay_fullscreen("payback", /atom/movable/screen/fullscreen/payback, 0)
addtimer(CALLBACK(src, PROC_REF(ghost_payback_phase_2)), 2.7 SECONDS)
/obj/structure/safe/proc/ghost_payback_phase_2()
for(var/mob/dead/observer/O in GLOB.player_list)
O.clear_fullscreen("payback")
O.overlay_fullscreen("payback", /obj/screen/fullscreen/payback, 1)
O.overlay_fullscreen("payback", /atom/movable/screen/fullscreen/payback, 1)
addtimer(CALLBACK(src, PROC_REF(clear_payback)), 2 MINUTES)
/obj/structure/safe/proc/clear_payback()
@@ -75,7 +75,7 @@
if(istype(hugger_mask) && !hugger_mask.sterile && (locate(/obj/item/organ/internal/body_egg/alien_embryo) in buckled_mob.internal_organs))
if(user && !isalien(user))
return
buckled_mob.throw_alert("ghost_nest", /obj/screen/alert/ghost)
buckled_mob.throw_alert("ghost_nest", /atom/movable/screen/alert/ghost)
to_chat(buckled_mob, "<span class='ghostalert'>You may now ghost, you keep respawnability in this state. You will be alerted when you're removed from the nest.</span>")
/obj/structure/bed/nest/post_buckle_mob(mob/living/M)
@@ -260,7 +260,7 @@
if(owner.current.hud_used)
var/datum/hud/hud = owner.current.hud_used
if(!hud.vampire_blood_display)
hud.vampire_blood_display = new /obj/screen()
hud.vampire_blood_display = new /atom/movable/screen()
hud.vampire_blood_display.name = "Usable Blood"
hud.vampire_blood_display.icon_state = "blood_display"
hud.vampire_blood_display.screen_loc = "WEST:6,CENTER-1:15"
@@ -482,7 +482,7 @@
return
/obj/machinery/atmospherics/unary/cryo_cell/get_remote_view_fullscreens(mob/user)
user.overlay_fullscreen("remote_view", /obj/screen/fullscreen/impaired, 1)
user.overlay_fullscreen("remote_view", /atom/movable/screen/fullscreen/impaired, 1)
/obj/machinery/atmospherics/unary/cryo_cell/update_remote_sight(mob/living/user)
return //we don't see the pipe network while inside cryo.
+9 -9
View File
@@ -12,10 +12,10 @@
var/switch_state = BM_SWITCHSTATE_NONE
var/switch_width = 5
// modeswitch UI
var/obj/screen/buildmode/mode/modebutton
var/atom/movable/screen/buildmode/mode/modebutton
var/list/modeswitch_buttons = list()
// dirswitch UI
var/obj/screen/buildmode/bdir/dirbutton
var/atom/movable/screen/buildmode/bdir/dirbutton
var/list/dirswitch_buttons = list()
/datum/click_intercept/buildmode/New()
@@ -32,23 +32,23 @@
/datum/click_intercept/buildmode/create_buttons()
// keep a reference so we can update it upon mode switch
modebutton = new /obj/screen/buildmode/mode(src)
modebutton = new /atom/movable/screen/buildmode/mode(src)
buttons += modebutton
buttons += new /obj/screen/buildmode/help(src)
buttons += new /atom/movable/screen/buildmode/help(src)
// keep a reference so we can update it upon dir switch
dirbutton = new /obj/screen/buildmode/bdir(src)
dirbutton = new /atom/movable/screen/buildmode/bdir(src)
buttons += dirbutton
buttons += new /obj/screen/buildmode/quit(src)
buttons += new /atom/movable/screen/buildmode/quit(src)
// build the list of modeswitching buttons
build_options_grid(subtypesof(/datum/buildmode_mode), modeswitch_buttons, /obj/screen/buildmode/modeswitch)
build_options_grid(list(SOUTH,EAST,WEST,NORTH,NORTHWEST), dirswitch_buttons, /obj/screen/buildmode/dirswitch)
build_options_grid(subtypesof(/datum/buildmode_mode), modeswitch_buttons, /atom/movable/screen/buildmode/modeswitch)
build_options_grid(list(SOUTH,EAST,WEST,NORTH,NORTHWEST), dirswitch_buttons, /atom/movable/screen/buildmode/dirswitch)
/datum/click_intercept/buildmode/proc/build_options_grid(list/elements, list/buttonslist, buttontype)
var/pos_idx = 0
for(var/thing in elements)
var/x = pos_idx % switch_width
var/y = FLOOR(pos_idx / switch_width, 1)
var/obj/screen/buildmode/B = new buttontype(src, thing)
var/atom/movable/screen/buildmode/B = new buttontype(src, thing)
// this stuff is equivalent to the commented out line for 511 compat
// B.screen_loc = "NORTH-[(1 + 0.5 + y*1.5)],WEST+[0.5 + x*1.5]"
B.screen_loc = "NORTH-[1 + FLOOR(0.5 + 1.5*y, 1) + ((y + 1) % 2)]:[16*((y + 1) % 2)],WEST+[FLOOR(0.5 + 1.5*x, 1)]:[16*((x + 1) % 2)]"
+19 -19
View File
@@ -1,22 +1,22 @@
/obj/screen/buildmode
/atom/movable/screen/buildmode
icon = 'icons/misc/buildmode.dmi'
var/datum/click_intercept/buildmode/bd
plane = HUD_PLANE_BUILDMODE
/obj/screen/buildmode/New(bld)
/atom/movable/screen/buildmode/New(bld)
bd = bld
return ..()
/obj/screen/buildmode/Destroy()
/atom/movable/screen/buildmode/Destroy()
bd = null
return ..()
/obj/screen/buildmode/mode
/atom/movable/screen/buildmode/mode
name = "Toggle Mode"
icon_state = "buildmode_basic"
screen_loc = "NORTH,WEST"
/obj/screen/buildmode/mode/Click(location, control, params)
/atom/movable/screen/buildmode/mode/Click(location, control, params)
var/list/pa = params2list(params)
if(pa.Find("left"))
@@ -26,64 +26,64 @@
update_icon()
return TRUE
/obj/screen/buildmode/mode/update_icon_state()
/atom/movable/screen/buildmode/mode/update_icon_state()
icon_state = bd.mode.get_button_iconstate()
/obj/screen/buildmode/help
/atom/movable/screen/buildmode/help
icon_state = "buildhelp"
screen_loc = "NORTH,WEST+1"
name = "Buildmode Help"
/obj/screen/buildmode/help/Click()
/atom/movable/screen/buildmode/help/Click()
bd.mode.show_help(usr)
return TRUE
/obj/screen/buildmode/bdir
/atom/movable/screen/buildmode/bdir
icon_state = "build"
screen_loc = "NORTH,WEST+2"
name = "Change Dir"
/obj/screen/buildmode/bdir/update_icon(updates=UPDATE_ICON_STATE)
/atom/movable/screen/buildmode/bdir/update_icon(updates=UPDATE_ICON_STATE)
dir = bd.build_dir
..()
/obj/screen/buildmode/bdir/Click()
/atom/movable/screen/buildmode/bdir/Click()
bd.toggle_dirswitch()
update_icon()
return TRUE
// used to switch between modes
/obj/screen/buildmode/modeswitch
/atom/movable/screen/buildmode/modeswitch
var/datum/buildmode_mode/modetype
/obj/screen/buildmode/modeswitch/New(bld, mt)
/atom/movable/screen/buildmode/modeswitch/New(bld, mt)
modetype = mt
icon_state = "buildmode_[initial(modetype.key)]"
name = initial(modetype.key)
return ..(bld)
/obj/screen/buildmode/modeswitch/Click()
/atom/movable/screen/buildmode/modeswitch/Click()
bd.change_mode(modetype)
return TRUE
// used to switch between dirs
/obj/screen/buildmode/dirswitch
/atom/movable/screen/buildmode/dirswitch
icon_state = "build"
/obj/screen/buildmode/dirswitch/New(bld, newdir)
/atom/movable/screen/buildmode/dirswitch/New(bld, newdir)
dir = newdir
name = dir2text(dir)
return ..(bld)
/obj/screen/buildmode/dirswitch/Click()
/atom/movable/screen/buildmode/dirswitch/Click()
bd.change_dir(dir)
return TRUE
/obj/screen/buildmode/quit
/atom/movable/screen/buildmode/quit
icon_state = "buildquit"
screen_loc = "NORTH,WEST+3"
name = "Quit Buildmode"
/obj/screen/buildmode/quit/Click()
/atom/movable/screen/buildmode/quit/Click()
bd.quit()
return TRUE
+2 -2
View File
@@ -56,7 +56,7 @@
preload_rsc = 0 // This is 0 so we can set it to an URL once the player logs in and have them download the resources from a different server.
var/obj/screen/click_catcher/void
var/atom/movable/screen/click_catcher/void
var/ip_intel = "Disabled"
@@ -66,7 +66,7 @@
var/datum/tooltip/tooltips
// Overlay for showing debug info
var/obj/screen/debugtextholder/debug_text_overlay
var/atom/movable/screen/debugtextholder/debug_text_overlay
/// Persistent storage for the flavour text of examined atoms.
var/list/description_holders = list()
@@ -1012,7 +1012,7 @@
if("thought_bubble")
toggles2 ^= PREFTOGGLE_2_THOUGHT_BUBBLE
if(length(parent?.screen))
var/obj/screen/plane_master/point/PM = locate(/obj/screen/plane_master/point) in parent.screen
var/atom/movable/screen/plane_master/point/PM = locate(/atom/movable/screen/plane_master/point) in parent.screen
PM.backdrop(parent.mob)
if("be_special")
@@ -1092,7 +1092,7 @@
if("ambientocclusion")
toggles ^= PREFTOGGLE_AMBIENT_OCCLUSION
if(length(parent?.screen))
var/obj/screen/plane_master/game_world/PM = locate(/obj/screen/plane_master/game_world) in parent.screen
var/atom/movable/screen/plane_master/game_world/PM = locate(/atom/movable/screen/plane_master/game_world) in parent.screen
PM.backdrop(parent.mob)
if("parallax")
+3 -3
View File
@@ -3,11 +3,11 @@
endWhen = 7
var/next_meteor = 6
var/waves = 1
var/obj/screen/alert/augury/meteor/screen_alert
var/atom/movable/screen/alert/augury/meteor/screen_alert
/datum/event/meteor_wave/setup()
for(var/mob/dead/observer/O in GLOB.dead_mob_list)
var/obj/screen/alert/augury/meteor/A = O.throw_alert("\ref[src]_augury", /obj/screen/alert/augury/meteor)
var/atom/movable/screen/alert/augury/meteor/A = O.throw_alert("\ref[src]_augury", /atom/movable/screen/alert/augury/meteor)
if(A)
screen_alert = A
@@ -23,7 +23,7 @@
/datum/event/meteor_wave/tick()
// keep observers updated with the alert
for(var/mob/dead/observer/O in GLOB.dead_mob_list)
O.throw_alert("\ref[src]_augury", /obj/screen/alert/augury/meteor)
O.throw_alert("\ref[src]_augury", /atom/movable/screen/alert/augury/meteor)
if(waves && activeFor >= next_meteor)
INVOKE_ASYNC(GLOBAL_PROC, GLOBAL_PROC_REF(spawn_meteors), get_meteor_count(), get_meteors())
next_meteor += rand(15, 30) / severity
+1 -1
View File
@@ -239,7 +239,7 @@
if(!ishuman(M))
return
if(istype(over, /obj/screen))
if(is_screen_atom(over))
if(!remove_item_from_storage(get_turf(M)))
M.unEquip(src)
switch(over.name)
+13 -13
View File
@@ -15,19 +15,19 @@
duration = list(10 SECONDS, 25 SECONDS)
/// The possible alerts to be displayed. Key is alert type, value is alert category.
var/list/alerts = list(
/obj/screen/alert/not_enough_oxy = "not_enough_oxy",
/obj/screen/alert/not_enough_tox = "not_enough_tox",
/obj/screen/alert/not_enough_co2 = "not_enough_co2",
/obj/screen/alert/not_enough_nitro = "not_enough_nitro",
/obj/screen/alert/too_much_oxy = "too_much_oxy",
/obj/screen/alert/too_much_co2 = "too_much_co2",
/obj/screen/alert/too_much_tox = "too_much_tox",
/obj/screen/alert/hunger/fat = "nutrition",
/obj/screen/alert/hunger/starving = "nutrition",
/obj/screen/alert/hot = "temp",
/obj/screen/alert/cold = "temp",
/obj/screen/alert/highpressure = "pressure",
/obj/screen/alert/lowpressure = "pressure",
/atom/movable/screen/alert/not_enough_oxy = "not_enough_oxy",
/atom/movable/screen/alert/not_enough_tox = "not_enough_tox",
/atom/movable/screen/alert/not_enough_co2 = "not_enough_co2",
/atom/movable/screen/alert/not_enough_nitro = "not_enough_nitro",
/atom/movable/screen/alert/too_much_oxy = "too_much_oxy",
/atom/movable/screen/alert/too_much_co2 = "too_much_co2",
/atom/movable/screen/alert/too_much_tox = "too_much_tox",
/atom/movable/screen/alert/hunger/fat = "nutrition",
/atom/movable/screen/alert/hunger/starving = "nutrition",
/atom/movable/screen/alert/hot = "temp",
/atom/movable/screen/alert/cold = "temp",
/atom/movable/screen/alert/highpressure = "pressure",
/atom/movable/screen/alert/lowpressure = "pressure",
)
/// Alert severities. Only needed for some alerts such as temperature or pressure. Key is alert category, value is severity.
var/list/severities = list(
+13 -13
View File
@@ -1,4 +1,4 @@
/obj/screen/text/blurb
/atom/movable/screen/text/blurb
maptext_height = 64
maptext_width = 512
screen_loc = "LEFT+1,BOTTOM+2"
@@ -33,7 +33,7 @@
var/background_a = 0
/obj/screen/text/blurb/proc/show_to(list/client/viewers)
/atom/movable/screen/text/blurb/proc/show_to(list/client/viewers)
if(!blurb_text || !viewers)
return
@@ -52,12 +52,12 @@
print_text()
if(hold_for)
addtimer(CALLBACK(src, TYPE_PROC_REF(/obj/screen/text/blurb, hide_from), viewers), hold_for)
addtimer(CALLBACK(src, TYPE_PROC_REF(/atom/movable/screen/text/blurb, hide_from), viewers), hold_for)
else
hide_from(viewers)
/obj/screen/text/blurb/proc/get_text_style()
/atom/movable/screen/text/blurb/proc/get_text_style()
PRIVATE_PROC(TRUE)
return {"\
@@ -69,25 +69,25 @@
color: [text_color];
"}
/obj/screen/text/blurb/proc/hide_from(list/client/viewers)
/atom/movable/screen/text/blurb/proc/hide_from(list/client/viewers)
PRIVATE_PROC(TRUE)
fade()
addtimer(CALLBACK(src, TYPE_PROC_REF(/obj/screen/text/blurb, remove_from_viewers), viewers), fade_animation_duration)
addtimer(CALLBACK(src, TYPE_PROC_REF(/atom/movable/screen/text/blurb, remove_from_viewers), viewers), fade_animation_duration)
/obj/screen/text/blurb/proc/appear()
/atom/movable/screen/text/blurb/proc/appear()
PRIVATE_PROC(TRUE)
animate(src, alpha = 255, time = appear_animation_duration)
/obj/screen/text/blurb/proc/fade()
/atom/movable/screen/text/blurb/proc/fade()
PRIVATE_PROC(TRUE)
animate(src, alpha = 0, time = fade_animation_duration)
/obj/screen/text/blurb/proc/print_text()
/atom/movable/screen/text/blurb/proc/print_text()
PRIVATE_PROC(TRUE)
var/text_style = get_text_style()
@@ -97,10 +97,10 @@
maptext += get_formatted_text_segment(text_style, segment_start, segment_end)
sleep(interval)
/obj/screen/text/blurb/proc/get_formatted_text_segment(style, segment_start, segment_end)
/atom/movable/screen/text/blurb/proc/get_formatted_text_segment(style, segment_start, segment_end)
return "<span style=\"[style]\">[copytext_char(blurb_text, segment_start, segment_end)]</span>"
/obj/screen/text/blurb/proc/remove_from_viewers(list/client/viewers)
/atom/movable/screen/text/blurb/proc/remove_from_viewers(list/client/viewers)
PRIVATE_PROC(TRUE)
for(var/client/viewer as anything in viewers)
@@ -116,7 +116,7 @@
return
SEND_SOUND(show_blurb_to, sound('sound/machines/typewriter.ogg'))
var/obj/screen/text/blurb/location_blurb = new()
var/atom/movable/screen/text/blurb/location_blurb = new()
if(antag_check.antag_datums)
for(var/datum/antagonist/role)
if(role.custom_blurb())
@@ -146,7 +146,7 @@
if(!length(GLOB.clients))
return
var/obj/screen/text/blurb/server_restart_blurb = new()
var/atom/movable/screen/text/blurb/server_restart_blurb = new()
server_restart_blurb.text_color = COLOR_RED
server_restart_blurb.blurb_text = "Round is restarting...\n[reason]"
server_restart_blurb.hold_for = 90 SECONDS
+1 -1
View File
@@ -45,7 +45,7 @@
html_tags += list(html_tag, html_tag + 1, html_tag + 2, html_tag + 3)
html_tag = findtext(message, regex("</.>"), html_tag + 3)
var/obj/screen/text/T = new()
var/atom/movable/screen/text/T = new()
T.screen_loc = screen_position
switch(text_alignment)
if("center")
+6 -6
View File
@@ -463,25 +463,25 @@
/obj/item/bostaff/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK)
if(HAS_TRAIT(src, TRAIT_WIELDED))
return ..()
return 0
return FALSE
/obj/screen/combo
/atom/movable/screen/combo
icon_state = ""
mouse_opacity = MOUSE_OPACITY_TRANSPARENT
screen_loc = ui_combo
layer = ABOVE_HUD_LAYER
var/streak
/obj/screen/combo/proc/clear_streak()
/atom/movable/screen/combo/proc/clear_streak()
cut_overlays()
streak = ""
icon_state = ""
/obj/screen/combo/update_icon(updates, _streak)
/atom/movable/screen/combo/update_icon(updates, _streak)
streak = _streak
return ..()
/obj/screen/combo/update_overlays()
/atom/movable/screen/combo/update_overlays()
. = list()
for(var/i in 1 to length(streak))
var/intent_text = copytext(streak, i, i + 1)
@@ -489,7 +489,7 @@
intent_icon.pixel_x = 16 * (i - 1) - 8 * length(streak)
. += intent_icon
/obj/screen/combo/update_icon_state()
/atom/movable/screen/combo/update_icon_state()
icon_state = ""
if(!streak)
return
@@ -66,9 +66,9 @@
return
if(!M.restrained() && !M.stat)
playsound(loc, "rustle", 50, 1, -5)
playsound(loc, "rustle", 50, TRUE, -5)
if(istype(over_object, /obj/screen/inventory/hand))
if(istype(over_object, /atom/movable/screen/inventory/hand))
if(!M.unEquip(src))
return
M.put_in_active_hand(src)
@@ -314,7 +314,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
if(message)
to_chat(src, "<span class='ghostalert'>[message]</span>")
if(source)
var/obj/screen/alert/A = throw_alert("\ref[source]_notify_cloning", /obj/screen/alert/notify_cloning)
var/atom/movable/screen/alert/A = throw_alert("\ref[source]_notify_cloning", /atom/movable/screen/alert/notify_cloning)
if(A)
if(client && client.prefs && client.prefs.UI_style)
A.icon = ui_style2icon(client.prefs.UI_style)
+1 -1
View File
@@ -200,7 +200,7 @@
mmi = null
return ..()
/datum/action/generic/configure_mmi_radio/ApplyIcon(obj/screen/movable/action_button/current_button)
/datum/action/generic/configure_mmi_radio/ApplyIcon(atom/movable/screen/movable/action_button/current_button)
icon_icon = mmi.icon
button_icon_state = mmi.icon_state
..()
@@ -91,7 +91,7 @@
// +/- 50 degrees from 310.15K is the 'safe' zone, where no damage is dealt.
if(bodytemperature > 360.15)
//Body temperature is too hot.
throw_alert("alien_fire", /obj/screen/alert/alien_fire)
throw_alert("alien_fire", /atom/movable/screen/alert/alien_fire)
switch(bodytemperature)
if(360 to 400)
apply_damage(HEAT_DAMAGE_LEVEL_1, BURN)
@@ -15,7 +15,7 @@
if(Toxins_pp > tox_detect_threshold) // Detect toxins in air
add_plasma(breath.toxins * 250)
throw_alert("alien_tox", /obj/screen/alert/alien_tox)
throw_alert("alien_tox", /atom/movable/screen/alert/alien_tox)
toxins_used = breath.toxins
@@ -72,7 +72,7 @@
/mob/living/carbon/alien/humanoid/update_inv_wear_suit()
if(client && hud_used)
var/obj/screen/inventory/inv = hud_used.inv_slots[SLOT_HUD_OUTER_SUIT]
var/atom/movable/screen/inventory/inv = hud_used.inv_slots[SLOT_HUD_OUTER_SUIT]
inv.update_icon()
if(wear_suit)
+6 -6
View File
@@ -361,7 +361,7 @@
if((E && (E.status & ORGAN_DEAD)) || !.)
return FALSE
/mob/living/carbon/flash_eyes(intensity = 1, override_blindness_check = 0, affect_silicon = 0, visual = 0, laser_pointer = FALSE, type = /obj/screen/fullscreen/flash)
/mob/living/carbon/flash_eyes(intensity = 1, override_blindness_check = 0, affect_silicon = 0, visual = 0, laser_pointer = FALSE, type = /atom/movable/screen/fullscreen/flash)
//Parent proc checks if a mob can_be_flashed()
. = ..()
@@ -658,7 +658,7 @@ GLOBAL_LIST_INIT(ventcrawl_machinery, list(/obj/machinery/atmospherics/unary/ven
return
/mob/living/carbon/throw_item(atom/target)
if(!target || !isturf(loc) || istype(target, /obj/screen))
if(!target || !isturf(loc) || is_screen_atom(target))
throw_mode_off()
return
@@ -745,7 +745,7 @@ GLOBAL_LIST_INIT(ventcrawl_machinery, list(/obj/machinery/atmospherics/unary/ven
clear_alert("legcuffed")
if(!legcuffed)
return
throw_alert("legcuffed", /obj/screen/alert/restrained/legcuffed, new_master = legcuffed)
throw_alert("legcuffed", /atom/movable/screen/alert/restrained/legcuffed, new_master = legcuffed)
if(m_intent != MOVE_INTENT_WALK)
m_intent = MOVE_INTENT_WALK
if(hud_used?.move_intent)
@@ -1052,7 +1052,7 @@ GLOBAL_LIST_INIT(ventcrawl_machinery, list(/obj/machinery/atmospherics/unary/ven
drop_r_hand()
drop_l_hand()
stop_pulling()
throw_alert("handcuffed", /obj/screen/alert/restrained/handcuffed, new_master = handcuffed)
throw_alert("handcuffed", /atom/movable/screen/alert/restrained/handcuffed, new_master = handcuffed)
ADD_TRAIT(src, TRAIT_RESTRAINED, "handcuffed")
else
REMOVE_TRAIT(src, TRAIT_RESTRAINED, "handcuffed")
@@ -1275,9 +1275,9 @@ so that different stomachs can handle things in different ways VB*/
/mob/living/carbon/proc/update_tint()
var/tinttotal = get_total_tint()
if(tinttotal >= TINT_BLIND)
overlay_fullscreen("tint", /obj/screen/fullscreen/blind)
overlay_fullscreen("tint", /atom/movable/screen/fullscreen/blind)
else if(tinttotal >= TINT_IMPAIR)
overlay_fullscreen("tint", /obj/screen/fullscreen/impaired, 2)
overlay_fullscreen("tint", /atom/movable/screen/fullscreen/impaired, 2)
else
clear_fullscreen("tint", 0)
@@ -112,7 +112,7 @@
//CRIT
if(!breath || (breath.total_moles() == 0) || !lungs)
adjustOxyLoss(1)
throw_alert("not_enough_oxy", /obj/screen/alert/not_enough_oxy)
throw_alert("not_enough_oxy", /atom/movable/screen/alert/not_enough_oxy)
return FALSE
var/safe_oxy_min = 16
@@ -138,7 +138,7 @@
oxygen_used = breath.oxygen*ratio
else
adjustOxyLoss(3)
throw_alert("not_enough_oxy", /obj/screen/alert/not_enough_oxy)
throw_alert("not_enough_oxy", /atom/movable/screen/alert/not_enough_oxy)
else //Enough oxygen
adjustOxyLoss(-5)
@@ -167,7 +167,7 @@
if(Toxins_partialpressure > safe_tox_max)
var/ratio = (breath.toxins/safe_tox_max) * 10
adjustToxLoss(clamp(ratio, MIN_TOXIC_GAS_DAMAGE, MAX_TOXIC_GAS_DAMAGE))
throw_alert("too_much_tox", /obj/screen/alert/too_much_tox)
throw_alert("too_much_tox", /atom/movable/screen/alert/too_much_tox)
else
clear_alert("too_much_tox")
@@ -315,7 +315,7 @@
severity = 9
if(-INFINITY to -95)
severity = 10
overlay_fullscreen("crit", /obj/screen/fullscreen/crit, severity)
overlay_fullscreen("crit", /atom/movable/screen/fullscreen/crit, severity)
else if(stat == CONSCIOUS)
if(check_death_method())
clear_fullscreen("crit")
@@ -336,7 +336,7 @@
severity = 6
if(45 to INFINITY)
severity = 7
overlay_fullscreen("oxy", /obj/screen/fullscreen/oxy, severity)
overlay_fullscreen("oxy", /atom/movable/screen/fullscreen/oxy, severity)
else
clear_fullscreen("oxy")
@@ -352,7 +352,7 @@
if(45 to 70) severity = 4
if(70 to 85) severity = 5
if(85 to INFINITY) severity = 6
overlay_fullscreen("brute", /obj/screen/fullscreen/brute, severity)
overlay_fullscreen("brute", /atom/movable/screen/fullscreen/brute, severity)
else
clear_fullscreen("brute")
@@ -35,9 +35,9 @@
/mob/living/carbon/proc/update_hands_hud()
if(!hud_used)
return
var/obj/screen/inventory/R = hud_used.inv_slots[SLOT_HUD_RIGHT_HAND]
var/atom/movable/screen/inventory/R = hud_used.inv_slots[SLOT_HUD_RIGHT_HAND]
R?.update_icon()
var/obj/screen/inventory/L = hud_used.inv_slots[SLOT_HUD_LEFT_HAND]
var/atom/movable/screen/inventory/L = hud_used.inv_slots[SLOT_HUD_LEFT_HAND]
L?.update_icon()
/mob/living/carbon/update_inv_r_hand(ignore_cuffs)
@@ -64,7 +64,7 @@
/mob/living/carbon/update_inv_back()
if(client && hud_used && hud_used.inv_slots[SLOT_HUD_BACK])
var/obj/screen/inventory/inv = hud_used.inv_slots[SLOT_HUD_BACK]
var/atom/movable/screen/inventory/inv = hud_used.inv_slots[SLOT_HUD_BACK]
inv.update_icon()
if(back)
+11 -11
View File
@@ -32,16 +32,16 @@
/datum/status_effect/offering_item
id = "offering item"
duration = 10 SECONDS
alert_type = /obj/screen/alert/status_effect/offering_item
alert_type = /atom/movable/screen/alert/status_effect/offering_item
/datum/status_effect/offering_item/on_creation(mob/living/new_owner, receiver_UID, item_UID)
. = ..()
var/obj/screen/alert/status_effect/offering_item/offer = linked_alert
var/atom/movable/screen/alert/status_effect/offering_item/offer = linked_alert
offer.item_UID = item_UID
offer.receiver_UID = receiver_UID
/obj/screen/alert/status_effect/offering_item
/atom/movable/screen/alert/status_effect/offering_item
name = "Offering Item"
desc = "You're currently offering an item someone. Make sure to keep the item in your hand so they can accept it! Click to stop offering your item."
icon_state = "offering_item"
@@ -50,7 +50,7 @@
/// UID of the item being given.
var/item_UID
/obj/screen/alert/status_effect/offering_item/Click(location, control, params)
/atom/movable/screen/alert/status_effect/offering_item/Click(location, control, params)
var/mob/living/carbon/receiver = locateUID(receiver_UID)
var/mob/living/carbon/giver = attached_effect.owner
var/obj/item/I = locateUID(item_UID)
@@ -99,7 +99,7 @@
return
// We use UID() here so that the receiver can have more then one give request at one time.
// Otherwise, throwing a new "take item" alert would override any current one also named "take item".
receiver.throw_alert("take item [I.UID()]", /obj/screen/alert/take_item, alert_args = list(user, receiver, I))
receiver.throw_alert("take item [I.UID()]", /atom/movable/screen/alert/take_item, alert_args = list(user, receiver, I))
item_offered = TRUE // TRUE so we don't give them the default chat message in Destroy.
to_chat(user, "<span class='info'>You offer [I] to [receiver].</span>")
qdel(src)
@@ -111,7 +111,7 @@
* Alert which appears for a user when another player is attempting to offer them an item.
* The user can click the alert to accept, or simply do nothing to not take the item.
*/
/obj/screen/alert/take_item
/atom/movable/screen/alert/take_item
name = "Take Item"
desc = "someone wants to hand you an item!"
icon_state = "template"
@@ -124,7 +124,7 @@
var/item_UID
/obj/screen/alert/take_item/Initialize(mapload, mob/living/giver, mob/living/receiver, obj/item/I)
/atom/movable/screen/alert/take_item/Initialize(mapload, mob/living/giver, mob/living/receiver, obj/item/I)
. = ..()
desc = "[giver] wants to hand you \a [I]. Click here to accept it!"
giver_UID = giver.UID()
@@ -138,13 +138,13 @@
RegisterSignal(giver, list(COMSIG_PARENT_QDELETING, SIGNAL_ADDTRAIT(TRAIT_HANDS_BLOCKED), COMSIG_CARBON_SWAP_HANDS), PROC_REF(cancel_give))
/obj/screen/alert/take_item/Destroy()
/atom/movable/screen/alert/take_item/Destroy()
var/mob/living/giver = locateUID(giver_UID)
giver.remove_status_effect(STATUS_EFFECT_OFFERING_ITEM)
return ..()
/obj/screen/alert/take_item/proc/cancel_give()
/atom/movable/screen/alert/take_item/proc/cancel_give()
SIGNAL_HANDLER
var/mob/living/giver = locateUID(giver_UID)
var/mob/living/receiver = locateUID(receiver_UID)
@@ -153,7 +153,7 @@
receiver.clear_alert("take item [item_UID]")
/obj/screen/alert/take_item/Click(location, control, params)
/atom/movable/screen/alert/take_item/Click(location, control, params)
var/mob/living/receiver = locateUID(receiver_UID)
if(receiver.stat != CONSCIOUS)
return
@@ -178,7 +178,7 @@
receiver.clear_alert("take item [item_UID]")
/obj/screen/alert/take_item/do_timeout(mob/M, category)
/atom/movable/screen/alert/take_item/do_timeout(mob/M, category)
var/mob/living/giver = locateUID(giver_UID)
var/mob/living/receiver = locateUID(receiver_UID)
// Make sure we're still nearby. We don't want to show a message if the giver not near us.
@@ -148,13 +148,13 @@
switch(S.breathid)
if("o2")
throw_alert("not_enough_oxy", /obj/screen/alert/not_enough_oxy)
throw_alert("not_enough_oxy", /atom/movable/screen/alert/not_enough_oxy)
if("tox")
throw_alert("not_enough_tox", /obj/screen/alert/not_enough_tox)
throw_alert("not_enough_tox", /atom/movable/screen/alert/not_enough_tox)
if("co2") // currently unused
throw_alert("not_enough_co2", /obj/screen/alert/not_enough_co2)
throw_alert("not_enough_co2", /atom/movable/screen/alert/not_enough_co2)
if("n2")
throw_alert("not_enough_nitro", /obj/screen/alert/not_enough_nitro)
throw_alert("not_enough_nitro", /atom/movable/screen/alert/not_enough_nitro)
return FALSE
// USED IN DEATHWHISPERS
@@ -217,13 +217,13 @@
var/mult = dna.species.heatmod * physiology.heat_mod
if(bodytemperature >= dna.species.heat_level_1 && bodytemperature <= dna.species.heat_level_2)
throw_alert("temp", /obj/screen/alert/hot, 1)
throw_alert("temp", /atom/movable/screen/alert/hot, 1)
take_overall_damage(burn=mult*HEAT_DAMAGE_LEVEL_1, updating_health = TRUE, used_weapon = "High Body Temperature")
if(bodytemperature > dna.species.heat_level_2 && bodytemperature <= dna.species.heat_level_3)
throw_alert("temp", /obj/screen/alert/hot, 2)
throw_alert("temp", /atom/movable/screen/alert/hot, 2)
take_overall_damage(burn=mult*HEAT_DAMAGE_LEVEL_2, updating_health = TRUE, used_weapon = "High Body Temperature")
if(bodytemperature > dna.species.heat_level_3 && bodytemperature < INFINITY)
throw_alert("temp", /obj/screen/alert/hot, 3)
throw_alert("temp", /atom/movable/screen/alert/hot, 3)
if(on_fire)
take_overall_damage(burn=mult*HEAT_DAMAGE_LEVEL_3, updating_health = TRUE, used_weapon = "Fire")
else
@@ -238,13 +238,13 @@
if(!istype(loc, /obj/machinery/atmospherics/unary/cryo_cell) && !(HAS_TRAIT(src, TRAIT_RESISTCOLD)))
var/mult = dna.species.coldmod * physiology.cold_mod
if(bodytemperature >= dna.species.cold_level_2 && bodytemperature <= dna.species.cold_level_1)
throw_alert("temp", /obj/screen/alert/cold, 1)
throw_alert("temp", /atom/movable/screen/alert/cold, 1)
take_overall_damage(burn=mult*COLD_DAMAGE_LEVEL_1, updating_health = TRUE, used_weapon = "Low Body Temperature")
if(bodytemperature >= dna.species.cold_level_3 && bodytemperature < dna.species.cold_level_2)
throw_alert("temp", /obj/screen/alert/cold, 2)
throw_alert("temp", /atom/movable/screen/alert/cold, 2)
take_overall_damage(burn=mult*COLD_DAMAGE_LEVEL_2, updating_health = TRUE, used_weapon = "Low Body Temperature")
if(bodytemperature > -INFINITY && bodytemperature < dna.species.cold_level_3)
throw_alert("temp", /obj/screen/alert/cold, 3)
throw_alert("temp", /atom/movable/screen/alert/cold, 3)
take_overall_damage(burn=mult*COLD_DAMAGE_LEVEL_3, updating_health = TRUE, used_weapon = "Low Body Temperature")
else
clear_alert("temp")
@@ -262,21 +262,21 @@
if(!HAS_TRAIT(src, TRAIT_RESISTHIGHPRESSURE))
var/pressure_damage = min(((adjusted_pressure / dna.species.hazard_high_pressure) - 1) * PRESSURE_DAMAGE_COEFFICIENT , MAX_HIGH_PRESSURE_DAMAGE) * physiology.pressure_mod
take_overall_damage(brute=pressure_damage, updating_health = TRUE, used_weapon = "High Pressure")
throw_alert("pressure", /obj/screen/alert/highpressure, 2)
throw_alert("pressure", /atom/movable/screen/alert/highpressure, 2)
else
clear_alert("pressure")
else if(adjusted_pressure >= dna.species.warning_high_pressure)
throw_alert("pressure", /obj/screen/alert/highpressure, 1)
throw_alert("pressure", /atom/movable/screen/alert/highpressure, 1)
else if(adjusted_pressure >= dna.species.warning_low_pressure)
clear_alert("pressure")
else if(adjusted_pressure >= dna.species.hazard_low_pressure)
throw_alert("pressure", /obj/screen/alert/lowpressure, 1)
throw_alert("pressure", /atom/movable/screen/alert/lowpressure, 1)
else
if(HAS_TRAIT(src, TRAIT_RESISTLOWPRESSURE))
clear_alert("pressure")
else
take_overall_damage(brute = LOW_PRESSURE_DAMAGE * physiology.pressure_mod, updating_health = TRUE, used_weapon = "Low Pressure")
throw_alert("pressure", /obj/screen/alert/lowpressure, 2)
throw_alert("pressure", /atom/movable/screen/alert/lowpressure, 2)
///FIRE CODE
@@ -685,7 +685,7 @@
new_hunger += "/[dna.species.hunger_type]"
if(dna.species.hunger_level != new_hunger)
dna.species.hunger_level = new_hunger
throw_alert("nutrition", "/obj/screen/alert/hunger/[new_hunger]", icon_override = dna.species.hunger_icon)
throw_alert("nutrition", "/atom/movable/screen/alert/hunger/[new_hunger]", icon_override = dna.species.hunger_icon)
/mob/living/carbon/human/handle_random_events()
// Puke if toxloss is too high
@@ -573,7 +573,7 @@ GLOBAL_LIST_EMPTY(damage_icon_parts)
/mob/living/carbon/human/update_inv_w_uniform()
remove_overlay(UNIFORM_LAYER)
if(client && hud_used)
var/obj/screen/inventory/inv = hud_used.inv_slots[SLOT_HUD_JUMPSUIT]
var/atom/movable/screen/inventory/inv = hud_used.inv_slots[SLOT_HUD_JUMPSUIT]
if(inv)
inv.update_icon()
@@ -650,7 +650,7 @@ GLOBAL_LIST_EMPTY(damage_icon_parts)
/mob/living/carbon/human/update_inv_wear_id()
remove_overlay(ID_LAYER)
if(client && hud_used)
var/obj/screen/inventory/inv = hud_used.inv_slots[SLOT_HUD_WEAR_ID]
var/atom/movable/screen/inventory/inv = hud_used.inv_slots[SLOT_HUD_WEAR_ID]
if(inv)
inv.update_icon()
@@ -666,7 +666,7 @@ GLOBAL_LIST_EMPTY(damage_icon_parts)
/mob/living/carbon/human/update_inv_gloves()
remove_overlay(GLOVES_LAYER)
if(client && hud_used)
var/obj/screen/inventory/inv = hud_used.inv_slots[SLOT_HUD_GLOVES]
var/atom/movable/screen/inventory/inv = hud_used.inv_slots[SLOT_HUD_GLOVES]
if(inv)
inv.update_icon()
@@ -706,7 +706,7 @@ GLOBAL_LIST_EMPTY(damage_icon_parts)
remove_overlay(OVER_MASK_LAYER)
if(client && hud_used)
var/obj/screen/inventory/inv = hud_used.inv_slots[SLOT_HUD_GLASSES]
var/atom/movable/screen/inventory/inv = hud_used.inv_slots[SLOT_HUD_GLASSES]
if(inv)
inv.update_icon()
@@ -744,12 +744,12 @@ GLOBAL_LIST_EMPTY(damage_icon_parts)
/mob/living/carbon/human/update_inv_ears()
remove_overlay(EARS_LAYER)
if(client && hud_used)
var/obj/screen/inventory/inv = hud_used.inv_slots[SLOT_HUD_LEFT_EAR]
var/atom/movable/screen/inventory/inv = hud_used.inv_slots[SLOT_HUD_LEFT_EAR]
if(inv)
inv.update_icon()
if(client && hud_used)
var/obj/screen/inventory/inv = hud_used.inv_slots[SLOT_HUD_RIGHT_EAR]
var/atom/movable/screen/inventory/inv = hud_used.inv_slots[SLOT_HUD_RIGHT_EAR]
if(inv)
inv.update_icon()
@@ -792,7 +792,7 @@ GLOBAL_LIST_EMPTY(damage_icon_parts)
/mob/living/carbon/human/update_inv_shoes()
remove_overlay(SHOES_LAYER)
if(client && hud_used)
var/obj/screen/inventory/inv = hud_used.inv_slots[SLOT_HUD_SHOES]
var/atom/movable/screen/inventory/inv = hud_used.inv_slots[SLOT_HUD_SHOES]
if(inv)
inv.update_icon()
@@ -828,7 +828,7 @@ GLOBAL_LIST_EMPTY(damage_icon_parts)
/mob/living/carbon/human/update_inv_s_store()
remove_overlay(SUIT_STORE_LAYER)
if(client && hud_used)
var/obj/screen/inventory/inv = hud_used.inv_slots[SLOT_HUD_SUIT_STORE]
var/atom/movable/screen/inventory/inv = hud_used.inv_slots[SLOT_HUD_SUIT_STORE]
if(inv)
inv.update_icon()
@@ -850,7 +850,7 @@ GLOBAL_LIST_EMPTY(damage_icon_parts)
..()
remove_overlay(HEAD_LAYER)
if(client && hud_used)
var/obj/screen/inventory/inv = hud_used.inv_slots[SLOT_HUD_HEAD]
var/atom/movable/screen/inventory/inv = hud_used.inv_slots[SLOT_HUD_HEAD]
if(inv)
inv.update_icon()
@@ -879,7 +879,7 @@ GLOBAL_LIST_EMPTY(damage_icon_parts)
/mob/living/carbon/human/update_inv_belt()
remove_overlay(BELT_LAYER)
if(client && hud_used)
var/obj/screen/inventory/inv = hud_used.inv_slots[SLOT_HUD_BELT]
var/atom/movable/screen/inventory/inv = hud_used.inv_slots[SLOT_HUD_BELT]
if(inv)
inv.update_icon()
@@ -905,7 +905,7 @@ GLOBAL_LIST_EMPTY(damage_icon_parts)
/mob/living/carbon/human/update_inv_wear_suit()
remove_overlay(SUIT_LAYER)
if(client && hud_used)
var/obj/screen/inventory/inv = hud_used.inv_slots[SLOT_HUD_OUTER_SUIT]
var/atom/movable/screen/inventory/inv = hud_used.inv_slots[SLOT_HUD_OUTER_SUIT]
if(inv)
inv.update_icon()
@@ -949,7 +949,7 @@ GLOBAL_LIST_EMPTY(damage_icon_parts)
/mob/living/carbon/human/update_inv_pockets()
if(client && hud_used)
var/obj/screen/inventory/inv
var/atom/movable/screen/inventory/inv
inv = hud_used.inv_slots[SLOT_HUD_LEFT_STORE]
if(inv)
@@ -970,7 +970,7 @@ GLOBAL_LIST_EMPTY(damage_icon_parts)
/mob/living/carbon/human/update_inv_wear_pda()
if(client && hud_used)
var/obj/screen/inventory/inv = hud_used.inv_slots[SLOT_HUD_WEAR_PDA]
var/atom/movable/screen/inventory/inv = hud_used.inv_slots[SLOT_HUD_WEAR_PDA]
if(inv)
inv.update_icon()
@@ -982,7 +982,7 @@ GLOBAL_LIST_EMPTY(damage_icon_parts)
..()
remove_overlay(FACEMASK_LAYER)
if(client && hud_used)
var/obj/screen/inventory/inv = hud_used.inv_slots[SLOT_HUD_WEAR_MASK]
var/atom/movable/screen/inventory/inv = hud_used.inv_slots[SLOT_HUD_WEAR_MASK]
if(inv)
inv.update_icon()
if(wear_mask && (istype(wear_mask, /obj/item/clothing/mask) || istype(wear_mask, /obj/item/clothing/accessory)))
@@ -13,7 +13,7 @@
/mob/living/carbon/human/update_nearsighted_effects()
var/obj/item/clothing/glasses/G = glasses
if(HAS_TRAIT(src, TRAIT_NEARSIGHT) && (!istype(G) || !G.prescription))
overlay_fullscreen("nearsighted", /obj/screen/fullscreen/impaired, 1)
overlay_fullscreen("nearsighted", /atom/movable/screen/fullscreen/impaired, 1)
else
clear_fullscreen("nearsighted")
@@ -93,7 +93,7 @@
if(light_amount > 0)
H.clear_alert("nolight")
else
H.throw_alert("nolight", /obj/screen/alert/nolight)
H.throw_alert("nolight", /atom/movable/screen/alert/nolight)
if(!is_vamp)
H.adjust_nutrition(light_amount * 10)
@@ -313,7 +313,7 @@
if(light_amount > 0)
H.clear_alert("nolight")
else
H.throw_alert("nolight", /obj/screen/alert/nolight)
H.throw_alert("nolight", /atom/movable/screen/alert/nolight)
H.adjust_nutrition(light_amount * 10)
if(H.nutrition > NUTRITION_LEVEL_ALMOST_FULL)
H.set_nutrition(NUTRITION_LEVEL_ALMOST_FULL)
@@ -34,9 +34,9 @@
light_amount = T.get_lumcount() * 10
if(light_amount > 2) //if there's enough light, start dying
H.take_overall_damage(1,1)
H.throw_alert("lightexposure", /obj/screen/alert/lightexposure)
H.take_overall_damage(1, 1)
H.throw_alert("lightexposure", /atom/movable/screen/alert/lightexposure)
else if(light_amount < 2) //heal in the dark
H.heal_overall_damage(1,1)
H.heal_overall_damage(1, 1)
H.clear_alert("lightexposure")
..()
+3 -3
View File
@@ -799,7 +799,7 @@
if(has_gravity)
clear_alert("weightless")
else
throw_alert("weightless", /obj/screen/alert/weightless)
throw_alert("weightless", /atom/movable/screen/alert/weightless)
if(!flying)
float(!has_gravity)
@@ -829,7 +829,7 @@
return TRUE
//called when the mob receives a bright flash
/mob/living/proc/flash_eyes(intensity = 1, override_blindness_check = 0, affect_silicon = 0, visual = 0, laser_pointer = FALSE, type = /obj/screen/fullscreen/flash)
/mob/living/proc/flash_eyes(intensity = 1, override_blindness_check = 0, affect_silicon = 0, visual = 0, laser_pointer = FALSE, type = /atom/movable/screen/fullscreen/flash)
if(can_be_flashed(intensity, override_blindness_check))
overlay_fullscreen("flash", type)
addtimer(CALLBACK(src, PROC_REF(clear_fullscreen), "flash", 25), 25)
@@ -1146,7 +1146,7 @@
/mob/living/proc/set_forced_look(atom/A, track = FALSE)
forced_look = track ? A.UID() : get_cardinal_dir(src, A)
to_chat(src, "<span class='userdanger'>You are now facing [track ? A : dir2text(forced_look)]. To cancel this, shift-middleclick yourself.</span>")
throw_alert("direction_lock", /obj/screen/alert/direction_lock)
throw_alert("direction_lock", /atom/movable/screen/alert/direction_lock)
/**
* Clears the mob's direction lock if enabled.
+1 -1
View File
@@ -163,7 +163,7 @@
on_fire = TRUE
visible_message("<span class='warning'>[src] catches fire!</span>", "<span class='userdanger'>You're set on fire!</span>")
set_light(light_range + 3,l_color = "#ED9200")
throw_alert("fire", /obj/screen/alert/fire)
throw_alert("fire", /atom/movable/screen/alert/fire)
update_fire()
SEND_SIGNAL(src, COMSIG_LIVING_IGNITED)
return TRUE
+1 -1
View File
@@ -173,6 +173,6 @@
healths.icon_state = "health7"
severity = 6
if(severity > 0)
overlay_fullscreen("brute", /obj/screen/fullscreen/brute, severity)
overlay_fullscreen("brute", /atom/movable/screen/fullscreen/brute, severity)
else
clear_fullscreen("brute")
@@ -1,8 +1,8 @@
/mob/living/update_blind_effects()
if(!has_vision(information_only=TRUE))
overlay_fullscreen("blind", /obj/screen/fullscreen/blind)
throw_alert("blind", /obj/screen/alert/blind)
return 1
overlay_fullscreen("blind", /atom/movable/screen/fullscreen/blind)
throw_alert("blind", /atom/movable/screen/alert/blind)
return TRUE
else
clear_fullscreen("blind")
clear_alert("blind")
@@ -19,8 +19,8 @@
/mob/living/update_druggy_effects()
if(AmountDruggy())
overlay_fullscreen("high", /obj/screen/fullscreen/high)
throw_alert("high", /obj/screen/alert/high)
overlay_fullscreen("high", /atom/movable/screen/fullscreen/high)
throw_alert("high", /atom/movable/screen/alert/high)
sound_environment_override = SOUND_ENVIRONMENT_DRUGGED
else
clear_fullscreen("high")
@@ -29,14 +29,14 @@
/mob/living/update_nearsighted_effects()
if(HAS_TRAIT(src, TRAIT_NEARSIGHT))
overlay_fullscreen("nearsighted", /obj/screen/fullscreen/impaired, 1)
overlay_fullscreen("nearsighted", /atom/movable/screen/fullscreen/impaired, 1)
else
clear_fullscreen("nearsighted")
/mob/living/update_sleeping_effects(no_alert = FALSE)
if(IsSleeping())
if(!no_alert)
throw_alert("asleep", /obj/screen/alert/asleep)
throw_alert("asleep", /atom/movable/screen/alert/asleep)
else
clear_alert("asleep")
+1 -1
View File
@@ -1539,7 +1539,7 @@ GLOBAL_LIST_INIT(ai_verbs_default, list(
SEND_SOUND(src, sound('sound/machines/ai_start.ogg'))
var/obj/screen/text/blurb/location_blurb = new()
var/atom/movable/screen/text/blurb/location_blurb = new()
location_blurb.maptext_x = 80
location_blurb.maptext_y = 16
location_blurb.maptext_width = 480
@@ -63,7 +63,7 @@
emagged = new_state
update_icons()
if(emagged)
throw_alert("hacked", /obj/screen/alert/hacked)
throw_alert("hacked", /atom/movable/screen/alert/hacked)
else
clear_alert("hacked")
@@ -98,15 +98,15 @@
if(0.75 to INFINITY)
clear_alert("charge")
if(0.5 to 0.75)
throw_alert("charge", /obj/screen/alert/lowcell, 1)
throw_alert("charge", /atom/movable/screen/alert/lowcell, 1)
if(0.25 to 0.5)
throw_alert("charge", /obj/screen/alert/lowcell, 2)
throw_alert("charge", /atom/movable/screen/alert/lowcell, 2)
if(0.01 to 0.25)
throw_alert("charge", /obj/screen/alert/lowcell, 3)
throw_alert("charge", /atom/movable/screen/alert/lowcell, 3)
else
throw_alert("charge", /obj/screen/alert/emptycell)
throw_alert("charge", /atom/movable/screen/alert/emptycell)
else
throw_alert("charge", /obj/screen/alert/nocell)
throw_alert("charge", /atom/movable/screen/alert/nocell)
@@ -19,15 +19,15 @@ GLOBAL_LIST_INIT(robot_verbs_default, list(
var/custom_sprite = FALSE //Due to all the sprites involved, a var for our custom borgs may be best
//Hud stuff
var/obj/screen/hands = null
var/obj/screen/inv1 = null
var/obj/screen/inv2 = null
var/obj/screen/inv3 = null
var/obj/screen/lamp_button = null
var/obj/screen/thruster_button = null
var/atom/movable/screen/hands = null
var/atom/movable/screen/inv1 = null
var/atom/movable/screen/inv2 = null
var/atom/movable/screen/inv3 = null
var/atom/movable/screen/lamp_button = null
var/atom/movable/screen/thruster_button = null
var/shown_robot_modules = FALSE //Used to determine whether they have the module menu shown or not
var/obj/screen/robot_modules_background
var/atom/movable/screen/robot_modules_background
//3 Modules can be activated at any one time.
var/obj/item/robot_module/module = null
@@ -1296,7 +1296,7 @@ GLOBAL_LIST_INIT(robot_verbs_default, list(
if(wires.is_cut(WIRE_BORG_LOCKED))
state = 1
if(state)
throw_alert("locked", /obj/screen/alert/locked)
throw_alert("locked", /atom/movable/screen/alert/locked)
else
clear_alert("locked")
lockcharge = state

Some files were not shown because too many files have changed in this diff Show More