Merge remote-tracking branch 'upstream/master' into gremlinport
This commit is contained in:
@@ -268,6 +268,15 @@
|
||||
#define GAS_FLAG_DANGEROUS (1<<0)
|
||||
#define GAS_FLAG_BREATH_PROC (1<<1)
|
||||
|
||||
//SUPERMATTER DEFINES
|
||||
#define HEAT_PENALTY "heat penalties"
|
||||
#define TRANSMIT_MODIFIER "transmit"
|
||||
#define RADIOACTIVITY_MODIFIER "radioactivity"
|
||||
#define HEAT_RESISTANCE "heat resistance"
|
||||
#define POWERLOSS_INHIBITION "powerloss inhibition"
|
||||
#define ALL_SUPERMATTER_GASES "gases we care about"
|
||||
#define POWER_MIX "gas powermix"
|
||||
|
||||
//HELPERS
|
||||
#define PIPING_LAYER_SHIFT(T, PipingLayer) \
|
||||
if(T.dir & (NORTH|SOUTH)) { \
|
||||
|
||||
@@ -24,6 +24,7 @@
|
||||
#define COLOR_BEIGE "#CEB689"
|
||||
#define COLOR_BLUE_GRAY "#75A2BB"
|
||||
#define COLOR_BROWN "#BA9F6D"
|
||||
#define COLOR_SOFT_RED "#FA8282"
|
||||
#define COLOR_DARK_BROWN "#997C4F"
|
||||
#define COLOR_DARK_ORANGE "#C3630C"
|
||||
#define COLOR_GREEN_GRAY "#99BB76"
|
||||
|
||||
@@ -83,3 +83,19 @@
|
||||
#define COMBAT_MODE_ACTIVE (1<<1)
|
||||
/// combat mode is not active
|
||||
#define COMBAT_MODE_INACTIVE (1<<2)
|
||||
|
||||
// Update flags for [/atom/proc/update_appearance]
|
||||
/// Update the atom's name
|
||||
#define UPDATE_NAME (1<<0)
|
||||
/// Update the atom's desc
|
||||
#define UPDATE_DESC (1<<1)
|
||||
/// Update the atom's icon state
|
||||
#define UPDATE_ICON_STATE (1<<2)
|
||||
/// Update the atom's overlays
|
||||
#define UPDATE_OVERLAYS (1<<3)
|
||||
/// Update the atom's greyscaling
|
||||
#define UPDATE_GREYSCALE (1<<4)
|
||||
/// Update the atom's smoothing. (More accurately, queue it for an update)
|
||||
#define UPDATE_SMOOTHING (1<<5)
|
||||
/// Update the atom's icon
|
||||
#define UPDATE_ICON (UPDATE_ICON_STATE|UPDATE_OVERLAYS)
|
||||
|
||||
@@ -74,11 +74,30 @@
|
||||
#define EXAMINE_POSITION_BEFORE (1<<1)
|
||||
//End positions
|
||||
#define COMPONENT_EXNAME_CHANGED (1<<0)
|
||||
#define COMSIG_ATOM_UPDATE_ICON "atom_update_icon" //from base of atom/update_icon(): ()
|
||||
#define COMSIG_ATOM_NO_UPDATE_ICON_STATE 1
|
||||
#define COMSIG_ATOM_NO_UPDATE_OVERLAYS 2
|
||||
#define COMSIG_ATOM_UPDATE_OVERLAYS "atom_update_overlays" //from base of atom/update_overlays(): (list/new_overlays)
|
||||
#define COMSIG_ATOM_UPDATED_ICON "atom_updated_icon" //from base of atom/update_icon(): (signalOut, did_anything)
|
||||
///from base of [/atom/proc/update_appearance]: (updates)
|
||||
#define COMSIG_ATOM_UPDATE_APPEARANCE "atom_update_appearance"
|
||||
/// If returned from [COMSIG_ATOM_UPDATE_APPEARANCE] it prevents the atom from updating its name.
|
||||
#define COMSIG_ATOM_NO_UPDATE_NAME UPDATE_NAME
|
||||
/// If returned from [COMSIG_ATOM_UPDATE_APPEARANCE] it prevents the atom from updating its desc.
|
||||
#define COMSIG_ATOM_NO_UPDATE_DESC UPDATE_DESC
|
||||
/// If returned from [COMSIG_ATOM_UPDATE_APPEARANCE] it prevents the atom from updating its icon.
|
||||
#define COMSIG_ATOM_NO_UPDATE_ICON UPDATE_ICON
|
||||
///from base of [/atom/proc/update_name]: (updates)
|
||||
#define COMSIG_ATOM_UPDATE_NAME "atom_update_name"
|
||||
///from base of [/atom/proc/update_desc]: (updates)
|
||||
#define COMSIG_ATOM_UPDATE_DESC "atom_update_desc"
|
||||
///from base of [/atom/update_icon]: ()
|
||||
#define COMSIG_ATOM_UPDATE_ICON "atom_update_icon"
|
||||
/// If returned from [COMSIG_ATOM_UPDATE_ICON] it prevents the atom from updating its icon state.
|
||||
#define COMSIG_ATOM_NO_UPDATE_ICON_STATE UPDATE_ICON_STATE
|
||||
/// If returned from [COMSIG_ATOM_UPDATE_ICON] it prevents the atom from updating its overlays.
|
||||
#define COMSIG_ATOM_NO_UPDATE_OVERLAYS UPDATE_OVERLAYS
|
||||
///from base of [atom/update_icon_state]: ()
|
||||
#define COMSIG_ATOM_UPDATE_ICON_STATE "atom_update_icon_state"
|
||||
///from base of [/atom/update_overlays]: (list/new_overlays)
|
||||
#define COMSIG_ATOM_UPDATE_OVERLAYS "atom_update_overlays"
|
||||
///from base of [/atom/update_icon]: (signalOut, did_anything)
|
||||
#define COMSIG_ATOM_UPDATED_ICON "atom_updated_icon"
|
||||
#define COMSIG_ATOM_ENTERED "atom_entered" //from base of atom/Entered(): (atom/movable/entering, /atom)
|
||||
#define COMSIG_ATOM_EXIT "atom_exit" //from base of atom/Exit(): (/atom/movable/exiting, /atom/newloc)
|
||||
#define COMPONENT_ATOM_BLOCK_EXIT 1
|
||||
@@ -112,8 +131,6 @@
|
||||
///from obj/machinery/bsa/full/proc/fire(): ()
|
||||
#define COMSIG_ATOM_BSA_BEAM "atom_bsa_beam_pass"
|
||||
#define COMSIG_ATOM_BLOCKS_BSA_BEAM (1<<0)
|
||||
///from base of atom/set_light(): (l_range, l_power, l_color)
|
||||
#define COMSIG_ATOM_SET_LIGHT "atom_set_light"
|
||||
///from base of atom/setDir(): (old_dir, new_dir). Called before the direction changes.
|
||||
#define COMSIG_ATOM_DIR_CHANGE "atom_dir_change"
|
||||
///from base of atom/handle_atom_del(): (atom/deleted)
|
||||
@@ -278,6 +295,32 @@
|
||||
///from base of mob/AltClickOn(): (atom/A)
|
||||
#define COMSIG_MOB_ALTCLICKON "mob_altclickon"
|
||||
|
||||
// Lighting:
|
||||
///from base of [atom/proc/set_light]: (l_range, l_power, l_color, l_on)
|
||||
#define COMSIG_ATOM_SET_LIGHT "atom_set_light"
|
||||
/// Blocks [/atom/proc/set_light], [/atom/proc/set_light_power], [/atom/proc/set_light_range], [/atom/proc/set_light_color], [/atom/proc/set_light_on], and [/atom/proc/set_light_flags].
|
||||
#define COMPONENT_BLOCK_LIGHT_UPDATE (1<<0)
|
||||
///Called right before the atom changes the value of light_power to a different one, from base [atom/proc/set_light_power]: (new_power)
|
||||
#define COMSIG_ATOM_SET_LIGHT_POWER "atom_set_light_power"
|
||||
///Called right after the atom changes the value of light_power to a different one, from base of [/atom/proc/set_light_power]: (old_power)
|
||||
#define COMSIG_ATOM_UPDATE_LIGHT_POWER "atom_update_light_power"
|
||||
///Called right before the atom changes the value of light_range to a different one, from base [atom/proc/set_light_range]: (new_range)
|
||||
#define COMSIG_ATOM_SET_LIGHT_RANGE "atom_set_light_range"
|
||||
///Called right after the atom changes the value of light_range to a different one, from base of [/atom/proc/set_light_range]: (old_range)
|
||||
#define COMSIG_ATOM_UPDATE_LIGHT_RANGE "atom_update_light_range"
|
||||
///Called right before the atom changes the value of light_color to a different one, from base [atom/proc/set_light_color]: (new_color)
|
||||
#define COMSIG_ATOM_SET_LIGHT_COLOR "atom_set_light_color"
|
||||
///Called right after the atom changes the value of light_color to a different one, from base of [/atom/proc/set_light_color]: (old_color)
|
||||
#define COMSIG_ATOM_UPDATE_LIGHT_COLOR "atom_update_light_color"
|
||||
///Called right before the atom changes the value of light_on to a different one, from base [atom/proc/set_light_on]: (new_value)
|
||||
#define COMSIG_ATOM_SET_LIGHT_ON "atom_set_light_on"
|
||||
///Called right after the atom changes the value of light_on to a different one, from base of [/atom/proc/set_light_on]: (old_value)
|
||||
#define COMSIG_ATOM_UPDATE_LIGHT_ON "atom_update_light_on"
|
||||
///Called right before the atom changes the value of light_flags to a different one, from base [atom/proc/set_light_flags]: (new_flags)
|
||||
#define COMSIG_ATOM_SET_LIGHT_FLAGS "atom_set_light_flags"
|
||||
///Called right after the atom changes the value of light_flags to a different one, from base of [/atom/proc/set_light_flags]: (old_flags)
|
||||
#define COMSIG_ATOM_UPDATE_LIGHT_FLAGS "atom_update_light_flags"
|
||||
|
||||
// /client signals
|
||||
#define COMSIG_MOB_CLIENT_LOGIN "mob_client_login" //sent when a mob/login() finishes: (client)
|
||||
#define COMSIG_MOB_CLIENT_LOGOUT "mob_client_logout" //sent when a mob/logout() starts: (client)
|
||||
@@ -361,6 +404,12 @@
|
||||
|
||||
// /machinery signals
|
||||
#define COMSIG_MACHINE_EJECT_OCCUPANT "eject_occupant" //from base of obj/machinery/dropContents() (occupant)
|
||||
///from base power_change() when power is lost
|
||||
#define COMSIG_MACHINERY_POWER_LOST "machinery_power_lost"
|
||||
///from base power_change() when power is restored
|
||||
#define COMSIG_MACHINERY_POWER_RESTORED "machinery_power_restored"
|
||||
///from /obj/machinery/obj_break(damage_flag): (damage_flag)
|
||||
#define COMSIG_MACHINERY_BROKEN "machinery_broken"
|
||||
|
||||
// /obj/item signals
|
||||
#define COMSIG_ITEM_ATTACK "item_attack" //from base of obj/item/attack(): (/mob/living/target, /mob/living/user)
|
||||
|
||||
@@ -124,16 +124,20 @@
|
||||
|
||||
#define EMISSIVE_PLANE 13
|
||||
#define EMISSIVE_LAYER 13
|
||||
#define EMISSIVE_RENDER_TARGET "*EMISSIVE_PLANE"
|
||||
|
||||
#define EMISSIVE_UNBLOCKABLE_PLANE 14
|
||||
#define EMISSIVE_UNBLOCKABLE_LAYER 14
|
||||
#define EMISSIVE_LAYER_UNBLOCKABLE 14
|
||||
#define EMISSIVE_UNBLOCKABLE_RENDER_TARGET "*EMISSIVE_UNBLOCKABLE_PLANE"
|
||||
#define EMISSIVE_RENDER_TARGET "*EMISSIVE_PLANE"
|
||||
|
||||
#define LIGHTING_PLANE 15
|
||||
#define LIGHTING_LAYER 15
|
||||
#define LIGHTING_RENDER_TARGET "LIGHT_PLANE"
|
||||
|
||||
#define O_LIGHTING_VISUAL_PLANE 110
|
||||
#define O_LIGHTING_VISUAL_RENDER_TARGET "O_LIGHT_VISUAL_PLANE"
|
||||
|
||||
#define RAD_TEXT_LAYER 15.1
|
||||
|
||||
#define ABOVE_LIGHTING_PLANE 16
|
||||
|
||||
@@ -84,11 +84,24 @@
|
||||
#define FLASH_LIGHT_POWER 3
|
||||
#define FLASH_LIGHT_RANGE 3.8
|
||||
|
||||
// Emissive blocking.
|
||||
/// Uses vis_overlays to leverage caching so that very few new items need to be made for the overlay. For anything that doesn't change outline or opaque area much or at all.
|
||||
#define EMISSIVE_BLOCK_GENERIC 1
|
||||
/// Uses a dedicated render_target object to copy the entire appearance in real time to the blocking layer. For things that can change in appearance a lot from the base state, like humans.
|
||||
#define EMISSIVE_BLOCK_UNIQUE 2
|
||||
|
||||
/// The color matrix applied to all emissive overlays. Should be solely dependent on alpha and not have RGB overlap with [EM_BLOCK_COLOR].
|
||||
#define EMISSIVE_COLOR list(0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,1, 1,1,1,0)
|
||||
/// A globaly cached version of [EMISSIVE_COLOR] for quick access.
|
||||
GLOBAL_LIST_INIT(emissive_color, EMISSIVE_COLOR)
|
||||
/// The color matrix applied to all emissive blockers. Should be solely dependent on alpha and not have RGB overlap with [EMISSIVE_COLOR].
|
||||
#define EM_BLOCK_COLOR list(0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,1, 0,0,0,0)
|
||||
/// A globaly cached version of [EM_BLOCK_COLOR] for quick access.
|
||||
GLOBAL_LIST_INIT(em_block_color, EM_BLOCK_COLOR)
|
||||
/// The color matrix used to mask out emissive blockers on the emissive plane. Alpha should default to zero, be solely dependent on the RGB value of [EMISSIVE_COLOR], and be independant of the RGB value of [EM_BLOCK_COLOR].
|
||||
#define EM_MASK_MATRIX list(0,0,0,1/3, 0,0,0,1/3, 0,0,0,1/3, 0,0,0,0, 1,1,1,0)
|
||||
/// A globaly cached version of [EM_MASK_MATRIX] for quick access.
|
||||
GLOBAL_LIST_INIT(em_mask_matrix, EM_MASK_MATRIX)
|
||||
|
||||
/// Returns the red part of a #RRGGBB hex sequence as number
|
||||
#define GETREDPART(hexa) hex2num(copytext(hexa, 2, 4))
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
#define SOLAR_TRACK_OFF 0
|
||||
#define SOLAR_TRACK_TIMED 1
|
||||
#define SOLAR_TRACK_AUTO 2
|
||||
|
||||
///conversion ratio from joules to watts
|
||||
#define WATTS / 0.002
|
||||
///conversion ratio from watts to joules
|
||||
#define JOULES * 0.002
|
||||
|
||||
@@ -395,7 +395,7 @@
|
||||
|
||||
/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 = new /atom/movable/screen/text()
|
||||
O.maptext = maptext
|
||||
O.maptext_height = maptext_height
|
||||
O.maptext_width = maptext_width
|
||||
|
||||
5
code/__HELPERS/lighting.dm
Normal file
5
code/__HELPERS/lighting.dm
Normal file
@@ -0,0 +1,5 @@
|
||||
/// Produces a mutable appearance glued to the [EMISSIVE_PLANE] dyed to be the [EMISSIVE_COLOR].
|
||||
/proc/emissive_appearance(icon, icon_state = "", layer = FLOAT_LAYER, alpha = 255, appearance_flags = NONE)
|
||||
var/mutable_appearance/appearance = mutable_appearance(icon, icon_state, layer, EMISSIVE_PLANE, alpha, appearance_flags)
|
||||
appearance.color = GLOB.emissive_color
|
||||
return appearance
|
||||
@@ -25,7 +25,7 @@
|
||||
if(multicam_on)
|
||||
var/turf/T = get_turf(A)
|
||||
if(T)
|
||||
for(var/obj/screen/movable/pic_in_pic/ai/P in T.vis_locs)
|
||||
for(var/atom/movable/screen/movable/pic_in_pic/ai/P in T.vis_locs)
|
||||
if(P.ai == src)
|
||||
P.Click(params)
|
||||
break
|
||||
|
||||
@@ -429,14 +429,14 @@
|
||||
setDir(WEST, ismousemovement)
|
||||
|
||||
//debug
|
||||
/obj/screen/proc/scale_to(x1,y1)
|
||||
/atom/movable/screen/proc/scale_to(x1,y1)
|
||||
if(!y1)
|
||||
y1 = x1
|
||||
var/matrix/M = new
|
||||
M.Scale(x1,y1)
|
||||
transform = M
|
||||
|
||||
/obj/screen/click_catcher
|
||||
/atom/movable/screen/click_catcher
|
||||
icon = 'icons/mob/screen_gen.dmi'
|
||||
icon_state = "catcher"
|
||||
plane = CLICKCATCHER_PLANE
|
||||
@@ -446,7 +446,7 @@
|
||||
#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)
|
||||
@@ -461,7 +461,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
|
||||
|
||||
@@ -80,10 +80,10 @@
|
||||
/atom/proc/IsAutoclickable()
|
||||
. = 1
|
||||
|
||||
/obj/screen/IsAutoclickable()
|
||||
/atom/movable/screen/IsAutoclickable()
|
||||
. = 0
|
||||
|
||||
/obj/screen/click_catcher/IsAutoclickable()
|
||||
/atom/movable/screen/click_catcher/IsAutoclickable()
|
||||
. = 1
|
||||
|
||||
//Please don't roast me too hard
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
#define ACTION_BUTTON_DEFAULT_BACKGROUND "default"
|
||||
|
||||
/obj/screen/movable/action_button
|
||||
/atom/movable/screen/movable/action_button
|
||||
var/datum/action/linked_action
|
||||
var/actiontooltipstyle = ""
|
||||
screen_loc = null
|
||||
@@ -11,7 +11,7 @@
|
||||
var/id
|
||||
var/ordered = TRUE //If the button gets placed into the default bar
|
||||
|
||||
/obj/screen/movable/action_button/proc/can_use(mob/user)
|
||||
/atom/movable/screen/movable/action_button/proc/can_use(mob/user)
|
||||
if (linked_action)
|
||||
return linked_action.owner == user
|
||||
else if (isobserver(user))
|
||||
@@ -20,14 +20,14 @@
|
||||
else
|
||||
return TRUE
|
||||
|
||||
/obj/screen/movable/action_button/MouseDrop(over_object)
|
||||
/atom/movable/screen/movable/action_button/MouseDrop(over_object)
|
||||
if(!can_use(usr))
|
||||
return
|
||||
if((istype(over_object, /obj/screen/movable/action_button) && !istype(over_object, /obj/screen/movable/action_button/hide_toggle)))
|
||||
if((istype(over_object, /atom/movable/screen/movable/action_button) && !istype(over_object, /atom/movable/screen/movable/action_button/hide_toggle)))
|
||||
if(locked)
|
||||
to_chat(usr, "<span class='warning'>Action button \"[name]\" is locked, unlock it first.</span>")
|
||||
return
|
||||
var/obj/screen/movable/action_button/B = over_object
|
||||
var/atom/movable/screen/movable/action_button/B = over_object
|
||||
var/list/actions = usr.actions
|
||||
actions.Swap(actions.Find(src.linked_action), actions.Find(B.linked_action))
|
||||
moved = FALSE
|
||||
@@ -38,7 +38,7 @@
|
||||
else
|
||||
return ..()
|
||||
|
||||
/obj/screen/movable/action_button/Click(location,control,params)
|
||||
/atom/movable/screen/movable/action_button/Click(location,control,params)
|
||||
if (!can_use(usr))
|
||||
return
|
||||
|
||||
@@ -60,7 +60,7 @@
|
||||
return TRUE
|
||||
|
||||
//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 it in place. Alt-click this button to reset all buttons to their default positions."
|
||||
icon = 'icons/mob/actions.dmi'
|
||||
@@ -72,7 +72,7 @@
|
||||
var/mutable_appearance/hide_appearance
|
||||
var/mutable_appearance/show_appearance
|
||||
|
||||
/obj/screen/movable/action_button/hide_toggle/Initialize()
|
||||
/atom/movable/screen/movable/action_button/hide_toggle/Initialize()
|
||||
. = ..()
|
||||
var/static/list/icon_cache = list()
|
||||
|
||||
@@ -86,7 +86,7 @@
|
||||
if(!show_appearance)
|
||||
show_appearance = icon_cache[cache_key] = mutable_appearance(hide_icon, show_state)
|
||||
|
||||
/obj/screen/movable/action_button/hide_toggle/Click(location,control,params)
|
||||
/atom/movable/screen/movable/action_button/hide_toggle/Click(location,control,params)
|
||||
if (!can_use(usr))
|
||||
return
|
||||
|
||||
@@ -107,7 +107,7 @@
|
||||
if(modifiers["alt"])
|
||||
for(var/V in usr.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(B.id && usr.client)
|
||||
usr.client.prefs.action_buttons_screen_locs["[B.name]_[B.id]"] = null
|
||||
@@ -129,10 +129,10 @@
|
||||
update_icon()
|
||||
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
|
||||
@@ -141,7 +141,7 @@
|
||||
return TRUE
|
||||
|
||||
|
||||
/obj/screen/movable/action_button/hide_toggle/proc/InitialiseIcon(datum/hud/owner_hud)
|
||||
/atom/movable/screen/movable/action_button/hide_toggle/proc/InitialiseIcon(datum/hud/owner_hud)
|
||||
var/settings = owner_hud.get_action_buttons_icons()
|
||||
icon = settings["bg_icon"]
|
||||
icon_state = settings["bg_state"]
|
||||
@@ -150,7 +150,7 @@
|
||||
show_state = settings["toggle_show"]
|
||||
update_icon()
|
||||
|
||||
/obj/screen/movable/action_button/hide_toggle/update_overlays()
|
||||
/atom/movable/screen/movable/action_button/hide_toggle/update_overlays()
|
||||
. = ..()
|
||||
if(hidden)
|
||||
. += show_appearance
|
||||
@@ -158,12 +158,12 @@
|
||||
. += hide_appearance
|
||||
|
||||
|
||||
/obj/screen/movable/action_button/MouseEntered(location,control,params)
|
||||
/atom/movable/screen/movable/action_button/MouseEntered(location,control,params)
|
||||
if(!QDELETED(src))
|
||||
openToolTip(usr,src,params,title = name,content = desc,theme = actiontooltipstyle)
|
||||
|
||||
|
||||
/obj/screen/movable/action_button/MouseExited()
|
||||
/atom/movable/screen/movable/action_button/MouseExited()
|
||||
closeToolTip(usr)
|
||||
|
||||
/datum/hud/proc/get_action_buttons_icons()
|
||||
@@ -203,7 +203,7 @@
|
||||
else
|
||||
for(var/datum/action/A in actions)
|
||||
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)
|
||||
@@ -235,7 +235,7 @@
|
||||
|
||||
return "WEST[coord_col]:[coord_col_offset],NORTH[coord_row]:-6"
|
||||
|
||||
/datum/hud/proc/SetButtonCoords(obj/screen/button,number, supportedcolumns)
|
||||
/datum/hud/proc/SetButtonCoords(atom/movable/screen/button,number, supportedcolumns)
|
||||
var/row = round((number-1)/supportedcolumns)
|
||||
var/col = ((number - 1)%(supportedcolumns)) + 1
|
||||
var/x_offset = 32*(col-1) + 4 + 2*col
|
||||
|
||||
@@ -1,136 +1,136 @@
|
||||
/obj/screen/ai
|
||||
/atom/movable/screen/ai
|
||||
icon = 'icons/mob/screen_ai.dmi'
|
||||
|
||||
/obj/screen/ai/Click()
|
||||
/atom/movable/screen/ai/Click()
|
||||
if(isobserver(usr) || usr.incapacitated())
|
||||
return TRUE
|
||||
|
||||
/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(..())
|
||||
return
|
||||
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()
|
||||
if(..())
|
||||
return
|
||||
var/mob/living/silicon/ai/AI = usr
|
||||
AI.show_camera_list()
|
||||
|
||||
/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(..())
|
||||
return
|
||||
var/mob/living/silicon/ai/AI = usr
|
||||
var/target_name = input(AI, "Choose who you want to track", "Tracking") as null|anything in AI.trackable_mobs()
|
||||
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(..())
|
||||
return
|
||||
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(..())
|
||||
return
|
||||
var/mob/living/silicon/ai/AI = usr
|
||||
GLOB.crewmonitor.show(AI,AI)
|
||||
|
||||
/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(..())
|
||||
return
|
||||
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(..())
|
||||
return
|
||||
var/mob/living/silicon/ai/AI = usr
|
||||
AI.ai_alerts()
|
||||
|
||||
/obj/screen/ai/announcement
|
||||
/atom/movable/screen/ai/announcement
|
||||
name = "Make Vox Announcement"
|
||||
icon_state = "announcement"
|
||||
|
||||
/obj/screen/ai/announcement/Click()
|
||||
/atom/movable/screen/ai/announcement/Click()
|
||||
if(..())
|
||||
return
|
||||
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(..())
|
||||
return
|
||||
var/mob/living/silicon/ai/AI = usr
|
||||
AI.ai_call_shuttle()
|
||||
|
||||
/obj/screen/ai/state_laws
|
||||
/atom/movable/screen/ai/state_laws
|
||||
name = "State Laws"
|
||||
icon_state = "state_laws"
|
||||
|
||||
/obj/screen/ai/state_laws/Click()
|
||||
/atom/movable/screen/ai/state_laws/Click()
|
||||
if(..())
|
||||
return
|
||||
var/mob/living/silicon/ai/AI = usr
|
||||
AI.checklaws()
|
||||
|
||||
/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(..())
|
||||
return
|
||||
var/mob/living/silicon/ai/AI = usr
|
||||
AI.cmd_send_pdamesg(usr)
|
||||
|
||||
/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(..())
|
||||
return
|
||||
var/mob/living/silicon/ai/AI = usr
|
||||
AI.cmd_show_message_log(usr)
|
||||
|
||||
/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(..())
|
||||
return
|
||||
if(isAI(usr))
|
||||
@@ -140,11 +140,11 @@
|
||||
var/mob/living/silicon/robot/R = usr
|
||||
R.aicamera.toggle_camera_mode(usr)
|
||||
|
||||
/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(..())
|
||||
return
|
||||
if(isAI(usr))
|
||||
@@ -154,31 +154,31 @@
|
||||
var/mob/living/silicon/robot/R = usr
|
||||
R.aicamera.viewpictures(usr)
|
||||
|
||||
/obj/screen/ai/sensors
|
||||
/atom/movable/screen/ai/sensors
|
||||
name = "Sensor Augmentation"
|
||||
icon_state = "ai_sensor"
|
||||
|
||||
/obj/screen/ai/sensors/Click()
|
||||
/atom/movable/screen/ai/sensors/Click()
|
||||
if(..())
|
||||
return
|
||||
var/mob/living/silicon/S = usr
|
||||
S.toggle_sensors()
|
||||
|
||||
/obj/screen/ai/multicam
|
||||
/atom/movable/screen/ai/multicam
|
||||
name = "Multicamera Mode"
|
||||
icon_state = "multicam"
|
||||
|
||||
/obj/screen/ai/multicam/Click()
|
||||
/atom/movable/screen/ai/multicam/Click()
|
||||
if(..())
|
||||
return
|
||||
var/mob/living/silicon/ai/AI = usr
|
||||
AI.toggle_multicam()
|
||||
|
||||
/obj/screen/ai/add_multicam
|
||||
/atom/movable/screen/ai/add_multicam
|
||||
name = "New Camera"
|
||||
icon_state = "new_cam"
|
||||
|
||||
/obj/screen/ai/add_multicam/Click()
|
||||
/atom/movable/screen/ai/add_multicam/Click()
|
||||
if(..())
|
||||
return
|
||||
var/mob/living/silicon/ai/AI = usr
|
||||
@@ -190,112 +190,112 @@
|
||||
|
||||
/datum/hud/ai/New(mob/owner)
|
||||
..()
|
||||
var/obj/screen/using
|
||||
var/atom/movable/screen/using
|
||||
|
||||
// Language menu
|
||||
using = new /obj/screen/language_menu
|
||||
using = new /atom/movable/screen/language_menu
|
||||
using.screen_loc = ui_borg_language_menu
|
||||
using.hud = src
|
||||
static_inventory += using
|
||||
|
||||
//AI core
|
||||
using = new /obj/screen/ai/aicore()
|
||||
using = new /atom/movable/screen/ai/aicore()
|
||||
using.screen_loc = ui_ai_core
|
||||
using.hud = src
|
||||
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
|
||||
using.hud = src
|
||||
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
|
||||
using.hud = src
|
||||
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
|
||||
using.hud = src
|
||||
static_inventory += using
|
||||
|
||||
//Crew Monitoring
|
||||
using = new /obj/screen/ai/crew_monitor()
|
||||
using = new /atom/movable/screen/ai/crew_monitor()
|
||||
using.screen_loc = ui_ai_crew_monitor
|
||||
using.hud = src
|
||||
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
|
||||
using.hud = src
|
||||
static_inventory += using
|
||||
|
||||
//Alerts
|
||||
using = new /obj/screen/ai/alerts()
|
||||
using = new /atom/movable/screen/ai/alerts()
|
||||
using.screen_loc = ui_ai_alerts
|
||||
using.hud = src
|
||||
static_inventory += using
|
||||
|
||||
//Announcement
|
||||
using = new /obj/screen/ai/announcement()
|
||||
using = new /atom/movable/screen/ai/announcement()
|
||||
using.screen_loc = ui_ai_announcement
|
||||
using.hud = src
|
||||
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
|
||||
using.hud = src
|
||||
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
|
||||
using.hud = src
|
||||
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
|
||||
using.hud = src
|
||||
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
|
||||
using.hud = src
|
||||
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
|
||||
using.hud = src
|
||||
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
|
||||
using.hud = src
|
||||
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
|
||||
using.hud = src
|
||||
static_inventory += using
|
||||
|
||||
//Multicamera mode
|
||||
using = new /obj/screen/ai/multicam()
|
||||
using = new /atom/movable/screen/ai/multicam()
|
||||
using.screen_loc = ui_ai_multicam
|
||||
using.hud = src
|
||||
static_inventory += using
|
||||
|
||||
//Add multicamera camera
|
||||
using = new /obj/screen/ai/add_multicam()
|
||||
using = new /atom/movable/screen/ai/add_multicam()
|
||||
using.screen_loc = ui_ai_add_multicam
|
||||
using.hud = src
|
||||
static_inventory += using
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
if(!category || QDELETED(src))
|
||||
return
|
||||
|
||||
var/obj/screen/alert/thealert
|
||||
var/atom/movable/screen/alert/thealert
|
||||
if(alerts[category])
|
||||
thealert = alerts[category]
|
||||
if(thealert.override_alerts)
|
||||
@@ -69,13 +69,13 @@
|
||||
thealert.timeout = world.time + thealert.timeout - world.tick_lag
|
||||
return thealert
|
||||
|
||||
/mob/proc/alert_timeout(obj/screen/alert/alert, category)
|
||||
/mob/proc/alert_timeout(atom/movable/screen/alert/alert, category)
|
||||
if(alert.timeout && alerts[category] == alert && world.time >= alert.timeout)
|
||||
clear_alert(category)
|
||||
|
||||
// Proc to clear an existing alert.
|
||||
/mob/proc/clear_alert(category, clear_override = FALSE)
|
||||
var/obj/screen/alert/alert = alerts[category]
|
||||
var/atom/movable/screen/alert/alert = alerts[category]
|
||||
if(!alert)
|
||||
return 0
|
||||
if(alert.override_alerts && !clear_override)
|
||||
@@ -87,7 +87,7 @@
|
||||
client.screen -= alert
|
||||
qdel(alert)
|
||||
|
||||
/obj/screen/alert
|
||||
/atom/movable/screen/alert
|
||||
icon = 'icons/mob/screen_alert.dmi'
|
||||
icon_state = "default"
|
||||
name = "Alert"
|
||||
@@ -100,72 +100,72 @@
|
||||
var/mob/mob_viewer //the mob viewing this alert
|
||||
|
||||
|
||||
/obj/screen/alert/MouseEntered(location,control,params)
|
||||
/atom/movable/screen/alert/MouseEntered(location,control,params)
|
||||
if(!QDELETED(src))
|
||||
openToolTip(usr,src,params,title = name,content = desc,theme = alerttooltipstyle)
|
||||
|
||||
|
||||
/obj/screen/alert/MouseExited()
|
||||
/atom/movable/screen/alert/MouseExited()
|
||||
closeToolTip(usr)
|
||||
|
||||
|
||||
//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"
|
||||
|
||||
/obj/screen/alert/not_enough_ch4
|
||||
/atom/movable/screen/alert/not_enough_ch4
|
||||
name = "Choking (No CH4)"
|
||||
desc = "You're not getting enough methane. Find some good air before you pass out!"
|
||||
icon_state = "not_enough_ch4"
|
||||
|
||||
/obj/screen/alert/too_much_ch4
|
||||
/atom/movable/screen/alert/too_much_ch4
|
||||
name = "Choking (CH4)"
|
||||
desc = "There's too much methane in the air, and you're breathing it in! Find some good air before you pass out!"
|
||||
icon_state = "too_much_ch4"
|
||||
|
||||
/obj/screen/alert/not_enough_ch3br
|
||||
/atom/movable/screen/alert/not_enough_ch3br
|
||||
name = "Choking (No CH3Br)"
|
||||
desc = "You're not getting enough methyl bromide. Find some good air before you pass out!"
|
||||
icon_state = "not_enough_tox"
|
||||
|
||||
/obj/screen/alert/too_much_ch3br
|
||||
/atom/movable/screen/alert/too_much_ch3br
|
||||
name = "Choking (CH3Br)"
|
||||
desc = "There's highly toxic methyl bromide 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"
|
||||
@@ -173,109 +173,109 @@
|
||||
//End gas alerts
|
||||
|
||||
|
||||
/obj/screen/alert/fat
|
||||
/atom/movable/screen/alert/fat
|
||||
name = "Fat"
|
||||
desc = "You ate too much food, lardass. Run around the station and lose some weight."
|
||||
icon_state = "fat"
|
||||
|
||||
/obj/screen/alert/hungry
|
||||
/atom/movable/screen/alert/hungry
|
||||
name = "Hungry"
|
||||
desc = "Some food would be good right about now."
|
||||
icon_state = "hungry"
|
||||
|
||||
/obj/screen/alert/starving
|
||||
/atom/movable/screen/alert/starving
|
||||
name = "Starving"
|
||||
desc = "You're severely malnourished. The hunger pains make moving around a chore."
|
||||
icon_state = "starving"
|
||||
|
||||
/obj/screen/alert/gross
|
||||
/atom/movable/screen/alert/gross
|
||||
name = "Grossed out."
|
||||
desc = "That was kind of gross..."
|
||||
icon_state = "gross"
|
||||
|
||||
/obj/screen/alert/verygross
|
||||
/atom/movable/screen/alert/verygross
|
||||
name = "Very grossed out."
|
||||
desc = "You're not feeling very well..."
|
||||
icon_state = "gross2"
|
||||
|
||||
/obj/screen/alert/disgusted
|
||||
/atom/movable/screen/alert/disgusted
|
||||
name = "DISGUSTED"
|
||||
desc = "ABSOLUTELY DISGUSTIN'"
|
||||
icon_state = "gross3"
|
||||
|
||||
/obj/screen/alert/hot
|
||||
/atom/movable/screen/alert/hot
|
||||
name = "Too Hot"
|
||||
desc = "The air around you is pretty toasty! Consider putting on some insulating clothing, or moving to a cooler area."
|
||||
icon_state = "hot"
|
||||
|
||||
/obj/screen/alert/cold
|
||||
/atom/movable/screen/alert/cold
|
||||
name = "Too Cold"
|
||||
desc = "The air around you is pretty cold! Consider wearing a coat, or moving to a warmer area."
|
||||
icon_state = "cold"
|
||||
|
||||
/obj/screen/alert/sweat
|
||||
/atom/movable/screen/alert/sweat
|
||||
name = "Sweating"
|
||||
desc = "You're sweating! Get somewhere cooler and take off any insulating clothing like a fire suit."
|
||||
icon_state = "sweat"
|
||||
|
||||
/obj/screen/alert/shiver
|
||||
/atom/movable/screen/alert/shiver
|
||||
name = "Shivering"
|
||||
desc = "You're shivering! Get somewhere warmer and take off any insulating clothing like a space suit."
|
||||
|
||||
/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/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/mind_control
|
||||
/atom/movable/screen/alert/mind_control
|
||||
name = "Mind Control"
|
||||
desc = "Your mind has been hijacked! Click to view the mind control command."
|
||||
icon_state = "mind_control"
|
||||
var/command
|
||||
|
||||
/obj/screen/alert/mind_control/Click()
|
||||
/atom/movable/screen/alert/mind_control/Click()
|
||||
var/mob/living/L = usr
|
||||
to_chat(L, "<span class='mind_control'>[command]</span>")
|
||||
|
||||
/obj/screen/alert/hypnosis
|
||||
/atom/movable/screen/alert/hypnosis
|
||||
name = "Hypnosis"
|
||||
desc = "Something's hypnotizing you, but you're not really sure about what."
|
||||
icon_state = "hypnosis"
|
||||
var/phrase
|
||||
|
||||
/obj/screen/alert/drunk //Not implemented
|
||||
/atom/movable/screen/alert/drunk //Not implemented
|
||||
name = "Drunk"
|
||||
desc = "All that alcohol you've been drinking is impairing your speech, motor skills, and mental cognition. Make sure to act like it."
|
||||
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, examine yourself and click the underlined item 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/M = usr
|
||||
return M.help_shake_act(M)
|
||||
|
||||
/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 \
|
||||
@@ -283,22 +283,22 @@ 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/highgravity
|
||||
/atom/movable/screen/alert/highgravity
|
||||
name = "High Gravity"
|
||||
desc = "You're getting crushed by high gravity, picking up items and movement will be slowed."
|
||||
icon_state = "paralysis"
|
||||
|
||||
/obj/screen/alert/veryhighgravity
|
||||
/atom/movable/screen/alert/veryhighgravity
|
||||
name = "Crushing Gravity"
|
||||
desc = "You're getting crushed by high gravity, picking up items and movement will be slowed. You'll also accumulate brute damage!"
|
||||
icon_state = "paralysis"
|
||||
|
||||
/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()
|
||||
var/mob/living/L = usr
|
||||
if(!istype(L) || !L.can_resist())
|
||||
return
|
||||
@@ -306,7 +306,7 @@ or shoot a gun to move around via Newton's 3rd Law of Motion."
|
||||
if(CHECK_MOBILITY(L, MOBILITY_MOVE))
|
||||
return L.resist_fire() //I just want to start a flame in your hearrrrrrtttttt.
|
||||
|
||||
/obj/screen/alert/give // information set when the give alert is made
|
||||
/atom/movable/screen/alert/give // information set when the give alert is made
|
||||
icon_state = "default"
|
||||
var/mob/living/carbon/giver
|
||||
var/obj/item/receiving
|
||||
@@ -321,7 +321,7 @@ or shoot a gun to move around via Newton's 3rd Law of Motion."
|
||||
* * giver - The person giving the alert and item
|
||||
* * receiving - The item being given by the giver
|
||||
*/
|
||||
/obj/screen/alert/give/proc/setup(mob/living/carbon/taker, mob/living/carbon/giver, obj/item/receiving)
|
||||
/atom/movable/screen/alert/give/proc/setup(mob/living/carbon/taker, mob/living/carbon/giver, obj/item/receiving)
|
||||
name = "[giver] is offering [receiving]"
|
||||
desc = "[giver] is offering [receiving]. Click this alert to take it."
|
||||
icon_state = "template"
|
||||
@@ -331,31 +331,31 @@ or shoot a gun to move around via Newton's 3rd Law of Motion."
|
||||
src.giver = giver
|
||||
RegisterSignal(taker, COMSIG_MOVABLE_MOVED, .proc/removeAlert)
|
||||
|
||||
/obj/screen/alert/give/proc/removeAlert()
|
||||
/atom/movable/screen/alert/give/proc/removeAlert()
|
||||
to_chat(usr, "<span class='warning'>You moved out of range of [giver]!</span>")
|
||||
usr.clear_alert("[giver]")
|
||||
|
||||
/obj/screen/alert/give/Click(location, control, params)
|
||||
/atom/movable/screen/alert/give/Click(location, control, params)
|
||||
. = ..()
|
||||
var/mob/living/carbon/C = usr
|
||||
C.take(giver, receiving)
|
||||
|
||||
//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"
|
||||
@@ -363,7 +363,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"
|
||||
@@ -371,7 +371,7 @@ or shoot a gun to move around via Newton's 3rd Law of Motion."
|
||||
|
||||
// BLOODCULT
|
||||
|
||||
/obj/screen/alert/bloodsense
|
||||
/atom/movable/screen/alert/bloodsense
|
||||
name = "Blood Sense"
|
||||
desc = "Allows you to sense blood that is manipulated by dark magicks."
|
||||
icon_state = "cult_sense"
|
||||
@@ -380,17 +380,17 @@ or shoot a gun to move around via Newton's 3rd Law of Motion."
|
||||
var/angle = 0
|
||||
var/mob/living/simple_animal/hostile/construct/Cviewer = null
|
||||
|
||||
/obj/screen/alert/bloodsense/Initialize()
|
||||
/atom/movable/screen/alert/bloodsense/Initialize()
|
||||
. = ..()
|
||||
narnar = new('icons/mob/screen_alert.dmi', "mini_nar")
|
||||
START_PROCESSING(SSprocessing, src)
|
||||
|
||||
/obj/screen/alert/bloodsense/Destroy()
|
||||
/atom/movable/screen/alert/bloodsense/Destroy()
|
||||
Cviewer = null
|
||||
STOP_PROCESSING(SSprocessing, src)
|
||||
return ..()
|
||||
|
||||
/obj/screen/alert/bloodsense/process()
|
||||
/atom/movable/screen/alert/bloodsense/process()
|
||||
var/atom/blood_target
|
||||
|
||||
if(!mob_viewer.mind)
|
||||
@@ -480,15 +480,15 @@ or shoot a gun to move around via Newton's 3rd Law of Motion."
|
||||
|
||||
|
||||
// CLOCKCULT
|
||||
/obj/screen/alert/clockwork
|
||||
/atom/movable/screen/alert/clockwork
|
||||
alerttooltipstyle = "clockcult"
|
||||
|
||||
/obj/screen/alert/clockwork/infodump
|
||||
/atom/movable/screen/alert/clockwork/infodump
|
||||
name = "Global Records"
|
||||
desc = "You shouldn't be seeing this description, because it should be dynamically generated."
|
||||
icon_state = "clockinfo"
|
||||
|
||||
/obj/screen/alert/clockwork/infodump/MouseEntered(location,control,params)
|
||||
/atom/movable/screen/alert/clockwork/infodump/MouseEntered(location,control,params)
|
||||
if(GLOB.ratvar_awakens)
|
||||
desc = "<font size=3><b>CHETR<br>NYY<br>HAGEHUGF-NAQ-UBABE<br>RATVAR.</b></font>"
|
||||
else
|
||||
@@ -520,19 +520,19 @@ or shoot a gun to move around via Newton's 3rd Law of Motion."
|
||||
|
||||
//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"
|
||||
@@ -540,52 +540,52 @@ 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"
|
||||
|
||||
/obj/screen/alert/etherealcharge
|
||||
/atom/movable/screen/alert/etherealcharge
|
||||
name = "Low Blood Charge"
|
||||
desc = "Your blood's electric charge is running low, find a source of charge for your blood. Use a recharging station found in robotics or the dormitory bathrooms, or eat some Ethereal-friendly food."
|
||||
icon_state = "etherealcharge"
|
||||
|
||||
/obj/screen/alert/ethereal_overcharge
|
||||
/atom/movable/screen/alert/ethereal_overcharge
|
||||
name = "Blood Overcharge"
|
||||
desc = "Your blood's electric charge is becoming dangerously high, find an outlet for your energy. Use Grab Intent on an APC to channel your energy into it."
|
||||
icon_state = "ethereal_overcharge"
|
||||
|
||||
//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 \
|
||||
@@ -594,7 +594,7 @@ so as to remain in compliance with the most up-to-date laws."
|
||||
timeout = 600
|
||||
var/atom/target = null
|
||||
|
||||
/obj/screen/alert/hackingapc/Click()
|
||||
/atom/movable/screen/alert/hackingapc/Click()
|
||||
if(!usr || !usr.client)
|
||||
return
|
||||
if(!target)
|
||||
@@ -606,7 +606,7 @@ so as to remain in compliance with the most up-to-date laws."
|
||||
|
||||
//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"
|
||||
@@ -614,19 +614,19 @@ 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/notify_action
|
||||
/atom/movable/screen/alert/notify_action
|
||||
name = "Body created"
|
||||
desc = "A body was created. You can enter it."
|
||||
icon_state = "template"
|
||||
@@ -634,7 +634,7 @@ so as to remain in compliance with the most up-to-date laws."
|
||||
var/atom/target = null
|
||||
var/action = NOTIFY_JUMP
|
||||
|
||||
/obj/screen/alert/notify_action/Click()
|
||||
/atom/movable/screen/alert/notify_action/Click()
|
||||
if(!usr || !usr.client)
|
||||
return
|
||||
if(!target)
|
||||
@@ -654,44 +654,44 @@ so as to remain in compliance with the most up-to-date laws."
|
||||
|
||||
//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()
|
||||
var/mob/living/L = usr
|
||||
if(!istype(L) || !L.can_resist())
|
||||
return
|
||||
L.MarkResistTime()
|
||||
return L.resist_restraints()
|
||||
|
||||
/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
|
||||
L.MarkResistTime()
|
||||
return L.resist_buckle()
|
||||
|
||||
/obj/screen/alert/shoes/untied
|
||||
/atom/movable/screen/alert/shoes/untied
|
||||
name = "Untied Shoes"
|
||||
desc = "Your shoes are untied! Click the alert or your shoes to tie them."
|
||||
icon_state = "shoealert"
|
||||
|
||||
/obj/screen/alert/shoes/knotted
|
||||
/atom/movable/screen/alert/shoes/knotted
|
||||
name = "Knotted Shoes"
|
||||
desc = "Someone tied your shoelaces together! Click the alert or your shoes to undo the knot."
|
||||
icon_state = "shoealert"
|
||||
|
||||
/obj/screen/alert/shoes/Click()
|
||||
/atom/movable/screen/alert/shoes/Click()
|
||||
var/mob/living/carbon/C = usr
|
||||
if(!istype(C) || !C.can_resist() || C != mob_viewer || !C.shoes)
|
||||
return
|
||||
@@ -708,7 +708,7 @@ so as to remain in compliance with the most up-to-date laws."
|
||||
mymob.client.screen -= alerts[alerts[i]]
|
||||
return 1
|
||||
for(var/i = 1, i <= alerts.len, i++)
|
||||
var/obj/screen/alert/alert = alerts[alerts[i]]
|
||||
var/atom/movable/screen/alert/alert = alerts[alerts[i]]
|
||||
if(alert.icon_state == "template")
|
||||
alert.icon = ui_style
|
||||
switch(i)
|
||||
@@ -728,7 +728,7 @@ so as to remain in compliance with the most up-to-date laws."
|
||||
mymob.client.screen |= alert
|
||||
return 1
|
||||
|
||||
/obj/screen/alert/Click(location, control, params)
|
||||
/atom/movable/screen/alert/Click(location, control, params)
|
||||
if(!usr || !usr.client)
|
||||
return
|
||||
var/paramslist = params2list(params)
|
||||
@@ -738,7 +738,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
|
||||
|
||||
@@ -1,23 +1,23 @@
|
||||
/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(isalienhunter(usr))
|
||||
var/mob/living/carbon/alien/humanoid/hunter/AH = usr
|
||||
AH.toggle_leap()
|
||||
|
||||
/obj/screen/alien/plasma_display
|
||||
/atom/movable/screen/alien/plasma_display
|
||||
icon = 'icons/mob/screen_gen.dmi'
|
||||
icon_state = "power_display2"
|
||||
name = "plasma stored"
|
||||
screen_loc = ui_alienplasmadisplay
|
||||
|
||||
|
||||
/obj/screen/alien/alien_queen_finder
|
||||
/atom/movable/screen/alien/alien_queen_finder
|
||||
icon = 'icons/mob/screen_alien.dmi'
|
||||
icon_state = "queen_finder"
|
||||
name = "queen sense"
|
||||
@@ -30,7 +30,7 @@
|
||||
/datum/hud/alien/New(mob/living/carbon/alien/humanoid/owner)
|
||||
..()
|
||||
|
||||
var/obj/screen/using
|
||||
var/atom/movable/screen/using
|
||||
|
||||
//equippable shit
|
||||
|
||||
@@ -39,55 +39,55 @@
|
||||
|
||||
//begin buttons
|
||||
|
||||
using = new /obj/screen/swap_hand()
|
||||
using = new /atom/movable/screen/swap_hand()
|
||||
using.icon = ui_style
|
||||
using.icon_state = "swap_1"
|
||||
using.screen_loc = ui_swaphand_position(owner,1)
|
||||
using.hud = src
|
||||
static_inventory += using
|
||||
|
||||
using = new /obj/screen/swap_hand()
|
||||
using = new /atom/movable/screen/swap_hand()
|
||||
using.icon = ui_style
|
||||
using.icon_state = "swap_2"
|
||||
using.screen_loc = ui_swaphand_position(owner,2)
|
||||
using.hud = src
|
||||
static_inventory += using
|
||||
|
||||
action_intent = new /obj/screen/act_intent/alien()
|
||||
action_intent = new /atom/movable/screen/act_intent/alien()
|
||||
action_intent.icon_state = mymob.a_intent
|
||||
action_intent.hud = src
|
||||
static_inventory += action_intent
|
||||
|
||||
if(isalienhunter(mymob))
|
||||
var/mob/living/carbon/alien/humanoid/hunter/H = mymob
|
||||
H.leap_icon = new /obj/screen/alien/leap()
|
||||
H.leap_icon = new /atom/movable/screen/alien/leap()
|
||||
H.leap_icon.screen_loc = ui_alien_storage_r
|
||||
static_inventory += H.leap_icon
|
||||
|
||||
using = new/obj/screen/language_menu
|
||||
using = new/atom/movable/screen/language_menu
|
||||
using.screen_loc = ui_alien_language_menu
|
||||
using.hud = src
|
||||
static_inventory += using
|
||||
|
||||
using = new /obj/screen/drop()
|
||||
using = new /atom/movable/screen/drop()
|
||||
using.icon = ui_style
|
||||
using.screen_loc = ui_drop_throw
|
||||
using.hud = src
|
||||
static_inventory += using
|
||||
|
||||
using = new /obj/screen/resist()
|
||||
using = new /atom/movable/screen/resist()
|
||||
using.icon = ui_style
|
||||
using.screen_loc = ui_pull_resist
|
||||
using.hud = src
|
||||
hotkeybuttons += using
|
||||
|
||||
throw_icon = new /obj/screen/throw_catch()
|
||||
throw_icon = new /atom/movable/screen/throw_catch()
|
||||
throw_icon.icon = ui_style
|
||||
throw_icon.screen_loc = ui_drop_throw
|
||||
throw_icon.hud = src
|
||||
hotkeybuttons += throw_icon
|
||||
|
||||
pull_icon = new /obj/screen/pull()
|
||||
pull_icon = new /atom/movable/screen/pull()
|
||||
pull_icon.icon = ui_style
|
||||
pull_icon.hud = src
|
||||
pull_icon.update_icon()
|
||||
@@ -96,25 +96,25 @@
|
||||
|
||||
//begin indicators
|
||||
|
||||
healths = new /obj/screen/healths/alien()
|
||||
healths = new /atom/movable/screen/healths/alien()
|
||||
healths.hud = src
|
||||
infodisplay += healths
|
||||
|
||||
alien_plasma_display = new /obj/screen/alien/plasma_display()
|
||||
alien_plasma_display = new /atom/movable/screen/alien/plasma_display()
|
||||
alien_plasma_display.hud = src
|
||||
infodisplay += alien_plasma_display
|
||||
|
||||
if(!isalienqueen(mymob))
|
||||
alien_queen_finder = new /obj/screen/alien/alien_queen_finder
|
||||
alien_queen_finder = new /atom/movable/screen/alien/alien_queen_finder
|
||||
alien_queen_finder.hud = src
|
||||
infodisplay += alien_queen_finder
|
||||
|
||||
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()
|
||||
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
|
||||
|
||||
@@ -3,34 +3,34 @@
|
||||
|
||||
/datum/hud/larva/New(mob/owner)
|
||||
..()
|
||||
var/obj/screen/using
|
||||
var/atom/movable/screen/using
|
||||
|
||||
action_intent = new /obj/screen/act_intent/alien()
|
||||
action_intent = new /atom/movable/screen/act_intent/alien()
|
||||
action_intent.icon_state = mymob.a_intent
|
||||
action_intent.hud = src
|
||||
static_inventory += action_intent
|
||||
|
||||
healths = new /obj/screen/healths/alien()
|
||||
healths = new /atom/movable/screen/healths/alien()
|
||||
healths.hud = src
|
||||
infodisplay += healths
|
||||
|
||||
alien_queen_finder = new /obj/screen/alien/alien_queen_finder()
|
||||
alien_queen_finder = new /atom/movable/screen/alien/alien_queen_finder()
|
||||
alien_queen_finder.hud = src
|
||||
infodisplay += alien_queen_finder
|
||||
|
||||
pull_icon = new /obj/screen/pull()
|
||||
pull_icon = new /atom/movable/screen/pull()
|
||||
pull_icon.icon = 'icons/mob/screen_alien.dmi'
|
||||
pull_icon.hud = src
|
||||
pull_icon.update_icon()
|
||||
pull_icon.screen_loc = ui_pull_resist
|
||||
hotkeybuttons += pull_icon
|
||||
|
||||
using = new/obj/screen/language_menu
|
||||
using = new/atom/movable/screen/language_menu
|
||||
using.screen_loc = ui_alien_language_menu
|
||||
using.hud = src
|
||||
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()
|
||||
static_inventory += zone_select
|
||||
|
||||
@@ -1,39 +1,39 @@
|
||||
|
||||
/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)
|
||||
|
||||
/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))
|
||||
var/mob/camera/blob/B = hud.mymob
|
||||
if(!B.placed)
|
||||
@@ -44,59 +44,59 @@
|
||||
desc = initial(desc)
|
||||
..()
|
||||
|
||||
/obj/screen/blob/JumpToCore/Click()
|
||||
/atom/movable/screen/blob/JumpToCore/Click()
|
||||
if(isovermind(usr))
|
||||
var/mob/camera/blob/B = usr
|
||||
if(!B.placed)
|
||||
B.place_blob_core(0)
|
||||
B.transport_core()
|
||||
|
||||
/obj/screen/blob/Blobbernaut
|
||||
/atom/movable/screen/blob/Blobbernaut
|
||||
icon_state = "ui_blobbernaut"
|
||||
name = "Produce Blobbernaut (40)"
|
||||
desc = "Produces a strong, smart blobbernaut from a factory blob for 40 resources.<br>The factory blob used will become fragile and unable to produce spores."
|
||||
|
||||
/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/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 (50)"
|
||||
desc = "Produces a node blob for 50 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/ReadaptStrain
|
||||
/atom/movable/screen/blob/ReadaptStrain
|
||||
icon_state = "ui_chemswap"
|
||||
name = "Readapt Strain (40)"
|
||||
desc = "Allows you to choose a new strain from 4 random choices for 40 resources."
|
||||
|
||||
/obj/screen/blob/ReadaptStrain/MouseEntered(location,control,params)
|
||||
/atom/movable/screen/blob/ReadaptStrain/MouseEntered(location,control,params)
|
||||
if(hud && hud.mymob && isovermind(hud.mymob))
|
||||
var/mob/camera/blob/B = hud.mymob
|
||||
if(B.free_strain_rerolls)
|
||||
@@ -107,26 +107,26 @@
|
||||
desc = initial(desc)
|
||||
..()
|
||||
|
||||
/obj/screen/blob/ReadaptStrain/Click()
|
||||
/atom/movable/screen/blob/ReadaptStrain/Click()
|
||||
if(isovermind(usr))
|
||||
var/mob/camera/blob/B = usr
|
||||
B.strain_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()
|
||||
|
||||
/datum/hud/blob_overmind/New(mob/owner)
|
||||
..()
|
||||
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
|
||||
@@ -136,51 +136,51 @@
|
||||
blobpwrdisplay.hud = src
|
||||
infodisplay += blobpwrdisplay
|
||||
|
||||
healths = new /obj/screen/healths/blob()
|
||||
healths = new /atom/movable/screen/healths/blob()
|
||||
healths.hud = src
|
||||
infodisplay += healths
|
||||
|
||||
using = new /obj/screen/blob/BlobHelp()
|
||||
using = new /atom/movable/screen/blob/BlobHelp()
|
||||
using.screen_loc = "WEST:6,NORTH:-3"
|
||||
using.hud = src
|
||||
static_inventory += using
|
||||
|
||||
using = new /obj/screen/blob/JumpToNode()
|
||||
using = new /atom/movable/screen/blob/JumpToNode()
|
||||
using.screen_loc = ui_inventory
|
||||
using.hud = src
|
||||
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_belt
|
||||
using.hud = src
|
||||
static_inventory += using
|
||||
|
||||
using = new /obj/screen/blob/ResourceBlob()
|
||||
using = new /atom/movable/screen/blob/ResourceBlob()
|
||||
using.screen_loc = ui_back
|
||||
using.hud = src
|
||||
static_inventory += using
|
||||
|
||||
using = new /obj/screen/blob/NodeBlob()
|
||||
using = new /atom/movable/screen/blob/NodeBlob()
|
||||
using.screen_loc = ui_hand_position(2)
|
||||
using.hud = src
|
||||
static_inventory += using
|
||||
|
||||
using = new /obj/screen/blob/FactoryBlob()
|
||||
using = new /atom/movable/screen/blob/FactoryBlob()
|
||||
using.screen_loc = ui_hand_position(1)
|
||||
using.hud = src
|
||||
static_inventory += using
|
||||
|
||||
using = new /obj/screen/blob/ReadaptStrain()
|
||||
using = new /atom/movable/screen/blob/ReadaptStrain()
|
||||
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
|
||||
using.hud = src
|
||||
static_inventory += using
|
||||
|
||||
@@ -2,10 +2,10 @@
|
||||
/datum/hud/blobbernaut/New(mob/owner)
|
||||
..()
|
||||
|
||||
blobpwrdisplay = new /obj/screen/healths/blob/naut/core()
|
||||
blobpwrdisplay = new /atom/movable/screen/healths/blob/naut/core()
|
||||
blobpwrdisplay.hud = src
|
||||
infodisplay += blobpwrdisplay
|
||||
|
||||
healths = new /obj/screen/healths/blob/naut()
|
||||
healths = new /atom/movable/screen/healths/blob/naut()
|
||||
healths.hud = src
|
||||
infodisplay += healths
|
||||
|
||||
@@ -1,20 +1,20 @@
|
||||
/datum/hud/marauder
|
||||
var/obj/screen/hosthealth
|
||||
var/obj/screen/blockchance
|
||||
var/obj/screen/counterchance
|
||||
var/atom/movable/screen/hosthealth
|
||||
var/atom/movable/screen/blockchance
|
||||
var/atom/movable/screen/counterchance
|
||||
|
||||
/datum/hud/marauder/New(mob/living/simple_animal/hostile/clockwork/guardian/owner)
|
||||
..()
|
||||
var/obj/screen/using
|
||||
var/atom/movable/screen/using
|
||||
|
||||
healths = new /obj/screen/healths/clock()
|
||||
healths = new /atom/movable/screen/healths/clock()
|
||||
infodisplay += healths
|
||||
|
||||
hosthealth = new /obj/screen/healths/clock()
|
||||
hosthealth = new /atom/movable/screen/healths/clock()
|
||||
hosthealth.screen_loc = ui_internal
|
||||
infodisplay += hosthealth
|
||||
|
||||
using = new /obj/screen/marauder/emerge()
|
||||
using = new /atom/movable/screen/marauder/emerge()
|
||||
using.screen_loc = ui_zonesel
|
||||
static_inventory += using
|
||||
|
||||
@@ -28,15 +28,15 @@
|
||||
if(client && !hud_used)
|
||||
hud_used = new /datum/hud/marauder(src, ui_style2icon(client.prefs.UI_style))
|
||||
|
||||
/obj/screen/marauder
|
||||
/atom/movable/screen/marauder
|
||||
icon = 'icons/mob/clockwork_mobs.dmi'
|
||||
|
||||
/obj/screen/marauder/emerge
|
||||
/atom/movable/screen/marauder/emerge
|
||||
icon_state = "clockguard_emerge"
|
||||
name = "Emerge/Return"
|
||||
desc = "Emerge or Return."
|
||||
|
||||
/obj/screen/marauder/emerge/Click()
|
||||
/atom/movable/screen/marauder/emerge/Click()
|
||||
if(istype(usr, /mob/living/simple_animal/hostile/clockwork/guardian))
|
||||
var/mob/living/simple_animal/hostile/clockwork/guardian/G = usr
|
||||
if(G.is_in_host())
|
||||
|
||||
@@ -3,13 +3,13 @@
|
||||
|
||||
/datum/hud/constructs/New(mob/owner)
|
||||
..()
|
||||
pull_icon = new /obj/screen/pull()
|
||||
pull_icon = new /atom/movable/screen/pull()
|
||||
pull_icon.icon = ui_style
|
||||
pull_icon.hud = src
|
||||
pull_icon.update_icon()
|
||||
pull_icon.screen_loc = ui_construct_pull
|
||||
static_inventory += pull_icon
|
||||
|
||||
healths = new /obj/screen/healths/construct()
|
||||
healths = new /atom/movable/screen/healths/construct()
|
||||
healths.hud = src
|
||||
infodisplay += healths
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
for(var/I in credit_order_for_this_round)
|
||||
if(!credits)
|
||||
return
|
||||
_credits += new /obj/screen/credit(null, I, src, credits_icon)
|
||||
_credits += new /atom/movable/screen/credit(null, I, src, credits_icon)
|
||||
sleep(CREDIT_SPAWN_SPEED)
|
||||
sleep(CREDIT_ROLL_SPEED - CREDIT_SPAWN_SPEED)
|
||||
remove_verb(src, /client/proc/ClearCredits)
|
||||
@@ -31,7 +31,7 @@
|
||||
QDEL_LIST(credits)
|
||||
credits = null
|
||||
|
||||
/obj/screen/credit
|
||||
/atom/movable/screen/credit
|
||||
mouse_opacity = MOUSE_OPACITY_TRANSPARENT
|
||||
alpha = 0
|
||||
screen_loc = "12,1"
|
||||
@@ -39,7 +39,7 @@
|
||||
var/client/parent
|
||||
var/matrix/target
|
||||
|
||||
/obj/screen/credit/Initialize(mapload, credited, client/P, icon/I)
|
||||
/atom/movable/screen/credit/Initialize(mapload, credited, client/P, icon/I)
|
||||
. = ..()
|
||||
icon = I
|
||||
parent = P
|
||||
@@ -57,7 +57,7 @@
|
||||
QDEL_IN(src, CREDIT_ROLL_SPEED)
|
||||
P.screen += src
|
||||
|
||||
/obj/screen/credit/Destroy()
|
||||
/atom/movable/screen/credit/Destroy()
|
||||
var/client/P = parent
|
||||
P.screen -= src
|
||||
icon = null
|
||||
@@ -65,5 +65,5 @@
|
||||
parent = null
|
||||
return ..()
|
||||
|
||||
/obj/screen/credit/proc/FadeOut()
|
||||
/atom/movable/screen/credit/proc/FadeOut()
|
||||
animate(src, alpha = 0, transform = target, time = CREDIT_EASE_DURATION)
|
||||
|
||||
@@ -4,15 +4,15 @@
|
||||
|
||||
/datum/hud/devil/New(mob/owner)
|
||||
..()
|
||||
var/obj/screen/using
|
||||
var/atom/movable/screen/using
|
||||
|
||||
using = new /obj/screen/drop()
|
||||
using = new /atom/movable/screen/drop()
|
||||
using.icon = ui_style
|
||||
using.screen_loc = ui_drone_drop
|
||||
using.hud = src
|
||||
static_inventory += using
|
||||
|
||||
pull_icon = new /obj/screen/pull()
|
||||
pull_icon = new /atom/movable/screen/pull()
|
||||
pull_icon.icon = ui_style
|
||||
pull_icon.hud = src
|
||||
pull_icon.update_icon()
|
||||
@@ -21,7 +21,7 @@
|
||||
|
||||
build_hand_slots()
|
||||
|
||||
using = new /obj/screen/inventory()
|
||||
using = new /atom/movable/screen/inventory()
|
||||
using.name = "hand"
|
||||
using.icon = ui_style
|
||||
using.icon_state = "swap_1_m"
|
||||
@@ -31,7 +31,7 @@
|
||||
using.hud = src
|
||||
static_inventory += using
|
||||
|
||||
using = new /obj/screen/inventory()
|
||||
using = new /atom/movable/screen/inventory()
|
||||
using.name = "hand"
|
||||
using.icon = ui_style
|
||||
using.icon_state = "swap_2"
|
||||
@@ -41,15 +41,15 @@
|
||||
using.hud = src
|
||||
static_inventory += using
|
||||
|
||||
zone_select = new /obj/screen/zone_sel()
|
||||
zone_select = new /atom/movable/screen/zone_sel()
|
||||
zone_select.icon = ui_style
|
||||
zone_select.hud = src
|
||||
zone_select.update_icon()
|
||||
|
||||
lingchemdisplay = new /obj/screen/ling/chems()
|
||||
lingchemdisplay = new /atom/movable/screen/ling/chems()
|
||||
lingchemdisplay.hud = src
|
||||
|
||||
devilsouldisplay = new /obj/screen/devil/soul_counter
|
||||
devilsouldisplay = new /atom/movable/screen/devil/soul_counter
|
||||
devilsouldisplay.hud = src
|
||||
infodisplay += devilsouldisplay
|
||||
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/datum/hud/dextrous/drone/New(mob/owner)
|
||||
..()
|
||||
var/obj/screen/inventory/inv_box
|
||||
var/atom/movable/screen/inventory/inv_box
|
||||
|
||||
inv_box = new /obj/screen/inventory()
|
||||
inv_box = new /atom/movable/screen/inventory()
|
||||
inv_box.name = "internal storage"
|
||||
inv_box.icon = ui_style
|
||||
inv_box.icon_state = "suit_storage"
|
||||
@@ -11,7 +11,7 @@
|
||||
inv_box.slot_id = SLOT_GENERC_DEXTROUS_STORAGE
|
||||
static_inventory += inv_box
|
||||
|
||||
inv_box = new /obj/screen/inventory()
|
||||
inv_box = new /atom/movable/screen/inventory()
|
||||
inv_box.name = "head/mask"
|
||||
inv_box.icon = ui_style
|
||||
inv_box.icon_state = "mask"
|
||||
@@ -20,7 +20,7 @@
|
||||
inv_box.slot_id = SLOT_HEAD
|
||||
static_inventory += inv_box
|
||||
|
||||
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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
client.screen -= screen
|
||||
qdel(screen)
|
||||
|
||||
/mob/proc/clear_fullscreen_after_animate(obj/screen/fullscreen/screen)
|
||||
/mob/proc/clear_fullscreen_after_animate(atom/movable/screen/fullscreen/screen)
|
||||
if(client)
|
||||
client.screen -= screen
|
||||
qdel(screen)
|
||||
@@ -47,7 +47,7 @@
|
||||
|
||||
/mob/proc/reload_fullscreen()
|
||||
if(client)
|
||||
var/obj/screen/fullscreen/screen
|
||||
var/atom/movable/screen/fullscreen/screen
|
||||
for(var/category in screens)
|
||||
screen = screens[category]
|
||||
if(screen.should_show_to(src))
|
||||
@@ -56,7 +56,7 @@
|
||||
else
|
||||
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"
|
||||
@@ -67,89 +67,89 @@
|
||||
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
|
||||
. = ..()
|
||||
|
||||
/obj/screen/fullscreen/brute
|
||||
/atom/movable/screen/fullscreen/brute
|
||||
icon_state = "brutedamageoverlay"
|
||||
layer = UI_DAMAGE_LAYER
|
||||
plane = FULLSCREEN_PLANE
|
||||
|
||||
/obj/screen/fullscreen/oxy
|
||||
/atom/movable/screen/fullscreen/oxy
|
||||
icon_state = "oxydamageoverlay"
|
||||
layer = UI_DAMAGE_LAYER
|
||||
plane = FULLSCREEN_PLANE
|
||||
|
||||
/obj/screen/fullscreen/crit
|
||||
/atom/movable/screen/fullscreen/crit
|
||||
icon_state = "passage"
|
||||
layer = CRIT_LAYER
|
||||
plane = FULLSCREEN_PLANE
|
||||
|
||||
/obj/screen/fullscreen/crit/vision
|
||||
/atom/movable/screen/fullscreen/crit/vision
|
||||
icon_state = "oxydamageoverlay"
|
||||
layer = BLIND_LAYER
|
||||
|
||||
/obj/screen/fullscreen/blind
|
||||
/atom/movable/screen/fullscreen/blind
|
||||
icon_state = "blackimageoverlay"
|
||||
layer = BLIND_LAYER
|
||||
plane = FULLSCREEN_PLANE
|
||||
|
||||
/obj/screen/fullscreen/curse
|
||||
/atom/movable/screen/fullscreen/curse
|
||||
icon_state = "curse"
|
||||
layer = CURSE_LAYER
|
||||
plane = FULLSCREEN_PLANE
|
||||
|
||||
/obj/screen/fullscreen/impaired
|
||||
/atom/movable/screen/fullscreen/impaired
|
||||
icon_state = "impairedoverlay"
|
||||
|
||||
/obj/screen/fullscreen/blurry
|
||||
/atom/movable/screen/fullscreen/blurry
|
||||
icon = 'icons/mob/screen_gen.dmi'
|
||||
screen_loc = "WEST,SOUTH to EAST,NORTH"
|
||||
icon_state = "blurry"
|
||||
|
||||
/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/static
|
||||
/atom/movable/screen/fullscreen/flash/static
|
||||
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/color_vision
|
||||
/atom/movable/screen/fullscreen/color_vision
|
||||
icon = 'icons/mob/screen_gen.dmi'
|
||||
screen_loc = "WEST,SOUTH to EAST,NORTH"
|
||||
icon_state = "flash"
|
||||
alpha = 80
|
||||
|
||||
/obj/screen/fullscreen/color_vision/green
|
||||
/atom/movable/screen/fullscreen/color_vision/green
|
||||
color = "#00ff00"
|
||||
|
||||
/obj/screen/fullscreen/color_vision/red
|
||||
/atom/movable/screen/fullscreen/color_vision/red
|
||||
color = "#ff0000"
|
||||
|
||||
/obj/screen/fullscreen/color_vision/blue
|
||||
/atom/movable/screen/fullscreen/color_vision/blue
|
||||
color = "#0000ff"
|
||||
|
||||
/obj/screen/fullscreen/cinematic_backdrop
|
||||
/atom/movable/screen/fullscreen/cinematic_backdrop
|
||||
icon = 'icons/mob/screen_gen.dmi'
|
||||
screen_loc = "WEST,SOUTH to EAST,NORTH"
|
||||
icon_state = "flash"
|
||||
@@ -158,7 +158,7 @@
|
||||
color = "#000000"
|
||||
show_when_dead = TRUE
|
||||
|
||||
/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)
|
||||
@@ -167,18 +167,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
|
||||
|
||||
@@ -1,15 +1,15 @@
|
||||
//Used for normal mobs that have hands.
|
||||
/datum/hud/dextrous/New(mob/living/owner)
|
||||
..()
|
||||
var/obj/screen/using
|
||||
var/atom/movable/screen/using
|
||||
|
||||
using = new /obj/screen/drop()
|
||||
using = new /atom/movable/screen/drop()
|
||||
using.icon = ui_style
|
||||
using.screen_loc = ui_drone_drop
|
||||
using.hud = src
|
||||
static_inventory += using
|
||||
|
||||
pull_icon = new /obj/screen/pull()
|
||||
pull_icon = new /atom/movable/screen/pull()
|
||||
pull_icon.icon = ui_style
|
||||
pull_icon.hud = src
|
||||
pull_icon.update_icon()
|
||||
@@ -18,14 +18,14 @@
|
||||
|
||||
build_hand_slots()
|
||||
|
||||
using = new /obj/screen/swap_hand()
|
||||
using = new /atom/movable/screen/swap_hand()
|
||||
using.icon = ui_style
|
||||
using.icon_state = "swap_1_m"
|
||||
using.screen_loc = ui_swaphand_position(owner,1)
|
||||
using.hud = src
|
||||
static_inventory += using
|
||||
|
||||
using = new /obj/screen/swap_hand()
|
||||
using = new /atom/movable/screen/swap_hand()
|
||||
using.icon = ui_style
|
||||
using.icon_state = "swap_2"
|
||||
using.screen_loc = ui_swaphand_position(owner,2)
|
||||
@@ -35,29 +35,29 @@
|
||||
if(mymob.possible_a_intents)
|
||||
if(mymob.possible_a_intents.len == 4)
|
||||
// All possible intents - full intent selector
|
||||
action_intent = new /obj/screen/act_intent/segmented
|
||||
action_intent = new /atom/movable/screen/act_intent/segmented
|
||||
else
|
||||
action_intent = new /obj/screen/act_intent
|
||||
action_intent = new /atom/movable/screen/act_intent
|
||||
action_intent.icon = ui_style
|
||||
action_intent.icon_state = mymob.a_intent
|
||||
action_intent.hud = src
|
||||
static_inventory += action_intent
|
||||
|
||||
|
||||
zone_select = new /obj/screen/zone_sel()
|
||||
zone_select = new /atom/movable/screen/zone_sel()
|
||||
zone_select.icon = ui_style
|
||||
zone_select.hud = src
|
||||
zone_select.update_icon()
|
||||
static_inventory += zone_select
|
||||
|
||||
using = new /obj/screen/area_creator
|
||||
using = new /atom/movable/screen/area_creator
|
||||
using.icon = ui_style
|
||||
using.hud = src
|
||||
static_inventory += using
|
||||
|
||||
mymob.client.screen = list()
|
||||
|
||||
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
|
||||
|
||||
@@ -1,79 +1,79 @@
|
||||
/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/jumptomob
|
||||
/atom/movable/screen/ghost/jumptomob
|
||||
name = "Jump to mob"
|
||||
icon_state = "jumptomob"
|
||||
|
||||
/obj/screen/ghost/jumptomob/Click()
|
||||
/atom/movable/screen/ghost/jumptomob/Click()
|
||||
var/mob/dead/observer/G = usr
|
||||
G.jumptomob()
|
||||
|
||||
/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 = "Reenter 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/spawners
|
||||
/atom/movable/screen/ghost/spawners
|
||||
name = "Ghost role spawners"
|
||||
icon_state = "spawners"
|
||||
|
||||
/obj/screen/ghost/spawners/Click()
|
||||
/atom/movable/screen/ghost/spawners/Click()
|
||||
var/mob/dead/observer/G = usr
|
||||
G.open_spawners_menu()
|
||||
|
||||
/datum/hud/ghost/New(mob/owner)
|
||||
..()
|
||||
var/obj/screen/using
|
||||
var/atom/movable/screen/using
|
||||
|
||||
using = new /obj/screen/ghost/jumptomob()
|
||||
using = new /atom/movable/screen/ghost/jumptomob()
|
||||
using.screen_loc = ui_ghost_jumptomob
|
||||
using.hud = src
|
||||
static_inventory += using
|
||||
|
||||
using = new /obj/screen/ghost/orbit()
|
||||
using = new /atom/movable/screen/ghost/orbit()
|
||||
using.screen_loc = ui_ghost_orbit
|
||||
using.hud = src
|
||||
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
|
||||
using.hud = src
|
||||
static_inventory += using
|
||||
|
||||
using = new /obj/screen/ghost/teleport()
|
||||
using = new /atom/movable/screen/ghost/teleport()
|
||||
using.screen_loc = ui_ghost_teleport
|
||||
using.hud = src
|
||||
static_inventory += using
|
||||
|
||||
using = new /obj/screen/ghost/spawners()
|
||||
using = new /atom/movable/screen/ghost/spawners()
|
||||
using.screen_loc = ui_ghost_spawners
|
||||
using.hud = src
|
||||
static_inventory += using
|
||||
|
||||
using = new /obj/screen/language_menu
|
||||
using = new /atom/movable/screen/language_menu
|
||||
using.icon = ui_style
|
||||
using.hud = src
|
||||
static_inventory += using
|
||||
|
||||
@@ -1,18 +1,18 @@
|
||||
|
||||
/datum/hud/guardian/New(mob/living/simple_animal/hostile/guardian/owner)
|
||||
..()
|
||||
var/obj/screen/using
|
||||
var/atom/movable/screen/using
|
||||
|
||||
healths = new /obj/screen/healths/guardian()
|
||||
healths = new /atom/movable/screen/healths/guardian()
|
||||
healths.hud = src
|
||||
infodisplay += healths
|
||||
|
||||
using = new /obj/screen/guardian/Manifest()
|
||||
using = new /atom/movable/screen/guardian/Manifest()
|
||||
using.screen_loc = ui_hand_position(2)
|
||||
using.hud = src
|
||||
static_inventory += using
|
||||
|
||||
using = new /obj/screen/guardian/Recall()
|
||||
using = new /atom/movable/screen/guardian/Recall()
|
||||
using.screen_loc = ui_hand_position(1)
|
||||
using.hud = src
|
||||
static_inventory += using
|
||||
@@ -22,23 +22,23 @@
|
||||
using.hud = src
|
||||
static_inventory += using
|
||||
|
||||
using = new /obj/screen/guardian/ToggleLight()
|
||||
using = new /atom/movable/screen/guardian/ToggleLight()
|
||||
using.screen_loc = ui_inventory
|
||||
using.hud = src
|
||||
static_inventory += using
|
||||
|
||||
using = new /obj/screen/guardian/Communicate()
|
||||
using = new /atom/movable/screen/guardian/Communicate()
|
||||
using.screen_loc = ui_back
|
||||
using.hud = src
|
||||
static_inventory += using
|
||||
|
||||
/datum/hud/dextrous/guardian/New(mob/living/simple_animal/hostile/guardian/owner) //for a dextrous guardian
|
||||
..()
|
||||
var/obj/screen/using
|
||||
var/atom/movable/screen/using
|
||||
if(istype(owner, /mob/living/simple_animal/hostile/guardian/dextrous))
|
||||
var/obj/screen/inventory/inv_box
|
||||
var/atom/movable/screen/inventory/inv_box
|
||||
|
||||
inv_box = new /obj/screen/inventory()
|
||||
inv_box = new /atom/movable/screen/inventory()
|
||||
inv_box.name = "internal storage"
|
||||
inv_box.icon = ui_style
|
||||
inv_box.icon_state = "suit_storage"
|
||||
@@ -46,24 +46,24 @@
|
||||
inv_box.slot_id = SLOT_GENERC_DEXTROUS_STORAGE
|
||||
static_inventory += inv_box
|
||||
|
||||
using = new /obj/screen/guardian/Communicate()
|
||||
using = new /atom/movable/screen/guardian/Communicate()
|
||||
using.screen_loc = ui_sstore1
|
||||
static_inventory += using
|
||||
|
||||
else
|
||||
|
||||
using = new /obj/screen/guardian/Communicate()
|
||||
using = new /atom/movable/screen/guardian/Communicate()
|
||||
using.screen_loc = ui_id
|
||||
static_inventory += using
|
||||
|
||||
healths = new /obj/screen/healths/guardian()
|
||||
healths = new /atom/movable/screen/healths/guardian()
|
||||
infodisplay += healths
|
||||
|
||||
using = new /obj/screen/guardian/Manifest()
|
||||
using = new /atom/movable/screen/guardian/Manifest()
|
||||
using.screen_loc = ui_belt
|
||||
static_inventory += using
|
||||
|
||||
using = new /obj/screen/guardian/Recall()
|
||||
using = new /atom/movable/screen/guardian/Recall()
|
||||
using.screen_loc = ui_back
|
||||
static_inventory += using
|
||||
|
||||
@@ -71,7 +71,7 @@
|
||||
using.screen_loc = ui_storage2
|
||||
static_inventory += using
|
||||
|
||||
using = new /obj/screen/guardian/ToggleLight()
|
||||
using = new /atom/movable/screen/guardian/ToggleLight()
|
||||
using.screen_loc = ui_inventory
|
||||
static_inventory += using
|
||||
|
||||
@@ -91,65 +91,65 @@
|
||||
|
||||
..()
|
||||
|
||||
/obj/screen/guardian
|
||||
/atom/movable/screen/guardian
|
||||
icon = 'icons/mob/guardian.dmi'
|
||||
|
||||
/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
|
||||
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/ToggleMode/Inactive
|
||||
/atom/movable/screen/guardian/ToggleMode/Inactive
|
||||
icon_state = "notoggle" //greyed out so it doesn't look like it'll work
|
||||
|
||||
/obj/screen/guardian/ToggleMode/Assassin
|
||||
/atom/movable/screen/guardian/ToggleMode/Assassin
|
||||
icon_state = "stealth"
|
||||
name = "Toggle Stealth"
|
||||
desc = "Enter or exit stealth."
|
||||
|
||||
/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()
|
||||
|
||||
@@ -25,38 +25,38 @@ GLOBAL_LIST_INIT(available_ui_styles, list(
|
||||
var/inventory_shown = FALSE //Equipped item 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/ling/chems/lingchemdisplay
|
||||
var/obj/screen/ling/sting/lingstingdisplay
|
||||
var/atom/movable/screen/ling/chems/lingchemdisplay
|
||||
var/atom/movable/screen/ling/sting/lingstingdisplay
|
||||
|
||||
var/obj/screen/blobpwrdisplay
|
||||
var/atom/movable/screen/blobpwrdisplay
|
||||
|
||||
var/obj/screen/alien_plasma_display
|
||||
var/obj/screen/alien_queen_finder
|
||||
var/atom/movable/screen/alien_plasma_display
|
||||
var/atom/movable/screen/alien_queen_finder
|
||||
|
||||
var/obj/screen/devil/soul_counter/devilsouldisplay
|
||||
var/atom/movable/screen/devil/soul_counter/devilsouldisplay
|
||||
|
||||
var/obj/screen/action_intent
|
||||
var/obj/screen/zone_select
|
||||
var/obj/screen/pull_icon
|
||||
var/obj/screen/rest_icon
|
||||
var/obj/screen/throw_icon
|
||||
var/obj/screen/module_store_icon
|
||||
var/atom/movable/screen/action_intent
|
||||
var/atom/movable/screen/zone_select
|
||||
var/atom/movable/screen/pull_icon
|
||||
var/atom/movable/screen/rest_icon
|
||||
var/atom/movable/screen/throw_icon
|
||||
var/atom/movable/screen/module_store_icon
|
||||
|
||||
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/obj/screen/hotkeybuttons = list() //the buttons that can be used via hotkeys
|
||||
var/list/atom/movable/screen/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/screenoverlays = list() //the screen objects used as whole screen overlays (flash, damageoverlay, etc...)
|
||||
var/list/inv_slots[SLOTS_AMT] // /obj/screen/inventory objects, ordered by their slot ID.
|
||||
var/list/hand_slots // /obj/screen/inventory/hand objects, assoc list of "[held_index]" = object
|
||||
var/list/obj/screen/plane_master/plane_masters = list() // see "appearance_flags" in the ref, assoc list of "[plane]" = object
|
||||
var/list/inv_slots[SLOTS_AMT] // /atom/movable/screen/inventory objects, ordered by their slot ID.
|
||||
var/list/hand_slots // /atom/movable/screen/inventory/hand objects, assoc list of "[held_index]" = object
|
||||
var/list/atom/movable/screen/plane_master/plane_masters = list() // see "appearance_flags" in the ref, assoc list of "[plane]" = object
|
||||
|
||||
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/obj/screen/healths
|
||||
var/obj/screen/healthdoll
|
||||
var/obj/screen/internals
|
||||
var/atom/movable/screen/healths
|
||||
var/atom/movable/screen/healthdoll
|
||||
var/atom/movable/screen/internals
|
||||
|
||||
// subtypes can override this to force a specific UI style
|
||||
var/ui_style
|
||||
@@ -75,8 +75,8 @@ GLOBAL_LIST_INIT(available_ui_styles, list(
|
||||
|
||||
hand_slots = list()
|
||||
|
||||
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)
|
||||
|
||||
@@ -169,7 +169,7 @@ GLOBAL_LIST_INIT(available_ui_styles, list(
|
||||
|
||||
//These ones are a part of 'static_inventory', 'toggleable_inventory' or 'hotkeybuttons' but we want them to stay
|
||||
for(var/h in hand_slots)
|
||||
var/obj/screen/hand = hand_slots[h]
|
||||
var/atom/movable/screen/hand = hand_slots[h]
|
||||
if(hand)
|
||||
screenmob.client.screen += hand
|
||||
if(action_intent)
|
||||
@@ -207,7 +207,7 @@ GLOBAL_LIST_INIT(available_ui_styles, list(
|
||||
/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
|
||||
|
||||
@@ -261,13 +261,13 @@ GLOBAL_LIST_INIT(available_ui_styles, list(
|
||||
//9/10 this is only called once per mob and only for 2 hands
|
||||
/datum/hud/proc/build_hand_slots()
|
||||
for(var/h in hand_slots)
|
||||
var/obj/screen/inventory/hand/H = hand_slots[h]
|
||||
var/atom/movable/screen/inventory/hand/H = hand_slots[h]
|
||||
if(H)
|
||||
static_inventory -= H
|
||||
hand_slots = list()
|
||||
var/obj/screen/inventory/hand/hand_box
|
||||
var/atom/movable/screen/inventory/hand/hand_box
|
||||
for(var/i in 1 to mymob.held_items.len)
|
||||
hand_box = new /obj/screen/inventory/hand()
|
||||
hand_box = new /atom/movable/screen/inventory/hand()
|
||||
hand_box.name = mymob.get_held_index_name(i)
|
||||
hand_box.icon = ui_style
|
||||
hand_box.icon_state = "hand_[mymob.held_index_to_dir(i)]"
|
||||
@@ -279,10 +279,10 @@ GLOBAL_LIST_INIT(available_ui_styles, list(
|
||||
hand_box.update_icon()
|
||||
|
||||
var/i = 1
|
||||
for(var/obj/screen/swap_hand/SH in static_inventory)
|
||||
for(var/atom/movable/screen/swap_hand/SH in static_inventory)
|
||||
SH.screen_loc = ui_swaphand_position(mymob,!(i % 2) ? 2: 1)
|
||||
i++
|
||||
for(var/obj/screen/human/equip/E in static_inventory)
|
||||
for(var/atom/movable/screen/human/equip/E in static_inventory)
|
||||
E.screen_loc = ui_equip_position(mymob)
|
||||
|
||||
if(ismob(mymob) && mymob.hud_used == src)
|
||||
|
||||
@@ -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()
|
||||
|
||||
var/mob/targetmob = usr
|
||||
|
||||
@@ -23,26 +23,26 @@
|
||||
|
||||
targetmob.hud_used.hidden_inventory_update(usr)
|
||||
|
||||
/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/devil
|
||||
/atom/movable/screen/devil
|
||||
invisibility = INVISIBILITY_ABSTRACT
|
||||
|
||||
/obj/screen/devil/soul_counter
|
||||
/atom/movable/screen/devil/soul_counter
|
||||
icon = 'icons/mob/screen_gen.dmi'
|
||||
name = "souls owned"
|
||||
icon_state = "Devil-6"
|
||||
screen_loc = ui_devilsouldisplay
|
||||
|
||||
/obj/screen/devil/soul_counter/proc/update_counter(souls = 0)
|
||||
/atom/movable/screen/devil/soul_counter/proc/update_counter(souls = 0)
|
||||
invisibility = 0
|
||||
maptext = "<div align='center' valign='middle' style='position:relative; top:0px; left:6px'><font color='#FF0000'>[souls]</font></div>"
|
||||
switch(souls)
|
||||
@@ -59,53 +59,53 @@
|
||||
else
|
||||
icon_state = "Devil-6"
|
||||
|
||||
/obj/screen/devil/soul_counter/proc/clear()
|
||||
/atom/movable/screen/devil/soul_counter/proc/clear()
|
||||
invisibility = INVISIBILITY_ABSTRACT
|
||||
|
||||
/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()
|
||||
if(isobserver(usr))
|
||||
return
|
||||
var/mob/living/carbon/U = usr
|
||||
U.unset_sting()
|
||||
|
||||
/obj/screen/ling/chems
|
||||
/atom/movable/screen/ling/chems
|
||||
name = "chemical storage"
|
||||
icon_state = "power_display"
|
||||
screen_loc = ui_lingchemdisplay
|
||||
|
||||
/datum/hud/human/New(mob/living/carbon/human/owner)
|
||||
..()
|
||||
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/widescreenlayout = FALSE //CIT CHANGE - adds support for different hud layouts depending on widescreen pref
|
||||
if(owner.client && owner.client.prefs && owner.client.prefs.widescreenpref) //CIT CHANGE - ditto
|
||||
widescreenlayout = TRUE // CIT CHANGE - ditto
|
||||
|
||||
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.icon = ui_style
|
||||
if(!widescreenlayout) // CIT CHANGE
|
||||
using.screen_loc = ui_boxlang // CIT CHANGE
|
||||
using.hud = src
|
||||
static_inventory += using
|
||||
|
||||
using = new /obj/screen/area_creator
|
||||
using = new /atom/movable/screen/area_creator
|
||||
using.icon = ui_style
|
||||
if(!widescreenlayout) // CIT CHANGE
|
||||
using.screen_loc = ui_boxarea // CIT CHANGE
|
||||
using.hud = src
|
||||
static_inventory += using
|
||||
|
||||
using = new /obj/screen/voretoggle() //We fancy Vore now
|
||||
using = new /atom/movable/screen/voretoggle() //We fancy Vore now
|
||||
using.icon = tg_ui_icon_to_cit_ui(ui_style)
|
||||
using.screen_loc = ui_voremode
|
||||
if(!widescreenlayout)
|
||||
@@ -113,7 +113,7 @@
|
||||
using.hud = src
|
||||
static_inventory += using
|
||||
|
||||
action_intent = new /obj/screen/act_intent/segmented
|
||||
action_intent = new /atom/movable/screen/act_intent/segmented
|
||||
action_intent.icon_state = mymob.a_intent
|
||||
action_intent.hud = src
|
||||
static_inventory += action_intent
|
||||
@@ -132,13 +132,13 @@
|
||||
resistdelay.screen_loc = ui_resistdelay
|
||||
static_inventory += resistdelay
|
||||
|
||||
using = new /obj/screen/drop()
|
||||
using = new /atom/movable/screen/drop()
|
||||
using.icon = ui_style
|
||||
using.screen_loc = ui_drop_throw
|
||||
using.hud = src
|
||||
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_W_UNIFORM
|
||||
@@ -146,7 +146,7 @@
|
||||
inv_box.screen_loc = ui_iclothing
|
||||
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_WEAR_SUIT
|
||||
@@ -156,21 +156,21 @@
|
||||
|
||||
build_hand_slots()
|
||||
|
||||
using = new /obj/screen/swap_hand()
|
||||
using = new /atom/movable/screen/swap_hand()
|
||||
using.icon = ui_style
|
||||
using.icon_state = "swap_1"
|
||||
using.screen_loc = ui_swaphand_position(owner,1)
|
||||
using.hud = src
|
||||
static_inventory += using
|
||||
|
||||
using = new /obj/screen/swap_hand()
|
||||
using = new /atom/movable/screen/swap_hand()
|
||||
using.icon = ui_style
|
||||
using.icon_state = "swap_2"
|
||||
using.screen_loc = ui_swaphand_position(owner,2)
|
||||
using.hud = src
|
||||
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"
|
||||
@@ -178,7 +178,7 @@
|
||||
inv_box.slot_id = SLOT_WEAR_ID
|
||||
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"
|
||||
@@ -186,7 +186,7 @@
|
||||
inv_box.slot_id = SLOT_WEAR_MASK
|
||||
toggleable_inventory += inv_box
|
||||
|
||||
inv_box = new /obj/screen/inventory()
|
||||
inv_box = new /atom/movable/screen/inventory()
|
||||
inv_box.name = "neck"
|
||||
inv_box.icon = ui_style
|
||||
inv_box.icon_state = "neck"
|
||||
@@ -194,7 +194,7 @@
|
||||
inv_box.slot_id = SLOT_NECK
|
||||
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"
|
||||
@@ -202,7 +202,7 @@
|
||||
inv_box.slot_id = SLOT_BACK
|
||||
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"
|
||||
@@ -210,7 +210,7 @@
|
||||
inv_box.slot_id = SLOT_L_STORE
|
||||
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"
|
||||
@@ -218,7 +218,7 @@
|
||||
inv_box.slot_id = SLOT_R_STORE
|
||||
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"
|
||||
@@ -226,32 +226,32 @@
|
||||
inv_box.slot_id = SLOT_S_STORE
|
||||
static_inventory += inv_box
|
||||
|
||||
using = new /obj/screen/resist()
|
||||
using = new /atom/movable/screen/resist()
|
||||
using.icon = ui_style
|
||||
using.screen_loc = ui_overridden_resist // CIT CHANGE - changes this to overridden resist
|
||||
using.hud = src
|
||||
hotkeybuttons += using
|
||||
|
||||
using = new /obj/screen/rest()
|
||||
using = new /atom/movable/screen/rest()
|
||||
using.icon = ui_style
|
||||
using.screen_loc = ui_pull_resist
|
||||
using.hud = src
|
||||
static_inventory += using
|
||||
//END OF CIT CHANGES
|
||||
|
||||
using = new /obj/screen/human/toggle()
|
||||
using = new /atom/movable/screen/human/toggle()
|
||||
using.icon = ui_style
|
||||
using.screen_loc = ui_inventory
|
||||
using.hud = src
|
||||
static_inventory += using
|
||||
|
||||
using = new /obj/screen/human/equip()
|
||||
using = new /atom/movable/screen/human/equip()
|
||||
using.icon = ui_style
|
||||
using.screen_loc = ui_equip_position(mymob)
|
||||
using.hud = src
|
||||
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"
|
||||
@@ -259,7 +259,7 @@
|
||||
inv_box.slot_id = SLOT_GLOVES
|
||||
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"
|
||||
@@ -267,7 +267,7 @@
|
||||
inv_box.slot_id = SLOT_GLASSES
|
||||
toggleable_inventory += inv_box
|
||||
|
||||
inv_box = new /obj/screen/inventory()
|
||||
inv_box = new /atom/movable/screen/inventory()
|
||||
inv_box.name = "ears"
|
||||
inv_box.icon = ui_style
|
||||
inv_box.icon_state = "ears"
|
||||
@@ -275,7 +275,7 @@
|
||||
inv_box.slot_id = SLOT_EARS
|
||||
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"
|
||||
@@ -283,7 +283,7 @@
|
||||
inv_box.slot_id = SLOT_HEAD
|
||||
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"
|
||||
@@ -291,7 +291,7 @@
|
||||
inv_box.slot_id = SLOT_SHOES
|
||||
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"
|
||||
@@ -300,72 +300,72 @@
|
||||
inv_box.slot_id = SLOT_BELT
|
||||
static_inventory += inv_box
|
||||
|
||||
throw_icon = new /obj/screen/throw_catch()
|
||||
throw_icon = new /atom/movable/screen/throw_catch()
|
||||
throw_icon.icon = ui_style
|
||||
throw_icon.screen_loc = ui_drop_throw
|
||||
throw_icon.hud = src
|
||||
hotkeybuttons += throw_icon
|
||||
|
||||
internals = new /obj/screen/internals()
|
||||
internals = new /atom/movable/screen/internals()
|
||||
internals.hud = src
|
||||
infodisplay += internals
|
||||
|
||||
healths = new /obj/screen/healths()
|
||||
healths = new /atom/movable/screen/healths()
|
||||
healths.hud = src
|
||||
infodisplay += healths
|
||||
|
||||
staminas = new /obj/screen/staminas()
|
||||
staminas = new /atom/movable/screen/staminas()
|
||||
staminas.hud = src
|
||||
infodisplay += staminas
|
||||
|
||||
if(!CONFIG_GET(flag/disable_stambuffer))
|
||||
staminabuffer = new /obj/screen/staminabuffer()
|
||||
staminabuffer = new /atom/movable/screen/staminabuffer()
|
||||
staminabuffer.hud = src
|
||||
infodisplay += staminabuffer
|
||||
//END OF CIT CHANGES
|
||||
|
||||
healthdoll = new /obj/screen/healthdoll()
|
||||
healthdoll = new /atom/movable/screen/healthdoll()
|
||||
healthdoll.hud = src
|
||||
infodisplay += healthdoll
|
||||
|
||||
pull_icon = new /obj/screen/pull()
|
||||
pull_icon = new /atom/movable/screen/pull()
|
||||
pull_icon.icon = ui_style
|
||||
pull_icon.hud = src
|
||||
pull_icon.update_icon()
|
||||
pull_icon.screen_loc = ui_pull_resist
|
||||
static_inventory += pull_icon
|
||||
|
||||
lingchemdisplay = new /obj/screen/ling/chems()
|
||||
lingchemdisplay = new /atom/movable/screen/ling/chems()
|
||||
lingchemdisplay.hud = src
|
||||
infodisplay += lingchemdisplay
|
||||
|
||||
lingstingdisplay = new /obj/screen/ling/sting()
|
||||
lingstingdisplay = new /atom/movable/screen/ling/sting()
|
||||
lingstingdisplay.hud = src
|
||||
infodisplay += lingstingdisplay
|
||||
|
||||
devilsouldisplay = new /obj/screen/devil/soul_counter
|
||||
devilsouldisplay = new /atom/movable/screen/devil/soul_counter
|
||||
devilsouldisplay.hud = src
|
||||
infodisplay += devilsouldisplay
|
||||
|
||||
blood_display = new /obj/screen/bloodsucker/blood_counter // Blood Volume
|
||||
blood_display = new /atom/movable/screen/bloodsucker/blood_counter // Blood Volume
|
||||
blood_display.hud = src
|
||||
infodisplay += blood_display
|
||||
|
||||
vamprank_display = new /obj/screen/bloodsucker/rank_counter // Bloodsucker Rank
|
||||
vamprank_display = new /atom/movable/screen/bloodsucker/rank_counter // Bloodsucker Rank
|
||||
vamprank_display.hud = src
|
||||
infodisplay += vamprank_display
|
||||
|
||||
sunlight_display = new /obj/screen/bloodsucker/sunlight_counter // Sunlight
|
||||
sunlight_display = new /atom/movable/screen/bloodsucker/sunlight_counter // Sunlight
|
||||
sunlight_display.hud = src
|
||||
infodisplay += sunlight_display
|
||||
|
||||
zone_select = new /obj/screen/zone_sel()
|
||||
zone_select = new /atom/movable/screen/zone_sel()
|
||||
zone_select.icon = ui_style
|
||||
zone_select.hud = src
|
||||
zone_select.update_icon()
|
||||
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
|
||||
@@ -374,12 +374,12 @@
|
||||
update_locked_slots()
|
||||
|
||||
/datum/hud/human/proc/assert_move_intent_ui(mob/living/carbon/human/owner = mymob, on_new = FALSE)
|
||||
var/obj/screen/using
|
||||
var/atom/movable/screen/using
|
||||
// delete old ones
|
||||
var/list/obj/screen/victims = list()
|
||||
victims += locate(/obj/screen/mov_intent) in static_inventory
|
||||
victims += locate(/obj/screen/sprintbutton) in static_inventory
|
||||
victims += locate(/obj/screen/sprint_buffer) in static_inventory
|
||||
var/list/atom/movable/screen/victims = list()
|
||||
victims += locate(/atom/movable/screen/mov_intent) in static_inventory
|
||||
victims += locate(/atom/movable/screen/sprintbutton) in static_inventory
|
||||
victims += locate(/atom/movable/screen/sprint_buffer) in static_inventory
|
||||
if(victims)
|
||||
static_inventory -= victims
|
||||
if(mymob?.client)
|
||||
@@ -388,7 +388,7 @@
|
||||
|
||||
// make new ones
|
||||
// walk/run
|
||||
using = new /obj/screen/mov_intent
|
||||
using = new /atom/movable/screen/mov_intent
|
||||
using.icon = tg_ui_icon_to_cit_ui(ui_style) // CIT CHANGE - overrides mov intent icon
|
||||
using.screen_loc = ui_movi
|
||||
using.hud = src
|
||||
@@ -401,7 +401,7 @@
|
||||
return
|
||||
|
||||
// sprint button
|
||||
using = new /obj/screen/sprintbutton
|
||||
using = new /atom/movable/screen/sprintbutton
|
||||
using.icon = tg_ui_icon_to_cit_ui(ui_style)
|
||||
using.icon_state = ((owner.combat_flags & COMBAT_FLAG_SPRINT_ACTIVE) ? "act_sprint_on" : "act_sprint")
|
||||
using.screen_loc = ui_movi
|
||||
@@ -411,7 +411,7 @@
|
||||
owner?.client?.screen += using
|
||||
|
||||
// same as above but buffer.
|
||||
sprint_buffer = new /obj/screen/sprint_buffer
|
||||
sprint_buffer = new /atom/movable/screen/sprint_buffer
|
||||
sprint_buffer.screen_loc = ui_sprintbufferloc
|
||||
sprint_buffer.hud = src
|
||||
static_inventory += sprint_buffer
|
||||
@@ -425,7 +425,7 @@
|
||||
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 = 128
|
||||
|
||||
@@ -4,13 +4,13 @@
|
||||
/datum/hud/lavaland_elite/New(mob/living/simple_animal/hostile/asteroid/elite)
|
||||
..()
|
||||
|
||||
pull_icon = new /obj/screen/pull()
|
||||
pull_icon = new /atom/movable/screen/pull()
|
||||
pull_icon.icon = ui_style
|
||||
pull_icon.hud = src
|
||||
pull_icon.update_icon()
|
||||
pull_icon.screen_loc = ui_living_pull
|
||||
static_inventory += pull_icon
|
||||
|
||||
healths = new /obj/screen/healths/lavaland_elite()
|
||||
healths = new /atom/movable/screen/healths/lavaland_elite()
|
||||
healths.hud = src
|
||||
infodisplay += healths
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
* 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
|
||||
@@ -12,7 +12,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"
|
||||
@@ -25,7 +25,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
|
||||
@@ -36,7 +36,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
|
||||
@@ -46,7 +46,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])
|
||||
@@ -68,7 +68,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)
|
||||
@@ -122,7 +122,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)
|
||||
|
||||
@@ -1,28 +1,28 @@
|
||||
/datum/hud/monkey/New(mob/living/carbon/monkey/owner)
|
||||
..()
|
||||
var/obj/screen/using
|
||||
var/obj/screen/inventory/inv_box
|
||||
var/atom/movable/screen/using
|
||||
var/atom/movable/screen/inventory/inv_box
|
||||
|
||||
action_intent = new /obj/screen/act_intent()
|
||||
action_intent = new /atom/movable/screen/act_intent()
|
||||
action_intent.icon = ui_style
|
||||
action_intent.icon_state = mymob.a_intent
|
||||
action_intent.screen_loc = ui_acti
|
||||
action_intent.hud = src
|
||||
static_inventory += action_intent
|
||||
|
||||
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
|
||||
using.hud = src
|
||||
static_inventory += using
|
||||
|
||||
using = new/obj/screen/language_menu
|
||||
using = new/atom/movable/screen/language_menu
|
||||
using.icon = ui_style
|
||||
using.hud = src
|
||||
static_inventory += using
|
||||
|
||||
using = new /obj/screen/drop()
|
||||
using = new /atom/movable/screen/drop()
|
||||
using.icon = ui_style
|
||||
using.screen_loc = ui_drop_throw
|
||||
using.hud = src
|
||||
@@ -30,21 +30,21 @@
|
||||
|
||||
build_hand_slots()
|
||||
|
||||
using = new /obj/screen/swap_hand()
|
||||
using = new /atom/movable/screen/swap_hand()
|
||||
using.icon = ui_style
|
||||
using.icon_state = "swap_1_m" //extra wide!
|
||||
using.screen_loc = ui_swaphand_position(owner,1)
|
||||
using.hud = src
|
||||
static_inventory += using
|
||||
|
||||
using = new /obj/screen/swap_hand()
|
||||
using = new /atom/movable/screen/swap_hand()
|
||||
using.icon = ui_style
|
||||
using.icon_state = "swap_2"
|
||||
using.screen_loc = ui_swaphand_position(owner,2)
|
||||
using.hud = src
|
||||
static_inventory += using
|
||||
|
||||
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"
|
||||
@@ -53,7 +53,7 @@
|
||||
inv_box.slot_id = SLOT_WEAR_MASK
|
||||
static_inventory += inv_box
|
||||
|
||||
inv_box = new /obj/screen/inventory()
|
||||
inv_box = new /atom/movable/screen/inventory()
|
||||
inv_box.name = "neck"
|
||||
inv_box.icon = ui_style
|
||||
inv_box.icon_state = "neck"
|
||||
@@ -62,7 +62,7 @@
|
||||
inv_box.slot_id = SLOT_NECK
|
||||
static_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"
|
||||
@@ -71,7 +71,7 @@
|
||||
inv_box.slot_id = SLOT_HEAD
|
||||
static_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"
|
||||
@@ -79,37 +79,37 @@
|
||||
inv_box.slot_id = SLOT_BACK
|
||||
static_inventory += inv_box
|
||||
|
||||
throw_icon = new /obj/screen/throw_catch()
|
||||
throw_icon = new /atom/movable/screen/throw_catch()
|
||||
throw_icon.icon = ui_style
|
||||
throw_icon.screen_loc = ui_drop_throw
|
||||
throw_icon.hud = src
|
||||
hotkeybuttons += throw_icon
|
||||
|
||||
internals = new /obj/screen/internals()
|
||||
internals = new /atom/movable/screen/internals()
|
||||
internals.hud = src
|
||||
infodisplay += internals
|
||||
|
||||
healths = new /obj/screen/healths()
|
||||
healths = new /atom/movable/screen/healths()
|
||||
healths.hud = src
|
||||
infodisplay += healths
|
||||
|
||||
pull_icon = new /obj/screen/pull()
|
||||
pull_icon = new /atom/movable/screen/pull()
|
||||
pull_icon.icon = ui_style
|
||||
pull_icon.screen_loc = ui_pull_resist
|
||||
pull_icon.hud = src
|
||||
pull_icon.update_icon()
|
||||
static_inventory += pull_icon
|
||||
|
||||
lingchemdisplay = new /obj/screen/ling/chems()
|
||||
lingchemdisplay = new /atom/movable/screen/ling/chems()
|
||||
lingchemdisplay.hud = src
|
||||
infodisplay += lingchemdisplay
|
||||
|
||||
lingstingdisplay = new /obj/screen/ling/sting()
|
||||
lingstingdisplay = new /atom/movable/screen/ling/sting()
|
||||
lingstingdisplay.hud = src
|
||||
infodisplay += lingstingdisplay
|
||||
|
||||
|
||||
zone_select = new /obj/screen/zone_sel()
|
||||
zone_select = new /atom/movable/screen/zone_sel()
|
||||
zone_select.icon = ui_style
|
||||
zone_select.hud = src
|
||||
zone_select.update_icon()
|
||||
@@ -117,13 +117,13 @@
|
||||
|
||||
mymob.client.screen = list()
|
||||
|
||||
using = new /obj/screen/resist()
|
||||
using = new /atom/movable/screen/resist()
|
||||
using.icon = ui_style
|
||||
using.screen_loc = ui_pull_resist
|
||||
using.hud = src
|
||||
hotkeybuttons += using
|
||||
|
||||
for(var/obj/screen/inventory/inv in (static_inventory + toggleable_inventory))
|
||||
for(var/atom/movable/screen/inventory/inv in (static_inventory + toggleable_inventory))
|
||||
if(inv.slot_id)
|
||||
inv.hud = src
|
||||
inv_slots[inv.slot_id] = inv
|
||||
|
||||
@@ -8,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 = FALSE
|
||||
@@ -18,11 +18,11 @@
|
||||
//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
|
||||
var/list/PM = params2list(params)
|
||||
@@ -56,7 +56,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"
|
||||
@@ -75,7 +75,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"
|
||||
|
||||
@@ -7,12 +7,12 @@
|
||||
|
||||
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()
|
||||
|
||||
@@ -20,9 +20,9 @@
|
||||
C.parallax_layers.len = C.parallax_layers_max
|
||||
|
||||
C.screen |= (C.parallax_layers)
|
||||
var/obj/screen/plane_master/PM = screenmob.hud_used.plane_masters["[PLANE_SPACE]"]
|
||||
var/atom/movable/screen/plane_master/PM = screenmob.hud_used.plane_masters["[PLANE_SPACE]"]
|
||||
if(screenmob != mymob)
|
||||
C.screen -= locate(/obj/screen/plane_master/parallax_white) in C.screen
|
||||
C.screen -= locate(/atom/movable/screen/plane_master/parallax_white) in C.screen
|
||||
C.screen += PM
|
||||
PM.color = list(
|
||||
0, 0, 0, 0,
|
||||
@@ -37,9 +37,9 @@
|
||||
var/mob/screenmob = viewmob || mymob
|
||||
var/client/C = screenmob.client
|
||||
C.screen -= (C.parallax_layers_cached)
|
||||
var/obj/screen/plane_master/PM = screenmob.hud_used.plane_masters["[PLANE_SPACE]"]
|
||||
var/atom/movable/screen/plane_master/PM = screenmob.hud_used.plane_masters["[PLANE_SPACE]"]
|
||||
if(screenmob != mymob)
|
||||
C.screen -= locate(/obj/screen/plane_master/parallax_white) in C.screen
|
||||
C.screen -= locate(/atom/movable/screen/plane_master/parallax_white) in C.screen
|
||||
C.screen += PM
|
||||
PM.color = initial(PM.color)
|
||||
C.parallax_layers = null
|
||||
@@ -90,7 +90,7 @@
|
||||
if(new_parallax_movedir == FALSE)
|
||||
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
|
||||
@@ -113,7 +113,7 @@
|
||||
var/shortesttimer
|
||||
if(!skip_windups)
|
||||
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))
|
||||
@@ -141,7 +141,7 @@
|
||||
return
|
||||
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
|
||||
@@ -188,7 +188,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)
|
||||
@@ -233,7 +233,7 @@
|
||||
var/area/areaobj = get_area(client.eye)
|
||||
hud_used.set_parallax_movedir(areaobj.parallax_movedir, TRUE)
|
||||
|
||||
/obj/screen/parallax_layer
|
||||
/atom/movable/screen/parallax_layer
|
||||
icon = 'icons/effects/parallax.dmi'
|
||||
var/speed = 1
|
||||
var/offset_x = 0
|
||||
@@ -246,13 +246,13 @@
|
||||
mouse_opacity = MOUSE_OPACITY_TRANSPARENT
|
||||
|
||||
|
||||
/obj/screen/parallax_layer/Initialize(mapload, view)
|
||||
/atom/movable/screen/parallax_layer/Initialize(mapload, 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
|
||||
|
||||
@@ -271,52 +271,52 @@
|
||||
add_overlay(new_overlays)
|
||||
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/Initialize(mapload, view)
|
||||
/atom/movable/screen/parallax_layer/random/space_gas/Initialize(mapload, view)
|
||||
. = ..()
|
||||
src.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"
|
||||
|
||||
/obj/screen/parallax_layer/planet
|
||||
/atom/movable/screen/parallax_layer/planet
|
||||
icon_state = "planet"
|
||||
blend_mode = BLEND_OVERLAY
|
||||
absolute = TRUE //Status of seperation
|
||||
speed = 3
|
||||
layer = 30
|
||||
|
||||
/obj/screen/parallax_layer/planet/update_status(mob/M)
|
||||
/atom/movable/screen/parallax_layer/planet/update_status(mob/M)
|
||||
var/client/C = M.client
|
||||
var/turf/posobj = get_turf(C.eye)
|
||||
if(!posobj)
|
||||
return
|
||||
invisibility = is_station_level(posobj.z) ? 0 : INVISIBILITY_ABSTRACT
|
||||
|
||||
/obj/screen/parallax_layer/planet/update_o()
|
||||
/atom/movable/screen/parallax_layer/planet/update_o()
|
||||
return //Shit won't move
|
||||
|
||||
@@ -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 @@
|
||||
add_overlay(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
|
||||
add_overlay(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,19 +115,19 @@
|
||||
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
|
||||
viewing_turfs = get_visible_turfs()
|
||||
vis_contents += viewing_turfs
|
||||
|
||||
/obj/screen/movable/pic_in_pic/proc/get_visible_turfs()
|
||||
/atom/movable/screen/movable/pic_in_pic/proc/get_visible_turfs()
|
||||
var/turf/T = get_turf(center)
|
||||
if(!T)
|
||||
return list()
|
||||
@@ -135,12 +135,12 @@
|
||||
var/turf/upperright = locate(min(world.maxx, lowerleft.x + width - 1), min(world.maxy, lowerleft.y + height - 1), lowerleft.z)
|
||||
return block(lowerleft, upperright)
|
||||
|
||||
/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,25 +6,25 @@
|
||||
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 https://secure.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)
|
||||
|
||||
///Things rendered on "openspace"; holes in multi-z
|
||||
/obj/screen/plane_master/openspace
|
||||
/atom/movable/screen/plane_master/openspace
|
||||
name = "open space plane master"
|
||||
plane = OPENSPACE_BACKDROP_PLANE
|
||||
appearance_flags = PLANE_MASTER
|
||||
blend_mode = BLEND_MULTIPLY
|
||||
alpha = 255
|
||||
|
||||
/obj/screen/plane_master/openspace/Initialize()
|
||||
/atom/movable/screen/plane_master/openspace/Initialize()
|
||||
. = ..()
|
||||
filters += filter(type="alpha", render_source=FIELD_OF_VISION_RENDER_TARGET, flags=MASK_INVERSE)
|
||||
|
||||
@@ -32,163 +32,143 @@
|
||||
filters += filter(type = "drop_shadow", color = "#04080FAA", size = -15)
|
||||
filters += filter(type = "drop_shadow", color = "#04080FAA", size = -20)
|
||||
|
||||
/obj/screen/plane_master/proc/outline(_size, _color)
|
||||
/atom/movable/screen/plane_master/proc/outline(_size, _color)
|
||||
filters += filter(type = "outline", size = _size, color = _color)
|
||||
|
||||
/obj/screen/plane_master/proc/shadow(_size, _offset = 0, _x = 0, _y = 0, _color = "#04080FAA")
|
||||
/atom/movable/screen/plane_master/proc/shadow(_size, _offset = 0, _x = 0, _y = 0, _color = "#04080FAA")
|
||||
filters += filter(type = "drop_shadow", x = _x, y = _y, color = _color, size = _size, offset = _offset)
|
||||
|
||||
///Contains just the floor
|
||||
/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/wall
|
||||
/atom/movable/screen/plane_master/wall
|
||||
name = "wall plane master"
|
||||
plane = WALL_PLANE
|
||||
appearance_flags = PLANE_MASTER
|
||||
|
||||
/obj/screen/plane_master/wall/backdrop(mob/mymob)
|
||||
/atom/movable/screen/plane_master/wall/backdrop(mob/mymob)
|
||||
if(mymob?.client?.prefs.ambientocclusion)
|
||||
add_filter("ambient_occlusion", 0, AMBIENT_OCCLUSION(4, "#04080FAA"))
|
||||
else
|
||||
remove_filter("ambient_occlusion")
|
||||
|
||||
/obj/screen/plane_master/above_wall
|
||||
/atom/movable/screen/plane_master/above_wall
|
||||
name = "above wall plane master"
|
||||
plane = ABOVE_WALL_PLANE
|
||||
appearance_flags = PLANE_MASTER
|
||||
|
||||
/obj/screen/plane_master/above_wall/Initialize()
|
||||
/atom/movable/screen/plane_master/above_wall/Initialize()
|
||||
. = ..()
|
||||
add_filter("vision_cone", 100, list(type="alpha", render_source=FIELD_OF_VISION_RENDER_TARGET, flags=MASK_INVERSE))
|
||||
|
||||
/obj/screen/plane_master/above_wall/backdrop(mob/mymob)
|
||||
/atom/movable/screen/plane_master/above_wall/backdrop(mob/mymob)
|
||||
if(mymob?.client?.prefs.ambientocclusion)
|
||||
add_filter("ambient_occlusion", 0, AMBIENT_OCCLUSION(3, "#04080F64"))
|
||||
else
|
||||
remove_filter("ambient_occlusion")
|
||||
|
||||
///Contains most things in the game world
|
||||
/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 //should use client color
|
||||
blend_mode = BLEND_OVERLAY
|
||||
|
||||
/obj/screen/plane_master/game_world/Initialize()
|
||||
/atom/movable/screen/plane_master/game_world/Initialize()
|
||||
. = ..()
|
||||
add_filter("vision_cone", 100, list(type="alpha", render_source=FIELD_OF_VISION_RENDER_TARGET, flags=MASK_INVERSE))
|
||||
|
||||
/obj/screen/plane_master/game_world/backdrop(mob/mymob)
|
||||
/atom/movable/screen/plane_master/game_world/backdrop(mob/mymob)
|
||||
if(mymob?.client?.prefs.ambientocclusion)
|
||||
add_filter("ambient_occlusion", 0, AMBIENT_OCCLUSION(4, "#04080FAA"))
|
||||
else
|
||||
remove_filter("ambient_occlusion")
|
||||
|
||||
///Contains all shadow cone masks, whose image overrides are displayed only to their respective owners.
|
||||
/obj/screen/plane_master/field_of_vision
|
||||
/atom/movable/screen/plane_master/field_of_vision
|
||||
name = "field of vision mask plane master"
|
||||
plane = FIELD_OF_VISION_PLANE
|
||||
render_target = FIELD_OF_VISION_RENDER_TARGET
|
||||
mouse_opacity = MOUSE_OPACITY_TRANSPARENT
|
||||
|
||||
/obj/screen/plane_master/field_of_vision/Initialize()
|
||||
/atom/movable/screen/plane_master/field_of_vision/Initialize()
|
||||
. = ..()
|
||||
filters += filter(type="alpha", render_source=FIELD_OF_VISION_BLOCKER_RENDER_TARGET, flags=MASK_INVERSE)
|
||||
|
||||
///Used to display the owner and its adjacent surroundings through the FoV plane mask.
|
||||
/obj/screen/plane_master/field_of_vision_blocker
|
||||
/atom/movable/screen/plane_master/field_of_vision_blocker
|
||||
name = "field of vision blocker plane master"
|
||||
plane = FIELD_OF_VISION_BLOCKER_PLANE
|
||||
render_target = FIELD_OF_VISION_BLOCKER_RENDER_TARGET
|
||||
mouse_opacity = MOUSE_OPACITY_TRANSPARENT
|
||||
|
||||
///Stores the visible portion of the FoV shadow cone.
|
||||
/obj/screen/plane_master/field_of_vision_visual
|
||||
/atom/movable/screen/plane_master/field_of_vision_visual
|
||||
name = "field of vision visual plane master"
|
||||
plane = FIELD_OF_VISION_VISUAL_PLANE
|
||||
mouse_opacity = MOUSE_OPACITY_TRANSPARENT
|
||||
|
||||
/obj/screen/plane_master/field_of_vision_visual/Initialize()
|
||||
/atom/movable/screen/plane_master/field_of_vision_visual/Initialize()
|
||||
. = ..()
|
||||
filters += filter(type="alpha", render_source=FIELD_OF_VISION_BLOCKER_RENDER_TARGET, flags=MASK_INVERSE)
|
||||
|
||||
///Contains all lighting objects
|
||||
/obj/screen/plane_master/lighting
|
||||
/atom/movable/screen/plane_master/lighting
|
||||
name = "lighting plane master"
|
||||
plane = LIGHTING_PLANE
|
||||
blend_mode = BLEND_MULTIPLY
|
||||
mouse_opacity = MOUSE_OPACITY_TRANSPARENT
|
||||
|
||||
/obj/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)
|
||||
/atom/movable/screen/plane_master/lighting/backdrop(mob/mymob)
|
||||
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()
|
||||
/*!
|
||||
* This system works by exploiting BYONDs color matrix filter to use layers to handle emissive blockers.
|
||||
*
|
||||
* Emissive overlays are pasted with an atom color that converts them to be entirely some specific color.
|
||||
* Emissive blockers are pasted with an atom color that converts them to be entirely some different color.
|
||||
* Emissive overlays and emissive blockers are put onto the same plane.
|
||||
* The layers for the emissive overlays and emissive blockers cause them to mask eachother similar to normal BYOND objects.
|
||||
* A color matrix filter is applied to the emissive plane to mask out anything that isn't whatever the emissive color is.
|
||||
* This is then used to alpha mask the lighting plane.
|
||||
*/
|
||||
|
||||
/atom/movable/screen/plane_master/lighting/Initialize()
|
||||
. = ..()
|
||||
filters += filter(type="alpha", render_source = EMISSIVE_RENDER_TARGET, flags = MASK_INVERSE)
|
||||
filters += filter(type="alpha", render_source = EMISSIVE_UNBLOCKABLE_RENDER_TARGET, flags = MASK_INVERSE)
|
||||
add_filter("emissives", 1, alpha_mask_filter(render_source = EMISSIVE_RENDER_TARGET, flags = MASK_INVERSE))
|
||||
add_filter("object_lighting", 2, alpha_mask_filter(render_source = O_LIGHTING_VISUAL_RENDER_TARGET, flags = MASK_INVERSE))
|
||||
|
||||
|
||||
/**
|
||||
* Things placed on this mask the lighting plane. Doesn't render directly.
|
||||
*
|
||||
* Gets masked by blocking plane. Use for things that you want blocked by
|
||||
* mobs, items, etc.
|
||||
*/
|
||||
/obj/screen/plane_master/emissive
|
||||
* Handles emissive overlays and emissive blockers.
|
||||
*/
|
||||
/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()
|
||||
. = ..()
|
||||
filters += filter(type="alpha", render_source=EMISSIVE_BLOCKER_RENDER_TARGET, flags=MASK_INVERSE)
|
||||
filters += filter(type="alpha", render_source=FIELD_OF_VISION_RENDER_TARGET, flags=MASK_INVERSE)
|
||||
|
||||
/**
|
||||
* Things placed on this always mask the lighting plane. Doesn't render directly.
|
||||
*
|
||||
* Always masks the light plane, isn't blocked by anything (except Field of Vision). Use for on mob glows,
|
||||
* magic stuff, etc.
|
||||
*/
|
||||
|
||||
/obj/screen/plane_master/emissive_unblockable
|
||||
name = "unblockable emissive plane master"
|
||||
plane = EMISSIVE_UNBLOCKABLE_PLANE
|
||||
mouse_opacity = MOUSE_OPACITY_TRANSPARENT
|
||||
render_target = EMISSIVE_UNBLOCKABLE_RENDER_TARGET
|
||||
|
||||
/obj/screen/plane_master/emissive_unblockable/Initialize()
|
||||
. = ..()
|
||||
filters += filter(type="alpha", render_source=FIELD_OF_VISION_RENDER_TARGET, flags=MASK_INVERSE)
|
||||
|
||||
/**
|
||||
* Things placed on this layer mask the emissive layer. Doesn't render directly
|
||||
*
|
||||
* You really shouldn't be directly using this, use atom helpers instead
|
||||
*/
|
||||
/obj/screen/plane_master/emissive_blocker
|
||||
name = "emissive blocker plane master"
|
||||
plane = EMISSIVE_BLOCKER_PLANE
|
||||
mouse_opacity = MOUSE_OPACITY_TRANSPARENT
|
||||
render_target = EMISSIVE_BLOCKER_RENDER_TARGET
|
||||
add_filter("em_block_masking", 1, color_matrix_filter(GLOB.em_mask_matrix))
|
||||
|
||||
///Contains space parallax
|
||||
/obj/screen/plane_master/parallax
|
||||
/atom/movable/screen/plane_master/parallax
|
||||
name = "parallax plane master"
|
||||
plane = PLANE_SPACE_PARALLAX
|
||||
blend_mode = BLEND_MULTIPLY
|
||||
mouse_opacity = MOUSE_OPACITY_TRANSPARENT
|
||||
|
||||
/obj/screen/plane_master/parallax_white
|
||||
/atom/movable/screen/plane_master/parallax_white
|
||||
name = "parallax whitifier plane master"
|
||||
plane = PLANE_SPACE
|
||||
|
||||
/obj/screen/plane_master/camera_static
|
||||
/atom/movable/screen/plane_master/camera_static
|
||||
name = "camera static plane master"
|
||||
plane = CAMERA_STATIC_PLANE
|
||||
appearance_flags = PLANE_MASTER
|
||||
@@ -196,7 +176,7 @@
|
||||
|
||||
|
||||
//Reserved to chat messages, so they are still displayed above the field of vision masking.
|
||||
/obj/screen/plane_master/chat_messages
|
||||
/atom/movable/screen/plane_master/chat_messages
|
||||
name = "runechat plane master"
|
||||
plane = CHAT_PLANE
|
||||
appearance_flags = PLANE_MASTER
|
||||
|
||||
@@ -3,49 +3,49 @@
|
||||
|
||||
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/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"
|
||||
if(tooltips)
|
||||
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"
|
||||
if(tooltips)
|
||||
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/MouseEntered(location, control, params)
|
||||
/atom/movable/screen/radial/center/MouseEntered(location, control, params)
|
||||
. = ..()
|
||||
icon_state = "radial_center_focus"
|
||||
|
||||
/obj/screen/radial/center/MouseExited(location, control, params)
|
||||
/atom/movable/screen/radial/center/MouseExited(location, control, params)
|
||||
. = ..()
|
||||
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
|
||||
|
||||
@@ -57,8 +57,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/anchor
|
||||
var/image/menu_holder
|
||||
@@ -120,7 +120,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/slice/new_element = new /obj/screen/radial/slice
|
||||
var/atom/movable/screen/radial/slice/new_element = new /atom/movable/screen/radial/slice
|
||||
new_element.tooltips = use_tooltips
|
||||
new_element.parent = src
|
||||
elements += new_element
|
||||
@@ -152,14 +152,14 @@ GLOBAL_LIST_EMPTY(radial_menus)
|
||||
var/list/page_choices = page_data[current_page]
|
||||
var/angle_per_element = round(zone / page_choices.len)
|
||||
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,anim = anim,anim_order = i)
|
||||
|
||||
/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"
|
||||
@@ -168,7 +168,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,anim,anim_order)
|
||||
/datum/radial_menu/proc/SetElement(atom/movable/screen/radial/slice/E,choice_id,angle,anim,anim_order)
|
||||
//Position
|
||||
var/py = round(cos(angle) * radius) + py_shift
|
||||
var/px = round(sin(angle) * radius)
|
||||
|
||||
@@ -2,19 +2,19 @@
|
||||
A derivative of radial menu which persists onscreen until closed and invokes a callback each time an element is clicked
|
||||
*/
|
||||
|
||||
/obj/screen/radial/persistent/center
|
||||
/atom/movable/screen/radial/persistent/center
|
||||
name = "Close Menu"
|
||||
icon_state = "radial_center"
|
||||
|
||||
/obj/screen/radial/persistent/center/Click(location, control, params)
|
||||
/atom/movable/screen/radial/persistent/center/Click(location, control, params)
|
||||
if(usr.client == parent.current_user)
|
||||
parent.element_chosen(null,usr)
|
||||
|
||||
/obj/screen/radial/persistent/center/MouseEntered(location, control, params)
|
||||
/atom/movable/screen/radial/persistent/center/MouseEntered(location, control, params)
|
||||
. = ..()
|
||||
icon_state = "radial_center_focus"
|
||||
|
||||
/obj/screen/radial/persistent/center/MouseExited(location, control, params)
|
||||
/atom/movable/screen/radial/persistent/center/MouseExited(location, control, params)
|
||||
. = ..()
|
||||
icon_state = "radial_center"
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
var/datum/callback/select_proc_callback
|
||||
|
||||
/datum/radial_menu/persistent/New()
|
||||
close_button = new /obj/screen/radial/persistent/center
|
||||
close_button = new /atom/movable/screen/radial/persistent/center
|
||||
close_button.parent = src
|
||||
|
||||
|
||||
|
||||
@@ -2,6 +2,6 @@
|
||||
/datum/hud/revenant/New(mob/owner)
|
||||
..()
|
||||
|
||||
healths = new /obj/screen/healths/revenant()
|
||||
healths = new /atom/movable/screen/healths/revenant()
|
||||
healths.hud = src
|
||||
infodisplay += healths
|
||||
|
||||
@@ -1,15 +1,15 @@
|
||||
/obj/screen/robot
|
||||
/atom/movable/screen/robot
|
||||
icon = 'icons/mob/screen_cyborg.dmi'
|
||||
|
||||
/obj/screen/robot/module
|
||||
/atom/movable/screen/robot/module
|
||||
name = "cyborg module"
|
||||
icon_state = "nomod"
|
||||
|
||||
/obj/screen/robot/Click()
|
||||
/atom/movable/screen/robot/Click()
|
||||
if(isobserver(usr))
|
||||
return 1
|
||||
|
||||
/obj/screen/robot/module/Click()
|
||||
/atom/movable/screen/robot/module/Click()
|
||||
if(..())
|
||||
return
|
||||
var/mob/living/silicon/robot/R = usr
|
||||
@@ -18,51 +18,51 @@
|
||||
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(..())
|
||||
return
|
||||
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(..())
|
||||
return
|
||||
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(..())
|
||||
return
|
||||
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(..())
|
||||
return
|
||||
var/mob/living/silicon/robot/R = usr
|
||||
R.radio.interact(R)
|
||||
|
||||
/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(..())
|
||||
return
|
||||
var/mob/living/silicon/robot/R = usr
|
||||
@@ -75,35 +75,35 @@
|
||||
..()
|
||||
// i, Robit
|
||||
var/mob/living/silicon/robot/robit = mymob
|
||||
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_language_menu
|
||||
static_inventory += using
|
||||
|
||||
//Radio
|
||||
using = new /obj/screen/robot/radio()
|
||||
using = new /atom/movable/screen/robot/radio()
|
||||
using.screen_loc = ui_borg_radio
|
||||
using.hud = src
|
||||
static_inventory += using
|
||||
|
||||
//Module select
|
||||
if(!robit.inv1)
|
||||
robit.inv1 = new /obj/screen/robot/module1()
|
||||
robit.inv1 = new /atom/movable/screen/robot/module1()
|
||||
|
||||
robit.inv1.screen_loc = ui_inv1
|
||||
robit.inv1.hud = src
|
||||
static_inventory += robit.inv1
|
||||
|
||||
if(!robit.inv2)
|
||||
robit.inv2 = new /obj/screen/robot/module2()
|
||||
robit.inv2 = new /atom/movable/screen/robot/module2()
|
||||
|
||||
robit.inv2.screen_loc = ui_inv2
|
||||
robit.inv2.hud = src
|
||||
static_inventory += robit.inv2
|
||||
|
||||
if(!robit.inv3)
|
||||
robit.inv3 = new /obj/screen/robot/module3()
|
||||
robit.inv3 = new /atom/movable/screen/robot/module3()
|
||||
|
||||
robit.inv3.screen_loc = ui_inv3
|
||||
robit.inv3.hud = src
|
||||
@@ -111,73 +111,73 @@
|
||||
|
||||
//End of module select
|
||||
|
||||
using = new /obj/screen/robot/lamp()
|
||||
using = new /atom/movable/screen/robot/lamp()
|
||||
using.screen_loc = ui_borg_lamp
|
||||
using.hud = src
|
||||
static_inventory += using
|
||||
robit.lampButton = using
|
||||
var/obj/screen/robot/lamp/lampscreen = using
|
||||
var/atom/movable/screen/robot/lamp/lampscreen = using
|
||||
lampscreen.robot = robit
|
||||
|
||||
//Photography stuff
|
||||
using = new /obj/screen/ai/image_take()
|
||||
using = new /atom/movable/screen/ai/image_take()
|
||||
using.screen_loc = ui_borg_camera
|
||||
using.hud = src
|
||||
static_inventory += using
|
||||
|
||||
//Sec/Med HUDs
|
||||
using = new /obj/screen/robot/sensors()
|
||||
using = new /atom/movable/screen/robot/sensors()
|
||||
using.screen_loc = ui_borg_sensor
|
||||
using.hud = src
|
||||
static_inventory += using
|
||||
|
||||
//Borg Integrated Tablet
|
||||
using = new /obj/screen/robot/modPC()
|
||||
using = new /atom/movable/screen/robot/modPC()
|
||||
using.screen_loc = ui_borg_tablet
|
||||
using.hud = src
|
||||
static_inventory += using
|
||||
robit.interfaceButton = using
|
||||
if(robit.modularInterface)
|
||||
using.vis_contents += robit.modularInterface
|
||||
var/obj/screen/robot/modPC/tabletbutton = using
|
||||
var/atom/movable/screen/robot/modPC/tabletbutton = using
|
||||
tabletbutton.robot = robit
|
||||
|
||||
//Alerts
|
||||
using = new /obj/screen/robot/alerts()
|
||||
using = new /atom/movable/screen/robot/alerts()
|
||||
using.screen_loc = ui_borg_alerts
|
||||
using.hud = src
|
||||
static_inventory += using
|
||||
|
||||
//Thrusters
|
||||
using = new /obj/screen/robot/thrusters()
|
||||
using = new /atom/movable/screen/robot/thrusters()
|
||||
using.screen_loc = ui_borg_thrusters
|
||||
using.hud = src
|
||||
static_inventory += using
|
||||
robit.thruster_button = using
|
||||
|
||||
//Intent
|
||||
action_intent = new /obj/screen/act_intent/robot()
|
||||
action_intent = new /atom/movable/screen/act_intent/robot()
|
||||
action_intent.icon_state = mymob.a_intent
|
||||
action_intent.hud = src
|
||||
static_inventory += action_intent
|
||||
|
||||
//Health
|
||||
healths = new /obj/screen/healths/robot()
|
||||
healths = new /atom/movable/screen/healths/robot()
|
||||
healths.hud = src
|
||||
infodisplay += healths
|
||||
|
||||
//Installed Module
|
||||
robit.hands = new /obj/screen/robot/module()
|
||||
robit.hands = new /atom/movable/screen/robot/module()
|
||||
robit.hands.screen_loc = ui_borg_module
|
||||
robit.hands.hud = src
|
||||
static_inventory += robit.hands
|
||||
|
||||
//Store
|
||||
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
|
||||
module_store_icon.hud = src
|
||||
|
||||
pull_icon = new /obj/screen/pull()
|
||||
pull_icon = new /atom/movable/screen/pull()
|
||||
pull_icon.icon = 'icons/mob/screen_cyborg.dmi'
|
||||
pull_icon.screen_loc = ui_borg_pull
|
||||
pull_icon.hud = src
|
||||
@@ -185,7 +185,7 @@
|
||||
hotkeybuttons += pull_icon
|
||||
|
||||
|
||||
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()
|
||||
static_inventory += zone_select
|
||||
@@ -283,61 +283,61 @@
|
||||
for(var/obj/item/I in R.held_items)
|
||||
screenmob.client.screen -= I
|
||||
|
||||
/obj/screen/robot/lamp
|
||||
/atom/movable/screen/robot/lamp
|
||||
name = "headlamp"
|
||||
icon_state = "lamp_off"
|
||||
var/mob/living/silicon/robot/robot
|
||||
|
||||
/obj/screen/robot/lamp/Click()
|
||||
/atom/movable/screen/robot/lamp/Click()
|
||||
. = ..()
|
||||
if(.)
|
||||
return
|
||||
robot?.toggle_headlamp()
|
||||
update_icon()
|
||||
|
||||
/obj/screen/robot/lamp/update_icon()
|
||||
/atom/movable/screen/robot/lamp/update_icon()
|
||||
if(robot?.lamp_enabled)
|
||||
icon_state = "lamp_on"
|
||||
else
|
||||
icon_state = "lamp_off"
|
||||
|
||||
/obj/screen/robot/alerts
|
||||
/atom/movable/screen/robot/alerts
|
||||
name = "Alert Panel"
|
||||
icon = 'icons/mob/screen_ai.dmi'
|
||||
icon_state = "alerts"
|
||||
|
||||
/obj/screen/robot/alerts/Click()
|
||||
/atom/movable/screen/robot/alerts/Click()
|
||||
. = ..()
|
||||
if(.)
|
||||
return
|
||||
var/mob/living/silicon/robot/borgo = usr
|
||||
borgo.robot_alerts()
|
||||
|
||||
/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()
|
||||
if(..())
|
||||
return
|
||||
var/mob/living/silicon/robot/R = usr
|
||||
R.toggle_ionpulse()
|
||||
|
||||
/obj/screen/robot/sensors
|
||||
/atom/movable/screen/robot/sensors
|
||||
name = "Sensor Augmentation"
|
||||
icon_state = "cyborg_sensor"
|
||||
|
||||
/obj/screen/robot/sensors/Click()
|
||||
/atom/movable/screen/robot/sensors/Click()
|
||||
if(..())
|
||||
return
|
||||
var/mob/living/silicon/S = usr
|
||||
S.toggle_sensors()
|
||||
/obj/screen/robot/modPC
|
||||
/atom/movable/screen/robot/modPC
|
||||
name = "Modular Interface"
|
||||
icon_state = "template"
|
||||
var/mob/living/silicon/robot/robot
|
||||
|
||||
/obj/screen/robot/modPC/Click()
|
||||
/atom/movable/screen/robot/modPC/Click()
|
||||
. = ..()
|
||||
if(.)
|
||||
return
|
||||
|
||||
@@ -6,12 +6,11 @@
|
||||
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
|
||||
resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF
|
||||
animate_movement = SLIDE_STEPS
|
||||
speech_span = SPAN_ROBOT
|
||||
vis_flags = VIS_INHERIT_PLANE
|
||||
@@ -34,24 +33,21 @@
|
||||
*/
|
||||
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/examine(mob/user)
|
||||
/atom/movable/screen/examine(mob/user)
|
||||
return list()
|
||||
|
||||
/obj/screen/orbit()
|
||||
/atom/movable/screen/orbit()
|
||||
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
|
||||
@@ -59,12 +55,12 @@
|
||||
maptext_height = 480
|
||||
maptext_width = 480
|
||||
|
||||
/obj/screen/swap_hand
|
||||
/atom/movable/screen/swap_hand
|
||||
layer = HUD_LAYER
|
||||
plane = HUD_PLANE
|
||||
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)
|
||||
@@ -78,19 +74,19 @@
|
||||
M.swap_hand()
|
||||
return 1
|
||||
|
||||
/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/area_creator
|
||||
/atom/movable/screen/area_creator
|
||||
name = "create new area"
|
||||
icon = 'icons/mob/screen_midnight.dmi'
|
||||
icon_state = "area_edit"
|
||||
screen_loc = ui_building
|
||||
|
||||
/obj/screen/area_creator/Click()
|
||||
/atom/movable/screen/area_creator/Click()
|
||||
if(usr.incapacitated() || (isobserver(usr) && !IsAdminGhost(usr)))
|
||||
return TRUE
|
||||
var/area/A = get_area(usr)
|
||||
@@ -99,18 +95,18 @@
|
||||
return TRUE
|
||||
create_area(usr)
|
||||
|
||||
/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
|
||||
var/datum/language_holder/H = M.get_language_holder()
|
||||
H.open_language_menu(usr)
|
||||
|
||||
/obj/screen/inventory
|
||||
/atom/movable/screen/inventory
|
||||
/// The identifier for the slot. It has nothing to do with ID cards.
|
||||
var/slot_id
|
||||
/// Icon when empty. For now used only by humans.
|
||||
@@ -122,7 +118,7 @@
|
||||
layer = HUD_LAYER
|
||||
plane = HUD_PLANE
|
||||
|
||||
/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)
|
||||
@@ -142,16 +138,16 @@
|
||||
usr.update_inv_hands()
|
||||
return TRUE
|
||||
|
||||
/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/update_icon_state()
|
||||
/atom/movable/screen/inventory/update_icon_state()
|
||||
if(!icon_empty)
|
||||
icon_empty = icon_state
|
||||
|
||||
@@ -161,7 +157,7 @@
|
||||
else
|
||||
icon_state = icon_empty
|
||||
|
||||
/obj/screen/inventory/proc/add_overlays()
|
||||
/atom/movable/screen/inventory/proc/add_overlays()
|
||||
var/mob/user = hud?.mymob
|
||||
|
||||
if(!user || !slot_id)
|
||||
@@ -184,12 +180,12 @@
|
||||
// object_overlay = item_overlay
|
||||
add_overlay(object_overlays)
|
||||
|
||||
/obj/screen/inventory/hand
|
||||
/atom/movable/screen/inventory/hand
|
||||
var/mutable_appearance/handcuff_overlay
|
||||
var/static/mutable_appearance/blocked_overlay = mutable_appearance('icons/mob/screen_gen.dmi', "blocked")
|
||||
var/held_index = 0
|
||||
|
||||
/obj/screen/inventory/hand/update_overlays()
|
||||
/atom/movable/screen/inventory/hand/update_overlays()
|
||||
. = ..()
|
||||
|
||||
if(!handcuff_overlay)
|
||||
@@ -212,7 +208,7 @@
|
||||
. += "hand_active"
|
||||
|
||||
|
||||
/obj/screen/inventory/hand/Click(location, control, params)
|
||||
/atom/movable/screen/inventory/hand/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
|
||||
var/mob/user = hud?.mymob
|
||||
@@ -234,26 +230,26 @@
|
||||
return TRUE
|
||||
|
||||
|
||||
/obj/screen/drop
|
||||
/atom/movable/screen/drop
|
||||
name = "drop"
|
||||
icon = 'icons/mob/screen_midnight.dmi'
|
||||
icon_state = "act_drop"
|
||||
layer = HUD_LAYER
|
||||
plane = HUD_PLANE
|
||||
|
||||
/obj/screen/drop/Click()
|
||||
/atom/movable/screen/drop/Click()
|
||||
if(usr.stat == CONSCIOUS)
|
||||
usr.dropItemToGround(usr.get_active_held_item())
|
||||
|
||||
/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)
|
||||
usr.a_intent_change(INTENT_HOTKEY_RIGHT)
|
||||
|
||||
/obj/screen/act_intent/segmented/Click(location, control, params)
|
||||
/atom/movable/screen/act_intent/segmented/Click(location, control, params)
|
||||
if(usr.client.prefs.toggles & INTENT_STYLE)
|
||||
var/_x = text2num(params2list(params)["icon-x"])
|
||||
var/_y = text2num(params2list(params)["icon-y"])
|
||||
@@ -272,20 +268,20 @@
|
||||
else
|
||||
return ..()
|
||||
|
||||
/obj/screen/act_intent/alien
|
||||
/atom/movable/screen/act_intent/alien
|
||||
icon = 'icons/mob/screen_alien.dmi'
|
||||
screen_loc = ui_movi
|
||||
|
||||
/obj/screen/act_intent/robot
|
||||
/atom/movable/screen/act_intent/robot
|
||||
icon = 'icons/mob/screen_cyborg.dmi'
|
||||
screen_loc = ui_borg_intents
|
||||
|
||||
/obj/screen/internals
|
||||
/atom/movable/screen/internals
|
||||
name = "toggle internals"
|
||||
icon_state = "internal0"
|
||||
screen_loc = ui_internal
|
||||
|
||||
/obj/screen/internals/Click()
|
||||
/atom/movable/screen/internals/Click()
|
||||
if(!iscarbon(usr))
|
||||
return
|
||||
var/mob/living/carbon/C = usr
|
||||
@@ -346,71 +342,71 @@
|
||||
return
|
||||
C.update_action_buttons_icon()
|
||||
|
||||
/obj/screen/mov_intent
|
||||
/atom/movable/screen/mov_intent
|
||||
name = "run/walk toggle"
|
||||
icon = 'icons/mob/screen_midnight.dmi'
|
||||
icon_state = "running"
|
||||
|
||||
/obj/screen/mov_intent/Initialize(mapload)
|
||||
/atom/movable/screen/mov_intent/Initialize(mapload)
|
||||
. = ..()
|
||||
update_icon()
|
||||
|
||||
/obj/screen/mov_intent/Click()
|
||||
/atom/movable/screen/mov_intent/Click()
|
||||
toggle(usr)
|
||||
|
||||
/obj/screen/mov_intent/update_icon_state()
|
||||
/atom/movable/screen/mov_intent/update_icon_state()
|
||||
switch(hud?.mymob?.m_intent)
|
||||
if(MOVE_INTENT_WALK)
|
||||
icon_state = CONFIG_GET(flag/sprint_enabled)? "walking" : "walking_nosprint"
|
||||
if(MOVE_INTENT_RUN)
|
||||
icon_state = CONFIG_GET(flag/sprint_enabled)? "running" : "running_nosprint"
|
||||
|
||||
/obj/screen/mov_intent/proc/toggle(mob/user)
|
||||
/atom/movable/screen/mov_intent/proc/toggle(mob/user)
|
||||
if(isobserver(user))
|
||||
return
|
||||
user.toggle_move_intent(user)
|
||||
|
||||
/obj/screen/pull
|
||||
/atom/movable/screen/pull
|
||||
name = "stop pulling"
|
||||
icon = 'icons/mob/screen_midnight.dmi'
|
||||
icon_state = "pull"
|
||||
|
||||
/obj/screen/pull/Click()
|
||||
/atom/movable/screen/pull/Click()
|
||||
if(isobserver(usr))
|
||||
return
|
||||
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"
|
||||
layer = HUD_LAYER
|
||||
plane = HUD_PLANE
|
||||
|
||||
/obj/screen/resist/Click()
|
||||
/atom/movable/screen/resist/Click()
|
||||
if(isliving(usr))
|
||||
var/mob/living/L = usr
|
||||
L.resist()
|
||||
|
||||
/obj/screen/rest
|
||||
/atom/movable/screen/rest
|
||||
name = "rest"
|
||||
icon = 'icons/mob/screen_midnight.dmi'
|
||||
icon_state = "act_rest"
|
||||
layer = HUD_LAYER
|
||||
plane = HUD_PLANE
|
||||
|
||||
/obj/screen/rest/Click()
|
||||
/atom/movable/screen/rest/Click()
|
||||
if(isliving(usr))
|
||||
var/mob/living/L = usr
|
||||
L.lay_down()
|
||||
|
||||
/obj/screen/rest/update_icon_state()
|
||||
/atom/movable/screen/rest/update_icon_state()
|
||||
var/mob/living/user = hud?.mymob
|
||||
if(!istype(user))
|
||||
return
|
||||
@@ -419,17 +415,17 @@
|
||||
else
|
||||
icon_state = "act_rest0"
|
||||
|
||||
/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/zone_sel
|
||||
/atom/movable/screen/zone_sel
|
||||
name = "damage zone"
|
||||
icon_state = "zone_sel"
|
||||
screen_loc = ui_zonesel
|
||||
@@ -437,7 +433,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
|
||||
|
||||
@@ -450,10 +446,10 @@
|
||||
|
||||
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
|
||||
|
||||
@@ -482,12 +478,12 @@
|
||||
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)
|
||||
vis_contents -= hover_overlays_cache[hovering]
|
||||
hovering = null
|
||||
|
||||
/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 9) //Legs
|
||||
switch(icon_x)
|
||||
@@ -525,7 +521,7 @@
|
||||
return BODY_ZONE_PRECISE_EYES
|
||||
return BODY_ZONE_HEAD
|
||||
|
||||
/obj/screen/zone_sel/proc/set_selected_zone(choice, mob/user)
|
||||
/atom/movable/screen/zone_sel/proc/set_selected_zone(choice, mob/user)
|
||||
if(user != hud?.mymob)
|
||||
return
|
||||
|
||||
@@ -535,21 +531,21 @@
|
||||
|
||||
return TRUE
|
||||
|
||||
/obj/screen/zone_sel/update_overlays()
|
||||
/atom/movable/screen/zone_sel/update_overlays()
|
||||
. = ..()
|
||||
if(!hud?.mymob)
|
||||
return
|
||||
. += mutable_appearance(overlay_icon, "[hud.mymob.zone_selected]")
|
||||
|
||||
/obj/screen/zone_sel/alien
|
||||
/atom/movable/screen/zone_sel/alien
|
||||
icon = 'icons/mob/screen_alien.dmi'
|
||||
overlay_icon = 'icons/mob/screen_alien.dmi'
|
||||
|
||||
/obj/screen/zone_sel/robot
|
||||
/atom/movable/screen/zone_sel/robot
|
||||
icon = 'icons/mob/screen_cyborg.dmi'
|
||||
|
||||
|
||||
/obj/screen/flash
|
||||
/atom/movable/screen/flash
|
||||
name = "flash"
|
||||
icon_state = "blank"
|
||||
blend_mode = BLEND_ADD
|
||||
@@ -557,7 +553,7 @@
|
||||
layer = FLASH_LAYER
|
||||
plane = FULLSCREEN_PLANE
|
||||
|
||||
/obj/screen/damageoverlay
|
||||
/atom/movable/screen/damageoverlay
|
||||
icon = 'icons/mob/screen_full.dmi'
|
||||
icon_state = "oxydamageoverlay0"
|
||||
name = "dmg"
|
||||
@@ -567,87 +563,87 @@
|
||||
layer = UI_DAMAGE_LAYER
|
||||
plane = FULLSCREEN_PLANE
|
||||
|
||||
/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/robot
|
||||
/atom/movable/screen/healths/robot
|
||||
icon = 'icons/mob/screen_cyborg.dmi'
|
||||
screen_loc = ui_borg_health
|
||||
|
||||
/obj/screen/healths/blob
|
||||
/atom/movable/screen/healths/blob
|
||||
name = "blob health"
|
||||
icon_state = "block"
|
||||
screen_loc = ui_internal
|
||||
mouse_opacity = MOUSE_OPACITY_TRANSPARENT
|
||||
|
||||
/obj/screen/healths/blob/naut
|
||||
/atom/movable/screen/healths/blob/naut
|
||||
name = "health"
|
||||
icon = 'icons/mob/blob.dmi'
|
||||
icon_state = "nauthealth"
|
||||
|
||||
/obj/screen/healths/blob/naut/core
|
||||
/atom/movable/screen/healths/blob/naut/core
|
||||
name = "overmind health"
|
||||
screen_loc = ui_health
|
||||
icon_state = "corehealth"
|
||||
|
||||
/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/healths/clock
|
||||
/atom/movable/screen/healths/clock
|
||||
icon = 'icons/mob/actions.dmi'
|
||||
icon_state = "bg_clock"
|
||||
screen_loc = ui_health
|
||||
mouse_opacity = MOUSE_OPACITY_TRANSPARENT
|
||||
|
||||
/obj/screen/healths/clock/gear
|
||||
/atom/movable/screen/healths/clock/gear
|
||||
icon = 'icons/mob/clockwork_mobs.dmi'
|
||||
icon_state = "bg_gear"
|
||||
screen_loc = ui_internal
|
||||
|
||||
/obj/screen/healths/revenant
|
||||
/atom/movable/screen/healths/revenant
|
||||
name = "essence"
|
||||
icon = 'icons/mob/actions.dmi'
|
||||
icon_state = "bg_revenant"
|
||||
screen_loc = ui_health
|
||||
mouse_opacity = MOUSE_OPACITY_TRANSPARENT
|
||||
|
||||
/obj/screen/healths/construct
|
||||
/atom/movable/screen/healths/construct
|
||||
icon = 'icons/mob/screen_construct.dmi'
|
||||
icon_state = "artificer_health0"
|
||||
screen_loc = ui_construct_health
|
||||
mouse_opacity = MOUSE_OPACITY_TRANSPARENT
|
||||
|
||||
/obj/screen/healths/lavaland_elite
|
||||
/atom/movable/screen/healths/lavaland_elite
|
||||
icon = 'icons/mob/screen_elite.dmi'
|
||||
icon_state = "elite_health0"
|
||||
screen_loc = ui_health
|
||||
mouse_opacity = MOUSE_OPACITY_TRANSPARENT
|
||||
|
||||
/obj/screen/healthdoll
|
||||
/atom/movable/screen/healthdoll
|
||||
name = "health doll"
|
||||
screen_loc = ui_healthdoll
|
||||
|
||||
/obj/screen/healthdoll/living
|
||||
/atom/movable/screen/healthdoll/living
|
||||
icon_state = "fullhealth0"
|
||||
screen_loc = ui_living_healthdoll
|
||||
var/filtered = FALSE //so we don't repeatedly create the mask of the mob every update
|
||||
|
||||
/obj/screen/mood
|
||||
/atom/movable/screen/mood
|
||||
name = "mood"
|
||||
icon_state = "mood5"
|
||||
screen_loc = ui_mood
|
||||
|
||||
/obj/screen/splash
|
||||
/atom/movable/screen/splash
|
||||
icon = 'icons/blank_title.png'
|
||||
icon_state = ""
|
||||
screen_loc = "1,1"
|
||||
@@ -655,7 +651,7 @@
|
||||
plane = SPLASHSCREEN_PLANE
|
||||
var/client/holder
|
||||
|
||||
/obj/screen/splash/New(client/C, visible, use_previous_title) //TODO: Make this use INITIALIZE_IMMEDIATE, except its not easy
|
||||
/atom/movable/screen/splash/New(client/C, visible, use_previous_title) //TODO: Make this use INITIALIZE_IMMEDIATE, except its not easy
|
||||
. = ..()
|
||||
|
||||
holder = C
|
||||
@@ -674,7 +670,7 @@
|
||||
|
||||
holder.screen += src
|
||||
|
||||
/obj/screen/splash/proc/Fade(out, qdel_after = TRUE)
|
||||
/atom/movable/screen/splash/proc/Fade(out, qdel_after = TRUE)
|
||||
if(QDELETED(src))
|
||||
return
|
||||
if(out)
|
||||
@@ -685,20 +681,20 @@
|
||||
if(qdel_after)
|
||||
QDEL_IN(src, 30)
|
||||
|
||||
/obj/screen/splash/Destroy()
|
||||
/atom/movable/screen/splash/Destroy()
|
||||
if(holder)
|
||||
holder.screen -= src
|
||||
holder = null
|
||||
return ..()
|
||||
|
||||
|
||||
/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/parent)
|
||||
/atom/movable/screen/component_button/Initialize(mapload, atom/movable/screen/parent)
|
||||
. = ..()
|
||||
src.parent = parent
|
||||
|
||||
/obj/screen/component_button/Click(params)
|
||||
/atom/movable/screen/component_button/Click(params)
|
||||
if(parent)
|
||||
parent.component_click(src, params)
|
||||
|
||||
@@ -1,37 +1,37 @@
|
||||
/obj/screen/action_bar
|
||||
/atom/movable/screen/action_bar
|
||||
|
||||
/obj/screen/action_bar/Destroy()
|
||||
/atom/movable/screen/action_bar/Destroy()
|
||||
STOP_PROCESSING(SShuds, src)
|
||||
return ..()
|
||||
|
||||
/obj/screen/action_bar/proc/mark_dirty()
|
||||
/atom/movable/screen/action_bar/proc/mark_dirty()
|
||||
var/mob/living/L = hud?.mymob
|
||||
if(L?.client && update_to_mob(L))
|
||||
START_PROCESSING(SShuds, src)
|
||||
|
||||
/obj/screen/action_bar/process()
|
||||
/atom/movable/screen/action_bar/process()
|
||||
var/mob/living/L = hud?.mymob
|
||||
if(!L?.client || !update_to_mob(L))
|
||||
return PROCESS_KILL
|
||||
|
||||
/obj/screen/action_bar/proc/update_to_mob(mob/living/L)
|
||||
/atom/movable/screen/action_bar/proc/update_to_mob(mob/living/L)
|
||||
return FALSE
|
||||
|
||||
/datum/hud/var/obj/screen/action_bar/clickdelay/clickdelay
|
||||
/datum/hud/var/atom/movable/screen/action_bar/clickdelay/clickdelay
|
||||
|
||||
/obj/screen/action_bar/clickdelay
|
||||
/atom/movable/screen/action_bar/clickdelay
|
||||
name = "click delay"
|
||||
icon = 'icons/effects/progessbar.dmi'
|
||||
icon_state = "prog_bar_100"
|
||||
layer = 20 // under hand buttons
|
||||
|
||||
/obj/screen/action_bar/clickdelay/Initialize()
|
||||
/atom/movable/screen/action_bar/clickdelay/Initialize()
|
||||
. = ..()
|
||||
var/matrix/M = new
|
||||
M.Scale(2, 1)
|
||||
transform = M
|
||||
|
||||
/obj/screen/action_bar/clickdelay/update_to_mob(mob/living/L)
|
||||
/atom/movable/screen/action_bar/clickdelay/update_to_mob(mob/living/L)
|
||||
var/estimated = L.EstimatedNextActionTime()
|
||||
var/diff = estimated - L.last_action
|
||||
var/left = estimated - world.time
|
||||
@@ -41,14 +41,14 @@
|
||||
icon_state = "prog_bar_[round(clamp(((diff - left)/diff) * 100, 0, 100), 5)]"
|
||||
return TRUE
|
||||
|
||||
/datum/hud/var/obj/screen/action_bar/resistdelay/resistdelay
|
||||
/datum/hud/var/atom/movable/screen/action_bar/resistdelay/resistdelay
|
||||
|
||||
/obj/screen/action_bar/resistdelay
|
||||
/atom/movable/screen/action_bar/resistdelay
|
||||
name = "resist delay"
|
||||
icon = 'icons/effects/progessbar.dmi'
|
||||
icon_state = "prog_bar_100"
|
||||
|
||||
/obj/screen/action_bar/resistdelay/update_to_mob(mob/living/L)
|
||||
/atom/movable/screen/action_bar/resistdelay/update_to_mob(mob/living/L)
|
||||
var/diff = L.next_resist - L.last_resist
|
||||
var/left = L.next_resist - world.time
|
||||
if(left < 0 || diff < 0)
|
||||
|
||||
@@ -1,19 +1,19 @@
|
||||
/obj/screen/mov_intent
|
||||
/atom/movable/screen/mov_intent
|
||||
icon = 'modular_citadel/icons/ui/screen_midnight.dmi'
|
||||
|
||||
/obj/screen/sprintbutton
|
||||
/atom/movable/screen/sprintbutton
|
||||
name = "toggle sprint"
|
||||
icon = 'modular_citadel/icons/ui/screen_midnight.dmi'
|
||||
icon_state = "act_sprint"
|
||||
layer = ABOVE_HUD_LAYER - 0.1
|
||||
var/mutable_appearance/flashy
|
||||
|
||||
/obj/screen/sprintbutton/Click()
|
||||
/atom/movable/screen/sprintbutton/Click()
|
||||
if(ishuman(usr))
|
||||
var/mob/living/carbon/human/H = usr
|
||||
H.default_toggle_sprint()
|
||||
|
||||
/obj/screen/sprintbutton/update_icon_state()
|
||||
/atom/movable/screen/sprintbutton/update_icon_state()
|
||||
var/mob/living/user = hud?.mymob
|
||||
if(!istype(user))
|
||||
return
|
||||
@@ -24,7 +24,7 @@
|
||||
else
|
||||
icon_state = "act_sprint"
|
||||
|
||||
/obj/screen/sprintbutton/update_overlays()
|
||||
/atom/movable/screen/sprintbutton/update_overlays()
|
||||
. = ..()
|
||||
var/mob/living/carbon/user = hud?.mymob
|
||||
if(!istype(user) || !user.client)
|
||||
@@ -38,20 +38,20 @@
|
||||
. += flashy
|
||||
|
||||
//Sprint buffer onscreen code.
|
||||
/datum/hud/var/obj/screen/sprint_buffer/sprint_buffer
|
||||
/datum/hud/var/atom/movable/screen/sprint_buffer/sprint_buffer
|
||||
|
||||
/obj/screen/sprint_buffer
|
||||
/atom/movable/screen/sprint_buffer
|
||||
name = "sprint buffer"
|
||||
icon = 'icons/effects/progessbar.dmi'
|
||||
icon_state = "prog_bar_100"
|
||||
|
||||
/obj/screen/sprint_buffer/Click()
|
||||
/atom/movable/screen/sprint_buffer/Click()
|
||||
if(isliving(usr))
|
||||
var/mob/living/L = usr
|
||||
to_chat(L, "<span class='boldnotice'>Your sprint buffer's maximum capacity is [L.sprint_buffer_max]. It is currently at [L.sprint_buffer], regenerating at [L.sprint_buffer_regen_ds * 10] per second. \
|
||||
Sprinting while this is empty will incur a [L.sprint_stamina_cost] stamina cost per tile.</span>")
|
||||
|
||||
/obj/screen/sprint_buffer/proc/update_to_mob(mob/living/L)
|
||||
/atom/movable/screen/sprint_buffer/proc/update_to_mob(mob/living/L)
|
||||
var/amount = 0
|
||||
if(L.sprint_buffer_max > 0)
|
||||
amount = round(clamp((L.sprint_buffer / L.sprint_buffer_max) * 100, 0, 100), 5)
|
||||
|
||||
@@ -1,21 +1,21 @@
|
||||
/datum/hud/var/obj/screen/staminas/staminas
|
||||
/datum/hud/var/obj/screen/staminabuffer/staminabuffer
|
||||
/datum/hud/var/atom/movable/screen/staminas/staminas
|
||||
/datum/hud/var/atom/movable/screen/staminabuffer/staminabuffer
|
||||
|
||||
/obj/screen/staminas
|
||||
/atom/movable/screen/staminas
|
||||
icon = 'modular_citadel/icons/ui/screen_gen.dmi'
|
||||
name = "stamina"
|
||||
icon_state = "stamina0"
|
||||
screen_loc = ui_stamina
|
||||
mouse_opacity = 1
|
||||
|
||||
/obj/screen/staminas/Click(location,control,params)
|
||||
/atom/movable/screen/staminas/Click(location,control,params)
|
||||
if(isliving(usr))
|
||||
var/mob/living/L = usr
|
||||
CONFIG_CACHE_ENTRY_AND_FETCH_VALUE(number/stamina_combat/buffer_max, buffer_max)
|
||||
to_chat(L, "<span class='notice'>You have <b>[L.getStaminaLoss()]</b> stamina loss.<br>\
|
||||
<br>Your stamina buffer is <b>[round((L.stamina_buffer / buffer_max) * 100, 0.1)]%</b> full.</span>")
|
||||
|
||||
/obj/screen/staminas/update_icon_state()
|
||||
/atom/movable/screen/staminas/update_icon_state()
|
||||
var/mob/living/carbon/user = hud?.mymob
|
||||
if(!user)
|
||||
return
|
||||
@@ -26,21 +26,21 @@
|
||||
else
|
||||
icon_state = "stamina[clamp(FLOOR(user.getStaminaLoss() /20, 1), 0, 6)]"
|
||||
|
||||
/obj/screen/staminas/update_overlays()
|
||||
/atom/movable/screen/staminas/update_overlays()
|
||||
. = ..()
|
||||
var/mob/living/carbon/user = hud?.mymob
|
||||
if(!user)
|
||||
return
|
||||
var/percent = user.getStaminaLoss() / STAMINA_CRIT
|
||||
if((user.stat == DEAD) || (user.combat_flags & COMBAT_FLAG_HARD_STAMCRIT) || (user.hal_screwyhud in 1 to 2))
|
||||
. += list("stamina_alert3")
|
||||
. += list("stamina_alert3")
|
||||
else if(percent >= 0.85)
|
||||
. += list("stamina_alert2")
|
||||
else if(percent >= 0.7)
|
||||
. += list("stamina_alert1")
|
||||
|
||||
//stam buffer
|
||||
/obj/screen/staminabuffer
|
||||
/atom/movable/screen/staminabuffer
|
||||
icon = 'modular_citadel/icons/ui/screen_gen.dmi'
|
||||
name = "stamina buffer"
|
||||
icon_state = "stambuffer0"
|
||||
@@ -48,19 +48,19 @@
|
||||
layer = ABOVE_HUD_LAYER + 0.1
|
||||
mouse_opacity = 0
|
||||
|
||||
/obj/screen/staminabuffer/proc/mark_dirty()
|
||||
/atom/movable/screen/staminabuffer/proc/mark_dirty()
|
||||
if(update_to_mob())
|
||||
START_PROCESSING(SShuds, src)
|
||||
|
||||
/obj/screen/staminabuffer/process()
|
||||
/atom/movable/screen/staminabuffer/process()
|
||||
if(!update_to_mob())
|
||||
return PROCESS_KILL
|
||||
|
||||
/obj/screen/staminabuffer/Destroy()
|
||||
/atom/movable/screen/staminabuffer/Destroy()
|
||||
STOP_PROCESSING(SShuds, src)
|
||||
return ..()
|
||||
|
||||
/obj/screen/staminabuffer/proc/update_to_mob()
|
||||
/atom/movable/screen/staminabuffer/proc/update_to_mob()
|
||||
var/mob/living/carbon/user = hud?.mymob
|
||||
user.UpdateStaminaBuffer(FALSE)
|
||||
CONFIG_CACHE_ENTRY_AND_FETCH_VALUE(number/stamina_combat/buffer_max, buffer_max)
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
/obj/screen/storage
|
||||
/atom/movable/screen/storage
|
||||
name = "storage"
|
||||
var/insertion_click = FALSE
|
||||
|
||||
/obj/screen/storage/Initialize(mapload, new_master)
|
||||
/atom/movable/screen/storage/Initialize(mapload, new_master)
|
||||
. = ..()
|
||||
master = new_master
|
||||
|
||||
/obj/screen/storage/Click(location, control, params)
|
||||
/atom/movable/screen/storage/Click(location, control, params)
|
||||
if(!insertion_click)
|
||||
return ..()
|
||||
if(hud?.mymob && (hud.mymob != usr))
|
||||
@@ -18,7 +18,7 @@
|
||||
master.attackby(null, I, usr, params)
|
||||
return TRUE
|
||||
|
||||
/obj/screen/storage/boxes
|
||||
/atom/movable/screen/storage/boxes
|
||||
name = "storage"
|
||||
icon_state = "block"
|
||||
screen_loc = "7,7 to 10,8"
|
||||
@@ -26,83 +26,83 @@
|
||||
plane = HUD_PLANE
|
||||
insertion_click = TRUE
|
||||
|
||||
/obj/screen/storage/close
|
||||
/atom/movable/screen/storage/close
|
||||
name = "close"
|
||||
layer = ABOVE_HUD_LAYER
|
||||
plane = ABOVE_HUD_PLANE
|
||||
icon_state = "backpack_close"
|
||||
|
||||
/obj/screen/storage/close/Click()
|
||||
/atom/movable/screen/storage/close/Click()
|
||||
var/datum/component/storage/S = master
|
||||
S.close(usr)
|
||||
return TRUE
|
||||
|
||||
/obj/screen/storage/left
|
||||
/atom/movable/screen/storage/left
|
||||
icon_state = "storage_start"
|
||||
insertion_click = TRUE
|
||||
|
||||
/obj/screen/storage/right
|
||||
/atom/movable/screen/storage/right
|
||||
icon_state = "storage_end"
|
||||
insertion_click = TRUE
|
||||
|
||||
/obj/screen/storage/continuous
|
||||
/atom/movable/screen/storage/continuous
|
||||
icon_state = "storage_continue"
|
||||
insertion_click = TRUE
|
||||
|
||||
/obj/screen/storage/volumetric_box
|
||||
/atom/movable/screen/storage/volumetric_box
|
||||
icon_state = "stored_continue"
|
||||
layer = VOLUMETRIC_STORAGE_BOX_LAYER
|
||||
plane = VOLUMETRIC_STORAGE_BOX_PLANE
|
||||
var/obj/item/our_item
|
||||
|
||||
/obj/screen/storage/volumetric_box/Initialize(mapload, new_master, obj/item/our_item)
|
||||
/atom/movable/screen/storage/volumetric_box/Initialize(mapload, new_master, obj/item/our_item)
|
||||
src.our_item = our_item
|
||||
RegisterSignal(our_item, COMSIG_ITEM_MOUSE_ENTER, .proc/on_item_mouse_enter)
|
||||
RegisterSignal(our_item, COMSIG_ITEM_MOUSE_EXIT, .proc/on_item_mouse_exit)
|
||||
return ..()
|
||||
|
||||
/obj/screen/storage/volumetric_box/Destroy()
|
||||
/atom/movable/screen/storage/volumetric_box/Destroy()
|
||||
makeItemInactive()
|
||||
our_item = null
|
||||
return ..()
|
||||
|
||||
/obj/screen/storage/volumetric_box/Click(location, control, params)
|
||||
/atom/movable/screen/storage/volumetric_box/Click(location, control, params)
|
||||
return our_item.Click(location, control, params)
|
||||
|
||||
/obj/screen/storage/volumetric_box/MouseDrop(atom/over, src_location, over_location, src_control, over_control, params)
|
||||
/atom/movable/screen/storage/volumetric_box/MouseDrop(atom/over, src_location, over_location, src_control, over_control, params)
|
||||
return our_item.MouseDrop(over, src_location, over_location, src_control, over_control, params)
|
||||
|
||||
/obj/screen/storage/volumetric_box/MouseExited(location, control, params)
|
||||
/atom/movable/screen/storage/volumetric_box/MouseExited(location, control, params)
|
||||
makeItemInactive()
|
||||
|
||||
/obj/screen/storage/volumetric_box/MouseEntered(location, control, params)
|
||||
/atom/movable/screen/storage/volumetric_box/MouseEntered(location, control, params)
|
||||
makeItemActive()
|
||||
|
||||
/obj/screen/storage/volumetric_box/proc/on_item_mouse_enter()
|
||||
/atom/movable/screen/storage/volumetric_box/proc/on_item_mouse_enter()
|
||||
makeItemActive()
|
||||
|
||||
/obj/screen/storage/volumetric_box/proc/on_item_mouse_exit()
|
||||
/atom/movable/screen/storage/volumetric_box/proc/on_item_mouse_exit()
|
||||
makeItemInactive()
|
||||
|
||||
/obj/screen/storage/volumetric_box/proc/makeItemInactive()
|
||||
/atom/movable/screen/storage/volumetric_box/proc/makeItemInactive()
|
||||
return
|
||||
|
||||
/obj/screen/storage/volumetric_box/proc/makeItemActive()
|
||||
/atom/movable/screen/storage/volumetric_box/proc/makeItemActive()
|
||||
return
|
||||
|
||||
/obj/screen/storage/volumetric_box/center
|
||||
/atom/movable/screen/storage/volumetric_box/center
|
||||
icon_state = "stored_continue"
|
||||
var/obj/screen/storage/volumetric_edge/stored_left/left
|
||||
var/obj/screen/storage/volumetric_edge/stored_right/right
|
||||
var/obj/screen/storage/item_holder/holder
|
||||
var/atom/movable/screen/storage/volumetric_edge/stored_left/left
|
||||
var/atom/movable/screen/storage/volumetric_edge/stored_right/right
|
||||
var/atom/movable/screen/storage/item_holder/holder
|
||||
var/pixel_size
|
||||
|
||||
/obj/screen/storage/volumetric_box/center/Initialize(mapload, new_master, our_item)
|
||||
/atom/movable/screen/storage/volumetric_box/center/Initialize(mapload, new_master, our_item)
|
||||
left = new(null, src, our_item)
|
||||
right = new(null, src, our_item)
|
||||
return ..()
|
||||
|
||||
/obj/screen/storage/volumetric_box/center/Destroy()
|
||||
/atom/movable/screen/storage/volumetric_box/center/Destroy()
|
||||
QDEL_NULL(left)
|
||||
QDEL_NULL(right)
|
||||
vis_contents.Cut()
|
||||
@@ -110,13 +110,13 @@
|
||||
QDEL_NULL(holder)
|
||||
return ..()
|
||||
|
||||
/obj/screen/storage/volumetric_box/center/proc/on_screen_objects()
|
||||
/atom/movable/screen/storage/volumetric_box/center/proc/on_screen_objects()
|
||||
return list(src)
|
||||
|
||||
/**
|
||||
* Sets the size of this box screen object and regenerates its left/right borders. This includes the actual border's size!
|
||||
*/
|
||||
/obj/screen/storage/volumetric_box/center/proc/set_pixel_size(pixels)
|
||||
/atom/movable/screen/storage/volumetric_box/center/proc/set_pixel_size(pixels)
|
||||
if(pixel_size == pixels)
|
||||
return
|
||||
pixel_size = pixels
|
||||
@@ -139,59 +139,59 @@
|
||||
add_overlay(left)
|
||||
add_overlay(right)
|
||||
|
||||
/obj/screen/storage/volumetric_box/center/makeItemInactive()
|
||||
/atom/movable/screen/storage/volumetric_box/center/makeItemInactive()
|
||||
if(!holder)
|
||||
return
|
||||
holder.layer = VOLUMETRIC_STORAGE_ITEM_LAYER
|
||||
holder.plane = VOLUMETRIC_STORAGE_ITEM_PLANE
|
||||
|
||||
/obj/screen/storage/volumetric_box/center/makeItemActive()
|
||||
/atom/movable/screen/storage/volumetric_box/center/makeItemActive()
|
||||
if(!holder)
|
||||
return
|
||||
holder.our_item.layer = VOLUMETRIC_STORAGE_ACTIVE_ITEM_LAYER //make sure we display infront of the others!
|
||||
holder.our_item.plane = VOLUMETRIC_STORAGE_ACTIVE_ITEM_PLANE
|
||||
|
||||
/obj/screen/storage/volumetric_edge
|
||||
/atom/movable/screen/storage/volumetric_edge
|
||||
layer = VOLUMETRIC_STORAGE_BOX_LAYER
|
||||
plane = VOLUMETRIC_STORAGE_BOX_PLANE
|
||||
|
||||
/obj/screen/storage/volumetric_edge/Initialize(mapload, master, our_item)
|
||||
/atom/movable/screen/storage/volumetric_edge/Initialize(mapload, master, our_item)
|
||||
src.master = master
|
||||
return ..()
|
||||
|
||||
/obj/screen/storage/volumetric_edge/Click(location, control, params)
|
||||
/atom/movable/screen/storage/volumetric_edge/Click(location, control, params)
|
||||
return master.Click(location, control, params)
|
||||
|
||||
/obj/screen/storage/volumetric_edge/MouseDrop(atom/over, src_location, over_location, src_control, over_control, params)
|
||||
/atom/movable/screen/storage/volumetric_edge/MouseDrop(atom/over, src_location, over_location, src_control, over_control, params)
|
||||
return master.MouseDrop(over, src_location, over_location, src_control, over_control, params)
|
||||
|
||||
/obj/screen/storage/volumetric_edge/MouseExited(location, control, params)
|
||||
/atom/movable/screen/storage/volumetric_edge/MouseExited(location, control, params)
|
||||
return master.MouseExited(location, control, params)
|
||||
|
||||
/obj/screen/storage/volumetric_edge/MouseEntered(location, control, params)
|
||||
/atom/movable/screen/storage/volumetric_edge/MouseEntered(location, control, params)
|
||||
return master.MouseEntered(location, control, params)
|
||||
|
||||
/obj/screen/storage/volumetric_edge/stored_left
|
||||
/atom/movable/screen/storage/volumetric_edge/stored_left
|
||||
icon_state = "stored_start"
|
||||
appearance_flags = APPEARANCE_UI | KEEP_APART | RESET_TRANSFORM // Yes I know RESET_TRANSFORM is in APPEARANCE_UI but we're hard-asserting this incase someone changes it.
|
||||
|
||||
/obj/screen/storage/volumetric_edge/stored_right
|
||||
/atom/movable/screen/storage/volumetric_edge/stored_right
|
||||
icon_state = "stored_end"
|
||||
appearance_flags = APPEARANCE_UI | KEEP_APART | RESET_TRANSFORM
|
||||
|
||||
/obj/screen/storage/item_holder
|
||||
/atom/movable/screen/storage/item_holder
|
||||
var/obj/item/our_item
|
||||
vis_flags = NONE
|
||||
|
||||
/obj/screen/storage/item_holder/Initialize(mapload, new_master, obj/item/I)
|
||||
/atom/movable/screen/storage/item_holder/Initialize(mapload, new_master, obj/item/I)
|
||||
. = ..()
|
||||
our_item = I
|
||||
vis_contents += I
|
||||
|
||||
/obj/screen/storage/item_holder/Destroy()
|
||||
/atom/movable/screen/storage/item_holder/Destroy()
|
||||
vis_contents.Cut()
|
||||
our_item = null
|
||||
return ..()
|
||||
|
||||
/obj/screen/storage/item_holder/Click(location, control, params)
|
||||
/atom/movable/screen/storage/item_holder/Click(location, control, params)
|
||||
return our_item.Click(location, control, params)
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
/obj/screen/voretoggle
|
||||
/atom/movable/screen/voretoggle
|
||||
name = "toggle vore mode"
|
||||
icon = 'modular_citadel/icons/ui/screen_midnight.dmi'
|
||||
icon_state = "nom_off"
|
||||
|
||||
/obj/screen/voretoggle/Click()
|
||||
/atom/movable/screen/voretoggle/Click()
|
||||
if(usr != hud.mymob)
|
||||
return
|
||||
var/mob/living/carbon/C = usr
|
||||
@@ -12,7 +12,7 @@
|
||||
return
|
||||
C.toggle_vore_mode()
|
||||
|
||||
/obj/screen/voretoggle/update_icon_state()
|
||||
/atom/movable/screen/voretoggle/update_icon_state()
|
||||
var/mob/living/carbon/user = hud?.mymob
|
||||
if(!istype(user))
|
||||
return
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
ui_style = 'icons/mob/screen_gen.dmi'
|
||||
/datum/hud/living/simple_animal/New(mob/living/owner)
|
||||
..()
|
||||
pull_icon = new /obj/screen/pull()
|
||||
pull_icon = new /atom/movable/screen/pull()
|
||||
pull_icon.icon = ui_style
|
||||
pull_icon.update_icon()
|
||||
pull_icon.screen_loc = ui_living_pull
|
||||
@@ -10,6 +10,6 @@
|
||||
static_inventory += pull_icon
|
||||
|
||||
//mob health doll! assumes whatever sprite the mob is
|
||||
healthdoll = new /obj/screen/healthdoll/living()
|
||||
healthdoll = new /atom/movable/screen/healthdoll/living()
|
||||
healthdoll.hud = src
|
||||
infodisplay += healthdoll
|
||||
|
||||
@@ -1,98 +1,98 @@
|
||||
|
||||
|
||||
/obj/screen/swarmer
|
||||
/atom/movable/screen/swarmer
|
||||
icon = 'icons/mob/swarmer.dmi'
|
||||
|
||||
/obj/screen/swarmer/FabricateTrap
|
||||
/atom/movable/screen/swarmer/FabricateTrap
|
||||
icon_state = "ui_trap"
|
||||
name = "Create trap (Costs 5 Resources)"
|
||||
desc = "Creates a trap that will nonlethally shock any non-swarmer that attempts to cross it. (Costs 5 resources)"
|
||||
|
||||
/obj/screen/swarmer/FabricateTrap/Click()
|
||||
/atom/movable/screen/swarmer/FabricateTrap/Click()
|
||||
if(isswarmer(usr))
|
||||
var/mob/living/simple_animal/hostile/swarmer/S = usr
|
||||
S.CreateTrap()
|
||||
|
||||
/obj/screen/swarmer/Barricade
|
||||
/atom/movable/screen/swarmer/Barricade
|
||||
icon_state = "ui_barricade"
|
||||
name = "Create barricade (Costs 5 Resources)"
|
||||
desc = "Creates a destructible barricade that will stop any non swarmer from passing it. Also allows disabler beams to pass through. (Costs 5 resources)"
|
||||
|
||||
/obj/screen/swarmer/Barricade/Click()
|
||||
/atom/movable/screen/swarmer/Barricade/Click()
|
||||
if(isswarmer(usr))
|
||||
var/mob/living/simple_animal/hostile/swarmer/S = usr
|
||||
S.CreateBarricade()
|
||||
|
||||
/obj/screen/swarmer/Replicate
|
||||
/atom/movable/screen/swarmer/Replicate
|
||||
icon_state = "ui_replicate"
|
||||
name = "Replicate (Costs 50 Resources)"
|
||||
desc = "Creates another of our kind."
|
||||
|
||||
/obj/screen/swarmer/Replicate/Click()
|
||||
/atom/movable/screen/swarmer/Replicate/Click()
|
||||
if(isswarmer(usr))
|
||||
var/mob/living/simple_animal/hostile/swarmer/S = usr
|
||||
S.CreateSwarmer()
|
||||
|
||||
/obj/screen/swarmer/RepairSelf
|
||||
/atom/movable/screen/swarmer/RepairSelf
|
||||
icon_state = "ui_self_repair"
|
||||
name = "Repair self"
|
||||
desc = "Repairs damage to our body."
|
||||
|
||||
/obj/screen/swarmer/RepairSelf/Click()
|
||||
/atom/movable/screen/swarmer/RepairSelf/Click()
|
||||
if(isswarmer(usr))
|
||||
var/mob/living/simple_animal/hostile/swarmer/S = usr
|
||||
S.RepairSelf()
|
||||
|
||||
/obj/screen/swarmer/ToggleLight
|
||||
/atom/movable/screen/swarmer/ToggleLight
|
||||
icon_state = "ui_light"
|
||||
name = "Toggle light"
|
||||
desc = "Toggles our inbuilt light on or off."
|
||||
|
||||
/obj/screen/swarmer/ToggleLight/Click()
|
||||
/atom/movable/screen/swarmer/ToggleLight/Click()
|
||||
if(isswarmer(usr))
|
||||
var/mob/living/simple_animal/hostile/swarmer/S = usr
|
||||
S.ToggleLight()
|
||||
|
||||
/obj/screen/swarmer/ContactSwarmers
|
||||
/atom/movable/screen/swarmer/ContactSwarmers
|
||||
icon_state = "ui_contact_swarmers"
|
||||
name = "Contact swarmers"
|
||||
desc = "Sends a message to all other swarmers, should they exist."
|
||||
|
||||
/obj/screen/swarmer/ContactSwarmers/Click()
|
||||
/atom/movable/screen/swarmer/ContactSwarmers/Click()
|
||||
if(isswarmer(usr))
|
||||
var/mob/living/simple_animal/hostile/swarmer/S = usr
|
||||
S.ContactSwarmers()
|
||||
|
||||
/datum/hud/swarmer/New(mob/owner)
|
||||
..()
|
||||
var/obj/screen/using
|
||||
var/atom/movable/screen/using
|
||||
|
||||
using = new /obj/screen/swarmer/FabricateTrap()
|
||||
using = new /atom/movable/screen/swarmer/FabricateTrap()
|
||||
using.screen_loc = ui_hand_position(2)
|
||||
using.hud = src
|
||||
static_inventory += using
|
||||
|
||||
using = new /obj/screen/swarmer/Barricade()
|
||||
using = new /atom/movable/screen/swarmer/Barricade()
|
||||
using.screen_loc = ui_hand_position(1)
|
||||
using.hud = src
|
||||
static_inventory += using
|
||||
|
||||
using = new /obj/screen/swarmer/Replicate()
|
||||
using = new /atom/movable/screen/swarmer/Replicate()
|
||||
using.screen_loc = ui_zonesel
|
||||
using.hud = src
|
||||
static_inventory += using
|
||||
|
||||
using = new /obj/screen/swarmer/RepairSelf()
|
||||
using = new /atom/movable/screen/swarmer/RepairSelf()
|
||||
using.screen_loc = ui_storage1
|
||||
using.hud = src
|
||||
static_inventory += using
|
||||
|
||||
using = new /obj/screen/swarmer/ToggleLight()
|
||||
using = new /atom/movable/screen/swarmer/ToggleLight()
|
||||
using.screen_loc = ui_back
|
||||
using.hud = src
|
||||
static_inventory += using
|
||||
|
||||
using = new /obj/screen/swarmer/ContactSwarmers()
|
||||
using = new /atom/movable/screen/swarmer/ContactSwarmers()
|
||||
using.screen_loc = ui_inventory
|
||||
using.hud = src
|
||||
static_inventory += using
|
||||
|
||||
@@ -54,7 +54,7 @@ SUBSYSTEM_DEF(air)
|
||||
// Max number of turfs to look for a space turf, and max number of turfs that will be decompressed.
|
||||
var/equalize_hard_turf_limit = 2000
|
||||
// Whether equalization should be enabled at all.
|
||||
var/equalize_enabled = FALSE
|
||||
var/equalize_enabled = TRUE
|
||||
// Whether turf-to-turf heat exchanging should be enabled.
|
||||
var/heat_enabled = FALSE
|
||||
// Max number of times process_turfs will share in a tick.
|
||||
|
||||
@@ -15,7 +15,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_YELLOW, COLOR_CYAN, COLOR_ORANGE, COLOR_PURPLE)//Special color for random_layer1. Has to be done here so everyone sees the same color. [COLOR_SILVER]
|
||||
planet_y_offset = rand(100, 160)
|
||||
planet_x_offset = rand(100, 160)
|
||||
|
||||
@@ -59,5 +59,3 @@ SUBSYSTEM_DEF(sun)
|
||||
|
||||
/datum/controller/subsystem/sun/proc/complete_movement()
|
||||
SEND_SIGNAL(src, COMSIG_SUN_MOVED, primary_sun, suns)
|
||||
|
||||
#undef OCCLUSION_DISTANCE
|
||||
|
||||
@@ -421,7 +421,7 @@ SUBSYSTEM_DEF(ticker)
|
||||
if (living.client.prefs && living.client.prefs.auto_ooc)
|
||||
if (living.client.prefs.chat_toggles & CHAT_OOC)
|
||||
living.client.prefs.chat_toggles ^= CHAT_OOC
|
||||
var/obj/screen/splash/S = new(living.client, TRUE)
|
||||
var/atom/movable/screen/splash/S = new(living.client, TRUE)
|
||||
S.Fade(TRUE)
|
||||
living.client.init_verbs()
|
||||
livings += living
|
||||
|
||||
@@ -57,7 +57,7 @@ SUBSYSTEM_DEF(title)
|
||||
for(var/thing in GLOB.clients)
|
||||
if(!thing)
|
||||
continue
|
||||
var/obj/screen/splash/S = new(thing, FALSE)
|
||||
var/atom/movable/screen/splash/S = new(thing, FALSE)
|
||||
S.Fade(FALSE,FALSE)
|
||||
|
||||
/datum/controller/subsystem/title/Recover()
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
var/check_flags = 0
|
||||
var/required_mobility_flags = MOBILITY_USE
|
||||
var/processing = FALSE
|
||||
var/obj/screen/movable/action_button/button = null
|
||||
var/atom/movable/screen/movable/action_button/button = null
|
||||
var/buttontooltipstyle = ""
|
||||
var/transparent_when_unavailable = TRUE
|
||||
var/use_target_appearance = FALSE
|
||||
@@ -159,7 +159,7 @@
|
||||
button.color = rgb(255,255,255,255)
|
||||
return 1
|
||||
|
||||
/datum/action/proc/ApplyIcon(obj/screen/movable/action_button/current_button, force = FALSE)
|
||||
/datum/action/proc/ApplyIcon(atom/movable/screen/movable/action_button/current_button, force = FALSE)
|
||||
if(icon_icon && button_icon_state && ((current_button.button_icon_state != button_icon_state) || force))
|
||||
current_button.cut_overlays()
|
||||
current_button.add_overlay(mutable_appearance(icon_icon, button_icon_state))
|
||||
@@ -821,7 +821,7 @@
|
||||
icon_icon = 'icons/mob/actions/actions_items.dmi'
|
||||
button_icon_state = "storage_gather_switch"
|
||||
|
||||
/datum/action/item_action/storage_gather_mode/ApplyIcon(obj/screen/movable/action_button/current_button)
|
||||
/datum/action/item_action/storage_gather_mode/ApplyIcon(atom/movable/screen/movable/action_button/current_button)
|
||||
. = ..()
|
||||
var/old_layer = target.layer
|
||||
var/old_plane = target.plane
|
||||
|
||||
@@ -47,7 +47,7 @@
|
||||
"These words keep echoing in your mind. You find yourself completely fascinated by them.")]</span>")
|
||||
to_chat(owner, "<span class='boldwarning'>You've been hypnotized by this sentence. You must follow these words. If it isn't a clear order, you can freely interpret how to do so,\
|
||||
as long as you act like the words are your highest priority.</span>")
|
||||
var/obj/screen/alert/hypnosis/hypno_alert = owner.throw_alert("hypnosis", /obj/screen/alert/hypnosis)
|
||||
var/atom/movable/screen/alert/hypnosis/hypno_alert = owner.throw_alert("hypnosis", /atom/movable/screen/alert/hypnosis)
|
||||
hypno_alert.desc = "\"[hypnotic_phrase]\"... your mind seems to be fixated on this concept."
|
||||
..()
|
||||
|
||||
|
||||
@@ -164,7 +164,7 @@
|
||||
/datum/brain_trauma/severe/monophobia/on_life()
|
||||
..()
|
||||
if(check_alone())
|
||||
stress = min(stress + 0.5, 100)
|
||||
stress = min(stress + 0.25, 100)
|
||||
if(stress > 10 && (prob(5)))
|
||||
stress_reaction()
|
||||
else
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
playing.play(watcher)
|
||||
qdel(playing)
|
||||
|
||||
/obj/screen/cinematic
|
||||
/atom/movable/screen/cinematic
|
||||
icon = 'icons/effects/station_explosion.dmi'
|
||||
icon_state = "station_intact"
|
||||
plane = SPLASHSCREEN_PLANE
|
||||
@@ -32,7 +32,7 @@
|
||||
var/list/watching = list() //List of clients watching this
|
||||
var/list/locked = list() //Who had mob_transforming set during the cinematic
|
||||
var/is_global = FALSE //Global cinematics will override mob-specific ones
|
||||
var/obj/screen/cinematic/screen
|
||||
var/atom/movable/screen/cinematic/screen
|
||||
var/datum/callback/special_callback //For special effects synced with animation (explosions after the countdown etc)
|
||||
var/cleanup_time = 300 //How long for the final screen to remain
|
||||
var/stop_ooc = TRUE //Turns off ooc when played globally.
|
||||
@@ -74,7 +74,7 @@
|
||||
ooc_toggled = TRUE
|
||||
toggle_ooc(FALSE)
|
||||
|
||||
//Place /obj/screen/cinematic into everyone's screens, prevent them from moving
|
||||
//Place /atom/movable/screen/cinematic into everyone's screens, prevent them from moving
|
||||
for(var/MM in watchers)
|
||||
var/mob/M = MM
|
||||
show_to(M, M.client)
|
||||
@@ -101,7 +101,7 @@
|
||||
if(!C)
|
||||
return
|
||||
watching += C
|
||||
M.overlay_fullscreen("cinematic",/obj/screen/fullscreen/cinematic_backdrop)
|
||||
M.overlay_fullscreen("cinematic",/atom/movable/screen/fullscreen/cinematic_backdrop)
|
||||
C.screen += screen
|
||||
|
||||
//Sound helper
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
var/mode_flags = COMBAT_MODE_INACTIVE
|
||||
var/combatmessagecooldown
|
||||
var/lastmousedir
|
||||
var/obj/screen/combattoggle/hud_icon
|
||||
var/atom/movable/screen/combattoggle/hud_icon
|
||||
var/hud_loc
|
||||
|
||||
/datum/component/combat_mode/Initialize(hud_loc = ui_combat_toggle)
|
||||
@@ -178,18 +178,18 @@
|
||||
safe_disable_combat_mode(source)
|
||||
|
||||
/// The screen button.
|
||||
/obj/screen/combattoggle
|
||||
/atom/movable/screen/combattoggle
|
||||
name = "toggle combat mode"
|
||||
icon = 'modular_citadel/icons/ui/screen_midnight.dmi'
|
||||
icon_state = "combat_off"
|
||||
var/mutable_appearance/flashy
|
||||
var/combat_on = FALSE ///Wheter combat mode is enabled or not, so we don't have to store a reference.
|
||||
|
||||
/obj/screen/combattoggle/Click()
|
||||
/atom/movable/screen/combattoggle/Click()
|
||||
if(hud && usr == hud.mymob)
|
||||
SEND_SIGNAL(hud.mymob, COMSIG_TOGGLE_COMBAT_MODE)
|
||||
|
||||
/obj/screen/combattoggle/update_icon_state()
|
||||
/atom/movable/screen/combattoggle/update_icon_state()
|
||||
var/mob/living/user = hud?.mymob
|
||||
if(!user)
|
||||
return
|
||||
@@ -200,7 +200,7 @@
|
||||
else
|
||||
icon_state = "combat_off"
|
||||
|
||||
/obj/screen/combattoggle/update_overlays()
|
||||
/atom/movable/screen/combattoggle/update_overlays()
|
||||
. = ..()
|
||||
var/mob/living/carbon/user = hud?.mymob
|
||||
if(!(user?.client))
|
||||
|
||||
@@ -5,10 +5,10 @@
|
||||
/datum/component/personal_crafting/proc/create_mob_button(mob/user, client/CL)
|
||||
var/datum/hud/H = user.hud_used
|
||||
for(var/huds in H.static_inventory)
|
||||
if(istype(huds, /obj/screen/craft))
|
||||
if(istype(huds, /atom/movable/screen/craft))
|
||||
return
|
||||
//We don't want to be stacking multiple crafting huds on relogs
|
||||
var/obj/screen/craft/C = new()
|
||||
var/atom/movable/screen/craft/C = new()
|
||||
C.icon = H.ui_style
|
||||
H.static_inventory += C
|
||||
CL.screen += C
|
||||
@@ -323,7 +323,7 @@
|
||||
Deletion.Cut(Deletion.len)
|
||||
qdel(DL)
|
||||
|
||||
/datum/component/personal_crafting/proc/component_ui_interact(obj/screen/craft/image, location, control, params, user)
|
||||
/datum/component/personal_crafting/proc/component_ui_interact(atom/movable/screen/craft/image, location, control, params, user)
|
||||
if(user == parent)
|
||||
ui_interact(user)
|
||||
|
||||
|
||||
@@ -142,7 +142,7 @@
|
||||
if(harmful)
|
||||
victim.visible_message("<span class='danger'>[weapon] embeds itself in [victim]'s [limb.name]!</span>",ignored_mobs=victim)
|
||||
to_chat(victim, "<span class='userdanger'>[weapon] embeds itself in your [limb.name]!</span>")
|
||||
victim.throw_alert("embeddedobject", /obj/screen/alert/embeddedobject)
|
||||
victim.throw_alert("embeddedobject", /atom/movable/screen/alert/embeddedobject)
|
||||
playsound(victim,'sound/weapons/bladeslice.ogg', 40)
|
||||
weapon.add_mob_blood(victim)//it embedded itself in you, of course it's bloody!
|
||||
damage = weapon.w_class * impact_pain_mult
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
var/mood_modifier = 1 //Modifier to allow certain mobs to be less affected by moodlets
|
||||
var/list/datum/mood_event/mood_events = list()
|
||||
var/insanity_effect = 0 //is the owner being punished for low mood? If so, how much?
|
||||
var/obj/screen/mood/screen_obj
|
||||
var/atom/movable/screen/mood/screen_obj
|
||||
var/datum/skill_modifier/bad_mood/malus
|
||||
var/datum/skill_modifier/great_mood/bonus
|
||||
var/static/malus_id = 0
|
||||
|
||||
@@ -435,15 +435,15 @@
|
||||
RevenantThrow(over_object, M, source)
|
||||
return
|
||||
if(!M.incapacitated())
|
||||
if(!istype(over_object, /obj/screen))
|
||||
if(!istype(over_object, /atom/movable/screen))
|
||||
dump_content_at(over_object, M)
|
||||
return
|
||||
if(A.loc != M)
|
||||
return
|
||||
playsound(A, "rustle", 50, 1, -5)
|
||||
A.do_jiggle()
|
||||
if(istype(over_object, /obj/screen/inventory/hand))
|
||||
var/obj/screen/inventory/hand/H = over_object
|
||||
if(istype(over_object, /atom/movable/screen/inventory/hand))
|
||||
var/atom/movable/screen/inventory/hand/H = over_object
|
||||
M.putItemFromInventoryInHandIfPossible(A, H.held_index)
|
||||
return
|
||||
A.add_fingerprint(M)
|
||||
|
||||
@@ -20,8 +20,8 @@
|
||||
. = list()
|
||||
var/list/accessible_contents = accessible_items()
|
||||
var/adjusted_contents = length(accessible_contents)
|
||||
var/obj/screen/storage/close/ui_close
|
||||
var/obj/screen/storage/boxes/ui_boxes
|
||||
var/atom/movable/screen/storage/close/ui_close
|
||||
var/atom/movable/screen/storage/boxes/ui_boxes
|
||||
|
||||
//Numbered contents display
|
||||
var/list/datum/numbered_display/numbered_contents
|
||||
@@ -62,7 +62,7 @@
|
||||
for(var/obj/O in accessible_items())
|
||||
if(QDELETED(O))
|
||||
continue
|
||||
var/obj/screen/storage/item_holder/D = new(null, src, O)
|
||||
var/atom/movable/screen/storage/item_holder/D = new(null, src, O)
|
||||
D.mouse_opacity = MOUSE_OPACITY_OPAQUE //This is here so storage items that spawn with contents correctly have the "click around item to equip"
|
||||
D.screen_loc = "[cx]:[screen_pixel_x],[cy]:[screen_pixel_y]"
|
||||
O.maptext = ""
|
||||
@@ -81,9 +81,9 @@
|
||||
*/
|
||||
/datum/component/storage/proc/orient2hud_volumetric(mob/user, maxcolumns)
|
||||
. = list()
|
||||
var/obj/screen/storage/left/ui_left
|
||||
var/obj/screen/storage/continuous/ui_continuous
|
||||
var/obj/screen/storage/close/ui_close
|
||||
var/atom/movable/screen/storage/left/ui_left
|
||||
var/atom/movable/screen/storage/continuous/ui_continuous
|
||||
var/atom/movable/screen/storage/close/ui_close
|
||||
|
||||
// Generate ui_item_blocks for missing ones and render+orient.
|
||||
var/list/atom/contents = accessible_items()
|
||||
@@ -137,7 +137,7 @@
|
||||
for(var/i in percentage_by_item)
|
||||
I = i
|
||||
var/percent = percentage_by_item[I]
|
||||
var/obj/screen/storage/volumetric_box/center/B = new /obj/screen/storage/volumetric_box/center(null, src, I)
|
||||
var/atom/movable/screen/storage/volumetric_box/center/B = new /atom/movable/screen/storage/volumetric_box/center(null, src, I)
|
||||
var/pixels_to_use = overrun? MINIMUM_PIXELS_PER_ITEM : max(using_horizontal_pixels * percent, MINIMUM_PIXELS_PER_ITEM)
|
||||
var/addrow = FALSE
|
||||
if(CEILING(pixels_to_use, 1) >= FLOOR(horizontal_pixels - current_pixel - VOLUMETRIC_STORAGE_EDGE_PADDING, 1))
|
||||
@@ -255,22 +255,22 @@
|
||||
* Gets our ui_boxes, making it if it doesn't exist.
|
||||
*/
|
||||
/datum/component/storage/proc/get_ui_boxes()
|
||||
return new /obj/screen/storage/boxes(null, src)
|
||||
return new /atom/movable/screen/storage/boxes(null, src)
|
||||
|
||||
/**
|
||||
* Gets our ui_left, making it if it doesn't exist.
|
||||
*/
|
||||
/datum/component/storage/proc/get_ui_left()
|
||||
return new /obj/screen/storage/left(null, src)
|
||||
return new /atom/movable/screen/storage/left(null, src)
|
||||
|
||||
/**
|
||||
* Gets our ui_close, making it if it doesn't exist.
|
||||
*/
|
||||
/datum/component/storage/proc/get_ui_close()
|
||||
return new /obj/screen/storage/close(null, src)
|
||||
return new /atom/movable/screen/storage/close(null, src)
|
||||
|
||||
/**
|
||||
* Gets our ui_continuous, making it if it doesn't exist.
|
||||
*/
|
||||
/datum/component/storage/proc/get_ui_continuous()
|
||||
return new /obj/screen/storage/continuous(null, src)
|
||||
return new /atom/movable/screen/storage/continuous(null, src)
|
||||
|
||||
@@ -370,7 +370,7 @@
|
||||
user.emote("scream")
|
||||
user.gain_trauma(/datum/brain_trauma/severe/paralysis/spinesnapped) // oopsie indeed!
|
||||
shake_camera(user, 7, 7)
|
||||
user.overlay_fullscreen("flash", /obj/screen/fullscreen/flash)
|
||||
user.overlay_fullscreen("flash", /atom/movable/screen/fullscreen/flash)
|
||||
user.clear_fullscreen("flash", 4.5)
|
||||
|
||||
if(94 to 98)
|
||||
@@ -381,7 +381,7 @@
|
||||
user.gain_trauma_type(BRAIN_TRAUMA_MILD)
|
||||
user.playsound_local(get_turf(user), 'sound/weapons/flashbang.ogg', 100, TRUE, 8, 0.9)
|
||||
shake_camera(user, 6, 6)
|
||||
user.overlay_fullscreen("flash", /obj/screen/fullscreen/flash)
|
||||
user.overlay_fullscreen("flash", /atom/movable/screen/fullscreen/flash)
|
||||
user.clear_fullscreen("flash", 3.5)
|
||||
|
||||
if(84 to 93)
|
||||
@@ -394,7 +394,7 @@
|
||||
user.playsound_local(get_turf(user), 'sound/weapons/flashbang.ogg', 100, TRUE, 8, 0.9)
|
||||
user.DefaultCombatKnockdown(40)
|
||||
shake_camera(user, 5, 5)
|
||||
user.overlay_fullscreen("flash", /obj/screen/fullscreen/flash)
|
||||
user.overlay_fullscreen("flash", /atom/movable/screen/fullscreen/flash)
|
||||
user.clear_fullscreen("flash", 2.5)
|
||||
|
||||
if(64 to 83)
|
||||
|
||||
@@ -47,7 +47,7 @@ Bonus
|
||||
M.adjustOxyLoss(-7, 0)
|
||||
M.losebreath = max(0, M.losebreath - 4)
|
||||
if(regenerate_blood && M.blood_volume < (BLOOD_VOLUME_NORMAL * M.blood_ratio))
|
||||
M.blood_volume += 1
|
||||
M.adjust_integration_blood(1)
|
||||
else
|
||||
if(prob(base_message_chance))
|
||||
to_chat(M, "<span class='notice'>[pick("Your lungs feel great.", "You realize you haven't been breathing.", "You don't feel the need to breathe.")]</span>")
|
||||
|
||||
@@ -32,10 +32,8 @@ BONUS
|
||||
var/mob/living/M = A.affected_mob
|
||||
switch(A.stage)
|
||||
if(5)
|
||||
var/static/list/banned_reagents = list(/datum/reagent/colorful_reagent/crayonpowder/invisible, /datum/reagent/colorful_reagent/crayonpowder/white)
|
||||
var/color = pick(subtypesof(/datum/reagent/colorful_reagent/crayonpowder) - banned_reagents)
|
||||
if(M.reagents.total_volume <= (M.reagents.maximum_volume/10)) // no flooding humans with 1000 units of colorful reagent
|
||||
M.reagents.add_reagent(color, 5)
|
||||
M.reagents.add_reagent(/datum/reagent/colorful_reagent, 5)
|
||||
else
|
||||
if (prob(50)) // spam
|
||||
M.visible_message("<span class='warning'>[M] looks rather vibrant...</span>", "<span class='notice'>The colors, man, the colors...</span>")
|
||||
|
||||
@@ -10,11 +10,14 @@
|
||||
// And yes this does have to be in the constructor, BYOND ignores it if you set it as a normal var
|
||||
|
||||
// Helper similar to image()
|
||||
/proc/mutable_appearance(icon, icon_state = "", layer = FLOAT_LAYER, plane = FLOAT_PLANE, color = "#FFFFFF")
|
||||
/proc/mutable_appearance(icon, icon_state = "", layer = FLOAT_LAYER, plane = FLOAT_PLANE, alpha = 255, appearance_flags = NONE, color = "#FFFFFF")
|
||||
var/mutable_appearance/MA = new()
|
||||
MA.icon = icon
|
||||
MA.icon_state = icon_state
|
||||
MA.layer = layer
|
||||
MA.plane = plane
|
||||
MA.alpha = alpha
|
||||
MA.appearance_flags |= appearance_flags
|
||||
MA.color = color
|
||||
return MA
|
||||
|
||||
|
||||
@@ -6,5 +6,5 @@
|
||||
/datum/numbered_display/New(obj/item/sample, _number = 1, datum/component/storage/parent)
|
||||
if(!istype(sample))
|
||||
qdel(src)
|
||||
sample_object = new /obj/screen/storage/item_holder(null, parent, sample)
|
||||
sample_object = new /atom/movable/screen/storage/item_holder(null, parent, sample)
|
||||
number = _number
|
||||
|
||||
@@ -3,9 +3,9 @@
|
||||
/datum/status_effect/shadow_mend
|
||||
id = "shadow_mend"
|
||||
duration = 30
|
||||
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"
|
||||
@@ -29,9 +29,9 @@
|
||||
id = "void_price"
|
||||
duration = 300
|
||||
tick_interval = 30
|
||||
alert_type = /obj/screen/alert/status_effect/void_price
|
||||
alert_type = /atom/movable/screen/alert/status_effect/void_price
|
||||
|
||||
/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"
|
||||
@@ -46,17 +46,17 @@
|
||||
duration = 200
|
||||
tick_interval = 0 //tick as fast as possible
|
||||
status_type = STATUS_EFFECT_REPLACE
|
||||
alert_type = /obj/screen/alert/status_effect/vanguard
|
||||
alert_type = /atom/movable/screen/alert/status_effect/vanguard
|
||||
var/datum/progressbar/progbar
|
||||
var/stamhealed = 0 //How much stamina did we regenerate?
|
||||
|
||||
/obj/screen/alert/status_effect/vanguard
|
||||
/atom/movable/screen/alert/status_effect/vanguard
|
||||
name = "Vanguard"
|
||||
desc = "You're absorbing stuns aswell as quickly regenerating stamina, but be careful: 50% of stamina restored and 25% of stuns absorbed will affect you after this effect ends."
|
||||
icon_state = "vanguard"
|
||||
alerttooltipstyle = "clockcult"
|
||||
|
||||
/obj/screen/alert/status_effect/vanguard/MouseEntered(location,control,params)
|
||||
/atom/movable/screen/alert/status_effect/vanguard/MouseEntered(location,control,params)
|
||||
var/mob/living/L = usr
|
||||
var/datum/status_effect/vanguard_shield/E = attached_effect
|
||||
if(istype(L)) //this is probably more safety than actually needed
|
||||
@@ -118,9 +118,9 @@
|
||||
/datum/status_effect/inathneqs_endowment
|
||||
id = "inathneqs_endowment"
|
||||
duration = 150
|
||||
alert_type = /obj/screen/alert/status_effect/inathneqs_endowment
|
||||
alert_type = /atom/movable/screen/alert/status_effect/inathneqs_endowment
|
||||
|
||||
/obj/screen/alert/status_effect/inathneqs_endowment
|
||||
/atom/movable/screen/alert/status_effect/inathneqs_endowment
|
||||
name = "Inath-neq's Endowment"
|
||||
desc = "Adrenaline courses through you as the Resonant Cogwheel's energy shields you from all harm!"
|
||||
icon_state = "inathneqs_endowment"
|
||||
@@ -149,7 +149,7 @@
|
||||
/datum/status_effect/cyborg_power_regen
|
||||
id = "power_regen"
|
||||
duration = 100
|
||||
alert_type = /obj/screen/alert/status_effect/power_regen
|
||||
alert_type = /atom/movable/screen/alert/status_effect/power_regen
|
||||
var/power_to_give = 0 //how much power is gained each tick
|
||||
|
||||
/datum/status_effect/cyborg_power_regen/on_creation(mob/living/new_owner, new_power_per_tick)
|
||||
@@ -157,7 +157,7 @@
|
||||
if(. && isnum(new_power_per_tick))
|
||||
power_to_give = new_power_per_tick
|
||||
|
||||
/obj/screen/alert/status_effect/power_regen
|
||||
/atom/movable/screen/alert/status_effect/power_regen
|
||||
name = "Power Regeneration"
|
||||
desc = "You are quickly regenerating power!"
|
||||
icon_state = "power_regen"
|
||||
@@ -174,16 +174,16 @@
|
||||
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
|
||||
|
||||
/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>\
|
||||
@@ -225,7 +225,7 @@
|
||||
/datum/status_effect/wish_granters_gift //Fully revives after ten seconds.
|
||||
id = "wish_granters_gift"
|
||||
duration = 50
|
||||
alert_type = /obj/screen/alert/status_effect/wish_granters_gift
|
||||
alert_type = /atom/movable/screen/alert/status_effect/wish_granters_gift
|
||||
|
||||
/datum/status_effect/wish_granters_gift/on_apply()
|
||||
to_chat(owner, "<span class='notice'>Death is not your end! The Wish Granter's energy suffuses you, and you begin to rise...</span>")
|
||||
@@ -236,7 +236,7 @@
|
||||
owner.revive(full_heal = TRUE, admin_revive = TRUE)
|
||||
owner.visible_message("<span class='warning'>[owner] appears to wake from the dead, having healed all wounds!</span>", "<span class='notice'>You have regenerated.</span>")
|
||||
|
||||
/obj/screen/alert/status_effect/wish_granters_gift
|
||||
/atom/movable/screen/alert/status_effect/wish_granters_gift
|
||||
name = "Wish Granter's Immortality"
|
||||
desc = "You are being resurrected!"
|
||||
icon_state = "wish_granter"
|
||||
@@ -274,7 +274,7 @@
|
||||
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/last_health = 0
|
||||
var/last_bruteloss = 0
|
||||
var/last_fireloss = 0
|
||||
@@ -283,7 +283,7 @@
|
||||
var/last_cloneloss = 0
|
||||
var/last_staminaloss = 0
|
||||
|
||||
/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"
|
||||
@@ -430,7 +430,7 @@
|
||||
/datum/status_effect/fleshmend
|
||||
id = "fleshmend"
|
||||
duration = 100
|
||||
alert_type = /obj/screen/alert/status_effect/fleshmend
|
||||
alert_type = /atom/movable/screen/alert/status_effect/fleshmend
|
||||
|
||||
/datum/status_effect/fleshmend/tick()
|
||||
if(owner.on_fire)
|
||||
@@ -453,7 +453,7 @@
|
||||
|
||||
QDEL_LIST(C.all_scars)
|
||||
|
||||
/obj/screen/alert/status_effect/fleshmend
|
||||
/atom/movable/screen/alert/status_effect/fleshmend
|
||||
name = "Fleshmend"
|
||||
desc = "Our wounds are rapidly healing. <i>This effect is prevented if we are on fire.</i>"
|
||||
icon_state = "fleshmend"
|
||||
@@ -562,7 +562,7 @@
|
||||
var/mob/living/simple_animal/SM = L
|
||||
SM.adjustHealth(-3.5, forced = TRUE)
|
||||
|
||||
/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"
|
||||
@@ -572,7 +572,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
|
||||
var/heal_amount = 25
|
||||
|
||||
/datum/status_effect/regenerative_core/on_apply()
|
||||
@@ -597,9 +597,9 @@
|
||||
id = "Anatomic Panacea"
|
||||
duration = 100
|
||||
tick_interval = 10
|
||||
alert_type = /obj/screen/alert/status_effect/panacea
|
||||
alert_type = /atom/movable/screen/alert/status_effect/panacea
|
||||
|
||||
/obj/screen/alert/status_effect/panacea
|
||||
/atom/movable/screen/alert/status_effect/panacea
|
||||
name = "Panacea"
|
||||
desc = "We purge the impurities from our body."
|
||||
icon_state = "panacea"
|
||||
@@ -774,7 +774,7 @@
|
||||
status_type = STATUS_EFFECT_REFRESH
|
||||
duration = 15 SECONDS
|
||||
examine_text = "<span class='notice'>They don't seem to be all here.</span>"
|
||||
alert_type = /obj/screen/alert/status_effect/crucible_soul
|
||||
alert_type = /atom/movable/screen/alert/status_effect/crucible_soul
|
||||
var/turf/location
|
||||
|
||||
/datum/status_effect/crucible_soul/on_apply()
|
||||
@@ -796,7 +796,7 @@
|
||||
id = "Blessing of Dusk and Dawn"
|
||||
status_type = STATUS_EFFECT_REFRESH
|
||||
duration = 60 SECONDS
|
||||
alert_type =/obj/screen/alert/status_effect/duskndawn
|
||||
alert_type =/atom/movable/screen/alert/status_effect/duskndawn
|
||||
|
||||
/datum/status_effect/duskndawn/on_apply()
|
||||
. = ..()
|
||||
@@ -813,7 +813,7 @@
|
||||
status_type = STATUS_EFFECT_REFRESH
|
||||
duration = 60 SECONDS
|
||||
tick_interval = 1 SECONDS
|
||||
alert_type = /obj/screen/alert/status_effect/marshal
|
||||
alert_type = /atom/movable/screen/alert/status_effect/marshal
|
||||
|
||||
/datum/status_effect/marshal/on_apply()
|
||||
. = ..()
|
||||
@@ -849,17 +849,17 @@
|
||||
carbie.blood_volume += carbie.blood_volume >= BLOOD_VOLUME_NORMAL ? 0 : heal_amt*3
|
||||
|
||||
|
||||
/obj/screen/alert/status_effect/crucible_soul
|
||||
/atom/movable/screen/alert/status_effect/crucible_soul
|
||||
name = "Blessing of Crucible Soul"
|
||||
desc = "You phased through the reality, you are halfway to your final destination..."
|
||||
icon_state = "crucible"
|
||||
|
||||
/obj/screen/alert/status_effect/duskndawn
|
||||
/atom/movable/screen/alert/status_effect/duskndawn
|
||||
name = "Blessing of Dusk and Dawn"
|
||||
desc = "Many things hide beyond the horizon, with Owl's help i managed to slip past sun's guard and moon's watch."
|
||||
icon_state = "duskndawn"
|
||||
|
||||
/obj/screen/alert/status_effect/marshal
|
||||
/atom/movable/screen/alert/status_effect/marshal
|
||||
name = "Blessing of Wounded Soldier"
|
||||
desc = "Some people seek power through redemption, one thing many people don't know is that battle is the ultimate redemption and wounds let you bask in eternal glory."
|
||||
icon_state = "wounded_soldier"
|
||||
|
||||
@@ -58,7 +58,7 @@
|
||||
//SLEEPING
|
||||
/datum/status_effect/incapacitating/sleeping
|
||||
id = "sleeping"
|
||||
alert_type = /obj/screen/alert/status_effect/asleep
|
||||
alert_type = /atom/movable/screen/alert/status_effect/asleep
|
||||
needs_update_stat = TRUE
|
||||
var/mob/living/carbon/carbon_owner
|
||||
var/mob/living/carbon/human/human_owner
|
||||
@@ -122,7 +122,7 @@
|
||||
owner.remove_movespeed_modifier(/datum/movespeed_modifier/status_effect/off_balance)
|
||||
return ..()
|
||||
|
||||
/obj/screen/alert/status_effect/asleep
|
||||
/atom/movable/screen/alert/status_effect/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"
|
||||
@@ -139,7 +139,7 @@
|
||||
|
||||
/datum/status_effect/mesmerize
|
||||
id = "Mesmerize"
|
||||
alert_type = /obj/screen/alert/status_effect/mesmerized
|
||||
alert_type = /atom/movable/screen/alert/status_effect/mesmerized
|
||||
|
||||
/datum/status_effect/mesmerize/on_creation(mob/living/new_owner, set_duration)
|
||||
. = ..()
|
||||
@@ -156,7 +156,7 @@
|
||||
duration = set_duration
|
||||
. = ..()
|
||||
|
||||
/obj/screen/alert/status_effect/mesmerized
|
||||
/atom/movable/screen/alert/status_effect/mesmerized
|
||||
name = "Mesmerized"
|
||||
desc = "You can't tear your sight from who is in front of you... their gaze is simply too enthralling.."
|
||||
icon = 'icons/mob/actions/bloodsucker.dmi'
|
||||
@@ -222,9 +222,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"
|
||||
@@ -243,11 +243,11 @@
|
||||
duration = 70
|
||||
tick_interval = 0 //tick as fast as possible
|
||||
status_type = STATUS_EFFECT_REPLACE
|
||||
alert_type = /obj/screen/alert/status_effect/belligerent
|
||||
alert_type = /atom/movable/screen/alert/status_effect/belligerent
|
||||
var/leg_damage_on_toggle = 2 //damage on initial application and when the owner tries to toggle to run
|
||||
var/cultist_damage_on_toggle = 10 //damage on initial application and when the owner tries to toggle to run, but to cultists
|
||||
|
||||
/obj/screen/alert/status_effect/belligerent
|
||||
/atom/movable/screen/alert/status_effect/belligerent
|
||||
name = "Belligerent"
|
||||
desc = "<b><font color=#880020>Kneel, her-eti'c.</font></b>"
|
||||
icon_state = "belligerent"
|
||||
@@ -768,7 +768,7 @@
|
||||
/datum/status_effect/necropolis_curse/proc/apply_curse(set_curse)
|
||||
curse_flags |= set_curse
|
||||
if(curse_flags & CURSE_BLINDING)
|
||||
owner.overlay_fullscreen("curse", /obj/screen/fullscreen/curse, 1)
|
||||
owner.overlay_fullscreen("curse", /atom/movable/screen/fullscreen/curse, 1)
|
||||
|
||||
/datum/status_effect/necropolis_curse/proc/remove_curse(remove_curse)
|
||||
if(remove_curse & CURSE_BLINDING)
|
||||
@@ -827,7 +827,7 @@
|
||||
status_type = STATUS_EFFECT_UNIQUE
|
||||
tick_interval = 5
|
||||
duration = 100
|
||||
alert_type = /obj/screen/alert/status_effect/kindle
|
||||
alert_type = /atom/movable/screen/alert/status_effect/kindle
|
||||
var/old_health
|
||||
var/old_oxyloss
|
||||
|
||||
@@ -856,7 +856,7 @@
|
||||
owner.visible_message("<span class='warning'>The light in [owner]'s eyes fades!</span>", \
|
||||
"<span class='boldannounce'>You snap out of your daze!</span>")
|
||||
|
||||
/obj/screen/alert/status_effect/kindle
|
||||
/atom/movable/screen/alert/status_effect/kindle
|
||||
name = "Dazzling Lights"
|
||||
desc = "Blinding light dances in your vision, stunning and silencing you. <i>Any damage taken will shorten the light's effects!</i>"
|
||||
icon_state = "kindle"
|
||||
@@ -869,7 +869,7 @@
|
||||
status_type = STATUS_EFFECT_UNIQUE
|
||||
duration = 600
|
||||
examine_text = "<span class='warning'>SUBJECTPRONOUN is drenched in thick, blue ichor!</span>"
|
||||
alert_type = /obj/screen/alert/status_effect/ichorial_stain
|
||||
alert_type = /atom/movable/screen/alert/status_effect/ichorial_stain
|
||||
|
||||
/datum/status_effect/ichorial_stain/on_apply()
|
||||
. = ..()
|
||||
@@ -882,7 +882,7 @@
|
||||
owner.visible_message("<span class='danger'>The blue ichor on [owner]'s body dries out!</span>", \
|
||||
"<span class='boldnotice'>The ichor on your body is dry - you can now be revived by vitality matrices again!</span>")
|
||||
|
||||
/obj/screen/alert/status_effect/ichorial_stain
|
||||
/atom/movable/screen/alert/status_effect/ichorial_stain
|
||||
name = "Ichorial Stain"
|
||||
desc = "Your body is covered in blue ichor! You can't be revived by vitality matrices."
|
||||
icon_state = "ichorial_stain"
|
||||
@@ -908,7 +908,7 @@
|
||||
/datum/status_effect/strandling //get it, strand as in durathread strand + strangling = strandling hahahahahahahahahahhahahaha i want to die
|
||||
id = "strandling"
|
||||
status_type = STATUS_EFFECT_UNIQUE
|
||||
alert_type = /obj/screen/alert/status_effect/strandling
|
||||
alert_type = /atom/movable/screen/alert/status_effect/strandling
|
||||
|
||||
/datum/status_effect/strandling/on_apply()
|
||||
ADD_TRAIT(owner, TRAIT_MAGIC_CHOKE, "dumbmoron")
|
||||
@@ -918,13 +918,13 @@
|
||||
REMOVE_TRAIT(owner, TRAIT_MAGIC_CHOKE, "dumbmoron")
|
||||
return ..()
|
||||
|
||||
/obj/screen/alert/status_effect/strandling
|
||||
/atom/movable/screen/alert/status_effect/strandling
|
||||
name = "Choking strand"
|
||||
desc = "A magical strand of Durathread is wrapped around your neck, preventing you from breathing! Click this icon to remove the strand."
|
||||
icon_state = "his_grace"
|
||||
alerttooltipstyle = "hisgrace"
|
||||
|
||||
/obj/screen/alert/status_effect/strandling/Click(location, control, params)
|
||||
/atom/movable/screen/alert/status_effect/strandling/Click(location, control, params)
|
||||
. = ..()
|
||||
to_chat(mob_viewer, "<span class='notice'>You attempt to remove the durathread strand from around your neck.</span>")
|
||||
if(do_after(mob_viewer, 35, null, mob_viewer))
|
||||
@@ -961,9 +961,9 @@
|
||||
tick_interval = 10
|
||||
examine_text = "<span class='warning'>SUBJECTPRONOUN seems slow and unfocused.</span>"
|
||||
var/stun = TRUE
|
||||
alert_type = /obj/screen/alert/status_effect/trance
|
||||
alert_type = /atom/movable/screen/alert/status_effect/trance
|
||||
|
||||
/obj/screen/alert/status_effect/trance
|
||||
/atom/movable/screen/alert/status_effect/trance
|
||||
name = "Trance"
|
||||
desc = "Everything feels so distant, and you can feel your thoughts forming loops inside your head..."
|
||||
icon_state = "high"
|
||||
@@ -1069,7 +1069,7 @@
|
||||
id = "dna_melt"
|
||||
duration = 600
|
||||
status_type = STATUS_EFFECT_REPLACE
|
||||
alert_type = /obj/screen/alert/status_effect/dna_melt
|
||||
alert_type = /atom/movable/screen/alert/status_effect/dna_melt
|
||||
var/kill_either_way = FALSE //no amount of removing mutations is gonna save you now
|
||||
|
||||
/datum/status_effect/dna_melt/on_creation(mob/living/new_owner, set_duration, updating_canmove)
|
||||
@@ -1084,7 +1084,7 @@
|
||||
H.something_horrible(kill_either_way)
|
||||
return ..()
|
||||
|
||||
/obj/screen/alert/status_effect/dna_melt
|
||||
/atom/movable/screen/alert/status_effect/dna_melt
|
||||
name = "Genetic Breakdown"
|
||||
desc = "I don't feel so good. Your body can't handle the mutations! You have one minute to remove your mutations, or you will be met with a horrible fate."
|
||||
icon_state = "dna_melt"
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -48,7 +48,7 @@
|
||||
get_kill()
|
||||
return ..()
|
||||
|
||||
/obj/screen/alert/status_effect/in_love
|
||||
/atom/movable/screen/alert/status_effect/in_love
|
||||
name = "In Love"
|
||||
desc = "You feel so wonderfully in love!"
|
||||
icon_state = "in_love"
|
||||
@@ -57,7 +57,7 @@
|
||||
id = "in_love"
|
||||
duration = -1
|
||||
status_type = STATUS_EFFECT_UNIQUE
|
||||
alert_type = /obj/screen/alert/status_effect/in_love
|
||||
alert_type = /atom/movable/screen/alert/status_effect/in_love
|
||||
var/mob/living/date
|
||||
|
||||
/datum/status_effect/in_love/on_creation(mob/living/new_owner, mob/living/love_interest)
|
||||
|
||||
@@ -12,10 +12,10 @@
|
||||
var/mob/living/owner //The mob affected by the status effect.
|
||||
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/alert_type = /atom/movable/screen/alert/status_effect //the alert thrown by the status effect, contains name and description
|
||||
/// If this is TRUE, the user will have sprint forcefully disabled while this is active.
|
||||
var/blocks_sprint = FALSE
|
||||
var/obj/screen/alert/status_effect/linked_alert = null //the alert itself, if it exists
|
||||
var/atom/movable/screen/alert/status_effect/linked_alert = null //the alert itself, if it exists
|
||||
/// How many of the effect can be on one mob, and what happens when you try to add another
|
||||
var/status_type = STATUS_EFFECT_UNIQUE
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
duration = world.time + duration
|
||||
next_tick = 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
|
||||
START_PROCESSING(SSstatus_effects, src)
|
||||
@@ -100,7 +100,7 @@
|
||||
// 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
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
|
||||
// The shattered remnants of your broken limbs fill you with determination!
|
||||
/obj/screen/alert/status_effect/determined
|
||||
/atom/movable/screen/alert/status_effect/determined
|
||||
name = "Determined"
|
||||
desc = "The serious wounds you've sustained have put your body into fight-or-flight mode! Now's the time to look for an exit!"
|
||||
icon_state = "regenerative_core"
|
||||
|
||||
/datum/status_effect/determined
|
||||
id = "determined"
|
||||
alert_type = /obj/screen/alert/status_effect/determined
|
||||
alert_type = /atom/movable/screen/alert/status_effect/determined
|
||||
|
||||
/datum/status_effect/determined/on_apply()
|
||||
. = ..()
|
||||
@@ -21,7 +21,7 @@
|
||||
id = "limp"
|
||||
status_type = STATUS_EFFECT_REPLACE
|
||||
tick_interval = 10
|
||||
alert_type = /obj/screen/alert/status_effect/limp
|
||||
alert_type = /atom/movable/screen/alert/status_effect/limp
|
||||
var/msg_stage = 0//so you dont get the most intense messages immediately
|
||||
/// The left leg of the limping person
|
||||
var/obj/item/bodypart/l_leg/left
|
||||
@@ -49,7 +49,7 @@
|
||||
UnregisterSignal(owner, list(COMSIG_MOVABLE_MOVED, COMSIG_CARBON_GAIN_WOUND, COMSIG_CARBON_LOSE_WOUND, COMSIG_CARBON_ATTACH_LIMB, COMSIG_CARBON_REMOVE_LIMB))
|
||||
return ..()
|
||||
|
||||
/obj/screen/alert/status_effect/limp
|
||||
/atom/movable/screen/alert/status_effect/limp
|
||||
name = "Limping"
|
||||
desc = "One or more of your legs has been wounded, slowing down steps with that leg! Get it fixed, or at least splinted!"
|
||||
|
||||
@@ -99,11 +99,11 @@
|
||||
/////////////////////////
|
||||
|
||||
// wound alert
|
||||
/obj/screen/alert/status_effect/wound
|
||||
/atom/movable/screen/alert/status_effect/wound
|
||||
name = "Wounded"
|
||||
desc = "Your body has sustained serious damage, click here to inspect yourself."
|
||||
|
||||
/obj/screen/alert/status_effect/wound/Click()
|
||||
/atom/movable/screen/alert/status_effect/wound/Click()
|
||||
var/mob/living/carbon/C = usr
|
||||
C.check_self_for_injuries()
|
||||
|
||||
|
||||
@@ -124,7 +124,7 @@
|
||||
for(var/mob/dead/observer/O in GLOB.player_list)
|
||||
if(O.key == expected_key)
|
||||
if(O.client?.address == addr)
|
||||
new /obj/screen/splash(O.client, TRUE)
|
||||
new /atom/movable/screen/splash(O.client, TRUE)
|
||||
break
|
||||
|
||||
/datum/world_topic/adminmsg
|
||||
|
||||
@@ -136,7 +136,7 @@
|
||||
SEND_SIGNAL(victim, COMSIG_CARBON_GAIN_WOUND, src, limb)
|
||||
victim.emote("pain")
|
||||
if(!victim.alerts["wound"]) // only one alert is shared between all of the wounds
|
||||
victim.throw_alert("wound", /obj/screen/alert/status_effect/wound)
|
||||
victim.throw_alert("wound", /atom/movable/screen/alert/status_effect/wound)
|
||||
|
||||
var/demoted
|
||||
if(old_wound)
|
||||
|
||||
@@ -553,7 +553,7 @@ GLOBAL_LIST_EMPTY(teleportlocs)
|
||||
A.power_equip = power_equip
|
||||
A.power_environ = power_environ
|
||||
INVOKE_ASYNC(A, .proc/power_change)
|
||||
update_icon()
|
||||
update_appearance()
|
||||
|
||||
/area/proc/usage(chan)
|
||||
switch(chan)
|
||||
|
||||
@@ -103,6 +103,9 @@
|
||||
/// A luminescence-shifted value of the last color calculated for chatmessage overlays
|
||||
var/chat_color_darkened
|
||||
|
||||
///Used for changing icon states for different base sprites.
|
||||
var/base_icon_state
|
||||
|
||||
///Mobs that are currently do_after'ing this atom, to be cleared from on Destroy()
|
||||
var/list/targeted_by
|
||||
|
||||
@@ -531,37 +534,75 @@
|
||||
if(!LAZYLEN(.)) // lol ..length
|
||||
return list("<span class='notice'><i>You examine [src] closer, but find nothing of interest...</i></span>")
|
||||
|
||||
/**
|
||||
* Updates the appearence of the icon
|
||||
*
|
||||
* Mostly delegates to update_name, update_desc, and update_icon
|
||||
*
|
||||
* Arguments:
|
||||
* - updates: A set of bitflags dictating what should be updated. Defaults to [ALL]
|
||||
*/
|
||||
/atom/proc/update_appearance(updates=ALL)
|
||||
//SHOULD_NOT_SLEEP(TRUE)
|
||||
//SHOULD_CALL_PARENT(TRUE)
|
||||
|
||||
. = NONE
|
||||
updates &= ~SEND_SIGNAL(src, COMSIG_ATOM_UPDATE_APPEARANCE, updates)
|
||||
if(updates & UPDATE_NAME)
|
||||
. |= update_name(updates)
|
||||
if(updates & UPDATE_DESC)
|
||||
. |= update_desc(updates)
|
||||
if(updates & UPDATE_ICON)
|
||||
. |= update_icon(updates)
|
||||
|
||||
/// Updates the name of the atom
|
||||
/atom/proc/update_name(updates=ALL)
|
||||
//SHOULD_CALL_PARENT(TRUE)
|
||||
return SEND_SIGNAL(src, COMSIG_ATOM_UPDATE_NAME, updates)
|
||||
|
||||
/// Updates the description of the atom
|
||||
/atom/proc/update_desc(updates=ALL)
|
||||
//SHOULD_CALL_PARENT(TRUE)
|
||||
return SEND_SIGNAL(src, COMSIG_ATOM_UPDATE_DESC, updates)
|
||||
|
||||
/// Updates the icon of the atom
|
||||
/atom/proc/update_icon()
|
||||
// I expect we're going to need more return flags and options in this proc
|
||||
var/signalOut = SEND_SIGNAL(src, COMSIG_ATOM_UPDATE_ICON)
|
||||
. = FALSE
|
||||
/atom/proc/update_icon(updates=ALL)
|
||||
SIGNAL_HANDLER
|
||||
//SHOULD_CALL_PARENT(TRUE)
|
||||
|
||||
if(!(signalOut & COMSIG_ATOM_NO_UPDATE_ICON_STATE))
|
||||
. = NONE
|
||||
updates &= ~SEND_SIGNAL(src, COMSIG_ATOM_UPDATE_ICON, updates)
|
||||
if(updates & UPDATE_ICON_STATE)
|
||||
update_icon_state()
|
||||
. = TRUE
|
||||
. |= UPDATE_ICON_STATE
|
||||
|
||||
if(!(signalOut & COMSIG_ATOM_NO_UPDATE_OVERLAYS))
|
||||
var/list/new_overlays = update_overlays()
|
||||
if(updates & UPDATE_OVERLAYS)
|
||||
if(LAZYLEN(managed_vis_overlays))
|
||||
SSvis_overlays.remove_vis_overlay(src, managed_vis_overlays)
|
||||
|
||||
var/list/new_overlays = update_overlays(updates)
|
||||
if(managed_overlays)
|
||||
cut_overlay(managed_overlays)
|
||||
managed_overlays = null
|
||||
if(length(new_overlays))
|
||||
managed_overlays = new_overlays
|
||||
add_overlay(new_overlays)
|
||||
. = TRUE
|
||||
. |= UPDATE_OVERLAYS
|
||||
|
||||
SEND_SIGNAL(src, COMSIG_ATOM_UPDATED_ICON, signalOut, .)
|
||||
. |= SEND_SIGNAL(src, COMSIG_ATOM_UPDATED_ICON, updates, .)
|
||||
|
||||
/// Updates the icon state of the atom
|
||||
/atom/proc/update_icon_state()
|
||||
//SHOULD_CALL_PARENT(TRUE)
|
||||
return SEND_SIGNAL(src, COMSIG_ATOM_UPDATE_ICON_STATE)
|
||||
|
||||
/// Updates the overlays of the atom
|
||||
/atom/proc/update_overlays()
|
||||
SHOULD_CALL_PARENT(TRUE)
|
||||
//SHOULD_CALL_PARENT(TRUE)
|
||||
. = list()
|
||||
SEND_SIGNAL(src, COMSIG_ATOM_UPDATE_OVERLAYS, .)
|
||||
|
||||
|
||||
/atom/proc/relaymove(mob/living/user)
|
||||
if(!istype(user))
|
||||
return //why are you buckling nonliving mobs to atoms?
|
||||
|
||||
@@ -66,7 +66,11 @@
|
||||
. = ..()
|
||||
switch(blocks_emissive)
|
||||
if(EMISSIVE_BLOCK_GENERIC)
|
||||
update_emissive_block()
|
||||
var/mutable_appearance/gen_emissive_blocker = mutable_appearance(icon, icon_state, plane = EMISSIVE_PLANE, alpha = src.alpha)
|
||||
gen_emissive_blocker.color = GLOB.em_block_color
|
||||
gen_emissive_blocker.dir = dir
|
||||
gen_emissive_blocker.appearance_flags |= appearance_flags
|
||||
add_overlay(list(gen_emissive_blocker))
|
||||
if(EMISSIVE_BLOCK_UNIQUE)
|
||||
render_target = ref(src)
|
||||
em_block = new(src, render_target)
|
||||
@@ -111,13 +115,23 @@
|
||||
/atom/movable/proc/update_emissive_block()
|
||||
if(blocks_emissive != EMISSIVE_BLOCK_GENERIC)
|
||||
return
|
||||
if(length(managed_vis_overlays))
|
||||
for(var/a in managed_vis_overlays)
|
||||
var/obj/effect/overlay/vis/vs
|
||||
if(vs.plane == EMISSIVE_BLOCKER_PLANE)
|
||||
SSvis_overlays.remove_vis_overlay(src, list(vs))
|
||||
break
|
||||
SSvis_overlays.add_vis_overlay(src, icon, icon_state, EMISSIVE_BLOCKER_LAYER, EMISSIVE_BLOCKER_PLANE, dir)
|
||||
else if (blocks_emissive == EMISSIVE_BLOCK_GENERIC)
|
||||
var/mutable_appearance/gen_emissive_blocker = mutable_appearance(icon, icon_state, plane = EMISSIVE_PLANE, alpha = src.alpha)
|
||||
gen_emissive_blocker.color = GLOB.em_block_color
|
||||
gen_emissive_blocker.dir = dir
|
||||
gen_emissive_blocker.appearance_flags |= appearance_flags
|
||||
return gen_emissive_blocker
|
||||
else if(blocks_emissive == EMISSIVE_BLOCK_UNIQUE)
|
||||
if(!em_block)
|
||||
render_target = ref(src)
|
||||
em_block = new(src, render_target)
|
||||
return em_block
|
||||
|
||||
/atom/movable/update_overlays()
|
||||
. = ..()
|
||||
var/emissive_block = update_emissive_block()
|
||||
if(emissive_block)
|
||||
. += emissive_block
|
||||
|
||||
/atom/movable/proc/can_zFall(turf/source, levels = 1, turf/target, direction)
|
||||
if(!direction)
|
||||
|
||||
@@ -148,11 +148,15 @@ Class Procs:
|
||||
START_PROCESSING(SSmachines, src)
|
||||
else
|
||||
START_PROCESSING(SSfastprocess, src)
|
||||
power_change()
|
||||
RegisterSignal(src, COMSIG_ENTER_AREA, .proc/power_change)
|
||||
|
||||
if (occupant_typecache)
|
||||
occupant_typecache = typecacheof(occupant_typecache)
|
||||
return INITIALIZE_HINT_LATELOAD
|
||||
|
||||
/obj/machinery/LateInitialize()
|
||||
. = ..()
|
||||
power_change()
|
||||
|
||||
/obj/machinery/Destroy()
|
||||
GLOB.machines.Remove(src)
|
||||
@@ -176,6 +180,17 @@ Class Procs:
|
||||
/obj/machinery/proc/process_atmos()//If you dont use process why are you here
|
||||
return PROCESS_KILL
|
||||
|
||||
///Called when we want to change the value of the stat variable. Holds bitflags.
|
||||
/obj/machinery/proc/set_machine_stat(new_value)
|
||||
if(new_value == stat)
|
||||
return
|
||||
. = stat
|
||||
stat = new_value
|
||||
on_machine_stat_update(stat)
|
||||
|
||||
/obj/machinery/proc/on_machine_stat_update(stat)
|
||||
return
|
||||
|
||||
/obj/machinery/emp_act(severity)
|
||||
. = ..()
|
||||
if(use_power && !stat && !(. & EMP_PROTECT_SELF))
|
||||
@@ -383,8 +398,11 @@ Class Procs:
|
||||
M.icon_state = "box_1"
|
||||
|
||||
/obj/machinery/obj_break(damage_flag)
|
||||
if(!(flags_1 & NODECONSTRUCT_1))
|
||||
. = ..()
|
||||
if(!(stat & BROKEN) && !(flags_1 & NODECONSTRUCT_1))
|
||||
stat |= BROKEN
|
||||
SEND_SIGNAL(src, COMSIG_MACHINERY_BROKEN, damage_flag)
|
||||
update_appearance()
|
||||
return TRUE
|
||||
|
||||
/obj/machinery/contents_explosion(severity, target)
|
||||
|
||||
@@ -407,7 +407,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)
|
||||
user.see_invisible = SEE_INVISIBLE_LIVING //can't see ghosts through cameras
|
||||
|
||||
@@ -57,8 +57,8 @@
|
||||
var/overlay_state = icon_screen
|
||||
if(stat & BROKEN)
|
||||
overlay_state = "[icon_state]_broken"
|
||||
SSvis_overlays.add_vis_overlay(src, icon, overlay_state, layer, plane, dir)
|
||||
SSvis_overlays.add_vis_overlay(src, icon, overlay_state, EMISSIVE_LAYER, EMISSIVE_PLANE, dir, alpha=128)
|
||||
. += mutable_appearance(icon, overlay_state)
|
||||
. += emissive_appearance(icon, overlay_state)
|
||||
|
||||
/obj/machinery/computer/power_change()
|
||||
..()
|
||||
|
||||
@@ -16,10 +16,10 @@
|
||||
|
||||
// Stuff needed to render the map
|
||||
var/map_name
|
||||
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
|
||||
|
||||
interaction_flags_machine = INTERACT_MACHINE_ALLOW_SILICON | INTERACT_MACHINE_SET_MACHINE //| INTERACT_MACHINE_REQUIRES_SIGHT
|
||||
|
||||
@@ -40,8 +40,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"
|
||||
|
||||
@@ -275,7 +275,7 @@
|
||||
if(final)
|
||||
playsound(origin, 'sound/machines/terminal_prompt_confirm.ogg', 25, 0)
|
||||
remote_eye.setLoc(get_turf(final))
|
||||
C.overlay_fullscreen("flash", /obj/screen/fullscreen/flash/static)
|
||||
C.overlay_fullscreen("flash", /atom/movable/screen/fullscreen/flash/static)
|
||||
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)
|
||||
|
||||
@@ -123,7 +123,7 @@
|
||||
var/list/this_pad = list()
|
||||
this_pad["name"] = pad.display_name
|
||||
this_pad["id"] = i
|
||||
if(pad.machine_stat & NOPOWER)
|
||||
if(pad.stat & NOPOWER)
|
||||
this_pad["inactive"] = TRUE
|
||||
pad_list += list(this_pad)
|
||||
else
|
||||
@@ -135,7 +135,7 @@
|
||||
var/obj/machinery/mechpad/current_pad = mechpads[selected_id]
|
||||
data["pad_name"] = current_pad.display_name
|
||||
data["selected_pad"] = current_pad
|
||||
if(QDELETED(current_pad) || (current_pad.machine_stat & NOPOWER))
|
||||
if(QDELETED(current_pad) || (current_pad.stat & NOPOWER))
|
||||
data["pad_active"] = FALSE
|
||||
return data
|
||||
data["pad_active"] = TRUE
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
layer = OPEN_DOOR_LAYER
|
||||
power_channel = ENVIRON
|
||||
max_integrity = 350
|
||||
damage_deflection = 10
|
||||
armor = list("melee" = 30, "bullet" = 30, "laser" = 20, "energy" = 20, "bomb" = 10, "bio" = 100, "rad" = 100, "fire" = 80, "acid" = 70)
|
||||
CanAtmosPass = ATMOS_PASS_DENSITY
|
||||
flags_1 = PREVENT_CLICK_UNDER_1|DEFAULT_RICOCHET_1
|
||||
@@ -38,7 +39,7 @@
|
||||
var/locked = FALSE //whether the door is bolted or not.
|
||||
var/assemblytype //the type of door frame to drop during deconstruction
|
||||
var/datum/effect_system/spark_spread/spark_system
|
||||
var/damage_deflection = 10
|
||||
|
||||
var/real_explosion_block //ignore this, just use explosion_block
|
||||
var/red_alert_access = FALSE //if TRUE, this door will always open on red alert
|
||||
var/poddoor = FALSE
|
||||
@@ -223,11 +224,6 @@
|
||||
return 1
|
||||
return ..()
|
||||
|
||||
/obj/machinery/door/run_obj_armor(damage_amount, damage_type, damage_flag = 0, attack_dir)
|
||||
if(damage_flag == "melee" && damage_amount < damage_deflection)
|
||||
return 0
|
||||
. = ..()
|
||||
|
||||
/obj/machinery/door/take_damage(damage_amount, damage_type = BRUTE, damage_flag = 0, sound_effect = 1, attack_dir)
|
||||
. = ..()
|
||||
if(. && obj_integrity > 0)
|
||||
|
||||
@@ -79,23 +79,33 @@
|
||||
|
||||
if(is_station_level(z))
|
||||
. += "fire_[GLOB.security_level]"
|
||||
SSvis_overlays.add_vis_overlay(src, icon, "fire_[GLOB.security_level]", EMISSIVE_LAYER, EMISSIVE_PLANE, dir)
|
||||
. += mutable_appearance(icon, "fire_[GLOB.security_level]")
|
||||
. += emissive_appearance(icon, "fire_[GLOB.security_level]")
|
||||
else
|
||||
. += "fire_[SEC_LEVEL_GREEN]"
|
||||
SSvis_overlays.add_vis_overlay(src, icon, "fire_[SEC_LEVEL_GREEN]", EMISSIVE_LAYER, EMISSIVE_PLANE, dir)
|
||||
. += mutable_appearance(icon, "fire_[SEC_LEVEL_GREEN]")
|
||||
. += emissive_appearance(icon, "fire_[SEC_LEVEL_GREEN]")
|
||||
|
||||
var/area/A = src.loc
|
||||
A = A.loc
|
||||
|
||||
if(!detecting || !A.fire)
|
||||
. += "fire_off"
|
||||
SSvis_overlays.add_vis_overlay(src, icon, "fire_off", EMISSIVE_LAYER, EMISSIVE_PLANE, dir)
|
||||
. += mutable_appearance(icon, "fire_off")
|
||||
. += emissive_appearance(icon, "fire_off")
|
||||
else if(obj_flags & EMAGGED)
|
||||
. += "fire_emagged"
|
||||
SSvis_overlays.add_vis_overlay(src, icon, "fire_emagged", EMISSIVE_LAYER, EMISSIVE_PLANE, dir)
|
||||
. += mutable_appearance(icon, "fire_emagged")
|
||||
. += emissive_appearance(icon, "fire_emagged")
|
||||
else
|
||||
. += "fire_on"
|
||||
SSvis_overlays.add_vis_overlay(src, icon, "fire_on", EMISSIVE_LAYER, EMISSIVE_PLANE, dir)
|
||||
. += mutable_appearance(icon, "fire_on")
|
||||
. += emissive_appearance(icon, "fire_on")
|
||||
|
||||
if(!panel_open && detecting) //It just looks horrible with the panel open
|
||||
. += "fire_detected"
|
||||
. += mutable_appearance(icon, "fire_detected")
|
||||
. += emissive_appearance(icon, "fire_detected") //Pain
|
||||
|
||||
/obj/machinery/firealarm/emp_act(severity)
|
||||
. = ..()
|
||||
|
||||
@@ -1,52 +1,70 @@
|
||||
// the light switch
|
||||
// can have multiple per area
|
||||
// can also operate on non-loc area through "otherarea" var
|
||||
/// The light switch. Can have multiple per area.
|
||||
/obj/machinery/light_switch
|
||||
name = "light switch"
|
||||
icon = 'icons/obj/power.dmi'
|
||||
icon_state = "light1"
|
||||
plane = ABOVE_WALL_PLANE
|
||||
base_icon_state = "light"
|
||||
desc = "Make dark."
|
||||
var/on = TRUE
|
||||
var/area/area = null
|
||||
var/otherarea = null
|
||||
|
||||
/obj/machinery/light_switch/directional/north
|
||||
dir = SOUTH
|
||||
pixel_y = 26
|
||||
|
||||
/obj/machinery/light_switch/directional/south
|
||||
dir = NORTH
|
||||
pixel_y = -26
|
||||
|
||||
/obj/machinery/light_switch/directional/east
|
||||
dir = WEST
|
||||
pixel_x = 26
|
||||
|
||||
/obj/machinery/light_switch/directional/west
|
||||
dir = EAST
|
||||
pixel_x = -26
|
||||
|
||||
/obj/machinery/light_switch/Initialize()
|
||||
. = ..()
|
||||
area = get_area(src)
|
||||
|
||||
if(istext(area))
|
||||
area = text2path(area)
|
||||
if(ispath(area))
|
||||
area = GLOB.areas_by_type[area]
|
||||
if(otherarea)
|
||||
area = locate(text2path("/area/[otherarea]"))
|
||||
if(!area)
|
||||
area = get_area(src)
|
||||
|
||||
if(!name)
|
||||
name = "light switch ([area.name])"
|
||||
|
||||
on = area.lightswitch
|
||||
update_icon()
|
||||
/obj/machinery/light_switch/update_appearance(updates=ALL)
|
||||
. = ..()
|
||||
luminosity = (stat & NOPOWER) ? 0 : 1
|
||||
|
||||
/obj/machinery/light_switch/update_icon_state()
|
||||
if(stat & NOPOWER)
|
||||
icon_state = "light-p"
|
||||
else
|
||||
if(on)
|
||||
icon_state = "light1"
|
||||
else
|
||||
icon_state = "light0"
|
||||
icon_state = "[base_icon_state]-p"
|
||||
return ..()
|
||||
icon_state = "[base_icon_state][area.lightswitch ? 1 : 0]"
|
||||
return ..()
|
||||
|
||||
/obj/machinery/light_switch/update_overlays()
|
||||
. = ..()
|
||||
if(!(stat & NOPOWER))
|
||||
. += emissive_appearance(icon, "[base_icon_state]-glow", alpha = src.alpha)
|
||||
|
||||
/obj/machinery/light_switch/examine(mob/user)
|
||||
. = ..()
|
||||
. += "It is [on? "on" : "off"]."
|
||||
|
||||
. += "It is [area.lightswitch ? "on" : "off"]."
|
||||
/obj/machinery/light_switch/interact(mob/user)
|
||||
. = ..()
|
||||
on = !on
|
||||
|
||||
area.lightswitch = on
|
||||
area.update_icon()
|
||||
area.lightswitch = !area.lightswitch
|
||||
area.update_appearance()
|
||||
|
||||
for(var/obj/machinery/light_switch/L in area)
|
||||
L.on = on
|
||||
L.update_icon()
|
||||
L.update_appearance()
|
||||
|
||||
area.power_change()
|
||||
|
||||
@@ -58,7 +76,7 @@
|
||||
else
|
||||
stat |= NOPOWER
|
||||
|
||||
update_icon()
|
||||
update_appearance()
|
||||
|
||||
/obj/machinery/light_switch/emp_act(severity)
|
||||
. = ..()
|
||||
|
||||
@@ -30,7 +30,7 @@
|
||||
integrity_failure = 0.5
|
||||
armor = list("melee" = 50, "bullet" = 30, "laser" = 30, "energy" = 30, "bomb" = 30, "bio" = 0, "rad" = 0, "fire" = 90, "acid" = 90)
|
||||
/// Base turret icon state
|
||||
var/base_icon_state = "standard"
|
||||
base_icon_state = "standard"
|
||||
/// Scan range of the turret for locating targets
|
||||
var/scan_range = 7
|
||||
/// For turrets inside other objects
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
name = "recharger"
|
||||
icon = 'icons/obj/stationobjs.dmi'
|
||||
icon_state = "recharger0"
|
||||
base_icon_state = "recharger"
|
||||
desc = "A charging dock for energy based weaponry."
|
||||
use_power = IDLE_POWER_USE
|
||||
idle_power_usage = 4
|
||||
@@ -187,16 +188,29 @@
|
||||
if(B.cell)
|
||||
B.cell.charge = 0
|
||||
|
||||
/obj/machinery/recharger/update_appearance(updates)
|
||||
. = ..()
|
||||
if((stat & (NOPOWER|BROKEN)) || panel_open || !anchored)
|
||||
luminosity = 0
|
||||
return
|
||||
luminosity = 1
|
||||
|
||||
/obj/machinery/recharger/update_icon_state()
|
||||
/obj/machinery/recharger/update_overlays()
|
||||
. = ..()
|
||||
if(stat & (NOPOWER|BROKEN) || !anchored)
|
||||
icon_state = "rechargeroff"
|
||||
else if(panel_open)
|
||||
icon_state = "rechargeropen"
|
||||
else if(charging)
|
||||
if(using_power)
|
||||
icon_state = "recharger1"
|
||||
else
|
||||
icon_state = "recharger2"
|
||||
else
|
||||
icon_state = "recharger0"
|
||||
return
|
||||
if(panel_open)
|
||||
. += mutable_appearance(icon, "[base_icon_state]-open", alpha = src.alpha)
|
||||
return
|
||||
|
||||
if(!charging)
|
||||
. += mutable_appearance(icon, "[base_icon_state]-empty", alpha = src.alpha)
|
||||
. += emissive_appearance(icon, "[base_icon_state]-empty", alpha = src.alpha)
|
||||
return
|
||||
if(using_power)
|
||||
. += mutable_appearance(icon, "[base_icon_state]-charging", alpha = src.alpha)
|
||||
. += emissive_appearance(icon, "[base_icon_state]-charging", alpha = src.alpha)
|
||||
return
|
||||
|
||||
. += mutable_appearance(icon, "[base_icon_state]-full", alpha = src.alpha)
|
||||
. += emissive_appearance(icon, "[base_icon_state]-full", alpha = src.alpha)
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
var/load_audio = "sound/weapons/gun_magazine_insert_empty_1.ogg"
|
||||
var/ammo_type
|
||||
|
||||
/obj/item/mecha_ammo/proc/update_name()
|
||||
/obj/item/mecha_ammo/update_name()
|
||||
if(!rounds)
|
||||
name = "empty ammo box"
|
||||
desc = "An exosuit ammuniton box that has since been emptied. Please recycle."
|
||||
|
||||
@@ -357,22 +357,22 @@
|
||||
if(0.75 to INFINITY)
|
||||
occupant.clear_alert("charge")
|
||||
if(0.5 to 0.75)
|
||||
occupant.throw_alert("charge", /obj/screen/alert/lowcell, 1)
|
||||
occupant.throw_alert("charge", /atom/movable/screen/alert/lowcell, 1)
|
||||
if(0.25 to 0.5)
|
||||
occupant.throw_alert("charge", /obj/screen/alert/lowcell, 2)
|
||||
occupant.throw_alert("charge", /atom/movable/screen/alert/lowcell, 2)
|
||||
if(0.01 to 0.25)
|
||||
occupant.throw_alert("charge", /obj/screen/alert/lowcell, 3)
|
||||
occupant.throw_alert("charge", /atom/movable/screen/alert/lowcell, 3)
|
||||
else
|
||||
occupant.throw_alert("charge", /obj/screen/alert/emptycell)
|
||||
occupant.throw_alert("charge", /atom/movable/screen/alert/emptycell)
|
||||
|
||||
var/integrity = obj_integrity/max_integrity*100
|
||||
switch(integrity)
|
||||
if(30 to 45)
|
||||
occupant.throw_alert("mech damage", /obj/screen/alert/low_mech_integrity, 1)
|
||||
occupant.throw_alert("mech damage", /atom/movable/screen/alert/low_mech_integrity, 1)
|
||||
if(15 to 35)
|
||||
occupant.throw_alert("mech damage", /obj/screen/alert/low_mech_integrity, 2)
|
||||
occupant.throw_alert("mech damage", /atom/movable/screen/alert/low_mech_integrity, 2)
|
||||
if(-INFINITY to 15)
|
||||
occupant.throw_alert("mech damage", /obj/screen/alert/low_mech_integrity, 3)
|
||||
occupant.throw_alert("mech damage", /atom/movable/screen/alert/low_mech_integrity, 3)
|
||||
else
|
||||
occupant.clear_alert("mech damage")
|
||||
var/atom/checking = occupant.loc
|
||||
|
||||
@@ -73,7 +73,7 @@
|
||||
M.setDir(dir)
|
||||
buckled_mobs |= M
|
||||
M.update_mobility()
|
||||
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)
|
||||
|
||||
@@ -99,8 +99,8 @@
|
||||
. = ..()
|
||||
if(!. && ismob(loc) && loc == usr)
|
||||
var/mob/M = loc
|
||||
if(!M.incapacitated() && istype(over_object, /obj/screen/inventory/hand))
|
||||
var/obj/screen/inventory/hand/H = over_object
|
||||
if(!M.incapacitated() && istype(over_object, /atom/movable/screen/inventory/hand))
|
||||
var/atom/movable/screen/inventory/hand/H = over_object
|
||||
M.putItemFromInventoryInHandIfPossible(src, H.held_index)
|
||||
|
||||
/obj/item/defibrillator/attackby(obj/item/W, mob/user, params)
|
||||
@@ -283,7 +283,7 @@
|
||||
var/combat = FALSE //If it penetrates armor and gives additional functionality
|
||||
var/grab_ghost = FALSE
|
||||
var/tlimit = DEFIB_TIME_LIMIT * 10
|
||||
var/base_icon_state = "defibpaddles"
|
||||
base_icon_state = "defibpaddles"
|
||||
var/disarm_shock_time = 10
|
||||
var/wielded = FALSE // track wielded status on item
|
||||
|
||||
|
||||
@@ -184,7 +184,7 @@
|
||||
|
||||
/obj/item/multitool/ai_detect/proc/show_hud(mob/user)
|
||||
if(user && hud_type)
|
||||
var/obj/screen/plane_master/camera_static/PM = user.hud_used.plane_masters["[CAMERA_STATIC_PLANE]"]
|
||||
var/atom/movable/screen/plane_master/camera_static/PM = user.hud_used.plane_masters["[CAMERA_STATIC_PLANE]"]
|
||||
PM.alpha = 150
|
||||
var/datum/atom_hud/H = GLOB.huds[hud_type]
|
||||
if(!H.hudusers[user])
|
||||
@@ -194,7 +194,7 @@
|
||||
|
||||
/obj/item/multitool/ai_detect/proc/remove_hud(mob/user)
|
||||
if(user && hud_type)
|
||||
var/obj/screen/plane_master/camera_static/PM = user.hud_used.plane_masters["[CAMERA_STATIC_PLANE]"]
|
||||
var/atom/movable/screen/plane_master/camera_static/PM = user.hud_used.plane_masters["[CAMERA_STATIC_PLANE]"]
|
||||
PM.alpha = 255
|
||||
var/datum/atom_hud/H = GLOB.huds[hud_type]
|
||||
H.remove_hud_from(user)
|
||||
|
||||
@@ -130,8 +130,8 @@
|
||||
. = ..()
|
||||
if(ismob(loc))
|
||||
var/mob/M = loc
|
||||
if(!M.incapacitated() && istype(over_object, /obj/screen/inventory/hand))
|
||||
var/obj/screen/inventory/hand/H = over_object
|
||||
if(!M.incapacitated() && istype(over_object, /atom/movable/screen/inventory/hand))
|
||||
var/atom/movable/screen/inventory/hand/H = over_object
|
||||
M.putItemFromInventoryInHandIfPossible(src, H.held_index)
|
||||
|
||||
/obj/item/storage/portable_chem_mixer/ui_interact(mob/user, datum/tgui/ui)
|
||||
|
||||
@@ -426,18 +426,21 @@ GENETICS SCANNER
|
||||
if(ishuman(C))
|
||||
if(H.is_bleeding())
|
||||
msg += "<span class='danger'>Subject is bleeding!</span>\n"
|
||||
var/blood_percent = round((C.scan_blood_volume() / (BLOOD_VOLUME_NORMAL * C.blood_ratio))*100)
|
||||
var/blood_percent = round((C.scan_blood_volume() / (BLOOD_VOLUME_NORMAL * C.blood_ratio))*100)
|
||||
var/integrated_blood_percent = round((C.integrating_blood / (BLOOD_VOLUME_NORMAL * C.blood_ratio))*100)
|
||||
var/blood_type = C.dna.blood_type
|
||||
if(!(blood_typepath in GLOB.blood_reagent_types))
|
||||
var/datum/reagent/R = GLOB.chemical_reagents_list[blood_typepath]
|
||||
if(R)
|
||||
blood_type = R.name
|
||||
if(C.scan_blood_volume() <= (BLOOD_VOLUME_SAFE*C.blood_ratio) && C.scan_blood_volume() > (BLOOD_VOLUME_OKAY*C.blood_ratio))
|
||||
msg += "<span class='danger'>LOW blood level [blood_percent] %, [C.scan_blood_volume()] cl,</span> <span class='info'>type: [blood_type]</span>\n"
|
||||
else if(C.scan_blood_volume() <= (BLOOD_VOLUME_OKAY*C.blood_ratio))
|
||||
msg += "<span class='danger'>CRITICAL blood level [blood_percent] %, [C.scan_blood_volume()] cl,</span> <span class='info'>type: [blood_type]</span>\n"
|
||||
|
||||
if((C.scan_blood_volume() + C.integrating_blood) <= (BLOOD_VOLUME_SAFE * C.blood_ratio) && (C.scan_blood_volume() + C.integrating_blood) > (BLOOD_VOLUME_OKAY*C.blood_ratio))
|
||||
msg += "<span class='danger'>LOW blood level [blood_percent] %, [C.scan_blood_volume()] cl[C.integrating_blood? ", with [integrated_blood_percent] % of it integrating, [C.integrating_blood] cl " : ""].</span> <span class='info'>type: [blood_type]</span>\n"
|
||||
else if((C.scan_blood_volume() + C.integrating_blood) <= (BLOOD_VOLUME_OKAY * C.blood_ratio))
|
||||
msg += "<span class='danger'>CRITICAL blood level [blood_percent] %, [C.scan_blood_volume()] cl[C.integrating_blood? ", with [integrated_blood_percent] % of it integrating, [C.integrating_blood] cl " : ""].</span> <span class='info'>type: [blood_type]</span>\n"
|
||||
else
|
||||
msg += "<span class='info'>Blood level [blood_percent] %, [C.scan_blood_volume()] cl, type: [blood_type]</span>\n"
|
||||
msg += "<span class='info'>Blood level [blood_percent] %, [C.scan_blood_volume()] cl[C.integrating_blood? ", with [integrated_blood_percent] % of it integrating, [C.integrating_blood] cl " : ""]. type: [blood_type]</span>\n"
|
||||
|
||||
|
||||
var/cyberimp_detect
|
||||
for(var/obj/item/organ/cyberimp/CI in C.internal_organs)
|
||||
|
||||
@@ -14,7 +14,7 @@ GLOBAL_LIST_INIT(gift_item_blacklist, typecacheof(list(
|
||||
/obj/mafia_game_board,
|
||||
/obj/docking_port,
|
||||
/obj/shapeshift_holder,
|
||||
/obj/screen
|
||||
/atom/movable/screen
|
||||
)))
|
||||
|
||||
GLOBAL_LIST_EMPTY(possible_gifts)
|
||||
|
||||
@@ -446,7 +446,7 @@
|
||||
mood_message = null
|
||||
cheer_up()
|
||||
|
||||
/obj/item/toy/plush/proc/update_desc()
|
||||
/obj/item/toy/plush/update_desc()
|
||||
desc = normal_desc
|
||||
if(mood_message)
|
||||
desc += mood_message
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user