"
+ dat += "Fetish content prefs"
+ dat += "Arousal:[arousable == TRUE ? "Enabled" : "Disabled"] "
+ dat += "Voracious MediHound sleepers: [(cit_toggles & MEDIHOUND_SLEEPER) ? "Yes" : "No"] "
+ dat += "Hear Vore Sounds: [(cit_toggles & EATING_NOISES) ? "Yes" : "No"] "
+ dat += "Hear Vore Digestion Sounds: [(cit_toggles & DIGESTION_NOISES) ? "Yes" : "No"] "
+ dat += "Forced Feminization: [(cit_toggles & FORCED_FEM) ? "Allowed" : "Disallowed"] "
+ dat += "Forced Masculinization: [(cit_toggles & FORCED_MASC) ? "Allowed" : "Disallowed"] "
+ dat += "Lewd Hypno: [(cit_toggles & HYPNO) ? "Allowed" : "Disallowed"] "
+ dat += " | "
+ dat +=""
+ dat += "Other content prefs"
+ dat += "Breast Enlargement: [(cit_toggles & BREAST_ENLARGEMENT) ? "Allowed" : "Disallowed"] "
+ dat += "Penis Enlargement: [(cit_toggles & PENIS_ENLARGEMENT) ? "Allowed" : "Disallowed"] "
+ dat += "Hypno: [(cit_toggles & NEVER_HYPNO) ? "Disallowed" : "Allowed"] "
+ dat += "Aphrodisiacs: [(cit_toggles & NO_APHRO) ? "Disallowed" : "Allowed"] "
+ dat += "Ass Slapping: [(cit_toggles & NO_ASS_SLAP) ? "Disallowed" : "Allowed"] "
+ dat += " "
+
dat += " "
@@ -2036,8 +2053,6 @@ GLOBAL_LIST_EMPTY(preferences_datums)
features["genitals_use_skintone"] = !features["genitals_use_skintone"]
if("arousable")
arousable = !arousable
- if("lewdchem")
- lewdchem = !lewdchem
if("has_cock")
features["has_cock"] = !features["has_cock"]
if(features["has_cock"] == FALSE)
@@ -2069,6 +2084,8 @@ GLOBAL_LIST_EMPTY(preferences_datums)
user.client.change_view(CONFIG_GET(string/default_view))
if("autostand")
autostand = !autostand
+ if("auto_ooc")
+ auto_ooc = !auto_ooc
if ("screenshake")
var/desiredshake = input(user, "Set the amount of screenshake you want. \n(0 = disabled, 100 = full, 200 = maximum.)", "Character Preference", screenshake) as null|num
if (!isnull(desiredshake))
@@ -2184,6 +2201,31 @@ GLOBAL_LIST_EMPTY(preferences_datums)
if("toggledigestionnoise")
cit_toggles ^= DIGESTION_NOISES
+
+ if("breast_enlargement")
+ cit_toggles ^= BREAST_ENLARGEMENT
+
+ if("penis_enlargement")
+ cit_toggles ^= PENIS_ENLARGEMENT
+
+ if("feminization")
+ cit_toggles ^= FORCED_FEM
+
+ if("masculinization")
+ cit_toggles ^= FORCED_MASC
+
+ if("hypno")
+ cit_toggles ^= HYPNO
+
+ if("never_hypno")
+ cit_toggles ^= NEVER_HYPNO
+
+ if("aphro")
+ cit_toggles ^= NO_APHRO
+
+ if("ass_slap")
+ cit_toggles ^= NO_ASS_SLAP
+
//END CITADEL EDIT
if("ambientocclusion")
diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm
index c88d246b96..5fdcbf0484 100644
--- a/code/modules/client/preferences_savefile.dm
+++ b/code/modules/client/preferences_savefile.dm
@@ -181,8 +181,8 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
S["widescreenpref"] >> widescreenpref
S["autostand"] >> autostand
S["cit_toggles"] >> cit_toggles
- S["lewdchem"] >> lewdchem
S["preferred_chaos"] >> preferred_chaos
+ S["auto_ooc"] >> auto_ooc
//try to fix any outdated data if necessary
@@ -219,7 +219,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
widescreenpref = sanitize_integer(widescreenpref, 0, 1, initial(widescreenpref))
autostand = sanitize_integer(autostand, 0, 1, initial(autostand))
cit_toggles = sanitize_integer(cit_toggles, 0, 65535, initial(cit_toggles))
-
+ auto_ooc = sanitize_integer(auto_ooc, 0, 1, initial(auto_ooc))
return 1
@@ -278,8 +278,8 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
WRITE_FILE(S["widescreenpref"], widescreenpref)
WRITE_FILE(S["autostand"], autostand)
WRITE_FILE(S["cit_toggles"], cit_toggles)
- WRITE_FILE(S["lewdchem"], lewdchem)
WRITE_FILE(S["preferred_chaos"], preferred_chaos)
+ WRITE_FILE(S["auto_ooc"], auto_ooc)
return 1
@@ -517,6 +517,21 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
all_quirks = SANITIZE_LIST(all_quirks)
+ for(var/V in all_quirks) // quirk migration
+ switch(V)
+ if("Acute hepatic pharmacokinesis")
+ DISABLE_BITFIELD(cit_toggles, PENIS_ENLARGEMENT)
+ DISABLE_BITFIELD(cit_toggles, BREAST_ENLARGEMENT)
+ ENABLE_BITFIELD(cit_toggles,FORCED_FEM)
+ ENABLE_BITFIELD(cit_toggles,FORCED_MASC)
+ all_quirks -= V
+ if("Crocin Immunity")
+ ENABLE_BITFIELD(cit_toggles,NO_APHRO)
+ all_quirks -= V
+ if("Buns of Steel")
+ ENABLE_BITFIELD(cit_toggles,NO_ASS_SLAP)
+ all_quirks -= V
+
cit_character_pref_load(S)
return 1
diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm
index 60b8e1565e..d9e967e54d 100644
--- a/code/modules/clothing/clothing.dm
+++ b/code/modules/clothing/clothing.dm
@@ -298,6 +298,33 @@ BLIND // can't see anything
user.regenerate_icons()
return TRUE
+/obj/item/clothing/neck/AltClick(mob/user)
+ . = ..()
+ if(!istype(user) || !user.canUseTopic(src, BE_CLOSE, ismonkey(user)))
+ return
+ // Polychrome stuff:
+ if(hasprimary | hassecondary | hastertiary)
+ var/choice = input(user,"polychromic thread options", "Clothing Recolor") as null|anything in list("[hasprimary ? "Primary Color" : ""]", "[hassecondary ? "Secondary Color" : ""]", "[hastertiary ? "Tertiary Color" : ""]") //generates a list depending on the enabled overlays
+ switch(choice) //Lets the list's options actually lead to something
+ if("Primary Color")
+ var/primary_color_input = input(usr,"","Choose Primary Color",primary_color) as color|null //color input menu, the "|null" adds a cancel button to it.
+ if(primary_color_input) //Checks if the color selected is NULL, rejects it if it is NULL.
+ primary_color = sanitize_hexcolor(primary_color_input, desired_format=6, include_crunch=1) //formats the selected color properly
+ update_icon() //updates the item icon
+ user.regenerate_icons() //updates the worn icon. Probably a bad idea, but it works.
+ if("Secondary Color")
+ var/secondary_color_input = input(usr,"","Choose Secondary Color",secondary_color) as color|null
+ if(secondary_color_input)
+ secondary_color = sanitize_hexcolor(secondary_color_input, desired_format=6, include_crunch=1)
+ update_icon()
+ user.regenerate_icons()
+ if("Tertiary Color")
+ var/tertiary_color_input = input(usr,"","Choose Tertiary Color",tertiary_color) as color|null
+ if(tertiary_color_input)
+ tertiary_color = sanitize_hexcolor(tertiary_color_input, desired_format=6, include_crunch=1)
+ update_icon()
+ user.regenerate_icons()
+ return TRUE
/obj/item/clothing/under/verb/jumpsuit_adjust()
set name = "Adjust Jumpsuit Style"
diff --git a/code/modules/clothing/glasses/engine_goggles.dm b/code/modules/clothing/glasses/engine_goggles.dm
index 47706a3e1e..0132fa8596 100644
--- a/code/modules/clothing/glasses/engine_goggles.dm
+++ b/code/modules/clothing/glasses/engine_goggles.dm
@@ -90,7 +90,7 @@
for(var/i in rad_places)
var/turf/place = i
- if(get_dist(user, place) >= range*2) //Rads are easier to see than wires under the floor
+ if(get_dist(user, place) >= range*8) //Rads are easier to see than wires under the floor
continue
var/strength = round(rad_places[i] / 1000, 0.1)
var/image/pic = new(loc = place)
@@ -139,7 +139,6 @@
item_state = "trayson-t-ray"
desc = "Used by engineering staff to see underfloor objects such as cables and pipes."
range = 2
-
modes = list(MODE_NONE = MODE_TRAY, MODE_TRAY = MODE_NONE)
/obj/item/clothing/glasses/meson/engine/tray/prescription
@@ -152,7 +151,6 @@
icon_state = "trayson-shuttle"
item_state = "trayson-shuttle"
desc = "Used to see the boundaries of shuttle regions."
-
modes = list(MODE_NONE = MODE_SHUTTLE, MODE_SHUTTLE = MODE_NONE)
#undef MODE_NONE
diff --git a/code/modules/clothing/shoes/miscellaneous.dm b/code/modules/clothing/shoes/miscellaneous.dm
index 3d318db761..43c99fe7fd 100644
--- a/code/modules/clothing/shoes/miscellaneous.dm
+++ b/code/modules/clothing/shoes/miscellaneous.dm
@@ -89,12 +89,12 @@
/obj/item/clothing/shoes/clown_shoes/equipped(mob/user, slot)
. = ..()
- if(user.mind && user.mind.assigned_role == "Clown")
+ if(user.mind && HAS_TRAIT(user.mind, TRAIT_CLOWN_MENTALITY))
SEND_SIGNAL(user, COMSIG_CLEAR_MOOD_EVENT, "noshoes")
/obj/item/clothing/shoes/clown_shoes/dropped(mob/user)
. = ..()
- if(user.mind && user.mind.assigned_role == "Clown")
+ if(user.mind && HAS_TRAIT(user.mind, TRAIT_CLOWN_MENTALITY))
SEND_SIGNAL(user, COMSIG_ADD_MOOD_EVENT, "noshoes", /datum/mood_event/noshoes)
/obj/item/clothing/shoes/clown_shoes/jester
diff --git a/code/modules/clothing/shoes/taeclowndo.dm b/code/modules/clothing/shoes/taeclowndo.dm
index f2bbdf0ceb..7c891dbde4 100644
--- a/code/modules/clothing/shoes/taeclowndo.dm
+++ b/code/modules/clothing/shoes/taeclowndo.dm
@@ -13,7 +13,7 @@
if(!ishuman(user))
return
var/mob/living/carbon/human/H = user
- if(!(HAS_TRAIT(H, TRAIT_CLUMSY)) && !(H.mind && H.mind.assigned_role == "Clown"))
+ if(!(HAS_TRAIT(H, TRAIT_CLUMSY)) && !(H.mind && HAS_TRAIT(H.mind, TRAIT_CLOWN_MENTALITY)))
return
if(slot == SLOT_SHOES)
spells = new
diff --git a/code/modules/clothing/spacesuits/hardsuit.dm b/code/modules/clothing/spacesuits/hardsuit.dm
index 9a5c919720..bf52b26ae9 100644
--- a/code/modules/clothing/spacesuits/hardsuit.dm
+++ b/code/modules/clothing/spacesuits/hardsuit.dm
@@ -590,8 +590,7 @@
/obj/item/clothing/suit/space/hardsuit/clown/mob_can_equip(mob/M, slot)
if(!..() || !ishuman(M))
return FALSE
- var/mob/living/carbon/human/H = M
- if(H.mind.assigned_role == "Clown")
+ if(M.mind && HAS_TRAIT(M.mind, TRAIT_CLOWN_MENTALITY))
return TRUE
else
return FALSE
diff --git a/code/modules/clothing/under/miscellaneous.dm b/code/modules/clothing/under/miscellaneous.dm
index 58df911412..177bce672f 100644
--- a/code/modules/clothing/under/miscellaneous.dm
+++ b/code/modules/clothing/under/miscellaneous.dm
@@ -467,6 +467,33 @@
fitted = FEMALE_UNIFORM_TOP
can_adjust = FALSE
+/obj/item/clothing/under/sundresswhite
+ name = "white sundress"
+ desc = "Makes you want to frolic in a field of lillies."
+ icon_state = "sundress_white"
+ item_color = "sundress_white"
+ body_parts_covered = CHEST|GROIN
+ fitted = FEMALE_UNIFORM_TOP
+ can_adjust = FALSE
+
+/obj/item/clothing/under/greendress
+ name = "green dress"
+ desc = "A tight green dress"
+ icon_state = "dress_green"
+ item_color = "dress_green"
+ body_parts_covered = CHEST|GROIN
+ fitted = FEMALE_UNIFORM_TOP
+ can_adjust = FALSE
+
+/obj/item/clothing/under/pinkdress
+ name = "pink dress"
+ desc = "A tight pink dress"
+ icon_state = "dress_pink"
+ item_color = "dress_pink"
+ body_parts_covered = CHEST|GROIN
+ fitted = FEMALE_UNIFORM_TOP
+ can_adjust = FALSE
+
/obj/item/clothing/under/captainparade
name = "captain's parade uniform"
desc = "A captain's luxury-wear, for special occasions."
@@ -509,6 +536,24 @@
fitted = FEMALE_UNIFORM_TOP
can_adjust = FALSE
+/obj/item/clothing/under/westernbustle
+ name = "western bustle dress"
+ desc = "Filled with Western fire."
+ icon_state = "western_bustle"
+ item_state = "wcoat"
+ item_color = "western_bustle"
+ fitted = FEMALE_UNIFORM_TOP
+ can_adjust = FALSE
+
+/obj/item/clothing/under/flamenco
+ name = "flamenco dress"
+ desc = "Filled with Latin fire."
+ icon_state = "flamenco"
+ item_state = "wcoat"
+ item_color = "flamenco"
+ fitted = FEMALE_UNIFORM_TOP
+ can_adjust = FALSE
+
/obj/item/clothing/under/stripeddress
name = "striped dress"
desc = "Fashion in space."
@@ -529,6 +574,44 @@
fitted = FEMALE_UNIFORM_TOP
can_adjust = FALSE
+/obj/item/clothing/under/flowerdress
+ name = "flower dress"
+ desc = "Lovely dress"
+ icon_state = "flower_dress"
+ item_state = "sailordress"
+ item_color = "flower_dress"
+ body_parts_covered = CHEST|GROIN
+ fitted = FEMALE_UNIFORM_TOP
+ can_adjust = FALSE
+
+/obj/item/clothing/under/sweptskirt
+ name = "swept skirt"
+ desc = "Formal skirt"
+ icon_state = "skirt_swept"
+ item_color = "skirt_swept"
+ body_parts_covered = GROIN
+ fitted = FEMALE_UNIFORM_TOP
+ can_adjust = FALSE
+
+/obj/item/clothing/under/corset
+ name = "black corset"
+ desc = "Nanotrasen is not resposible for any organ damage"
+ icon_state = "corset"
+ item_color = "corset"
+ body_parts_covered = CHEST|GROIN
+ fitted = FEMALE_UNIFORM_TOP
+ can_adjust = FALSE
+
+/obj/item/clothing/under/croptop
+ name = "crop top"
+ desc = "We've saved money by giving you half a shirt!"
+ icon_state = "sailor_dress"
+ item_state = "sailordress"
+ item_color = "sailor_dress"
+ body_parts_covered = CHEST|GROIN|ARMS
+ fitted = FEMALE_UNIFORM_TOP
+ can_adjust = FALSE
+
/obj/item/clothing/under/redeveninggown
name = "red evening gown"
desc = "Fancy dress for space bar singers."
diff --git a/code/modules/clothing/under/pants.dm b/code/modules/clothing/under/pants.dm
index 05616337db..97bb4c48bc 100644
--- a/code/modules/clothing/under/pants.dm
+++ b/code/modules/clothing/under/pants.dm
@@ -75,3 +75,34 @@
desc = "A pair of woodland camouflage pants. Probably not the best choice for a space station."
icon_state = "camopants"
item_color = "camopants"
+
+/obj/item/clothing/under/pants/jeanripped
+ name = "ripped jeans"
+ desc = "If you're wearing this you're poor or a rebel"
+ icon_state = "jean_ripped"
+ item_color = "jean_ripped"
+
+/obj/item/clothing/under/pants/jeanshort
+ name = "jean shorts"
+ desc = "These are really just jeans cut in half"
+ icon_state = "jean_shorts"
+ item_color = "jean_shorts"
+
+/obj/item/clothing/under/pants/denimskirt
+ name = "denim skirt"
+ desc = "These are really just a jean leg hole cut from a pair"
+ icon_state = "denim_skirt"
+ item_color = "denim_skirt"
+
+/obj/item/clothing/under/pants/chaps
+ name = "black chaps"
+ body_parts_covered = LEGS
+ desc = "Yeehaw"
+ icon_state = "chaps"
+ item_color = "chaps"
+
+/obj/item/clothing/under/pants/yoga
+ name = "yoga pants"
+ desc = "Comfy!"
+ icon_state = "yoga_pants"
+ item_color = "yoga_pants"
diff --git a/code/modules/events/disease_outbreak.dm b/code/modules/events/disease_outbreak.dm
index 07a399a1b6..00e3698e1e 100644
--- a/code/modules/events/disease_outbreak.dm
+++ b/code/modules/events/disease_outbreak.dm
@@ -37,6 +37,8 @@
continue
if(!H.client)
continue
+ if(HAS_TRAIT(H,TRAIT_EXEMPT_HEALTH_EVENTS))
+ continue
if(H.stat == DEAD)
continue
if(HAS_TRAIT(H, TRAIT_VIRUSIMMUNE)) //Don't pick someone who's virus immune, only for it to not do anything.
diff --git a/code/modules/events/heart_attack.dm b/code/modules/events/heart_attack.dm
index 8db2d98bf0..a47a8b81b4 100644
--- a/code/modules/events/heart_attack.dm
+++ b/code/modules/events/heart_attack.dm
@@ -9,7 +9,7 @@
/datum/round_event/heart_attack/start()
var/list/heart_attack_contestants = list()
for(var/mob/living/carbon/human/H in shuffle(GLOB.player_list))
- if(!H.client || H.stat == DEAD || H.InCritical() || !H.can_heartattack() || H.has_status_effect(STATUS_EFFECT_EXERCISED) || (/datum/disease/heart_failure in H.diseases) || H.undergoing_cardiac_arrest())
+ if(!H.client || H.stat == DEAD || H.InCritical() || !H.can_heartattack() || H.has_status_effect(STATUS_EFFECT_EXERCISED) || (/datum/disease/heart_failure in H.diseases) || H.undergoing_cardiac_arrest() || HAS_TRAIT(H,TRAIT_EXEMPT_HEALTH_EVENTS))
continue
if(H.satiety <= -60) //Multiple junk food items recently
heart_attack_contestants[H] = 3
diff --git a/code/modules/events/mass_hallucination.dm b/code/modules/events/mass_hallucination.dm
index 2b0c16ebfc..0553f69b5b 100644
--- a/code/modules/events/mass_hallucination.dm
+++ b/code/modules/events/mass_hallucination.dm
@@ -35,4 +35,6 @@
/datum/hallucination/delusion,
/datum/hallucination/oh_yeah)
for(var/mob/living/carbon/C in GLOB.alive_mob_list)
+ if (HAS_TRAIT(C,TRAIT_EXEMPT_HEALTH_EVENTS))
+ continue
new picked_hallucination(C, TRUE)
\ No newline at end of file
diff --git a/code/modules/events/spontaneous_appendicitis.dm b/code/modules/events/spontaneous_appendicitis.dm
index 901337cd52..8ee943beb9 100644
--- a/code/modules/events/spontaneous_appendicitis.dm
+++ b/code/modules/events/spontaneous_appendicitis.dm
@@ -15,6 +15,8 @@
continue
if(H.stat == DEAD)
continue
+ if (HAS_TRAIT(H,TRAIT_EXEMPT_HEALTH_EVENTS))
+ continue
if(!H.getorgan(/obj/item/organ/appendix)) //Don't give the disease to some who lacks it, only for it to be auto-cured
continue
if(!(MOB_ORGANIC in H.mob_biotypes)) //biotype sleeper bugs strike again, once again making appendicitis pick a target that can't take it
diff --git a/code/modules/hydroponics/grown/grass_carpet.dm b/code/modules/hydroponics/grown/grass_carpet.dm
index 8fc141e152..02b36d6a3f 100644
--- a/code/modules/hydroponics/grown/grass_carpet.dm
+++ b/code/modules/hydroponics/grown/grass_carpet.dm
@@ -27,7 +27,7 @@
bitesize_mod = 2
var/stacktype = /obj/item/stack/tile/grass
var/tile_coefficient = 0.02 // 1/50
- wine_power = 15
+ distill_reagent = /datum/reagent/consumable/ethanol/beer/light
/obj/item/reagent_containers/food/snacks/grown/grass/attack_self(mob/user)
to_chat(user, "You prepare the astroturf.")
diff --git a/code/modules/jobs/job_types/clown.dm b/code/modules/jobs/job_types/clown.dm
index 922b335a39..f8a7e70473 100644
--- a/code/modules/jobs/job_types/clown.dm
+++ b/code/modules/jobs/job_types/clown.dm
@@ -14,6 +14,8 @@
access = list(ACCESS_THEATRE)
minimal_access = list(ACCESS_THEATRE)
+ mind_traits = list(TRAIT_CLOWN_MENTALITY)
+
display_order = JOB_DISPLAY_ORDER_CLOWN
/datum/outfit/job/clown
diff --git a/code/modules/mob/dead/observer/login.dm b/code/modules/mob/dead/observer/login.dm
index 1b328dbc69..bf86a97574 100644
--- a/code/modules/mob/dead/observer/login.dm
+++ b/code/modules/mob/dead/observer/login.dm
@@ -18,3 +18,6 @@
update_icon(preferred_form)
updateghostimages()
+
+ client.reenter_round_timeout = max(client.reenter_round_timeout, clientless_round_timeout)
+ clientless_round_timeout = client.reenter_round_timeout
diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm
index 2b9b01dc18..0846cf1ea1 100644
--- a/code/modules/mob/dead/observer/observer.dm
+++ b/code/modules/mob/dead/observer/observer.dm
@@ -3,8 +3,6 @@ GLOBAL_LIST_EMPTY(ghost_images_simple) //this is a list of all ghost images as t
GLOBAL_VAR_INIT(observer_default_invisibility, INVISIBILITY_OBSERVER)
-#define CANT_REENTER_ROUND -1
-
/mob/dead/observer
name = "ghost"
desc = "It's a g-g-g-g-ghooooost!" //jinkies!
@@ -21,7 +19,7 @@ GLOBAL_VAR_INIT(observer_default_invisibility, INVISIBILITY_OBSERVER)
hud_type = /datum/hud/ghost
movement_type = GROUND | FLYING
var/can_reenter_corpse
- var/reenter_round_timeout = 0 // used to prevent people from coming back through ghost roles/midround antags as they suicide/cryo for a duration set by CONFIG_GET(number/suicide_reenter_round_timer) and CONFIG_GET(number/roundstart_suicide_time_limit)
+ var/clientless_round_timeout = 0 //mobs will lack a client as long as their player is disconnected. See client_defines.dm "reenter_round_timeout"
var/datum/hud/living/carbon/hud = null // hud
var/bootime = 0
var/started_as_observer //This variable is set to 1 when you enter the game as an observer.
@@ -278,9 +276,16 @@ Works together with spawning an observer, noted above.
if(world.time < roundstart_quit_limit) //add up the time difference to their antag rolling penalty if they quit before half a (ingame) hour even passed.
penalty += roundstart_quit_limit - world.time
if(penalty)
- ghost.reenter_round_timeout = world.realtime + penalty
- if(ghost.reenter_round_timeout - SSshuttle.realtimeofstart > SSshuttle.auto_call + SSshuttle.emergencyCallTime + SSshuttle.emergencyDockTime + SSshuttle.emergencyEscapeTime)
- ghost.reenter_round_timeout = CANT_REENTER_ROUND
+ penalty += world.realtime
+ if(penalty - SSshuttle.realtimeofstart > SSshuttle.auto_call + SSshuttle.emergencyCallTime + SSshuttle.emergencyDockTime + SSshuttle.emergencyEscapeTime)
+ penalty = CANT_REENTER_ROUND
+ if(client)
+ client.reenter_round_timeout = penalty
+ else //A disconnected player (quite likely for cryopods)
+ ghost.clientless_round_timeout = penalty
+ if (client && client.prefs && client.prefs.auto_ooc)
+ if (!(client.prefs.chat_toggles & CHAT_OOC))
+ client.prefs.chat_toggles ^= CHAT_OOC
transfer_ckey(ghost, FALSE)
return ghost
@@ -339,10 +344,13 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
ghostize(0, penalize = TRUE)
/mob/dead/observer/proc/can_reenter_round(silent = FALSE)
- if(reenter_round_timeout != CANT_REENTER_ROUND && reenter_round_timeout <= world.realtime)
+ var/timeout = clientless_round_timeout
+ if(client)
+ timeout = client.reenter_round_timeout
+ if(timeout != CANT_REENTER_ROUND && timeout <= world.realtime)
return TRUE
- if(!silent)
- to_chat(src, "You are unable to reenter the round[reenter_round_timeout != CANT_REENTER_ROUND ? " yet. Your ghost role blacklist will expire in [DisplayTimeText(reenter_round_timeout - world.realtime)]" : ""].")
+ if(!silent && client)
+ to_chat(src, "You are unable to reenter the round[timeout != CANT_REENTER_ROUND ? " yet. Your ghost role blacklist will expire in [DisplayTimeText(timeout - world.realtime)]" : ""].")
return FALSE
/mob/dead/observer/Move(NewLoc, direct)
@@ -898,5 +906,3 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
spawners_menu = new(src)
spawners_menu.ui_interact(src)
-
-#undef CANT_REENTER_ROUND
\ No newline at end of file
diff --git a/code/modules/mob/living/carbon/human/examine.dm b/code/modules/mob/living/carbon/human/examine.dm
index 310ab6beeb..3a6f0e6724 100644
--- a/code/modules/mob/living/carbon/human/examine.dm
+++ b/code/modules/mob/living/carbon/human/examine.dm
@@ -308,7 +308,7 @@
var/obj/item/organ/vocal_cords/Vc = user.getorganslot(ORGAN_SLOT_VOICE)
if(Vc)
if(istype(Vc, /obj/item/organ/vocal_cords/velvet))
- if(client?.prefs.lewdchem)
+ if(client.prefs.cit_toggles & HYPNO)
msg += "You feel your chords resonate looking at them.\n"
diff --git a/code/modules/mob/living/carbon/human/human_defense.dm b/code/modules/mob/living/carbon/human/human_defense.dm
index 93f33c3a3d..165e1fdd31 100644
--- a/code/modules/mob/living/carbon/human/human_defense.dm
+++ b/code/modules/mob/living/carbon/human/human_defense.dm
@@ -652,7 +652,7 @@
if(mind)
if((mind.assigned_role == "Station Engineer") || (mind.assigned_role == "Chief Engineer") )
gain = 100
- if(mind.assigned_role == "Clown")
+ if(HAS_TRAIT(mind, TRAIT_CLOWN_MENTALITY))
gain = rand(-300, 300)
investigate_log("([key_name(src)]) has been consumed by the singularity.", INVESTIGATE_SINGULO) //Oh that's where the clown ended up!
gib()
diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm
index 8bf6b4ad3a..6f574bdc12 100644
--- a/code/modules/mob/living/carbon/human/species.dm
+++ b/code/modules/mob/living/carbon/human/species.dm
@@ -1589,20 +1589,11 @@ GLOBAL_LIST_EMPTY(roundstart_race_names)
user.adjustStaminaLossBuffered(3)
return FALSE
else if(aim_for_groin && (target == user || target.lying || same_dir) && (target_on_help || target_restrained || target_aiming_for_groin))
+ if(target.client?.prefs.cit_toggles & NO_ASS_SLAP)
+ to_chat(user,"A force stays your hand, preventing you from slapping \the [target]'s ass!")
+ return FALSE
user.do_attack_animation(target, ATTACK_EFFECT_ASS_SLAP)
user.adjustStaminaLossBuffered(3)
- if(HAS_TRAIT(target, TRAIT_ASSBLASTUSA))
- var/hit_zone = (user.held_index_to_dir(user.active_hand_index) == "l" ? "l_":"r_") + "arm"
- user.adjustStaminaLoss(20, affected_zone = hit_zone)
- user.visible_message(\
- "\The [user] slaps \the [target]'s ass, but their hand bounces off like they hit metal!",\
- "You slap [user == target ? "your" : "\the [target]'s"] ass, but feel an intense amount of pain as you realise their buns are harder than steel!",\
- "You hear a slap."
- )
- playsound(target.loc, 'sound/weapons/tap.ogg', 50, 1, -1)
- user.emote("scream")
- return FALSE
-
playsound(target.loc, 'sound/weapons/slap.ogg', 50, 1, -1)
user.visible_message(\
"\The [user] slaps \the [target]'s ass!",\
diff --git a/code/modules/mob/living/carbon/human/species_types/shadowpeople.dm b/code/modules/mob/living/carbon/human/species_types/shadowpeople.dm
index 3247c96632..52ae32b23c 100644
--- a/code/modules/mob/living/carbon/human/species_types/shadowpeople.dm
+++ b/code/modules/mob/living/carbon/human/species_types/shadowpeople.dm
@@ -51,11 +51,7 @@
. = ..()
to_chat(C, "[info_text]")
- C.real_name = "[pick(GLOB.nightmare_names)]"
- C.name = C.real_name
- if(C.mind)
- C.mind.name = C.real_name
- C.dna.real_name = C.real_name
+ C.fully_replace_character_name("[pick(GLOB.nightmare_names)]")
/datum/species/shadow/nightmare/bullet_act(obj/item/projectile/P, mob/living/carbon/human/H)
var/turf/T = H.loc
@@ -127,8 +123,8 @@
/obj/item/organ/heart/nightmare/Remove(mob/living/carbon/M, special = 0)
respawn_progress = 0
if(blade && special != HEART_SPECIAL_SHADOWIFY)
- QDEL_NULL(blade)
M.visible_message("\The [blade] disintegrates!")
+ QDEL_NULL(blade)
..()
/obj/item/organ/heart/nightmare/Stop()
@@ -183,15 +179,21 @@
. = ..()
if(!proximity)
return
- if(isopenturf(AM)) //So you can actually melee with it
- return
- if(isliving(AM))
+ if(isopenturf(AM))
+ var/turf/open/T = AM
+ if(T.light_range && !isspaceturf(T)) //no fairy grass or light tile can escape the fury of the darkness.
+ to_chat(user, "You scrape away [T] with your [name] and snuff out its lights.")
+ T.ScrapeAway(flags = CHANGETURF_INHERIT_AIR)
+ else if(isliving(AM))
var/mob/living/L = AM
if(iscyborg(AM))
var/mob/living/silicon/robot/borg = AM
- if(!borg.lamp_cooldown)
+ if(borg.lamp_intensity)
borg.update_headlamp(TRUE, INFINITY)
to_chat(borg, "Your headlamp is fried! You'll need a human to help replace it.")
+ for(var/obj/item/assembly/flash/cyborg/F in borg.held_items)
+ if(!F.crit_fail)
+ F.burn_out()
else
for(var/obj/item/O in AM)
if(O.light_range && O.light_power)
diff --git a/code/modules/mob/living/death.dm b/code/modules/mob/living/death.dm
index 8345ef916d..1c6546fd83 100644
--- a/code/modules/mob/living/death.dm
+++ b/code/modules/mob/living/death.dm
@@ -91,7 +91,9 @@
if(mind && mind.name && mind.active && !istype(T.loc, /area/ctf) && !(signal & COMPONENT_BLOCK_DEATH_BROADCAST))
var/rendered = "[mind.name] has died at [get_area_name(T)]."
deadchat_broadcast(rendered, follow_target = src, turf_target = T, message_type=DEADCHAT_DEATHRATTLE)
-
+ if (client && client.prefs && client.prefs.auto_ooc)
+ if (!(client.prefs.chat_toggles & CHAT_OOC))
+ client.prefs.chat_toggles ^= CHAT_OOC
if (client)
client.move_delay = initial(client.move_delay)
diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm
index 1a3f2fca3b..427e30f2e2 100644
--- a/code/modules/mob/mob.dm
+++ b/code/modules/mob/mob.dm
@@ -459,6 +459,11 @@ mob/visible_message(message, self_message, blind_message, vision_distance = DEFA
if(!ckey || !new_mob)
CRASH("transfer_ckey() called [ckey ? "" : "on a ckey-less mob[new_mob ? "" : " and "]"][new_mob ? "" : "without a valid mob target"]!")
SEND_SIGNAL(new_mob, COMSIG_MOB_PRE_PLAYER_CHANGE, new_mob, src)
+ if (client && client.prefs && client.prefs.auto_ooc)
+ if (client.prefs.chat_toggles & CHAT_OOC && isliving(new_mob))
+ client.prefs.chat_toggles ^= CHAT_OOC
+ if (!(client.prefs.chat_toggles & CHAT_OOC) && isdead(new_mob))
+ client.prefs.chat_toggles ^= CHAT_OOC
new_mob.ckey = ckey
if(send_signal)
SEND_SIGNAL(src, COMSIG_MOB_KEY_CHANGE, new_mob, src)
diff --git a/code/modules/projectiles/guns/ballistic/revolver.dm b/code/modules/projectiles/guns/ballistic/revolver.dm
index d1a5f12888..c2206fcea8 100644
--- a/code/modules/projectiles/guns/ballistic/revolver.dm
+++ b/code/modules/projectiles/guns/ballistic/revolver.dm
@@ -352,7 +352,7 @@
clumsy_check = 0
/obj/item/gun/ballistic/revolver/reverse/can_trigger_gun(mob/living/user)
- if((HAS_TRAIT(user, TRAIT_CLUMSY)) || (user.mind && user.mind.assigned_role == "Clown"))
+ if((HAS_TRAIT(user, TRAIT_CLUMSY)) || (user.mind && HAS_TRAIT(user.mind, TRAIT_CLOWN_MENTALITY)))
return ..()
if(process_fire(user, user, FALSE, null, BODY_ZONE_HEAD))
user.visible_message("[user] somehow manages to shoot [user.p_them()]self in the face!", "You somehow shoot yourself in the face! How the hell?!")
diff --git a/code/modules/projectiles/pins.dm b/code/modules/projectiles/pins.dm
index 1e2070de1b..0465a611cd 100644
--- a/code/modules/projectiles/pins.dm
+++ b/code/modules/projectiles/pins.dm
@@ -135,7 +135,7 @@
// A gun with ultra-honk pin is useful for clown and useless for everyone else.
/obj/item/firing_pin/clown/ultra/pin_auth(mob/living/user)
playsound(src.loc, 'sound/items/bikehorn.ogg', 50, 1)
- if(user && (!(HAS_TRAIT(user, TRAIT_CLUMSY)) && !(user.mind && user.mind.assigned_role == "Clown")))
+ if(user && (!(HAS_TRAIT(user, TRAIT_CLUMSY)) && !(user.mind && HAS_TRAIT(user.mind, TRAIT_CLOWN_MENTALITY))))
return FALSE
return TRUE
diff --git a/code/modules/reagents/reagent_containers/borghydro.dm b/code/modules/reagents/reagent_containers/borghydro.dm
index 2bd5fb2d9f..94ad5fdb2c 100644
--- a/code/modules/reagents/reagent_containers/borghydro.dm
+++ b/code/modules/reagents/reagent_containers/borghydro.dm
@@ -26,12 +26,11 @@ Borg Hypospray
var/bypass_protection = 0 //If the hypospray can go through armor or thick material
var/list/datum/reagents/reagent_list = list()
- var/list/reagent_ids = list("dexalin", "kelotane", "bicaridine", "antitoxin", "epinephrine", "spaceacillin", "salglu_solution")
+ var/list/reagent_ids = list("dexalin", "kelotane", "bicaridine", "antitoxin", "epinephrine", "spaceacillin", "salglu_solution", "insulin")
var/accepts_reagent_upgrades = TRUE //If upgrades can increase number of reagents dispensed.
var/list/modes = list() //Basically the inverse of reagent_ids. Instead of having numbers as "keys" and strings as values it has strings as keys and numbers as values.
//Used as list for input() in shakers.
-
/obj/item/reagent_containers/borghypo/Initialize()
. = ..()
@@ -40,12 +39,10 @@ Borg Hypospray
START_PROCESSING(SSobj, src)
-
/obj/item/reagent_containers/borghypo/Destroy()
STOP_PROCESSING(SSobj, src)
return ..()
-
/obj/item/reagent_containers/borghypo/process() //Every [recharge_time] seconds, recharge some reagents for the cyborg
charge_tick++
if(charge_tick >= recharge_time)
@@ -162,7 +159,7 @@ Borg Hypospray
icon_state = "borghypo_s"
charge_cost = 20
recharge_time = 2
- reagent_ids = list("syndicate_nanites", "potass_iodide", "morphine")
+ reagent_ids = list("syndicate_nanites", "potass_iodide", "morphine", "insulin")
bypass_protection = 1
accepts_reagent_upgrades = FALSE
@@ -178,7 +175,6 @@ Borg Shaker
charge_cost = 20 //Lots of reagents all regenerating at once, so the charge cost is lower. They also regenerate faster.
recharge_time = 3
accepts_reagent_upgrades = FALSE
-
reagent_ids = list("beer", "orangejuice", "grenadine", "limejuice", "tomatojuice", "cola", "tonic", "sodawater", "ice", "cream", "whiskey", "vodka", "rum", "gin", "tequila", "vermouth", "wine", "kahlua", "cognac", "ale", "milk", "coffee", "banana", "lemonjuice")
/obj/item/reagent_containers/borghypo/borgshaker/attack(mob/M, mob/user)
@@ -234,23 +230,21 @@ Borg Shaker
charge_cost = 20 //Lots of reagents all regenerating at once, so the charge cost is lower. They also regenerate faster.
recharge_time = 3
accepts_reagent_upgrades = FALSE
-
reagent_ids = list("fakebeer", "fernet")
/obj/item/reagent_containers/borghypo/peace
name = "Peace Hypospray"
-
- reagent_ids = list("dizzysolution","tiresolution","synthpax")
+ reagent_ids = list("dizzysolution", "tiresolution", "synthpax", "insulin")
accepts_reagent_upgrades = FALSE
/obj/item/reagent_containers/borghypo/peace/hacked
desc = "Everything's peaceful in death!"
icon_state = "borghypo_s"
- reagent_ids = list("dizzysolution","tiresolution","synthpax","tirizene","sulfonal","sodium_thiopental","cyanide","fentanyl")
+ reagent_ids = list("dizzysolution", "tiresolution", "synthpax", "tirizene", "sulfonal", "sodium_thiopental", "cyanide", "fentanyl")
accepts_reagent_upgrades = FALSE
/obj/item/reagent_containers/borghypo/epi
- name = "epinephrine injector"
+ name = "Stabilizer injector"
desc = "An advanced chemical synthesizer and injection system, designed to stabilize patients."
- reagent_ids = list("epinephrine")
+ reagent_ids = list("epinephrine", "insulin")
accepts_reagent_upgrades = FALSE
diff --git a/code/modules/research/designs/medical_designs.dm b/code/modules/research/designs/medical_designs.dm
index e70362553c..f2ded3a57b 100644
--- a/code/modules/research/designs/medical_designs.dm
+++ b/code/modules/research/designs/medical_designs.dm
@@ -152,6 +152,16 @@
category = list("Medical Designs")
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL
+/datum/design/telescopiciv
+ name = "Telescopic IV Drip"
+ desc = "An IV drip with an advanced infusion pump that can both drain blood into and inject liquids from attached containers. Blood packs are processed at an accelerated rate. This one is telescopic, and can be picked up and put down."
+ id = "telescopiciv"
+ build_type = PROTOLATHE
+ materials = list(MAT_METAL = 5000, MAT_GLASS = 3500, MAT_SILVER = 1000)
+ build_path = /obj/item/tele_iv
+ category = list("Medical Designs")
+ departmental_flags = DEPARTMENTAL_FLAG_MEDICAL
+
/datum/design/holobarrier_med
name = "PENLITE holobarrier projector"
desc = "PENLITE holobarriers, a device that halts individuals with malicious diseases."
diff --git a/code/modules/research/techweb/all_nodes.dm b/code/modules/research/techweb/all_nodes.dm
index 6877ba71f6..5f3fc0e85e 100644
--- a/code/modules/research/techweb/all_nodes.dm
+++ b/code/modules/research/techweb/all_nodes.dm
@@ -71,7 +71,7 @@
display_name = "Biological Technology"
description = "What makes us tick." //the MC, silly!
prereq_ids = list("base")
- design_ids = list("medicalkit", "chem_heater", "chem_master", "chem_dispenser", "sleeper", "vr_sleeper", "pandemic", "defibmount", "operating", "soda_dispenser", "beer_dispenser", "healthanalyzer", "blood_bag", "bloodbankgen")
+ design_ids = list("medicalkit", "chem_heater", "chem_master", "chem_dispenser", "sleeper", "vr_sleeper", "pandemic", "defibmount", "operating", "soda_dispenser", "beer_dispenser", "healthanalyzer", "blood_bag", "bloodbankgen", "telescopiciv")
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500)
export_price = 5000
diff --git a/code/modules/surgery/organs/vocal_cords.dm b/code/modules/surgery/organs/vocal_cords.dm
index dedff3ae04..161461d099 100644
--- a/code/modules/surgery/organs/vocal_cords.dm
+++ b/code/modules/surgery/organs/vocal_cords.dm
@@ -560,7 +560,7 @@
else if((findtext(message, honk_words)))
cooldown = COOLDOWN_MEME
addtimer(CALLBACK(GLOBAL_PROC, .proc/playsound, get_turf(user), 'sound/items/bikehorn.ogg', 300, 1), 25)
- if(user.mind && user.mind.assigned_role == "Clown")
+ if(user.mind && HAS_TRAIT(user.mind, TRAIT_CLOWN_MENTALITY))
for(var/mob/living/carbon/C in listeners)
C.slip(140 * power_multiplier)
cooldown = COOLDOWN_MEME
@@ -807,9 +807,8 @@
E.enthrallTally += (power_multiplier*(((length(message))/200) + 1)) //encourage players to say more than one word.
else
E.enthrallTally += power_multiplier*1.25 //thinking about it, I don't know how this can proc
- if(L.canbearoused)
- if(L.client?.prefs.lewdchem)
- addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, L, "[E.enthrallGender] is so nice to listen to."), 5)
+ if(L.canbearoused && E.lewd)
+ addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, L, "[E.enthrallGender] is so nice to listen to."), 5)
E.cooldown += 1
//REWARD mixable works
@@ -820,7 +819,7 @@
power_multiplier *= distancelist[get_dist(user, V)+1]
if(L == user)
continue
- if (L.client?.prefs.lewdchem)
+ if (E.lewd)
addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, L, "[E.enthrallGender] has praised me!!"), 5)
if(HAS_TRAIT(L, TRAIT_NYMPHO))
L.adjustArousalLoss(2*power_multiplier)
@@ -832,7 +831,7 @@
addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, L, "I've been praised for doing a good job!"), 5)
E.resistanceTally -= power_multiplier
E.enthrallTally += power_multiplier
- var/descmessage = "[(L.client?.prefs.lewdchem?"I feel so happy! I'm a good pet who [E.enthrallGender] loves!":"I did a good job!")]"
+ var/descmessage = "[(E.lewd?"I feel so happy! I'm a good pet who [E.enthrallGender] loves!":"I did a good job!")]"
SEND_SIGNAL(L, COMSIG_ADD_MOOD_EVENT, "enthrallpraise", /datum/mood_event/enthrallpraise, descmessage)
E.cooldown += 1
@@ -841,10 +840,10 @@
for(var/V in listeners)
var/mob/living/L = V
var/datum/status_effect/chem/enthrall/E = L.has_status_effect(/datum/status_effect/chem/enthrall)
- var/descmessage = "[(L.client?.prefs.lewdchem?"I've failed [E.enthrallGender]... What a bad, bad pet!":"I did a bad job...")]"
+ var/descmessage = "[(E.lewd?"I've failed [E.enthrallGender]... What a bad, bad pet!":"I did a bad job...")]"
if(L == user)
continue
- if (L.client?.prefs.lewdchem)
+ if (E.lewd)
if(HAS_TRAIT(L, TRAIT_MASO))
L.adjustArousalLoss(3*power_multiplier)
descmessage += "And yet, it feels so good..!" //I don't really understand masco, is this the right sort of thing they like?
@@ -871,7 +870,7 @@
var/datum/status_effect/chem/enthrall/E = C.has_status_effect(/datum/status_effect/chem/enthrall)
REMOVE_TRAIT(C, TRAIT_MUTE, "enthrall")
C.silent = 0
- if(C.client?.prefs.lewdchem)
+ if(E.lewd)
addtimer(CALLBACK(C, /atom/movable/proc/say, "[E.enthrallGender]"), 5)
else
addtimer(CALLBACK(C, /atom/movable/proc/say, "[E.master]"), 5)
@@ -887,7 +886,7 @@
E.phase = 3
E.status = null
user.emote("snap")
- if(L.client?.prefs.lewdchem)
+ if(E.lewd)
addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, L, "The snapping of your [E.enthrallGender]'s fingers brings you back to your enthralled state, obedient and ready to serve."), 5)
else
addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, L, "The snapping of [E.master]'s fingers brings you back to being under their influence."), 5)
@@ -910,11 +909,11 @@
addtimer(CALLBACK(H, /atom/movable/proc/say, "I feel happy being with you."), 5)
continue
if(2)
- speaktrigger += "[(H.client?.prefs.lewdchem?"I think I'm in love with you... ":"I find you really inspirational, ")]" //'
+ speaktrigger += "[(E.lewd?"I think I'm in love with you... ":"I find you really inspirational, ")]" //'
if(3)
- speaktrigger += "[(H.client?.prefs.lewdchem?"I'm devoted to being your pet":"I'm commited to following your cause!")]! "
+ speaktrigger += "[(E.lewd?"I'm devoted to being your pet":"I'm commited to following your cause!")]! "
if(4)
- speaktrigger += "[(H.client?.prefs.lewdchem?"You are my whole world and all of my being belongs to you, ":"I cannot think of anything else but aiding your cause, ")] "//Redflags!!
+ speaktrigger += "[(E.lewd?"You are my whole world and all of my being belongs to you, ":"I cannot think of anything else but aiding your cause, ")] "//Redflags!!
//mood
var/datum/component/mood/mood = H.GetComponent(/datum/component/mood)
@@ -1003,7 +1002,7 @@
speaktrigger += "I feel like I'm on the brink of losing my mind, "
//horny
- if(HAS_TRAIT(H, TRAIT_NYMPHO) && H.canbearoused && H.client?.prefs.lewdchem)
+ if(HAS_TRAIT(H, TRAIT_NYMPHO) && H.canbearoused && E.lewd)
switch(H.getArousalLoss())
if(40 to 60)
speaktrigger += "I'm feeling a little horny, "
@@ -1013,10 +1012,10 @@
speaktrigger += "I'm really, really horny, "
//collar
- if(istype(H.wear_neck, /obj/item/clothing/neck/petcollar) && H.client?.prefs.lewdchem)
+ if(istype(H.wear_neck, /obj/item/clothing/neck/petcollar) && E.lewd)
speaktrigger += "I love the collar you gave me, "
//End
- if(H.client?.prefs.lewdchem)
+ if(E.lewd)
speaktrigger += "[E.enthrallGender]!"
else
speaktrigger += "[user.first_name()]!"
@@ -1044,7 +1043,7 @@
REMOVE_TRAIT(C, TRAIT_MUTE, "enthrall")
C.silent = 0
E.cooldown += 3
- to_chat(user, "You [(C.client?.prefs.lewdchem?"allow [C] to speak again":"encourage [C] to speak again")].")
+ to_chat(user, "You [(E.lewd?"allow [C] to speak again":"encourage [C] to speak again")].")
//Antiresist
@@ -1074,7 +1073,7 @@
for(var/mob/living/carbon/C in listeners)
var/datum/status_effect/chem/enthrall/E = C.has_status_effect(/datum/status_effect/chem/enthrall)
if(E.phase == 4)
- addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, C, "You're unable to forget about [(C.client?.prefs.lewdchem?"the dominating presence of [E.enthrallGender]":"[E.master]")]!"), 5)
+ addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, C, "You're unable to forget about [(E.lewd?"the dominating presence of [E.enthrallGender]":"[E.master]")]!"), 5)
continue
addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, C, "You wake up, forgetting everything that just happened. You must've dozed off..? How embarassing!"), 5)
C.Sleeping(50)
@@ -1086,7 +1085,7 @@
if(3)
E.phase = 0
E.cooldown = 0
- if(C.client?.prefs.lewdchem)
+ if(E.lewd)
addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, C, "You revert to yourself before being enthralled by your [E.enthrallGender], with no memory of what happened."), 5)
else
addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, C, "You revert to who you were before, with no memory of what happened with [E.master]."), 5)
@@ -1112,7 +1111,7 @@
var/mob/living/carbon/human/H = V
var/datum/status_effect/chem/enthrall/E = H.has_status_effect(/datum/status_effect/chem/enthrall)
if(E.phase > 1)
- if(HAS_TRAIT(H, TRAIT_NYMPHO) && H.canbearoused && H.client?.prefs.lewdchem) // probably a redundant check but for good measure
+ if(HAS_TRAIT(H, TRAIT_NYMPHO) && H.canbearoused && E.lewd) // probably a redundant check but for good measure
addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, H, "Your [E.enthrallGender] pushes you over the limit, overwhelming your body with pleasure."), 5)
H.mob_climax(forced_climax=TRUE)
H.SetStun(20)
@@ -1168,7 +1167,7 @@
for(var/obj/item/W in items)
if(W == H.wear_suit)
H.dropItemToGround(W, TRUE)
- addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, H, "Before you can even think about it, you quickly remove your clothes in response to [(H.client?.prefs.lewdchem?"your [E.enthrallGender]'s command'":"[E.master]'s directive'")]."), 5)
+ addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, H, "Before you can even think about it, you quickly remove your clothes in response to [(E.lewd?"your [E.enthrallGender]'s command'":"[E.master]'s directive'")]."), 5)
E.cooldown += 10
//WALK
@@ -1206,7 +1205,7 @@
if(2 to INFINITY)
L.lay_down()
E.cooldown += 10
- addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, L, "[(L.client?.prefs.lewdchem?"You eagerly lie down!":"You suddenly lie down!")]"), 5)
+ addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, L, "[(E.lewd?"You eagerly lie down!":"You suddenly lie down!")]"), 5)
to_chat(user, "You encourage [L] to lie down.")
//KNOCKDOWN
@@ -1237,7 +1236,7 @@
for (var/trigger in E.customTriggers)
speaktrigger += "[trigger], "
to_chat(user, "[C] whispers, \"[speaktrigger] are my triggers.\"")//So they don't trigger themselves!
- addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, C, "You whisper your triggers to [(C.client?.prefs.lewdchem?"Your [E.enthrallGender]":"[E.master]")]."), 5)
+ addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, C, "You whisper your triggers to [(E.lewd?"Your [E.enthrallGender]":"[E.master]")]."), 5)
//CUSTOM TRIGGERS
@@ -1249,7 +1248,7 @@
if (get_dist(user, H) > 1)//Requires user to be next to their pet.
to_chat(user, "You need to be next to your pet to give them a new trigger!")
continue
- if(!H.client?.prefs.lewdchem)
+ if(!E.lewd)
to_chat(user, "[H] seems incapable of being implanted with triggers.")
continue
else
@@ -1272,7 +1271,7 @@
E.customTriggers[trigger] = trigger2
log_game("FERMICHEM: [H] has been implanted by [user] with [trigger], triggering [trigger2].")
E.mental_capacity -= 5
- addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, H, "[(H.client?.prefs.lewdchem?"your [E.enthrallGender]":"[E.master]")] whispers you a new trigger."), 5)
+ addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, H, "[(E.lewd?"your [E.enthrallGender]":"[E.master]")] whispers you a new trigger."), 5)
to_chat(user, "You sucessfully set the trigger word [trigger] in [H]")
else
to_chat(user, "Your pet looks at you confused, it seems they don't understand that effect!")
@@ -1290,7 +1289,7 @@
if (get_dist(user, H) > 1)//Requires user to be next to their pet.
to_chat(user, "You need to be next to your pet to give them a new echophrase!")
continue
- if(!H.client?.prefs.lewdchem)
+ if(!E.lewd)
to_chat(user, "[H] seems incapable of being implanted with an echoing phrase.")
continue
else
@@ -1334,7 +1333,7 @@
objective = replacetext(lowertext(objective), "suicide", "self-love")
message_admins("[H] has been implanted by [user] with the objective [objective].")
log_game("FERMICHEM: [H] has been implanted by [user] with the objective [objective] via MKUltra.")
- addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, H, "[(H.client?.prefs.lewdchem?"Your [E.enthrallGender]":"[E.master]")] whispers you a new objective."), 5)
+ addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, H, "[(E.lewd?"Your [E.enthrallGender]":"[E.master]")] whispers you a new objective."), 5)
brainwash(H, objective)
E.mental_capacity -= 200
to_chat(user, "You sucessfully give an objective to [H]")
@@ -1348,7 +1347,7 @@
for(var/V in listeners)
var/mob/living/carbon/human/H = V
var/datum/status_effect/chem/enthrall/E = H.has_status_effect(/datum/status_effect/chem/enthrall)
- if(E.phase >= 3 && H.client?.prefs.lewdchem)
+ if(E.phase >= 3 && E.lewd)
var/instill = stripped_input(user, "Instill an emotion in [H].", MAX_MESSAGE_LEN)
to_chat(H, "[instill]")
to_chat(user, "You sucessfully instill a feeling in [H]")
@@ -1363,7 +1362,7 @@
if(E.phase > 1)
if(user.ckey == E.enthrallID && user.real_name == E.master.real_name)
E.master = user
- addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, H, "[(H.client?.prefs.lewdchem?"You hear the words of your [E.enthrallGender] again!! They're back!!":"You recognise the voice of [E.master].")]"), 5)
+ addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, H, "[(E.lewd?"You hear the words of your [E.enthrallGender] again!! They're back!!":"You recognise the voice of [E.master].")]"), 5)
to_chat(user, "[H] looks at you with sparkling eyes, recognising you!")
//I dunno how to do state objectives without them revealing they're an antag
diff --git a/code/modules/vehicles/cars/clowncar.dm b/code/modules/vehicles/cars/clowncar.dm
index a2a9c37cfd..1415604aff 100644
--- a/code/modules/vehicles/cars/clowncar.dm
+++ b/code/modules/vehicles/cars/clowncar.dm
@@ -21,7 +21,7 @@
/obj/vehicle/sealed/car/clowncar/auto_assign_occupant_flags(mob/M)
if(ishuman(M))
var/mob/living/carbon/human/H = M
- if(H.mind && H.mind.assigned_role == "Clown") //Ensures only clowns can drive the car. (Including more at once)
+ if(H.mind && HAS_TRAIT(H.mind, TRAIT_CLOWN_MENTALITY)) //Ensures only clowns can drive the car. (Including more at once)
add_control_flags(M, VEHICLE_CONTROL_DRIVE|VEHICLE_CONTROL_PERMISSION)
return
add_control_flags(M, VEHICLE_CONTROL_KIDNAPPED)
diff --git a/code/modules/vending/clothesmate.dm b/code/modules/vending/clothesmate.dm
index 626abd51ef..6144f4c57a 100644
--- a/code/modules/vending/clothesmate.dm
+++ b/code/modules/vending/clothesmate.dm
@@ -70,14 +70,22 @@
/obj/item/clothing/under/skirt/red = 3,
/obj/item/clothing/under/skirt/purple = 3,
/obj/item/clothing/under/sundress = 4,
+ /obj/item/clothing/under/sundresswhite = 4,
/obj/item/clothing/under/stripeddress = 3,
/obj/item/clothing/under/sailordress = 3,
+ /obj/item/clothing/under/sweptskirt = 3,
+ /obj/item/clothing/under/greendress = 3,
+ /obj/item/clothing/under/pinkdress = 3,
/obj/item/clothing/under/redeveninggown = 3,
/obj/item/clothing/under/blacktango = 3,
+ /obj/item/clothing/under/westernbustle = 3,
+ /obj/item/clothing/under/flamenco = 3,
+ /obj/item/clothing/under/flowerdress = 3,
/obj/item/clothing/under/plaid_skirt = 3,
/obj/item/clothing/under/plaid_skirt/blue = 3,
/obj/item/clothing/under/plaid_skirt/purple = 3,
/obj/item/clothing/under/plaid_skirt/green = 3,
+ /obj/item/clothing/under/croptop = 3,
/obj/item/clothing/glasses/regular = 2,
/obj/item/clothing/glasses/regular/jamjar = 2,
/obj/item/clothing/head/sombrero = 3,
diff --git a/html/changelog.html b/html/changelog.html
index 8eabba83df..21cade10d2 100644
--- a/html/changelog.html
+++ b/html/changelog.html
@@ -50,6 +50,328 @@
-->
+ 30 December 2019
+ AnturK updated:
+
+ - Fixed ranged syndicate mobs stormtrooper training.
+
+ Arturlang updated:
+
+ - Adds Bloodsuckers, beware.
+
+ BlueWildrose updated:
+
+ - Fixed stargazers being unable to link to themselves if mindshielded or if holding psionic shielding devices (tinfoil hats) when the species is set.
+ - Fixes non-roundstart slimes being unable to wag their tail.
+
+ Commandersand updated:
+
+ - added two words to clown filter
+ - Added new things to loadouts, check em
+
+ DeltaFire15 updated:
+
+ - Clock cult kindle no longer cares about oxygen damage
+ - changed mecha internals access for some special mechs.
+ - no more mech maintenance access for engineers.
+ - All heads of staff can now message CC
+ - Removes a magicnumber
+ - Rebalanced cult vs cult stun effects to debuff instead of stun
+
+ Detective-Google updated:
+
+ - short hair 80's is no longer jank
+
+ Fermis updated:
+
+ - tweaked how super bases/acids work but limiting them
+
+ Fikou updated:
+
+ - the windup toolbox now has some more "realistic" sounds
+ - the windup toolbox now rumbles again
+
+ Ghommie updated:
+
+ - Fixed hulks, sleeping carp users, pacifists and people with chunky fingers being able to unrestrictly use gun and pneumatic cannon circuit assemblies.
+ - Fixed gun circuit assemblies being only usable by human mobs.
+ - Doubled the locomotion circuit external cooldown, thus halving the movable assemblies' movespeed.
+ - Made wooden cabinet/closets... actually made of wood.
+ - Wooden cabinets are now deconstructable with a screwdriver.
+ - Deconstruction of large crates and other closet subtypes deconstructable with tools other than the welder is no longer instant.
+ - You shouldn't be able to target objects you can't see (excluding darkness) with the ARCD and RLD
+ - The admin RCD is ranged too, just like the ARCD.
+ - Fixed welding, thirteen loko, welding and wraith spectacles not blinding people as expected. Thank you all whomst reported this issue in the suggestions box channel instead of the github repository's issues section, very smart!
+ - Fixed on_mob eyes overlays not updating properly in certain cases.
+ - Fixed deconversion from bloodshot eyes blood cult resetting your eyes' color to pitch black instead of their previous color, more or less.
+ - Spinfusor nerf: Upped the casing and ammo box size by one step, removed the projectile's dismemberment value (explosions can still rip a limb or two off), halved the ammo box capacity, reduced the spinfusor ammo supply pack contents from 32 to 8, removed the casing's ability to explode when thrown.
+ - Fixes bubblegum's death not unlocking the arena shuttle buyment.
+ - Fixed alien tech node not being unlockable with subtypes of the accepted items.
+ - Fixed reactive armor onmob overlays not updating when toggled and reactive teleport armor still using forceMove() instead of do_teleport()
+ - Fixed space hermit asteroid rocks unintendedly spawning airless asteroid turf when mined, save for the perimeter.
+ - Fixes reviver implant having been a crapshot ever since soft-crit was introduced years ago.
+ - Added a "convalescence" time (about 15 seconds) after the user is out of unconsciousbess/crit to ensure they are properly stabilized.
+ - Added a 15 minutes hardcap for accumulated revive cooldown (equivalent to 150 points of brute or burn healed) above which the implant starts cooling down regardless of user's conditions.
+ - Fixed AI core displays I may have broken with my coding extravaganza.
+ - Blue, Amber and Red security alert sounds should be half as loud now.
+ - Buffed clown ops by removing their clumsiness and adding a new trait to be used in place of several clown role checks.
+ - Clown ops too also suffer from not holding or wearing clown shoes now.
+ - Fixed a few holo barriers lacking transparency.
+ - Fixed character setup preview bodyparts not displaying correctly most of times.
+ - Fixed character appearance preview displaying the mannequin in job attire instead of undergarments.
+ - Fixed raven's shuttle computer not being of the emergency shuttle type.
+ - Blood bank generators can now be anchored and unanchored now.
+ - Ghost mentors can now orbit around the target instead of setting their view to theirs'.
+ - Fixes a ghostchat eavesdropping exploit concerning VR.
+ - Fixes VR deaths being broadcasted in deadchat.
+ - Fixed a few pill bottle issues with the ChemMaster.
+ - Fixes a few negative quirks not being properly removed when deleted.
+ - Phobia and mute quirks are no longer cheesed by brain surgery grade healing or medicines.
+ - Fixed double-flavour (and bland custom) ice creams.
+ - Fixed Pubbystation's wall Nanomeds being inconsistent with other stations'.
+ - dextrous simplemobs can now swap action intent with 1, 2, 3, 4 now. Just like humies, ayys and monkys.
+ - Stops humanoids whose skin_tone variable is set to "albino" from showing up as pale when examined should their species not use skintones anyway.
+ - Removed the old (almost) unused roboticist encryption key and headset.
+ - Fixed goose meat.
+ - Fixed a little door assembly glass dupe exploit
+ - Fixed AI holopad speech text being small and whispers that in multiple exclamation marks echo through multiple areas.
+ - Removed literally atrocious polka dotted accessories. They were even more atrocious than the yellow horrible tie.
+
+ Ghommie (also porting PRs by AnturK and Arkatos) updated:
+
+ - Fixed light eaters not burning out borg lamplights and flashes. fix Fixed light eater not affecting open turfs emitting lights such as light tiles and fairy grass.
+ - Fixed an empty reference about light eater armblade disintegration after Heart of Darkness removal.
+
+ Ghommie, Skogol updated:
+
+ - refactored altclick interaction to allow alt-click interactable objects to parent call without forcing the turf contents stat menu open.
+ - Alt clicking will no longer show turf contents for items inside bags etc.
+ - Alt clicking the source of your turf contents stat menu will now close said menu.
+
+ GrayRachnid updated:
+
+ Hatterhat updated:
+
+ - Regenerative nanites, a "chemical" used in the combat stimulant injector. Actually quite stimulating, and not bad in a pinch for a nuclear operative. Check the Combat Medic Kit!
+ - The Combat Medic Kit now has an advanced health analyzer and medisprays instead of patches and a chloral syringe.
+ - The Advanced Syndicate Surgery Duffelbag or whatever it was doesn't get the better injector, because nobody uses it and so nobody's bothered to update it.
+ - .357 speedloaders can now be printed with the Advanced Illegal Ballistics node on the tech tree!
+ - okay so i may have given the .357 an extra speedloader at the same cost but it comes in a box now
+
+ ItzGabby updated:
+
+ - Fixed AltClick on polychromic collars so they actually work now.
+
+ KeRSedChaplain updated:
+
+ - Extends the file "deltakalaxon.ogg" to a 38 second .ogg.
+
+ Linzolle updated:
+
+ - neck slice. harm intent someone's head while they are unconscious or in a neck grab to make them bleed uncontrollably.
+ - officer's sabre now properly makes the unsheating and resheating noise
+ - fireman failure has a different message depending on the circumstance
+ - Abductor chem dispenser, and added it to the abductor console.
+ - "Superlingual matrix" to the abductor console. It's the abductor's tongue. Can be used to link it to your abductor communication channel and then implanted into a test subject.
+ - Shrink ray and added it to the abductor console.
+ - Shrink ray sound effect (its the fucking mega man death sound)
+ - special jumpsuit for abductors
+ - abductor jumpsuit, including digi version if a digitigrade person somehow manages to get their hands on it. sprites for the shrink ray and chem dispenser.
+ - new glands to play with, including the all-access gland, the quantum gland, and the blood type randomiser.
+ - split every gland into its own file instead of all being in one file
+ - cosmic coat crafting recipe changed to coat + cosmic bedsheet
+
+ Mickyan, nemvar, RaveRadbury, AnturK, SpaceManiac updated:
+
+ - Certain incompatible quirks can no longer be taken together.
+ - If an admin sends a ghost back to the lobby, they can now choose a different set of quirks.
+ - the quirk menu went through some minor formatting changes.
+ - Podcloning now lets you keep your quirks.
+ - Quirks have flavor text in medical records.
+ - All quirk medical records refer to "Patient", removing a few instances of "Subject".
+ - Quirks no longer apply to off-station roundstart antagonists.
+ - Mood quirks are now only processed by the quirk holders
+
+ Narcissisko (ported by Hatterhat) updated:
+
+ - Luxury Bar Capsule, at 10,000 points. Comes with no medical supplies, a bar, and a bunch of cigars. Ported from tgstation/tgstation#45547.
+
+ Nervere and subject217, Militaires, py01, nemvar updated:
+
+ - The cook's CQC now only works when in the kitchen or the kitchen backroom.
+ - corrected CQC help instructions
+ - CQC and Sleeping Carp are properly logged.
+ - CQC can passively grab targets when not on grab intent. Passive grabs do not count towards combos for CQC or Sleeping carp.
+ - Martial Art and NOGUN cleanup.
+
+ PersianXerxes updated:
+
+ - Removed night vision quirk
+
+ Putnam updated:
+
+ - acute hepatic pharmacokinesis now works if you already have relevant genitals
+ - Contamination is no longer an infinitely spreading deadly contagion causing mass panic
+ - Dynamic rulesets have lower weight if a round recently featured them (except traitor).
+
+ Putnam3145 updated:
+
+ - Buffed HE pipes by making them realistically radiate away heat.
+ - Dynamic has a (totally unused for any relevant purpose) roundstart report now.
+ - A whole bunch of dynamic data is now available for statbus
+ - Dynamic from-ghost antags no longer double dip on threat refunds when the mode fails due to not enough applications.
+ - whoops broke quirks
+ - quirks work
+ - New tab in preferences screen: "ERP preferences"
+ - New opt-outs for individual effects of incubus draught, succubus milk
+ - Acute hepatic pharmacokinesis has been removed, replaced with above
+ - Renamed "Toggle Lewdchem" to "Toggle Lewd MKUltra", since that's what it actually means, and made it toggle the "hypno" setting (rename it again if more hypno mechanics are added).
+ - Made MKUltra's lewd messages require both people involved to have hypno opted-in.
+ - Buncha dynamic config tweaks
+ - Ghost cafe spawns are actual ghost roles by the game's reckoning now
+ - a runtime in radioactive contamination
+ - Bomb armor now acts like other armor types.
+ - Devastation-level explosions on armorless people no longer destroys everything in their bags.
+
+ Seris02 updated:
+
+ - the clowns headset
+ - distance checks
+ - the sprites
+ - added the runed and brass winter coats (cosmetic ratvarian/narsian)
+ - how the narsian/ratvarian coats can be made
+ - fixes some ghost roles from dying of stupid shit
+ - pandoras attacking their owners
+ - Added Rising Bass and the shifting scroll.
+ - Changes the martial arts scroll in the uplink to "Sleeping Carp Scroll"
+
+ ShizCalev updated:
+
+ - Fixed floodlights not turning off properly when they're underpowered.
+ - Fixed emitters not changing icons properly when they're underpowered.
+
+ Sishen1542 updated:
+
+ - Clicking a pack of seeds with a pen allows you to set the plant's name, description and the pack of seeds' description. Useful for differentiating genetically modified plants. These changes will persist through different generations of the plant.
+ - Hydroponics trays update their name and description to reflect the plant inside them. They revert to default when emptied.
+
+ Toriate updated:
+
+ - Polychromic shorts now have a digitigrade state
+
+ Trilbyspaceclone updated:
+
+ - ports all the new donuts, burgars, and chicken stuff from RG
+ - ports new snowcone
+ - ports grill
+ - ports beakfeast tag/mood lit as TG has it
+ - ports all the amazing new sprites
+ - ports crafting for many things like snowcones needing water
+ - ports of many craftings
+ - lowers fryers sound
+ - ported icons for new food/grill
+ - ports the deletion of some icons and images
+ - ports a spell check for the snowcones
+ - ports fixes for stuff I didnt know were even broken with snowcones
+ - coder cat failers to push the last commit from year(s) ago
+ - Updates the changlogs
+ - meat hook from HUGE to bulky
+ - CE hardsuit is now more rad-proof
+ - Wrong icon names, missing dog fashion with telegram hat
+ - New softdrink that comes in its own vender!
+ - Honey now has a reaction with plants
+ - Buzz fuzz now only has a 5% to give honey and will now give 1u of sugar not 2
+ - Blaster shotguns back into armory
+ - Removed Lighters in thunderdomes
+ - Silicons now know what a slime is saying!
+ - honey now will not kill slimes. Honey slimepeople can be a thing now, go sci.
+ - Added insulin into many of the borg hypo's
+
+ Useroth updated:
+
+ - bamboo which can be used to build punji sticks/ blowguns available as a sugarcane mutation or in exotic seed crate
+ - changed the sugar cane growth stages because fuck if I know why, but it was in the PR
+ - New lavaland ruin: Pulsating tumor
+ - New class of lavaland mobs, a bit weaker than megafauna but still stronger than most of what you normally see
+ - Ghost cafe spawner. For letting people spawn as their own character in the ninja holding facility. It bypasses the usual check, so people who have suicided/ghosted/cryod may use it.
+ - Dorms in the ninja holding facility.
+
+ Xantholne updated:
+
+ - Santa Hats to Loadout and Clothesmate
+ - Christmas Wintercoats to Loadout and Clothesmate
+ - Christmas male and female uniforms to loadout and Clothesmate
+ - Red, Green, and Traditional Santa boots to loadout and Clothesmate
+ - Christmas Socks, Red candycane socks, Green candycane socks to sock selection
+
+ kappa-sama updated:
+
+ - legion drops more crates now
+ - .357 speedloaders in autolathes are now individual bullets instead, speedloaders are now illegal tech, costs less total metal to make 7 bullets than a previous speedloader. 7.62mm bullets in autolathe when hacked and costs more metal to make 5 7.62mm bullets than getting a clip from the seclathe.
+ - mentions that you can refill speedloaders on .357 uplink description
+ - you can now strip people while aggrograbbing or higher
+ - plasmafist to wizard
+ - modular is gone
+ - martial apprentices for the local Chinese wizard
+ - broodmother baby lag
+ - you can no longer get 100k credits by spending 4k roundstart
+ - cooking oil in sunflowers instead of corn oil
+ - throats are no longer slit happy
+
+ keronshb updated:
+
+ - Adds reflector blobs to shield blob upgrades
+
+ kevinz000 updated:
+
+ - Launchpads can now take number inputs for offsets rather than just buttons.
+ - nanites no longer spread through air blocking objects
+ - Night vision readded as a darkness dampening effect rather than darksight.
+ - conveyors can only stack items on tiles to 150 now.
+ - added 8 character save slots
+ - Cargo shuttle now silently ignores slaughter demons/revenants instead of being blocked even while they are jaunted. A drawback is that manifested ones can't block it either, any more.
+ - flashbangs process light/sound separately and uses viewers(), so xray users beware.
+ - Stat() slowed down for anti-lag measures.
+ - sprint/stamina huds now work again
+ - Combat defibs now instant stun on disarm rather than 1 second again
+ - Defibs are now always emagged when emagged with an emag rather than EMP.
+ - aooc toggling now only broadcasts to antagonists
+ - Antag rep proc is now easier to read and supports returning a list.
+ - Clockwork marauders are now on a configured summon cooldown if being summoned on station. They also rapidly bleed health while in or next to space. And they glow brighter.
+
+ lolman360 updated:
+
+ - Added ability to pick up certain simplemobs.
+
+ nemvar updated:
+
+ - The brains of roundstart borgs no longer decay.
+ - Refactored the visibility of reagents for mobs.
+
+ nicbn, Kevinz000, ShizCalev updated:
+
+ - Fire alarm is now simpler. Touch it to activate, touch it to deactivate. When activated, it will blink inconsistently if it is emagged.
+ - You can no longer spam fire alarms. Also, they're logged again.
+ - Fixed fire alarms not updating icons properly after being emagged and hacked by Malf AI's.
+
+ r4d6 updated:
+
+ - Added a N2O pressure tank
+ - Removed a AM Shielding from the crate
+ - Added Handshakes
+ - Added Nose booping
+ - Added submaps for the SM, Tesla and Singulo
+ - Added a placeholder on Boxstation for the Engines
+ - fixed Nose boops not triggering
+
+ shellspeed1 updated:
+
+ - Adds Insect markings
+ - Adds three new moth wings.
+
+
07 December 2019
AffectedArc07 updated:
diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml
index f5e4fea7cb..db9c8e6d08 100644
--- a/html/changelogs/.all_changelog.yml
+++ b/html/changelogs/.all_changelog.yml
@@ -23656,3 +23656,327 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py.
- tweak: Supply ordered looms are unanchored. Bring a wrench.
r4d6:
- rscadd: Added Departements Winter Coats to the loadout list.
+2019-12-30:
+ AnturK:
+ - bugfix: Fixed ranged syndicate mobs stormtrooper training.
+ Arturlang:
+ - rscadd: Adds Bloodsuckers, beware.
+ BlueWildrose:
+ - bugfix: Fixed stargazers being unable to link to themselves if mindshielded or
+ if holding psionic shielding devices (tinfoil hats) when the species is set.
+ - bugfix: Fixes non-roundstart slimes being unable to wag their tail.
+ Commandersand:
+ - tweak: added two words to clown filter
+ - rscadd: Added new things to loadouts, check em
+ DeltaFire15:
+ - balance: Clock cult kindle no longer cares about oxygen damage
+ - tweak: changed mecha internals access for some special mechs.
+ - tweak: no more mech maintenance access for engineers.
+ - tweak: All heads of staff can now message CC
+ - code_imp: Removes a magicnumber
+ - balance: Rebalanced cult vs cult stun effects to debuff instead of stun
+ Detective-Google:
+ - bugfix: short hair 80's is no longer jank
+ Fermis:
+ - tweak: tweaked how super bases/acids work but limiting them
+ Fikou:
+ - tweak: the windup toolbox now has some more "realistic" sounds
+ - bugfix: the windup toolbox now rumbles again
+ Ghommie:
+ - bugfix: Fixed hulks, sleeping carp users, pacifists and people with chunky fingers
+ being able to unrestrictly use gun and pneumatic cannon circuit assemblies.
+ - bugfix: Fixed gun circuit assemblies being only usable by human mobs.
+ - balance: Doubled the locomotion circuit external cooldown, thus halving the movable
+ assemblies' movespeed.
+ - tweak: Made wooden cabinet/closets... actually made of wood.
+ - tweak: Wooden cabinets are now deconstructable with a screwdriver.
+ - tweak: Deconstruction of large crates and other closet subtypes deconstructable
+ with tools other than the welder is no longer instant.
+ - tweak: You shouldn't be able to target objects you can't see (excluding darkness)
+ with the ARCD and RLD
+ - tweak: The admin RCD is ranged too, just like the ARCD.
+ - bugfix: Fixed welding, thirteen loko, welding and wraith spectacles not blinding
+ people as expected. Thank you all whomst reported this issue in the suggestions
+ box channel instead of the github repository's issues section, very smart!
+ - bugfix: Fixed on_mob eyes overlays not updating properly in certain cases.
+ - bugfix: Fixed deconversion from bloodshot eyes blood cult resetting your eyes'
+ color to pitch black instead of their previous color, more or less.
+ - balance: 'Spinfusor nerf: Upped the casing and ammo box size by one step, removed
+ the projectile''s dismemberment value (explosions can still rip a limb or two
+ off), halved the ammo box capacity, reduced the spinfusor ammo supply pack contents
+ from 32 to 8, removed the casing''s ability to explode when thrown.'
+ - bugfix: Fixes bubblegum's death not unlocking the arena shuttle buyment.
+ - bugfix: Fixed alien tech node not being unlockable with subtypes of the accepted
+ items.
+ - bugfix: Fixed reactive armor onmob overlays not updating when toggled and reactive
+ teleport armor still using forceMove() instead of do_teleport()
+ - bugfix: Fixed space hermit asteroid rocks unintendedly spawning airless asteroid
+ turf when mined, save for the perimeter.
+ - bugfix: Fixes reviver implant having been a crapshot ever since soft-crit was
+ introduced years ago.
+ - tweak: Added a "convalescence" time (about 15 seconds) after the user is out of
+ unconsciousbess/crit to ensure they are properly stabilized.
+ - tweak: Added a 15 minutes hardcap for accumulated revive cooldown (equivalent
+ to 150 points of brute or burn healed) above which the implant starts cooling
+ down regardless of user's conditions.
+ - bugfix: Fixed AI core displays I may have broken with my coding extravaganza.
+ - soundadd: Blue, Amber and Red security alert sounds should be half as loud now.
+ - balance: Buffed clown ops by removing their clumsiness and adding a new trait
+ to be used in place of several clown role checks.
+ - tweak: Clown ops too also suffer from not holding or wearing clown shoes now.
+ - bugfix: Fixed a few holo barriers lacking transparency.
+ - bugfix: Fixed character setup preview bodyparts not displaying correctly most
+ of times.
+ - bugfix: Fixed character appearance preview displaying the mannequin in job attire
+ instead of undergarments.
+ - bugfix: Fixed raven's shuttle computer not being of the emergency shuttle type.
+ - tweak: Blood bank generators can now be anchored and unanchored now.
+ - admin: Ghost mentors can now orbit around the target instead of setting their
+ view to theirs'.
+ - bugfix: Fixes a ghostchat eavesdropping exploit concerning VR.
+ - bugfix: Fixes VR deaths being broadcasted in deadchat.
+ - bugfix: Fixed a few pill bottle issues with the ChemMaster.
+ - bugfix: Fixes a few negative quirks not being properly removed when deleted.
+ - tweak: Phobia and mute quirks are no longer cheesed by brain surgery grade healing
+ or medicines.
+ - bugfix: Fixed double-flavour (and bland custom) ice creams.
+ - bugfix: Fixed Pubbystation's wall Nanomeds being inconsistent with other stations'.
+ - bugfix: dextrous simplemobs can now swap action intent with 1, 2, 3, 4 now. Just
+ like humies, ayys and monkys.
+ - bugfix: Stops humanoids whose skin_tone variable is set to "albino" from showing
+ up as pale when examined should their species not use skintones anyway.
+ - rscdel: Removed the old (almost) unused roboticist encryption key and headset.
+ - bugfix: Fixed goose meat.
+ - bugfix: Fixed a little door assembly glass dupe exploit
+ - bugfix: Fixed AI holopad speech text being small and whispers that in multiple
+ exclamation marks echo through multiple areas.
+ - rscdel: Removed literally atrocious polka dotted accessories. They were even more
+ atrocious than the yellow horrible tie.
+ Ghommie (also porting PRs by AnturK and Arkatos):
+ - bugfix: Fixed light eaters not burning out borg lamplights and flashes. fix Fixed
+ light eater not affecting open turfs emitting lights such as light tiles and
+ fairy grass.
+ - bugfix: Fixed an empty reference about light eater armblade disintegration after
+ Heart of Darkness removal.
+ Ghommie, Skogol:
+ - refactor: refactored altclick interaction to allow alt-click interactable objects
+ to parent call without forcing the turf contents stat menu open.
+ - tweak: Alt clicking will no longer show turf contents for items inside bags etc.
+ - tweak: Alt clicking the source of your turf contents stat menu will now close
+ said menu.
+ GrayRachnid:
+ - bugfix: fixes consistency
+ Hatterhat:
+ - rscadd: Regenerative nanites, a "chemical" used in the combat stimulant injector.
+ Actually quite stimulating, and not bad in a pinch for a nuclear operative.
+ Check the Combat Medic Kit!
+ - tweak: The Combat Medic Kit now has an advanced health analyzer and medisprays
+ instead of patches and a chloral syringe.
+ - balance: The Advanced Syndicate Surgery Duffelbag or whatever it was doesn't get
+ the better injector, because nobody uses it and so nobody's bothered to update
+ it.
+ - rscadd: .357 speedloaders can now be printed with the Advanced Illegal Ballistics
+ node on the tech tree!
+ - balance: okay so i may have given the .357 an extra speedloader at the same cost
+ but it comes in a box now
+ ItzGabby:
+ - bugfix: Fixed AltClick on polychromic collars so they actually work now.
+ KeRSedChaplain:
+ - soundadd: Extends the file "deltakalaxon.ogg" to a 38 second .ogg.
+ Linzolle:
+ - rscadd: neck slice. harm intent someone's head while they are unconscious or in
+ a neck grab to make them bleed uncontrollably.
+ - bugfix: officer's sabre now properly makes the unsheating and resheating noise
+ - bugfix: fireman failure has a different message depending on the circumstance
+ - rscadd: Abductor chem dispenser, and added it to the abductor console.
+ - rscadd: '"Superlingual matrix" to the abductor console. It''s the abductor''s
+ tongue. Can be used to link it to your abductor communication channel and then
+ implanted into a test subject.'
+ - rscadd: Shrink ray and added it to the abductor console.
+ - soundadd: Shrink ray sound effect (its the fucking mega man death sound)
+ - rscadd: special jumpsuit for abductors
+ - imageadd: abductor jumpsuit, including digi version if a digitigrade person somehow
+ manages to get their hands on it. sprites for the shrink ray and chem dispenser.
+ - rscadd: new glands to play with, including the all-access gland, the quantum gland,
+ and the blood type randomiser.
+ - code_imp: split every gland into its own file instead of all being in one file
+ - tweak: cosmic coat crafting recipe changed to coat + cosmic bedsheet
+ Mickyan, nemvar, RaveRadbury, AnturK, SpaceManiac:
+ - bugfix: Certain incompatible quirks can no longer be taken together.
+ - bugfix: If an admin sends a ghost back to the lobby, they can now choose a different
+ set of quirks.
+ - spellcheck: the quirk menu went through some minor formatting changes.
+ - bugfix: Podcloning now lets you keep your quirks.
+ - rscadd: Quirks have flavor text in medical records.
+ - spellcheck: All quirk medical records refer to "Patient", removing a few instances
+ of "Subject".
+ - tweak: Quirks no longer apply to off-station roundstart antagonists.
+ - code_imp: Mood quirks are now only processed by the quirk holders
+ Narcissisko (ported by Hatterhat):
+ - rscadd: Luxury Bar Capsule, at 10,000 points. Comes with no medical supplies,
+ a bar, and a bunch of cigars. Ported from tgstation/tgstation#45547.
+ Nervere and subject217, Militaires, py01, nemvar:
+ - balance: The cook's CQC now only works when in the kitchen or the kitchen backroom.
+ - spellcheck: corrected CQC help instructions
+ - bugfix: CQC and Sleeping Carp are properly logged.
+ - tweak: CQC can passively grab targets when not on grab intent. Passive grabs do
+ not count towards combos for CQC or Sleeping carp.
+ - code_imp: Martial Art and NOGUN cleanup.
+ PersianXerxes:
+ - rscdel: Removed night vision quirk
+ Putnam:
+ - bugfix: acute hepatic pharmacokinesis now works if you already have relevant genitals
+ - balance: Contamination is no longer an infinitely spreading deadly contagion causing
+ mass panic
+ - tweak: Dynamic rulesets have lower weight if a round recently featured them (except
+ traitor).
+ Putnam3145:
+ - balance: Buffed HE pipes by making them realistically radiate away heat.
+ - bugfix: Dynamic has a (totally unused for any relevant purpose) roundstart report
+ now.
+ - admin: A whole bunch of dynamic data is now available for statbus
+ - bugfix: Dynamic from-ghost antags no longer double dip on threat refunds when
+ the mode fails due to not enough applications.
+ - bugfix: whoops broke quirks
+ - bugfix: quirks work
+ - rscadd: 'New tab in preferences screen: "ERP preferences"'
+ - rscadd: New opt-outs for individual effects of incubus draught, succubus milk
+ - rscdel: Acute hepatic pharmacokinesis has been removed, replaced with above
+ - tweak: Renamed "Toggle Lewdchem" to "Toggle Lewd MKUltra", since that's what it
+ actually means, and made it toggle the "hypno" setting (rename it again if more
+ hypno mechanics are added).
+ - tweak: Made MKUltra's lewd messages require both people involved to have hypno
+ opted-in.
+ - config: Buncha dynamic config tweaks
+ - bugfix: Ghost cafe spawns are actual ghost roles by the game's reckoning now
+ - bugfix: a runtime in radioactive contamination
+ - balance: Bomb armor now acts like other armor types.
+ - balance: Devastation-level explosions on armorless people no longer destroys everything
+ in their bags.
+ Seris02:
+ - rscadd: the clowns headset
+ - bugfix: distance checks
+ - bugfix: the sprites
+ - rscadd: added the runed and brass winter coats (cosmetic ratvarian/narsian)
+ - tweak: how the narsian/ratvarian coats can be made
+ - bugfix: fixes some ghost roles from dying of stupid shit
+ - bugfix: pandoras attacking their owners
+ - rscadd: Added Rising Bass and the shifting scroll.
+ - tweak: Changes the martial arts scroll in the uplink to "Sleeping Carp Scroll"
+ ShizCalev:
+ - bugfix: Fixed floodlights not turning off properly when they're underpowered.
+ - bugfix: Fixed emitters not changing icons properly when they're underpowered.
+ Sishen1542:
+ - rscadd: Clicking a pack of seeds with a pen allows you to set the plant's name,
+ description and the pack of seeds' description. Useful for differentiating genetically
+ modified plants. These changes will persist through different generations of
+ the plant.
+ - rscadd: Hydroponics trays update their name and description to reflect the plant
+ inside them. They revert to default when emptied.
+ Toriate:
+ - rscadd: Polychromic shorts now have a digitigrade state
+ Trilbyspaceclone:
+ - rscadd: ports all the new donuts, burgars, and chicken stuff from RG
+ - rscadd: ports new snowcone
+ - rscadd: ports grill
+ - rscadd: ports beakfeast tag/mood lit as TG has it
+ - rscadd: ports all the amazing new sprites
+ - tweak: ports crafting for many things like snowcones needing water
+ - balance: ports of many craftings
+ - soundadd: lowers fryers sound
+ - imageadd: ported icons for new food/grill
+ - imagedel: ports the deletion of some icons and images
+ - spellcheck: ports a spell check for the snowcones
+ - code_imp: ports fixes for stuff I didnt know were even broken with snowcones
+ - bugfix: coder cat failers to push the last commit from year(s) ago
+ - admin: Updates the changlogs
+ - tweak: meat hook from HUGE to bulky
+ - tweak: CE hardsuit is now more rad-proof
+ - bugfix: Wrong icon names, missing dog fashion with telegram hat
+ - rscadd: New softdrink that comes in its own vender!
+ - rscadd: Honey now has a reaction with plants
+ - tweak: Buzz fuzz now only has a 5% to give honey and will now give 1u of sugar
+ not 2
+ - rscadd: Blaster shotguns back into armory
+ - rscdel: Removed Lighters in thunderdomes
+ - rscadd: Silicons now know what a slime is saying!
+ - balance: honey now will not kill slimes. Honey slimepeople can be a thing now,
+ go sci.
+ - rscadd: Added insulin into many of the borg hypo's
+ Useroth:
+ - rscadd: bamboo which can be used to build punji sticks/ blowguns available as
+ a sugarcane mutation or in exotic seed crate
+ - tweak: changed the sugar cane growth stages because fuck if I know why, but it
+ was in the PR
+ - rscadd: 'New lavaland ruin: Pulsating tumor'
+ - rscadd: New class of lavaland mobs, a bit weaker than megafauna but still stronger
+ than most of what you normally see
+ - rscadd: Ghost cafe spawner. For letting people spawn as their own character in
+ the ninja holding facility. It bypasses the usual check, so people who have
+ suicided/ghosted/cryod may use it.
+ - rscadd: Dorms in the ninja holding facility.
+ Xantholne:
+ - rscadd: Santa Hats to Loadout and Clothesmate
+ - rscadd: Christmas Wintercoats to Loadout and Clothesmate
+ - rscadd: Christmas male and female uniforms to loadout and Clothesmate
+ - rscadd: Red, Green, and Traditional Santa boots to loadout and Clothesmate
+ - rscadd: Christmas Socks, Red candycane socks, Green candycane socks to sock selection
+ kappa-sama:
+ - balance: legion drops more crates now
+ - balance: .357 speedloaders in autolathes are now individual bullets instead, speedloaders
+ are now illegal tech, costs less total metal to make 7 bullets than a previous
+ speedloader. 7.62mm bullets in autolathe when hacked and costs more metal to
+ make 5 7.62mm bullets than getting a clip from the seclathe.
+ - tweak: mentions that you can refill speedloaders on .357 uplink description
+ - bugfix: you can now strip people while aggrograbbing or higher
+ - rscadd: plasmafist to wizard
+ - code_imp: modular is gone
+ - rscadd: martial apprentices for the local Chinese wizard
+ - bugfix: broodmother baby lag
+ - balance: you can no longer get 100k credits by spending 4k roundstart
+ - balance: cooking oil in sunflowers instead of corn oil
+ - bugfix: throats are no longer slit happy
+ keronshb:
+ - rscadd: Adds reflector blobs to shield blob upgrades
+ kevinz000:
+ - rscadd: Launchpads can now take number inputs for offsets rather than just buttons.
+ - balance: nanites no longer spread through air blocking objects
+ - rscadd: Night vision readded as a darkness dampening effect rather than darksight.
+ - rscdel: conveyors can only stack items on tiles to 150 now.
+ - rscadd: added 8 character save slots
+ - rscadd: Cargo shuttle now silently ignores slaughter demons/revenants instead
+ of being blocked even while they are jaunted. A drawback is that manifested
+ ones can't block it either, any more.
+ - balance: flashbangs process light/sound separately and uses viewers(), so xray
+ users beware.
+ - tweak: Stat() slowed down for anti-lag measures.
+ - bugfix: sprint/stamina huds now work again
+ - balance: Combat defibs now instant stun on disarm rather than 1 second again
+ - balance: Defibs are now always emagged when emagged with an emag rather than EMP.
+ - bugfix: aooc toggling now only broadcasts to antagonists
+ - code_imp: Antag rep proc is now easier to read and supports returning a list.
+ - balance: Clockwork marauders are now on a configured summon cooldown if being
+ summoned on station. They also rapidly bleed health while in or next to space.
+ And they glow brighter.
+ lolman360:
+ - rscadd: Added ability to pick up certain simplemobs.
+ nemvar:
+ - bugfix: The brains of roundstart borgs no longer decay.
+ - code_imp: Refactored the visibility of reagents for mobs.
+ nicbn, Kevinz000, ShizCalev:
+ - tweak: Fire alarm is now simpler. Touch it to activate, touch it to deactivate.
+ When activated, it will blink inconsistently if it is emagged.
+ - bugfix: You can no longer spam fire alarms. Also, they're logged again.
+ - bugfix: Fixed fire alarms not updating icons properly after being emagged and
+ hacked by Malf AI's.
+ r4d6:
+ - rscadd: Added a N2O pressure tank
+ - rscdel: Removed a AM Shielding from the crate
+ - rscadd: Added Handshakes
+ - rscadd: Added Nose booping
+ - rscadd: Added submaps for the SM, Tesla and Singulo
+ - rscadd: Added a placeholder on Boxstation for the Engines
+ - bugfix: fixed Nose boops not triggering
+ shellspeed1:
+ - rscadd: Adds Insect markings
+ - rscadd: Adds three new moth wings.
diff --git a/html/changelogs/AutoChangeLog-pr-10026.yml b/html/changelogs/AutoChangeLog-pr-10026.yml
deleted file mode 100644
index 6e8062874b..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10026.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Linzolle"
-delete-after: True
-changes:
- - rscadd: "neck slice. harm intent someone's head while they are unconscious or in a neck grab to make them bleed uncontrollably."
diff --git a/html/changelogs/AutoChangeLog-pr-10037.yml b/html/changelogs/AutoChangeLog-pr-10037.yml
deleted file mode 100644
index b0f0501516..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10037.yml
+++ /dev/null
@@ -1,6 +0,0 @@
-author: "Ghommie"
-delete-after: True
-changes:
- - bugfix: "Fixed hulks, sleeping carp users, pacifists and people with chunky fingers being able to unrestrictly use gun and pneumatic cannon circuit assemblies."
- - bugfix: "Fixed gun circuit assemblies being only usable by human mobs."
- - balance: "Doubled the locomotion circuit external cooldown, thus halving the movable assemblies' movespeed."
diff --git a/html/changelogs/AutoChangeLog-pr-10044.yml b/html/changelogs/AutoChangeLog-pr-10044.yml
deleted file mode 100644
index 8d1782c3a8..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10044.yml
+++ /dev/null
@@ -1,6 +0,0 @@
-author: "Ghommie"
-delete-after: True
-changes:
- - tweak: "Made wooden cabinet/closets... actually made of wood."
- - tweak: "Wooden cabinets are now deconstructable with a screwdriver."
- - tweak: "Deconstruction of large crates and other closet subtypes deconstructable with tools other than the welder is no longer instant."
diff --git a/html/changelogs/AutoChangeLog-pr-10050.yml b/html/changelogs/AutoChangeLog-pr-10050.yml
deleted file mode 100644
index c736ded339..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10050.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-author: "Ghommie"
-delete-after: True
-changes:
- - tweak: "You shouldn't be able to target objects you can't see (excluding darkness) with the ARCD and RLD"
- - tweak: "The admin RCD is ranged too, just like the ARCD."
diff --git a/html/changelogs/AutoChangeLog-pr-10051.yml b/html/changelogs/AutoChangeLog-pr-10051.yml
deleted file mode 100644
index 0d7d274891..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10051.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "kappa-sama"
-delete-after: True
-changes:
- - balance: "legion drops more crates now"
diff --git a/html/changelogs/AutoChangeLog-pr-10053.yml b/html/changelogs/AutoChangeLog-pr-10053.yml
deleted file mode 100644
index 36d392d8f8..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10053.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Ghommie"
-delete-after: True
-changes:
- - bugfix: "Fixed welding, thirteen loko, welding and wraith spectacles not blinding people as expected. Thank you all whomst reported this issue in the suggestions box channel instead of the github repository's issues section, very smart!"
diff --git a/html/changelogs/AutoChangeLog-pr-10054.yml b/html/changelogs/AutoChangeLog-pr-10054.yml
deleted file mode 100644
index 0dc3b36618..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10054.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-author: "kappa-sama"
-delete-after: True
-changes:
- - balance: ".357 speedloaders in autolathes are now individual bullets instead, speedloaders are now illegal tech, costs less total metal to make 7 bullets than a previous speedloader. 7.62mm bullets in autolathe when hacked and costs more metal to make 5 7.62mm bullets than getting a clip from the seclathe."
- - tweak: "mentions that you can refill speedloaders on .357 uplink description"
diff --git a/html/changelogs/AutoChangeLog-pr-10057.yml b/html/changelogs/AutoChangeLog-pr-10057.yml
deleted file mode 100644
index be285bfc57..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10057.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-author: "Ghommie"
-delete-after: True
-changes:
- - bugfix: "Fixed on_mob eyes overlays not updating properly in certain cases."
- - bugfix: "Fixed deconversion from bloodshot eyes blood cult resetting your eyes' color to pitch black instead of their previous color, more or less."
diff --git a/html/changelogs/AutoChangeLog-pr-10058.yml b/html/changelogs/AutoChangeLog-pr-10058.yml
deleted file mode 100644
index 6f9a985765..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10058.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Ghommie"
-delete-after: True
-changes:
- - balance: "Spinfusor nerf: Upped the casing and ammo box size by one step, removed the projectile's dismemberment value (explosions can still rip a limb or two off), halved the ammo box capacity, reduced the spinfusor ammo supply pack contents from 32 to 8, removed the casing's ability to explode when thrown."
diff --git a/html/changelogs/AutoChangeLog-pr-10059.yml b/html/changelogs/AutoChangeLog-pr-10059.yml
deleted file mode 100644
index e9f89c18a2..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10059.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "lolman360"
-delete-after: True
-changes:
- - rscadd: "Added ability to pick up certain simplemobs."
diff --git a/html/changelogs/AutoChangeLog-pr-10067.yml b/html/changelogs/AutoChangeLog-pr-10067.yml
deleted file mode 100644
index ac65487761..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10067.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-author: "Sishen1542"
-delete-after: True
-changes:
- - rscadd: "Clicking a pack of seeds with a pen allows you to set the plant's name, description and the pack of seeds' description. Useful for differentiating genetically modified plants. These changes will persist through different generations of the plant."
- - rscadd: "Hydroponics trays update their name and description to reflect the plant inside them. They revert to default when emptied."
diff --git a/html/changelogs/AutoChangeLog-pr-10068.yml b/html/changelogs/AutoChangeLog-pr-10068.yml
deleted file mode 100644
index 39b2c37c28..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10068.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-author: "Fikou"
-delete-after: True
-changes:
- - tweak: "the windup toolbox now has some more \"realistic\" sounds"
- - bugfix: "the windup toolbox now rumbles again"
diff --git a/html/changelogs/AutoChangeLog-pr-10071.yml b/html/changelogs/AutoChangeLog-pr-10071.yml
deleted file mode 100644
index 3632bdfa86..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10071.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Ghommie"
-delete-after: True
-changes:
- - bugfix: "Fixes bubblegum's death not unlocking the arena shuttle buyment."
diff --git a/html/changelogs/AutoChangeLog-pr-10072.yml b/html/changelogs/AutoChangeLog-pr-10072.yml
deleted file mode 100644
index 9a6f45e61e..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10072.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-author: "Useroth"
-delete-after: True
-changes:
- - rscadd: "bamboo which can be used to build punji sticks/ blowguns available as a sugarcane mutation or in exotic seed crate"
- - tweak: "changed the sugar cane growth stages because fuck if I know why, but it was in the PR"
diff --git a/html/changelogs/AutoChangeLog-pr-10076.yml b/html/changelogs/AutoChangeLog-pr-10076.yml
deleted file mode 100644
index 0e04ceddbc..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10076.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Ghommie"
-delete-after: True
-changes:
- - bugfix: "Fixed alien tech node not being unlockable with subtypes of the accepted items."
diff --git a/html/changelogs/AutoChangeLog-pr-10079.yml b/html/changelogs/AutoChangeLog-pr-10079.yml
deleted file mode 100644
index a729b1bc56..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10079.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Ghommie"
-delete-after: True
-changes:
- - bugfix: "Fixed reactive armor onmob overlays not updating when toggled and reactive teleport armor still using forceMove() instead of do_teleport()"
diff --git a/html/changelogs/AutoChangeLog-pr-10082.yml b/html/changelogs/AutoChangeLog-pr-10082.yml
deleted file mode 100644
index e5c669f798..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10082.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "kevinz000"
-delete-after: True
-changes:
- - rscadd: "Launchpads can now take number inputs for offsets rather than just buttons."
diff --git a/html/changelogs/AutoChangeLog-pr-10083.yml b/html/changelogs/AutoChangeLog-pr-10083.yml
deleted file mode 100644
index c60c3fea36..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10083.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Ghommie"
-delete-after: True
-changes:
- - bugfix: "Fixed space hermit asteroid rocks unintendedly spawning airless asteroid turf when mined, save for the perimeter."
diff --git a/html/changelogs/AutoChangeLog-pr-10085.yml b/html/changelogs/AutoChangeLog-pr-10085.yml
deleted file mode 100644
index a82f052fed..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10085.yml
+++ /dev/null
@@ -1,6 +0,0 @@
-author: "Ghommie"
-delete-after: True
-changes:
- - bugfix: "Fixes reviver implant having been a crapshot ever since soft-crit was introduced years ago."
- - tweak: "Added a \"convalescence\" time (about 15 seconds) after the user is out of unconsciousbess/crit to ensure they are properly stabilized."
- - tweak: "Added a 15 minutes hardcap for accumulated revive cooldown (equivalent to 150 points of brute or burn healed) above which the implant starts cooling down regardless of user's conditions."
diff --git a/html/changelogs/AutoChangeLog-pr-10086.yml b/html/changelogs/AutoChangeLog-pr-10086.yml
deleted file mode 100644
index 08dff8ee5c..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10086.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Ghommie"
-delete-after: True
-changes:
- - bugfix: "Fixed AI core displays I may have broken with my coding extravaganza."
diff --git a/html/changelogs/AutoChangeLog-pr-10090.yml b/html/changelogs/AutoChangeLog-pr-10090.yml
deleted file mode 100644
index 924d83b65e..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10090.yml
+++ /dev/null
@@ -1,6 +0,0 @@
-author: "Hatterhat"
-delete-after: True
-changes:
- - rscadd: "Regenerative nanites, a \"chemical\" used in the combat stimulant injector. Actually quite stimulating, and not bad in a pinch for a nuclear operative. Check the Combat Medic Kit!"
- - tweak: "The Combat Medic Kit now has an advanced health analyzer and medisprays instead of patches and a chloral syringe."
- - balance: "The Advanced Syndicate Surgery Duffelbag or whatever it was doesn't get the better injector, because nobody uses it and so nobody's bothered to update it."
diff --git a/html/changelogs/AutoChangeLog-pr-10091.yml b/html/changelogs/AutoChangeLog-pr-10091.yml
deleted file mode 100644
index 8787d9bdba..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10091.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Ghommie"
-delete-after: True
-changes:
- - soundadd: "Blue, Amber and Red security alert sounds should be half as loud now."
diff --git a/html/changelogs/AutoChangeLog-pr-10093.yml b/html/changelogs/AutoChangeLog-pr-10093.yml
deleted file mode 100644
index e692ed5d2a..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10093.yml
+++ /dev/null
@@ -1,15 +0,0 @@
-author: "Trilbyspaceclone"
-delete-after: True
-changes:
- - rscadd: "ports all the new donuts, burgars, and chicken stuff from RG"
- - rscadd: "ports new snowcone"
- - rscadd: "ports grill"
- - rscadd: "ports beakfeast tag/mood lit as TG has it"
- - rscadd: "ports all the amazing new sprites"
- - tweak: "ports crafting for many things like snowcones needing water"
- - balance: "ports of many craftings"
- - soundadd: "lowers fryers sound"
- - imageadd: "ported icons for new food/grill"
- - imagedel: "ports the deletion of some icons and images"
- - spellcheck: "ports a spell check for the snowcones"
- - code_imp: "ports fixes for stuff I didnt know were even broken with snowcones"
diff --git a/html/changelogs/AutoChangeLog-pr-10094.yml b/html/changelogs/AutoChangeLog-pr-10094.yml
deleted file mode 100644
index ee9513489d..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10094.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Trilbyspaceclone"
-delete-after: True
-changes:
- - bugfix: "coder cat failers to push the last commit from year(s) ago"
diff --git a/html/changelogs/AutoChangeLog-pr-10096.yml b/html/changelogs/AutoChangeLog-pr-10096.yml
deleted file mode 100644
index 0089c11a9d..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10096.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "kevinz000"
-delete-after: True
-changes:
- - balance: "nanites no longer spread through air blocking objects"
diff --git a/html/changelogs/AutoChangeLog-pr-10099.yml b/html/changelogs/AutoChangeLog-pr-10099.yml
deleted file mode 100644
index 9ad4bfdfc2..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10099.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Ghommie"
-delete-after: True
-changes:
- - bugfix: "Fixed a few holo barriers lacking transparency."
diff --git a/html/changelogs/AutoChangeLog-pr-10108.yml b/html/changelogs/AutoChangeLog-pr-10108.yml
deleted file mode 100644
index 67c6396763..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10108.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "DeltaFire15"
-delete-after: True
-changes:
- - balance: "Clock cult kindle no longer cares about oxygen damage"
diff --git a/html/changelogs/AutoChangeLog-pr-10111.yml b/html/changelogs/AutoChangeLog-pr-10111.yml
deleted file mode 100644
index 0a80f01eef..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10111.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "kappa-sama"
-delete-after: True
-changes:
- - bugfix: "you can now strip people while aggrograbbing or higher"
diff --git a/html/changelogs/AutoChangeLog-pr-10114.yml b/html/changelogs/AutoChangeLog-pr-10114.yml
deleted file mode 100644
index f413760ff9..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10114.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "r4d6"
-delete-after: True
-changes:
- - rscadd: "Added a N2O pressure tank"
diff --git a/html/changelogs/AutoChangeLog-pr-10115.yml b/html/changelogs/AutoChangeLog-pr-10115.yml
deleted file mode 100644
index f7a60e4911..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10115.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-author: "Useroth"
-delete-after: True
-changes:
- - rscadd: "New lavaland ruin: Pulsating tumor"
- - rscadd: "New class of lavaland mobs, a bit weaker than megafauna but still stronger than most of what you normally see"
diff --git a/html/changelogs/AutoChangeLog-pr-10116.yml b/html/changelogs/AutoChangeLog-pr-10116.yml
deleted file mode 100644
index 70c1b4590d..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10116.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Putnam"
-delete-after: True
-changes:
- - bugfix: "acute hepatic pharmacokinesis now works if you already have relevant genitals"
diff --git a/html/changelogs/AutoChangeLog-pr-10120.yml b/html/changelogs/AutoChangeLog-pr-10120.yml
deleted file mode 100644
index 5777519d83..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10120.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "kevinz000"
-delete-after: True
-changes:
- - rscadd: "Night vision readded as a darkness dampening effect rather than darksight."
diff --git a/html/changelogs/AutoChangeLog-pr-10121.yml b/html/changelogs/AutoChangeLog-pr-10121.yml
deleted file mode 100644
index 38a91fcc01..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10121.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "kappa-sama"
-delete-after: True
-changes:
- - rscadd: "plasmafist to wizard"
diff --git a/html/changelogs/AutoChangeLog-pr-10122.yml b/html/changelogs/AutoChangeLog-pr-10122.yml
deleted file mode 100644
index 4d503dc2be..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10122.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "kevinz000"
-delete-after: True
-changes:
- - rscdel: "conveyors can only stack items on tiles to 150 now."
diff --git a/html/changelogs/AutoChangeLog-pr-10126.yml b/html/changelogs/AutoChangeLog-pr-10126.yml
deleted file mode 100644
index 6cf568ca70..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10126.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Putnam3145"
-delete-after: True
-changes:
- - balance: "Buffed HE pipes by making them realistically radiate away heat."
diff --git a/html/changelogs/AutoChangeLog-pr-10128.yml b/html/changelogs/AutoChangeLog-pr-10128.yml
deleted file mode 100644
index 89bca26a76..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10128.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Seris02"
-delete-after: True
-changes:
- - rscadd: "the clowns headset"
diff --git a/html/changelogs/AutoChangeLog-pr-10130.yml b/html/changelogs/AutoChangeLog-pr-10130.yml
deleted file mode 100644
index 1f6ba6ac6a..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10130.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "kappa-sama"
-delete-after: True
-changes:
- - code_imp: "modular is gone"
diff --git a/html/changelogs/AutoChangeLog-pr-10132.yml b/html/changelogs/AutoChangeLog-pr-10132.yml
deleted file mode 100644
index d8755d2b90..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10132.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Trilbyspaceclone"
-delete-after: True
-changes:
- - tweak: "meat hook from HUGE to bulky"
diff --git a/html/changelogs/AutoChangeLog-pr-10137.yml b/html/changelogs/AutoChangeLog-pr-10137.yml
deleted file mode 100644
index 63678d4425..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10137.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "KeRSedChaplain"
-delete-after: True
-changes:
- - soundadd: "Extends the file \"deltakalaxon.ogg\" to a 38 second .ogg."
diff --git a/html/changelogs/AutoChangeLog-pr-10140.yml b/html/changelogs/AutoChangeLog-pr-10140.yml
deleted file mode 100644
index d5e33fa02d..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10140.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Putnam3145"
-delete-after: True
-changes:
- - bugfix: "Dynamic has a (totally unused for any relevant purpose) roundstart report now."
diff --git a/html/changelogs/AutoChangeLog-pr-10141.yml b/html/changelogs/AutoChangeLog-pr-10141.yml
deleted file mode 100644
index 5f0bfe2267..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10141.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Putnam3145"
-delete-after: True
-changes:
- - admin: "A whole bunch of dynamic data is now available for statbus"
diff --git a/html/changelogs/AutoChangeLog-pr-10142.yml b/html/changelogs/AutoChangeLog-pr-10142.yml
deleted file mode 100644
index aba2675550..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10142.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Trilbyspaceclone"
-delete-after: True
-changes:
- - tweak: "CE hardsuit is now more rad-proof"
diff --git a/html/changelogs/AutoChangeLog-pr-10143.yml b/html/changelogs/AutoChangeLog-pr-10143.yml
deleted file mode 100644
index 45dfe225c4..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10143.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Putnam3145"
-delete-after: True
-changes:
- - bugfix: "Dynamic from-ghost antags no longer double dip on threat refunds when the mode fails due to not enough applications."
diff --git a/html/changelogs/AutoChangeLog-pr-10144.yml b/html/changelogs/AutoChangeLog-pr-10144.yml
deleted file mode 100644
index 6b175b149b..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10144.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Linzolle"
-delete-after: True
-changes:
- - bugfix: "officer's sabre now properly makes the unsheating and resheating noise"
diff --git a/html/changelogs/AutoChangeLog-pr-10150.yml b/html/changelogs/AutoChangeLog-pr-10150.yml
deleted file mode 100644
index d2a2b79ff0..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10150.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Trilbyspaceclone"
-delete-after: True
-changes:
- - bugfix: "Wrong icon names, missing dog fashion with telegram hat"
diff --git a/html/changelogs/AutoChangeLog-pr-10153.yml b/html/changelogs/AutoChangeLog-pr-10153.yml
deleted file mode 100644
index 7196583de9..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10153.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Linzolle"
-delete-after: True
-changes:
- - bugfix: "fireman failure has a different message depending on the circumstance"
diff --git a/html/changelogs/AutoChangeLog-pr-10155.yml b/html/changelogs/AutoChangeLog-pr-10155.yml
deleted file mode 100644
index d82ea5ed43..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10155.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Seris02"
-delete-after: True
-changes:
- - bugfix: "distance checks"
diff --git a/html/changelogs/AutoChangeLog-pr-10156.yml b/html/changelogs/AutoChangeLog-pr-10156.yml
deleted file mode 100644
index ec08642b3f..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10156.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-author: "Ghommie"
-delete-after: True
-changes:
- - bugfix: "Fixed character setup preview bodyparts not displaying correctly most of times."
- - bugfix: "Fixed character appearance preview displaying the mannequin in job attire instead of undergarments."
diff --git a/html/changelogs/AutoChangeLog-pr-10157.yml b/html/changelogs/AutoChangeLog-pr-10157.yml
deleted file mode 100644
index 6ec495b7fc..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10157.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-author: "ShizCalev"
-delete-after: True
-changes:
- - bugfix: "Fixed floodlights not turning off properly when they're underpowered."
- - bugfix: "Fixed emitters not changing icons properly when they're underpowered."
diff --git a/html/changelogs/AutoChangeLog-pr-10160.yml b/html/changelogs/AutoChangeLog-pr-10160.yml
deleted file mode 100644
index 2046324dc8..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10160.yml
+++ /dev/null
@@ -1,6 +0,0 @@
-author: "nicbn, Kevinz000, ShizCalev"
-delete-after: True
-changes:
- - tweak: "Fire alarm is now simpler. Touch it to activate, touch it to deactivate. When activated, it will blink inconsistently if it is emagged."
- - bugfix: "You can no longer spam fire alarms. Also, they're logged again."
- - bugfix: "Fixed fire alarms not updating icons properly after being emagged and hacked by Malf AI's."
diff --git a/html/changelogs/AutoChangeLog-pr-10161.yml b/html/changelogs/AutoChangeLog-pr-10161.yml
deleted file mode 100644
index 7f09609b99..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10161.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Ghommie"
-delete-after: True
-changes:
- - bugfix: "Fixed raven's shuttle computer not being of the emergency shuttle type."
diff --git a/html/changelogs/AutoChangeLog-pr-10163.yml b/html/changelogs/AutoChangeLog-pr-10163.yml
deleted file mode 100644
index 2818019ad7..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10163.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Ghommie"
-delete-after: True
-changes:
- - tweak: "Blood bank generators can now be anchored and unanchored now."
diff --git a/html/changelogs/AutoChangeLog-pr-10164.yml b/html/changelogs/AutoChangeLog-pr-10164.yml
deleted file mode 100644
index 464edda73b..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10164.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "kappa-sama"
-delete-after: True
-changes:
- - rscadd: "martial apprentices for the local Chinese wizard"
diff --git a/html/changelogs/AutoChangeLog-pr-10166.yml b/html/changelogs/AutoChangeLog-pr-10166.yml
deleted file mode 100644
index ba919010af..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10166.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "nemvar"
-delete-after: True
-changes:
- - bugfix: "The brains of roundstart borgs no longer decay."
diff --git a/html/changelogs/AutoChangeLog-pr-10171.yml b/html/changelogs/AutoChangeLog-pr-10171.yml
deleted file mode 100644
index 0138d7a381..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10171.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "r4d6"
-delete-after: True
-changes:
- - rscdel: "Removed a AM Shielding from the crate"
diff --git a/html/changelogs/AutoChangeLog-pr-10172.yml b/html/changelogs/AutoChangeLog-pr-10172.yml
deleted file mode 100644
index ce76e04d13..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10172.yml
+++ /dev/null
@@ -1,11 +0,0 @@
-author: "Mickyan, nemvar, RaveRadbury, AnturK, SpaceManiac"
-delete-after: True
-changes:
- - bugfix: "Certain incompatible quirks can no longer be taken together."
- - bugfix: "If an admin sends a ghost back to the lobby, they can now choose a different set of quirks."
- - spellcheck: "the quirk menu went through some minor formatting changes."
- - bugfix: "Podcloning now lets you keep your quirks."
- - rscadd: "Quirks have flavor text in medical records."
- - spellcheck: "All quirk medical records refer to \"Patient\", removing a few instances of \"Subject\"."
- - tweak: "Quirks no longer apply to off-station roundstart antagonists."
- - code_imp: "Mood quirks are now only processed by the quirk holders"
diff --git a/html/changelogs/AutoChangeLog-pr-10180.yml b/html/changelogs/AutoChangeLog-pr-10180.yml
deleted file mode 100644
index 0a22910940..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10180.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-author: "Ghommie"
-delete-after: True
-changes:
- - bugfix: "Fixes a ghostchat eavesdropping exploit concerning VR."
- - bugfix: "Fixes VR deaths being broadcasted in deadchat."
diff --git a/html/changelogs/AutoChangeLog-pr-10181.yml b/html/changelogs/AutoChangeLog-pr-10181.yml
deleted file mode 100644
index bb00ab1012..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10181.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Ghommie"
-delete-after: True
-changes:
- - bugfix: "Fixed a few pill bottle issues with the ChemMaster."
diff --git a/html/changelogs/AutoChangeLog-pr-10190.yml b/html/changelogs/AutoChangeLog-pr-10190.yml
deleted file mode 100644
index d05ad85db3..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10190.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-author: "Trilbyspaceclone"
-delete-after: True
-changes:
- - rscadd: "New softdrink that comes in its own vender!"
- - rscadd: "Honey now has a reaction with plants"
diff --git a/html/changelogs/AutoChangeLog-pr-10193.yml b/html/changelogs/AutoChangeLog-pr-10193.yml
deleted file mode 100644
index b432eb74a3..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10193.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Commandersand"
-delete-after: True
-changes:
- - tweak: "added two words to clown filter"
diff --git a/html/changelogs/AutoChangeLog-pr-10195.yml b/html/changelogs/AutoChangeLog-pr-10195.yml
deleted file mode 100644
index be8ed0ce76..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10195.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-author: "Ghommie"
-delete-after: True
-changes:
- - bugfix: "Fixes a few negative quirks not being properly removed when deleted."
- - tweak: "Phobia and mute quirks are no longer cheesed by brain surgery grade healing or medicines."
diff --git a/html/changelogs/AutoChangeLog-pr-10197.yml b/html/changelogs/AutoChangeLog-pr-10197.yml
deleted file mode 100644
index 05545c066c..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10197.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Ghommie"
-delete-after: True
-changes:
- - bugfix: "Fixed double-flavour (and bland custom) ice creams."
diff --git a/html/changelogs/AutoChangeLog-pr-10198.yml b/html/changelogs/AutoChangeLog-pr-10198.yml
deleted file mode 100644
index 3414258d84..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10198.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "AnturK"
-delete-after: True
-changes:
- - bugfix: "Fixed ranged syndicate mobs stormtrooper training."
diff --git a/html/changelogs/AutoChangeLog-pr-10200.yml b/html/changelogs/AutoChangeLog-pr-10200.yml
deleted file mode 100644
index 8d4782ee98..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10200.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "kevinz000"
-delete-after: True
-changes:
- - rscadd: "added 8 character save slots"
diff --git a/html/changelogs/AutoChangeLog-pr-10203.yml b/html/changelogs/AutoChangeLog-pr-10203.yml
deleted file mode 100644
index 7cb4df817b..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10203.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-author: "DeltaFire15"
-delete-after: True
-changes:
- - tweak: "changed mecha internals access for some special mechs."
- - tweak: "no more mech maintenance access for engineers."
diff --git a/html/changelogs/AutoChangeLog-pr-10204.yml b/html/changelogs/AutoChangeLog-pr-10204.yml
deleted file mode 100644
index ad5a872bc0..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10204.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-author: "r4d6"
-delete-after: True
-changes:
- - rscadd: "Added Handshakes"
- - rscadd: "Added Nose booping"
diff --git a/html/changelogs/AutoChangeLog-pr-10207.yml b/html/changelogs/AutoChangeLog-pr-10207.yml
deleted file mode 100644
index c451475dfa..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10207.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Ghommie"
-delete-after: True
-changes:
- - bugfix: "Fixed Pubbystation's wall Nanomeds being inconsistent with other stations'."
diff --git a/html/changelogs/AutoChangeLog-pr-10210.yml b/html/changelogs/AutoChangeLog-pr-10210.yml
deleted file mode 100644
index 39167dee25..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10210.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "kevinz000"
-delete-after: True
-changes:
- - rscadd: "Cargo shuttle now silently ignores slaughter demons/revenants instead of being blocked even while they are jaunted. A drawback is that manifested ones can't block it either, any more."
diff --git a/html/changelogs/AutoChangeLog-pr-10214.yml b/html/changelogs/AutoChangeLog-pr-10214.yml
deleted file mode 100644
index fe5df9f22c..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10214.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Ghommie"
-delete-after: True
-changes:
- - bugfix: "dextrous simplemobs can now swap action intent with 1, 2, 3, 4 now. Just like humies, ayys and monkys."
diff --git a/html/changelogs/AutoChangeLog-pr-10216.yml b/html/changelogs/AutoChangeLog-pr-10216.yml
deleted file mode 100644
index 69daa62448..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10216.yml
+++ /dev/null
@@ -1,8 +0,0 @@
-author: "Nervere and subject217, Militaires, py01, nemvar"
-delete-after: True
-changes:
- - balance: "The cook's CQC now only works when in the kitchen or the kitchen backroom."
- - spellcheck: "corrected CQC help instructions"
- - bugfix: "CQC and Sleeping Carp are properly logged."
- - tweak: "CQC can passively grab targets when not on grab intent. Passive grabs do not count towards combos for CQC or Sleeping carp."
- - code_imp: "Martial Art and NOGUN cleanup."
diff --git a/html/changelogs/AutoChangeLog-pr-10217.yml b/html/changelogs/AutoChangeLog-pr-10217.yml
deleted file mode 100644
index 19ddaf33ce..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10217.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Putnam"
-delete-after: True
-changes:
- - balance: "Contamination is no longer an infinitely spreading deadly contagion causing mass panic"
diff --git a/html/changelogs/AutoChangeLog-pr-10218.yml b/html/changelogs/AutoChangeLog-pr-10218.yml
deleted file mode 100644
index fb05465cbe..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10218.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "GrayRachnid"
-delete-after: True
-changes:
- - bugfix: "fixes consistency"
diff --git a/html/changelogs/AutoChangeLog-pr-10225.yml b/html/changelogs/AutoChangeLog-pr-10225.yml
deleted file mode 100644
index 964cc68223..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10225.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-author: "BlueWildrose"
-delete-after: True
-changes:
- - bugfix: "Fixed stargazers being unable to link to themselves if mindshielded or if holding psionic shielding devices (tinfoil hats) when the species is set."
- - bugfix: "Fixes non-roundstart slimes being unable to wag their tail."
diff --git a/html/changelogs/AutoChangeLog-pr-10227.yml b/html/changelogs/AutoChangeLog-pr-10227.yml
deleted file mode 100644
index 5d9446d045..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10227.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Putnam3145"
-delete-after: True
-changes:
- - bugfix: "whoops broke quirks"
diff --git a/html/changelogs/AutoChangeLog-pr-10228.yml b/html/changelogs/AutoChangeLog-pr-10228.yml
deleted file mode 100644
index ccc386bbcb..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10228.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Putnam3145"
-delete-after: True
-changes:
- - bugfix: "quirks work"
diff --git a/html/changelogs/AutoChangeLog-pr-10232.yml b/html/changelogs/AutoChangeLog-pr-10232.yml
deleted file mode 100644
index 479012a868..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10232.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "DeltaFire15"
-delete-after: True
-changes:
- - tweak: "All heads of staff can now message CC"
diff --git a/html/changelogs/AutoChangeLog-pr-10235.yml b/html/changelogs/AutoChangeLog-pr-10235.yml
deleted file mode 100644
index ca8e4da164..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10235.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "kevinz000"
-delete-after: True
-changes:
- - balance: "flashbangs process light/sound separately and uses viewers(), so xray users beware."
diff --git a/html/changelogs/AutoChangeLog-pr-10237.yml b/html/changelogs/AutoChangeLog-pr-10237.yml
deleted file mode 100644
index 0a3b481d8c..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10237.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Ghommie"
-delete-after: True
-changes:
- - bugfix: "Stops humanoids whose skin_tone variable is set to \"albino\" from showing up as pale when examined should their species not use skintones anyway."
diff --git a/html/changelogs/AutoChangeLog-pr-10242.yml b/html/changelogs/AutoChangeLog-pr-10242.yml
deleted file mode 100644
index 017c3f99bd..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10242.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "nemvar"
-delete-after: True
-changes:
- - code_imp: "Refactored the visibility of reagents for mobs."
diff --git a/html/changelogs/AutoChangeLog-pr-10245.yml b/html/changelogs/AutoChangeLog-pr-10245.yml
deleted file mode 100644
index a618bfc76b..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10245.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-author: "r4d6"
-delete-after: True
-changes:
- - rscadd: "Added submaps for the SM, Tesla and Singulo"
- - rscadd: "Added a placeholder on Boxstation for the Engines"
diff --git a/html/changelogs/AutoChangeLog-pr-10246.yml b/html/changelogs/AutoChangeLog-pr-10246.yml
deleted file mode 100644
index 73b2b24ee8..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10246.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "kevinz000"
-delete-after: True
-changes:
- - tweak: "Stat() slowed down for anti-lag measures."
diff --git a/html/changelogs/AutoChangeLog-pr-10250.yml b/html/changelogs/AutoChangeLog-pr-10250.yml
deleted file mode 100644
index 8e32083f09..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10250.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Toriate"
-delete-after: True
-changes:
- - rscadd: "Polychromic shorts now have a digitigrade state"
diff --git a/html/changelogs/AutoChangeLog-pr-10254.yml b/html/changelogs/AutoChangeLog-pr-10254.yml
deleted file mode 100644
index 59fefc5703..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10254.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "r4d6"
-delete-after: True
-changes:
- - bugfix: "fixed Nose boops not triggering"
diff --git a/html/changelogs/AutoChangeLog-pr-10257.yml b/html/changelogs/AutoChangeLog-pr-10257.yml
deleted file mode 100644
index d18807c1eb..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10257.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "DeltaFire15"
-delete-after: True
-changes:
- - code_imp: "Removes a magicnumber"
diff --git a/html/changelogs/AutoChangeLog-pr-10263.yml b/html/changelogs/AutoChangeLog-pr-10263.yml
deleted file mode 100644
index a8fa2b9e26..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10263.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Trilbyspaceclone"
-delete-after: True
-changes:
- - tweak: "Buzz fuzz now only has a 5% to give honey and will now give 1u of sugar not 2"
diff --git a/html/changelogs/AutoChangeLog-pr-10264.yml b/html/changelogs/AutoChangeLog-pr-10264.yml
deleted file mode 100644
index 71497e423b..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10264.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-author: "Seris02"
-delete-after: True
-changes:
- - rscadd: "added the runed and brass winter coats (cosmetic ratvarian/narsian)"
- - tweak: "how the narsian/ratvarian coats can be made"
diff --git a/html/changelogs/AutoChangeLog-pr-10265.yml b/html/changelogs/AutoChangeLog-pr-10265.yml
deleted file mode 100644
index f42e97388d..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10265.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Trilbyspaceclone"
-delete-after: True
-changes:
- - rscadd: "Blaster shotguns back into armory"
diff --git a/html/changelogs/AutoChangeLog-pr-10266.yml b/html/changelogs/AutoChangeLog-pr-10266.yml
deleted file mode 100644
index 7fc7f11682..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10266.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-author: "shellspeed1"
-delete-after: True
-changes:
- - rscadd: "Adds Insect markings"
- - rscadd: "Adds three new moth wings."
diff --git a/html/changelogs/AutoChangeLog-pr-10268.yml b/html/changelogs/AutoChangeLog-pr-10268.yml
deleted file mode 100644
index f4f4991202..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10268.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Ghommie"
-delete-after: True
-changes:
- - rscdel: "Removed the old (almost) unused roboticist encryption key and headset."
diff --git a/html/changelogs/AutoChangeLog-pr-10269.yml b/html/changelogs/AutoChangeLog-pr-10269.yml
deleted file mode 100644
index f38bb346e3..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10269.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Ghommie"
-delete-after: True
-changes:
- - bugfix: "Fixed goose meat."
diff --git a/html/changelogs/AutoChangeLog-pr-10274.yml b/html/changelogs/AutoChangeLog-pr-10274.yml
deleted file mode 100644
index a1b448344f..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10274.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "kappa-sama"
-delete-after: True
-changes:
- - bugfix: "broodmother baby lag"
diff --git a/html/changelogs/AutoChangeLog-pr-10281.yml b/html/changelogs/AutoChangeLog-pr-10281.yml
deleted file mode 100644
index 0d6c353703..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10281.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-author: "Hatterhat"
-delete-after: True
-changes:
- - rscadd: ".357 speedloaders can now be printed with the Advanced Illegal Ballistics node on the tech tree!"
- - balance: "okay so i may have given the .357 an extra speedloader at the same cost but it comes in a box now"
diff --git a/html/changelogs/AutoChangeLog-pr-10282.yml b/html/changelogs/AutoChangeLog-pr-10282.yml
deleted file mode 100644
index bf4f74c84a..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10282.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Putnam3145"
-delete-after: True
-changes:
- - config: "Buncha dynamic config tweaks"
diff --git a/html/changelogs/AutoChangeLog-pr-10283.yml b/html/changelogs/AutoChangeLog-pr-10283.yml
deleted file mode 100644
index 435a0c7ca9..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10283.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Detective-Google"
-delete-after: True
-changes:
- - bugfix: "short hair 80's is no longer jank"
diff --git a/html/changelogs/AutoChangeLog-pr-10289.yml b/html/changelogs/AutoChangeLog-pr-10289.yml
deleted file mode 100644
index 4907620fdc..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10289.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Ghommie"
-delete-after: True
-changes:
- - bugfix: "Fixed a little door assembly glass dupe exploit"
diff --git a/html/changelogs/AutoChangeLog-pr-10296.yml b/html/changelogs/AutoChangeLog-pr-10296.yml
deleted file mode 100644
index 22aa8cca14..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10296.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-author: "Useroth"
-delete-after: True
-changes:
- - rscadd: "Ghost cafe spawner. For letting people spawn as their own character in the ninja holding facility. It bypasses the usual check, so people who have suicided/ghosted/cryod may use it."
- - rscadd: "Dorms in the ninja holding facility."
diff --git a/html/changelogs/AutoChangeLog-pr-10297.yml b/html/changelogs/AutoChangeLog-pr-10297.yml
deleted file mode 100644
index 6eccde6be7..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10297.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Narcissisko (ported by Hatterhat)"
-delete-after: True
-changes:
- - rscadd: "Luxury Bar Capsule, at 10,000 points. Comes with no medical supplies, a bar, and a bunch of cigars. Ported from tgstation/tgstation#45547."
diff --git a/html/changelogs/AutoChangeLog-pr-10298.yml b/html/changelogs/AutoChangeLog-pr-10298.yml
deleted file mode 100644
index 981e1f5314..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10298.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "kappa-sama"
-delete-after: True
-changes:
- - balance: "you can no longer get 100k credits by spending 4k roundstart"
diff --git a/html/changelogs/AutoChangeLog-pr-10299.yml b/html/changelogs/AutoChangeLog-pr-10299.yml
deleted file mode 100644
index ee3f0bf96b..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10299.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "kappa-sama"
-delete-after: True
-changes:
- - balance: "cooking oil in sunflowers instead of corn oil"
diff --git a/html/changelogs/AutoChangeLog-pr-10301.yml b/html/changelogs/AutoChangeLog-pr-10301.yml
new file mode 100644
index 0000000000..2acac559e9
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-10301.yml
@@ -0,0 +1,4 @@
+author: "Trilbyspaceclone"
+delete-after: True
+changes:
+ - tweak: "range on Engi Tray scanners and Rad-Scanners"
diff --git a/html/changelogs/AutoChangeLog-pr-10011.yml b/html/changelogs/AutoChangeLog-pr-10306.yml
similarity index 52%
rename from html/changelogs/AutoChangeLog-pr-10011.yml
rename to html/changelogs/AutoChangeLog-pr-10306.yml
index 70d569699f..9ab82dbda0 100644
--- a/html/changelogs/AutoChangeLog-pr-10011.yml
+++ b/html/changelogs/AutoChangeLog-pr-10306.yml
@@ -1,4 +1,4 @@
author: "Arturlang"
delete-after: True
changes:
- - rscadd: "Adds Bloodsuckers, beware."
+ - tweak: "Vampires are no longer as tanky"
diff --git a/html/changelogs/AutoChangeLog-pr-10315.yml b/html/changelogs/AutoChangeLog-pr-10315.yml
deleted file mode 100644
index 8db0d90e90..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10315.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Trilbyspaceclone"
-delete-after: True
-changes:
- - rscdel: "Removed Lighters in thunderdomes"
diff --git a/html/changelogs/AutoChangeLog-pr-10318.yml b/html/changelogs/AutoChangeLog-pr-10318.yml
deleted file mode 100644
index 8dc58b9922..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10318.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Trilbyspaceclone"
-delete-after: True
-changes:
- - rscadd: "Silicons now know what a slime is saying!"
diff --git a/html/changelogs/AutoChangeLog-pr-10322.yml b/html/changelogs/AutoChangeLog-pr-10322.yml
deleted file mode 100644
index c03fd96a5e..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10322.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "kevinz000"
-delete-after: True
-changes:
- - bugfix: "sprint/stamina huds now work again"
diff --git a/html/changelogs/AutoChangeLog-pr-10323.yml b/html/changelogs/AutoChangeLog-pr-10323.yml
deleted file mode 100644
index 50385665d6..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10323.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Seris02"
-delete-after: True
-changes:
- - bugfix: "pandoras attacking their owners"
diff --git a/html/changelogs/AutoChangeLog-pr-10324.yml b/html/changelogs/AutoChangeLog-pr-10324.yml
deleted file mode 100644
index f012bc272b..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10324.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Trilbyspaceclone"
-delete-after: True
-changes:
- - balance: "honey now will not kill slimes. Honey slimepeople can be a thing now, go sci."
diff --git a/html/changelogs/AutoChangeLog-pr-10328.yml b/html/changelogs/AutoChangeLog-pr-10328.yml
deleted file mode 100644
index 740a07ddce..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10328.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Putnam3145"
-delete-after: True
-changes:
- - bugfix: "Ghost cafe spawns are actual ghost roles by the game's reckoning now"
diff --git a/html/changelogs/AutoChangeLog-pr-10101.yml b/html/changelogs/AutoChangeLog-pr-10333.yml
similarity index 50%
rename from html/changelogs/AutoChangeLog-pr-10101.yml
rename to html/changelogs/AutoChangeLog-pr-10333.yml
index 059c8b2d85..b5c11a4646 100644
--- a/html/changelogs/AutoChangeLog-pr-10101.yml
+++ b/html/changelogs/AutoChangeLog-pr-10333.yml
@@ -1,4 +1,4 @@
author: "Trilbyspaceclone"
delete-after: True
changes:
- - admin: "Updates the changlogs"
+ - rscadd: "Grass now makes light beer when distilled"
diff --git a/html/changelogs/AutoChangeLog-pr-10337.yml b/html/changelogs/AutoChangeLog-pr-10337.yml
new file mode 100644
index 0000000000..370a8fdc04
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-10337.yml
@@ -0,0 +1,5 @@
+author: "Seris02"
+delete-after: True
+changes:
+ - rscadd: "Auto ooc"
+ - admin: "changed \"assume direct control\" from m.ckey = src.ckey to adminmob.transfer_ckey(M) so it works with auto ooc"
diff --git a/html/changelogs/AutoChangeLog-pr-10231.yml b/html/changelogs/AutoChangeLog-pr-10339.yml
similarity index 58%
rename from html/changelogs/AutoChangeLog-pr-10231.yml
rename to html/changelogs/AutoChangeLog-pr-10339.yml
index 7caf65b09f..c313c4bf80 100644
--- a/html/changelogs/AutoChangeLog-pr-10231.yml
+++ b/html/changelogs/AutoChangeLog-pr-10339.yml
@@ -1,4 +1,4 @@
author: "Seris02"
delete-after: True
changes:
- - bugfix: "the sprites"
+ - rscadd: "telescopic IV drip"
diff --git a/html/changelogs/AutoChangeLog-pr-10357.yml b/html/changelogs/AutoChangeLog-pr-10357.yml
new file mode 100644
index 0000000000..048baa3041
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-10357.yml
@@ -0,0 +1,4 @@
+author: "Putnam3145"
+delete-after: True
+changes:
+ - bugfix: "You can toggle some prefs properly now."
diff --git a/html/changelogs/AutoChangeLog-pr-9538.yml b/html/changelogs/AutoChangeLog-pr-9538.yml
deleted file mode 100644
index a036a8d24a..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9538.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-author: "kevinz000"
-delete-after: True
-changes:
- - balance: "Combat defibs now instant stun on disarm rather than 1 second again"
- - balance: "Defibs are now always emagged when emagged with an emag rather than EMP."
diff --git a/html/changelogs/AutoChangeLog-pr-9563.yml b/html/changelogs/AutoChangeLog-pr-9563.yml
deleted file mode 100644
index 47fab1530d..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9563.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Fermis"
-delete-after: True
-changes:
- - tweak: "tweaked how super bases/acids work but limiting them"
diff --git a/html/changelogs/AutoChangeLog-pr-9596.yml b/html/changelogs/AutoChangeLog-pr-9596.yml
deleted file mode 100644
index 3f924b85ab..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9596.yml
+++ /dev/null
@@ -1,11 +0,0 @@
-author: "Linzolle"
-delete-after: True
-changes:
- - rscadd: "Abductor chem dispenser, and added it to the abductor console."
- - rscadd: "\"Superlingual matrix\" to the abductor console. It's the abductor's tongue. Can be used to link it to your abductor communication channel and then implanted into a test subject."
- - rscadd: "Shrink ray and added it to the abductor console."
- - soundadd: "Shrink ray sound effect (its the fucking mega man death sound)"
- - rscadd: "special jumpsuit for abductors"
- - imageadd: "abductor jumpsuit, including digi version if a digitigrade person somehow manages to get their hands on it. sprites for the shrink ray and chem dispenser."
- - rscadd: "new glands to play with, including the all-access gland, the quantum gland, and the blood type randomiser."
- - code_imp: "split every gland into its own file instead of all being in one file"
diff --git a/html/changelogs/AutoChangeLog-pr-9629.yml b/html/changelogs/AutoChangeLog-pr-9629.yml
deleted file mode 100644
index f0419e4ce9..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9629.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "kevinz000"
-delete-after: True
-changes:
- - bugfix: "aooc toggling now only broadcasts to antagonists"
diff --git a/html/changelogs/AutoChangeLog-pr-9736.yml b/html/changelogs/AutoChangeLog-pr-9736.yml
deleted file mode 100644
index 768474b8ef..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9736.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "kevinz000"
-delete-after: True
-changes:
- - code_imp: "Antag rep proc is now easier to read and supports returning a list."
diff --git a/html/changelogs/AutoChangeLog-pr-9747.yml b/html/changelogs/AutoChangeLog-pr-9747.yml
deleted file mode 100644
index 01caf36136..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9747.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Ghommie"
-delete-after: True
-changes:
- - bugfix: "Fixed AI holopad speech text being small and whispers that in multiple exclamation marks echo through multiple areas."
diff --git a/html/changelogs/AutoChangeLog-pr-9751.yml b/html/changelogs/AutoChangeLog-pr-9751.yml
deleted file mode 100644
index a2c22468c3..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9751.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-author: "Seris02"
-delete-after: True
-changes:
- - rscadd: "Added Rising Bass and the shifting scroll."
- - tweak: "Changes the martial arts scroll in the uplink to \"Sleeping Carp Scroll\""
diff --git a/html/changelogs/AutoChangeLog-pr-9830.yml b/html/changelogs/AutoChangeLog-pr-9830.yml
deleted file mode 100644
index 86fb9c439a..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9830.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "DeltaFire15"
-delete-after: True
-changes:
- - balance: "Rebalanced cult vs cult stun effects to debuff instead of stun"
diff --git a/html/changelogs/AutoChangeLog-pr-9894.yml b/html/changelogs/AutoChangeLog-pr-9894.yml
deleted file mode 100644
index 6e4b5c09d0..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9894.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-author: "Putnam3145"
-delete-after: True
-changes:
- - balance: "Bomb armor now acts like other armor types."
- - balance: "Devastation-level explosions on armorless people no longer destroys everything in their bags."
diff --git a/html/changelogs/AutoChangeLog-pr-9903.yml b/html/changelogs/AutoChangeLog-pr-9903.yml
deleted file mode 100644
index 0c21b30fd6..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9903.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "PersianXerxes"
-delete-after: True
-changes:
- - rscdel: "Removed night vision quirk"
diff --git a/html/changelogs/AutoChangeLog-pr-9925.yml b/html/changelogs/AutoChangeLog-pr-9925.yml
deleted file mode 100644
index 6e2f44fc7b..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9925.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Linzolle"
-delete-after: True
-changes:
- - tweak: "cosmic coat crafting recipe changed to coat + cosmic bedsheet"
diff --git a/html/changelogs/AutoChangeLog-pr-9940.yml b/html/changelogs/AutoChangeLog-pr-9940.yml
deleted file mode 100644
index 75563c69b4..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9940.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Putnam"
-delete-after: True
-changes:
- - tweak: "Dynamic rulesets have lower weight if a round recently featured them (except traitor)."
diff --git a/html/changelogs/AutoChangeLog-pr-9950.yml b/html/changelogs/AutoChangeLog-pr-9950.yml
deleted file mode 100644
index 6d328aa131..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9950.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "kevinz000"
-delete-after: True
-changes:
- - balance: "Clockwork marauders are now on a configured summon cooldown if being summoned on station. They also rapidly bleed health while in or next to space. And they glow brighter."
diff --git a/html/changelogs/AutoChangeLog-pr-9970.yml b/html/changelogs/AutoChangeLog-pr-9970.yml
deleted file mode 100644
index ebeaa326e7..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9970.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Ghommie"
-delete-after: True
-changes:
- - rscdel: "Removed literally atrocious polka dotted accessories. They were even more atrocious than the yellow horrible tie."
diff --git a/html/changelogs/AutoChangeLog-pr-9971.yml b/html/changelogs/AutoChangeLog-pr-9971.yml
deleted file mode 100644
index 951b9dfc81..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9971.yml
+++ /dev/null
@@ -1,8 +0,0 @@
-author: "Xantholne"
-delete-after: True
-changes:
- - rscadd: "Santa Hats to Loadout and Clothesmate"
- - rscadd: "Christmas Wintercoats to Loadout and Clothesmate"
- - rscadd: "Christmas male and female uniforms to loadout and Clothesmate"
- - rscadd: "Red, Green, and Traditional Santa boots to loadout and Clothesmate"
- - rscadd: "Christmas Socks, Red candycane socks, Green candycane socks to sock selection"
diff --git a/html/changelogs/AutoChangeLog-pr-9983.yml b/html/changelogs/AutoChangeLog-pr-9983.yml
deleted file mode 100644
index b8cd4f0f5b..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9983.yml
+++ /dev/null
@@ -1,6 +0,0 @@
-author: "Ghommie, Skogol"
-delete-after: True
-changes:
- - refactor: "refactored altclick interaction to allow alt-click interactable objects to parent call without forcing the turf contents stat menu open."
- - tweak: "Alt clicking will no longer show turf contents for items inside bags etc."
- - tweak: "Alt clicking the source of your turf contents stat menu will now close said menu."
diff --git a/icons/mob/uniform.dmi b/icons/mob/uniform.dmi
index c5981b06a3..fb2f4ab0d6 100644
Binary files a/icons/mob/uniform.dmi and b/icons/mob/uniform.dmi differ
diff --git a/icons/mob/uniform_digi.dmi b/icons/mob/uniform_digi.dmi
index b4f3e6130b..e568d70310 100644
Binary files a/icons/mob/uniform_digi.dmi and b/icons/mob/uniform_digi.dmi differ
diff --git a/icons/obj/clothing/uniforms.dmi b/icons/obj/clothing/uniforms.dmi
index 60753839d2..2dcd8b9a06 100644
Binary files a/icons/obj/clothing/uniforms.dmi and b/icons/obj/clothing/uniforms.dmi differ
diff --git a/icons/obj/iv_drip.dmi b/icons/obj/iv_drip.dmi
index f530688da7..ddd22dea89 100644
Binary files a/icons/obj/iv_drip.dmi and b/icons/obj/iv_drip.dmi differ
diff --git a/modular_citadel/code/datums/status_effects/chems.dm b/modular_citadel/code/datums/status_effects/chems.dm
index 5d9010a7bd..8adc7c0745 100644
--- a/modular_citadel/code/datums/status_effects/chems.dm
+++ b/modular_citadel/code/datums/status_effects/chems.dm
@@ -209,12 +209,12 @@
//Preamble
-/mob/living/verb/toggle_lewd()
+/mob/living/verb/toggle_hypno()
set category = "IC"
- set name = "Toggle Lewdchem"
- set desc = "Allows you to toggle if you'd like lewd flavour messages."
- client.prefs.lewdchem = !(client.prefs.lewdchem)
- to_chat(usr, "You [(client.prefs.lewdchem?"will":"no longer")] receive lewdchem messages.")
+ set name = "Toggle Lewd MKUltra"
+ set desc = "Allows you to toggle if you'd like lewd flavour messages for MKUltra."
+ client.prefs.cit_toggles ^= HYPNO
+ to_chat(usr, "You [((client.prefs.cit_toggles & HYPNO) ?"will":"no longer")] receive lewd flavour messages for MKUltra.")
/datum/status_effect/chem/enthrall
id = "enthrall"
@@ -252,6 +252,8 @@
var/customEcho //Custom looping text in owner
var/customSpan //Custom spans for looping text
+ var/lewd = FALSE // Set on on_apply. Will only be true if both individuals involved have opted in.
+
/datum/status_effect/chem/enthrall/on_apply()
var/mob/living/carbon/M = owner
var/datum/reagent/fermi/enthrall/E = locate(/datum/reagent/fermi/enthrall) in M.reagents.reagent_list
@@ -269,10 +271,11 @@
var/mob/living/carbon/human/H = owner
if(H)//Prefs
if(!H.canbearoused)
- H.client?.prefs.lewdchem = FALSE
- var/message = "[(owner.client?.prefs.lewdchem?"I am a good pet for [enthrallGender].":"[master] is a really inspirational person!")]"
+ H.client?.prefs.cit_toggles &= ~HYPNO
+ lewd = (owner.client?.prefs.cit_toggles & HYPNO) && (master.client?.prefs.cit_toggles & HYPNO)
+ var/message = "[(lewd ? "I am a good pet for [enthrallGender]." : "[master] is a really inspirational person!")]"
SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "enthrall", /datum/mood_event/enthrall, message)
- to_chat(owner, "You feel inexplicably drawn towards [master], their words having a demonstrable effect on you. It seems the closer you are to them, the stronger the effect is. However you aren't fully swayed yet and can resist their effects by repeatedly resisting as much as you can!")
+ to_chat(owner, "You feel inexplicably drawn towards [master], their words having a demonstrable effect on you. It seems the closer you are to them, the stronger the effect is. However you aren't fully swayed yet and can resist their effects by repeatedly resisting as much as you can!")
log_game("FERMICHEM: MKULTRA: Status applied on [owner] ckey: [owner.key] with a master of [master] ckey: [enthrallID].")
SSblackbox.record_feedback("tally", "fermi_chem", 1, "Enthrall attempts")
return ..()
@@ -318,7 +321,7 @@
resistanceTally /= 2
enthrallTally = 0
SSblackbox.record_feedback("tally", "fermi_chem", 1, "Enthralled to state 2")
- if(owner.client?.prefs.lewdchem)
+ if(lewd)
to_chat(owner, "Your conciousness slips, as you sink deeper into trance and servitude.")
else
to_chat(owner, "Your conciousness slips, as you feel more drawn to following [master].")
@@ -327,11 +330,11 @@
phase = -1
to_chat(owner, "You break free of the influence in your mind, your thoughts suddenly turning lucid!")
if(DistApart < 10)
- to_chat(master, "[(master.client?.prefs.lewdchem?"Your pet":"Your thrall")] seems to have broken free of your enthrallment!")
+ to_chat(master, "[(lewd?"Your pet":"Your thrall")] seems to have broken free of your enthrallment!")
SSblackbox.record_feedback("tally", "fermi_chem", 1, "Thralls broken free")
owner.remove_status_effect(src) //If resisted in phase 1, effect is removed.
if(prob(10))
- if(owner.client?.prefs.lewdchem)
+ if(lewd)
to_chat(owner, "[pick("It feels so good to listen to [master].", "You can't keep your eyes off [master].", "[master]'s voice is making you feel so sleepy.", "You feel so comfortable with [master]", "[master] is so dominant, it feels right to obey them.")].")
if (2) //partially enthralled
if(enthrallTally > 200)
@@ -339,12 +342,12 @@
mental_capacity -= resistanceTally//leftover resistance per step is taken away from mental_capacity.
enthrallTally = 0
resistanceTally /= 2
- if(owner.client?.prefs.lewdchem)
+ if(lewd)
to_chat(owner, "Your mind gives, eagerly obeying and serving [master].")
to_chat(owner, "You are now fully enthralled to [master], and eager to follow their commands. However you find that in your intoxicated state you are unable to resort to violence. Equally you are unable to commit suicide, even if ordered to, as you cannot serve your [enthrallGender] in death. ")//If people start using this as an excuse to be violent I'll just make them all pacifists so it's not OP.
else
to_chat(owner, "You are unable to put up a resistance any longer, and now are under the influence of [master]. However you find that in your intoxicated state you are unable to resort to violence. Equally you are unable to commit suicide, even if ordered to, as you cannot follow [master] in death. ")
- to_chat(master, "Your [(master.client?.prefs.lewdchem?"pet":"follower")] [owner] appears to have fully fallen under your sway.")
+ to_chat(master, "Your [(lewd?"pet":"follower")] [owner] appears to have fully fallen under your sway.")
log_game("FERMICHEM: MKULTRA: Status on [owner] ckey: [owner.key] has been fully entrhalled (state 3) with a master of [master] ckey: [enthrallID].")
SSblackbox.record_feedback("tally", "fermi_chem", 1, "thralls fully enthralled.")
else if (resistanceTally > 200)
@@ -353,20 +356,18 @@
resistanceTally = 0
resistGrowth = 0
to_chat(owner, "You manage to shake some of the effects from your addled mind, however you can still feel yourself drawn towards [master].")
- if(prob(10))
- if(owner.client?.prefs.lewdchem)
- to_chat(owner, "[pick("It feels so good to listen to [enthrallGender].", "You can't keep your eyes off [enthrallGender].", "[enthrallGender]'s voice is making you feel so sleepy.", "You feel so comfortable with [enthrallGender]", "[enthrallGender] is so dominant, it feels right to obey them.")].")
+ if(lewd && prob(10))
+ to_chat(owner, "[pick("It feels so good to listen to [enthrallGender].", "You can't keep your eyes off [enthrallGender].", "[enthrallGender]'s voice is making you feel so sleepy.", "You feel so comfortable with [enthrallGender]", "[enthrallGender] is so dominant, it feels right to obey them.")].")
if (3)//fully entranced
if ((resistanceTally >= 200 && withdrawalTick >= 150) || (HAS_TRAIT(M, TRAIT_MINDSHIELD) && (resistanceTally >= 100)))
enthrallTally = 0
phase -= 1
resistanceTally = 0
resistGrowth = 0
- to_chat(owner, "The separation from [(owner.client?.prefs.lewdchem?"your [enthrallGender]":"[master]")] sparks a small flame of resistance in yourself, as your mind slowly starts to return to normal.")
+ to_chat(owner, "The separation from [(lewd?"your [enthrallGender]":"[master]")] sparks a small flame of resistance in yourself, as your mind slowly starts to return to normal.")
REMOVE_TRAIT(owner, TRAIT_PACIFISM, "MKUltra")
- if(prob(1))
- if(owner.client?.prefs.lewdchem && !customEcho)
- to_chat(owner, "[pick("I belong to [enthrallGender].", "[enthrallGender] knows whats best for me.", "Obedence is pleasure.", "I exist to serve [enthrallGender].", "[enthrallGender] is so dominant, it feels right to obey them.")].")
+ if(lewd && prob(1) && !customEcho)
+ to_chat(owner, "[pick("I belong to [enthrallGender].", "[enthrallGender] knows whats best for me.", "Obedence is pleasure.", "I exist to serve [enthrallGender].", "[enthrallGender] is so dominant, it feels right to obey them.")].")
if (4) //mindbroken
if (mental_capacity >= 499 && (owner.getOrganLoss(ORGAN_SLOT_BRAIN) <=0 || HAS_TRAIT(M, TRAIT_MINDSHIELD)) && !owner.reagents.has_reagent("MKUltra"))
phase = 2
@@ -382,7 +383,7 @@
cooldownMsg = FALSE
else if (cooldownMsg == FALSE)
if(DistApart < 10)
- if(master.client?.prefs.lewdchem)
+ if(lewd)
to_chat(master, "Your pet [owner] appears to have finished internalising your last command.")
cooldownMsg = TRUE
else
@@ -390,7 +391,7 @@
cooldownMsg = TRUE
if(get_dist(master, owner) > 10)
if(prob(10))
- to_chat(owner, "You feel [(owner.client?.prefs.lewdchem?"a deep NEED to return to your [enthrallGender]":"like you have to return to [master]")].")
+ to_chat(owner, "You feel [(lewd ?"a deep NEED to return to your [enthrallGender]":"like you have to return to [master]")].")
M.throw_at(get_step_towards(master,owner), 5, 1)
return//If you break the mind of someone, you can't use status effects on them.
@@ -423,29 +424,29 @@
if (withdrawal == TRUE)//Your minions are really REALLY needy.
switch(withdrawalTick)//denial
if(5)//To reduce spam
- to_chat(owner, "You are unable to complete [(owner.client?.prefs.lewdchem?"your [enthrallGender]":"[master]")]'s orders without their presence, and any commands and objectives given to you prior are not in effect until you are back with them.")
+ to_chat(owner, "You are unable to complete [(lewd?"your [enthrallGender]":"[master]")]'s orders without their presence, and any commands and objectives given to you prior are not in effect until you are back with them.")
ADD_TRAIT(owner, TRAIT_PACIFISM, "MKUltra") //IMPORTANT
if(10 to 35)//Gives wiggle room, so you're not SUPER needy
if(prob(5))
- to_chat(owner, "You're starting to miss [(owner.client?.prefs.lewdchem?"your [enthrallGender]":"[master]")].")
+ to_chat(owner, "You're starting to miss [(lewd?"your [enthrallGender]":"[master]")].")
if(prob(5))
owner.adjustOrganLoss(ORGAN_SLOT_BRAIN, 0.1)
- to_chat(owner, "[(owner.client?.prefs.lewdchem?"[enthrallGender]":"[master]")] will surely be back soon") //denial
+ to_chat(owner, "[(lewd?"[enthrallGender]":"[master]")] will surely be back soon") //denial
if(36)
- var/message = "[(owner.client?.prefs.lewdchem?"I feel empty when [enthrallGender]'s not around..":"I miss [master]'s presence")]"
+ var/message = "[(lewd?"I feel empty when [enthrallGender]'s not around..":"I miss [master]'s presence")]"
SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "EnthMissing1", /datum/mood_event/enthrallmissing1, message)
if(37 to 65)//barganing
if(prob(10))
to_chat(owner, "They are coming back, right...?")
owner.adjustOrganLoss(ORGAN_SLOT_BRAIN, 0.5)
if(prob(10))
- if(owner.client?.prefs.lewdchem)
+ if(lewd)
to_chat(owner, "I just need to be a good pet for [enthrallGender], they'll surely return if I'm a good pet.")
owner.adjustOrganLoss(ORGAN_SLOT_BRAIN, -1.5)
if(66)
SEND_SIGNAL(M, COMSIG_CLEAR_MOOD_EVENT, "EnthMissing1")
- var/message = "[(owner.client?.prefs.lewdchem?"I feel so lost in this complicated world without [enthrallGender]..":"I have to return to [master]!")]"
- to_chat(owner, "You start to feel really angry about how you're not with [(owner.client?.prefs.lewdchem?"your [enthrallGender]":"[master]")]!")
+ var/message = "[(lewd?"I feel so lost in this complicated world without [enthrallGender]..":"I have to return to [master]!")]"
+ to_chat(owner, "You start to feel really angry about how you're not with [(lewd?"your [enthrallGender]":"[master]")]!")
SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "EnthMissing2", /datum/mood_event/enthrallmissing2, message)
owner.stuttering += 50
owner.jitteriness += 250
@@ -453,15 +454,15 @@
if(prob(10))
addtimer(CALLBACK(M, /mob/verb/a_intent_change, INTENT_HARM), 2)
addtimer(CALLBACK(M, /mob/proc/click_random_mob), 2)
- if(owner.client?.prefs.lewdchem)
+ if(lewd)
to_chat(owner, "You are overwhelmed with anger at the lack of [enthrallGender]'s presence and suddenly lash out!")
else
to_chat(owner, "You are overwhelmed with anger and suddenly lash out!")
if(90)
SEND_SIGNAL(M, COMSIG_CLEAR_MOOD_EVENT, "EnthMissing2")
- var/message = "[(owner.client?.prefs.lewdchem?"Where are you [enthrallGender]??!":"I need to find [master]!")]"
+ var/message = "[(lewd?"Where are you [enthrallGender]??!":"I need to find [master]!")]"
SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "EnthMissing3", /datum/mood_event/enthrallmissing3, message)
- if(owner.client?.prefs.lewdchem)
+ if(lewd)
to_chat(owner, "You need to find your [enthrallGender] at all costs, you can't hold yourself back anymore!")
else
to_chat(owner, "You need to find [master] at all costs, you can't hold yourself back anymore!")
@@ -474,15 +475,15 @@
M.hallucination += 10
if(101)
SEND_SIGNAL(M, COMSIG_CLEAR_MOOD_EVENT, "EnthMissing3")
- var/message = "[(owner.client?.prefs.lewdchem?"I'm all alone, It's so hard to continute without [enthrallGender]...":"I really need to find [master]!!!")]"
+ var/message = "[(lewd?"I'm all alone, It's so hard to continute without [enthrallGender]...":"I really need to find [master]!!!")]"
SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "EnthMissing4", /datum/mood_event/enthrallmissing4, message)
- to_chat(owner, "You can hardly find the strength to continue without [(owner.client?.prefs.lewdchem?"your [enthrallGender]":"[master]")].")
+ to_chat(owner, "You can hardly find the strength to continue without [(lewd?"your [enthrallGender]":"[master]")].")
M.gain_trauma_type(BRAIN_TRAUMA_SEVERE)
if(102 to 140) //depression 2, revengeance
if(prob(20))
owner.Stun(50)
owner.emote("cry")//does this exist?
- if(owner.client?.prefs.lewdchem)
+ if(lewd)
to_chat(owner, "You're unable to hold back your tears, suddenly sobbing as the desire to see your [enthrallGender] oncemore overwhelms you.")
else
to_chat(owner, "You are overwheled with withdrawl from [master].")
@@ -504,7 +505,7 @@
deltaResist += 5
owner.adjustOrganLoss(ORGAN_SLOT_BRAIN, -1)
if(prob(20))
- if(owner.client?.prefs.lewdchem)
+ if(lewd)
to_chat(owner, "Maybe you'll be okay without your [enthrallGender].")
else
to_chat(owner, "You feel your mental functions slowly begin to return.")
@@ -537,7 +538,7 @@
else if(status == "charge")
owner.add_movespeed_modifier(MOVESPEED_ID_MKULTRA, update=TRUE, priority=100, multiplicative_slowdown=-2, blacklisted_movetypes=(FLYING|FLOATING))
status = "charged"
- if(master.client?.prefs.lewdchem)
+ if(lewd)
to_chat(owner, "Your [enthrallGender]'s order fills you with a burst of speed!")
else
to_chat(owner, "[master]'s command fills you with a burst of speed!")
@@ -560,7 +561,7 @@
//adrenals?
//customEcho
- if(customEcho && withdrawal == FALSE && owner.client?.prefs.lewdchem)
+ if(customEcho && withdrawal == FALSE && lewd)
if(prob(2))
if(!customSpan) //just in case!
customSpan = "notice"
@@ -576,7 +577,7 @@
cooldownMsg = FALSE
else if (cooldownMsg == FALSE)
if(DistApart < 10)
- if(master.client?.prefs.lewdchem)
+ if(lewd)
to_chat(master, "Your pet [owner] appears to have finished internalising your last command.")
else
to_chat(master, "Your thrall [owner] appears to have finished internalising your last command.")
@@ -609,7 +610,7 @@
/datum/status_effect/chem/enthrall/proc/owner_hear(datum/source, list/hearing_args)
- if(owner.client?.prefs.lewdchem == FALSE)
+ if(lewd == FALSE)
return
if (cTriggered > 0)
return
@@ -638,7 +639,7 @@
//Shocking truth!
else if (lowertext(customTriggers[trigger]) == "shock")
- if (C.canbearoused && C.client?.prefs.lewdchem)
+ if (C.canbearoused && lewd)
C.adjustArousalLoss(5)
C.jitteriness += 100
C.stuttering += 25
@@ -648,7 +649,7 @@
//wah intensifies wah-rks
else if (lowertext(customTriggers[trigger]) == "cum")//aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
- if (HAS_TRAIT(C, TRAIT_NYMPHO) && C.client?.prefs.lewdchem)
+ if (HAS_TRAIT(C, TRAIT_NYMPHO) && lewd)
if (C.getArousalLoss() > 80)
C.mob_climax(forced_climax=TRUE)
C.SetStun(10)//We got your stun effects in somewhere, Kev.
@@ -689,20 +690,20 @@
if (status == "Sleeper" || phase == 0)
return
else if (phase == 4)
- if(owner.client?.prefs.lewdchem)
+ if(lewd)
to_chat(owner, "Your mind is too far gone to even entertain the thought of resisting. Unless you can fix the brain damage, you won't be able to break free of your [enthrallGender]'s control.")
else
to_chat(owner, "Your brain is too overwhelmed with from the high volume of chemicals in your system, rendering you unable to resist, unless you can fix the brain damage.")
return
else if (phase == 3 && withdrawal == FALSE)
- if(owner.client?.prefs.lewdchem)
+ if(lewd)
to_chat(owner, "The presence of your [enthrallGender] fully captures the horizon of your mind, removing any thoughts of resistance. If you get split up from them, then you might be able to entertain the idea of resisting.")
else
to_chat(owner, "You are unable to resist [master] in your current state. If you get split up from them, then you might be able to resist.")
return
else if (status == "Antiresist")//If ordered to not resist; resisting while ordered to not makes it last longer, and increases the rate in which you are enthralled.
if (statusStrength > 0)
- if(owner.client?.prefs.lewdchem)
+ if(lewd)
to_chat(owner, "The order from your [enthrallGender] to give in is conflicting with your attempt to resist, drawing you deeper into trance! You'll have to wait a bit before attemping again, lest your attempts become frustrated again.")
else
to_chat(owner, "The order from your [master] to give in is conflicting with your attempt to resist. You'll have to wait a bit before attemping again, lest your attempts become frustrated again.")
@@ -742,7 +743,7 @@
deltaResist *= 1.25
if (owner.reagents.has_reagent("neurine"))
deltaResist *= 1.5
- if (!HAS_TRAIT(owner, TRAIT_CROCRIN_IMMUNE) && M.canbearoused && owner.client?.prefs.lewdchem)
+ if (!(owner.client?.prefs.cit_toggles & NO_APHRO) && M.canbearoused && lewd)
if (owner.reagents.has_reagent("anaphro"))
deltaResist *= 1.5
if (owner.reagents.has_reagent("anaphro+"))
diff --git a/modular_citadel/code/game/machinery/vending.dm b/modular_citadel/code/game/machinery/vending.dm
index 53fe6a8f56..e75ba17801 100755
--- a/modular_citadel/code/game/machinery/vending.dm
+++ b/modular_citadel/code/game/machinery/vending.dm
@@ -52,6 +52,7 @@
/obj/item/clothing/mask/muzzle = 4,
/obj/item/clothing/under/stripper_pink = 3,
/obj/item/clothing/under/stripper_green = 3,
+ /obj/item/clothing/under/corset = 3,
/obj/item/clothing/under/gear_harness = 10,
/obj/item/dildo/custom = 5,
/obj/item/electropack/shockcollar = 3,
@@ -71,7 +72,8 @@
)
premium = list(
/obj/item/clothing/accessory/skullcodpiece/fake = 3,
- /obj/item/reagent_containers/glass/bottle/hexacrocin = 10
+ /obj/item/reagent_containers/glass/bottle/hexacrocin = 10,
+ /obj/item/clothing/under/pants/chaps = 5
)
refill_canister = /obj/item/vending_refill/kink
diff --git a/modular_citadel/code/modules/client/client_procs.dm b/modular_citadel/code/modules/client/client_procs.dm
index 3b91deb6e5..f20dd08a51 100644
--- a/modular_citadel/code/modules/client/client_procs.dm
+++ b/modular_citadel/code/modules/client/client_procs.dm
@@ -19,6 +19,12 @@
mentor_follow(M)
return TRUE
+ if(href_list["mentor_unfollow"])
+ var/mob/living/M = locate(href_list["mentor_follow"])
+ if(M && mentor_datum.following == M)
+ mentor_unfollow()
+ return TRUE
+
/client/proc/mentor_datum_set(admin)
mentor_datum = GLOB.mentor_datums[ckey]
if(!mentor_datum && check_rights_for(src, R_ADMIN,0)) // admin with no mentor datum?let's fix that
diff --git a/modular_citadel/code/modules/client/loadout/uniform.dm b/modular_citadel/code/modules/client/loadout/uniform.dm
index 72709069eb..64ed0d363d 100644
--- a/modular_citadel/code/modules/client/loadout/uniform.dm
+++ b/modular_citadel/code/modules/client/loadout/uniform.dm
@@ -103,6 +103,45 @@
category = SLOT_W_UNIFORM
path = /obj/item/clothing/under/stripeddress
+/datum/gear/sundresswhite
+ name = "White Sundress"
+ category = SLOT_W_UNIFORM
+ path = /obj/item/clothing/under/sundresswhite
+
+/datum/gear/sundress
+ name = "Sundress"
+ category = SLOT_W_UNIFORM
+ path = /obj/item/clothing/under/sundress
+
+/datum/gear/greendress
+ name = "Green Dress"
+ category = SLOT_W_UNIFORM
+ path = /obj/item/clothing/under/greendress
+
+/datum/gear/pinkdress
+ name = "Pink Dress"
+ category = SLOT_W_UNIFORM
+ path = /obj/item/clothing/under/pinkdress
+/datum/gear/flowerdress
+ name = "Flower Dress"
+ category = SLOT_W_UNIFORM
+ path = /obj/item/clothing/under/flowerdress
+
+/datum/gear/sweptskirt
+ name = "Swept skirt"
+ category = SLOT_W_UNIFORM
+ path = /obj/item/clothing/under/sweptskirt
+
+/datum/gear/croptop
+ name = "Croptop"
+ category = SLOT_W_UNIFORM
+ path = /obj/item/clothing/under/croptop
+
+/datum/gear/yoga
+ name = "Yoga Pants"
+ category = SLOT_W_UNIFORM
+ path = /obj/item/clothing/under/pants/yoga
+
/datum/gear/kilt
name = "Kilt"
category = SLOT_W_UNIFORM
@@ -116,7 +155,7 @@
/datum/gear/athleticshorts
name = "Athletic Shorts"
category = SLOT_W_UNIFORM
- path = /obj/item/clothing/under/shorts
+ path = /obj/item/clothing/under/shorts/red
/datum/gear/bjeans
name = "Black Jeans"
@@ -153,6 +192,26 @@
category = SLOT_W_UNIFORM
path = /obj/item/clothing/under/pants/track
+/datum/gear/rippedjeans
+ name = "Ripped Jeans"
+ category = SLOT_W_UNIFORM
+ path = /obj/item/clothing/under/pants/jeanripped
+
+/datum/gear/jeanshort
+ name = "Jean Shorts"
+ category = SLOT_W_UNIFORM
+ path = /obj/item/clothing/under/pants/jeanshort
+
+/datum/gear/denimskirt
+ name = "Denim Skirt"
+ category = SLOT_W_UNIFORM
+ path = /obj/item/clothing/under/pants/denimskirt
+
+/datum/gear/yoga
+ name = "Yoga Pants"
+ category = SLOT_W_UNIFORM
+ path = /obj/item/clothing/under/pants/yoga
+
// Pantsless Sweaters
/datum/gear/turtleneck
@@ -362,4 +421,4 @@
category = SLOT_W_UNIFORM
path = /obj/item/clothing/under/stripper_green
cost = 3
-
+
diff --git a/modular_citadel/code/modules/client/preferences.dm b/modular_citadel/code/modules/client/preferences.dm
index 29f8a113e8..eef8664fbb 100644
--- a/modular_citadel/code/modules/client/preferences.dm
+++ b/modular_citadel/code/modules/client/preferences.dm
@@ -15,7 +15,7 @@
var/arousable = TRUE
var/widescreenpref = TRUE
var/autostand = TRUE
- var/lewdchem = FALSE
+ var/auto_ooc = FALSE
//vore prefs
var/toggleeatingnoise = TRUE
@@ -54,6 +54,5 @@ datum/preferences/copy_to(mob/living/carbon/human/character, icon_updates = 1)
character.give_genitals(TRUE)
character.flavor_text = features["flavor_text"] //Let's update their flavor_text at least initially
character.canbearoused = arousable
- character.client?.prefs.lewdchem = lewdchem
if(icon_updates)
character.update_genitals()
diff --git a/modular_citadel/code/modules/mentor/follow.dm b/modular_citadel/code/modules/mentor/follow.dm
index 6695155ad0..5da3ce4726 100644
--- a/modular_citadel/code/modules/mentor/follow.dm
+++ b/modular_citadel/code/modules/mentor/follow.dm
@@ -1,16 +1,18 @@
/client/proc/mentor_follow(mob/living/M)
if(!is_mentor())
return
- if(isnull(M))
- return
- if(!ismob(usr))
- return
- mentor_datum.following = M
- usr.reset_perspective(M)
- verbs += /client/proc/mentor_unfollow
- to_chat(GLOB.admins, "MENTOR: [key_name(usr)] is now following [key_name(M)]")
- to_chat(usr, "Click the \"Stop Following\" button in the Mentor tab to stop following [key_name(M)].")
- log_mentor("[key_name(usr)] began following [key_name(M)]")
+ var/orbiting = TRUE
+ if(!isobserver(usr))
+ mentor_datum.following = M
+ usr.reset_perspective(M)
+ verbs += /client/proc/mentor_unfollow
+ to_chat(usr, "Click the \"Stop Following\" button here or in the Mentor tab to stop following [key_name(M)].")
+ orbiting = FALSE
+ else
+ var/mob/dead/observer/O = usr
+ O.ManualFollow(M)
+ to_chat(GLOB.admins, "MENTOR: [key_name(usr)] is now [orbiting ? "orbiting" : "following"] [key_name(M)][key_name(M)][orbiting ? " as a ghost" : ""].")
+ log_mentor("[key_name(usr)] [orbiting ? "is now orbiting" : "began following"][key_name(M)][orbiting ? " as a ghost" : ""].")
/client/proc/mentor_unfollow()
set category = "Mentor"
@@ -21,6 +23,6 @@
return
usr.reset_perspective()
verbs -= /client/proc/mentor_unfollow
- to_chat(GLOB.admins, "MENTOR: [key_name(usr)] is no longer following [key_name(mentor_datum.following)]")
- log_mentor("[key_name(usr)] stopped following [key_name(mentor_datum.following)]")
+ to_chat(GLOB.admins, "MENTOR: [key_name(usr)] is no longer following [key_name(mentor_datum.following)].")
+ log_mentor("[key_name(usr)] stopped following [key_name(mentor_datum.following)].")
mentor_datum.following = null
\ No newline at end of file
diff --git a/modular_citadel/code/modules/mentor/mentorhelp.dm b/modular_citadel/code/modules/mentor/mentorhelp.dm
index 87b05a3f26..eb2b8546da 100644
--- a/modular_citadel/code/modules/mentor/mentorhelp.dm
+++ b/modular_citadel/code/modules/mentor/mentorhelp.dm
@@ -19,7 +19,7 @@
log_mentor("MENTORHELP: [key_name_mentor(src, 0, 0, 0, 0)]: [msg]")
for(var/client/X in GLOB.mentors | GLOB.admins)
- X << 'sound/items/bikehorn.ogg'
+ SEND_SOUND(X, 'sound/items/bikehorn.ogg')
to_chat(X, mentor_msg)
to_chat(src, "PM to-Mentors: [msg]")
diff --git a/modular_citadel/code/modules/reagents/chemistry/reagents/MKUltra.dm b/modular_citadel/code/modules/reagents/chemistry/reagents/MKUltra.dm
index 35d13b3aa6..65c652434b 100644
--- a/modular_citadel/code/modules/reagents/chemistry/reagents/MKUltra.dm
+++ b/modular_citadel/code/modules/reagents/chemistry/reagents/MKUltra.dm
@@ -170,6 +170,9 @@ Creating a chem with a low purity will make you permanently fall in love with so
/datum/reagent/fermi/enthrall/on_mob_add(mob/living/carbon/M)
. = ..()
+ if(M.client?.prefs.cit_toggles & NEVER_HYPNO) // Just in case people are opting out of this
+ holder.remove_reagent(id, 10000000)
+ return
if(!ishuman(M))//Just to make sure screwy stuff doesn't happen.
return
if(!creatorID)
@@ -183,7 +186,7 @@ Creating a chem with a low purity will make you permanently fall in love with so
E.enthrallID = creatorID
E.enthrallGender = creatorGender
E.master = get_mob_by_key(creatorID)
- to_chat(M, to_chat(M, "Your aldled, plastic, mind bends under the chemical influence of a new [(M.client?.prefs.lewdchem?"master":"leader")]. Your highest priority is now to stay by [creatorName]'s side, following and aiding them at all costs.")) //THIS SHOULD ONLY EVER APPEAR IF YOU MINDBREAK YOURSELF AND THEN GET INJECTED FROM SOMEONE ELSE.
+ to_chat(M, "Your addled, plastic, mind bends under the chemical influence of a new [(E.lewd?"master":"leader")]. Your highest priority is now to stay by [creatorName]'s side, following and aiding them at all costs.") //THIS SHOULD ONLY EVER APPEAR IF YOU MINDBREAK YOURSELF AND THEN GET INJECTED FROM SOMEONE ELSE.
log_game("FERMICHEM: Narcissist [M] ckey: [M.key] been rebound to [creatorName], ID: [creatorID]")
return
if((M.ckey == creatorID) && (creatorName == M.real_name)) //same name AND same player - same instance of the player. (should work for clones?)
@@ -194,7 +197,7 @@ Creating a chem with a low purity will make you permanently fall in love with so
Vc.Remove(M)
nVc.Insert(M)
qdel(Vc)
- to_chat(M, "You feel your vocal chords tingle you speak in a more charasmatic and sultry tone.)]")
+ to_chat(M, "You feel your vocal chords tingle you speak in a more charasmatic and sultry tone.")
else
log_game("FERMICHEM: MKUltra: [creatorName], [creatorID], is enthralling [M.name], [M.ckey]")
M.apply_status_effect(/datum/status_effect/chem/enthrall)
@@ -230,7 +233,6 @@ Creating a chem with a low purity will make you permanently fall in love with so
M.reagents.remove_reagent(id, volume)
FallInLove(C, M)
return
-
if (M.ckey == creatorID && creatorName == M.real_name)//If you yourself drink it, it supresses the vocal effects, for stealth. NEVERMIND ADD THIS LATER I CAN'T GET IT TO WORK
return
if(!M.client)
@@ -261,7 +263,7 @@ Creating a chem with a low purity will make you permanently fall in love with so
E.master = creator
else
E = M.has_status_effect(/datum/status_effect/chem/enthrall)
- if(M.client?.prefs.lewdchem)
+ if(E.lewd)
to_chat(M, "Your mind shatters under the volume of the mild altering chem inside of you, breaking all will and thought completely. Instead the only force driving you now is the instinctual desire to obey and follow [creatorName]. Your highest priority is now to stay by their side and protect them at all costs.")
else
to_chat(M, "The might volume of chemicals in your system overwhelms your mind, and you suddenly agree with what [creatorName] has been saying. Your highest priority is now to stay by their side and protect them at all costs.")
@@ -288,6 +290,7 @@ Creating a chem with a low purity will make you permanently fall in love with so
chemical_flags = REAGENT_DONOTSPLIT
can_synth = FALSE
var/mob/living/carbon/love
+ var/lewd = FALSE
/datum/reagent/fermi/enthrallExplo/on_mob_life(mob/living/carbon/M)//Love gas, only affects while it's in your system,Gives a positive moodlet if close, gives brain damagea and a negative moodlet if not close enough.
if(HAS_TRAIT(M, TRAIT_MINDSHIELD))
@@ -303,24 +306,25 @@ Creating a chem with a low purity will make you permanently fall in love with so
if(!love)
return
M.apply_status_effect(STATUS_EFFECT_INLOVE, love)
- to_chat(M, "[(M.client?.prefs.lewdchem?"":"")][(M.client?.prefs.lewdchem?"You develop a sudden crush on [love], your heart beginning to race as you look upon them with new eyes.":"You suddenly feel like making friends with [love].")] You feel strangely drawn towards them.")
+ lewd = (M.client?.prefs.cit_toggles & HYPNO) && (love.client?.prefs.cit_toggles & HYPNO)
+ to_chat(M, "[(lewd?"":"")][(lewd?"You develop a sudden crush on [love], your heart beginning to race as you look upon them with new eyes.":"You suddenly feel like making friends with [love].")] You feel strangely drawn towards them.")
log_game("FERMICHEM: [M] ckey: [M.key] has temporarily bonded with [love] ckey: [love.key]")
SSblackbox.record_feedback("tally", "fermi_chem", 1, "Times people have bonded")
else
if(get_dist(M, love) < 8)
if(HAS_TRAIT(M, TRAIT_NYMPHO)) //Add this back when merged/updated.
M.adjustArousalLoss(5)
- var/message = "[(M.client?.prefs.lewdchem?"I'm next to my crush..! Eee!":"I'm making friends with [love]!")]"
+ var/message = "[(lewd?"I'm next to my crush..! Eee!":"I'm making friends with [love]!")]"
SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "InLove", /datum/mood_event/InLove, message)
SEND_SIGNAL(M, COMSIG_CLEAR_MOOD_EVENT, "MissingLove")
else
- var/message = "[(M.client?.prefs.lewdchem?"I can't keep my crush off my mind, I need to see them again!":"I really want to make friends with [love]!")]"
+ var/message = "[(lewd?"I can't keep my crush off my mind, I need to see them again!":"I really want to make friends with [love]!")]"
SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "MissingLove", /datum/mood_event/MissingLove, message)
SEND_SIGNAL(M, COMSIG_CLEAR_MOOD_EVENT, "InLove")
if(prob(5))
M.Stun(10)
M.emote("whimper")//does this exist?
- to_chat(M, "[(M.client?.prefs.lewdchem?"":"")] You're overcome with a desire to see [love].")
+ to_chat(M, "[(lewd?"":"")] You're overcome with a desire to see [love].")
M.adjustOrganLoss(ORGAN_SLOT_BRAIN, 0.5)//I found out why everyone was so damaged!
..()
@@ -330,7 +334,7 @@ Creating a chem with a low purity will make you permanently fall in love with so
M.remove_status_effect(STATUS_EFFECT_INLOVE)
SEND_SIGNAL(M, COMSIG_CLEAR_MOOD_EVENT, "InLove")
SEND_SIGNAL(M, COMSIG_CLEAR_MOOD_EVENT, "MissingLove")
- to_chat(M, "[(M.client?.prefs.lewdchem?"":"")]Your feelings for [love] suddenly vanish!")
+ to_chat(M, "[(lewd?"":"")]Your feelings for [love] suddenly vanish!")
log_game("FERMICHEM: [M] ckey: [M.key] is no longer in temp bond")
..()
@@ -338,7 +342,8 @@ Creating a chem with a low purity will make you permanently fall in love with so
if(Lover.has_status_effect(STATUS_EFFECT_INLOVE))
to_chat(Lover, "You are already fully devoted to someone else!")
return
- to_chat(Lover, "[(Lover.client?.prefs.lewdchem?"":"")]You develop a deep and sudden bond with [Love][(Lover.client?.prefs.lewdchem?", your heart beginning to race as your mind filles with thoughts about them.":".")] You are determined to keep them safe and happy, and feel drawn towards them.")
+ var/lewd = (Lover.client?.prefs.cit_toggles & HYPNO) && (Love.client?.prefs.cit_toggles & HYPNO)
+ to_chat(Lover, "[(lewd?"":"")]You develop a deep and sudden bond with [Love][(lewd?", your heart beginning to race as your mind filles with thoughts about them.":".")] You are determined to keep them safe and happy, and feel drawn towards them.")
if(Lover.mind)
Lover.mind.store_memory("You are in love with [Love].")
Lover.faction |= "[REF(Love)]"
diff --git a/modular_citadel/code/modules/reagents/chemistry/reagents/enlargement.dm b/modular_citadel/code/modules/reagents/chemistry/reagents/enlargement.dm
index 7d358b4149..6732fb06a5 100644
--- a/modular_citadel/code/modules/reagents/chemistry/reagents/enlargement.dm
+++ b/modular_citadel/code/modules/reagents/chemistry/reagents/enlargement.dm
@@ -56,8 +56,8 @@
var/mob/living/carbon/human/H = M
var/obj/item/organ/genital/breasts/B = M.getorganslot(ORGAN_SLOT_BREASTS)
- //If they have Acute hepatic pharmacokinesis, then route processing though liver.
- if(HAS_TRAIT(H, TRAIT_PHARMA) || !H.canbearoused)
+ //If they've opted out, then route processing though liver.
+ if(!(H.client?.prefs.cit_toggles & BREAST_ENLARGEMENT))
var/obj/item/organ/liver/L = H.getorganslot(ORGAN_SLOT_LIVER)
if(L)
L.swelling += 0.05
@@ -94,9 +94,7 @@
return ..()
/datum/reagent/fermi/breast_enlarger/overdose_process(mob/living/carbon/M) //Turns you into a female if male and ODing, doesn't touch nonbinary and object genders.
-
- //Acute hepatic pharmacokinesis.
- if(HAS_TRAIT(M, TRAIT_PHARMA) || !M.canbearoused)
+ if(!(M.client?.prefs.cit_toggles & FORCED_FEM))
var/obj/item/organ/liver/L = M.getorganslot(ORGAN_SLOT_LIVER)
L.swelling+= 0.05
return ..()
@@ -133,15 +131,10 @@
/datum/reagent/fermi/BEsmaller/on_mob_life(mob/living/carbon/M)
var/obj/item/organ/genital/breasts/B = M.getorganslot(ORGAN_SLOT_BREASTS)
- if(!B)
- //Acute hepatic pharmacokinesis.
- if(HAS_TRAIT(M, TRAIT_PHARMA) || !M.canbearoused)
- var/obj/item/organ/liver/L = M.getorganslot(ORGAN_SLOT_LIVER)
- L.swelling-= 0.05
- return ..()
-
- //otherwise proceed as normal
- return..()
+ if(!(M.client?.prefs.cit_toggles & BREAST_ENLARGEMENT) || !B)
+ var/obj/item/organ/liver/L = M.getorganslot(ORGAN_SLOT_LIVER)
+ L.swelling-= 0.05
+ return ..()
B.modify_size(-0.05)
return ..()
@@ -221,8 +214,7 @@
return ..()
var/mob/living/carbon/human/H = M
var/obj/item/organ/genital/penis/P = H.getorganslot(ORGAN_SLOT_PENIS)
- //If they have Acute hepatic pharmacokinesis, then route processing though liver.
- if(HAS_TRAIT(H, TRAIT_PHARMA) || !H.canbearoused)
+ if(!(H.client?.prefs.cit_toggles & PENIS_ENLARGEMENT))
var/obj/item/organ/liver/L = H.getorganslot(ORGAN_SLOT_LIVER)
if(L)
L.swelling += 0.05
@@ -252,8 +244,7 @@
/datum/reagent/fermi/penis_enlarger/overdose_process(mob/living/carbon/human/M) //Turns you into a male if female and ODing, doesn't touch nonbinary and object genders.
if(!istype(M))
return ..()
- //Acute hepatic pharmacokinesis.
- if(HAS_TRAIT(M, TRAIT_PHARMA) || !M.canbearoused)
+ if(!(M.client?.prefs.cit_toggles & FORCED_MASC))
var/obj/item/organ/liver/L = M.getorganslot(ORGAN_SLOT_LIVER)
L.swelling+= 0.05
return..()
@@ -292,11 +283,9 @@
return ..()
var/mob/living/carbon/human/H = M
var/obj/item/organ/genital/penis/P = H.getorganslot(ORGAN_SLOT_PENIS)
- if(!P)
- //Acute hepatic pharmacokinesis.
- if(HAS_TRAIT(M, TRAIT_PHARMA))
- var/obj/item/organ/liver/L = M.getorganslot(ORGAN_SLOT_LIVER)
- L.swelling-= 0.05
+ if(!(H.client?.prefs.cit_toggles & PENIS_ENLARGEMENT) || !P)
+ var/obj/item/organ/liver/L = M.getorganslot(ORGAN_SLOT_LIVER)
+ L.swelling-= 0.05
return..()
P.modify_size(-0.1)
diff --git a/modular_citadel/code/modules/reagents/reagents/cit_reagents.dm b/modular_citadel/code/modules/reagents/reagents/cit_reagents.dm
index aa4c65c3bb..f6b70eb7b6 100644
--- a/modular_citadel/code/modules/reagents/reagents/cit_reagents.dm
+++ b/modular_citadel/code/modules/reagents/reagents/cit_reagents.dm
@@ -100,7 +100,7 @@
color = "#FFADFF"//PINK, rgb(255, 173, 255)
/datum/reagent/drug/aphrodisiac/on_mob_life(mob/living/M)
- if(M && M.canbearoused && !HAS_TRAIT(M, TRAIT_CROCRIN_IMMUNE))
+ if(M && M.canbearoused && !(M.client?.prefs.cit_toggles & NO_APHRO))
if(prob(33))
M.adjustArousalLoss(2)
if(prob(5))
@@ -122,7 +122,7 @@
overdose_threshold = 20
/datum/reagent/drug/aphrodisiacplus/on_mob_life(mob/living/M)
- if(M && M.canbearoused && !HAS_TRAIT(M, TRAIT_CROCRIN_IMMUNE))
+ if(M && M.canbearoused && !(M.client?.prefs.cit_toggles & NO_APHRO))
if(prob(33))
M.adjustArousalLoss(6)//not quite six times as powerful, but still considerably more powerful.
if(prob(5))
@@ -154,7 +154,7 @@
..()
/datum/reagent/drug/aphrodisiacplus/overdose_process(mob/living/M)
- if(M && M.canbearoused && !HAS_TRAIT(M, TRAIT_CROCRIN_IMMUNE) && prob(33))
+ if(M && M.canbearoused && !(M.client?.prefs.cit_toggles & NO_APHRO) && prob(33))
if(prob(5) && M.getArousalLoss() >= 100 && ishuman(M) && M.has_dna())
if(prob(5)) //Less spam
to_chat(M, "Your libido is going haywire!")
diff --git a/tgstation.dme b/tgstation.dme
index 5526e5eaf0..252cd8ab3e 100755
--- a/tgstation.dme
+++ b/tgstation.dme
@@ -882,6 +882,7 @@
#include "code\game\objects\items\taster.dm"
#include "code\game\objects\items\teleportation.dm"
#include "code\game\objects\items\teleprod.dm"
+#include "code\game\objects\items\telescopic_iv.dm"
#include "code\game\objects\items\theft_tools.dm"
#include "code\game\objects\items\toys.dm"
#include "code\game\objects\items\trash.dm"
|