diff --git a/_maps/map_files/cyberiad/cyberiad.dmm b/_maps/map_files/cyberiad/cyberiad.dmm
index 8382f800369..d046e4fb402 100644
--- a/_maps/map_files/cyberiad/cyberiad.dmm
+++ b/_maps/map_files/cyberiad/cyberiad.dmm
@@ -35447,7 +35447,6 @@
/area/library)
"bmF" = (
/obj/structure/cult/archives,
-/obj/item/videocam,
/obj/machinery/light_switch{
pixel_y = -25
},
diff --git a/code/LINDA/LINDA_turf_tile.dm b/code/LINDA/LINDA_turf_tile.dm
index a0a0b6b8784..b86ad2299ff 100644
--- a/code/LINDA/LINDA_turf_tile.dm
+++ b/code/LINDA/LINDA_turf_tile.dm
@@ -486,7 +486,7 @@ turf/simulated/proc/consider_superconductivity(starting)
turf/simulated/proc/radiate_to_spess() //Radiate excess tile heat to space
if(temperature > T0C) //Considering 0 degC as te break even point for radiation in and out
- var/delta_temperature = (temperature_archived - 2.7) //hardcoded space temperature
+ var/delta_temperature = (temperature_archived - TCMB) //hardcoded space temperature
if((heat_capacity > 0) && (abs(delta_temperature) > MINIMUM_TEMPERATURE_DELTA_TO_CONSIDER))
var/heat = thermal_conductivity*delta_temperature* \
diff --git a/code/__DEFINES/components.dm b/code/__DEFINES/components.dm
index df957eaa11e..c94dff5ca6c 100644
--- a/code/__DEFINES/components.dm
+++ b/code/__DEFINES/components.dm
@@ -107,6 +107,7 @@
#define COMSIG_MOVABLE_MOVED "movable_moved" //from base of atom/movable/Moved(): (/atom, dir)
#define COMSIG_MOVABLE_CROSS "movable_cross" //from base of atom/movable/Cross(): (/atom/movable)
#define COMSIG_MOVABLE_CROSSED "movable_crossed" //from base of atom/movable/Crossed(): (/atom/movable)
+#define COMSIG_CROSSED_MOVABLE "crossed_movable" //when we cross over something (calling Crossed() on that atom)
#define COMSIG_MOVABLE_UNCROSSED "movable_uncrossed" //from base of atom/movable/Uncrossed(): (/atom/movable)
#define COMSIG_MOVABLE_UNCROSS "movable_uncross" //from base of atom/movable/Uncross(): (/atom/movable)
#define COMPONENT_MOVABLE_BLOCK_UNCROSS 1
diff --git a/code/_onclick/hud/screen_objects.dm b/code/_onclick/hud/screen_objects.dm
index c3c9b6f7e65..c0f5cfd5f3b 100644
--- a/code/_onclick/hud/screen_objects.dm
+++ b/code/_onclick/hud/screen_objects.dm
@@ -362,7 +362,7 @@
object_overlays += item_overlay
add_overlay(object_overlays)
-/obj/screen/inventory/Click()
+/obj/screen/inventory/Click(location, control, params)
// At this point in client Click() code we have passed the 1/10 sec check and little else
// We don't even know if it's a middle click
if(world.time <= usr.next_move)
@@ -371,6 +371,12 @@
return 1
if(istype(usr.loc,/obj/mecha)) // stops inventory actions in a mech
return 1
+
+ if(hud?.mymob && slot_id)
+ var/obj/item/inv_item = hud.mymob.get_item_by_slot(slot_id)
+ if(inv_item)
+ return inv_item.Click(location, control, params)
+
if(usr.attack_ui(slot_id))
usr.update_inv_l_hand(0)
usr.update_inv_r_hand(0)
diff --git a/code/controllers/subsystem/chat.dm b/code/controllers/subsystem/chat.dm
index a90e14d0ab4..d2f87c93e06 100644
--- a/code/controllers/subsystem/chat.dm
+++ b/code/controllers/subsystem/chat.dm
@@ -11,7 +11,8 @@ SUBSYSTEM_DEF(chat)
/datum/controller/subsystem/chat/fire()
for(var/i in payload)
var/client/C = i
- C << output(payload[C], "browseroutput:output")
+ if(C)
+ C << output(payload[C], "browseroutput:output")
payload -= C
if(MC_TICK_CHECK)
diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm
index feb2e59f6cd..e7d64207841 100644
--- a/code/game/atoms_movable.dm
+++ b/code/game/atoms_movable.dm
@@ -220,6 +220,7 @@
// This is automatically called when something enters your square
/atom/movable/Crossed(atom/movable/AM, oldloc)
SEND_SIGNAL(src, COMSIG_MOVABLE_CROSSED, AM)
+ SEND_SIGNAL(AM, COMSIG_CROSSED_MOVABLE, src)
/atom/movable/Bump(atom/A, yes) //the "yes" arg is to differentiate our Bump proc from byond's, without it every Bump() call would become a double Bump().
if(A && yes)
diff --git a/code/game/gamemodes/cult/cult_structures.dm b/code/game/gamemodes/cult/cult_structures.dm
index 3489a087ec0..de8846d292e 100644
--- a/code/game/gamemodes/cult/cult_structures.dm
+++ b/code/game/gamemodes/cult/cult_structures.dm
@@ -226,7 +226,7 @@ var/list/blacklisted_pylon_turfs = typecacheof(list(
if(istype(T, /turf/simulated/floor))
T.ChangeTurf(/turf/simulated/floor/engine/cult)
if(istype(T, /turf/simulated/wall))
- T.ChangeTurf(/turf/simulated/wall/cult)
+ T.ChangeTurf(/turf/simulated/wall/cult/artificer)
else
var/turf/simulated/floor/engine/cult/F = safepick(cultturfs)
if(F)
diff --git a/code/game/gamemodes/miniantags/abduction/abduction.dm b/code/game/gamemodes/miniantags/abduction/abduction.dm
index 9fce3cc6e24..bcbc86d991b 100644
--- a/code/game/gamemodes/miniantags/abduction/abduction.dm
+++ b/code/game/gamemodes/miniantags/abduction/abduction.dm
@@ -208,12 +208,14 @@
text += "
The abductors were:
"
for(var/datum/mind/abductor_mind in abductors)
text += printplayer(abductor_mind)
+ text += "
"
text += printobjectives(abductor_mind)
text += "
"
if(abductees.len)
text += "
The abductees were:
"
for(var/datum/mind/abductee_mind in abductees)
text += printplayer(abductee_mind)
+ text += "
"
text += printobjectives(abductee_mind)
text += "
"
to_chat(world, text)
diff --git a/code/game/jobs/job/central.dm b/code/game/jobs/job/central.dm
index 938ccb6d12c..d9c30292d82 100644
--- a/code/game/jobs/job/central.dm
+++ b/code/game/jobs/job/central.dm
@@ -68,7 +68,7 @@
jobtype = /datum/job/ntspecops
uniform = /obj/item/clothing/under/rank/centcom/captain
suit = /obj/item/clothing/suit/space/deathsquad/officer
- back = /obj/item/storage/backpack/security
+ back = /obj/item/storage/backpack/ert/security
belt = /obj/item/storage/belt/military/assault
gloves = /obj/item/clothing/gloves/combat
shoes = /obj/item/clothing/shoes/combat
diff --git a/code/game/jobs/job/supervisor.dm b/code/game/jobs/job/supervisor.dm
index a94dfea7c73..4e773d42ad9 100644
--- a/code/game/jobs/job/supervisor.dm
+++ b/code/game/jobs/job/supervisor.dm
@@ -182,9 +182,9 @@ var/datum/announcement/minor/captain_announcement = new(do_newscast = 0)
/obj/item/gun/energy/gun/blueshield = 1
)
implants = list(/obj/item/implant/mindshield)
- backpack = /obj/item/storage/backpack/security
- satchel = /obj/item/storage/backpack/satchel_sec
- dufflebag = /obj/item/storage/backpack/duffel/security
+ backpack = /obj/item/storage/backpack/blueshield
+ satchel = /obj/item/storage/backpack/satchel_blueshield
+ dufflebag = /obj/item/storage/backpack/duffel/blueshield
/datum/job/judge
diff --git a/code/game/jobs/job/support.dm b/code/game/jobs/job/support.dm
index 8371dcfa1c3..7d4f5ccc622 100644
--- a/code/game/jobs/job/support.dm
+++ b/code/game/jobs/job/support.dm
@@ -294,6 +294,7 @@
genemutcheck(H, COMICBLOCK, null, MUTCHK_FORCED)
H.dna.default_blocks.Add(COMICBLOCK)
H.check_mutations = TRUE
+ H.add_language("Clownish")
//action given to antag clowns
/datum/action/innate/toggle_clumsy
@@ -420,6 +421,8 @@
r_pocket = /obj/item/barcodescanner
l_hand = /obj/item/storage/bag/books
pda = /obj/item/pda/librarian
+ backpack_contents = list(
+ /obj/item/videocam = 1)
/datum/job/barber
title = "Barber"
diff --git a/code/game/objects/items/flag.dm b/code/game/objects/items/flag.dm
index 1b2eae4db8d..aed33fc2819 100644
--- a/code/game/objects/items/flag.dm
+++ b/code/game/objects/items/flag.dm
@@ -197,7 +197,7 @@
name = "Chameleon flag"
desc = "A poor recreation of the official NT flag. It seems to shimmer a little."
icon_state = "ntflag"
- origin_tech = "syndicate=4;magnets=4"
+ origin_tech = "syndicate=1;magnets=4"
var/updated_icon_state = null
var/used = FALSE
var/obj/item/grenade/boobytrap = null
diff --git a/code/game/objects/items/weapons/storage/backpack.dm b/code/game/objects/items/weapons/storage/backpack.dm
index 96806bb827a..af5e9540b02 100644
--- a/code/game/objects/items/weapons/storage/backpack.dm
+++ b/code/game/objects/items/weapons/storage/backpack.dm
@@ -193,6 +193,12 @@
icon_state = "viropack"
item_state = "viropack"
+/obj/item/storage/backpack/blueshield
+ name = "blueshield backpack"
+ desc = "A robust backpack issued to Nanotrasen's finest."
+ icon_state = "blueshieldpack"
+ item_state = "blueshieldpack"
+
/*
* Satchel Types
*/
@@ -287,6 +293,11 @@
icon_state = "satchel-cap"
resistance_flags = FIRE_PROOF
+/obj/item/storage/backpack/satchel_blueshield
+ name = "blueshield satchel"
+ desc = "A robust satchel issued to Nanotrasen's finest."
+ icon_state = "satchel-blueshield"
+
/obj/item/storage/backpack/satchel_flat
name = "smuggler's satchel"
desc = "A very slim satchel that can easily fit into tight spaces."
@@ -531,12 +542,19 @@
icon_state = "duffel-clown"
item_state = "duffel-clown"
+obj/item/storage/backpack/duffel/blueshield
+ name = "blueshield duffelbag"
+ desc = "A robust duffelbag issued to Nanotrasen's finest."
+ icon_state = "duffel-blueshield"
+ item_state = "duffel-blueshield"
+
//ERT backpacks.
/obj/item/storage/backpack/ert
name = "emergency response team backpack"
desc = "A spacious backpack with lots of pockets, used by members of the Nanotrasen Emergency Response Team."
icon_state = "ert_commander"
item_state = "backpack"
+ max_combined_w_class = 30
resistance_flags = FIRE_PROOF
//Commander
diff --git a/code/game/objects/items/weapons/storage/fancy.dm b/code/game/objects/items/weapons/storage/fancy.dm
index 94c13991083..52ea512610b 100644
--- a/code/game/objects/items/weapons/storage/fancy.dm
+++ b/code/game/objects/items/weapons/storage/fancy.dm
@@ -270,7 +270,7 @@
desc = "A prescription packet containing six marijuana cigarettes."
icon_state = "medpacket"
item_state = "cigpacket"
- default_reagents = list("thc" = 15)
+ default_reagents = list("thc" = 15, "cbd" = 15)
/obj/item/storage/fancy/cigarettes/cigpack_uplift
name = "\improper Uplift Smooth packet"
diff --git a/code/game/objects/structures/noticeboard.dm b/code/game/objects/structures/noticeboard.dm
index aa6528ee118..5938a52c1d5 100644
--- a/code/game/objects/structures/noticeboard.dm
+++ b/code/game/objects/structures/noticeboard.dm
@@ -78,10 +78,5 @@
if(href_list["read"])
var/obj/item/paper/P = locate(href_list["read"])
if((P && P.loc == src))
- if(!( istype(usr, /mob/living/carbon/human) ))
- usr << browse("
[P.name][stars(P.info)]", "window=[P.name]")
- onclose(usr, "[P.name]")
- else
- usr << browse("[P.name][P.info]", "window=[P.name]")
- onclose(usr, "[P.name]")
+ P.show_content(usr)
return
diff --git a/code/game/turfs/simulated/minerals.dm b/code/game/turfs/simulated/minerals.dm
index c4f0e93dbd6..118132765a1 100644
--- a/code/game/turfs/simulated/minerals.dm
+++ b/code/game/turfs/simulated/minerals.dm
@@ -8,7 +8,6 @@
smooth = SMOOTH_MORE | SMOOTH_BORDER
canSmoothWith = null
baseturf = /turf/simulated/floor/plating/asteroid/airless
- temperature = 2.7
opacity = 1
density = TRUE
blocks_air = TRUE
diff --git a/code/game/world.dm b/code/game/world.dm
index 4488cb2d218..cccf5eb497a 100644
--- a/code/game/world.dm
+++ b/code/game/world.dm
@@ -4,6 +4,7 @@ var/global/list/map_transition_config = MAP_TRANSITION_CONFIG
/world/New()
SetupLogs()
+ enable_debugger() // Enable the extools debugger
log_world("World loaded at [time_stamp()]")
log_world("[GLOB.vars.len - GLOB.gvars_datum_in_built_vars.len] global variables")
@@ -468,3 +469,10 @@ proc/establish_db_connection()
return 1
#undef FAILED_DB_CONNECTION_CUTOFF
+
+// Proc to enable the extools debugger, which allows breakpoints, live var checking, and many other useful tools
+// The DLL is injected into the env by visual studio code. If not running VSCode, the proc will not call the initialization
+/world/proc/enable_debugger()
+ var/dll = world.GetConfig("env", "EXTOOLS_DLL")
+ if (dll)
+ call(dll, "debug_initialize")()
\ No newline at end of file
diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm
index 495e4771e19..8d46385bcd9 100644
--- a/code/modules/admin/topic.dm
+++ b/code/modules/admin/topic.dm
@@ -2164,7 +2164,7 @@
var/obj/pageobj = B.contents[page]
data += "Page [page] - [pageobj.name]
"
- usr << browse(data, "window=[B.name]")
+ usr << browse(data, "window=PaperBundle[B.UID()]")
else
to_chat(usr, "The faxed item is not viewable. This is probably a bug, and should be reported on the tracker: [fax.type]")
diff --git a/code/modules/admin/verbs/randomverbs.dm b/code/modules/admin/verbs/randomverbs.dm
index 2384c24b6ff..a347f65590b 100644
--- a/code/modules/admin/verbs/randomverbs.dm
+++ b/code/modules/admin/verbs/randomverbs.dm
@@ -116,7 +116,7 @@
if(!msg)
return
- msg = pencode_to_html(msg)
+ msg = admin_pencode_to_html(msg)
to_chat(world, "[msg]")
log_admin("GlobalNarrate: [key_name(usr)] : [msg]")
message_admins("GlobalNarrate: [key_name_admin(usr)]: [msg]
", 1)
diff --git a/code/modules/busy_space/organizations.dm b/code/modules/busy_space/organizations.dm
index 41b3a80cbab..f80e82938ec 100644
--- a/code/modules/busy_space/organizations.dm
+++ b/code/modules/busy_space/organizations.dm
@@ -439,7 +439,7 @@
/datum/lore/organization/gov/synth
name = "Synthetic Union"
- short_name = "Synthtica"
+ short_name = "Synthetica"
acronym = "SYN"
desc = "A defensive coalition of synthetics based out of New Canaan,\
the Synthetic Union is an organization which aims to establish and consolidate synthetic rights across the galaxy.\
diff --git a/code/modules/events/spider_terror.dm b/code/modules/events/spider_terror.dm
index 1ecf5aa22ca..925051cff11 100644
--- a/code/modules/events/spider_terror.dm
+++ b/code/modules/events/spider_terror.dm
@@ -15,6 +15,10 @@
var/list/vents = list()
for(var/obj/machinery/atmospherics/unary/vent_pump/temp_vent in GLOB.all_vent_pumps)
if(is_station_level(temp_vent.loc.z) && !temp_vent.welded)
+ if(!temp_vent.parent)
+ // Issue happening more often with vents. Log and continue. Delete once solved
+ log_debug("spider_terror/start(), vent has no parent: [temp_vent], qdeled: [QDELETED(temp_vent)], loc: [temp_vent.loc]")
+ continue
if(temp_vent.parent.other_atmosmch.len > 50)
vents += temp_vent
var/spider_type
diff --git a/code/modules/events/traders.dm b/code/modules/events/traders.dm
index 04663f93152..b481bca88eb 100644
--- a/code/modules/events/traders.dm
+++ b/code/modules/events/traders.dm
@@ -18,6 +18,9 @@ var/global/list/unused_trade_stations = list("sol")
return
if(seclevel2num(get_security_level()) >= SEC_LEVEL_RED)
event_announcement.Announce("A trading shuttle from Jupiter Station has been denied docking permission due to the heightened security alert aboard [station_name()].", "Trader Shuttle Docking Request Refused")
+ // if the docking request was refused, fire another major event in 60 seconds
+ var/list/datum/event_container/EC = SSevents.event_containers[EVENT_LEVEL_MAJOR]
+ EC.next_event_time = world.time + (60 * 10)
return
var/list/spawnlocs = list()
diff --git a/code/modules/hydroponics/grown/cannabis.dm b/code/modules/hydroponics/grown/cannabis.dm
index 274a1f1e084..06ba1fc7a66 100644
--- a/code/modules/hydroponics/grown/cannabis.dm
+++ b/code/modules/hydroponics/grown/cannabis.dm
@@ -17,7 +17,7 @@
/obj/item/seeds/cannabis/death,
/obj/item/seeds/cannabis/white,
/obj/item/seeds/cannabis/ultimate)
- reagents_add = list("thc" = 0.15)
+ reagents_add = list("thc" = 0.15, "cbd" = 0.15)
/obj/item/seeds/cannabis/rainbow
@@ -28,7 +28,7 @@
plantname = "Rainbow Weed"
product = /obj/item/reagent_containers/food/snacks/grown/cannabis/rainbow
mutatelist = list()
- reagents_add = list("lsd" = 0.15, "thc" = 0.15)
+ reagents_add = list("lsd" = 0.15, "thc" = 0.15, "cbd" = 0.15)
rarity = 40
/obj/item/seeds/cannabis/death
@@ -39,7 +39,7 @@
plantname = "Deathweed"
product = /obj/item/reagent_containers/food/snacks/grown/cannabis/death
mutatelist = list()
- reagents_add = list("cyanide" = 0.35, "thc" = 0.15)
+ reagents_add = list("cyanide" = 0.35, "thc" = 0.15, "cbd" = 0.15)
rarity = 40
/obj/item/seeds/cannabis/white
@@ -50,7 +50,7 @@
plantname = "Lifeweed"
product = /obj/item/reagent_containers/food/snacks/grown/cannabis/white
mutatelist = list()
- reagents_add = list("omnizine" = 0.35, "thc" = 0.15)
+ reagents_add = list("omnizine" = 0.35, "thc" = 0.15, "cbd" = 0.15)
rarity = 40
@@ -72,6 +72,7 @@
"haloperidol" = 0.15,
"methamphetamine" = 0.15,
"thc" = 0.15,
+ "cbd" = 0.15,
"psilocybin" = 0.15,
"hairgrownium" = 0.15,
"ectoplasm" = 0.15,
diff --git a/code/modules/hydroponics/grown/tomato.dm b/code/modules/hydroponics/grown/tomato.dm
index 873b08f151e..6cf56d619d6 100644
--- a/code/modules/hydroponics/grown/tomato.dm
+++ b/code/modules/hydroponics/grown/tomato.dm
@@ -141,7 +141,8 @@
spawn(30)
if(!QDELETED(src))
- var/mob/living/simple_animal/hostile/killertomato/K = new /mob/living/simple_animal/hostile/killertomato(get_turf(loc))
+ var/turf/T = get_turf(user)
+ var/mob/living/simple_animal/hostile/killertomato/K = new /mob/living/simple_animal/hostile/killertomato(T)
K.maxHealth += round(seed.endurance / 3)
K.melee_damage_lower += round(seed.potency / 10)
K.melee_damage_upper += round(seed.potency / 10)
@@ -150,4 +151,6 @@
K.visible_message("The Killer Tomato growls as it suddenly awakens.")
if(user)
user.unEquip(src)
+ message_admins("[key_name_admin(user)] released a killer tomato at [ADMIN_COORDJMP(T)]")
+ log_game("[key_name(user)] released a killer tomato at [COORD(T)]")
qdel(src)
diff --git a/code/modules/mob/living/carbon/alien/alien_defense.dm b/code/modules/mob/living/carbon/alien/alien_defense.dm
index f4832e20384..04924d4b310 100644
--- a/code/modules/mob/living/carbon/alien/alien_defense.dm
+++ b/code/modules/mob/living/carbon/alien/alien_defense.dm
@@ -79,5 +79,5 @@ In all, this is a lot like the monkey code. /N
if(M.is_adult)
damage = rand(10, 40)
adjustBruteLoss(damage)
- add_attack_logs(src, M, "Slime'd for [damage] damage")
+ add_attack_logs(M, src, "Slime'd for [damage] damage")
updatehealth("slime attack")
\ No newline at end of file
diff --git a/code/modules/mob/living/carbon/human/emote.dm b/code/modules/mob/living/carbon/human/emote.dm
index 01c2d773d51..51088f66457 100644
--- a/code/modules/mob/living/carbon/human/emote.dm
+++ b/code/modules/mob/living/carbon/human/emote.dm
@@ -585,6 +585,14 @@
message = "[src] makes a weak noise"
m_type = 2
+ if("hsigh", "hsighs")
+ if(!muzzled)
+ message = "[src] sighs contentedly."
+ m_type = 2
+ else
+ message = "[src] makes a [pick("chill", "relaxed")] noise"
+ m_type = 2
+
if("laugh", "laughs")
var/M = handle_emote_param(param)
if(miming)
diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm
index bf3e5d36af5..6540b74de58 100644
--- a/code/modules/mob/living/carbon/human/human.dm
+++ b/code/modules/mob/living/carbon/human/human.dm
@@ -454,12 +454,6 @@
popup.set_content(dat)
popup.open()
-
-/mob/living/carbon/human/Crossed(atom/movable/AM, oldloc)
- var/mob/living/simple_animal/bot/mulebot/MB = AM
- if(istype(MB))
- MB.RunOver(src)
-
// Get rank from ID, ID inside PDA, PDA, ID in wallet, etc.
/mob/living/carbon/human/proc/get_authentification_rank(var/if_no_id = "No id", var/if_no_job = "No job")
var/obj/item/pda/pda = wear_id
diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm
index 2643d1f3102..93e7ff54ec6 100644
--- a/code/modules/mob/living/carbon/human/life.dm
+++ b/code/modules/mob/living/carbon/human/life.dm
@@ -542,7 +542,7 @@
if(COLDRES in mutations)
return 1 //Fully protected from the cold.
- temperature = max(temperature, 2.7) //There is an occasional bug where the temperature is miscalculated in ares with a small amount of gas on them, so this is necessary to ensure that that bug does not affect this calculation. Space's temperature is 2.7K and most suits that are intended to protect against any cold, protect down to 2.0K.
+ temperature = max(temperature, TCMB) //There is an occasional bug where the temperature is miscalculated in areas with a small amount of gas on them, so this is necessary to ensure that that bug does not affect this calculation. Space's temperature is 2.7K and most suits that are intended to protect against any cold, protect down to 2.0K.
var/thermal_protection_flags = get_cold_protection_flags(temperature)
var/thermal_protection = 0.0
diff --git a/code/modules/mob/living/carbon/human/species/plasmaman.dm b/code/modules/mob/living/carbon/human/species/plasmaman.dm
index d925e2ef1d9..c30c8176fdc 100644
--- a/code/modules/mob/living/carbon/human/species/plasmaman.dm
+++ b/code/modules/mob/living/carbon/human/species/plasmaman.dm
@@ -165,7 +165,7 @@
..()
/datum/species/plasmaman/handle_reagents(mob/living/carbon/human/H, datum/reagent/R)
- if(R.id == "plasma")
+ if(R.id == "plasma" || R.id == "plasma_dust")
H.adjustBruteLoss(-0.5*REAGENTS_EFFECT_MULTIPLIER)
H.adjustFireLoss(-0.5*REAGENTS_EFFECT_MULTIPLIER)
H.adjustPlasma(20)
diff --git a/code/modules/mob/living/living_defense.dm b/code/modules/mob/living/living_defense.dm
index 7aa8790db0e..aaa11710642 100644
--- a/code/modules/mob/living/living_defense.dm
+++ b/code/modules/mob/living/living_defense.dm
@@ -296,7 +296,7 @@
return FALSE
if(stat != DEAD)
- add_attack_logs(src, M, "Slime'd")
+ add_attack_logs(M, src, "Slime'd")
M.do_attack_animation(src)
visible_message("\The [M.name] glomps [src]!", "\The [M.name] glomps you!")
return TRUE
diff --git a/code/modules/mob/living/simple_animal/bot/mulebot.dm b/code/modules/mob/living/simple_animal/bot/mulebot.dm
index a1b361d87db..c89b160bf0e 100644
--- a/code/modules/mob/living/simple_animal/bot/mulebot.dm
+++ b/code/modules/mob/living/simple_animal/bot/mulebot.dm
@@ -63,6 +63,7 @@
mulebot_count++
set_suffix(suffix ? suffix : "#[mulebot_count]")
+ RegisterSignal(src, COMSIG_CROSSED_MOVABLE, .proc/human_squish_check)
/mob/living/simple_animal/bot/mulebot/Destroy()
unload(0)
@@ -866,6 +867,11 @@
else
..()
+/mob/living/simple_animal/bot/mulebot/proc/human_squish_check(src, atom/movable/AM)
+ if(!ishuman(AM))
+ return
+ RunOver(AM)
+
#undef SIGH
#undef ANNOYED
#undef DELIGHT
diff --git a/code/modules/paperwork/paper.dm b/code/modules/paperwork/paper.dm
index 3f8924232e7..75d6d9084ca 100644
--- a/code/modules/paperwork/paper.dm
+++ b/code/modules/paperwork/paper.dm
@@ -80,7 +80,7 @@
else
data = "[infolinks ? info_links : info]
[stamps]"
if(view)
- var/datum/browser/popup = new(user, name, , paper_width, paper_height)
+ var/datum/browser/popup = new(user, "Paper[UID()]", , paper_width, paper_height)
popup.stylesheets = list()
popup.set_content(data)
if(!stars)
diff --git a/code/modules/paperwork/paper_bundle.dm b/code/modules/paperwork/paper_bundle.dm
index ecc26ba0cff..06bd0ec25c6 100644
--- a/code/modules/paperwork/paper_bundle.dm
+++ b/code/modules/paperwork/paper_bundle.dm
@@ -63,13 +63,13 @@
qdel(W)
else
if(istype(W, /obj/item/pen) || istype(W, /obj/item/toy/crayon))
- usr << browse("", "window=[name]") //Closes the dialog
+ usr << browse("", "window=PaperBundle[UID()]") //Closes the dialog
P = src[page]
P.attackby(W, user, params)
update_icon()
- if(winget(usr, "[name]", "is-visible") == "true") // NOT MY FAULT IT IS A BUILT IN PROC PLEASE DO NOT HIT ME
+ if(winget(usr, "PaperBundle[UID()]", "is-visible") == "true") // NOT MY FAULT IT IS A BUILT IN PROC PLEASE DO NOT HIT ME
attack_self(usr) //Update the browsed page.
add_fingerprint(usr)
return
@@ -125,7 +125,7 @@
if(istype(src[page], /obj/item/paper))
var/obj/item/paper/P = W
dat += P.show_content(usr, view = 0)
- usr << browse(dat, "window=[name]")
+ usr << browse(dat, "window=PaperBundle[UID()]")
else if(istype(src[page], /obj/item/photo))
var/obj/item/photo/P = W
usr << browse_rsc(P.img, "tmp_photo.png")
@@ -133,7 +133,7 @@
+ "" \
+ " 
Written on the back:
[P.scribble]" : ""]"\
- + "