diff --git a/code/__DEFINES/~~bubber_defines/span.dm b/code/__DEFINES/~~bubber_defines/span.dm
new file mode 100644
index 00000000000..7ab28a8a935
--- /dev/null
+++ b/code/__DEFINES/~~bubber_defines/span.dm
@@ -0,0 +1 @@
+#define span_subtlepda(str) ("" + str + "")
diff --git a/code/modules/antagonists/changeling/powers/shriek.dm b/code/modules/antagonists/changeling/powers/shriek.dm
index 8873ef73a49..828f7a4fc06 100644
--- a/code/modules/antagonists/changeling/powers/shriek.dm
+++ b/code/modules/antagonists/changeling/powers/shriek.dm
@@ -43,16 +43,23 @@
chemical_cost = 20
dna_cost = 1
disabled_by_fire = FALSE
+ COOLDOWN_DECLARE(dissonant_shriek_cooldown) //BUBBER EDIT: DECLARES A COOLDOWN
/datum/action/changeling/dissonant_shriek/sting_action(mob/user)
..()
if(user.movement_type & VENTCRAWLING)
user.balloon_alert(user, "can't shriek in pipes!")
return FALSE
+ //BUBBER EDIT: NO PULSE IF YOU'RE ON COOLDOWN
+ if(!COOLDOWN_FINISHED(src, dissonant_shriek_cooldown))
+ user.balloon_alert(user, "throat is sore!")
+ return FALSE
+ //BUBBER EDIT: NO PULSE IF YOU'RE ON COOLDOWN
empulse(get_turf(user), 2, 5, 1)
for(var/obj/machinery/light/L in range(5, usr))
L.on = TRUE
L.break_light_tube()
stoplag()
+ COOLDOWN_START(src, dissonant_shriek_cooldown, 10 SECONDS) //BUBBER EDIT: ADDS A COOLDOWN TO DISSONANT SHRIEK
return TRUE
diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm
index 243cadc1b1b..0e8bb3c2ee8 100644
--- a/code/modules/client/preferences.dm
+++ b/code/modules/client/preferences.dm
@@ -9,7 +9,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
/// Ensures that we always load the last used save, QOL
var/default_slot = 1
/// The maximum number of slots we're allowed to contain
- var/max_save_slots = 30 //SKYRAT EDIT - ORIGINAL 3
+ var/max_save_slots = 50 // BUBBER EDIT: original is 3
/// Bitflags for communications that are muted
var/muted = NONE
@@ -112,7 +112,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
unlock_content = !!parent.IsByondMember()
donator_status = !!GLOB.donator_list[parent.ckey] //SKYRAT EDIT ADD - DONATOR CHECK
if(unlock_content || donator_status) //SKYRAT EDIT - ADD DONATOR CHECK
- max_save_slots = 50 //SKYRAT EDIT - ORIGINAL 8
+ max_save_slots = 100 //SKYRAT EDIT - ORIGINAL 8
else
CRASH("attempted to create a preferences datum without a client or mock!")
load_savefile()
diff --git a/code/modules/modular_computers/file_system/programs/messenger/messenger_program.dm b/code/modules/modular_computers/file_system/programs/messenger/messenger_program.dm
index 56e2a992f0a..97cb3dca59c 100644
--- a/code/modules/modular_computers/file_system/programs/messenger/messenger_program.dm
+++ b/code/modules/modular_computers/file_system/programs/messenger/messenger_program.dm
@@ -665,10 +665,13 @@
to_chat(listener, "[FOLLOW_LINK(listener, source)] [ghost_message]")
// Log to public log
log_public_file(public_message)
- // BUBBER EDIT CHANGE END
if(sender)
- to_chat(sender, span_info("PDA message sent to [signal.format_target()]: \"[message]\""))
+ if(subtle)
+ to_chat(sender, span_subtlepda("Subtle PDA message sent to [signal.format_target()]: \"[message]\""))
+ else
+ to_chat(sender, span_info("PDA message sent to [signal.format_target()]: \"[message]\""))
+ // BUBBER EDIT CHANGE END
if (alert_able && !alert_silenced)
computer.send_sound()
@@ -688,6 +691,7 @@
var/is_fake_user = is_rigged || is_automated || isnull(signal.data["ref"])
var/fake_name = is_fake_user ? signal.data["fakename"] : null
var/fake_job = is_fake_user ? signal.data["fakejob"] : null
+ var/is_subtle = signal.data["subtle"] // BUBBER EDIT ADDITION - SUBTLE MESSAGES
var/sender_ref = signal.data["ref"]
@@ -739,7 +743,12 @@
var/inbound_message = "[signal.format_message()]"
var/photo_message = signal.data["photo"] ? " (Photo Attached)" : ""
- to_chat(messaged_mob, span_infoplain("[icon2html(computer, messaged_mob)] PDA message from [sender_title], \"[inbound_message]\"[photo_message] [reply]"))
+ // BUBBER EDIT CHANGE BEGIN - SUBTLE MESSAGES
+ if(is_subtle)
+ to_chat(messaged_mob, span_subtlepda("[icon2html(computer, messaged_mob)] Subtle PDA message from [sender_title], \"[inbound_message]\"[photo_message] [reply]"))
+ else
+ to_chat(messaged_mob, span_infoplain("[icon2html(computer, messaged_mob)] PDA message from [sender_title], \"[inbound_message]\"[photo_message] [reply]"))
+ // BUBBER EDIT CHANGE END - SUBTLE MESSAGES
SEND_SIGNAL(computer, COMSIG_COMPUTER_RECEIVED_MESSAGE, sender_title, inbound_message, photo_message)
diff --git a/html/changelogs/AutoChangeLog-pr-2230.yml b/html/changelogs/AutoChangeLog-pr-2230.yml
new file mode 100644
index 00000000000..0117d09dcb2
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-2230.yml
@@ -0,0 +1,7 @@
+author: "nikothedude"
+delete-after: True
+changes:
+ - balance: "Synth blunt T3 now requires a T1 burn wound to mold"
+ - balance: "Synth blunt T3 heating step now gives a T1 burn wound"
+ - balance: "Synth blunt T3 heating now takes 3 secs"
+ - balance: "Synth electrical damage is now much more treatable with wires"
\ No newline at end of file
diff --git a/html/changelogs/AutoChangeLog-pr-2234.yml b/html/changelogs/AutoChangeLog-pr-2234.yml
new file mode 100644
index 00000000000..bfac1202138
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-2234.yml
@@ -0,0 +1,4 @@
+author: "Iamgoofball"
+delete-after: True
+changes:
+ - rscadd: "Adds 20 more slots for free players and up to 100 slots for BYOND members"
\ No newline at end of file
diff --git a/html/changelogs/AutoChangeLog-pr-2243.yml b/html/changelogs/AutoChangeLog-pr-2243.yml
new file mode 100644
index 00000000000..ab44d143c4c
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-2243.yml
@@ -0,0 +1,4 @@
+author: "LT3"
+delete-after: True
+changes:
+ - qol: "Received subtle PDA messages are labelled subtle in the text log"
\ No newline at end of file
diff --git a/html/changelogs/AutoChangeLog-pr-2250.yml b/html/changelogs/AutoChangeLog-pr-2250.yml
new file mode 100644
index 00000000000..14eb746f64e
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-2250.yml
@@ -0,0 +1,4 @@
+author: "nikothedude"
+delete-after: True
+changes:
+ - bugfix: "Nagas no longer play human footsteps"
\ No newline at end of file
diff --git a/html/changelogs/AutoChangeLog-pr-2266.yml b/html/changelogs/AutoChangeLog-pr-2266.yml
new file mode 100644
index 00000000000..742d927e22c
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-2266.yml
@@ -0,0 +1,4 @@
+author: "ReturnToZender"
+delete-after: True
+changes:
+ - balance: "Changeling shrieks now have a 10 second cooldown."
\ No newline at end of file
diff --git a/modular_skyrat/modules/medical/code/wounds/synth/blunt/robotic_blunt.dm b/modular_skyrat/modules/medical/code/wounds/synth/blunt/robotic_blunt.dm
index 35b68bf6d8e..87eaaa302b3 100644
--- a/modular_skyrat/modules/medical/code/wounds/synth/blunt/robotic_blunt.dm
+++ b/modular_skyrat/modules/medical/code/wounds/synth/blunt/robotic_blunt.dm
@@ -167,7 +167,7 @@
RETURN_TYPE(/datum/wound/burn/robotic/overheat)
for (var/datum/wound/found_wound as anything in limb.wounds)
var/datum/wound_pregen_data/pregen_data = found_wound.get_pregen_data()
- if (pregen_data.wound_series == WOUND_SERIES_METAL_BURN_OVERHEAT && found_wound.severity >= WOUND_SEVERITY_SEVERE) // meh solution but whateva
+ if (pregen_data.wound_series == WOUND_SERIES_METAL_BURN_OVERHEAT && found_wound.severity >= WOUND_SEVERITY_MODERATE) // meh solution but whateva
return found_wound
return null
diff --git a/modular_skyrat/modules/medical/code/wounds/synth/blunt/robotic_blunt_T3.dm b/modular_skyrat/modules/medical/code/wounds/synth/blunt/robotic_blunt_T3.dm
index e30c4aeed1c..3ececf6b398 100644
--- a/modular_skyrat/modules/medical/code/wounds/synth/blunt/robotic_blunt_T3.dm
+++ b/modular_skyrat/modules/medical/code/wounds/synth/blunt/robotic_blunt_T3.dm
@@ -213,10 +213,10 @@
if (HAS_TRAIT(src, TRAIT_WOUND_SCANNED))
delay_mult *= 0.75
- if (!welder.use_tool(target = victim, user = user, delay = 7 SECONDS * delay_mult, volume = 50, extra_checks = CALLBACK(src, PROC_REF(still_exists))))
+ if (!welder.use_tool(target = victim, user = user, delay = 3 SECONDS * delay_mult, volume = 50, extra_checks = CALLBACK(src, PROC_REF(still_exists))))
return TRUE
- var/wound_path = /datum/wound/burn/robotic/overheat/severe
+ var/wound_path = /datum/wound/burn/robotic/overheat/moderate
if (user != victim && user.combat_mode)
wound_path = /datum/wound/burn/robotic/overheat/critical // it really isnt that bad, overheat wounds are a bit funky
user.visible_message(span_danger("[user] heats [victim]'s [limb.plaintext_zone] aggressively, overheating it far beyond the necessary point!"), \
diff --git a/modular_skyrat/modules/medical/code/wounds/synth/robotic_pierce.dm b/modular_skyrat/modules/medical/code/wounds/synth/robotic_pierce.dm
index 26e8a1ab54d..c34d258c8e0 100644
--- a/modular_skyrat/modules/medical/code/wounds/synth/robotic_pierce.dm
+++ b/modular_skyrat/modules/medical/code/wounds/synth/robotic_pierce.dm
@@ -42,7 +42,7 @@
process_shock_spark_count_min = 1
wirecut_repair_percent = 0.078
- wire_repair_percent = 0.018
+ wire_repair_percent = 0.036
initial_sparks_amount = 1
@@ -85,11 +85,11 @@
process_shock_spark_count_min = 1
wirecut_repair_percent = 0.046
- wire_repair_percent = 0.01
+ wire_repair_percent = 0.024
initial_sparks_amount = 3
- status_effect_type = /datum/status_effect/wound/electrical_damage/pierce/moderate
+ status_effect_type = /datum/status_effect/wound/electrical_damage/pierce/severe
a_or_from = "a"
@@ -130,11 +130,11 @@
process_shock_spark_count_min = 2
wirecut_repair_percent = 0.032
- wire_repair_percent = 0.008
+ wire_repair_percent = 0.017
initial_sparks_amount = 8
- status_effect_type = /datum/status_effect/wound/electrical_damage/pierce/moderate
+ status_effect_type = /datum/status_effect/wound/electrical_damage/pierce/critical
a_or_from = "a"
diff --git a/modular_skyrat/modules/medical/code/wounds/synth/robotic_slash.dm b/modular_skyrat/modules/medical/code/wounds/synth/robotic_slash.dm
index e478bc3ade7..dc87c679770 100644
--- a/modular_skyrat/modules/medical/code/wounds/synth/robotic_slash.dm
+++ b/modular_skyrat/modules/medical/code/wounds/synth/robotic_slash.dm
@@ -533,7 +533,7 @@
process_shock_spark_count_min = 1
wirecut_repair_percent = 0.1
- wire_repair_percent = 0.023
+ wire_repair_percent = 0.0368
initial_sparks_amount = 1
@@ -576,7 +576,7 @@
process_shock_spark_count_min = 1
wirecut_repair_percent = 0.09
- wire_repair_percent = 0.015
+ wire_repair_percent = 0.03
initial_sparks_amount = 3
@@ -621,7 +621,7 @@
process_shock_spark_count_min = 2
wirecut_repair_percent = 0.08
- wire_repair_percent = 0.01
+ wire_repair_percent = 0.027
initial_sparks_amount = 8
diff --git a/modular_zubbers/code/modules/taur_mechanics/serpentine_taur.dm b/modular_zubbers/code/modules/taur_mechanics/serpentine_taur.dm
index a09fe1e296a..fb0822e965a 100644
--- a/modular_zubbers/code/modules/taur_mechanics/serpentine_taur.dm
+++ b/modular_zubbers/code/modules/taur_mechanics/serpentine_taur.dm
@@ -1,12 +1,13 @@
/obj/item/organ/external/taur_body/serpentine/on_mob_insert(mob/living/carbon/organ_owner, special, movement_flags)
. = ..()
- organ_owner.RemoveElement(/datum/element/footstep, FOOTSTEP_MOB_HUMAN, 0.6, -6)
+ // These args must be the same as the args used to add the basic human footstep!
+ organ_owner.RemoveElement(/datum/element/footstep, FOOTSTEP_MOB_HUMAN, 1, -6)
organ_owner.AddElement(/datum/element/footstep, FOOTSTEP_MOB_SNAKE, 15, -6)
/obj/item/organ/external/taur_body/serpentine/on_mob_remove(mob/living/carbon/organ_owner, special, movement_flags)
organ_owner.RemoveElement(/datum/element/footstep, FOOTSTEP_MOB_SNAKE, 15, -6)
- organ_owner.AddElement(/datum/element/footstep, FOOTSTEP_MOB_HUMAN, 0.6, -6)
+ organ_owner.AddElement(/datum/element/footstep, FOOTSTEP_MOB_HUMAN, 1, -6)
return ..()
diff --git a/tgstation.dme b/tgstation.dme
index c040bee2900..811f676312d 100644
--- a/tgstation.dme
+++ b/tgstation.dme
@@ -503,6 +503,7 @@
#include "code\__DEFINES\~~bubber_defines\research_categories.dm"
#include "code\__DEFINES\~~bubber_defines\say.dm"
#include "code\__DEFINES\~~bubber_defines\signals.dm"
+#include "code\__DEFINES\~~bubber_defines\span.dm"
#include "code\__DEFINES\~~bubber_defines\species.dm"
#include "code\__DEFINES\~~bubber_defines\status_indicator_defines.dm"
#include "code\__DEFINES\~~bubber_defines\storyteller_defines.dm"
diff --git a/tgui/packages/tgui-panel/styles/tgchat/chat-dark.scss b/tgui/packages/tgui-panel/styles/tgchat/chat-dark.scss
index 3feaf5fb608..4c08eb51df6 100644
--- a/tgui/packages/tgui-panel/styles/tgchat/chat-dark.scss
+++ b/tgui/packages/tgui-panel/styles/tgchat/chat-dark.scss
@@ -1386,4 +1386,8 @@ $border-width-px: $border-width * 1px;
font-weight: bold;
font-style: italic;
}
+
+.subtlepda {
+ color: #eb6bff;
+}
// SKYRAT EDIT ADDITION END
diff --git a/tgui/packages/tgui-panel/styles/tgchat/chat-light.scss b/tgui/packages/tgui-panel/styles/tgchat/chat-light.scss
index a2be0a7aba4..9b3137a9810 100644
--- a/tgui/packages/tgui-panel/styles/tgchat/chat-light.scss
+++ b/tgui/packages/tgui-panel/styles/tgchat/chat-light.scss
@@ -1330,4 +1330,8 @@ $border-width-px: $border-width * 1px;
color: #9b6000;
}
}
+
+.subtlepda {
+ color: #9e008c;
+}
// SKYRAT EDIT ADDITION END