diff --git a/_maps/map_files/MetaStation/MetaStation.dmm b/_maps/map_files/MetaStation/MetaStation.dmm
index 138f1dd17f3..e65ebe1e6a6 100644
--- a/_maps/map_files/MetaStation/MetaStation.dmm
+++ b/_maps/map_files/MetaStation/MetaStation.dmm
@@ -90621,11 +90621,9 @@
/turf/open/floor/mineral/titanium/blue,
/area/shuttle/transport)
"cZw" = (
-/turf/closed/wall/shuttle{
- icon_state = "swall_s9";
- dir = 2
- },
-/area/shuttle/transport)
+/mob/living/simple_animal/sloth/citrus,
+/turf/open/floor/plasteel,
+/area/quartermaster/storage)
"cZx" = (
/obj/machinery/portable_atmospherics/canister/nitrous_oxide,
/turf/open/floor/plasteel/bot,
@@ -111412,7 +111410,7 @@ aNp
aNp
aLI
aNp
-aNp
+cZw
aYC
bal
bbN
diff --git a/_maps/map_files/TgStation/tgstation.2.1.3.dmm b/_maps/map_files/TgStation/tgstation.2.1.3.dmm
index 4146891a1c3..81634727e58 100644
--- a/_maps/map_files/TgStation/tgstation.2.1.3.dmm
+++ b/_maps/map_files/TgStation/tgstation.2.1.3.dmm
@@ -5756,12 +5756,9 @@
/turf/open/floor/plasteel/black,
/area/shuttle/labor)
"ama" = (
-/obj/machinery/atmospherics/components/binary/pump{
- name = "Waste to Filtering";
- on = 1
- },
+/mob/living/simple_animal/sloth/paperwork,
/turf/open/floor/plasteel,
-/area/atmos)
+/area/quartermaster/storage)
"amb" = (
/obj/machinery/atmospherics/components/unary/vent_scrubber{
dir = 4;
@@ -81130,7 +81127,7 @@ bgy
aZE
bjr
bjr
-bjr
+ama
bmh
bjr
bjr
diff --git a/code/__DEFINES/contracts.dm b/code/__DEFINES/contracts.dm
index cba98a29b24..629493cc603 100644
--- a/code/__DEFINES/contracts.dm
+++ b/code/__DEFINES/contracts.dm
@@ -15,7 +15,7 @@
#define BANE_TOOLBOX "toolbox"
#define OBLIGATION_FOOD "food"
-#define OBLIGATION_DRINK "drink"
+#define OBLIGATION_FIDDLE "fiddle"
#define OBLIGATION_GREET "greet"
#define OBLIGATION_PRESENCEKNOWN "presenceknown"
#define OBLIGATION_SAYNAME "sayname"
diff --git a/code/__DEFINES/layers.dm b/code/__DEFINES/layers.dm
index 0d0b54b8ee0..64866abc94e 100644
--- a/code/__DEFINES/layers.dm
+++ b/code/__DEFINES/layers.dm
@@ -1,6 +1,9 @@
-//Defines for atom layers
+//Defines for atom layers and planes
//KEEP THESE IN A NICE ACSCENDING ORDER, PLEASE
+#define CLICKCATCHER_PLANE -99
+
+#define GAME_PLANE 0
//#define TURF_LAYER 2 //For easy recordkeeping; this is a byond define
#define MID_TURF_LAYER 2.02
#define HIGH_TURF_LAYER 2.03
@@ -47,14 +50,20 @@
#define AREA_LAYER 10
#define MASSIVE_OBJ_LAYER 11
#define POINT_LAYER 12
+
+#define LIGHTING_PLANE 15
#define LIGHTING_LAYER 15
//HUD layer defines
-#define COLORED_VISION_LAYER 17.8
-#define FLASH_LAYER 17.9
-#define FULLSCREEN_LAYER 18
-#define UI_DAMAGE_LAYER 18.1
-#define BLIND_LAYER 18.2
-#define CRIT_LAYER 18.3
+
+#define FULLSCREEN_PLANE 18
+#define FLASH_LAYER 18
+#define FULLSCREEN_LAYER 18.1
+#define UI_DAMAGE_LAYER 18.2
+#define BLIND_LAYER 18.3
+#define CRIT_LAYER 18.4
+
+#define HUD_PLANE 19
#define HUD_LAYER 19
-#define ABOVE_HUD_LAYER 19.1
+#define ABOVE_HUD_PLANE 20
+#define ABOVE_HUD_LAYER 20
diff --git a/code/__HELPERS/pronouns.dm b/code/__HELPERS/pronouns.dm
index 0bb4b3b9184..c2c6eb234a2 100644
--- a/code/__HELPERS/pronouns.dm
+++ b/code/__HELPERS/pronouns.dm
@@ -21,6 +21,9 @@
/datum/proc/p_are(temp_gender)
. = "is"
+/datum/proc/p_were(temp_gender)
+ . = "was"
+
/datum/proc/p_theyre(capitalized, temp_gender)
. = p_they(capitalized, temp_gender) + "'" + copytext(p_are(temp_gender), 2)
@@ -78,6 +81,13 @@
if(temp_gender == PLURAL || temp_gender == NEUTER)
. = "are"
+/client/p_were(temp_gender)
+ if(!temp_gender)
+ temp_gender = gender
+ . = "was"
+ if(temp_gender == PLURAL || temp_gender == NEUTER)
+ . = "were"
+
/client/p_s(temp_gender)
if(!temp_gender)
temp_gender = gender
@@ -141,6 +151,13 @@
if(temp_gender == PLURAL)
. = "are"
+/mob/p_were(temp_gender)
+ if(!temp_gender)
+ temp_gender = gender
+ . = "was"
+ if(temp_gender == PLURAL)
+ . = "were"
+
/mob/p_s(temp_gender)
if(!temp_gender)
temp_gender = gender
@@ -183,6 +200,13 @@
temp_gender = PLURAL
return ..()
+/mob/living/carbon/human/p_were(temp_gender)
+ var/list/obscured = check_obscured_slots()
+ var/skipface = (wear_mask && (wear_mask.flags_inv & HIDEFACE)) || (head && (head.flags_inv & HIDEFACE))
+ if((slot_w_uniform in obscured) && skipface)
+ temp_gender = PLURAL
+ return ..()
+
/mob/living/carbon/human/p_s(temp_gender)
var/list/obscured = check_obscured_slots()
var/skipface = (wear_mask && (wear_mask.flags_inv & HIDEFACE)) || (head && (head.flags_inv & HIDEFACE))
diff --git a/code/__HELPERS/unsorted.dm b/code/__HELPERS/unsorted.dm
index c61184476ee..1cc608b007d 100644
--- a/code/__HELPERS/unsorted.dm
+++ b/code/__HELPERS/unsorted.dm
@@ -926,25 +926,29 @@ var/list/WALLITEMS_INVERSE = list(
return "white"
/proc/params2turf(scr_loc, turf/origin)
+ if(!scr_loc)
+ return null
var/tX = splittext(scr_loc, ",")
var/tY = splittext(tX[2], ":")
var/tZ = origin.z
tY = tY[1]
tX = splittext(tX[1], ":")
tX = tX[1]
- tX = max(1, min(world.maxx, origin.x + (text2num(tX) - (world.view + 1))))
- tY = max(1, min(world.maxy, origin.y + (text2num(tY) - (world.view + 1))))
+ tX = Clamp(origin.x + text2num(tX) - world.view + 1, 1, world.maxx)
+ tY = Clamp(origin.y + text2num(tY) - world.view + 1, 1, world.maxy)
return locate(tX, tY, tZ)
/proc/screen_loc2turf(text, turf/origin)
+ if(!text)
+ return null
var/tZ = splittext(text, ",")
var/tX = splittext(tZ[1], "-")
var/tY = text2num(tX[2])
tX = splittext(tZ[2], "-")
tX = text2num(tX[2])
tZ = origin.z
- tX = max(1, min(origin.x + 7 - tX, world.maxx))
- tY = max(1, min(origin.y + 7 - tY, world.maxy))
+ tX = Clamp(origin.x + 7 - tX, 1, world.maxx)
+ tY = Clamp(origin.y + 7 - tY, 1, world.maxy)
return locate(tX, tY, tZ)
/proc/IsValidSrc(datum/D)
diff --git a/code/_onclick/_defines.dm b/code/_onclick/_defines.dm
deleted file mode 100644
index 3c76c35e807..00000000000
--- a/code/_onclick/_defines.dm
+++ /dev/null
@@ -1 +0,0 @@
-#define CLICKCATCHER_PLANE -99
\ No newline at end of file
diff --git a/code/_onclick/click.dm b/code/_onclick/click.dm
index 3300602476c..a6189669b74 100644
--- a/code/_onclick/click.dm
+++ b/code/_onclick/click.dm
@@ -346,15 +346,11 @@
icon_state = "click_catcher"
plane = CLICKCATCHER_PLANE
mouse_opacity = 2
- screen_loc = "CENTER-7,CENTER-7"
+ screen_loc = "CENTER"
-/obj/screen/click_catcher/proc/MakeGreed()
- . = list()
- for(var/i = 0, i<15, i++)
- for(var/j = 0, j<15, j++)
- var/obj/screen/click_catcher/CC = new()
- CC.screen_loc = "NORTH-[i],EAST-[j]"
- . += CC
+/obj/screen/click_catcher/New()
+ ..()
+ transform = matrix(200, 0, 0, 0, 200, 0)
/obj/screen/click_catcher/Click(location, control, params)
var/list/modifiers = params2list(params)
@@ -362,7 +358,7 @@
var/mob/living/carbon/C = usr
C.swap_hand()
else
- var/turf/T = screen_loc2turf(screen_loc, get_turf(usr))
+ var/turf/T = params2turf(modifiers["screen-loc"], get_turf(usr))
if(T)
T.Click(location, control, params)
. = 1
\ No newline at end of file
diff --git a/code/_onclick/hud/alert.dm b/code/_onclick/hud/alert.dm
index 2e99889a323..b9ca95d4439 100644
--- a/code/_onclick/hud/alert.dm
+++ b/code/_onclick/hud/alert.dm
@@ -37,9 +37,12 @@
if(new_master)
var/old_layer = new_master.layer
+ var/old_plane = new_master.plane
new_master.layer = FLOAT_LAYER
+ new_master.plane = FLOAT_PLANE
alert.overlays += new_master
new_master.layer = old_layer
+ new_master.plane = old_plane
alert.icon_state = "template" // We'll set the icon to the client's ui pref in reorganize_alerts()
alert.master = new_master
else
diff --git a/code/_onclick/hud/blob_overmind.dm b/code/_onclick/hud/blob_overmind.dm
index a375374ba22..c3cc3851dc4 100644
--- a/code/_onclick/hud/blob_overmind.dm
+++ b/code/_onclick/hud/blob_overmind.dm
@@ -132,6 +132,7 @@
blobpwrdisplay.screen_loc = ui_health
blobpwrdisplay.mouse_opacity = 0
blobpwrdisplay.layer = ABOVE_HUD_LAYER
+ blobpwrdisplay.plane = ABOVE_HUD_PLANE
infodisplay += blobpwrdisplay
healths = new /obj/screen/healths/blob()
diff --git a/code/_onclick/hud/devil.dm b/code/_onclick/hud/devil.dm
index ec2597b1975..ee01b27097b 100644
--- a/code/_onclick/hud/devil.dm
+++ b/code/_onclick/hud/devil.dm
@@ -25,6 +25,7 @@
using.icon_state = "swap_1_m"
using.screen_loc = ui_swaphand_position(owner,1)
using.layer = HUD_LAYER
+ using.plane = HUD_PLANE
static_inventory += using
using = new /obj/screen/inventory()
@@ -33,6 +34,7 @@
using.icon_state = "swap_2"
using.screen_loc = ui_swaphand_position(owner,2)
using.layer = HUD_LAYER
+ using.plane = HUD_PLANE
static_inventory += using
zone_select = new /obj/screen/zone_sel()
diff --git a/code/_onclick/hud/fullscreen.dm b/code/_onclick/hud/fullscreen.dm
index 9ceaa67bf6a..5461276f1b1 100644
--- a/code/_onclick/hud/fullscreen.dm
+++ b/code/_onclick/hud/fullscreen.dm
@@ -60,6 +60,7 @@
icon_state = "default"
screen_loc = "CENTER-7,CENTER-7"
layer = FULLSCREEN_LAYER
+ plane = FULLSCREEN_PLANE
mouse_opacity = 0
var/severity = 0
@@ -71,18 +72,22 @@
/obj/screen/fullscreen/brute
icon_state = "brutedamageoverlay"
layer = UI_DAMAGE_LAYER
+ plane = FULLSCREEN_PLANE
/obj/screen/fullscreen/oxy
icon_state = "oxydamageoverlay"
layer = UI_DAMAGE_LAYER
+ plane = FULLSCREEN_PLANE
/obj/screen/fullscreen/crit
icon_state = "passage"
layer = CRIT_LAYER
+ plane = FULLSCREEN_PLANE
/obj/screen/fullscreen/blind
icon_state = "blackimageoverlay"
layer = BLIND_LAYER
+ plane = FULLSCREEN_PLANE
/obj/screen/fullscreen/impaired
icon_state = "impairedoverlay"
diff --git a/code/_onclick/hud/hud.dm b/code/_onclick/hud/hud.dm
index 0dfb1dbb14a..fa29b7e2cec 100644
--- a/code/_onclick/hud/hud.dm
+++ b/code/_onclick/hud/hud.dm
@@ -42,6 +42,7 @@
var/list/screenoverlays = list() //the screen objects used as whole screen overlays (flash, damageoverlay, etc...)
var/list/inv_slots[slots_amt] // /obj/screen/inventory objects, ordered by their slot ID.
var/list/hand_slots // /obj/screen/inventory/hand objects, assoc list of "[held_index]" = object
+ var/list/obj/screen/plane_master/plane_masters = list() // see "appearance_flags" in the ref, assoc list of "[plane]" = object
var/obj/screen/movable/action_button/hide_toggle/hide_actions_toggle
var/action_buttons_hidden = 0
@@ -55,6 +56,9 @@
hide_actions_toggle = new
hide_actions_toggle.InitialiseIcon(mymob)
hand_slots = list()
+ for(var/mytype in subtypesof(/obj/screen/plane_master))
+ var/obj/screen/plane_master/instance = new mytype()
+ plane_masters["[instance.plane]"] = instance
/datum/hud/Destroy()
if(mymob.hud_used == src)
@@ -108,6 +112,11 @@
deity_follower_display = null
nightvisionicon = null
+ if(plane_masters.len)
+ for(var/thing in plane_masters)
+ qdel(plane_masters[thing])
+ plane_masters.Cut()
+
if(screenoverlays.len)
for(var/thing in screenoverlays)
qdel(thing)
@@ -184,6 +193,9 @@
if(infodisplay.len)
screenmob.client.screen -= infodisplay
+ if(plane_masters.len)
+ for(var/thing in plane_masters)
+ screenmob.client.screen += plane_masters[thing]
hud_version = display_hud_version
persistant_inventory_update(screenmob)
mymob.update_action_buttons(1)
diff --git a/code/_onclick/hud/plane_master.dm b/code/_onclick/hud/plane_master.dm
new file mode 100644
index 00000000000..eda44bda065
--- /dev/null
+++ b/code/_onclick/hud/plane_master.dm
@@ -0,0 +1,28 @@
+/obj/screen/plane_master
+ screen_loc = "CENTER"
+ icon_state = "blank"
+ appearance_flags = PLANE_MASTER|NO_CLIENT_COLOR
+ blend_mode = BLEND_OVERLAY
+
+/obj/screen/plane_master/New()
+ if(blend_mode == BLEND_MULTIPLY)
+ //What is this? Read http://www.byond.com/forum/?post=2141928
+ var/image/backdrop = image('icons/mob/screen_gen.dmi', "black")
+ backdrop.transform = matrix(200, 0, 0, 0, 200, 0)
+ backdrop.layer = BACKGROUND_LAYER
+ backdrop.blend_mode = BLEND_OVERLAY
+ overlays += backdrop
+ ..()
+
+/obj/screen/plane_master/game_world
+ name = "game world plane master"
+ plane = GAME_PLANE
+ blend_mode = BLEND_OVERLAY
+
+/obj/screen/plane_master/lighting
+ name = "lighting plane master"
+ plane = LIGHTING_PLANE
+ blend_mode = BLEND_OVERLAY
+// blend_mode = BLEND_MULTIPLY
+// color = list(1,0,0,0, 0,1,0,0, 0,0,1,0, 0,0,0,0, 0.1,0.1,0.1,0)
+ mouse_opacity = 0
diff --git a/code/_onclick/hud/robot.dm b/code/_onclick/hud/robot.dm
index 93292a2ee4a..15a42655b4c 100644
--- a/code/_onclick/hud/robot.dm
+++ b/code/_onclick/hud/robot.dm
@@ -222,6 +222,7 @@
else
A.screen_loc = "CENTER+[x]:16,SOUTH+[y]:7"
A.layer = ABOVE_HUD_LAYER
+ A.plane = ABOVE_HUD_PLANE
x++
if(x == 4)
diff --git a/code/_onclick/hud/screen_objects.dm b/code/_onclick/hud/screen_objects.dm
index dc40fa92d96..20d98bd9ebf 100644
--- a/code/_onclick/hud/screen_objects.dm
+++ b/code/_onclick/hud/screen_objects.dm
@@ -10,6 +10,7 @@
name = ""
icon = 'icons/mob/screen_gen.dmi'
layer = ABOVE_HUD_LAYER
+ plane = ABOVE_HUD_PLANE
resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF
appearance_flags = APPEARANCE_UI
var/obj/master = null //A reference to the object in the slot. Grabs or items, generally.
@@ -33,6 +34,7 @@
/obj/screen/swap_hand
layer = HUD_LAYER
+ plane = HUD_PLANE
name = "swap hand"
/obj/screen/swap_hand/Click()
@@ -81,6 +83,7 @@
var/icon_empty // Icon when empty. For now used only by humans.
var/icon_full // Icon when contains an item. For now used only by humans.
layer = HUD_LAYER
+ plane = HUD_PLANE
/obj/screen/inventory/Click()
// At this point in client Click() code we have passed the 1/10 sec check and little else
@@ -169,6 +172,7 @@
icon = 'icons/mob/screen_midnight.dmi'
icon_state = "act_drop"
layer = HUD_LAYER
+ plane = HUD_PLANE
/obj/screen/drop/Click()
usr.drop_item_v()
@@ -306,6 +310,7 @@
icon = 'icons/mob/screen_midnight.dmi'
icon_state = "act_resist"
layer = HUD_LAYER
+ plane = HUD_PLANE
/obj/screen/resist/Click()
if(isliving(usr))
@@ -422,6 +427,7 @@
blend_mode = BLEND_ADD
screen_loc = "WEST,SOUTH to EAST,NORTH"
layer = FLASH_LAYER
+ plane = FULLSCREEN_PLANE
/obj/screen/damageoverlay
icon = 'icons/mob/screen_full.dmi'
@@ -431,6 +437,7 @@
screen_loc = "CENTER-7,CENTER-7"
mouse_opacity = 0
layer = UI_DAMAGE_LAYER
+ plane = FULLSCREEN_PLANE
/obj/screen/healths
name = "health"
@@ -489,6 +496,7 @@
/obj/screen/wheel
name = "wheel"
layer = HUD_LAYER
+ plane = HUD_PLANE
icon_state = ""
screen_loc = null //if you make a new wheel, remember to give it a screen_loc
var/list/buttons_names = list() //list of the names for each button, its length is the amount of buttons.
@@ -585,6 +593,7 @@
name = "default wheel button"
screen_loc = "8,8"
layer = HUD_LAYER
+ plane = HUD_PLANE
mouse_opacity = 2
var/obj/screen/wheel/wheel
diff --git a/code/_onclick/telekinesis.dm b/code/_onclick/telekinesis.dm
index 0b050c9322f..89a23721df7 100644
--- a/code/_onclick/telekinesis.dm
+++ b/code/_onclick/telekinesis.dm
@@ -72,6 +72,7 @@ var/const/tk_maxrange = 15
//item_state = null
w_class = 10
layer = ABOVE_HUD_LAYER
+ plane = ABOVE_HUD_PLANE
var/last_throw = 0
var/atom/movable/focus = null
@@ -189,7 +190,7 @@ var/const/tk_maxrange = 15
return
/obj/item/tk_grab/suicide_act(mob/user)
- user.visible_message("[user] is using \his telekinesis to choke \himself! It looks like \he's trying to commit suicide.")
+ user.visible_message("[user] is using [user.p_their()] telekinesis to choke [user.p_them()]self! It looks like [user.p_theyre()] trying to commit suicide!")
return (OXYLOSS)
/*Not quite done likely needs to use something thats not get_step_to
diff --git a/code/datums/action.dm b/code/datums/action.dm
index ed4f2416701..34aa8205b0e 100644
--- a/code/datums/action.dm
+++ b/code/datums/action.dm
@@ -138,10 +138,13 @@
..(current_button)
else if(target)
var/obj/item/I = target
- var/old = I.layer
+ var/old_layer = I.layer
+ var/old_plane = I.plane
I.layer = FLOAT_LAYER //AAAH
+ I.plane = FLOAT_PLANE //^ what that guy said
current_button.add_overlay(I)
- I.layer = old
+ I.layer = old_layer
+ I.plane = old_plane
/datum/action/item_action/toggle_light
name = "Toggle Light"
diff --git a/code/datums/mind.dm b/code/datums/mind.dm
index f5fe92b9316..19b8ce2ebd4 100644
--- a/code/datums/mind.dm
+++ b/code/datums/mind.dm
@@ -1101,21 +1101,24 @@
if("clear")
if(src in ticker.mode.devils)
if(istype(current,/mob/living/carbon/true_devil/))
- usr << "This cannot be used on true or arch-devils."
- else
- ticker.mode.devils -= src
- special_role = null
- current << "Your infernal link has been severed! You are no longer a devil!"
- RemoveSpell(/obj/effect/proc_holder/spell/targeted/infernal_jaunt)
- RemoveSpell(/obj/effect/proc_holder/spell/fireball/hellish)
- RemoveSpell(/obj/effect/proc_holder/spell/targeted/summon_contract)
- RemoveSpell(/obj/effect/proc_holder/spell/targeted/summon_pitchfork)
- message_admins("[key_name_admin(usr)] has de-devil'ed [current].")
- devilinfo = null
- if(issilicon(current))
- var/mob/living/silicon/S = current
- S.clear_law_sixsixsix(current)
- log_admin("[key_name(usr)] has de-devil'ed [current].")
+ if(devilinfo)
+ devilinfo.regress_blood_lizard()
+ else
+ usr << "Something went wrong with removing the devil, we were unable to find an attached devilinfo.."
+ ticker.mode.devils -= src
+ special_role = null
+ current << "Your infernal link has been severed! You are no longer a devil!"
+ RemoveSpell(/obj/effect/proc_holder/spell/targeted/infernal_jaunt)
+ RemoveSpell(/obj/effect/proc_holder/spell/fireball/hellish)
+ RemoveSpell(/obj/effect/proc_holder/spell/targeted/summon_contract)
+ RemoveSpell(/obj/effect/proc_holder/spell/targeted/conjure_item/summon_pitchfork)
+ RemoveSpell(/obj/effect/proc_holder/spell/targeted/conjure_item/violin)
+ message_admins("[key_name_admin(usr)] has de-devil'ed [current].")
+ devilinfo = null
+ if(issilicon(current))
+ var/mob/living/silicon/S = current
+ S.clear_law_sixsixsix(current)
+ log_admin("[key_name(usr)] has de-devil'ed [current].")
else if(src in ticker.mode.sintouched)
ticker.mode.sintouched -= src
message_admins("[key_name_admin(usr)] has de-sintouch'ed [current].")
diff --git a/code/game/atoms.dm b/code/game/atoms.dm
index c098493e4d6..71c76881d63 100644
--- a/code/game/atoms.dm
+++ b/code/game/atoms.dm
@@ -1,5 +1,6 @@
/atom
layer = TURF_LAYER
+ plane = GAME_PLANE
var/level = 2
var/flags = 0
var/list/fingerprints
diff --git a/code/game/gamemodes/devil/devilinfo.dm b/code/game/gamemodes/devil/devilinfo.dm
index 313843d580b..1cbc3fe28fa 100644
--- a/code/game/gamemodes/devil/devilinfo.dm
+++ b/code/game/gamemodes/devil/devilinfo.dm
@@ -17,7 +17,7 @@ var/global/list/allDevils = list()
var/global/list/lawlorify = list (
LORE = list(
OBLIGATION_FOOD = "This devil seems to always offer it's victims food before slaughtering them.",
- OBLIGATION_DRINK = "This devil seems to always offer it's victims a drink before slaughtering them.",
+ OBLIGATION_FIDDLE = "This devil will never turn down a musical challenge.",
OBLIGATION_GREET = "This devil seems to only be able to converse with people it knows the name of.",
OBLIGATION_PRESENCEKNOWN = "This devil seems to be unable to attack from stealth.",
OBLIGATION_SAYNAME = "He will always chant his name upon killing someone.",
@@ -47,7 +47,7 @@ var/global/list/lawlorify = list (
),
LAW = list(
OBLIGATION_FOOD = "When not acting in self defense, you must always offer your victim food before harming them.",
- OBLIGATION_DRINK = "When not acting in self defense, you must always offer your victim drink before harming them.",
+ OBLIGATION_FIDDLE = "When not in immediate danger, if you are challenged to a musical duel, you must accept it. You are not obligated to duel the same person twice.",
OBLIGATION_GREET = "You must always greet other people by their last name before talking with them.",
OBLIGATION_PRESENCEKNOWN = "You must always make your presence known before attacking.",
OBLIGATION_SAYNAME = "You must always say your true name after you kill someone.",
@@ -128,7 +128,7 @@ var/global/list/lawlorify = list (
return preTitle + title + mainName + suffix
/proc/randomdevilobligation()
- return pick(OBLIGATION_FOOD, OBLIGATION_DRINK, OBLIGATION_GREET, OBLIGATION_PRESENCEKNOWN, OBLIGATION_SAYNAME, OBLIGATION_ANNOUNCEKILL, OBLIGATION_ANSWERTONAME)
+ return pick(OBLIGATION_FOOD, OBLIGATION_FIDDLE, OBLIGATION_GREET, OBLIGATION_PRESENCEKNOWN, OBLIGATION_SAYNAME, OBLIGATION_ANNOUNCEKILL, OBLIGATION_ANSWERTONAME)
/proc/randomdevilban()
return pick(BAN_HURTWOMAN, BAN_CHAPEL, BAN_HURTPRIEST, BAN_AVOIDWATER, BAN_STRIKEUNCONCIOUS, BAN_HURTLIZARD, BAN_HURTANIMAL)
@@ -289,7 +289,7 @@ var/global/list/lawlorify = list (
/datum/devilinfo/proc/remove_spells()
for(var/X in owner.spell_list)
var/obj/effect/proc_holder/spell/S = X
- if(!istype(S, /obj/effect/proc_holder/spell/targeted/summon_contract))
+ if(!istype(S, /obj/effect/proc_holder/spell/targeted/summon_contract) && !istype(S, /obj/effect/proc_holder/spell/targeted/conjure_item/violin))
owner.RemoveSpell(S)
/datum/devilinfo/proc/give_summon_contract()
@@ -299,26 +299,28 @@ var/global/list/lawlorify = list (
/datum/devilinfo/proc/give_base_spells(give_summon_contract = 0)
remove_spells()
owner.AddSpell(new /obj/effect/proc_holder/spell/fireball/hellish(null))
- owner.AddSpell(new /obj/effect/proc_holder/spell/targeted/summon_pitchfork(null))
+ owner.AddSpell(new /obj/effect/proc_holder/spell/targeted/conjure_item/summon_pitchfork(null))
if(give_summon_contract)
give_summon_contract()
+ if (obligation == OBLIGATION_FIDDLE)
+ owner.AddSpell(new /obj/effect/proc_holder/spell/targeted/conjure_item/violin(null))
/datum/devilinfo/proc/give_lizard_spells()
remove_spells()
- owner.AddSpell(new /obj/effect/proc_holder/spell/targeted/summon_pitchfork(null))
+ owner.AddSpell(new /obj/effect/proc_holder/spell/targeted/conjure_item/summon_pitchfork(null))
owner.AddSpell(new /obj/effect/proc_holder/spell/fireball/hellish(null))
owner.AddSpell(new /obj/effect/proc_holder/spell/targeted/infernal_jaunt(null))
/datum/devilinfo/proc/give_true_spells()
remove_spells()
- owner.AddSpell(new /obj/effect/proc_holder/spell/targeted/summon_pitchfork/greater(null))
+ owner.AddSpell(new /obj/effect/proc_holder/spell/targeted/conjure_item/summon_pitchfork/greater(null))
owner.AddSpell(new /obj/effect/proc_holder/spell/fireball/hellish(null))
owner.AddSpell(new /obj/effect/proc_holder/spell/targeted/infernal_jaunt(null))
owner.AddSpell(new /obj/effect/proc_holder/spell/targeted/sintouch(null))
/datum/devilinfo/proc/give_arch_spells()
remove_spells()
- owner.AddSpell(new /obj/effect/proc_holder/spell/targeted/summon_pitchfork/ascended(null))
+ owner.AddSpell(new /obj/effect/proc_holder/spell/targeted/conjure_item/summon_pitchfork/ascended(null))
owner.AddSpell(new /obj/effect/proc_holder/spell/targeted/sintouch/ascended(null))
/datum/devilinfo/proc/beginResurrectionCheck(mob/living/body)
diff --git a/code/game/gamemodes/devil/true_devil/inventory.dm b/code/game/gamemodes/devil/true_devil/inventory.dm
index ca417e09fbf..52feb42e289 100644
--- a/code/game/gamemodes/devil/true_devil/inventory.dm
+++ b/code/game/gamemodes/devil/true_devil/inventory.dm
@@ -23,6 +23,7 @@
if(client && hud_used && hud_used.hud_version != HUD_STYLE_NOHUD)
r_hand.layer = ABOVE_HUD_LAYER
+ r_hand.plane = ABOVE_HUD_PLANE
r_hand.screen_loc = ui_hand_position(get_held_index_of_item(r_hand))
client.screen |= r_hand
@@ -38,6 +39,7 @@
if(client && hud_used && hud_used.hud_version != HUD_STYLE_NOHUD)
l_hand.layer = ABOVE_HUD_LAYER
+ l_hand.plane = ABOVE_HUD_PLANE
l_hand.screen_loc = ui_hand_position(get_held_index_of_item(l_hand))
client.screen |= l_hand
if(hands_overlays.len)
diff --git a/code/game/gamemodes/nuclear/nuclearbomb.dm b/code/game/gamemodes/nuclear/nuclearbomb.dm
index 2d3cdeb8c9a..8672b2110d7 100644
--- a/code/game/gamemodes/nuclear/nuclearbomb.dm
+++ b/code/game/gamemodes/nuclear/nuclearbomb.dm
@@ -512,8 +512,7 @@ This is here to make the tiles around the station mininuke change when it's arme
return ..()
/obj/item/weapon/disk/nuclear/suicide_act(mob/user)
- user.visible_message("[user] is \
- going delta! It looks like they're comitting suicide.")
+ user.visible_message("[user] is going delta! It looks like [user.p_theyre()] trying to commit suicide!")
playsound(user.loc, 'sound/machines/Alarm.ogg', 50, -1, 1)
var/end_time = world.time + 100
while(world.time < end_time)
@@ -522,8 +521,7 @@ This is here to make the tiles around the station mininuke change when it's arme
user.add_atom_colour(RANDOM_COLOUR, ADMIN_COLOUR_PRIORITY)
sleep(1)
user.remove_atom_colour(ADMIN_COLOUR_PRIORITY)
- user.visible_message("[user] was destroyed \
- by the nuclear blast!")
+ user.visible_message("[user] was destroyed by the nuclear blast!")
return OXYLOSS
/obj/item/weapon/disk/nuclear/process()
diff --git a/code/game/gamemodes/sandbox/h_sandbox.dm b/code/game/gamemodes/sandbox/h_sandbox.dm
index d13a9d588fd..aae7317c5f4 100644
--- a/code/game/gamemodes/sandbox/h_sandbox.dm
+++ b/code/game/gamemodes/sandbox/h_sandbox.dm
@@ -143,30 +143,38 @@ var/hsboxspawn = 1
if(P.wear_suit)
P.wear_suit.loc = P.loc
P.wear_suit.layer = initial(P.wear_suit.layer)
+ P.wear_suit.plane = initial(P.wear_suit.plane)
P.wear_suit = null
P.wear_suit = new/obj/item/clothing/suit/space(P)
P.wear_suit.layer = ABOVE_HUD_LAYER
+ P.wear_suit.plane = ABOVE_HUD_PLANE
P.update_inv_wear_suit()
if(P.head)
P.head.loc = P.loc
P.head.layer = initial(P.head.layer)
+ P.head.plane = initial(P.head.plane)
P.head = null
P.head = new/obj/item/clothing/head/helmet/space(P)
P.head.layer = ABOVE_HUD_LAYER
+ P.head.plane = ABOVE_HUD_PLANE
P.update_inv_head()
if(P.wear_mask)
P.wear_mask.loc = P.loc
P.wear_mask.layer = initial(P.wear_mask.layer)
+ P.wear_mask.plane = initial(P.wear_mask.plane)
P.wear_mask = null
P.wear_mask = new/obj/item/clothing/mask/gas(P)
P.wear_mask.layer = ABOVE_HUD_LAYER
+ P.wear_mask.plane = ABOVE_HUD_PLANE
P.update_inv_wear_mask()
if(P.back)
P.back.loc = P.loc
P.back.layer = initial(P.back.layer)
+ P.back.plane = initial(P.back.plane)
P.back = null
P.back = new/obj/item/weapon/tank/jetpack/oxygen(P)
P.back.layer = ABOVE_HUD_LAYER
+ P.back.plane = ABOVE_HUD_PLANE
P.update_inv_back()
P.internal = P.back
P.update_internals_hud_icon(1)
diff --git a/code/game/machinery/cloning.dm b/code/game/machinery/cloning.dm
index e82965faa41..8e34e987413 100644
--- a/code/game/machinery/cloning.dm
+++ b/code/game/machinery/cloning.dm
@@ -103,13 +103,10 @@
/obj/machinery/clonepod/examine(mob/user)
..()
- if (isnull(occupant) || !is_operational())
- return
- if ((!isnull(occupant)) && (occupant.stat != DEAD))
+ if(mess)
+ user << "It's filled with blood and viscera. You swear you can see it moving..."
+ if (is_operational() && (!isnull(occupant)) && (occupant.stat != DEAD))
user << "Current clone cycle is [round(get_completion())]% complete."
- else if(mess)
- user << "It's filled with blood and vicerea. You swear you can see \
- it moving..."
/obj/machinery/clonepod/proc/get_completion()
. = (100 * ((occupant.health + 100) / (heal_level + 100)))
@@ -136,6 +133,12 @@
var/mob/dead/observer/G = clonemind.get_ghost()
if(!G)
return FALSE
+ if(clonemind.damnation_type) //Can't clone the damned.
+ addtimer(0, "horrifyingsound", src)
+ mess = 1
+ icon_state = "pod_g"
+ update_icon()
+ return FALSE
attempting = TRUE //One at a time!!
locked = TRUE
@@ -369,6 +372,13 @@
locked = FALSE
go_out()
+/obj/machinery/clonepod/proc/horrifyingsound()
+ for(var/i in 1 to 5)
+ playsound(loc,pick('sound/hallucinations/growl1.ogg','sound/hallucinations/growl2.ogg','sound/hallucinations/growl3.ogg'), 100, rand(0.95,1.05))
+ sleep(1)
+ sleep(10)
+ playsound(loc,'sound/hallucinations/wail.ogg',100,1)
+
/obj/machinery/clonepod/deconstruct(disassembled = TRUE)
if(occupant)
locked = FALSE
diff --git a/code/game/machinery/newscaster.dm b/code/game/machinery/newscaster.dm
index a81c2d36fc9..9e06b6ad461 100644
--- a/code/game/machinery/newscaster.dm
+++ b/code/game/machinery/newscaster.dm
@@ -899,7 +899,7 @@ var/list/obj/machinery/newscaster/allCasters = list()
var/creationTime
/obj/item/weapon/newspaper/suicide_act(mob/user)
- user.visible_message("[user] is focusing intently on [src]! It looks like they're trying to commit sudoku... until their eyes light up with realization!")
+ user.visible_message("[user] is focusing intently on [src]! It looks like [user.p_theyre()] trying to commit sudoku... until their eyes light up with realization!")
user.say(";JOURNALISM IS MY CALLING! EVERYBODY APPRECIATES UNBIASED REPORTI-GLORF")
var/mob/living/carbon/human/H = user
var/obj/W = new /obj/item/weapon/reagent_containers/food/drinks/bottle/whiskey(H.loc)
diff --git a/code/game/machinery/overview.dm b/code/game/machinery/overview.dm
index f955a12fdf6..708d6c8368d 100644
--- a/code/game/machinery/overview.dm
+++ b/code/game/machinery/overview.dm
@@ -179,6 +179,7 @@
qdel(J)
H.icon = HI
H.layer = ABOVE_HUD_LAYER
+ H.plane = ABOVE_HUD_PLANE
usr.mapobjs += H
#else
@@ -297,6 +298,7 @@
H.icon = I
qdel(I)
H.layer = ABOVE_HUD_LAYER
+ H.plane = ABOVE_HUD_PLANE
usr.mapobjs += H
#endif
diff --git a/code/game/machinery/pipe/construction.dm b/code/game/machinery/pipe/construction.dm
index 5a65ac49bab..5163d2a6f54 100644
--- a/code/game/machinery/pipe/construction.dm
+++ b/code/game/machinery/pipe/construction.dm
@@ -241,8 +241,8 @@ var/global/list/pipeID2State = list(
qdel(src)
/obj/item/pipe/suicide_act(mob/user)
- if (pipe_type in list(PIPE_PUMP, PIPE_PASSIVE_GATE, PIPE_VOLUME_PUMP))
- user.visible_message("[user] shoved the [src] in \his mouth and turned it on! It looks like \he's trying to commit suicide.")
+ if(pipe_type in list(PIPE_PUMP, PIPE_PASSIVE_GATE, PIPE_VOLUME_PUMP))
+ user.visible_message("[user] shoves the [src] in [user.p_their()] mouth and turns it on! It looks like [user.p_theyre()] trying to commit suicide!")
if(istype(user, /mob/living/carbon))
var/mob/living/carbon/C = user
for(var/i=1 to 20)
diff --git a/code/game/objects/items/crayons.dm b/code/game/objects/items/crayons.dm
index 945a2c90644..96399e1c36c 100644
--- a/code/game/objects/items/crayons.dm
+++ b/code/game/objects/items/crayons.dm
@@ -69,7 +69,7 @@
var/post_noise = FALSE
/obj/item/toy/crayon/suicide_act(mob/user)
- user.visible_message("[user] is jamming the [src.name] up \his nose and into \his brain. It looks like \he's trying to commit suicide.")
+ user.visible_message("[user] is jamming [src] up [user.p_their()] nose and into [user.p_their()] brain. It looks like [user.p_theyre()] trying to commit suicide!")
return (BRUTELOSS|OXYLOSS)
/obj/item/toy/crayon/New()
@@ -575,15 +575,11 @@
/obj/item/toy/crayon/spraycan/suicide_act(mob/user)
var/mob/living/carbon/human/H = user
if(is_capped || !actually_paints)
- user.visible_message("[user] shakes up the \
- [src] with a rattle and lifts it to their mouth, but nothing \
- happens!")
+ user.visible_message("[user] shakes up [src] with a rattle and lifts it to [user.p_their()] mouth, but nothing happens!")
user.say("MEDIOCRE!!")
return SHAME
else
- user.visible_message("[user] shakes up the \
- [src] with a rattle and lifts it to their mouth, spraying \
- paint across their teeth!")
+ user.visible_message("[user] shakes up [src] with a rattle and lifts it to [user.p_their()] mouth, spraying paint across [user.p_their()] teeth!")
user.say("WITNESS ME!!")
if(pre_noise || post_noise)
playsound(loc, 'sound/effects/spray.ogg', 5, 1, 5)
diff --git a/code/game/objects/items/devices/chameleonproj.dm b/code/game/objects/items/devices/chameleonproj.dm
index c1727274ae4..1e5e0baccdb 100644
--- a/code/game/objects/items/devices/chameleonproj.dm
+++ b/code/game/objects/items/devices/chameleonproj.dm
@@ -38,6 +38,7 @@
var/obj/temp = new/obj()
temp.appearance = target.appearance
temp.layer = initial(target.layer) // scanning things in your inventory
+ temp.plane = initial(target.plane)
saved_appearance = temp.appearance
/obj/item/device/chameleon/proc/toggle()
diff --git a/code/game/objects/items/devices/instruments.dm b/code/game/objects/items/devices/instruments.dm
index cbdc878dcb3..242bb7bfd91 100644
--- a/code/game/objects/items/devices/instruments.dm
+++ b/code/game/objects/items/devices/instruments.dm
@@ -18,7 +18,7 @@
return ..()
/obj/item/device/instrument/suicide_act(mob/user)
- user.visible_message("[user] begins to play 'Gloomy Sunday'! It looks like \he's trying to commit suicide..")
+ user.visible_message("[user] begins to play 'Gloomy Sunday'! It looks like [user.p_theyre()] trying to commit suicide!")
return (BRUTELOSS)
/obj/item/device/instrument/initialize()
@@ -51,6 +51,13 @@
hitsound = "swing_hit"
instrumentId = "violin"
+/obj/item/device/instrument/violin/golden
+ name = "golden violin"
+ desc = "A golden musical instrument with four strings and a bow. \"The devil went down to space, he was looking for an assistant to grief.\""
+ icon_state = "golden_violin"
+ item_state = "golden_violin"
+ resistance_flags = LAVA_PROOF | FIRE_PROOF | ACID_PROOF
+
/obj/item/device/instrument/guitar
name = "guitar"
desc = "It's made of wood and has bronze strings."
@@ -71,4 +78,4 @@
force = 12
attack_verb = list("played metal on", "shredded", "crashed", "smashed")
hitsound = 'sound/weapons/stringsmash.ogg'
- instrumentId = "eguitar"
\ No newline at end of file
+ instrumentId = "eguitar"
diff --git a/code/game/objects/items/devices/radio/electropack.dm b/code/game/objects/items/devices/radio/electropack.dm
index bfd6135bf14..4bc1983c43b 100644
--- a/code/game/objects/items/devices/radio/electropack.dm
+++ b/code/game/objects/items/devices/radio/electropack.dm
@@ -14,7 +14,7 @@
var/shock_cooldown = 0
/obj/item/device/electropack/suicide_act(mob/user)
- user.visible_message("[user] hooks \himself to the electropack and spams the trigger! It looks like \he's trying to commit suicide..")
+ user.visible_message("[user] hooks [user.p_them()]self to the electropack and spams the trigger! It looks like [user.p_theyre()] trying to commit suicide!")
return (FIRELOSS)
/obj/item/device/electropack/initialize()
@@ -40,7 +40,7 @@
A.icon = 'icons/obj/assemblies.dmi'
if(!user.unEquip(W))
- user << "\the [W] is stuck to your hand, you cannot attach it to \the [src]!"
+ user << "[W] is stuck to your hand, you cannot attach it to [src]!"
return
W.loc = A
W.master = A
diff --git a/code/game/objects/items/stacks/sheets/glass.dm b/code/game/objects/items/stacks/sheets/glass.dm
index bcdce786746..103ecef6bd3 100644
--- a/code/game/objects/items/stacks/sheets/glass.dm
+++ b/code/game/objects/items/stacks/sheets/glass.dm
@@ -294,8 +294,7 @@
sharpness = IS_SHARP
/obj/item/weapon/shard/suicide_act(mob/user)
- user.visible_message(pick("[user] is slitting \his wrists with the shard of glass! It looks like \he's trying to commit suicide.", \
- "[user] is slitting \his throat with the shard of glass! It looks like \he's trying to commit suicide."))
+ user.visible_message("[user] is slitting [user.p_their()] [pick("wrists", "throat")] with the shard of glass! It looks like [user.p_theyre()] trying to commit suicide.")
return (BRUTELOSS)
diff --git a/code/game/objects/items/toys.dm b/code/game/objects/items/toys.dm
index 7fad3b35eb6..a5287918a82 100644
--- a/code/game/objects/items/toys.dm
+++ b/code/game/objects/items/toys.dm
@@ -609,8 +609,7 @@
"Remember, a dog is for life, not just for christmas.")
/obj/item/toy/talking/skeleton/suicide_act(mob/user)
- user.visible_message("[user] is trying to commit \
- suicide with \the [src].")
+ user.visible_message("[user] is trying to commit suicide with [src].")
if(ishuman(user))
var/mob/living/carbon/human/H = user
diff --git a/code/game/objects/items/weapons/RCD.dm b/code/game/objects/items/weapons/RCD.dm
index 443f5f09907..1012b45d416 100644
--- a/code/game/objects/items/weapons/RCD.dm
+++ b/code/game/objects/items/weapons/RCD.dm
@@ -73,7 +73,7 @@ RCD
the RCD blinks yellow."
/obj/item/weapon/rcd/suicide_act(mob/user)
- user.visible_message("[user] sets the RCD to 'Wall' and points it down \his throat! It looks like \he's trying to commit suicide..")
+ user.visible_message("[user] sets the RCD to 'Wall' and points it down [user.p_their()] throat! It looks like [user.p_theyre()] trying to commit suicide..")
return (BRUTELOSS)
/obj/item/weapon/rcd/verb/toggle_window_type()
diff --git a/code/game/objects/items/weapons/RPD.dm b/code/game/objects/items/weapons/RPD.dm
index d631e1bbcaf..e05af6f8e0d 100644
--- a/code/game/objects/items/weapons/RPD.dm
+++ b/code/game/objects/items/weapons/RPD.dm
@@ -169,7 +169,7 @@ var/global/list/RPD_recipes=list(
show_menu(user)
/obj/item/weapon/pipe_dispenser/suicide_act(mob/user)
- user.visible_message("[user] points the end of the RPD down \his throat and presses a button! It looks like \he's trying to commit suicide...")
+ user.visible_message("[user] points the end of the RPD down [user.p_their()] throat and presses a button! It looks like [user.p_theyre()] trying to commit suicide...")
playsound(get_turf(user), 'sound/machines/click.ogg', 50, 1)
playsound(get_turf(user), 'sound/items/Deconstruct.ogg', 50, 1)
return(BRUTELOSS)
diff --git a/code/game/objects/items/weapons/airlock_painter.dm b/code/game/objects/items/weapons/airlock_painter.dm
index 695eaec581f..9fd5f2c82c7 100644
--- a/code/game/objects/items/weapons/airlock_painter.dm
+++ b/code/game/objects/items/weapons/airlock_painter.dm
@@ -34,10 +34,10 @@
//because you're expecting user input.
/obj/item/weapon/airlock_painter/proc/can_use(mob/user)
if(!ink)
- user << "There is no toner cartridge installed in \the [name]!"
+ user << "There is no toner cartridge installed in [src]!"
return 0
else if(ink.charges < 1)
- user << "\The [name] is out of ink!"
+ user << "[src] is out of ink!"
return 0
else
return 1
@@ -46,7 +46,7 @@
var/obj/item/organ/lungs/L = user.getorganslot("lungs")
if(can_use(user) && L)
- user.visible_message("[user] is inhaling toner from \the [name]! It looks like \he's trying to commit suicide.")
+ user.visible_message("[user] is inhaling toner from [src]! It looks like [user.p_theyre()] trying to commit suicide!")
use(user)
// Once you've inhaled the toner, you throw up your lungs
@@ -79,13 +79,13 @@
return (TOXLOSS|OXYLOSS)
else if(can_use(user) && !L)
- user.visible_message("[user] is spraying toner on \himself from \the [name]! It looks like \he's trying to commit suicide.")
+ user.visible_message("[user] is spraying toner on [user.p_them()]self from [src]! It looks like [user.p_theyre()] trying to commit suicide.")
user.reagents.add_reagent("colorful_reagent", 1)
user.reagents.reaction(user, TOUCH, 1)
return TOXLOSS
else
- user.visible_message("[user] is trying to inhale toner from \the [name]! It might be a suicide attempt if \the [name] had any toner.")
+ user.visible_message("[user] is trying to inhale toner from [src]! It might be a suicide attempt if [src] had any toner.")
return SHAME
@@ -107,12 +107,12 @@
/obj/item/weapon/airlock_painter/attackby(obj/item/weapon/W, mob/user, params)
if(istype(W, /obj/item/device/toner))
if(ink)
- user << "\the [name] already contains \a [ink]."
+ user << "[src] already contains \a [ink]."
return
if(!user.unEquip(W))
return
W.loc = src
- user << "You install \the [W] into \the [name]."
+ user << "You install [W] into [src]."
ink = W
playsound(src.loc, 'sound/machines/click.ogg', 50, 1)
else
@@ -123,5 +123,5 @@
playsound(src.loc, 'sound/machines/click.ogg', 50, 1)
ink.loc = user.loc
user.put_in_hands(ink)
- user << "You remove \the [ink] from \the [name]."
+ user << "You remove [ink] from [src]."
ink = null
diff --git a/code/game/objects/items/weapons/cigs_lighters.dm b/code/game/objects/items/weapons/cigs_lighters.dm
index 24cee4a20fd..6a517fc438d 100644
--- a/code/game/objects/items/weapons/cigs_lighters.dm
+++ b/code/game/objects/items/weapons/cigs_lighters.dm
@@ -114,7 +114,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
heat = 1000
/obj/item/clothing/mask/cigarette/suicide_act(mob/user)
- user.visible_message("[user] is huffing the [src.name] as quickly as they can! It looks like \he's trying to give \himself cancer.")
+ user.visible_message("[user] is huffing [src] as quickly as [user.p_they()] can! It looks like [user.p_theyre()] trying to give [user.p_them()]self cancer.")
return (TOXLOSS|OXYLOSS)
/obj/item/clothing/mask/cigarette/New()
@@ -592,7 +592,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
var/emagged = 0 //LET THE GRIEF BEGIN
/obj/item/clothing/mask/vape/suicide_act(mob/user)
- user.visible_message("[user] is puffin hard on dat vape, they trying to join the vape life on a whole notha plane!")//it doesn't give you cancer, it is cancer
+ user.visible_message("[user] is puffin hard on dat vape, [user.p_they()] trying to join the vape life on a whole notha plane!")//it doesn't give you cancer, it is cancer
return (TOXLOSS|OXYLOSS)
diff --git a/code/game/objects/items/weapons/clown_items.dm b/code/game/objects/items/weapons/clown_items.dm
index 8c6dda375f7..55d331bac04 100644
--- a/code/game/objects/items/weapons/clown_items.dm
+++ b/code/game/objects/items/weapons/clown_items.dm
@@ -43,7 +43,7 @@
/obj/item/weapon/soap/suicide_act(mob/user)
user.say(";FFFFFFFFFFFFFFFFUUUUUUUDGE!!")
- user.visible_message("[user] lifts the [src.name] to their mouth and gnaws on it furiously, producing a thick froth! They'll never get that BB gun now!")
+ user.visible_message("[user] lifts [src] to their mouth and gnaws on it furiously, producing a thick froth! [user.p_they(TRUE)]'ll never get that BB gun now!")
PoolOrNew(/obj/effect/particle_effect/foam, loc)
return (TOXLOSS)
@@ -110,7 +110,7 @@
var/cooldowntime = 20
/obj/item/weapon/bikehorn/suicide_act(mob/user)
- user.visible_message("[user] solemnly points the horn at \his temple! It looks like \he's trying to commit suicide..")
+ user.visible_message("[user] solemnly points the horn at [user.p_their()] temple! It looks like [user.p_theyre()] trying to commit suicide!")
playsound(src.loc, honksound, 50, 1)
return (BRUTELOSS)
diff --git a/code/game/objects/items/weapons/courtroom.dm b/code/game/objects/items/weapons/courtroom.dm
index 734a0428179..746ff506c78 100644
--- a/code/game/objects/items/weapons/courtroom.dm
+++ b/code/game/objects/items/weapons/courtroom.dm
@@ -14,7 +14,7 @@
resistance_flags = FLAMMABLE
/obj/item/weapon/gavelhammer/suicide_act(mob/user)
- user.visible_message("[user] has sentenced \himself to death with the [src.name]! It looks like \he's trying to commit suicide.")
+ user.visible_message("[user] has sentenced [user.p_them()]self to death with [src]! It looks like [user.p_theyre()] trying to commit suicide!")
playsound(loc, 'sound/items/gavel.ogg', 50, 1, -1)
return (BRUTELOSS)
@@ -31,7 +31,7 @@
/obj/item/weapon/gavelblock/attackby(obj/item/I, mob/user, params)
if(istype(I, /obj/item/weapon/gavelhammer))
playsound(loc, 'sound/items/gavel.ogg', 100, 1)
- user.visible_message("[user] strikes \the [src] with \the [I].")
+ user.visible_message("[user] strikes [src] with [I].")
user.changeNext_move(CLICK_CD_MELEE)
else
return ..()
\ No newline at end of file
diff --git a/code/game/objects/items/weapons/defib.dm b/code/game/objects/items/weapons/defib.dm
index d23ce40ffc6..543e0fc6951 100644
--- a/code/game/objects/items/weapons/defib.dm
+++ b/code/game/objects/items/weapons/defib.dm
@@ -315,7 +315,7 @@
icon_state = "defibpaddles[wielded]_cooldown"
/obj/item/weapon/twohanded/shockpaddles/suicide_act(mob/user)
- user.visible_message("[user] is putting the live paddles on \his chest! It looks like \he's trying to commit suicide.")
+ user.visible_message("[user] is putting the live paddles on [user.p_their()] chest! It looks like [user.p_theyre()] trying to commit suicide!")
if(req_defib)
defib.deductcharge(revivecost)
playsound(get_turf(src), 'sound/machines/defib_zap.ogg', 50, 1, -1)
diff --git a/code/game/objects/items/weapons/explosives.dm b/code/game/objects/items/weapons/explosives.dm
index d329b466cf3..f9f15d56a7b 100644
--- a/code/game/objects/items/weapons/explosives.dm
+++ b/code/game/objects/items/weapons/explosives.dm
@@ -26,7 +26,7 @@
return ..()
/obj/item/weapon/c4/suicide_act(mob/user)
- user.visible_message("[user] activates the [src.name] and holds it above \his head! It looks like \he's going out with a bang!")
+ user.visible_message("[user] activates the [src.name] and holds it above [user.p_their()] head! It looks like [user.p_theyre()] going out with a bang!")
var/message_say = "FOR NO RAISIN!"
if(user.mind)
if(user.mind.special_role)
diff --git a/code/game/objects/items/weapons/gift.dm b/code/game/objects/items/weapons/gift.dm
index 6da16cb6e4a..2f5ba182a6b 100644
--- a/code/game/objects/items/weapons/gift.dm
+++ b/code/game/objects/items/weapons/gift.dm
@@ -22,7 +22,7 @@
icon_state = "giftdeliverypackage[rand(1,5)]"
/obj/item/weapon/a_gift/suicide_act(mob/user)
- user.visible_message("[user] peeks inside the [src.name] and cries \himself to death! It looks like they were on the naughty list...")
+ user.visible_message("[user] peeks inside [src] and cries [user.p_them()]self to death! It looks like [user.p_they()] [user.p_were()] on the naughty list...")
return (BRUTELOSS)
/obj/item/weapon/a_gift/attack_self(mob/M)
diff --git a/code/game/objects/items/weapons/grenades/ghettobomb.dm b/code/game/objects/items/weapons/grenades/ghettobomb.dm
index a72e63d7684..7a1c1835dac 100644
--- a/code/game/objects/items/weapons/grenades/ghettobomb.dm
+++ b/code/game/objects/items/weapons/grenades/ghettobomb.dm
@@ -34,9 +34,12 @@
var/obj/item/weapon/reagent_containers/food/drinks/soda_cans/can = locate() in contents
if(can)
var/muh_layer = can.layer
+ var/muh_plane = can.plane
can.layer = FLOAT_LAYER
+ can.plane = FLOAT_PLANE
underlays += can
can.layer = muh_layer
+ can.plane = muh_plane
/obj/item/weapon/grenade/iedcasing/attack_self(mob/user) //
diff --git a/code/game/objects/items/weapons/grenades/plastic.dm b/code/game/objects/items/weapons/grenades/plastic.dm
index 5d11b5bdac8..6485502340a 100644
--- a/code/game/objects/items/weapons/grenades/plastic.dm
+++ b/code/game/objects/items/weapons/grenades/plastic.dm
@@ -87,9 +87,9 @@
addtimer(src, "prime", det_time*10)
/obj/item/weapon/grenade/plastic/suicide_act(mob/user)
- message_admins("[key_name_admin(user)](?) (FLW) suicided with [src.name] at ([user.x],[user.y],[user.z] - JMP)",0,1)
- message_admins("[key_name(user)] suicided with [src.name] at ([user.x],[user.y],[user.z])")
- user.visible_message("[user] activates the [src.name] and holds it above \his head! It looks like \he's going out with a bang!")
+ message_admins("[key_name_admin(user)](?) (FLW) suicided with [src] at ([user.x],[user.y],[user.z] - JMP)",0,1)
+ message_admins("[key_name(user)] suicided with [src] at ([user.x],[user.y],[user.z])")
+ user.visible_message("[user] activates [src] and holds it above [user.p_their()] head! It looks like [user.p_theyre()] going out with a bang!")
var/message_say = "FOR NO RAISIN!"
if(user.mind)
if(user.mind.special_role)
diff --git a/code/game/objects/items/weapons/handcuffs.dm b/code/game/objects/items/weapons/handcuffs.dm
index 762832bd4e8..4169ff9a503 100644
--- a/code/game/objects/items/weapons/handcuffs.dm
+++ b/code/game/objects/items/weapons/handcuffs.dm
@@ -248,7 +248,7 @@
icon_state = "[initial(icon_state)][armed]"
/obj/item/weapon/restraints/legcuffs/beartrap/suicide_act(mob/user)
- user.visible_message("[user] is sticking \his head in the [src.name]! It looks like \he's trying to commit suicide.")
+ user.visible_message("[user] is sticking [user.p_their()] head in the [src.name]! It looks like [user.p_theyre()] trying to commit suicide!")
playsound(loc, 'sound/weapons/bladeslice.ogg', 50, 1, -1)
return (BRUTELOSS)
diff --git a/code/game/objects/items/weapons/holy_weapons.dm b/code/game/objects/items/weapons/holy_weapons.dm
index 4df4798b4db..d9061519468 100644
--- a/code/game/objects/items/weapons/holy_weapons.dm
+++ b/code/game/objects/items/weapons/holy_weapons.dm
@@ -11,7 +11,7 @@
var/reskinned = FALSE
/obj/item/weapon/nullrod/suicide_act(mob/user)
- user.visible_message("[user] is killing \himself with \the [src.name]! It looks like \he's trying to get closer to god!")
+ user.visible_message("[user] is killing [user.p_them()]self with [src]! It looks like [user.p_theyre()] trying to get closer to god!")
return (BRUTELOSS|FIRELOSS)
/obj/item/weapon/nullrod/attack_self(mob/user)
diff --git a/code/game/objects/items/weapons/kitchen.dm b/code/game/objects/items/weapons/kitchen.dm
index 4b9189cbe1d..eb11b15cd10 100644
--- a/code/game/objects/items/weapons/kitchen.dm
+++ b/code/game/objects/items/weapons/kitchen.dm
@@ -75,9 +75,9 @@
return ..()
/obj/item/weapon/kitchen/knife/suicide_act(mob/user)
- user.visible_message(pick("[user] is slitting \his wrists with the [src.name]! It looks like \he's trying to commit suicide.", \
- "[user] is slitting \his throat with the [src.name]! It looks like \he's trying to commit suicide.", \
- "[user] is slitting \his stomach open with the [src.name]! It looks like \he's trying to commit seppuku."))
+ user.visible_message(pick("[user] is slitting [user.p_their()] wrists with the [src.name]! It looks like [user.p_theyre()] trying to commit suicide.", \
+ "[user] is slitting [user.p_their()] throat with the [src.name]! It looks like [user.p_theyre()] trying to commit suicide.", \
+ "[user] is slitting [user.p_their()] stomach open with the [src.name]! It looks like [user.p_theyre()] trying to commit seppuku."))
return (BRUTELOSS)
/obj/item/weapon/kitchen/knife/ritual
diff --git a/code/game/objects/items/weapons/melee/energy.dm b/code/game/objects/items/weapons/melee/energy.dm
index 68c264455be..54103242d4d 100644
--- a/code/game/objects/items/weapons/melee/energy.dm
+++ b/code/game/objects/items/weapons/melee/energy.dm
@@ -13,8 +13,7 @@
resistance_flags = FIRE_PROOF
/obj/item/weapon/melee/energy/suicide_act(mob/user)
- user.visible_message(pick("[user] is slitting \his stomach open with [src]! It looks like \he's trying to commit seppuku.", \
- "[user] is falling on [src]! It looks like \he's trying to commit suicide."))
+ user.visible_message("[user] is [pick("slitting [user.p_their()] stomach open with", "falling on")] [src]! It looks like [user.p_theyre()] trying to commit seppuku!")
return (BRUTELOSS|FIRELOSS)
/obj/item/weapon/melee/energy/add_blood(list/blood_dna)
@@ -43,7 +42,7 @@
attack_verb_on = list()
/obj/item/weapon/melee/energy/axe/suicide_act(mob/user)
- user.visible_message("[user] swings the [src.name] towards \his head! It looks like \he's trying to commit suicide.")
+ user.visible_message("[user] swings [src] towards [user.p_their()] head! It looks like [user.p_theyre()] trying to commit suicide!")
return (BRUTELOSS|FIRELOSS)
/obj/item/weapon/melee/energy/sword
diff --git a/code/game/objects/items/weapons/melee/misc.dm b/code/game/objects/items/weapons/melee/misc.dm
index 316d34adde8..d771dc5f025 100644
--- a/code/game/objects/items/weapons/melee/misc.dm
+++ b/code/game/objects/items/weapons/melee/misc.dm
@@ -18,8 +18,8 @@
materials = list(MAT_METAL = 1000)
/obj/item/weapon/melee/chainofcommand/suicide_act(mob/user)
- user.visible_message("[user] is strangling \himself with the [src.name]! It looks like \he's trying to commit suicide.")
- return (OXYLOSS)
+ user.visible_message("[user] is strangling [user.p_them()]self with [src]! It looks like [user.p_theyre()] trying to commit suicide!")
+ return (OXYLOSS)
/obj/item/weapon/melee/synthetic_arm_blade
name = "synthetic arm blade"
@@ -102,8 +102,8 @@
target.Weaken(3)
add_logs(user, target, "stunned", src)
src.add_fingerprint(user)
- target.visible_message("[user] has knocked down [target] with \the [src]!", \
- "[user] has knocked down [target] with \the [src]!")
+ target.visible_message("[user] has knocked down [target] with [src]!", \
+ "[user] has knocked down [target] with [src]!")
if(!iscarbon(user))
target.LAssailant = null
else
@@ -126,7 +126,7 @@
var/mob/living/carbon/human/H = user
var/obj/item/organ/brain/B = H.getorgan(/obj/item/organ/brain)
- user.visible_message("[user] stuffs the [src] up their nose and presses the 'extend' button! It looks like they're trying to clear their mind.")
+ user.visible_message("[user] stuffs [src] up [user.p_their()] nose and presses the 'extend' button! It looks like [user.p_theyre()] trying to clear their mind.")
if(!on)
src.attack_self(user)
else
@@ -179,7 +179,7 @@
..()
shard = new /obj/machinery/power/supermatter_shard(src)
START_PROCESSING(SSobj, src)
- visible_message("\The [src] appears, balanced ever so perfectly on its hilt. This isn't ominous at all.")
+ visible_message("[src] appears, balanced ever so perfectly on its hilt. This isn't ominous at all.")
/obj/item/weapon/melee/supermatter_sword/process()
if(balanced || throwing || ismob(src.loc) || isnull(src.loc))
@@ -213,22 +213,22 @@
balanced = 0
/obj/item/weapon/melee/supermatter_sword/ex_act(severity, target)
- visible_message("\The blast wave smacks into \the [src] and rapidly flashes to ash.",\
+ visible_message("The blast wave smacks into [src] and rapidly flashes to ash.",\
"You hear a loud crack as you are washed with a wave of heat.")
consume_everything()
/obj/item/weapon/melee/supermatter_sword/acid_act()
- visible_message("\The acid smacks into \the [src] and rapidly flashes to ash.",\
+ visible_message("The acid smacks into [src] and rapidly flashes to ash.",\
"You hear a loud crack as you are washed with a wave of heat.")
consume_everything()
/obj/item/weapon/melee/supermatter_sword/bullet_act(obj/item/projectile/P)
- visible_message("[P] smacks into \the [src] and rapidly flashes to ash.",\
+ visible_message("[P] smacks into [src] and rapidly flashes to ash.",\
"You hear a loud crack as you are washed with a wave of heat.")
consume_everything()
/obj/item/weapon/melee/supermatter_sword/suicide_act(mob/user)
- user.visible_message("[user] touches the [src]'s blade. It looks like they're tired of waiting for the radiation to kill them!")
+ user.visible_message("[user] touches [src]'s blade. It looks like [user.p_theyre()] tired of waiting for the radiation to kill [user.p_them()]!")
user.drop_item()
shard.Bumped(user)
@@ -244,7 +244,7 @@
if(istype(T, T.baseturf))
return //Can't void the void, baby!
playsound(T, 'sound/effects/supermatter.ogg', 50, 1)
- T.visible_message("\The [T] smacks into \the [src] and rapidly flashes to ash.",\
+ T.visible_message("[T] smacks into [src] and rapidly flashes to ash.",\
"You hear a loud crack as you are washed with a wave of heat.")
shard.Consume()
T.ChangeTurf(T.baseturf)
diff --git a/code/game/objects/items/weapons/storage/backpack.dm b/code/game/objects/items/weapons/storage/backpack.dm
index b885b7d51fc..c678ad18a4e 100644
--- a/code/game/objects/items/weapons/storage/backpack.dm
+++ b/code/game/objects/items/weapons/storage/backpack.dm
@@ -45,7 +45,7 @@
/obj/item/weapon/storage/backpack/holding/suicide_act(mob/user)
- user.visible_message("[user] is jumping into [src]! It looks like \he's trying to commit suicide.")
+ user.visible_message("[user] is jumping into [src]! It looks like [user.p_theyre()] trying to commit suicide.")
user.drop_item()
user.Stun(5)
sleep(20)
@@ -100,7 +100,7 @@
max_combined_w_class = 60
/obj/item/weapon/storage/backpack/santabag/suicide_act(mob/user)
- user.visible_message("[user] places the [src.name] over their head and pulls it tight! It looks like they aren't in the Christmas spirit...")
+ user.visible_message("[user] places [src] over their head and pulls it tight! It looks like they aren't in the Christmas spirit...")
return (OXYLOSS)
/obj/item/weapon/storage/backpack/cultpack
diff --git a/code/game/objects/items/weapons/storage/bags.dm b/code/game/objects/items/weapons/storage/bags.dm
index ae1173db001..216e983acba 100644
--- a/code/game/objects/items/weapons/storage/bags.dm
+++ b/code/game/objects/items/weapons/storage/bags.dm
@@ -41,7 +41,7 @@
cant_hold = list(/obj/item/weapon/disk/nuclear)
/obj/item/weapon/storage/bag/trash/suicide_act(mob/user)
- user.visible_message("[user] puts the [src.name] over their head and starts chomping at the insides! Disgusting!")
+ user.visible_message("[user] puts [src] over [user.p_their()] head and starts chomping at the insides! Disgusting!")
playsound(loc, 'sound/items/eatfood.ogg', 50, 1, -1)
return (TOXLOSS)
diff --git a/code/game/objects/items/weapons/storage/book.dm b/code/game/objects/items/weapons/storage/book.dm
index fb83d85e1a1..927f7a74c6c 100644
--- a/code/game/objects/items/weapons/storage/book.dm
+++ b/code/game/objects/items/weapons/storage/book.dm
@@ -20,7 +20,7 @@
var/deity_name = "Christ"
/obj/item/weapon/storage/book/bible/suicide_act(mob/user)
- user.visible_message("[user] is offering \himself to [src.deity_name]! It looks like \he's trying to commit suicide.")
+ user.visible_message("[user] is offering [user.p_them()]self to [deity_name]! It looks like [user.p_theyre()] trying to commit suicide!")
return (BRUTELOSS)
/obj/item/weapon/storage/book/bible/booze
@@ -153,7 +153,7 @@ var/global/list/bibleitemstates = list("bible", "koran", "scrapbook", "bible", "
return
if (user.disabilities & CLUMSY && prob(50))
- user << "The [src] slips out of your hand and hits your head."
+ user << "[src] slips out of your hand and hits your head."
user.take_bodypart_damage(10)
user.Paralyse(20)
return
diff --git a/code/game/objects/items/weapons/storage/boxes.dm b/code/game/objects/items/weapons/storage/boxes.dm
index d8e8a8cfd0c..31ec1007d76 100644
--- a/code/game/objects/items/weapons/storage/boxes.dm
+++ b/code/game/objects/items/weapons/storage/boxes.dm
@@ -566,7 +566,7 @@
foldable = null
/obj/item/weapon/storage/box/hug/suicide_act(mob/user)
- user.visible_message("[user] clamps the box of hugs on \his jugular! Guess it wasn't such a hugbox after all..")
+ user.visible_message("[user] clamps the box of hugs on [user.p_their()] jugular! Guess it wasn't such a hugbox after all..")
return (BRUTELOSS)
/obj/item/weapon/storage/box/hug/attack_self(mob/user)
diff --git a/code/game/objects/items/weapons/storage/storage.dm b/code/game/objects/items/weapons/storage/storage.dm
index bd030784150..dda9c69aa43 100644
--- a/code/game/objects/items/weapons/storage/storage.dm
+++ b/code/game/objects/items/weapons/storage/storage.dm
@@ -166,6 +166,7 @@
for(var/obj/O in contents)
O.screen_loc = "[cx],[cy]"
O.layer = ABOVE_HUD_LAYER
+ O.plane = ABOVE_HUD_PLANE
cx++
if(cx > mx)
cx = tx
@@ -185,6 +186,7 @@
ND.sample_object.screen_loc = "[cx]:16,[cy]:16"
ND.sample_object.maptext = "[(ND.number > 1)? "[ND.number]" : ""]"
ND.sample_object.layer = ABOVE_HUD_LAYER
+ ND.sample_object.plane = ABOVE_HUD_PLANE
cx++
if(cx > (4+cols))
cx = 4
@@ -195,6 +197,7 @@
O.screen_loc = "[cx]:16,[cy]:16"
O.maptext = ""
O.layer = ABOVE_HUD_LAYER
+ O.plane = ABOVE_HUD_PLANE
cx++
if(cx > (4+cols))
cx = 4
@@ -358,6 +361,7 @@
var/mob/M = loc
W.dropped(M)
W.layer = initial(W.layer)
+ W.plane = initial(W.plane)
W.loc = new_location
if(usr)
@@ -483,10 +487,12 @@
boxes.icon_state = "block"
boxes.screen_loc = "7,7 to 10,8"
boxes.layer = HUD_LAYER
+ boxes.plane = HUD_PLANE
closer = new /obj/screen/close()
closer.master = src
closer.icon_state = "backpack_close"
closer.layer = ABOVE_HUD_LAYER
+ closer.plane = ABOVE_HUD_PLANE
orient2hud()
@@ -521,4 +527,4 @@
/obj/item/weapon/storage/contents_explosion(severity, target)
for(var/atom/A in contents)
A.ex_act(severity, target)
- CHECK_TICK
\ No newline at end of file
+ CHECK_TICK
diff --git a/code/game/objects/items/weapons/storage/toolbox.dm b/code/game/objects/items/weapons/storage/toolbox.dm
index 3381b821b2d..856496eb8a2 100644
--- a/code/game/objects/items/weapons/storage/toolbox.dm
+++ b/code/game/objects/items/weapons/storage/toolbox.dm
@@ -15,7 +15,7 @@
hitsound = 'sound/weapons/smash.ogg'
/obj/item/weapon/storage/toolbox/suicide_act(mob/user)
- user.visible_message("[user] robusts \himself with [src]! It looks like \he's trying to commit suicide..")
+ user.visible_message("[user] robusts [user.p_them()]self with [src]! It looks like [user.p_theyre()] trying to commit suicide!")
return (BRUTELOSS)
/obj/item/weapon/storage/toolbox/emergency
diff --git a/code/game/objects/items/weapons/stunbaton.dm b/code/game/objects/items/weapons/stunbaton.dm
index c4118cce190..f7bd5368e37 100644
--- a/code/game/objects/items/weapons/stunbaton.dm
+++ b/code/game/objects/items/weapons/stunbaton.dm
@@ -18,7 +18,7 @@
var/throw_hit_chance = 35
/obj/item/weapon/melee/baton/suicide_act(mob/user)
- user.visible_message("[user] is putting the live [name] in \his mouth! It looks like \he's trying to commit suicide.")
+ user.visible_message("[user] is putting the live [name] in [user.p_their()] mouth! It looks like [user.p_theyre()] trying to commit suicide!")
return (FIRELOSS)
/obj/item/weapon/melee/baton/New()
diff --git a/code/game/objects/items/weapons/tanks/tanks.dm b/code/game/objects/items/weapons/tanks/tanks.dm
index 18b428f311d..4c2f7c5a5d7 100644
--- a/code/game/objects/items/weapons/tanks/tanks.dm
+++ b/code/game/objects/items/weapons/tanks/tanks.dm
@@ -114,7 +114,7 @@
/obj/item/weapon/tank/suicide_act(mob/user)
var/mob/living/carbon/human/H = user
- user.visible_message("[user] is putting the [src]'s valve to their lips! I don't think they're gonna stop!")
+ user.visible_message("[user] is putting [src]'s valve to [user.p_their()] lips! It looks like [user.p_theyre()] trying to commit suicide!")
playsound(loc, 'sound/effects/spray.ogg', 10, 1, -3)
if (H && !qdeleted(H))
for(var/obj/item/W in H)
diff --git a/code/game/objects/items/weapons/tools.dm b/code/game/objects/items/weapons/tools.dm
index 7c225fe21e8..906d25d77d1 100644
--- a/code/game/objects/items/weapons/tools.dm
+++ b/code/game/objects/items/weapons/tools.dm
@@ -32,7 +32,7 @@
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 50, acid = 30)
/obj/item/weapon/wrench/suicide_act(mob/user)
- user.visible_message("[user] is beating \himself to death with the [src]! It looks like \he's trying to commit suicide.")
+ user.visible_message("[user] is beating [user.p_them()]self to death with [src]! It looks like [user.p_theyre()] trying to commit suicide!")
playsound(loc, 'sound/weapons/genhit.ogg', 50, 1, -1)
return (BRUTELOSS)
@@ -64,13 +64,13 @@
/obj/item/weapon/wrench/power/attack_self(mob/user)
playsound(get_turf(user),'sound/items/change_drill.ogg',50,1)
var/obj/item/weapon/wirecutters/power/s_drill = new /obj/item/weapon/screwdriver/power
- user << "You attach the screw driver bit to the [src]."
+ user << "You attach the screw driver bit to [src]."
user.unEquip(src)
user.put_in_active_hand(s_drill)
qdel(src)
obj/item/weapon/wrench/power/suicide_act(mob/user)
- user.visible_message("[user] is pressing the [src] against \his head, it looks like he's trying to drill \his head off")
+ user.visible_message("[user] is pressing [src] against [user.p_their()] head! It looks like [user.p_theyre()] trying to commit suicide!")
return (BRUTELOSS)
/obj/item/weapon/wrench/medical
@@ -83,7 +83,7 @@ obj/item/weapon/wrench/power/suicide_act(mob/user)
attack_verb = list("wrenched", "medicaled", "tapped", "jabbed", "whacked")
/obj/item/weapon/wrench/medical/suicide_act(mob/user)
- user.visible_message("[user] is praying to the medical wrench to take \his soul. It looks like \he's trying to commit suicide.")
+ user.visible_message("[user] is praying to the medical wrench to take [user.p_their()] soul. It looks like [user.p_theyre()] trying to commit suicide!")
// TODO Make them glow with the power of the M E D I C A L W R E N C H
// during their ascension
@@ -134,8 +134,7 @@ obj/item/weapon/wrench/power/suicide_act(mob/user)
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 50, acid = 30)
/obj/item/weapon/screwdriver/suicide_act(mob/user)
- user.visible_message(pick("[user] is stabbing the [src] into \his temple! It looks like \he's trying to commit suicide.", \
- "[user] is stabbing the [src] into \his heart! It looks like \he's trying to commit suicide."))
+ user.visible_message("[user] is stabbing [src] into [user.p_their()] [pick("temple", "heart")]! It looks like [user.p_theyre()] trying to commit suicide!")
return(BRUTELOSS)
/obj/item/weapon/screwdriver/New(loc, var/param_color = null)
@@ -181,13 +180,13 @@ obj/item/weapon/wrench/power/suicide_act(mob/user)
toolspeed = 4
/obj/item/weapon/screwdriver/power/suicide_act(mob/user)
- user.visible_message("[user] is putting the [src] up to \his temple, it looks like they're trying to commit suicide")
+ user.visible_message("[user] is putting [src] to [user.p_their()] temple. It looks like [user.p_theyre()] trying to commit suicide!")
return(BRUTELOSS)
/obj/item/weapon/screwdriver/power/attack_self(mob/user)
playsound(get_turf(user),'sound/items/change_drill.ogg',50,1)
var/obj/item/weapon/wrench/power/b_drill = new /obj/item/weapon/wrench/power
- user << "You attach the bolt driver bit to the [src]."
+ user << "You attach the bolt driver bit to [src]."
user.unEquip(src)
user.put_in_active_hand(b_drill)
qdel(src)
@@ -241,7 +240,7 @@ obj/item/weapon/wrench/power/suicide_act(mob/user)
..()
/obj/item/weapon/wirecutters/suicide_act(mob/user)
- user.visible_message("[user] is cutting at \his arteries with the [src]! It looks like \he's trying to commit suicide.")
+ user.visible_message("[user] is cutting at [user.p_their()] arteries with [src]! It looks like [user.p_theyre()] trying to commit suicide!")
playsound(loc, 'sound/items/Wirecutter.ogg', 50, 1, -1)
return (BRUTELOSS)
@@ -269,21 +268,20 @@ obj/item/weapon/wrench/power/suicide_act(mob/user)
toolspeed = 4
/obj/item/weapon/wirecutters/power/suicide_act(mob/user)
- user.visible_message("[user] is the [src] around \his neck, it looks like \he's trying to rip \his head off!")
+ user.visible_message("[user] is [src] around [user.p_their()] neck. It looks like [user.p_theyre()] trying to rip [user.p_their()] head off!")
playsound(loc, 'sound/items/jaws_cut.ogg', 50, 1, -1)
- var/mob/living/carbon/C = user
- var/obj/item/bodypart/BP = C.get_bodypart("head")
- if(BP)
- BP.drop_limb()// <- i have no idea why this works, but it does
- playsound(loc,pick('sound/misc/desceration-01.ogg','sound/misc/desceration-02.ogg','sound/misc/desceration-01.ogg') ,50, 1, -1)
- else
- user.visible_message("[user] doesn't have a head to cutt off, but dies anyway.")
+ if(iscarbon(user))
+ var/mob/living/carbon/C = user
+ var/obj/item/bodypart/BP = C.get_bodypart("head")
+ if(BP)
+ BP.drop_limb()
+ playsound(loc,pick('sound/misc/desceration-01.ogg','sound/misc/desceration-02.ogg','sound/misc/desceration-01.ogg') ,50, 1, -1)
return (BRUTELOSS)
/obj/item/weapon/wirecutters/power/attack_self(mob/user)
playsound(get_turf(user),"sound/items/change_jaws.ogg",50,1)
var/obj/item/weapon/crowbar/power/pryjaws = new /obj/item/weapon/crowbar/power
- user << "You attach the pry jaws to the [src]."
+ user << "You attach the pry jaws to [src]."
user.unEquip(src)
user.put_in_active_hand(pryjaws)
qdel(src)
@@ -372,7 +370,7 @@ obj/item/weapon/wrench/power/suicide_act(mob/user)
/obj/item/weapon/weldingtool/suicide_act(mob/user)
- user.visible_message("[user] welds \his every orifice closed! It looks like \he's trying to commit suicide..")
+ user.visible_message("[user] welds [user.p_their()] every orifice closed! It looks like [user.p_theyre()] trying to commit suicide!")
return (FIRELOSS)
@@ -554,8 +552,7 @@ obj/item/weapon/weldingtool/proc/switched_off(mob/user)
/obj/item/weapon/weldingtool/ignition_effect(atom/A, mob/user)
if(welding && remove_fuel(1, user))
- . = "[user] casually lights [A] with [src], \
- what a badass."
+ . = "[user] casually lights [A] with [src], what a badass."
else
. = ""
@@ -651,7 +648,7 @@ obj/item/weapon/weldingtool/proc/switched_off(mob/user)
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 50, acid = 30)
/obj/item/weapon/crowbar/suicide_act(mob/user)
- user.visible_message("[user] is beating \himself to death with the [src]! It looks like \he's trying to commit suicide.")
+ user.visible_message("[user] is beating [user.p_them()]self to death with [src]! It looks like [user.p_theyre()] trying to commit suicide!")
playsound(loc, 'sound/weapons/genhit.ogg', 50, 1, -1)
return (BRUTELOSS)
@@ -697,14 +694,14 @@ obj/item/weapon/weldingtool/proc/switched_off(mob/user)
toolspeed = 4
/obj/item/weapon/crowbar/power/suicide_act(mob/user)
- user.visible_message("[user] is putting his head in the [src], it looks like \he's trying to commit suicide!")
+ user.visible_message("[user] is putting [user.p_their()] head in [src], it looks like [user.p_theyre()] trying to commit suicide!")
playsound(loc, 'sound/items/jaws_pry.ogg', 50, 1, -1)
return (BRUTELOSS)
/obj/item/weapon/crowbar/power/attack_self(mob/user)
playsound(get_turf(user),"sound/items/change_jaws.ogg",50,1)
var/obj/item/weapon/wirecutters/power/cutjaws = new /obj/item/weapon/wirecutters/power
- user << "You attach the cutting jaws to the [src]."
+ user << "You attach the cutting jaws to [src]."
user.unEquip(src)
user.put_in_active_hand(cutjaws)
qdel(src)
diff --git a/code/game/objects/items/weapons/twohanded.dm b/code/game/objects/items/weapons/twohanded.dm
index ec802e17b6e..d8f2c0a205f 100644
--- a/code/game/objects/items/weapons/twohanded.dm
+++ b/code/game/objects/items/weapons/twohanded.dm
@@ -44,9 +44,9 @@
if(iscyborg(user))
user << "You free up your module."
else if(istype(src, /obj/item/weapon/twohanded/required))
- user << "You drop \the [name]."
+ user << "You drop [src]."
else
- user << "You are now carrying the [name] with one hand."
+ user << "You are now carrying [src] with one hand."
if(unwieldsound)
playsound(loc, unwieldsound, 50, 1)
var/obj/item/weapon/twohanded/offhand/O = user.get_inactive_held_item()
@@ -72,14 +72,14 @@
name = "[name] (Wielded)"
update_icon()
if(iscyborg(user))
- user << "You dedicate your module to [name]."
+ user << "You dedicate your module to [src]."
else
- user << "You grab the [name] with both hands."
+ user << "You grab [src] with both hands."
if (wieldsound)
playsound(loc, wieldsound, 50, 1)
var/obj/item/weapon/twohanded/offhand/O = new(user) ////Let's reserve his other hand~
O.name = "[name] - offhand"
- O.desc = "Your second grip on the [name]"
+ O.desc = "Your second grip on [src]."
user.put_in_inactive_hand(O)
return
@@ -136,7 +136,7 @@
/obj/item/weapon/twohanded/required/mob_can_equip(mob/M, mob/equipper, slot, disable_warning = 0)
if(wielded && !slot_flags)
- M << "\The [src] is too cumbersome to carry with anything but your hands!"
+ M << "[src] is too cumbersome to carry with anything but your hands!"
return 0
return ..()
@@ -145,7 +145,7 @@
if(get_dist(src,user) > 1)
return 0
if(H != null)
- user << "\The [src] is too cumbersome to carry in one hand!"
+ user << "[src] is too cumbersome to carry in one hand!"
return
if(src.loc != user)
wield(user)
@@ -170,7 +170,7 @@
w_class = 4
slot_flags = SLOT_BACK
force_unwielded = 5
- force_wielded = 24 // Was 18, Buffed - RobRichards/RR
+ force_wielded = 24
attack_verb = list("attacked", "chopped", "cleaved", "torn", "cut")
hitsound = 'sound/weapons/bladeslice.ogg'
sharpness = IS_SHARP
@@ -184,7 +184,7 @@
return
/obj/item/weapon/twohanded/fireaxe/suicide_act(mob/user)
- user.visible_message("[user] axes \himself from head to toe! It looks like \he's trying to commit suicide..")
+ user.visible_message("[user] axes [user.p_them()]self from head to toe! It looks like [user.p_theyre()] trying to commit suicide!")
return (BRUTELOSS)
/obj/item/weapon/twohanded/fireaxe/afterattack(atom/A as mob|obj|turf|area, mob/user, proximity)
@@ -263,7 +263,7 @@
sleep(1)
/obj/item/weapon/twohanded/dualsaber/proc/impale(mob/living/user)
- user << "You twirl around a bit before losing your balance and impaling yourself on \the [src]."
+ user << "You twirl around a bit before losing your balance and impaling yourself on [src]."
if (force_wielded)
user.take_bodypart_damage(20,25)
else
@@ -316,8 +316,7 @@
var/mob/living/carbon/C = user
if(C.wear_mask == src)
in_mouth = ", barely missing their nose"
- . = "[user] swings their \
- [src][in_mouth]. They light [A] in the process."
+ . = "[user] swings [user.p_their()] [src][in_mouth]. [user.p_they()] light[user.p_s()] [A] in the process."
playsound(loc, hitsound, get_clamped_volume(), 1, -1)
add_fingerprint(user)
// Light your candles while spinning around the room
@@ -435,7 +434,7 @@
/obj/item/weapon/twohanded/required/chainsaw/attack_self(mob/user)
on = !on
- user << "As you pull the starting cord dangling from \the [src], [on ? "it begins to whirr." : "the chain stops moving."]"
+ user << "As you pull the starting cord dangling from [src], [on ? "it begins to whirr." : "the chain stops moving."]"
force = on ? force_on : initial(force)
throwforce = on ? force_on : initial(force)
icon_state = "chainsaw_[on ? "on" : "off"]"
@@ -535,7 +534,7 @@
icon_state = "pitchfork[wielded]"
/obj/item/weapon/twohanded/pitchfork/suicide_act(mob/user)
- user.visible_message("[user] impales \himself in \his abdomen with [src]! It looks like \he's trying to commit suicide..")
+ user.visible_message("[user] impales [user.p_them()]self in [user.p_their()] abdomen with [src]! It looks like [user.p_theyre()] trying to commit suicide!")
return (BRUTELOSS)
/obj/item/weapon/twohanded/pitchfork/demonic/pickup(mob/user)
@@ -543,7 +542,7 @@
var/mob/living/U = user
if(U.mind && !U.mind.devilinfo && (U.mind.soulOwner == U.mind)) //Burn hands unless they are a devil or have sold their soul
U.visible_message("As [U] picks [src] up, [U]'s arms briefly catch fire.", \
- "\"As you pick up the [src] your arms ignite, reminding you of all your past sins.\"")
+ "\"As you pick up [src] your arms ignite, reminding you of all your past sins.\"")
if(ishuman(U))
var/mob/living/carbon/human/H = U
H.apply_damage(rand(force/2, force), BURN, pick("l_arm", "r_arm"))
@@ -552,7 +551,7 @@
/obj/item/weapon/twohanded/pitchfork/demonic/attack(mob/target, mob/living/carbon/human/user)
if(user.mind && !user.mind.devilinfo && (user.mind.soulOwner != user.mind))
- user << "The [src] burns in your hands."
+ user << "[src] burns in your hands."
user.apply_damage(rand(force/2, force), BURN, pick("l_arm", "r_arm"))
..()
diff --git a/code/game/objects/items/weapons/weaponry.dm b/code/game/objects/items/weapons/weaponry.dm
index 0120e97a2a2..9599cf67d0e 100644
--- a/code/game/objects/items/weapons/weaponry.dm
+++ b/code/game/objects/items/weapons/weaponry.dm
@@ -40,7 +40,7 @@
resistance_flags = FIRE_PROOF
/obj/item/weapon/banhammer/suicide_act(mob/user)
- user.visible_message("[user] is hitting \himself with the [src.name]! It looks like \he's trying to ban \himself from life.")
+ user.visible_message("[user] is hitting [user.p_them()]self with [src]! It looks like [user.p_theyre()] trying to ban [user.p_them()]self from life.")
return (BRUTELOSS|FIRELOSS|TOXLOSS|OXYLOSS)
/obj/item/weapon/banhammer/attack(mob/M, mob/user)
@@ -61,8 +61,9 @@
attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut")
/obj/item/weapon/sord/suicide_act(mob/user)
- user.visible_message("[user] is trying to impale \himself with \the [name]! It might be a suicide attempt if it weren't so shitty.", "You try to impale yourself with \the [name], but it's USELESS...")
- return(SHAME)
+ user.visible_message("[user] is trying to impale [user.p_them()]self with [src]! It might be a suicide attempt if it weren't so shitty.", \
+ "You try to impale yourself with [src], but it's USELESS...")
+ return SHAME
/obj/item/weapon/claymore
name = "claymore"
@@ -84,7 +85,7 @@
resistance_flags = FIRE_PROOF
/obj/item/weapon/claymore/suicide_act(mob/user)
- user.visible_message("[user] is falling on the [src.name]! It looks like \he's trying to commit suicide.")
+ user.visible_message("[user] is falling on [src]! It looks like [user.p_theyre()] trying to commit suicide!")
return(BRUTELOSS)
var/highlander_claymores = 0
@@ -128,7 +129,7 @@ var/highlander_claymores = 0
/obj/item/weapon/claymore/highlander/pickup(mob/living/user)
user << "The power of Scotland protects you! You are shielded from all stuns and knockdowns."
- user.add_stun_absorption("highlander", INFINITY, 1, "is protected by the power of Scotland!", "The power of Scotland absorbs the stun!", " is protected by the power of Scotland!")
+ user.add_stun_absorption("highlander", INFINITY, 1, " is protected by the power of Scotland!", "The power of Scotland absorbs the stun!", " is protected by the power of Scotland!")
/obj/item/weapon/claymore/highlander/dropped(mob/living/user)
qdel(src) //If this ever happens, it's because you lost an arm
@@ -237,7 +238,7 @@ var/highlander_claymores = 0
slot_flags = null
/obj/item/weapon/katana/suicide_act(mob/user)
- user.visible_message("[user] is slitting \his stomach open with the [src.name]! It looks like \he's trying to commit seppuku.")
+ user.visible_message("[user] is slitting [user.p_their()] stomach open with [src]! It looks like [user.p_theyre()] trying to commit seppuku!")
return(BRUTELOSS)
/obj/item/weapon/wirerod
@@ -335,7 +336,7 @@ var/highlander_claymores = 0
sharpness = IS_BLUNT
/obj/item/weapon/switchblade/suicide_act(mob/user)
- user.visible_message("[user] is slitting \his own throat with the [src.name]! It looks like \he's trying to commit suicide.")
+ user.visible_message("[user] is slitting [user.p_their()] own throat with [src]! It looks like [user.p_theyre()] trying to commit suicide!")
return (BRUTELOSS)
/obj/item/weapon/phone
@@ -353,9 +354,9 @@ var/highlander_claymores = 0
/obj/item/weapon/phone/suicide_act(mob/user)
if(locate(/obj/structure/chair/stool) in user.loc)
- user.visible_message("[user] begins to tie a noose with the [src.name]'s cord! It looks like \he's trying to commit suicide.")
+ user.visible_message("[user] begins to tie a noose with [src]'s cord! It looks like [user.p_theyre()] trying to commit suicide!")
else
- user.visible_message("[user] is strangling \himself with the [src.name]'s cord! It looks like \he's trying to commit suicide.")
+ user.visible_message("[user] is strangling [user.p_them()]self with [src]'s cord! It looks like [user.p_theyre()] trying to commit suicide!")
return(OXYLOSS)
/obj/item/weapon/cane
@@ -411,7 +412,7 @@ var/highlander_claymores = 0
icon_state = "ectoplasm"
/obj/item/weapon/ectoplasm/suicide_act(mob/user)
- user.visible_message("[user] is inhaling the [src.name]! It looks like \he's trying to visit the astral plane.")
+ user.visible_message("[user] is inhaling [src]! It looks like [user.p_theyre()] trying to visit the astral plane.")
return (OXYLOSS)
/obj/item/weapon/mounted_chainsaw
diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm
index 794fdd7883d..633bcbc3994 100644
--- a/code/modules/admin/topic.dm
+++ b/code/modules/admin/topic.dm
@@ -1345,6 +1345,7 @@
if(I)
I.loc = M.loc
I.layer = initial(I.layer)
+ I.plane = initial(I.plane)
I.dropped(M)
M.Paralyse(5)
@@ -1375,6 +1376,7 @@
if(I)
I.loc = M.loc
I.layer = initial(I.layer)
+ I.plane = initial(I.plane)
I.dropped(M)
M.Paralyse(5)
@@ -1428,6 +1430,7 @@
if(I)
I.loc = M.loc
I.layer = initial(I.layer)
+ I.plane = initial(I.plane)
I.dropped(M)
if(ishuman(M))
diff --git a/code/modules/atmospherics/machinery/components/unary_devices/vent_pump.dm b/code/modules/atmospherics/machinery/components/unary_devices/vent_pump.dm
index 4422ec1fedf..8808513ad59 100644
--- a/code/modules/atmospherics/machinery/components/unary_devices/vent_pump.dm
+++ b/code/modules/atmospherics/machinery/components/unary_devices/vent_pump.dm
@@ -260,6 +260,7 @@
welded = 0
update_icon()
pipe_vision_img = image(src, loc, layer = ABOVE_HUD_LAYER, dir = dir)
+ pipe_vision_img.plane = ABOVE_HUD_PLANE
return 0
else
return ..()
@@ -290,6 +291,7 @@
welded = 0
update_icon()
pipe_vision_img = image(src, loc, layer = ABOVE_HUD_LAYER, dir = dir)
+ pipe_vision_img.plane = ABOVE_HUD_PLANE
playsound(loc, 'sound/weapons/bladeslice.ogg', 100, 1)
diff --git a/code/modules/atmospherics/machinery/components/unary_devices/vent_scrubber.dm b/code/modules/atmospherics/machinery/components/unary_devices/vent_scrubber.dm
index b39fe29c0ff..43abe6ee607 100644
--- a/code/modules/atmospherics/machinery/components/unary_devices/vent_scrubber.dm
+++ b/code/modules/atmospherics/machinery/components/unary_devices/vent_scrubber.dm
@@ -353,6 +353,7 @@
welded = 0
update_icon()
pipe_vision_img = image(src, loc, layer = ABOVE_HUD_LAYER, dir = dir)
+ pipe_vision_img.plane = ABOVE_HUD_PLANE
return 0
else
return ..()
@@ -374,6 +375,7 @@
welded = 0
update_icon()
pipe_vision_img = image(src, loc, layer = ABOVE_HUD_LAYER, dir = dir)
+ pipe_vision_img.plane = ABOVE_HUD_PLANE
playsound(loc, 'sound/weapons/bladeslice.ogg', 100, 1)
diff --git a/code/modules/client/client_procs.dm b/code/modules/client/client_procs.dm
index 1559c82c9f3..883fb4266ba 100644
--- a/code/modules/client/client_procs.dm
+++ b/code/modules/client/client_procs.dm
@@ -220,7 +220,6 @@ var/next_external_rsc = 0
if(!void)
void = new()
- void = void.MakeGreed()
screen += void
diff --git a/code/modules/clothing/head/jobs.dm b/code/modules/clothing/head/jobs.dm
index ebde71d8005..c28acd10e73 100644
--- a/code/modules/clothing/head/jobs.dm
+++ b/code/modules/clothing/head/jobs.dm
@@ -11,7 +11,7 @@
dog_fashion = /datum/dog_fashion/head/chef
/obj/item/clothing/head/chefhat/suicide_act(mob/user)
- user.visible_message("[user] is donning [src]! It looks like they're trying to become a chef.")
+ user.visible_message("[user] is donning [src]! It looks like [user.p_theyre()] trying to become a chef.")
user.say("Bork Bork Bork!")
sleep(20)
user.visible_message("[user] climbs into an imaginary oven!")
diff --git a/code/modules/clothing/shoes/miscellaneous.dm b/code/modules/clothing/shoes/miscellaneous.dm
index c5f6436a484..8267c58d1a6 100644
--- a/code/modules/clothing/shoes/miscellaneous.dm
+++ b/code/modules/clothing/shoes/miscellaneous.dm
@@ -1,7 +1,7 @@
/obj/item/clothing/shoes/proc/step_action() //this was made to rewrite clown shoes squeaking
/obj/item/clothing/shoes/suicide_act(mob/user)
- user.visible_message("[user] is bashing their own head in with [src]! Ain't that a kick in the head?")
+ user.visible_message("[user] is bashing [user.p_their()] own head in with [src]! Ain't that a kick in the head?")
for(var/i = 0, i < 3, i++)
sleep(3)
playsound(user, 'sound/weapons/genhit2.ogg', 50, 1)
diff --git a/code/modules/clothing/suits/armor.dm b/code/modules/clothing/suits/armor.dm
index 4c4c319fda3..9cca7ee80b9 100644
--- a/code/modules/clothing/suits/armor.dm
+++ b/code/modules/clothing/suits/armor.dm
@@ -18,7 +18,6 @@
icon_state = "armoralt"
item_state = "armoralt"
blood_overlay_type = "armor"
- armor = list(melee = 30, bullet = 30, laser = 30, energy = 10, bomb = 25, bio = 0, rad = 0, fire = 50, acid = 75)
dog_fashion = /datum/dog_fashion/back
/obj/item/clothing/suit/armor/vest/alt
diff --git a/code/modules/clothing/suits/cloaks.dm b/code/modules/clothing/suits/cloaks.dm
index 77fd5976d4a..057752822f3 100644
--- a/code/modules/clothing/suits/cloaks.dm
+++ b/code/modules/clothing/suits/cloaks.dm
@@ -19,7 +19,7 @@
flags_inv = HIDEHAIR|HIDEEARS
/obj/item/clothing/suit/cloak/suicide_act(mob/user)
- user.visible_message("[user] is strangling themself with [src]! It looks like they're trying to commit suicide.")
+ user.visible_message("[user] is strangling [user.p_them()]self with [src]! It looks like [user.p_theyre()] trying to commit suicide!")
return(OXYLOSS)
/obj/item/clothing/suit/cloak/hos
diff --git a/code/modules/clothing/under/ties.dm b/code/modules/clothing/under/ties.dm
index fc53036a794..683b065b36a 100644
--- a/code/modules/clothing/under/ties.dm
+++ b/code/modules/clothing/under/ties.dm
@@ -20,6 +20,7 @@
U.hastie = src
loc = U
layer = FLOAT_LAYER
+ plane = FLOAT_PLANE
if(minimize_when_attached)
transform *= 0.5 //halve the size so it doesn't overpower the under
pixel_x += 8
@@ -45,6 +46,7 @@
pixel_x -= 8
pixel_y += 8
layer = initial(layer)
+ plane = initial(plane)
U.cut_overlays()
U.hastie = null
diff --git a/code/modules/detectivework/footprints_and_rag.dm b/code/modules/detectivework/footprints_and_rag.dm
index df05f33ccdb..8490c2bf5b3 100644
--- a/code/modules/detectivework/footprints_and_rag.dm
+++ b/code/modules/detectivework/footprints_and_rag.dm
@@ -19,8 +19,7 @@
spillable = 0
/obj/item/weapon/reagent_containers/glass/rag/suicide_act(mob/user)
- user.visible_message("[user] ties the [src.name] around their head and groans! It looks like--")
- user.say("MY BRAIN HURTS!!")
+ user.visible_message("[user] is smothering [user.p_them()]self with [src]! It looks like [user.p_theyre()] trying to commit suicide!")
return (OXYLOSS)
/obj/item/weapon/reagent_containers/glass/rag/afterattack(atom/A as obj|turf|area, mob/user,proximity)
diff --git a/code/modules/events/anomaly_bluespace.dm b/code/modules/events/anomaly_bluespace.dm
index bcfc914bc75..3d77e6e6b12 100644
--- a/code/modules/events/anomaly_bluespace.dm
+++ b/code/modules/events/anomaly_bluespace.dm
@@ -66,6 +66,7 @@
blueeffect.icon = 'icons/effects/effects.dmi'
blueeffect.icon_state = "shieldsparkles"
blueeffect.layer = FLASH_LAYER
+ blueeffect.plane = FULLSCREEN_PLANE
blueeffect.mouse_opacity = 0
M.client.screen += blueeffect
sleep(20)
diff --git a/code/modules/flufftext/Hallucination.dm b/code/modules/flufftext/Hallucination.dm
index de4ccc102e4..c14da947741 100644
--- a/code/modules/flufftext/Hallucination.dm
+++ b/code/modules/flufftext/Hallucination.dm
@@ -630,6 +630,7 @@ var/list/non_fakeattack_weapons = list(/obj/item/weapon/gun/projectile, /obj/ite
if(slots_free.len)
halitem.screen_loc = pick(slots_free)
halitem.layer = ABOVE_HUD_LAYER
+ halitem.plane = ABOVE_HUD_PLANE
switch(rand(1,6))
if(1) //revolver
halitem.icon = 'icons/obj/guns/projectile.dmi'
diff --git a/code/modules/food_and_drinks/drinks/drinks.dm b/code/modules/food_and_drinks/drinks/drinks.dm
index 41077807377..7d209adf80b 100644
--- a/code/modules/food_and_drinks/drinks/drinks.dm
+++ b/code/modules/food_and_drinks/drinks/drinks.dm
@@ -259,7 +259,7 @@
///Lavaland bowls and bottles///
-/obj/item/reagent_containers/food/drinks/mushroom_bowl
+/obj/item/weapon/reagent_containers/food/drinks/mushroom_bowl
name = "mushroom bowl"
desc = "A bowl made out of mushrooms. Not food, though it might have contained some at some point."
icon = 'icons/obj/lavaland/ash_flora.dmi'
diff --git a/code/modules/food_and_drinks/drinks/drinks/bottle.dm b/code/modules/food_and_drinks/drinks/drinks/bottle.dm
index 306db8311da..afdc5aaaec7 100644
--- a/code/modules/food_and_drinks/drinks/drinks/bottle.dm
+++ b/code/modules/food_and_drinks/drinks/drinks/bottle.dm
@@ -109,8 +109,8 @@
target.visible_message("[user] has hit [target][head_attack_message] with a bottle of [src.name]!", \
"[user] has hit [target][head_attack_message] with a bottle of [src.name]!")
else
- user.visible_message("[target] hits \himself with a bottle of [src.name][head_attack_message]!", \
- "[target] hits \himself with a bottle of [src.name][head_attack_message]!")
+ user.visible_message("[target] hits [target.p_them()]self with a bottle of [src.name][head_attack_message]!", \
+ "[target] hits [target.p_them()]self with a bottle of [src.name][head_attack_message]!")
//Attack logs
add_logs(user, target, "attacked", src)
@@ -125,7 +125,7 @@
/obj/item/weapon/reagent_containers/food/drinks/bottle/proc/SplashReagents(var/mob/M)
if(src.reagents.total_volume)
- M.visible_message("The contents of \the [src] splashes all over [M]!")
+ M.visible_message("The contents of [src] splashes all over [M]!")
reagents.reaction(M, TOUCH)
reagents.clear_reagents()
return
@@ -380,7 +380,7 @@
message_admins(message)
log_game("[key_name(user)] has primed a [name] for detonation at [bombarea] [COORD(bombturf)].")
- user << "You light \the [src] on fire."
+ user << "You light [src] on fire."
add_overlay(fire_overlay)
if(!isGlass)
spawn(50)
@@ -402,6 +402,6 @@
if(!isGlass)
user << "The flame's spread too far on it!"
return
- user << "You snuff out the flame on \the [src]."
+ user << "You snuff out the flame on [src]."
overlays -= fire_overlay
active = 0
diff --git a/code/modules/food_and_drinks/food/condiment.dm b/code/modules/food_and_drinks/food/condiment.dm
index 9f5ed9a028b..813174a0649 100644
--- a/code/modules/food_and_drinks/food/condiment.dm
+++ b/code/modules/food_and_drinks/food/condiment.dm
@@ -125,7 +125,7 @@
possible_states = list()
/obj/item/weapon/reagent_containers/food/condiment/saltshaker/suicide_act(mob/user)
- user.visible_message("[user] begins to swap forms with the salt shaker! It looks like \he's trying to commit suicide.")
+ user.visible_message("[user] begins to swap forms with the salt shaker! It looks like [user.p_theyre()] trying to commit suicide!")
var/newname = "[name]"
name = "[user.name]"
user.name = newname
diff --git a/code/modules/hydroponics/grown/banana.dm b/code/modules/hydroponics/grown/banana.dm
index 6f6b04f66ea..f9a8a9ac207 100644
--- a/code/modules/hydroponics/grown/banana.dm
+++ b/code/modules/hydroponics/grown/banana.dm
@@ -25,7 +25,7 @@
bitesize = 5
/obj/item/weapon/reagent_containers/food/snacks/grown/banana/suicide_act(mob/user)
- user.visible_message("[user] is aiming the [src.name] at themself! It looks like \he's trying to commit suicide.")
+ user.visible_message("[user] is aiming [src] at [user.p_them()]self! It looks like [user.p_theyre()] trying to commit suicide!")
playsound(loc, 'sound/items/bikehorn.ogg', 50, 1, -1)
sleep(25)
if(!user)
@@ -49,7 +49,7 @@
throw_range = 7
/obj/item/weapon/grown/bananapeel/suicide_act(mob/user)
- user.visible_message("[user] is deliberately slipping on the [src.name]! It looks like \he's trying to commit suicide.")
+ user.visible_message("[user] is deliberately slipping on [src]! It looks like [user.p_theyre()] trying to commit suicide!")
playsound(loc, 'sound/misc/slip.ogg', 50, 1, -1)
return (BRUTELOSS)
diff --git a/code/modules/hydroponics/grown/kudzu.dm b/code/modules/hydroponics/grown/kudzu.dm
index 2e05b8bb35b..a4825162e7e 100644
--- a/code/modules/hydroponics/grown/kudzu.dm
+++ b/code/modules/hydroponics/grown/kudzu.dm
@@ -22,7 +22,7 @@
return S
/obj/item/seeds/kudzu/suicide_act(mob/user)
- user.visible_message("[user] swallows the pack of kudzu seeds! It looks like \he's trying to commit suicide..")
+ user.visible_message("[user] swallows the pack of kudzu seeds! It looks like [user.p_theyre()] trying to commit suicide!")
plant(user)
return (BRUTELOSS)
diff --git a/code/modules/hydroponics/grown/nettle.dm b/code/modules/hydroponics/grown/nettle.dm
index fa8f9fc1de7..d9f52938f80 100644
--- a/code/modules/hydroponics/grown/nettle.dm
+++ b/code/modules/hydroponics/grown/nettle.dm
@@ -43,7 +43,7 @@
attack_verb = list("stung")
/obj/item/weapon/grown/nettle/suicide_act(mob/user)
- user.visible_message("[user] is eating some of the [src.name]! It looks like \he's trying to commit suicide.")
+ user.visible_message("[user] is eating some of [src]! It looks like [user.p_theyre()] trying to commit suicide!")
return (BRUTELOSS|TOXLOSS)
/obj/item/weapon/grown/nettle/pickup(mob/living/user)
diff --git a/code/modules/hydroponics/hydroitemdefines.dm b/code/modules/hydroponics/hydroitemdefines.dm
index 6d1a3be6e02..e2c3c518582 100644
--- a/code/modules/hydroponics/hydroitemdefines.dm
+++ b/code/modules/hydroponics/hydroitemdefines.dm
@@ -33,7 +33,7 @@
reagents.add_reagent("weedkiller", 100)
/obj/item/weapon/reagent_containers/spray/weedspray/suicide_act(mob/user)
- user.visible_message("[user] is huffing the [src.name]! It looks like \he's trying to commit suicide.")
+ user.visible_message("[user] is huffing [src]! It looks like [user.p_theyre()] trying to commit suicide!")
return (TOXLOSS)
/obj/item/weapon/reagent_containers/spray/pestspray // -- Skie
@@ -55,7 +55,7 @@
reagents.add_reagent("pestkiller", 100)
/obj/item/weapon/reagent_containers/spray/pestspray/suicide_act(mob/user)
- viewers(user) << "[user] is huffing the [src.name]! It looks like \he's trying to commit suicide."
+ user.visible_message("[user] is huffing [src]! It looks like [user.p_theyre()] trying to commit suicide!")
return (TOXLOSS)
/obj/item/weapon/cultivator
@@ -91,7 +91,7 @@
sharpness = IS_SHARP
/obj/item/weapon/hatchet/suicide_act(mob/user)
- user.visible_message("[user] is chopping at \himself with the [src.name]! It looks like \he's trying to commit suicide.")
+ user.visible_message("[user] is chopping at [user.p_them()]self with [src]! It looks like [user.p_theyre()] trying to commit suicide!")
playsound(loc, 'sound/weapons/bladeslice.ogg', 50, 1, -1)
return (BRUTELOSS)
@@ -111,9 +111,14 @@
attack_verb = list("chopped", "sliced", "cut", "reaped")
hitsound = 'sound/weapons/bladeslice.ogg'
-/obj/item/weapon/scythe/suicide_act(mob/user) // maybe later i'll actually figure out how to make it behead them
- user.visible_message("[user] is beheading \himself with the [src.name]! It looks like \he's trying to commit suicide.")
- playsound(loc, 'sound/weapons/bladeslice.ogg', 50, 1, -1)
+/obj/item/weapon/scythe/suicide_act(mob/user)
+ user.visible_message("[user] is beheading [user.p_them()]self with [src]! It looks like [user.p_theyre()] trying to commit suicide!")
+ if(iscarbon(user))
+ var/mob/living/carbon/C = user
+ var/obj/item/bodypart/BP = C.get_bodypart("head")
+ if(BP)
+ BP.drop_limb()
+ playsound(loc,pick('sound/misc/desceration-01.ogg','sound/misc/desceration-02.ogg','sound/misc/desceration-01.ogg') ,50, 1, -1)
return (BRUTELOSS)
// *************************************
diff --git a/code/modules/lighting/lighting_system.dm b/code/modules/lighting/lighting_system.dm
index e453e04ae64..97632e13043 100644
--- a/code/modules/lighting/lighting_system.dm
+++ b/code/modules/lighting/lighting_system.dm
@@ -237,6 +237,7 @@
icon = LIGHTING_ICON
icon_state = LIGHTING_ICON_STATE
layer = LIGHTING_LAYER
+ plane = LIGHTING_PLANE
mouse_opacity = 0
blend_mode = BLEND_OVERLAY
invisibility = INVISIBILITY_LIGHTING
diff --git a/code/modules/mining/equipment.dm b/code/modules/mining/equipment.dm
index 4e26e3f8d8c..3a0140c80f8 100644
--- a/code/modules/mining/equipment.dm
+++ b/code/modules/mining/equipment.dm
@@ -417,6 +417,7 @@
for(var/turf/closed/mineral/M in minerals)
var/turf/F = get_turf(M)
var/image/I = image('icons/turf/smoothrocks.dmi', loc = F, icon_state = M.scan_state, layer = FLASH_LAYER)
+ I.plane = FULLSCREEN_PLANE
C.images += I
spawn(30)
if(C)
diff --git a/code/modules/mining/lavaland/ash_flora.dm b/code/modules/mining/lavaland/ash_flora.dm
index dc6d616d366..f1d0192c094 100644
--- a/code/modules/mining/lavaland/ash_flora.dm
+++ b/code/modules/mining/lavaland/ash_flora.dm
@@ -212,7 +212,7 @@
//what you can craft with these things
/datum/crafting_recipe/mushroom_bowl
name = "Mushroom Bowl"
- result = /obj/item/reagent_containers/food/drinks/mushroom_bowl
+ result = /obj/item/weapon/reagent_containers/food/drinks/mushroom_bowl
reqs = list(/obj/item/weapon/reagent_containers/food/snacks/ash_flora/shavings = 5)
time = 30
category = CAT_PRIMAL
diff --git a/code/modules/mining/machine_redemption.dm b/code/modules/mining/machine_redemption.dm
index c49001fd7d7..c8606b07e1b 100644
--- a/code/modules/mining/machine_redemption.dm
+++ b/code/modules/mining/machine_redemption.dm
@@ -268,6 +268,7 @@
s.use(s.max_amount)
s.loc = loc
s.layer = initial(s.layer)
+ s.plane = initial(s.plane)
/obj/machinery/mineral/ore_redemption/power_change()
..()
diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm
index 932def45a6a..44db183f45f 100644
--- a/code/modules/mob/dead/observer/observer.dm
+++ b/code/modules/mob/dead/observer/observer.dm
@@ -334,9 +334,12 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
A.icon = ui_style2icon(client.prefs.UI_style)
A.desc = message
var/old_layer = source.layer
+ var/old_plane = source.plane
source.layer = FLOAT_LAYER
+ source.plane = FLOAT_PLANE
A.add_overlay(source)
source.layer = old_layer
+ source.plane = old_plane
src << "(Click to re-enter)"
if(sound)
src << sound(sound)
diff --git a/code/modules/mob/inventory.dm b/code/modules/mob/inventory.dm
index 2348aaa112f..ad183cc471f 100644
--- a/code/modules/mob/inventory.dm
+++ b/code/modules/mob/inventory.dm
@@ -159,6 +159,7 @@
I.loc = src
held_items[hand_index] = I
I.layer = ABOVE_HUD_LAYER
+ I.plane = ABOVE_HUD_PLANE
I.equipped(src, slot_hands)
if(I.pulledby)
I.pulledby.stop_pulling()
@@ -216,6 +217,7 @@
return FALSE
I.forceMove(get_turf(src))
I.layer = initial(I.layer)
+ I.plane = initial(I.plane)
I.dropped(src)
return FALSE
@@ -268,6 +270,7 @@
if(client)
client.screen -= I
I.layer = initial(I.layer)
+ I.plane = initial(I.plane)
I.appearance_flags &= ~NO_CLIENT_COLOR
I.forceMove(loc)
I.dropped(src)
diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm
index 4aae3881bef..de8de331e04 100644
--- a/code/modules/mob/living/carbon/carbon.dm
+++ b/code/modules/mob/living/carbon/carbon.dm
@@ -323,6 +323,7 @@
W.dropped(src)
if (W)
W.layer = initial(W.layer)
+ W.plane = initial(W.plane)
if (legcuffed)
var/obj/item/weapon/W = legcuffed
legcuffed = null
@@ -334,6 +335,7 @@
W.dropped(src)
if (W)
W.layer = initial(W.layer)
+ W.plane = initial(W.plane)
/mob/living/carbon/proc/clear_cuffs(obj/item/I, cuff_break)
if(!I.loc || buckled)
diff --git a/code/modules/mob/living/carbon/human/human_defense.dm b/code/modules/mob/living/carbon/human/human_defense.dm
index b5a9658e9f5..e67f9364ac5 100644
--- a/code/modules/mob/living/carbon/human/human_defense.dm
+++ b/code/modules/mob/living/carbon/human/human_defense.dm
@@ -605,8 +605,7 @@
if(health >= 0)
if(src == M)
- visible_message( \
- "[src] examines \himself.", \
+ visible_message("[src] examines [p_them()]self.", \
"You check yourself for injuries.")
var/list/missing = list("head", "chest", "l_arm", "r_arm", "l_leg", "r_leg")
diff --git a/code/modules/mob/living/carbon/inventory.dm b/code/modules/mob/living/carbon/inventory.dm
index b1db784fb46..f6101d0d7e8 100644
--- a/code/modules/mob/living/carbon/inventory.dm
+++ b/code/modules/mob/living/carbon/inventory.dm
@@ -37,6 +37,7 @@
observe.client.screen -= I
I.loc = src
I.layer = ABOVE_HUD_LAYER
+ I.plane = ABOVE_HUD_PLANE
I.appearance_flags |= NO_CLIENT_COLOR
var/not_handled = FALSE
switch(slot)
diff --git a/code/modules/mob/living/living_defense.dm b/code/modules/mob/living/living_defense.dm
index f8a7915357e..3b95c35b0fd 100644
--- a/code/modules/mob/living/living_defense.dm
+++ b/code/modules/mob/living/living_defense.dm
@@ -142,8 +142,8 @@
if(user.grab_state) //only the first upgrade is instantaneous
var/old_grab_state = user.grab_state
var/grab_upgrade_time = 30
- visible_message("[user] starts to tighten \his grip on [src]!", \
- "[user] starts to tighten \his grip on you!")
+ visible_message("[user] starts to tighten [user.p_their()] grip on [src]!", \
+ "[user] starts to tighten [user.p_their()] grip on you!")
if(!do_mob(user, src, grab_upgrade_time))
return 0
if(!user.pulling || user.pulling != src || user.grab_state != old_grab_state || user.a_intent != "grab")
diff --git a/code/modules/mob/living/silicon/robot/inventory.dm b/code/modules/mob/living/silicon/robot/inventory.dm
index 71aaaf15df1..aa890b2730a 100644
--- a/code/modules/mob/living/silicon/robot/inventory.dm
+++ b/code/modules/mob/living/silicon/robot/inventory.dm
@@ -50,6 +50,7 @@
O.mouse_opacity = initial(O.mouse_opacity)
module_state_1 = O
O.layer = ABOVE_HUD_LAYER
+ O.plane = ABOVE_HUD_PLANE
O.screen_loc = inv1.screen_loc
observer_screen_update(O,TRUE)
contents += O
@@ -61,6 +62,7 @@
O.mouse_opacity = initial(O.mouse_opacity)
module_state_2 = O
O.layer = ABOVE_HUD_LAYER
+ O.plane = ABOVE_HUD_PLANE
O.screen_loc = inv2.screen_loc
observer_screen_update(O,TRUE)
contents += O
@@ -72,6 +74,7 @@
O.mouse_opacity = initial(O.mouse_opacity)
module_state_3 = O
O.layer = ABOVE_HUD_LAYER
+ O.plane = ABOVE_HUD_PLANE
O.screen_loc = inv3.screen_loc
observer_screen_update(O,TRUE)
contents += O
diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm
index 46a5ea5ce86..7830bea184b 100644
--- a/code/modules/mob/living/silicon/robot/robot.dm
+++ b/code/modules/mob/living/silicon/robot/robot.dm
@@ -85,6 +85,7 @@
robot_modules_background = new()
robot_modules_background.icon_state = "block"
robot_modules_background.layer = HUD_LAYER //Objects that appear on screen are on layer ABOVE_HUD_LAYER, UI should be just below it.
+ robot_modules_background.plane = HUD_PLANE
ident = rand(1, 999)
update_icons()
diff --git a/code/modules/mob/living/simple_animal/bot/mulebot.dm b/code/modules/mob/living/simple_animal/bot/mulebot.dm
index 4c11c6d04d3..dde4a1e2f15 100644
--- a/code/modules/mob/living/simple_animal/bot/mulebot.dm
+++ b/code/modules/mob/living/simple_animal/bot/mulebot.dm
@@ -408,6 +408,7 @@ var/global/mulebot_count = 0
load.loc = loc
load.pixel_y = initial(load.pixel_y)
load.layer = initial(load.layer)
+ load.plane = initial(load.plane)
if(dirn)
var/turf/T = loc
var/turf/newT = get_step(T,dirn)
diff --git a/code/modules/mob/living/simple_animal/friendly/drone/inventory.dm b/code/modules/mob/living/simple_animal/friendly/drone/inventory.dm
index 44838adbe88..1437e77e56e 100644
--- a/code/modules/mob/living/simple_animal/friendly/drone/inventory.dm
+++ b/code/modules/mob/living/simple_animal/friendly/drone/inventory.dm
@@ -60,6 +60,7 @@
I.screen_loc = null // will get moved if inventory is visible
I.loc = src
I.layer = ABOVE_HUD_LAYER
+ I.plane = ABOVE_HUD_PLANE
switch(slot)
if(slot_head)
diff --git a/code/modules/mob/living/simple_animal/friendly/drone/visuals_icons.dm b/code/modules/mob/living/simple_animal/friendly/drone/visuals_icons.dm
index ca5456e625c..95c18b53f40 100644
--- a/code/modules/mob/living/simple_animal/friendly/drone/visuals_icons.dm
+++ b/code/modules/mob/living/simple_animal/friendly/drone/visuals_icons.dm
@@ -41,6 +41,7 @@
if(client && hud_used && hud_used.hud_version != HUD_STYLE_NOHUD)
r_hand.layer = ABOVE_HUD_LAYER
+ r_hand.plane = ABOVE_HUD_PLANE
r_hand.screen_loc = ui_hand_position(get_held_index_of_item(r_hand))
client.screen |= r_hand
@@ -58,6 +59,7 @@
if(client && hud_used && hud_used.hud_version != HUD_STYLE_NOHUD)
l_hand.layer = ABOVE_HUD_LAYER
+ l_hand.plane = ABOVE_HUD_PLANE
l_hand.screen_loc = ui_hand_position(get_held_index_of_item(l_hand))
client.screen |= l_hand
diff --git a/code/modules/mob/living/simple_animal/friendly/sloth.dm b/code/modules/mob/living/simple_animal/friendly/sloth.dm
new file mode 100644
index 00000000000..2953a7cc914
--- /dev/null
+++ b/code/modules/mob/living/simple_animal/friendly/sloth.dm
@@ -0,0 +1,41 @@
+/mob/living/simple_animal/sloth
+ name = "sloth"
+ desc = "An adorable, sleepy creature."
+ icon = 'icons/mob/pets.dmi'
+ icon_state = "sloth"
+ icon_living = "sloth"
+ icon_dead = "sloth_dead"
+ speak_emote = list("yawns")
+ emote_hear = list("snores.","yawns.")
+ emote_see = list("dozes off.", "looks around sleepily.")
+ speak_chance = 1
+ turns_per_move = 5
+ butcher_results = list(/obj/item/weapon/reagent_containers/food/snacks/meat/slab = 3)
+ response_help = "pets"
+ response_disarm = "gently pushes aside"
+ response_harm = "kicks"
+ gold_core_spawnable = 2
+ melee_damage_lower = 18
+ melee_damage_upper = 18
+ health = 50
+ maxHealth = 50
+ speed = 2
+
+
+//Cargo Sloth
+/mob/living/simple_animal/sloth/paperwork
+ name = "Paperwork"
+ desc = "Cargo's pet sloth. About as useful as the rest of the techs."
+ gold_core_spawnable = 0
+
+//Cargo Sloth 2
+
+/mob/living/simple_animal/sloth/citrus
+ name = "Citrus"
+ desc = "Cargo's pet sloth. She's dressed in a horrible sweater."
+ icon_state = "cool_sloth"
+ icon_living = "cool_sloth"
+ icon_dead = "cool_sloth_dead"
+ gender = FEMALE
+ butcher_results = list(/obj/item/toy/spinningtoy = 1)
+ gold_core_spawnable = 0
\ No newline at end of file
diff --git a/code/modules/mob/living/simple_animal/guardian/guardian.dm b/code/modules/mob/living/simple_animal/guardian/guardian.dm
index aa895a89b6a..7063fe1f35f 100644
--- a/code/modules/mob/living/simple_animal/guardian/guardian.dm
+++ b/code/modules/mob/living/simple_animal/guardian/guardian.dm
@@ -255,6 +255,7 @@ var/global/list/parasites = list() //all currently existing/living guardians
I.loc = src
I.equipped(src, slot)
I.layer = ABOVE_HUD_LAYER
+ I.plane = ABOVE_HUD_PLANE
/mob/living/simple_animal/hostile/guardian/proc/apply_overlay(cache_index)
var/image/I = guardian_overlays[cache_index]
@@ -283,6 +284,7 @@ var/global/list/parasites = list() //all currently existing/living guardians
if(client && hud_used && hud_used.hud_version != HUD_STYLE_NOHUD)
r_hand.layer = ABOVE_HUD_LAYER
+ r_hand.plane = ABOVE_HUD_PLANE
r_hand.screen_loc = ui_hand_position(get_held_index_of_item(r_hand))
client.screen |= r_hand
@@ -297,6 +299,7 @@ var/global/list/parasites = list() //all currently existing/living guardians
if(client && hud_used && hud_used.hud_version != HUD_STYLE_NOHUD)
l_hand.layer = ABOVE_HUD_LAYER
+ l_hand.plane = ABOVE_HUD_PLANE
l_hand.screen_loc = ui_hand_position(get_held_index_of_item(l_hand))
client.screen |= l_hand
diff --git a/code/modules/mob/living/simple_animal/simple_animal.dm b/code/modules/mob/living/simple_animal/simple_animal.dm
index 0375c8b2706..0be6d447f7e 100644
--- a/code/modules/mob/living/simple_animal/simple_animal.dm
+++ b/code/modules/mob/living/simple_animal/simple_animal.dm
@@ -515,10 +515,12 @@
var/obj/item/r_hand = get_item_for_held_index(2)
if(r_hand)
r_hand.layer = ABOVE_HUD_LAYER
+ r_hand.plane = ABOVE_HUD_PLANE
r_hand.screen_loc = ui_hand_position(get_held_index_of_item(r_hand))
client.screen |= r_hand
if(l_hand)
l_hand.layer = ABOVE_HUD_LAYER
+ l_hand.plane = ABOVE_HUD_PLANE
l_hand.screen_loc = ui_hand_position(get_held_index_of_item(l_hand))
client.screen |= l_hand
diff --git a/code/modules/mob/living/ventcrawling.dm b/code/modules/mob/living/ventcrawling.dm
index a63e9fad1fa..06e54ac94a4 100644
--- a/code/modules/mob/living/ventcrawling.dm
+++ b/code/modules/mob/living/ventcrawling.dm
@@ -93,7 +93,7 @@ var/list/ventcrawl_machinery = list(/obj/machinery/atmospherics/components/unary
var/obj/machinery/atmospherics/A = X //all elements in totalMembers are necessarily of this type.
if(!A.pipe_vision_img)
A.pipe_vision_img = image(A, A.loc, layer = ABOVE_HUD_LAYER, dir = A.dir)
- //20 for being above darkness
+ A.pipe_vision_img.plane = ABOVE_HUD_PLANE
pipes_shown += A.pipe_vision_img
if(client)
client.images += A.pipe_vision_img
diff --git a/code/modules/mob/mob_helpers.dm b/code/modules/mob/mob_helpers.dm
index db9fea8663d..0c03c4a056d 100644
--- a/code/modules/mob/mob_helpers.dm
+++ b/code/modules/mob/mob_helpers.dm
@@ -406,11 +406,15 @@ It's fairly easy to fix if dealing with single letters but not so much with comp
A.target = source
if(!alert_overlay)
var/old_layer = source.layer
+ var/old_plane = source.plane
source.layer = FLOAT_LAYER
+ source.plane = FLOAT_PLANE
A.add_overlay(source)
source.layer = old_layer
+ source.plane = old_plane
else
alert_overlay.layer = FLOAT_LAYER
+ alert_overlay.plane = FLOAT_PLANE
A.add_overlay(alert_overlay)
/proc/item_heal_robotic(mob/living/carbon/human/H, mob/user, brute_heal, burn_heal)
diff --git a/code/modules/mob/mob_movement.dm b/code/modules/mob/mob_movement.dm
index d52bdf07aa0..a83cccc2f09 100644
--- a/code/modules/mob/mob_movement.dm
+++ b/code/modules/mob/mob_movement.dm
@@ -277,7 +277,6 @@
return 0
/mob/get_spacemove_backup()
- var/atom/movable/dense_object_backup
for(var/A in orange(1, get_turf(src)))
if(isarea(A))
continue
@@ -297,9 +296,7 @@
return AM
if(pulling == AM)
continue
- dense_object_backup = AM
- break
- . = dense_object_backup
+ . = AM
/mob/proc/mob_has_gravity()
return has_gravity()
diff --git a/code/modules/mob/transform_procs.dm b/code/modules/mob/transform_procs.dm
index 4bc408098b2..266b7504d94 100644
--- a/code/modules/mob/transform_procs.dm
+++ b/code/modules/mob/transform_procs.dm
@@ -178,6 +178,7 @@
W.loc = loc
W.dropped(src)
W.layer = initial(W.layer)
+ W.plane = initial(W.plane)
diff --git a/code/modules/paperwork/contract.dm b/code/modules/paperwork/contract.dm
index 60e324d1842..83fd3ff9abc 100644
--- a/code/modules/paperwork/contract.dm
+++ b/code/modules/paperwork/contract.dm
@@ -78,6 +78,7 @@
/obj/item/weapon/paper/contract/infernal/revive
name = "paper- contract of resurrection"
contractType = CONTRACT_REVIVE
+ var/cooldown = FALSE
/obj/item/weapon/paper/contract/infernal/knowledge
name = "paper- contract for knowledge"
@@ -99,7 +100,7 @@
if(signed && (user == target.current) && istype(user,/mob/living/carbon/human/))
var/mob/living/carbon/human/H = user
H.forcesay("OH GREAT INFERNO! I DEMAND YOU COLLECT YOUR BOUNTY IMMEDIATELY!")
- H.visible_message("[H] holds up a contract claiming his soul, then immediately catches fire. It looks like \he's trying to commit suicide!")
+ H.visible_message("[H] holds up a contract claiming [user.p_their()] soul, then immediately catches fire. It looks like [user.p_theyre()] trying to commit suicide!")
H.adjust_fire_stacks(20)
H.IgniteMob()
return(FIRELOSS)
@@ -203,6 +204,10 @@
/obj/item/weapon/paper/contract/infernal/revive/attack(mob/M, mob/living/user)
if (target == M.mind && M.stat == DEAD && M.mind.soulOwner == M.mind)
+ if (cooldown)
+ user << "Give [M] a chance to think through the contract, don't rush him."
+ return 0
+ cooldown = TRUE
var/mob/living/carbon/human/H = M
var/mob/dead/observer/ghost = H.get_ghost()
var/response = "No"
@@ -220,9 +225,13 @@
H.fakefire()
FulfillContract(H, 1)//Revival contracts are always signed in blood
addtimer(H, "fakefireextinguish",5,TRUE)
+ addtimer(src,"resetcooldown",300,TRUE)
else
..()
+/obj/item/weapon/paper/contract/infernal/revive/proc/resetcooldown()
+ cooldown = FALSE
+
/obj/item/weapon/paper/contract/infernal/proc/FulfillContract(mob/living/carbon/human/user = target.current, blood = 0)
signed = 1
diff --git a/code/modules/paperwork/handlabeler.dm b/code/modules/paperwork/handlabeler.dm
index ee80b828451..6117dce62db 100644
--- a/code/modules/paperwork/handlabeler.dm
+++ b/code/modules/paperwork/handlabeler.dm
@@ -9,7 +9,7 @@
var/mode = 0
/obj/item/weapon/hand_labeler/suicide_act(mob/user)
- user.visible_message("[user] is pointing \the [src] at [user.p_them()]self. [user.p_theyre(TRUE)] going to label [user.p_them()]self as a suicide!")
+ user.visible_message("[user] is pointing [src] at [user.p_them()]self. [user.p_theyre(TRUE)] going to label [user.p_them()]self as a suicide!")
labels_left = max(labels_left - 1, 0)
var/old_real_name = user.real_name
diff --git a/code/modules/paperwork/paper.dm b/code/modules/paperwork/paper.dm
index 3ddb31a8343..f82564d27c7 100644
--- a/code/modules/paperwork/paper.dm
+++ b/code/modules/paperwork/paper.dm
@@ -90,7 +90,7 @@
add_fingerprint(usr)
/obj/item/weapon/paper/suicide_act(mob/user)
- user.visible_message("[user] scratches a grid on their wrist with the paper! It looks like \he's trying to commit sudoku..")
+ user.visible_message("[user] scratches a grid on [user.p_their()] wrist with the paper! It looks like [user.p_theyre()] trying to commit sudoku...")
return (BRUTELOSS)
/obj/item/weapon/paper/attack_self(mob/user)
@@ -341,8 +341,9 @@
/obj/item/weapon/paper/fire_act(exposed_temperature, exposed_volume)
..()
- icon_state = "paper_onfire"
- info = "[stars(info)]"
+ if(!(resistance_flags & FIRE_PROOF))
+ icon_state = "paper_onfire"
+ info = "[stars(info)]"
/obj/item/weapon/paper/extinguish()
diff --git a/code/modules/paperwork/paper_cutter.dm b/code/modules/paperwork/paper_cutter.dm
index 8f959443ddd..8b1f3519638 100644
--- a/code/modules/paperwork/paper_cutter.dm
+++ b/code/modules/paperwork/paper_cutter.dm
@@ -19,11 +19,16 @@
/obj/item/weapon/papercutter/suicide_act(mob/user)
if(storedcutter)
- user.visible_message("[user] is beheading \himself with [src.name]! It looks like \he's trying to commit suicide.")
- playsound(loc, 'sound/weapons/bladeslice.ogg', 50, 1, -1)
+ user.visible_message("[user] is beheading [user.p_them()]self with [src.name]! It looks like [user.p_theyre()] trying to commit suicide!")
+ if(iscarbon(user))
+ var/mob/living/carbon/C = user
+ var/obj/item/bodypart/BP = C.get_bodypart("head")
+ if(BP)
+ BP.drop_limb()
+ playsound(loc,pick('sound/misc/desceration-01.ogg','sound/misc/desceration-02.ogg','sound/misc/desceration-01.ogg') ,50, 1, -1)
return (BRUTELOSS)
else
- user.visible_message("[user] repeatedly bashes [src.name] against \his head! It looks like \he's trying to commit suicide.")
+ user.visible_message("[user] repeatedly bashes [src.name] against [user.p_their()] head! It looks like [user.p_theyre()] trying to commit suicide!")
playsound(loc, 'sound/items/gavel.ogg', 50, 1, -1)
return (BRUTELOSS)
@@ -41,7 +46,7 @@
if(!user.drop_item())
return
playsound(loc, "pageturn", 60, 1)
- user << "You place \the [P] in [src]."
+ user << "You place [P] in [src]."
P.loc = src
storedpaper = P
update_icon()
@@ -56,16 +61,16 @@
return
if(istype(P, /obj/item/weapon/screwdriver) && storedcutter)
playsound(src, P.usesound, 50, 1)
- user << "\The [storedcutter] has been [cuttersecured ? "unsecured" : "secured"]."
+ user << "[storedcutter] has been [cuttersecured ? "unsecured" : "secured"]."
cuttersecured = !cuttersecured
return
..()
/obj/item/weapon/papercutter/attack_hand(mob/user)
- src.add_fingerprint(user)
+ add_fingerprint(user)
if(!storedcutter)
- user << "The cutting blade is gone! You can't use \the [src] now."
+ user << "The cutting blade is gone! You can't use [src] now."
return
if(!cuttersecured)
@@ -76,7 +81,7 @@
if(storedpaper)
playsound(src.loc, 'sound/weapons/slash.ogg', 50, 1)
- user << "You neatly cut \the [storedpaper]."
+ user << "You neatly cut [storedpaper]."
storedpaper = null
qdel(storedpaper)
new /obj/item/weapon/paperslip(get_turf(src))
diff --git a/code/modules/paperwork/paperplane.dm b/code/modules/paperwork/paperplane.dm
index 4eb41425d40..e8795b3abe3 100644
--- a/code/modules/paperwork/paperplane.dm
+++ b/code/modules/paperwork/paperplane.dm
@@ -29,7 +29,7 @@
/obj/item/weapon/paperplane/suicide_act(mob/user)
user.Stun(10)
- user.visible_message("[user] jams the [src] in their brains. It looks like \he's trying to commit suicide.")
+ user.visible_message("[user] jams the [src] in [user.p_their()] nose. It looks like [user.p_theyre()] trying to commit suicide!")
user.adjust_blurriness(6)
user.adjust_eye_damage(rand(6,8))
sleep(10)
diff --git a/code/modules/paperwork/pen.dm b/code/modules/paperwork/pen.dm
index 181350544c4..c77f7df7325 100644
--- a/code/modules/paperwork/pen.dm
+++ b/code/modules/paperwork/pen.dm
@@ -26,7 +26,7 @@
var/colour = "black" //what colour the ink is!
/obj/item/weapon/pen/suicide_act(mob/user)
- user.visible_message("[user] is scribbling numbers all over themself with [src]! It looks like they're trying to commit sudoku!")
+ user.visible_message("[user] is scribbling numbers all over [user.p_them()]self with [src]! It looks like [user.p_theyre()] trying to commit sudoku...")
return(BRUTELOSS)
/obj/item/weapon/pen/blue
diff --git a/code/modules/paperwork/stamps.dm b/code/modules/paperwork/stamps.dm
index f86c1772ad1..016ac1e53f6 100644
--- a/code/modules/paperwork/stamps.dm
+++ b/code/modules/paperwork/stamps.dm
@@ -14,7 +14,7 @@
attack_verb = list("stamped")
/obj/item/weapon/stamp/suicide_act(mob/user)
- user.visible_message("[user] stamps 'VOID' on \his forehead, then promptly falls over, dead.")
+ user.visible_message("[user] stamps 'VOID' on [user.p_their()] forehead, then promptly falls over, dead.")
return (OXYLOSS)
/obj/item/weapon/stamp/qm
diff --git a/code/modules/power/cable.dm b/code/modules/power/cable.dm
index e89bed85f58..88f7727ba70 100644
--- a/code/modules/power/cable.dm
+++ b/code/modules/power/cable.dm
@@ -477,9 +477,9 @@ var/global/list/datum/stack_recipe/cable_coil_recipes = list ( \
/obj/item/stack/cable_coil/suicide_act(mob/user)
if(locate(/obj/structure/chair/stool) in get_turf(user))
- user.visible_message("[user] is making a noose with the [src.name]! It looks like \he's trying to commit suicide.")
+ user.visible_message("[user] is making a noose with [src]! It looks like [user.p_theyre()] trying to commit suicide!")
else
- user.visible_message("[user] is strangling \himself with the [src.name]! It looks like \he's trying to commit suicide.")
+ user.visible_message("[user] is strangling [user.p_them()]self with [src]! It looks like [user.p_theyre()] trying to commit suicide!")
return(OXYLOSS)
/obj/item/stack/cable_coil/New(loc, amount = MAXCOIL, var/param_color = null)
diff --git a/code/modules/power/cell.dm b/code/modules/power/cell.dm
index 3b176d0a14a..d0812512d89 100644
--- a/code/modules/power/cell.dm
+++ b/code/modules/power/cell.dm
@@ -87,7 +87,7 @@
user << "The charge meter reads [round(src.percent() )]%."
/obj/item/weapon/stock_parts/cell/suicide_act(mob/user)
- user.visible_message("[user] is licking the electrodes of the [src.name]! It looks like \he's trying to commit suicide.")
+ user.visible_message("[user] is licking the electrodes of [src]! It looks like [user.p_theyre()] trying to commit suicide!")
return (FIRELOSS)
/obj/item/weapon/stock_parts/cell/attackby(obj/item/W, mob/user, params)
diff --git a/code/modules/power/singularity/collector.dm b/code/modules/power/singularity/collector.dm
index 74fd320c11d..2bd3627f3e8 100644
--- a/code/modules/power/singularity/collector.dm
+++ b/code/modules/power/singularity/collector.dm
@@ -120,6 +120,7 @@ var/global/list/rad_collectors = list()
return
Z.loc = get_turf(src)
Z.layer = initial(Z.layer)
+ Z.plane = initial(Z.plane)
src.loaded_tank = null
if(active)
toggle_power()
diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm
index 6fab2ac2fa1..7415ff4bf5a 100644
--- a/code/modules/projectiles/gun.dm
+++ b/code/modules/projectiles/gun.dm
@@ -160,14 +160,14 @@
if(clumsy_check)
if(istype(user))
if (user.disabilities & CLUMSY && prob(40))
- user << "You shoot yourself in the foot with \the [src]!"
+ user << "You shoot yourself in the foot with [src]!"
var/shot_leg = pick("l_leg", "r_leg")
process_fire(user,user,0,params, zone_override = shot_leg)
user.drop_item()
return
if(weapon_weight == WEAPON_HEAVY && user.get_inactive_held_item())
- user << "You need both hands free to fire \the [src]!"
+ user << "You need both hands free to fire [src]!"
return
process_fire(target,user,1,params)
@@ -189,7 +189,7 @@
pin.auth_fail(user)
return 0
else
- user << "\The [src]'s trigger is locked. This weapon doesn't have a firing pin installed!"
+ user << "[src]'s trigger is locked. This weapon doesn't have a firing pin installed!"
return 0
obj/item/weapon/gun/proc/newshot()
diff --git a/code/modules/projectiles/guns/energy.dm b/code/modules/projectiles/guns/energy.dm
index 185d5ff2654..8e6edf2608a 100644
--- a/code/modules/projectiles/guns/energy.dm
+++ b/code/modules/projectiles/guns/energy.dm
@@ -140,10 +140,10 @@
/obj/item/weapon/gun/energy/suicide_act(mob/user)
if (src.can_shoot())
- user.visible_message("[user] is putting the barrel of the [src.name] in \his mouth. It looks like \he's trying to commit suicide.")
+ user.visible_message("[user] is putting the barrel of [src] in [user.p_their()] mouth. It looks like [user.p_theyre()] trying to commit suicide!")
sleep(25)
if(user.is_holding(src))
- user.visible_message("[user] melts \his face off with the [src.name]!")
+ user.visible_message("[user] melts [user.p_their()] face off with [src]!")
playsound(loc, fire_sound, 50, 1, -1)
var/obj/item/ammo_casing/energy/shot = ammo_type[select]
power_supply.use(shot.e_cost)
@@ -153,7 +153,7 @@
user.visible_message("[user] panics and starts choking to death!")
return(OXYLOSS)
else
- user.visible_message("[user] is pretending to blow \his brains out with the [src.name]! It looks like \he's trying to commit suicide!")
+ user.visible_message("[user] is pretending to blow [user.p_their()] brains out with [src]! It looks like [user.p_theyre()] trying to commit suicide!")
playsound(loc, 'sound/weapons/empty.ogg', 50, 1, -1)
return (OXYLOSS)
diff --git a/code/modules/projectiles/guns/energy/special.dm b/code/modules/projectiles/guns/energy/special.dm
index bcdcc8287f4..8caed922e53 100644
--- a/code/modules/projectiles/guns/energy/special.dm
+++ b/code/modules/projectiles/guns/energy/special.dm
@@ -110,13 +110,6 @@
ammo_type = list(/obj/item/ammo_casing/energy/bolt/large)
pin = null
-/obj/item/weapon/gun/energy/kinetic_accelerator/suicide_act(mob/user)
- if(!suppressed)
- playsound(src.loc, 'sound/weapons/kenetic_reload.ogg', 60, 1)
- user.visible_message("[user] cocks the [src.name] and pretends to blow \his brains out! It looks like \he's trying to commit suicide!")
- shoot_live_shot()
- return (OXYLOSS)
-
/obj/item/weapon/gun/energy/plasmacutter
name = "plasma cutter"
desc = "A mining tool capable of expelling concentrated plasma bursts. You could use it to cut limbs off of xenos! Or, you know, mine stuff."
diff --git a/code/modules/projectiles/guns/magic.dm b/code/modules/projectiles/guns/magic.dm
index 60a2cd21e2f..0f85660da60 100644
--- a/code/modules/projectiles/guns/magic.dm
+++ b/code/modules/projectiles/guns/magic.dm
@@ -76,6 +76,6 @@
return
/obj/item/weapon/gun/magic/suicide_act(mob/user)
- user.visible_message("[user] is twisting the [src.name] above \his head, releasing a magical blast! It looks like \he's trying to commit suicide.")
+ user.visible_message("[user] is twisting [src] above [user.p_their()] head, releasing a magical blast! It looks like [user.p_theyre()] trying to commit suicide!")
playsound(loc, fire_sound, 50, 1, -1)
return (FIRELOSS)
\ No newline at end of file
diff --git a/code/modules/projectiles/guns/magic/wand.dm b/code/modules/projectiles/guns/magic/wand.dm
index 1262c57d5bd..57c3cfdf6d5 100644
--- a/code/modules/projectiles/guns/magic/wand.dm
+++ b/code/modules/projectiles/guns/magic/wand.dm
@@ -48,9 +48,9 @@
/obj/item/weapon/gun/magic/wand/proc/zap_self(mob/living/user)
- user.visible_message("[user] zaps \himself with [src].")
+ user.visible_message("[user] zaps [user.p_them()]self with [src].")
playsound(user, fire_sound, 50, 1)
- user.attack_log += "\[[time_stamp()]\] [user]/[user.ckey] zapped \himself with a [src]"
+ user.attack_log += "\[[time_stamp()]\] [user]/[user.ckey] zapped [user.p_them()]self with a [src]"
/////////////////////////////////////
@@ -66,12 +66,13 @@
max_charges = 3 //3, 2, 2, 1
/obj/item/weapon/gun/magic/wand/death/zap_self(mob/living/user)
- var/message ="You irradiate yourself with pure energy! "
- message += pick("Do not pass go. Do not collect 200 zorkmids.","You feel more confident in your spell casting skills.","You Die...","Do you want your possessions identified?")
- user << message
+ ..()
+ user << "You irradiate yourself with pure energy! \
+ [pick("Do not pass go. Do not collect 200 zorkmids.","You feel more confident in your spell casting skills.","You Die...","Do you want your possessions identified?")]\
+ "
user.adjustOxyLoss(500)
charges--
- ..()
+
/////////////////////////////////////
//WAND OF HEALING
@@ -163,6 +164,6 @@
max_charges = 8 //8, 4, 4, 3
/obj/item/weapon/gun/magic/wand/fireball/zap_self(mob/living/user)
- explosion(user.loc, -1, 0, 2, 3, 0, flame_range = 2)
- charges--
..()
+ explosion(user.loc, -1, 0, 2, 3, 0, flame_range = 2)
+ charges--
\ No newline at end of file
diff --git a/code/modules/projectiles/guns/projectile.dm b/code/modules/projectiles/guns/projectile.dm
index 9b50a1e4a98..1c78936a348 100644
--- a/code/modules/projectiles/guns/projectile.dm
+++ b/code/modules/projectiles/guns/projectile.dm
@@ -143,17 +143,17 @@
/obj/item/weapon/gun/projectile/suicide_act(mob/user)
if (src.chambered && src.chambered.BB && !src.chambered.BB.nodamage)
- user.visible_message("[user] is putting the barrel of the [src.name] in \his mouth. It looks like \he's trying to commit suicide.")
+ user.visible_message("[user] is putting the barrel of [src] in [user.p_their()] mouth. It looks like [user.p_theyre()] trying to commit suicide!")
sleep(25)
if(user.is_holding(src))
process_fire(user, user, 0, zone_override = "head")
- user.visible_message("[user] blows \his brains out with the [src.name]!")
+ user.visible_message("[user] blows [user.p_their()] brain[user.p_s()] out with [src]!")
return(BRUTELOSS)
else
user.visible_message("[user] panics and starts choking to death!")
return(OXYLOSS)
else
- user.visible_message("[user] is pretending to blow \his brains out with the [src.name]! It looks like \he's trying to commit suicide!")
+ user.visible_message("[user] is pretending to blow [user.p_their()] brain[user.p_s()] out with [src]! It looks like [user.p_theyre()] trying to commit suicide!")
playsound(loc, 'sound/weapons/empty.ogg', 50, 1, -1)
return (OXYLOSS)
diff --git a/code/modules/reagents/chemistry/reagents/food_reagents.dm b/code/modules/reagents/chemistry/reagents/food_reagents.dm
index b70598692e5..2021ac98033 100644
--- a/code/modules/reagents/chemistry/reagents/food_reagents.dm
+++ b/code/modules/reagents/chemistry/reagents/food_reagents.dm
@@ -475,10 +475,11 @@
. = 1
if(prob(20))
M.losebreath += 4
- M.adjustBrainLoss(2*REM)
- M.adjustToxLoss(3*REM,0)
- M.adjustStaminaLoss(10*REM,0)
- M.blur_eyes(5)
+ M.adjustBrainLoss(2*REM)
+ M.adjustToxLoss(3*REM,0)
+ M.adjustStaminaLoss(10*REM,0)
+ M.blur_eyes(5)
+ . = TRUE
..()
/datum/reagent/consumable/tinlux
@@ -500,7 +501,9 @@
color = "#d3a308"
nutriment_factor = 3 * REAGENTS_METABOLISM
-datum/reagent/consumable/vitfro/on_mob_life(mob/living/M)
+/datum/reagent/consumable/vitfro/on_mob_life(mob/living/M)
if(prob(80))
M.adjustBruteLoss(-1*REM, 0)
M.adjustFireLoss(-1*REM, 0)
+ . = TRUE
+ ..()
\ No newline at end of file
diff --git a/code/modules/reagents/chemistry/reagents/toxin_reagents.dm b/code/modules/reagents/chemistry/reagents/toxin_reagents.dm
index f6da5758e77..946b7d31f41 100644
--- a/code/modules/reagents/chemistry/reagents/toxin_reagents.dm
+++ b/code/modules/reagents/chemistry/reagents/toxin_reagents.dm
@@ -658,6 +658,33 @@
return ..() || .
+/datum/reagent/toxin/rotatium //Rotatium. Fucks up your rotation and is hilarious
+ name = "Rotatium"
+ id = "rotatium"
+ description = "A constantly swirling, oddly colourful fluid. Causes the consumer's sense of direction and hand-eye coordination to become wild."
+ reagent_state = LIQUID
+ color = "#AC88CA" //RGB: 172, 136, 202
+ metabolization_rate = 0.6 * REAGENTS_METABOLISM
+ toxpwr = 0.5
+
+/datum/reagent/toxin/rotatium/on_mob_life(mob/living/M)
+ if(M.hud_used)
+ if(current_cycle >= 20 && current_cycle%20 == 0)
+ var/list/screens = list(M.hud_used.plane_masters["[GAME_PLANE]"], M.hud_used.plane_masters["[LIGHTING_PLANE]"])
+ var/rotation = min(round(current_cycle/20), 89) // By this point the player is probably puking and quitting anyway
+ for(var/whole_screen in screens)
+ animate(whole_screen, transform = matrix(rotation, MATRIX_ROTATE), time = 5, easing = QUAD_EASING, loop = -1)
+ animate(transform = matrix(-rotation, MATRIX_ROTATE), time = 5, easing = QUAD_EASING)
+ return ..()
+
+/datum/reagent/toxin/rotatium/on_mob_delete(mob/living/M)
+ if(M && M.hud_used)
+ var/list/screens = list(M.hud_used.plane_masters["[GAME_PLANE]"], M.hud_used.plane_masters["[LIGHTING_PLANE]"])
+ for(var/whole_screen in screens)
+ animate(whole_screen, transform = matrix(), time = 5, easing = QUAD_EASING)
+ ..()
+
+
//ACID
diff --git a/code/modules/reagents/chemistry/recipes/toxins.dm b/code/modules/reagents/chemistry/recipes/toxins.dm
index 53fcb2bc473..f3fa0c3da0c 100644
--- a/code/modules/reagents/chemistry/recipes/toxins.dm
+++ b/code/modules/reagents/chemistry/recipes/toxins.dm
@@ -87,3 +87,10 @@
results = list("heparin" = 4)
required_reagents = list("formaldehyde" = 1, "sodium" = 1, "chlorine" = 1, "lithium" = 1)
mix_message = "The mixture thins and loses all color."
+
+/datum/chemical_reaction/rotatium
+ name = "Rotatium"
+ id = "Rotatium"
+ results = list("rotatium" = 3)
+ required_reagents = list("mindbreaker" = 1, "teslium" = 1, "neurotoxin2" = 1)
+ mix_message = "After sparks, fire, and the smell of mindbreaker, the mix is constantly spinning with no stop in sight."
\ No newline at end of file
diff --git a/code/modules/spells/spell_types/conjure.dm b/code/modules/spells/spell_types/conjure.dm
index 89b143fcffc..1e528b0ed7e 100644
--- a/code/modules/spells/spell_types/conjure.dm
+++ b/code/modules/spells/spell_types/conjure.dm
@@ -50,3 +50,31 @@
summon_amt = 10
range = 3
newVars = list("emagged" = 2, "remote_disabled" = 1,"shoot_sound" = 'sound/weapons/laser.ogg',"projectile" = /obj/item/projectile/beam/laser, "declare_arrests" = 0,"name" = "Wizard's Justicebot")
+
+/obj/effect/proc_holder/spell/targeted/conjure_item
+ name = "Summon weapon"
+ desc = "A generic spell that should not exist. This summons an instance of a specific type of item, or if one already exists, un-summons it. Summons into hand if possible."
+ invocation_type = "none"
+ include_user = 1
+ range = -1
+ clothes_req = 0
+ var/obj/item/item
+ var/item_type = /obj/item/weapon/banhammer
+ school = "conjuration"
+ charge_max = 150
+ cooldown_min = 10
+
+/obj/effect/proc_holder/spell/targeted/conjure_item/cast(list/targets, mob/user = usr)
+ if (item)
+ qdel(item)
+ item = null
+ else
+ for(var/mob/living/carbon/C in targets)
+ if(C.drop_item())
+ item = new item_type
+ C.put_in_hands(item)
+
+/obj/effect/proc_holder/spell/targeted/conjure_item/Destroy()
+ if(item)
+ qdel(item)
+ return ..()
diff --git a/code/modules/spells/spell_types/devil.dm b/code/modules/spells/spell_types/devil.dm
index cd00b67776b..0e5fd60e666 100644
--- a/code/modules/spells/spell_types/devil.dm
+++ b/code/modules/spells/spell_types/devil.dm
@@ -1,12 +1,11 @@
-/obj/effect/proc_holder/spell/targeted/summon_pitchfork
+/obj/effect/proc_holder/spell/targeted/conjure_item/summon_pitchfork
name = "Summon Pitchfork"
desc = "A devil's weapon of choice. Use this to summon/unsummon your pitchfork."
invocation_type = "none"
include_user = 1
range = -1
clothes_req = 0
- var/obj/item/weapon/twohanded/pitchfork/demonic/pitchfork
- var/pitchfork_type = /obj/item/weapon/twohanded/pitchfork/demonic/
+ item_type = /obj/item/weapon/twohanded/pitchfork/demonic
school = "conjuration"
charge_max = 150
@@ -14,27 +13,20 @@
action_icon_state = "pitchfork"
action_background_icon_state = "bg_demon"
-/obj/effect/proc_holder/spell/targeted/summon_pitchfork/cast(list/targets, mob/user = usr)
- if (pitchfork)
- qdel(pitchfork)
- else
- for(var/mob/living/carbon/C in targets)
- if(C.drop_item())
- pitchfork = new pitchfork_type
- C.put_in_hands(pitchfork)
+/obj/effect/proc_holder/spell/targeted/conjure_item/summon_pitchfork/greater
+ item_type = /obj/item/weapon/twohanded/pitchfork/demonic/greater
-/obj/effect/proc_holder/spell/targeted/summon_pitchfork/Destroy()
- if(pitchfork)
- qdel(pitchfork)
- pitchfork = null
- return ..()
-
-/obj/effect/proc_holder/spell/targeted/summon_pitchfork/greater
- pitchfork_type = /obj/item/weapon/twohanded/pitchfork/demonic/greater
-
-/obj/effect/proc_holder/spell/targeted/summon_pitchfork/ascended
- pitchfork_type = /obj/item/weapon/twohanded/pitchfork/demonic/ascended
+/obj/effect/proc_holder/spell/targeted/conjure_item/summon_pitchfork/ascended
+ item_type = /obj/item/weapon/twohanded/pitchfork/demonic/ascended
+/obj/effect/proc_holder/spell/targeted/conjure_item/violin
+ item_type = /obj/item/device/instrument/violin/golden
+ desc = "A devil's instrument of choice. Use this to summon/unsummon your golden violin."
+ invocation_type = "whisper"
+ invocation = "I aint have this much fun since Georgia."
+ action_icon_state = "golden_violin"
+ name = "Summon golden violin"
+ action_background_icon_state = "bg_demon"
/obj/effect/proc_holder/spell/targeted/summon_contract
name = "Summon infernal contract"
diff --git a/code/modules/surgery/tools.dm b/code/modules/surgery/tools.dm
index 67b1a888703..c982a4fb9c0 100644
--- a/code/modules/surgery/tools.dm
+++ b/code/modules/surgery/tools.dm
@@ -64,9 +64,7 @@
sharpness = IS_SHARP_ACCURATE
/obj/item/weapon/scalpel/suicide_act(mob/user)
- user.visible_message(pick("[user] is slitting \his wrists with [src]! It looks like \he's trying to commit suicide.", \
- "[user] is slitting \his throat with [src]! It looks like \he's trying to commit suicide.", \
- "[user] is slitting \his stomach open with [src]! It looks like \he's trying to commit seppuku."))
+ user.visible_message("[user] is slitting [user.p_their()] [pick("wrists", "throat", "stomach")] with [src]! It looks like [user.p_theyre()] trying to commit suicide!")
return (BRUTELOSS)
diff --git a/code/modules/zombie/items.dm b/code/modules/zombie/items.dm
index 40961cdb193..7f76b6898de 100644
--- a/code/modules/zombie/items.dm
+++ b/code/modules/zombie/items.dm
@@ -62,33 +62,28 @@
/obj/item/zombie_hand/proc/tear_airlock(obj/machinery/door/airlock/A, mob/user)
removing_airlock = TRUE
- user << "You start tearing apart the airlock...\
- "
+ user << "You start tearing apart the airlock..."
playsound(src.loc, 'sound/machines/airlock_alien_prying.ogg', 100, 1)
- A.audible_message("You hear a loud metallic \
- grinding sound.")
+ A.audible_message("You hear a loud metallic grinding sound.")
addtimer(src, "growl", 20, unique=FALSE, target=user)
if(do_after(user, delay=160, needhand=FALSE, target=A, progress=TRUE))
playsound(src.loc, 'sound/hallucinations/far_noise.ogg', 50, 1)
- A.audible_message("With a screech, [A] is torn \
- apart!")
+ A.audible_message("With a screech, [A] is torn apart!")
var/obj/structure/door_assembly/door = new A.assemblytype(get_turf(A))
door.density = 0
door.anchored = 1
door.name = "ravaged [door]"
- door.desc = "An airlock that has been torn apart. Looks like it \
- won't be keeping much out now."
+ door.desc = "An airlock that has been torn apart. Looks like it won't be keeping much out now."
qdel(A)
removing_airlock = FALSE
/obj/item/zombie_hand/proc/growl(mob/user)
if(removing_airlock)
playsound(src.loc, 'sound/hallucinations/growl3.ogg', 50, 1)
- user.audible_message("[user] growls as \
- their claws dig into the metal frame...")
+ user.audible_message("[user] growls as [user.p_their()] claws dig into the metal frame...")
/obj/item/zombie_hand/suicide_act(mob/living/carbon/user)
// Suiciding as a zombie brings someone else in to play it
@@ -99,10 +94,8 @@
user.Weaken(30)
var/success = offer_control(user)
if(success)
- user.visible_message("[user] appears to have \
- found new spirit.")
+ user.visible_message("[user] appears to have found new spirit.")
return SHAME
else
- user.visible_message("[user] stops moving.\
- ")
+ user.visible_message("[user] stops moving.")
return OXYLOSS
diff --git a/html/changelog.html b/html/changelog.html
index 610edddcacf..022bd926ca8 100644
--- a/html/changelog.html
+++ b/html/changelog.html
@@ -55,6 +55,54 @@
-->
+
18 October 2016
+
Basilman updated:
+
+ - A third martial art, CQC, has been added and is now available to nuke ops instead of sleeping carp
+
+
Kor updated:
+
+ - Added sloths to cargobay on Box and Meta
+
+
MrPerson updated:
+
+ - New toxin - Rotatium. It doesn't quite do what it does on other servers. Instead it rocks your game view back and forth while slowly doing toxin damage. The rocking gets more intense with time.
+ - To make it, mix equal parts mindbreaker, neurotoxin, and teslium.
+
+
MrStonedOne updated:
+
+ - Byond 511 beta users may now choose their own FPS. This will apply to animations and other client side only effects. Find it in your game preferences.
+
+
Shadowlight213 updated:
+
+ - fixed removing modular computer components
+
+
TheCarlSaganExpress updated:
+
+ - Provided you have access, you may now use your ID to unlock the display case.
+ - The fire axe cabinet and display case may now be repaired with the welder.
+
+
XDTM updated:
+
+ - You can now grind slime extracts in a reagent grinder. If the slime was unused it will result in slime jelly, while if used it will only output the reagents inside the extract.
+
+
Yackemflam updated:
+
+ - fixed the standard vest being weaker than the slim variant
+
+
lordpidey updated:
+
+ - There is a new potential obligation for devils to have. Musical duels. Ask your nearest devil for a musical duel, there's a 14% chance he's obligated to do it.
+ - Removed the old offering a drink obligation for devils, it overlapped too much with the food obligation.
+ - Trying to clone people who've sold their soul now results in FUN.
+ - Devils can no longer spam ghosts with revival contracts.
+
+
phil235 updated:
+
+ - Visual effects appear on the target of an attack, similar to the item attack effect.
+ - You now only see a message in chat when witnessing someone else getting attacked or hit by a bullet if you are close enough to the action.
+
+
16 October 2016
Cuboos updated:
@@ -999,32 +1047,6 @@
-
- 16 August 2016
- MrStonedOne updated:
-
- - Automated the granting of profiler access to admins
-
- oranges updated:
-
- - Nanotrasen is an all right kind of company
-
-
- 15 August 2016
- Joan updated:
-
- - The Ark of the Clockwork Justicar can now be constructed even if Ratvar's rise is not the objective.
- - Accordingly, its behavior is different; instead of summoning Ratvar, it will convert a massive amount of the station, and should effectively instantly complete the clockwork cult's objectives.
-
- MrStonedOne updated:
-
- - Tweaked the lag stop numbers to hopefully reduce lag during 80+ population
- - Fixed the blackbox not blackboxing.
-
- OSCAR MIKE updated:
-
- - CONTACT ON THE LEFT SIDE!
-
GoonStation 13 Development Team
diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml
index b2b08967a29..5e564fb34ee 100644
--- a/html/changelogs/.all_changelog.yml
+++ b/html/changelogs/.all_changelog.yml
@@ -7429,3 +7429,42 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py.
(and the bodybag starts open)
scoopscoop:
- bugfix: The cult shifter will now properly spawn as part of the veil walker set.
+2016-10-18:
+ Basilman:
+ - rscadd: A third martial art, CQC, has been added and is now available to nuke
+ ops instead of sleeping carp
+ Kor:
+ - rscadd: Added sloths to cargobay on Box and Meta
+ MrPerson:
+ - rscadd: New toxin - Rotatium. It doesn't quite do what it does on other servers.
+ Instead it rocks your game view back and forth while slowly doing toxin damage.
+ The rocking gets more intense with time.
+ - rscadd: To make it, mix equal parts mindbreaker, neurotoxin, and teslium.
+ MrStonedOne:
+ - experiment: Byond 511 beta users may now choose their own FPS. This will apply
+ to animations and other client side only effects. Find it in your game preferences.
+ Shadowlight213:
+ - bugfix: fixed removing modular computer components
+ TheCarlSaganExpress:
+ - tweak: Provided you have access, you may now use your ID to unlock the display
+ case.
+ - tweak: The fire axe cabinet and display case may now be repaired with the welder.
+ XDTM:
+ - rscadd: You can now grind slime extracts in a reagent grinder. If the slime was
+ unused it will result in slime jelly, while if used it will only output the
+ reagents inside the extract.
+ Yackemflam:
+ - bugfix: fixed the standard vest being weaker than the slim variant
+ lordpidey:
+ - rscadd: There is a new potential obligation for devils to have. Musical duels. Ask
+ your nearest devil for a musical duel, there's a 14% chance he's obligated to
+ do it.
+ - rscdel: Removed the old offering a drink obligation for devils, it overlapped
+ too much with the food obligation.
+ - tweak: Trying to clone people who've sold their soul now results in FUN.
+ - tweak: Devils can no longer spam ghosts with revival contracts.
+ phil235:
+ - rscadd: Visual effects appear on the target of an attack, similar to the item
+ attack effect.
+ - rscdel: You now only see a message in chat when witnessing someone else getting
+ attacked or hit by a bullet if you are close enough to the action.
diff --git a/html/changelogs/AutoChangeLog-pr-20920.yml b/html/changelogs/AutoChangeLog-pr-20920.yml
deleted file mode 100644
index b2fe972d8e2..00000000000
--- a/html/changelogs/AutoChangeLog-pr-20920.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-author: "TheCarlSaganExpress"
-delete-after: True
-changes:
- - tweak: "Provided you have access, you may now use your ID to unlock the display case."
- - tweak: "The fire axe cabinet and display case may now be repaired with the welder."
diff --git a/html/changelogs/AutoChangeLog-pr-20932.yml b/html/changelogs/AutoChangeLog-pr-20932.yml
deleted file mode 100644
index c1151bff267..00000000000
--- a/html/changelogs/AutoChangeLog-pr-20932.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Basilman"
-delete-after: True
-changes:
- - rscadd: "A third martial art, CQC, has been added and is now available to nuke ops instead of sleeping carp"
diff --git a/html/changelogs/AutoChangeLog-pr-20933.yml b/html/changelogs/AutoChangeLog-pr-20933.yml
deleted file mode 100644
index c6ad893dccf..00000000000
--- a/html/changelogs/AutoChangeLog-pr-20933.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "XDTM"
-delete-after: True
-changes:
- - rscadd: "You can now grind slime extracts in a reagent grinder. If the slime was unused it will result in slime jelly, while if used it will only output the reagents inside the extract."
diff --git a/html/changelogs/AutoChangeLog-pr-20962.yml b/html/changelogs/AutoChangeLog-pr-20962.yml
deleted file mode 100644
index 17df0623528..00000000000
--- a/html/changelogs/AutoChangeLog-pr-20962.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-author: "phil235"
-delete-after: True
-changes:
- - rscadd: "Visual effects appear on the target of an attack, similar to the item attack effect."
- - rscdel: "You now only see a message in chat when witnessing someone else getting attacked or hit by a bullet if you are close enough to the action."
diff --git a/html/changelogs/AutoChangeLog-pr-20985.yml b/html/changelogs/AutoChangeLog-pr-20985.yml
deleted file mode 100644
index 8d3a0ba7cac..00000000000
--- a/html/changelogs/AutoChangeLog-pr-20985.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "MrStonedOne"
-delete-after: True
-changes:
- - experiment: "Byond 511 beta users may now choose their own FPS. This will apply to animations and other client side only effects. Find it in your game preferences."
diff --git a/html/changelogs/AutoChangeLog-pr-20996.yml b/html/changelogs/AutoChangeLog-pr-20996.yml
deleted file mode 100644
index e4f1aa3d5e0..00000000000
--- a/html/changelogs/AutoChangeLog-pr-20996.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Shadowlight213"
-delete-after: True
-changes:
- - bugfix: "fixed removing modular computer components"
diff --git a/icons/mob/actions.dmi b/icons/mob/actions.dmi
index 91bc9ca9828..9e8bceda4d8 100644
Binary files a/icons/mob/actions.dmi and b/icons/mob/actions.dmi differ
diff --git a/icons/mob/inhands/items_lefthand.dmi b/icons/mob/inhands/items_lefthand.dmi
index 8902386aa60..f9b04c4649f 100644
Binary files a/icons/mob/inhands/items_lefthand.dmi and b/icons/mob/inhands/items_lefthand.dmi differ
diff --git a/icons/mob/inhands/items_righthand.dmi b/icons/mob/inhands/items_righthand.dmi
index f57be4f9412..3601bf040bc 100644
Binary files a/icons/mob/inhands/items_righthand.dmi and b/icons/mob/inhands/items_righthand.dmi differ
diff --git a/icons/mob/pets.dmi b/icons/mob/pets.dmi
index 645ad969dcd..e852426e62d 100644
Binary files a/icons/mob/pets.dmi and b/icons/mob/pets.dmi differ
diff --git a/icons/obj/musician.dmi b/icons/obj/musician.dmi
index ea1b0b5a485..adffb390ad9 100644
Binary files a/icons/obj/musician.dmi and b/icons/obj/musician.dmi differ
diff --git a/tgstation.dme b/tgstation.dme
index 5fa00b992bc..b5e5b51937c 100644
--- a/tgstation.dme
+++ b/tgstation.dme
@@ -93,7 +93,6 @@
#include "code\_globalvars\lists\names.dm"
#include "code\_globalvars\lists\objects.dm"
#include "code\_globalvars\lists\poll_ignore.dm"
-#include "code\_onclick\_defines.dm"
#include "code\_onclick\adjacent.dm"
#include "code\_onclick\ai.dm"
#include "code\_onclick\autoclick.dm"
@@ -125,6 +124,7 @@
#include "code\_onclick\hud\monkey.dm"
#include "code\_onclick\hud\movable_screen_objects.dm"
#include "code\_onclick\hud\other_mobs.dm"
+#include "code\_onclick\hud\plane_master.dm"
#include "code\_onclick\hud\revenanthud.dm"
#include "code\_onclick\hud\robot.dm"
#include "code\_onclick\hud\screen_objects.dm"
@@ -1483,6 +1483,7 @@
#include "code\modules\mob\living\simple_animal\friendly\lizard.dm"
#include "code\modules\mob\living\simple_animal\friendly\mouse.dm"
#include "code\modules\mob\living\simple_animal\friendly\pet.dm"
+#include "code\modules\mob\living\simple_animal\friendly\sloth.dm"
#include "code\modules\mob\living\simple_animal\friendly\drone\_drone.dm"
#include "code\modules\mob\living\simple_animal\friendly\drone\drones_as_items.dm"
#include "code\modules\mob\living\simple_animal\friendly\drone\extra_drone_types.dm"