diff --git a/aurorastation.dme b/aurorastation.dme
index 16e9bde7339..191dcdea47c 100644
--- a/aurorastation.dme
+++ b/aurorastation.dme
@@ -2385,9 +2385,6 @@
#include "code\modules\integrated_electronics\~defines\~defines.dm"
#include "code\modules\item_worth\_helpers.dm"
#include "code\modules\item_worth\item_worth.dm"
-#include "code\modules\item_worth\material_weapons.dm"
-#include "code\modules\item_worth\materials.dm"
-#include "code\modules\item_worth\reagents.dm"
#include "code\modules\item_worth\worths_list.dm"
#include "code\modules\item_worth\Value_procs\atoms.dm"
#include "code\modules\item_worth\Value_procs\mob.dm"
diff --git a/code/__DEFINES/text.dm b/code/__DEFINES/text.dm
index 0edb451282f..088bcbffe68 100644
--- a/code/__DEFINES/text.dm
+++ b/code/__DEFINES/text.dm
@@ -62,3 +62,7 @@ var/regex/filename_forbidden_chars = regex(@{""|[\\\n\t/?%*:|<>]|\.\."}, "g")
/// Removes everything enclose in < and > inclusive of the bracket, and limits the length of the message.
#define STRIP_HTML_FULL(text, limit) (html_tags.Replace(copytext(text, 1, limit), ""))
+
+/// BYOND's string procs don't support being used on datum references (as in it doesn't look for a name for stringification)
+/// We just use this macro to ensure that we will only pass strings to this BYOND-level function without developers needing to really worry about it.
+#define LOWER_TEXT(thing) lowertext(UNLINT("[thing]"))
diff --git a/code/__HELPERS/game.dm b/code/__HELPERS/game.dm
index cce6b4fc41e..144f3221b9c 100644
--- a/code/__HELPERS/game.dm
+++ b/code/__HELPERS/game.dm
@@ -105,7 +105,7 @@
// Same as above but for alien candidates.
/proc/ScreenText(obj/O, maptext="", screen_loc="CENTER-7,CENTER-7", maptext_height=480, maptext_width=480)
- if(!isobj(O)) O = new /obj/screen/text()
+ if(!isobj(O)) O = new /atom/movable/screen/text()
O.maptext = maptext
O.maptext_height = maptext_height
O.maptext_width = maptext_width
diff --git a/code/__HELPERS/logging/talk.dm b/code/__HELPERS/logging/talk.dm
index cfa7ed224f4..c4b72dcf95c 100644
--- a/code/__HELPERS/logging/talk.dm
+++ b/code/__HELPERS/logging/talk.dm
@@ -7,7 +7,7 @@
* Arguments:
* * message - The message being logged
* * message_type - the type of log the message is(ATTACK, SAY, etc)
- * * tag - tag that indicates the type of text(announcement, telepathy, etc)
+ * * tag - tag that indicates the type of text (announcement, telepathy, etc)
* * log_globally - boolean checking whether or not we write this log to the log file
* * forced_by - source that forced the dialogue if any
*/
diff --git a/code/__HELPERS/mobs.dm b/code/__HELPERS/mobs.dm
index a54e7b539d0..756e8e93b5c 100644
--- a/code/__HELPERS/mobs.dm
+++ b/code/__HELPERS/mobs.dm
@@ -182,9 +182,9 @@ Proc for attack log creation, because really why not
/proc/add_logs(mob/user, mob/target, what_done, var/admin=1, var/object=null, var/addition=null)
if(user && ismob(user))
- user.attack_log += text("\[[time_stamp()]\] Has [what_done] [target ? "[target.name][(ismob(target) && target.ckey) ? "([target.ckey])" : ""]" : "NON-EXISTANT SUBJECT"][object ? " with [object]" : " "][addition]")
+ user.attack_log += "\[[time_stamp()]\] Has [what_done] [target ? "[target.name][(ismob(target) && target.ckey) ? "([target.ckey])" : ""]" : "NON-EXISTANT SUBJECT"][object ? " with [object]" : " "][addition]"
if(target && ismob(target))
- target.attack_log += text("\[[time_stamp()]\] Has been [what_done] by [user ? "[user.name][(ismob(user) && user.ckey) ? "([user.ckey])" : ""]" : "NON-EXISTANT SUBJECT"][object ? " with [object]" : " "][addition]")
+ target.attack_log += "\[[time_stamp()]\] Has been [what_done] by [user ? "[user.name][(ismob(user) && user.ckey) ? "([user.ckey])" : ""]" : "NON-EXISTANT SUBJECT"][object ? " with [object]" : " "][addition]"
if(admin)
log_attack(SPAN_WARNING("[user ? "[user.name][(ismob(user) && user.ckey) ? "([user.ckey])" : ""]" : "NON-EXISTANT SUBJECT"] [what_done] [target ? "[target.name][(ismob(target) && target.ckey)? "([target.ckey])" : ""]" : "NON-EXISTANT SUBJECT"][object ? " with [object]" : " "][addition]"))
diff --git a/code/__HELPERS/text.dm b/code/__HELPERS/text.dm
index bbcb1ae92f2..ced9e2890f6 100644
--- a/code/__HELPERS/text.dm
+++ b/code/__HELPERS/text.dm
@@ -725,49 +725,52 @@
var/leng = length(string)
- var/next_space = findtext_char(string, " ", next_backslash + 1)
+ var/next_space = findtext(string, " ", next_backslash + length(string[next_backslash]))
if(!next_space)
next_space = leng - next_backslash
- if(!next_space) //trailing bs
+ if(!next_space) //trailing bs
return string
var/base = next_backslash == 1 ? "" : copytext(string, 1, next_backslash)
- var/macro = lowertext(copytext(string, next_backslash + 1, next_space))
- var/rest = next_backslash > leng ? "" : copytext(string, next_space + 1)
+ var/macro = LOWER_TEXT(copytext(string, next_backslash + length(string[next_backslash]), next_space))
+ var/rest = next_backslash > leng ? "" : copytext(string, next_space + length(string[next_space]))
- //See http://www.byond.com/docs/ref/info.html#/DM/text/macros
+ //See https://secure.byond.com/docs/ref/info.html#/DM/text/macros
switch(macro)
//prefixes/agnostic
if("the")
- rest = text("\the []", rest)
+ rest = "\the [rest]"
if("a")
- rest = text("\a []", rest)
+ rest = "\a [rest]"
if("an")
- rest = text("\an []", rest)
+ rest = "\an [rest]"
if("proper")
- rest = text("\proper []", rest)
+ rest = "\proper [rest]"
if("improper")
- rest = text("\improper []", rest)
+ rest = "\improper [rest]"
if("roman")
- rest = text("\roman []", rest)
+ rest = "\roman [rest]"
//postfixes
if("th")
- base = text("[]\th", rest)
+ base = "[rest]\th"
if("s")
- base = text("[]\s", rest)
+ base = "[rest]\s"
if("he")
- base = text("[]\he", rest)
+ base = "[rest]\he"
if("she")
- base = text("[]\she", rest)
+ base = "[rest]\she"
if("his")
- base = text("[]\his", rest)
+ base = "[rest]\his"
if("himself")
- base = text("[]\himself", rest)
+ base = "[rest]\himself"
if("herself")
- base = text("[]\herself", rest)
+ base = "[rest]\herself"
if("hers")
- base = text("[]\hers", rest)
+ base = "[rest]\hers"
+ else // Someone fucked up, if you're not a macro just go home yeah?
+ // This does technically break parsing, but at least it's better then what it used to do
+ return base
. = base
if(rest)
diff --git a/code/__HELPERS/unsorted.dm b/code/__HELPERS/unsorted.dm
index 2a6b21c0c8d..6e4638632fa 100644
--- a/code/__HELPERS/unsorted.dm
+++ b/code/__HELPERS/unsorted.dm
@@ -23,12 +23,12 @@
textg = num2hex(255 - g, 0)
textb = num2hex(255 - b, 0)
if (length(textr) < 2)
- textr = text("0[]", textr)
+ textr = "0[textr]"
if (length(textg) < 2)
- textr = text("0[]", textg)
+ textr = "0[textg]"
if (length(textb) < 2)
- textr = text("0[]", textb)
- return text("#[][][]", textr, textg, textb)
+ textr = "0[textb]"
+ return "#[textr][textg][textb]"
//Returns the middle-most value
/proc/dd_range(var/low, var/high, var/num)
@@ -1116,7 +1116,7 @@ var/global/known_proc = /proc/get_type_ref_bytes
if(ispath(V))
return details && path_names ? "path([V])" : "path"
if(istext(V))
- return details && text_lengths ? "text([length(V) ])" : "text"
+ return details && text_lengths ? "text ([length(V) ])" : "text"
if(isnum(V)) // Byond doesn't really differentiate between floats and ints, but we can sort of guess here
// also technically we could also say that 0 and 1 are boolean but that'd be quite silly
if(IsInteger(V) && V < 16777216 && V > -16777216)
diff --git a/code/_onclick/click.dm b/code/_onclick/click.dm
index 5eb8be64a77..82abbd77408 100644
--- a/code/_onclick/click.dm
+++ b/code/_onclick/click.dm
@@ -383,14 +383,14 @@
var/global/list/click_catchers
-/obj/screen/click_catcher
+/atom/movable/screen/click_catcher
icon = 'icons/mob/screen_gen.dmi'
icon_state = "click_catcher"
plane = CLICKCATCHER_PLANE
mouse_opacity = MOUSE_OPACITY_OPAQUE
screen_loc = "CENTER-7,CENTER-7"
-/obj/screen/click_catcher/Destroy()
+/atom/movable/screen/click_catcher/Destroy()
SHOULD_CALL_PARENT(FALSE)
return QDEL_HINT_LETMELIVE
@@ -398,11 +398,11 @@ var/global/list/click_catchers
. = list()
for(var/i = 0, i<15, i++)
for(var/j = 0, j<15, j++)
- var/obj/screen/click_catcher/CC = new()
+ var/atom/movable/screen/click_catcher/CC = new()
CC.screen_loc = "NORTH-[i],EAST-[j]"
. += CC
-/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"] && istype(usr, /mob/living/carbon))
var/mob/living/carbon/C = usr
diff --git a/code/_onclick/hud/ability_screen_objects.dm b/code/_onclick/hud/ability_screen_objects.dm
index 9f458f0b8c2..e55deb79ff0 100644
--- a/code/_onclick/hud/ability_screen_objects.dm
+++ b/code/_onclick/hud/ability_screen_objects.dm
@@ -1,8 +1,8 @@
-/obj/screen/movable/ability_master
+/atom/movable/screen/movable/ability_master
name = "Abilities"
icon = 'icons/mob/screen_spells.dmi'
icon_state = "grey_spell_ready"
- var/list/obj/screen/ability/ability_objects = list()
+ var/list/atom/movable/screen/ability/ability_objects = list()
var/showing = FALSE // If we're 'open' or not.
var/open_state = "master_open" // What the button looks like when it's 'open', showing the other buttons.
@@ -12,13 +12,13 @@
var/mob/my_mob // The mob that possesses this hud object.
-/obj/screen/movable/ability_master/Initialize(mapload, owner)
+/atom/movable/screen/movable/ability_master/Initialize(mapload, owner)
. = ..()
if(owner)
my_mob = owner
update_abilities(0, owner)
-/obj/screen/movable/ability_master/Destroy()
+/atom/movable/screen/movable/ability_master/Destroy()
//Get rid of the ability objects.
remove_all_abilities()
ability_objects.Cut()
@@ -32,21 +32,21 @@
. = ..()
-/obj/screen/movable/ability_master/MouseDrop()
+/atom/movable/screen/movable/ability_master/MouseDrop()
if(showing)
return
return ..()
-/obj/screen/movable/ability_master/Click()
+/atom/movable/screen/movable/ability_master/Click()
if(!ability_objects.len) // If we're empty for some reason.
return
toggle_open()
-/obj/screen/movable/ability_master/proc/toggle_open(var/forced_state = 0, var/mob/user = usr)
+/atom/movable/screen/movable/ability_master/proc/toggle_open(var/forced_state = 0, var/mob/user = usr)
if(showing && (forced_state != 2)) // We are closing the ability master, hide the abilities.
- for(var/obj/screen/ability/O in ability_objects)
+ for(var/atom/movable/screen/ability/O in ability_objects)
if(my_mob && my_mob.client)
my_mob.client.screen -= O
showing = FALSE
@@ -60,7 +60,7 @@
overlays.Add(open_state)
update_icon()
-/obj/screen/movable/ability_master/proc/open_ability_master(var/mob/user = usr)
+/atom/movable/screen/movable/ability_master/proc/open_ability_master(var/mob/user = usr)
var/list/screen_loc_xy = splittext(screen_loc,",")
//Create list of X offsets
@@ -74,36 +74,36 @@
var/y_pix = screen_loc_Y[2]
for(var/i = 1; i <= ability_objects.len; i++)
- var/obj/screen/ability/A = ability_objects[i]
+ var/atom/movable/screen/ability/A = ability_objects[i]
var/xpos = x_position + (x_position < 8 ? 1 : -1)*(i%7)
var/ypos = y_position + (y_position < 8 ? round(i/7) : -round(i/7))
A.screen_loc = "[encode_screen_X(xpos, user)]:[x_pix],[encode_screen_Y(ypos, user)]:[y_pix]"
if(my_mob && my_mob.client)
my_mob.client.screen += A
-/obj/screen/movable/ability_master/proc/update_abilities(forced = 0, mob/user)
+/atom/movable/screen/movable/ability_master/proc/update_abilities(forced = 0, mob/user)
update_icon()
if(user && user.client)
if(!(src in user.client.screen))
user.client.screen += src
var/i = 1
- for(var/obj/screen/ability/ability in ability_objects)
+ for(var/atom/movable/screen/ability/ability in ability_objects)
ability.update_icon(forced)
ability.index = i
ability.maptext = "[ability.index]" // Slot number
i++
-/obj/screen/movable/ability_master/update_icon()
+/atom/movable/screen/movable/ability_master/update_icon()
if(ability_objects.len)
set_invisibility(0)
else
set_invisibility(101)
-/obj/screen/movable/ability_master/proc/add_ability(var/name_given)
+/atom/movable/screen/movable/ability_master/proc/add_ability(var/name_given)
if(!name)
return
- var/obj/screen/ability/new_button = new /obj/screen/ability
+ var/atom/movable/screen/ability/new_button = new /atom/movable/screen/ability
new_button.ability_master = src
new_button.name = name_given
new_button.ability_icon_state = name_given
@@ -112,7 +112,7 @@
if(my_mob.client)
toggle_open(2) //forces the icons to refresh on screen
-/obj/screen/movable/ability_master/proc/remove_ability(var/obj/screen/ability/ability)
+/atom/movable/screen/movable/ability_master/proc/remove_ability(var/atom/movable/screen/ability/ability)
if(!ability)
return
ability_objects.Remove(ability)
@@ -123,28 +123,28 @@
toggle_open(showing + 1)
update_icon()
-/obj/screen/movable/ability_master/proc/remove_all_abilities()
- for(var/obj/screen/ability/A in ability_objects)
+/atom/movable/screen/movable/ability_master/proc/remove_all_abilities()
+ for(var/atom/movable/screen/ability/A in ability_objects)
remove_ability(A)
-/obj/screen/movable/ability_master/proc/remove_all_psionic_abilities()
- for(var/obj/screen/ability/obj_based/psionic/A in ability_objects)
+/atom/movable/screen/movable/ability_master/proc/remove_all_psionic_abilities()
+ for(var/atom/movable/screen/ability/obj_based/psionic/A in ability_objects)
remove_ability(A)
-/obj/screen/movable/ability_master/proc/get_ability_by_name(name_to_search)
- for(var/obj/screen/ability/A in ability_objects)
+/atom/movable/screen/movable/ability_master/proc/get_ability_by_name(name_to_search)
+ for(var/atom/movable/screen/ability/A in ability_objects)
if(A.name == name_to_search)
return A
return
-/obj/screen/movable/ability_master/proc/get_ability_by_proc_ref(proc_ref)
- for(var/obj/screen/ability/verb_based/V in ability_objects)
+/atom/movable/screen/movable/ability_master/proc/get_ability_by_proc_ref(proc_ref)
+ for(var/atom/movable/screen/ability/verb_based/V in ability_objects)
if(V.verb_to_call == proc_ref)
return V
return
-/obj/screen/movable/ability_master/proc/get_ability_by_instance(var/obj/instance/)
- for(var/obj/screen/ability/obj_based/O in ability_objects)
+/atom/movable/screen/movable/ability_master/proc/get_ability_by_instance(var/obj/instance/)
+ for(var/atom/movable/screen/ability/obj_based/O in ability_objects)
if(O.object == instance)
return O
return
@@ -152,7 +152,7 @@
///////////ACTUAL ABILITIES////////////
//This is what you click to do things//
///////////////////////////////////////
-/obj/screen/ability
+/atom/movable/screen/ability
icon = 'icons/mob/screen_spells.dmi'
icon_state = "grey_spell_base"
maptext_x = 3
@@ -160,9 +160,9 @@
var/ability_icon_state = null
var/index = 0
- var/obj/screen/movable/ability_master/ability_master
+ var/atom/movable/screen/movable/ability_master/ability_master
-/obj/screen/ability/Destroy()
+/atom/movable/screen/ability/Destroy()
if(ability_master)
ability_master.ability_objects -= src
if(ability_master.my_mob && ability_master.my_mob.client)
@@ -172,13 +172,13 @@
ability_master = null
. = ..()
-/obj/screen/ability/update_icon()
+/atom/movable/screen/ability/update_icon()
overlays.Cut()
icon_state = "[background_base_state]_spell_base"
overlays += ability_icon_state
-/obj/screen/ability/Click(var/location, var/control, var/params)
+/atom/movable/screen/ability/Click(var/location, var/control, var/params)
if(!usr)
return
@@ -189,22 +189,22 @@
activate()
-/obj/screen/ability/MouseDrop(var/atom/A)
+/atom/movable/screen/ability/MouseDrop(var/atom/A)
if(!A || A == src)
return
- if(istype(A, /obj/screen/ability))
- var/obj/screen/ability/ability = A
+ if(istype(A, /atom/movable/screen/ability))
+ var/atom/movable/screen/ability/ability = A
if(ability.ability_master && ability.ability_master == src.ability_master)
ability_master.ability_objects.Swap(src.index, ability.index)
ability_master.toggle_open(2) // To update the UI.
// Makes the ability be triggered. The subclasses of this are responsible for carrying it out in whatever way it needs to.
-/obj/screen/ability/proc/activate()
+/atom/movable/screen/ability/proc/activate()
LOG_DEBUG("[src] had activate() called.")
// This checks if the ability can be used.
-/obj/screen/ability/proc/can_activate()
+/atom/movable/screen/ability/proc/can_activate()
return TRUE
/client/verb/activate_ability(var/slot as num)
@@ -218,30 +218,30 @@
return // No abilities.
if(slot > mob.ability_master.ability_objects.len || slot <= 0)
return // Out of bounds.
- var/obj/screen/ability/A = mob.ability_master.ability_objects[slot]
+ var/atom/movable/screen/ability/A = mob.ability_master.ability_objects[slot]
A.activate()
//////////Verb Abilities//////////
//Buttons to trigger verbs/procs//
//////////////////////////////////
-/obj/screen/ability/verb_based
+/atom/movable/screen/ability/verb_based
var/verb_to_call = null
var/object_used = null
var/arguments_to_use = list()
-/obj/screen/ability/verb_based/activate()
+/atom/movable/screen/ability/verb_based/activate()
if(object_used && verb_to_call)
call(object_used,verb_to_call)(arguments_to_use)
-/obj/screen/movable/ability_master/proc/add_verb_ability(var/object_given, var/verb_given, var/name_given, var/ability_icon_given, var/arguments)
+/atom/movable/screen/movable/ability_master/proc/add_verb_ability(var/object_given, var/verb_given, var/name_given, var/ability_icon_given, var/arguments)
if(!object_given)
message_admins("ERROR: add_verb_ability() was not given an object in its arguments.")
if(!verb_given)
message_admins("ERROR: add_verb_ability() was not given a verb/proc in its arguments.")
if(get_ability_by_proc_ref(verb_given))
return // Duplicate
- var/obj/screen/ability/verb_based/A = new /obj/screen/ability/verb_based()
+ var/atom/movable/screen/ability/verb_based/A = new /atom/movable/screen/ability/verb_based()
A.ability_master = src
A.object_used = object_given
A.verb_to_call = verb_given
@@ -254,18 +254,18 @@
toggle_open(2) //forces the icons to refresh on screen
//Changeling Abilities
-/obj/screen/ability/verb_based/changeling
+/atom/movable/screen/ability/verb_based/changeling
icon_state = "ling_spell_base"
background_base_state = "ling"
-/obj/screen/movable/ability_master/proc/add_ling_ability(var/object_given, var/verb_given, var/name_given, var/ability_icon_given, var/arguments)
+/atom/movable/screen/movable/ability_master/proc/add_ling_ability(var/object_given, var/verb_given, var/name_given, var/ability_icon_given, var/arguments)
if(!object_given)
message_admins("ERROR: add_ling_ability() was not given an object in its arguments.")
if(!verb_given)
message_admins("ERROR: add_ling_ability() was not given a verb/proc in its arguments.")
if(get_ability_by_proc_ref(verb_given))
return // Duplicate
- var/obj/screen/ability/verb_based/changeling/A = new /obj/screen/ability/verb_based/changeling()
+ var/atom/movable/screen/ability/verb_based/changeling/A = new /atom/movable/screen/ability/verb_based/changeling()
A.ability_master = src
A.object_used = object_given
A.verb_to_call = verb_given
@@ -282,31 +282,31 @@
//Buttons to trigger objects//
//////////////////////////////
-/obj/screen/ability/obj_based
+/atom/movable/screen/ability/obj_based
var/obj/object
-/obj/screen/ability/obj_based/activate()
+/atom/movable/screen/ability/obj_based/activate()
if(object)
object.Click()
/// Psionics.
-/obj/screen/ability/obj_based/psionic
+/atom/movable/screen/ability/obj_based/psionic
icon_state = "nano_spell_base"
background_base_state = "nano"
var/singleton/psionic_power/connected_power
-/obj/screen/ability/obj_based/psionic/Destroy()
+/atom/movable/screen/ability/obj_based/psionic/Destroy()
connected_power = null
return ..()
-/obj/screen/movable/ability_master/proc/add_psionic_ability(var/obj/object_given, var/ability_icon_given, var/singleton/psionic_power/P, var/mob/user)
+/atom/movable/screen/movable/ability_master/proc/add_psionic_ability(var/obj/object_given, var/ability_icon_given, var/singleton/psionic_power/P, var/mob/user)
if(!object_given)
message_admins("ERROR: add_psionic_ability() was not given an object in its arguments.")
if(!P)
message_admins("Psionic ability added without connected psionic power singleton!")
if(get_ability_by_instance(object_given))
return // Duplicate
- var/obj/screen/ability/obj_based/psionic/A = new /obj/screen/ability/obj_based/psionic()
+ var/atom/movable/screen/ability/obj_based/psionic/A = new /atom/movable/screen/ability/obj_based/psionic()
A.ability_master = src
A.object = object_given
A.ability_icon_state = ability_icon_given
@@ -316,27 +316,27 @@
if(my_mob.client)
toggle_open(2, user) //forces the icons to refresh on screen
-/obj/screen/ability/obj_based/psionic/get_examine_text(mob/user)
+/atom/movable/screen/ability/obj_based/psionic/get_examine_text(mob/user)
. = ..()
. += SPAN_NOTICE("This ability is [connected_power.name].")
. += SPAN_NOTICE("[connected_power.desc]")
/// Technomancer.
-/obj/screen/ability/obj_based/technomancer
+/atom/movable/screen/ability/obj_based/technomancer
icon_state = "wiz_spell_base"
background_base_state = "wiz"
-/obj/screen/ability/obj_based/technomancer/activate()
+/atom/movable/screen/ability/obj_based/technomancer/activate()
if(ability_master.my_mob.incapacitated())
return
. = ..()
-/obj/screen/movable/ability_master/proc/add_technomancer_ability(var/obj/object_given, var/ability_icon_given)
+/atom/movable/screen/movable/ability_master/proc/add_technomancer_ability(var/obj/object_given, var/ability_icon_given)
if(!object_given)
message_admins("ERROR: add_technomancer_ability() was not given an object in its arguments.")
if(get_ability_by_instance(object_given))
return // Duplicate
- var/obj/screen/ability/obj_based/technomancer/A = new /obj/screen/ability/obj_based/technomancer()
+ var/atom/movable/screen/ability/obj_based/technomancer/A = new /atom/movable/screen/ability/obj_based/technomancer()
A.ability_master = src
A.object = object_given
A.ability_icon_state = ability_icon_given
diff --git a/code/_onclick/hud/action.dm b/code/_onclick/hud/action.dm
index 4cf276fcd09..8307aba1532 100644
--- a/code/_onclick/hud/action.dm
+++ b/code/_onclick/hud/action.dm
@@ -25,7 +25,7 @@
var/check_flags = 0
var/processing = 0
var/active = 0
- var/obj/screen/movable/action_button/button = null
+ var/atom/movable/screen/movable/action_button/button = null
var/button_icon = 'icons/obj/action_buttons/actions.dmi'
var/button_icon_state = "default"
var/button_icon_color
@@ -130,15 +130,15 @@
/datum/action/proc/UpdateName()
return name
-/obj/screen/movable/action_button
+/atom/movable/screen/movable/action_button
var/datum/action/owner
screen_loc = "WEST,NORTH"
-/obj/screen/movable/action_button/Destroy(force)
+/atom/movable/screen/movable/action_button/Destroy(force)
owner = null
. = ..()
-/obj/screen/movable/action_button/Click(location,control,params)
+/atom/movable/screen/movable/action_button/Click(location,control,params)
var/list/modifiers = params2list(params)
if(modifiers["shift"])
moved = 0
@@ -148,7 +148,7 @@
owner.Trigger()
return 1
-/obj/screen/movable/action_button/update_icon()
+/atom/movable/screen/movable/action_button/update_icon()
if(!owner)
return
icon = owner.button_icon
@@ -173,13 +173,13 @@
color = rgb(255,255,255,255)
//Hide/Show Action Buttons ... Button
-/obj/screen/movable/action_button/hide_toggle
+/atom/movable/screen/movable/action_button/hide_toggle
name = "Hide Buttons"
icon = 'icons/obj/action_buttons/actions.dmi'
icon_state = "bg_default"
var/hidden = 0
-/obj/screen/movable/action_button/hide_toggle/Click()
+/atom/movable/screen/movable/action_button/hide_toggle/Click()
usr.hud_used.action_buttons_hidden = !usr.hud_used.action_buttons_hidden
hidden = usr.hud_used.action_buttons_hidden
@@ -191,7 +191,7 @@
usr.update_action_buttons()
-/obj/screen/movable/action_button/hide_toggle/proc/InitialiseIcon(var/mob/living/user)
+/atom/movable/screen/movable/action_button/hide_toggle/proc/InitialiseIcon(var/mob/living/user)
if(isalien(user))
icon_state = "bg_alien"
else
@@ -199,7 +199,7 @@
update_icon()
return
-/obj/screen/movable/action_button/hide_toggle/update_icon()
+/atom/movable/screen/movable/action_button/hide_toggle/update_icon()
ClearOverlays()
AddOverlays(hidden ? "show" : "hide")
@@ -220,7 +220,7 @@
var/coord_row_offset = AB_NORTH_OFFSET
return "WEST[coord_col]:[coord_col_offset],NORTH[coord_row]:[coord_row_offset]"
-/datum/hud/proc/SetButtonCoords(var/obj/screen/button,var/number)
+/datum/hud/proc/SetButtonCoords(var/atom/movable/screen/button,var/number)
var/row = round((number-1)/AB_MAX_COLUMNS)
var/col = ((number - 1)%(AB_MAX_COLUMNS)) + 1
var/x_offset = 32*(col-1) + AB_WEST_OFFSET + 2*col
diff --git a/code/_onclick/hud/ai.dm b/code/_onclick/hud/ai.dm
index 013f70c38cb..6065f249872 100644
--- a/code/_onclick/hud/ai.dm
+++ b/code/_onclick/hud/ai.dm
@@ -6,20 +6,20 @@
myai.computer.layer = HUD_BASE_LAYER
adding = list(
- new /obj/screen/ai/core,
- new /obj/screen/ai/camera_list,
- new /obj/screen/ai/camera_track,
- new /obj/screen/ai/camera_light,
- new /obj/screen/ai/crew_manifest,
- new /obj/screen/ai/announcement,
- new /obj/screen/ai/call_shuttle,
- new /obj/screen/ai/state_laws,
- new /obj/screen/ai/take_image,
- new /obj/screen/ai/view_image,
- new /obj/screen/ai/sensor_aug,
- new /obj/screen/ai/remote_mech,
- new /obj/screen/ai/move_up,
- new /obj/screen/ai/move_down,
+ new /atom/movable/screen/ai/core,
+ new /atom/movable/screen/ai/camera_list,
+ new /atom/movable/screen/ai/camera_track,
+ new /atom/movable/screen/ai/camera_light,
+ new /atom/movable/screen/ai/crew_manifest,
+ new /atom/movable/screen/ai/announcement,
+ new /atom/movable/screen/ai/call_shuttle,
+ new /atom/movable/screen/ai/state_laws,
+ new /atom/movable/screen/ai/take_image,
+ new /atom/movable/screen/ai/view_image,
+ new /atom/movable/screen/ai/sensor_aug,
+ new /atom/movable/screen/ai/remote_mech,
+ new /atom/movable/screen/ai/move_up,
+ new /atom/movable/screen/ai/move_down,
myai.computer
)
diff --git a/code/_onclick/hud/borer_hud.dm b/code/_onclick/hud/borer_hud.dm
index 3ed2796680c..3a7b76f5563 100644
--- a/code/_onclick/hud/borer_hud.dm
+++ b/code/_onclick/hud/borer_hud.dm
@@ -4,7 +4,7 @@
/datum/hud/proc/borer_hud()
src.adding = list()
- var/obj/screen/borer/chemicals/C = new /obj/screen/borer/chemicals()
+ var/atom/movable/screen/borer/chemicals/C = new /atom/movable/screen/borer/chemicals()
adding += C
var/mob/living/simple_animal/borer/B = mymob
diff --git a/code/_onclick/hud/captive_brain_hud.dm b/code/_onclick/hud/captive_brain_hud.dm
index c8abae4ebc8..c2052872255 100644
--- a/code/_onclick/hud/captive_brain_hud.dm
+++ b/code/_onclick/hud/captive_brain_hud.dm
@@ -4,7 +4,7 @@
/datum/hud/proc/captive_brain_hud()
src.adding = list()
- var/obj/screen/resist = new /obj/screen()
+ var/atom/movable/screen/resist = new /atom/movable/screen()
resist.name = "resist"
resist.icon = 'icons/mob/screen/captive_brain.dmi'
resist.icon_state = "resist"
diff --git a/code/_onclick/hud/fullscreen.dm b/code/_onclick/hud/fullscreen.dm
index cef60f055c6..e55d6cb73cb 100644
--- a/code/_onclick/hud/fullscreen.dm
+++ b/code/_onclick/hud/fullscreen.dm
@@ -2,7 +2,7 @@
condition ? overlay_fullscreen(screen_name, screen_type, arg) : clear_fullscreen(screen_name)
/mob/proc/overlay_fullscreen(category, type, severity, animated = 0)
- var/obj/screen/fullscreen/screen = screens[category]
+ var/atom/movable/screen/fullscreen/screen = screens[category]
if(screen)
if(screen.type != type)
@@ -27,7 +27,7 @@
return screen
/mob/proc/clear_fullscreen(category, animated = 10)
- var/obj/screen/fullscreen/screen = screens[category]
+ var/atom/movable/screen/fullscreen/screen = screens[category]
if(!screen)
return
@@ -41,7 +41,7 @@
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)
@@ -60,7 +60,7 @@
for(var/category in screens)
client.screen |= screens[category]
-/obj/screen/fullscreen
+/atom/movable/screen/fullscreen
icon = 'icons/mob/screen/full.dmi'
icon_state = "default"
screen_loc = "CENTER-7,CENTER-7"
@@ -70,87 +70,87 @@
var/severity = 0
var/allstate = 0 //shows if it should show up for dead people too
-/obj/screen/fullscreen/Destroy()
+/atom/movable/screen/fullscreen/Destroy()
severity = 0
return ..()
-/obj/screen/fullscreen/brute
+/atom/movable/screen/fullscreen/brute
icon_state = "brutedamageoverlay"
layer = DAMAGE_LAYER
-/obj/screen/fullscreen/oxy
+/atom/movable/screen/fullscreen/oxy
icon_state = "oxydamageoverlay"
layer = DAMAGE_LAYER
-/obj/screen/fullscreen/crit
+/atom/movable/screen/fullscreen/crit
icon_state = "passage"
layer = CRIT_LAYER
-/obj/screen/fullscreen/strong_pain
+/atom/movable/screen/fullscreen/strong_pain
icon_state = "strong_pain"
layer = CRIT_LAYER
-/obj/screen/fullscreen/blind
+/atom/movable/screen/fullscreen/blind
icon_state = "blackimageoverlay"
layer = BLIND_LAYER
-/obj/screen/fullscreen/blackout
+/atom/movable/screen/fullscreen/blackout
icon_state = "blackout"
layer = BLIND_LAYER
-/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/effects.dmi'
screen_loc = "WEST,SOUTH to EAST,NORTH"
icon_state = "blurry"
alpha = 100
-/obj/screen/fullscreen/pain
+/atom/movable/screen/fullscreen/pain
icon_state = "brutedamageoverlay6"
alpha = 0
-/obj/screen/fullscreen/flash
+/atom/movable/screen/fullscreen/flash
icon = 'icons/mob/screen/effects.dmi'
screen_loc = "WEST,SOUTH to EAST,NORTH"
icon_state = "flash"
-/obj/screen/fullscreen/flash/noise
+/atom/movable/screen/fullscreen/flash/noise
icon_state = "noise"
alpha = 127
-/obj/screen/fullscreen/noise
+/atom/movable/screen/fullscreen/noise
icon = 'icons/effects/static.dmi'
icon_state = "1 light"
screen_loc = ui_entire_screen
alpha = 127
-/obj/screen/fullscreen/fadeout
+/atom/movable/screen/fullscreen/fadeout
icon = 'icons/mob/screen/effects.dmi'
icon_state = "black"
screen_loc = ui_entire_screen
alpha = 0
allstate = 1
-/obj/screen/fullscreen/fadeout/Initialize()
+/atom/movable/screen/fullscreen/fadeout/Initialize()
. = ..()
animate(src, alpha = 255, time = 10)
-/obj/screen/fullscreen/scanline
+/atom/movable/screen/fullscreen/scanline
icon = 'icons/effects/static.dmi'
icon_state = "scanlines"
screen_loc = ui_entire_screen
alpha = 50
-/obj/screen/fullscreen/frenzy
+/atom/movable/screen/fullscreen/frenzy
icon_state = "frenzyoverlay"
layer = BLIND_LAYER
-/obj/screen/fullscreen/teleport
+/atom/movable/screen/fullscreen/teleport
icon_state = "teleport"
-/obj/screen/fullscreen/blueprints
+/atom/movable/screen/fullscreen/blueprints
icon = 'icons/effects/blueprints.dmi'
icon_state = "base"
screen_loc = ui_entire_screen
diff --git a/code/_onclick/hud/gun_mode.dm b/code/_onclick/hud/gun_mode.dm
index 5e3f1363975..ef2b8bd110a 100644
--- a/code/_onclick/hud/gun_mode.dm
+++ b/code/_onclick/hud/gun_mode.dm
@@ -1,20 +1,20 @@
-/obj/screen/gun
+/atom/movable/screen/gun
name = "gun"
icon = 'icons/mob/screen/generic.dmi'
master = null
dir = 2
-/obj/screen/gun/Click(location, control, params)
+/atom/movable/screen/gun/Click(location, control, params)
if(!usr)
return
return 1
-/obj/screen/gun/move
+/atom/movable/screen/gun/move
name = "Allow Movement"
icon_state = "no_walk1"
screen_loc = ui_gun2
-/obj/screen/gun/move/Click(location, control, params)
+/atom/movable/screen/gun/move/Click(location, control, params)
if(..())
var/mob/living/user = usr
if(istype(user))
@@ -23,12 +23,12 @@
return 1
return 0
-/obj/screen/gun/item
+/atom/movable/screen/gun/item
name = "Allow Item Use"
icon_state = "no_item1"
screen_loc = ui_gun1
-/obj/screen/gun/item/Click(location, control, params)
+/atom/movable/screen/gun/item/Click(location, control, params)
if(..())
var/mob/living/user = usr
if(istype(user))
@@ -37,12 +37,12 @@
return 1
return 0
-/obj/screen/gun/mode
+/atom/movable/screen/gun/mode
name = "Toggle Gun Mode"
icon_state = "gun0"
screen_loc = ui_gun_select
-/obj/screen/gun/mode/Click(location, control, params)
+/atom/movable/screen/gun/mode/Click(location, control, params)
if(..())
var/mob/living/user = usr
if(istype(user))
@@ -51,12 +51,12 @@
return 1
return 0
-/obj/screen/gun/radio
+/atom/movable/screen/gun/radio
name = "Allow Radio Use"
icon_state = "no_radio1"
screen_loc = ui_gun4
-/obj/screen/gun/radio/Click(location, control, params)
+/atom/movable/screen/gun/radio/Click(location, control, params)
if(..())
var/mob/living/user = usr
if(istype(user))
@@ -65,13 +65,13 @@
return 1
return 0
-/obj/screen/gun/burstfire
+/atom/movable/screen/gun/burstfire
name = "Toggle Firing Mode"
desc = "This can be used in a macro as toggle-firing-mode."
icon_state = "toggle_burst_fire"
screen_loc = ui_burstfire
-/obj/screen/gun/burstfire/Click(location, control, params)
+/atom/movable/screen/gun/burstfire/Click(location, control, params)
if(..())
var/mob/living/user = usr
if(istype(user))
@@ -86,13 +86,13 @@
if(istype(dakka))
dakka.toggle_firing_mode(user)
-/obj/screen/gun/uniqueaction
+/atom/movable/screen/gun/uniqueaction
name = "Unique Action"
desc = "This can be used in a macro as unique-action."
icon_state = "unique_action"
screen_loc = ui_uniqueaction
-/obj/screen/gun/uniqueaction/Click(location, control, params)
+/atom/movable/screen/gun/uniqueaction/Click(location, control, params)
if(..())
var/mob/living/user = usr
if(istype(user))
diff --git a/code/_onclick/hud/hud.dm b/code/_onclick/hud/hud.dm
index 52533877624..c2c6ca9a010 100644
--- a/code/_onclick/hud/hud.dm
+++ b/code/_onclick/hud/hud.dm
@@ -5,24 +5,24 @@
var/datum/global_hud/global_hud // Initialized in SSatoms.
var/list/global_huds
-/datum/hud/var/obj/screen/grab_intent
-/datum/hud/var/obj/screen/hurt_intent
-/datum/hud/var/obj/screen/disarm_intent
-/datum/hud/var/obj/screen/help_intent
+/datum/hud/var/atom/movable/screen/grab_intent
+/datum/hud/var/atom/movable/screen/hurt_intent
+/datum/hud/var/atom/movable/screen/disarm_intent
+/datum/hud/var/atom/movable/screen/help_intent
/datum/global_hud
- var/obj/screen/vr_control
- var/obj/screen/druggy
- var/obj/screen/blurry
+ var/atom/movable/screen/vr_control
+ var/atom/movable/screen/druggy
+ var/atom/movable/screen/blurry
var/list/vimpaired
var/list/darkMask
- var/obj/screen/nvg
- var/obj/screen/thermal
- var/obj/screen/meson
- var/obj/screen/science
+ var/atom/movable/screen/nvg
+ var/atom/movable/screen/thermal
+ var/atom/movable/screen/meson
+ var/atom/movable/screen/science
/datum/global_hud/proc/setup_overlay(var/icon_state, var/color)
- var/obj/screen/screen = new /obj/screen()
+ var/atom/movable/screen/screen = new /atom/movable/screen()
screen.alpha = 25 // Adjust this if you want goggle overlays to be thinner or thicker.
screen.screen_loc = "SOUTHWEST to NORTHEAST" // Will tile up to the whole screen, scaling beyond 15x15 if needed.
screen.icon = 'icons/obj/hud_tiled.dmi'
@@ -34,7 +34,7 @@ var/list/global_huds
/datum/global_hud/New()
//420erryday psychedellic colours screen overlay for when you are high
- druggy = new /obj/screen()
+ druggy = new /atom/movable/screen()
druggy.screen_loc = ui_entire_screen
druggy.icon_state = "druggy"
druggy.layer = IMPAIRED_LAYER
@@ -43,14 +43,14 @@ var/list/global_huds
druggy.blend_mode = BLEND_MULTIPLY
//that white blurry effect you get when you eyes are damaged
- blurry = new /obj/screen()
+ blurry = new /atom/movable/screen()
blurry.screen_loc = ui_entire_screen
blurry.icon_state = "blurry"
blurry.layer = IMPAIRED_LAYER
blurry.mouse_opacity = MOUSE_OPACITY_TRANSPARENT
blurry.alpha = 100
- vr_control = new /obj/screen()
+ vr_control = new /atom/movable/screen()
vr_control.icon = 'icons/mob/screen/full.dmi'
vr_control.icon_state = "vr_control"
vr_control.screen_loc = "1,1"
@@ -62,10 +62,10 @@ var/list/global_huds
meson = setup_overlay("scanline", "#9fd800")
science = setup_overlay("scanline", "#d600d6")
- var/obj/screen/O
+ var/atom/movable/screen/O
var/i
//that nasty looking dither you get when you're short-sighted
- vimpaired = newlist(/obj/screen,/obj/screen,/obj/screen,/obj/screen)
+ vimpaired = newlist(/atom/movable/screen,/atom/movable/screen,/atom/movable/screen,/atom/movable/screen)
O = vimpaired[1]
O.screen_loc = "1,1 to 5,15"
O = vimpaired[2]
@@ -76,7 +76,7 @@ var/list/global_huds
O.screen_loc = "11,1 to 15,15"
//welding mask overlay black/dither
- darkMask = newlist(/obj/screen, /obj/screen, /obj/screen, /obj/screen, /obj/screen, /obj/screen, /obj/screen, /obj/screen)
+ darkMask = newlist(/atom/movable/screen, /atom/movable/screen, /atom/movable/screen, /atom/movable/screen, /atom/movable/screen, /atom/movable/screen, /atom/movable/screen, /atom/movable/screen)
O = darkMask[1]
O.screen_loc = "WEST+2,SOUTH+2 to WEST+4,NORTH-2"
O = darkMask[2]
@@ -136,18 +136,18 @@ var/list/global_huds
///Boolean, if the action buttons are hidden
var/action_buttons_hidden = FALSE
- var/obj/screen/blobpwrdisplay
- var/obj/screen/blobhealthdisplay
- var/obj/screen/r_hand_hud_object
- var/obj/screen/l_hand_hud_object
- var/obj/screen/action_intent
- var/obj/screen/movement_intent/move_intent
+ var/atom/movable/screen/blobpwrdisplay
+ var/atom/movable/screen/blobhealthdisplay
+ var/atom/movable/screen/r_hand_hud_object
+ var/atom/movable/screen/l_hand_hud_object
+ var/atom/movable/screen/action_intent
+ var/atom/movable/screen/movement_intent/move_intent
var/list/adding
var/list/other
- var/list/obj/screen/hotkeybuttons
+ var/list/atom/movable/screen/hotkeybuttons
- var/obj/screen/movable/action_button/hide_toggle/hide_actions_toggle
+ var/atom/movable/screen/movable/action_button/hide_toggle/hide_actions_toggle
/datum/hud/New(mob/owner)
mymob = owner
diff --git a/code/_onclick/hud/human.dm b/code/_onclick/hud/human.dm
index 649e772e952..2e25181a1ee 100644
--- a/code/_onclick/hud/human.dm
+++ b/code/_onclick/hud/human.dm
@@ -16,14 +16,14 @@
src.hotkeybuttons = list() //These can be disabled for hotkey usersx
var/list/hud_elements = list()
- var/obj/screen/using
- var/obj/screen/inventory/inv_box
+ var/atom/movable/screen/using
+ var/atom/movable/screen/inventory/inv_box
// Draw the various inventory equipment slots.
var/has_hidden_gear
for(var/gear_slot in hud_data.gear)
var/list/slot_data = hud_data.gear[gear_slot]
- var/hud_type = /obj/screen/inventory
+ var/hud_type = /atom/movable/screen/inventory
if(slot_data["slot_type"])
hud_type = slot_data["slot_type"]
inv_box = new hud_type()
@@ -47,7 +47,7 @@
src.adding += inv_box
if(has_hidden_gear)
- using = new /obj/screen()
+ using = new /atom/movable/screen()
using.name = "toggle"
using.icon = ui_style
using.icon_state = "other"
@@ -59,7 +59,7 @@
// Draw the attack intent dialogue.
if(hud_data.has_a_intent)
- using = new /obj/screen()
+ using = new /atom/movable/screen()
using.name = "act_intent"
using.icon = ui_style
using.icon_state = "intent_"+mymob.a_intent
@@ -77,7 +77,7 @@
ico = new(ui_style, "black")
ico.MapColors(0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, -1,-1,-1,-1)
ico.DrawBox(rgb(255,255,255,1),1,ico.Height()/2,ico.Width()/2,ico.Height())
- using = new /obj/screen( src )
+ using = new /atom/movable/screen( src )
using.name = I_HELP
using.icon = ico
using.screen_loc = ui_acti
@@ -88,7 +88,7 @@
ico = new(ui_style, "black")
ico.MapColors(0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, -1,-1,-1,-1)
ico.DrawBox(rgb(255,255,255,1),ico.Width()/2,ico.Height()/2,ico.Width(),ico.Height())
- using = new /obj/screen( src )
+ using = new /atom/movable/screen( src )
using.name = I_DISARM
using.icon = ico
using.screen_loc = ui_acti
@@ -99,7 +99,7 @@
ico = new(ui_style, "black")
ico.MapColors(0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, -1,-1,-1,-1)
ico.DrawBox(rgb(255,255,255,1),ico.Width()/2,1,ico.Width(),ico.Height()/2)
- using = new /obj/screen( src )
+ using = new /atom/movable/screen( src )
using.name = I_GRAB
using.icon = ico
using.screen_loc = ui_acti
@@ -110,7 +110,7 @@
ico = new(ui_style, "black")
ico.MapColors(0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, -1,-1,-1,-1)
ico.DrawBox(rgb(255,255,255,1),1,1,ico.Width()/2,ico.Height()/2)
- using = new /obj/screen( src )
+ using = new /atom/movable/screen( src )
using.name = I_HURT
using.icon = ico
using.screen_loc = ui_acti
@@ -120,7 +120,7 @@
//end intent small hud objects
if(hud_data.has_m_intent)
- using = new /obj/screen/movement_intent()
+ using = new /atom/movable/screen/movement_intent()
using.icon = ui_style
using.icon_state = (mymob.m_intent == M_RUN ? "running" : "walking")
using.color = ui_color
@@ -129,7 +129,7 @@
move_intent = using
if(hud_data.has_drop)
- using = new /obj/screen()
+ using = new /atom/movable/screen()
using.name = "drop"
using.icon = ui_style
using.icon_state = "act_drop"
@@ -140,7 +140,7 @@
if(hud_data.has_hands)
- using = new /obj/screen()
+ using = new /atom/movable/screen()
using.name = "equip"
using.icon = ui_style
using.icon_state = "act_equip"
@@ -149,7 +149,7 @@
using.alpha = ui_alpha
src.adding += using
- inv_box = new /obj/screen/inventory/hand()
+ inv_box = new /atom/movable/screen/inventory/hand()
inv_box.hud = src
inv_box.name = "right hand"
inv_box.icon = ui_style
@@ -164,7 +164,7 @@
src.r_hand_hud_object = inv_box
src.adding += inv_box
- inv_box = new /obj/screen/inventory/hand()
+ inv_box = new /atom/movable/screen/inventory/hand()
inv_box.hud = src
inv_box.name = "left hand"
inv_box.icon = ui_style
@@ -180,7 +180,7 @@
target.update_hud_hands()
- using = new /obj/screen/inventory()
+ using = new /atom/movable/screen/inventory()
using.name = "hand"
using.icon = ui_style
using.icon_state = "hand1"
@@ -190,7 +190,7 @@
using.hud = src
src.adding += using
- using = new /obj/screen/inventory()
+ using = new /atom/movable/screen/inventory()
using.name = "hand"
using.icon = ui_style
using.icon_state = "hand2"
@@ -201,7 +201,7 @@
src.adding += using
if(hud_data.has_resist)
- using = new /obj/screen()
+ using = new /atom/movable/screen()
using.name = "resist"
using.icon = ui_style
using.icon_state = "act_resist"
@@ -211,7 +211,7 @@
src.hotkeybuttons += using
if(hud_data.has_throw)
- mymob.throw_icon = new /obj/screen()
+ mymob.throw_icon = new /atom/movable/screen()
mymob.throw_icon.icon = ui_style
mymob.throw_icon.icon_state = "act_throw_off"
mymob.throw_icon.name = "throw"
@@ -221,7 +221,7 @@
src.hotkeybuttons += mymob.throw_icon
hud_elements |= mymob.throw_icon
- mymob.pullin = new /obj/screen()
+ mymob.pullin = new /atom/movable/screen()
mymob.pullin.icon = ui_style
mymob.pullin.icon_state = "pull0"
mymob.pullin.name = "pull"
@@ -230,42 +230,42 @@
hud_elements |= mymob.pullin
if(hud_data.has_internals)
- mymob.internals = new /obj/screen/internals()
+ mymob.internals = new /atom/movable/screen/internals()
mymob.internals.icon = ui_style
hud_elements |= mymob.internals
if(!isnull(target.internal))
mymob.internals.icon_state = "internal1"
if(hud_data.has_warnings)
- mymob.oxygen = new /obj/screen/oxygen()
+ mymob.oxygen = new /atom/movable/screen/oxygen()
mymob.oxygen.icon = 'icons/mob/status_indicators.dmi'
mymob.oxygen.icon_state = "oxy0"
mymob.oxygen.name = "oxygen"
mymob.oxygen.screen_loc = ui_temp
hud_elements |= mymob.oxygen
- mymob.toxin = new /obj/screen/toxins()
+ mymob.toxin = new /atom/movable/screen/toxins()
mymob.toxin.icon = 'icons/mob/status_indicators.dmi'
mymob.toxin.icon_state = "tox0"
mymob.toxin.name = "toxin"
mymob.toxin.screen_loc = ui_temp
hud_elements |= mymob.toxin
- mymob.fire = new /obj/screen()
+ mymob.fire = new /atom/movable/screen()
mymob.fire.icon = ui_style
mymob.fire.icon_state = "fire0"
mymob.fire.name = "fire"
mymob.fire.screen_loc = ui_fire
hud_elements |= mymob.fire
- mymob.paralysis_indicator = new /obj/screen/paralysis()
+ mymob.paralysis_indicator = new /atom/movable/screen/paralysis()
mymob.paralysis_indicator.icon = 'icons/mob/status_indicators.dmi'
mymob.paralysis_indicator.icon_state = "paralysis0"
mymob.paralysis_indicator.name = "paralysis"
mymob.paralysis_indicator.screen_loc = ui_paralysis
hud_elements |= mymob.paralysis_indicator
- mymob.healths = new /obj/screen()
+ mymob.healths = new /atom/movable/screen()
mymob.healths.icon = ui_style
mymob.healths.icon_state = "health0"
mymob.healths.name = "health"
@@ -276,7 +276,7 @@
hud_elements |= mymob.healths
if(hud_data.has_pressure)
- mymob.pressure = new /obj/screen/pressure()
+ mymob.pressure = new /atom/movable/screen/pressure()
mymob.pressure.icon = 'icons/mob/status_indicators.dmi'
mymob.pressure.icon_state = "pressure0"
mymob.pressure.name = "pressure"
@@ -284,7 +284,7 @@
hud_elements |= mymob.pressure
if(hud_data.has_bodytemp)
- mymob.bodytemp = new /obj/screen/bodytemp()
+ mymob.bodytemp = new /atom/movable/screen/bodytemp()
mymob.bodytemp.icon = 'icons/mob/status_indicators.dmi'
mymob.bodytemp.icon_state = "temp1"
mymob.bodytemp.name = "body temperature"
@@ -292,7 +292,7 @@
hud_elements |= mymob.bodytemp
if(hud_data.has_cell)
- mymob.cells = new /obj/screen()
+ mymob.cells = new /atom/movable/screen()
mymob.cells.icon = 'icons/mob/screen/robot.dmi'
mymob.cells.icon_state = "charge-empty"
mymob.cells.name = "cell"
@@ -300,7 +300,7 @@
hud_elements |= target.cells
if(hud_data.has_nutrition)
- mymob.nutrition_icon = new /obj/screen/food()
+ mymob.nutrition_icon = new /atom/movable/screen/food()
mymob.nutrition_icon.icon = 'icons/mob/status_hunger.dmi'
mymob.nutrition_icon.pixel_w = 8
mymob.nutrition_icon.icon_state = "nutrition0"
@@ -309,7 +309,7 @@
hud_elements |= mymob.nutrition_icon
if(hud_data.has_hydration)
- mymob.hydration_icon = new /obj/screen/thirst()
+ mymob.hydration_icon = new /atom/movable/screen/thirst()
mymob.hydration_icon.icon = 'icons/mob/status_hunger.dmi'
mymob.hydration_icon.icon_state = "thirst0"
mymob.hydration_icon.name = "thirst"
@@ -317,27 +317,27 @@
hud_elements |= mymob.hydration_icon
if(hud_data.has_up_hint)
- mymob.up_hint = new /obj/screen()
+ mymob.up_hint = new /atom/movable/screen()
mymob.up_hint.icon = ui_style
mymob.up_hint.icon_state = "uphint0"
mymob.up_hint.name = "up hint"
mymob.up_hint.screen_loc = ui_up_hint
hud_elements |= mymob.up_hint
- mymob.pain = new /obj/screen/fullscreen/pain(null)
+ mymob.pain = new /atom/movable/screen/fullscreen/pain(null)
hud_elements |= mymob.pain
- mymob.instability_display = new /obj/screen/instability()
+ mymob.instability_display = new /atom/movable/screen/instability()
mymob.instability_display.screen_loc = ui_instability_display
mymob.instability_display.icon_state = "wiz_instability_none"
hud_elements |= mymob.instability_display
- mymob.energy_display = new /obj/screen/energy()
+ mymob.energy_display = new /atom/movable/screen/energy()
mymob.energy_display.screen_loc = ui_energy_display
mymob.energy_display.icon_state = "wiz_energy"
hud_elements |= mymob.energy_display
- mymob.zone_sel = new /obj/screen/zone_sel(null)
+ mymob.zone_sel = new /atom/movable/screen/zone_sel(null)
mymob.zone_sel.icon = ui_style
mymob.zone_sel.color = ui_color
mymob.zone_sel.alpha = ui_alpha
@@ -346,34 +346,34 @@
hud_elements |= mymob.zone_sel
//Handle the gun settings buttons
- mymob.gun_setting_icon = new /obj/screen/gun/mode(null)
+ mymob.gun_setting_icon = new /atom/movable/screen/gun/mode(null)
mymob.gun_setting_icon.icon = ui_style
mymob.gun_setting_icon.color = ui_color
mymob.gun_setting_icon.alpha = ui_alpha
hud_elements |= mymob.gun_setting_icon
- mymob.item_use_icon = new /obj/screen/gun/item(null)
+ mymob.item_use_icon = new /atom/movable/screen/gun/item(null)
mymob.item_use_icon.icon = ui_style
mymob.item_use_icon.color = ui_color
mymob.item_use_icon.alpha = ui_alpha
- mymob.gun_move_icon = new /obj/screen/gun/move(null)
+ mymob.gun_move_icon = new /atom/movable/screen/gun/move(null)
mymob.gun_move_icon.icon = ui_style
mymob.gun_move_icon.color = ui_color
mymob.gun_move_icon.alpha = ui_alpha
- mymob.radio_use_icon = new /obj/screen/gun/radio(null)
+ mymob.radio_use_icon = new /atom/movable/screen/gun/radio(null)
mymob.radio_use_icon.icon = ui_style
mymob.radio_use_icon.color = ui_color
mymob.radio_use_icon.alpha = ui_alpha
- mymob.toggle_firing_mode = new /obj/screen/gun/burstfire(null)
+ mymob.toggle_firing_mode = new /atom/movable/screen/gun/burstfire(null)
mymob.toggle_firing_mode.icon = ui_style
mymob.toggle_firing_mode.color = ui_color
mymob.toggle_firing_mode.alpha = ui_alpha
hud_elements |= mymob.toggle_firing_mode
- mymob.unique_action_icon = new /obj/screen/gun/uniqueaction(null)
+ mymob.unique_action_icon = new /atom/movable/screen/gun/uniqueaction(null)
mymob.unique_action_icon.icon = ui_style
mymob.unique_action_icon.color = ui_color
mymob.unique_action_icon.alpha = ui_alpha
@@ -411,7 +411,7 @@
// Yes, these use icon state. Yes, these are terrible. The alternative is duplicating
// a bunch of fairly blobby logic for every click override on these objects.
-/obj/screen/food/Click(var/location, var/control, var/params)
+/atom/movable/screen/food/Click(var/location, var/control, var/params)
if(istype(usr) && usr.nutrition_icon == src)
switch(icon_state)
if("nutrition0")
@@ -439,7 +439,7 @@
if("charge5")
to_chat(usr, SPAN_DANGER("You have almost no charge left!"))
-/obj/screen/thirst/Click(var/location, var/control, var/params)
+/atom/movable/screen/thirst/Click(var/location, var/control, var/params)
if(istype(usr) && usr.hydration_icon == src)
switch(icon_state)
if("thirst0")
@@ -453,7 +453,7 @@
if("thirst4")
to_chat(usr, SPAN_DANGER("You are entirely dehydrated!"))
-/obj/screen/bodytemp/Click(var/location, var/control, var/params)
+/atom/movable/screen/bodytemp/Click(var/location, var/control, var/params)
if(istype(usr) && usr.bodytemp == src)
switch(icon_state)
if("temp4")
@@ -475,7 +475,7 @@
else
to_chat(usr, SPAN_NOTICE("Your body is at a comfortable temperature."))
-/obj/screen/pressure/Click(var/location, var/control, var/params)
+/atom/movable/screen/pressure/Click(var/location, var/control, var/params)
if(istype(usr) && usr.pressure == src)
switch(icon_state)
if("pressure2")
@@ -489,45 +489,45 @@
else
to_chat(usr, SPAN_NOTICE("The local air pressure is comfortable."))
-/obj/screen/toxins/Click(var/location, var/control, var/params)
+/atom/movable/screen/toxins/Click(var/location, var/control, var/params)
if(istype(usr) && usr.toxin == src)
if(icon_state == "tox0")
to_chat(usr, SPAN_NOTICE("The air is clear of toxins."))
else
to_chat(usr, SPAN_DANGER("The air is eating away at your skin!"))
-/obj/screen/oxygen/Click(var/location, var/control, var/params)
+/atom/movable/screen/oxygen/Click(var/location, var/control, var/params)
if(istype(usr) && usr.oxygen == src)
if(icon_state == "oxy0")
to_chat(usr, SPAN_NOTICE("You are breathing easy."))
else
to_chat(usr, SPAN_DANGER("You cannot breathe!"))
-/obj/screen/paralysis/Click(var/location, var/control, var/params)
+/atom/movable/screen/paralysis/Click(var/location, var/control, var/params)
if(istype(usr) && usr.paralysis_indicator == src)
if(usr.paralysis)
to_chat(usr, SPAN_WARNING("You are completely paralyzed and cannot move!"))
else
to_chat(usr, SPAN_NOTICE("You are walking around completely fine."))
-/obj/screen/instability
+/atom/movable/screen/instability
name = "instability"
icon = 'icons/mob/screen_gen.dmi'
icon_state = "instability-1"
invisibility = 101
-/obj/screen/energy
+/atom/movable/screen/energy
name = "energy"
icon = 'icons/mob/screen_gen.dmi'
icon_state = "wiz_energy"
invisibility = 101
-/obj/screen/status
+/atom/movable/screen/status
icon = 'icons/mob/screen/midnight.dmi'
icon_state = "status_template"
var/status_message
-/obj/screen/status/Initialize(mapload, var/set_icon, var/set_overlay, var/set_status_message)
+/atom/movable/screen/status/Initialize(mapload, var/set_icon, var/set_overlay, var/set_status_message)
icon = set_icon
var/image/status_overlay = image('icons/mob/screen/hud_status.dmi', null, set_overlay)
status_overlay.appearance_flags = RESET_COLOR
@@ -535,7 +535,7 @@
status_message = set_status_message
return ..()
-/obj/screen/status/Click(var/location, var/control, var/params)
+/atom/movable/screen/status/Click(var/location, var/control, var/params)
var/list/modifiers = params2list(params)
if(status_message && modifiers["shift"])
to_chat(usr, status_message)
diff --git a/code/_onclick/hud/morph.dm b/code/_onclick/hud/morph.dm
index 12dcb8023eb..d51a176213c 100644
--- a/code/_onclick/hud/morph.dm
+++ b/code/_onclick/hud/morph.dm
@@ -2,24 +2,24 @@
HUD.morph_hud()
/datum/hud/proc/morph_hud()
- var/obj/screen/mov_intent = new /obj/screen/movement_intent()
+ var/atom/movable/screen/mov_intent = new /atom/movable/screen/movement_intent()
mov_intent.set_dir(SOUTHWEST)
mov_intent.icon = 'icons/mob/screen/morph.dmi'
mov_intent.icon_state = (mymob.m_intent == M_RUN ? "running" : "walking")
move_intent = mov_intent
- mymob.healths = new /obj/screen()
+ mymob.healths = new /atom/movable/screen()
mymob.healths.name = "health"
mymob.healths.icon = 'icons/mob/screen/morph.dmi'
mymob.healths.icon_state = "health0"
mymob.healths.screen_loc = ui_alien_health
- mymob.zone_sel = new /obj/screen/zone_sel()
+ mymob.zone_sel = new /atom/movable/screen/zone_sel()
mymob.zone_sel.icon = 'icons/mob/screen/morph.dmi'
mymob.zone_sel.ClearOverlays()
mymob.zone_sel.AddOverlays(image('icons/mob/zone_sel.dmi', "[mymob.zone_sel.selecting]"))
- var/obj/screen/resist = new /obj/screen()
+ var/atom/movable/screen/resist = new /atom/movable/screen()
resist.name = "resist"
resist.icon = 'icons/mob/screen/morph.dmi'
resist.icon_state = "act_resist"
diff --git a/code/_onclick/hud/movable_screen_objects.dm b/code/_onclick/hud/movable_screen_objects.dm
index 39a937ed698..ef0e401edf1 100644
--- a/code/_onclick/hud/movable_screen_objects.dm
+++ b/code/_onclick/hud/movable_screen_objects.dm
@@ -8,18 +8,18 @@
//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
//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)
var/list/PM = params2list(params)
//No screen-loc information? abort.
@@ -44,7 +44,7 @@
var/pix_Y = text2num(screen_loc_Y[2]) - 16
screen_loc = "[screen_loc_X[1]]:[pix_X],[screen_loc_Y[1]]:[pix_Y]"
-/obj/screen/movable/proc/encode_screen_X(X, var/mob/user = usr)
+/atom/movable/screen/movable/proc/encode_screen_X(X, var/mob/user = usr)
if(X > user?.client?.view+1)
. = "EAST-[user?.client?.view*2 + 1-X]"
else if(X < user?.client?.view+1)
@@ -52,7 +52,7 @@
else
. = "CENTER"
-/obj/screen/movable/proc/decode_screen_X(X, var/mob/user = usr)
+/atom/movable/screen/movable/proc/decode_screen_X(X, var/mob/user = usr)
//Find EAST/WEST implementations
if(findtext(X,"EAST-"))
var/num = text2num(copytext(X,6)) //Trim EAST-
@@ -67,7 +67,7 @@
else if(findtext(X,"CENTER"))
. = user?.client?.view+1
-/obj/screen/movable/proc/encode_screen_Y(Y, var/mob/user = usr)
+/atom/movable/screen/movable/proc/encode_screen_Y(Y, var/mob/user = usr)
if(Y > user?.client?.view+1)
. = "NORTH-[user?.client?.view*2 + 1-Y]"
else if(Y < user?.client?.view+1)
@@ -75,7 +75,7 @@
else
. = "CENTER"
-/obj/screen/movable/proc/decode_screen_Y(Y, var/mob/user = usr)
+/atom/movable/screen/movable/proc/decode_screen_Y(Y, var/mob/user = usr)
if(findtext(Y,"NORTH-"))
var/num = text2num(copytext(Y,7)) //Trim NORTH-
if(!num)
@@ -94,7 +94,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"
@@ -113,7 +113,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"
diff --git a/code/_onclick/hud/nymph_hud.dm b/code/_onclick/hud/nymph_hud.dm
index d2c97f00fc1..aafecd0b248 100644
--- a/code/_onclick/hud/nymph_hud.dm
+++ b/code/_onclick/hud/nymph_hud.dm
@@ -6,22 +6,22 @@
src.adding = list()
src.other = list()
- var/obj/screen/using
+ var/atom/movable/screen/using
- using = new /obj/screen/movement_intent()
+ using = new /atom/movable/screen/movement_intent()
using.set_dir(SOUTHWEST)
using.icon = 'icons/mob/screen/diona_nymph.dmi'
using.icon_state = (mymob.m_intent == M_RUN ? "running" : "walking")
src.adding += using
move_intent = using
- mymob.healths = new /obj/screen()
+ mymob.healths = new /atom/movable/screen()
mymob.healths.icon = 'icons/mob/screen/diona_nymph.dmi'
mymob.healths.icon_state = "health0"
mymob.healths.name = "health"
mymob.healths.screen_loc = ui_alien_health
- mymob.fire = new /obj/screen()
+ mymob.fire = new /atom/movable/screen()
mymob.fire.icon = 'icons/mob/screen/diona_nymph.dmi'
mymob.fire.icon_state = "fire0"
mymob.fire.name = "fire"
diff --git a/code/_onclick/hud/other_mobs.dm b/code/_onclick/hud/other_mobs.dm
index bb88ce688f1..df453377559 100644
--- a/code/_onclick/hud/other_mobs.dm
+++ b/code/_onclick/hud/other_mobs.dm
@@ -16,12 +16,12 @@
/datum/hud/proc/blob_hud(ui_style = 'icons/mob/screen/midnight.dmi')
- blobpwrdisplay = new /obj/screen()
+ blobpwrdisplay = new /atom/movable/screen()
blobpwrdisplay.name = "blob power"
blobpwrdisplay.icon_state = "block"
blobpwrdisplay.screen_loc = ui_health
- blobhealthdisplay = new /obj/screen()
+ blobhealthdisplay = new /atom/movable/screen()
blobhealthdisplay.name = "blob health"
blobhealthdisplay.icon_state = "block"
blobhealthdisplay.screen_loc = ui_internal
@@ -37,9 +37,9 @@
src.adding = list()
- var/obj/screen/using
+ var/atom/movable/screen/using
- using = new /obj/screen()
+ using = new /atom/movable/screen()
using.name = "act_intent"
using.set_dir(SOUTHWEST)
using.icon = ui_style
@@ -54,7 +54,7 @@
ico = new(ui_style, "black")
ico.MapColors(0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, -1,-1,-1,-1)
ico.DrawBox(rgb(255,255,255,1),1,ico.Height()/2,ico.Width()/2,ico.Height())
- using = new /obj/screen( src )
+ using = new /atom/movable/screen( src )
using.name = "help"
using.icon = ico
using.screen_loc = ui_zonesel
@@ -64,7 +64,7 @@
ico = new(ui_style, "black")
ico.MapColors(0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, -1,-1,-1,-1)
ico.DrawBox(rgb(255,255,255,1),ico.Width()/2,ico.Height()/2,ico.Width(),ico.Height())
- using = new /obj/screen( src )
+ using = new /atom/movable/screen( src )
using.name = "disarm"
using.icon = ico
using.screen_loc = ui_zonesel
@@ -74,7 +74,7 @@
ico = new(ui_style, "black")
ico.MapColors(0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, -1,-1,-1,-1)
ico.DrawBox(rgb(255,255,255,1),ico.Width()/2,1,ico.Width(),ico.Height()/2)
- using = new /obj/screen( src )
+ using = new /atom/movable/screen( src )
using.name = "grab"
using.icon = ico
using.screen_loc = ui_zonesel
@@ -84,7 +84,7 @@
ico = new(ui_style, "black")
ico.MapColors(0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, -1,-1,-1,-1)
ico.DrawBox(rgb(255,255,255,1),1,1,ico.Width()/2,ico.Height()/2)
- using = new /obj/screen( src )
+ using = new /atom/movable/screen( src )
using.name = I_HURT
using.icon = ico
using.screen_loc = ui_zonesel
@@ -112,31 +112,31 @@
constructtype = "harvester"
if(constructtype)
- mymob.fire = new /obj/screen()
+ mymob.fire = new /atom/movable/screen()
mymob.fire.icon = 'icons/mob/screen/construct.dmi'
mymob.fire.icon_state = "fire0"
mymob.fire.name = "fire"
mymob.fire.screen_loc = ui_construct_fire
- mymob.healths = new /obj/screen()
+ mymob.healths = new /atom/movable/screen()
mymob.healths.icon = 'icons/mob/screen/construct.dmi'
mymob.healths.icon_state = "[constructtype]_health0"
mymob.healths.name = "health"
mymob.healths.screen_loc = ui_construct_health
- mymob.pullin = new /obj/screen()
+ mymob.pullin = new /atom/movable/screen()
mymob.pullin.icon = 'icons/mob/screen/construct.dmi'
mymob.pullin.icon_state = "pull0"
mymob.pullin.name = "pull"
mymob.pullin.screen_loc = ui_construct_pull
- mymob.zone_sel = new /obj/screen/zone_sel()
+ mymob.zone_sel = new /atom/movable/screen/zone_sel()
mymob.zone_sel.icon = 'icons/mob/screen/construct.dmi'
mymob.zone_sel.ClearOverlays()
mymob.zone_sel.AddOverlays(image('icons/mob/zone_sel.dmi', "[mymob.zone_sel.selecting]"))
- mymob.purged = new /obj/screen()
+ mymob.purged = new /atom/movable/screen()
mymob.purged.icon = 'icons/mob/screen/construct.dmi'
mymob.purged.icon_state = "purge0"
mymob.purged.name = "purged"
diff --git a/code/_onclick/hud/radial.dm b/code/_onclick/hud/radial.dm
index 3dbdebceefb..eaef5fee7c0 100644
--- a/code/_onclick/hud/radial.dm
+++ b/code/_onclick/hud/radial.dm
@@ -3,54 +3,54 @@
GLOBAL_LIST_EMPTY(radial_menus)
-/obj/screen/radial
+/atom/movable/screen/radial
icon = 'icons/mob/screen/radial.dmi'
layer = RADIAL_BASE_LAYER
var/datum/radial_menu/parent
-/obj/screen/radial/Destroy()
+/atom/movable/screen/radial/Destroy()
QDEL_NULL(parent)
return ..()
-/obj/screen/radial/slice
+/atom/movable/screen/radial/slice
icon_state = "radial_slice"
var/choice
var/next_page = FALSE
var/tooltips = 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
@@ -62,8 +62,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
@@ -125,7 +125,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
@@ -157,14 +157,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.overlays.Cut()
E.alpha = 0
E.name = "None"
@@ -173,7 +173,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)
@@ -285,7 +285,7 @@ GLOBAL_LIST_EMPTY(radial_menus)
menu_holder.vis_contents = null
elements -= src
- for(var/obj/screen/radial/slice/possibly_our_child in elements)
+ for(var/atom/movable/screen/radial/slice/possibly_our_child in elements)
if(possibly_our_child.parent == src)
possibly_our_child.parent = null
diff --git a/code/_onclick/hud/radial_persistent.dm b/code/_onclick/hud/radial_persistent.dm
index b3cdfef090a..887df639eff 100644
--- a/code/_onclick/hud/radial_persistent.dm
+++ b/code/_onclick/hud/radial_persistent.dm
@@ -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"
@@ -23,7 +23,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
/datum/radial_menu/persistent/element_chosen(choice_id,mob/user)
diff --git a/code/_onclick/hud/robot.dm b/code/_onclick/hud/robot.dm
index abf03dc6878..564b7c39fc9 100644
--- a/code/_onclick/hud/robot.dm
+++ b/code/_onclick/hud/robot.dm
@@ -1,4 +1,4 @@
-var/obj/screen/robot_inventory
+var/atom/movable/screen/robot_inventory
/mob/living/silicon/robot/instantiate_hud(datum/hud/HUD)
HUD.robot_hud()
@@ -8,7 +8,7 @@ var/obj/screen/robot_inventory
src.adding = list()
src.other = list()
- var/obj/screen/using
+ var/atom/movable/screen/using
if(!isrobot(mymob))
return
@@ -16,7 +16,7 @@ var/obj/screen/robot_inventory
var/mob/living/silicon/robot/r = mymob
//Radio
- using = new /obj/screen()
+ using = new /atom/movable/screen()
using.name = "radio"
using.set_dir(SOUTHWEST)
using.icon = 'icons/mob/screen/robot.dmi'
@@ -26,22 +26,22 @@ var/obj/screen/robot_inventory
//Module select
- using = new /obj/screen/module/one()
+ using = new /atom/movable/screen/module/one()
src.adding += using
r.inv1 = using
- using = new /obj/screen/module/two()
+ using = new /atom/movable/screen/module/two()
src.adding += using
r.inv2 = using
- using = new /obj/screen/module/three()
+ using = new /atom/movable/screen/module/three()
src.adding += using
r.inv3 = using
//End of module select
//Intent
- using = new /obj/screen()
+ using = new /atom/movable/screen()
using.name = "act_intent"
using.set_dir(SOUTHWEST)
using.icon = 'icons/mob/screen/robot.dmi'
@@ -51,28 +51,28 @@ var/obj/screen/robot_inventory
action_intent = using
// Up Hint
- mymob.up_hint = new /obj/screen()
+ mymob.up_hint = new /atom/movable/screen()
mymob.up_hint.icon = 'icons/mob/screen/robot.dmi'
mymob.up_hint.icon_state = "uphint0"
mymob.up_hint.name = "up hint"
mymob.up_hint.screen_loc = ui_up_hint
//Cell
- r.cells = new /obj/screen()
+ r.cells = new /atom/movable/screen()
r.cells.icon = 'icons/mob/screen/robot.dmi'
r.cells.icon_state = "charge-empty"
r.cells.name = "cell"
r.cells.screen_loc = ui_toxin
//Health
- mymob.healths = new /obj/screen()
+ mymob.healths = new /atom/movable/screen()
mymob.healths.icon = 'icons/mob/screen/robot.dmi'
mymob.healths.icon_state = "health0"
mymob.healths.name = "health"
mymob.healths.screen_loc = ui_borg_health
//Installed Module
- mymob.hands = new /obj/screen()
+ mymob.hands = new /atom/movable/screen()
mymob.hands.icon = 'icons/mob/screen/robot.dmi'
mymob.hands.icon_state = "nomod"
mymob.hands.name = "module"
@@ -87,7 +87,7 @@ var/obj/screen/robot_inventory
mymob.hands.name = "Return-to-core"
//Module Panel
- using = new /obj/screen()
+ using = new /atom/movable/screen()
using.name = "panel"
using.icon = 'icons/mob/screen/robot.dmi'
using.icon_state = "panel"
@@ -95,14 +95,14 @@ var/obj/screen/robot_inventory
src.adding += using
//Store
- mymob.throw_icon = new /obj/screen()
+ mymob.throw_icon = new /atom/movable/screen()
mymob.throw_icon.icon = 'icons/mob/screen/robot.dmi'
mymob.throw_icon.icon_state = "store"
mymob.throw_icon.name = "store"
mymob.throw_icon.screen_loc = ui_borg_store
//Inventory
- robot_inventory = new /obj/screen()
+ robot_inventory = new /atom/movable/screen()
robot_inventory.name = "inventory"
robot_inventory.icon = 'icons/mob/screen/robot.dmi'
robot_inventory.icon_state = "inventory"
@@ -110,13 +110,13 @@ var/obj/screen/robot_inventory
//Temp
- mymob.pullin = new /obj/screen()
+ mymob.pullin = new /atom/movable/screen()
mymob.pullin.icon = 'icons/mob/screen/robot.dmi'
mymob.pullin.icon_state = "pull0"
mymob.pullin.name = "pull"
mymob.pullin.screen_loc = ui_borg_pull
- mymob.zone_sel = new /obj/screen/zone_sel()
+ mymob.zone_sel = new /atom/movable/screen/zone_sel()
mymob.zone_sel.icon = 'icons/mob/screen/robot.dmi'
mymob.zone_sel.ClearOverlays()
mymob.zone_sel.AddOverlays(image('icons/mob/zone_sel.dmi', "[mymob.zone_sel.selecting]"))
@@ -127,12 +127,12 @@ var/obj/screen/robot_inventory
//Handle the gun settings buttons
- mymob.gun_setting_icon = new /obj/screen/gun/mode(null)
- mymob.item_use_icon = new /obj/screen/gun/item(null)
- mymob.gun_move_icon = new /obj/screen/gun/move(null)
- mymob.radio_use_icon = new /obj/screen/gun/radio(null)
- mymob.toggle_firing_mode = new /obj/screen/gun/burstfire(null)
- mymob.unique_action_icon = new /obj/screen/gun/uniqueaction(null)
+ mymob.gun_setting_icon = new /atom/movable/screen/gun/mode(null)
+ mymob.item_use_icon = new /atom/movable/screen/gun/item(null)
+ mymob.gun_move_icon = new /atom/movable/screen/gun/move(null)
+ mymob.radio_use_icon = new /atom/movable/screen/gun/radio(null)
+ mymob.toggle_firing_mode = new /atom/movable/screen/gun/burstfire(null)
+ mymob.unique_action_icon = new /atom/movable/screen/gun/uniqueaction(null)
mymob.client.screen = null
diff --git a/code/_onclick/hud/screen_object_types/ai_screen_objs.dm b/code/_onclick/hud/screen_object_types/ai_screen_objs.dm
index 69cc930186b..8d8abd6c873 100644
--- a/code/_onclick/hud/screen_object_types/ai_screen_objs.dm
+++ b/code/_onclick/hud/screen_object_types/ai_screen_objs.dm
@@ -1,29 +1,29 @@
// AI and Borg screen objects be here.
-/obj/screen/module
+/atom/movable/screen/module
dir = SOUTHWEST
icon = 'icons/mob/screen/robot.dmi'
var/mod_pos
-/obj/screen/module/one
+/atom/movable/screen/module/one
name = "module1"
icon_state = "inv1"
screen_loc = ui_inv1
mod_pos = 1
-/obj/screen/module/two
+/atom/movable/screen/module/two
name = "module2"
icon_state = "inv2"
screen_loc = ui_inv2
mod_pos = 2
-/obj/screen/module/three
+/atom/movable/screen/module/three
name = "module3"
icon_state = "inv3"
screen_loc = ui_inv3
mod_pos = 3
-/obj/screen/module/Click()
+/atom/movable/screen/module/Click()
if (!istype(usr, /mob/living/silicon/robot))
return
@@ -32,129 +32,129 @@
var/mob/living/silicon/robot/R = usr
R.toggle_module(mod_pos)
-/obj/screen/ai
+/atom/movable/screen/ai
icon = 'icons/mob/screen/ai.dmi'
-/obj/screen/ai/core
+/atom/movable/screen/ai/core
name = "AI Core"
icon_state = "ai_core"
screen_loc = ui_ai_core
-/obj/screen/ai/core/Click()
+/atom/movable/screen/ai/core/Click()
if (isAI(usr))
var/mob/living/silicon/ai/AI = usr
AI.view_core()
-/obj/screen/ai/camera_list
+/atom/movable/screen/ai/camera_list
name = "Show Camera List"
icon_state = "camera"
screen_loc = ui_ai_camera_list
-/obj/screen/ai/camera_list/Click()
+/atom/movable/screen/ai/camera_list/Click()
if (isAI(usr))
var/mob/living/silicon/ai/AI = usr
var/camera = tgui_input_list(AI, "Select a camera.", "Show Camera List", AI.get_camera_list())
if (camera)
AI.ai_camera_list(camera)
-/obj/screen/ai/camera_track
+/atom/movable/screen/ai/camera_track
name = "Track With Camera"
icon_state = "track"
screen_loc = ui_ai_track_with_camera
-/obj/screen/ai/camera_track/Click()
+/atom/movable/screen/ai/camera_track/Click()
if (isAI(usr))
var/mob/living/silicon/ai/AI = usr
var/target_name = tgui_input_list(AI, "Select a mob to track.", "Track With Camera", AI.trackable_mobs())
if (target_name)
AI.ai_camera_track(target_name)
-/obj/screen/ai/camera_light
+/atom/movable/screen/ai/camera_light
name = "Toggle Camera Light"
icon_state = "camera_light"
screen_loc = ui_ai_camera_light
-/obj/screen/ai/camera_light/Click()
+/atom/movable/screen/ai/camera_light/Click()
if (isAI(usr))
var/mob/living/silicon/ai/AI = usr
AI.toggle_camera_light()
-/obj/screen/ai/crew_manifest
+/atom/movable/screen/ai/crew_manifest
name = "Show Crew Manifest"
icon_state = "manifest"
screen_loc = ui_ai_crew_manifest
-/obj/screen/ai/crew_manifest/Click()
+/atom/movable/screen/ai/crew_manifest/Click()
if (isAI(usr))
SSrecords.open_manifest_tgui(usr)
-/obj/screen/ai/announcement
+/atom/movable/screen/ai/announcement
name = "Announcement"
icon_state = "announcement"
screen_loc = ui_ai_announcement
-/obj/screen/ai/announcement/Click()
+/atom/movable/screen/ai/announcement/Click()
if (isAI(usr))
var/mob/living/silicon/ai/AI = usr
AI.ai_announcement()
-/obj/screen/ai/call_shuttle
+/atom/movable/screen/ai/call_shuttle
name = "Call Evacuation"
icon_state = "call_shuttle"
screen_loc = ui_ai_shuttle
-/obj/screen/ai/call_shuttle/Click()
+/atom/movable/screen/ai/call_shuttle/Click()
if (isAI(usr))
var/mob/living/silicon/ai/AI = usr
AI.ai_call_shuttle()
-/obj/screen/ai/state_laws
+/atom/movable/screen/ai/state_laws
name = "State Laws"
icon_state = "state_laws"
screen_loc = ui_ai_state_laws
-/obj/screen/ai/state_laws/Click()
+/atom/movable/screen/ai/state_laws/Click()
if(isAI(usr))
var/mob/living/silicon/ai/AI = usr
AI.computer.ui_interact(usr)
AI.computer.run_program("lawmanager")
-/obj/screen/ai/take_image
+/atom/movable/screen/ai/take_image
name = "Take Image"
icon_state = "take_picture"
screen_loc = ui_ai_take_picture
-/obj/screen/ai/take_image/Click()
+/atom/movable/screen/ai/take_image/Click()
if (isAI(usr))
var/mob/living/silicon/ai/AI = usr
AI.ai_camera.toggle_camera_mode()
-/obj/screen/ai/view_image
+/atom/movable/screen/ai/view_image
name = "View Images"
icon_state = "view_images"
screen_loc = ui_ai_view_images
-/obj/screen/ai/view_image/Click()
+/atom/movable/screen/ai/view_image/Click()
if (isAI(usr))
var/mob/living/silicon/ai/AI = usr
AI.ai_camera.viewpictures()
-/obj/screen/ai/sensor_aug
+/atom/movable/screen/ai/sensor_aug
name = "Set Sensor Augmentation"
icon_state = "ai_sensor"
screen_loc = ui_ai_sensor
-/obj/screen/ai/sensor_aug/Click()
+/atom/movable/screen/ai/sensor_aug/Click()
if (isAI(usr))
var/mob/living/silicon/ai/AI = usr
AI.sensor_mode()
-/obj/screen/ai/remote_mech
+/atom/movable/screen/ai/remote_mech
name = "Remote Control Shell"
icon_state = "remote_mech"
screen_loc = ui_ai_mech
-/obj/screen/ai/remote_mech/Click()
+/atom/movable/screen/ai/remote_mech/Click()
if(isAI(usr))
var/mob/living/silicon/ai/AI = usr
if(AI.anchored)
@@ -162,20 +162,20 @@
else
to_chat(AI, SPAN_WARNING("You are unable to get a good connection while unanchored from the station systems."))
-/obj/screen/ai/move_up
+/atom/movable/screen/ai/move_up
name = "Move Up"
icon_state = "move_up"
screen_loc = ui_ai_move_up
-/obj/screen/ai/move_up/Click()
+/atom/movable/screen/ai/move_up/Click()
if (isAI(usr))
usr.up()
-/obj/screen/ai/move_down
+/atom/movable/screen/ai/move_down
name = "Move Down"
icon_state = "move_down"
screen_loc = ui_ai_move_down
-/obj/screen/ai/move_down/Click()
+/atom/movable/screen/ai/move_down/Click()
if (isAI(usr))
usr.down()
diff --git a/code/_onclick/hud/screen_object_types/borer.dm b/code/_onclick/hud/screen_object_types/borer.dm
index 80d50b15058..0950cb42469 100644
--- a/code/_onclick/hud/screen_object_types/borer.dm
+++ b/code/_onclick/hud/screen_object_types/borer.dm
@@ -1,14 +1,14 @@
-/obj/screen/borer
+/atom/movable/screen/borer
icon = 'icons/mob/screen/borer.dmi'
maptext_x = 5
maptext_y = 16
-/obj/screen/borer/chemicals
+/atom/movable/screen/borer/chemicals
name = "chemicals"
icon_state = "chemicals"
screen_loc = ui_alien_toxin
-/obj/screen/borer/chemicals/Click(var/location, var/control, var/params)
+/atom/movable/screen/borer/chemicals/Click(var/location, var/control, var/params)
if(istype(usr, /mob/living/simple_animal/borer))
var/mob/living/simple_animal/borer/B = usr
to_chat(usr, SPAN_NOTICE("You have [B.chemicals]u of chemicals to use for your abilities."))
diff --git a/code/_onclick/hud/screen_object_types/internals.dm b/code/_onclick/hud/screen_object_types/internals.dm
index e3d47af7d18..9cac77d6af6 100644
--- a/code/_onclick/hud/screen_object_types/internals.dm
+++ b/code/_onclick/hud/screen_object_types/internals.dm
@@ -1,9 +1,9 @@
-/obj/screen/internals
+/atom/movable/screen/internals
name = "internal"
screen_loc = ui_internal
icon_state = "internal0"
-/obj/screen/internals/Click()
+/atom/movable/screen/internals/Click()
if(!iscarbon(usr))
return
var/mob/living/carbon/C = usr
@@ -144,11 +144,11 @@
else
to_chat(C, SPAN_NOTICE("You don't have a[breathes==GAS_OXYGEN ? "n oxygen" : addtext(" ",breathes)] tank."))
-/obj/screen/internals/proc/lose_internals(var/mob/living/carbon/human/user)
+/atom/movable/screen/internals/proc/lose_internals(var/mob/living/carbon/human/user)
icon_state = "internal0"
user.internal = null
-/obj/screen/internals/proc/has_internals_mask(var/mob/living/carbon/human/user)
+/atom/movable/screen/internals/proc/has_internals_mask(var/mob/living/carbon/human/user)
if(user.wear_mask && (user.wear_mask.item_flags & ITEM_FLAG_AIRTIGHT))
return TRUE
if(user.head && (user.head.item_flags & ITEM_FLAG_AIRTIGHT))
diff --git a/code/_onclick/hud/screen_object_types/vampire.dm b/code/_onclick/hud/screen_object_types/vampire.dm
index 1e36e783258..abcb017a1a3 100644
--- a/code/_onclick/hud/screen_object_types/vampire.dm
+++ b/code/_onclick/hud/screen_object_types/vampire.dm
@@ -1,36 +1,36 @@
-/obj/screen/vampire
+/atom/movable/screen/vampire
icon = 'icons/mob/screen/vampire.dmi'
maptext_x = 5
maptext_y = 16
-/obj/screen/vampire/blood
+/atom/movable/screen/vampire/blood
name = "usable blood"
icon_state = "blood"
screen_loc = ui_alien_toxin
-/obj/screen/vampire/blood/Click(var/location, var/control, var/params)
+/atom/movable/screen/vampire/blood/Click(var/location, var/control, var/params)
if(ishuman(usr))
var/datum/vampire/vampire = usr.mind.antag_datums[MODE_VAMPIRE]
to_chat(usr, SPAN_NOTICE("You have [vampire.blood_usable]u of blood to use for vampiric powers."))
to_chat(usr, SPAN_WARNING("If it drops too low, you will go into a blood frenzy. You can only store a maximum of [VAMPIRE_MAX_USABLE_BLOOD]u."))
-/obj/screen/vampire/frenzy
+/atom/movable/screen/vampire/frenzy
name = "frenzy count"
icon_state = "frenzy"
screen_loc = ui_alien_fire
-/obj/screen/vampire/frenzy/Click(var/location, var/control, var/params)
+/atom/movable/screen/vampire/frenzy/Click(var/location, var/control, var/params)
if(ishuman(usr))
var/datum/vampire/vampire = usr.mind.antag_datums[MODE_VAMPIRE]
to_chat(usr, SPAN_WARNING("Your frenzy counter is at [vampire.frenzy]."))
to_chat(usr, SPAN_WARNING("If it raises too high, you will gain incredible power, but they will be very unsubtle. You can lower your frenzy counter by getting out of holy areas and by obtaining usable blood."))
-/obj/screen/vampire/suck
+/atom/movable/screen/vampire/suck
name = "blood_suck"
icon_state = "suck"
screen_loc = ui_suck
-/obj/screen/vampire/suck/Click(var/location, var/control, var/params)
+/atom/movable/screen/vampire/suck/Click(var/location, var/control, var/params)
if(ishuman(usr))
var/mob/living/carbon/human/H = usr
H.vampire_drain_blood()
diff --git a/code/_onclick/hud/screen_objects.dm b/code/_onclick/hud/screen_objects.dm
index 52b25db57e5..e79cd0da271 100644
--- a/code/_onclick/hud/screen_objects.dm
+++ b/code/_onclick/hud/screen_objects.dm
@@ -6,23 +6,22 @@
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/generic.dmi'
plane = HUD_PLANE
layer = HUD_BASE_LAYER
- unacidable = 1
var/obj/master = null //A reference to the object in the slot. Grabs or items, generally.
var/datum/hud/hud = null // A reference to the owner HUD, if any.
appearance_flags = NO_CLIENT_COLOR
-/obj/screen/Initialize(mapload, ...)
+/atom/movable/screen/Initialize(mapload, ...)
. = ..()
//This is done with signals because the screen code sucks, blame the ancient developers
if(hud)
RegisterSignal(hud, COMSIG_QDELETING, PROC_REF(handle_hud_destruction))
-/obj/screen/Destroy(force = FALSE)
+/atom/movable/screen/Destroy(force = FALSE)
master = null
screen_loc = null
hud = null
@@ -31,13 +30,13 @@
/**
* Handles the deletion of the HUD this screen is associated to
*/
-/obj/screen/proc/handle_hud_destruction()
+/atom/movable/screen/proc/handle_hud_destruction()
SIGNAL_HANDLER
UnregisterSignal(hud, COMSIG_QDELETING)
qdel(src)
-/obj/screen/text
+/atom/movable/screen/text
icon = null
icon_state = null
mouse_opacity = MOUSE_OPACITY_TRANSPARENT
@@ -45,21 +44,21 @@
maptext_height = 480
maptext_width = 480
-/obj/screen/inventory
+/atom/movable/screen/inventory
var/slot_id //The identifier for the slot. It has nothing to do with ID cards.
var/list/object_overlays = list() // Required for inventory/screen overlays.
var/color_changed = FALSE
-/obj/screen/inventory/MouseEntered()
+/atom/movable/screen/inventory/MouseEntered()
..()
add_overlays()
-/obj/screen/inventory/MouseExited()
+/atom/movable/screen/inventory/MouseExited()
..()
CutOverlays(object_overlays)
object_overlays.Cut()
-/obj/screen/inventory/proc/add_overlays()
+/atom/movable/screen/inventory/proc/add_overlays()
var/mob/user = hud.mymob
if(hud && user && slot_id)
@@ -76,7 +75,7 @@
object_overlays += item_overlay
AddOverlays(object_overlays)
-/obj/screen/inventory/proc/set_color_for(var/set_color, var/set_time)
+/atom/movable/screen/inventory/proc/set_color_for(var/set_color, var/set_time)
if(color_changed)
return
var/old_color = color
@@ -84,14 +83,14 @@
color_changed = TRUE
addtimer(CALLBACK(src, PROC_REF(set_color_to), old_color), set_time)
-/obj/screen/inventory/proc/set_color_to(var/set_color)
+/atom/movable/screen/inventory/proc/set_color_to(var/set_color)
color = set_color
color_changed = FALSE
-/obj/screen/close
+/atom/movable/screen/close
name = "close"
-/obj/screen/close/Click()
+/atom/movable/screen/close/Click()
if(master)
if(istype(master, /obj/item/storage))
var/obj/item/storage/S = master
@@ -99,14 +98,14 @@
return 1
-/obj/screen/item_action
+/atom/movable/screen/item_action
var/obj/item/owner
-/obj/screen/item_action/Destroy()
+/atom/movable/screen/item_action/Destroy()
owner = null
. = ..()
-/obj/screen/item_action/Click()
+/atom/movable/screen/item_action/Click()
if(!usr || !owner)
return 1
if(!usr.canClick())
@@ -121,28 +120,28 @@
owner.ui_action_click()
return 1
-/obj/screen/grab
+/atom/movable/screen/grab
name = "grab"
-/obj/screen/grab/Click()
+/atom/movable/screen/grab/Click()
var/obj/item/grab/G = master
G.s_click(src)
return 1
-/obj/screen/grab/attack_hand()
+/atom/movable/screen/grab/attack_hand()
return
-/obj/screen/grab/attackby()
+/atom/movable/screen/grab/attackby()
return
-/obj/screen/storage
+/atom/movable/screen/storage
name = "storage"
screen_loc = "7,7 to 10,8"
plane = HUD_PLANE
layer = HUD_BASE_LAYER
-/obj/screen/storage/Click()
+/atom/movable/screen/storage/Click()
if(!usr.canClick())
return TRUE
if(usr.stat || usr.paralysis || usr.stunned || usr.weakened)
@@ -153,25 +152,25 @@
usr.ClickOn(master)
return TRUE
-/obj/screen/storage/background
+/atom/movable/screen/storage/background
name = "background storage"
layer = HUD_BELOW_ITEM_LAYER
-/obj/screen/storage/background/Initialize(mapload, var/obj/set_master, var/set_icon_state)
+/atom/movable/screen/storage/background/Initialize(mapload, var/obj/set_master, var/set_icon_state)
. = ..()
master = set_master
if(master)
name = master.name
icon_state = set_icon_state
-/obj/screen/storage/background/Click()
+/atom/movable/screen/storage/background/Click()
if(usr.incapacitated())
return TRUE
if(master)
usr.ClickOn(master)
return TRUE
-/obj/screen/zone_sel
+/atom/movable/screen/zone_sel
name = "damage zone"
icon_state = "zone_sel"
screen_loc = ui_zonesel
@@ -180,7 +179,7 @@
var/hovering_choice
var/mutable_appearance/selecting_appearance
-/obj/screen/zone_sel/Click(location, control,params)
+/atom/movable/screen/zone_sel/Click(location, control,params)
if(isobserver(usr))
return
@@ -193,10 +192,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
@@ -225,12 +224,12 @@
anchored = TRUE
plane = HUD_ITEM_LAYER
-/obj/screen/zone_sel/MouseExited(location, control, params)
+/atom/movable/screen/zone_sel/MouseExited(location, control, params)
if(!isobserver(usr) && hovering_choice)
remove_vis_contents(hover_overlays_cache[hovering_choice])
hovering_choice = 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 3) //Feet
switch(icon_x)
@@ -274,7 +273,7 @@
return BP_EYES
return BP_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(isobserver(user))
return
if(choice != selecting)
@@ -282,12 +281,12 @@
update_icon()
SEND_SIGNAL(user, COMSIG_MOB_ZONE_SEL_CHANGE, user)
-/obj/screen/zone_sel/update_icon()
+/atom/movable/screen/zone_sel/update_icon()
ClearOverlays()
selecting_appearance = mutable_appearance('icons/mob/zone_sel.dmi', "[selecting]")
AddOverlays(selecting_appearance)
-/obj/screen/Click(location, control, params)
+/atom/movable/screen/Click(location, control, params)
if(!usr)
return TRUE
var/list/modifiers = params2list(params)
@@ -426,7 +425,7 @@
return 0
return 1
-/obj/screen/inventory/Click()
+/atom/movable/screen/inventory/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(!usr.canClick())
@@ -453,12 +452,12 @@
return 1
-/obj/screen/movement_intent
+/atom/movable/screen/movement_intent
name = "mov_intent"
screen_loc = ui_movi
//This updates the run/walk button on the hud
-/obj/screen/movement_intent/proc/update_move_icon(var/mob/living/user)
+/atom/movable/screen/movement_intent/proc/update_move_icon(var/mob/living/user)
if(!user.client)
return
@@ -481,7 +480,7 @@
#define BLACKLIST_SPECIES_RUNNING list(SPECIES_DIONA, SPECIES_DIONA_COEUS)
-/obj/screen/movement_intent/Click(location, control, params)
+/atom/movable/screen/movement_intent/Click(location, control, params)
if(!usr)
return 1
var/list/modifiers = params2list(params)
@@ -539,12 +538,12 @@
#undef BLACKLIST_SPECIES_RUNNING
// Hand slots are special to handle the handcuffs overlay
-/obj/screen/inventory/hand
+/atom/movable/screen/inventory/hand
var/image/handcuff_overlay
var/image/disabled_hand_overlay
var/image/removed_hand_overlay
-/obj/screen/inventory/hand/update_icon()
+/atom/movable/screen/inventory/hand/update_icon()
..()
if(!hud)
return
@@ -572,5 +571,5 @@
if(H.handcuffed)
AddOverlays(handcuff_overlay)
-/obj/screen/inventory/back
+/atom/movable/screen/inventory/back
name = "back"
diff --git a/code/_onclick/hud/spell_screen_objects.dm b/code/_onclick/hud/spell_screen_objects.dm
index c2bfb485cb6..14707e7cd47 100644
--- a/code/_onclick/hud/spell_screen_objects.dm
+++ b/code/_onclick/hud/spell_screen_objects.dm
@@ -1,8 +1,8 @@
-/obj/screen/movable/spell_master
+/atom/movable/screen/movable/spell_master
name = "Spells"
icon = 'icons/mob/screen/spells.dmi'
icon_state = "wiz_spell_ready"
- var/list/obj/screen/spell/spell_objects = list()
+ var/list/atom/movable/screen/spell/spell_objects = list()
var/showing = 0
var/open_state = "master_open"
@@ -12,8 +12,8 @@
var/mob/spell_holder
-/obj/screen/movable/spell_master/Destroy()
- for(var/obj/screen/spell/spells in spell_objects)
+/atom/movable/screen/movable/spell_master/Destroy()
+ for(var/atom/movable/screen/spell/spells in spell_objects)
spells.spellmaster = null
spell_objects.Cut()
if(spell_holder)
@@ -24,22 +24,22 @@
. = ..()
-/obj/screen/movable/spell_master/MouseDrop()
+/atom/movable/screen/movable/spell_master/MouseDrop()
if(showing)
return
return ..()
-/obj/screen/movable/spell_master/Click()
+/atom/movable/screen/movable/spell_master/Click()
if(!spell_objects.len)
qdel(src)
return
toggle_open()
-/obj/screen/movable/spell_master/proc/toggle_open(var/forced_state = 0)
+/atom/movable/screen/movable/spell_master/proc/toggle_open(var/forced_state = 0)
if(showing && (forced_state != 2))
- for(var/obj/screen/spell/O in spell_objects)
+ for(var/atom/movable/screen/spell/O in spell_objects)
if(spell_holder && spell_holder.client)
spell_holder.client.screen -= O
O.handle_icon_updates = 0
@@ -53,7 +53,7 @@
ClearOverlays()
AddOverlays(open_state)
-/obj/screen/movable/spell_master/proc/open_spellmaster()
+/atom/movable/screen/movable/spell_master/proc/open_spellmaster()
var/list/screen_loc_xy = text2list(screen_loc,",")
//Create list of X offsets
@@ -67,7 +67,7 @@
var/y_pix = screen_loc_Y[2]
for(var/i = 1; i <= spell_objects.len; i++)
- var/obj/screen/spell/S = spell_objects[i]
+ var/atom/movable/screen/spell/S = spell_objects[i]
var/xpos = x_position + (x_position < 8 ? 1 : -1)*(i%7)
var/ypos = y_position + (y_position < 8 ? round(i/7) : -round(i/7))
S.screen_loc = "[encode_screen_X(xpos)]:[x_pix],[encode_screen_Y(ypos)]:[y_pix]"
@@ -75,7 +75,7 @@
spell_holder.client.screen += S
S.handle_icon_updates = 1
-/obj/screen/movable/spell_master/proc/add_spell(var/spell/spell)
+/atom/movable/screen/movable/spell_master/proc/add_spell(var/spell/spell)
if(!spell) return
if(spell.connected_button) //we have one already, for some reason
@@ -90,7 +90,7 @@
if(spell.spell_flags & NO_BUTTON) //no button to add if we don't get one
return
- var/obj/screen/spell/newscreen = new /obj/screen/spell
+ var/atom/movable/screen/spell/newscreen = new /atom/movable/screen/spell
newscreen.spellmaster = src
newscreen.spell = spell
@@ -109,7 +109,7 @@
if(spell_holder.client)
toggle_open(2) //forces the icons to refresh on screen
-/obj/screen/movable/spell_master/proc/remove_spell(var/spell/spell)
+/atom/movable/screen/movable/spell_master/proc/remove_spell(var/spell/spell)
qdel(spell.connected_button)
spell.connected_button = null
@@ -119,21 +119,21 @@
else
qdel(src)
-/obj/screen/movable/spell_master/proc/silence_spells(var/amount)
- for(var/obj/screen/spell/spell in spell_objects)
+/atom/movable/screen/movable/spell_master/proc/silence_spells(var/amount)
+ for(var/atom/movable/screen/spell/spell in spell_objects)
spell.spell.silenced = amount
spell.spell.process()
spell.update_charge(1)
-/obj/screen/movable/spell_master/proc/update_spells(forced = 0, mob/user)
+/atom/movable/screen/movable/spell_master/proc/update_spells(forced = 0, mob/user)
if(user && user.client)
if(!(src in user.client.screen))
user.client.screen += src
- for(var/obj/screen/spell/spell in spell_objects)
+ for(var/atom/movable/screen/spell/spell in spell_objects)
spell.update_charge(forced)
-/obj/screen/movable/spell_master/genetic
+/atom/movable/screen/movable/spell_master/genetic
name = "Mutant Powers"
icon_state = "genetic_spell_ready"
@@ -145,7 +145,7 @@
//////////////ACTUAL SPELLS//////////////
//This is what you click to cast things//
/////////////////////////////////////////
-/obj/screen/spell
+/atom/movable/screen/spell
icon = 'icons/mob/screen/spells.dmi'
icon_state = "wiz_spell_base"
var/spell_base = "wiz"
@@ -153,11 +153,11 @@
var/spell/spell = null
var/handle_icon_updates = 0
- var/obj/screen/movable/spell_master/spellmaster
+ var/atom/movable/screen/movable/spell_master/spellmaster
var/icon/last_charged_icon
-/obj/screen/spell/Destroy()
+/atom/movable/screen/spell/Destroy()
spell = null
last_charged_icon = null
if(spellmaster)
@@ -170,7 +170,7 @@
. = ..()
-/obj/screen/spell/proc/update_charge(var/forced_update = 0)
+/atom/movable/screen/spell/proc/update_charge(var/forced_update = 0)
if(!spell)
qdel(src)
return
@@ -208,7 +208,7 @@
if(spell.silenced)
AddOverlays("silence")
-/obj/screen/spell/Click()
+/atom/movable/screen/spell/Click()
if(!usr || !spell)
qdel(src)
return
diff --git a/code/controllers/subsystems/evacuation/evacuation_pods.dm b/code/controllers/subsystems/evacuation/evacuation_pods.dm
index 4d2c0a0327e..5fcadf358ac 100644
--- a/code/controllers/subsystems/evacuation/evacuation_pods.dm
+++ b/code/controllers/subsystems/evacuation/evacuation_pods.dm
@@ -171,7 +171,7 @@
if(evacuation_controller && evacuation_controller.cancel_evacuation())
log_and_message_admins("[key_name(user)] has cancelled the crew transfer.")
-/obj/screen/fullscreen/bluespace_overlay
+/atom/movable/screen/fullscreen/bluespace_overlay
icon = 'icons/effects/effects.dmi'
icon_state = "mfoam"
screen_loc = "WEST,SOUTH to EAST,NORTH"
diff --git a/code/controllers/subsystems/job.dm b/code/controllers/subsystems/job.dm
index 0e9d729fbdd..8a2562f3157 100644
--- a/code/controllers/subsystems/job.dm
+++ b/code/controllers/subsystems/job.dm
@@ -655,10 +655,13 @@ SUBSYSTEM_DEF(jobs)
log_loadout("EC/([H]): Abort: invalid arguments.")
return FALSE
- switch (job.title)
- if ("AI", "Cyborg")
- log_loadout("EC/([H]): Abort: synthetic.")
- return FALSE
+ // if it's for their preview mob, let them wear it
+ // so they can customize their loadout for their hologram
+ if(!istype(H, /mob/living/carbon/human/dummy/mannequin))
+ switch (job.title)
+ if ("AI", "Cyborg")
+ log_loadout("EC/([H]): Abort: synthetic.")
+ return FALSE
for(var/thing in prefs.gear)
var/datum/gear/G = gear_datums[thing]
diff --git a/code/controllers/subsystems/ticker.dm b/code/controllers/subsystems/ticker.dm
index 545d4df3239..7b255ae4e43 100644
--- a/code/controllers/subsystems/ticker.dm
+++ b/code/controllers/subsystems/ticker.dm
@@ -50,7 +50,7 @@ var/datum/controller/subsystem/ticker/SSticker
//station_explosion used to be a variable for every mob's hud. Which was a waste!
//Now we have a general cinematic centrally held within the gameticker....far more efficient!
- var/obj/screen/cinematic = null
+ var/atom/movable/screen/cinematic = null
var/list/default_lobby_tracks = list(
'sound/music/lobby/space.ogg',
@@ -609,7 +609,7 @@ var/datum/controller/subsystem/ticker/SSticker
for(var/mob/abstract/new_player/NP in GLOB.player_list)
if(!NP.client)
continue
- var/obj/screen/new_player/selection/join_game/JG = locate() in NP.client.screen
+ var/atom/movable/screen/new_player/selection/join_game/JG = locate() in NP.client.screen
JG.update_icon(NP)
to_world(SPAN_NOTICE("Enjoy the round!"))
if(SSatlas.current_sector.sector_welcome_message)
@@ -639,7 +639,7 @@ var/datum/controller/subsystem/ticker/SSticker
return //already a cinematic in progress!
//initialise our cinematic screen object
- cinematic = new /obj/screen{
+ cinematic = new /atom/movable/screen{
icon = 'icons/effects/station_explosion.dmi';
icon_state = "station_intact";
layer = HUD_ABOVE_ITEM_LAYER;
diff --git a/code/game/antagonist/station/vampire.dm b/code/game/antagonist/station/vampire.dm
index e3b2cc0b441..977d381ec4f 100644
--- a/code/game/antagonist/station/vampire.dm
+++ b/code/game/antagonist/station/vampire.dm
@@ -94,9 +94,9 @@ var/datum/antagonist/vampire/vamp = null
user.client.images += vampire.master_image
if(vampire.status & VAMP_ISTHRALL)
return
- vampire.blood_hud = new /obj/screen/vampire/blood()
- vampire.frenzy_hud = new /obj/screen/vampire/frenzy()
- vampire.blood_suck_hud = new /obj/screen/vampire/suck()
+ vampire.blood_hud = new /atom/movable/screen/vampire/blood()
+ vampire.frenzy_hud = new /atom/movable/screen/vampire/frenzy()
+ vampire.blood_suck_hud = new /atom/movable/screen/vampire/suck()
user.client.screen += vampire.blood_hud
user.client.screen += vampire.frenzy_hud
user.client.screen += vampire.blood_suck_hud
diff --git a/code/game/atoms.dm b/code/game/atoms.dm
index c9765d1c67d..f21659df7d6 100644
--- a/code/game/atoms.dm
+++ b/code/game/atoms.dm
@@ -115,7 +115,7 @@
SEND_SIGNAL(src, COMSIG_ATOM_EMP_ACT, severity, protection)
return protection // Pass the protection value collected here upwards
-/atom/proc/flash_act(intensity = FLASH_PROTECTION_MODERATE, override_blindness_check = FALSE, affect_silicon = FALSE, ignore_inherent = FALSE, type = /obj/screen/fullscreen/flash, length = 2.5 SECONDS)
+/atom/proc/flash_act(intensity = FLASH_PROTECTION_MODERATE, override_blindness_check = FALSE, affect_silicon = FALSE, ignore_inherent = FALSE, type = /atom/movable/screen/fullscreen/flash, length = 2.5 SECONDS)
return
/atom/proc/bullet_act(obj/projectile/P, def_zone)
@@ -266,17 +266,17 @@
return 0
if (H.gloves)
if(src.fingerprintslast != H.key)
- src.fingerprintshidden += text("\[[time_stamp()]\] (Wearing gloves). Real name: [], Key: []",H.real_name, H.key)
+ src.fingerprintshidden += "\[[time_stamp()]\] (Wearing gloves). Real name: [H.real_name], Key: [H.key]"
src.fingerprintslast = H.key
return 0
if (!( src.fingerprints ))
if(src.fingerprintslast != H.key)
- src.fingerprintshidden += text("\[[time_stamp()]\] Real name: [], Key: []",H.real_name, H.key)
+ src.fingerprintshidden += "\[[time_stamp()]\] Real name: [H.real_name], Key: [H.key]"
src.fingerprintslast = H.key
return 1
else
if(src.fingerprintslast != M.key)
- src.fingerprintshidden += text("\[[time_stamp()]\] Real name: [], Key: []",M.real_name, M.key)
+ src.fingerprintshidden += "\[[time_stamp()]\] Real name: [M.real_name], Key: [M.key]"
src.fingerprintslast = M.key
return
@@ -310,7 +310,7 @@
// Now, deal with gloves.
if (H.gloves && H.gloves != src)
if(fingerprintslast != H.key)
- fingerprintshidden += text("\[[]\](Wearing gloves). Real name: [], Key: []",time_stamp(), H.real_name, H.key)
+ fingerprintshidden += "\[[time_stamp()]\](Wearing gloves). Real name: [H.real_name], Key: [H.key]"
fingerprintslast = H.key
H.gloves.add_fingerprint(M)
@@ -323,7 +323,7 @@
// Admin related.
if(fingerprintslast != H.key)
- fingerprintshidden += text("\[[]\]Real name: [], Key: []",time_stamp(), H.real_name, H.key)
+ fingerprintshidden += "\[[time_stamp()]\]Real name: [H.real_name], Key: [H.key]"
fingerprintslast = H.key
// Make the list if it does not exist.
@@ -375,7 +375,7 @@
else
// Smudge up the prints a bit.
if(fingerprintslast != M.key)
- fingerprintshidden += text("\[[]\]Real name: [], Key: []",time_stamp(), M.real_name, M.key)
+ fingerprintshidden += "\[[time_stamp()]\]Real name: [M.real_name], Key: [M.key]"
fingerprintslast = M.key
// Cleaning up.
diff --git a/code/game/gamemodes/cult/items/tome.dm b/code/game/gamemodes/cult/items/tome.dm
index 0805979990d..14fa58e2785 100644
--- a/code/game/gamemodes/cult/items/tome.dm
+++ b/code/game/gamemodes/cult/items/tome.dm
@@ -32,8 +32,8 @@
attack_admins(M, user)
/obj/item/book/tome/proc/attack_admins(var/mob/living/M, var/mob/living/user)
- M.attack_log += text("\[[time_stamp()]\] Has had the [name] used on them by [user.name] ([user.ckey])")
- user.attack_log += text("\[[time_stamp()]\] Used [name] on [M.name] ([M.ckey])")
+ M.attack_log += "\[[time_stamp()]\] Has had the [name] used on them by [user.name] ([user.ckey])"
+ user.attack_log += "\[[time_stamp()]\] Used [name] on [M.name] ([M.ckey])"
msg_admin_attack("[key_name_admin(user)] used [name] on [M.name] ([M.ckey]) (JMP)",ckey=key_name(user),ckey_target=key_name(M))
diff --git a/code/game/gamemodes/endgame/bluespace_jump/bluespace_jump.dm b/code/game/gamemodes/endgame/bluespace_jump/bluespace_jump.dm
index 3eab559f814..754073f72f2 100644
--- a/code/game/gamemodes/endgame/bluespace_jump/bluespace_jump.dm
+++ b/code/game/gamemodes/endgame/bluespace_jump/bluespace_jump.dm
@@ -47,7 +47,7 @@
bluespaced += M
if(M.client)
to_chat(M,SPAN_NOTICE("You feel oddly light, and somewhat disoriented as everything around you shimmers and warps ever so slightly."))
- M.overlay_fullscreen("bluespace", /obj/screen/fullscreen/bluespace_overlay)
+ M.overlay_fullscreen("bluespace", /atom/movable/screen/fullscreen/bluespace_overlay)
M.confused = 20
/datum/universal_state/bluespace_jump/proc/clear_bluespaced(var/mob/living/M)
@@ -126,7 +126,7 @@
daddy.dust()
qdel(src)
-/obj/screen/fullscreen/bluespace_overlay
+/atom/movable/screen/fullscreen/bluespace_overlay
icon = 'icons/effects/effects.dmi'
icon_state = "mfoam"
screen_loc = "WEST,SOUTH to EAST,NORTH"
diff --git a/code/game/gamemodes/malfunction/newmalf_ability_trees/HELPERS.dm b/code/game/gamemodes/malfunction/newmalf_ability_trees/HELPERS.dm
index e4e9137f855..ecd1ffcefd5 100644
--- a/code/game/gamemodes/malfunction/newmalf_ability_trees/HELPERS.dm
+++ b/code/game/gamemodes/malfunction/newmalf_ability_trees/HELPERS.dm
@@ -239,7 +239,7 @@
/proc/log_ability_use(var/mob/living/silicon/ai/A, var/ability_name, var/atom/target = null, var/notify_admins = 1)
var/message
if(target)
- message = text("used malf ability/function: [ability_name] on [target] ([target.x], [target.y], [target.z])")
+ message = "used malf ability/function: [ability_name] on [target] ([target.x], [target.y], [target.z])"
else
- message = text("used malf ability/function: [ability_name].")
+ message = "used malf ability/function: [ability_name]."
admin_attack_log(A, null, message, null, message)
diff --git a/code/game/gamemodes/technomancer/core_obj.dm b/code/game/gamemodes/technomancer/core_obj.dm
index b4d279b8c27..f32f8d75446 100644
--- a/code/game/gamemodes/technomancer/core_obj.dm
+++ b/code/game/gamemodes/technomancer/core_obj.dm
@@ -65,7 +65,7 @@
/obj/item/technomancer_core/dropped(mob/user)
if(!wearer)
return
- for(var/obj/screen/ability/obj_based/technomancer/A in wearer.ability_master.ability_objects)
+ for(var/atom/movable/screen/ability/obj_based/technomancer/A in wearer.ability_master.ability_objects)
wearer.ability_master.remove_ability(A)
wearer = null
..()
@@ -221,7 +221,7 @@
if(spell_to_remove in spells)
spells.Remove(spell_to_remove)
if(wearer)
- var/obj/screen/ability/obj_based/technomancer/A = wearer.ability_master.get_ability_by_instance(spell_to_remove)
+ var/atom/movable/screen/ability/obj_based/technomancer/A = wearer.ability_master.get_ability_by_instance(spell_to_remove)
if(A)
wearer.ability_master.remove_ability(A)
qdel(spell_to_remove)
diff --git a/code/game/gamemodes/vampire/vampire_datum.dm b/code/game/gamemodes/vampire/vampire_datum.dm
index 89c241d2982..ddd05652c8a 100644
--- a/code/game/gamemodes/vampire/vampire_datum.dm
+++ b/code/game/gamemodes/vampire/vampire_datum.dm
@@ -10,9 +10,9 @@
var/status = 0 // Bitfield including different statuses.
var/stealth = TRUE // Do you want your victims to know of your sucking?
- var/obj/screen/blood_hud
- var/obj/screen/frenzy_hud
- var/obj/screen/blood_suck_hud
+ var/atom/movable/screen/blood_hud
+ var/atom/movable/screen/frenzy_hud
+ var/atom/movable/screen/blood_suck_hud
var/list/datum/power/vampire/purchased_powers = list() // List of power datums available for use.
var/obj/effect/dummy/veil_walk/holder = null // The veil_walk dummy.
diff --git a/code/game/gamemodes/vampire/vampire_helpers.dm b/code/game/gamemodes/vampire/vampire_helpers.dm
index 946188369b9..ca87fd7655e 100644
--- a/code/game/gamemodes/vampire/vampire_helpers.dm
+++ b/code/game/gamemodes/vampire/vampire_helpers.dm
@@ -13,8 +13,8 @@
vampire.blood_usable += 30
if(client)
- vampire.blood_hud = new /obj/screen/vampire/blood()
- vampire.frenzy_hud = new /obj/screen/vampire/frenzy()
+ vampire.blood_hud = new /atom/movable/screen/vampire/blood()
+ vampire.frenzy_hud = new /atom/movable/screen/vampire/frenzy()
client.screen += vampire.blood_hud
client.screen += vampire.frenzy_hud
@@ -193,7 +193,7 @@
visible_message(SPAN_DANGER("A dark aura manifests itself around [src.name], their eyes turning red and their composure changing to be more beast-like."),
SPAN_DANGER("You can resist no longer. The power of the Veil takes control over your mind: you are unable to speak or think. In people, you see nothing but prey to be feasted upon. You are reduced to an animal."))
- overlay_fullscreen("frenzy", /obj/screen/fullscreen/frenzy)
+ overlay_fullscreen("frenzy", /atom/movable/screen/fullscreen/frenzy)
mutations |= HULK
update_mutations()
@@ -270,13 +270,13 @@
if(client)
if(!vampire.blood_hud)
- vampire.blood_hud = new /obj/screen/vampire/blood()
+ vampire.blood_hud = new /atom/movable/screen/vampire/blood()
client.screen += vampire.blood_hud
if(!vampire.frenzy_hud)
- vampire.frenzy_hud = new /obj/screen/vampire/frenzy()
+ vampire.frenzy_hud = new /atom/movable/screen/vampire/frenzy()
client.screen += vampire.frenzy_hud
if(!vampire.blood_suck_hud)
- vampire.blood_suck_hud = new /obj/screen/vampire/suck()
+ vampire.blood_suck_hud = new /atom/movable/screen/vampire/suck()
client.screen += vampire.blood_suck_hud
vampire.blood_hud.maptext = SMALL_FONTS(7, vampire.blood_usable)
diff --git a/code/game/jobs/job/civilian.dm b/code/game/jobs/job/civilian.dm
index 72a0ee87826..e19d0274286 100644
--- a/code/game/jobs/job/civilian.dm
+++ b/code/game/jobs/job/civilian.dm
@@ -167,7 +167,7 @@
supervisors = "the executive officer"
selection_color = "#90524b"
access = list(ACCESS_JANITOR, ACCESS_MAINT_TUNNELS, ACCESS_ENGINE, ACCESS_RESEARCH, ACCESS_SEC_DOORS, ACCESS_MEDICAL)
- minimal_access = list(ACCESS_JANITOR, ACCESS_ENGINE, ACCESS_RESEARCH, ACCESS_SEC_DOORS, ACCESS_MEDICAL)
+ minimal_access = list(ACCESS_JANITOR, ACCESS_MAINT_TUNNELS, ACCESS_ENGINE, ACCESS_RESEARCH, ACCESS_SEC_DOORS, ACCESS_MEDICAL)
outfit = /obj/outfit/job/janitor
blacklisted_species = list(SPECIES_VAURCA_BREEDER)
diff --git a/code/game/jobs/job/job.dm b/code/game/jobs/job/job.dm
index 2230fca558a..7e3ab6c29fb 100644
--- a/code/game/jobs/job/job.dm
+++ b/code/game/jobs/job/job.dm
@@ -147,7 +147,7 @@
H.drop_from_inventory(H.w_uniform)
qdel(H.w_uniform)
- if(!(equip_preview_mob & EQUIP_PREVIEW_JOB_UNIFORM) && H.wear_suit && REF(H.wear_suit) != pre_suit_ref)
+ if(!(equip_preview_mob & EQUIP_PREVIEW_JOB_SUIT) && H.wear_suit && REF(H.wear_suit) != pre_suit_ref)
H.drop_from_inventory(H.wear_suit)
qdel(H.wear_suit)
diff --git a/code/game/jobs/job/security.dm b/code/game/jobs/job/security.dm
index 14c3b6af8c5..e115f72d31a 100644
--- a/code/game/jobs/job/security.dm
+++ b/code/game/jobs/job/security.dm
@@ -32,7 +32,7 @@
minimal_player_age = 14
outfit = /obj/outfit/job/hos
- blacklisted_species = list(SPECIES_HUMAN_OFFWORLD, SPECIES_TAJARA_ZHAN, SPECIES_DIONA, SPECIES_DIONA_COEUS, SPECIES_IPC_G1, SPECIES_IPC_G2, SPECIES_IPC_XION, SPECIES_IPC_ZENGHU, SPECIES_VAURCA_WORKER, SPECIES_VAURCA_WARRIOR, SPECIES_VAURCA_BULWARK, SPECIES_VAURCA_BREEDER)
+ blacklisted_species = list(SPECIES_HUMAN_OFFWORLD, SPECIES_TAJARA_ZHAN, SPECIES_DIONA, SPECIES_DIONA_COEUS, SPECIES_IPC_G1, SPECIES_IPC_G2, SPECIES_IPC_XION, SPECIES_VAURCA_WORKER, SPECIES_VAURCA_WARRIOR, SPECIES_VAURCA_BULWARK, SPECIES_VAURCA_BREEDER)
/obj/outfit/job/hos
name = "Head of Security"
@@ -98,7 +98,7 @@
minimal_player_age = 7
outfit = /obj/outfit/job/warden
- blacklisted_species = list(SPECIES_IPC_ZENGHU, SPECIES_IPC_G1, SPECIES_IPC_G2, SPECIES_IPC_XION, SPECIES_IPC_XION_REMOTE, SPECIES_VAURCA_BULWARK, SPECIES_DIONA_COEUS, SPECIES_VAURCA_BREEDER)
+ blacklisted_species = list(SPECIES_IPC_G1, SPECIES_IPC_G2, SPECIES_IPC_XION, SPECIES_IPC_XION_REMOTE, SPECIES_VAURCA_BULWARK, SPECIES_DIONA_COEUS, SPECIES_VAURCA_BREEDER)
/obj/outfit/job/warden
name = "Warden"
@@ -158,7 +158,7 @@
minimal_access = list(ACCESS_SECURITY, ACCESS_SEC_DOORS, ACCESS_FORENSICS_LOCKERS, ACCESS_MORGUE, ACCESS_WEAPONS)
minimal_player_age = 3
outfit = /obj/outfit/job/forensics
- blacklisted_species = list(SPECIES_IPC_ZENGHU, SPECIES_IPC_G1, SPECIES_IPC_G2, SPECIES_IPC_XION, SPECIES_IPC_XION_REMOTE, SPECIES_VAURCA_BULWARK, SPECIES_VAURCA_BREEDER)
+ blacklisted_species = list(SPECIES_IPC_G1, SPECIES_IPC_G2, SPECIES_IPC_XION, SPECIES_IPC_XION_REMOTE, SPECIES_VAURCA_BULWARK, SPECIES_VAURCA_BREEDER)
/obj/outfit/job/forensics
name = "Investigator"
@@ -213,7 +213,7 @@
minimal_player_age = 7
outfit = /obj/outfit/job/officer
- blacklisted_species = list(SPECIES_IPC_ZENGHU, SPECIES_IPC_G1, SPECIES_IPC_G2, SPECIES_IPC_XION, SPECIES_IPC_XION_REMOTE, SPECIES_VAURCA_BULWARK, SPECIES_DIONA_COEUS, SPECIES_VAURCA_BREEDER)
+ blacklisted_species = list(SPECIES_IPC_G1, SPECIES_IPC_G2, SPECIES_IPC_XION, SPECIES_IPC_XION_REMOTE, SPECIES_VAURCA_BULWARK, SPECIES_DIONA_COEUS, SPECIES_VAURCA_BREEDER)
/obj/outfit/job/officer
name = "Security Officer"
@@ -280,7 +280,7 @@
SPECIES_SKRELL_AXIORI = 50
)
- blacklisted_species = list(SPECIES_IPC_ZENGHU, SPECIES_IPC_G1, SPECIES_IPC_G2, SPECIES_IPC_XION, SPECIES_IPC_XION_REMOTE, SPECIES_VAURCA_BULWARK, SPECIES_DIONA_COEUS, SPECIES_VAURCA_BREEDER)
+ blacklisted_species = list(SPECIES_IPC_G1, SPECIES_IPC_G2, SPECIES_IPC_XION, SPECIES_IPC_XION_REMOTE, SPECIES_VAURCA_BULWARK, SPECIES_DIONA_COEUS, SPECIES_VAURCA_BREEDER)
/obj/outfit/job/intern_sec
name = "Security Cadet"
diff --git a/code/game/jobs/job/silicon.dm b/code/game/jobs/job/silicon.dm
index 753ad887fdc..25c72651431 100644
--- a/code/game/jobs/job/silicon.dm
+++ b/code/game/jobs/job/silicon.dm
@@ -50,10 +50,17 @@
economic_modifier = 0
/datum/job/cyborg/equip(var/mob/living/carbon/human/H, var/alt_title)
- if(!H) return 0
- return 1
+ if(!H)
+ return FALSE
+ return TRUE
+
+/datum/job/cyborg/equip_preview(mob/living/carbon/human/H, datum/preferences/prefs, var/alt_title, var/faction_override)
+ var/equip_preview_mob = prefs.equip_preview_mob
+
+ if(equip_preview_mob & EQUIP_PREVIEW_JOB_HAT)
+ H.equip_to_slot_or_del(new /obj/item/clothing/head/cardborg(H), slot_head)
+
+ if(equip_preview_mob & EQUIP_PREVIEW_JOB_SUIT)
+ H.equip_to_slot_or_del(new /obj/item/clothing/suit/cardborg(H), slot_wear_suit)
-/datum/job/cyborg/equip_preview(mob/living/carbon/human/H)
- H.equip_to_slot_or_del(new /obj/item/clothing/suit/cardborg(H), slot_wear_suit)
- H.equip_to_slot_or_del(new /obj/item/clothing/head/cardborg(H), slot_head)
- return 1
+ return TRUE
diff --git a/code/game/machinery/ai_slipper.dm b/code/game/machinery/ai_slipper.dm
index c0223bb1f11..ac3f286e735 100644
--- a/code/game/machinery/ai_slipper.dm
+++ b/code/game/machinery/ai_slipper.dm
@@ -62,7 +62,7 @@
return
if ( (get_dist(src, user) > 1 ))
if (!istype(user, /mob/living/silicon))
- to_chat(user, text("Too far away."))
+ to_chat(user, "Too far away.")
user.unset_machine()
user << browse(null, "window=ai_slipper")
return
@@ -72,7 +72,7 @@
if (istype(loc, /turf))
loc = loc:loc
if (!istype(loc, /area))
- to_chat(user, text("Turret badly positioned - loc.loc is [].", loc))
+ to_chat(user, "Turret badly positioned - loc.loc is [loc].")
return
var/area/area = loc
var/t = "AI Liquid Dispenser ([area.name])
"
@@ -81,7 +81,7 @@
t += "(Swipe ID card to unlock control panel.)
"
else
t += "Dispenser [(src.disabled ? "deactivated" : "activated")] - [(src.disabled ? "Enable" : "Disable")]?
\n"
- t += text("Uses Left: [uses]. Activate the dispenser?
\n")
+ t += "Uses Left: [uses]. Activate the dispenser?
\n"
user << browse(t, "window=computer;size=575x450")
onclose(user, "computer")
diff --git a/code/game/machinery/atmoalter/canister.dm b/code/game/machinery/atmoalter/canister.dm
index 68d338ad677..d5755f82dd8 100644
--- a/code/game/machinery/atmoalter/canister.dm
+++ b/code/game/machinery/atmoalter/canister.dm
@@ -278,7 +278,7 @@ update_flag
if (src.destroyed)
ClearOverlays()
set_light(FALSE)
- src.icon_state = text("[]-1", src.canister_color)
+ src.icon_state = "[src.canister_color]-1"
return
if(icon_state != "[canister_color]")
diff --git a/code/game/machinery/body_scanner.dm b/code/game/machinery/body_scanner.dm
index 192dd6aacf8..b183c51f521 100644
--- a/code/game/machinery/body_scanner.dm
+++ b/code/game/machinery/body_scanner.dm
@@ -786,48 +786,48 @@
dat += ""
dat += "Patient Status
"
dat += ""
- dat += text("Name: []
", occ["name"])
- dat += text("Status: []
", occ["stat"])
- dat += text("Species: []
", occ["species"])
- dat += text("Pulse: [] BPM
", occ["pulse"])
- dat += text("Brain Activity: []
", occ["brain_activity"])
- dat += text("Body Temperature: []°C ", (occ["bodytemp"] - T0C))
- dat += text("([]°F)
", (occ["bodytemp"]*1.8-459.67))
+ dat += "Name: [occ["name"]]
"
+ dat += "Status: [occ["stat"]]
"
+ dat += "Species: [occ["species"]]
"
+ dat += "Pulse: [occ["pulse"]] BPM
"
+ dat += "Brain Activity: [occ["brain_activity"]]
"
+ dat += "Body Temperature: [(occ["bodytemp"] - T0C)]°C "
+ dat += "([(occ["bodytemp"]*1.8-459.67)]°F)
"
dat += "
Blood Status
"
- dat += text("Blood Pressure: []
", occ["blood_pressure"])
- dat += text("Blood Oxygenation: []%
", occ["blood_oxygenation"])
- dat += text("Blood Volume: []%
", occ["blood_volume"])
- dat += text("Blood Type: []
", occ["blood_type"])
+ dat += "Blood Pressure: [occ["blood_pressure"]]
"
+ dat += "Blood Oxygenation: [occ["blood_oxygenation"]]%
"
+ dat += "Blood Volume: [occ["blood_volume"]]%
"
+ dat += "Blood Type: [occ["blood_type"]]
"
if(occ["inaprovaline_amount"])
- dat += text("Inaprovaline: [] units
", occ["inaprovaline_amount"])
+ dat += "Inaprovaline: [occ["inaprovaline_amount"]] units
"
if(occ["soporific_amount"])
- dat += text("Soporific: [] units
", occ["soporific_amount"])
+ dat += "Soporific: [occ["soporific_amount"]] units
"
if(occ["dermaline_amount"])
- dat += text("[]\tDermaline: [] units
", (""), occ["dermaline_amount"])
+ dat += "[("")]\tDermaline: [occ["dermaline_amount"]] units
"
if(occ["bicaridine_amount"])
- dat += text("[]\tBicaridine: [] units
", (""), occ["bicaridine_amount"])
+ dat += "[("")]\tBicaridine: [occ["bicaridine_amount"]] units
"
if(occ["dexalin_amount"])
- dat += text("[]\tDexalin: [] units
", (""), occ["dexalin_amount"])
+ dat += "[("")]\tDexalin: [occ["dexalin_amount"]] units
"
if(occ["thetamycin_amount"])
- dat += text("[]\tThetamycin: [] units
", (""), occ["thetamycin_amount"])
+ dat += "[("")]\tThetamycin: [occ["thetamycin_amount"]] units
"
if(occ["other_amount"])
- dat += text("Other: [] units
", occ["other_amount"])
+ dat += "Other: [occ["other_amount"]] units
"
dat += "
Symptom Status
"
- dat += text("Radiation Level: [] Gy
", round(occ["rads"]))
- dat += text("Genetic Damage: []
", occ["cloneloss"])
+ dat += "Radiation Level: [round(occ["rads"])] Gy
"
+ dat += "Genetic Damage: [occ["cloneloss"]]
"
if(occ["paralysis"])
- dat += text("Est Paralysis Level: [] Seconds Left
", round(occ["paralysis"] / 4))
+ dat += "Est Paralysis Level: [round(occ["paralysis"] / 4)] Seconds Left
"
else
- dat += text("Est Paralysis Level: None
")
+ dat += "Est Paralysis Level: None
"
dat += "
Damage Status
"
- dat += text("Brute Trauma: []
", occ["bruteloss"])
- dat += text("Burn Severity: []
", occ["fireloss"])
- dat += text("Oxygen Deprivation: []
", occ["oxyloss"])
- dat += text("Toxin Exposure: []
", occ["toxloss"])
+ dat += "Brute Trauma: [occ["bruteloss"]]
"
+ dat += "Burn Severity: [occ["fireloss"]]
"
+ dat += "Oxygen Deprivation: [occ["oxyloss"]]
"
+ dat += "Toxin Exposure: [occ["toxloss"]]
"
dat += "
Body Status
"
diff --git a/code/game/machinery/camera/camera.dm b/code/game/machinery/camera/camera.dm
index 0034217df47..b8dc9b5dfe6 100644
--- a/code/game/machinery/camera/camera.dm
+++ b/code/game/machinery/camera/camera.dm
@@ -237,7 +237,7 @@
var/obj/machinery/computer/security/S = O.machine
if (S.current_camera == src)
to_chat(O, "[U] holds \a [itemname] up to one of the cameras ...")
- O << browse(text("[][]", itemname, info), text("window=[]", itemname)) //Force people watching to open the page so they can't see it again)
+ O << browse("[itemname][info]", "window=[itemname]") //Force people watching to open the page so they can't see it again)
return TRUE
else if (istype(attacking_item, /obj/item/camera_bug))
diff --git a/code/game/machinery/camera/tracking.dm b/code/game/machinery/camera/tracking.dm
index f1601759bde..82480afdd36 100644
--- a/code/game/machinery/camera/tracking.dm
+++ b/code/game/machinery/camera/tracking.dm
@@ -16,7 +16,7 @@
for (var/obj/machinery/camera/C in GLOB.cameranet.cameras)
var/list/tempnetwork = C.network&src.network
if (tempnetwork.len)
- T[text("[][]", C.c_tag, (C.can_use() ? null : " (Deactivated)"))] = C
+ T["[C.c_tag][(C.can_use() ? null : " (Deactivated)")]"] = C
track = new()
track.cameras = T
@@ -113,7 +113,7 @@
var/name = M.name
if (name in TB.names)
TB.namecounts[name]++
- name = text("[] ([])", name, TB.namecounts[name])
+ name = "[name] ([TB.namecounts[name]])"
else
TB.names.Add(name)
TB.namecounts[name] = 1
diff --git a/code/game/machinery/computer/shuttle.dm b/code/game/machinery/computer/shuttle.dm
index 505351cf223..adf9ebeafee 100644
--- a/code/game/machinery/computer/shuttle.dm
+++ b/code/game/machinery/computer/shuttle.dm
@@ -41,7 +41,7 @@
to_chat(user, "The access level of [id.registered_name]\'s card is not high enough. ")
return 0
- var/choice = alert(user, text("Would you like to (un)authorize a shortened launch time? [] authorization\s are still needed. Use abort to cancel all authorizations.", src.auth_need - src.authorized.len), "Shuttle Launch", "Authorize", "Repeal", "Abort")
+ var/choice = alert(user, "Would you like to (un)authorize a shortened launch time? [(src.auth_need - src.authorized.len)] authorization\s are still needed. Use abort to cancel all authorizations.", "Shuttle Launch", "Authorize", "Repeal", "Abort")
if(evacuation_controller.is_prepared() && user.get_active_hand() != id)
return 0
switch(choice)
diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm
index 34e0b9e576f..79f61ed2ad7 100644
--- a/code/game/machinery/doors/airlock.dm
+++ b/code/game/machinery/doors/airlock.dm
@@ -915,10 +915,10 @@ About the new airlock wires panel:
/obj/machinery/door/airlock/proc/electrify(var/duration, var/feedback = 0)
var/message = ""
if(isWireCut(WIRE_SHOCK) && arePowerSystemsOn())
- message = text("The electrification wire is cut - Door permanently electrified.")
+ message ="The electrification wire is cut - Door permanently electrified."
electrified_until = -1
else if(duration && !arePowerSystemsOn())
- message = text("The door is unpowered - Cannot electrify the door.")
+ message = "The door is unpowered - Cannot electrify the door."
electrified_until = 0
else if(!duration && electrified_until != 0)
message = "The door is now un-electrified."
@@ -926,7 +926,7 @@ About the new airlock wires panel:
else if(duration) //electrify door for the given duration seconds
if(usr)
LAZYADD(shockedby, "\[[time_stamp()]\] - [usr](ckey:[usr.ckey])")
- usr.attack_log += text("\[[time_stamp()]\] Electrified the [name] at [x] [y] [z]")
+ usr.attack_log += "\[[time_stamp()]\] Electrified the [name] at [x] [y] [z]"
else
LAZYADD(shockedby, "\[[time_stamp()]\] - EMP)")
message = "The door is now electrified [duration == -1 ? "permanently" : "for [duration] second\s"]."
@@ -956,7 +956,7 @@ About the new airlock wires panel:
var/message = ""
// Safeties! We don't need no stinking safeties!
if (src.isWireCut(WIRE_SAFETY))
- message = text("The safety wire is cut - Cannot enable safeties.")
+ message = "The safety wire is cut - Cannot enable safeties."
else if (!activate && src.safe)
safe = FALSE
else if (activate && !src.safe)
@@ -1231,7 +1231,7 @@ About the new airlock wires panel:
if("timing")
// Door speed control
if(src.isWireCut(WIRE_TIMING))
- to_chat(usr, text("The timing wire is cut - Cannot alter timing."))
+ to_chat(usr, "The timing wire is cut - Cannot alter timing.")
else if (activate && src.normalspeed)
normalspeed = FALSE
else if (!activate && !src.normalspeed)
@@ -1617,7 +1617,7 @@ About the new airlock wires panel:
if("timing")
// Door speed control
if(src.isWireCut(WIRE_TIMING))
- to_chat(usr, text("The timing wire is cut - Cannot alter timing."))
+ to_chat(usr, "The timing wire is cut - Cannot alter timing.")
else if (activate && src.normalspeed)
normalspeed = FALSE
else if (!activate && !src.normalspeed)
diff --git a/code/game/machinery/doors/airlock_electronics.dm b/code/game/machinery/doors/airlock_electronics.dm
index c039bb1fcea..e64c49a4745 100644
--- a/code/game/machinery/doors/airlock_electronics.dm
+++ b/code/game/machinery/doors/airlock_electronics.dm
@@ -20,7 +20,7 @@
if(!ishuman(user) && !istype(user,/mob/living/silicon/robot))
return ..(user)
- var/t1 = text("Access Control
\n")
+ var/t1 = "Access Control
\n"
if(last_configurator)
t1 += "Operator: [last_configurator]
"
diff --git a/code/game/machinery/mecha_fabricator.dm b/code/game/machinery/mecha_fabricator.dm
index fc0612104a2..7754a8b08bc 100644
--- a/code/game/machinery/mecha_fabricator.dm
+++ b/code/game/machinery/mecha_fabricator.dm
@@ -224,8 +224,8 @@
if(target != user && !user.restrained() && !user.stat && !user.weakened && !user.stunned && !user.paralysis)
user.visible_message(SPAN_WARNING("[user] feeds the [target]'s hair into the [src] and flicks it on!"), SPAN_ALERT("You turn the [src] on!"))
do_hair_pull(target)
- user.attack_log += text("\[[time_stamp()]\] Has fed [target.name]'s ([target.ckey]) hair into a [src].")
- target.attack_log += text("\[[time_stamp()]\] Has had their hair fed into [src] by [user.name] ([user.ckey])")
+ user.attack_log += "\[[time_stamp()]\] Has fed [target.name]'s ([target.ckey]) hair into a [src]."
+ target.attack_log += "\[[time_stamp()]\] Has had their hair fed into [src] by [user.name] ([user.ckey])"
msg_admin_attack("[key_name_admin(user)] fed [key_name_admin(target)] in a [src]. (JMP)",ckey=key_name(user),ckey_target=key_name(target))
else
return
diff --git a/code/game/machinery/newscaster.dm b/code/game/machinery/newscaster.dm
index 918dfb4fe24..e4e6439e7e2 100644
--- a/code/game/machinery/newscaster.dm
+++ b/code/game/machinery/newscaster.dm
@@ -295,7 +295,7 @@ var/list/obj/machinery/newscaster/allCasters = list()
if(istype(user, /mob/living/carbon/human) || istype(user,/mob/living/silicon) )
var/mob/living/human_or_robot_user = user
var/dat
- dat = text("Newscaster Unit #[src.unit_no]
")
+ dat = "Newscaster Unit #[src.unit_no]
"
src.scan_user(human_or_robot_user) //Newscaster scans you
diff --git a/code/game/machinery/nuclear_bomb.dm b/code/game/machinery/nuclear_bomb.dm
index aea53123609..9a0904f7571 100644
--- a/code/game/machinery/nuclear_bomb.dm
+++ b/code/game/machinery/nuclear_bomb.dm
@@ -247,7 +247,7 @@ var/bomb_set
yes_code = 0
code = null
else
- lastentered = text("[]", href_list["type"])
+ lastentered = "[href_list["type"]]"
if (text2num(lastentered) == null)
var/turf/LOC = get_turf(usr)
message_admins("[key_name_admin(usr)] tried to exploit a nuclear bomb by entering non-numerical codes: [lastentered]! ([LOC ? "JMP" : "null"])", 0)
diff --git a/code/game/machinery/overview.dm b/code/game/machinery/overview.dm
index d9b6c8a0b2e..dd8de7c71f0 100644
--- a/code/game/machinery/overview.dm
+++ b/code/game/machinery/overview.dm
@@ -157,7 +157,7 @@
for(var/i=0; iVerified by [T.registered_name], [T.assignment]")
+ msgVerified = "Verified by [T.registered_name], [T.assignment]"
updateUsrDialog()
if(screen == RCS_ANNOUNCE)
var/obj/item/card/id/ID = attacking_item
diff --git a/code/game/machinery/suit_storage_unit.dm b/code/game/machinery/suit_storage_unit.dm
index 5ccb66ba855..84bf3955c9b 100644
--- a/code/game/machinery/suit_storage_unit.dm
+++ b/code/game/machinery/suit_storage_unit.dm
@@ -139,13 +139,13 @@
dat+= ""
dat+= "U-Stor-It Suit Storage Unit, model DS1900
"
dat+= "Welcome to the Unit control panel.
"
- dat+= text("Helmet storage compartment: []
",(src.HELMET ? HELMET.name : "No helmet detected.") )
+ dat+= "Helmet storage compartment: [(src.HELMET ? HELMET.name : "No helmet detected.")]
"
if(HELMET && src.isopen)
dat += "Dispense helmet
"
- dat+= text("Suit storage compartment: []
",(src.SUIT ? SUIT.name : "No exosuit detected.") )
+ dat+= "Suit storage compartment: [(src.SUIT ? SUIT.name : "No exosuit detected.")]
"
if(SUIT && src.isopen)
dat += "Dispense suit
"
- dat+= text("Breathmask storage compartment: []
",(src.MASK ? MASK.name : "No breathmask detected.") )
+ dat+= "Breathmask storage compartment: [(src.MASK ? MASK.name : "No breathmask detected.")]
"
if(MASK && src.isopen)
dat += "Dispense mask
"
if(src.OCCUPANT)
diff --git a/code/game/machinery/telecomms/machines/message_server.dm b/code/game/machinery/telecomms/machines/message_server.dm
index 94539f0f08f..164b9152c05 100644
--- a/code/game/machinery/telecomms/machines/message_server.dm
+++ b/code/game/machinery/telecomms/machines/message_server.dm
@@ -131,7 +131,7 @@
if(2)
if(!Console.silent)
playsound(Console.loc, 'sound/machines/twobeep.ogg', 50, 1)
- Console.audible_message(text("[icon2html(Console, viewers(get_turf(Console)))] *The Requests Console beeps: 'PRIORITY Alert in [sender]'"),,5)
+ Console.audible_message("[icon2html(Console, viewers(get_turf(Console)))] *The Requests Console beeps: 'PRIORITY Alert in [sender]'",,5)
Console.message_log += "High Priority message from [sender]
[authmsg]"
for(var/obj/item/modular_computer/pda in Console.alert_pdas)
var/pda_message = "A high priority message has arrived!"
@@ -139,7 +139,7 @@
else
if(!Console.silent)
playsound(Console.loc, 'sound/machines/twobeep.ogg', 50, 1)
- Console.audible_message(text("[icon2html(Console, viewers(get_turf(Console)))] *The Requests Console beeps: 'Message from [sender]'"),,4)
+ Console.audible_message("[icon2html(Console, viewers(get_turf(Console)))] *The Requests Console beeps: 'Message from [sender]'",,4)
Console.message_log += "Message from [sender]
[authmsg]"
for(var/obj/item/modular_computer/pda in Console.alert_pdas)
var/pda_message = "A message has arrived!"
diff --git a/code/game/objects/effects/landmarks.dm b/code/game/objects/effects/landmarks.dm
index 2e528b14905..4d5a2fca6b4 100644
--- a/code/game/objects/effects/landmarks.dm
+++ b/code/game/objects/effects/landmarks.dm
@@ -11,7 +11,7 @@
INITIALIZE_IMMEDIATE(/obj/effect/landmark)
/obj/effect/landmark/Initialize(mapload)
. = ..()
- tag = text("landmark*[]", name)
+ tag = "landmark*[name]"
GLOB.landmarks_list += src
/obj/effect/landmark/Destroy()
diff --git a/code/game/objects/effects/manifest.dm b/code/game/objects/effects/manifest.dm
index c530be8e4af..d6969045c2e 100644
--- a/code/game/objects/effects/manifest.dm
+++ b/code/game/objects/effects/manifest.dm
@@ -11,7 +11,7 @@
/obj/effect/manifest/proc/manifest()
var/dat = "Crew Manifest:
"
for(var/mob/living/carbon/human/M in GLOB.mob_list)
- dat += text(" [] - []
", M.name, M.get_assignment())
+ dat += " [M.name] - [M.get_assignment()]
"
var/obj/item/paper/P = new /obj/item/paper( src.loc )
P.info = dat
P.name = "paper- 'Crew Manifest'"
diff --git a/code/game/objects/items/devices/flash.dm b/code/game/objects/items/devices/flash.dm
index f44e66c636f..ad651bb6a36 100644
--- a/code/game/objects/items/devices/flash.dm
+++ b/code/game/objects/items/devices/flash.dm
@@ -97,8 +97,8 @@
attack_self(user)
return
- L.attack_log += text("\[[time_stamp()]\] Has been flashed (attempt) with [src.name] by [user.name] ([user.ckey])")
- user.attack_log += text("\[[time_stamp()]\] Used the [src.name] to flash [L.name] ([L.ckey])")
+ L.attack_log += "\[[time_stamp()]\] Has been flashed (attempt) with [src.name] by [user.name] ([user.ckey])"
+ user.attack_log += "\[[time_stamp()]\] Used the [src.name] to flash [L.name] ([L.ckey])"
msg_admin_attack("[user.name] ([user.ckey]) Used the [src.name] to flash [L.name] ([L.ckey]) (JMP)",ckey=key_name(user),ckey_target=key_name(L))
user.setClickCooldown(DEFAULT_ATTACK_COOLDOWN)
diff --git a/code/game/objects/items/devices/traitordevices.dm b/code/game/objects/items/devices/traitordevices.dm
index 34a7d6c5a86..26c32d1069a 100644
--- a/code/game/objects/items/devices/traitordevices.dm
+++ b/code/game/objects/items/devices/traitordevices.dm
@@ -35,7 +35,7 @@ effective or pretty fucking useless.
to_chat(user, SPAN_WARNING("The mind batterer has been burnt out!"))
return
- user.attack_log += text("\[[time_stamp()]\] Used [src] to knock down people in the area.")
+ user.attack_log += "\[[time_stamp()]\] Used [src] to knock down people in the area."
for(var/mob/living/carbon/human/M in orange(10, user))
if(prob(50))
diff --git a/code/game/objects/items/stacks/wrap.dm b/code/game/objects/items/stacks/wrap.dm
index fd17e7469fc..01f9d2abaac 100644
--- a/code/game/objects/items/stacks/wrap.dm
+++ b/code/game/objects/items/stacks/wrap.dm
@@ -44,7 +44,7 @@
var/obj/item/gift/G = new /obj/item/gift(src.loc)
G.size = attacking_item.w_class
G.w_class = G.size + 1
- G.icon_state = text("gift[]", G.size)
+ G.icon_state = "gift[G.size]"
G.gift = attacking_item
attacking_item.forceMove(G)
G.add_fingerprint(user)
@@ -82,8 +82,8 @@
H.forceMove(present)
- H.attack_log += text("\[[time_stamp()]\] Has been wrapped with [src.name] by [user.name] ([user.ckey])")
- user.attack_log += text("\[[time_stamp()]\] Used the [src.name] to wrap [H.name] ([H.ckey])")
+ H.attack_log += "\[[time_stamp()]\] Has been wrapped with [src.name] by [user.name] ([user.ckey])"
+ user.attack_log += "\[[time_stamp()]\] Used the [src.name] to wrap [H.name] ([H.ckey])"
msg_admin_attack("[key_name_admin(user)] used [src] to wrap [key_name_admin(H)] (JMP)",ckey=key_name(user),ckey_target=key_name(H))
else
@@ -123,7 +123,7 @@
if(user in target) //no wrapping closets that you are inside - it's not physically possible
return
- user.attack_log += text("\[[time_stamp()]\] Has used [src.name] on [REF(target)]")
+ user.attack_log += "\[[time_stamp()]\] Has used [src.name] on [REF(target)]"
if(istype(target, /obj/item) && !(istype(target, /obj/item/storage) && !istype(target,/obj/item/storage/box)))
var/obj/item/O = target
diff --git a/code/game/objects/items/weapons/AI_modules.dm b/code/game/objects/items/weapons/AI_modules.dm
index 22a69e5f883..39060a2865c 100755
--- a/code/game/objects/items/weapons/AI_modules.dm
+++ b/code/game/objects/items/weapons/AI_modules.dm
@@ -110,7 +110,7 @@ AI MODULES
..()
var/targName = sanitize(input("Please enter the name of the person to safeguard.", "Safeguard who?", user.name))
targetName = targName
- desc = text("A 'safeguard' AI module: 'Safeguard []. Anyone threatening or attempting to harm [] is no longer to be considered a crew member, and is a threat which must be neutralized.'", targetName, targetName)
+ desc = "A 'safeguard' AI module: 'Safeguard [targetName]. Anyone threatening or attempting to harm [targetName] is no longer to be considered a crew member, and is a threat which must be neutralized.'"
/obj/item/aiModule/safeguard/install(var/obj/machinery/computer/C)
if(!targetName)
@@ -119,7 +119,7 @@ AI MODULES
..()
/obj/item/aiModule/safeguard/addAdditionalLaws(var/mob/living/silicon/ai/target, var/mob/sender)
- var/law = text("Safeguard []. Anyone threatening or attempting to harm [] is no longer to be considered a crew member, and is a threat which must be neutralized.", targetName, targetName)
+ var/law = "Safeguard [targetName]. Anyone threatening or attempting to harm [targetName] is no longer to be considered a crew member, and is a threat which must be neutralized."
target.add_supplied_law(9, law)
GLOB.lawchanges.Add("The law specified [targetName]")
@@ -136,7 +136,7 @@ AI MODULES
..()
var/targName = sanitize(input("Please enter the name of the person who is the only crew member.", "Who?", user.real_name))
targetName = targName
- desc = text("A 'one crew member' AI module: 'Only [] is a crew member.'", targetName)
+ desc = "A 'one crew member' AI module: 'Only [targetName] is a crew member.'"
/obj/item/aiModule/oneHuman/install(var/obj/machinery/computer/C)
if(!targetName)
diff --git a/code/game/objects/items/weapons/cards_ids.dm b/code/game/objects/items/weapons/cards_ids.dm
index 9912145aaf8..3f119de1b71 100644
--- a/code/game/objects/items/weapons/cards_ids.dm
+++ b/code/game/objects/items/weapons/cards_ids.dm
@@ -42,7 +42,7 @@
set src in usr
if (t)
- src.name = text("data disk- '[]'", t)
+ src.name = "data disk- '[t]'"
else
src.name = "data disk"
src.add_fingerprint(usr)
@@ -185,16 +185,16 @@ var/const/NO_EMAG_ACT = -50
/obj/item/card/id/proc/dat()
var/dat = ("")
- dat += text("Name: [] ", registered_name)
- dat += text("Age: [] \n", age)
- dat += text("Sex: [] \n", sex)
- dat += text("Citizenship: [] \n", citizenship)
- dat += text("Assignment and Employer: [] \n", assignment)
- dat += text("Blood Type: [] \n", blood_type)
- dat += text("Fingerprint Hash: [] \n", fingerprint_hash)
- dat += text("DNA Hash: []\n", dna_hash)
+ dat += "Name: [registered_name] "
+ dat += "Age: [age] \n"
+ dat += "Sex: [sex] \n"
+ dat += "Citizenship: [citizenship] \n"
+ dat += "Assignment and Employer: [assignment] \n"
+ dat += "Blood Type: [blood_type] \n"
+ dat += "Fingerprint Hash: [fingerprint_hash] \n"
+ dat += "DNA Hash: [dna_hash]\n"
if(mining_points)
- dat += text(" Ore Redemption Points: []\n", mining_points)
+ dat += " Ore Redemption Points: [mining_points]\n"
if(front && side)
dat +=" | Front and Side Photograph
| "
dat += "
"
diff --git a/code/game/objects/items/weapons/dna_injector.dm b/code/game/objects/items/weapons/dna_injector.dm
index 35d183c73de..214e8428254 100644
--- a/code/game/objects/items/weapons/dna_injector.dm
+++ b/code/game/objects/items/weapons/dna_injector.dm
@@ -132,8 +132,8 @@
if((buf.types & DNA2_BUF_SE) && (block ? (GetState() && block == MONKEYBLOCK) : GetState(MONKEYBLOCK)))
injected_with_monkey = SPAN_DANGER(" (MONKEY)")
- M.attack_log += text("\[[time_stamp()]\] Has been injected with [name] by [user.name] ([user.ckey])")
- user.attack_log += text("\[[time_stamp()]\] Used the [name] to inject [M.name] ([M.ckey])")
+ M.attack_log += "\[[time_stamp()]\] Has been injected with [name] by [user.name] ([user.ckey])"
+ user.attack_log += "\[[time_stamp()]\] Used the [name] to inject [M.name] ([M.ckey])"
log_attack("[user.name] ([user.ckey]) used the [name] to inject [M.name] ([M.ckey])")
message_admins("[key_name_admin(user)] injected [key_name_admin(M)] with \the [src][injected_with_monkey]")
diff --git a/code/game/objects/items/weapons/handcuffs.dm b/code/game/objects/items/weapons/handcuffs.dm
index dd8b3ee8587..ab957793934 100644
--- a/code/game/objects/items/weapons/handcuffs.dm
+++ b/code/game/objects/items/weapons/handcuffs.dm
@@ -83,8 +83,8 @@
return
if(user)
- H.attack_log += text("\[[time_stamp()]\] Has been handcuffed (attempt) by [user.name] ([user.ckey])")
- user.attack_log += text("\[[time_stamp()]\] Attempted to handcuff [H.name] ([H.ckey])")
+ H.attack_log += "\[[time_stamp()]\] Has been handcuffed (attempt) by [user.name] ([user.ckey])"
+ user.attack_log += "\[[time_stamp()]\] Attempted to handcuff [H.name] ([H.ckey])"
msg_admin_attack("[key_name_admin(user)] attempted to handcuff [key_name_admin(H)] (JMP)",ckey=key_name(user),ckey_target=key_name(H))
feedback_add_details("handcuffs","H")
@@ -133,7 +133,7 @@
var/s = SPAN_WARNING("[H] chews on [H.get_pronoun("his")] [O.name]!")
H.visible_message(s, SPAN_WARNING("You chew on your [O.name]!"))
message_admins("[key_name_admin(H)] is chewing on [H.get_pronoun("his")] restrained hand - (JMP)")
- H.attack_log += text("\[[time_stamp()]\] [s] ([H.ckey])")
+ H.attack_log += "\[[time_stamp()]\] [s] ([H.ckey])"
log_attack("[s] ([H.ckey])")
if(O.take_damage(3, 0, damage_flags = DAMAGE_FLAG_SHARP|DAMAGE_FLAG_EDGE, used_weapon = "teeth marks"))
diff --git a/code/game/objects/items/weapons/implants/implanter.dm b/code/game/objects/items/weapons/implants/implanter.dm
index 5afac4afa77..0d4edee4f07 100644
--- a/code/game/objects/items/weapons/implants/implanter.dm
+++ b/code/game/objects/items/weapons/implants/implanter.dm
@@ -100,8 +100,8 @@
user.visible_message(SPAN_WARNING("\The [user] tags \the [M] with \the [src]!"), SPAN_NOTICE("You tag \the [M] with \the [src]."), range = 3)
- M.attack_log += text("\[[time_stamp()]\] Implanted with [name] ([ipc_tag.name]) by [user.name] ([user.ckey])")
- user.attack_log += text("\[[time_stamp()]\] Used the [name] ([ipc_tag.name]) to implant [M.name] ([M.ckey])")
+ M.attack_log += "\[[time_stamp()]\] Implanted with [name] ([ipc_tag.name]) by [user.name] ([user.ckey])"
+ user.attack_log += "\[[time_stamp()]\] Used the [name] ([ipc_tag.name]) to implant [M.name] ([M.ckey])"
msg_admin_attack("[key_name_admin(user)] implanted [key_name_admin(M)] with [name] (INTENT: [uppertext(user.a_intent)]) (JMP)",ckey=key_name(user),ckey_target=key_name(M))
ipc_tag.replaced(H, H.organs_by_name[BP_HEAD])
diff --git a/code/game/objects/items/weapons/material/kitchen.dm b/code/game/objects/items/weapons/material/kitchen.dm
index 033961f41d9..8618026da0a 100644
--- a/code/game/objects/items/weapons/material/kitchen.dm
+++ b/code/game/objects/items/weapons/material/kitchen.dm
@@ -1,6 +1,7 @@
/obj/item/material/kitchen
icon = 'icons/obj/kitchen.dmi'
contained_sprite = TRUE
+ worth_multiplier = 1.1
/*
* Utensils
diff --git a/code/game/objects/items/weapons/material/knives.dm b/code/game/objects/items/weapons/material/knives.dm
index 368b5282f17..2deae652d73 100644
--- a/code/game/objects/items/weapons/material/knives.dm
+++ b/code/game/objects/items/weapons/material/knives.dm
@@ -146,6 +146,7 @@
attack_verb = list("patted", "tapped")
force_divisor = 0.25 // 15 when wielded with hardness 60 (steel)
thrown_force_divisor = 0.25 // 5 when thrown with weight 20 (steel)
+ worth_multiplier = 8
/obj/item/material/knife/butterfly/update_force()
if(active)
diff --git a/code/game/objects/items/weapons/material/material_weapons.dm b/code/game/objects/items/weapons/material/material_weapons.dm
index 98cf3cedc61..a673a41d297 100644
--- a/code/game/objects/items/weapons/material/material_weapons.dm
+++ b/code/game/objects/items/weapons/material/material_weapons.dm
@@ -24,6 +24,9 @@
var/material/material
var/drops_debris = TRUE
+ /// Multiplies the amount this item is worth with the following calculation: material.value * worth_multiplier
+ var/worth_multiplier = 1
+
/obj/item/material/Initialize(var/newloc, var/material_key)
. = ..()
if(!material_key)
diff --git a/code/game/objects/items/weapons/material/misc.dm b/code/game/objects/items/weapons/material/misc.dm
index 8e0fe6455c1..eed42ccdd5c 100644
--- a/code/game/objects/items/weapons/material/misc.dm
+++ b/code/game/objects/items/weapons/material/misc.dm
@@ -8,6 +8,7 @@
force_divisor = 0.3 // 18 with hardness 60 (steel)
thrown_force_divisor = 0.85
attack_verb = list("jabbed","stabbed","ripped")
+ worth_multiplier = 15
/obj/item/material/harpoon/proc/prime()
return
@@ -45,6 +46,7 @@
drop_sound = 'sound/items/drop/axe.ogg'
pickup_sound = 'sound/items/pickup/axe.ogg'
surgerysound = 'sound/items/surgery/hatchet.ogg'
+ worth_multiplier = 6
/obj/item/material/hatchet/can_woodcut()
return TRUE
@@ -150,6 +152,7 @@
thrown_force_divisor = 0.25 // as above
w_class = WEIGHT_CLASS_SMALL
attack_verb = list("slashed", "sliced", "cut", "clawed")
+ worth_multiplier = 6
/obj/item/material/scythe
name = "scythe"
@@ -169,6 +172,7 @@
slot_flags = SLOT_BACK
origin_tech = list(TECH_MATERIAL = 2, TECH_COMBAT = 2)
attack_verb = list("chopped", "sliced", "cut", "reaped")
+ worth_multiplier = 20
/obj/item/material/scythe/sickle
name = "sickle"
diff --git a/code/game/objects/items/weapons/material/swords.dm b/code/game/objects/items/weapons/material/swords.dm
index a434eb8e5a7..387a05b2bc8 100644
--- a/code/game/objects/items/weapons/material/swords.dm
+++ b/code/game/objects/items/weapons/material/swords.dm
@@ -19,6 +19,7 @@
drop_sound = 'sound/items/drop/sword.ogg'
pickup_sound = /singleton/sound_category/sword_pickup_sound
equip_sound = /singleton/sound_category/sword_equip_sound
+ worth_multiplier = 30
/obj/item/material/sword/handle_shield(mob/user, var/on_back, var/damage, atom/damage_source = null, mob/attacker = null, var/def_zone = null, var/attack_text = "the attack")
var/parry_bonus = 1
diff --git a/code/game/objects/items/weapons/material/thrown.dm b/code/game/objects/items/weapons/material/thrown.dm
index 7a5e371afc3..2604992d5cf 100644
--- a/code/game/objects/items/weapons/material/thrown.dm
+++ b/code/game/objects/items/weapons/material/thrown.dm
@@ -10,6 +10,7 @@
sharp = 1
edge = TRUE
w_class = WEIGHT_CLASS_SMALL
+ worth_multiplier = 25
/obj/item/material/star/Initialize(newloc, material_key)
. = ..()
diff --git a/code/game/objects/items/weapons/material/twohanded.dm b/code/game/objects/items/weapons/material/twohanded.dm
index e0332ec1fa2..a80a0d3edbf 100644
--- a/code/game/objects/items/weapons/material/twohanded.dm
+++ b/code/game/objects/items/weapons/material/twohanded.dm
@@ -215,6 +215,7 @@
use_material_sound = FALSE
drop_sound = 'sound/items/drop/axe.ogg'
pickup_sound = 'sound/items/pickup/axe.ogg'
+ worth_multiplier = 31
/obj/item/material/twohanded/fireaxe/afterattack(atom/A, mob/user, proximity)
if(!proximity) return
@@ -257,6 +258,7 @@
default_material = "glass"
var/obj/item/grenade/explosive = null
use_material_sound = FALSE
+ worth_multiplier = 7 //blade + stuff
/obj/item/material/twohanded/spear/Destroy()
if(explosive)
@@ -552,6 +554,7 @@
use_material_sound = FALSE
drop_sound = 'sound/items/drop/woodweapon.ogg'
pickup_sound = 'sound/items/pickup/woodweapon.ogg'
+ worth_multiplier = 20
/obj/item/material/twohanded/pike/halberd
icon_state = "halberd0"
@@ -563,6 +566,7 @@
force_divisor = 0.6
sharp = 1
attack_verb = list("attacked", "poked", "jabbed","gored", "chopped", "cleaved", "torn", "cut", "stabbed")
+ worth_multiplier = 30
/obj/item/material/twohanded/pike/halberd/can_woodcut()
if(wielded)
@@ -575,6 +579,7 @@
base_icon = "pitchfork"
name = "pitchfork"
desc = "An old farming tool, not something you would find at hydroponics."
+ worth_multiplier = 10
/obj/item/material/twohanded/pike/flag
name = "republic of biesel flag"
@@ -651,6 +656,7 @@
default_material = "steel"
parry_chance = 60
can_embed = 0
+ worth_multiplier = 35
var/wielded_ap = 40
var/unwielded_ap = 0
diff --git a/code/game/objects/items/weapons/storage/internal.dm b/code/game/objects/items/weapons/storage/internal.dm
index 020ba1c30d6..dddb7b4133f 100644
--- a/code/game/objects/items/weapons/storage/internal.dm
+++ b/code/game/objects/items/weapons/storage/internal.dm
@@ -37,7 +37,7 @@
src.open(user)
return 0
- if (!( istype(over_object, /obj/screen) ))
+ if (!( istype(over_object, /atom/movable/screen) ))
return 1
var/obj/item/real_master_item = special_master_item_handling ? get_master_item() : master_item
diff --git a/code/game/objects/items/weapons/storage/secure.dm b/code/game/objects/items/weapons/storage/secure.dm
index aced1b4f442..8cce2cff7e3 100644
--- a/code/game/objects/items/weapons/storage/secure.dm
+++ b/code/game/objects/items/weapons/storage/secure.dm
@@ -79,15 +79,15 @@
/obj/item/storage/secure/attack_self(mob/user as mob)
user.set_machine(src)
- var/dat = text("[]
\n\nLock Status: []",src, (src.locked ? "LOCKED" : "UNLOCKED"))
+ var/dat = "[src]
\n\nLock Status: [(src.locked ? "LOCKED" : "UNLOCKED")]"
var/message = "Code"
if ((src.l_set == 0) && (!src.emagged) && (!src.l_setshort))
- dat += text("\n5-DIGIT PASSCODE NOT SET.
ENTER NEW PASSCODE.")
+ dat += "
\n5-DIGIT PASSCODE NOT SET.
ENTER NEW PASSCODE."
if (src.emagged)
- dat += text("
\nLOCKING SYSTEM ERROR - 1701")
+ dat += "
\nLOCKING SYSTEM ERROR - 1701"
if (src.l_setshort)
- dat += text("
\nALERT: MEMORY SYSTEM ERROR - 6040 201")
- message = text("[]", src.code)
+ dat += "
\nALERT: MEMORY SYSTEM ERROR - 6040 201"
+ message = "src.code[]"
if (!src.locked)
message = "*****"
dat += "
\n>[message]
\n1-2-3
\n4-5-6
\n7-8-9
\nR-0-E
\n"
@@ -117,7 +117,7 @@
src.code = null
src.close(usr)
else
- src.code += text("[]", href_list["type"])
+ src.code += "[href_list["type"]]"
if (length(src.code) > 5)
src.code = "ERROR"
src.add_fingerprint(usr)
diff --git a/code/game/objects/items/weapons/storage/storage.dm b/code/game/objects/items/weapons/storage/storage.dm
index e4a16d5f1af..512f6c6d1f6 100644
--- a/code/game/objects/items/weapons/storage/storage.dm
+++ b/code/game/objects/items/weapons/storage/storage.dm
@@ -40,15 +40,15 @@
///The number of columns the storage item will appear to have
var/force_column_number
- var/obj/screen/storage/boxes
+ var/atom/movable/screen/storage/boxes
///storage UI
- var/obj/screen/storage/storage_start
+ var/atom/movable/screen/storage/storage_start
- var/obj/screen/storage/storage_continue
- var/obj/screen/storage/storage_end
+ var/atom/movable/screen/storage/storage_continue
+ var/atom/movable/screen/storage/storage_end
var/list/storage_screens = list()
- var/obj/screen/close/closer
+ var/atom/movable/screen/close/closer
var/care_about_storage_depth = TRUE
///Set this to make it possible to use this item in an inverse way, so you can have the item in your hand and click items on the floor to pick them up.
@@ -208,15 +208,15 @@
return
if(!over_object || over_object == src)
return
- if(istype(over_object, /obj/screen/inventory))
- var/obj/screen/inventory/S = over_object
+ if(istype(over_object, /atom/movable/screen/inventory))
+ var/atom/movable/screen/inventory/S = over_object
if(S.slot_id == src.equip_slot)
return
if(ishuman(usr) || issmall(usr)) //so monkeys can take off their backpacks -- Urist
if(over_object == usr && Adjacent(usr)) // this must come before the screen objects only block
src.open(usr)
return
- if(!(istype(over_object, /obj/screen)))
+ if(!(istype(over_object, /atom/movable/screen)))
return ..()
//makes sure that the storage is equipped, so that we can't drag it into our hand from miles away.
@@ -420,9 +420,9 @@
startpoint = endpoint + 1
endpoint += storage_width * O.get_storage_cost()/max_storage_space
- var/obj/screen/storage/background/stored_start = new /obj/screen/storage/background(null, O, "stored_start")
- var/obj/screen/storage/background/stored_continue = new /obj/screen/storage/background(null, O, "stored_continue")
- var/obj/screen/storage/background/stored_end = new /obj/screen/storage/background(null, O, "stored_end")
+ var/atom/movable/screen/storage/background/stored_start = new /atom/movable/screen/storage/background(null, O, "stored_start")
+ var/atom/movable/screen/storage/background/stored_continue = new /atom/movable/screen/storage/background(null, O, "stored_continue")
+ var/atom/movable/screen/storage/background/stored_end = new /atom/movable/screen/storage/background(null, O, "stored_end")
var/matrix/M_start = matrix()
var/matrix/M_continue = matrix()
@@ -847,22 +847,22 @@
if(!allow_quick_gather)
verbs -= /obj/item/storage/verb/toggle_gathering_mode
- boxes = new /obj/screen/storage{icon_state = "block"}
+ boxes = new /atom/movable/screen/storage{icon_state = "block"}
boxes.master = src
- storage_start = new /obj/screen/storage{icon_state = "storage_start"}
+ storage_start = new /atom/movable/screen/storage{icon_state = "storage_start"}
storage_start.master = src
storage_start.layer = HUD_BASE_LAYER
- storage_continue = new /obj/screen/storage{icon_state = "storage_continue"}
+ storage_continue = new /atom/movable/screen/storage{icon_state = "storage_continue"}
storage_continue.master = src
storage_continue.layer = HUD_BASE_LAYER
- storage_end = new /obj/screen/storage{icon_state = "storage_end"}
+ storage_end = new /atom/movable/screen/storage{icon_state = "storage_end"}
storage_end.master = src
storage_end.layer = HUD_BASE_LAYER
- closer = new /obj/screen/close{
+ closer = new /atom/movable/screen/close{
icon_state = "x";
}
closer.master = src
diff --git a/code/game/objects/structures/crates_lockers/closets.dm b/code/game/objects/structures/crates_lockers/closets.dm
index 0a2bb87928c..7d41673e1ec 100644
--- a/code/game/objects/structures/crates_lockers/closets.dm
+++ b/code/game/objects/structures/crates_lockers/closets.dm
@@ -515,7 +515,7 @@
/obj/structure/closet/MouseDrop_T(atom/dropping, mob/user)
var/atom/movable/O = dropping
- if(istype(O, /obj/screen)) //fix for HUD elements making their way into the world -Pete
+ if(istype(O, /atom/movable/screen)) //fix for HUD elements making their way into the world -Pete
return
if(O.loc == user)
return
diff --git a/code/modules/admin/NewBan.dm b/code/modules/admin/NewBan.dm
index fea97e20776..99cb86b75f5 100644
--- a/code/modules/admin/NewBan.dm
+++ b/code/modules/admin/NewBan.dm
@@ -185,7 +185,7 @@ var/savefile/Banlist
if(!expiry) expiry = "Removal Pending"
else expiry = "Permaban"
- dat += text("
(U)(E) Key: [key] | ComputerID: [id] | IP: [ip] | [expiry] | (By: [by]) | (Reason: [reason]) |
")
+ dat += "(U)(E) Key: [key] | ComputerID: [id] | IP: [ip] | [expiry] | (By: [by]) | (Reason: [reason]) |
"
dat += ""
dat = "
Bans: (U) = Unban , (E) = Edit Ban - ([count] Bans)
[dat]"
diff --git a/code/modules/admin/admin_attack_log.dm b/code/modules/admin/admin_attack_log.dm
index f518e5ecb0c..db266c08180 100644
--- a/code/modules/admin/admin_attack_log.dm
+++ b/code/modules/admin/admin_attack_log.dm
@@ -24,10 +24,10 @@
/proc/admin_attack_log(var/mob/attacker, var/mob/victim, var/attacker_message, var/victim_message, var/admin_message)
var/jmp_link = ""
if(victim)
- victim.attack_log += text("\[[time_stamp()]\] [key_name(attacker)] - [victim_message]")
+ victim.attack_log +="\[[time_stamp()]\] [key_name(attacker)] - [victim_message]"
jmp_link = " (JMP)"
if(attacker)
- attacker.attack_log += text("\[[time_stamp()]\] [key_name(victim)] - [attacker_message]")
+ attacker.attack_log += "\[[time_stamp()]\] [key_name(victim)] - [attacker_message]"
jmp_link = " (JMP)"
msg_admin_attack("[attacker ? key_name_admin(attacker) : ""] [admin_message] [victim ? key_name_admin(victim) : ""] (INTENT: [attacker? uppertext(attacker.a_intent) : "N/A"])[jmp_link]",ckey=key_name(attacker),ckey_target=key_name(victim))
diff --git a/code/modules/admin/secrets/admin_secrets/bombing_list.dm b/code/modules/admin/secrets/admin_secrets/bombing_list.dm
index 812f60ae441..54feb9ee277 100644
--- a/code/modules/admin/secrets/admin_secrets/bombing_list.dm
+++ b/code/modules/admin/secrets/admin_secrets/bombing_list.dm
@@ -8,5 +8,5 @@
var/dat = "Bombing List"
for(var/l in GLOB.bombers)
- dat += text("[l]
")
+ dat += "[l]
"
user << browse(dat, "window=bombers")
diff --git a/code/modules/admin/verbs/randomverbs.dm b/code/modules/admin/verbs/randomverbs.dm
index 937aea4857a..56280ee3868 100644
--- a/code/modules/admin/verbs/randomverbs.dm
+++ b/code/modules/admin/verbs/randomverbs.dm
@@ -26,7 +26,7 @@
to_chat(src, "Only administrators may use this command.")
return
- var/msg = sanitize(input("Message:", text("Subtle PM to [M.key]")) as text)
+ var/msg = sanitize(input("Message:", "Subtle PM to [M.key]"))
if (!msg)
return
@@ -83,7 +83,7 @@
to_chat(src, "Only administrators may use this command.")
return
- var/msg = html_decode(sanitize(input("Message:", text("Enter the text you wish to appear to everyone:")) as text))
+ var/msg = html_decode(sanitize(input("Message:", "Enter the text you wish to appear to everyone:")))
if (!msg)
return
@@ -110,7 +110,7 @@
else
return
- var/msg = html_decode(sanitize(input("Message:", text("Enter the text you wish to appear to everyone within seven tiles of you:")) as text))
+ var/msg = html_decode(sanitize(input("Message:", "Enter the text you wish to appear to everyone within seven tiles of you:")))
if(!msg)
return
for(var/M in message_mobs)
@@ -133,7 +133,7 @@
if(!M)
return
- var/msg = html_decode(sanitize(input("Message:", text("Enter the text you wish to appear to your target:")) as text))
+ var/msg = html_decode(sanitize(input("Message:", "Enter the text you wish to appear to your target:")))
if( !msg )
return
@@ -662,13 +662,13 @@ Traitors and the like can also be revived with the previous role mostly intact.
if(!check_rights(R_DEBUG|R_FUN)) return
- var/devastation = input("Range of total devastation. -1 to none", text("Input")) as num|null
+ var/devastation = input("Range of total devastation. -1 to none", "Input") as num|null
if(devastation == null) return
- var/heavy = input("Range of heavy impact. -1 to none", text("Input")) as num|null
+ var/heavy = input("Range of heavy impact. -1 to none", "Input") as num|null
if(heavy == null) return
- var/light = input("Range of light impact. -1 to none", text("Input")) as num|null
+ var/light = input("Range of light impact. -1 to none", "Input") as num|null
if(light == null) return
- var/flash = input("Range of flash. -1 to none", text("Input")) as num|null
+ var/flash = input("Range of flash. -1 to none", "Input") as num|null
if(flash == null) return
if ((devastation != -1) || (heavy != -1) || (light != -1) || (flash != -1))
@@ -690,9 +690,9 @@ Traitors and the like can also be revived with the previous role mostly intact.
if(!check_rights(R_DEBUG|R_FUN)) return
- var/heavy = input("Range of heavy pulse.", text("Input")) as num|null
+ var/heavy = input("Range of heavy pulse.", "Input") as num|null
if(heavy == null) return
- var/light = input("Range of light pulse.", text("Input")) as num|null
+ var/light = input("Range of light pulse.", "Input") as num|null
if(light == null) return
if (heavy || light)
diff --git a/code/modules/background/origins/origins/human/dominia.dm b/code/modules/background/origins/origins/human/dominia.dm
index 26b4b5820cd..eac7d5f01c7 100644
--- a/code/modules/background/origins/origins/human/dominia.dm
+++ b/code/modules/background/origins/origins/human/dominia.dm
@@ -45,7 +45,7 @@
/singleton/origin_item/origin/core_worlds
name = "Imperial Core Worlds"
- desc = "The Imperial Core consists of worlds colonized mostly by Morozians with little involvement by Ma'zals such as Sparta, Alterim Obrirava, and Alterim Balteulis. Much of the culture of these planets is shared with the Imperial capital of Moroz, and the pomp-and-circumstance of Dominian noble life is well alive on these worlds as well. Much of the wealth of Dominians living in the Imperial Core has been built off of resources extracted from worlds conquered by the Empire. In the Empire, to be Morozian is to bear a badge of honor - yet with that honor comes an understanding that one must act as a Morozian, and not debase oneself to the level of a Ma'zal."
+ desc = "The Imperial Core consists of worlds colonized mostly by Morozians with little involvement by Ma'zals such as Zhurong, Alterim Obrirava, and Alterim Balteulis. Much of the culture of these planets is shared with the Imperial capital of Moroz, and the pomp-and-circumstance of Dominian noble life is well alive on these worlds as well. Much of the wealth of Dominians living in the Imperial Core has been built off of resources extracted from worlds conquered by the Empire. In the Empire, to be Morozian is to bear a badge of honor - yet with that honor comes an understanding that one must act as a Morozian, and not debase oneself to the level of a Ma'zal."
possible_accents = list(ACCENT_DOMINIA_VULGAR)
possible_citizenships = CITIZENSHIPS_DOMINIA
possible_religions = list(RELIGION_MOROZ)
diff --git a/code/modules/background/space_sectors/badlands.dm b/code/modules/background/space_sectors/badlands.dm
index 500cbc8e877..cf7bac1e6f0 100644
--- a/code/modules/background/space_sectors/badlands.dm
+++ b/code/modules/background/space_sectors/badlands.dm
@@ -18,6 +18,13 @@
starlight_power = 2
starlight_range = 4
+ lore_radio_stations = list(
+ "72.9 Nowa Bratislava Independent Radio" = 'texts/lore_radio/badlands/72.9_Nowa_Bratislava_Independent_Radio.txt',
+ "83.6 Shipping Radio Traffic" = 'texts/lore_radio/badlands/83.6_Shipping_Radio_Traffic.txt',
+ "86.2 Shipping Advisory Channel" = 'texts/lore_radio/badlands/86.2_Shipping_Advisory_Channel.txt',
+ "91.1 Morozian Classics" = 'texts/lore_radio/badlands/91.1_Morozian_Classics.txt'
+ )
+
/datum/space_sector/valley_hale
name = SECTOR_VALLEY_HALE
description = "Nestled in the narrow Frontier space between the Republic of Elyra and the former borders of the Solarian Alliance is Valley Hale, a large region filled with a large \
diff --git a/code/modules/client/client_procs.dm b/code/modules/client/client_procs.dm
index 72d7697c96b..8c68050b156 100644
--- a/code/modules/client/client_procs.dm
+++ b/code/modules/client/client_procs.dm
@@ -898,10 +898,10 @@ var/list/localhost_addresses = list(
/atom/proc/is_auto_clickable()
return TRUE
-/obj/screen/is_auto_clickable()
+/atom/movable/screen/is_auto_clickable()
return FALSE
-/obj/screen/click_catcher/is_auto_clickable()
+/atom/movable/screen/click_catcher/is_auto_clickable()
return TRUE
/**
diff --git a/code/modules/client/preference_setup/loadout/items/xeno/vaurca.dm b/code/modules/client/preference_setup/loadout/items/xeno/vaurca.dm
index 01845d019f1..235630faff2 100644
--- a/code/modules/client/preference_setup/loadout/items/xeno/vaurca.dm
+++ b/code/modules/client/preference_setup/loadout/items/xeno/vaurca.dm
@@ -346,6 +346,16 @@ ABSTRACT_TYPE(/datum/gear/ears/vaurca)
sort_category = "Xenowear - Vaurca"
flags = GEAR_HAS_NAME_SELECTION | GEAR_HAS_DESC_SELECTION | GEAR_HAS_COLOR_SELECTION | GEAR_HAS_ACCENT_COLOR_SELECTION
+/datum/gear/accessory/vaurca_starcape
+ display_name = "cthur star cape"
+ description = "A decorated cape, fit for a C'thuric Ta."
+ path = /obj/item/clothing/accessory/vaurca_breeder/star_cape
+ cost = 1
+ whitelisted = list(SPECIES_VAURCA_BREEDER)
+ culture_restriction = list(/singleton/origin_item/culture/cthur_breeder)
+ sort_category = "Xenowear - Vaurca"
+ flags = GEAR_HAS_NAME_SELECTION | GEAR_HAS_DESC_SELECTION
+
/datum/gear/accessory/vaurca_cthur_llc
display_name = "cthur, llc cape"
description = "A cape for C'thur, LLC Vaurca Gyne diplomats."
diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm
index f0997a4f9a0..baa07f0b401 100644
--- a/code/modules/client/preferences.dm
+++ b/code/modules/client/preferences.dm
@@ -286,7 +286,7 @@ var/list/preferences_datums = list()
if(istype(NP) && istype(NP.late_choices_ui)) // update character icon in late-choices UI
NP.late_choices_ui.update_character_icon()
- var/obj/screen/BG= LAZYACCESS(char_render_holders, "BG")
+ var/atom/movable/screen/BG= LAZYACCESS(char_render_holders, "BG")
if(!BG)
BG = new
BG.appearance_flags = TILE_BOUND|PIXEL_SCALE|NO_CLIENT_COLOR
@@ -299,7 +299,7 @@ var/list/preferences_datums = list()
var/index = 0
for(var/D in GLOB.cardinal)
- var/obj/screen/O = LAZYACCESS(char_render_holders, "[D]")
+ var/atom/movable/screen/O = LAZYACCESS(char_render_holders, "[D]")
if(!O)
O = new
LAZYSET(char_render_holders, "[D]", O)
@@ -328,7 +328,7 @@ var/list/preferences_datums = list()
/datum/preferences/proc/clear_character_previews()
for(var/index in char_render_holders)
- var/obj/screen/S = char_render_holders[index]
+ var/atom/movable/screen/S = char_render_holders[index]
client?.screen -= S
qdel(S)
QDEL_LIST_ASSOC_VAL(char_render_holders)
diff --git a/code/modules/client/ui_style.dm b/code/modules/client/ui_style.dm
index 073b0515a86..1f596106fde 100644
--- a/code/modules/client/ui_style.dm
+++ b/code/modules/client/ui_style.dm
@@ -48,7 +48,7 @@ var/all_tooltip_styles = list(
var/icon/ic = all_ui_styles[UI_style_new]
- for(var/obj/screen/I in icons)
+ for(var/atom/movable/screen/I in icons)
if(I.name in list(I_HELP, I_HURT, I_DISARM, I_GRAB)) continue
I.icon = ic
I.color = UI_style_color_new
diff --git a/code/modules/clothing/clothing_accessories.dm b/code/modules/clothing/clothing_accessories.dm
index a213199bcdf..71c6d3c4f78 100644
--- a/code/modules/clothing/clothing_accessories.dm
+++ b/code/modules/clothing/clothing_accessories.dm
@@ -54,8 +54,8 @@
if(!over_object || over_object == src)
return
- if(istype(over_object, /obj/screen/inventory))
- var/obj/screen/inventory/S = over_object
+ if(istype(over_object, /atom/movable/screen/inventory))
+ var/atom/movable/screen/inventory/S = over_object
if(S.slot_id == src.equip_slot)
return
diff --git a/code/modules/clothing/glasses/glasses.dm b/code/modules/clothing/glasses/glasses.dm
index f6ba7d07dea..e72d5abeb76 100644
--- a/code/modules/clothing/glasses/glasses.dm
+++ b/code/modules/clothing/glasses/glasses.dm
@@ -28,7 +28,7 @@ BLIND // can't see anything
var/off_state = "degoggles"
var/active = 1
var/activation_sound = 'sound/items/goggles_charge.ogg'
- var/obj/screen/overlay = null
+ var/atom/movable/screen/overlay = null
var/obj/item/clothing/glasses/hud/hud = null // Hud glasses, if any
var/activated_color = null
var/normal_layer = GLASSES_LAYER
diff --git a/code/modules/clothing/spacesuits/rig/modules/modules.dm b/code/modules/clothing/spacesuits/rig/modules/modules.dm
index 4370feae3ee..668e834415d 100644
--- a/code/modules/clothing/spacesuits/rig/modules/modules.dm
+++ b/code/modules/clothing/spacesuits/rig/modules/modules.dm
@@ -156,7 +156,7 @@
var/old_next_use = next_use
next_use = world.time + module_cooldown
if(next_use > old_next_use && holder.wearer)
- var/obj/screen/inventory/back/B = locate(/obj/screen/inventory/back) in holder.wearer.hud_used.adding
+ var/atom/movable/screen/inventory/back/B = locate(/atom/movable/screen/inventory/back) in holder.wearer.hud_used.adding
if(B)
B.set_color_for(COLOR_RED, module_cooldown)
diff --git a/code/modules/clothing/spacesuits/rig/suits/combat.dm b/code/modules/clothing/spacesuits/rig/suits/combat.dm
index 87f9ad7aec3..f15a50f4a6a 100644
--- a/code/modules/clothing/spacesuits/rig/suits/combat.dm
+++ b/code/modules/clothing/spacesuits/rig/suits/combat.dm
@@ -65,7 +65,6 @@
helm_type = /obj/item/clothing/head/helmet/space/rig/military
-
allowed_module_types = MODULE_GENERAL | MODULE_LIGHT_COMBAT | MODULE_HEAVY_COMBAT | MODULE_SPECIAL | MODULE_MEDICAL | MODULE_UTILITY
/obj/item/clothing/head/helmet/space/rig/military
@@ -479,3 +478,65 @@
/obj/item/clothing/head/helmet/space/rig/nanotrasen/corporate_auxiliary
light_overlay = "helmet_light_dual"
+
+/obj/item/rig/combat/legionnaire
+ name = "\improper Legionnaire Hardsuit"
+ desc = "An armored combat hardsuit in the blue colors of the Tau Ceti Armed Forces. The red shoulder pad dignifying the individual as a member of rank. \
+ Its golden visor reflecting the shining liberty the TCAF stands for."
+ desc_extended = "This hardsuit is brimming with modules and material. Manufactured initially by NanoTrasen, and later modified by Zavodskoi, \
+ the Legionnaire hardsuit comes in many shapes and sizes to accommodate its missions. Seeing both action in orbit and on the ground. \
+ The blue armored plates are layered with brown ballistic padding, and finally a tightly woven black armored liner to keep out any hazardous environment, from air to space."
+ icon = 'icons/clothing/rig/tcaf_legionnaire.dmi'
+ icon_state = "legionnaire_rig"
+ icon_supported_species_tags = null
+ suit_type = "\improper Legionnaire Hardsuit"
+ armor = list(
+ melee = ARMOR_MELEE_MAJOR,
+ bullet = ARMOR_BALLISTIC_MAJOR,
+ laser = ARMOR_LASER_MEDIUM,
+ energy = ARMOR_ENERGY_SMALL,
+ bomb = ARMOR_BOMB_PADDED,
+ bio = ARMOR_BIO_SHIELDED,
+ rad = ARMOR_RAD_SMALL
+ )
+ siemens_coefficient = 0.1
+ offline_slowdown = 3
+ offline_vision_restriction = TINT_HEAVY
+
+ helm_type = /obj/item/clothing/head/helmet/space/rig/legionnaire
+
+ allowed = list(
+ /obj/item/device/flashlight,
+ /obj/item/tank,
+ /obj/item/device/suit_cooling_unit,
+ /obj/item/gun,
+ /obj/item/ammo_magazine,
+ /obj/item/ammo_casing,
+ /obj/item/melee/baton,
+ /obj/item/melee/energy/sword,
+ /obj/item/handcuffs,
+ /obj/item/material/twohanded/fireaxe,
+ /obj/item/rfd/construction,
+ /obj/item/material/twohanded/pike/flag
+ )
+
+ allowed_module_types = MODULE_GENERAL | MODULE_LIGHT_COMBAT | MODULE_HEAVY_COMBAT | MODULE_SPECIAL | MODULE_MEDICAL | MODULE_UTILITY
+
+ species_restricted = list(BODYTYPE_HUMAN, BODYTYPE_IPC_BISHOP, BODYTYPE_IPC_ZENGHU)
+
+/obj/item/clothing/head/helmet/space/rig/legionnaire
+ light_overlay = "helmet_light_tcaf_legionnaire"
+ camera = /obj/machinery/camera/network/tcfl
+
+/obj/item/rig/combat/legionnaire/equipped
+
+ initial_modules = list(
+ /obj/item/rig_module/actuators,
+ /obj/item/rig_module/mounted/egun,
+ /obj/item/rig_module/fabricator/energy_net,
+ /obj/item/rig_module/device/drill,
+ /obj/item/rig_module/vision/nvg,
+ /obj/item/rig_module/storage,
+ /obj/item/rig_module/cooling_unit,
+ /obj/item/rig_module/recharger
+ )
diff --git a/code/modules/heavy_vehicle/interface/_interface.dm b/code/modules/heavy_vehicle/interface/_interface.dm
index 2e2fbc70a1f..fbb0429d4b1 100644
--- a/code/modules/heavy_vehicle/interface/_interface.dm
+++ b/code/modules/heavy_vehicle/interface/_interface.dm
@@ -14,32 +14,32 @@
if(!LAZYLEN(hud_elements))
var/i = 1
for(var/hardpoint in hardpoints)
- var/obj/screen/mecha/hardpoint/H = new(src, hardpoint)
+ var/atom/movable/screen/mecha/hardpoint/H = new(src, hardpoint)
H.screen_loc = "1:6,[15-i]" //temp
hud_elements |= H
hardpoint_hud_elements[hardpoint] = H
i++
var/list/additional_hud_elements = list(
- /obj/screen/mecha/toggle/power_control,
- /obj/screen/mecha/toggle/maint,
- /obj/screen/mecha/eject,
- /obj/screen/mecha/toggle/hardpoint,
- /obj/screen/mecha/toggle/hatch,
- /obj/screen/mecha/toggle/hatch_open,
- /obj/screen/mecha/radio,
- /obj/screen/mecha/toggle/sensor,
- /obj/screen/mecha/toggle/megaspeakers,
- /obj/screen/mecha/rename
+ /atom/movable/screen/mecha/toggle/power_control,
+ /atom/movable/screen/mecha/toggle/maint,
+ /atom/movable/screen/mecha/eject,
+ /atom/movable/screen/mecha/toggle/hardpoint,
+ /atom/movable/screen/mecha/toggle/hatch,
+ /atom/movable/screen/mecha/toggle/hatch_open,
+ /atom/movable/screen/mecha/radio,
+ /atom/movable/screen/mecha/toggle/sensor,
+ /atom/movable/screen/mecha/toggle/megaspeakers,
+ /atom/movable/screen/mecha/rename
)
if(body && body.pilot_coverage >= 100)
- additional_hud_elements += /obj/screen/mecha/toggle/air
+ additional_hud_elements += /atom/movable/screen/mecha/toggle/air
i = 0
var/pos = 7
for(var/additional_hud in additional_hud_elements)
- var/obj/screen/mecha/M = new additional_hud(src)
+ var/atom/movable/screen/mecha/M = new additional_hud(src)
var/y_position = i * -12
if(M.icon_state == "large_base")
y_position += 2
@@ -49,20 +49,20 @@
hud_elements |= M
i++
- hud_health = new /obj/screen/mecha/health(src)
+ hud_health = new /atom/movable/screen/mecha/health(src)
hud_health.screen_loc = "EAST-1:28,CENTER-3:11"
hud_elements |= hud_health
- hud_open = locate(/obj/screen/mecha/toggle/hatch_open) in hud_elements
- hud_power = new /obj/screen/mecha/power(src)
+ hud_open = locate(/atom/movable/screen/mecha/toggle/hatch_open) in hud_elements
+ hud_power = new /atom/movable/screen/mecha/power(src)
hud_power.screen_loc = "EAST-1:12,CENTER-4:25"
hud_elements |= hud_power
- hud_power_control = locate(/obj/screen/mecha/toggle/power_control) in hud_elements
+ hud_power_control = locate(/atom/movable/screen/mecha/toggle/power_control) in hud_elements
refresh_hud()
/mob/living/heavy_vehicle/handle_hud_icons()
for(var/hardpoint in hardpoint_hud_elements)
- var/obj/screen/mecha/hardpoint/H = hardpoint_hud_elements[hardpoint]
+ var/atom/movable/screen/mecha/hardpoint/H = hardpoint_hud_elements[hardpoint]
if(H) H.update_system_info()
handle_hud_icons_health()
handle_power_hud()
diff --git a/code/modules/heavy_vehicle/interface/screen_objects.dm b/code/modules/heavy_vehicle/interface/screen_objects.dm
index 4ef322e0c7c..34d9338925d 100644
--- a/code/modules/heavy_vehicle/interface/screen_objects.dm
+++ b/code/modules/heavy_vehicle/interface/screen_objects.dm
@@ -1,42 +1,42 @@
// Screen objects hereon out.
-/obj/screen/mecha
+/atom/movable/screen/mecha
name = "hardpoint"
icon = 'icons/mecha/mecha_hud.dmi'
icon_state = "hardpoint"
var/mob/living/heavy_vehicle/owner
maptext_y = 11
-/obj/screen/mecha/proc/notify_user(var/mob/user, var/text)
+/atom/movable/screen/mecha/proc/notify_user(var/mob/user, var/text)
if(user && user.loc == owner)
to_chat(user, text)
-/obj/screen/mecha/radio
+/atom/movable/screen/mecha/radio
name = "radio"
icon_state = "base"
maptext = "RADIO"
maptext_x = 2
maptext_y = 11
-/obj/screen/mecha/radio/Click()
+/atom/movable/screen/mecha/radio/Click()
if(..())
if(owner.radio)
owner.radio.attack_self(usr)
-/obj/screen/mecha/Initialize()
+/atom/movable/screen/mecha/Initialize()
. = ..()
var/mob/living/heavy_vehicle/newowner = loc
if(!istype(newowner))
return INITIALIZE_HINT_QDEL
owner = newowner
-/obj/screen/mecha/Destroy(force)
+/atom/movable/screen/mecha/Destroy(force)
owner = null
. = ..()
-/obj/screen/mecha/Click()
+/atom/movable/screen/mecha/Click()
return (!owner || !usr.incapacitated() && (usr == owner || usr.loc == owner))
-/obj/screen/mecha/hardpoint
+/atom/movable/screen/mecha/hardpoint
name = "hardpoint"
var/hardpoint_tag
var/obj/item/holding
@@ -45,16 +45,16 @@
maptext_y = 3
maptext_width = 120
-/obj/screen/mecha/hardpoint/Destroy()
+/atom/movable/screen/mecha/hardpoint/Destroy()
holding = null
hardpoint_tag = null
. = ..()
-/obj/screen/mecha/hardpoint/MouseDrop()
+/atom/movable/screen/mecha/hardpoint/MouseDrop()
..()
if(holding) holding.screen_loc = screen_loc
-/obj/screen/mecha/hardpoint/proc/update_system_info()
+/atom/movable/screen/mecha/hardpoint/proc/update_system_info()
// No point drawing it if we have no item to use or nobody to see it.
if(!holding || !owner)
return
@@ -132,12 +132,12 @@
new_overlays += GLOB.hardpoint_bar_cache[i]
overlays = new_overlays
-/obj/screen/mecha/hardpoint/Initialize(mapload, var/newtag)
+/atom/movable/screen/mecha/hardpoint/Initialize(mapload, var/newtag)
. = ..()
hardpoint_tag = newtag
name = "hardpoint ([hardpoint_tag])"
-/obj/screen/mecha/hardpoint/Click(var/location, var/control, var/params)
+/atom/movable/screen/mecha/hardpoint/Click(var/location, var/control, var/params)
if(!(..()))
return
@@ -160,98 +160,98 @@
if(owner.set_hardpoint(hardpoint_tag))
icon_state = "hardpoint_selected"
-/obj/screen/mecha/eject
+/atom/movable/screen/mecha/eject
name = "eject"
icon_state = "large_base"
maptext = "EJECT"
maptext_x = 3
maptext_y = 10
-/obj/screen/mecha/eject/Click()
+/atom/movable/screen/mecha/eject/Click()
if(..())
owner.eject(usr)
-/obj/screen/mecha/rename
+/atom/movable/screen/mecha/rename
name = "rename"
icon_state = "base"
maptext = "RENAME"
maptext_x = 1
maptext_y = 12
-/obj/screen/mecha/rename/Click()
+/atom/movable/screen/mecha/rename/Click()
if(..())
owner.rename(usr)
-/obj/screen/mecha/power
+/atom/movable/screen/mecha/power
name = "power"
icon_state = null
maptext_width = 64
maptext_y = 2
-/obj/screen/mecha/toggle
+/atom/movable/screen/mecha/toggle
name = "toggle"
var/toggled
-/obj/screen/mecha/toggle/Click()
+/atom/movable/screen/mecha/toggle/Click()
if(..()) toggled()
-/obj/screen/mecha/toggle/proc/toggled()
+/atom/movable/screen/mecha/toggle/proc/toggled()
toggled = !toggled
icon_state = "[initial(icon_state)][toggled ? "_enabled" : ""]"
return toggled
-/obj/screen/mecha/toggle/air
+/atom/movable/screen/mecha/toggle/air
name = "air"
icon_state = "base"
maptext = "AIR"
maptext_x = 8
-/obj/screen/mecha/toggle/air/toggled()
+/atom/movable/screen/mecha/toggle/air/toggled()
toggled = !toggled
owner.use_air = toggled
var/main_color = owner.use_air ? "#d1d1d1" : "#525252"
maptext = "AIR"
notify_user(usr, SPAN_NOTICE("Auxiliary atmospheric system [owner.use_air ? "enabled" : "disabled"]."))
-/obj/screen/mecha/toggle/maint
+/atom/movable/screen/mecha/toggle/maint
name = "toggle maintenance protocol"
icon_state = "large_base"
maptext = "MAINT"
maptext_x = 2
maptext_y = 10
-/obj/screen/mecha/toggle/maint/toggled()
+/atom/movable/screen/mecha/toggle/maint/toggled()
toggled = !toggled
owner.maintenance_protocols = toggled
var/main_color = owner.maintenance_protocols ? "#d1d1d1" : "#525252"
maptext = "MAINT"
notify_user(usr, SPAN_NOTICE("Maintenance protocols [owner.maintenance_protocols ? "enabled" : "disabled"]."))
-/obj/screen/mecha/toggle/power_control
+/atom/movable/screen/mecha/toggle/power_control
name = "power control"
icon_state = "large_base"
maptext = "POWER"
maptext_x = 1
maptext_y = 11
-/obj/screen/mecha/toggle/power_control/toggled()
+/atom/movable/screen/mecha/toggle/power_control/toggled()
toggled = !toggled
owner.toggle_power(usr)
var/main_color = toggled ? "#d1d1d1" : "#525252"
maptext = "POWER"
-/obj/screen/mecha/toggle/power_control/update_icon()
+/atom/movable/screen/mecha/toggle/power_control/update_icon()
toggled = (owner.power == MECH_POWER_ON)
return ..()
-/obj/screen/mecha/toggle/hardpoint
+/atom/movable/screen/mecha/toggle/hardpoint
name = "toggle hardpoint lock"
icon_state = "base"
maptext = "GEAR"
maptext_x = 4
-/obj/screen/mecha/toggle/hardpoint/toggled()
+/atom/movable/screen/mecha/toggle/hardpoint/toggled()
if(owner.force_locked)
notify_user(usr, SPAN_WARNING("The locking system cannot be operated due to software restriction. Contact the manufacturer for more details."))
return
@@ -261,13 +261,13 @@
maptext = "GEAR"
notify_user(usr, SPAN_NOTICE("Hardpoint system access is now [owner.hardpoints_locked ? "disabled" : "enabled"]."))
-/obj/screen/mecha/toggle/hatch
+/atom/movable/screen/mecha/toggle/hatch
name = "toggle hatch lock"
icon_state = "base"
maptext = "LOCK"
maptext_x = 5
-/obj/screen/mecha/toggle/hatch/toggled()
+/atom/movable/screen/mecha/toggle/hatch/toggled()
if(!owner.hatch_locked && !owner.hatch_closed)
notify_user(usr, SPAN_WARNING("You cannot lock the hatch while it is open."))
return
@@ -286,17 +286,17 @@
maptext_x = 5
notify_user(usr, SPAN_NOTICE("The [owner.body.hatch_descriptor] is [owner.hatch_locked ? "now" : "no longer" ] locked."))
-/obj/screen/mecha/toggle/hatch_open
+/atom/movable/screen/mecha/toggle/hatch_open
name = "open or close hatch"
icon_state = "base"
maptext = "CLOSE"
maptext_x = 3
-/obj/screen/mecha/toggle/hatch_open/update_icon()
+/atom/movable/screen/mecha/toggle/hatch_open/update_icon()
maptext = "[owner.hatch_closed ? "OPEN" : "CLOSE"]"
maptext_x = owner.hatch_closed ? 4 : 3
-/obj/screen/mecha/toggle/hatch_open/toggled(var/notify_user = TRUE)
+/atom/movable/screen/mecha/toggle/hatch_open/toggled(var/notify_user = TRUE)
if(owner.hatch_locked && owner.hatch_closed)
notify_user(usr, SPAN_WARNING("You cannot open the hatch while it is locked."))
return
@@ -308,18 +308,18 @@
owner.update_icon()
// This is basically just a holder for the updates the mech does.
-/obj/screen/mecha/health
+/atom/movable/screen/mecha/health
name = "exosuit integrity"
icon_state = "health"
-/obj/screen/mecha/toggle/sensor
+/atom/movable/screen/mecha/toggle/sensor
name = "toggle sensor matrix"
icon_state = "base"
maptext = "SENSOR"
maptext_x = 1
maptext_y = 12
-/obj/screen/mecha/toggle/sensor/toggled()
+/atom/movable/screen/mecha/toggle/sensor/toggled()
if(!owner.head)
notify_user(usr, SPAN_WARNING("I/O Error: Sensor systems not found."))
return
@@ -332,14 +332,14 @@
maptext = "SENSOR"
notify_user(usr, SPAN_NOTICE("[capitalize_first_letters(owner.head.name)] Advanced Sensor mode is [owner.head.active_sensors ? "now" : "no longer" ] active."))
-/obj/screen/mecha/toggle/megaspeakers
+/atom/movable/screen/mecha/toggle/megaspeakers
name = "toggle integrated megaspeakers"
icon_state = "base" // based
maptext = "VOLUME"
maptext_x = 1
maptext_y = 12
-/obj/screen/mecha/toggle/megaspeakers/toggled()
+/atom/movable/screen/mecha/toggle/megaspeakers/toggled()
toggled = !toggled
owner.loudening = toggled
var/main_color = owner.loudening ? "#d1d1d1" : "#525252"
diff --git a/code/modules/heavy_vehicle/mech_construction.dm b/code/modules/heavy_vehicle/mech_construction.dm
index 82637fd3485..44a3172ebf0 100644
--- a/code/modules/heavy_vehicle/mech_construction.dm
+++ b/code/modules/heavy_vehicle/mech_construction.dm
@@ -102,7 +102,7 @@
GLOB.destroyed_event.unregister(module_to_forget, src, PROC_REF(forget_module))
- var/obj/screen/mecha/hardpoint/H = hardpoint_hud_elements[target]
+ var/atom/movable/screen/mecha/hardpoint/H = hardpoint_hud_elements[target]
H.holding = null
hud_elements -= module_to_forget
@@ -150,7 +150,7 @@
system.forceMove(src)
hardpoints[system_hardpoint] = system
- var/obj/screen/mecha/hardpoint/H = hardpoint_hud_elements[system_hardpoint]
+ var/atom/movable/screen/mecha/hardpoint/H = hardpoint_hud_elements[system_hardpoint]
H.holding = system
system.screen_loc = H.screen_loc
@@ -200,7 +200,7 @@
system.layer = initial(system.layer)
GLOB.destroyed_event.unregister(system, src, PROC_REF(forget_module))
- var/obj/screen/mecha/hardpoint/H = hardpoint_hud_elements[system_hardpoint]
+ var/atom/movable/screen/mecha/hardpoint/H = hardpoint_hud_elements[system_hardpoint]
H.holding = null
for(var/thing in pilots)
diff --git a/code/modules/heavy_vehicle/mech_helpers.dm b/code/modules/heavy_vehicle/mech_helpers.dm
index 71d26009650..7a073e2b8f0 100644
--- a/code/modules/heavy_vehicle/mech_helpers.dm
+++ b/code/modules/heavy_vehicle/mech_helpers.dm
@@ -37,17 +37,17 @@
return offset_x
/mob/living/heavy_vehicle/proc/toggle_maintenance_protocols()
- var/obj/screen/mecha/toggle/maint/M = locate() in hud_elements
+ var/atom/movable/screen/mecha/toggle/maint/M = locate() in hud_elements
M.toggled()
return TRUE
/mob/living/heavy_vehicle/proc/toggle_hatch()
- var/obj/screen/mecha/toggle/hatch_open/H = locate() in hud_elements
+ var/atom/movable/screen/mecha/toggle/hatch_open/H = locate() in hud_elements
H.toggled()
return TRUE
/mob/living/heavy_vehicle/proc/toggle_lock()
- var/obj/screen/mecha/toggle/hatch/L = locate() in hud_elements
+ var/atom/movable/screen/mecha/toggle/hatch/L = locate() in hud_elements
L.toggled()
return TRUE
diff --git a/code/modules/heavy_vehicle/mech_interaction.dm b/code/modules/heavy_vehicle/mech_interaction.dm
index 5e7bd819617..ce6475a7284 100644
--- a/code/modules/heavy_vehicle/mech_interaction.dm
+++ b/code/modules/heavy_vehicle/mech_interaction.dm
@@ -161,7 +161,7 @@
var/old_next_move = next_move
next_move = max(world.time + timeout, next_move)
for(var/hardpoint in hardpoint_hud_elements)
- var/obj/screen/mecha/hardpoint/H = hardpoint_hud_elements[hardpoint]
+ var/atom/movable/screen/mecha/hardpoint/H = hardpoint_hud_elements[hardpoint]
if(H)
H.color = "#FF0000"
if(next_move > old_next_move) // TIMER_OVERRIDE would not work here, because the smaller delays tend to be called after the longer ones
@@ -169,7 +169,7 @@
/mob/living/heavy_vehicle/proc/reset_hardpoint_color()
for(var/hardpoint in hardpoint_hud_elements)
- var/obj/screen/mecha/hardpoint/H = hardpoint_hud_elements[hardpoint]
+ var/atom/movable/screen/mecha/hardpoint/H = hardpoint_hud_elements[hardpoint]
if(H)
H.color = null
@@ -188,7 +188,7 @@
for(var/hardpoint in hardpoints)
if(hardpoint != selected_hardpoint)
continue
- var/obj/screen/mecha/hardpoint/H = hardpoint_hud_elements[hardpoint]
+ var/atom/movable/screen/mecha/hardpoint/H = hardpoint_hud_elements[hardpoint]
if(istype(H))
H.icon_state = "hardpoint"
break
@@ -559,7 +559,7 @@
var/mob/living/carbon/human/D = H
if(D.lying)
D.attack_log += "\[[time_stamp()]\] Was trampled by [src]"
- attack_log += text("\[[time_stamp()]\] trampled [D.name] ([D.ckey]) with \the [src].")
+ attack_log += "\[[time_stamp()]\] trampled [D.name] ([D.ckey]) with \the [src]."
msg_admin_attack("[src] trampled [key_name(D)] at (JMP)" )
src.visible_message(SPAN_DANGER("\The [src] runs over \the [D]!"))
D.apply_damage(legs.trample_damage, DAMAGE_BRUTE)
diff --git a/code/modules/heavy_vehicle/mecha.dm b/code/modules/heavy_vehicle/mecha.dm
index 0efde46f29c..ba6cef6019e 100644
--- a/code/modules/heavy_vehicle/mecha.dm
+++ b/code/modules/heavy_vehicle/mecha.dm
@@ -79,10 +79,10 @@
var/next_mecha_move = 0
var/list/hud_elements = list()
var/list/hardpoint_hud_elements = list()
- var/obj/screen/mecha/health/hud_health
- var/obj/screen/mecha/toggle/hatch_open/hud_open
- var/obj/screen/mecha/power/hud_power
- var/obj/screen/mecha/toggle/power_control/hud_power_control
+ var/atom/movable/screen/mecha/health/hud_health
+ var/atom/movable/screen/mecha/toggle/hatch_open/hud_open
+ var/atom/movable/screen/mecha/power/hud_power
+ var/atom/movable/screen/mecha/toggle/power_control/hud_power_control
//POWER
var/power = MECH_POWER_OFF
diff --git a/code/modules/holodeck/HolodeckObjects.dm b/code/modules/holodeck/HolodeckObjects.dm
index 312c5e016b2..1bf25d9cd3f 100644
--- a/code/modules/holodeck/HolodeckObjects.dm
+++ b/code/modules/holodeck/HolodeckObjects.dm
@@ -228,7 +228,7 @@
close()
else if (src.density)
- flick(text("[]deny", src.base_state), src)
+ flick("[src.base_state]deny", src)
return
diff --git a/code/modules/integrated_electronics/subtypes/input.dm b/code/modules/integrated_electronics/subtypes/input.dm
index f65278a789a..e91ef4d66a7 100644
--- a/code/modules/integrated_electronics/subtypes/input.dm
+++ b/code/modules/integrated_electronics/subtypes/input.dm
@@ -399,7 +399,7 @@
activate_pin(3)
for(var/mob/O in hearers(1, get_turf(src)))
- O.show_message(text("[icon2html(src, viewers(get_turf(src)))] *beep* *beep*"), 3, "*beep* *beep*", 2)
+ O.show_message("[icon2html(src, viewers(get_turf(src)))] *beep* *beep*", 3, "*beep* *beep*", 2)
//This circuit gives information on where the machine is.
/obj/item/integrated_circuit/input/gps
diff --git a/code/modules/item_worth/material_weapons.dm b/code/modules/item_worth/material_weapons.dm
deleted file mode 100644
index e76b103e156..00000000000
--- a/code/modules/item_worth/material_weapons.dm
+++ /dev/null
@@ -1,47 +0,0 @@
-/obj/item/material
- var/worth_multiplier = 1
-
-//Rule of thumb is: worth more than the parts put in
-//Finished good is worth more than its individual parts
-
-/obj/item/material/kitchen
- worth_multiplier = 1.1
-
-/obj/item/material/knife/butterfly
- worth_multiplier = 8
-
-/obj/item/material/harpoon
- worth_multiplier = 15
-
-/obj/item/material/hatchet
- worth_multiplier = 6
-
-/obj/item/material/minihoe
- worth_multiplier = 6
-
-/obj/item/material/scythe
- worth_multiplier = 20
-
-/obj/item/material/sword
- worth_multiplier = 30
-
-/obj/item/material/twohanded/fireaxe
- worth_multiplier = 31
-
-/obj/item/material/twohanded/spear
- worth_multiplier = 7 //blade + stuff
-
-/obj/item/material/star
- worth_multiplier = 25
-
-/obj/item/material/twohanded/pike
- worth_multiplier = 20
-
-/obj/item/material/twohanded/pike/halberd
- worth_multiplier = 30
-
-/obj/item/material/twohanded/pike/pitchfork
- worth_multiplier = 10
-
-/obj/item/material/twohanded/zweihander
- worth_multiplier = 35
diff --git a/code/modules/item_worth/materials.dm b/code/modules/item_worth/materials.dm
deleted file mode 100644
index 0a0612983d3..00000000000
--- a/code/modules/item_worth/materials.dm
+++ /dev/null
@@ -1,91 +0,0 @@
-/material
- var/value = 1
-
-/material/Destroy(force)
- stack_trace("Someone tried to delete a /material.")
- . = ..()
- return QDEL_HINT_LETMELIVE //Materials cannot be deleted, as you cannot poof the concept out of existence
-
-/material/uranium
- value = 100
-
-/material/diamond
- value = 170
-
-/material/gold
- value = 40
-
-/material/silver
- value = 35
-
-/material/bronze
- value = 25
-
-/material/phoron
- value = 150
-
-/material/stone/marble
- value = 4
-
-/material/steel
- value = 4
-
-/material/diona
- value = 5
-
-/material/steel/holographic
- value = 0
-
-/material/plasteel
- value = 12
-
-/material/plasteel/titanium
- value = 10
-
-/material/glass/reinforced
- value = 2
-
-/material/glass/phoron
- value = 30
-
-/material/glass/phoron/reinforced
- value = 40
-
-/material/osmium
- value = 30
-
-/material/tritium
- value = 300
-
-/material/mhydrogen
- value = 100
-
-/material/platinum
- value = 200
-
-/material/iron
- value = 5
-
-/material/wood
- value = 3
-
-/material/wood/holographic
- value = 0
-
-/material/cardboard
- value = 0
-
-/material/leather
- value = 3
-
-/material/hide
- value = 5
-
-/material/hide/human
- value = 35
-
-/material/bone
- value = 5
-
-/material/bone/necromancer
- value = 50
diff --git a/code/modules/item_worth/reagents.dm b/code/modules/item_worth/reagents.dm
deleted file mode 100644
index 2cb91bfa47f..00000000000
--- a/code/modules/item_worth/reagents.dm
+++ /dev/null
@@ -1,853 +0,0 @@
-//These value assume that each unit is roughly a gram
-
-/singleton/reagent
- var/value = 1 //per unit
-
-/singleton/reagent/blood
- value = 2
-
-/singleton/reagent/water
- value = 0
-
-/singleton/reagent/fuel
- value = 6.8
-
-/singleton/reagent/acetone
- value = 0.27
-
-/singleton/reagent/aluminum
- value = 0.02
-
-/singleton/reagent/ammonia
- value = 0.01
-
-/singleton/reagent/carbon
- value = 0.2
-
-/singleton/reagent/copper
- value = 0.02
-
-/singleton/reagent/alcohol/ethanol
- value = 0.01
-
-/singleton/reagent/alcohol/butanol
- value = 0.02
-
-/singleton/reagent/alcohol/butanol/xuizijuice
- value = 0.2
-
-/singleton/reagent/alcohol/butanol/xuizijuice
- value = 0.2
-
-/singleton/reagent/alcohol/nmshaan_liquor/darmadhirbrew
- value = 25
-
-/singleton/reagent/hydrazine
- value = 0.017
-
-/singleton/reagent/iron
- value = 0.01
-
-/singleton/reagent/lithium
- value = 6
-
-/singleton/reagent/mercury
- value = 0.02
-
-/singleton/reagent/phosphorus
- value = 0.4
-
-/singleton/reagent/potassium
- value = 1
-
-/singleton/reagent/radium
- value = 50 //Radium is crazy expensive, like 100k+ per gram. So probably a bit less expensive in the future.
-
-/singleton/reagent/acid
- value = 0.2
-
-/singleton/reagent/acid/stomach
- value = 0
-
-/singleton/reagent/sodium
- value = 0.1
-
-/singleton/reagent/sugar
- value = 0.1
-
-/singleton/reagent/sulfur
- value = 2
-
-/singleton/reagent/kois
- value = 0.5
-
-/singleton/reagent/nutriment
- value = 0.1
-
-/singleton/reagent/nutriment/virus_food
- value = 0.15
-
-/singleton/reagent/nutriment/sprinkles
- value = 0.05
-
-/singleton/reagent/nutriment/mint
- value = 0.14
-
-/singleton/reagent/lipozine
- value = 0.11
-
-/singleton/reagent/sodiumchloride
- value = 0.11
-
-/singleton/reagent/blackpepper
- value = 0.1
-
-/singleton/reagent/enzyme
- value = 0.2
-
-/singleton/reagent/frostoil
- value = 0.2
-
-/singleton/reagent/capsaicin
- value = 0.2
-
-/singleton/reagent/capsaicin/condensed
- value = 0.5
-
-/singleton/reagent/drink
- value = 0.1
-
-/singleton/reagent/drink/milk/chocolate
- value = 0.11
-
-/singleton/reagent/drink/milk/cream
- value = 0.12
-
-/singleton/reagent/drink/coffee
- value = 0.12
-
-/singleton/reagent/drink/coffee/soy_latte
- value = 0.13
-
-/singleton/reagent/drink/hot_coco
- value = 0.11
-
-/singleton/reagent/drink/milkshake
- value = 0.12
-
-/singleton/reagent/drink/ntella_milkshake
- value = 0.14
-
-/singleton/reagent/drink/shake_caramel
- value = 0.13
-
-/singleton/reagent/drink/shake_strawberry
- value = 0.13
-
-/singleton/reagent/drink/shake_dirtberry
- value = 0.13
-
-/singleton/reagent/drink/shake_blueberry
- value = 0.13
-
-/singleton/reagent/drink/shake_chocolate
- value = 0.13
-
-/singleton/reagent/drink/shake_blue_raspberry
- value = 0.13
-
-/singleton/reagent/drink/shake_raspberry
- value = 0.13
-
-/singleton/reagent/drink/shake_berry
- value = 0.13
-
-/singleton/reagent/drink/shake_ylpha
- value = 0.13
-
-/singleton/reagent/drink/shake_choco_mint
- value = 0.13
-
-/singleton/reagent/drink/ntella_hot_chocolate
- value = 0.13
-
-/singleton/reagent/drink/rewriter
- value = 0.11
-
-/singleton/reagent/drink/nuka_cola
- value = 0.13
-
-/singleton/reagent/drink/doctorsdelight
- value = 0.3
-
-/singleton/reagent/drink/ice
- value = 0
-
-/singleton/reagent/drink/nothing
- value = 0
-
-/singleton/reagent/alcohol/absinthe
- value = 0.13
-
-/singleton/reagent/alcohol/ale
- value = 0.13
-
-/singleton/reagent/alcohol/beer
- value = 0.12
-
-/singleton/reagent/alcohol/bitters
- value = 0.15
-
-/singleton/reagent/alcohol/bluecuracao
- value = 0.16
-
-/singleton/reagent/alcohol/champagne
- value = 0.2
-
-/singleton/reagent/alcohol/cognac
- value = 0.2
-
-/singleton/reagent/alcohol/deadrum
- value = 0.15
-
-/singleton/reagent/alcohol/gin
- value = 0.1
-
-/singleton/reagent/alcohol/coffee/kahlua
- value = 0.14
-
-/singleton/reagent/alcohol/melonliquor
- value = 0.13
-
-/singleton/reagent/alcohol/rum
- value = 0.1
-
-/singleton/reagent/alcohol/sake
- value = 0.11
-
-/singleton/reagent/alcohol/tequila
- value = 0.1
-
-/singleton/reagent/alcohol/thirteenloko
- value = 0.15
-
-/singleton/reagent/alcohol/vermouth
- value = 0.1
-
-/singleton/reagent/alcohol/vodka
- value = 0.1
-
-/singleton/reagent/alcohol/whiskey
- value = 0.1
-
-/singleton/reagent/alcohol/wine
- value = 0.1
-
-/singleton/reagent/alcohol/wine/vintage
- value = 15
-
-/singleton/reagent/alcohol/acid_spit
- value = 0.15
-
-/singleton/reagent/alcohol/alliescocktail
- value = 0.16
-
-/singleton/reagent/alcohol/aloe
- value = 0.17
-
-/singleton/reagent/alcohol/amasec
- value = 0.16
-
-/singleton/reagent/alcohol/andalusia
- value = 0.15
-
-/singleton/reagent/alcohol/antifreeze
- value = 0.16
-
-/singleton/reagent/alcohol/atomicbomb
- value = 0.21
-
-/singleton/reagent/alcohol/coffee/b52
- value = 0.17
-
-/singleton/reagent/alcohol/bahama_mama
- value = 0.15
-
-/singleton/reagent/alcohol/bananahonk
- value = 0.15
-
-/singleton/reagent/alcohol/barefoot
- value = 0.14
-
-/singleton/reagent/alcohol/beepsky_smash
- value = 0.2
-
-/singleton/reagent/alcohol/bilk
- value = 0.12
-
-/singleton/reagent/alcohol/blackrussian
- value = 0.14
-
-/singleton/reagent/alcohol/bloodymary
- value = 0.14
-
-/singleton/reagent/alcohol/booger
- value = 0.13
-
-/singleton/reagent/alcohol/coffee/brave_bull
- value = 0.16
-
-/singleton/reagent/alcohol/cmojito
- value = 0.14
-
-/singleton/reagent/alcohol/gibsonpunch
- value = 0.19
-
-/singleton/reagent/alcohol/classic
- value = 0.14
-
-/singleton/reagent/alcohol/martini
- value = 0.16
-
-/singleton/reagent/alcohol/corkpopper
- value = 0.13
-
-/singleton/reagent/alcohol/rumandcola
- value = 0.15
-
-/singleton/reagent/alcohol/cubalibre
- value = 0.16
-
-/singleton/reagent/alcohol/demonsblood
- value = 0.15
-
-/singleton/reagent/alcohol/devilskiss
- value = 0.14
-
-/singleton/reagent/alcohol/driestmartini
- value = 0.16
-
-/singleton/reagent/alcohol/ginfizz
- value = 0.13
-
-/singleton/reagent/alcohol/french75
- value = 0.17
-
-/singleton/reagent/alcohol/grog
- value = 0.11
-
-/singleton/reagent/alcohol/erikasurprise
- value = 0.16
-
-/singleton/reagent/alcohol/gargleblaster
- value = 0.21
-
-/singleton/reagent/alcohol/gintonic
- value = 0.15
-
-/singleton/reagent/alcohol/goldschlager
- value = 0.2
-
-/singleton/reagent/alcohol/hippiesdelight
- value = 0.12
-
-/singleton/reagent/alcohol/hooch
- value = 0.11
-
-/singleton/reagent/alcohol/iced_beer
- value = 0.13
-
-/singleton/reagent/alcohol/irishcarbomb
- value = 0.14
-
-/singleton/reagent/alcohol/coffee/irishcoffee
- value = 0.12
-
-/singleton/reagent/alcohol/irish_cream
- value = 0.13
-
-/singleton/reagent/alcohol/longislandicedtea
- value = 0.13
-
-/singleton/reagent/alcohol/manhattan
- value = 0.14
-
-/singleton/reagent/alcohol/manhattan_proj
- value = 0.2
-
-/singleton/reagent/alcohol/manly_dorf
- value = 0.13
-
-/singleton/reagent/alcohol/margarita
- value = 0.15
-
-/singleton/reagent/alcohol/mead
- value = 0.13
-
-/singleton/reagent/alcohol/moonshine
- value = 0.11
-
-/singleton/reagent/alcohol/muscmule
- value = 0.14
-
-/singleton/reagent/alcohol/neurotoxin
- value = 0.2
-
-/singleton/reagent/alcohol/omimosa
- value = 0.18
-
-/singleton/reagent/alcohol/patron
- value = 0.16
-
-/singleton/reagent/alcohol/pinkgin
- value = 0.11
-
-/singleton/reagent/alcohol/pinkgintonic
- value = 0.13
-
-/singleton/reagent/alcohol/piratepunch
- value = 0.14
-
-/singleton/reagent/alcohol/planterpunch
- value = 0.13
-
-/singleton/reagent/alcohol/pwine
- value = 0.19
-
-/singleton/reagent/alcohol/red_mead
- value = 0.14
-
-/singleton/reagent/alcohol/sbiten
- value = 0.13
-
-/singleton/reagent/alcohol/screwdrivercocktail
- value = 0.13
-
-/singleton/reagent/alcohol/sidewinderfang
- value = 0.14
-
-/singleton/reagent/alcohol/silencer
- value = 0.135
-
-/singleton/reagent/alcohol/singulo
- value = 0.2
-
-/singleton/reagent/alcohol/snowwhite
- value = 0.125
-
-/singleton/reagent/alcohol/ssroyale
- value = 0.14
-
-/singleton/reagent/alcohol/suidream
- value = 0.12
-
-/singleton/reagent/alcohol/gibsonhooch
- value = 0.21
-
-/singleton/reagent/alcohol/tequila_sunrise
- value = 0.13
-
-/singleton/reagent/alcohol/threemileisland
- value = 0.2
-
-/singleton/reagent/alcohol/toxins_special
- value = 0.2
-
-/singleton/reagent/alcohol/vodkamartini
- value = 0.135
-
-/singleton/reagent/alcohol/vodkatonic
- value = 0.145
-
-/singleton/reagent/alcohol/white_russian
- value = 0.125
-
-/singleton/reagent/alcohol/whiskey_cola
- value = 0.15
-
-/singleton/reagent/alcohol/whiskeysoda
- value = 0.15
-
-/singleton/reagent/alcohol/specialwhiskey
- value = 0.3
-
-/singleton/reagent/alcohol/daiquiri
- value = 0.15
-
-/singleton/reagent/alcohol/icepick
- value = 0.15
-
-/singleton/reagent/alcohol/poussecafe
- value = 0.17
-
-/singleton/reagent/alcohol/mintjulep
- value = 0.15
-
-/singleton/reagent/alcohol/johncollins
- value = 0.17
-
-/singleton/reagent/alcohol/gimlet
- value = 0.13
-
-/singleton/reagent/alcohol/starsandstripes
- value = 0.15
-
-/singleton/reagent/alcohol/metropolitan
- value = 0.13
-
-/singleton/reagent/alcohol/caruso
- value = 0.18
-
-/singleton/reagent/alcohol/aprilshower
- value = 0.15
-
-/singleton/reagent/alcohol/carthusiansazerac
- value = 0.17
-
-/singleton/reagent/alcohol/deweycocktail
- value = 0.15
-
-/singleton/reagent/alcohol/chartreusegreen
- value = 0.18
-
-/singleton/reagent/alcohol/chartreuseyellow
- value = 0.18
-
-/singleton/reagent/alcohol/cremewhite
- value = 0.14
-
-/singleton/reagent/alcohol/cremeyvette
- value = 0.17
-
-/singleton/reagent/alcohol/brandy
- value = 0.2
-
-/singleton/reagent/alcohol/guinness
- value = 0.1
-
-/singleton/reagent/alcohol/drambuie
- value = 0.18
-
-/singleton/reagent/alcohol/oldfashioned
- value = 0.15
-
-/singleton/reagent/alcohol/blindrussian
- value = 0.16
-
-/singleton/reagent/alcohol/rustynail
- value = 0.13
-
-/singleton/reagent/alcohol/tallrussian
- value = 0.15
-
-/singleton/reagent/alcohol/solarian_white
- value = 0.125
-
-/singleton/reagent/alcohol/solarian_marine
- value = 0.2
-
-/singleton/reagent/alcohol/cloudyeridani
- value = 0.12
-
-/singleton/reagent/alcohol/djinntea
- value = 0.12
-
-/singleton/reagent/alcohol/permanentrevolution
- value = 0.13
-
-/singleton/reagent/alcohol/internationale
- value = 0.13
-
-/singleton/reagent/alcohol/dionamama
- value = 0.2
-
-/singleton/reagent/alcohol/jovianstorm
- value = 0.13
-
-/singleton/reagent/alcohol/primeminister
- value = 0.13
-
-/singleton/reagent/alcohol/peacetreaty
- value = 0.15
-
-/singleton/reagent/alcohol/fiscream
- value = 0.14
-
-/singleton/reagent/alcohol/coffee/fiscoffee
- value = 0.13
-
-/singleton/reagent/alcohol/fisfirebomb
- value = 0.15
-
-/singleton/reagent/inaprovaline
- value = 2.5
-
-/singleton/reagent/bicaridine
- value = 4.9
-
-/singleton/reagent/dermaline
- value = 3.9
-
-/singleton/reagent/dylovene
- value = 2.1
-
-/singleton/reagent/dexalin
- value = 2.4
-
-/singleton/reagent/dexalin/plus
- value = 3.6
-
-/singleton/reagent/tricordrazine
- value = 6
-
-/singleton/reagent/cryoxadone
- value = 3.9
-
-/singleton/reagent/clonexadone
- value = 5.5
-
-/singleton/reagent/perconol
- value = 3.3
-
-/singleton/reagent/mortaphenyl
- value = 3.1
-
-/singleton/reagent/oxycomorphine
- value = 3.3
-
-/singleton/reagent/synaptizine
- value = 4.6
-
-/singleton/reagent/alkysine
- value = 5.9
-
-/singleton/reagent/oculine
- value = 4.2
-
-/singleton/reagent/peridaxon
- value = 6
-
-/singleton/reagent/ryetalyn
- value = 3.6
-
-/singleton/reagent/pneumalin
- value = 3.2
-
-/singleton/reagent/hyperzine
- value = 3.9
-
-/singleton/reagent/ethylredoxrazine
- value = 3.1
-
-/singleton/reagent/hyronalin
- value = 2.3
-
-/singleton/reagent/arithrazine
- value = 2.7
-
-/singleton/reagent/thetamycin
- value = 2.5
-
-/singleton/reagent/antidexafen
- value = 1.5
-
-/singleton/reagent/sterilizine
- value = 2.2
-
-/singleton/reagent/leporazine
- value = 2
-
-/singleton/reagent/mental/corophenidate
- value = 6
-
-/singleton/reagent/mental/parvosil
- value = 6
-
-/singleton/reagent/mental/neurostabin
- value = 6
-
-/singleton/reagent/mental/minaphobin
- value = 6
-
-/singleton/reagent/mental/emoxanyl
- value = 6
-
-/singleton/reagent/mental/orastabin
- value = 6
-
-/singleton/reagent/mental/neurapan
- value = 6
-
-/singleton/reagent/mental/nerospectan
- value = 6
-
-/singleton/reagent/mental/truthserum
- value = 8
-
-/singleton/reagent/mental/nicotine
- value = 2
-
-/singleton/reagent/rezadone
- value = 5
-
-/singleton/reagent/sanasomnum
- value = 5
-
-/singleton/reagent/verunol
- value = 2
-
-/singleton/reagent/crayon_dust
- value = 0.001
-
-/singleton/reagent/adminordrazine
- value = 1000
-
-/singleton/reagent/gold
- value = 7
-
-/singleton/reagent/silver
- value = 4
-
-/singleton/reagent/uranium
- value = 9
-
-/singleton/reagent/platinum
- value = 3
-
-/singleton/reagent/adrenaline
- value = 3
-
-/singleton/reagent/diethylamine
- value = 0.9
-
-/singleton/reagent/surfactant
- value = 0.05
-
-/singleton/reagent/thermite
- value = 6
-
-/singleton/reagent/spacecleaner
- value = 0.7
-
-/singleton/reagent/lube
- value = 0.6
-
-/singleton/reagent/glycerol
- value = 8
-
-/singleton/reagent/nitroglycerin
- value = 9
-
-/singleton/reagent/coolant
- value = 0.8
-
-/singleton/reagent/woodpulp
- value = 0.6
-
-/singleton/reagent/luminol
- value = 1.4
-
-/singleton/reagent/toxin
- value = 2
-
-/singleton/reagent/toxin/plasticide
- value = 2.1
-
-/singleton/reagent/toxin/amatoxin
- value = 2.3
-
-/singleton/reagent/toxin/carpotoxin
- value = 3
-
-/singleton/reagent/toxin/phoron
- value = 10
-
-/singleton/reagent/toxin/cyanide
- value = 3.3
-
-/singleton/reagent/toxin/potassium_chloride
- value = 4.4
-
-/singleton/reagent/toxin/potassium_chlorophoride
- value = 4.5
-
-/singleton/reagent/toxin/zombiepowder
- value = 2.9
-
-/singleton/reagent/toxin/fertilizer
- value = 1.2
-
-/singleton/reagent/toxin/plantbgone
- value = 1.1
-
-/singleton/reagent/acid/polyacid
- value = 2
-
-/singleton/reagent/lexorin
- value = 2.4
-
-/singleton/reagent/mutagen
- value = 3.1
-
-/singleton/reagent/slimejelly
- value = 1.2
-
-/singleton/reagent/soporific
- value = 2.5
-
-/singleton/reagent/polysomnine
- value = 2.6
-
-/singleton/reagent/polysomnine/beer2
- value = 2.2
-
-/singleton/reagent/drugs/mms
- value = 2.8
-
-/singleton/reagent/drugs/serotrotium
- value = 2.5
-
-/singleton/reagent/drugs/cryptobiolin
- value = 2
-
-/singleton/reagent/drugs/impedrezene
- value = 1.8
-
-/singleton/reagent/drugs/mindbreaker
- value = 0.6
-
-/singleton/reagent/drugs/psilocybin
- value = 0.7
-
-/singleton/reagent/aslimetoxin
- value = 3
-
-/singleton/reagent/toxin/nanites
- value = 9
-
-/singleton/reagent/estus
- value = 50
-
-/singleton/reagent/liquid_fire
- value = 50
-
-/singleton/reagent/black_matter
- value = 250
-
-/singleton/reagent/bluespace_dust
- value = 250
-
-/singleton/reagent/philosopher_stone
- value = 1000
-
-/singleton/reagent/elixir
- value = 1000
-
-/singleton/reagent/azoth
- value = 500
-
-/singleton/reagent/toxin/undead
- value = 300
-
-/singleton/reagent/drugs/ambrosia_extract
- value = 2.8
diff --git a/code/modules/martial_arts/martial.dm b/code/modules/martial_arts/martial.dm
index 77c7b07e39c..9095933fdaa 100644
--- a/code/modules/martial_arts/martial.dm
+++ b/code/modules/martial_arts/martial.dm
@@ -88,8 +88,8 @@
D.visible_message(SPAN_DANGER("[attack_message]"))
playsound(D.loc, ((miss_type) ? (miss_type == 1 ? attack.miss_sound : 'sound/weapons/thudswoosh.ogg') : attack.attack_sound), 25, 1, -1)
- A.attack_log += text("\[[time_stamp()]\] [miss_type ? (miss_type == 1 ? "Missed" : "Blocked") : "[pick(attack.attack_verb)]"] [D.name] ([D.ckey])")
- D.attack_log += text("\[[time_stamp()]\] [miss_type ? (miss_type == 1 ? "Was missed by" : "Has blocked") : "Has Been [pick(attack.attack_verb)]"] by [A.name] ([A.ckey])")
+ A.attack_log += "\[[time_stamp()]\] [miss_type ? (miss_type == 1 ? "Missed" : "Blocked") : "[pick(attack.attack_verb)]"] [D.name] ([D.ckey])"
+ D.attack_log += "\[[time_stamp()]\] [miss_type ? (miss_type == 1 ? "Was missed by" : "Has blocked") : "Has Been [pick(attack.attack_verb)]"] by [A.name] ([A.ckey])"
msg_admin_attack("[key_name(A)] [miss_type ? (miss_type == 1 ? "has missed" : "was blocked by") : "has [pick(attack.attack_verb)]"] [key_name(D)] (JMP)",ckey=key_name(A),ckey_target=key_name(D))
if(miss_type)
diff --git a/code/modules/martial_arts/sol_combat.dm b/code/modules/martial_arts/sol_combat.dm
index acef8b010a4..078e3aaf0b4 100644
--- a/code/modules/martial_arts/sol_combat.dm
+++ b/code/modules/martial_arts/sol_combat.dm
@@ -88,8 +88,8 @@
playsound(get_turf(D), /singleton/sound_category/punch_sound, 50, 1, -1)
A.visible_message(SPAN_DANGER("[A] [picked_hit_type] [D]!"))
- A.attack_log += text("\[[time_stamp()]\] ["[picked_hit_type]"] [D.name] ([D.ckey])")
- D.attack_log += text("\[[time_stamp()]\] ["Has Been [picked_hit_type]"] by [A.name] ([A.ckey])")
+ A.attack_log += "\[[time_stamp()]\] ["[picked_hit_type]"] [D.name] ([D.ckey])"
+ D.attack_log += "\[[time_stamp()]\] ["Has Been [picked_hit_type]"] by [A.name] ([A.ckey])"
msg_admin_attack("[key_name(A)] ["has [picked_hit_type]"] [key_name(D)] (JMP)",ckey=key_name(A),ckey_target=key_name(D))
return 1
@@ -100,8 +100,8 @@
if(check_streak(A,D))
return 1
- A.attack_log += text("\[[time_stamp()]\] Disarmed [D.name] ([D.ckey])")
- D.attack_log += text("\[[time_stamp()]\] Has been disarmed by [A.name] ([A.ckey])")
+ A.attack_log += "\[[time_stamp()]\] Disarmed [D.name] ([D.ckey])"
+ D.attack_log += "\[[time_stamp()]\] Has been disarmed by [A.name] ([A.ckey])"
msg_admin_attack("[key_name(A)] disarmed [D.name] ([D.ckey]) (JMP)",ckey=key_name(D),ckey_target=key_name(A))
if(prob(60))
diff --git a/code/modules/materials/materials.dm b/code/modules/materials/materials.dm
index 3c8e3f6c71d..7030cbc7d89 100644
--- a/code/modules/materials/materials.dm
+++ b/code/modules/materials/materials.dm
@@ -87,6 +87,9 @@
var/hardness = 60 // Prob of wall destruction by hulk, used for edge damage in weapons. Also used for bullet protection in armor.
var/weight = 20 // Determines blunt damage/throwforce for weapons, and whether it can be flipped. Check DEFAULT_TABLE_FLIP_WEIGHT if you want your materai to be tableflippable.
+ /// The price value of the item
+ var/value = 1
+
// Noise when someone is faceplanted onto a table made of this material.
var/tableslam_noise = 'sound/weapons/tablehit1.ogg'
// Noise made when a simple door made of this material opens or closes.
@@ -200,6 +203,11 @@
multipart_reinf_icon = new(multipart_reinf_icon)
multipart_reinf_icon.Blend(blend_colour, ICON_MULTIPLY)
+/material/Destroy(force)
+ stack_trace("Someone tried to delete a /material.")
+ . = ..()
+ return QDEL_HINT_LETMELIVE //Materials cannot be deleted, as you cannot poof the concept out of existence
+
// This is a placeholder for proper integration of windows/windoors into the system.
/material/proc/build_windows(var/mob/living/user, var/obj/item/stack/used_stack)
return 0
@@ -279,6 +287,7 @@
icon_colour = "#007A00"
weight = 25
hardness = 20
+ value = 100
stack_origin_tech = list(TECH_MATERIAL = 5)
door_icon_base = "stone"
golem = SPECIES_GOLEM_URANIUM
@@ -289,6 +298,7 @@
flags = MATERIAL_UNMELTABLE
cut_delay = 60
icon_colour = "#00FFE1"
+ value = 170
opacity = 0.4
reflectivity = 0.6
conductivity = 1
@@ -307,6 +317,7 @@
icon_colour = "#EDD12F"
weight = 30
hardness = 15
+ value = 40
conductivity = 41
stack_origin_tech = list(TECH_MATERIAL = 4)
sheet_singular_name = "ingot"
@@ -318,6 +329,7 @@
stack_type = /obj/item/stack/material/bronze
weight = 30
hardness = 50
+ value = 25
conductivity = 11
icon_colour = "#EDD12F"
stack_origin_tech = list(TECH_MATERIAL = 2)
@@ -338,6 +350,7 @@
icon_colour = "#D1E6E3"
weight = 22
hardness = 50
+ value = 35
conductivity = 63
stack_origin_tech = list(TECH_MATERIAL = 3)
sheet_singular_name = "ingot"
@@ -352,6 +365,7 @@
icon_colour = "#FC2BC5"
shard_type = SHARD_SHARD
hardness = 30
+ value = 150
stack_origin_tech = list(TECH_MATERIAL = 2, TECH_PHORON = 2)
door_icon_base = "stone"
sheet_singular_name = "crystal"
@@ -400,6 +414,7 @@
icon_colour = "#b4b1a6"
weight = 26
hardness = 70
+ value = 4
stack_type = /obj/item/stack/material/marble
golem = SPECIES_GOLEM_MARBLE
drop_sound = 'sound/items/drop/boots.ogg'
@@ -418,6 +433,7 @@
name = DEFAULT_WALL_MATERIAL
stack_type = /obj/item/stack/material/steel
integrity = 150
+ value = 4
conductivity = 11
protectiveness = 10 // 33%
wall_icon = 'icons/turf/smooth/composite_solid_color.dmi'
@@ -439,6 +455,7 @@
colour_blend = FALSE
integrity = 100
weight = 23
+ value = 5
// below is same as wood
melting_point = T0C + 300
ignition_point = T0C + 288
@@ -456,6 +473,7 @@
display_name = DEFAULT_WALL_MATERIAL
stack_type = null
shard_type = SHARD_NONE
+ value = 0
/material/plasteel
name = MATERIAL_PLASTEEL
@@ -468,6 +486,7 @@
explosion_resistance = 25
hardness = 80
weight = 23
+ value = 12
protectiveness = 20 // 50%
conductivity = 10
stack_origin_tech = list(TECH_MATERIAL = 2)
@@ -483,6 +502,7 @@
conductivity = 2.38
hardness = 90
weight = 25
+ value = 10
protectiveness = 25
icon_base = "metal"
door_icon_base = "metal"
@@ -617,6 +637,7 @@
tableslam_noise = 'sound/effects/glass_hit.ogg'
hardness = 40
weight = 30
+ value = 2
stack_origin_tech = list(TECH_MATERIAL = 2)
composite_material = list(DEFAULT_WALL_MATERIAL = 1875, MATERIAL_GLASS = 3750)
window_options = list("One Direction" = 1, "Full Window" = 4, "Windoor" = 5)
@@ -630,6 +651,7 @@
stack_type = /obj/item/stack/material/glass/phoronglass
flags = MATERIAL_BRITTLE
integrity = 100
+ value = 30
icon_colour = "#FC2BC5"
stack_origin_tech = list(TECH_MATERIAL = 4)
created_window = /obj/structure/window/borosilicate
@@ -646,6 +668,7 @@
created_window = /obj/structure/window/borosilicate/reinforced
hardness = 40
weight = 30
+ value = 40
rod_product = null
/material/plastic
@@ -682,6 +705,7 @@
stack_type = /obj/item/stack/material/mhydrogen
icon_colour = "#E6C5DE"
stack_origin_tech = list(TECH_MATERIAL = 6, TECH_POWER = 6, TECH_MAGNET = 5)
+ value = 100
conductivity = 100
golem = SPECIES_GOLEM_HYDROGEN
is_fusion_fuel = TRUE
@@ -691,6 +715,7 @@
stack_type = /obj/item/stack/material/platinum
icon_colour = "#9999FF"
weight = 27
+ value = 200
conductivity = 9.43
stack_origin_tech = list(TECH_MATERIAL = 2)
sheet_singular_name = "ingot"
@@ -701,6 +726,7 @@
stack_type = /obj/item/stack/material/iron
icon_colour = "#5C5454"
weight = 22
+ value = 5
conductivity = 10
sheet_singular_name = "ingot"
sheet_plural_name = "ingots"
@@ -755,6 +781,7 @@
hardness = 15
weight = 18
protectiveness = 8 // 28%
+ value = 3
conductivity = 1
melting_point = T0C+300 //okay, not melting in this case, but hot enough to destroy wood
ignition_point = T0C+288
@@ -854,6 +881,7 @@
display_name = "wood"
stack_type = null
shard_type = SHARD_NONE
+ value = 0
/material/cardboard
name = MATERIAL_CARDBOARD
@@ -864,6 +892,7 @@
hardness = 1
weight = 1
protectiveness = 0 // 0%
+ value = 0
ignition_point = T0C+232 //"the temperature at which book-paper catches fire, and burns." close enough
melting_point = T0C+232 //temperature at which cardboard walls would be destroyed
stack_origin_tech = list(TECH_MATERIAL = 1)
@@ -920,6 +949,7 @@
flags = MATERIAL_PADDING
hardness = 1
weight = 1
+ value = 3
ignition_point = T0C+300
melting_point = T0C+300
protectiveness = 3 // 13%
@@ -1048,6 +1078,7 @@
golem = SPECIES_GOLEM_MEAT
drop_sound = 'sound/items/drop/leather.ogg'
pickup_sound = 'sound/items/pickup/leather.ogg'
+ value = 5
/material/hide/corgi
name = MATERIAL_HIDE_CORGI
@@ -1073,6 +1104,7 @@
name = MATERIAL_HIDE_HUMAN
stack_type = /obj/item/stack/material/animalhide/human
icon_colour = "#833C00"
+ value = 35
/material/hide/barehide
name = "bare hide"
@@ -1092,6 +1124,7 @@
weight = 10
hardness = 20
integrity = 70
+ value = 5
stack_origin_tech = list(TECH_MATERIAL = 2)
door_icon_base = "stone"
protectiveness = 10 // 33%
@@ -1103,6 +1136,7 @@
integrity = 150
hardness = 60
protectiveness = 20 // 50%
+ value = 50
/material/vaurca
name = MATERIAL_VAURCA
diff --git a/code/modules/mining/mint.dm b/code/modules/mining/mint.dm
index 3e1f3550179..06dcb4e0c5e 100644
--- a/code/modules/mining/mint.dm
+++ b/code/modules/mining/mint.dm
@@ -60,53 +60,53 @@
var/dat = "Coin Press
"
if(!input)
- dat += text("input connection status: ")
- dat += text("NOT CONNECTED
")
+ dat += "input connection status: "
+ dat += "NOT CONNECTED
"
if(!output)
- dat += text("
output connection status: ")
- dat += text("NOT CONNECTED
")
+ dat += "
output connection status: "
+ dat += "NOT CONNECTED
"
- dat += text("
Gold inserted: [amt_gold] ")
+ dat += "
Gold inserted: [amt_gold] "
if(chosen == "gold")
- dat += text("chosen")
+ dat += "chosen"
else
- dat += text("Choose")
- dat += text("
Silver inserted: [amt_silver] ")
+ dat += "Choose"
+ dat += "
Silver inserted: [amt_silver] "
if(chosen == "silver")
- dat += text("chosen")
+ dat += "chosen"
else
- dat += text("Choose")
- dat += text("
Iron inserted: [amt_iron] ")
+ dat += "Choose"
+ dat += "
Iron inserted: [amt_iron] "
if(chosen == DEFAULT_WALL_MATERIAL)
- dat += text("chosen")
+ dat += "chosen"
else
- dat += text("Choose")
- dat += text("
Diamond inserted: [amt_diamond] ")
+ dat += "Choose"
+ dat += "
Diamond inserted: [amt_diamond] "
if(chosen == "diamond")
- dat += text("chosen")
+ dat += "chosen"
else
- dat += text("Choose")
- dat += text("
Phoron inserted: [amt_phoron] ")
+ dat += "Choose"
+ dat += "
Phoron inserted: [amt_phoron] "
if(chosen == "phoron")
- dat += text("chosen")
+ dat += "chosen"
else
- dat += text("Choose")
- dat += text("
Uranium inserted: [amt_uranium] ")
+ dat += "Choose"
+ dat += "
Uranium inserted: [amt_uranium] "
if(chosen == "uranium")
- dat += text("chosen")
+ dat += "chosen"
else
- dat += text("Choose")
+ dat += "Choose"
- dat += text("
Will produce [coinsToProduce] [chosen] coins if enough materials are available.
")
- dat += text("-10 ")
- dat += text("-5 ")
- dat += text("-1 ")
- dat += text("+1 ")
- dat += text("+5 ")
- dat += text("+10 ")
+ dat += "
Will produce [coinsToProduce] [chosen] coins if enough materials are available.
"
+ dat += "-10 "
+ dat += "-5 "
+ dat += "-1 "
+ dat += "+1 "
+ dat += "+5 "
+ dat += "+10 "
- dat += text("
In total this machine produced [newCoins] coins.")
- dat += text("
Make coins")
+ dat += "
In total this machine produced [newCoins] coins."
+ dat += "
Make coins"
user << browse("[dat]", "window=mint")
/obj/machinery/mineral/mint/Topic(href, href_list)
diff --git a/code/modules/mob/abstract/freelook/blueprints/blueprints.dm b/code/modules/mob/abstract/freelook/blueprints/blueprints.dm
index aaf62c350ab..c11232db994 100644
--- a/code/modules/mob/abstract/freelook/blueprints/blueprints.dm
+++ b/code/modules/mob/abstract/freelook/blueprints/blueprints.dm
@@ -265,7 +265,7 @@
return SEE_TURFS|BLIND
/mob/abstract/eye/blueprints/apply_visual(mob/living/M)
- M.overlay_fullscreen("blueprints", /obj/screen/fullscreen/blueprints)
+ M.overlay_fullscreen("blueprints", /atom/movable/screen/fullscreen/blueprints)
M.client.screen += area_name_effect
M.add_client_color(/datum/client_color/monochrome)
diff --git a/code/modules/mob/abstract/new_player/menu.dm b/code/modules/mob/abstract/new_player/menu.dm
index 36661aca96d..dd99df784df 100644
--- a/code/modules/mob/abstract/new_player/menu.dm
+++ b/code/modules/mob/abstract/new_player/menu.dm
@@ -12,39 +12,39 @@
SHOULD_NOT_SLEEP(TRUE)
adding = list()
- var/obj/screen/using
+ var/atom/movable/screen/using
- using = new /obj/screen/new_player/title(src)
+ using = new /atom/movable/screen/new_player/title(src)
using.name = "Title"
using.hud = src
adding += using
- using = new /obj/screen/new_player/selection/join_game(src)
+ using = new /atom/movable/screen/new_player/selection/join_game(src)
using.name = "Join Game"
using.hud = src
adding += using
- using = new /obj/screen/new_player/selection/settings(src)
+ using = new /atom/movable/screen/new_player/selection/settings(src)
using.name = "Setup Character"
adding += using
- using = new /obj/screen/new_player/selection/manifest(src)
+ using = new /atom/movable/screen/new_player/selection/manifest(src)
using.name = "Crew Manifest"
adding += using
- using = new /obj/screen/new_player/selection/observe(src)
+ using = new /atom/movable/screen/new_player/selection/observe(src)
using.name = "Observe"
adding += using
- using = new /obj/screen/new_player/selection/changelog(src)
+ using = new /atom/movable/screen/new_player/selection/changelog(src)
using.name = "Changelog"
adding += using
- using = new /obj/screen/new_player/selection/polls(src)
+ using = new /atom/movable/screen/new_player/selection/polls(src)
using.name = "Polls"
adding += using
- using = new /obj/screen/new_player/selection/lore_summary(src)
+ using = new /atom/movable/screen/new_player/selection/lore_summary(src)
using.name = "Current Lore Summary"
adding += using
@@ -52,32 +52,32 @@
mymob.client.screen += adding
src.adding += using
-/obj/screen/new_player
+/atom/movable/screen/new_player
icon = 'icons/misc/hudmenu/hudmenu.dmi'
layer = HUD_BASE_LAYER
-/obj/screen/new_player/Initialize()
+/atom/movable/screen/new_player/Initialize()
set_sector_things()
. = ..()
-/obj/screen/new_player/proc/set_sector_things()
+/atom/movable/screen/new_player/proc/set_sector_things()
if(SSatlas.current_sector.sector_hud_menu)
icon = SSatlas.current_sector.sector_hud_menu
-/obj/screen/new_player/title
+/atom/movable/screen/new_player/title
name = "Title"
screen_loc = "WEST,SOUTH"
var/lobby_index = 1
var/refresh_timer_id = null
-/obj/screen/new_player/title/Destroy(force)
+/atom/movable/screen/new_player/title/Destroy(force)
if(refresh_timer_id)
deltimer(refresh_timer_id)
refresh_timer_id = null
. = ..()
-/obj/screen/new_player/title/Initialize()
+/atom/movable/screen/new_player/title/Initialize()
if(SSatlas.current_sector.sector_lobby_art)
SSatlas.current_map.lobby_icon = pick(SSatlas.current_sector.sector_lobby_art)
else if(!SSatlas.current_map.lobby_icon)
@@ -105,10 +105,10 @@
. = ..()
-/obj/screen/new_player/title/set_sector_things()
+/atom/movable/screen/new_player/title/set_sector_things()
return
-/obj/screen/new_player/title/proc/Update()
+/atom/movable/screen/new_player/title/proc/Update()
SHOULD_NOT_SLEEP(TRUE)
if(QDELETED(src))
@@ -125,24 +125,24 @@
animate(alpha = 255, icon_state = SSatlas.current_map.lobby_screens[lobby_index], time = 1 SECOND)
refresh_timer_id = addtimer(CALLBACK(src, PROC_REF(Update)), SSatlas.current_map.lobby_transitions, TIMER_UNIQUE | TIMER_CLIENT_TIME | TIMER_OVERRIDE | TIMER_STOPPABLE)
-/obj/screen/new_player/selection
+/atom/movable/screen/new_player/selection
var/click_sound = 'sound/effects/menu_click.ogg'
var/hud_arrow
-/obj/screen/new_player/selection/New(datum/hud/H)
+/atom/movable/screen/new_player/selection/New(datum/hud/H)
color = null
hud = H
..()
-/obj/screen/new_player/selection/Initialize()
+/atom/movable/screen/new_player/selection/Initialize()
. = ..()
set_sector_things()
-/obj/screen/new_player/selection/Destroy(force)
+/atom/movable/screen/new_player/selection/Destroy(force)
hud = null
. = ..()
-/obj/screen/new_player/selection/set_sector_things()
+/atom/movable/screen/new_player/selection/set_sector_things()
. = ..()
if(SSatlas.current_sector.sector_hud_menu_sound)
click_sound = SSatlas.current_sector.sector_hud_menu_sound
@@ -151,7 +151,7 @@
// We'll reset the animation just so it doesn't get stuck
animate(src, color = null, transform = null, time = 3, easing = CUBIC_EASING)
-/obj/screen/new_player/selection/MouseEntered(location, control, params)
+/atom/movable/screen/new_player/selection/MouseEntered(location, control, params)
if(hud_arrow)
AddOverlays(hud_arrow)
else
@@ -160,54 +160,54 @@
animate(src, color = color_rotation(30), transform = M, time = 3, easing = CUBIC_EASING)
return ..()
-/obj/screen/new_player/selection/MouseExited(location,control,params)
+/atom/movable/screen/new_player/selection/MouseExited(location,control,params)
if(hud_arrow)
ClearOverlays()
else
animate(src, color = null, transform = null, time = 3, easing = CUBIC_EASING)
return ..()
-/obj/screen/new_player/selection/join_game
+/atom/movable/screen/new_player/selection/join_game
name = "Join Game"
icon_state = "unready"
screen_loc = "LEFT+0.1,CENTER-1"
-/obj/screen/new_player/selection/settings
+/atom/movable/screen/new_player/selection/settings
name = "Setup"
icon_state = "setup"
screen_loc = "LEFT+0.1,CENTER-2"
-/obj/screen/new_player/selection/manifest
+/atom/movable/screen/new_player/selection/manifest
name = "Crew Manifest"
icon_state = "manifest"
screen_loc = "LEFT+0.1,CENTER-3"
-/obj/screen/new_player/selection/observe
+/atom/movable/screen/new_player/selection/observe
name = "Observe"
icon_state = "observe"
screen_loc = "LEFT+0.1,CENTER-4"
-/obj/screen/new_player/selection/changelog
+/atom/movable/screen/new_player/selection/changelog
name = "Changelog"
icon_state = "changelog"
screen_loc = "LEFT+0.1,CENTER-5"
-/obj/screen/new_player/selection/polls
+/atom/movable/screen/new_player/selection/polls
name = "Polls"
icon_state = "polls"
screen_loc = "LEFT+0.1,CENTER-6"
-/obj/screen/new_player/selection/lore_summary
+/atom/movable/screen/new_player/selection/lore_summary
name = "Current Lore Summary"
icon_state = "lore_summary"
screen_loc = "LEFT+0.1,CENTER-7"
-/obj/screen/new_player/selection/join_game/Initialize()
+/atom/movable/screen/new_player/selection/join_game/Initialize()
. = ..()
var/mob/abstract/new_player/player = hud.mymob
update_icon(player)
-/obj/screen/new_player/selection/join_game/Click()
+/atom/movable/screen/new_player/selection/join_game/Click()
var/mob/abstract/new_player/player = usr
sound_to(player, click_sound)
if(SSticker.current_state <= GAME_STATE_SETTING_UP)
@@ -219,7 +219,7 @@
player.join_game()
update_icon(player)
-/obj/screen/new_player/selection/join_game/update_icon(var/mob/abstract/new_player/player)
+/atom/movable/screen/new_player/selection/join_game/update_icon(var/mob/abstract/new_player/player)
if(SSticker.current_state <= GAME_STATE_SETTING_UP)
if(player.ready)
icon_state = "ready"
@@ -228,7 +228,7 @@
else
icon_state = "joingame"
-/obj/screen/new_player/selection/manifest/Click()
+/atom/movable/screen/new_player/selection/manifest/Click()
var/mob/abstract/new_player/player = usr
sound_to(player, click_sound)
if(SSticker.current_state < GAME_STATE_PLAYING)
@@ -236,22 +236,22 @@
return
player.ViewManifest()
-/obj/screen/new_player/selection/observe/Click()
+/atom/movable/screen/new_player/selection/observe/Click()
var/mob/abstract/new_player/player = usr
sound_to(player, click_sound)
player.new_player_observe()
-/obj/screen/new_player/selection/settings/Click()
+/atom/movable/screen/new_player/selection/settings/Click()
var/mob/abstract/new_player/player = usr
sound_to(player, click_sound)
player.setupcharacter()
-/obj/screen/new_player/selection/changelog/Click()
+/atom/movable/screen/new_player/selection/changelog/Click()
var/mob/abstract/new_player/player = usr
sound_to(player, click_sound)
player.client.changes()
-/obj/screen/new_player/selection/polls/Initialize()
+/atom/movable/screen/new_player/selection/polls/Initialize()
. = ..()
if(establish_db_connection(GLOB.dbcon))
var/mob/M = hud.mymob
@@ -263,12 +263,12 @@
if(newpoll)
icon_state = "polls_new"
-/obj/screen/new_player/selection/polls/Click()
+/atom/movable/screen/new_player/selection/polls/Click()
var/mob/abstract/new_player/player = usr
sound_to(player, click_sound)
player.handle_player_polling()
-/obj/screen/new_player/selection/lore_summary/Click()
+/atom/movable/screen/new_player/selection/lore_summary/Click()
var/mob/abstract/new_player/player = usr
sound_to(player, click_sound)
player.show_lore_summary()
diff --git a/code/modules/mob/abstract/new_player/preferences_setup.dm b/code/modules/mob/abstract/new_player/preferences_setup.dm
index eb42c9cfc21..5dab3c7d195 100644
--- a/code/modules/mob/abstract/new_player/preferences_setup.dm
+++ b/code/modules/mob/abstract/new_player/preferences_setup.dm
@@ -217,7 +217,7 @@
var/list/leftovers = list()
var/list/used_slots = list()
- if((equip_preview_mob & EQUIP_PREVIEW_LOADOUT) && !(previewJob && (equip_preview_mob & EQUIP_PREVIEW_JOB) && (previewJob.type == /datum/job/ai || previewJob.type == /datum/job/cyborg)))
+ if((equip_preview_mob & EQUIP_PREVIEW_LOADOUT))
SSjobs.EquipCustom(mannequin, previewJob, src, leftovers, null, used_slots)
if((equip_preview_mob & EQUIP_PREVIEW_JOB) && previewJob)
diff --git a/code/modules/mob/inventory.dm b/code/modules/mob/inventory.dm
index e9202a9e020..2e337b7a13d 100644
--- a/code/modules/mob/inventory.dm
+++ b/code/modules/mob/inventory.dm
@@ -403,7 +403,7 @@ var/list/slot_equipment_priority = list( \
return FALSE
/mob/living/carbon/throw_item(atom/target)
- if(stat || !target || istype(target, /obj/screen))
+ if(stat || !target || istype(target, /atom/movable/screen))
return FALSE
var/atom/movable/item = src.get_active_hand()
@@ -431,8 +431,8 @@ var/list/slot_equipment_priority = list( \
var/start_T_descriptor = "tile at [start_T.x], [start_T.y], [start_T.z] in area [get_area(start_T)]"
var/end_T_descriptor = "tile at [end_T.x], [end_T.y], [end_T.z] in area [get_area(end_T)]"
- M.attack_log += text("\[[time_stamp()]\] Has been thrown by [usr.name] ([usr.ckey]) from [start_T_descriptor] with the target [end_T_descriptor]")
- usr.attack_log += text("\[[time_stamp()]\] Has thrown [M.name] ([M.ckey]) from [start_T_descriptor] with the target [end_T_descriptor]")
+ M.attack_log += "\[[time_stamp()]\] Has been thrown by [usr.name] ([usr.ckey]) from [start_T_descriptor] with the target [end_T_descriptor]"
+ usr.attack_log += "\[[time_stamp()]\] Has thrown [M.name] ([M.ckey]) from [start_T_descriptor] with the target [end_T_descriptor]"
msg_admin_attack("[usr.name] ([usr.ckey]) has thrown [M.name] ([M.ckey]) from [start_T_descriptor] with the target [end_T_descriptor] (JMP)",ckey=key_name(usr),ckey_target=key_name(M))
qdel(G)
diff --git a/code/modules/mob/language/language.dm b/code/modules/mob/language/language.dm
index b3b1962f5f6..ca90f707737 100644
--- a/code/modules/mob/language/language.dm
+++ b/code/modules/mob/language/language.dm
@@ -5,29 +5,77 @@
*/
/datum/language
- var/name = "an unknown language" // Fluff name of language if any.
- var/short // a shortened name, for use when languages need to be identified
- var/desc = "A language." // Short description for 'Check Languages'.
- var/list/speech_verb = list("says") // 'says', 'hisses', 'farts'.)
- var/list/ask_verb = list("asks") // Used when sentence ends in a ?
- var/list/exclaim_verb = list("exclaims") // Used when sentence ends in a !
- var/list/shout_verb = list("shouts", "yells", "screams") //Used when a sentence ends in !!
- var/list/whisper_verb = null // Optional. When not specified speech_verb + quietly/softly is used instead.
- var/list/signlang_verb = list("signs") // list of emotes that might be displayed if this language has NONVERBAL or SIGNLANG flags
+ /// Fluff name of language if any.
+ var/name = "an unknown language"
+
+ /// a shortened name, for use when languages need to be identified
+ var/short
+
+ /// Short description for 'Check Languages'.
+ var/desc = "A language."
+
+ /// 'says', 'hisses', 'farts'.
+ var/list/speech_verb = list("says")
+
+ /// Used when sentence ends in a ?
+ var/list/ask_verb = list("asks")
+
+ /// Used when sentence ends in a !
+ var/list/exclaim_verb = list("exclaims")
+
+ /// Used when a sentence ends in !!
+ var/list/shout_verb = list("shouts", "yells", "screams")
+
+ /// Optional. When not specified speech_verb + quietly/softly is used instead.
+ var/list/whisper_verb = null
+
+ /// list of emotes that might be displayed if this language has NONVERBAL or SIGNLANG flags
+ var/list/signlang_verb = list("signs")
+
+ /// The verb displayed when a user sings their message
var/list/sing_verb = list("sings")
- var/list/sign_adv_length = list(" briefly", " a short message", " a message", " a lengthy message", " a very lengthy message") // 5 messages changing depending on the length of the signed language. A space should be added before the sentence as shown
- var/colour = "body" // CSS style to use for strings in this language.
- var/written_style // CSS style used when writing language down, can't be written if null
- var/key = "x" // Character used to speak in language eg. :o for Unathi.
- var/flags = 0 // Various language flags.
- var/native // If set, non-native speakers will have trouble speaking.
- var/list/syllables // Used when scrambling text for a non-speaker.
- var/list/space_chance = 55 // Likelihood of getting a space in the random scramble string
- var/list/partial_understanding // List of languages that can /somehwat/ understand it, format is: name = chance of understanding a word
- var/machine_understands = TRUE // Whether machines can parse and understand this language
+
+ /// 5 messages changing depending on the length of the signed language. A space should be added before the sentence as shown
+ var/list/sign_adv_length = list(" briefly", " a short message", " a message", " a lengthy message", " a very lengthy message")
+
+ /// CSS style to use for strings in this language.
+ var/colour = "body"
+
+ /// CSS style used when writing language down, can't be written if null
+ var/written_style
+
+ /// Character used to speak in language eg. :o for Unathi.
+ var/key = "x"
+
+ /// Various language flags.
+ var/flags = 0
+
+ /// If set, non-native speakers will have trouble speaking.
+ var/native
+
+ /// Used when scrambling text for a non-speaker.
+ var/list/syllables
+
+ /// Likelihood of getting a period and a space in the random scramble string
+ var/period_chance = 5
+
+ /// Likelihood of getting a space in the random scramble string
+ var/space_chance = 55
+
+ /// List of languages that can /somehwat/ understand it, format is: name = chance of understanding a word
+ var/list/partial_understanding
+
+ /// Whether machines can parse and understand this language
+ var/machine_understands = TRUE
+
+ /// Whether the accent tag will display when this language is used
var/allow_accents = FALSE
- var/always_parse_language = FALSE // forces the language to parse for language keys even when a default is set
- var/list/scramble_cache = list() // A map of unscrambled words -> scrambled words, for scrambling.
+
+ /// forces the language to parse for language keys even when a default is set
+ var/always_parse_language = FALSE
+
+ /// A map of unscrambled words -> scrambled words, for scrambling.
+ var/list/scramble_cache = list()
/datum/language/proc/get_random_name(var/gender, name_count=2, syllable_count=4, syllable_divisor=2)
if(!syllables || !syllables.len)
@@ -47,42 +95,61 @@
return "[trim(full_name)]"
+/// Scrambles the spoken line by looping through every word in the line, calling scramble_word, and then returning the final result
/datum/language/proc/scramble(var/input, var/list/known_languages)
+ // the chance that someone will recognize one of the words
var/understand_chance = 0
for(var/datum/language/L in known_languages)
if(LAZYACCESS(partial_understanding, L.name))
understand_chance += partial_understanding[L.name]
+ // singing automatically adds musical notes to the line, we don't want to scramble those
var/static/list/music_notes = list("\u2669", "\u266A", "\u266B")
- var/list/words = splittext(input, " ")
+ // splits the line into a list of words
+ var/list/words_in_line = splittext(input, " ")
+
+ // this list will be populated by the word created below
var/list/scrambled_text = list()
- var/new_sentence = 0
- for(var/w in words)
- var/nword = "[w] "
- var/input_ending = copytext(w, length(w))
- var/ends_sentence = findtext(".?!",input_ending)
- if(!prob(understand_chance) && !(w in music_notes))
- nword = scramble_word(w)
- if(new_sentence)
- nword = capitalize(nword)
- new_sentence = FALSE
- if(ends_sentence)
- nword = trim(nword)
- nword = "[nword][input_ending] "
- if(ends_sentence)
- new_sentence = TRUE
+ // marks the start of a new sentence in the for loop
+ var/new_sentence = FALSE
- scrambled_text += nword
+ // loop through the list of words, scrambling it if the listener doesn't understand it, just putting it in if they can partially understand it
+ var/word_index = 1
+ for(var/word in words_in_line)
+ var/list/scramble_results = process_word_prescramble(word, "[word] ", word_index, new_sentence, understand_chance, music_notes)
+ var/new_word = scramble_results[1]
+ new_sentence = scramble_results[2]
+ scrambled_text += new_word
+ word_index++
. = jointext(scrambled_text, null)
. = capitalize(.)
. = trim(.)
+/// Handles the word before it's scrambled, and then scrambles it if necessary. Returns the new word as the first result, and whether it's a new sentence or not as the second
+/datum/language/proc/process_word_prescramble(var/original_word, var/new_word, var/word_index, var/new_sentence, var/understand_chance, var/list/music_notes)
+ var/input_ending = copytext(original_word, length(original_word))
+ var/ends_sentence = findtext(".?!", input_ending)
+ if(!prob(understand_chance) && !(original_word in music_notes))
+ new_word = scramble_word(original_word)
+ if(new_sentence)
+ new_word = capitalize(new_word)
+ new_sentence = FALSE
+ if(ends_sentence)
+ new_word = trim(new_word)
+ new_word = "[new_word][input_ending] "
+
+ if(ends_sentence)
+ new_sentence = TRUE
+
+ return list(new_word, new_sentence)
+
+/// Scrambles one single word by using the syllables within the syllable list to construct a new word of approximately the same length
/datum/language/proc/scramble_word(var/input)
- if(!syllables || !syllables.len)
+ if(!length(syllables))
return stars(input)
// If the input is cached already, move it to the end of the cache and return it
@@ -93,29 +160,47 @@
return n
var/input_size = length(input)
+ var/input_size_required = scrambled_word_size_requirement(input_size)
var/scrambled_text = ""
- var/capitalize = 0
+ var/capitalize = FALSE
- while(length(scrambled_text) < input_size)
+ // loops until the size of the text we've constructed is bigger than the word we're scrambling
+ while(length(scrambled_text) < input_size_required)
+ // selects one of the syllables out of the syllable list
var/next = pick(syllables)
+
+ // if we're starting a new sentence, capitalize the first word
if(capitalize)
next = capitalize(next)
- capitalize = 0
+ capitalize = FALSE
+
+ // adds the picked syllable to the scramble list
scrambled_text += next
- var/chance = rand(100)
- if(chance <= 5)
- scrambled_text += ". "
- capitalize = 1
- else if(chance > 5 && chance <= space_chance)
- scrambled_text += " "
+
+ // we don't want to add any additional text if it pushes us over the size of the word itself,
+ // otherwise the next word won't be capitalized, or will have a double space in front of itself
+ if(length(scrambled_text) < input_size_required - 2)
+ // returns a value between 1 and 100, which will be used to determine if we should add a period and start a new word
+ var/chance = rand(100)
+
+ // adds a period and starts a new sentence
+ if(chance <= period_chance)
+ scrambled_text += ". "
+ capitalize = TRUE
+ // just adds a space
+ else if(chance <= space_chance)
+ scrambled_text += " "
// Add it to cache, cutting old entries if the list is too long
scramble_cache[input] = scrambled_text
- if(scramble_cache.len > SCRAMBLE_CACHE_LEN)
- scramble_cache.Cut(1, scramble_cache.len-SCRAMBLE_CACHE_LEN-1)
+ if(length(scramble_cache) > SCRAMBLE_CACHE_LEN)
+ scramble_cache.Cut(1, length(scramble_cache) - (SCRAMBLE_CACHE_LEN - 1))
return scrambled_text
+/datum/language/proc/scrambled_word_size_requirement(var/input_size)
+ return input_size
+
/datum/language/proc/format_message(message, verb)
return "[verb], \"[capitalize(message)]\""
diff --git a/code/modules/mob/language/station.dm b/code/modules/mob/language/station.dm
index 0cf62a44c3b..011c0ae5369 100644
--- a/code/modules/mob/language/station.dm
+++ b/code/modules/mob/language/station.dm
@@ -403,9 +403,28 @@
key = "6"
flags = RESTRICTED | NO_STUTTER | TCOMSSIM
syllables = list("beep","beep","beep","beep","beep","boop","boop","boop","bop","bop","dee","dee","doo","doo","hiss","hss","buzz","buzz","bzz","ksssh","keey","wurr","wahh","tzzz")
- space_chance = 10
+ period_chance = 0
+ space_chance = 0
/datum/language/machine/get_random_name()
if(prob(70))
return "[pick(list("PBU","HIU","SINA","ARMA","OSI"))]-[rand(100, 999)]"
return pick(ai_names)
+
+// we're trimming out the punctuation and not readding it, so we need to readd it at the very end
+/datum/language/machine/scramble(var/input, var/list/known_languages)
+ . = ..()
+ return formalize_text(.)
+
+/datum/language/machine/process_word_prescramble(var/original_word, var/new_word, var/word_index, var/new_sentence, var/understand_chance, var/list/music_notes)
+ // we drop every second word to make the resulting message shorter, to represent the effective compression of EAL
+ if(word_index % 2)
+ if(!prob(understand_chance) && !(original_word in music_notes))
+ new_word = trim(scramble_word(original_word))
+ else
+ new_word = ""
+ return list(new_word, new_sentence)
+
+// we don't care about the input_size at all, we just want one syllable used
+/datum/language/machine/scrambled_word_size_requirement(var/input_size)
+ return 1
diff --git a/code/modules/mob/living/announcer.dm b/code/modules/mob/living/announcer.dm
index 8d6a6121d52..3226a8b4e8c 100755
--- a/code/modules/mob/living/announcer.dm
+++ b/code/modules/mob/living/announcer.dm
@@ -93,7 +93,7 @@
/mob/living/announcer/InStasis()
return FALSE
-/mob/living/announcer/flash_act(intensity = FLASH_PROTECTION_MODERATE, override_blindness_check = FALSE, affect_silicon = FALSE, ignore_inherent = FALSE, type = /obj/screen/fullscreen/flash, length = 2.5 SECONDS)
+/mob/living/announcer/flash_act(intensity = FLASH_PROTECTION_MODERATE, override_blindness_check = FALSE, affect_silicon = FALSE, ignore_inherent = FALSE, type = /atom/movable/screen/fullscreen/flash, length = 2.5 SECONDS)
return FALSE
/mob/living/announcer/dust()
diff --git a/code/modules/mob/living/carbon/alien/life.dm b/code/modules/mob/living/carbon/alien/life.dm
index afe455ba172..de413423390 100644
--- a/code/modules/mob/living/carbon/alien/life.dm
+++ b/code/modules/mob/living/carbon/alien/life.dm
@@ -126,11 +126,11 @@
if(stat != DEAD)
if(blinded)
- overlay_fullscreen("blind", /obj/screen/fullscreen/blind)
+ overlay_fullscreen("blind", /atom/movable/screen/fullscreen/blind)
else
clear_fullscreen("blind")
- set_fullscreen(disabilities & NEARSIGHTED, "impaired", /obj/screen/fullscreen/impaired, 1)
- set_fullscreen(eye_blurry, "blurry", /obj/screen/fullscreen/blurry)
+ set_fullscreen(disabilities & NEARSIGHTED, "impaired", /atom/movable/screen/fullscreen/impaired, 1)
+ set_fullscreen(eye_blurry, "blurry", /atom/movable/screen/fullscreen/blurry)
if(machine)
if (machine.check_eye(src) < 0)
reset_view(null)
diff --git a/code/modules/mob/living/carbon/brain/life.dm b/code/modules/mob/living/carbon/brain/life.dm
index bbb9bc85ec1..f29d989344a 100644
--- a/code/modules/mob/living/carbon/brain/life.dm
+++ b/code/modules/mob/living/carbon/brain/life.dm
@@ -205,11 +205,11 @@
if(stat != DEAD)
if(blinded)
- overlay_fullscreen("blind", /obj/screen/fullscreen/blind)
+ overlay_fullscreen("blind", /atom/movable/screen/fullscreen/blind)
else
clear_fullscreen("blind")
- set_fullscreen(disabilities & NEARSIGHTED, "impaired", /obj/screen/fullscreen/impaired, 1)
- set_fullscreen(eye_blurry, "blurry", /obj/screen/fullscreen/blurry)
+ set_fullscreen(disabilities & NEARSIGHTED, "impaired", /atom/movable/screen/fullscreen/impaired, 1)
+ set_fullscreen(eye_blurry, "blurry", /atom/movable/screen/fullscreen/blurry)
if(druggy > 5)
add_client_color(/datum/client_color/oversaturated)
else
diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm
index ad89ba2e666..ea8f1c3c598 100644
--- a/code/modules/mob/living/carbon/human/human.dm
+++ b/code/modules/mob/living/carbon/human/human.dm
@@ -565,7 +565,7 @@
show_inv(machine)
if (href_list["mach_close"])
- var/t1 = text("window=[]", href_list["mach_close"])
+ var/t1 = "window=[href_list["mach_close"]]"
unset_machine()
src << browse(null, t1)
@@ -673,10 +673,10 @@
return
if(istype(usr,/mob/living/carbon/human))
var/mob/living/carbon/human/U = usr
- R.security.comments += text("Made by [U.get_authentification_name()] ([U.get_assignment()]) on [time2text(world.realtime, "DDD MMM DD hh:mm:ss")], [GLOB.game_year]
[t1]")
+ R.security.comments += "Made by [U.get_authentification_name()] ([U.get_assignment()]) on [time2text(world.realtime, "DDD MMM DD hh:mm:ss")], [GLOB.game_year]
[t1]"
if(istype(usr,/mob/living/silicon/robot))
var/mob/living/silicon/robot/U = usr
- R.security.comments += text("Made by [U.name] ([U.mod_type] [U.braintype]) on [time2text(world.realtime, "DDD MMM DD hh:mm:ss")], [GLOB.game_year]
[t1]")
+ R.security.comments += "Made by [U.name] ([U.mod_type] [U.braintype]) on [time2text(world.realtime, "DDD MMM DD hh:mm:ss")], [GLOB.game_year]
[t1]"
if (href_list["medical"])
if(hasHUD(usr,"medical"))
@@ -774,10 +774,10 @@
return
if(ishuman(usr))
var/mob/living/carbon/human/U = usr
- R.medical.comments += text("Made by [U.get_authentification_name()] ([U.get_assignment()]) on [time2text(world.realtime, "DDD MMM DD hh:mm:ss")], [GLOB.game_year]
[t1]")
+ R.medical.comments += "Made by [U.get_authentification_name()] ([U.get_assignment()]) on [time2text(world.realtime, "DDD MMM DD hh:mm:ss")], [GLOB.game_year]
[t1]"
if(isrobot(usr))
var/mob/living/silicon/robot/U = usr
- R.medical.comments += text("Made by [U.name] ([U.mod_type] [U.braintype]) on [time2text(world.realtime, "DDD MMM DD hh:mm:ss")], [GLOB.game_year]
[t1]")
+ R.medical.comments += "Made by [U.name] ([U.mod_type] [U.braintype]) on [time2text(world.realtime, "DDD MMM DD hh:mm:ss")], [GLOB.game_year]
[t1]"
if(href_list["triagetag"])
if(hasHUD(usr, "medical"))
@@ -872,7 +872,7 @@
if(HAS_TRAIT(src, TRAIT_ORIGIN_LIGHT_SENSITIVE))
return max(. - 1, FLASH_PROTECTION_REDUCED)
-/mob/living/carbon/human/flash_act(intensity = FLASH_PROTECTION_MODERATE, override_blindness_check = FALSE, affect_silicon = FALSE, ignore_inherent = FALSE, type = /obj/screen/fullscreen/flash, length = 2.5 SECONDS)
+/mob/living/carbon/human/flash_act(intensity = FLASH_PROTECTION_MODERATE, override_blindness_check = FALSE, affect_silicon = FALSE, ignore_inherent = FALSE, type = /atom/movable/screen/fullscreen/flash, length = 2.5 SECONDS)
if(..())
var/obj/item/organ/E = get_eyes(no_synthetic = !affect_silicon)
if(istype(E))
diff --git a/code/modules/mob/living/carbon/human/human_attackhand.dm b/code/modules/mob/living/carbon/human/human_attackhand.dm
index 6e151980e4b..3108c6f56b4 100644
--- a/code/modules/mob/living/carbon/human/human_attackhand.dm
+++ b/code/modules/mob/living/carbon/human/human_attackhand.dm
@@ -47,8 +47,8 @@
if(G.cell.charge >= 2500)
G.cell.use(G.cell.charge) //So it drains the cell.
visible_message(SPAN_DANGER("[src] has been touched with the stun gloves by [M]!"))
- M.attack_log += text("\[[time_stamp()]\] Stungloved [src.name] ([src.ckey])")
- src.attack_log += text("\[[time_stamp()]\] Has been stungloved by [M.name] ([M.ckey])")
+ M.attack_log += "\[[time_stamp()]\] Stungloved [src.name] ([src.ckey])"
+ src.attack_log += "\[[time_stamp()]\] Has been stungloved by [M.name] ([M.ckey])"
msg_admin_attack("[key_name_admin(M)] stungloved [src.name] ([src.ckey]) (JMP)",ckey=key_name(M),ckey_target=key_name(src))
@@ -248,8 +248,8 @@
H.visible_message(SPAN_DANGER("[attack_message]"))
playsound(loc, ((miss_type) ? (miss_type == 1 ? attack.miss_sound : 'sound/weapons/thudswoosh.ogg') : attack.attack_sound), 25, 1, -1)
- H.attack_log += text("\[[time_stamp()]\] [miss_type ? (miss_type == 1 ? "Missed" : "Blocked") : "[pick(attack.attack_verb)]"] [src.name] ([src.ckey])")
- src.attack_log += text("\[[time_stamp()]\] [miss_type ? (miss_type == 1 ? "Was missed by" : "Has blocked") : "Has Been [pick(attack.attack_verb)]"] by [H.name] ([H.ckey])")
+ H.attack_log += "\[[time_stamp()]\] [miss_type ? (miss_type == 1 ? "Missed" : "Blocked") : "[pick(attack.attack_verb)]"] [src.name] ([src.ckey])"
+ src.attack_log += "\[[time_stamp()]\] [miss_type ? (miss_type == 1 ? "Was missed by" : "Has blocked") : "Has Been [pick(attack.attack_verb)]"] by [H.name] ([H.ckey])"
msg_admin_attack("[key_name(H)] [miss_type ? (miss_type == 1 ? "has missed" : "was blocked by") : "has [pick(attack.attack_verb)]"] [key_name(src)] (JMP)",ckey=key_name(H),ckey_target=key_name(src))
if(miss_type)
@@ -335,8 +335,8 @@
return FALSE
M.nutrition = Clamp(M.nutrition - disarm_cost, 0, M.max_nutrition)
- M.attack_log += text("\[[time_stamp()]\] Disarmed [src.name] ([src.ckey])")
- src.attack_log += text("\[[time_stamp()]\] Has been disarmed by [M.name] ([M.ckey])")
+ M.attack_log += "\[[time_stamp()]\] Disarmed [src.name] ([src.ckey])"
+ src.attack_log += "\[[time_stamp()]\] Has been disarmed by [M.name] ([M.ckey])"
msg_admin_attack("[key_name(M)] disarmed [src.name] ([src.ckey]) (JMP)",ckey=key_name(M),ckey_target=key_name(src))
M.do_attack_animation(src)
@@ -546,8 +546,8 @@
if(!damage)
return
- user.attack_log += text("\[[time_stamp()]\] attacked [src.name] ([src.ckey])")
- src.attack_log += text("\[[time_stamp()]\] was attacked by [user.name] ([user.ckey])")
+ user.attack_log += "\[[time_stamp()]\] attacked [src.name] ([src.ckey])"
+ src.attack_log += "\[[time_stamp()]\] was attacked by [user.name] ([user.ckey])"
user.do_attack_animation(src)
if(damage < 15 && check_shields(damage, null, user, null, "\the [user]"))
return
diff --git a/code/modules/mob/living/carbon/human/human_defense.dm b/code/modules/mob/living/carbon/human/human_defense.dm
index 9c02464ddda..32d3301c656 100644
--- a/code/modules/mob/living/carbon/human/human_defense.dm
+++ b/code/modules/mob/living/carbon/human/human_defense.dm
@@ -382,8 +382,8 @@ emp_act
var/mob/M = O.throwing?.thrower?.resolve()
var/client/assailant = M.client
if(assailant)
- src.attack_log += text("\[[time_stamp()]\] Has been hit with a [O], thrown by [M.name] ([assailant.ckey])")
- M.attack_log += text("\[[time_stamp()]\] Hit [src.name] ([src.ckey]) with a thrown [O]")
+ src.attack_log += "\[[time_stamp()]\] Has been hit with a [O], thrown by [M.name] ([assailant.ckey])"
+ M.attack_log += "\[[time_stamp()]\] Hit [src.name] ([src.ckey]) with a thrown [O]"
if(!istype(src,/mob/living/simple_animal/rat))
msg_admin_attack("[src.name] ([src.ckey]) was hit by a [O], thrown by [M.name] ([assailant.ckey]) (JMP)",ckey=key_name(M),ckey_target=key_name(src))
diff --git a/code/modules/mob/living/carbon/human/human_powers.dm b/code/modules/mob/living/carbon/human/human_powers.dm
index 5525f825f41..7edea059b34 100644
--- a/code/modules/mob/living/carbon/human/human_powers.dm
+++ b/code/modules/mob/living/carbon/human/human_powers.dm
@@ -2234,6 +2234,8 @@
V.transmitting = TRUE
say("[message]", GLOB.all_languages[LANGUAGE_VAURCA])
+ custom_emote(VISIBLE_MESSAGE, "'s receiver antenna vibrates!")
+ playsound(src, 'sound/voice/vaurca_antenna_twitch.ogg', 60, 1)
V.transmitting = FALSE
/mob/living/carbon/human/proc/hivenet_manifest()
diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm
index f84648d1cc2..4e9ac1d3099 100644
--- a/code/modules/mob/living/carbon/human/life.dm
+++ b/code/modules/mob/living/carbon/human/life.dm
@@ -875,7 +875,7 @@
if(-INFINITY to -95) severity = 10
if(paralysis || InStasis())
severity = max(severity, 8)
- overlay_fullscreen("crit", /obj/screen/fullscreen/crit, severity)
+ overlay_fullscreen("crit", /atom/movable/screen/fullscreen/crit, severity)
else
clear_fullscreen("crit")
//Oxygen damage overlay
@@ -889,7 +889,7 @@
if(35 to 40) severity = 5
if(40 to 45) severity = 6
if(45 to INFINITY) severity = 7
- overlay_fullscreen("oxy", /obj/screen/fullscreen/oxy, severity)
+ overlay_fullscreen("oxy", /atom/movable/screen/fullscreen/oxy, severity)
else
clear_fullscreen("oxy")
@@ -905,7 +905,7 @@
if(55 to 70) severity = 4
if(70 to 85) severity = 5
if(85 to INFINITY) severity = 6
- overlay_fullscreen("brute", /obj/screen/fullscreen/brute, severity)
+ overlay_fullscreen("brute", /atom/movable/screen/fullscreen/brute, severity)
else
clear_fullscreen("brute")
@@ -1147,7 +1147,7 @@
#undef POSING_STRING
/mob/living/carbon/human/proc/add_status_to_hud(var/set_overlay, var/set_status_message)
- var/obj/screen/status/new_status = new /obj/screen/status(null, ui_style2icon(client.prefs.UI_style), set_overlay, set_status_message)
+ var/atom/movable/screen/status/new_status = new /atom/movable/screen/status(null, ui_style2icon(client.prefs.UI_style), set_overlay, set_status_message)
new_status.alpha = client.prefs.UI_style_alpha
new_status.color = client.prefs.UI_style_color
new_status.screen_loc = get_status_loc(status_overlays ? LAZYLEN(status_overlays) + 1 : 1)
diff --git a/code/modules/mob/living/carbon/human/species/outsider/revenant.dm b/code/modules/mob/living/carbon/human/species/outsider/revenant.dm
index c17c1646607..74b7dc8b31e 100644
--- a/code/modules/mob/living/carbon/human/species/outsider/revenant.dm
+++ b/code/modules/mob/living/carbon/human/species/outsider/revenant.dm
@@ -152,7 +152,7 @@
user.forceMove(target)
user.visible_message("[user] appears out of thin air!", SPAN_NOTICE("You successfully step into your destination."))
- user.overlay_fullscreen("teleport", /obj/screen/fullscreen/teleport)
+ user.overlay_fullscreen("teleport", /atom/movable/screen/fullscreen/teleport)
user.clear_fullscreen("teleport", 5 SECONDS)
playsound(get_turf(user), pick('sound/hallucinations/behind_you1.ogg', 'sound/hallucinations/behind_you2.ogg', 'sound/hallucinations/i_see_you1.ogg', 'sound/hallucinations/i_see_you2.ogg', 'sound/hallucinations/im_here1.ogg', 'sound/hallucinations/im_here2.ogg', 'sound/hallucinations/look_up1.ogg', 'sound/hallucinations/look_up2.ogg', 'sound/hallucinations/over_here1.ogg', 'sound/hallucinations/over_here2.ogg', 'sound/hallucinations/over_here3.ogg', 'sound/hallucinations/turn_around1.ogg', 'sound/hallucinations/turn_around2.ogg'), 50, TRUE)
diff --git a/code/modules/mob/living/carbon/human/species/species.dm b/code/modules/mob/living/carbon/human/species/species.dm
index aa4833dfbec..027ba9f3c46 100644
--- a/code/modules/mob/living/carbon/human/species/species.dm
+++ b/code/modules/mob/living/carbon/human/species/species.dm
@@ -621,17 +621,17 @@
if(!H.client)//no client, no screen to update
return 1
- H.set_fullscreen(H.eye_blind, "blind", /obj/screen/fullscreen/blind)
- H.set_fullscreen(H.stat == UNCONSCIOUS, "blackout", /obj/screen/fullscreen/blackout)
+ H.set_fullscreen(H.eye_blind, "blind", /atom/movable/screen/fullscreen/blind)
+ H.set_fullscreen(H.stat == UNCONSCIOUS, "blackout", /atom/movable/screen/fullscreen/blackout)
if(GLOB.config.welder_vision)
if(H.equipment_tint_total)
- H.overlay_fullscreen("welder", /obj/screen/fullscreen/impaired, H.equipment_tint_total, 0.5 SECONDS)
+ H.overlay_fullscreen("welder", /atom/movable/screen/fullscreen/impaired, H.equipment_tint_total, 0.5 SECONDS)
else
H.clear_fullscreen("welder")
var/how_nearsighted = get_how_nearsighted(H)
- H.set_fullscreen(how_nearsighted, "nearsighted", /obj/screen/fullscreen/oxy, how_nearsighted)
- H.set_fullscreen(H.eye_blurry, "blurry", /obj/screen/fullscreen/blurry)
+ H.set_fullscreen(how_nearsighted, "nearsighted", /atom/movable/screen/fullscreen/oxy, how_nearsighted)
+ H.set_fullscreen(H.eye_blurry, "blurry", /atom/movable/screen/fullscreen/blurry)
if(H.druggy)
H.client.screen += global_hud.druggy
diff --git a/code/modules/mob/living/carbon/human/species/species_hud.dm b/code/modules/mob/living/carbon/human/species/species_hud.dm
index f5129adeffc..618c55ec70b 100644
--- a/code/modules/mob/living/carbon/human/species/species_hud.dm
+++ b/code/modules/mob/living/carbon/human/species/species_hud.dm
@@ -31,7 +31,7 @@
"shoes" = list("loc" = ui_shoes, "name" = "shoes", "slot" = slot_shoes, "state" = "shoes", "toggle" = 1),
"wrists" = list("loc" = ui_wrists, "name" = "wrists", "slot" = slot_wrists, "state" = "wrists", "toggle" = 1),
"suit storage" = list("loc" = ui_sstore1, "name" = "suit storage", "slot" = slot_s_store, "state" = "suitstore"),
- "back" = list("loc" = ui_back, "name" = "back", "slot" = slot_back, "state" = "back", "slot_type" = /obj/screen/inventory/back),
+ "back" = list("loc" = ui_back, "name" = "back", "slot" = slot_back, "state" = "back", "slot_type" = /atom/movable/screen/inventory/back),
"id" = list("loc" = ui_id, "name" = "id", "slot" = slot_wear_id, "state" = "id"),
"storage1" = list("loc" = ui_storage1, "name" = "left pocket", "slot" = slot_l_store, "state" = "pocket"),
"storage2" = list("loc" = ui_storage2, "name" = "right pocket", "slot" = slot_r_store, "state" = "pocket"),
@@ -106,7 +106,7 @@
gear = list(
"l_ear" = list("loc" = ui_shoes, "name" = "left ear", "slot" = slot_l_ear, "state" = "l_ear", "toggle" = 1),
- "back" = list("loc" = ui_back, "name" = "back", "slot" = slot_back, "state" = "back", "slot_type" = /obj/screen/inventory/back),
+ "back" = list("loc" = ui_back, "name" = "back", "slot" = slot_back, "state" = "back", "slot_type" = /atom/movable/screen/inventory/back),
"id" = list("loc" = ui_id, "name" = "id", "slot" = slot_wear_id, "state" = "id"),
"storage1" = list("loc" = ui_storage1, "name" = "left pocket", "slot" = slot_l_store, "state" = "pocket"),
"storage2" = list("loc" = ui_storage2, "name" = "right pocket", "slot" = slot_r_store, "state" = "pocket")
diff --git a/code/modules/mob/living/carbon/human/stripping.dm b/code/modules/mob/living/carbon/human/stripping.dm
index 851456f992d..396192a9554 100644
--- a/code/modules/mob/living/carbon/human/stripping.dm
+++ b/code/modules/mob/living/carbon/human/stripping.dm
@@ -3,7 +3,7 @@
return FALSE
if(user.incapacitated() || !user.Adjacent(src))
- user << browse(null, text("window=mob[src.name]"))
+ user << browse(null, "window=mob[src.name]")
return FALSE
if(ishuman(user))
@@ -134,8 +134,8 @@
if (suit.has_sensor >= 2)
to_chat(user, SPAN_WARNING("\The [src]'s suit sensor controls are locked."))
return
- attack_log += text("\[[time_stamp()]\] Has had their sensors toggled by [user.name] ([user.ckey])")
- user.attack_log += text("\[[time_stamp()]\] Attempted to toggle [name]'s ([ckey]) sensors")
+ attack_log += "\[[time_stamp()]\] Has had their sensors toggled by [user.name] ([user.ckey])"
+ user.attack_log += "\[[time_stamp()]\] Attempted to toggle [name]'s ([ckey]) sensors"
suit.set_sensors(user)
// Remove all splints.
diff --git a/code/modules/mob/living/carbon/slime/powers.dm b/code/modules/mob/living/carbon/slime/powers.dm
index 44fd166485f..f95384c6dcd 100644
--- a/code/modules/mob/living/carbon/slime/powers.dm
+++ b/code/modules/mob/living/carbon/slime/powers.dm
@@ -127,7 +127,7 @@
health = maxHealth
amount_grown = 0
regenerate_icons()
- name = text("[colour] [is_adult ? "adult" : "baby"] slime ([number])")
+ name = "[colour] [is_adult ? "adult" : "baby"] slime ([number])"
real_name = name
set_content(TRUE)
addtimer(CALLBACK(src, PROC_REF(set_content), FALSE), 1200) // You get two minutes of safety
diff --git a/code/modules/mob/living/life.dm b/code/modules/mob/living/life.dm
index 08a750dca3c..acf31f96b72 100644
--- a/code/modules/mob/living/life.dm
+++ b/code/modules/mob/living/life.dm
@@ -131,13 +131,13 @@
return
if(eye_blind)
- overlay_fullscreen("blind", /obj/screen/fullscreen/blind)
+ overlay_fullscreen("blind", /atom/movable/screen/fullscreen/blind)
else
clear_fullscreen("blind")
- set_fullscreen(disabilities & NEARSIGHTED, "impaired", /obj/screen/fullscreen/impaired, 1)
- set_fullscreen(eye_blurry, "blurry", /obj/screen/fullscreen/blurry)
+ set_fullscreen(disabilities & NEARSIGHTED, "impaired", /atom/movable/screen/fullscreen/impaired, 1)
+ set_fullscreen(eye_blurry, "blurry", /atom/movable/screen/fullscreen/blurry)
- set_fullscreen(stat == UNCONSCIOUS, "blackout", /obj/screen/fullscreen/blackout)
+ set_fullscreen(stat == UNCONSCIOUS, "blackout", /atom/movable/screen/fullscreen/blackout)
if(machine)
var/viewflags = machine.check_eye(src)
diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm
index b4755dccd1b..2333f3e6094 100644
--- a/code/modules/mob/living/living.dm
+++ b/code/modules/mob/living/living.dm
@@ -909,7 +909,7 @@ default behaviour is:
/mob/living/Initialize()
. = ..()
add_to_target_grid()
- ability_master = new /obj/screen/movable/ability_master(FALSE, src)
+ ability_master = new /atom/movable/screen/movable/ability_master(FALSE, src)
var/static/list/loc_connections = list(
COMSIG_ATOM_ENTERED = PROC_REF(on_entered),
diff --git a/code/modules/mob/living/living_defense.dm b/code/modules/mob/living/living_defense.dm
index a36077714c0..e9e637a9204 100644
--- a/code/modules/mob/living/living_defense.dm
+++ b/code/modules/mob/living/living_defense.dm
@@ -119,7 +119,7 @@
for(var/obj/O in L)
O.emp_act(severity)
-/mob/living/flash_act(intensity = FLASH_PROTECTION_MODERATE, override_blindness_check = FALSE, affect_silicon = FALSE, ignore_inherent = FALSE, type = /obj/screen/fullscreen/flash, length = 2.5 SECONDS)
+/mob/living/flash_act(intensity = FLASH_PROTECTION_MODERATE, override_blindness_check = FALSE, affect_silicon = FALSE, ignore_inherent = FALSE, type = /atom/movable/screen/fullscreen/flash, length = 2.5 SECONDS)
if(is_blind() && !(override_blindness_check || affect_silicon))
return FALSE
@@ -193,8 +193,8 @@
var/mob/M = O.throwing?.thrower?.resolve()
var/client/assailant = M.client
if(assailant)
- src.attack_log += text("\[[time_stamp()]\] Has been hit with a [O], thrown by [M.name] ([assailant.ckey])")
- M.attack_log += text("\[[time_stamp()]\] Hit [src.name] ([src.ckey]) with a thrown [O]")
+ src.attack_log += "\[[time_stamp()]\] Has been hit with a [O], thrown by [M.name] ([assailant.ckey])"
+ M.attack_log += "\[[time_stamp()]\] Hit [src.name] ([src.ckey]) with a thrown [O]"
if(!istype(src,/mob/living/simple_animal/rat))
msg_admin_attack("[src.name] ([src.ckey]) was hit by a [O], thrown by [M.name] ([assailant.ckey]) (JMP)",ckey=key_name(M),ckey_target=key_name(src))
@@ -261,8 +261,8 @@
if(!damage)
return
- user.attack_log += text("\[[time_stamp()]\] attacked [src.name] ([src.ckey])")
- src.attack_log += text("\[[time_stamp()]\] was attacked by [user.name] ([user.ckey])")
+ user.attack_log += "\[[time_stamp()]\] attacked [src.name] ([src.ckey])"
+ src.attack_log += "\[[time_stamp()]\] was attacked by [user.name] ([user.ckey])"
if (attack_message)
src.visible_message(SPAN_DANGER("[user] has [attack_message] [src]!"))
user.do_attack_animation(src)
@@ -414,11 +414,11 @@
button_number++
if(A.button == null)
- var/obj/screen/movable/action_button/N = new(hud_used)
+ var/atom/movable/screen/movable/action_button/N = new(hud_used)
N.owner = A
A.button = N
- var/obj/screen/movable/action_button/B = A.button
+ var/atom/movable/screen/movable/action_button/B = A.button
B.update_icon()
diff --git a/code/modules/mob/living/silicon/ai/ai.dm b/code/modules/mob/living/silicon/ai/ai.dm
index 856e81ec981..b6be086eb5c 100644
--- a/code/modules/mob/living/silicon/ai/ai.dm
+++ b/code/modules/mob/living/silicon/ai/ai.dm
@@ -517,7 +517,7 @@ var/list/ai_verbs_default = list(
if (href_list["mach_close"])
if (href_list["mach_close"] == "aialerts")
view_alerts = 0
- var/t1 = text("window=[]", href_list["mach_close"])
+ var/t1 = "window=[href_list["mach_close"]]"
unset_machine()
src << browse(null, t1)
if (href_list["switchcamera"])
@@ -546,7 +546,7 @@ var/list/ai_verbs_default = list(
to_chat(src, SPAN_NOTICE("Unable to locate visual entry."))
return
var/info = cameraRecords[entry]
- src << browse(text("[][]", info[1], info[2]), text("window=[]", html_encode(info[1])))
+ src << browse("[info[1]][info[2]]", "window=[html_encode(info[1])]")
return
return
diff --git a/code/modules/mob/living/silicon/ai/life.dm b/code/modules/mob/living/silicon/ai/life.dm
index b1070d4387e..ffd3c7844d8 100644
--- a/code/modules/mob/living/silicon/ai/life.dm
+++ b/code/modules/mob/living/silicon/ai/life.dm
@@ -167,7 +167,7 @@
/mob/living/silicon/ai/update_sight()
if(is_blind())
update_icon()
- overlay_fullscreen("blind", /obj/screen/fullscreen/blind)
+ overlay_fullscreen("blind", /atom/movable/screen/fullscreen/blind)
set_sight(sight&(~SEE_TURFS)&(~SEE_MOBS)&(~SEE_OBJS))
set_see_invisible(SEE_INVISIBLE_LIVING)
else if(stat == DEAD)
diff --git a/code/modules/mob/living/silicon/robot/drone/drone_items.dm b/code/modules/mob/living/silicon/robot/drone/drone_items.dm
index ad2fdb28966..98b205cd672 100644
--- a/code/modules/mob/living/silicon/robot/drone/drone_items.dm
+++ b/code/modules/mob/living/silicon/robot/drone/drone_items.dm
@@ -197,11 +197,11 @@
for(var/O in module.modules)
var/module_string = ""
if(!O)
- module_string += text("Resource depleted
")
+ module_string +="Resource depleted
"
else if(activated(O))
- module_string += text("[O]: Activated
")
+ module_string += "[O]: Activated
"
else
- module_string += text("[O]: Activate
")
+ module_string += "[O]: Activate
"
var/obj/item/I = O
if((istype(I, /obj/item) || istype(I, /obj/item/device)) && !(I.iscoil()))
@@ -213,11 +213,11 @@
if(emagged)
if(!module.emag)
- dat += text("Resource depleted
")
+ dat += "Resource depleted
"
else if(activated(module.emag))
- dat += text("[module.emag]: Activated
")
+ dat += "[module.emag]: Activated
"
else
- dat += text("[module.emag]: Activate
")
+ dat += "[module.emag]: Activate
"
dat += resources
diff --git a/code/modules/mob/living/silicon/robot/life.dm b/code/modules/mob/living/silicon/robot/life.dm
index 46af00f3a0b..a0125db6f01 100644
--- a/code/modules/mob/living/silicon/robot/life.dm
+++ b/code/modules/mob/living/silicon/robot/life.dm
@@ -254,11 +254,11 @@
if(stat != DEAD)
if(blinded)
- overlay_fullscreen("blind", /obj/screen/fullscreen/blind)
+ overlay_fullscreen("blind", /atom/movable/screen/fullscreen/blind)
else
clear_fullscreen("blind")
- set_fullscreen(disabilities & NEARSIGHTED, "impaired", /obj/screen/fullscreen/impaired, 1)
- set_fullscreen(eye_blurry, "blurry", /obj/screen/fullscreen/blurry)
+ set_fullscreen(disabilities & NEARSIGHTED, "impaired", /atom/movable/screen/fullscreen/impaired, 1)
+ set_fullscreen(eye_blurry, "blurry", /atom/movable/screen/fullscreen/blurry)
if (machine)
if (machine.check_eye(src) < 0)
diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm
index 2da2c3f7b64..31f7fcede6a 100644
--- a/code/modules/mob/living/silicon/robot/robot.dm
+++ b/code/modules/mob/living/silicon/robot/robot.dm
@@ -60,11 +60,11 @@
var/overclock_available = FALSE // if the overclock is available for use
// HUD Stuff
- var/obj/screen/inv1
- var/obj/screen/inv2
- var/obj/screen/inv3
+ var/atom/movable/screen/inv1
+ var/atom/movable/screen/inv2
+ var/atom/movable/screen/inv3
var/shown_robot_modules = FALSE //Used to determine whether they have the module menu shown or not
- var/obj/screen/robot_modules_background
+ var/atom/movable/screen/robot_modules_background
// Modules and active items
var/mod_type = "Default"
@@ -878,21 +878,21 @@
for(var/obj in module.modules)
if(!obj)
- dat += text("Resource depleted
")
+ dat += "Resource depleted
"
else if(activated(obj))
- dat += text("[obj]: Activated
")
+ dat += "[obj]: Activated
"
else
- dat += text("[obj]: Activate
")
+ dat += "[obj]: Activate
"
if(emagged)
if(activated(module.emag))
- dat += text("[module.emag]: Activated
")
+ dat += "[module.emag]: Activated
"
else
- dat += text("[module.emag]: Activate
")
+ dat += "[module.emag]: Activate
"
if(malf_AI_module)
if(activated(module.malf_AI_module))
- dat += text("[module.malf_AI_module]: Activated
")
+ dat += "[module.malf_AI_module]: Activated
"
else
- dat += text("[module.malf_AI_module]: Activate
")
+ dat += "[module.malf_AI_module]: Activate
"
src << browse(dat, "window=robotmod")
diff --git a/code/modules/mob/living/silicon/silicon.dm b/code/modules/mob/living/silicon/silicon.dm
index f1c2b1aabbd..49639762e4b 100644
--- a/code/modules/mob/living/silicon/silicon.dm
+++ b/code/modules/mob/living/silicon/silicon.dm
@@ -344,7 +344,7 @@
/mob/living/silicon/proc/is_malf_or_traitor()
return is_traitor() || is_malf()
-/mob/living/silicon/flash_act(intensity = FLASH_PROTECTION_MODERATE, override_blindness_check = FALSE, affect_silicon = FALSE, ignore_inherent = FALSE, type = /obj/screen/fullscreen/flash, length = 2.5 SECONDS)
+/mob/living/silicon/flash_act(intensity = FLASH_PROTECTION_MODERATE, override_blindness_check = FALSE, affect_silicon = FALSE, ignore_inherent = FALSE, type = /atom/movable/screen/fullscreen/flash, length = 2.5 SECONDS)
if(affect_silicon)
return ..()
diff --git a/code/modules/mob/living/simple_animal/borer/borer.dm b/code/modules/mob/living/simple_animal/borer/borer.dm
index f99bd388b80..aa15cb7575b 100644
--- a/code/modules/mob/living/simple_animal/borer/borer.dm
+++ b/code/modules/mob/living/simple_animal/borer/borer.dm
@@ -30,7 +30,7 @@
var/used_dominate
var/datum/progressbar/ability_bar
var/ability_start_time = 0
- var/obj/screen/borer/chemicals/chem_hud
+ var/atom/movable/screen/borer/chemicals/chem_hud
var/chemicals = 10 // Chemicals used for reproduction and spitting neurotoxin.
var/mob/living/carbon/human/host // Human host for the brain worm.
var/truename // Name used for brainworm-speak.
diff --git a/code/modules/mob/living/simple_animal/constructs/soulstone.dm b/code/modules/mob/living/simple_animal/constructs/soulstone.dm
index a10f75c6310..8df9e54e3eb 100644
--- a/code/modules/mob/living/simple_animal/constructs/soulstone.dm
+++ b/code/modules/mob/living/simple_animal/constructs/soulstone.dm
@@ -26,8 +26,8 @@
to_chat(user, SPAN_WARNING("This being is corrupted by an alien intelligence and cannot be soul trapped."))
return..()
- M.attack_log += text("\[[time_stamp()]\] Has had their soul captured with [src.name] by [user.name] ([user.ckey])")
- user.attack_log += text("\[[time_stamp()]\] Used the [src.name] to capture the soul of [M.name] ([M.ckey])")
+ M.attack_log += "\[[time_stamp()]\] Has had their soul captured with [src.name] by [user.name] ([user.ckey])"
+ user.attack_log += "\[[time_stamp()]\] Used the [src.name] to capture the soul of [M.name] ([M.ckey])"
msg_admin_attack("[user.name] ([user.ckey]) used the [src.name] to capture the soul of [M.name] ([M.ckey]) (JMP)",ckey=key_name(src),ckey_target=key_name(M))
transfer_soul("VICTIM", M, user)
diff --git a/code/modules/mob/living/simple_animal/hostile/morph.dm b/code/modules/mob/living/simple_animal/hostile/morph.dm
index d5898ffaf11..bdd13b1aa0f 100644
--- a/code/modules/mob/living/simple_animal/hostile/morph.dm
+++ b/code/modules/mob/living/simple_animal/hostile/morph.dm
@@ -51,7 +51,7 @@
var/melee_damage_disguised = 0
var/eat_while_disguised = FALSE
var/atom/movable/form = null
- var/static/list/blacklist_typecache = typecacheof(list(/obj/screen, /obj/singularity, /mob/living/simple_animal/hostile/morph, /obj/effect, /obj/structure/gore))
+ var/static/list/blacklist_typecache = typecacheof(list(/atom/movable/screen, /obj/singularity, /mob/living/simple_animal/hostile/morph, /obj/effect, /obj/structure/gore))
/mob/living/simple_animal/hostile/morph/Initialize()
. = ..()
@@ -233,8 +233,8 @@
return
return ..()
-/mob/living/simple_animal/hostile/morph/add_spell(var/spell/spell_to_add, var/spell_base = "wiz_spell_ready", var/master_type = /obj/screen/movable/spell_master)
+/mob/living/simple_animal/hostile/morph/add_spell(var/spell/spell_to_add, var/spell_base = "wiz_spell_ready", var/master_type = /atom/movable/screen/movable/spell_master)
. = ..()
- for(var/obj/screen/movable/spell_master/spell_master in spell_masters)
+ for(var/atom/movable/screen/movable/spell_master/spell_master in spell_masters)
spell_master.open_state = "morph_open"
spell_master.closed_state = "morph_closed"
diff --git a/code/modules/mob/living/simple_animal/parrot.dm b/code/modules/mob/living/simple_animal/parrot.dm
index 394098e2c1f..c388587d01a 100644
--- a/code/modules/mob/living/simple_animal/parrot.dm
+++ b/code/modules/mob/living/simple_animal/parrot.dm
@@ -136,7 +136,7 @@
else
dat += "
Headset: Nothing"
- user << browse(dat, text("window=mob[];size=325x500", name))
+ user << browse(dat, "window=mob[name];size=325x500")
onclose(user, "mob[real_name]")
return
diff --git a/code/modules/mob/login.dm b/code/modules/mob/login.dm
index 77da8a56ff2..cc3f36d3095 100644
--- a/code/modules/mob/login.dm
+++ b/code/modules/mob/login.dm
@@ -114,6 +114,6 @@
client.update_skybox(TRUE)
if(spell_masters)
- for(var/obj/screen/movable/spell_master/spell_master in spell_masters)
+ for(var/atom/movable/screen/movable/spell_master/spell_master in spell_masters)
spell_master.toggle_open(1)
client.screen -= spell_master
diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm
index b082ec492b0..436446685df 100644
--- a/code/modules/mob/mob.dm
+++ b/code/modules/mob/mob.dm
@@ -263,7 +263,7 @@
/mob/proc/findname(msg)
for(var/mob/M in GLOB.mob_list)
- if (M.real_name == text("[]", msg))
+ if (M.real_name == "[msg]")
return M
return 0
@@ -298,7 +298,7 @@
SHOULD_CALL_PARENT(TRUE)
if(LAZYLEN(spell_masters))
- for(var/obj/screen/movable/spell_master/spell_master in spell_masters)
+ for(var/atom/movable/screen/movable/spell_master/spell_master in spell_masters)
spell_master.update_spells(0, src)
if(stat != DEAD)
@@ -367,7 +367,7 @@
Left Hand: [(l_hand ? l_hand : "Nothing")]
Right Hand: [(r_hand ? r_hand : "Nothing")]
Back: [(back ? back : "Nothing")] [((istype(wear_mask, /obj/item/clothing/mask) && istype(back, /obj/item/tank) && !( internal )) ? " Set Internal" : "")]
-
[(internal ? text("Remove Internal") : "")]
+
[(internal ? "Remove Internal" : "")]
Empty Pockets
Refresh
Close
@@ -657,7 +657,7 @@
/mob/Topic(href, href_list)
if(href_list["mach_close"])
- var/t1 = text("window=[href_list["mach_close"]]")
+ var/t1 = "window=[href_list["mach_close"]]"
unset_machine()
src << browse(null, t1)
@@ -1047,7 +1047,7 @@
/mob/living/carbon/human/flash_strong_pain()
if(can_feel_pain())
- overlay_fullscreen("strong_pain", /obj/screen/fullscreen/strong_pain)
+ overlay_fullscreen("strong_pain", /atom/movable/screen/fullscreen/strong_pain)
addtimer(CALLBACK(src, PROC_REF(clear_strong_pain)), 10, TIMER_UNIQUE)
/mob/living/proc/clear_strong_pain()
@@ -1385,7 +1385,7 @@
return 1
/client/proc/check_has_body_select()
- return mob && mob.hud_used && istype(mob.zone_sel, /obj/screen/zone_sel)
+ return mob && mob.hud_used && istype(mob.zone_sel, /atom/movable/screen/zone_sel)
/client/verb/body_toggle_head()
set name = "body-toggle-head"
@@ -1430,7 +1430,7 @@
/client/proc/toggle_zone_sel(list/zones)
if(!check_has_body_select())
return
- var/obj/screen/zone_sel/selector = mob.zone_sel
+ var/atom/movable/screen/zone_sel/selector = mob.zone_sel
selector.set_selected_zone(next_in_list(mob.zone_sel.selecting,zones), usr)
/mob/proc/get_speech_bubble_state_modifier()
diff --git a/code/modules/mob/mob_defines.dm b/code/modules/mob/mob_defines.dm
index 30a7e4b560b..7c49b1fbf25 100644
--- a/code/modules/mob/mob_defines.dm
+++ b/code/modules/mob/mob_defines.dm
@@ -22,40 +22,40 @@
var/stat = 0 //Whether a mob is alive or dead. TODO: Move this to living - Nodrak
can_be_buckled = TRUE
- var/obj/screen/cells = null
- var/obj/screen/flash = null
- var/obj/screen/blind = null
- var/obj/screen/hands = null
- var/obj/screen/pullin = null
- var/obj/screen/purged = null
- var/obj/screen/internals/internals = null
- var/obj/screen/oxygen = null
- var/obj/screen/paralysis_indicator = null
- var/obj/screen/i_select = null
- var/obj/screen/m_select = null
- var/obj/screen/toxin = null
- var/obj/screen/fire = null
- var/obj/screen/bodytemp = null
- var/obj/screen/healths = null
- var/obj/screen/throw_icon = null
- var/obj/screen/nutrition_icon = null
- var/obj/screen/hydration_icon = null
- var/obj/screen/pressure = null
- var/obj/screen/damageoverlay = null
- var/obj/screen/pain = null
- var/obj/screen/gun/item/item_use_icon = null
- var/obj/screen/gun/radio/radio_use_icon = null
- var/obj/screen/gun/move/gun_move_icon = null
- var/obj/screen/gun/mode/gun_setting_icon = null
- var/obj/screen/gun/unique_action_icon = null
- var/obj/screen/gun/toggle_firing_mode = null
- var/obj/screen/energy/energy_display = null
- var/obj/screen/instability/instability_display = null
- var/obj/screen/up_hint = null
+ var/atom/movable/screen/cells = null
+ var/atom/movable/screen/flash = null
+ var/atom/movable/screen/blind = null
+ var/atom/movable/screen/hands = null
+ var/atom/movable/screen/pullin = null
+ var/atom/movable/screen/purged = null
+ var/atom/movable/screen/internals/internals = null
+ var/atom/movable/screen/oxygen = null
+ var/atom/movable/screen/paralysis_indicator = null
+ var/atom/movable/screen/i_select = null
+ var/atom/movable/screen/m_select = null
+ var/atom/movable/screen/toxin = null
+ var/atom/movable/screen/fire = null
+ var/atom/movable/screen/bodytemp = null
+ var/atom/movable/screen/healths = null
+ var/atom/movable/screen/throw_icon = null
+ var/atom/movable/screen/nutrition_icon = null
+ var/atom/movable/screen/hydration_icon = null
+ var/atom/movable/screen/pressure = null
+ var/atom/movable/screen/damageoverlay = null
+ var/atom/movable/screen/pain = null
+ var/atom/movable/screen/gun/item/item_use_icon = null
+ var/atom/movable/screen/gun/radio/radio_use_icon = null
+ var/atom/movable/screen/gun/move/gun_move_icon = null
+ var/atom/movable/screen/gun/mode/gun_setting_icon = null
+ var/atom/movable/screen/gun/unique_action_icon = null
+ var/atom/movable/screen/gun/toggle_firing_mode = null
+ var/atom/movable/screen/energy/energy_display = null
+ var/atom/movable/screen/instability/instability_display = null
+ var/atom/movable/screen/up_hint = null
//spells hud icons - this interacts with add_spell and remove_spell
- var/list/obj/screen/movable/spell_master/spell_masters = null
- var/obj/screen/movable/ability_master/ability_master = null
+ var/list/atom/movable/screen/movable/spell_master/spell_masters = null
+ var/atom/movable/screen/movable/ability_master/ability_master = null
/*A bunch of this stuff really needs to go under their own defines instead of being globally attached to mob.
A variable should only be globally attached to turfs/objects/whatever, when it is in fact needed as such.
@@ -63,7 +63,7 @@
I'll make some notes on where certain variable defines should probably go.
Changing this around would probably require a good look-over the pre-existing code.
*/
- var/obj/screen/zone_sel/zone_sel = null
+ var/atom/movable/screen/zone_sel/zone_sel = null
var/use_me = 1 //Allows all mobs to use the me verb by default, will have to manually specify they cannot
var/damageoverlaytemp = 0
diff --git a/code/modules/mob/mob_grab.dm b/code/modules/mob/mob_grab.dm
index 63ef6aaf4c6..5f30f355afb 100644
--- a/code/modules/mob/mob_grab.dm
+++ b/code/modules/mob/mob_grab.dm
@@ -15,7 +15,7 @@
icon = 'icons/mob/screen/generic.dmi'
icon_state = "reinforce"
atom_flags = 0
- var/obj/screen/grab/hud = null
+ var/atom/movable/screen/grab/hud = null
var/mob/living/affecting = null
var/mob/living/carbon/human/assailant = null
var/state = GRAB_PASSIVE
@@ -50,7 +50,7 @@
affecting.grabbed_by += src
- hud = new /obj/screen/grab(src)
+ hud = new /atom/movable/screen/grab(src)
hud.icon_state = "reinforce"
icon_state = "grabbed"
hud.name = "reinforce grab"
@@ -249,7 +249,7 @@
if(EAST)
animate(affecting, pixel_x =-shift, pixel_y = affecting.get_standard_pixel_y(), 5, 1, LINEAR_EASING)
-/obj/item/grab/proc/s_click(obj/screen/S)
+/obj/item/grab/proc/s_click(atom/movable/screen/S)
if(!affecting)
return
if(state == GRAB_UPGRADING)
diff --git a/code/modules/mob/mob_grab_specials.dm b/code/modules/mob/mob_grab_specials.dm
index 3b950c3cf32..6af80c5c465 100644
--- a/code/modules/mob/mob_grab_specials.dm
+++ b/code/modules/mob/mob_grab_specials.dm
@@ -113,8 +113,8 @@
attacker.visible_message(SPAN_DANGER("[attacker] [attacker.species.knockout_message]"))
playsound(attacker.loc, /singleton/sound_category/swing_hit_sound, 25, 1, -1)
- attacker.attack_log += text("\[[time_stamp()]\] Headbutted [target.name] ([target.ckey])")
- target.attack_log += text("\[[time_stamp()]\] Headbutted by [attacker.name] ([attacker.ckey])")
+ attacker.attack_log += "\[[time_stamp()]\] Headbutted [target.name] ([target.ckey])"
+ target.attack_log += "\[[time_stamp()]\] Headbutted by [attacker.name] ([attacker.ckey])"
msg_admin_attack("[key_name(attacker)] has headbutted [key_name(target)]",ckey=key_name(attacker),ckey_target=key_name(target))
qdel(src)
diff --git a/code/modules/mob/mob_helpers.dm b/code/modules/mob/mob_helpers.dm
index 6937602a08b..29da0e09ce8 100644
--- a/code/modules/mob/mob_helpers.dm
+++ b/code/modules/mob/mob_helpers.dm
@@ -442,12 +442,12 @@ It's fairly easy to fix if dealing with single letters but not so much with comp
n_letter = copytext(te, p, p+n_mod)
if (prob(50))
if (prob(30))
- n_letter = text("[n_letter]-[n_letter]-[n_letter]")
+ n_letter = "[n_letter]-[n_letter]-[n_letter]"
else
- n_letter = text("[n_letter]-[n_letter]")
+ n_letter = "[n_letter]-[n_letter]"
else
- n_letter = text("[n_letter]")
- t = text("[t][n_letter]")
+ n_letter = "[n_letter]"
+ t = "[t][n_letter]"
p=p+n_mod
return sanitize(t)
@@ -472,7 +472,7 @@ It's fairly easy to fix if dealing with single letters but not so much with comp
/proc/findname(msg)
for(var/mob/M in GLOB.mob_list)
- if (M.real_name == text("[msg]"))
+ if (M.real_name == "[msg]")
return 1
return 0
diff --git a/code/modules/modular_computers/computers/modular_computer/interaction.dm b/code/modules/modular_computers/computers/modular_computer/interaction.dm
index deadb4b2890..c33fb6b2298 100644
--- a/code/modules/modular_computers/computers/modular_computer/interaction.dm
+++ b/code/modules/modular_computers/computers/modular_computer/interaction.dm
@@ -321,7 +321,7 @@
return
if(istype(over_object, /obj/machinery/power/apc) && tesla_link)
return over_object.attackby(src, M)
- if(!istype(over_object, /obj/screen) && !(over_object == src))
+ if(!istype(over_object, /atom/movable/screen) && !(over_object == src))
return attack_self(M)
/obj/item/modular_computer/GetID()
diff --git a/code/modules/modular_computers/computers/subtypes/dev_wristbound.dm b/code/modules/modular_computers/computers/subtypes/dev_wristbound.dm
index 6fe41aead18..ee6fb32a7a7 100644
--- a/code/modules/modular_computers/computers/subtypes/dev_wristbound.dm
+++ b/code/modules/modular_computers/computers/subtypes/dev_wristbound.dm
@@ -30,12 +30,12 @@
return
if(!over_object || over_object == src)
return
- if(istype(over_object, /obj/screen/inventory))
- var/obj/screen/inventory/S = over_object
+ if(istype(over_object, /atom/movable/screen/inventory))
+ var/atom/movable/screen/inventory/S = over_object
if(S.slot_id == equip_slot)
return
if(ishuman(usr))
- if(!(istype(over_object, /obj/screen)))
+ if(!(istype(over_object, /atom/movable/screen)))
return ..()
if(!(loc == usr) || (loc && loc.loc == usr))
diff --git a/code/modules/modular_computers/file_system/programs/command/account_database.dm b/code/modules/modular_computers/file_system/programs/command/account_database.dm
index 743f62df8de..4d5b14f4026 100644
--- a/code/modules/modular_computers/file_system/programs/command/account_database.dm
+++ b/code/modules/modular_computers/file_system/programs/command/account_database.dm
@@ -71,7 +71,7 @@
var/obj/item/card/id/held_card = get_held_card()
data["has_printer"] = !!computer.nano_printer
- data["id_card"] = held_card ? text("[held_card.registered_name], [held_card.assignment]") : null
+ data["id_card"] = held_card ? "[held_card.registered_name], [held_card.assignment]" : null
data["access_level"] = get_access_level()
data["machine_id"] = machine_id
data["station_account_number"] = "[SSeconomy.station_account.account_number]"
diff --git a/code/modules/modular_computers/file_system/programs/command/card.dm b/code/modules/modular_computers/file_system/programs/command/card.dm
index ffed4c11b00..4c6aa651443 100644
--- a/code/modules/modular_computers/file_system/programs/command/card.dm
+++ b/code/modules/modular_computers/file_system/programs/command/card.dm
@@ -203,7 +203,7 @@
id_card.access += access_type
. = TRUE
if(id_card)
- id_card.name = text("[id_card.registered_name]'s ID Card ([id_card.assignment])")
+ id_card.name = "[id_card.registered_name]'s ID Card ([id_card.assignment])"
. = TRUE
/datum/computer_file/program/card_mod/proc/remove_nt_access(var/obj/item/card/id/id_card)
diff --git a/code/modules/modular_computers/hardware/nano_printer.dm b/code/modules/modular_computers/hardware/nano_printer.dm
index 88641dba2d4..2f4a85f94f5 100644
--- a/code/modules/modular_computers/hardware/nano_printer.dm
+++ b/code/modules/modular_computers/hardware/nano_printer.dm
@@ -32,15 +32,24 @@
return P
/obj/item/computer_hardware/nano_printer/attackby(obj/item/attacking_item, mob/user)
- if(istype(attacking_item, /obj/item/paper))
- if(stored_paper >= max_paper)
- to_chat(user, SPAN_WARNING("You try to add \the [attacking_item] to the [src], but its paper bin is full."))
- return
- to_chat(user, SPAN_NOTICE("You insert \the [attacking_item] into [src]."))
- qdel(attacking_item)
- stored_paper++
- else
- ..()
+ //We only care about papers here
+ if(!istype(attacking_item, /obj/item/paper))
+ return ..()
+
+ var/obj/item/paper/attacking_paper = attacking_item
+
+ //If the paper is already written onto, we can't add it to the printer
+ if(attacking_paper.free_space != initial(attacking_paper.free_space))
+ to_chat(user, SPAN_WARNING("You try to add \the [attacking_paper] to the [src], but the paper is written onto already."))
+ return
+
+ if(stored_paper >= max_paper)
+ to_chat(user, SPAN_WARNING("You try to add \the [attacking_paper] to the [src], but its paper bin is full."))
+ return
+
+ to_chat(user, SPAN_NOTICE("You insert \the [attacking_paper] into [src]."))
+ qdel(attacking_paper)
+ stored_paper++
/obj/item/computer_hardware/nano_printer/Destroy()
if(parent_computer?.nano_printer == src)
diff --git a/code/modules/organs/internal/eyes.dm b/code/modules/organs/internal/eyes.dm
index 6523cb6a4bd..d236256faf7 100644
--- a/code/modules/organs/internal/eyes.dm
+++ b/code/modules/organs/internal/eyes.dm
@@ -44,7 +44,7 @@
if(is_broken() && !oldbroken && owner && !owner.stat)
to_chat(owner, SPAN_DANGER("You go blind!"))
-/obj/item/organ/internal/eyes/flash_act(intensity = FLASH_PROTECTION_MODERATE, override_blindness_check = FALSE, affect_silicon = FALSE, ignore_inherent = FALSE, type = /obj/screen/fullscreen/flash, length = 2.5 SECONDS)
+/obj/item/organ/internal/eyes/flash_act(intensity = FLASH_PROTECTION_MODERATE, override_blindness_check = FALSE, affect_silicon = FALSE, ignore_inherent = FALSE, type = /atom/movable/screen/fullscreen/flash, length = 2.5 SECONDS)
var/burnthrough = intensity - owner.get_flash_protection(ignore_inherent)
if(burnthrough <= 0)
return
@@ -82,7 +82,7 @@
/obj/item/organ/internal/eyes/do_surge_effects()
if(owner)
- owner.overlay_fullscreen("noise", /obj/screen/fullscreen/flash/noise)
+ owner.overlay_fullscreen("noise", /atom/movable/screen/fullscreen/flash/noise)
/obj/item/organ/internal/eyes/clear_surge_effects()
if(owner)
diff --git a/code/modules/paperwork/clipboard.dm b/code/modules/paperwork/clipboard.dm
index 6dedd6ceccc..90c37cf26ac 100644
--- a/code/modules/paperwork/clipboard.dm
+++ b/code/modules/paperwork/clipboard.dm
@@ -22,7 +22,7 @@
/obj/item/clipboard/MouseDrop(obj/over_object as obj) //Quick clipboard fix. -Agouri
if(ishuman(usr))
var/mob/M = usr
- if(!(istype(over_object, /obj/screen) ))
+ if(!(istype(over_object, /atom/movable/screen) ))
return ..()
if(!M.restrained() && !M.stat)
diff --git a/code/modules/paperwork/folders.dm b/code/modules/paperwork/folders.dm
index 8629ebd058b..ca3048abd3a 100644
--- a/code/modules/paperwork/folders.dm
+++ b/code/modules/paperwork/folders.dm
@@ -47,7 +47,7 @@
else if(attacking_item.ispen())
var/n_name = sanitizeSafe( tgui_input_text(user, "What would you like to label the folder?", "Folder Labelling", max_length = MAX_NAME_LEN), MAX_NAME_LEN )
if(Adjacent(user) && user.stat == 0)
- name = "folder[(n_name ? text("- '[n_name]'") : null)]"
+ name = "folder[(n_name ? "- '[n_name]'" : null)]"
return
/obj/item/folder/attack_self(mob/user as mob)
diff --git a/code/modules/paperwork/paper.dm b/code/modules/paperwork/paper.dm
index c1fa902985a..943f836d75b 100644
--- a/code/modules/paperwork/paper.dm
+++ b/code/modules/paperwork/paper.dm
@@ -21,20 +21,34 @@
body_parts_covered = HEAD
attack_verb = list("bapped")
- var/info //What's actually written on the paper.
- var/info_links //A different version of the paper which includes html links at fields and EOF
- var/stamps //The (text for the) stamps on the paper.
- var/fields //Amount of user created fields
+ ///What's actually written on the paper.
+ var/info
+ ///A different version of the paper which includes html links at fields and EOF
+ var/info_links
+ ///The (text for the) stamps on the paper.
+ var/stamps
+ ///Amount of user created fields
+ var/fields
+
var/free_space = MAX_PAPER_MESSAGE_LEN
var/list/stamped
- var/list/ico[0] //Icons and
- var/list/offset_x[0] //offsets stored for later
- var/list/offset_y[0] //usage by the photocopier
+
+ ///Icons and
+ var/list/ico[0]
+ ///offsets stored for later
+ var/list/offset_x[0]
+ ///usage by the photocopier
+ var/list/offset_y[0]
+
var/rigged = 0
var/last_honk = 0
- var/old_name // The name of the paper before it was folded into a plane.
- var/can_fold = TRUE // If it can be folded into a plane or swan
- var/paper_like = TRUE // Is it made of paper and/or burnable material?
+
+ /// The name of the paper before it was folded into a plane.
+ var/old_name
+ /// If it can be folded into a plane or swan
+ var/can_fold = TRUE
+ /// Is it made of paper and/or burnable material?
+ var/paper_like = TRUE
var/const/deffont = "Verdana"
var/const/signfont = "Times New Roman"
@@ -96,7 +110,12 @@
else
icon_state = "[base_state]"
-/obj/item/paper/proc/update_space(var/new_text)
+/**
+ * Updates the amount of free space in the paper
+ *
+ * * new_text - The new text the paper contains (supposedly), text
+ */
+/obj/item/paper/proc/update_space(new_text)
if(new_text)
free_space -= length(strip_html_properly(new_text))
@@ -756,29 +775,43 @@
. = ..()
scan_target = WEAKREF(set_scan_target)
-//
-// Fluff Papers
-// Fluff papers that you can map in, for lore or whatever.
-//
-/// Parent item for fluff papers. Used for lore or something I guess
-/obj/item/paper/fluff
- name = "fluff paper"
- desc = "You aren't supposed to see this."
- /// The language to translate the paper into. Set to the name of the language.
+
+/*#############################################
+ FLUFF PAPERS SUBTYPE
+#############################################*/
+
+/**
+ * # Fluff papers
+ *
+ * Fluff papers that you can map in, used in mapping
+ *
+ * You **have** to create a subtype for the map you're using it in, and have the info/name variables set in code, **not in map** ie:
+ *
+ * ```
+ * /obj/item/paper/fluff//((/)?)+
+ * ```
+ *
+ * This subtype will take care of updating the free space on the paper on initialization, and can be written in different languages
+ */
+ABSTRACT_TYPE(/obj/item/paper/fluff)
+ /// The language to translate the paper into, one of the `LANGUAGE_*` in `code\__DEFINES\species_languages.dm`
var/language
-/obj/item/paper/fluff/Initialize()
+/obj/item/paper/fluff/Initialize(mapload, text, title)
. = ..()
- if(language)
- var/datum/language/L = GLOB.all_languages[language]
+
+ if(src.language)
+ var/datum/language/L = GLOB.all_languages[src.language]
if(istype(L) && L.written_style) //Don't want to try and write in Hivenet or something
var/key = L.key
var/languagetext = "\[lang=[key]]"
languagetext += "[info]\[/lang]"
- info = parsepencode(languagetext)
+ src.info = parsepencode(languagetext)
update_icon()
+ update_space(src.info)
+
// Used in the deck 3 cafe on the SCCV Horizon.
/obj/item/paper/fluff/microwave
name = "\improper RE: Where are our microwaves?"
diff --git a/code/modules/paperwork/paper_bundle.dm b/code/modules/paperwork/paper_bundle.dm
index 8f74dd7342c..cfa64f1455c 100644
--- a/code/modules/paperwork/paper_bundle.dm
+++ b/code/modules/paperwork/paper_bundle.dm
@@ -10,9 +10,16 @@
throw_speed = 1
layer = ABOVE_OBJ_LAYER
attack_verb = list("bapped")
- var/page = 1 // current page
- var/list/pages = list() // Ordered list of pages as they are to be displayed. Can be different order than src.contents.
- var/amount = 0 // How many sheet
+
+ /// current page
+ var/page = 1
+
+ /// Ordered list of pages as they are to be displayed. Can be different order than src.contents.
+ var/list/pages = list()
+
+ /// How many sheet
+ var/amount = 0
+
drop_sound = 'sound/items/drop/paper.ogg'
pickup_sound = 'sound/items/pickup/paper.ogg'
@@ -203,7 +210,7 @@
if(pages.len <= 1)
- var/obj/item/paper/P = src.vars[1]
+ var/obj/item/paper/P = src.pages[1]
if(istype(loc, /obj/item/gripper)) //Hacky but without it there's a ghost icon with grippers and it all spills on the floor.
var/obj/item/gripper/G = loc
G.drop(get_turf(src), usr, FALSE)
diff --git a/code/modules/paperwork/pen.dm b/code/modules/paperwork/pen.dm
index ab1b31d2b66..06a84e73560 100644
--- a/code/modules/paperwork/pen.dm
+++ b/code/modules/paperwork/pen.dm
@@ -187,8 +187,8 @@
var/trans = reagents.trans_to_mob(M, 30, CHEM_BLOOD)
to_chat(user, SPAN_ALERT("You stab \the [M] with \the [src], injecting all of its contents.")) // To the stabber.
to_chat(M, SPAN_WARNING("You feel a small pinch!")) // To the stabbed.
- M.attack_log += text("\[[time_stamp()]\] Has been stabbed with [name] by [user.name] ([user.ckey])")
- user.attack_log += text("\[[time_stamp()]\] Used the [name] to stab [M.name] ([M.ckey])")
+ M.attack_log += "\[[time_stamp()]\] Has been stabbed with [name] by [user.name] ([user.ckey])"
+ user.attack_log += "\[[time_stamp()]\] Used the [name] to stab [M.name] ([M.ckey])"
msg_admin_attack("[user.name] ([user.ckey]) Used the [name] to stab [M.name] ([M.ckey]) (JMP)",ckey=key_name(user),ckey_target=key_name(M))
admin_inject_log(user, M, src, contained_reagents, reagents.get_temperature(), trans) // Admin log.
diff --git a/code/modules/paperwork/photography.dm b/code/modules/paperwork/photography.dm
index e1fb972f1f8..38d09e1ff85 100644
--- a/code/modules/paperwork/photography.dm
+++ b/code/modules/paperwork/photography.dm
@@ -113,7 +113,7 @@ var/global/photo_count = 0
if((istype(usr, /mob/living/carbon/human)))
var/mob/M = usr
- if(!( istype(over_object, /obj/screen) ))
+ if(!( istype(over_object, /atom/movable/screen) ))
return ..()
playsound(loc, /singleton/sound_category/rustle_sound, 50, 1, -5)
if((!( M.restrained() ) && !( M.stat ) && M.back == src))
diff --git a/code/modules/projectiles/guns/energy/rifle.dm b/code/modules/projectiles/guns/energy/rifle.dm
index c5d1ad7a150..1ae5a64d5b0 100644
--- a/code/modules/projectiles/guns/energy/rifle.dm
+++ b/code/modules/projectiles/guns/energy/rifle.dm
@@ -186,7 +186,7 @@
can_switch_modes = 0
can_turret = 0
zoomdevicename = "rifle scope"
- var/obj/screen/overlay = null
+ var/atom/movable/screen/overlay = null
/obj/item/gun/energy/rifle/laser/tachyon/verb/scope()
set category = "Object"
diff --git a/code/modules/projectiles/guns/projectile/dartgun.dm b/code/modules/projectiles/guns/projectile/dartgun.dm
index 09a33be1827..5fe14641488 100644
--- a/code/modules/projectiles/guns/projectile/dartgun.dm
+++ b/code/modules/projectiles/guns/projectile/dartgun.dm
@@ -141,9 +141,9 @@
var/singleton/reagent/R = GET_SINGLETON(_R)
dat += "
[B.reagents.reagent_volumes[_R]] units of [R.name], "
if (check_beaker_mixing(B))
- dat += text("Mixing ")
+ dat += "Mixing "
else
- dat += text("Not mixing ")
+ dat += "Not mixing "
else
dat += "nothing."
dat += " \[Eject\]
"
diff --git a/code/modules/psionics/complexus/complexus.dm b/code/modules/psionics/complexus/complexus.dm
index fd532d4e0fe..f2e48200f60 100644
--- a/code/modules/psionics/complexus/complexus.dm
+++ b/code/modules/psionics/complexus/complexus.dm
@@ -23,7 +23,7 @@
var/aura_color = "#ff0022"
var/datum/component/armor/psionic/armor_component
- var/obj/screen/psi/hub/ui // Reference to the master psi UI object.
+ var/atom/movable/screen/psi/hub/ui // Reference to the master psi UI object.
var/mob/living/owner // Reference to our owner.
var/image/_aura_image // Client image
diff --git a/code/modules/psionics/complexus/complexus_process.dm b/code/modules/psionics/complexus/complexus_process.dm
index 561d66404d1..132357e3716 100644
--- a/code/modules/psionics/complexus/complexus_process.dm
+++ b/code/modules/psionics/complexus/complexus_process.dm
@@ -63,7 +63,7 @@
P.apply(owner)
/datum/psi_complexus/proc/wipe_user_abilities()
- for(var/obj/screen/ability/obj_based/psionic/P in owner.ability_master.ability_objects)
+ for(var/atom/movable/screen/ability/obj_based/psionic/P in owner.ability_master.ability_objects)
if((P.connected_power.ability_flags & PSI_FLAG_APEX) && get_rank() < PSI_RANK_APEX)
owner.ability_master.remove_ability(P)
if((P.connected_power.ability_flags & PSI_FLAG_LIMITLESS) && get_rank() < PSI_RANK_LIMITLESS)
diff --git a/code/modules/psionics/interface/ui.dm b/code/modules/psionics/interface/ui.dm
index 3beffd94bce..925bd11fc12 100644
--- a/code/modules/psionics/interface/ui.dm
+++ b/code/modules/psionics/interface/ui.dm
@@ -1,14 +1,14 @@
-/obj/screen/psi
+/atom/movable/screen/psi
icon = 'icons/mob/screen/psi.dmi'
var/mob/living/owner
var/hidden = TRUE
-/obj/screen/psi/New(var/mob/living/_owner)
+/atom/movable/screen/psi/New(var/mob/living/_owner)
loc = null
owner = _owner
update_icon()
-/obj/screen/psi/Destroy()
+/atom/movable/screen/psi/Destroy()
if(owner && owner.client)
owner.client.screen -= src
. = ..()
diff --git a/code/modules/psionics/interface/ui_hub.dm b/code/modules/psionics/interface/ui_hub.dm
index 9fe30cb9685..47fc04bdfb4 100644
--- a/code/modules/psionics/interface/ui_hub.dm
+++ b/code/modules/psionics/interface/ui_hub.dm
@@ -1,4 +1,4 @@
-/obj/screen/psi/hub
+/atom/movable/screen/psi/hub
name = "Psi"
icon_state = "psi_active"
screen_loc = "EAST-1:28,CENTER-3:11"
@@ -7,23 +7,23 @@
maptext_y = -8
var/image/on_cooldown
-/obj/screen/psi/hub/New(var/mob/living/_owner)
+/atom/movable/screen/psi/hub/New(var/mob/living/_owner)
on_cooldown = image(icon, "cooldown")
..()
START_PROCESSING(SSprocessing, src)
-/obj/screen/psi/hub/update_icon()
+/atom/movable/screen/psi/hub/update_icon()
if(!owner.psi)
return
icon_state = owner.psi.suppressed ? "psi_suppressed" : "psi_active"
-/obj/screen/psi/hub/Destroy()
+/atom/movable/screen/psi/hub/Destroy()
STOP_PROCESSING(SSprocessing, src)
owner = null
. = ..()
-/obj/screen/psi/hub/process()
+/atom/movable/screen/psi/hub/process()
if(!istype(owner))
qdel(src)
return
@@ -32,23 +32,23 @@
maptext = SMALL_FONTS(7, "[round((owner.psi.stamina/owner.psi.max_stamina)*100)]%")
update_icon()
-/obj/screen/psi/hub/Click(var/location, var/control, var/params)
+/atom/movable/screen/psi/hub/Click(var/location, var/control, var/params)
ui_interact(owner)
update_icon()
-/obj/screen/psi/hub/ui_interact(mob/user, datum/tgui/ui)
+/atom/movable/screen/psi/hub/ui_interact(mob/user, datum/tgui/ui)
ui = SStgui.try_update_ui(user, src, ui)
if (!ui)
ui = new(user, src, "PsionicShop", "Psionic Point Shop", 400, 500)
ui.open()
-/obj/screen/psi/hub/ui_state(mob/user)
+/atom/movable/screen/psi/hub/ui_state(mob/user)
return GLOB.conscious_state
-/obj/screen/psi/hub/ui_status(mob/user, datum/ui_state/state)
+/atom/movable/screen/psi/hub/ui_status(mob/user, datum/ui_state/state)
return UI_INTERACTIVE
-/obj/screen/psi/hub/ui_data(mob/user)
+/atom/movable/screen/psi/hub/ui_data(mob/user)
var/list/data = list()
var/owner_rank = owner.psi.get_rank()
data["available_psionics"] = list()
@@ -83,7 +83,7 @@
)
return data
-/obj/screen/psi/hub/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state)
+/atom/movable/screen/psi/hub/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state)
. = ..()
if(.)
return TRUE
diff --git a/code/modules/reagents/Chemistry-Machinery.dm b/code/modules/reagents/Chemistry-Machinery.dm
index 87990552354..a08613b8c25 100644
--- a/code/modules/reagents/Chemistry-Machinery.dm
+++ b/code/modules/reagents/Chemistry-Machinery.dm
@@ -599,8 +599,8 @@
target.apply_damage(25, DAMAGE_PAIN)
target.say("*scream")
- user.attack_log += text("\[[time_stamp()]\] Has fed [target.name]'s ([target.ckey]) hair into a [src].")
- target.attack_log += text("\[[time_stamp()]\] Has had their hair fed into [src] by [user.name] ([user.ckey])")
+ user.attack_log += "\[[time_stamp()]\] Has fed [target.name]'s ([target.ckey]) hair into a [src]."
+ target.attack_log += "\[[time_stamp()]\] Has had their hair fed into [src] by [user.name] ([user.ckey])"
msg_admin_attack("[key_name_admin(user)] fed [key_name_admin(target)] in a [src]. (JMP)",ckey=key_name(user),ckey_target=key_name(target))
else
return
diff --git a/code/modules/reagents/Chemistry-Reagents.dm b/code/modules/reagents/Chemistry-Reagents.dm
index ad05d56efa3..360bd20c9f0 100644
--- a/code/modules/reagents/Chemistry-Reagents.dm
+++ b/code/modules/reagents/Chemistry-Reagents.dm
@@ -39,6 +39,9 @@
var/germ_adjust = 0 // for makeshift bandages/disinfectant
var/carbonated = FALSE // if it's carbonated or not
+ /// Adds to the value of whatever container's holding it, value * units of reagents
+ var/value = 1
+
/singleton/reagent/proc/initialize_data(var/newdata, var/datum/reagents/holder) // Called when the reagent is created.
if(!isnull(newdata))
return newdata
diff --git a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Core.dm b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Core.dm
index 26e818af2be..53b693e8012 100644
--- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Core.dm
+++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Core.dm
@@ -12,6 +12,8 @@
fallback_specific_heat = 3.617
+ value = 2
+
/singleton/reagent/blood/initialize_data(newdata, datum/reagents/holder)
. = ..()
if(.)
@@ -123,6 +125,8 @@
germ_adjust = 0.05 // i mean, i guess you could try...
+ value = 0
+
/singleton/reagent/water/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed, var/datum/reagents/holder)
if(!istype(M))
return
@@ -206,6 +210,8 @@
fallback_specific_heat = 0.605
+ value = 6.8
+
/singleton/reagent/fuel/touch_turf(var/turf/T, var/amount, var/datum/reagents/holder)
new /obj/effect/decal/cleanable/liquid_fuel(T, amount)
remove_self(amount, holder)
diff --git a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Dispenser.dm b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Dispenser.dm
index dd666cd4942..f82f0f81d6b 100644
--- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Dispenser.dm
+++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Dispenser.dm
@@ -7,6 +7,8 @@
taste_description = "acid"
fallback_specific_heat = 0.567
+ value = 0.27
+
/singleton/reagent/acetone/affect_blood(var/mob/living/carbon/M, var/alien, var/removed, var/datum/reagents/holder)
M.adjustToxLoss(removed * 3)
@@ -35,6 +37,7 @@
taste_description = "metal"
taste_mult = 1.1
fallback_specific_heat = 0.811
+ value = 0.02
/singleton/reagent/ammonia
name = "Ammonia"
@@ -47,6 +50,7 @@
breathe_mul = 2
breathe_met = REM * 0.25
fallback_specific_heat = 1.048
+ value = 0.01
/singleton/reagent/ammonia/affect_blood(var/mob/living/carbon/M, var/alien, var/removed, var/datum/reagents/holder)
if(alien == IS_DIONA)
@@ -83,6 +87,7 @@
taste_description = "sour chalk"
taste_mult = 1.5
fallback_specific_heat = 0.018
+ value = 0.2
scannable = TRUE
/singleton/reagent/carbon/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed, var/datum/reagents/holder)
@@ -109,6 +114,7 @@
color = "#6E3B08"
taste_description = "copper"
fallback_specific_heat = 1.148
+ value = 0.02
scannable = TRUE
/singleton/reagent/copper/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed, var/datum/reagents/holder)
@@ -229,6 +235,8 @@ ABSTRACT_TYPE(/singleton/reagent/alcohol)
distillation_point = T0C + 78.37
+ value = 0.01
+
/**
* # Butanol
*
@@ -250,6 +258,7 @@ ABSTRACT_TYPE(/singleton/reagent/alcohol)
glass_desc = "A fairly harmless alcohol that has intoxicating effects on certain species."
fallback_specific_heat = 0.549
+ value = 0.02
distillation_point = T0C + 117.7
@@ -287,6 +296,7 @@ ABSTRACT_TYPE(/singleton/reagent/alcohol)
taste_description = "sweet tasting metal"
fallback_specific_heat = 0.549 //Unknown
+ value = 0.017
/singleton/reagent/hydrazine/affect_blood(var/mob/living/carbon/M, var/alien, var/removed, var/datum/reagents/holder)
var/obj/item/organ/internal/augment/fuel_cell/aug = M.internal_organs_by_name[BP_AUG_FUEL_CELL]
@@ -317,6 +327,7 @@ ABSTRACT_TYPE(/singleton/reagent/alcohol)
scannable = TRUE
fallback_specific_heat = 1.181
+ value = 0.01
/singleton/reagent/iron/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed, var/datum/reagents/holder)
if (!(alien & (IS_SKRELL | IS_VAURCA)))
@@ -330,6 +341,7 @@ ABSTRACT_TYPE(/singleton/reagent/alcohol)
taste_description = "metal"
fallback_specific_heat = 0.633
+ value = 6
/singleton/reagent/lithium/affect_blood(var/mob/living/carbon/M, var/alien, var/removed, var/datum/reagents/holder)
if(M.canmove && !M.restrained() && !(istype(M.loc, /turf/space)))
@@ -351,6 +363,7 @@ ABSTRACT_TYPE(/singleton/reagent/alcohol)
scannable = TRUE
fallback_specific_heat = 0.631
+ value = 0.02
/singleton/reagent/mercury/affect_blood(var/mob/living/carbon/M, var/alien, var/removed, var/datum/reagents/holder)
M.add_chemical_effect(CE_NEUROTOXIC, 1*removed)
@@ -379,6 +392,7 @@ ABSTRACT_TYPE(/singleton/reagent/alcohol)
taste_description = "vinegar"
fallback_specific_heat = 0.569
+ value = 0.4
/singleton/reagent/potassium
name = "Potassium"
@@ -388,6 +402,7 @@ ABSTRACT_TYPE(/singleton/reagent/alcohol)
taste_description = "sweetness" //potassium is bitter in higher doses but sweet in lower ones.
fallback_specific_heat = 0.214
+ value = 1
/singleton/reagent/potassium/affect_blood(var/mob/living/carbon/M, var/alien, var/removed, var/datum/reagents/holder)
if(REAGENT_VOLUME(holder, type) > 3)
@@ -404,6 +419,8 @@ ABSTRACT_TYPE(/singleton/reagent/alcohol)
unaffected_species = IS_MACHINE
fallback_specific_heat = 0.220
+ value = 50 // Radium is crazy expensive, like 100k+ per gram. So probably a bit less expensive in the future.
+
var/message_shown = FALSE
/singleton/reagent/radium/affect_blood(var/mob/living/carbon/M, var/alien, var/removed, var/datum/reagents/holder)
@@ -429,6 +446,7 @@ ABSTRACT_TYPE(/singleton/reagent/alcohol)
taste_description = "acid"
fallback_specific_heat = 0.815
+ value = 0.2
/singleton/reagent/acid/affect_blood(var/mob/living/carbon/M, var/alien, var/removed, var/datum/reagents/holder)
M.take_organ_damage(0, removed * power)
@@ -525,12 +543,14 @@ ABSTRACT_TYPE(/singleton/reagent/alcohol)
power = 6
meltdose = 4
taste_description = "acid"
+ value = 2
/singleton/reagent/acid/stomach
name = "Stomach Acid"
taste_description = "coppery foulness"
power = 2
color = "#d8ff00"
+ value = 0
/singleton/reagent/silicon
name = "Silicon"
@@ -547,6 +567,7 @@ ABSTRACT_TYPE(/singleton/reagent/alcohol)
color = COLOR_GRAY
taste_description = "salty metal"
fallback_specific_heat = 0.483
+ value = 0.1
/singleton/reagent/sugar
name = "Sugar"
@@ -561,6 +582,8 @@ ABSTRACT_TYPE(/singleton/reagent/alcohol)
glass_desc = "You can feel your blood sugar rising just looking at this."
fallback_specific_heat = 0.332
+ value = 0.1
+
condiment_name = "sugar sack"
condiment_desc = "Tasty space sugar!"
condiment_icon_state = "sugar"
@@ -577,6 +600,7 @@ ABSTRACT_TYPE(/singleton/reagent/alcohol)
scannable = TRUE
fallback_specific_heat = 0.503
+ value = 2
/singleton/reagent/sulfur/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed, var/datum/reagents/holder)
if (alien & IS_VAURCA)
diff --git a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Drugs.dm b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Drugs.dm
index f94dc28bba2..a37abea81fc 100644
--- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Drugs.dm
+++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Drugs.dm
@@ -44,6 +44,7 @@
color = "#60A584"
taste_description = "bitterness"
taste_mult = 0.4
+ value = 2.8
/singleton/reagent/drugs/mms/affect_blood(mob/living/carbon/M, alien, removed, datum/reagents/holder)
..()
@@ -83,6 +84,7 @@
taste_description = "bitterness"
fallback_specific_heat = 1.2
effect_messages = FALSE
+ value = 2.5
/singleton/reagent/drugs/serotrotium/affect_blood(mob/living/carbon/M, alien, removed, datum/reagents/holder)
..()
@@ -110,6 +112,7 @@
overdose = REAGENTS_OVERDOSE
taste_description = "sourness"
effect_messages = FALSE
+ value = 2
/singleton/reagent/drugs/cryptobiolin/affect_blood(mob/living/carbon/M, alien, removed, datum/reagents/holder)
..()
@@ -153,6 +156,7 @@
overdose = REAGENTS_OVERDOSE
taste_description = "numbness"
effect_messages = FALSE
+ value = 1.8
/singleton/reagent/drugs/impedrezene/affect_blood(mob/living/carbon/M, alien, removed, datum/reagents/holder)
..()
@@ -173,6 +177,7 @@
overdose = REAGENTS_OVERDOSE
taste_description = "sourness"
ignores_drug_resistance = TRUE
+ value = 0.6
/singleton/reagent/drugs/mindbreaker/affect_blood(mob/living/carbon/M, alien, removed, datum/reagents/holder)
..()
@@ -194,6 +199,7 @@
metabolism = REM * 0.5
taste_description = "mushroom"
fallback_specific_heat = 1.2
+ value = 0.7
condiment_name = "Psilocybin"
condiment_desc = "A small bottle full of a pink liquid. Whatever could it do?"
condiment_icon_state = "psilocybin"
@@ -480,6 +486,7 @@
taste_description = "spicy earth"
taste_mult = 0.4
fallback_specific_heat = 1.6
+ value = 2.8
condiment_name = "Ambrosia Extract Bottle"
condiment_desc = "A small dropper bottle full of a stoner's paradise."
condiment_icon_state = "ambrosiaextract"
diff --git a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Food-Drinks.dm b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Food-Drinks.dm
index 726b953afa6..19ac53428d7 100644
--- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Food-Drinks.dm
+++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Food-Drinks.dm
@@ -10,6 +10,7 @@
unaffected_species = IS_MACHINE
var/kois_type = 1
fallback_specific_heat = 0.75
+ value = 0.5
/singleton/reagent/kois/affect_ingest(var/mob/living/carbon/human/M, var/alien, var/removed, var/datum/reagents/holder)
if(!ishuman(M))
@@ -91,6 +92,7 @@
unaffected_species = IS_MACHINE
taste_description = "food"
fallback_specific_heat = 1.25
+ value = 0.1
/singleton/reagent/nutriment/mix_data(var/list/newdata, var/newamount, var/datum/reagents/holder)
if(isemptylist(newdata))
@@ -678,6 +680,7 @@
color = "#899613"
taste_description = "vomit"
taste_mult = 2
+ value = 0.15
/singleton/reagent/nutriment/sprinkles
name = "Sprinkles"
@@ -688,6 +691,7 @@
condiment_name = "bottle of sprinkles"
condiment_icon_state = "sprinklesbottle"
condiment_center_of_mass = list("x"=16, "y"=10)
+ value = 0.05
/singleton/reagent/nutriment/mint
name = "Mint"
@@ -695,6 +699,7 @@
reagent_state = LIQUID
color = "#CFFFE5"
taste_description = "mint"
+ value = 0.14
/singleton/reagent/nutriment/glucose
name = "Glucose"
@@ -709,6 +714,7 @@
color = "#BBEDA4"
overdose = REAGENTS_OVERDOSE
taste_description = "mothballs"
+ value = 0.11
/singleton/reagent/lipozine/affect_blood(var/mob/living/carbon/M, var/alien, var/removed, var/datum/reagents/holder)
M.adjustNutritionLoss(10*removed)
@@ -771,6 +777,7 @@
condiment_desc = "Salt. From space oceans, presumably."
condiment_icon_state = "saltshakersmall"
condiment_center_of_mass = list("x"=17, "y"=11)
+ value = 0.11
/singleton/reagent/sodiumchloride/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed, var/datum/reagents/holder)
M.intoxication -= min(M.intoxication,removed*2) //Salt absorbs alcohol
@@ -800,6 +807,7 @@
condiment_desc = "Often used to flavor food or make people sneeze."
condiment_icon_state = "peppermillsmall"
condiment_center_of_mass = list("x"=17, "y"=11)
+ value = 0.1
/singleton/reagent/enzyme
name = "Universal Enzyme"
@@ -813,6 +821,7 @@
condiment_name = "universal enzyme"
condiment_icon_state = "enzyme"
condiment_center_of_mass = list("x"=18, "y"=7)
+ value = 0.2
/singleton/reagent/frostoil
name = "Frost Oil"
@@ -821,6 +830,7 @@
color = "#005BCC"
taste_description = "mint"
taste_mult = 1.5
+ value = 0.2
fallback_specific_heat = 15
default_temperature = T0C - 20
@@ -844,6 +854,7 @@
taste_description = "hot peppers"
taste_mult = 1.5
fallback_specific_heat = 2
+ value = 0.2
condiment_name = "hotsauce"
condiment_desc = "Hot sauce. It's in the name."
condiment_icon_state = "hotsauce"
@@ -896,6 +907,7 @@
discomfort_message = SPAN_DANGER("You feel like your insides are burning!")
slime_temp_adj = 15
fallback_specific_heat = 4
+ value = 0.5
/singleton/reagent/capsaicin/condensed/affect_touch(var/mob/living/carbon/M, var/alien, var/removed, var/datum/reagents/holder)
var/eyes_covered = 0
@@ -1021,6 +1033,7 @@
unaffected_species = IS_MACHINE
var/blood_to_ingest_scale = 2
fallback_specific_heat = 1.75
+ value = 0.1
/singleton/reagent/drink/affect_blood(var/mob/living/carbon/M, var/alien, var/removed, var/datum/reagents/holder)
digest(M,alien,removed * blood_to_ingest_scale, FALSE, holder)
@@ -1431,6 +1444,8 @@
color = "#DFD7AF"
taste_description = "creamy milk"
+ value = 0.12
+
glass_icon_state = "glass_white"
glass_name = "glass of cream"
glass_desc = "Ewwww..."
@@ -1907,6 +1922,8 @@
adj_drowsy = -3
adj_sleepy = -3
+ value = 0.12
+
//Coffee
//==========
@@ -1959,6 +1976,8 @@
color = "#664300"
taste_description = "creamy coffee"
+ value = 0.13
+
glass_icon_state = "soy_latte_vended"
glass_name = "glass of soy latte"
glass_desc = "A nice and refreshing beverage to enjoy while reading."
@@ -2169,6 +2188,8 @@
nutrition = 2
taste_description = "creamy chocolate"
+ value = 0.11
+
glass_icon_state = "chocolateglass"
glass_name = "cup of hot chocolate"
glass_desc = "Made with love! And cocoa beans."
@@ -2272,6 +2293,8 @@
color = "#DADADA"
taste_description = "creamy vanilla"
+ value = 0.12
+
glass_icon_state = "milkshake"
glass_name = "glass of milkshake"
glass_desc = "Glorious brainfreezing mixture."
@@ -2285,6 +2308,8 @@
taste_description = "soda and coffee"
carbonated = TRUE
+ value = 0.11
+
glass_icon_state = "rewriter"
glass_name = "glass of Rewriter"
glass_desc = "The secret of the sanctuary of the Libarian..."
@@ -2304,6 +2329,8 @@
taste_description = "cola"
carbonated = TRUE
+ value = 0.13
+
glass_icon_state = "nuka_colaglass"
glass_name = "glass of Nuka-Cola"
glass_desc = "Don't cry, Don't raise your eye, It's only nuclear wasteland"
@@ -2424,6 +2451,8 @@
nutrition = 1
taste_description = "homely fruit"
+ value = 0.3
+
glass_icon_state = "doctorsdelightglass"
glass_name = "glass of The Doctor's Delight"
glass_desc = "A healthy mixture of juices, guaranteed to keep you healthy until the next toolboxing takes place."
@@ -2479,6 +2508,8 @@
taste_mult = 1.5
hydration = 8
+ value = 0
+
glass_icon_state = "iceglass"
glass_name = "glass of ice"
glass_desc = "Generally, you're supposed to put something else in there too..."
@@ -2490,6 +2521,8 @@
description = "Absolutely nothing."
taste_description = "nothing"
+ value = 0
+
glass_icon_state = "nothing"
glass_name = "glass of nothing"
glass_desc = "Absolutely nothing."
@@ -2597,6 +2630,8 @@
color = "#6d4124"
taste_description = "overwhelmingly sweet chocolate"
+ value = 0.14
+
glass_icon_state = "NTellamilkshake"
glass_name = "glass of NTella milkshake"
glass_desc = "Oh look, it's that thing you actually want to get but probably shouldn't."
@@ -2608,6 +2643,8 @@
color = "#ff7575"
taste_description = "sugary strawberry"
+ value = 0.13
+
glass_icon_state = "shake_strawberry"
glass_name = "glass of strawberry milkshake"
glass_desc = "A sweet, chilly milkshake with neon red syrup. So sweet you could pop!"
@@ -2619,6 +2656,8 @@
color = "#d19d4e"
taste_description = "smooth caramel"
+ value = 0.13
+
glass_icon_state = "shake_caramel"
glass_name = "glass of caramel milkshake"
glass_desc = "In case there wasn't enough sugar in your sugar."
@@ -2630,6 +2669,8 @@
color = "#92692c"
taste_description = "smooth dirtberries"
+ value = 0.13
+
glass_icon_state = "shake_dirtberry"
glass_name = "glass of dirtberry milkshake"
glass_desc = "Don't let the name fool you, this dairy delight is smooth and sweet!"
@@ -2641,6 +2682,8 @@
color = "#0c00b3"
taste_description = "creamy blueberries"
+ value = 0.13
+
glass_icon_state = "shake_blueberry"
glass_name = "glass of blueberry milkshake"
glass_desc = "This is an alarming level of neon blue for something that's supposed to be ingested. Probably still delicious though!"
@@ -2652,6 +2695,8 @@
color = "#79452c"
taste_description = "chocolatey vanilla"
+ value = 0.13
+
glass_icon_state = "shake_chocolate"
glass_name = "glass of chocolate milkshake"
glass_desc = "A vanilla milkshake with a hefty heap of delicious chocolate syrup mixed in. Eh, that diet can wait until tomorrow, right?"
@@ -2663,6 +2708,8 @@
color = "#3955a3"
taste_description = "creamy raspberry"
+ value = 0.13
+
glass_icon_state = "shake_blue_raspberry"
glass_name = "glass of blue raspberry milkshake"
glass_desc = "Formerly this used to be created with artificial food dyes. Now it's made with real blue raspberries! Make no mistake, though, this is still absolutely and deliciously bad for you."
@@ -2674,6 +2721,8 @@
color = "#a03257"
taste_description = "creamy raspberry"
+ value = 0.13
+
glass_icon_state = "shake_purplered"
glass_name = "glass of raspberry milkshake"
glass_desc = "Oh Raspberries, is there any dessert you can't improve?"
@@ -2685,6 +2734,8 @@
color = "#f1315b"
taste_description = "smooth berries"
+ value = 0.13
+
glass_icon_state = "shake_berry"
glass_name = "glass of berry milkshake"
glass_desc = "Why settle for just one Milkshake flavor when you can have the wide, delicious vagueness of 'berries'?"
@@ -2696,6 +2747,8 @@
color = "#a03257"
taste_description = "tangy sweetness"
+ value = 0.13
+
glass_icon_state = "shake_purplered"
glass_name = "glass of ylpha berry milkshake"
glass_desc = "That trademark magenta mixture of tangy and sweet - now in a tall, creamy glass of Milkshake!"
@@ -2707,6 +2760,8 @@
color = "#6ecf73"
taste_description = "chocolatey mint"
+ value = 0.13
+
glass_icon_state = "shake_choco_mint"
glass_name = "glass of choco-mint milkshake"
glass_desc = "For everyone who liked to eat their toothpaste as a kid and never grew out of it."
@@ -2718,6 +2773,8 @@
color = "#63432e"
taste_description = "hazelnutty, creamy chocolate"
+ value = 0.13
+
glass_icon_state = "NTellahotchocolate"
glass_name = "glass of NTella hot chocolate"
glass_desc = "A very chocolatey drink for the days so rough, so cold, or so celebratory that a regular hot chocolate just won't cut it. It has marshmallows!"
@@ -2882,6 +2939,8 @@
strength = 75
taste_description = "licorice"
+ value = 0.13
+
glass_icon_state = "absintheglass"
glass_name = "glass of absinthe"
glass_desc = "Wormwood, anise, oh my."
@@ -2895,6 +2954,8 @@
taste_description = "hearty barley ale"
carbonated = TRUE
+ value = 0.13
+
glass_icon_state = "aleglass"
glass_name = "glass of ale"
glass_desc = "A freezing pint of delicious ale."
@@ -2931,6 +2992,8 @@
taste_description = "beer"
carbonated = TRUE
+ value = 0.12
+
glass_icon_state = "beerglass"
glass_name = "glass of beer"
glass_desc = "A freezing pint of beer."
@@ -2976,6 +3039,8 @@
strength = 40
taste_description = "bitter"
+ value = 0.15
+
glass_icon_state = "bittersglass"
glass_name = "glass of bitters"
glass_desc = "A pungent glass of bitters."
@@ -2988,6 +3053,8 @@
strength = 25
taste_description = "oranges"
+ value = 0.16
+
glass_icon_state = "curacaoglass"
glass_name = "glass of blue curacao"
glass_desc = "Exotically blue, fruity drink, distilled from oranges."
@@ -3001,6 +3068,8 @@
taste_description = "bubbly bitter-sweetness"
carbonated = TRUE
+ value = 0.2
+
glass_icon_state = "champagneglass"
glass_name = "glass of champagne"
glass_desc = "Off-white and bubbly. So passe."
@@ -3013,6 +3082,8 @@
strength = 40
taste_description = "rich and smooth alcohol"
+ value = 0.2
+
glass_icon_state = "cognacglass"
glass_name = "glass of cognac"
glass_desc = "Damn, you feel like some kind of French aristocrat just by holding this."
@@ -3025,6 +3096,8 @@
strength = 40
taste_description = "salty sea water"
+ value = 0.15
+
glass_icon_state = "rumglass"
glass_name = "glass of rum"
glass_desc = "Now you want to Pray for a pirate suit, don't you?"
@@ -3053,6 +3126,8 @@
strength = 30
taste_description = "an alcoholic christmas tree"
+ value = 0.1
+
glass_icon_state = "ginvodkaglass"
glass_name = "glass of gin"
glass_desc = "A crystal clear glass of Borovicka gin."
@@ -3077,6 +3152,8 @@
strength = 20
taste_description = "fizzy mint tea"
+ value = 0.12
+
glass_icon_state = "djinnteaglass"
glass_name = "glass of Djinn Tea"
glass_desc = "A mildly alcoholic spin on a popular Skrell drink. Less good for you than the original."
@@ -3106,6 +3183,8 @@
caffeine = 0.25
taste_description = "spiked latte"
+ value = 0.14
+
glass_icon_state = "kahluaglass"
glass_name = "glass of RR coffee liquor"
glass_desc = "DAMN, THIS THING LOOKS ROBUST"
@@ -3130,6 +3209,8 @@
strength = 23
taste_description = "fruity alcohol"
+ value = 0.13
+
glass_icon_state = "emeraldglass"
glass_name = "glass of melon liquor"
glass_desc = "A relatively sweet and fruity 46 proof liquor."
@@ -3142,6 +3223,8 @@
strength = 40
taste_description = "spiked butterscotch"
+ value = 0.1
+
glass_icon_state = "rumglass"
glass_name = "glass of rum"
glass_desc = "Now you want to Pray for a pirate suit, don't you?"
@@ -3154,6 +3237,8 @@
strength = 20
taste_description = "mildly dry alcohol with a subtle sweetness"
+ value = 0.11
+
glass_icon_state = "sakeglass"
glass_name = "glass of sake"
glass_desc = "A glass of sake."
@@ -3166,6 +3251,8 @@
strength = 15
taste_description = "soy milk putting on airs"
+ value = 0.12
+
glass_icon_state = "cloudyeridaniglass"
glass_name = "glass of Cloudy Eridani"
glass_desc = "A frothy white beverage. Reminds Suits of home. Dregs, not so much."
@@ -3190,6 +3277,8 @@
strength = 40
taste_description = "paint stripper"
+ value = 0.1
+
glass_icon_state = "tequilaglass"
glass_name = "glass of tequila"
glass_desc = "Now all that's missing is the weird colored shades!"
@@ -3205,6 +3294,8 @@
taste_description = "jitters and death"
carbonated = TRUE
+ value = 0.15
+
glass_icon_state = "thirteen_loko_glass"
glass_name = "glass of Getmore Energy"
glass_desc = "This is a glass of Getmore Energy, a potent mixture of caffeine and alcohol."
@@ -3228,6 +3319,8 @@
taste_description = "dry alcohol"
taste_mult = 1.3
+ value = 0.1
+
glass_icon_state = "vermouthglass"
glass_name = "glass of vermouth"
glass_desc = "You wonder why you're even drinking this straight."
@@ -3240,6 +3333,8 @@
strength = 50
taste_description = "grain alcohol"
+ value = 0.1
+
glass_icon_state = "ginvodkaglass"
glass_name = "glass of vodka"
glass_desc = "The glass contain wodka. Xynta."
@@ -3267,6 +3362,8 @@
strength = 40
taste_description = "molasses"
+ value = 0.1
+
glass_icon_state = "whiskeyglass"
glass_name = "glass of whiskey"
glass_desc = "The silky, smokey whiskey goodness inside the glass makes the drink look very classy."
@@ -3279,6 +3376,8 @@
strength = 15
taste_description = "bitter sweetness"
+ value = 0.1
+
glass_icon_state = "wineglass"
glass_name = "glass of wine"
glass_desc = "A very classy looking drink."
@@ -3290,6 +3389,8 @@
strength = 20
taste_description = "rich and full-bodied sweetness unlike anything you've ever had"
+ value = 15
+
glass_name = "glass of vintage wine"
glass_desc = "A very classy and expensive-looking drink."
@@ -3415,6 +3516,8 @@
strength = 25
taste_description = "stomach acid"
+ value = 0.15
+
glass_icon_state = "acidspitglass"
glass_name = "glass of Acid Spit"
glass_desc = "A drink from the company archives. Made from live aliens."
@@ -3427,6 +3530,8 @@
strength = 25
taste_description = "bitter yet free"
+ value = 0.16
+
glass_icon_state = "alliescocktail"
glass_name = "glass of Allies cocktail"
glass_desc = "A drink made from your allies."
@@ -3439,6 +3544,8 @@
strength = 15
taste_description = "sweet 'n creamy"
+ value = 0.17
+
glass_icon_state = "aloe"
glass_name = "glass of Aloe"
glass_desc = "Very, very, very good."
@@ -3452,6 +3559,8 @@
strength = 25
taste_description = "dark and metallic"
+ value = 0.16
+
glass_icon_state = "amasecglass"
glass_name = "glass of Amasec"
glass_desc = "Always handy before COMBAT!!!"
@@ -3464,6 +3573,8 @@
strength = 35
taste_description = "lemons"
+ value = 0.15
+
glass_icon_state = "andalusia"
glass_name = "glass of Andalusia"
glass_desc = "A nice, strange named drink."
@@ -3478,6 +3589,8 @@
targ_temp = 330
taste_description = "cold cream"
+ value = 0.16
+
glass_icon_state = "antifreeze"
glass_name = "glass of Anti-freeze"
glass_desc = "The ultimate refreshment."
@@ -3492,6 +3605,8 @@
druggy = 50
taste_description = "da bomb"
+ value = 0.21
+
glass_icon_state = "atomicbombglass"
glass_name = "glass of Atomic Bomb"
glass_desc = "We cannot take legal responsibility for your actions after imbibing."
@@ -3504,6 +3619,8 @@
strength = 35
taste_description = "angry and irish"
+ value = 0.17
+
glass_icon_state = "b52glass"
glass_name = "glass of B-52"
glass_desc = "Kahlua, Irish cream, and congac. You will get bombed."
@@ -3515,6 +3632,8 @@
strength = 15
taste_description = "lime and orange"
+ value = 0.15
+
glass_icon_state = "bahama_mama"
glass_name = "glass of Bahama Mama"
glass_desc = "Tropical cocktail"
@@ -3528,6 +3647,8 @@
druggy = 25
taste_description = "tangy, irradiated licorice"
+ value = 0.2
+
glass_icon_state = "dionamamaglass"
glass_name = "glass of Diona Mama"
glass_desc = "Lightly irradiated, just the way Dionae like it."
@@ -3540,6 +3661,8 @@
strength = 15
taste_description = "stormy sweetness"
+ value = 0.13
+
glass_icon_state = "jovianstormglass"
glass_name = "glass of Jovian Storm"
glass_desc = "A classic Callistean drink named after Jupiter's storm. It'll blow you away."
@@ -3553,6 +3676,8 @@
strength = 15
taste_description = "a bad joke"
+ value = 0.15
+
glass_icon_state = "bananahonkglass"
glass_name = "glass of Banana Honk"
glass_desc = "A drink from banana heaven."
@@ -3565,6 +3690,8 @@
strength = 15
taste_description = "creamy berries"
+ value = 0.14
+
glass_icon_state = "b&p"
glass_name = "glass of Barefoot"
glass_desc = "A drink made of berry juice, cream, and vermouth."
@@ -3578,6 +3705,8 @@
strength = 35
taste_description = "JUSTICE"
+ value = 0.2
+
glass_icon_state = "beepskysmashglass"
glass_name = "Beepsky Smash"
glass_desc = "Heavy, hot and strong. Just like the Iron fist of the LAW."
@@ -3596,6 +3725,8 @@
nutriment_factor = 2
taste_description = "desperation and lactate"
+ value = 0.12
+
glass_icon_state = "glass_brown"
glass_name = "glass of bilk"
glass_desc = "A brew of milk and beer. For those alcoholics who fear osteoporosis."
@@ -3607,6 +3738,8 @@
strength = 20
taste_description = "bitterness"
+ value = 0.14
+
glass_icon_state = "blackrussianglass"
glass_name = "glass of Black Russian"
glass_desc = "For the lactose-intolerant. Still as classy as a White Russian."
@@ -3619,6 +3752,8 @@
strength = 20
taste_description = "tomatoes with a hint of lime"
+ value = 0.14
+
glass_icon_state = "bloodymaryglass"
glass_name = "glass of Bloody Mary"
glass_desc = "Tomato juice, mixed with Vodka and a lil' bit of lime. Tastes like liquid murder."
@@ -3630,6 +3765,8 @@
strength = 20
taste_description = "sweet 'n creamy"
+ value = 0.13
+
glass_icon_state = "booger"
glass_name = "glass of Booger"
glass_desc = "Ewww..."
@@ -3642,6 +3779,8 @@
caffeine = 0.2
taste_description = "alcoholic bravery"
+ value = 0.16
+
glass_icon_state = "bravebullglass"
glass_name = "glass of Brave Bull"
glass_desc = "Tequila and coffee liquor, brought together in a mouthwatering mixture. Drink up."
@@ -3654,6 +3793,8 @@
strength = 15
taste_description = "sweet mint alcohol"
+ value = 0.14
+
glass_icon_state = "cmojito"
glass_name = "glass of champagne mojito"
glass_desc = "Looks fun!"
@@ -3665,6 +3806,8 @@
strength = 40
taste_description = "sour and bitter fruit"
+ value = 0.19
+
glass_icon_state = "gibsonpunch"
glass_name = "glass of Gibson Punch"
glass_desc = "An alcoholic fruit punch."
@@ -3678,6 +3821,8 @@
taste_description = "sour and bitter"
carbonated = TRUE
+ value = 0.14
+
glass_icon_state = "classic"
glass_name = "glass of the classic"
glass_desc = "Just classic. Wow."
@@ -3690,6 +3835,8 @@
strength = 25
taste_description = "dry class"
+ value = 0.16
+
glass_icon_state = "martiniglass"
glass_name = "glass of classic martini"
glass_desc = "Damn, the bartender even stirred it, not shook it."
@@ -3702,6 +3849,8 @@
strength = 30
taste_description = "sour and smokey"
+ value = 0.13
+
glass_icon_state = "corkpopper"
glass_name = "glass of cork popper"
glass_desc = "The confusing scent only proves all the more alluring."
@@ -3715,6 +3864,8 @@
taste_description = "cola and a hint of lime"
carbonated = TRUE
+ value = 0.16
+
glass_icon_state = "cubalibreglass"
glass_name = "glass of Cuba Libre"
glass_desc = "A classic mix of rum, cola, and lime."
@@ -3728,6 +3879,8 @@
taste_description = "cola"
carbonated = TRUE
+ value = 0.15
+
glass_icon_state = "rumandcolaglass"
glass_name = "glass of Rum and Cola"
glass_desc = "A classic mix of rum and cola."
@@ -3741,6 +3894,8 @@
taste_description = "sweet tasting iron"
carbonated = TRUE
+ value = 0.15
+
glass_icon_state = "demonsblood"
glass_name = "glass of Demons' Blood"
glass_desc = "Just looking at this thing makes the hair at the back of your neck stand up."
@@ -3753,6 +3908,8 @@
strength = 15
taste_description = "bitter iron"
+ value = 0.14
+
glass_icon_state = "devilskiss"
glass_name = "glass of Devil's Kiss"
glass_desc = "Creepy time!"
@@ -3778,6 +3935,8 @@
strength = 20
taste_description = "a beach"
+ value = 0.16
+
glass_icon_state = "driestmartiniglass"
glass_name = "glass of Driest Martini"
glass_desc = "Only for the experienced. You think you see sand floating in the glass."
@@ -3791,6 +3950,8 @@
taste_description = "sour and classy"
carbonated = TRUE
+ value = 0.17
+
glass_icon_state = "french75"
glass_name = "glass of french 75"
glass_desc = "It looks like a lemon shaved into your cocktail."
@@ -3804,6 +3965,8 @@
taste_description = "dry, tart lemons"
carbonated = TRUE
+ value = 0.13
+
glass_icon_state = "ginfizzglass"
glass_name = "glass of gin fizz"
glass_desc = "Refreshingly lemony, deliciously dry."
@@ -3817,6 +3980,8 @@
strength = 10
taste_description = "a poor excuse for alcohol"
+ value = 0.11
+
glass_icon_state = "grogglass"
glass_name = "glass of grog"
glass_desc = "A fine and cepa drink for Space."
@@ -3828,6 +3993,8 @@
strength = 15
taste_description = "tartness and bananas"
+ value = 0.16
+
glass_icon_state = "erikasurprise"
glass_name = "glass of Erika Surprise"
glass_desc = "The surprise is, it's green!"
@@ -3841,6 +4008,8 @@
strength = 50
taste_description = "your brains smashed out by a lemon wrapped around a gold brick"
+ value = 0.21
+
glass_icon_state = "gargleblasterglass"
glass_name = "glass of Pan-Galactic Gargle Blaster"
glass_desc = "Does... does this mean that Arthur and Ford are on the station? Oh joy."
@@ -3854,6 +4023,8 @@
taste_description = "mild and tart"
carbonated = TRUE
+ value = 0.15
+
glass_icon_state = "gintonicglass"
glass_name = "glass of gin and tonic"
glass_desc = "A mild but still great cocktail. Drink up, like a true Englishman."
@@ -3866,6 +4037,8 @@
strength = 50
taste_description = "burning cinnamon"
+ value = 0.2
+
glass_icon_state = "ginvodkaglass"
glass_name = "glass of Goldschlager"
glass_desc = "100 proof that teen girls will drink anything with gold in it."
@@ -3880,6 +4053,8 @@
druggy = 50
taste_description = "giving peace a chance"
+ value = 0.12
+
glass_icon_state = "hippiesdelightglass"
glass_name = "glass of Hippie's Delight"
glass_desc = "A drink enjoyed by people during the 1960's."
@@ -3892,6 +4067,8 @@
strength = 65
taste_description = "pure resignation"
+ value = 0.11
+
glass_icon_state = "glass_brown2"
glass_name = "glass of Hooch"
glass_desc = "You've really hit rock bottom now... your liver packed its bags and left last night."
@@ -3905,6 +4082,8 @@
taste_description = "refreshingly cold"
carbonated = TRUE
+ value = 0.13
+
glass_icon_state = "iced_beerglass"
glass_name = "glass of iced beer"
glass_desc = "A beer so frosty, the air around it freezes."
@@ -3918,6 +4097,8 @@
taste_description = "delicious anger"
carbonated = TRUE
+ value = 0.14
+
glass_icon_state = "irishcarbomb"
glass_name = "glass of Irish Car Bomb"
glass_desc = "An irish car bomb."
@@ -3931,6 +4112,8 @@
taste_description = "anti-dominian sentiment"
carbonated = TRUE
+ value = 0.15
+
glass_icon_state = "fisfirebombglass"
glass_name = "glass of Fisanduhian Firebomb"
glass_desc = "The somewhat spicier cousin to the Irish Car Bomb."
@@ -3944,6 +4127,8 @@
caffeine = 0.3
taste_description = "giving up on the day"
+ value = 0.12
+
glass_icon_state = "irishcoffeeglass"
glass_name = "glass of Irish coffee"
glass_desc = "Coffee and alcohol. More fun than a Mimosa to drink in the morning."
@@ -3957,6 +4142,8 @@
caffeine = 0.3
taste_description = "giving up on peaceful coexistence"
+ value = 0.13
+
glass_icon_state = "fiscoffeeglass"
glass_name = "glass of Fisanduhian coffee"
glass_desc = "It's like an Irish coffee, but spicy and angry about Dominia."
@@ -3969,6 +4156,8 @@
strength = 25
taste_description = "creamy alcohol"
+ value = 0.13
+
glass_icon_state = "irishcreamglass"
glass_name = "glass of Irish cream"
glass_desc = "It's cream, mixed with whiskey. What else would you expect from the Irish?"
@@ -3981,6 +4170,8 @@
strength = 25
taste_description = "creamy spiced alcohol"
+ value = 0.14
+
glass_icon_state = "irishcreamglass"
glass_name = "glass of Fisanduhian cream"
glass_desc = "A sweet, slightly spicy alcoholic cream. Fisanduh is not yet lost."
@@ -3994,6 +4185,8 @@
taste_description = "a mixture of cola and alcohol"
carbonated = TRUE
+ value = 0.13
+
glass_icon_state = "longislandicedteaglass"
glass_name = "glass of Long Island iced tea"
glass_desc = "The liquor cabinet, brought together in a delicious mix. Intended for middle-aged alcoholic women only."
@@ -4006,6 +4199,8 @@
strength = 30
taste_description = "mild dryness"
+ value = 0.14
+
glass_icon_state = "manhattanglass"
glass_name = "glass of Manhattan"
glass_desc = "The Detective's undercover drink of choice. He never could stomach gin..."
@@ -4019,6 +4214,8 @@
druggy = 30
taste_description = "death, the destroyer of worlds"
+ value = 0.2
+
glass_icon_state = "proj_manhattanglass"
glass_name = "glass of Manhattan Project"
glass_desc = "A scientist's drink of choice, for thinking how to blow up the station."
@@ -4032,6 +4229,8 @@
taste_description = "hair on your chest and your chin"
carbonated = TRUE
+ value = 0.13
+
glass_icon_state = "manlydorfglass"
glass_name = "glass of The Manly Dorf"
glass_desc = "A manly concotion made from Ale and Beer. Intended for true men only."
@@ -4043,6 +4242,8 @@
strength = 30
taste_description = "dry and salty"
+ value = 0.15
+
glass_icon_state = "margaritaglass"
glass_name = "glass of margarita"
glass_desc = "On the rocks with salt on the rim. Arriba~!"
@@ -4057,6 +4258,8 @@
nutriment_factor = 1
taste_description = "sweet yet alcoholic"
+ value = 0.13
+
glass_icon_state = "meadglass"
glass_name = "glass of mead"
glass_desc = "A Viking's beverage, though a cheap one."
@@ -4069,6 +4272,8 @@
strength = 65
taste_description = "bitterness"
+ value = 0.11
+
glass_icon_state = "glass_clear"
glass_name = "glass of moonshine"
glass_desc = "You've really hit rock bottom now... your liver packed its bags and left last night."
@@ -4080,6 +4285,8 @@
strength = 40
taste_description = "mint and a mule's kick"
+ value = 0.14
+
glass_icon_state = "muscmule"
glass_name = "glass of muscovite mule"
glass_desc = "Such a pretty green, this couldn't possible go wrong!"
@@ -4093,6 +4300,8 @@
strength = 50
taste_description = "a numbing sensation"
+ value = 0.2
+
glass_icon_state = "neurotoxinglass"
glass_name = "glass of Neurotoxin"
glass_desc = "A drink that is guaranteed to knock you silly."
@@ -4116,6 +4325,8 @@
taste_description = "fizzy orange"
carbonated = TRUE
+ value = 0.18
+
glass_icon_state = "omimosa"
glass_name = "glass of orange mimosa"
glass_desc = "Smells like a fresh start."
@@ -4127,6 +4338,8 @@
strength = 20
taste_description = "metallic and expensive"
+ value = 0.16
+
glass_icon_state = "patronglass"
glass_name = "glass of Patron"
glass_desc = "Drinking patron in the bar, with all the subpar ladies."
@@ -4139,6 +4352,8 @@
strength = 25
taste_description = "bitter christmas tree"
+ value = 0.11
+
glass_icon_state = "pinkgin"
glass_name = "glass of pink gin"
glass_desc = "What an eccentric cocktail."
@@ -4152,6 +4367,8 @@
taste_description = "very bitter christmas tree"
carbonated = TRUE
+ value = 0.13
+
glass_icon_state = "pinkgintonic"
glass_name = "glass of pink gin and tonic"
glass_desc = "You made gin and tonic more bitter... you madman!"
@@ -4163,6 +4380,8 @@
strength = 25
taste_description = "spiced fruit cocktail"
+ value = 0.14
+
glass_icon_state = "piratepunch"
glass_name = "glass of pirate's punch"
glass_desc = "Yarr harr fiddly dee, drink whatcha want 'cause a pirate is ye!"
@@ -4175,6 +4394,8 @@
strength = 25
taste_description = "jamaica"
+ value = 0.13
+
glass_icon_state = "planterpunch"
glass_name = "glass of planter's punch"
glass_desc = "This takes you back, back to those endless white beaches of yore."
@@ -4189,6 +4410,8 @@
halluci = 10
taste_description = "purified alcoholic death"
+ value = 0.19
+
glass_icon_state = "pwineglass"
glass_name = "glass of ???"
glass_desc = "A black ichor with an oily purple sheer on top. Are you sure you should drink this?"
@@ -4218,6 +4441,8 @@
strength = 21
taste_description = "sweet and salty alcohol"
+ value = 0.14
+
glass_icon_state = "red_meadglass"
glass_name = "glass of red mead"
glass_desc = "A true Viking's beverage, though its color is strange."
@@ -4232,6 +4457,8 @@
targ_temp = 360
taste_description = "hot and spice"
+ value = 0.13
+
glass_icon_state = "sbitenglass"
glass_name = "glass of Sbiten"
glass_desc = "A spicy mix of Mead and Spices. Very hot."
@@ -4244,6 +4471,8 @@
strength = 15
taste_description = "oranges"
+ value = 0.13
+
glass_icon_state = "screwdriverglass"
glass_name = "glass of Screwdriver"
glass_desc = "A simple, yet superb mixture of Vodka and orange juice. Just the thing for the tired engineer."
@@ -4256,6 +4485,8 @@
strength = 30
taste_description = "fruity rum and bittersweet nostalgia"
+ value = 0.14
+
glass_icon_state = "sidewinderglass"
glass_name = "glass of Sidewinder Fang"
glass_desc = "An eclectic cocktail of fruit juices and dark rum. Mess with the viper, and you get the fangs."
@@ -4268,6 +4499,8 @@
strength = 50
taste_description = "a pencil eraser"
+ value = 0.135
+
glass_icon_state = "silencerglass"
glass_name = "glass of Silencer"
glass_desc = "A drink from mime Heaven."
@@ -4280,6 +4513,8 @@
strength = 50
taste_description = "concentrated matter"
+ value = 0.2
+
glass_icon_state = "singulo"
glass_name = "glass of Singulo"
glass_desc = "A blue-space beverage."
@@ -4293,6 +4528,8 @@
taste_description = "refreshing cold"
carbonated = TRUE
+ value = 0.125
+
glass_icon_state = "snowwhite"
glass_name = "glass of Snow White"
glass_desc = "A cold refreshment."
@@ -4305,6 +4542,8 @@
strength = 20
taste_description = "lime christmas tree"
+ value = 0.14
+
glass_icon_state = "ssroyale"
glass_name = "glass of southside royale"
glass_desc = "This cocktail is better than you. Maybe it's the crossed arms that give it away. Or the rich parents."
@@ -4318,6 +4557,8 @@
taste_description = "fruit"
carbonated = TRUE
+ value = 0.12
+
glass_icon_state = "sdreamglass"
glass_name = "glass of Sui Dream"
glass_desc = "A froofy, fruity, and sweet mixed drink. Understanding the name only brings shame."
@@ -4331,6 +4572,8 @@
taste_description = "cheap labor"
carbonated = TRUE
+ value = 0.21
+
glass_icon_state = "gibsonhooch"
glass_name = "glass of Gibson Hooch"
glass_desc = "A factory worker's favorite... Because they can't afford much else."
@@ -4343,6 +4586,8 @@
strength = 15
taste_description = "oranges"
+ value = 0.13
+
glass_icon_state = "tequilasunriseglass"
glass_name = "glass of Tequila Sunrise"
glass_desc = "Oh great, now you feel nostalgic about sunrises back on Terra..."
@@ -4356,6 +4601,8 @@
taste_description = "dry"
carbonated = TRUE
+ value = 0.2
+
glass_icon_state = "threemileislandglass"
glass_name = "glass of Three Mile Island iced tea"
glass_desc = "A glass of this is sure to prevent a meltdown."
@@ -4371,6 +4618,8 @@
targ_temp = 330
taste_description = "spicy toxins"
+ value = 0.2
+
glass_icon_state = "toxinsspecialglass"
glass_name = "glass of Toxins Special"
glass_desc = "Whoah, this thing is on FIRE"
@@ -4382,6 +4631,8 @@
strength = 32
taste_description = "shaken, not stirred"
+ value = 0.135
+
glass_icon_state = "martiniglass"
glass_name = "glass of vodka martini"
glass_desc ="A bastardisation of the classic martini. Still great."
@@ -4394,6 +4645,8 @@
strength = 35
taste_description = "tart bitterness"
+ value = 0.145
+
glass_icon_state = "vodkatonicglass"
glass_name = "glass of vodka and tonic"
glass_desc = "For when a gin and tonic isn't Russian enough."
@@ -4406,6 +4659,8 @@
strength = 30
taste_description = "bitter cream"
+ value = 0.125
+
glass_icon_state = "whiterussianglass"
glass_name = "glass of White Russian"
glass_desc = "A very nice looking drink. But that's just, like, your opinion, man."
@@ -4418,6 +4673,8 @@
strength = 30
taste_description = "creamy vodka and lime"
+ value = 0.125
+
glass_icon_state = "solarianwhiteglass"
glass_name = "glass of Solarian White"
glass_desc = "A classic Solarian cocktail. Despite the name, this is not a security officer."
@@ -4432,6 +4689,8 @@
strength = 35
taste_description = "polished boots and nationalism"
+ value = 0.2
+
glass_icon_state = "solarianmarineglass"
glass_name = "Solarian Marine"
glass_desc = "Drink too many of these, and you'll wake up invading Tau Ceti."
@@ -4445,6 +4704,8 @@
strength = 65
taste_description = "strong, earthy licorice"
+ value = 0.13
+
glass_icon_state = "permanentrevolutionglass"
glass_name = "glass of Permanent Revolution"
glass_desc = "A Himean cocktail, so named for its tendency to make the room spin. You have nothing to lose but your sobriety."
@@ -4469,6 +4730,8 @@
strength = 28
taste_description = "earthy, oily unity"
+ value = 0.13
+
glass_icon_state = "internationaleglass"
glass_name = "glass of Internationale"
glass_desc = "The nearest thing the Orion Spur has to left unity. The subversive's choice."
@@ -4483,6 +4746,8 @@
taste_description = "cola"
carbonated = TRUE
+ value = 0.15
+
glass_icon_state = "whiskeycolaglass"
glass_name = "glass of whiskey cola"
glass_desc = "An innocent-looking mixture of cola and Whiskey. Delicious."
@@ -4496,6 +4761,8 @@
taste_description = "cola"
carbonated = TRUE
+ value = 0.15
+
glass_icon_state = "whiskeysodaglass2"
glass_name = "glass of whiskey soda"
glass_desc = "Ultimate refreshment."
@@ -4508,6 +4775,8 @@
strength = 45
taste_description = "silky, amber goodness"
+ value = 0.3
+
glass_icon_state = "whiskeyglass"
glass_name = "glass of special blend whiskey"
glass_desc = "Just when you thought regular station whiskey was good... This silky, amber goodness has to come along and ruin everything."
@@ -4549,6 +4818,8 @@
strength = 15
taste_description = "lime and sugar"
+ value = 0.15
+
glass_icon_state = "daiquiri"
glass_name = "glass of Daiquiri"
glass_desc = "A splendid looking cocktail."
@@ -4560,6 +4831,8 @@
strength = 10
taste_description = "vodka and lemon"
+ value = 0.15
+
glass_icon_state = "icepick"
glass_name = "glass of Ice Pick"
glass_desc = "Big. And red. Hmm..."
@@ -4571,6 +4844,8 @@
strength = 15
taste_description = "layers of liquors"
+ value = 0.17
+
glass_icon_state = "pousseecafe"
glass_name = "glass of Pousse-Cafe"
glass_desc = "Smells of French and liquore."
@@ -4582,6 +4857,8 @@
strength = 25
taste_description = "old as time"
+ value = 0.15
+
glass_icon_state = "mintjulep"
glass_name = "glass of Mint Julep"
glass_desc = "As old as time itself, but how does it taste?"
@@ -4594,6 +4871,8 @@
taste_description = "whiskey"
carbonated = TRUE
+ value = 0.17
+
glass_icon_state = "johnscollins"
glass_name = "glass of John Collins"
glass_desc = "Named after a man, perhaps?"
@@ -4606,6 +4885,8 @@
taste_description = "gin and class"
carbonated = TRUE
+ value = 0.13
+
glass_icon_state = "gimlet"
glass_name = "glass of Gimlet"
glass_desc = "Small, elegant, and packs a punch."
@@ -4617,6 +4898,8 @@
strength = 10
taste_description = "freedom"
+ value = 0.15
+
glass_icon_state = "starsandstripes"
glass_name = "glass of Stars and Stripes"
glass_desc = "Someone, somewhere, is saluting."
@@ -4639,6 +4922,8 @@
strength = 27
taste_description = "fruity sweetness"
+ value = 0.13
+
glass_icon_state = "metropolitan"
glass_name = "glass of Metropolitan"
glass_desc = "What more could you ask for?"
@@ -4661,6 +4946,8 @@
strength = 30
taste_description = "political power"
+ value = 0.13
+
glass_icon_state = "primeministerglass"
glass_name = "glass of Prime Minister"
glass_desc = "All the fun of power, none of the assassination risk!"
@@ -4672,6 +4959,8 @@
strength = 21
taste_description = "tart, oily honey"
+ value = 0.15
+
glass_icon_state = "peacetreatyglass"
glass_name = "glass of Peace Treaty"
glass_desc = "A diplomatic overture in a glass."
@@ -4683,6 +4972,8 @@
strength = 25
taste_description = "dryness"
+ value = 0.18
+
glass_icon_state = "caruso"
glass_name = "glass of Caruso"
glass_desc = "Green, almost alien."
@@ -4694,6 +4985,8 @@
strength = 25
taste_description = "brandy and oranges"
+ value = 0.15
+
glass_icon_state = "aprilshower"
glass_name = "glass of April Shower"
glass_desc = "Smells of brandy."
@@ -4705,6 +4998,8 @@
strength = 15
taste_description = "sweetness"
+ value = 0.17
+
glass_icon_state = "carthusiansazerac"
glass_name = "glass of Carthusian Sazerac"
glass_desc = "Whiskey and... Syrup?"
@@ -4716,6 +5011,8 @@
strength = 25
taste_description = "dry gin"
+ value = 0.15
+
glass_icon_state = "deweycocktail"
glass_name = "glass of Dewey Cocktail"
glass_desc = "Colours, look at all the colours!"
@@ -4727,6 +5024,8 @@
strength = 40
taste_description = "a mixture of herbs"
+ value = 0.18
+
glass_icon_state = "greenchartreuseglass"
glass_name = "glass of Green Chartreuse"
glass_desc = "A green, strong liqueur."
@@ -4738,6 +5037,8 @@
strength = 40
taste_description = "a sweet mixture of herbs"
+ value = 0.18
+
glass_icon_state = "chartreuseyellowglass"
glass_name = "glass of Yellow Chartreuse"
glass_desc = "A yellow, strong liqueur."
@@ -4749,6 +5050,8 @@
strength = 20
taste_description = "mint"
+ value = 0.14
+
glass_icon_state = "whitecremeglass"
glass_name = "glass of White Creme de Menthe"
glass_desc = "Mint-flavoured alcohol."
@@ -4760,6 +5063,8 @@
strength = 20
taste_description = "berries"
+ value = 0.17
+
glass_icon_state = "cremedeyvetteglass"
glass_name = "glass of Creme de Yvette"
glass_desc = "Berry-flavoured alcohol."
@@ -4771,6 +5076,8 @@
strength = 40
taste_description = "cheap cognac"
+ value = 0.2
+
glass_icon_state = "brandyglass"
glass_name = "glass of Brandy"
glass_desc = "Cheap knock off for cognac."
@@ -4783,6 +5090,8 @@
taste_description = "dryness"
carbonated = TRUE
+ value = 0.1
+
glass_icon_state = "guinnessglass"
glass_name = "glass of Guinness"
glass_desc = "A glass of Guinness."
@@ -4794,6 +5103,8 @@
strength = 40
taste_description = "sweet whisky"
+ value = 0.18
+
glass_icon_state = "drambuieglass"
glass_name = "glass of Drambuie"
glass_desc = "A drink that smells like whiskey but tastes different."
@@ -4805,6 +5116,8 @@
strength = 30
taste_description = "bitterness"
+ value = 0.15
+
glass_icon_state = "oldfashioned"
glass_name = "glass of Old Fashioned"
glass_desc = "That looks like it's from the sixties."
@@ -4816,6 +5129,8 @@
strength = 40
taste_description = "bitterness blindness"
+ value = 0.16
+
glass_icon_state = "blindrussian"
glass_name = "glass of Blind Russian"
glass_desc = "You can't see?"
@@ -4827,6 +5142,8 @@
strength = 25
taste_description = "lemons"
+ value = 0.13
+
glass_icon_state = "rustynail"
glass_name = "glass of Rusty Nail"
glass_desc = "Smells like lemon."
@@ -4839,6 +5156,8 @@
taste_description = "tall bitterness"
carbonated = TRUE
+ value = 0.15
+
glass_icon_state = "tallblackrussian"
glass_name = "glass of Tall Black Russian"
glass_desc = "Just like black russian but taller."
@@ -5621,6 +5940,8 @@
glass_icon_state = "darmadhirbrew_glass"
glass_name = "glass of Darmadhir Brew"
+ value = 25
+
/singleton/reagent/alcohol/treebark_firewater
name = "Tree-Bark Firewater"
color = "#ACAA1D"
@@ -5674,6 +5995,8 @@
glass_name = "glass of Xuizi Juice"
glass_desc = "The clear green liquid smells like vanilla, tastes like water. Unathi swear it has a rich taste and texture."
+ value = 0.2
+
/singleton/reagent/alcohol/butanol/sarezhiwine
name = "Sarezhi Wine"
description = "An alcoholic beverage made from lightly fermented Sareszhi berries, considered an upper class delicacy on Moghes. Significant butanol content indicates intoxicating effects on Unathi."
@@ -6430,6 +6753,7 @@
description = "A mixture of perfectly healthy milk and delicious chocolate."
color = "#74533b"
taste_description = "chocolate milk"
+ value = 0.11
glass_icon_state = "glass_chocolate"
glass_name = "glass of chocolate milk"
diff --git a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Medicine.dm b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Medicine.dm
index ca421a3ee70..fdbb7af6d83 100644
--- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Medicine.dm
+++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Medicine.dm
@@ -10,6 +10,7 @@
metabolism_min = REM * 0.125
breathe_mul = 0.5
scannable = TRUE
+ value = 2.5
taste_description = "bitterness"
/singleton/reagent/inaprovaline/affect_blood(var/mob/living/carbon/M, var/alien, var/removed, var/datum/reagents/holder)
@@ -33,6 +34,7 @@
taste_description = "bitterness"
fallback_specific_heat = 1
taste_mult = 3
+ value = 4.9
/singleton/reagent/bicaridine/affect_blood(var/mob/living/carbon/M, var/alien, var/removed, var/datum/reagents/holder)
M.heal_organ_damage(5 * removed, 0)
@@ -114,6 +116,7 @@
metabolism = REM * 0.5
overdose = 15
taste_mult = 1.5
+ value = 3.9
/singleton/reagent/dermaline/affect_blood(var/mob/living/carbon/M, var/alien, var/removed, var/datum/reagents/holder)
M.heal_organ_damage(0, 12 * removed)
@@ -129,6 +132,7 @@
scannable = TRUE
metabolism = REM * 0.5
taste_description = "a roll of gauze"
+ value = 2.1
var/remove_generic = TRUE
var/list/remove_toxins = list(
@@ -171,6 +175,7 @@
metabolism = REM * 0.75
breathe_met = REM * 0.5
breathe_mul = 2
+ value = 2.4
var/strength = 6
/singleton/reagent/dexalin/affect_blood(var/mob/living/carbon/M, var/alien, var/removed, var/datum/reagents/holder)
@@ -197,6 +202,7 @@
color = "#0040FF"
overdose = 15
strength = 12
+ value = 3.6
/singleton/reagent/tricordrazine
name = "Tricordrazine"
@@ -209,6 +215,7 @@
taste_description = "bitterness"
breathe_mul = 0
metabolism = REM * 0.25
+ value = 6
/singleton/reagent/tricordrazine/affect_blood(var/mob/living/carbon/M, var/alien, var/removed, var/datum/reagents/holder)
var/power = 1 + Clamp((holder.get_temperature() - (T0C + 20))*0.1,-0.5,0.5)
@@ -228,6 +235,7 @@
overdose = 5
scannable = TRUE
taste_description = "sludge"
+ value = 3.9
/singleton/reagent/cryoxadone/affect_blood(var/mob/living/carbon/M, var/alien, var/removed, var/datum/reagents/holder)
M.add_chemical_effect(CE_CRYO, 1)
@@ -261,6 +269,7 @@
overdose = 5
scannable = TRUE
taste_description = "slime"
+ value = 5.5
/singleton/reagent/clonexadone/affect_blood(var/mob/living/carbon/M, var/alien, var/removed, var/datum/reagents/holder)
M.add_chemical_effect(CE_CRYO, 1)
@@ -301,6 +310,7 @@
taste_description = "sickness"
metabolism_min = 0.005
breathe_mul = 0
+ value = 3.3
/singleton/reagent/perconol/affect_blood(var/mob/living/carbon/M, var/alien, var/removed, var/datum/reagents/holder)
if(check_min_dose(M))
@@ -330,6 +340,7 @@
taste_description = "sourness"
metabolism_min = 0.005
breathe_mul = 0
+ value = 3.1
/singleton/reagent/mortaphenyl/affect_blood(var/mob/living/carbon/M, var/alien, var/removed, var/datum/reagents/holder)
var/list/joy_messages = list("You feel soothed and at ease.", "You feel content and at peace.", "You feel a pleasant emptiness.", "You feel like sharing the wonderful memories and feelings you're experiencing.", "All your anxieties fade away.", "You feel like you're floating off the ground.", "You don't want this feeling to end.")
@@ -503,6 +514,7 @@
breathe_met = REM * 4 // .8 units per tick
taste_description = "bitterness"
metabolism_min = 0.005
+ value = 3.3
/singleton/reagent/oxycomorphine/initial_effect(var/mob/living/carbon/human/M, var/alien, var/holder)
to_chat(M, SPAN_GOOD(pick("You lean back and begin to fall... and fall... and fall.", "A feeling of ecstasy builds within you.", "You're startled by just how amazing you suddenly feel.")))
@@ -554,6 +566,7 @@
scannable = TRUE
taste_description = "bitterness"
metabolism_min = REM * 0.0125
+ value = 4.6
/singleton/reagent/synaptizine/affect_blood(var/mob/living/carbon/M, var/alien, var/removed, var/datum/reagents/holder)
M.drowsiness = max(M.drowsiness - 5, 0)
@@ -595,6 +608,7 @@
scannable = TRUE
taste_description = "bitterness"
metabolism_min = REM * 0.075
+ value = 5.9
/singleton/reagent/alkysine/affect_blood(var/mob/living/carbon/M, var/alien, var/removed, var/datum/reagents/holder)
if(check_min_dose(M, 2)) //Increased effectiveness & no side-effects if given via IV drip with low transfer rate.
@@ -633,6 +647,7 @@
scannable = TRUE
taste_mult = 0.33 //Specifically to cut the dull toxin taste out of foods using carrot
taste_description = "dull toxin"
+ value = 4.2
/singleton/reagent/oculine/affect_blood(var/mob/living/carbon/M, var/alien, var/removed, var/datum/reagents/holder)
M.eye_blurry = max(M.eye_blurry - 5 * removed, 0)
@@ -665,6 +680,7 @@
overdose = 10
scannable = TRUE
taste_description = "bitterness"
+ value = 6
/singleton/reagent/peridaxon/affect_blood(var/mob/living/carbon/M, var/alien, var/removed, var/datum/reagents/holder)
if(ishuman(M))
@@ -707,6 +723,7 @@
taste_description = "acid"
metabolism = REM
metabolism_min = 0.25
+ value = 3.6
/singleton/reagent/ryetalyn/affect_blood(var/mob/living/carbon/M, var/alien, var/removed, var/datum/reagents/holder)
holder.remove_reagent(/singleton/reagent/toxin/malignant_tumour_cells, 2)
@@ -731,6 +748,7 @@
taste_description = "acid"
metabolism_min = REM * 0.025
breathe_met = REM * 0.15 * 0.5
+ value = 3.9
/singleton/reagent/hyperzine/initial_effect(mob/living/carbon/M, alien, datum/reagents/holder)
. = ..()
@@ -781,6 +799,7 @@
overdose = REAGENTS_OVERDOSE
scannable = TRUE
taste_description = "bitterness"
+ value = 3.1
/singleton/reagent/ethylredoxrazine/affect_blood(var/mob/living/carbon/M, var/alien, var/removed, var/datum/reagents/holder)
var/P = removed * ETHYL_REAGENT_POWER
@@ -833,6 +852,7 @@
overdose = REAGENTS_OVERDOSE
scannable = TRUE
taste_description = "bitterness"
+ value = 2.3
unaffected_species = IS_MACHINE
var/last_taste_time = -10000
@@ -863,6 +883,7 @@
overdose = REAGENTS_OVERDOSE
scannable = TRUE
taste_description = "bitterness"
+ value = 2.7
unaffected_species = IS_MACHINE
/singleton/reagent/arithrazine/initialize_data(newdata)
@@ -900,6 +921,7 @@
scannable = TRUE
taste_description = "bitter gauze soaked in rubbing alcohol"
fallback_specific_heat = 0.605 // assuming it's ethanol-based
+ value = 2.5
/singleton/reagent/thetamycin/affect_blood(var/mob/living/carbon/M, var/alien, var/removed, var/datum/reagents/holder)
M.add_chemical_effect(CE_ANTIBIOTIC, M.chem_doses[type]) // strength of antibiotics; amount absorbed, need >5u dose to begin to be effective which'll take ~5 minutes to metabolise. need >10u dose if administered orally.
@@ -986,6 +1008,8 @@
breathe_met = REM * 2 // .4 units per tick
// touch is slow
+ value = 1.5
+
glass_name = "glass of cough syrup"
glass_desc = "You'd better not."
@@ -1031,6 +1055,7 @@
touch_met = 5
taste_description = "burning bleach"
germ_adjust = 20
+ value = 2.2
/singleton/reagent/sterilizine/affect_touch(var/mob/living/carbon/M, var/alien, var/removed, var/datum/reagents/holder)
M.germ_level -= min(removed*20, M.germ_level)
@@ -1094,6 +1119,7 @@
overdose = REAGENTS_OVERDOSE
scannable = TRUE
taste_description = "bitterness"
+ value = 2
/singleton/reagent/leporazine/affect_blood(var/mob/living/carbon/M, var/alien, var/removed, var/datum/reagents/holder)
if(!check_min_dose(M))
@@ -1183,6 +1209,7 @@
taste_description = "bitterness"
messagedelay = MEDICATION_MESSAGE_DELAY * 0.75
goodmessage = list("You feel good.","You feel relaxed.","You feel alert and focused.")
+ value = 2
/singleton/reagent/mental/nicotine/overdose(var/mob/living/carbon/M, var/alien, var/removed, var/scale, var/datum/reagents/holder)
..()
@@ -1217,6 +1244,7 @@
od_minimum_dose = 0.2
taste_description = "paper"
goodmessage = list("You feel focused.","You feel like you have no distractions.","You feel willing to work.")
+ value = 6
/singleton/reagent/mental/corophenidate/affect_blood(var/mob/living/carbon/M, var/alien, var/removed, var/datum/reagents/holder)
M.add_chemical_effect(CE_HALLUCINATE, -1)
@@ -1231,6 +1259,7 @@
od_minimum_dose = 0.2
taste_description = "bitterness"
goodmessage = list("You do not feel the need to worry about simple things.","You feel calm and level-headed.","You feel fine.")
+ value = 6
/singleton/reagent/mental/parvosil
name = "Parvosil"
@@ -1241,6 +1270,7 @@
od_minimum_dose = 0.4
taste_description = "paper"
goodmessage = list("You feel fine.","You feel rational.","You feel secure.")
+ value = 6
/singleton/reagent/mental/minaphobin
name = "Minaphobin"
@@ -1251,6 +1281,7 @@
od_minimum_dose = 0.2
taste_description = "duct tape"
goodmessage = list("You feel relaxed.","You feel at ease.","You feel carefree.")
+ value = 6
/singleton/reagent/mental/emoxanyl
name = "Emoxanyl"
@@ -1262,6 +1293,7 @@
taste_description = "scotch tape"
goodmessage = list("You feel at ease.","Your mind feels great.", "You feel centered.")
messagedelay = MEDICATION_MESSAGE_DELAY * 0.75
+ value = 6
/singleton/reagent/mental/orastabin
name = "Orastabin"
@@ -1273,6 +1305,7 @@
taste_description = "glue"
goodmessage = list("You feel at ease.","You feel like you can speak with confidence.","You feel unafraid to speak.")
messagedelay = MEDICATION_MESSAGE_DELAY * 0.75
+ value = 6
/singleton/reagent/mental/orastabin/affect_blood(var/mob/living/carbon/M, var/alien, var/removed, var/datum/reagents/holder)
M.add_chemical_effect(CE_NOSTUTTER, 2)
@@ -1289,6 +1322,7 @@
taste_description = "tranquility"
goodmessage = list("Your mind feels as one.","You feel incredibly comfortable.","Your body feels good.","Your thoughts are clear.", "You feel stress free.", "Nothing is bothering you anymore.")
messagedelay = MEDICATION_MESSAGE_DELAY * 0.5
+ value = 6
/singleton/reagent/mental/neurapan/affect_blood(var/mob/living/carbon/M, var/alien, var/removed, var/datum/reagents/holder)
M.add_chemical_effect(CE_HALLUCINATE, -2)
@@ -1311,6 +1345,7 @@
taste_description = "paint"
goodmessage = list("Your mind feels as one.","You feel comfortable speaking.","Your body feels good.","Your thoughts are pure.","Your body feels responsive.","You can handle being alone.")
messagedelay = MEDICATION_MESSAGE_DELAY * 0.5
+ value = 6
/singleton/reagent/mental/nerospectan/affect_blood(var/mob/living/carbon/M, var/alien, var/removed, var/datum/reagents/holder)
M.add_chemical_effect(CE_HALLUCINATE, -2)
@@ -1331,6 +1366,7 @@
goodmessage = list("You feel like you have nothing to hide.","You feel compelled to spill your secrets.","You feel like you can trust those around you.")
messagedelay = 30
ingest_mul = 1
+ value = 8
/singleton/reagent/mental/truthserum/overdose(var/mob/living/carbon/M, var/alien, var/datum/reagents/holder)
M.add_chemical_effect(CE_PACIFIED, 1)
@@ -1511,6 +1547,7 @@
scannable = TRUE
taste_description = "fine dust"
reagent_state = SOLID
+ value = 3.2
/singleton/reagent/pneumalin/affect_breathe(var/mob/living/carbon/human/H, var/alien, var/removed, var/datum/reagents/holder)
H.adjustOxyLoss(removed) //Every unit heals 1 oxy damage
@@ -1535,6 +1572,7 @@
overdose = REAGENTS_OVERDOSE
scannable = TRUE
taste_description = "sickness"
+ value = 5
/singleton/reagent/rezadone/affect_chem_effect(var/mob/living/carbon/M, var/alien, var/removed, var/datum/reagents/holder)
. = ..()
@@ -1564,6 +1602,7 @@
scannable = TRUE
taste_description = "blood"
specific_heat = 1
+ value = 5
/singleton/reagent/sanasomnum/initial_effect(mob/living/carbon/M)
to_chat(M, SPAN_WARNING("Your limbs start to feel numb and weak, and your legs wobble as it becomes hard to stand!"))
@@ -1620,6 +1659,7 @@
overdose = REAGENTS_OVERDOSE
scannable = TRUE
taste_description = "sweet syrup"
+ value = 2
/singleton/reagent/verunol/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed, var/datum/reagents/holder)
if (prob(10+M.chem_doses[type]))
@@ -1638,6 +1678,7 @@
taste_description = "bitter metal"
overdose = 5
fallback_specific_heat = 1.2
+ value = 500
/singleton/reagent/azoth/affect_blood(var/mob/living/carbon/M, var/alien, var/removed, var/datum/reagents/holder)
..()
@@ -1726,6 +1767,7 @@
value = 2
breathe_mul = 0
ingest_mul = 0
+ value = 3
/singleton/reagent/adrenaline/affect_blood(var/mob/living/carbon/human/M, var/alien, var/removed, var/datum/reagents/holder)
if(alien == IS_DIONA)
@@ -1763,6 +1805,7 @@
affects_dead = 1
taste_description = "eternal blissfulness"
fallback_specific_heat = 2
+ value = 1000
/singleton/reagent/elixir/affect_blood(var/mob/living/carbon/M, var/alien, var/removed, var/datum/reagents/holder)
if(ishuman(M))
diff --git a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Other.dm b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Other.dm
index 25349e4029c..9cd09998468 100644
--- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Other.dm
+++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Other.dm
@@ -8,6 +8,7 @@
overdose = 5
taste_description = "the back of class"
fallback_specific_heat = 0.4
+ value = 0.001
/singleton/reagent/crayon_dust/red
name = "Red Crayon Dust"
@@ -99,6 +100,7 @@
glass_desc = "It's magic, I ain't gotta explain shit."
fallback_specific_heat = 10 //Magical.
+ value = 1000
/singleton/reagent/adminordrazine/affect_touch(var/mob/living/carbon/M, var/alien, var/removed, var/datum/reagents/holder)
@@ -135,6 +137,7 @@
color = "#F7C430"
taste_description = "expensive metal"
fallback_specific_heat = 2.511
+ value = 7
/singleton/reagent/silver
name = "Silver"
@@ -143,6 +146,7 @@
color = "#D0D0D0"
taste_description = "expensive yet reasonable metal"
fallback_specific_heat = 0.241
+ value = 4
/singleton/reagent/uranium
name = "Uranium"
@@ -151,6 +155,7 @@
color = "#B8B8C0"
taste_description = "the inside of a reactor"
fallback_specific_heat = 2.286
+ value = 9
/singleton/reagent/uranium/affect_touch(var/mob/living/carbon/M, var/alien, var/removed, var/datum/reagents/holder)
affect_ingest(M, alien, removed, holder)
@@ -195,6 +200,7 @@
color = "#E0E0E0"
taste_description = "salty metalic miner tears"
fallback_specific_heat = 0.2971
+ value = 3
/singleton/reagent/water/holywater
name = "Holy Water"
@@ -257,6 +263,7 @@
reagent_state = LIQUID
color = "#604030"
taste_description = "iron"
+ value = 0.9
/singleton/reagent/surfactant // Foam precursor
name = "Azosurfactant"
@@ -264,6 +271,7 @@
reagent_state = LIQUID
color = "#9E6B38"
taste_description = "metal"
+ value = 0.05
/singleton/reagent/foaming_agent // Metal foaming agent. This is lithium hydride. Add other recipes (e.g. LiH + H2O -> LiOH + H2) eventually.
name = "Foaming Agent"
@@ -279,6 +287,7 @@
color = "#673910"
touch_met = 50
taste_description = "sweet tasting metal"
+ value = 6
/singleton/reagent/thermite/touch_turf(var/turf/T, var/amount, var/datum/reagents/holder)
. = ..()
@@ -306,6 +315,7 @@
touch_met = REM * 10
taste_description = "sourness"
germ_adjust = 10
+ value = 0.7
/singleton/reagent/spacecleaner/touch_obj(var/obj/O, var/amount, var/datum/reagents/holder)
O.clean_blood()
@@ -425,6 +435,7 @@
reagent_state = LIQUID
color = "#009CA8"
taste_description = "cherry"
+ value = 0.6
/singleton/reagent/lube/touch_turf(var/turf/simulated/T, var/amount, var/datum/reagents/holder)
if(!istype(T))
@@ -466,6 +477,7 @@
reagent_state = LIQUID
color = COLOR_GRAY
taste_description = "sweetness"
+ value = 8
/singleton/reagent/nitroglycerin
name = "Nitroglycerin"
@@ -473,6 +485,7 @@
reagent_state = LIQUID
color = COLOR_GRAY
taste_description = "oil"
+ value = 9
/singleton/reagent/nitroglycerin/proc/explode(var/datum/reagents/holder)
var/datum/effect/effect/system/reagents_explosion/e = new()
@@ -515,6 +528,7 @@
color = "#C8A5DC"
taste_description = "sourness"
taste_mult = 1.1
+ value = 0.8
/singleton/reagent/ultraglue
name = "Ultra Glue"
@@ -530,6 +544,7 @@
color = "#B97A57"
taste_description = "wood"
fallback_specific_heat = 1.9
+ value = 0.6
/singleton/reagent/luminol
name = "Luminol"
@@ -537,6 +552,7 @@
reagent_state = LIQUID
color = "#F2F3F4"
taste_description = "metal"
+ value = 1.4
/singleton/reagent/luminol/touch_obj(var/obj/O, var/amount, var/datum/reagents/holder)
O.reveal_blood()
@@ -660,6 +676,7 @@
metabolism = REM * 0.25
taste_description = "bottled fire"
fallback_specific_heat = 2.75
+ value = 50
unaffected_species = IS_MACHINE
/singleton/reagent/estus/initial_effect(mob/living/carbon/M, alien, datum/reagents/holder)
@@ -690,6 +707,7 @@
touch_met = 5
taste_description = "metal"
fallback_specific_heat = 20 //This holds a ton of heat.
+ value = 50
unaffected_species = IS_MACHINE
/singleton/reagent/liquid_fire/affect_blood(var/mob/living/carbon/M, var/alien, var/removed, var/datum/reagents/holder)
@@ -710,6 +728,7 @@
color = "#000000"
taste_description = "emptyness"
fallback_specific_heat = 100 //Yeah...
+ value = 250
unaffected_species = IS_MACHINE
/singleton/reagent/black_matter/touch_turf(var/turf/T, var/amount, var/datum/reagents/holder)
@@ -735,6 +754,7 @@
color = "#1f8999"
taste_description = "fizzling blue"
fallback_specific_heat = 0.1
+ value = 250
unaffected_species = IS_MACHINE
/singleton/reagent/bluespace_dust/affect_blood(var/mob/living/carbon/M, var/alien, var/removed, var/datum/reagents/holder)
@@ -755,6 +775,7 @@
color = "#f4c430"
taste_description = "heavenly knowledge"
fallback_specific_heat = 1.25
+ value = 1000
/singleton/reagent/sglue
name = "Sovereign Glue"
diff --git a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Toxins.dm b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Toxins.dm
index 6ae74a94b95..34a43900b60 100644
--- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Toxins.dm
+++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Toxins.dm
@@ -10,6 +10,7 @@
taste_mult = 1.2
fallback_specific_heat = 0.75
overdose = 10
+ value = 2
var/target_organ // needs to be null by default
var/strength = 2 // How much damage it deals per unit
@@ -48,6 +49,7 @@
color = "#CF3600"
strength = 5
taste_description = "plastic"
+ value = 2.1
/singleton/reagent/toxin/amatoxin
name = "Amatoxin"
@@ -56,6 +58,7 @@
color = "#792300"
strength = 10
taste_description = "mushroom"
+ value = 2.3
/singleton/reagent/toxin/carpotoxin
name = "Carpotoxin"
@@ -65,6 +68,7 @@
strength = 10
taste_description = "fish"
target_organ = BP_BRAIN
+ value = 3
/singleton/reagent/toxin/carpotoxin/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed, var/datum/reagents/holder)
if(alien && alien == IS_UNATHI)
@@ -133,6 +137,7 @@
taste_mult = 1.5
breathe_mul = 2
fallback_specific_heat = 12 //Phoron is very dense and can hold a lot of energy.
+ value = 10
/singleton/reagent/toxin/phoron/affect_blood(var/mob/living/carbon/M, var/alien, var/removed, var/datum/reagents/holder)
if(ishuman(M))
@@ -256,6 +261,7 @@
taste_description = "bitter almonds"
taste_mult = 1.5
target_organ = BP_HEART
+ value = 3.3
/singleton/reagent/toxin/cyanide/affect_blood(var/mob/living/carbon/M, var/alien, var/removed, var/datum/reagents/holder)
..()
@@ -274,6 +280,7 @@
overdose = 15
od_minimum_dose = 5
taste_description = "salt"
+ value = 4.4
/singleton/reagent/toxin/potassium_chloride/overdose(var/mob/living/carbon/M, var/alien, var/removed, var/datum/reagents/holder)
var/mob/living/carbon/human/H = M
@@ -295,6 +302,7 @@
overdose = 5
od_minimum_dose = 20
taste_description = "salt"
+ value = 4.5
/singleton/reagent/toxin/potassium_chlorophoride/affect_blood(var/mob/living/carbon/M, var/alien, var/removed, var/datum/reagents/holder)
var/mob/living/carbon/human/H = M
@@ -317,6 +325,7 @@
strength = 3
taste_description = "death"
target_organ = BP_BRAIN
+ value = 2.9
/singleton/reagent/toxin/zombiepowder/affect_blood(var/mob/living/carbon/M, var/alien, var/removed, var/datum/reagents/holder)
..()
@@ -344,6 +353,7 @@
taste_description = "plant food"
taste_mult = 0.5
touch_mul = 0
+ value = 1.2
unaffected_species = IS_MACHINE
/singleton/reagent/toxin/fertilizer/affect_blood(var/mob/living/carbon/M, var/alien, var/removed, var/datum/reagents/holder)
@@ -442,6 +452,7 @@
strength = 4
metabolism = REM*1.5
taste_mult = 1
+ value = 1.1
unaffected_species = IS_MACHINE
/singleton/reagent/toxin/plantbgone/touch_turf(var/turf/T, var/amount, var/datum/reagents/holder)
@@ -478,6 +489,7 @@
color = "#C8A5DC"
overdose = REAGENTS_OVERDOSE
taste_description = "acid"
+ value = 2.4
/singleton/reagent/lexorin/affect_blood(var/mob/living/carbon/M, var/alien, var/removed, var/datum/reagents/holder)
var/mob/living/carbon/human/H = M
@@ -494,6 +506,7 @@
color = "#13BC5E"
taste_description = "slime"
taste_mult = 0.9
+ value = 3.1
/singleton/reagent/mutagen/affect_touch(var/mob/living/carbon/M, var/alien, var/removed, var/datum/reagents/holder)
if(prob(33))
@@ -531,6 +544,7 @@
color = "#801E28"
taste_description = "slime"
taste_mult = 1.3
+ value = 1.2
/singleton/reagent/slimejelly/affect_blood(var/mob/living/carbon/M, var/alien, var/removed, var/datum/reagents/holder)
if(isslime(M)) // stabilize slime mutation by reintroducing slime jelly into the slime
@@ -557,6 +571,7 @@
overdose = REAGENTS_OVERDOSE
taste_description = "bitterness"
breathe_met = REM * 0.5 * 0.33
+ value = 2.5
var/total_strength = 0
/singleton/reagent/soporific/affect_blood(var/mob/living/carbon/M, var/alien, var/removed, var/datum/reagents/holder)
@@ -588,6 +603,7 @@
overdose = 15
taste_description = "bitterness"
breathe_met = REM * 0.5 * 0.5
+ value = 2.6
/singleton/reagent/polysomnine/affect_blood(var/mob/living/carbon/M, var/alien, var/removed, var/datum/reagents/holder)
var/mob/living/carbon/human/H = M
@@ -620,6 +636,7 @@
glass_center_of_mass = list("x"=16, "y"=8)
fallback_specific_heat = 1.2
+ value = 2.2
/* Transformations */
@@ -629,6 +646,7 @@
reagent_state = LIQUID
color = "#13BC5E"
taste_description = "sludge"
+ value = 3
/singleton/reagent/aslimetoxin/affect_blood(var/mob/living/carbon/M, var/alien, var/removed, var/datum/reagents/holder) // TODO: check if there's similar code anywhere else
if(M.transforming)
@@ -663,12 +681,14 @@
color = "#535E66"
taste_description = "slimey metal"
fallback_specific_heat = 3
+ value = 9
/singleton/reagent/toxin/undead
name = "Undead Ichor"
description = "A wicked liquid with unknown origins and uses."
color = "#b2beb5"
strength = 25
+ value = 300
taste_description = "ashes"
/singleton/reagent/toxin/undead/affect_blood(var/mob/living/carbon/M, var/alien, var/removed, var/datum/reagents/holder)
diff --git a/code/modules/reagents/reagent_containers.dm b/code/modules/reagents/reagent_containers.dm
index 5a9ae0b83e2..0ab291566fe 100644
--- a/code/modules/reagents/reagent_containers.dm
+++ b/code/modules/reagents/reagent_containers.dm
@@ -190,8 +190,8 @@
var/contained = reagentlist()
var/temperature = reagents.get_temperature()
var/temperature_text = "Temperature: ([temperature]K/[temperature]C)"
- target.attack_log += text("\[[time_stamp()]\] Has been splashed with [name] by [user.name] ([user.ckey]). Reagents: [contained] [temperature_text].")
- user.attack_log += text("\[[time_stamp()]\] Used the [name] to splash [target.name] ([target.key]). Reagents: [contained] [temperature_text].")
+ target.attack_log += "\[[time_stamp()]\] Has been splashed with [name] by [user.name] ([user.ckey]). Reagents: [contained] [temperature_text]."
+ user.attack_log += "\[[time_stamp()]\] Used the [name] to splash [target.name] ([target.key]). Reagents: [contained] [temperature_text]."
msg_admin_attack("[user.name] ([user.ckey]) splashed [target.name] ([target.key]) with [name]. Reagents: [contained] (INTENT: [uppertext(user.a_intent)]) (JMP)",ckey=key_name(user),ckey_target=key_name(target))
user.visible_message(SPAN_DANGER("\The [target] has been splashed with something by \the [user]!"),
@@ -274,8 +274,8 @@
other_feed_message_finish(user, target)
var/contained = reagentlist()
- target.attack_log += text("\[[time_stamp()]\] Has been fed [name] by [user.name] ([user.ckey]). Reagents: [contained]")
- user.attack_log += text("\[[time_stamp()]\] Fed [name] by [target.name] ([target.ckey]). Reagents: [contained]")
+ target.attack_log += "\[[time_stamp()]\] Has been fed [name] by [user.name] ([user.ckey]). Reagents: [contained]"
+ user.attack_log += "\[[time_stamp()]\] Fed [name] by [target.name] ([target.ckey]). Reagents: [contained]"
msg_admin_attack("[key_name(user)] fed [key_name(target)] with [name]. Reagents: [contained] (INTENT: [uppertext(user.a_intent)]) (JMP)",ckey=key_name(user),ckey_target=key_name(target))
reagents.trans_to_mob(target, amount_per_transfer_from_this, CHEM_INGEST)
diff --git a/code/modules/reagents/reagent_containers/food/snacks.dm b/code/modules/reagents/reagent_containers/food/snacks.dm
index e0f232a83f4..fc6d5e4013c 100644
--- a/code/modules/reagents/reagent_containers/food/snacks.dm
+++ b/code/modules/reagents/reagent_containers/food/snacks.dm
@@ -130,8 +130,8 @@
other_feed_message_finish(user,target)
var/contained = reagentlist()
- target.attack_log += text("\[[time_stamp()]\] Has been fed [name] by [key_name(user)] Reagents: [contained]")
- user.attack_log += text("\[[time_stamp()]\] Fed [name] to [key_name(target)] Reagents: [contained]")
+ target.attack_log += "\[[time_stamp()]\] Has been fed [name] by [key_name(user)] Reagents: [contained]"
+ user.attack_log += "\[[time_stamp()]\] Fed [name] to [key_name(target)] Reagents: [contained]"
msg_admin_attack("[key_name_admin(user)] fed [key_name_admin(target)] with [name] Reagents: [contained] (INTENT: [uppertext(user.a_intent)]) (JMP)",ckey=key_name(user),ckey_target=key_name(target))
reagents.trans_to_mob(target, min(reagents.total_volume,bitesize), CHEM_INGEST)
diff --git a/code/modules/reagents/reagent_containers/pill.dm b/code/modules/reagents/reagent_containers/pill.dm
index 2b66e1cde68..d95286d6ce0 100644
--- a/code/modules/reagents/reagent_containers/pill.dm
+++ b/code/modules/reagents/reagent_containers/pill.dm
@@ -49,8 +49,8 @@
user.visible_message(SPAN_WARNING("[user] forces [M] to swallow \the [src]."))
var/contained = reagentlist()
- M.attack_log += text("\[[time_stamp()]\] Has been fed [name] by [key_name(user)] Reagents: [contained]")
- user.attack_log += text("\[[time_stamp()]\] Fed [name] to [key_name(M)] Reagents: [contained]")
+ M.attack_log +="\[[time_stamp()]\] Has been fed [name] by [key_name(user)] Reagents: [contained]"
+ user.attack_log += "\[[time_stamp()]\] Fed [name] to [key_name(M)] Reagents: [contained]"
msg_admin_attack("[key_name_admin(user)] fed [key_name_admin(M)] with [name] Reagents: [contained] (INTENT: [uppertext(user.a_intent)]) (JMP)",ckey=key_name(user),ckey_target=key_name(M))
if(reagents.total_volume)
@@ -68,7 +68,7 @@
return
to_chat(user, SPAN_NOTICE("You dissolve \the [src] in [target]."))
- user.attack_log += text("\[[time_stamp()]\] Spiked \a [target] with a pill. Reagents: [reagentlist()]")
+ user.attack_log += "\[[time_stamp()]\] Spiked \a [target] with a pill. Reagents: [reagentlist()]"
msg_admin_attack("[user.name] ([user.ckey]) spiked \a [target] with a pill. Reagents: [reagentlist()] (INTENT: [uppertext(user.a_intent)]) (JMP)",ckey=key_name(user),ckey_target=key_name(target))
reagents.trans_to(target, reagents.total_volume)
diff --git a/code/modules/recycling/disposal.dm b/code/modules/recycling/disposal.dm
index ce547415b54..da124ec062a 100644
--- a/code/modules/recycling/disposal.dm
+++ b/code/modules/recycling/disposal.dm
@@ -229,8 +229,8 @@
for (var/mob/C in viewers(src))
C.show_message(SPAN_WARNING("[GM.name] has been placed in the [src] by [user]."), 3)
qdel(G)
- usr.attack_log += text("\[[time_stamp()]\] Has placed [GM.name] ([GM.ckey]) in disposals.")
- GM.attack_log += text("\[[time_stamp()]\] Has been placed in disposals by [usr.name] ([usr.ckey])")
+ usr.attack_log += "\[[time_stamp()]\] Has placed [GM.name] ([GM.ckey]) in disposals."
+ GM.attack_log += "\[[time_stamp()]\] Has been placed in disposals by [usr.name] ([usr.ckey])"
msg_admin_attack("[key_name_admin(usr)] placed [key_name_admin(GM)] in a disposals unit. (JMP)",ckey=key_name(usr),ckey_target=key_name(GM))
return TRUE
if(!attacking_item.dropsafety())
@@ -287,8 +287,8 @@
msg = "[user.name] stuffs [target.name] into the [src]!"
to_chat(user, "You stuff [target.name] into the [src]!")
- user.attack_log += text("\[[time_stamp()]\] Has placed [target.name] ([target.ckey]) in disposals.")
- target.attack_log += text("\[[time_stamp()]\] Has been placed in disposals by [user.name] ([user.ckey])")
+ user.attack_log += "\[[time_stamp()]\] Has placed [target.name] ([target.ckey]) in disposals."
+ target.attack_log += "\[[time_stamp()]\] Has been placed in disposals by [user.name] ([user.ckey])"
msg_admin_attack("[user] ([user.ckey]) placed [target] ([target.ckey]) in a disposals unit. (JMP)",ckey=key_name(user),ckey_target=key_name(target))
else
return
diff --git a/code/modules/spell_system/spells/spell_code.dm b/code/modules/spell_system/spells/spell_code.dm
index 53b35069f46..6094a0c79eb 100644
--- a/code/modules/spell_system/spells/spell_code.dm
+++ b/code/modules/spell_system/spells/spell_code.dm
@@ -54,7 +54,7 @@ var/list/spells = typesof(/spell) //needed for the badmin verb for now
var/hud_state = "" //name of the icon used in generating the spell hud object
var/override_base = ""
- var/obj/screen/connected_button
+ var/atom/movable/screen/connected_button
///////////////////////
///SETUP AND PROCESS///
@@ -76,7 +76,7 @@ var/list/spells = typesof(/spell) //needed for the badmin verb for now
silenced = max(0,silenced-1)
sleep(1)
if(connected_button)
- var/obj/screen/spell/S = connected_button
+ var/atom/movable/screen/spell/S = connected_button
if(!istype(S))
return
S.update_charge(1)
@@ -103,7 +103,7 @@ var/list/spells = typesof(/spell) //needed for the badmin verb for now
take_charge(user, skipcharge)
before_cast(targets) //applies any overlays and effects
- user.attack_log += text("\[[time_stamp()]\] [user.real_name] ([user.ckey]) cast the spell [name].")
+ user.attack_log += "\[[time_stamp()]\] [user.real_name] ([user.ckey]) cast the spell [name]."
if(prob(critfailchance))
critfail(targets, user)
else
@@ -172,7 +172,7 @@ var/list/spells = typesof(/spell) //needed for the badmin verb for now
for(var/atom/target in targets)
var/location = get_turf(target)
if(istype(target,/mob/living) && message)
- to_chat(target, text("[message]"))
+ to_chat(target, "[message]")
if(sparks_spread)
spark(location, sparks_amt)
if(smoke_spread)
diff --git a/code/modules/spell_system/spells/spells.dm b/code/modules/spell_system/spells/spells.dm
index 8a514ca32fe..ba5b0d3bc04 100644
--- a/code/modules/spell_system/spells/spells.dm
+++ b/code/modules/spell_system/spells/spells.dm
@@ -6,13 +6,13 @@
for(var/spell/spell_to_add in H.mind.learned_spells)
H.add_spell(spell_to_add)
-/mob/proc/add_spell(var/spell/spell_to_add, var/spell_base = "wiz_spell_ready", var/master_type = /obj/screen/movable/spell_master)
+/mob/proc/add_spell(var/spell/spell_to_add, var/spell_base = "wiz_spell_ready", var/master_type = /atom/movable/screen/movable/spell_master)
usr = src // whoever made screen objects is an asshole and forced me to do this, i regret absolutely nothing
if(!spell_masters)
spell_masters = list()
if(spell_masters.len)
- for(var/obj/screen/movable/spell_master/spell_master in spell_masters)
+ for(var/atom/movable/screen/movable/spell_master/spell_master in spell_masters)
if(spell_master.type == master_type)
LAZYADD(spell_list, spell_to_add)
spell_master.add_spell(spell_to_add)
@@ -20,7 +20,7 @@
LAZYDISTINCTADD(mind.learned_spells, spell_to_add)
return TRUE
- var/obj/screen/movable/spell_master/new_spell_master = new master_type //we're here because either we didn't find our type, or we have no spell masters to attach to
+ var/atom/movable/screen/movable/spell_master/new_spell_master = new master_type //we're here because either we didn't find our type, or we have no spell masters to attach to
if(client)
src.client.screen += new_spell_master
new_spell_master.spell_holder = src
@@ -46,7 +46,7 @@
if(mind && mind.learned_spells)
mind.learned_spells.Remove(spell_to_remove)
LAZYREMOVE(spell_list, spell_to_remove)
- for(var/obj/screen/movable/spell_master/spell_master in spell_masters)
+ for(var/atom/movable/screen/movable/spell_master/spell_master in spell_masters)
spell_master.remove_spell(spell_to_remove)
return 1
@@ -57,5 +57,5 @@
if(!spell_masters || !spell_masters.len)
return
- for(var/obj/screen/movable/spell_master/spell_master in spell_masters)
+ for(var/atom/movable/screen/movable/spell_master/spell_master in spell_masters)
spell_master.silence_spells(amount)
diff --git a/code/modules/synthesized_instruments/real_instruments.dm b/code/modules/synthesized_instruments/real_instruments.dm
index 625fb3e8ebb..9beebd42987 100644
--- a/code/modules/synthesized_instruments/real_instruments.dm
+++ b/code/modules/synthesized_instruments/real_instruments.dm
@@ -44,7 +44,7 @@
if ("import")
var/t = ""
do
- t = html_encode(input(usr, "Please paste the entire song, formatted:", text("[]", owner.name), t) as message)
+ t = html_encode(input(usr, "Please paste the entire song, formatted:", "[owner.name]", t) as message)
if(!CanInteractWith(usr, owner, GLOB.physical_state))
return
diff --git a/code/modules/tooltip/tooltip.dm b/code/modules/tooltip/tooltip.dm
index ccc866b11de..cdf1f7298d5 100644
--- a/code/modules/tooltip/tooltip.dm
+++ b/code/modules/tooltip/tooltip.dm
@@ -14,7 +14,7 @@ Configuration:
Usage:
- Define mouse event procs on your (probably HUD) object and simply call the show and hide procs respectively:
-/obj/screen/hud
+/atom/movable/screen/hud
MouseEntered(location, control, params)
usr.client.tooltip.show(params, title = src.name, content = src.desc)
MouseExited()
diff --git a/code/modules/vehicles/animal.dm b/code/modules/vehicles/animal.dm
index f582c9d0921..36688404d65 100644
--- a/code/modules/vehicles/animal.dm
+++ b/code/modules/vehicles/animal.dm
@@ -157,7 +157,7 @@
if(ishuman(AM))
var/mob/living/carbon/human/H = AM
M.attack_log += "\[[time_stamp()]\] Was rammed by [src]"
- M.attack_log += text("\[[time_stamp()]\] rammed[M.name] ([M.ckey]) rammed [H.name] ([H.ckey]) with the [src].")
+ M.attack_log += "\[[time_stamp()]\] rammed[M.name] ([M.ckey]) rammed [H.name] ([H.ckey]) with the [src]."
msg_admin_attack("[src] crashed into [key_name(H)] at (JMP)" )
src.visible_message(SPAN_DANGER("\The [src] smashes into \the [H]!"))
playsound(src, /singleton/sound_category/swing_hit_sound, 50, 1)
@@ -258,7 +258,7 @@
M = buckled
if(M.m_intent == M_RUN)
M.attack_log += "\[[time_stamp()]\] Was rammed by [src]"
- M.attack_log += text("\[[time_stamp()]\] rammed[M.name] ([M.ckey]) rammed [H.name] ([H.ckey]) with the [src].")
+ M.attack_log += "\[[time_stamp()]\] rammed[M.name] ([M.ckey]) rammed [H.name] ([H.ckey]) with the [src]."
msg_admin_attack("[src] crashed into [key_name(H)] at (JMP)" )
src.visible_message(SPAN_DANGER("\The [src] charges into \the [H]!"))
playsound(src, 'sound/weapons/pierce.ogg', 50, 1)
@@ -299,7 +299,7 @@
if(ishuman(AM))
var/mob/living/carbon/human/H = AM
M.attack_log += "\[[time_stamp()]\] Was rammed by [src]"
- M.attack_log += text("\[[time_stamp()]\] rammed[M.name] ([M.ckey]) rammed [H.name] ([H.ckey]) with the [src].")
+ M.attack_log += "\[[time_stamp()]\] rammed[M.name] ([M.ckey]) rammed [H.name] ([H.ckey]) with the [src]."
msg_admin_attack("[src] crashed into [key_name(H)] at (JMP)" )
src.visible_message(SPAN_DANGER("\The [src] charges into \the [H]!"))
playsound(src, 'sound/weapons/pierce.ogg', 50, 1)
diff --git a/code/modules/vehicles/bike.dm b/code/modules/vehicles/bike.dm
index 4dfa1ed0317..75e1b727158 100644
--- a/code/modules/vehicles/bike.dm
+++ b/code/modules/vehicles/bike.dm
@@ -303,7 +303,7 @@
if(ishuman(AM))
var/mob/living/carbon/human/H = AM
M.attack_log += "\[[time_stamp()]\] Was rammed by [src]"
- M.attack_log += text("\[[time_stamp()]\] rammed[M.name] ([M.ckey]) rammed [H.name] ([H.ckey]) with the [src].")
+ M.attack_log += "\[[time_stamp()]\] rammed[M.name] ([M.ckey]) rammed [H.name] ([H.ckey]) with the [src]."
msg_admin_attack("[src] crashed into [key_name(H)] at (JMP)" )
src.visible_message(SPAN_DANGER("\The [src] smashes into \the [H]!"))
playsound(src, /singleton/sound_category/swing_hit_sound, 50, 1)
@@ -379,7 +379,7 @@
M = buckled
if(M.m_intent == M_RUN)
M.attack_log += "\[[time_stamp()]\] Was rammed by [src]"
- M.attack_log += text("\[[time_stamp()]\] rammed[M.name] ([M.ckey]) rammed [H.name] ([H.ckey]) with the [src].")
+ M.attack_log += "\[[time_stamp()]\] rammed[M.name] ([M.ckey]) rammed [H.name] ([H.ckey]) with the [src]."
msg_admin_attack("[src] crashed into [key_name(H)] at (JMP)" )
src.visible_message(SPAN_DANGER("\The [src] runs over \the [H]!"))
H.apply_damage(30, DAMAGE_BRUTE)
diff --git a/code/modules/vehicles/cargo_train.dm b/code/modules/vehicles/cargo_train.dm
index fe5d7e4d80f..cd4b6c6c550 100644
--- a/code/modules/vehicles/cargo_train.dm
+++ b/code/modules/vehicles/cargo_train.dm
@@ -216,7 +216,7 @@
/obj/vehicle/train/cargo/trolley/RunOver(var/mob/living/carbon/human/H)
..()
- attack_log += text("\[[time_stamp()]\] ran over [H.name] ([H.ckey])")
+ attack_log += "\[[time_stamp()]\] ran over [H.name] ([H.ckey])"
/obj/vehicle/train/cargo/engine/RunOver(var/mob/living/carbon/human/H)
..()
@@ -225,10 +225,10 @@
var/mob/living/carbon/human/D = load
to_chat(D, SPAN_DANGER("You ran over [H]!"))
visible_message(SPAN_DANGER("\The [src] ran over [H]!"))
- attack_log += text("\[[time_stamp()]\] ran over [H.name] ([H.ckey]), driven by [D.name] ([D.ckey])")
+ attack_log += "\[[time_stamp()]\] ran over [H.name] ([H.ckey]), driven by [D.name] ([D.ckey])"
msg_admin_attack("[D.name] ([D.ckey]) ran over [H.name] ([H.ckey]). (JMP)",ckey=key_name(D),ckey_target=key_name(H))
else
- attack_log += text("\[[time_stamp()]\] ran over [H.name] ([H.ckey])")
+ attack_log += "\[[time_stamp()]\] ran over [H.name] ([H.ckey])"
//-------------------------------------------
diff --git a/code/modules/vehicles/vehicle.dm b/code/modules/vehicles/vehicle.dm
index 71a97240e05..259cf60c691 100644
--- a/code/modules/vehicles/vehicle.dm
+++ b/code/modules/vehicles/vehicle.dm
@@ -419,7 +419,7 @@
if(!damage)
return
visible_message(SPAN_DANGER("[user] [attack_message] the [src]!"))
- user.attack_log += text("\[[time_stamp()]\] attacked [src.name]")
+ user.attack_log += "\[[time_stamp()]\] attacked [src.name]"
user.do_attack_animation(src)
src.health -= damage
if(prob(10))
diff --git a/code/unit_tests/create_and_destroy.dm b/code/unit_tests/create_and_destroy.dm
index 84430f265f5..1b04e4fca50 100644
--- a/code/unit_tests/create_and_destroy.dm
+++ b/code/unit_tests/create_and_destroy.dm
@@ -48,7 +48,7 @@ GLOBAL_VAR_INIT(running_create_and_destroy, FALSE)
/obj/machinery/ai_powersupply,
// Requires a player
- /obj/screen/new_player/selection/join_game,
+ /atom/movable/screen/new_player/selection/join_game,
// Requires to make a sound based on client pref in the announcement
/obj/effect/portal/revenant,
@@ -90,8 +90,8 @@ GLOBAL_VAR_INIT(running_create_and_destroy, FALSE)
/obj/spellbutton,
- /obj/screen/click_catcher,
- /obj/screen/new_player/selection/polls,
+ /atom/movable/screen/click_catcher,
+ /atom/movable/screen/new_player/selection/polls,
//Temporary exclusion while matt fixes it
/obj/projectile/beam/psi_lightning/wide,
@@ -138,7 +138,7 @@ GLOBAL_VAR_INIT(running_create_and_destroy, FALSE)
ignore += typesof(/obj/machinery/gravity_generator/main/station)
// Requires an owner's client
- ignore += typesof(/obj/screen/psi)
+ ignore += typesof(/atom/movable/screen/psi)
// Requires material on creation
ignore += typesof(/obj/effect/overlay/burnt_wall)
@@ -161,7 +161,7 @@ GLOBAL_VAR_INIT(running_create_and_destroy, FALSE)
ignore += typesof(/turf/simulated/floor/beach/water)
ignore += typesof(/mob/living/heavy_vehicle)
ignore += typesof(/obj/singularity/narsie)
- ignore += typesof(/obj/screen/ability)
+ ignore += typesof(/atom/movable/screen/ability)
ignore += typesof(/obj/effect/bmode)
// Requires something in icon update or runtimes
diff --git a/html/changelogs/Ben10083 - Orion Ship.yml b/html/changelogs/Ben10083 - Orion Ship.yml
new file mode 100644
index 00000000000..4f3d7cd9522
--- /dev/null
+++ b/html/changelogs/Ben10083 - Orion Ship.yml
@@ -0,0 +1,58 @@
+################################
+# Example Changelog File
+#
+# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb.
+#
+# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.)
+# When it is, any changes listed below will disappear.
+#
+# Valid Prefixes:
+# bugfix
+# - (fixes bugs)
+# wip
+# - (work in progress)
+# qol
+# - (quality of life)
+# soundadd
+# - (adds a sound)
+# sounddel
+# - (removes a sound)
+# rscadd
+# - (adds a feature)
+# rscdel
+# - (removes a feature)
+# imageadd
+# - (adds an image or sprite)
+# imagedel
+# - (removes an image or sprite)
+# spellcheck
+# - (fixes spelling or grammar)
+# experiment
+# - (experimental change)
+# balance
+# - (balance changes)
+# code_imp
+# - (misc internal code change)
+# refactor
+# - (refactors code)
+# config
+# - (makes a change to the config files)
+# admin
+# - (makes changes to administrator tools)
+# server
+# - (miscellaneous changes to server)
+#################################
+
+# Your name.
+author: Ben10083
+
+# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again.
+delete-after: True
+
+# Any changes you've made. See valid prefix list above.
+# INDENT WITH TWO SPACES. NOT TABS. SPACES.
+# SCREW THIS UP AND IT WON'T WORK.
+# Also, this gets changed to [] after reading. Just remove the brackets when you add new shit.
+# Please surround your changes in double quotes ("). It works without them, but if you use certain characters it screws up compiling. The quotes will not show up in the changelog.
+changes:
+ - bugfix: "Orion Express ship minor mapping fixes."
diff --git a/html/changelogs/Ben10083 - TCAF Hardsuit.yml b/html/changelogs/Ben10083 - TCAF Hardsuit.yml
new file mode 100644
index 00000000000..9161e7b1e45
--- /dev/null
+++ b/html/changelogs/Ben10083 - TCAF Hardsuit.yml
@@ -0,0 +1,58 @@
+################################
+# Example Changelog File
+#
+# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb.
+#
+# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.)
+# When it is, any changes listed below will disappear.
+#
+# Valid Prefixes:
+# bugfix
+# - (fixes bugs)
+# wip
+# - (work in progress)
+# qol
+# - (quality of life)
+# soundadd
+# - (adds a sound)
+# sounddel
+# - (removes a sound)
+# rscadd
+# - (adds a feature)
+# rscdel
+# - (removes a feature)
+# imageadd
+# - (adds an image or sprite)
+# imagedel
+# - (removes an image or sprite)
+# spellcheck
+# - (fixes spelling or grammar)
+# experiment
+# - (experimental change)
+# balance
+# - (balance changes)
+# code_imp
+# - (misc internal code change)
+# refactor
+# - (refactors code)
+# config
+# - (makes a change to the config files)
+# admin
+# - (makes changes to administrator tools)
+# server
+# - (miscellaneous changes to server)
+#################################
+
+# Your name.
+author: Ben10083
+
+# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again.
+delete-after: True
+
+# Any changes you've made. See valid prefix list above.
+# INDENT WITH TWO SPACES. NOT TABS. SPACES.
+# SCREW THIS UP AND IT WON'T WORK.
+# Also, this gets changed to [] after reading. Just remove the brackets when you add new shit.
+# Please surround your changes in double quotes ("). It works without them, but if you use certain characters it screws up compiling. The quotes will not show up in the changelog.
+changes:
+ - rscadd: "New TCAF Hardsuit 'Legionnaire' (currently only for humans/humanoid ipcs). Thanks to NobleRow for the Sprites!"
diff --git a/html/changelogs/CometBlaze-saf_auxiliary_drip.yml b/html/changelogs/CometBlaze-saf_auxiliary_drip.yml
new file mode 100644
index 00000000000..1225d2d5d5b
--- /dev/null
+++ b/html/changelogs/CometBlaze-saf_auxiliary_drip.yml
@@ -0,0 +1,58 @@
+################################
+# Example Changelog File
+#
+# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb.
+#
+# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.)
+# When it is, any changes listed below will disappear.
+#
+# Valid Prefixes:
+# bugfix
+# - (fixes bugs)
+# wip
+# - (work in progress)
+# qol
+# - (quality of life)
+# soundadd
+# - (adds a sound)
+# sounddel
+# - (removes a sound)
+# rscadd
+# - (adds a feature)
+# rscdel
+# - (removes a feature)
+# imageadd
+# - (adds an image or sprite)
+# imagedel
+# - (removes an image or sprite)
+# spellcheck
+# - (fixes spelling or grammar)
+# experiment
+# - (experimental change)
+# balance
+# - (balance changes)
+# code_imp
+# - (misc internal code change)
+# refactor
+# - (refactors code)
+# config
+# - (makes a change to the config files)
+# admin
+# - (makes changes to administrator tools)
+# server
+# - (miscellaneous changes to server)
+#################################
+
+# Your name.
+author: CometBlaze
+
+# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again.
+delete-after: True
+
+# Any changes you've made. See valid prefix list above.
+# INDENT WITH TWO SPACES. NOT TABS. SPACES.
+# SCREW THIS UP AND IT WON'T WORK.
+# Also, this gets changed to [] after reading. Just remove the brackets when you add new shit.
+# Please surround your changes in double quotes ("). It works without them, but if you use certain characters it screws up compiling. The quotes will not show up in the changelog.
+changes:
+ - imageadd: "Resprites the solarian IPC fatigues to make them lore accurate"
diff --git a/html/changelogs/GeneralCamo - Screen Refactor.yml b/html/changelogs/GeneralCamo - Screen Refactor.yml
new file mode 100644
index 00000000000..842cc1f1e83
--- /dev/null
+++ b/html/changelogs/GeneralCamo - Screen Refactor.yml
@@ -0,0 +1,58 @@
+################################
+# Example Changelog File
+#
+# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb.
+#
+# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.)
+# When it is, any changes listed below will disappear.
+#
+# Valid Prefixes:
+# bugfix
+# - (fixes bugs)
+# wip
+# - (work in progress)
+# qol
+# - (quality of life)
+# soundadd
+# - (adds a sound)
+# sounddel
+# - (removes a sound)
+# rscadd
+# - (adds a feature)
+# rscdel
+# - (removes a feature)
+# imageadd
+# - (adds an image or sprite)
+# imagedel
+# - (removes an image or sprite)
+# spellcheck
+# - (fixes spelling or grammar)
+# experiment
+# - (experimental change)
+# balance
+# - (balance changes)
+# code_imp
+# - (misc internal code change)
+# refactor
+# - (refactors code)
+# config
+# - (makes a change to the config files)
+# admin
+# - (makes changes to administrator tools)
+# server
+# - (miscellaneous changes to server)
+#################################
+
+# Your name.
+author: GeneralCamo
+
+# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again.
+delete-after: True
+
+# Any changes you've made. See valid prefix list above.
+# INDENT WITH TWO SPACES. NOT TABS. SPACES.
+# SCREW THIS UP AND IT WON'T WORK.
+# Also, this gets changed to [] after reading. Just remove the brackets when you add new shit.
+# Please surround your changes in double quotes ("). It works without them, but if you use certain characters it screws up compiling. The quotes will not show up in the changelog.
+changes:
+ - rscadd: "Refactor /obj/screen to /atom/movable/screen."
diff --git a/html/changelogs/ShimmerIsTaken - Sparta1984.yml b/html/changelogs/ShimmerIsTaken - Sparta1984.yml
new file mode 100644
index 00000000000..1ff979921fc
--- /dev/null
+++ b/html/changelogs/ShimmerIsTaken - Sparta1984.yml
@@ -0,0 +1,58 @@
+################################
+# Example Changelog File
+#
+# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb.
+#
+# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.)
+# When it is, any changes listed below will disappear.
+#
+# Valid Prefixes:
+# bugfix
+# - (fixes bugs)
+# wip
+# - (work in progress)
+# qol
+# - (quality of life)
+# soundadd
+# - (adds a sound)
+# sounddel
+# - (removes a sound)
+# rscadd
+# - (adds a feature)
+# rscdel
+# - (removes a feature)
+# imageadd
+# - (adds an image or sprite)
+# imagedel
+# - (removes an image or sprite)
+# spellcheck
+# - (fixes spelling or grammar)
+# experiment
+# - (experimental change)
+# balance
+# - (balance changes)
+# code_imp
+# - (misc internal code change)
+# refactor
+# - (refactors code)
+# config
+# - (makes a change to the config files)
+# admin
+# - (makes changes to administrator tools)
+# server
+# - (miscellaneous changes to server)
+#################################
+
+# Your name.
+author: ShimmerIsTaken
+
+# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again.
+delete-after: True
+
+# Any changes you've made. See valid prefix list above.
+# INDENT WITH TWO SPACES. NOT TABS. SPACES.
+# SCREW THIS UP AND IT WON'T WORK.
+# Also, this gets changed to [] after reading. Just remove the brackets when you add new shit.
+# Please surround your changes in double quotes ("). It works without them, but if you use certain characters it screws up compiling. The quotes will not show up in the changelog.
+changes:
+ - bugfix: "Removes Sparta from Dominian origins, given it was removed from lore."
diff --git a/html/changelogs/SimpleMaroon-hivenetreceivertwitch.yml b/html/changelogs/SimpleMaroon-hivenetreceivertwitch.yml
new file mode 100644
index 00000000000..6f5ec01f629
--- /dev/null
+++ b/html/changelogs/SimpleMaroon-hivenetreceivertwitch.yml
@@ -0,0 +1,58 @@
+################################
+# Example Changelog File
+#
+# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb.
+#
+# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.)
+# When it is, any changes listed below will disappear.
+#
+# Valid Prefixes:
+# bugfix
+# - (fixes bugs)
+# wip
+# - (work in progress)
+# qol
+# - (quality of life)
+# soundadd
+# - (adds a sound)
+# sounddel
+# - (removes a sound)
+# rscadd
+# - (adds a feature)
+# rscdel
+# - (removes a feature)
+# imageadd
+# - (adds an image or sprite)
+# imagedel
+# - (removes an image or sprite)
+# spellcheck
+# - (fixes spelling or grammar)
+# experiment
+# - (experimental change)
+# balance
+# - (balance changes)
+# code_imp
+# - (misc internal code change)
+# refactor
+# - (refactors code)
+# config
+# - (makes a change to the config files)
+# admin
+# - (makes changes to administrator tools)
+# server
+# - (miscellaneous changes to server)
+#################################
+
+# Your name.
+author: SimpleMaroon
+
+# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again.
+delete-after: True
+
+# Any changes you've made. See valid prefix list above.
+# INDENT WITH TWO SPACES. NOT TABS. SPACES.
+# SCREW THIS UP AND IT WON'T WORK.
+# Also, this gets changed to [] after reading. Just remove the brackets when you add new shit.
+# Please surround your changes in double quotes ("). It works without them, but if you use certain characters it screws up compiling. The quotes will not show up in the changelog.
+changes:
+ - rscadd: "Using the Ve'katak Hivenet receiver now produces a visible emote and the same sound as a Vaurca using the Hivenet."
diff --git a/html/changelogs/SimpleMaroon-starcapeloadout.yml b/html/changelogs/SimpleMaroon-starcapeloadout.yml
new file mode 100644
index 00000000000..17b0e44db8e
--- /dev/null
+++ b/html/changelogs/SimpleMaroon-starcapeloadout.yml
@@ -0,0 +1,58 @@
+################################
+# Example Changelog File
+#
+# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb.
+#
+# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.)
+# When it is, any changes listed below will disappear.
+#
+# Valid Prefixes:
+# bugfix
+# - (fixes bugs)
+# wip
+# - (work in progress)
+# qol
+# - (quality of life)
+# soundadd
+# - (adds a sound)
+# sounddel
+# - (removes a sound)
+# rscadd
+# - (adds a feature)
+# rscdel
+# - (removes a feature)
+# imageadd
+# - (adds an image or sprite)
+# imagedel
+# - (removes an image or sprite)
+# spellcheck
+# - (fixes spelling or grammar)
+# experiment
+# - (experimental change)
+# balance
+# - (balance changes)
+# code_imp
+# - (misc internal code change)
+# refactor
+# - (refactors code)
+# config
+# - (makes a change to the config files)
+# admin
+# - (makes changes to administrator tools)
+# server
+# - (miscellaneous changes to server)
+#################################
+
+# Your name.
+author: SimpleMaroon
+
+# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again.
+delete-after: True
+
+# Any changes you've made. See valid prefix list above.
+# INDENT WITH TWO SPACES. NOT TABS. SPACES.
+# SCREW THIS UP AND IT WON'T WORK.
+# Also, this gets changed to [] after reading. Just remove the brackets when you add new shit.
+# Please surround your changes in double quotes ("). It works without them, but if you use certain characters it screws up compiling. The quotes will not show up in the changelog.
+changes:
+ - rscadd: "Added the C'thur Ta star cape that was missing from the loadout."
diff --git a/html/changelogs/Snowy1237-HegemonyNavyShipFix.yml b/html/changelogs/Snowy1237-HegemonyNavyShipFix.yml
new file mode 100644
index 00000000000..bb294271a4e
--- /dev/null
+++ b/html/changelogs/Snowy1237-HegemonyNavyShipFix.yml
@@ -0,0 +1,58 @@
+################################
+# Example Changelog File
+#
+# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb.
+#
+# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.)
+# When it is, any changes listed below will disappear.
+#
+# Valid Prefixes:
+# bugfix
+# - (fixes bugs)
+# wip
+# - (work in progress)
+# qol
+# - (quality of life)
+# soundadd
+# - (adds a sound)
+# sounddel
+# - (removes a sound)
+# rscadd
+# - (adds a feature)
+# rscdel
+# - (removes a feature)
+# imageadd
+# - (adds an image or sprite)
+# imagedel
+# - (removes an image or sprite)
+# spellcheck
+# - (fixes spelling or grammar)
+# experiment
+# - (experimental change)
+# balance
+# - (balance changes)
+# code_imp
+# - (misc internal code change)
+# refactor
+# - (refactors code)
+# config
+# - (makes a change to the config files)
+# admin
+# - (makes changes to administrator tools)
+# server
+# - (miscellaneous changes to server)
+#################################
+
+# Your name.
+author: Snowy1237
+
+# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again.
+delete-after: True
+
+# Any changes you've made. See valid prefix list above.
+# INDENT WITH TWO SPACES. NOT TABS. SPACES.
+# SCREW THIS UP AND IT WON'T WORK.
+# Also, this gets changed to [] after reading. Just remove the brackets when you add new shit.
+# Please surround your changes in double quotes ("). It works without them, but if you use certain characters it screws up compiling. The quotes will not show up in the changelog.
+changes:
+ - bugfix: "Fixed the Hegemony Navy away ship being visible if no crew for it have spawned."
diff --git a/html/changelogs/fluffyghost-fixpaperstackremovalruntime.yml b/html/changelogs/fluffyghost-fixpaperstackremovalruntime.yml
new file mode 100644
index 00000000000..4567397af7f
--- /dev/null
+++ b/html/changelogs/fluffyghost-fixpaperstackremovalruntime.yml
@@ -0,0 +1,59 @@
+################################
+# Example Changelog File
+#
+# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb.
+#
+# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.)
+# When it is, any changes listed below will disappear.
+#
+# Valid Prefixes:
+# bugfix
+# - (fixes bugs)
+# wip
+# - (work in progress)
+# qol
+# - (quality of life)
+# soundadd
+# - (adds a sound)
+# sounddel
+# - (removes a sound)
+# rscadd
+# - (adds a feature)
+# rscdel
+# - (removes a feature)
+# imageadd
+# - (adds an image or sprite)
+# imagedel
+# - (removes an image or sprite)
+# spellcheck
+# - (fixes spelling or grammar)
+# experiment
+# - (experimental change)
+# balance
+# - (balance changes)
+# code_imp
+# - (misc internal code change)
+# refactor
+# - (refactors code)
+# config
+# - (makes a change to the config files)
+# admin
+# - (makes changes to administrator tools)
+# server
+# - (miscellaneous changes to server)
+#################################
+
+# Your name.
+author: FluffyGhost
+
+# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again.
+delete-after: True
+
+# Any changes you've made. See valid prefix list above.
+# INDENT WITH TWO SPACES. NOT TABS. SPACES.
+# SCREW THIS UP AND IT WON'T WORK.
+# Also, this gets changed to [] after reading. Just remove the brackets when you add new shit.
+# Please surround your changes in double quotes ("). It works without them, but if you use certain characters it screws up compiling. The quotes will not show up in the changelog.
+changes:
+ - bugfix: "Fixed a runtime on deletion of paper stacks due to erroneous conversion of datum bracket access."
+ - code_imp: "Some DMDocs."
diff --git a/html/changelogs/fluffyghost-fluffpapertweak.yml b/html/changelogs/fluffyghost-fluffpapertweak.yml
new file mode 100644
index 00000000000..ba12863b1d6
--- /dev/null
+++ b/html/changelogs/fluffyghost-fluffpapertweak.yml
@@ -0,0 +1,61 @@
+################################
+# Example Changelog File
+#
+# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb.
+#
+# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.)
+# When it is, any changes listed below will disappear.
+#
+# Valid Prefixes:
+# bugfix
+# - (fixes bugs)
+# wip
+# - (work in progress)
+# qol
+# - (quality of life)
+# soundadd
+# - (adds a sound)
+# sounddel
+# - (removes a sound)
+# rscadd
+# - (adds a feature)
+# rscdel
+# - (removes a feature)
+# imageadd
+# - (adds an image or sprite)
+# imagedel
+# - (removes an image or sprite)
+# spellcheck
+# - (fixes spelling or grammar)
+# experiment
+# - (experimental change)
+# balance
+# - (balance changes)
+# code_imp
+# - (misc internal code change)
+# refactor
+# - (refactors code)
+# config
+# - (makes a change to the config files)
+# admin
+# - (makes changes to administrator tools)
+# server
+# - (miscellaneous changes to server)
+#################################
+
+# Your name.
+author: FluffyGhost
+
+# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again.
+delete-after: True
+
+# Any changes you've made. See valid prefix list above.
+# INDENT WITH TWO SPACES. NOT TABS. SPACES.
+# SCREW THIS UP AND IT WON'T WORK.
+# Also, this gets changed to [] after reading. Just remove the brackets when you add new shit.
+# Please surround your changes in double quotes ("). It works without them, but if you use certain characters it screws up compiling. The quotes will not show up in the changelog.
+changes:
+ - rscadd: "Fluff papers now update the free space on the paper correctly on initialization."
+ - refactor: "Moved all the fluff paper in code, from the maps."
+ - rscadd: "Added maplinting for fluff papers."
+ - rscadd: "Added DMDoc for fluff papers."
diff --git a/html/changelogs/fluffyghost-nanoprinterpapers.yml b/html/changelogs/fluffyghost-nanoprinterpapers.yml
new file mode 100644
index 00000000000..e3d8d4b5a7e
--- /dev/null
+++ b/html/changelogs/fluffyghost-nanoprinterpapers.yml
@@ -0,0 +1,58 @@
+################################
+# Example Changelog File
+#
+# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb.
+#
+# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.)
+# When it is, any changes listed below will disappear.
+#
+# Valid Prefixes:
+# bugfix
+# - (fixes bugs)
+# wip
+# - (work in progress)
+# qol
+# - (quality of life)
+# soundadd
+# - (adds a sound)
+# sounddel
+# - (removes a sound)
+# rscadd
+# - (adds a feature)
+# rscdel
+# - (removes a feature)
+# imageadd
+# - (adds an image or sprite)
+# imagedel
+# - (removes an image or sprite)
+# spellcheck
+# - (fixes spelling or grammar)
+# experiment
+# - (experimental change)
+# balance
+# - (balance changes)
+# code_imp
+# - (misc internal code change)
+# refactor
+# - (refactors code)
+# config
+# - (makes a change to the config files)
+# admin
+# - (makes changes to administrator tools)
+# server
+# - (miscellaneous changes to server)
+#################################
+
+# Your name.
+author: FluffyGhost
+
+# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again.
+delete-after: True
+
+# Any changes you've made. See valid prefix list above.
+# INDENT WITH TWO SPACES. NOT TABS. SPACES.
+# SCREW THIS UP AND IT WON'T WORK.
+# Also, this gets changed to [] after reading. Just remove the brackets when you add new shit.
+# Please surround your changes in double quotes ("). It works without them, but if you use certain characters it screws up compiling. The quotes will not show up in the changelog.
+changes:
+ - qol: "Nano printers (computer component) will now refuse papers that are already written onto."
diff --git a/html/changelogs/fluffyghost-notextproc.yml b/html/changelogs/fluffyghost-notextproc.yml
new file mode 100644
index 00000000000..d89ccf1d0e1
--- /dev/null
+++ b/html/changelogs/fluffyghost-notextproc.yml
@@ -0,0 +1,59 @@
+################################
+# Example Changelog File
+#
+# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb.
+#
+# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.)
+# When it is, any changes listed below will disappear.
+#
+# Valid Prefixes:
+# bugfix
+# - (fixes bugs)
+# wip
+# - (work in progress)
+# qol
+# - (quality of life)
+# soundadd
+# - (adds a sound)
+# sounddel
+# - (removes a sound)
+# rscadd
+# - (adds a feature)
+# rscdel
+# - (removes a feature)
+# imageadd
+# - (adds an image or sprite)
+# imagedel
+# - (removes an image or sprite)
+# spellcheck
+# - (fixes spelling or grammar)
+# experiment
+# - (experimental change)
+# balance
+# - (balance changes)
+# code_imp
+# - (misc internal code change)
+# refactor
+# - (refactors code)
+# config
+# - (makes a change to the config files)
+# admin
+# - (makes changes to administrator tools)
+# server
+# - (miscellaneous changes to server)
+#################################
+
+# Your name.
+author: FluffyGhost
+
+# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again.
+delete-after: True
+
+# Any changes you've made. See valid prefix list above.
+# INDENT WITH TWO SPACES. NOT TABS. SPACES.
+# SCREW THIS UP AND IT WON'T WORK.
+# Also, this gets changed to [] after reading. Just remove the brackets when you add new shit.
+# Please surround your changes in double quotes ("). It works without them, but if you use certain characters it screws up compiling. The quotes will not show up in the changelog.
+changes:
+ - refactor: "Refactored all the builtin text procs to use string interpolation instead."
+ - server: "Added a linting for the above."
diff --git a/html/changelogs/geeves-ai_loadout_fixes.yml b/html/changelogs/geeves-ai_loadout_fixes.yml
new file mode 100644
index 00000000000..84a1a10ada4
--- /dev/null
+++ b/html/changelogs/geeves-ai_loadout_fixes.yml
@@ -0,0 +1,8 @@
+author: Geeves
+
+delete-after: True
+
+changes:
+ - rscadd: "AIs can now dress up their preview mob."
+ - rscadd: "Cyborgs now have the cardboard outfit in the loadout again. You can toggle it by deselecting the job suit and hat options."
+ - bugfix: "Job suits are now hidden correctly when the job suit is deselected."
diff --git a/html/changelogs/geeves-short_eal.yml b/html/changelogs/geeves-short_eal.yml
new file mode 100644
index 00000000000..74f49bcf94a
--- /dev/null
+++ b/html/changelogs/geeves-short_eal.yml
@@ -0,0 +1,7 @@
+author: Geeves
+
+delete-after: True
+
+changes:
+ - rscadd: "EAL is now much shorter to people who can't understand it, to represent how effective it is at compressing communicated datapackets."
+ - bugfix: "Fixed scrambled languages causing double spaces and uncapitalized words."
diff --git a/html/changelogs/hazelmouse-badlandsradio.yml b/html/changelogs/hazelmouse-badlandsradio.yml
new file mode 100644
index 00000000000..2d3a8daaa53
--- /dev/null
+++ b/html/changelogs/hazelmouse-badlandsradio.yml
@@ -0,0 +1,58 @@
+################################
+# Example Changelog File
+#
+# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb.
+#
+# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.)
+# When it is, any changes listed below will disappear.
+#
+# Valid Prefixes:
+# bugfix
+# - (fixes bugs)
+# wip
+# - (work in progress)
+# qol
+# - (quality of life)
+# soundadd
+# - (adds a sound)
+# sounddel
+# - (removes a sound)
+# rscadd
+# - (adds a feature)
+# rscdel
+# - (removes a feature)
+# imageadd
+# - (adds an image or sprite)
+# imagedel
+# - (removes an image or sprite)
+# spellcheck
+# - (fixes spelling or grammar)
+# experiment
+# - (experimental change)
+# balance
+# - (balance changes)
+# code_imp
+# - (misc internal code change)
+# refactor
+# - (refactors code)
+# config
+# - (makes a change to the config files)
+# admin
+# - (makes changes to administrator tools)
+# server
+# - (miscellaneous changes to server)
+#################################
+
+# Your name.
+author: hazelmouse
+
+# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again.
+delete-after: True
+
+# Any changes you've made. See valid prefix list above.
+# INDENT WITH TWO SPACES. NOT TABS. SPACES.
+# SCREW THIS UP AND IT WON'T WORK.
+# Also, this gets changed to [] after reading. Just remove the brackets when you add new shit.
+# Please surround your changes in double quotes ("). It works without them, but if you use certain characters it screws up compiling. The quotes will not show up in the changelog.
+changes:
+ - rscadd: "Added radio channels to the Badlands sector, accessible via an analog radio."
diff --git a/html/changelogs/hazelmouse-oops.yml b/html/changelogs/hazelmouse-oops.yml
new file mode 100644
index 00000000000..ee402263f30
--- /dev/null
+++ b/html/changelogs/hazelmouse-oops.yml
@@ -0,0 +1,58 @@
+################################
+# Example Changelog File
+#
+# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb.
+#
+# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.)
+# When it is, any changes listed below will disappear.
+#
+# Valid Prefixes:
+# bugfix
+# - (fixes bugs)
+# wip
+# - (work in progress)
+# qol
+# - (quality of life)
+# soundadd
+# - (adds a sound)
+# sounddel
+# - (removes a sound)
+# rscadd
+# - (adds a feature)
+# rscdel
+# - (removes a feature)
+# imageadd
+# - (adds an image or sprite)
+# imagedel
+# - (removes an image or sprite)
+# spellcheck
+# - (fixes spelling or grammar)
+# experiment
+# - (experimental change)
+# balance
+# - (balance changes)
+# code_imp
+# - (misc internal code change)
+# refactor
+# - (refactors code)
+# config
+# - (makes a change to the config files)
+# admin
+# - (makes changes to administrator tools)
+# server
+# - (miscellaneous changes to server)
+#################################
+
+# Your name.
+author: hazelmouse
+
+# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again.
+delete-after: True
+
+# Any changes you've made. See valid prefix list above.
+# INDENT WITH TWO SPACES. NOT TABS. SPACES.
+# SCREW THIS UP AND IT WON'T WORK.
+# Also, this gets changed to [] after reading. Just remove the brackets when you add new shit.
+# Please surround your changes in double quotes ("). It works without them, but if you use certain characters it screws up compiling. The quotes will not show up in the changelog.
+changes:
+ - bugfix: "Fixed a fault with the ore redemption consoles in mining that caused miners not to receive points for their ore."
diff --git a/html/changelogs/hazelmouse-securityofunusualspeed.yml b/html/changelogs/hazelmouse-securityofunusualspeed.yml
new file mode 100644
index 00000000000..b443ed44e76
--- /dev/null
+++ b/html/changelogs/hazelmouse-securityofunusualspeed.yml
@@ -0,0 +1,58 @@
+################################
+# Example Changelog File
+#
+# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb.
+#
+# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.)
+# When it is, any changes listed below will disappear.
+#
+# Valid Prefixes:
+# bugfix
+# - (fixes bugs)
+# wip
+# - (work in progress)
+# qol
+# - (quality of life)
+# soundadd
+# - (adds a sound)
+# sounddel
+# - (removes a sound)
+# rscadd
+# - (adds a feature)
+# rscdel
+# - (removes a feature)
+# imageadd
+# - (adds an image or sprite)
+# imagedel
+# - (removes an image or sprite)
+# spellcheck
+# - (fixes spelling or grammar)
+# experiment
+# - (experimental change)
+# balance
+# - (balance changes)
+# code_imp
+# - (misc internal code change)
+# refactor
+# - (refactors code)
+# config
+# - (makes a change to the config files)
+# admin
+# - (makes changes to administrator tools)
+# server
+# - (miscellaneous changes to server)
+#################################
+
+# Your name.
+author: hazelmouse
+
+# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again.
+delete-after: True
+
+# Any changes you've made. See valid prefix list above.
+# INDENT WITH TWO SPACES. NOT TABS. SPACES.
+# SCREW THIS UP AND IT WON'T WORK.
+# Also, this gets changed to [] after reading. Just remove the brackets when you add new shit.
+# Please surround your changes in double quotes ("). It works without them, but if you use certain characters it screws up compiling. The quotes will not show up in the changelog.
+changes:
+ - rscadd: "Zeng-Hu Mobility Frames can now be played in the security department."
diff --git a/html/changelogs/hazelmouse-weirdquirks.yml b/html/changelogs/hazelmouse-weirdquirks.yml
new file mode 100644
index 00000000000..17693bf63f4
--- /dev/null
+++ b/html/changelogs/hazelmouse-weirdquirks.yml
@@ -0,0 +1,58 @@
+################################
+# Example Changelog File
+#
+# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb.
+#
+# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.)
+# When it is, any changes listed below will disappear.
+#
+# Valid Prefixes:
+# bugfix
+# - (fixes bugs)
+# wip
+# - (work in progress)
+# qol
+# - (quality of life)
+# soundadd
+# - (adds a sound)
+# sounddel
+# - (removes a sound)
+# rscadd
+# - (adds a feature)
+# rscdel
+# - (removes a feature)
+# imageadd
+# - (adds an image or sprite)
+# imagedel
+# - (removes an image or sprite)
+# spellcheck
+# - (fixes spelling or grammar)
+# experiment
+# - (experimental change)
+# balance
+# - (balance changes)
+# code_imp
+# - (misc internal code change)
+# refactor
+# - (refactors code)
+# config
+# - (makes a change to the config files)
+# admin
+# - (makes changes to administrator tools)
+# server
+# - (miscellaneous changes to server)
+#################################
+
+# Your name.
+author: hazelmouse
+
+# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again.
+delete-after: True
+
+# Any changes you've made. See valid prefix list above.
+# INDENT WITH TWO SPACES. NOT TABS. SPACES.
+# SCREW THIS UP AND IT WON'T WORK.
+# Also, this gets changed to [] after reading. Just remove the brackets when you add new shit.
+# Please surround your changes in double quotes ("). It works without them, but if you use certain characters it screws up compiling. The quotes will not show up in the changelog.
+changes:
+ - qol: "Resolves a few odd quirks of the Horizon's map, like misaligned objects. Patches a few holes in custodial access to maintenance, including to bar maintenance and behind the main lift."
diff --git a/html/changelogs/hazelmouse-zavodshuttle.yml b/html/changelogs/hazelmouse-zavodshuttle.yml
new file mode 100644
index 00000000000..f86693f59aa
--- /dev/null
+++ b/html/changelogs/hazelmouse-zavodshuttle.yml
@@ -0,0 +1,58 @@
+################################
+# Example Changelog File
+#
+# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb.
+#
+# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.)
+# When it is, any changes listed below will disappear.
+#
+# Valid Prefixes:
+# bugfix
+# - (fixes bugs)
+# wip
+# - (work in progress)
+# qol
+# - (quality of life)
+# soundadd
+# - (adds a sound)
+# sounddel
+# - (removes a sound)
+# rscadd
+# - (adds a feature)
+# rscdel
+# - (removes a feature)
+# imageadd
+# - (adds an image or sprite)
+# imagedel
+# - (removes an image or sprite)
+# spellcheck
+# - (fixes spelling or grammar)
+# experiment
+# - (experimental change)
+# balance
+# - (balance changes)
+# code_imp
+# - (misc internal code change)
+# refactor
+# - (refactors code)
+# config
+# - (makes a change to the config files)
+# admin
+# - (makes changes to administrator tools)
+# server
+# - (miscellaneous changes to server)
+#################################
+
+# Your name.
+author: hazelmouse
+
+# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again.
+delete-after: True
+
+# Any changes you've made. See valid prefix list above.
+# INDENT WITH TWO SPACES. NOT TABS. SPACES.
+# SCREW THIS UP AND IT WON'T WORK.
+# Also, this gets changed to [] after reading. Just remove the brackets when you add new shit.
+# Please surround your changes in double quotes ("). It works without them, but if you use certain characters it screws up compiling. The quotes will not show up in the changelog.
+changes:
+ - bugfix: "The Zavodskoi Shuttle offsite now correctly spawns onto the overmap."
diff --git a/html/changelogs/morespecies-hazelmouse.yml b/html/changelogs/morespecies-hazelmouse.yml
new file mode 100644
index 00000000000..d6de89738c7
--- /dev/null
+++ b/html/changelogs/morespecies-hazelmouse.yml
@@ -0,0 +1,58 @@
+################################
+# Example Changelog File
+#
+# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb.
+#
+# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.)
+# When it is, any changes listed below will disappear.
+#
+# Valid Prefixes:
+# bugfix
+# - (fixes bugs)
+# wip
+# - (work in progress)
+# qol
+# - (quality of life)
+# soundadd
+# - (adds a sound)
+# sounddel
+# - (removes a sound)
+# rscadd
+# - (adds a feature)
+# rscdel
+# - (removes a feature)
+# imageadd
+# - (adds an image or sprite)
+# imagedel
+# - (removes an image or sprite)
+# spellcheck
+# - (fixes spelling or grammar)
+# experiment
+# - (experimental change)
+# balance
+# - (balance changes)
+# code_imp
+# - (misc internal code change)
+# refactor
+# - (refactors code)
+# config
+# - (makes a change to the config files)
+# admin
+# - (makes changes to administrator tools)
+# server
+# - (miscellaneous changes to server)
+#################################
+
+# Your name.
+author: hazelmouse
+
+# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again.
+delete-after: True
+
+# Any changes you've made. See valid prefix list above.
+# INDENT WITH TWO SPACES. NOT TABS. SPACES.
+# SCREW THIS UP AND IT WON'T WORK.
+# Also, this gets changed to [] after reading. Just remove the brackets when you add new shit.
+# Please surround your changes in double quotes ("). It works without them, but if you use certain characters it screws up compiling. The quotes will not show up in the changelog.
+changes:
+ - rscadd: "IPCs are now available to play in the Coalition Ranger, Orion Express, and Elyran Navy ghostroles."
diff --git a/icons/clothing/rig/tcaf_legionnaire.dmi b/icons/clothing/rig/tcaf_legionnaire.dmi
new file mode 100644
index 00000000000..5d104a10cb2
Binary files /dev/null and b/icons/clothing/rig/tcaf_legionnaire.dmi differ
diff --git a/icons/clothing/under/uniforms/sol_uniform.dmi b/icons/clothing/under/uniforms/sol_uniform.dmi
index ff01aef65e7..9ea0b1e5880 100644
Binary files a/icons/clothing/under/uniforms/sol_uniform.dmi and b/icons/clothing/under/uniforms/sol_uniform.dmi differ
diff --git a/icons/mob/light_overlays.dmi b/icons/mob/light_overlays.dmi
index 74fed7ec26b..2664230e684 100644
Binary files a/icons/mob/light_overlays.dmi and b/icons/mob/light_overlays.dmi differ
diff --git a/maps/away/away_site/zavod_shuttle_destroyed/zavod_shuttle_destroyed.dmm b/maps/away/away_site/zavod_shuttle_destroyed/zavod_shuttle_destroyed.dmm
index 76d05be1364..9370921e48c 100644
--- a/maps/away/away_site/zavod_shuttle_destroyed/zavod_shuttle_destroyed.dmm
+++ b/maps/away/away_site/zavod_shuttle_destroyed/zavod_shuttle_destroyed.dmm
@@ -1293,6 +1293,10 @@
},
/turf/template_noop,
/area/space)
+"NY" = (
+/obj/effect/overmap/visitable/zavod_shuttle_destroyed,
+/turf/simulated/floor/tiled/steel,
+/area/zavod_shuttle_destroyed)
"Oh" = (
/obj/structure/inflatable/door,
/obj/effect/decal/cleanable/floor_damage/rust,
@@ -25937,7 +25941,7 @@ bz
YW
Sn
nY
-Cj
+NY
Cj
nY
qG
diff --git a/maps/away/ships/coc/coc_ranger/coc_ship.dmm b/maps/away/ships/coc/coc_ranger/coc_ship.dmm
index 2e27c7b92e4..a42f8700ecd 100644
--- a/maps/away/ships/coc/coc_ranger/coc_ship.dmm
+++ b/maps/away/ships/coc/coc_ranger/coc_ship.dmm
@@ -1142,13 +1142,13 @@
/obj/item/tank/emergency_oxygen/double,
/obj/item/tank/emergency_oxygen/double,
/obj/item/tank/emergency_oxygen/double,
-/obj/item/tank/emergency_oxygen/double,
/obj/item/tank/jetpack/carbondioxide,
/obj/item/tank/jetpack/carbondioxide,
/obj/item/tank/jetpack/carbondioxide,
/obj/item/tank/jetpack/carbondioxide,
/obj/item/tank/jetpack/carbondioxide,
/obj/item/tank/jetpack/carbondioxide,
+/obj/item/device/suit_cooling_unit,
/turf/simulated/floor/tiled/dark/full,
/area/ship/ranger_corvette/voidsuits)
"eFH" = (
@@ -1453,7 +1453,9 @@
/area/ship/ranger_corvette/engine1)
"fJE" = (
/obj/effect/floor_decal/corner/red/diagonal,
-/obj/machinery/media/jukebox,
+/obj/machinery/media/jukebox{
+ anchored = 1
+ },
/obj/item/disk/tech_disk{
desc = "A disk for storing data. This one is labeled, Greatest Hits of 2450.";
name = "\improper Greatest Hits of The 2450's disk"
@@ -1472,6 +1474,8 @@
/obj/structure/cable/green{
icon_state = "0-4"
},
+/obj/machinery/recharge_station,
+/obj/effect/floor_decal/industrial/outline/yellow,
/turf/simulated/floor/tiled/dark,
/area/ship/ranger_corvette/foyer)
"fVq" = (
@@ -5128,8 +5132,8 @@
dir = 1
},
/obj/effect/ghostspawpoint{
- identifier = "ranger";
- name = "igs - ranger"
+ identifier = "ranger_synthetic";
+ name = "igs - ranger_synthetic"
},
/turf/simulated/floor/carpet,
/area/ship/ranger_corvette/foyer)
@@ -5141,7 +5145,12 @@
},
/obj/effect/floor_decal/corner_wide/green/full,
/obj/machinery/vending/wallmed1{
- pixel_y = 27
+ pixel_y = 27;
+ req_access = null
+ },
+/obj/item/stack/nanopaste{
+ pixel_x = 16;
+ pixel_y = 4
},
/turf/simulated/floor/tiled/white,
/area/ship/ranger_corvette/medbay)
diff --git a/maps/away/ships/coc/coc_ranger/coc_ship_ghostroles.dm b/maps/away/ships/coc/coc_ranger/coc_ship_ghostroles.dm
index c42b23fffa9..f796007cb8e 100644
--- a/maps/away/ships/coc/coc_ranger/coc_ship_ghostroles.dm
+++ b/maps/away/ships/coc/coc_ranger/coc_ship_ghostroles.dm
@@ -7,7 +7,7 @@
tags = list("External")
spawnpoints = list("ranger")
- max_count = 5
+ max_count = 4
outfit = /obj/outfit/admin/ranger
possible_species = list(SPECIES_HUMAN, SPECIES_HUMAN_OFFWORLD)
@@ -18,7 +18,6 @@
faction = "Frontier Protection Bureau"
respawn_flag = null
-
/obj/outfit/admin/ranger
name = "Coalition Ranger"
@@ -32,13 +31,36 @@
backpack_contents = list(/obj/item/storage/box/survival = 1)
+/obj/outfit/admin/ranger/get_id_access()
+ return list(ACCESS_EXTERNAL_AIRLOCKS)
+
+// Only one role, to represent that synthetics are uncommon in the Rangers. As of 13/09/2024, Tajara or Skrell being available here isn't wanted by lore.
+/datum/ghostspawner/human/ranger/ranger_synthetic
+ short_name = "ranger_synthetic"
+ name = "Coalition Ranger Synthetic"
+ desc = "You are a self-owned synthetic serving with the Frontier Protection Bureau, one of few in the human-dominated organization. Protect the interests of the Coalition of Colonies and your member-state."
+ uses_species_whitelist = TRUE
+
+ spawnpoints = list("ranger_synthetic")
+ max_count = 1
+
+ outfit = /obj/outfit/admin/ranger
+ possible_species = list(SPECIES_IPC, SPECIES_IPC_G1, SPECIES_IPC_G2, SPECIES_IPC_XION, SPECIES_IPC_ZENGHU, SPECIES_IPC_BISHOP, SPECIES_IPC_SHELL)
+ allow_appearance_change = APPEARANCE_PLASTICSURGERY
+
+ assigned_role = "Frontier Ranger"
+ special_role = "Frontier Ranger"
+
/obj/outfit/admin/ranger/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
. = ..()
if(isoffworlder(H))
H.equip_or_collect(new /obj/item/storage/pill_bottle/rmt, slot_in_backpack)
-
-/obj/outfit/admin/ranger/get_id_access()
- return list(ACCESS_EXTERNAL_AIRLOCKS)
+ if(isipc(H)) // All Ranger synthetics are tagged, self-owned, and have Coalition citizenship.
+ var/obj/item/organ/internal/ipc_tag/tag = H.internal_organs_by_name[BP_IPCTAG]
+ if(istype(tag))
+ tag.serial_number = uppertext(dd_limittext(md5(H.real_name), 12))
+ tag.ownership_info = IPC_OWNERSHIP_SELF
+ tag.citizenship_info = CITIZENSHIP_COALITION
/datum/ghostspawner/human/ranger/captain
short_name = "ranger_leader"
@@ -55,7 +77,6 @@
assigned_role = "Frontier Ranger Leader"
special_role = "Frontier Ranger Leader"
-
/obj/outfit/admin/ranger/captain
name = "Coalition Ranger Leader"
diff --git a/maps/away/ships/elyra/elyra_corvette/elyra_corvette.dmm b/maps/away/ships/elyra/elyra_corvette/elyra_corvette.dmm
index cbc7a25c8d5..3d55062c1e3 100644
--- a/maps/away/ships/elyra/elyra_corvette/elyra_corvette.dmm
+++ b/maps/away/ships/elyra/elyra_corvette/elyra_corvette.dmm
@@ -695,12 +695,22 @@
/turf/simulated/floor/lino,
/area/ship/elyran_corvette/messhall)
"di" = (
-/obj/structure/ship_weapon_dummy,
-/obj/effect/floor_decal/industrial/warning{
- dir = 4
- },
-/turf/simulated/floor/reinforced/airless,
-/area/ship/elyran_corvette/portwep)
+/obj/structure/table/rack,
+/obj/effect/floor_decal/industrial/outline/blue,
+/obj/item/tank/emergency_oxygen/double,
+/obj/item/tank/emergency_oxygen/double,
+/obj/item/tank/emergency_oxygen/double,
+/obj/item/tank/emergency_oxygen/double,
+/obj/item/tank/emergency_oxygen/double,
+/obj/item/tank/emergency_oxygen/double,
+/obj/item/device/suit_cooling_unit,
+/obj/item/device/suit_cooling_unit,
+/obj/item/device/suit_cooling_unit,
+/obj/item/device/suit_cooling_unit,
+/obj/item/device/suit_cooling_unit,
+/obj/item/device/suit_cooling_unit,
+/turf/simulated/floor/tiled/dark,
+/area/ship/elyran_corvette/briefing)
"dE" = (
/obj/machinery/atmospherics/unary/vent_pump/siphon/on/atmos{
dir = 4;
@@ -1221,6 +1231,8 @@
/obj/effect/floor_decal/corner_wide/green{
dir = 10
},
+/obj/item/stack/nanopaste,
+/obj/item/device/robotanalyzer,
/turf/simulated/floor/tiled/white,
/area/ship/elyran_corvette/medbay)
"gc" = (
@@ -3635,9 +3647,6 @@
/turf/simulated/floor/tiled/dark,
/area/ship/elyran_corvette/starboardwep)
"uv" = (
-/obj/structure/closet/crate/bin{
- name = "trashbin"
- },
/obj/effect/floor_decal/spline/plain/black{
dir = 4
},
@@ -3645,6 +3654,7 @@
dir = 5
},
/obj/effect/floor_decal/industrial/outline/yellow,
+/obj/machinery/recharge_station,
/turf/simulated/floor/tiled/dark/full,
/area/ship/elyran_corvette/porthallway)
"uz" = (
@@ -6088,9 +6098,6 @@
/turf/simulated/floor/carpet/rubber,
/area/ship/elyran_corvette/prayerhall)
"IM" = (
-/obj/structure/closet/crate/bin{
- name = "trashbin"
- },
/obj/effect/floor_decal/spline/plain/black{
dir = 8
},
@@ -6098,6 +6105,7 @@
dir = 5
},
/obj/effect/floor_decal/industrial/outline/yellow,
+/obj/machinery/recharge_station,
/turf/simulated/floor/tiled/dark/full,
/area/ship/elyran_corvette/starboardhallway)
"IO" = (
@@ -7269,12 +7277,6 @@
/obj/item/tank/jetpack/carbondioxide,
/obj/item/tank/jetpack/carbondioxide,
/obj/item/tank/jetpack/carbondioxide,
-/obj/item/tank/emergency_oxygen/double,
-/obj/item/tank/emergency_oxygen/double,
-/obj/item/tank/emergency_oxygen/double,
-/obj/item/tank/emergency_oxygen/double,
-/obj/item/tank/emergency_oxygen/double,
-/obj/item/tank/emergency_oxygen/double,
/turf/simulated/floor/tiled/dark/full,
/area/ship/elyran_corvette/briefing)
"OY" = (
@@ -46921,7 +46923,7 @@ gD
ve
Dn
GZ
-pu
+di
UP
Dn
ve
@@ -47195,7 +47197,7 @@ Fc
cV
fe
fe
-di
+La
La
Cs
bk
diff --git a/maps/away/ships/elyra/elyra_corvette/elyra_corvette_ghostroles.dm b/maps/away/ships/elyra/elyra_corvette/elyra_corvette_ghostroles.dm
index 3746c9844f9..863af4da901 100644
--- a/maps/away/ships/elyra/elyra_corvette/elyra_corvette_ghostroles.dm
+++ b/maps/away/ships/elyra/elyra_corvette/elyra_corvette_ghostroles.dm
@@ -10,7 +10,7 @@
max_count = 2
outfit = /obj/outfit/admin/elyran_navy_crewman
- possible_species = list(SPECIES_HUMAN)
+ possible_species = list(SPECIES_HUMAN, SPECIES_IPC, SPECIES_IPC_G1, SPECIES_IPC_G2, SPECIES_IPC_XION, SPECIES_IPC_ZENGHU, SPECIES_IPC_BISHOP, SPECIES_IPC_SHELL)
allow_appearance_change = APPEARANCE_PLASTICSURGERY
assigned_role = "Elyran Naval Infantryman"
@@ -37,6 +37,14 @@
/obj/outfit/admin/elyran_navy_crewman/get_id_access()
return list(ACCESS_ELYRAN_NAVAL_INFANTRY_SHIP, ACCESS_EXTERNAL_AIRLOCKS)
+/obj/outfit/admin/elyran_navy_crewman/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
+ . = ..()
+ if(isipc(H)) // All Elyran Navy synthetics are tagged, self-owned, and have Elyran citizenship.
+ var/obj/item/organ/internal/ipc_tag/tag = H.internal_organs_by_name[BP_IPCTAG]
+ if(istype(tag))
+ tag.serial_number = uppertext(dd_limittext(md5(H.real_name), 12))
+ tag.ownership_info = IPC_OWNERSHIP_SELF
+ tag.citizenship_info = CITIZENSHIP_ELYRA
// senior crewman
/datum/ghostspawner/human/elyran_navy_crewman/nco
diff --git a/maps/away/ships/freebooter/freebooter_ship_.dm b/maps/away/ships/freebooter/freebooter_ship_.dm
index 4999286ca7b..dd2259e30f4 100644
--- a/maps/away/ships/freebooter/freebooter_ship_.dm
+++ b/maps/away/ships/freebooter/freebooter_ship_.dm
@@ -107,3 +107,7 @@
fuel_consumption = 2
logging_home_tag = "nav_hangar_freebooter"
defer_initialisation = TRUE
+
+/obj/item/paper/fluff/freeboter_ship/captain_note
+ name = "old captain's note"
+ info = "Don't forget - all of the crew's clothing is now in the cargo pod!"
diff --git a/maps/away/ships/freebooter/freebooter_ship_submaps.dmm b/maps/away/ships/freebooter/freebooter_ship_submaps.dmm
index f3ba3e3fe4d..3e0f12d64bc 100644
--- a/maps/away/ships/freebooter/freebooter_ship_submaps.dmm
+++ b/maps/away/ships/freebooter/freebooter_ship_submaps.dmm
@@ -77,10 +77,7 @@
/area/ship/freebooter_ship/pod2)
"avE" = (
/obj/structure/closet/cabinet,
-/obj/item/paper{
- name = "old captain's note";
- info = "Don't forget - all of the crew's clothing is now in the cargo pod!"
- },
+/obj/item/paper/fluff/freeboter_ship/captain_note,
/turf/simulated/floor/tiled/dark,
/area/ship/freebooter_ship/pod1)
"awG" = (
@@ -440,10 +437,7 @@
name = "lattice"
},
/obj/structure/closet/cabinet,
-/obj/item/paper{
- name = "old captain's note";
- info = "Don't forget - all of the crew's clothing is now in the cargo pod!"
- },
+/obj/item/paper/fluff/freeboter_ship/captain_note,
/turf/simulated/floor,
/area/ship/freebooter_ship/pod6)
"bxM" = (
@@ -3021,10 +3015,7 @@
name = "lattice"
},
/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,
-/obj/item/paper{
- name = "old captain's note";
- info = "Don't forget - all of the crew's clothing is now in the cargo pod!"
- },
+/obj/item/paper/fluff/freeboter_ship/captain_note,
/turf/simulated/floor,
/area/ship/freebooter_ship/pod1)
"qEc" = (
diff --git a/maps/away/ships/hegemony/hegemony_corvette/hegemony_corvette.dm b/maps/away/ships/hegemony/hegemony_corvette/hegemony_corvette.dm
index 4138dbcecce..dc818b8339a 100644
--- a/maps/away/ships/hegemony/hegemony_corvette/hegemony_corvette.dm
+++ b/maps/away/ships/hegemony/hegemony_corvette/hegemony_corvette.dm
@@ -37,6 +37,7 @@
vessel_mass = 5000
fore_dir = SOUTH
vessel_size = SHIP_SIZE_SMALL
+ invisible_until_ghostrole_spawn = TRUE
initial_restricted_waypoints = list(
"Hegemony Shuttle" = list("nav_hegemony_corvette_shuttle")
)
diff --git a/maps/away/ships/orion/orion_express_ship.dmm b/maps/away/ships/orion/orion_express_ship.dmm
index acf422c88d0..643122d5dd9 100644
--- a/maps/away/ships/orion/orion_express_ship.dmm
+++ b/maps/away/ships/orion/orion_express_ship.dmm
@@ -5517,7 +5517,8 @@
icon_state = "bridge"
},
/obj/machinery/recharger/wallcharger{
- pixel_y = 24
+ pixel_y = 24;
+ pixel_x = -24
},
/obj/structure/cable/green{
icon_state = "0-4"
@@ -7489,7 +7490,9 @@
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 1
},
-/obj/machinery/atmospherics/pipe/simple/hidden/supply,
+/obj/machinery/atmospherics/pipe/manifold/hidden/supply{
+ dir = 4
+ },
/obj/structure/lattice/catwalk/indoor/grate,
/turf/simulated/floor,
/area/ship/orion/mainhall)
diff --git a/maps/away/ships/orion/orion_express_ship_ghostroles.dm b/maps/away/ships/orion/orion_express_ship_ghostroles.dm
index 2a8d5c1f79f..bfb2e73ee5a 100644
--- a/maps/away/ships/orion/orion_express_ship_ghostroles.dm
+++ b/maps/away/ships/orion/orion_express_ship_ghostroles.dm
@@ -10,7 +10,7 @@
max_count = 3
outfit = /obj/outfit/admin/orion_express_courier
- possible_species = list(SPECIES_HUMAN,SPECIES_HUMAN_OFFWORLD,SPECIES_SKRELL, SPECIES_SKRELL_AXIORI,SPECIES_TAJARA,SPECIES_TAJARA_MSAI,SPECIES_TAJARA_ZHAN,SPECIES_UNATHI,SPECIES_VAURCA_WARRIOR,SPECIES_VAURCA_WORKER, SPECIES_DIONA, SPECIES_DIONA_COEUS)
+ possible_species = list(SPECIES_HUMAN, SPECIES_HUMAN_OFFWORLD, SPECIES_SKRELL, SPECIES_SKRELL_AXIORI, SPECIES_TAJARA, SPECIES_TAJARA_MSAI, SPECIES_TAJARA_ZHAN, SPECIES_UNATHI, SPECIES_VAURCA_WARRIOR, SPECIES_VAURCA_WORKER, SPECIES_DIONA, SPECIES_DIONA_COEUS, SPECIES_IPC, SPECIES_IPC_G1, SPECIES_IPC_G2, SPECIES_IPC_XION, SPECIES_IPC_ZENGHU, SPECIES_IPC_BISHOP, SPECIES_IPC_SHELL)
allow_appearance_change = APPEARANCE_PLASTICSURGERY
assigned_role = "Orion Express Courier"
diff --git a/maps/event/idris_cruise/code/idris_cruise.dm b/maps/event/idris_cruise/code/idris_cruise.dm
index 0a42a378cd2..50bfadaac29 100644
--- a/maps/event/idris_cruise/code/idris_cruise.dm
+++ b/maps/event/idris_cruise/code/idris_cruise.dm
@@ -26,3 +26,15 @@
allowed_spawns = list("Living Quarters Lift", "Cryogenic Storage")
spawn_types = list(/datum/spawnpoint/living_quarters_lift, /datum/spawnpoint/cryo)
default_spawn = "Living Quarters Lift"
+
+/obj/item/paper/fluff/idris_cruise/vr_prep
+ name = "VR Introduction Slip"
+ info = "Welcome to your very own VR preparation room! You can customize your virtual reality avatar here. Once ready, head out to the Game Selection Hall, where you can head out on your customized adventure! Have fun!"
+
+/obj/item/paper/fluff/idris_cruise/medal_of_valor
+ name = "medal of valor intro sheet"
+ info = "This stage is for the MEDAL OF VALOR 2 alpha gameplay demo! Please enter your respective team's chair for balance reasons. Do not use the enemy team's base ingame! Remember, sharing is caring!"
+
+/obj/item/paper/fluff/idris_cruise/medal_of_valor_nopush
+ name = "Medal of Valor 2 Introduction Slip"
+ info = "Welcome to MEDAL OF VALOR 2 gameplay demo. You've entered your teams respective base. Proceed to the fighting! Do not push into the enemy's base under any circumstances! Remember, have fun!"
diff --git a/maps/event/idris_cruise/idris_cruise-1.dmm b/maps/event/idris_cruise/idris_cruise-1.dmm
index 574a01b813d..dce5759eb5b 100644
--- a/maps/event/idris_cruise/idris_cruise-1.dmm
+++ b/maps/event/idris_cruise/idris_cruise-1.dmm
@@ -5681,38 +5681,14 @@
/area/cruise/main_bar/aft)
"ezH" = (
/obj/structure/table/wood,
-/obj/item/paper{
- info = "Welcome to your very own VR preparation room! You can customize your virtual reality avatar here. Once ready, head out to the Game Selection Hall, where you can head out on your customized adventure! Have fun!";
- name = "vr introduction slip"
- },
-/obj/item/paper{
- info = "Welcome to your very own VR preparation room! You can customize your virtual reality avatar here. Once ready, head out to the Game Selection Hall, where you can head out on your customized adventure! Have fun!";
- name = "vr introduction slip"
- },
-/obj/item/paper{
- info = "Welcome to your very own VR preparation room! You can customize your virtual reality avatar here. Once ready, head out to the Game Selection Hall, where you can head out on your customized adventure! Have fun!";
- name = "vr introduction slip"
- },
-/obj/item/paper{
- info = "Welcome to your very own VR preparation room! You can customize your virtual reality avatar here. Once ready, head out to the Game Selection Hall, where you can head out on your customized adventure! Have fun!";
- name = "vr introduction slip"
- },
-/obj/item/paper{
- info = "Welcome to your very own VR preparation room! You can customize your virtual reality avatar here. Once ready, head out to the Game Selection Hall, where you can head out on your customized adventure! Have fun!";
- name = "vr introduction slip"
- },
-/obj/item/paper{
- info = "Welcome to your very own VR preparation room! You can customize your virtual reality avatar here. Once ready, head out to the Game Selection Hall, where you can head out on your customized adventure! Have fun!";
- name = "vr introduction slip"
- },
-/obj/item/paper{
- info = "Welcome to your very own VR preparation room! You can customize your virtual reality avatar here. Once ready, head out to the Game Selection Hall, where you can head out on your customized adventure! Have fun!";
- name = "vr introduction slip"
- },
-/obj/item/paper{
- info = "Welcome to your very own VR preparation room! You can customize your virtual reality avatar here. Once ready, head out to the Game Selection Hall, where you can head out on your customized adventure! Have fun!";
- name = "vr introduction slip"
- },
+/obj/item/paper/fluff/idris_cruise/vr_prep,
+/obj/item/paper/fluff/idris_cruise/vr_prep,
+/obj/item/paper/fluff/idris_cruise/vr_prep,
+/obj/item/paper/fluff/idris_cruise/vr_prep,
+/obj/item/paper/fluff/idris_cruise/vr_prep,
+/obj/item/paper/fluff/idris_cruise/vr_prep,
+/obj/item/paper/fluff/idris_cruise/vr_prep,
+/obj/item/paper/fluff/idris_cruise/vr_prep,
/obj/structure/sign/securearea{
desc = "A warning sign which declares the door to be one way! Don't get trapped.";
name = "\improper ONE WAY DOOR";
@@ -7232,14 +7208,8 @@
/obj/effect/floor_decal/spline/fancy{
dir = 4
},
-/obj/item/paper{
- info = "This stage is for the MEDAL OF VALOR 2 alpha gameplay demo! Please enter your respective team's chair for balance reasons. Do not use the enemy team's base ingame! Remember, sharing is caring!";
- name = "medal of valor intro sheet"
- },
-/obj/item/paper{
- info = "This stage is for the MEDAL OF VALOR 2 alpha gameplay demo! Please enter your respective team's chair for balance reasons. Do not use the enemy team's base ingame! Remember, sharing is caring!";
- name = "medal of valor intro sheet"
- },
+/obj/item/paper/fluff/idris_cruise/medal_of_valor,
+/obj/item/paper/fluff/idris_cruise/medal_of_valor,
/obj/structure/table/standard,
/obj/machinery/light/small{
dir = 4
@@ -9396,14 +9366,8 @@
/obj/effect/floor_decal/spline/fancy{
dir = 4
},
-/obj/item/paper{
- info = "This stage is for the MEDAL OF VALOR 2 alpha gameplay demo! Please enter your respective team's chair for balance reasons. Do not use the enemy team's base ingame! Remember, sharing is caring!";
- name = "medal of valor intro sheet"
- },
-/obj/item/paper{
- info = "This stage is for the MEDAL OF VALOR 2 alpha gameplay demo! Please enter your respective team's chair for balance reasons. Do not use the enemy team's base ingame! Remember, sharing is caring!";
- name = "medal of valor intro sheet"
- },
+/obj/item/paper/fluff/idris_cruise/medal_of_valor,
+/obj/item/paper/fluff/idris_cruise/medal_of_valor,
/obj/structure/table/standard,
/turf/unsimulated/floor{
icon_state = "tiled_preview"
@@ -17663,38 +17627,14 @@
/area/cruise/e_supplies)
"obv" = (
/obj/structure/table/wood,
-/obj/item/paper{
- info = "Welcome to your very own VR preparation room! You can customize your virtual reality avatar here. Once ready, head out to the Game Selection Hall, where you can head out on your customized adventure! Have fun!";
- name = "vr introduction slip"
- },
-/obj/item/paper{
- info = "Welcome to your very own VR preparation room! You can customize your virtual reality avatar here. Once ready, head out to the Game Selection Hall, where you can head out on your customized adventure! Have fun!";
- name = "vr introduction slip"
- },
-/obj/item/paper{
- info = "Welcome to your very own VR preparation room! You can customize your virtual reality avatar here. Once ready, head out to the Game Selection Hall, where you can head out on your customized adventure! Have fun!";
- name = "vr introduction slip"
- },
-/obj/item/paper{
- info = "Welcome to your very own VR preparation room! You can customize your virtual reality avatar here. Once ready, head out to the Game Selection Hall, where you can head out on your customized adventure! Have fun!";
- name = "vr introduction slip"
- },
-/obj/item/paper{
- info = "Welcome to your very own VR preparation room! You can customize your virtual reality avatar here. Once ready, head out to the Game Selection Hall, where you can head out on your customized adventure! Have fun!";
- name = "vr introduction slip"
- },
-/obj/item/paper{
- info = "Welcome to your very own VR preparation room! You can customize your virtual reality avatar here. Once ready, head out to the Game Selection Hall, where you can head out on your customized adventure! Have fun!";
- name = "vr introduction slip"
- },
-/obj/item/paper{
- info = "Welcome to your very own VR preparation room! You can customize your virtual reality avatar here. Once ready, head out to the Game Selection Hall, where you can head out on your customized adventure! Have fun!";
- name = "vr introduction slip"
- },
-/obj/item/paper{
- info = "Welcome to your very own VR preparation room! You can customize your virtual reality avatar here. Once ready, head out to the Game Selection Hall, where you can head out on your customized adventure! Have fun!";
- name = "vr introduction slip"
- },
+/obj/item/paper/fluff/idris_cruise/vr_prep,
+/obj/item/paper/fluff/idris_cruise/vr_prep,
+/obj/item/paper/fluff/idris_cruise/vr_prep,
+/obj/item/paper/fluff/idris_cruise/vr_prep,
+/obj/item/paper/fluff/idris_cruise/vr_prep,
+/obj/item/paper/fluff/idris_cruise/vr_prep,
+/obj/item/paper/fluff/idris_cruise/vr_prep,
+/obj/item/paper/fluff/idris_cruise/vr_prep,
/turf/unsimulated/floor{
icon_state = "wood_preview"
},
@@ -25559,66 +25499,21 @@
/area/cruise/aft_p)
"uAi" = (
/obj/structure/table/reinforced,
-/obj/item/paper{
- info = "Welcome to MEDAL OF VALOR 2 gameplay demo. You've entered your teams respective base. Proceed to the fighting! Do not push into the enemy's base under any circumstances! Remember, have fun!";
- name = "Medal of Valor 2 Introduction Slip"
- },
-/obj/item/paper{
- info = "Welcome to MEDAL OF VALOR 2 gameplay demo. You've entered your teams respective base. Proceed to the fighting! Do not push into the enemy's base under any circumstances! Remember, have fun!";
- name = "Medal of Valor 2 Introduction Slip"
- },
-/obj/item/paper{
- info = "Welcome to MEDAL OF VALOR 2 gameplay demo. You've entered your teams respective base. Proceed to the fighting! Do not push into the enemy's base under any circumstances! Remember, have fun!";
- name = "Medal of Valor 2 Introduction Slip"
- },
-/obj/item/paper{
- info = "Welcome to MEDAL OF VALOR 2 gameplay demo. You've entered your teams respective base. Proceed to the fighting! Do not push into the enemy's base under any circumstances! Remember, have fun!";
- name = "Medal of Valor 2 Introduction Slip"
- },
-/obj/item/paper{
- info = "Welcome to MEDAL OF VALOR 2 gameplay demo. You've entered your teams respective base. Proceed to the fighting! Do not push into the enemy's base under any circumstances! Remember, have fun!";
- name = "Medal of Valor 2 Introduction Slip"
- },
-/obj/item/paper{
- info = "Welcome to MEDAL OF VALOR 2 gameplay demo. You've entered your teams respective base. Proceed to the fighting! Do not push into the enemy's base under any circumstances! Remember, have fun!";
- name = "Medal of Valor 2 Introduction Slip"
- },
-/obj/item/paper{
- info = "Welcome to MEDAL OF VALOR 2 gameplay demo. You've entered your teams respective base. Proceed to the fighting! Do not push into the enemy's base under any circumstances! Remember, have fun!";
- name = "Medal of Valor 2 Introduction Slip"
- },
-/obj/item/paper{
- info = "Welcome to MEDAL OF VALOR 2 gameplay demo. You've entered your teams respective base. Proceed to the fighting! Do not push into the enemy's base under any circumstances! Remember, have fun!";
- name = "Medal of Valor 2 Introduction Slip"
- },
-/obj/item/paper{
- info = "Welcome to MEDAL OF VALOR 2 gameplay demo. You've entered your teams respective base. Proceed to the fighting! Do not push into the enemy's base under any circumstances! Remember, have fun!";
- name = "Medal of Valor 2 Introduction Slip"
- },
-/obj/item/paper{
- info = "Welcome to MEDAL OF VALOR 2 gameplay demo. You've entered your teams respective base. Proceed to the fighting! Do not push into the enemy's base under any circumstances! Remember, have fun!";
- name = "Medal of Valor 2 Introduction Slip"
- },
-/obj/item/paper{
- info = "Welcome to MEDAL OF VALOR 2 gameplay demo. You've entered your teams respective base. Proceed to the fighting! Do not push into the enemy's base under any circumstances! Remember, have fun!";
- name = "Medal of Valor 2 Introduction Slip"
- },
-/obj/item/paper{
- info = "Welcome to MEDAL OF VALOR 2 gameplay demo. You've entered your teams respective base. Proceed to the fighting! Do not push into the enemy's base under any circumstances! Remember, have fun!";
- name = "Medal of Valor 2 Introduction Slip"
- },
-/obj/item/paper{
- info = "Welcome to MEDAL OF VALOR 2 gameplay demo. You've entered your teams respective base. Proceed to the fighting! Do not push into the enemy's base under any circumstances! Remember, have fun!";
- name = "Medal of Valor 2 Introduction Slip"
- },
-/obj/item/paper{
- info = "Welcome to MEDAL OF VALOR 2 gameplay demo. You've entered your teams respective base. Proceed to the fighting! Do not push into the enemy's base under any circumstances! Remember, have fun!";
- name = "Medal of Valor 2 Introduction Slip"
- },
-/obj/item/paper{
- info = "Welcome to MEDAL OF VALOR 2 gameplay demo. You've entered your teams respective base. Proceed to the fighting! Do not push into the enemy's base under any circumstances! Remember, have fun!";
- name = "Medal of Valor 2 Introduction Slip"
- },
+/obj/item/paper/fluff/idris_cruise/medal_of_valor_nopush,
+/obj/item/paper/fluff/idris_cruise/medal_of_valor_nopush,
+/obj/item/paper/fluff/idris_cruise/medal_of_valor_nopush,
+/obj/item/paper/fluff/idris_cruise/medal_of_valor_nopush,
+/obj/item/paper/fluff/idris_cruise/medal_of_valor_nopush,
+/obj/item/paper/fluff/idris_cruise/medal_of_valor_nopush,
+/obj/item/paper/fluff/idris_cruise/medal_of_valor_nopush,
+/obj/item/paper/fluff/idris_cruise/medal_of_valor_nopush,
+/obj/item/paper/fluff/idris_cruise/medal_of_valor_nopush,
+/obj/item/paper/fluff/idris_cruise/medal_of_valor_nopush,
+/obj/item/paper/fluff/idris_cruise/medal_of_valor_nopush,
+/obj/item/paper/fluff/idris_cruise/medal_of_valor_nopush,
+/obj/item/paper/fluff/idris_cruise/medal_of_valor_nopush,
+/obj/item/paper/fluff/idris_cruise/medal_of_valor_nopush,
+/obj/item/paper/fluff/idris_cruise/medal_of_valor_nopush,
/turf/unsimulated/floor{
dir = 8;
icon_state = "wood"
diff --git a/maps/event/rooftop/code/rooftop.dm b/maps/event/rooftop/code/rooftop.dm
index 78450800845..d86d5a485ae 100644
--- a/maps/event/rooftop/code/rooftop.dm
+++ b/maps/event/rooftop/code/rooftop.dm
@@ -25,3 +25,15 @@
map_shuttles = list(
/datum/shuttle/autodock/ferry/city
)
+
+/obj/item/paper/fluff/rooftop/vr_prep
+ name = "VR Introduction Slip"
+ info = "Welcome to your very own VR preparation room! You can customize your virtual reality avatar here. Once ready, head out to the Game Selection Hall, where you can head out on your customized adventure! Have fun!"
+
+/obj/item/paper/fluff/rooftop/medal_of_valor
+ name = "medal of valor intro sheet"
+ info = "This stage is for the MEDAL OF VALOR 2 alpha gameplay demo! Please enter your respective team's chair for balance reasons. Do not use the enemy team's base ingame! Remember, sharing is caring!"
+
+/obj/item/paper/fluff/rooftop/medal_of_valor_nopush
+ name = "Medal of Valor 2 Introduction Slip"
+ info = "Welcome to MEDAL OF VALOR 2 gameplay demo. You've entered your teams respective base. Proceed to the fighting! Do not push into the enemy's base under any circumstances! Remember, have fun!"
diff --git a/maps/event/rooftop/rooftop-1.dmm b/maps/event/rooftop/rooftop-1.dmm
index 064405fd995..95446fea274 100644
--- a/maps/event/rooftop/rooftop-1.dmm
+++ b/maps/event/rooftop/rooftop-1.dmm
@@ -670,38 +670,14 @@
/area/city/mendell/interior)
"do" = (
/obj/structure/table/wood,
-/obj/item/paper{
- info = "Welcome to your very own VR preparation room! You can customize your virtual reality avatar here. Once ready, head out to the Game Selection Hall, where you can head out on your customized adventure! Have fun!";
- name = "vr introduction slip"
- },
-/obj/item/paper{
- info = "Welcome to your very own VR preparation room! You can customize your virtual reality avatar here. Once ready, head out to the Game Selection Hall, where you can head out on your customized adventure! Have fun!";
- name = "vr introduction slip"
- },
-/obj/item/paper{
- info = "Welcome to your very own VR preparation room! You can customize your virtual reality avatar here. Once ready, head out to the Game Selection Hall, where you can head out on your customized adventure! Have fun!";
- name = "vr introduction slip"
- },
-/obj/item/paper{
- info = "Welcome to your very own VR preparation room! You can customize your virtual reality avatar here. Once ready, head out to the Game Selection Hall, where you can head out on your customized adventure! Have fun!";
- name = "vr introduction slip"
- },
-/obj/item/paper{
- info = "Welcome to your very own VR preparation room! You can customize your virtual reality avatar here. Once ready, head out to the Game Selection Hall, where you can head out on your customized adventure! Have fun!";
- name = "vr introduction slip"
- },
-/obj/item/paper{
- info = "Welcome to your very own VR preparation room! You can customize your virtual reality avatar here. Once ready, head out to the Game Selection Hall, where you can head out on your customized adventure! Have fun!";
- name = "vr introduction slip"
- },
-/obj/item/paper{
- info = "Welcome to your very own VR preparation room! You can customize your virtual reality avatar here. Once ready, head out to the Game Selection Hall, where you can head out on your customized adventure! Have fun!";
- name = "vr introduction slip"
- },
-/obj/item/paper{
- info = "Welcome to your very own VR preparation room! You can customize your virtual reality avatar here. Once ready, head out to the Game Selection Hall, where you can head out on your customized adventure! Have fun!";
- name = "vr introduction slip"
- },
+/obj/item/paper/fluff/rooftop/vr_prep,
+/obj/item/paper/fluff/rooftop/vr_prep,
+/obj/item/paper/fluff/rooftop/vr_prep,
+/obj/item/paper/fluff/rooftop/vr_prep,
+/obj/item/paper/fluff/rooftop/vr_prep,
+/obj/item/paper/fluff/rooftop/vr_prep,
+/obj/item/paper/fluff/rooftop/vr_prep,
+/obj/item/paper/fluff/rooftop/vr_prep,
/turf/unsimulated/floor{
icon_state = "wood_preview"
},
@@ -1400,26 +1376,11 @@
/area/city/mendell)
"gZ" = (
/obj/structure/table/stone/marble,
-/obj/item/paper{
- info = "This stage is for the MEDAL OF VALOR 2 alpha gameplay demo! Please enter your respective team's chair for balance reasons. Do not use the enemy team's base ingame! Remember, sharing is caring!";
- name = "medal of valor intro sheet"
- },
-/obj/item/paper{
- info = "This stage is for the MEDAL OF VALOR 2 alpha gameplay demo! Please enter your respective team's chair for balance reasons. Do not use the enemy team's base ingame! Remember, sharing is caring!";
- name = "medal of valor intro sheet"
- },
-/obj/item/paper{
- info = "This stage is for the MEDAL OF VALOR 2 alpha gameplay demo! Please enter your respective team's chair for balance reasons. Do not use the enemy team's base ingame! Remember, sharing is caring!";
- name = "medal of valor intro sheet"
- },
-/obj/item/paper{
- info = "This stage is for the MEDAL OF VALOR 2 alpha gameplay demo! Please enter your respective team's chair for balance reasons. Do not use the enemy team's base ingame! Remember, sharing is caring!";
- name = "medal of valor intro sheet"
- },
-/obj/item/paper{
- info = "This stage is for the MEDAL OF VALOR 2 alpha gameplay demo! Please enter your respective team's chair for balance reasons. Do not use the enemy team's base ingame! Remember, sharing is caring!";
- name = "medal of valor intro sheet"
- },
+/obj/item/paper/fluff/rooftop/medal_of_valor,
+/obj/item/paper/fluff/rooftop/medal_of_valor,
+/obj/item/paper/fluff/rooftop/medal_of_valor,
+/obj/item/paper/fluff/rooftop/medal_of_valor,
+/obj/item/paper/fluff/rooftop/medal_of_valor,
/turf/simulated/floor/tiled,
/area/city/mendell/interior)
"ha" = (
@@ -4039,43 +4000,14 @@
/area/city/mendell)
"wR" = (
/obj/structure/table/wood,
-/obj/item/paper{
- info = "Welcome to your very own VR preparation room! You can customize your virtual reality avatar here. Once ready, head out to the Game Selection Hall, where you can head out on your customized adventure! Have fun!";
- name = "vr introduction slip"
- },
-/obj/item/paper{
- info = "Welcome to your very own VR preparation room! You can customize your virtual reality avatar here. Once ready, head out to the Game Selection Hall, where you can head out on your customized adventure! Have fun!";
- name = "vr introduction slip"
- },
-/obj/item/paper{
- info = "Welcome to your very own VR preparation room! You can customize your virtual reality avatar here. Once ready, head out to the Game Selection Hall, where you can head out on your customized adventure! Have fun!";
- name = "vr introduction slip"
- },
-/obj/item/paper{
- info = "Welcome to your very own VR preparation room! You can customize your virtual reality avatar here. Once ready, head out to the Game Selection Hall, where you can head out on your customized adventure! Have fun!";
- name = "vr introduction slip"
- },
-/obj/item/paper{
- info = "Welcome to your very own VR preparation room! You can customize your virtual reality avatar here. Once ready, head out to the Game Selection Hall, where you can head out on your customized adventure! Have fun!";
- name = "vr introduction slip"
- },
-/obj/item/paper{
- info = "Welcome to your very own VR preparation room! You can customize your virtual reality avatar here. Once ready, head out to the Game Selection Hall, where you can head out on your customized adventure! Have fun!";
- name = "vr introduction slip"
- },
-/obj/item/paper{
- info = "Welcome to your very own VR preparation room! You can customize your virtual reality avatar here. Once ready, head out to the Game Selection Hall, where you can head out on your customized adventure! Have fun!";
- name = "vr introduction slip"
- },
-/obj/item/paper{
- info = "Welcome to your very own VR preparation room! You can customize your virtual reality avatar here. Once ready, head out to the Game Selection Hall, where you can head out on your customized adventure! Have fun!";
- name = "vr introduction slip"
- },
-/obj/structure/sign/securearea{
- desc = "A warning sign which declares the door to be one way! Don't get trapped.";
- name = "\improper ONE WAY DOOR";
- pixel_x = 28
- },
+/obj/item/paper/fluff/rooftop/vr_prep,
+/obj/item/paper/fluff/rooftop/vr_prep,
+/obj/item/paper/fluff/rooftop/vr_prep,
+/obj/item/paper/fluff/rooftop/vr_prep,
+/obj/item/paper/fluff/rooftop/vr_prep,
+/obj/item/paper/fluff/rooftop/vr_prep,
+/obj/item/paper/fluff/rooftop/vr_prep,
+/obj/item/paper/fluff/rooftop/vr_prep,
/turf/unsimulated/floor{
icon_state = "wood_preview"
},
@@ -8464,66 +8396,21 @@
/area/city/mendell/interior)
"Wk" = (
/obj/structure/table/reinforced,
-/obj/item/paper{
- info = "Welcome to MEDAL OF VALOR 2 gameplay demo. You've entered your teams respective base. Proceed to the fighting! Do not push into the enemy's base under any circumstances! Remember, have fun!";
- name = "Medal of Valor 2 Introduction Slip"
- },
-/obj/item/paper{
- info = "Welcome to MEDAL OF VALOR 2 gameplay demo. You've entered your teams respective base. Proceed to the fighting! Do not push into the enemy's base under any circumstances! Remember, have fun!";
- name = "Medal of Valor 2 Introduction Slip"
- },
-/obj/item/paper{
- info = "Welcome to MEDAL OF VALOR 2 gameplay demo. You've entered your teams respective base. Proceed to the fighting! Do not push into the enemy's base under any circumstances! Remember, have fun!";
- name = "Medal of Valor 2 Introduction Slip"
- },
-/obj/item/paper{
- info = "Welcome to MEDAL OF VALOR 2 gameplay demo. You've entered your teams respective base. Proceed to the fighting! Do not push into the enemy's base under any circumstances! Remember, have fun!";
- name = "Medal of Valor 2 Introduction Slip"
- },
-/obj/item/paper{
- info = "Welcome to MEDAL OF VALOR 2 gameplay demo. You've entered your teams respective base. Proceed to the fighting! Do not push into the enemy's base under any circumstances! Remember, have fun!";
- name = "Medal of Valor 2 Introduction Slip"
- },
-/obj/item/paper{
- info = "Welcome to MEDAL OF VALOR 2 gameplay demo. You've entered your teams respective base. Proceed to the fighting! Do not push into the enemy's base under any circumstances! Remember, have fun!";
- name = "Medal of Valor 2 Introduction Slip"
- },
-/obj/item/paper{
- info = "Welcome to MEDAL OF VALOR 2 gameplay demo. You've entered your teams respective base. Proceed to the fighting! Do not push into the enemy's base under any circumstances! Remember, have fun!";
- name = "Medal of Valor 2 Introduction Slip"
- },
-/obj/item/paper{
- info = "Welcome to MEDAL OF VALOR 2 gameplay demo. You've entered your teams respective base. Proceed to the fighting! Do not push into the enemy's base under any circumstances! Remember, have fun!";
- name = "Medal of Valor 2 Introduction Slip"
- },
-/obj/item/paper{
- info = "Welcome to MEDAL OF VALOR 2 gameplay demo. You've entered your teams respective base. Proceed to the fighting! Do not push into the enemy's base under any circumstances! Remember, have fun!";
- name = "Medal of Valor 2 Introduction Slip"
- },
-/obj/item/paper{
- info = "Welcome to MEDAL OF VALOR 2 gameplay demo. You've entered your teams respective base. Proceed to the fighting! Do not push into the enemy's base under any circumstances! Remember, have fun!";
- name = "Medal of Valor 2 Introduction Slip"
- },
-/obj/item/paper{
- info = "Welcome to MEDAL OF VALOR 2 gameplay demo. You've entered your teams respective base. Proceed to the fighting! Do not push into the enemy's base under any circumstances! Remember, have fun!";
- name = "Medal of Valor 2 Introduction Slip"
- },
-/obj/item/paper{
- info = "Welcome to MEDAL OF VALOR 2 gameplay demo. You've entered your teams respective base. Proceed to the fighting! Do not push into the enemy's base under any circumstances! Remember, have fun!";
- name = "Medal of Valor 2 Introduction Slip"
- },
-/obj/item/paper{
- info = "Welcome to MEDAL OF VALOR 2 gameplay demo. You've entered your teams respective base. Proceed to the fighting! Do not push into the enemy's base under any circumstances! Remember, have fun!";
- name = "Medal of Valor 2 Introduction Slip"
- },
-/obj/item/paper{
- info = "Welcome to MEDAL OF VALOR 2 gameplay demo. You've entered your teams respective base. Proceed to the fighting! Do not push into the enemy's base under any circumstances! Remember, have fun!";
- name = "Medal of Valor 2 Introduction Slip"
- },
-/obj/item/paper{
- info = "Welcome to MEDAL OF VALOR 2 gameplay demo. You've entered your teams respective base. Proceed to the fighting! Do not push into the enemy's base under any circumstances! Remember, have fun!";
- name = "Medal of Valor 2 Introduction Slip"
- },
+/obj/item/paper/fluff/rooftop/medal_of_valor_nopush,
+/obj/item/paper/fluff/rooftop/medal_of_valor_nopush,
+/obj/item/paper/fluff/rooftop/medal_of_valor_nopush,
+/obj/item/paper/fluff/rooftop/medal_of_valor_nopush,
+/obj/item/paper/fluff/rooftop/medal_of_valor_nopush,
+/obj/item/paper/fluff/rooftop/medal_of_valor_nopush,
+/obj/item/paper/fluff/rooftop/medal_of_valor_nopush,
+/obj/item/paper/fluff/rooftop/medal_of_valor_nopush,
+/obj/item/paper/fluff/rooftop/medal_of_valor_nopush,
+/obj/item/paper/fluff/rooftop/medal_of_valor_nopush,
+/obj/item/paper/fluff/rooftop/medal_of_valor_nopush,
+/obj/item/paper/fluff/rooftop/medal_of_valor_nopush,
+/obj/item/paper/fluff/rooftop/medal_of_valor_nopush,
+/obj/item/paper/fluff/rooftop/medal_of_valor_nopush,
+/obj/item/paper/fluff/rooftop/medal_of_valor_nopush,
/turf/unsimulated/floor{
dir = 8;
icon_state = "wood"
diff --git a/maps/random_ruins/exoplanets/adhomai/adhomai_raskariim_hideout.dm b/maps/random_ruins/exoplanets/adhomai/adhomai_raskariim_hideout.dm
index 05b8d7a17bf..510a93e5cf4 100644
--- a/maps/random_ruins/exoplanets/adhomai/adhomai_raskariim_hideout.dm
+++ b/maps/random_ruins/exoplanets/adhomai/adhomai_raskariim_hideout.dm
@@ -60,7 +60,6 @@
/obj/item/clothing/under/tajaran,
/obj/item/clothing/under/tajaran/summer,
/obj/item/clothing/under/pants/tajaran,
- /obj/item/clothing/under/pants,
/obj/item/clothing/under/pants/track
)
diff --git a/maps/sccv_horizon/sccv_horizon.dmm b/maps/sccv_horizon/sccv_horizon.dmm
index fc1da7f8a32..e54fdd0c33d 100644
--- a/maps/sccv_horizon/sccv_horizon.dmm
+++ b/maps/sccv_horizon/sccv_horizon.dmm
@@ -9019,7 +9019,6 @@
/turf/simulated/floor/plating,
/area/maintenance/wing/port/far)
"bnn" = (
-/obj/effect/floor_decal/corner/teal/diagonal,
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 4
},
@@ -21942,7 +21941,7 @@
/area/bridge/controlroom)
"dkt" = (
/obj/machinery/mineral/stacking_machine{
- id = "stacking_3";
+ id = "horizon_stacking_3";
dir = 8
},
/obj/effect/floor_decal/industrial/warning/full,
@@ -23236,7 +23235,7 @@
/obj/machinery/door/airlock/maintenance{
dir = 1;
name = "Bar Maintenance";
- req_one_access = list(12,25)
+ req_one_access = list(12, 25)
},
/obj/machinery/door/firedoor,
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
@@ -25486,7 +25485,7 @@
/area/horizon/exterior)
"dJO" = (
/obj/machinery/mineral/processing_unit{
- id = "processing_1";
+ id = "horizon_processing_1";
dir = 8
},
/obj/effect/floor_decal/industrial/warning/full,
@@ -31715,7 +31714,9 @@
/turf/simulated/floor/tiled/full,
/area/medical/smoking)
"eGg" = (
-/obj/structure/bed/stool/bar/padded/teal,
+/obj/structure/bed/stool/bar/padded/teal{
+ dir = 4
+ },
/obj/effect/floor_decal/corner/red/diagonal,
/obj/effect/floor_decal/spline/plain{
dir = 4
@@ -35017,7 +35018,7 @@
dir = 8
},
/obj/machinery/mineral/stacking_unit_console{
- id = "stacking_3";
+ id = "horizon_stacking_3";
pixel_x = -32
},
/obj/effect/floor_decal/industrial/outline/yellow,
@@ -39419,7 +39420,6 @@
/turf/unsimulated/floor,
/area/antag/raider)
"fQc" = (
-/obj/effect/floor_decal/corner/teal/diagonal,
/obj/structure/cable/green{
icon_state = "1-8"
},
@@ -48514,7 +48514,7 @@
},
/obj/machinery/door/airlock/maintenance_hatch{
dir = 4;
- req_one_access = list(12,26)
+ req_one_access = list(12)
},
/obj/structure/lattice/catwalk/indoor/grate,
/turf/simulated/floor/plating,
@@ -49333,10 +49333,10 @@
dir = 10
},
/obj/machinery/alarm/north,
-/obj/machinery/power/apc/west,
/obj/structure/cable/green{
icon_state = "0-2"
},
+/obj/machinery/power/apc/east,
/turf/simulated/floor,
/area/maintenance/engineering_ladder)
"hnR" = (
@@ -50574,7 +50574,7 @@
dir = 6
},
/obj/machinery/mineral/processing_unit_console{
- id = "processing_1";
+ id = "horizon_processing_1";
pixel_x = 32
},
/obj/effect/floor_decal/industrial/hatch_tiny/yellow,
@@ -55714,7 +55714,7 @@
/obj/structure/disposalpipe/segment,
/obj/machinery/door/airlock/maintenance{
dir = 1;
- req_access = list(12)
+ req_one_access = list(12, 25)
},
/obj/machinery/door/firedoor,
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
@@ -59262,7 +59262,7 @@
/obj/machinery/door/airlock/maintenance{
dir = 1;
name = "Maintenance Passthrough";
- req_one_access = list(12,26,31,48,67)
+ req_one_access = list(12,31,48,67)
},
/obj/machinery/door/firedoor,
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
@@ -70243,7 +70243,7 @@
dir = 1
},
/obj/machinery/mineral/processing_unit_console{
- id = "processing_3";
+ id = "horizon_processing_3";
pixel_x = 32
},
/obj/effect/floor_decal/industrial/hatch_tiny/yellow,
@@ -79443,7 +79443,7 @@
dir = 9
},
/obj/machinery/mineral/stacking_unit_console{
- id = "stacking_1";
+ id = "horizon_stacking_1";
pixel_x = -32
},
/obj/effect/floor_decal/industrial/outline/yellow,
@@ -83781,7 +83781,6 @@
/turf/simulated/wall/shuttle/scc_space_ship/cardinal,
/area/maintenance/hangar/starboard)
"msz" = (
-/obj/effect/floor_decal/corner/teal/diagonal,
/obj/effect/floor_decal/spline/plain{
dir = 8
},
@@ -86902,7 +86901,8 @@
pixel_y = 4
},
/obj/machinery/vending/dinnerware/bar{
- pixel_y = 16
+ pixel_y = 16;
+ pixel_x = 6
},
/turf/simulated/floor/tiled/dark,
/area/horizon/bar)
@@ -91075,7 +91075,7 @@
},
/obj/machinery/door/airlock/maintenance{
dir = 4;
- req_one_access = list(12,26,48)
+ req_one_access = list(12,48)
},
/turf/simulated/floor/tiled/full,
/area/hangar/intrepid)
@@ -94926,7 +94926,7 @@
/obj/machinery/door/airlock/maintenance{
dir = 1;
name = "Recharging Station Maintenance";
- req_one_access = list(12,26)
+ req_one_access = list(12)
},
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
@@ -95868,7 +95868,7 @@
/area/engineering/engine_monitoring)
"oiB" = (
/obj/machinery/mineral/stacking_machine{
- id = "stacking_2";
+ id = "horizon_stacking_2";
dir = 8
},
/obj/effect/floor_decal/industrial/warning/full,
@@ -102460,7 +102460,6 @@
},
/area/centcom/control)
"pkj" = (
-/obj/effect/floor_decal/corner/teal/diagonal,
/obj/structure/cable/green{
icon_state = "1-2"
},
@@ -108966,7 +108965,9 @@
/turf/space/dynamic,
/area/horizon/exterior)
"qgw" = (
-/obj/structure/bed/stool/bar/padded/teal,
+/obj/structure/bed/stool/bar/padded/teal{
+ dir = 4
+ },
/obj/effect/floor_decal/corner/red/diagonal,
/obj/effect/floor_decal/spline/plain{
dir = 5
@@ -114943,8 +114944,7 @@
"raq" = (
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock/maintenance_hatch{
- dir = 1;
- req_access = list(12)
+ dir = 1
},
/obj/machinery/atmospherics/pipe/simple/hidden,
/turf/simulated/floor/tiled/full,
@@ -115394,7 +115394,7 @@
dir = 9
},
/obj/machinery/mineral/stacking_unit_console{
- id = "stacking_2";
+ id = "horizon_stacking_2";
pixel_x = -32
},
/obj/effect/floor_decal/industrial/outline/yellow,
@@ -128849,7 +128849,7 @@
/area/rnd/xenobiology/xenoflora)
"tia" = (
/obj/machinery/mineral/processing_unit{
- id = "processing_3";
+ id = "horizon_processing_3";
dir = 8
},
/obj/effect/floor_decal/industrial/warning/full,
@@ -129180,7 +129180,7 @@
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock/maintenance{
dir = 4;
- req_one_access = list(12,26)
+ req_one_access = list(12)
},
/turf/simulated/floor/tiled/full,
/area/maintenance/engineering)
@@ -132531,7 +132531,9 @@
/obj/structure/cable/green{
icon_state = "1-2"
},
-/obj/structure/bed/stool/bar/padded/red,
+/obj/structure/bed/stool/bar/padded/red{
+ dir = 8
+ },
/obj/effect/floor_decal/spline/fancy/wood{
dir = 8
},
@@ -137848,7 +137850,7 @@
dir = 6
},
/obj/machinery/mineral/processing_unit_console{
- id = "processing_2";
+ id = "horizon_processing_2";
pixel_x = 32
},
/obj/machinery/conveyor_switch/oneway{
@@ -140496,7 +140498,7 @@
/area/maintenance/substation/civilian_east)
"uSM" = (
/obj/machinery/mineral/stacking_machine{
- id = "stacking_1";
+ id = "horizon_stacking_1";
dir = 8
},
/obj/effect/floor_decal/industrial/warning/full,
@@ -145984,7 +145986,7 @@
/area/horizon/security/autopsy_laboratory)
"vIH" = (
/obj/machinery/mineral/processing_unit{
- id = "processing_2";
+ id = "horizon_processing_2";
dir = 8
},
/obj/effect/floor_decal/industrial/warning/full,
@@ -151712,7 +151714,7 @@
/obj/structure/lattice/catwalk/indoor/grate,
/obj/machinery/door/airlock/maintenance_hatch{
dir = 1;
- req_one_access = list(12,26)
+ req_one_access = list(12)
},
/turf/simulated/floor/plating,
/area/maintenance/engineering)
diff --git a/texts/lore_radio/badlands/72.9_Nowa_Bratislava_Independent_Radio.txt b/texts/lore_radio/badlands/72.9_Nowa_Bratislava_Independent_Radio.txt
new file mode 100644
index 00000000000..2ce6a1b0dbc
--- /dev/null
+++ b/texts/lore_radio/badlands/72.9_Nowa_Bratislava_Independent_Radio.txt
@@ -0,0 +1,52 @@
+You’re listening to Nowa Bratislava Independent Radio, bringing you the best songs of Visegrad.
+Now, one for all our friends in the Navy.
+[Hard rock guitar intro]
+[RANDOMNOTE] They keep asking where I’ll be tomorrow, where the Navy sends me! [RANDOMNOTE]
+[RANDOMNOTE] I don’t know where, I don’t know how! [RANDOMNOTE]
+[RANDOMNOTE] Wherever Szalai sees me! [RANDOMNOTE]
+[RANDOMNOTE] Get me out! [RANDOMNOTE]
+[RANDOMNOTE] Oh, get me out! [RANDOMNOTE]
+[Music]
+[RANDOMNOTE] When we were younger, the Navy seemed easy, [RANDOMNOTE]
+[RANDOMNOTE] But now patrol without ceasing! [RANDOMNOTE]
+[RANDOMNOTE] I need someone, I need a relief, [RANDOMNOTE]
+[RANDOMNOTE] To get me out! [RANDOMNOTE]
+[RANDOMNOTE] Oh, to get me out! [RANDOMNOTE]
+[Music]
+That was Get Out by the Fellgevar Underground, listeners!
+We’ll be back after a short word from our sponsors.
+/Ksssshhhhh.../
+Tired of long waits to travel to the Jewel Worlds for your vacation?
+Wait no longer with Idris’ new non-stop-service route from Fellegvar to Silversun!
+Experience Idris’ famous hospitality in our famous ‘Star-Gazer’ vessels as you cruise in comfort to Helios City, Silversun.
+Astronomical quality, unlimited comfort! Book your flight today!
+/Pssssshhhhhhh.../
+And we’re back! Mowie, ads! Have to keep the lights on somehow.
+That’s enough from me. Let’s keep the day rainy with some songs!
+This one comes to us from sunny, sunny Silversun! Too bright for me, but maybe not for you!
+/Kssshhhttt.../
+[Upbeat synth intro]
+[RANDOMNOTE] I’ll be your million credit dream girl!~ [RANDOMNOTE]
+[RANDOMNOTE] I’ll be your shining star in spaaace!~ [RANDOMNOTE]
+[RANDOMNOTE] And we’ll sail together for-eveeeerrr~ [RANDOMNOTE]
+[RANDOMNOTE] Across the stars and space! [RANDOMNOTE]
+[Synth music]
+/Khhhrrrtttt.../
+That was, ah, Million Credit Girl, by the Helios Beach Club. Taktak, popular, but not my taste.
+Boze, the listener is always right though.
+One more before break! This one is more Visegradi! It’s Raining — yes, that’s the real title! — by Forest Brother Blues.
+/Fssshhhh.../
+[Music]
+[RANDOMNOTE] Rain-ing rain-ing, standing all alone. [RANDOMNOTE]
+[RANDOMNOTE] Waiting all alone, I’m feeling so tired — I want to go home. [RANDOMNOTE]
+[RANDOMNOTE] Faces pass me places don’t, getting soaking wet, I want to be home. [RANDOMNOTE]
+[RANDOMNOTE] I’m trying my best, I want my rest, but I’m getting cold. [RANDOMNOTE]
+[RANDOMNOTE] Rain-ing rain-ing, what a fool I’d be, [RANDOMNOTE]
+[RANDOMNOTE] To say that I tried, that I could be free. [RANDOMNOTE]
+/Bzzzrrrtt.../
+Want a waterfront view without going to Silversun? Stop by the Lazy Szazlabu coffee shop at 1920 Piłsudski Street today!
+We’re just a block away from the Waterfront Station stop of the monorail’s green line.
+/Ksshhh.../
+Serve our Alliance, see the Spur. Join the Solarian Navy today.
+The Navy made Admiral Szalai into the woman she is today. What’s your hidden potential?
+/Kzzzhhhtttt.../
diff --git a/texts/lore_radio/badlands/83.6_Shipping_Radio_Traffic.txt b/texts/lore_radio/badlands/83.6_Shipping_Radio_Traffic.txt
new file mode 100644
index 00000000000..f7e4d682c01
--- /dev/null
+++ b/texts/lore_radio/badlands/83.6_Shipping_Radio_Traffic.txt
@@ -0,0 +1,40 @@
+This is IMV Gar, Helium-3 tanker, requesting docking permission on Visegrad.
+IMV Gar this is Visegrad OTC, transmit your registration code.
+TEN-EIGHT-EIGHT-FIVE-EIGHT-TWELVE, we are an Imperial-flagged vessel.
+IMV Gar you are cleared for dock 72, seven-two.
+Proceeding.
+/Kzzzzhhhhhttttt.../
+Unidentified vessel, this is SAMV Hussar, you are /ordered/ to turn your transponder on.
+Hussar this is ICV Phoenix, we are currently attempting to re-enable our transponder after an ion storm. Will cut engines until you can get our signal.
+/Bzzzhhhhtttt.../
+This is the ICV Ganges, operating under Xanu flagging, requesting permission to dock at New Suez.
+ICV Ganges this is OTC, your transponder is good. Proceed to dock 18.
+We copy.
+/Bzzzhhhhrrrrtttt.../
+This is the IIV Musa, on our regular tourist route to Persepolis. Can I have my docking request expedited?
+IIV Musa, this is New Suez OTC. Negative, proceed to customs.
+A man sighs on one end of the line.
+Roger.
+/Kzzzhhhhrrrrttttt.../
+Are you seriously broadcasting over open band?
+I’m /not/, man!
+Yes you are! I can hear myself through the radio!
+Look, okay, let me just—
+[A banging noise and muffed expletives signal the end of this broadcast!]
+/Kkkkzzzzzzzhhhhtttt.../
+This is HCV Castillo, I have engine trouble in your system. Please send a tug.
+HCV Castillo this is ENV Algier, we are moving to assist you.
+Thank you! We are holding at grid ONE TWO EIGHT FOUR dash THREE THREE SEVEN in the al-Wakwak System.
+/Kssssshhhhhttttt.../
+Meow.
+Meow, meow.
+Meow.
+... *rrrrreally*, man?
+/Kzzzzzhhhhrrrrtttttt.../
+SAMV Szendzielarz this is HIMS Indomitable, we are off your stern. Request you send a shuttle for prisoner transport.
+Indomitable, advise nature of prisoners?
+Solarian Navy deserters captured south of your interstellar border.
+Wait one.
+…
+Indomitable this is Szendzielarz, we will approach to receive. Switch to military banding, we will transmit our codes.
+/Kssssshhhhhhhtttttttt.../
diff --git a/texts/lore_radio/badlands/86.2_Shipping_Advisory_Channel.txt b/texts/lore_radio/badlands/86.2_Shipping_Advisory_Channel.txt
new file mode 100644
index 00000000000..cf8d0ae78c5
--- /dev/null
+++ b/texts/lore_radio/badlands/86.2_Shipping_Advisory_Channel.txt
@@ -0,0 +1,51 @@
+/Kzzzzhhhrrtttt.../
+Be advised, #3 warp gate in Danube System remains closed for maintenance until November.
+Please redirect to #2 gate.
+Anticipate waits of up to one day.
+The National Defense Force appreciates your patience in this matter.
+/Kkkkzzzhhhrrrrtttt.../
+Be aware that all civilian vessels must have their transponders active within Solarian space at all times.
+Failure to comply may result in search and seizure by Navy vessels.
+Registered owners may be held in custody if contraband is discovered.
+Your safety is our priority.
+/Bzzzzhhhhrrrttttt.../
+Civilian vessels are advised to be aware of restricted flight space near Imperial Fleet facilities on Zhurong.
+Entry into restricted space will result in vessel detention.
+Refusal to comply may result in the use of force.
+/Ssszzzhhrrrttttt.../
+Please be prepared for mandatory inspection upon docking in New Suez.
+Your cooperation is appreciated in this matter.
+Report any suspicious activity to the Elyran Navy on band ONE ZERO FIVE POINT EIGHT.
+Again, report suspicious activity to the Elyran Navy on band ONE ZERO FIVE POINT EIGHT.
+/Bzzzzzzkkkhhhhttttt.../
+The Imperial Fleet ensures safety in the Badlands. We are the sword and shield of the Empire.
+Obey all laws while in Imperial space and you will be free to conduct business.
+Goddess protects.
+/Kssssshhhttttt.../
+All intelligent synthetic equipment is to remain onboard its vessel while in Imperial space.
+The only exception is for evacuations.
+Contact the nearest customs station for further inquiries.
+/Bzzzkkkkhhhhttttt.../
+Dock 52 on New Suez is currently undergoing routine maintenance. Inbound vessels are to proceed to dock 53 unless instructed otherwise by orbital traffic control.
+Please control your speed within Suezi airspace. Accidents can be prevented.
+Contact the port authority for additional information.
+/Ksssshhhhtttttt.../
+Vessels are advised to avoid space above the Imperial Territory of Fisanduh.
+This is a restricted zone.
+Vessels in this area are subject to search and seizure by the Fleet.
+/Bzzzzhhhhttttt.../
+Please report all pirate sightings to the Solarian Navy.
+Do not attempt to engage these vessels.
+The Navy is authorized to provide bounties for confirmed sightings reported to them.
+Utilize band ONE TWO EIGHT POINT SEVEN to report sightings.
+Again, utilize band ONE TWO EIGHT POINT SEVEN.
+/Ksssshhhhhttt.../
+Free positronic intelligences are to remain aboard their vessels while docked at Solarian ports.
+Those who leave their vessels do so at their own risk.
+The Solarian Alliance does not recognize synthetic self-ownership.
+The Southern Solarian Reconstruction Mandate recommends all vessels operating from nations recognizing synthetic self-ownership advise their crews of this.
+/Kzzzhhhhttt.../
+Report any suspicious activity to the nearest Elyran Navy vessel.
+Fighting privateering is every vessel’s duty.
+Only together can we make a safer Orion Spur.
+/Bzzzhhhhtttttt.../
diff --git a/texts/lore_radio/badlands/91.1_Morozian_Classics.txt b/texts/lore_radio/badlands/91.1_Morozian_Classics.txt
new file mode 100644
index 00000000000..a3aa9e2d00f
--- /dev/null
+++ b/texts/lore_radio/badlands/91.1_Morozian_Classics.txt
@@ -0,0 +1,67 @@
+You are listening to Morozian Classics, a production of the Imperial Institute of Cultural Affairs, broadcasting from Domelkos.
+We broadcast great works of Morozian opera and classical music.
+Give thanks to our magnanimous royal family for their patronage of the arts.
+May Our Lady of Moroz bless your day, listeners.
+/Kzzzzhhhhhtttt.../
+And now, a sample from the opera Daybreak.
+[Music swells]
+/Alas!/
+/How it grieves me to see our Countess fall a slave to her sickness!/
+/Quickly, young Wei, bring her to me./
+/At once, my Lord!/
+[Music]
+/Ah, kindly Lord Erik; whence came the strange vessel you now clasp so eagerly to your breast?/
+/Countess Emiliana; it was brought to you from Domelkos./
+/And who of your men obtained it?/
+/Young Wei! Up, Wei! Come!/
+/My Countess; this elixir shall restore you!/
+/It has been blessed by Our Lady Herself!/
+/Shall it? Or shall it send me to Her embrace?/
+[Music]
+/I rot upon my litter.../
+/Let us discard caution and place our faith in Her!/
+[Music swells!]
+/What sorcery?! I am restored!/
+/Let us give our thanks, to Her, our Lady of Moroz.../
+/... as we march onwards to conquest!/
+[Applause, cheering]
+/Kzzzhhhhhrrrrttttt.../
+Listeners interested in this week’s episode of Life on the Reach may find it on our sister channel, the Imperial Broadcasting Service.
+Previous episodes are available on the Imperial Institute of Cultural Affairs’ website, www dot i-i-c-a dot gov dot m-z.
+They may also be requested through your local IICA office.
+Long live our beloved Empire.
+/Bzzzzhhhhhrrrrttttt.../
+Now, a stirring work by the Royal Jadranic Choir.
+[Applause]
+[RANDOMNOTE] I was glad when they said unto me, [RANDOMNOTE]
+[RANDOMNOTE] We shall go into the Kingdom of Moroz. [RANDOMNOTE]
+[RANDOMNOTE] Our souls laid bare, [RANDOMNOTE]
+[RANDOMNOTE] Shall stand before Her eternal majesty. [RANDOMNOTE]
+[RANDOMNOTE] On our Moroz’s green and pleasant scenes. [RANDOMNOTE]
+[RANDOMNOTE] And there shall shine; [RANDOMNOTE]
+[RANDOMNOTE] Her countenance divine. [RANDOMNOTE]
+[RANDOMNOTE] Upon Her mighty realm. [RANDOMNOTE]
+[RANDOMNOTE] I shall be true as She is divine, [RANDOMNOTE]
+[RANDOMNOTE] In Her name, [RANDOMNOTE]
+[RANDOMNOTE] And for Her empire. [RANDOMNOTE]
+[Applause]
+/Bzzzzhhhhrrrrrttttt.../
+We at Morozian Classics would like to extend a toast to our noble defenders: His Imperial Majesty’s Fleet.
+Please enjoy this recording of the Zhurong March, our noble Fleet’s march.
+Long live the Emperor!
+[Music]
+[RANDOMNOTE] Whether at home or abroad; [RANDOMNOTE]
+[RANDOMNOTE] On defense or attack; [RANDOMNOTE]
+[RANDOMNOTE] Count on Zhurong’s castles! [RANDOMNOTE]
+[RANDOMNOTE] Floating fortresses of our Empire’s wrath; [RANDOMNOTE]
+[RANDOMNOTE] To guard the Empire’s lands and seas! [RANDOMNOTE]
+[RANDOMNOTE] Vessels armed and armored with steel; [RANDOMNOTE]
+[RANDOMNOTE] To defeat the Empire’s foes! [RANDOMNOTE]
+[RANDOMNOTE] They leave behind wakes of shimmering warp; [RANDOMNOTE]
+[RANDOMNOTE] That drift through space like a yastr! [RANDOMNOTE]
+[RANDOMNOTE] They fire their guns with deafening booms; [RANDOMNOTE]
+[RANDOMNOTE] That make our enemies run and scatter! [RANDOMNOTE]
+[RANDOMNOTE] Thousands of miles through the void; [RANDOMNOTE]
+[RANDOMNOTE] Zhurong’s castles sail for glory! [RANDOMNOTE]
+[Applause, cheering]
+/Kzzzzhhhhtttttt.../
diff --git a/tgui/packages/tgui-panel/package.json b/tgui/packages/tgui-panel/package.json
index d60ccaaa9b1..f652b74df90 100644
--- a/tgui/packages/tgui-panel/package.json
+++ b/tgui/packages/tgui-panel/package.json
@@ -4,7 +4,7 @@
"version": "4.3.1",
"dependencies": {
"common": "workspace:*",
- "dompurify": "^2.3.1",
+ "dompurify": "^2.5.4",
"inferno": "^7.4.8",
"tgui": "workspace:*",
"tgui-dev-server": "workspace:*",
diff --git a/tgui/packages/tgui-say/package.json b/tgui/packages/tgui-say/package.json
index 354d52ece55..d3969ec648a 100644
--- a/tgui/packages/tgui-say/package.json
+++ b/tgui/packages/tgui-say/package.json
@@ -4,7 +4,7 @@
"version": "1.0.0",
"dependencies": {
"common": "workspace:*",
- "dompurify": "^2.3.1",
+ "dompurify": "^2.5.4",
"inferno": "^7.4.8",
"tgui": "workspace:*",
"tgui-dev-server": "workspace:*",
diff --git a/tgui/packages/tgui/package.json b/tgui/packages/tgui/package.json
index 74ef5f34624..11c36177807 100644
--- a/tgui/packages/tgui/package.json
+++ b/tgui/packages/tgui/package.json
@@ -7,7 +7,7 @@
"@types/marked": "^4.0.8",
"common": "workspace:*",
"dateformat": "^4.5.1",
- "dompurify": "^2.3.1",
+ "dompurify": "^2.5.4",
"highlight.js": "^11.5.1",
"inferno": "^7.4.8",
"inferno-vnode-flags": "^7.4.8",
diff --git a/tgui/yarn.lock b/tgui/yarn.lock
index 4ca947f9f39..ec02665d001 100644
--- a/tgui/yarn.lock
+++ b/tgui/yarn.lock
@@ -4165,10 +4165,10 @@ __metadata:
languageName: node
linkType: hard
-"dompurify@npm:^2.3.1":
- version: 2.3.1
- resolution: "dompurify@npm:2.3.1"
- checksum: 9c93cfaa9d1d0b31aa2e926ebfa0621287a63ebb16277c94ad4aad2bcf3ad12e609e699fc10f2eaf69e4698e29a31dec87a69f3c6725ce3f4c7a69ee93123d0c
+"dompurify@npm:^2.5.4":
+ version: 2.5.6
+ resolution: "dompurify@npm:2.5.6"
+ checksum: 1d329fe79928aa86c61539b758bdbc53df58dd90bdc5b74032a2a3a22a436e84178d8f6ad8b022c8f6fac46b26d6e7e553c0cd131a37ed5105bbed6bf87be226
languageName: node
linkType: hard
@@ -9748,7 +9748,7 @@ resolve@^2.0.0-next.3:
resolution: "tgui-panel@workspace:packages/tgui-panel"
dependencies:
common: "workspace:*"
- dompurify: ^2.3.1
+ dompurify: ^2.5.4
inferno: ^7.4.8
tgui: "workspace:*"
tgui-dev-server: "workspace:*"
@@ -9772,7 +9772,7 @@ resolve@^2.0.0-next.3:
resolution: "tgui-say@workspace:packages/tgui-say"
dependencies:
common: "workspace:*"
- dompurify: ^2.3.1
+ dompurify: ^2.5.4
inferno: ^7.4.8
tgui: "workspace:*"
tgui-dev-server: "workspace:*"
@@ -9834,7 +9834,7 @@ resolve@^2.0.0-next.3:
"@types/marked": ^4.0.8
common: "workspace:*"
dateformat: ^4.5.1
- dompurify: ^2.3.1
+ dompurify: ^2.5.4
highlight.js: ^11.5.1
inferno: ^7.4.8
inferno-vnode-flags: ^7.4.8
diff --git a/tools/ci/check_grep.sh b/tools/ci/check_grep.sh
index 1876b0005b2..16c59db6299 100755
--- a/tools/ci/check_grep.sh
+++ b/tools/ci/check_grep.sh
@@ -132,6 +132,27 @@ else
echo "PASS: Only the expected number of raw ref proc calls were found" >> code_error.log
fi
+# Check that only the expected amount of raw ref proc calls are present
+echo "Verifying no raw ref proc calls are being added" >> code_error.log
+RAW_REF_BUILTIN_PROCS=`grep -r --include \*.dm -P --regexp='[^\w_]ref[\(\[]' | wc -l`
+if [[ $RAW_REF_BUILTIN_PROCS -ne 3 ]]; then
+ ERROR_COUNT=$(($ERROR_COUNT+1))
+ echo "FAIL: Found new raw ref proc calls in code" >> code_error.log
+else
+ echo "PASS: Only the expected number of raw ref proc calls were found" >> code_error.log
+fi
+
+# Check that the text proc is not being used
+echo "Verifying no built in text proc calls are being added" >> code_error.log
+BUILTIN_TEXT_PROC_CALLS=`grep -r --include \*.dm -P --regexp='[^\w_\/\.]text\('`
+if [[ $BUILTIN_TEXT_PROC_CALLS != '' ]]; then
+ ERROR_COUNT=$(($ERROR_COUNT+1))
+ echo "FAIL: Found builtin calls to the text proc, use string interpolation instead:" >> code_error.log
+ echo $BUILTIN_TEXT_PROC_CALLS >> code_error.log
+else
+ echo "PASS: No builtin calls to the text proc were found" >> code_error.log
+fi
+
echo "Found $ERROR_COUNT errors while performing code check"
if [ $ERROR_COUNT -ne 0 ]; then
diff --git a/tools/maplint/lints/paper_fluff.yml b/tools/maplint/lints/paper_fluff.yml
new file mode 100644
index 00000000000..b95f76bd8be
--- /dev/null
+++ b/tools/maplint/lints/paper_fluff.yml
@@ -0,0 +1,10 @@
+help: "No map made papers, make a subtype in code and write the text there."
+=/obj/item/paper/fluff:
+ banned: true
+
+#This should be done for all /paper but there's just too much shit
+/obj/item/paper/fluff:
+ banned_variables:
+ - name
+ - info
+ - language