mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-12 15:45:25 +01:00
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:
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
@@ -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
@@ -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 = ""
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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(
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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,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()
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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'
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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,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,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'
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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
@@ -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)
|
||||
|
||||
@@ -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.")
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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)]"
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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,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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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(
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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")
|
||||
..()
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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")
|
||||
|
||||
|
||||
@@ -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
Reference in New Issue
Block a user