"
dat += "Flavor Text"
dat += "Set Examine Text "
@@ -1565,10 +1564,8 @@ GLOBAL_LIST_EMPTY(preferences_datums)
var/temp_hsv = RGBtoHSV(new_mutantcolor)
if(new_mutantcolor == "#000000")
features["mcolor"] = pref_species.default_color
- update_preview_icon()
else if((MUTCOLORS_PARTSONLY in pref_species.species_traits) || ReadHSV(temp_hsv)[3] >= ReadHSV("#202020")[3]) // mutantcolors must be bright, but only if they affect the skin
features["mcolor"] = sanitize_hexcolor(new_mutantcolor)
- update_preview_icon()
else
to_chat(user, "Invalid color. Your color is not bright enough.")
@@ -1578,10 +1575,8 @@ GLOBAL_LIST_EMPTY(preferences_datums)
var/temp_hsv = RGBtoHSV(new_mutantcolor)
if(new_mutantcolor == "#000000")
features["mcolor2"] = pref_species.default_color
- update_preview_icon()
else if((MUTCOLORS_PARTSONLY in pref_species.species_traits) || ReadHSV(temp_hsv)[3] >= ReadHSV("#202020")[3]) // mutantcolors must be bright, but only if they affect the skin
features["mcolor2"] = sanitize_hexcolor(new_mutantcolor)
- update_preview_icon()
else
to_chat(user, "Invalid color. Your color is not bright enough.")
@@ -1591,10 +1586,8 @@ GLOBAL_LIST_EMPTY(preferences_datums)
var/temp_hsv = RGBtoHSV(new_mutantcolor)
if(new_mutantcolor == "#000000")
features["mcolor3"] = pref_species.default_color
- update_preview_icon()
else if((MUTCOLORS_PARTSONLY in pref_species.species_traits) || ReadHSV(temp_hsv)[3] >= ReadHSV("#202020")[3]) // mutantcolors must be bright, but only if they affect the skin
features["mcolor3"] = sanitize_hexcolor(new_mutantcolor)
- update_preview_icon()
else
to_chat(user, "Invalid color. Your color is not bright enough.")
@@ -1736,14 +1729,12 @@ GLOBAL_LIST_EMPTY(preferences_datums)
features["body_markings"] = new_body_markings
if(new_body_markings != "None")
features["mam_body_markings"] = "None"
- update_preview_icon()
if("legs")
var/new_legs
new_legs = input(user, "Choose your character's legs:", "Character Preference") as null|anything in GLOB.legs_list
if(new_legs)
features["legs"] = new_legs
- update_preview_icon()
if("insect_wings")
var/new_insect_wings
@@ -1829,7 +1820,6 @@ GLOBAL_LIST_EMPTY(preferences_datums)
else if(new_mam_body_markings == "None")
features["mam_body_markings"] = "Plain"
features["body_markings"] = "None"
- update_preview_icon()
//Xeno Bodyparts
if("xenohead")//Head or caste type
@@ -2307,8 +2297,8 @@ GLOBAL_LIST_EMPTY(preferences_datums)
pref_species = new /datum/species/human
save_character()
- character.set_species(chosen_species, icon_update = FALSE, pref_load = TRUE)
character.dna.features = features.Copy()
+ character.set_species(chosen_species, icon_update = FALSE, pref_load = TRUE)
character.dna.real_name = character.real_name
character.dna.nameless = character.nameless
character.dna.custom_species = character.custom_species
@@ -2337,7 +2327,6 @@ GLOBAL_LIST_EMPTY(preferences_datums)
if(icon_updates)
character.update_body()
character.update_hair()
- character.update_body_parts()
/datum/preferences/proc/get_default_name(name_id)
switch(name_id)
diff --git a/code/modules/client/verbs/aooc.dm b/code/modules/client/verbs/aooc.dm
index 311c22955d..3f86a617e6 100644
--- a/code/modules/client/verbs/aooc.dm
+++ b/code/modules/client/verbs/aooc.dm
@@ -116,7 +116,7 @@ GLOBAL_VAR_INIT(normal_aooc_colour, "#ce254f")
antaglisting |= M.current.client
for(var/mob/M in GLOB.player_list)
- if(M.client && (M.stat == DEAD || M.client.holder))
+ if(M.client && (M.stat == DEAD || M.client.holder || is_special_character(M)))
antaglisting |= M.client
for(var/client/C in antaglisting)
diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm
index f8f1a67e5a..dc9e46c4b4 100644
--- a/code/modules/clothing/clothing.dm
+++ b/code/modules/clothing/clothing.dm
@@ -253,16 +253,14 @@ BLIND // can't see anything
H.update_suit_sensors()
/obj/item/clothing/under/AltClick(mob/user)
- if(..())
- return 1
-
+ . = ..()
if(!istype(user) || !user.canUseTopic(src, BE_CLOSE, ismonkey(user)))
return
+ if(attached_accessory)
+ remove_accessory(user)
else
- if(attached_accessory)
- remove_accessory(user)
- else
- rolldown()
+ rolldown()
+ return TRUE
/obj/item/clothing/under/verb/jumpsuit_adjust()
set name = "Adjust Jumpsuit Style"
diff --git a/code/modules/clothing/glasses/_glasses.dm b/code/modules/clothing/glasses/_glasses.dm
index 608f71cf11..206165a495 100644
--- a/code/modules/clothing/glasses/_glasses.dm
+++ b/code/modules/clothing/glasses/_glasses.dm
@@ -43,15 +43,16 @@
//called when thermal glasses are emped.
/obj/item/clothing/glasses/proc/thermal_overload()
- if(ishuman(src.loc))
- var/mob/living/carbon/human/H = src.loc
- if(!(HAS_TRAIT(H, TRAIT_BLIND)))
- if(H.glasses == src)
- to_chat(H, "[src] overloads and blinds you!")
- H.flash_act(visual = 1)
- H.blind_eyes(3)
- H.blur_eyes(5)
- H.adjust_eye_damage(5)
+ if(!ishuman(loc))
+ return
+ var/mob/living/carbon/human/H = loc
+ var/obj/item/organ/eyes/eyes = H.getorganslot(ORGAN_SLOT_EYES)
+ if((!HAS_TRAIT(H, TRAIT_BLIND) || !eyes) && H.glasses == src)
+ to_chat(H, "[src] overloads and blinds you!")
+ H.flash_act(visual = 1)
+ H.blind_eyes(3)
+ H.blur_eyes(5)
+ eyes.applyOrganDamage(5)
/obj/item/clothing/glasses/meson
name = "optical meson scanner"
@@ -427,19 +428,17 @@
..()
/obj/item/clothing/glasses/AltClick(mob/user)
+ . = ..()
if(glass_colour_type && ishuman(user))
var/mob/living/carbon/human/H = user
- if(H.client)
- if(H.client.prefs)
- if(src == H.glasses)
- H.client.prefs.uses_glasses_colour = !H.client.prefs.uses_glasses_colour
- if(H.client.prefs.uses_glasses_colour)
- to_chat(H, "You will now see glasses colors.")
- else
- to_chat(H, "You will no longer see glasses colors.")
- H.update_glasses_color(src, 1)
- else
- return ..()
+ if(H.client?.prefs && src == H.glasses)
+ H.client.prefs.uses_glasses_colour = !H.client.prefs.uses_glasses_colour
+ if(H.client.prefs.uses_glasses_colour)
+ to_chat(H, "You will now see glasses colors.")
+ else
+ to_chat(H, "You will no longer see glasses colors.")
+ H.update_glasses_color(src, 1)
+ return TRUE
/obj/item/clothing/glasses/proc/change_glass_color(mob/living/carbon/human/H, datum/client_colour/glass_colour/new_color_type)
var/old_colour_type = glass_colour_type
diff --git a/code/modules/clothing/head/hardhat.dm b/code/modules/clothing/head/hardhat.dm
index fa61b81177..19f03dfd0a 100644
--- a/code/modules/clothing/head/hardhat.dm
+++ b/code/modules/clothing/head/hardhat.dm
@@ -115,8 +115,10 @@
toggle_helmet_light(user)
/obj/item/clothing/head/hardhat/weldhat/AltClick(mob/user)
+ . = ..()
if(user.canUseTopic(src, BE_CLOSE))
toggle_welding_screen(user)
+ return TRUE
/obj/item/clothing/head/hardhat/weldhat/proc/toggle_welding_screen(mob/living/user)
if(weldingvisortoggle(user))
diff --git a/code/modules/clothing/head/jobs.dm b/code/modules/clothing/head/jobs.dm
index 8ff6fe8bd1..05116c8b97 100644
--- a/code/modules/clothing/head/jobs.dm
+++ b/code/modules/clothing/head/jobs.dm
@@ -104,16 +104,16 @@
. += "Alt-click to take a candy corn."
/obj/item/clothing/head/fedora/det_hat/AltClick(mob/user)
- if(user.canUseTopic(src, BE_CLOSE, ismonkey(user)))
- ..()
- if(loc == user)
- if(candy_cooldown < world.time)
- var/obj/item/reagent_containers/food/snacks/candy_corn/CC = new /obj/item/reagent_containers/food/snacks/candy_corn(src)
- user.put_in_hands(CC)
- to_chat(user, "You slip a candy corn from your hat.")
- candy_cooldown = world.time+1200
- else
- to_chat(user, "You just took a candy corn! You should wait a couple minutes, lest you burn through your stash.")
+ . = ..()
+ if(loc == user && user.canUseTopic(src, BE_CLOSE, ismonkey(user)))
+ if(candy_cooldown < world.time)
+ var/obj/item/reagent_containers/food/snacks/candy_corn/CC = new /obj/item/reagent_containers/food/snacks/candy_corn(src)
+ user.put_in_hands(CC)
+ to_chat(user, "You slip a candy corn from your hat.")
+ candy_cooldown = world.time+1200
+ else
+ to_chat(user, "You just took a candy corn! You should wait a couple minutes, lest you burn through your stash.")
+ return TRUE
//Mime
diff --git a/code/modules/clothing/head/misc.dm b/code/modules/clothing/head/misc.dm
index c490793127..3fa5d56d1e 100644
--- a/code/modules/clothing/head/misc.dm
+++ b/code/modules/clothing/head/misc.dm
@@ -370,9 +370,9 @@
/obj/item/clothing/head/hotel
name = "Telegram cap"
desc = "A bright red cap warn by hotel staff. Or people who want to be a singing telegram"
- icon_state = "telegramhat"
- item_color = "telegramhat"
- dog_fashion = null
+ icon_state = "telegram"
+ item_color = "telegram"
+ dog_fashion = /datum/dog_fashion/head/telegram
/obj/item/clothing/head/colour
name = "Singer cap"
@@ -380,6 +380,7 @@
icon_state = "colour"
item_color = "colour"
dog_fashion = /datum/dog_fashion/head/colour
+
/obj/item/clothing/head/christmashat
name = "red santa hat"
desc = "A red Christmas Hat! How festive!"
diff --git a/code/modules/clothing/head/soft_caps.dm b/code/modules/clothing/head/soft_caps.dm
index 4daa737877..69ec1ccedd 100644
--- a/code/modules/clothing/head/soft_caps.dm
+++ b/code/modules/clothing/head/soft_caps.dm
@@ -22,11 +22,11 @@
/obj/item/clothing/head/soft/AltClick(mob/user)
- ..()
+ . = ..()
if(!user.canUseTopic(src, BE_CLOSE, ismonkey(user)))
return
- else
- flip(user)
+ flip(user)
+ return TRUE
/obj/item/clothing/head/soft/proc/flip(mob/user)
diff --git a/code/modules/clothing/masks/breath.dm b/code/modules/clothing/masks/breath.dm
index 7d0c4a455e..f4335d17e8 100644
--- a/code/modules/clothing/masks/breath.dm
+++ b/code/modules/clothing/masks/breath.dm
@@ -23,11 +23,11 @@
adjustmask(user)
/obj/item/clothing/mask/breath/AltClick(mob/user)
- ..()
+ . = ..()
if(!user.canUseTopic(src, BE_CLOSE, ismonkey(user)))
return
- else
- adjustmask(user)
+ adjustmask(user)
+ return TRUE
/obj/item/clothing/mask/breath/examine(mob/user)
. = ..()
diff --git a/code/modules/clothing/spacesuits/hardsuit.dm b/code/modules/clothing/spacesuits/hardsuit.dm
index eda12d66a9..c6eac4ac56 100644
--- a/code/modules/clothing/spacesuits/hardsuit.dm
+++ b/code/modules/clothing/spacesuits/hardsuit.dm
@@ -964,13 +964,12 @@
. += energy_overlay
/obj/item/clothing/suit/space/hardsuit/lavaknight/AltClick(mob/living/user)
- if(user.incapacitated() || !istype(user))
+ . = ..()
+ if(!in_range(src, user) || !istype(user))
+ return
+ if(user.incapacitated())
to_chat(user, "You can't do that right now!")
- return
- if(!in_range(src, user))
- return
- if(user.incapacitated() || !istype(user) || !in_range(src, user))
- return
+ return TRUE
if(alert("Are you sure you want to recolor your armor stripes?", "Confirm Repaint", "Yes", "No") == "Yes")
var/energy_color_input = input(usr,"","Choose Energy Color",energy_color) as color|null
@@ -986,6 +985,7 @@
user.update_inv_wear_suit()
light_color = energy_color
update_light()
+ return TRUE
/obj/item/clothing/suit/space/hardsuit/lavaknight/examine(mob/user)
. = ..()
diff --git a/code/modules/clothing/suits/toggles.dm b/code/modules/clothing/suits/toggles.dm
index f869eb5d44..559d3006a1 100644
--- a/code/modules/clothing/suits/toggles.dm
+++ b/code/modules/clothing/suits/toggles.dm
@@ -92,11 +92,11 @@
//Toggle exosuits for different aesthetic styles (hoodies, suit jacket buttons, etc)
/obj/item/clothing/suit/toggle/AltClick(mob/user)
- ..()
+ . = ..()
if(!user.canUseTopic(src, BE_CLOSE, ismonkey(user)))
return
- else
- suit_toggle(user)
+ suit_toggle(user)
+ return TRUE
/obj/item/clothing/suit/toggle/ui_action_click()
suit_toggle()
diff --git a/code/modules/clothing/under/accessories.dm b/code/modules/clothing/under/accessories.dm
index 0a0499b5f9..a4d2c17fd6 100644
--- a/code/modules/clothing/under/accessories.dm
+++ b/code/modules/clothing/under/accessories.dm
@@ -1,4 +1,4 @@
-/obj/item/clothing/accessory //Ties moved to neck slot items, but as there are still things like medals, pokadots, and armbands, this accessory system is being kept as-is
+/obj/item/clothing/accessory //Ties moved to neck slot items, but as there are still things like medals and armbands, this accessory system is being kept as-is
name = "Accessory"
desc = "Something has gone wrong!"
icon = 'icons/obj/clothing/accessories.dmi'
@@ -67,10 +67,12 @@
return
/obj/item/clothing/accessory/AltClick(mob/user)
+ . = ..()
if(istype(user) && user.canUseTopic(src, BE_CLOSE, ismonkey(user)))
if(initial(above_suit))
above_suit = !above_suit
to_chat(user, "[src] will be worn [above_suit ? "above" : "below"] your suit.")
+ return TRUE
/obj/item/clothing/accessory/examine(mob/user)
. = ..()
@@ -364,7 +366,7 @@
armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0)
/////////////////////
-//Synda Accessories//
+//Syndie Accessories//
/////////////////////
/obj/item/clothing/accessory/padding
@@ -387,35 +389,3 @@
icon_state = "plastics"
item_color = "nothing"
armor = list("melee" = 0, "bullet" = 0, "laser" = 20, "energy" = 10, "bomb" = 0, "bio" = 30, "rad" = 0, "fire" = 0, "acid" = -40)
-
-/////////////////////
-//Pokadots On Pants//
-/////////////////////
-
-/obj/item/clothing/accessory/attrocious_pokadots
- name = "atrocious pokadots"
- desc = "They look like something out of a thrift store. Attaches to clothing not to be worn by itself."
- icon_state = "attrocious_pokadots"
- item_color = "attrocious_pokadots"
- attack_verb = list("horrifed", "eye bleeded")
-
-/obj/item/clothing/accessory/black_white_pokadots
- name = "checkered pokadots"
- desc = "You can play a game of chess on these! Attaches to clothing not to be worn by itself."
- icon_state = "black_white_pokadots"
- item_color = "black_white_pokadots"
- attack_verb = list("check", "mate")
-
-/obj/item/clothing/accessory/nt_pokadots
- name = "blue and white pokadots"
- desc = "To show your pride in your workplace, in the most annoying possable way. Attaches to clothing not to be worn by itself."
- icon_state = "nt_pokadots"
- item_color = "nt_pokadots"
- attack_verb = list("eye bleeded", "annoyed")
-
-/obj/item/clothing/accessory/syndi_pokadots
- name = "black and red pokadots"
- desc = "King me. Attaches to clothing not to be worn by itself." //checkers!
- icon_state = "syndi_pokadots"
- item_color = "syndi_pokadots"
- attack_verb = list("jumped", "taken")
\ No newline at end of file
diff --git a/code/modules/crafting/recipes/recipes_misc.dm b/code/modules/crafting/recipes/recipes_misc.dm
index fdfb959fe6..00878d1c59 100644
--- a/code/modules/crafting/recipes/recipes_misc.dm
+++ b/code/modules/crafting/recipes/recipes_misc.dm
@@ -47,16 +47,17 @@
/datum/crafting_recipe/goldenbox
name = "Gold Plated Toolbox"
result = /obj/item/storage/toolbox/gold_fake
+ tools = list(/obj/item/stock_parts/cell/upgraded/plus)
reqs = list(/obj/item/stack/sheet/cardboard = 1, //so we dont null items in crafting
/obj/item/stack/cable_coil = 10,
/obj/item/stack/sheet/mineral/gold = 1,
- /obj/item/stock_parts/cell = 1,
/datum/reagent/water = 15)
time = 40
category = CAT_MISC
/datum/crafting_recipe/bronze_driver
name = "Bronze Plated Screwdriver"
+ tools = list(/obj/item/stock_parts/cell/upgraded/plus)
result = /obj/item/screwdriver/bronze
reqs = list(/obj/item/screwdriver = 1,
/obj/item/stack/cable_coil = 10,
@@ -67,6 +68,7 @@
/datum/crafting_recipe/bronze_welder
name = "Bronze Plated Welding Tool"
+ tools = list(/obj/item/stock_parts/cell/upgraded/plus)
result = /obj/item/weldingtool/bronze
reqs = list(/obj/item/weldingtool = 1,
/obj/item/stack/cable_coil = 10,
@@ -77,6 +79,7 @@
/datum/crafting_recipe/bronze_wirecutters
name = "Bronze Plated Wirecutters"
+ tools = list(/obj/item/stock_parts/cell/upgraded/plus)
result = /obj/item/wirecutters/bronze
reqs = list(/obj/item/wirecutters = 1,
/obj/item/stack/cable_coil = 10,
@@ -87,6 +90,7 @@
/datum/crafting_recipe/bronze_crowbar
name = "Bronze Plated Crowbar"
+ tools = list(/obj/item/stock_parts/cell/upgraded/plus)
result = /obj/item/crowbar/bronze
reqs = list(/obj/item/crowbar = 1,
/obj/item/stack/cable_coil = 10,
@@ -97,6 +101,7 @@
/datum/crafting_recipe/bronze_wrench
name = "Bronze Plated Wrench"
+ tools = list(/obj/item/stock_parts/cell/upgraded/plus)
result = /obj/item/wrench/bronze
reqs = list(/obj/item/wrench = 1,
/obj/item/stack/cable_coil = 10,
diff --git a/code/modules/detectivework/scanner.dm b/code/modules/detectivework/scanner.dm
index eaa31c01bf..944fbb8df8 100644
--- a/code/modules/detectivework/scanner.dm
+++ b/code/modules/detectivework/scanner.dm
@@ -187,9 +187,11 @@
return time2text(world.time + 432000, ":ss")
/obj/item/detective_scanner/AltClick(mob/living/user)
+ . = ..()
// Best way for checking if a player can use while not incapacitated, etc
if(!user.canUseTopic(src, be_close=TRUE))
return
+ . = TRUE
if(!LAZYLEN(log))
to_chat(user, "Cannot clear logs, the scanner has no logs.")
return
diff --git a/code/modules/events/shuttle_loan.dm b/code/modules/events/shuttle_loan.dm
index 88059f7468..f006f2b358 100644
--- a/code/modules/events/shuttle_loan.dm
+++ b/code/modules/events/shuttle_loan.dm
@@ -133,7 +133,7 @@
shuttle_spawns.Add(/mob/living/simple_animal/hostile/syndicate/ranged/infiltrator)
if(RUSKY_PARTY)
- var/datum/supply_pack/pack = SSshuttle.supply_packs[/datum/supply_pack/service/party]
+ var/datum/supply_pack/pack = SSshuttle.supply_packs[/datum/supply_pack/misc/party]
pack.generate(pick_n_take(empty_shuttle_turfs))
shuttle_spawns.Add(/mob/living/simple_animal/hostile/russian)
diff --git a/code/modules/food_and_drinks/kitchen_machinery/icecream_vat.dm b/code/modules/food_and_drinks/kitchen_machinery/icecream_vat.dm
index fed4fa21ec..a58435959c 100644
--- a/code/modules/food_and_drinks/kitchen_machinery/icecream_vat.dm
+++ b/code/modules/food_and_drinks/kitchen_machinery/icecream_vat.dm
@@ -229,7 +229,7 @@
desc = "Delicious waffle cone, but no ice cream."
icon = 'icons/obj/kitchen.dmi'
icon_state = "icecream_cone_waffle" //default for admin-spawned cones, href_list["cone"] should overwrite this all the time
- list_reagents = list(/datum/reagent/consumable/nutriment = 4)
+ list_reagents = list("nutriment" = 4)
tastes = list("cream" = 2, "waffle" = 1)
var/ice_creamed = 0
var/cone_type
diff --git a/code/modules/food_and_drinks/kitchen_machinery/microwave.dm b/code/modules/food_and_drinks/kitchen_machinery/microwave.dm
index e67de92773..4efac6f508 100644
--- a/code/modules/food_and_drinks/kitchen_machinery/microwave.dm
+++ b/code/modules/food_and_drinks/kitchen_machinery/microwave.dm
@@ -186,8 +186,10 @@
..()
/obj/machinery/microwave/AltClick(mob/user)
+ . = ..()
if(user.canUseTopic(src, !issilicon(usr)))
cook()
+ return TRUE
/obj/machinery/microwave/ui_interact(mob/user)
. = ..()
diff --git a/code/modules/games/cas.dm b/code/modules/games/cas.dm
index fe038ce3f1..4fbb931b32 100644
--- a/code/modules/games/cas.dm
+++ b/code/modules/games/cas.dm
@@ -130,9 +130,11 @@
update_icon()
/obj/item/toy/cards/singlecard/cas/AltClick(mob/living/user)
+ . = ..()
if(!ishuman(user) || !user.canUseTopic(src, BE_CLOSE))
return
Flip()
+ return TRUE
/obj/item/toy/cards/singlecard/cas/update_icon()
if(flipped)
diff --git a/code/modules/integrated_electronics/core/assemblies.dm b/code/modules/integrated_electronics/core/assemblies.dm
index 93ddedebc0..d8bf82a4b4 100644
--- a/code/modules/integrated_electronics/core/assemblies.dm
+++ b/code/modules/integrated_electronics/core/assemblies.dm
@@ -615,6 +615,11 @@
return
..()
+/obj/item/electronic_assembly/can_trigger_gun(mob/living/user) //sanity checks against pocket death weapon circuits
+ if(!can_fire_equipped || !user.is_holding(src))
+ return FALSE
+ return ..()
+
/obj/item/electronic_assembly/default //The /default electronic_assemblys are to allow the introduction of the new naming scheme without breaking old saves.
name = "type-a electronic assembly"
diff --git a/code/modules/integrated_electronics/core/integrated_circuit.dm b/code/modules/integrated_electronics/core/integrated_circuit.dm
index cec3e2348e..40bcbe016b 100644
--- a/code/modules/integrated_electronics/core/integrated_circuit.dm
+++ b/code/modules/integrated_electronics/core/integrated_circuit.dm
@@ -402,3 +402,8 @@ a creative player the means to solve many problems. Circuits are held inside an
return TRUE
return FALSE
+
+/obj/item/integrated_circuit/can_trigger_gun(mob/living/user)
+ if(!user.is_holding(src))
+ return FALSE
+ return ..()
diff --git a/code/modules/integrated_electronics/subtypes/input.dm b/code/modules/integrated_electronics/subtypes/input.dm
index b7feedd312..46f8017b10 100644
--- a/code/modules/integrated_electronics/subtypes/input.dm
+++ b/code/modules/integrated_electronics/subtypes/input.dm
@@ -859,7 +859,7 @@
spawn_flags = IC_SPAWN_DEFAULT|IC_SPAWN_RESEARCH
power_draw_per_use = 5
-/obj/item/integrated_circuit/input/microphone/Hear(message, atom/movable/speaker, message_langs, raw_message, radio_freq, spans, message_mode)
+/obj/item/integrated_circuit/input/microphone/Hear(message, atom/movable/speaker, message_langs, raw_message, radio_freq, spans, message_mode, atom/movable/source)
. = ..()
var/translated = FALSE
if(speaker && message)
diff --git a/code/modules/integrated_electronics/subtypes/manipulation.dm b/code/modules/integrated_electronics/subtypes/manipulation.dm
index fb00897eec..0bdf0547f9 100644
--- a/code/modules/integrated_electronics/subtypes/manipulation.dm
+++ b/code/modules/integrated_electronics/subtypes/manipulation.dm
@@ -11,7 +11,7 @@
w_class = WEIGHT_CLASS_SMALL
complexity = 10
cooldown_per_use = 1
- ext_cooldown = 2
+ ext_cooldown = 4
inputs = list("direction" = IC_PINTYPE_DIR)
outputs = list("obstacle" = IC_PINTYPE_REF)
activators = list("step towards dir" = IC_PINTYPE_PULSE_IN,"on step"=IC_PINTYPE_PULSE_OUT,"blocked"=IC_PINTYPE_PULSE_OUT)
diff --git a/code/modules/integrated_electronics/subtypes/weaponized.dm b/code/modules/integrated_electronics/subtypes/weaponized.dm
index 7bccbfafcd..350f05914d 100644
--- a/code/modules/integrated_electronics/subtypes/weaponized.dm
+++ b/code/modules/integrated_electronics/subtypes/weaponized.dm
@@ -81,9 +81,13 @@
to_chat(user, "There's no weapon to remove from the mechanism.")
/obj/item/integrated_circuit/weaponized/weapon_firing/do_work()
- if(!installed_gun || !installed_gun.handle_pins())
+ if(!assembly || !installed_gun)
return
- if(!isturf(assembly.loc) && !(assembly.can_fire_equipped && ishuman(assembly.loc)))
+ if(isliving(assembly.loc))
+ var/mob/living/L = assembly.loc
+ if(!assembly.can_fire_equipped || !L.is_holding(assembly) || !installed_gun.can_trigger_gun(L)) //includes pins, hulk and other chunky fingers checks.
+ return
+ else if(!isturf(assembly.loc) || !installed_gun.handle_pins())
return
set_pin_data(IC_OUTPUT, 1, WEAKREF(installed_gun))
push_data()
@@ -92,18 +96,17 @@
var/datum/integrated_io/mode1 = inputs[3]
mode = mode1.data
- if(assembly)
- if(isnum(xo.data))
- xo.data = round(xo.data, 1)
- if(isnum(yo.data))
- yo.data = round(yo.data, 1)
+ if(isnum(xo.data))
+ xo.data = round(xo.data, 1)
+ if(isnum(yo.data))
+ yo.data = round(yo.data, 1)
- var/turf/T = get_turf(assembly)
- var/target_x = CLAMP(T.x + xo.data, 0, world.maxx)
- var/target_y = CLAMP(T.y + yo.data, 0, world.maxy)
+ var/turf/T = get_turf(assembly)
+ var/target_x = CLAMP(T.x + xo.data, 0, world.maxx)
+ var/target_y = CLAMP(T.y + yo.data, 0, world.maxy)
- assembly.visible_message("[assembly] fires [installed_gun]!")
- shootAt(locate(target_x, target_y, T.z))
+ assembly.visible_message("[assembly] fires [installed_gun]!")
+ shootAt(locate(target_x, target_y, T.z))
/obj/item/integrated_circuit/weaponized/weapon_firing/proc/shootAt(turf/target)
var/turf/T = get_turf(src)
@@ -246,26 +249,30 @@
if(!A || A.anchored || A.throwing || A == assembly || istype(A, /obj/item/twohanded) || istype(A, /obj/item/transfer_valve))
return
- if(!AT || !AT.air_contents)
+ var/obj/item/I = get_object()
+ var/turf/T = get_turf(I)
+ if(!T)
+ return
+ if(isliving(I.loc))
+ var/mob/living/L = I.loc
+ if(!I.can_trigger_gun(L)) //includes hulk and other chunky fingers checks.
+ return
+ if(HAS_TRAIT(L, TRAIT_PACIFISM) && A.throwforce)
+ to_chat(L, " [I] is lethally chambered! You don't want to risk harming anyone...")
+ return
+ else if(T != I.loc)
return
- if (istype(assembly.loc, /obj/item/implant/storage)) //Prevents the more abusive form of chestgun.
+ if(!AT || !AT.air_contents)
return
if(max_w_class && (A.w_class > max_w_class))
return
- if(!assembly.can_fire_equipped && ishuman(assembly.loc))
- return
-
// Is the target inside the assembly or close to it?
if(!check_target(A, exclude_components = TRUE))
return
- var/turf/T = get_turf(get_object())
- if(!T)
- return
-
// If the item is in mob's inventory, try to remove it from there.
if(ismob(A.loc))
var/mob/living/M = A.loc
diff --git a/code/modules/jobs/job_types/ai.dm b/code/modules/jobs/job_types/ai.dm
index ad665ab701..4bcfab5836 100644
--- a/code/modules/jobs/job_types/ai.dm
+++ b/code/modules/jobs/job_types/ai.dm
@@ -36,7 +36,7 @@
qdel(lateJoinCore)
var/mob/living/silicon/ai/AI = H
AI.apply_pref_name("ai", M.client) //If this runtimes oh well jobcode is fucked.
- AI.set_core_display_icon(M.client)
+ AI.set_core_display_icon(null, M.client)
//we may have been created after our borg
if(SSticker.current_state == GAME_STATE_SETTING_UP)
diff --git a/code/modules/mining/abandoned_crates.dm b/code/modules/mining/abandoned_crates.dm
index f98f0755c8..4cfd2e447f 100644
--- a/code/modules/mining/abandoned_crates.dm
+++ b/code/modules/mining/abandoned_crates.dm
@@ -181,10 +181,11 @@
else
return ..()
+//this helps you not blow up so easily by overriding unlocking which results in an immediate boom.
/obj/structure/closet/crate/secure/loot/AltClick(mob/living/user)
- if(!user.canUseTopic(src, BE_CLOSE))
- return
- return attack_hand(user) //this helps you not blow up so easily by overriding unlocking which results in an immediate boom.
+ if(user.canUseTopic(src, BE_CLOSE))
+ attack_hand(user)
+ return TRUE
/obj/structure/closet/crate/secure/loot/attackby(obj/item/W, mob/user)
if(locked)
diff --git a/code/modules/mining/equipment/marker_beacons.dm b/code/modules/mining/equipment/marker_beacons.dm
index 00ce37b79a..9d595664ff 100644
--- a/code/modules/mining/equipment/marker_beacons.dm
+++ b/code/modules/mining/equipment/marker_beacons.dm
@@ -59,6 +59,7 @@ GLOBAL_LIST_INIT(marker_beacon_colors, list(
/obj/item/stack/marker_beacon/AltClick(mob/living/user)
if(!istype(user) || !user.canUseTopic(src, BE_CLOSE))
return
+ . = TRUE
var/input_color = input(user, "Choose a color.", "Beacon Color") as null|anything in GLOB.marker_beacon_colors
if(!istype(user) || !user.canUseTopic(src, BE_CLOSE))
return
@@ -128,9 +129,10 @@ GLOBAL_LIST_INIT(marker_beacon_colors, list(
return ..()
/obj/structure/marker_beacon/AltClick(mob/living/user)
- ..()
+ . = ..()
if(!istype(user) || !user.canUseTopic(src, BE_CLOSE))
return
+ . = TRUE
var/input_color = input(user, "Choose a color.", "Beacon Color") as null|anything in GLOB.marker_beacon_colors
if(!istype(user) || !user.canUseTopic(src, BE_CLOSE))
return
diff --git a/code/modules/mining/lavaland/necropolis_chests.dm b/code/modules/mining/lavaland/necropolis_chests.dm
index 054103e8dc..ab3b20ac9f 100644
--- a/code/modules/mining/lavaland/necropolis_chests.dm
+++ b/code/modules/mining/lavaland/necropolis_chests.dm
@@ -398,6 +398,7 @@
fire_sound = 'sound/weapons/batonextend.ogg'
max_charges = 1
item_flags = NEEDS_PERMIT | NOBLUDGEON
+ w_class = WEIGHT_CLASS_BULKY
force = 18
/obj/item/ammo_casing/magic/hook
diff --git a/code/modules/mob/dead/new_player/preferences_setup.dm b/code/modules/mob/dead/new_player/preferences_setup.dm
index d54b8256a9..7aae26526e 100644
--- a/code/modules/mob/dead/new_player/preferences_setup.dm
+++ b/code/modules/mob/dead/new_player/preferences_setup.dm
@@ -25,7 +25,7 @@
features = random_features()
age = rand(AGE_MIN,AGE_MAX)
-/datum/preferences/proc/update_preview_icon()
+/datum/preferences/proc/update_preview_icon(equip_job = TRUE)
// Determine what job is marked as 'High' priority, and dress them up as such.
var/datum/job/previewJob
var/highest_pref = 0
@@ -45,12 +45,11 @@
// Set up the dummy for its photoshoot
var/mob/living/carbon/human/dummy/mannequin = generate_or_wait_for_human_dummy(DUMMY_HUMAN_SLOT_PREFERENCES)
- mannequin.cut_overlays()
// Apply the Dummy's preview background first so we properly layer everything else on top of it.
mannequin.add_overlay(mutable_appearance('modular_citadel/icons/ui/backgrounds.dmi', bgstate, layer = SPACE_LAYER))
copy_to(mannequin)
- if(previewJob)
+ if(previewJob && equip_job)
mannequin.job = previewJob.title
previewJob.equip(mannequin, TRUE, preference_source = parent)
diff --git a/code/modules/mob/dead/observer/say.dm b/code/modules/mob/dead/observer/say.dm
index 7eeab05466..69cbd0830a 100644
--- a/code/modules/mob/dead/observer/say.dm
+++ b/code/modules/mob/dead/observer/say.dm
@@ -22,7 +22,7 @@
. = say_dead(message)
-/mob/dead/observer/Hear(message, atom/movable/speaker, message_language, raw_message, radio_freq, list/spans, message_mode)
+/mob/dead/observer/Hear(message, atom/movable/speaker, message_language, raw_message, radio_freq, list/spans, message_mode, atom/movable/source)
. = ..()
var/atom/movable/to_follow = speaker
if(radio_freq)
@@ -35,6 +35,6 @@
to_follow = V.source
var/link = FOLLOW_LINK(src, to_follow)
// Recompose the message, because it's scrambled by default
- message = compose_message(speaker, message_language, raw_message, radio_freq, spans, message_mode)
+ message = compose_message(speaker, message_language, raw_message, radio_freq, spans, message_mode, FALSE, source)
to_chat(src, "[link] [message]")
diff --git a/code/modules/mob/living/carbon/carbon_defense.dm b/code/modules/mob/living/carbon/carbon_defense.dm
index b0e9b808df..c5aeb2c1c7 100644
--- a/code/modules/mob/living/carbon/carbon_defense.dm
+++ b/code/modules/mob/living/carbon/carbon_defense.dm
@@ -355,30 +355,30 @@
if (damage == 1)
to_chat(src, "Your eyes sting a little.")
if(prob(40))
- adjust_eye_damage(1)
+ eyes.applyOrganDamage(1)
else if (damage == 2)
to_chat(src, "Your eyes burn.")
- adjust_eye_damage(rand(2, 4))
+ eyes.applyOrganDamage(rand(2, 4))
else if( damage >= 3)
to_chat(src, "Your eyes itch and burn severely!")
- adjust_eye_damage(rand(12, 16))
+ eyes.applyOrganDamage(rand(12, 16))
- if(eyes.eye_damage > 10)
+ if(eyes.damage > 10)
blind_eyes(damage)
blur_eyes(damage * rand(3, 6))
- if(eyes.eye_damage > 20)
- if(prob(eyes.eye_damage - 20))
+ if(eyes.damage > 20)
+ if(prob(eyes.damage - 20))
if(!HAS_TRAIT(src, TRAIT_NEARSIGHT))
to_chat(src, "Your eyes start to burn badly!")
become_nearsighted(EYE_DAMAGE)
- else if(prob(eyes.eye_damage - 25))
+ else if(prob(eyes.damage - 25))
if(!HAS_TRAIT(src, TRAIT_BLIND))
to_chat(src, "You can't see anything!")
- become_blind(EYE_DAMAGE)
+ eyes.applyOrganDamage(eyes.maxHealth)
else
to_chat(src, "Your eyes are really starting to hurt. This can't be good for you!")
diff --git a/code/modules/mob/living/carbon/human/dummy.dm b/code/modules/mob/living/carbon/human/dummy.dm
index 6da188dd2d..74593a20a0 100644
--- a/code/modules/mob/living/carbon/human/dummy.dm
+++ b/code/modules/mob/living/carbon/human/dummy.dm
@@ -17,6 +17,7 @@ INITIALIZE_IMMEDIATE(/mob/living/carbon/human/dummy)
/mob/living/carbon/human/dummy/proc/wipe_state()
delete_equipment()
+ icon_render_key = null
cut_overlays(TRUE)
//Inefficient pooling/caching way.
diff --git a/code/modules/mob/living/carbon/human/human_defense.dm b/code/modules/mob/living/carbon/human/human_defense.dm
index f9fa5d84da..362a4aaa9d 100644
--- a/code/modules/mob/living/carbon/human/human_defense.dm
+++ b/code/modules/mob/living/carbon/human/human_defense.dm
@@ -388,43 +388,34 @@
return
var/b_loss = 0
var/f_loss = 0
- var/bomb_armor = getarmor(null, "bomb")
+ var/bomb_armor = max(0,(100-getarmor(null, "bomb"))/100)
switch (severity)
if (1)
- if(prob(bomb_armor))
- b_loss = 500
+ if(bomb_armor)
+ b_loss = 500*bomb_armor
var/atom/throw_target = get_edge_target_turf(src, get_dir(src, get_step_away(src, src)))
throw_at(throw_target, 200, 4)
- damage_clothes(400 - bomb_armor, BRUTE, "bomb")
+ damage_clothes(400*bomb_armor, BRUTE, "bomb")
else
- for(var/I in contents)
- var/atom/A = I
- A.ex_act(severity)
+ damage_clothes(400,BRUTE,"bomb")
gib()
return
if (2)
- b_loss = 60
- f_loss = 60
- if(bomb_armor)
- b_loss = 30*(2 - round(bomb_armor*0.01, 0.05))
- f_loss = b_loss
- damage_clothes(200 - bomb_armor, BRUTE, "bomb")
+ b_loss = 60*bomb_armor
+ f_loss = 60*bomb_armor
+ damage_clothes(200*bomb_armor, BRUTE, "bomb")
if (!istype(ears, /obj/item/clothing/ears/earmuffs))
adjustEarDamage(30, 120)
- if (prob(max(70 - (bomb_armor * 0.5), 0)))
- Unconscious(200)
+ Unconscious(200*bomb_armor)
if(3)
- b_loss = 30
- if(bomb_armor)
- b_loss = 15*(2 - round(bomb_armor*0.01, 0.05))
+ b_loss = 30*bomb_armor
damage_clothes(max(50 - bomb_armor, 0), BRUTE, "bomb")
if (!istype(ears, /obj/item/clothing/ears/earmuffs))
adjustEarDamage(15,60)
- if (prob(max(50 - (bomb_armor * 0.5), 0)))
- Unconscious(160)
+ Unconscious(100*bomb_armor)
take_overall_damage(b_loss,f_loss)
diff --git a/code/modules/mob/living/carbon/human/inventory.dm b/code/modules/mob/living/carbon/human/inventory.dm
index 26703977d2..69ec619e5d 100644
--- a/code/modules/mob/living/carbon/human/inventory.dm
+++ b/code/modules/mob/living/carbon/human/inventory.dm
@@ -191,7 +191,6 @@
if(G.vision_correction)
if(HAS_TRAIT(src, TRAIT_NEARSIGHT))
overlay_fullscreen("nearsighted", /obj/screen/fullscreen/impaired, 1)
- adjust_eye_damage(0)
if(G.vision_flags || G.darkness_view || G.invis_override || G.invis_view || !isnull(G.lighting_alpha))
update_sight()
if(!QDELETED(src))
diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm
index ba7acf76d7..96bd62b1f6 100644
--- a/code/modules/mob/living/carbon/human/species.dm
+++ b/code/modules/mob/living/carbon/human/species.dm
@@ -252,7 +252,7 @@ GLOBAL_LIST_EMPTY(roundstart_race_names)
QDEL_NULL(eyes)
if(should_have_eyes && !eyes)
eyes = new mutanteyes
- eyes.Insert(C)
+ eyes.Insert(C, TRUE)
if(ears && (replace_current || !should_have_ears))
ears.Remove(C,1)
diff --git a/code/modules/mob/living/carbon/status_procs.dm b/code/modules/mob/living/carbon/status_procs.dm
index 766bd376b1..6c497bb8d4 100644
--- a/code/modules/mob/living/carbon/status_procs.dm
+++ b/code/modules/mob/living/carbon/status_procs.dm
@@ -2,44 +2,6 @@
//The effects include: stun, knockdown, unconscious, sleeping, resting, jitteriness, dizziness, ear damage,
// eye damage, eye_blind, eye_blurry, druggy, TRAIT_BLIND trait, TRAIT_NEARSIGHT trait, and TRAIT_HUSK trait.
-/mob/living/carbon/damage_eyes(amount)
- var/obj/item/organ/eyes/eyes = getorganslot(ORGAN_SLOT_EYES)
- if (!eyes)
- return
- if(amount>0)
- eyes.eye_damage = amount
- if(eyes.eye_damage > 20)
- if(eyes.eye_damage > 30)
- overlay_fullscreen("eye_damage", /obj/screen/fullscreen/impaired, 2)
- else
- overlay_fullscreen("eye_damage", /obj/screen/fullscreen/impaired, 1)
-
-/mob/living/carbon/set_eye_damage(amount)
- var/obj/item/organ/eyes/eyes = getorganslot(ORGAN_SLOT_EYES)
- if (!eyes)
- return
- eyes.eye_damage = max(amount,0)
- if(eyes.eye_damage > 20)
- if(eyes.eye_damage > 30)
- overlay_fullscreen("eye_damage", /obj/screen/fullscreen/impaired, 2)
- else
- overlay_fullscreen("eye_damage", /obj/screen/fullscreen/impaired, 1)
- else
- clear_fullscreen("eye_damage")
-
-/mob/living/carbon/adjust_eye_damage(amount)
- var/obj/item/organ/eyes/eyes = getorganslot(ORGAN_SLOT_EYES)
- if (!eyes)
- return
- eyes.eye_damage = max(eyes.eye_damage+amount, 0)
- if(eyes.eye_damage > 20)
- if(eyes.eye_damage > 30)
- overlay_fullscreen("eye_damage", /obj/screen/fullscreen/impaired, 2)
- else
- overlay_fullscreen("eye_damage", /obj/screen/fullscreen/impaired, 1)
- else
- clear_fullscreen("eye_damage")
-
/mob/living/carbon/adjust_drugginess(amount)
druggy = max(druggy+amount, 0)
if(druggy)
diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm
index 6ced2a05a1..5299618177 100644
--- a/code/modules/mob/living/living.dm
+++ b/code/modules/mob/living/living.dm
@@ -502,7 +502,6 @@
bodytemperature = BODYTEMP_NORMAL
set_blindness(0)
set_blurriness(0)
- set_eye_damage(0)
cure_nearsighted()
cure_blind()
cure_husk()
@@ -1221,7 +1220,8 @@
if("eye_blind")
set_blindness(var_value)
if("eye_damage")
- set_eye_damage(var_value)
+ var/obj/item/organ/eyes/E = getorganslot(ORGAN_SLOT_EYES)
+ E?.setOrganDamage(var_value)
if("eye_blurry")
set_blurriness(var_value)
if("maxHealth")
diff --git a/code/modules/mob/living/say.dm b/code/modules/mob/living/say.dm
index 660a866271..4c670129c1 100644
--- a/code/modules/mob/living/say.dm
+++ b/code/modules/mob/living/say.dm
@@ -212,11 +212,11 @@ GLOBAL_LIST_INIT(department_radio_keys, list(
if(succumbed)
succumb()
- to_chat(src, compose_message(src, language, message, , spans, message_mode))
+ to_chat(src, compose_message(src, language, message, null, spans, message_mode))
return 1
-/mob/living/Hear(message, atom/movable/speaker, datum/language/message_language, raw_message, radio_freq, list/spans, message_mode)
+/mob/living/Hear(message, atom/movable/speaker, datum/language/message_language, raw_message, radio_freq, list/spans, message_mode, atom/movable/source)
. = ..()
if(!client)
return
@@ -231,7 +231,7 @@ GLOBAL_LIST_INIT(department_radio_keys, list(
deaf_type = 2 // Since you should be able to hear yourself without looking
// Recompose message for AI hrefs, language incomprehension.
- message = compose_message(speaker, message_language, raw_message, radio_freq, spans, message_mode)
+ message = compose_message(speaker, message_language, raw_message, radio_freq, spans, message_mode, FALSE, source)
show_message(message, MSG_AUDIBLE, deaf_message, deaf_type)
return message
@@ -244,8 +244,8 @@ GLOBAL_LIST_INIT(department_radio_keys, list(
var/list/listening = get_hearers_in_view(message_range+eavesdrop_range, source)
var/list/the_dead = list()
var/list/yellareas //CIT CHANGE - adds the ability for yelling to penetrate walls and echo throughout areas
- if(say_test(message) == "2") //CIT CHANGE - ditto
- yellareas = get_areas_in_range(message_range*0.5,src) //CIT CHANGE - ditto
+ if(!eavesdrop_range && say_test(message) == "2") //CIT CHANGE - ditto
+ yellareas = get_areas_in_range(message_range*0.5, source) //CIT CHANGE - ditto
for(var/_M in GLOB.player_list)
var/mob/M = _M
if(M.stat != DEAD) //not dead, not important
@@ -256,7 +256,7 @@ GLOBAL_LIST_INIT(department_radio_keys, list(
continue
if(!M.client || !client) //client is so that ghosts don't have to listen to mice
continue
- if(get_dist(M, src) > 7 || M.z != z) //they're out of range of normal hearing
+ if(get_dist(M, source) > 7 || M.z != z) //they're out of range of normal hearing
if(eavesdropping_modes[message_mode] && !(M.client.prefs.chat_toggles & CHAT_GHOSTWHISPER)) //they're whispering and we have hearing whispers at any range off
continue
if(!(M.client.prefs.chat_toggles & CHAT_GHOSTEARS)) //they're talking normally and we have hearing at any range off
@@ -268,15 +268,15 @@ GLOBAL_LIST_INIT(department_radio_keys, list(
var/eavesrendered
if(eavesdrop_range)
eavesdropping = stars(message)
- eavesrendered = compose_message(src, message_language, eavesdropping, , spans, message_mode)
+ eavesrendered = compose_message(src, message_language, eavesdropping, null, spans, message_mode, FALSE, source)
- var/rendered = compose_message(src, message_language, message, , spans, message_mode)
+ var/rendered = compose_message(src, message_language, message, null, spans, message_mode, FALSE, source)
for(var/_AM in listening)
var/atom/movable/AM = _AM
if(eavesdrop_range && get_dist(source, AM) > message_range && !(the_dead[AM]))
- AM.Hear(eavesrendered, src, message_language, eavesdropping, , spans, message_mode)
+ AM.Hear(eavesrendered, src, message_language, eavesdropping, null, spans, message_mode, source)
else
- AM.Hear(rendered, src, message_language, message, , spans, message_mode)
+ AM.Hear(rendered, src, message_language, message, null, spans, message_mode, source)
SEND_GLOBAL_SIGNAL(COMSIG_GLOB_LIVING_SAY_SPECIAL, src, message)
//speech bubble
diff --git a/code/modules/mob/living/silicon/ai/ai.dm b/code/modules/mob/living/silicon/ai/ai.dm
index 28208e27e4..0444458841 100644
--- a/code/modules/mob/living/silicon/ai/ai.dm
+++ b/code/modules/mob/living/silicon/ai/ai.dm
@@ -176,13 +176,13 @@
fire_stacks = 0
. = ..()
-/mob/living/silicon/ai/proc/set_core_display_icon(client/C)
+/mob/living/silicon/ai/proc/set_core_display_icon(input, client/C)
if(client && !C)
C = client
- if(!(C?.prefs?.preferred_ai_core_display))
- icon_state = display_icon_override || initial(icon_state)
+ if(!input && !C?.prefs?.preferred_ai_core_display)
+ icon_state = initial(icon_state)
else
- var/preferred_icon = display_icon_override || C.prefs.preferred_ai_core_display
+ var/preferred_icon = input ? input : C.prefs.preferred_ai_core_display
icon_state = resolve_ai_icon(preferred_icon)
/mob/living/silicon/ai/verb/pick_icon()
@@ -202,8 +202,9 @@
if(!ai_core_icon || incapacitated())
return
+
display_icon_override = ai_core_icon
- set_core_display_icon()
+ set_core_display_icon(ai_core_icon)
/mob/living/silicon/ai/Stat()
..()
@@ -600,7 +601,10 @@
if(incapacitated())
return
var/list/ai_emotions = list("Very Happy", "Happy", "Neutral", "Unsure", "Confused", "Sad", "BSOD", "Blank", "Problems?", "Awesome", "Facepalm", "Thinking", "Friend Computer", "Dorfy", "Blue Glow", "Red Glow")
- emote_display = input("Please, select a status!", "AI Status", null, null) in ai_emotions
+ var/n_emote = input("Please, select a status!", "AI Status", null, null) in ai_emotions
+ if(!n_emote)
+ return
+ emote_display = n_emote
for (var/each in GLOB.ai_status_displays) //change status of displays
var/obj/machinery/status_display/ai/M = each
M.emotion = emote_display
@@ -887,7 +891,7 @@
. = ..()
if(.) //successfully ressuscitated from death
set_eyeobj_visible(TRUE)
- set_core_display_icon()
+ set_core_display_icon(display_icon_override)
/mob/living/silicon/ai/proc/malfhacked(obj/machinery/power/apc/apc)
malfhack = null
diff --git a/code/modules/mob/living/silicon/ai/freelook/eye.dm b/code/modules/mob/living/silicon/ai/freelook/eye.dm
index c28f08d5b0..7477ba7713 100644
--- a/code/modules/mob/living/silicon/ai/freelook/eye.dm
+++ b/code/modules/mob/living/silicon/ai/freelook/eye.dm
@@ -191,7 +191,7 @@
acceleration = !acceleration
to_chat(usr, "Camera acceleration has been toggled [acceleration ? "on" : "off"].")
-/mob/camera/aiEye/Hear(message, atom/movable/speaker, datum/language/message_language, raw_message, radio_freq, list/spans, message_mode)
+/mob/camera/aiEye/Hear(message, atom/movable/speaker, datum/language/message_language, raw_message, radio_freq, list/spans, message_mode, atom/movable/source)
. = ..()
if(relay_speech && speaker && ai && !radio_freq && speaker != ai && near_camera(speaker))
ai.relay_speech(message, speaker, message_language, raw_message, radio_freq, spans, message_mode)
diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm
index 0484e39c1a..bb18f8e454 100644
--- a/code/modules/mob/living/silicon/robot/robot.dm
+++ b/code/modules/mob/living/silicon/robot/robot.dm
@@ -112,6 +112,8 @@
var/bellyup = 0
var/dogborg = FALSE
+ var/cansprint = 1
+
/mob/living/silicon/robot/get_cell()
return cell
@@ -233,7 +235,6 @@
var/list/modulelist = list("Standard" = /obj/item/robot_module/standard, \
"Engineering" = /obj/item/robot_module/engineering, \
"Medical" = /obj/item/robot_module/medical, \
- "Medihound" = /obj/item/robot_module/medihound, \
"Miner" = /obj/item/robot_module/miner, \
"Service" = /obj/item/robot_module/butler)
if(!CONFIG_GET(flag/disable_peaceborg))
diff --git a/code/modules/mob/living/silicon/robot/robot_modules.dm b/code/modules/mob/living/silicon/robot/robot_modules.dm
index 56011cb886..ccb879870a 100644
--- a/code/modules/mob/living/silicon/robot/robot_modules.dm
+++ b/code/modules/mob/living/silicon/robot/robot_modules.dm
@@ -22,7 +22,7 @@
var/moduleselect_icon = "nomod"
- var/can_be_pushed = TRUE
+ var/can_be_pushed = FALSE
var/magpulsing = FALSE
var/clean_on_move = FALSE
@@ -139,7 +139,7 @@
//Adds flavoursome dogborg items to dogborg variants without mechanical benefits
/obj/item/robot_module/proc/dogborg_equip()
- if(istype(src, /obj/item/robot_module/k9) || istype(src, /obj/item/robot_module/medihound))
+ if(istype(src, /obj/item/robot_module/k9))
return //Bandaid fix to prevent stacking until I merge these two modules into their base types
var/obj/item/I = new /obj/item/analyzer/nose/flavour(src)
basic_modules += I
@@ -322,19 +322,21 @@
/obj/item/stack/medical/gauze/cyborg,
/obj/item/organ_storage,
/obj/item/borg/lollipop,
- /obj/item/sensor_device)
+ /obj/item/sensor_device,
+ /obj/item/twohanded/shockpaddles/cyborg)
emag_modules = list(/obj/item/reagent_containers/borghypo/hacked)
ratvar_modules = list(
/obj/item/clockwork/slab/cyborg/medical,
/obj/item/clockwork/weapon/ratvarian_spear)
cyborg_base_icon = "medical"
moduleselect_icon = "medical"
- can_be_pushed = FALSE
hat_offset = 3
/obj/item/robot_module/medical/be_transformed_to(obj/item/robot_module/old_module)
var/mob/living/silicon/robot/R = loc
- var/borg_icon = input(R, "Select an icon!", "Robot Icon", null) as null|anything in list("Default", "Heavy", "Sleek", "Marina", "Droid", "Eyebot")
+ var/borg_icon = input(R, "Select an icon!", "Robot Icon", null) as null|anything in list("Default", "Heavy", "Sleek", "Marina", "Droid", "Eyebot", "Medihound", "Medihound Dark", "Vale")
+ if(R.client && R.client.ckey in list("nezuli"))
+ borg_icon += "Alina"
if(!borg_icon)
return FALSE
switch(borg_icon)
@@ -356,59 +358,46 @@
if("Heavy")
cyborg_base_icon = "heavymed"
cyborg_icon_override = 'modular_citadel/icons/mob/robots.dmi'
- return ..()
-
-/obj/item/robot_module/medihound
- name = "MediHound"
- basic_modules = list(
- /obj/item/dogborg/jaws/small,
- /obj/item/storage/bag/borgdelivery,
- /obj/item/analyzer/nose,
- /obj/item/soap/tongue,
- /obj/item/extinguisher/mini,
- /obj/item/healthanalyzer,
- /obj/item/dogborg/sleeper/medihound,
- /obj/item/roller/robo,
- /obj/item/reagent_containers/borghypo,
- /obj/item/twohanded/shockpaddles/cyborg/hound,
- /obj/item/stack/medical/gauze/cyborg,
- /obj/item/pinpointer/crew,
- /obj/item/sensor_device)
- emag_modules = list(/obj/item/dogborg/pounce)
- ratvar_modules = list(/obj/item/clockwork/slab/cyborg/medical,
- /obj/item/clockwork/weapon/ratvarian_spear)
- cyborg_base_icon = "medihound"
- moduleselect_icon = "medihound"
- moduleselect_alternate_icon = 'modular_citadel/icons/ui/screen_cyborg.dmi'
- can_be_pushed = FALSE
- hat_offset = INFINITY
- sleeper_overlay = "msleeper"
- cyborg_icon_override = 'modular_citadel/icons/mob/widerobot.dmi'
- has_snowflake_deadsprite = TRUE
- dogborg = TRUE
- cyborg_pixel_offset = -16
-
-/obj/item/robot_module/medihound/be_transformed_to(obj/item/robot_module/old_module)
- var/mob/living/silicon/robot/R = loc
- var/list/medhoundmodels = list("Default", "Dark", "Vale")
- if(R.client && R.client.ckey in list("nezuli"))
- medhoundmodels += "Alina"
- var/borg_icon = input(R, "Select an icon!", "Robot Icon", null) as null|anything in medhoundmodels
- if(!borg_icon)
- return FALSE
- switch(borg_icon)
- if("Default")
+ if("Medihound")
cyborg_base_icon = "medihound"
- if("Dark")
+ cyborg_icon_override = 'modular_citadel/icons/mob/widerobot.dmi'
+ moduleselect_icon = "medihound"
+ moduleselect_alternate_icon = 'modular_citadel/icons/ui/screen_cyborg.dmi'
+ has_snowflake_deadsprite = TRUE
+ dogborg = TRUE
+ cyborg_pixel_offset = -16
+ hat_offset = INFINITY
+ if("Medihound Dark")
cyborg_base_icon = "medihounddark"
+ cyborg_icon_override = 'modular_citadel/icons/mob/widerobot.dmi'
sleeper_overlay = "mdsleeper"
+ moduleselect_icon = "medihound"
+ moduleselect_alternate_icon = 'modular_citadel/icons/ui/screen_cyborg.dmi'
+ has_snowflake_deadsprite = TRUE
+ dogborg = TRUE
+ cyborg_pixel_offset = -16
+ hat_offset = INFINITY
if("Vale")
cyborg_base_icon = "valemed"
+ cyborg_icon_override = 'modular_citadel/icons/mob/widerobot.dmi'
sleeper_overlay = "valemedsleeper"
+ moduleselect_icon = "medihound"
+ moduleselect_alternate_icon = 'modular_citadel/icons/ui/screen_cyborg.dmi'
+ has_snowflake_deadsprite = TRUE
+ dogborg = TRUE
+ cyborg_pixel_offset = -16
+ hat_offset = INFINITY
if("Alina")
cyborg_base_icon = "alina-med"
+ cyborg_icon_override = 'modular_citadel/icons/mob/widerobot.dmi'
special_light_key = "alina"
sleeper_overlay = "alinasleeper"
+ moduleselect_icon = "medihound"
+ moduleselect_alternate_icon = 'modular_citadel/icons/ui/screen_cyborg.dmi'
+ has_snowflake_deadsprite = TRUE
+ dogborg = TRUE
+ cyborg_pixel_offset = -16
+ hat_offset = INFINITY
return ..()
/obj/item/robot_module/engineering
@@ -489,7 +478,6 @@
cyborg_icon_override = 'modular_citadel/icons/mob/robots.dmi'
if("Pup Dozer")
cyborg_base_icon = "pupdozer"
- can_be_pushed = FALSE
hat_offset = INFINITY
cyborg_icon_override = 'modular_citadel/icons/mob/widerobot.dmi'
has_snowflake_deadsprite = TRUE
@@ -498,7 +486,6 @@
sleeper_overlay = "dozersleeper"
if("Vale")
cyborg_base_icon = "valeeng"
- can_be_pushed = FALSE
hat_offset = INFINITY
cyborg_icon_override = 'modular_citadel/icons/mob/widerobot.dmi'
has_snowflake_deadsprite = TRUE
@@ -508,7 +495,6 @@
if("Alina")
cyborg_base_icon = "alina-eng"
special_light_key = "alina"
- can_be_pushed = FALSE
hat_offset = INFINITY
cyborg_icon_override = 'modular_citadel/icons/mob/widerobot.dmi'
has_snowflake_deadsprite = TRUE
@@ -533,7 +519,6 @@
/obj/item/clockwork/weapon/ratvarian_spear)
cyborg_base_icon = "sec"
moduleselect_icon = "security"
- can_be_pushed = FALSE
hat_offset = 3
/obj/item/robot_module/security/do_transform_animation()
@@ -589,7 +574,6 @@
cyborg_base_icon = "k9"
moduleselect_icon = "k9"
moduleselect_alternate_icon = 'modular_citadel/icons/ui/screen_cyborg.dmi'
- can_be_pushed = FALSE
hat_offset = INFINITY
sleeper_overlay = "ksleeper"
cyborg_icon_override = 'modular_citadel/icons/mob/widerobot.dmi'
@@ -652,7 +636,6 @@
/obj/item/clockwork/weapon/ratvarian_spear)
cyborg_base_icon = "peace"
moduleselect_icon = "standard"
- can_be_pushed = FALSE
hat_offset = -2
/obj/item/robot_module/peacekeeper/do_transform_animation()
@@ -947,7 +930,6 @@
/obj/item/clockwork/weapon/ratvarian_spear)
cyborg_base_icon = "synd_sec"
moduleselect_icon = "malf"
- can_be_pushed = FALSE
hat_offset = 3
/obj/item/robot_module/syndicate/rebuild_modules()
@@ -987,7 +969,6 @@
/obj/item/clockwork/weapon/ratvarian_spear)
cyborg_base_icon = "synd_medical"
moduleselect_icon = "malf"
- can_be_pushed = FALSE
hat_offset = 3
/obj/item/robot_module/saboteur
@@ -1026,7 +1007,6 @@
cyborg_base_icon = "synd_engi"
moduleselect_icon = "malf"
- can_be_pushed = FALSE
magpulsing = TRUE
hat_offset = -4
canDispose = TRUE
diff --git a/code/modules/mob/living/silicon/silicon.dm b/code/modules/mob/living/silicon/silicon.dm
index d92b300e28..b9cee43138 100644
--- a/code/modules/mob/living/silicon/silicon.dm
+++ b/code/modules/mob/living/silicon/silicon.dm
@@ -13,7 +13,7 @@
mob_biotypes = list(MOB_ROBOTIC)
rad_flags = RAD_PROTECT_CONTENTS | RAD_NO_CONTAMINATE
speech_span = SPAN_ROBOT
- flags_1 = PREVENT_CONTENTS_EXPLOSION_1
+ flags_1 = PREVENT_CONTENTS_EXPLOSION_1 | HEAR_1
no_vore = TRUE
var/datum/ai_laws/laws = null//Now... THEY ALL CAN ALL HAVE LAWS
diff --git a/code/modules/mob/living/simple_animal/guardian/types/explosive.dm b/code/modules/mob/living/simple_animal/guardian/types/explosive.dm
index b1af34eb02..e9f767376a 100644
--- a/code/modules/mob/living/simple_animal/guardian/types/explosive.dm
+++ b/code/modules/mob/living/simple_animal/guardian/types/explosive.dm
@@ -29,6 +29,7 @@
/mob/living/simple_animal/hostile/guardian/bomb/AltClickOn(atom/movable/A)
if(!istype(A))
+ altclick_listed_turf(A)
return
if(loc == summoner)
to_chat(src, "You must be manifested to create bombs!")
diff --git a/code/modules/mob/living/simple_animal/guardian/types/support.dm b/code/modules/mob/living/simple_animal/guardian/types/support.dm
index d31809e9aa..b9783ed116 100644
--- a/code/modules/mob/living/simple_animal/guardian/types/support.dm
+++ b/code/modules/mob/living/simple_animal/guardian/types/support.dm
@@ -105,8 +105,9 @@
/mob/living/simple_animal/hostile/guardian/healer/AltClickOn(atom/movable/A)
if(!istype(A))
+ altclick_listed_turf(A)
return
- if(src.loc == summoner)
+ if(loc == summoner)
to_chat(src, "You must be manifested to warp a target!")
return
if(!beacon)
diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm
index f685ff1f97..51a9d8d62b 100644
--- a/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm
+++ b/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm
@@ -376,7 +376,7 @@ Difficulty: Very Hard
. += observer_desc
. += "It is activated by [activation_method]."
-/obj/machinery/anomalous_crystal/Hear(message, atom/movable/speaker, message_langs, raw_message, radio_freq, spans, message_mode)
+/obj/machinery/anomalous_crystal/Hear(message, atom/movable/speaker, message_langs, raw_message, radio_freq, spans, message_mode, atom/movable/source)
..()
if(isliving(speaker))
ActivationReaction(speaker, ACTIVATE_SPEECH)
diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm
index 78dc050ee0..0e3cde5628 100644
--- a/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm
+++ b/code/modules/mob/living/simple_animal/hostile/megafauna/drake.dm
@@ -267,6 +267,7 @@ Difficulty: Medium
/mob/living/simple_animal/hostile/megafauna/dragon/AltClickOn(atom/movable/A)
if(!istype(A))
+ altclick_listed_turf(A)
return
if(swoop_cooldown >= world.time)
to_chat(src, "You need to wait 20 seconds between swoop attacks!")
diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm
index cca39cfea6..6279821170 100644
--- a/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm
+++ b/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm
@@ -441,7 +441,7 @@ Difficulty: Normal
/mob/living/simple_animal/hostile/megafauna/hierophant/AltClickOn(atom/A) //player control handler(don't give this to a player holy fuck)
if(!istype(A) || get_dist(A, src) <= 2)
- return
+ return altclick_listed_turf(A)
blink(A)
//Hierophant overlays
diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/megafauna.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/megafauna.dm
index f59878ab0c..8c2fbef15e 100644
--- a/code/modules/mob/living/simple_animal/hostile/megafauna/megafauna.dm
+++ b/code/modules/mob/living/simple_animal/hostile/megafauna/megafauna.dm
@@ -116,8 +116,10 @@
recovery_time = world.time + buffer_time
/mob/living/simple_animal/hostile/megafauna/proc/grant_achievement(medaltype, scoretype, crusher_kill)
- if(!medal_type || (flags_1 & ADMIN_SPAWNED_1) || !SSmedals.hub_enabled) //Don't award medals if the medal type isn't set
+ if(!medal_type || (flags_1 & ADMIN_SPAWNED_1)) //Don't award medals if the medal type isn't set
return FALSE
+ if(!SSmedals.hub_enabled) // This allows subtypes to carry on other special rewards not tied with medals. (such as bubblegum's arena shuttle)
+ return TRUE
for(var/mob/living/L in view(7,src))
if(L.stat || !L.client)
diff --git a/code/modules/mob/living/simple_animal/parrot.dm b/code/modules/mob/living/simple_animal/parrot.dm
index 12bc41d9c5..3d23baae48 100644
--- a/code/modules/mob/living/simple_animal/parrot.dm
+++ b/code/modules/mob/living/simple_animal/parrot.dm
@@ -143,7 +143,7 @@
stat("Held Item", held_item)
stat("Mode",a_intent)
-/mob/living/simple_animal/parrot/Hear(message, atom/movable/speaker, message_langs, raw_message, radio_freq, list/spans, message_mode)
+/mob/living/simple_animal/parrot/Hear(message, atom/movable/speaker, message_langs, raw_message, radio_freq, list/spans, message_mode, atom/movable/source)
. = ..()
if(speaker != src && prob(50)) //Dont imitate ourselves
if(!radio_freq || prob(10))
diff --git a/code/modules/mob/living/simple_animal/slime/say.dm b/code/modules/mob/living/simple_animal/slime/say.dm
index a2618b711e..c48249d80f 100644
--- a/code/modules/mob/living/simple_animal/slime/say.dm
+++ b/code/modules/mob/living/simple_animal/slime/say.dm
@@ -1,4 +1,4 @@
-/mob/living/simple_animal/slime/Hear(message, atom/movable/speaker, message_langs, raw_message, radio_freq, spans, message_mode)
+/mob/living/simple_animal/slime/Hear(message, atom/movable/speaker, message_langs, raw_message, radio_freq, spans, message_mode, atom/movable/source)
. = ..()
if(speaker != src && !radio_freq && !stat)
if (speaker in Friends)
diff --git a/code/modules/mob/living/ventcrawling.dm b/code/modules/mob/living/ventcrawling.dm
index cacd1c7c56..7f8513bfd9 100644
--- a/code/modules/mob/living/ventcrawling.dm
+++ b/code/modules/mob/living/ventcrawling.dm
@@ -8,6 +8,7 @@ GLOBAL_LIST_INIT(ventcrawl_machinery, typecacheof(list(
/mob/living/proc/handle_ventcrawl(atom/A)
if(!ventcrawler || !Adjacent(A))
return
+ . = TRUE //return value to stop the client from being shown the turf contents stat tab on alt-click.
if(stat)
to_chat(src, "You must be conscious to do this!")
return
diff --git a/code/modules/mob/status_procs.dm b/code/modules/mob/status_procs.dm
index 606d6d4f66..17311daec2 100644
--- a/code/modules/mob/status_procs.dm
+++ b/code/modules/mob/status_procs.dm
@@ -134,17 +134,6 @@
/mob/proc/Dizzy(amount)
dizziness = max(dizziness,amount,0)
-/////////////////////////////////// EYE DAMAGE ////////////////////////////////////
-
-/mob/proc/damage_eyes(amount)
- return
-
-/mob/proc/adjust_eye_damage(amount)
- return
-
-/mob/proc/set_eye_damage(amount)
- return
-
/////////////////////////////////// EYE_BLIND ////////////////////////////////////
/mob/proc/blind_eyes(amount)
diff --git a/code/modules/modular_computers/computers/item/computer.dm b/code/modules/modular_computers/computers/item/computer.dm
index 1b3501f78b..79c74de2eb 100644
--- a/code/modules/modular_computers/computers/item/computer.dm
+++ b/code/modules/modular_computers/computers/item/computer.dm
@@ -126,7 +126,7 @@
portable_drive.verb_pickup()
/obj/item/modular_computer/AltClick(mob/user)
- ..()
+ . = ..()
if(issilicon(user))
return
@@ -142,7 +142,7 @@
return
if(ai_slot)
ai_slot.try_eject(null, user)
-
+ return TRUE
// Gets IDs/access levels from card slot. Would be useful when/if PDAs would become modular PCs.
/obj/item/modular_computer/GetAccess()
diff --git a/code/modules/modular_computers/computers/item/laptop.dm b/code/modules/modular_computers/computers/item/laptop.dm
index 4d4dee1b8c..ce8ab9659c 100644
--- a/code/modules/modular_computers/computers/item/laptop.dm
+++ b/code/modules/modular_computers/computers/item/laptop.dm
@@ -86,8 +86,8 @@
/obj/item/modular_computer/laptop/AltClick(mob/user)
if(screen_on) // Close it.
try_toggle_open(user)
- else
- return ..()
+ return TRUE
+ return ..()
/obj/item/modular_computer/laptop/proc/toggle_open(mob/living/user=null)
if(screen_on)
diff --git a/code/modules/modular_computers/computers/machinery/modular_computer.dm b/code/modules/modular_computers/computers/machinery/modular_computer.dm
index b3476e7046..a988003b67 100644
--- a/code/modules/modular_computers/computers/machinery/modular_computer.dm
+++ b/code/modules/modular_computers/computers/machinery/modular_computer.dm
@@ -94,8 +94,9 @@
cpu.eject_card()
/obj/machinery/modular_computer/AltClick(mob/user)
+ . = ..()
if(cpu)
- cpu.AltClick(user)
+ return cpu.AltClick(user)
//ATTACK HAND IGNORING PARENT RETURN VALUE
// On-click handling. Turns on the computer if it's off and opens the GUI.
diff --git a/code/modules/paperwork/paperplane.dm b/code/modules/paperwork/paperplane.dm
index ecef5a703a..2ca6ce2611 100644
--- a/code/modules/paperwork/paperplane.dm
+++ b/code/modules/paperwork/paperplane.dm
@@ -44,10 +44,12 @@
return ..()
/obj/item/paperplane/suicide_act(mob/living/user)
+ var/obj/item/organ/eyes/eyes = user.getorganslot(ORGAN_SLOT_EYES)
user.Stun(200)
user.visible_message("[user] jams [src] in [user.p_their()] nose. It looks like [user.p_theyre()] trying to commit suicide!")
user.adjust_blurriness(6)
- user.adjust_eye_damage(rand(6,8))
+ if(eyes)
+ eyes.applyOrganDamage(rand(6,8))
sleep(10)
return (BRUTELOSS)
@@ -111,9 +113,11 @@
if(prob(hit_probability))
if(H.is_eyes_covered())
return
+ var/obj/item/organ/eyes/eyes = H.getorganslot(ORGAN_SLOT_EYES)
visible_message("\The [src] hits [H] in the eye!")
H.adjust_blurriness(6)
- H.adjust_eye_damage(rand(6,8))
+ if(eyes)
+ eyes.applyOrganDamage(rand(6,8))
H.Knockdown(40)
H.emote("scream")
@@ -122,6 +126,7 @@
. += "Alt-click [src] to fold it into a paper plane."
/obj/item/paper/AltClick(mob/living/carbon/user, obj/item/I)
+ . = ..()
if(!istype(user) || !user.canUseTopic(src, BE_CLOSE, ismonkey(user), NO_TK))
return
to_chat(user, "You fold [src] into the shape of a plane!")
@@ -134,3 +139,4 @@
I = new plane_type(user, src)
user.put_in_hands(I)
+ return TRUE
diff --git a/code/modules/photography/camera/camera.dm b/code/modules/photography/camera/camera.dm
index 9d01eca0cf..96738e5021 100644
--- a/code/modules/photography/camera/camera.dm
+++ b/code/modules/photography/camera/camera.dm
@@ -46,13 +46,14 @@
. += "Alt-click to change its focusing, allowing you to set how big of an area it will capture."
/obj/item/camera/AltClick(mob/user)
+ . = ..()
if(!user.canUseTopic(src, BE_CLOSE))
return
var/desired_x = input(user, "How high do you want the camera to shoot, between [picture_size_x_min] and [picture_size_x_max]?", "Zoom", picture_size_x) as num
var/desired_y = input(user, "How wide do you want the camera to shoot, between [picture_size_y_min] and [picture_size_y_max]?", "Zoom", picture_size_y) as num
picture_size_x = min(CLAMP(desired_x, picture_size_x_min, picture_size_x_max), CAMERA_PICTURE_SIZE_HARD_LIMIT)
picture_size_y = min(CLAMP(desired_y, picture_size_y_min, picture_size_y_max), CAMERA_PICTURE_SIZE_HARD_LIMIT)
-
+ return TRUE
/obj/item/camera/attack(mob/living/carbon/human/M, mob/user)
return
diff --git a/code/modules/power/apc.dm b/code/modules/power/apc.dm
index 5e3888a8c5..5da29bf5ac 100644
--- a/code/modules/power/apc.dm
+++ b/code/modules/power/apc.dm
@@ -702,11 +702,11 @@
return ..()
/obj/machinery/power/apc/AltClick(mob/user)
- ..()
+ . = ..()
if(!user.canUseTopic(src, !issilicon(user)) || !isturf(loc))
return
- else
- togglelock(user)
+ togglelock(user)
+ return TRUE
/obj/machinery/power/apc/proc/togglelock(mob/living/user)
if(obj_flags & EMAGGED)
diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm
index 026f725e2f..531c6082b0 100644
--- a/code/modules/projectiles/gun.dm
+++ b/code/modules/projectiles/gun.dm
@@ -198,8 +198,13 @@
/obj/item/gun/can_trigger_gun(mob/living/user)
. = ..()
+ if(!.)
+ return
if(!handle_pins(user))
return FALSE
+ if(HAS_TRAIT(user, TRAIT_PACIFISM) && chambered?.harmful) // If the user has the pacifist trait, then they won't be able to fire [src] if the round chambered inside of [src] is lethal.
+ to_chat(user, " [src] is lethally chambered! You don't want to risk harming anyone...")
+ return FALSE
/obj/item/gun/proc/handle_pins(mob/living/user)
if(pin)
@@ -275,10 +280,6 @@
addtimer(CALLBACK(src, .proc/process_burst, user, target, message, params, zone_override, sprd, randomized_gun_spread, randomized_bonus_spread, rand_spr, i), fire_delay * (i - 1))
else
if(chambered)
- if(HAS_TRAIT(user, TRAIT_PACIFISM)) // If the user has the pacifist trait, then they won't be able to fire [src] if the round chambered inside of [src] is lethal.
- if(chambered.harmful) // Is the bullet chambered harmful?
- to_chat(user, " [src] is lethally chambered! You don't want to risk harming anyone...")
- return
sprd = round((rand() - 0.5) * DUALWIELD_PENALTY_EXTRA_MULTIPLIER * (randomized_gun_spread + randomized_bonus_spread))
if(!chambered.fire_casing(target, user, params, , suppressed, zone_override, sprd, src))
shoot_with_empty_chamber(user)
diff --git a/code/modules/projectiles/guns/ballistic/shotgun.dm b/code/modules/projectiles/guns/ballistic/shotgun.dm
index 1e1b518849..571525d8f0 100644
--- a/code/modules/projectiles/guns/ballistic/shotgun.dm
+++ b/code/modules/projectiles/guns/ballistic/shotgun.dm
@@ -225,10 +225,11 @@
spread = 2
/obj/item/gun/ballistic/shotgun/automatic/combat/compact/AltClick(mob/living/user)
+ . = ..()
if(!istype(user) || !user.canUseTopic(src, BE_CLOSE, ismonkey(user)))
return
toggle_stock(user)
- . = ..()
+ return TRUE
/obj/item/gun/ballistic/shotgun/automatic/combat/compact/examine(mob/user)
. = ..()
@@ -289,8 +290,10 @@
to_chat(user, "You switch to tube A.")
/obj/item/gun/ballistic/shotgun/automatic/dual_tube/AltClick(mob/living/user)
+ . = ..()
if(!istype(user) || !user.canUseTopic(src, BE_CLOSE, ismonkey(user)))
return
pump()
+ return TRUE
// DOUBLE BARRELED SHOTGUN and IMPROVISED SHOTGUN are in revolver.dm
diff --git a/code/modules/projectiles/projectile/energy.dm b/code/modules/projectiles/projectile/energy.dm
deleted file mode 100644
index 047d50beaf..0000000000
--- a/code/modules/projectiles/projectile/energy.dm
+++ /dev/null
@@ -1,203 +0,0 @@
-/obj/item/projectile/energy
- name = "energy"
- icon_state = "spark"
- damage = 0
- damage_type = BURN
- flag = "energy"
- is_reflectable = TRUE
-
-/obj/item/projectile/energy/chameleon
- nodamage = TRUE
-
-/obj/item/projectile/energy/electrode
- name = "electrode"
- icon_state = "spark"
- color = "#FFFF00"
- nodamage = 1
- knockdown = 100
- stutter = 5
- jitter = 20
- hitsound = 'sound/weapons/taserhit.ogg'
- range = 7
- tracer_type = /obj/effect/projectile/tracer/stun
- muzzle_type = /obj/effect/projectile/muzzle/stun
- impact_type = /obj/effect/projectile/impact/stun
-
-/obj/item/projectile/energy/electrode/on_hit(atom/target, blocked = FALSE)
- . = ..()
- if(!ismob(target) || blocked >= 100) //Fully blocked by mob or collided with dense object - burst into sparks!
- do_sparks(1, TRUE, src)
- else if(iscarbon(target))
- var/mob/living/carbon/C = target
- if(C.dna && C.dna.check_mutation(HULK))
- C.say(pick(";RAAAAAAAARGH!", ";HNNNNNNNNNGGGGGGH!", ";GWAAAAAAAARRRHHH!", "NNNNNNNNGGGGGGGGHH!", ";AAAAAAARRRGH!" ))
- else if((C.status_flags & CANKNOCKDOWN) && !HAS_TRAIT(C, TRAIT_STUNIMMUNE))
- addtimer(CALLBACK(C, /mob/living/carbon.proc/do_jitter_animation, jitter), 5)
-
-/obj/item/projectile/energy/electrode/on_range() //to ensure the bolt sparks when it reaches the end of its range if it didn't hit a target yet
- do_sparks(1, TRUE, src)
- ..()
-
-/obj/item/projectile/energy/net
- name = "energy netting"
- icon_state = "e_netting"
- damage = 10
- damage_type = STAMINA
- hitsound = 'sound/weapons/taserhit.ogg'
- range = 10
-
-/obj/item/projectile/energy/net/Initialize()
- . = ..()
- SpinAnimation()
-
-/obj/item/projectile/energy/net/on_hit(atom/target, blocked = FALSE)
- if(isliving(target))
- var/turf/Tloc = get_turf(target)
- if(!locate(/obj/effect/nettingportal) in Tloc)
- new /obj/effect/nettingportal(Tloc)
- ..()
-
-/obj/item/projectile/energy/net/on_range()
- do_sparks(1, TRUE, src)
- ..()
-
-/obj/effect/nettingportal
- name = "DRAGnet teleportation field"
- desc = "A field of bluespace energy, locking on to teleport a target."
- icon = 'icons/effects/effects.dmi'
- icon_state = "dragnetfield"
- light_range = 3
- anchored = TRUE
-
-/obj/effect/nettingportal/Initialize()
- . = ..()
- var/obj/item/radio/beacon/teletarget = null
- for(var/obj/machinery/computer/teleporter/com in GLOB.machines)
- if(com.target)
- if(com.power_station && com.power_station.teleporter_hub && com.power_station.engaged)
- teletarget = com.target
-
- addtimer(CALLBACK(src, .proc/pop, teletarget), 30)
-
-/obj/effect/nettingportal/proc/pop(teletarget)
- if(teletarget)
- for(var/mob/living/L in get_turf(src))
- do_teleport(L, teletarget, 2)//teleport what's in the tile to the beacon
- else
- for(var/mob/living/L in get_turf(src))
- do_teleport(L, L, 15) //Otherwise it just warps you off somewhere.
-
- qdel(src)
-
-/obj/effect/nettingportal/singularity_act()
- return
-
-/obj/effect/nettingportal/singularity_pull()
- return
-
-
-/obj/item/projectile/energy/trap
- name = "energy snare"
- icon_state = "e_snare"
- nodamage = 1
- knockdown = 20
- hitsound = 'sound/weapons/taserhit.ogg'
- range = 4
-
-/obj/item/projectile/energy/trap/on_hit(atom/target, blocked = FALSE)
- if(!ismob(target) || blocked >= 100) //Fully blocked by mob or collided with dense object - drop a trap
- new/obj/item/restraints/legcuffs/beartrap/energy(get_turf(loc))
- else if(iscarbon(target))
- var/obj/item/restraints/legcuffs/beartrap/B = new /obj/item/restraints/legcuffs/beartrap/energy(get_turf(target))
- B.Crossed(target)
- ..()
-
-/obj/item/projectile/energy/trap/on_range()
- new /obj/item/restraints/legcuffs/beartrap/energy(loc)
- ..()
-
-/obj/item/projectile/energy/trap/cyborg
- name = "Energy Bola"
- icon_state = "e_snare"
- nodamage = 1
- knockdown = 0
- hitsound = 'sound/weapons/taserhit.ogg'
- range = 10
-
-/obj/item/projectile/energy/trap/cyborg/on_hit(atom/target, blocked = FALSE)
- if(!ismob(target) || blocked >= 100)
- do_sparks(1, TRUE, src)
- qdel(src)
- if(iscarbon(target))
- var/obj/item/restraints/legcuffs/beartrap/B = new /obj/item/restraints/legcuffs/beartrap/energy/cyborg(get_turf(target))
- B.Crossed(target)
- QDEL_IN(src, 10)
- ..()
-
-/obj/item/projectile/energy/trap/cyborg/on_range()
- do_sparks(1, TRUE, src)
- qdel(src)
-
-/obj/item/projectile/energy/declone
- name = "radiation beam"
- icon_state = "declone"
- damage = 20
- damage_type = CLONE
- irradiate = 10
- impact_effect_type = /obj/effect/temp_visual/impact_effect/green_laser
-
-/obj/item/projectile/energy/dart //ninja throwing dart
- name = "dart"
- icon_state = "toxin"
- damage = 5
- damage_type = TOX
- knockdown = 100
- range = 7
-
-/obj/item/projectile/energy/bolt //ebow bolts
- name = "bolt"
- icon_state = "cbbolt"
- damage = 8
- damage_type = TOX
- nodamage = 0
- knockdown = 100
- stutter = 5
-
-/obj/item/projectile/energy/bolt/halloween
- name = "candy corn"
- icon_state = "candy_corn"
-
-/obj/item/projectile/energy/bolt/large
- damage = 20
-
-/obj/item/projectile/energy/tesla
- name = "tesla bolt"
- icon_state = "tesla_projectile"
- impact_effect_type = /obj/effect/temp_visual/impact_effect/blue_laser
- var/chain
-
-/obj/item/projectile/energy/tesla/fire(setAngle)
- if(firer)
- chain = firer.Beam(src, icon_state = "lightning[rand(1, 12)]", time = INFINITY, maxdistance = INFINITY)
- ..()
-
-/obj/item/projectile/energy/tesla/Destroy()
- qdel(chain)
- return ..()
-
-/obj/item/projectile/energy/tesla/revolver
- name = "energy orb"
-
-/obj/item/projectile/energy/tesla/revolver/on_hit(atom/target)
- . = ..()
- if(isliving(target))
- tesla_zap(target, 3, 10000)
- qdel(src)
-
-/obj/item/projectile/energy/tesla/cannon
- name = "tesla orb"
-
-/obj/item/projectile/energy/tesla/cannon/on_hit(atom/target)
- . = ..()
- tesla_zap(target, 3, 10000, explosive = FALSE, stun_mobs = FALSE)
- qdel(src)
diff --git a/code/modules/projectiles/projectile/megabuster.dm b/code/modules/projectiles/projectile/megabuster.dm
index bfe9f40297..8abb182a1e 100644
--- a/code/modules/projectiles/projectile/megabuster.dm
+++ b/code/modules/projectiles/projectile/megabuster.dm
@@ -6,7 +6,6 @@
damage_type = BURN
hitsound = 'sound/weapons/sear.ogg'
hitsound_wall = 'sound/weapons/effects/searwall.ogg'
- icon = 'modular_citadel/icons/obj/VGprojectile.dmi'
lefthand_file = 'modular_citadel/icons/mob/citadel/guns_lefthand.dmi'
righthand_file = 'modular_citadel/icons/mob/citadel/guns_righthand.dmi'
@@ -14,6 +13,5 @@
name = "buster pellet"
icon_state = "megabuster"
nodamage = 1
- icon = 'modular_citadel/icons/obj/VGprojectile.dmi'
lefthand_file = 'modular_citadel/icons/mob/citadel/guns_lefthand.dmi'
righthand_file = 'modular_citadel/icons/mob/citadel/guns_righthand.dmi'
diff --git a/code/modules/projectiles/projectile/plasma.dm b/code/modules/projectiles/projectile/plasma.dm
index f9adb9f3d7..038200b9df 100644
--- a/code/modules/projectiles/projectile/plasma.dm
+++ b/code/modules/projectiles/projectile/plasma.dm
@@ -1,5 +1,4 @@
obj/item/projectile/energy/plasmabolt
- icon = 'modular_citadel/icons/obj/VGProjectile.dmi'
name = "plasma bolt"
icon_state = "plasma"
flag = "energy"
diff --git a/code/modules/reagents/chemistry/holder.dm b/code/modules/reagents/chemistry/holder.dm
index fb064b6146..f2c6dd2fb5 100644
--- a/code/modules/reagents/chemistry/holder.dm
+++ b/code/modules/reagents/chemistry/holder.dm
@@ -843,7 +843,7 @@
return FALSE
if (D.id == "water" && !no_react && !istype(my_atom, /obj/item/reagent_containers/food)) //Do like an otter, add acid to water, but also don't blow up botany.
- if (pH <= 2)
+ if (pH < 2)
SSblackbox.record_feedback("tally", "fermi_chem", 1, "water-acid explosions")
var/datum/effect_system/smoke_spread/chem/s = new
var/turf/T = get_turf(my_atom)
diff --git a/code/modules/reagents/chemistry/machinery/chem_dispenser.dm b/code/modules/reagents/chemistry/machinery/chem_dispenser.dm
index 7e5cb21822..a3dd3c8049 100644
--- a/code/modules/reagents/chemistry/machinery/chem_dispenser.dm
+++ b/code/modules/reagents/chemistry/machinery/chem_dispenser.dm
@@ -428,10 +428,11 @@
return final_list
/obj/machinery/chem_dispenser/AltClick(mob/living/user)
+ . = ..()
if(!istype(user) || !user.canUseTopic(src, BE_CLOSE, FALSE, NO_TK))
return
replace_beaker(user)
- return
+ return TRUE
/obj/machinery/chem_dispenser/drinks/Initialize()
. = ..()
diff --git a/code/modules/reagents/chemistry/machinery/chem_heater.dm b/code/modules/reagents/chemistry/machinery/chem_heater.dm
index eeb452dbb5..b4f14c69a7 100644
--- a/code/modules/reagents/chemistry/machinery/chem_heater.dm
+++ b/code/modules/reagents/chemistry/machinery/chem_heater.dm
@@ -29,10 +29,11 @@
icon_state = "mixer0b"
/obj/machinery/chem_heater/AltClick(mob/living/user)
+ . = ..()
if(!istype(user) || !user.canUseTopic(src, BE_CLOSE, FALSE, NO_TK))
return
replace_beaker(user)
- return
+ return TRUE
/obj/machinery/chem_heater/proc/replace_beaker(mob/living/user, obj/item/reagent_containers/new_beaker)
if(beaker)
diff --git a/code/modules/reagents/chemistry/machinery/chem_master.dm b/code/modules/reagents/chemistry/machinery/chem_master.dm
index f540ae850d..06e33ddf9f 100644
--- a/code/modules/reagents/chemistry/machinery/chem_master.dm
+++ b/code/modules/reagents/chemistry/machinery/chem_master.dm
@@ -112,10 +112,11 @@
return ..()
/obj/machinery/chem_master/AltClick(mob/living/user)
+ . = ..()
if(!istype(user) || !user.canUseTopic(src, BE_CLOSE, FALSE, NO_TK))
return
replace_beaker(user)
- return
+ return TRUE
/obj/machinery/chem_master/proc/replace_beaker(mob/living/user, obj/item/reagent_containers/new_beaker)
if(beaker)
diff --git a/code/modules/reagents/chemistry/machinery/pandemic.dm b/code/modules/reagents/chemistry/machinery/pandemic.dm
index 05fa4d382a..6ae0a682d8 100644
--- a/code/modules/reagents/chemistry/machinery/pandemic.dm
+++ b/code/modules/reagents/chemistry/machinery/pandemic.dm
@@ -237,10 +237,11 @@
return ..()
/obj/machinery/computer/pandemic/AltClick(mob/living/user)
+ . = ..()
if(!istype(user) || !user.canUseTopic(src, BE_CLOSE, FALSE, NO_TK))
return
replace_beaker(user)
- return
+ return TRUE
/obj/machinery/computer/pandemic/proc/replace_beaker(mob/living/user, obj/item/reagent_containers/new_beaker)
if(beaker)
diff --git a/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm b/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm
index bd60880324..f96acf2d71 100644
--- a/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm
+++ b/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm
@@ -199,17 +199,17 @@ All effects don't start immediately, but rather get worse over time; the rate is
to_chat(M, "[pick("You have a really bad headache.", "Your eyes hurt.", "You find it hard to stay still.", "You feel your heart practically beating out of your chest.")]")
if(prob(5) && iscarbon(M))
+ var/obj/item/organ/eyes/eyes = M.getorganslot(ORGAN_SLOT_EYES)
if(HAS_TRAIT(M, TRAIT_BLIND))
- var/obj/item/organ/eyes/eye = M.getorganslot(ORGAN_SLOT_EYES)
- if(istype(eye))
- eye.Remove(M)
- eye.forceMove(get_turf(M))
+ if(eyes)
+ eyes.Remove(M)
+ eyes.forceMove(get_turf(M))
to_chat(M, "You double over in pain as you feel your eyeballs liquify in your head!")
M.emote("scream")
M.adjustBruteLoss(15)
else
to_chat(M, "You scream in terror as you go blind!")
- M.become_blind(EYE_DAMAGE)
+ eyes?.applyOrganDamage(eyes.maxHealth)
M.emote("scream")
if(prob(3) && iscarbon(M))
diff --git a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm
index f31613702c..2a8ad86646 100644
--- a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm
+++ b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm
@@ -793,6 +793,7 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M)
var/obj/item/organ/eyes/eyes = M.getorganslot(ORGAN_SLOT_EYES)
if (!eyes)
return
+ eyes.applyOrganDamage(-2)
if(HAS_TRAIT_FROM(M, TRAIT_BLIND, EYE_DAMAGE))
if(prob(20))
to_chat(M, "Your vision slowly returns...")
@@ -807,8 +808,6 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M)
else if(M.eye_blind || M.eye_blurry)
M.set_blindness(0)
M.set_blurriness(0)
- else if(eyes.eye_damage > 0)
- M.adjust_eye_damage(-1)
..()
/datum/reagent/medicine/atropine
diff --git a/code/modules/reagents/chemistry/reagents/other_reagents.dm b/code/modules/reagents/chemistry/reagents/other_reagents.dm
index e91719504e..bb65392057 100644
--- a/code/modules/reagents/chemistry/reagents/other_reagents.dm
+++ b/code/modules/reagents/chemistry/reagents/other_reagents.dm
@@ -1654,7 +1654,7 @@
description = "Cheap and extremely common type of plant nutriment."
color = "#376400" // RBG: 50, 100, 0
tox_prob = 10
- pH = 2
+ pH = 2.5
/datum/reagent/plantnutriment/left4zednutriment
name = "Left 4 Zed"
@@ -1662,7 +1662,7 @@
description = "Unstable nutriment that makes plants mutate more often than usual."
color = "#1A1E4D" // RBG: 26, 30, 77
tox_prob = 25
- pH = 1.5
+ pH = 3.5
/datum/reagent/plantnutriment/robustharvestnutriment
name = "Robust Harvest"
@@ -1670,7 +1670,7 @@
description = "Very potent nutriment that prevents plants from mutating."
color = "#9D9D00" // RBG: 157, 157, 0
tox_prob = 15
- pH = 1
+ pH = 2.5
// GOON OTHERS
diff --git a/code/modules/reagents/chemistry/reagents/toxin_reagents.dm b/code/modules/reagents/chemistry/reagents/toxin_reagents.dm
index e77cf5b9dc..f97204b45e 100644
--- a/code/modules/reagents/chemistry/reagents/toxin_reagents.dm
+++ b/code/modules/reagents/chemistry/reagents/toxin_reagents.dm
@@ -33,7 +33,7 @@
toxpwr = 0
taste_description = "slime"
taste_mult = 0.9
- pH = 2
+ pH = 2.3
/datum/reagent/toxin/mutagen/reaction_mob(mob/living/carbon/M, method=TOUCH, reac_volume)
if(!..())
@@ -220,7 +220,7 @@
color = "#49002E" // rgb: 73, 0, 46
toxpwr = 1
taste_mult = 1
- pH = 2
+ pH = 2.7
/datum/reagent/toxin/plantbgone/reaction_obj(obj/O, reac_volume)
if(istype(O, /obj/structure/alien/weeds))
@@ -986,4 +986,3 @@
to_chat(M, "[tox_message]")
. = 1
..()
-
diff --git a/code/modules/reagents/reagent_containers/hypospray.dm b/code/modules/reagents/reagent_containers/hypospray.dm
index 85cb544667..f1a4d1554e 100644
--- a/code/modules/reagents/reagent_containers/hypospray.dm
+++ b/code/modules/reagents/reagent_containers/hypospray.dm
@@ -338,8 +338,10 @@
return FALSE
/obj/item/hypospray/mkii/AltClick(mob/user)
+ . = ..()
if(vial)
vial.attack_self(user)
+ return TRUE
// Gunna allow this for now, still really don't approve - Pooj
/obj/item/hypospray/mkii/emag_act(mob/user)
diff --git a/code/modules/reagents/reagent_containers/rags.dm b/code/modules/reagents/reagent_containers/rags.dm
index 414208d0bf..d09b18f244 100644
--- a/code/modules/reagents/reagent_containers/rags.dm
+++ b/code/modules/reagents/reagent_containers/rags.dm
@@ -104,6 +104,7 @@
msg += "'s liquids into \the [target]"
reagents.trans_to(target, reagents.total_volume)
to_chat(user, "[msg].")
+ return TRUE
/obj/item/reagent_containers/rag/towel
diff --git a/code/modules/recycling/conveyor2.dm b/code/modules/recycling/conveyor2.dm
index 5875e821a3..7701e58616 100644
--- a/code/modules/recycling/conveyor2.dm
+++ b/code/modules/recycling/conveyor2.dm
@@ -135,6 +135,9 @@ GLOBAL_LIST_EMPTY(conveyors_by_id)
addtimer(CALLBACK(src, .proc/convey, affecting), 1)
/obj/machinery/conveyor/proc/convey(list/affecting)
+ var/turf/T = get_step(src, movedir)
+ if(length(T.contents) > 150)
+ return
for(var/atom/movable/A in affecting)
if((A.loc == loc) && A.has_gravity())
A.ConveyorMove(movedir)
diff --git a/code/modules/research/designs/mechfabricator_designs.dm b/code/modules/research/designs/mechfabricator_designs.dm
index e8c8bab09f..113a6262c9 100644
--- a/code/modules/research/designs/mechfabricator_designs.dm
+++ b/code/modules/research/designs/mechfabricator_designs.dm
@@ -696,15 +696,6 @@
construction_time = 120
category = list("Cyborg Upgrade Modules")
-/datum/design/borg_upgrade_defibrillator
- name = "Cyborg Upgrade (Defibrillator)"
- id = "borg_upgrade_defibrillator"
- build_type = MECHFAB
- build_path = /obj/item/borg/upgrade/defib
- materials = list(MAT_METAL=15000, MAT_GLASS=15000, MAT_SILVER=10000, MAT_GOLD=10000, MAT_TITANIUM=5000, MAT_DIAMOND=5000)
- construction_time = 120
- category = list("Cyborg Upgrade Modules")
-
/datum/design/borg_upgrade_surgicalprocessor
name = "Cyborg Upgrade (Surgical Processor)"
id = "borg_upgrade_surgicalprocessor"
diff --git a/code/modules/research/nanites/nanite_hijacker.dm b/code/modules/research/nanites/nanite_hijacker.dm
index 88779df447..920c42b411 100644
--- a/code/modules/research/nanites/nanite_hijacker.dm
+++ b/code/modules/research/nanites/nanite_hijacker.dm
@@ -14,6 +14,7 @@
return
if(disk)
eject()
+ return TRUE
/obj/item/nanite_hijacker/examine(mob/user)
. = ..()
diff --git a/code/modules/research/nanites/nanite_remote.dm b/code/modules/research/nanites/nanite_remote.dm
index 3b242d28df..a7c8533521 100644
--- a/code/modules/research/nanites/nanite_remote.dm
+++ b/code/modules/research/nanites/nanite_remote.dm
@@ -35,6 +35,7 @@
update_icon()
else
to_chat(user, "Access denied.")
+ return TRUE
/obj/item/nanite_remote/emag_act(mob/user)
. = ..()
diff --git a/code/modules/research/techweb/all_nodes.dm b/code/modules/research/techweb/all_nodes.dm
index c0aa4a3127..eed1e4aefd 100644
--- a/code/modules/research/techweb/all_nodes.dm
+++ b/code/modules/research/techweb/all_nodes.dm
@@ -400,7 +400,7 @@
display_name = "Cyborg Upgrades: Medical"
description = "Medical upgrades for cyborgs."
prereq_ids = list("adv_biotech", "robotics")
- design_ids = list("borg_upgrade_defibrillator", "borg_upgrade_advhealth", "borg_upgrade_piercinghypospray", "borg_upgrade_highstrengthsynthesiser", "borg_upgrade_expandedsynthesiser", "borg_upgrade_pinpointer", "borg_upgrade_surgicalprocessor")
+ design_ids = list("borg_upgrade_advhealth", "borg_upgrade_piercinghypospray", "borg_upgrade_highstrengthsynthesiser", "borg_upgrade_expandedsynthesiser", "borg_upgrade_pinpointer", "borg_upgrade_surgicalprocessor")
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2000)
export_price = 5000
diff --git a/code/modules/ruins/spaceruin_code/hilbertshotel.dm b/code/modules/ruins/spaceruin_code/hilbertshotel.dm
index cd641adb33..f64b5e4d01 100644
--- a/code/modules/ruins/spaceruin_code/hilbertshotel.dm
+++ b/code/modules/ruins/spaceruin_code/hilbertshotel.dm
@@ -284,6 +284,7 @@ GLOBAL_VAR_INIT(hhmysteryRoomNumber, 1337)
var/datum/action/peepholeCancel/PHC = new
user.overlay_fullscreen("remote_view", /obj/screen/fullscreen/impaired, 1)
PHC.Grant(user)
+ return TRUE
/turf/closed/indestructible/hoteldoor/check_eye(mob/user)
if(get_dist(get_turf(src), get_turf(user)) >= 2)
diff --git a/code/modules/surgery/eye_surgery.dm b/code/modules/surgery/eye_surgery.dm
index f7a06af388..28e813ccac 100644
--- a/code/modules/surgery/eye_surgery.dm
+++ b/code/modules/surgery/eye_surgery.dm
@@ -22,6 +22,7 @@
"[user] begins to perform surgery on [target]'s eyes.")
/datum/surgery_step/fix_eyes/success(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
+ var/obj/item/organ/eyes/E = target.getorganslot(ORGAN_SLOT_EYES)
display_results(user, target, "You succeed in fixing [target]'s eyes.",
"[user] successfully fixes [target]'s eyes!",
"[user] completes the surgery on [target]'s eyes.")
@@ -29,7 +30,7 @@
target.set_blindness(0)
target.cure_nearsighted(list(EYE_DAMAGE))
target.blur_eyes(35) //this will fix itself slowly.
- target.set_eye_damage(0)
+ E.setOrganDamage(0)
return TRUE
/datum/surgery_step/fix_eyes/failure(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
diff --git a/code/modules/surgery/organs/augments_chest.dm b/code/modules/surgery/organs/augments_chest.dm
index 81627104e8..65172a1545 100644
--- a/code/modules/surgery/organs/augments_chest.dm
+++ b/code/modules/surgery/organs/augments_chest.dm
@@ -44,6 +44,9 @@
hunger_threshold = NUTRITION_LEVEL_HUNGRY
poison_amount = 10
+#define MAX_HEAL_COOLDOWN 15 MINUTES
+#define DEF_CONVALESCENCE_TIME 15 SECONDS
+
/obj/item/organ/cyberimp/chest/reviver
name = "Reviver implant"
desc = "This implant will attempt to revive and heal you if you lose consciousness. For the faint of heart!"
@@ -51,43 +54,49 @@
implant_color = "#AD0000"
slot = ORGAN_SLOT_HEART_AID
var/revive_cost = 0
- var/reviving = 0
+ var/reviving = FALSE
var/cooldown = 0
+ var/convalescence_time = 0
/obj/item/organ/cyberimp/chest/reviver/on_life()
if(reviving)
- if(owner.stat == UNCONSCIOUS)
- addtimer(CALLBACK(src, .proc/heal), 30)
+ var/do_heal = world.time < convalescence_time
+ if(revive_cost >= MAX_HEAL_COOLDOWN)
+ do_heal = FALSE
+ else if(owner.stat && owner.stat != DEAD)
+ do_heal = TRUE
+ else if(!do_heal)
+ convalescence_time = world.time + DEF_CONVALESCENCE_TIME
+ if(do_heal)
+ addtimer(CALLBACK(src, .proc/heal), 3 SECONDS)
else
cooldown = revive_cost + world.time
reviving = FALSE
to_chat(owner, "Your reviver implant shuts down and starts recharging. It will be ready again in [DisplayTimeText(revive_cost)].")
return
- if(cooldown > world.time)
- return
- if(owner.stat != UNCONSCIOUS)
- return
- if(owner.suiciding)
+ if(cooldown > world.time || owner.stat == CONSCIOUS || owner.stat == DEAD || owner.suiciding)
return
revive_cost = 0
+ convalescence_time = 0
reviving = TRUE
to_chat(owner, "You feel a faint buzzing as your reviver implant starts patching your wounds...")
/obj/item/organ/cyberimp/chest/reviver/proc/heal()
if(owner.getOxyLoss())
owner.adjustOxyLoss(-5)
- revive_cost += 5
+ revive_cost += 0.5 SECONDS
if(owner.getBruteLoss())
owner.adjustBruteLoss(-2)
- revive_cost += 40
+ revive_cost += 4 SECONDS
if(owner.getFireLoss())
owner.adjustFireLoss(-2)
- revive_cost += 40
+ revive_cost += 4 SECONDS
if(owner.getToxLoss())
owner.adjustToxLoss(-1)
- revive_cost += 40
+ revive_cost += 4 SECONDS
+
/obj/item/organ/cyberimp/chest/reviver/emp_act(severity)
. = ..()
@@ -95,25 +104,27 @@
return
if(reviving)
- revive_cost += 200
+ revive_cost += 20 SECONDS
else
- cooldown += 200
+ cooldown += 20 SECONDS
if(ishuman(owner))
var/mob/living/carbon/human/H = owner
if(H.stat != DEAD && prob(50 / severity) && H.can_heartattack())
H.set_heartattack(TRUE)
to_chat(H, "You feel a horrible agony in your chest!")
- addtimer(CALLBACK(src, .proc/undo_heart_attack), 600 / severity)
+ addtimer(CALLBACK(src, .proc/undo_heart_attack), 60 SECONDS / severity)
/obj/item/organ/cyberimp/chest/reviver/proc/undo_heart_attack()
var/mob/living/carbon/human/H = owner
- if(!istype(H))
+ if(!H || !istype(H))
return
H.set_heartattack(FALSE)
- if(H.stat == CONSCIOUS)
+ if(H.stat == CONSCIOUS || H.stat == SOFT_CRIT)
to_chat(H, "You feel your heart beating again!")
+#undef MAX_HEAL_COOLDOWN
+#undef DEF_CONVALESCENCE_TIME
/obj/item/organ/cyberimp/chest/thrusters
name = "implantable thrusters set"
diff --git a/code/modules/surgery/organs/eyes.dm b/code/modules/surgery/organs/eyes.dm
index d877af7451..c61f1a8122 100644
--- a/code/modules/surgery/organs/eyes.dm
+++ b/code/modules/surgery/organs/eyes.dm
@@ -21,7 +21,6 @@
var/sight_flags = 0
var/see_in_dark = 2
- var/eye_damage = 0
var/tint = 0
var/eye_color = "" //set to a hex code to override a mob's eye color
var/old_eye_color = "fff"
@@ -31,18 +30,21 @@
var/damaged = FALSE //damaged indicates that our eyes are undergoing some level of negative effect
/obj/item/organ/eyes/Insert(mob/living/carbon/M, special = FALSE, drop_if_replaced = FALSE)
- ..()
+ . = ..()
+ if(!.)
+ return
if(damage == initial(damage))
clear_eye_trauma()
if(ishuman(owner))
- var/mob/living/carbon/human/HMN = owner
- old_eye_color = HMN.eye_color
+ var/mob/living/carbon/human/H = owner
+ old_eye_color = H.eye_color
if(eye_color)
- HMN.eye_color = eye_color
- HMN.regenerate_icons()
+ H.eye_color = eye_color
else
- eye_color = HMN.eye_color
- if(HAS_TRAIT(HMN, TRAIT_NIGHT_VISION) && !lighting_alpha)
+ eye_color = H.eye_color
+ if(!special)
+ H.dna?.species?.handle_body() //regenerate eyeballs overlays.
+ if(HAS_TRAIT(H, TRAIT_NIGHT_VISION) && !lighting_alpha)
lighting_alpha = LIGHTING_PLANE_ALPHA_NV_TRAIT
see_in_dark = 8
M.update_tint()
@@ -51,13 +53,15 @@
/obj/item/organ/eyes/Remove(mob/living/carbon/M, special = 0)
clear_eye_trauma()
- ..()
+ . = ..()
if(ishuman(M) && eye_color)
- var/mob/living/carbon/human/HMN = M
- HMN.eye_color = old_eye_color
- HMN.regenerate_icons()
- M.update_tint()
- M.update_sight()
+ var/mob/living/carbon/human/H = M
+ H.eye_color = old_eye_color
+ if(!special)
+ H.dna.species.handle_body()
+ if(!special)
+ M.update_tint()
+ M.update_sight()
/obj/item/organ/eyes/on_life()
..()
diff --git a/code/modules/surgery/organs/organ_internal.dm b/code/modules/surgery/organs/organ_internal.dm
index 2b823da9d5..a180bd947e 100644
--- a/code/modules/surgery/organs/organ_internal.dm
+++ b/code/modules/surgery/organs/organ_internal.dm
@@ -25,6 +25,7 @@
var/now_fixed
var/high_threshold_cleared
var/low_threshold_cleared
+ rad_flags = RAD_NO_CONTAMINATE
/obj/item/organ/proc/Insert(mob/living/carbon/M, special = 0, drop_if_replaced = TRUE)
if(!iscarbon(M) || owner == M)
diff --git a/code/modules/vehicles/ridden.dm b/code/modules/vehicles/ridden.dm
index 27da0f6cea..13a139ef2e 100644
--- a/code/modules/vehicles/ridden.dm
+++ b/code/modules/vehicles/ridden.dm
@@ -49,6 +49,7 @@
return ..()
/obj/vehicle/ridden/AltClick(mob/user)
+ . = ..()
if(inserted_key && user.canUseTopic(src, BE_CLOSE, ismonkey(user)))
if(!is_occupant(user))
to_chat(user, "You must be riding the [src] to remove [src]'s key!")
@@ -57,7 +58,7 @@
inserted_key.forceMove(drop_location())
user.put_in_hands(inserted_key)
inserted_key = null
- return ..()
+ return TRUE
/obj/vehicle/ridden/driver_move(mob/user, direction)
if(key_type && !is_key(inserted_key))
diff --git a/code/modules/vehicles/scooter.dm b/code/modules/vehicles/scooter.dm
index 8c21b050aa..0dd7ff32a8 100644
--- a/code/modules/vehicles/scooter.dm
+++ b/code/modules/vehicles/scooter.dm
@@ -94,6 +94,7 @@
qdel(src)
/obj/vehicle/ridden/scooter/skateboard/AltClick(mob/user)
+ . = ..()
var/datum/component/riding/R = src.GetComponent(/datum/component/riding)
if (!adjusted_speed)
R.vehicle_move_delay = 0
@@ -103,6 +104,7 @@
R.vehicle_move_delay = 1
to_chat(user, "You adjust the wheels on [src] to make it go slower.")
adjusted_speed = FALSE
+ return TRUE
//CONSTRUCTION
/obj/item/scooter_frame
diff --git a/code/modules/vending/clothesmate.dm b/code/modules/vending/clothesmate.dm
index 77fc36db38..c39b9f872d 100644
--- a/code/modules/vending/clothesmate.dm
+++ b/code/modules/vending/clothesmate.dm
@@ -138,8 +138,7 @@
/obj/item/clothing/suit/jacket/letterman_syndie = 5,
/obj/item/clothing/under/jabroni = 2,
/obj/item/clothing/suit/vapeshirt = 2,
- /obj/item/clothing/under/geisha = 4,
- /obj/item/clothing/accessory/syndi_pokadots = 4,
+ /obj/item/clothing/under/geisha = 4,,
/obj/item/clothing/under/keyholesweater = 3)
premium = list(/obj/item/clothing/under/suit_jacket/checkered = 4,
/obj/item/clothing/head/mailman = 2,
@@ -148,8 +147,7 @@
/obj/item/clothing/suit/jacket/leather/overcoat = 4,
/obj/item/clothing/under/pants/mustangjeans = 3,
/obj/item/clothing/neck/necklace/dope = 5,
- /obj/item/clothing/suit/jacket/letterman_nanotrasen = 5,
- /obj/item/clothing/accessory/nt_pokadots = 5)
+ /obj/item/clothing/suit/jacket/letterman_nanotrasen = 5)
refill_canister = /obj/item/vending_refill/clothing
/obj/item/vending_refill/clothing
diff --git a/dependencies.sh b/dependencies.sh
index a75940088f..0f66dcab1a 100644
--- a/dependencies.sh
+++ b/dependencies.sh
@@ -18,3 +18,9 @@ export BSQL_VERSION=v1.4.0.0
#node version
export NODE_VERSION=8
+
+# PHP version
+export PHP_VERSION=5.6
+
+# SpacemanDMM git tag
+export SPACEMAN_DMM_VERSION=suite-1.0
diff --git a/html/changelog.html b/html/changelog.html
index 61bc43a99b..8eabba83df 100644
--- a/html/changelog.html
+++ b/html/changelog.html
@@ -23,11 +23,9 @@
|
- Citadel Station
- A downstream of /tg/Station
-
- Visit tg's IRC channel: #tgstation13 on irc.rizon.net
- ...Or our Discord!
+ Traditional Games Space Station 13
+
+
|
@@ -35,15 +33,10 @@
- Current Project Maintainers: deathride58, LetterJay, kevinz000, BlackMajor, Izzy
- Currently Active GitHub contributor list: -Click Here-
- Coders: Fermis, Poojawa, deathride58, kevinz000, Trilbyspaceclone, nik707, Ghommie as well as the /tg/ crew.
- Spriters: Michiyamenotehifunana, CameronWoof, and the folks who contributed to /tg/ station project.
- Sounds: /tg/ Sound crew.
- Main Testers: You poor saps, our player base.
- Thanks to: /tg/station, Baystation 12, /vg/station, NTstation, CDK Station devs, FacepunchStation, GoonStation devs, the original SpaceStation developers and Invisty for the title image. Also a thanks to anybody who has contributed who is not listed here :( Ask to be added here on irc.
+ Thanks to: /tg/station, Baystation 12, /vg/station, NTstation, CDK Station devs, FacepunchStation, GoonStation devs, the original SpaceStation developers and Invisty for the title image. Also a thanks to anybody who has contributed.
Have a bug to report? Visit our Issue Tracker.
- Please ensure that the bug has not already been reported upstream and use the template provided here!.
+ Please ensure that the bug has not already been reported, use the template provided here!.
+ Currently Active GitHub contributor list: -Click Here-
|
@@ -56,6 +49,504 @@
-->
+
+ 07 December 2019
+ AffectedArc07 updated:
+
+ - Fixes a LOT of code edge cases
+
+ Anonymous updated:
+
+ - Added NEET-- I mean, DAB Suit and Helmet into loadout. Exclusive to Assistants, for obvious reasons, and don't provide any armor. Goes well with balaclava, finger-less gloves and jackboots for that true tactic~~f~~ool experience.
+ - Renamed loadout name appropriately (ASSU -> DAB)
+
+ Arturlang updated:
+
+ - PDA catridges cant be irradiated anymore.
+
+ Bhijn updated:
+
+ - Item mousedrop() now provides a return value indicating whether or not behavior has been overridden somehow.
+ - Defibs now properly check that their loc is the same as the user for mousedrop() calls, meaning ghosts can no longer make you equip defibs. Plus extra sanity checks.
+ - Pet carriers no longer attack turfs while trying to unload their contents.
+ - Decks of cards now function as they originally intended when attempting to use their drag and drop behavior.
+ - Paper bins and papercutters no longer act wonky when you're trying to pull a piece of paper from them.
+ - Adds clothing drag n drop sanity checks.
+ - Sythetic hats now have extra sanity checks
+
+ Coconutwarrior97 updated:
+
+ - Can only wrench down two transit tubes per turf.
+
+ Commandersand updated:
+
+ - Added more stuff to loadout,check uniforms mask and backpack
+
+ DeltaFire15 updated:
+
+ - Adds eight new plushies
+ - Adds icons for the new plushies and adds a new icon for the skylar plush
+ - Deleted a old, no-longer used icon for the skylar plush
+ - Fixed a typo in the trilby plush
+
+ Fermis updated:
+
+ - tweaks botany reagent pHes
+ - Purity, Astral, RNG, MK, SMilk, SDGF, furranium, hatmium, eigen, nanite.
+ - Eigen and purity.
+ - refactored sleepers!
+ - Organ fridges to all maps near surgery with a random sensible organ, steralizine and synthtissue.
+ - the med hand scanner to be less of a mishmash of random things
+ - a little icon to the HUD if someone's heart has failed.
+ - Lets neurine's brain splash attack work via syringe.
+ - a new surgery; Emergency Cardioversion Induction for use on the recently deceased
+ - Synthtissue to be less demanding on growth size for organ regeneration and improves clarify of it's growth gated effects.
+ - Synthtissue now is more useful than synthflesh on the dead
+
+ Fox McCloud updated:
+
+ - Fixes a very longstanding LINDA bug where turfs adjacent to a hotspot would be less prone to igniting
+
+ Fox McCloud, Ghommie updated:
+
+ - Fixes being able to mech-punch other mobs, as a pacifist
+ - Fixes being able to hurt people, as a pacifist, by throwing them into a wall or other mob, or by using most martial arts (save for the unpredictable psychotic brawl, and the stamina-damage-only boxing).
+ - Buffs boxing to outdamage natural stamina regeneration. Made the chance of outright missing your opponent actually possible.
+ - Pacifists can now engage in the (laughably not harmful) sweet sweet art of boxing now.
+
+ Ghommie updated:
+
+ - Fixing implant cases being lost inside implant pads when trying to eject them with your active hand full.
+ - Moved the implant pad's case ejection from attack_hand() to AltClick(), added examination infos about it.
+ - Fixed holodeck sleepers leaving sleeper buffers behind when deleted.
+ - Fixed traitor codewords highlight and some other hear signal hooks spans highlight (phobias, split personality, hypnosis) or modifiers (mind echo)
+ - Fixed traitor codewords highlight not passing down with the mind datum and stickying to the first mob.
+ - Fixed the incongruent bone satchel description.
+ - Fixed sofa overlays doing nothing, because their layer wasn't properly set.
+ - Suicide and cryo now prevents ghost/midround roles for a definite duration of 30 minutes (and more if that was done before 30 minutes in the game passed), down from the rest of the round.
+ - fixed several midround roles bypassing and nulling the aforementioned prevention measures.
+ - Fixed the little issue of PDA skins not updating on job equip.
+ - Anomaly Crystals of the clowning type will now rename the victim to their clown name preference when triggered, instead of giving them a random clown name.
+ - Lowered blob event earliest start from 1 hour to 40 minutes (ergo one third), and the required player population from 40 to 35.
+ - Several fixes and QoL for dullahans. They can see and hear visible and audible messages now, don't need a space helmet they can't wear anyway to be space/temperature proof, can examine things through shiftclick, and, most of all, fixed their head being unpickable. Fixed dullahans gibbing when revived or had their limbs regenerated.
+ - humans should now drop gibs when gibbed again.
+ - synths (not to be confused with IPCs), android and corporate species, as well as robotic simple mobs, will now spawn robotic giblets instead of organic ones.
+ - You can't wear dakimakuras in any other inappropriate slots save for the back slot anymore, degenerates.
+ - Insert snarky remark about clock welders actually displaying the welder flame overlay when turned on now here.
+ - Minor ninja tweaks and stealth nerfs. The stealth penalty for the many combat-related actions, bumping and now teleporting/dashing or firing guns has been increased a by a third. There is now a cooldown of 5 seconds on toggling stealth as well as a slighty slowed stealth in/out animation.
+ - Ported slighty better matchbox sprites from CEV-Eris, also resprited cigar boxes myself.
+ - Fixed abductors/abductees objectives by porting an objective code.
+ - Riding component fix
+ - fixing a few runtimes on lightgeists, libido trait, rcd, one admin transformation topic, chem dispensers, glowing robotic eyes...
+ - Porting CEV-eris delivery packages sprites and dunking the old syndie cybernetics box sprite.
+ - Certain objects shouldn't be able to become radioactive because of a bitflag that previously was checked nowhere in the code anymore.
+ - Added a new PDA reskin, sprites from CEV-Eris
+ - Clock cult starts with some spare vitality matrix charge scaled of the number of starter servants.
+ - Made the vitality matrix sigil slighty more visible, also allowed conversion runes to heal fresh converts at the cost of some vitality charge.
+ - Crawling won't save you from the wrath of ocular wardens and pressure sensors anymore, heretics. fix: Pressure sensors are no more triggered by floating/flying mobs.
+ - Strawberry milk and tea have sprites now.
+ - Fixed the Aux base camera door settings and toggle window type actions. Also enabling the user to modify both door access and type.
+ - Improved the two grayscale towel item sprites a little.
+ - Fixed towels onmob suit overlays. Again.
+ - Fixed some reagents taste descriptions.
+ - Fixed hidden random event reports only priting a paper message without sending the message to the consoles' message list.
+ - Rosary beads prayer now works on non-carbon mobs too, and won't break when performed on a monkey or other humanoids.
+ - You can flagellate people with rosary beads on harm intent. It's even mediocrer than the sord though.
+ - Moved the `Stealth and Camouflage Items` uplink category next to `Devices and Tools`.
+ - Deleted a duplicate phatom thief mask entry from the uplink.
+ - Fixed missing delivery packages sprites
+ - fixed a few minor issues with console frames building.
+ - Wizards can use the teleport spell from their den once again.
+ - Wizards will now receive feedback messages when attempting to cast teleport or use the warp whistle while in a no-teleport area.
+ - New clockwork cultist, gondola, monkey and securitron cardboard cutouts.
+ - Fixed aliens gasping randomly once in a while.
+ - fixed superlube waterflower, my bad.
+ - Fixed closing the aux base construction RCD's door access settings window throwing you out of camera mode when closed.
+ - Removed not functional aux base RCD's door type menu. Use airlock painters, maybe.
+ - Honkbot oil spills are of the slippery kind now. Honk.
+ - local code scavenger finds forgotten slighty improved apc sprites left buried in old dusty folders.
+ - Seven old and otherwordly pAI holochassis icons have crawled their way out of the modular citadel catacombs.
+ - chem dispenser beakers end up in your hand yet again.
+ - Bikehorns squeak yet again, the world is safe.
+ - Cyborgs can now actually use cameras from a distance.
+ - Suicides are yet again painful and instant and won't throw people in deep crit from full health.
+ - fixed rogue pixels on the energy gu- ahem blaster carbine... and a few apc lights states being neigh-indistinguishable.
+ - Fixed several "behind" layer tail sprites skipping areas normally covered by bodyparts.
+ - Morgues' original alert beeping sound has been restored, they no longer go "ammunition depleted"
+ - Fixed missing hypereutactic left inhand sprites.
+ - Dying, ghosting, having your mind / ckey transferred to another mob, going softcrit or otherwise unconscious now properly turn off combat mode.
+ - combat mode can't be toggled on while non fully conscious anymore.
+ - Fixed limbs' set_disabled NOT dropping your held items, updating your hand slot inventory screen image, prompting chat messages and making your character scream like a sissy.
+ - Lusty xenomoprh maids will now actually clean tiles they travel onto yet again.
+ - Fixed double whitespace gap in human and AI examine. Fixed single whitespace in carbon examine.
+ - Removed a few useless supply packs: "Siezed" power cells, means of production and promiscous organs.
+ - Merged the synthetic blood supply pack into the standard blood supply pack, effectively removing a random type blood pack in favor of two synthetic ones.
+ - Merged together premium carpet pack n°1 and n°2 to hold one of each standard pattern.
+ - You can no longer estimate the amount of reagents found inside a damp rag.
+ - You can now squeeze a rag's reagents into another open container, as long as the other one is not full.
+ - Fixed ED-209 being unbuildable past the welding step.
+ - Fixed ai displays status being reset to "Neutral" on login, regardless of choice.
+ - Fixed tinfoil hats giving random traumas.
+
+ Ghommie (original PR by Denton) updated:
+
+ - Added three new .38 ammo types. TRAC bullets, which embed a tracking implant inside the target's body. The implant only lasts for five minutes and doesn't work as a teleport beacon. Hot Shot bullets set targets on fire; Iceblox bullets drastically lower the target's body temperature. They are available after researching the Subdermal Implants node (TRAC) or Exotic Ammunition node (Hot Shot/Iceblox).
+ - Renamed the Technological Shells research node to Exotic Ammunition.
+ - The "lifespan_postmortem" var now determines how long tracking implants work after death.
+ - .357 AP speedloaders can now be ordered from syndicate uplinks.
+ - lowered the cost of uplink's .357 speedloaderd from 4 to 3.
+
+ Ghommie (original PR by nicbn and Menshin) updated:
+
+ - You can click on things that are under flaps or holo barriers.
+
+ Ghommie (original PRs by ShizCalev, CRTXBacon and Niknakflak) updated:
+
+ - Adds the intelliLantern, a big ol' spooky intelliCard skin
+ - crafting recipe for the new intelliCard skin (requires 1 pumpkin, 1 intelliCard, 5 cables and a wirecutter as a tool)
+ - changed the intelliTater crafting recipe to match the intelliLantern recipe (but with a potato for obvious reasons) add:cute pai gameboy face :3
+
+ Ghommie, porting lot of PRs by MrDoomBringer, AnturK, nemvar and coiax. updated:
+
+ - Admins can now launch supplypods the old, slightly quicker way as well
+ - Centcom-launched supplypods will now properly delimb you (if they are designated to do so) instead of touching you then literally yeeting all of your internal organs out of your body.
+ - Centcom can now specify if they want to yeet all of your organs out of your body with a supplypod
+ - Supplypods sound a bit nicer as the land now.
+ - admins can now adjust the animation duration for centcom-launched supplypods
+ - admins can adjust any sounds that are played as the supplypod lands
+ - Reverse-Supplypods (the admin-launched ones) no longer stay behind after rising up, and also auto-delete from centcom.
+ - The centcom podlauncher now has better logging
+ - Admins can now allow ghosts to follow the delivery of Centcom-launched supply pods
+ - Admins can now use the Centcom Podlauncher to launch things without the things looking like they're being sent inside a pod.
+ - sparks will not generate if the quietLanding effect is on, for the centcom podlauncher
+ - makes input text clearer for the centcom podlauncher
+ - New 'Podspawn' verb, which functions like 'Spawn', except any atoms movable spawned will be dropped in via a no-damage, no-explosion Centcom supply pod.
+ - Removed an oversight that made many obj/effect subtypes accidentally bombproof.
+
+ GrayRachnid updated:
+
+ - Added saboteur syndicate engiborg
+ - changed cyborg tool icons and the secborg taser/laser icons.
+ - Fixes golden toolbox missing inhand sprite
+ - Added traumas
+ - Added science powergame tool
+ - a few hearing args
+ - fixed my mistakes
+ - tweaked the number of ingredients/pancakes you can stack.
+
+ Hatterhat updated:
+
+ - The Big Red Button now sets bomb timers to 2 seconds, instead of 5.
+ - Gloves of the North Star (not Hugs of the North Star) now use all their intents very, very fast. This does not apply to grabs' click cooldown, nor shoving people.
+ - The seedvault/alien plant DNA manipulator can now be printed off with Alien Biotechnology.
+
+ Iroquois-Pliskin updated:
+
+ - Removed Clockwork Cult Surgical facility from Reebe
+
+ Jerry Derpington, baldest of the balds, and nemvar. updated:
+
+ - Nanotrasen has lost communication to two away mission sites that contained a beach for Nanotrasen employees.
+ - Nanotrasen has been able to locate a new away mission site that ALSO has a beach. Nanotrasen employees will be able to enjoy the beach after all!
+ - Seashells have been added to the game.
+
+ KathrinBailey updated:
+
+ - Two extra 'luxury' dorms rooms!
+ - Gas miners to atmos.
+ - Posters around the station.
+ - Vacant room added to the Starboard Bow with it's own APC, above electrical maintenance.
+ - New trendy clothes to the locker room, giving variety and bringing fashion back onto Nanotrasen stations.
+ - Coloured bedsheet and towel bin.
+ - Maid uniforms for the janitor.
+ - Completely reworked bar. Milk kegs added in bar office. The bar has been changed for a homey restaurant feel just in time for Christmas! You can now run it as an actual restaurant! Local Bartender Icktsie III loved it so much he rolled around on the new floor smiling happily.
+ - Dorms rework. Fitness room now has lots of costumes and outfits.
+ - Junk removed from engineering, welding goggles added.
+ - Welding tools in engineering replaced with industrial welding tools.
+ - Package wrappers and hand labellers now in major departments.
+ - Cell charger moved from engineering lobby to the protolathe room, just like how it is in all of the other maps and just where the cell charger is actually needed.
+ - Library redesigned to have a private room and a 3x3 private study that is cleaned up.
+ - Paper bins have gone big or gone home, with premium stationery scattered around. Engineering and security now have a labeller and packaging supplies.
+ - Dark spot top left of Botany fixed.
+ - Huge galactic-sized dark spot in bar fixed.
+ - Light replacers now are less horrifically overpowered and PTSD-inducing for the server.
+ - Fixes issue 9706: https://github.com/Citadel-Station-13/Citadel-Station-13/issues/9706 Part of maint getting hit by radstorms.
+_Kathrin's Box Beautification:_
+ - Ports TG's pews https://github.com/tgstation/tgstation/pull/42712
+ - The first step of a corporate incursion of Space IKEA into Nanotrasen.
+
+ Kevinz000, Cruix, MrStonedOne, Denton, Kmc2000, Anturk, MrDoomBringer, Dennok, TheChosenEvilOne, Ghommie updated:
+
+ - Added support for Multi-Z power, atmospherics and disposals
+ - massive service department nerf: space can no longer be extra crispy.
+
+ Knouli updated:
+
+ - attack_self proc for the legion core which triggers a self-heal al la the previous 'afterattack' proc, as if clicking on the character's own sprite to self-heal
+ - admin logging for all three use cases of legion core healing - afterattack, attack_self, and implanted ui_action_click
+
+ Krysonism, Ghommie updated:
+
+ - NT has made breakthroughs in ice cream science, ice creams can now be flavoured with any reagent!
+ - The ice cream vat now accepts beakers.
+ - Grape and Peach icecreams have scoop overlays yet again.
+
+ Linzolle updated:
+
+ - butchering component update
+ - hat tossing can no longer knock hats off
+ - strange reagent being unable to revive simplemobs
+ - jitter animation and more clear text to strange reagent revival
+
+ Mickyy5 updated:
+
+ - Nanotrasen are now issuing Plasmamen with plasma in their survival boxes
+
+ MrJWhit updated:
+
+ - tweaked brain damage line
+
+ Naksu, ShizCalev updated:
+
+ - Refactored examine-code
+ - Examining a human with a burned prosthetic limb will no longer tell you that the limb is blistered.
+ - Items will now inform you if they are resistant to frost, fire, acid, and lava when examined.
+
+ Owai-Seek updated:
+
+ - "silly" bounties
+ - "gardenchef" bounties
+ - several bounties that require seriously good RNG to pull off.
+ - moved several chef and assistant bounties to silly and gardenchef
+ - modified several bounty point rewards
+ - added new files "silly.dm" and "gardenchef.dm"
+ - 15+ new crates for cargo
+ - organizes crates and moving them to proper categories
+ - some dumb stuff like toner crates re
+ - leg wraps and sweaters to clothesmate
+ - screwdriver and cable coil to janidrobe
+ - screwdriver and cable coil to janibelt whitelist (for fixing/placing light fixtures)
+ - monkey cube, syringe, enzyme, soy sauce, and cryoxadone to chef's vendor (contraband and premium)
+ - add cracker, beans, honey bars, lollipops, chocolate coin, and spider lollipop to snack vendors (contraband and premium)
+ - newspaper to loadout menu for bapping purposes
+ - removed poppy pretzels from snack vendor premium
+ - maid uniform (janimaid alt) to kinkmate.
+ - moves gear harness from premium to normal stock in kinkmate
+ - re-balanced metal shield bounty
+ - cryoxadone bottle (for use in chef vendor)
+
+ PersianXerxes updated:
+
+ - Reduces the grace period for meteors from a minimum of 5 and maximum of 10 to 3 and 6 minutes respectively.
+ - Adds a pair of VR sleepers to Box Station's permabrig
+ - Adds a pair of VR sleepers to Delta Station's permabrig
+ - Adds a pair of VR sleepers to Pubby Station's permabrig
+ - Adds a pair of VR sleepers to Meta Station's permabrig
+
+ Putnam updated:
+
+ - From-ghosts dynamic rulesets now actually listen to "required candidates"
+ - Every dynamic-triggered event is now blacklisted from being triggered by the random events system when dynamic can trigger them.
+ - Dynamic voting now features extended, if recent rounds have been chaotic.
+ - Roundstart rulesets now scale on population ready rather than total population.
+ - Threat log now accurately represents what actually used the threat.
+ - Verbose threat log (admin-only) now shows ALL threat level changes.
+ - VR mobs can no longer be dynamic midround antags.
+ - Personal closets can use anything that holds an ID card now.
+
+ Putnam3145 updated:
+
+ - traitors work now
+ - Gas filters now push gas the same way volume pumps do.
+ - Gas filters now won't clog if only one output is clogged.
+ - Glowsticks can no longer be radioactively contaminated (one more supermatter contam exploit gone)
+ - traitor removal is no longer borked
+ - Dynamic voting
+ - Added DYNAMIC_VOTING to game_options
+ - SDGF now copies memories as well as antag data and factions.
+ - Summon events now properly costs threat.
+ - Refunded spells refund threat, too.
+ - Made wizard spells inherently have a requirement and cost.
+ - Meteor wave is no longer repeatable in dynamic.
+ - tweaked nuke ops
+ - Organs can no longer be radioactively contaminated.
+
+ Robustin, Subject217 updated:
+
+ - The NukeOp Shuttle hull has been dramatically hardened. The walls are now "R-Walls" with far greater explosion resistance.
+ - The NukeOp Shuttle guns have been significantly buffed. They now rapidly fire a new type of penetrator round, at a greater range, and have far greater explosion resistance.
+ - The nuclear device on the NukeOp Shuttle is now in an anchored state by default, the Nuke can only be unanchored by inserting the disk and entering the proper code.
+ - Non-Syndicate cyborgs are now unable to access the NukeOp Shuttle Console.
+ - You can now unanchor Nukes even when the floor under them has been destroyed
+
+ Seris02 updated:
+
+ - added sleeping carp hallucination
+ - Centcom + Assistant's formal winter coat + loadout + narsian + ratvarian winter coats
+ - GPS location on examine
+ - fixed the meteor hallucination
+ - tweaked the way the tapered penis looks
+ - Added nine winter coats
+ - added images for the winter coats
+ - adds the mining winter coat to mining wardrobes and mining lockers
+
+ ShizCalev updated:
+
+ - Ghosts can now see active AI cameras.
+ - Fixed a couple of laser / energy guns never switching to the empty icon despite being unable to fire.
+
+ Swindly updated:
+
+ - Fixed MMIs not being able to use mecha equipment
+ - Fixed MMIs not getting mecha mouse pointers
+ - Fixed MMIs not getting medical HUDs in Odysseuses
+ - Brains can now switch to harm intent
+
+ Tetr4 updated:
+
+ - Turning a tile with gas effects into space now gets rid of the effects.
+
+ Trilbyspaceclone updated:
+
+ - plastic trash cart crafting with plastic
+ - wallets are known for now holding more items
+ - shades and clowns HP
+ - six more crates, A barrel, A Loom, 40 cotton sheets, two sets of fruit crates, raw lumber crate
+ - All fermi chems, Boozes, Medical, food chems now sell
+ - Loads more to sell - Mech gear, Cooking and more!
+ - Moved around the vaule of some things and removed elastic of most items
+ - Rebreather implants will now loss vaule, Do to being just metal and glass
+ - lowered how many chems are in lewd chem kegs to be around 150-100 as well as the fancy booze kegs
+ - bad returns and tools used
+ - 8 new cargo crates!
+ - tablet cargo crate by -3k
+ - Closes a bunch of issues
+ - updates changlogs and such
+ - fixed a catnip not having sprites
+ - Boh cant hold WEIGHT_CLASS_GIGANTIC, just Bulky. Makes katana, chainsaw and base ball bat into bulky items so they may fit
+ - changes header to be more cit-like
+ - new clothing for the hotel staff and a hat
+
+ Ty-the-Smonk updated:
+
+ - You can now interact with self sustaining crossbreeds
+
+ Useroth updated:
+
+ - Colored fairygrass variants.
+ - Added a missing cherrybulb seedpack sprite
+ - numbered storages now are sorted in a consistent way, instead of depending on ordering of their contents var
+ - strange seeds as a buyable traitor botanist item
+ - resolves the issues revolving around blackpowder exploding where the reaction happened, instead of where it actually is through making it explode instantly
+ - the explosion delay moved from blackpowder directly into bomb cherries, to keep them functioning as intended
+ - A bunch of newer tg plants
+ - A bunch of newer tg plant traits
+ - A couple of newer tg plant reagents
+ - the new plants now properly get their reagents and reagent genes instead of being empty with UNKNOWN reagents listed in the DNA machine
+ - extradimensional oranges now contain haloperidol
+ - extradimensional oranges now actually grow properly and give proper seeds.
+
+ Weblure updated:
+
+ - Button added to slime console that prints out the hotkey commands to the user. [Includes DMI update]
+ - Shift-click a slime to pick it up, or the floor to drop all held slimes. (Requires Basic Slime Console upgrade)
+ - Ctrl-click a slime to scan it.
+ - Alt-click a slime to feed it a potion. (Requires Advanced Slime Console upgrade)
+ - Ctrl-click on a dead monkey to recycle it, or the floor to place a new monkey. (Requires Monkey Console upgrade)
+ - If the console does not have the required upgrade, an error message will print to the user.
+ - You can now pick up a single slime from a pile, instead of all of them at once.
+ - When recycling monkeys, the console will now report how many monkeys it has (will not report decimal increases).
+ - Console now alerts you when you're out of monkeys and reports your current decimal amount.
+ - Console messages are now styled consistently.
+
+ XDTM, ShizCalev, Naksu, Skoglol, cacogen, Rohesie (ported by Ghommie) updated:
+
+ - Holding an ID in your hands uses it instead of your worn ID for authentication purposes.
+ - If you don't have an ID in your id slot, the belt slot will be checked as well.
+ - small cleanup to id and bounty console html generation
+ - Hop console now hurts your eyes less. Red button text replaced with green.
+ - IDs with ID console access now go into the Confirm Identity slot by default like they used to, similarly IDs without it go into the Target slot by default again
+ - Can easily swap out IDs by clicking the machine or the UI fields with another ID
+ - ID console now names which IDs are added/removed in its visible messages
+ - Labels the ID slot fields when logged in so you know which is which
+ - Can use Job Management without an ID provided the console is logged in (matches how the console now stays logged in even without an ID)
+ - Can log in without an ID in the Target field (matches how the machine now stays logged in even after the ID is removed from the Target field)
+ - Cleans up UI slightly (had some duplicate/conflicting buttons)
+ - Fixes ID console duping issues. Includes some ID containers, such as PDAs, tablets and wallets, into the swapping behavior when an ID card is being removed and the item is being held.
+
+ Xantholne updated:
+
+ - New Berets for most heads and departments available in their autodrobes or lockers
+
+ YakumoChen updated:
+
+ - New AI Holograms and Displays! Ported from /vg/station.
+
+ actioninja updated:
+
+ - med records no longer can eat id cards for no reason
+ - Chat is properly sent to legacy window if goonchat fails to load again.
+
+ dapnee updated:
+
+ - fixed closet initialisation being broken
+ - emergency closets no longer have a 1% chance to delete themselves
+ - Communications console window no longer updates, won't steal focus anymore.
+ - Trimline neutral end exists now.
+
+ dzahlus updated:
+
+ - added a new gun sounds
+ - removed an old gun sounds
+
+ him updated:
+
+ - hos and aeg guns now conform to le epic taser rework standards
+
+ kappa-sama updated:
+
+ - changed flavor text of alien tech on uplink
+ - added TG's icons for traitor, russian, and golden revolver
+
+ kevinz000 updated:
+
+ - you can now choose never for this round for magical antags
+ - Cargo has passive point generation again at 750 points/minute
+ - Mindshield crate price increased from 3000 to 4000
+ - Miasma sell price reduced from 15/mol to 4/mol
+ - bluespace wizard apprentice now has blink instead of targeted area teleportation
+ - Emagged medibots now charcoal toxinlovers.
+ - disablers buffed 0.7 --> 0.6 speed 24 --> 28 damage
+ - kinetic crushers no longer drop if you try to use it with one hand
+ - added multi_keyed_list, delimiter defaults to |.
+ - Light pink extracts no longer speed you up. Instead, they give stamina regeneration and free sprinting.
+
+ kiwedespars updated:
+
+ - removed moth fluff coloring you like your wings
+ - made insect not so bad.
+
+ nemvar updated:
+
+ - You now get a message if your PDA explodes while you are holding it.
+ - The lavaland clown ruin has some new pranks ready.
+ - Added a new loot item to the lavaland clown ruin.
+ - Removed the slime core from said ruin.
+ - The clown PDA now properly slips people on jogging move intent regardless of fatigue. Honkmother's will.
+
+ nemvar, ShizCalev, Qustinnus/Floyd, Ghommie updated:
+
+ - You can now unfasten the loom.
+ - it now takes 4 strands to make one piece of durathread cloth
+ - Looms can now be attacked.
+ - Durathread golem weaves his magic
+ - Supply ordered looms are unanchored. Bring a wrench.
+
+ r4d6 updated:
+
+ - Added Departements Winter Coats to the loadout list.
+
+
04 November 2019
4dplanner, MMiracles updated:
diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml
index 75cb5f4040..f5e4fea7cb 100644
--- a/html/changelogs/.all_changelog.yml
+++ b/html/changelogs/.all_changelog.yml
@@ -23119,3 +23119,540 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py.
less power or emag borgs for higher prices, limited uses, but higher power.
ursamedium:
- imageadd: Gas icons changed.
+2019-12-07:
+ AffectedArc07:
+ - code_imp: Fixes a LOT of code edge cases
+ Anonymous:
+ - rscadd: Added NEET-- I mean, DAB Suit and Helmet into loadout. Exclusive to Assistants,
+ for obvious reasons, and don't provide any armor. Goes well with balaclava,
+ finger-less gloves and jackboots for that true tactic~~f~~ool experience.
+ - tweak: Renamed loadout name appropriately (ASSU -> DAB)
+ Arturlang:
+ - tweak: PDA catridges cant be irradiated anymore.
+ Bhijn:
+ - code_imp: Item mousedrop() now provides a return value indicating whether or not
+ behavior has been overridden somehow.
+ - bugfix: Defibs now properly check that their loc is the same as the user for mousedrop()
+ calls, meaning ghosts can no longer make you equip defibs. Plus extra sanity
+ checks.
+ - bugfix: Pet carriers no longer attack turfs while trying to unload their contents.
+ - bugfix: Decks of cards now function as they originally intended when attempting
+ to use their drag and drop behavior.
+ - bugfix: Paper bins and papercutters no longer act wonky when you're trying to
+ pull a piece of paper from them.
+ - bugfix: Adds clothing drag n drop sanity checks.
+ - bugfix: Sythetic hats now have extra sanity checks
+ Coconutwarrior97:
+ - bugfix: Can only wrench down two transit tubes per turf.
+ Commandersand:
+ - rscadd: Added more stuff to loadout,check uniforms mask and backpack
+ DeltaFire15:
+ - rscadd: Adds eight new plushies
+ - imageadd: Adds icons for the new plushies and adds a new icon for the skylar plush
+ - imagedel: Deleted a old, no-longer used icon for the skylar plush
+ - spellcheck: Fixed a typo in the trilby plush
+ Fermis:
+ - tweak: tweaks botany reagent pHes
+ - tweak: Purity, Astral, RNG, MK, SMilk, SDGF, furranium, hatmium, eigen, nanite.
+ - bugfix: Eigen and purity.
+ - refactor: refactored sleepers!
+ - rscadd: Organ fridges to all maps near surgery with a random sensible organ, steralizine
+ and synthtissue.
+ - tweak: the med hand scanner to be less of a mishmash of random things
+ - rscadd: a little icon to the HUD if someone's heart has failed.
+ - tweak: Lets neurine's brain splash attack work via syringe.
+ - rscadd: a new surgery; Emergency Cardioversion Induction for use on the recently
+ deceased
+ - tweak: Synthtissue to be less demanding on growth size for organ regeneration
+ and improves clarify of it's growth gated effects.
+ - tweak: Synthtissue now is more useful than synthflesh on the dead
+ Fox McCloud:
+ - bugfix: Fixes a very longstanding LINDA bug where turfs adjacent to a hotspot
+ would be less prone to igniting
+ Fox McCloud, Ghommie:
+ - bugfix: Fixes being able to mech-punch other mobs, as a pacifist
+ - bugfix: Fixes being able to hurt people, as a pacifist, by throwing them into
+ a wall or other mob, or by using most martial arts (save for the unpredictable
+ psychotic brawl, and the stamina-damage-only boxing).
+ - balance: Buffs boxing to outdamage natural stamina regeneration. Made the chance
+ of outright missing your opponent actually possible.
+ - tweak: Pacifists can now engage in the (laughably not harmful) sweet sweet art
+ of boxing now.
+ Ghommie:
+ - bugfix: Fixing implant cases being lost inside implant pads when trying to eject
+ them with your active hand full.
+ - tweak: Moved the implant pad's case ejection from attack_hand() to AltClick(),
+ added examination infos about it.
+ - bugfix: Fixed holodeck sleepers leaving sleeper buffers behind when deleted.
+ - bugfix: Fixed traitor codewords highlight and some other hear signal hooks spans
+ highlight (phobias, split personality, hypnosis) or modifiers (mind echo)
+ - bugfix: Fixed traitor codewords highlight not passing down with the mind datum
+ and stickying to the first mob.
+ - spellcheck: Fixed the incongruent bone satchel description.
+ - bugfix: Fixed sofa overlays doing nothing, because their layer wasn't properly
+ set.
+ - tweak: Suicide and cryo now prevents ghost/midround roles for a definite duration
+ of 30 minutes (and more if that was done before 30 minutes in the game passed),
+ down from the rest of the round.
+ - bugfix: fixed several midround roles bypassing and nulling the aforementioned
+ prevention measures.
+ - bugfix: Fixed the little issue of PDA skins not updating on job equip.
+ - tweak: Anomaly Crystals of the clowning type will now rename the victim to their
+ clown name preference when triggered, instead of giving them a random clown
+ name.
+ - balance: Lowered blob event earliest start from 1 hour to 40 minutes (ergo one
+ third), and the required player population from 40 to 35.
+ - bugfix: Several fixes and QoL for dullahans. They can see and hear visible and
+ audible messages now, don't need a space helmet they can't wear anyway to be
+ space/temperature proof, can examine things through shiftclick, and, most of
+ all, fixed their head being unpickable. Fixed dullahans gibbing when revived
+ or had their limbs regenerated.
+ - bugfix: humans should now drop gibs when gibbed again.
+ - rscadd: synths (not to be confused with IPCs), android and corporate species,
+ as well as robotic simple mobs, will now spawn robotic giblets instead of organic
+ ones.
+ - bugfix: You can't wear dakimakuras in any other inappropriate slots save for the
+ back slot anymore, degenerates.
+ - bugfix: Insert snarky remark about clock welders actually displaying the welder
+ flame overlay when turned on now here.
+ - balance: Minor ninja tweaks and stealth nerfs. The stealth penalty for the many
+ combat-related actions, bumping and now teleporting/dashing or firing guns has
+ been increased a by a third. There is now a cooldown of 5 seconds on toggling
+ stealth as well as a slighty slowed stealth in/out animation.
+ - imageadd: Ported slighty better matchbox sprites from CEV-Eris, also resprited
+ cigar boxes myself.
+ - bugfix: Fixed abductors/abductees objectives by porting an objective code.
+ - bugfix: Riding component fix
+ - bugfix: fixing a few runtimes on lightgeists, libido trait, rcd, one admin transformation
+ topic, chem dispensers, glowing robotic eyes...
+ - imageadd: Porting CEV-eris delivery packages sprites and dunking the old syndie
+ cybernetics box sprite.
+ - bugfix: Certain objects shouldn't be able to become radioactive because of a bitflag
+ that previously was checked nowhere in the code anymore.
+ - rscadd: Added a new PDA reskin, sprites from CEV-Eris
+ - rscadd: Clock cult starts with some spare vitality matrix charge scaled of the
+ number of starter servants.
+ - balance: Made the vitality matrix sigil slighty more visible, also allowed conversion
+ runes to heal fresh converts at the cost of some vitality charge.
+ - bugfix: 'Crawling won''t save you from the wrath of ocular wardens and pressure
+ sensors anymore, heretics. fix: Pressure sensors are no more triggered by floating/flying
+ mobs.'
+ - bugfix: Strawberry milk and tea have sprites now.
+ - bugfix: Fixed the Aux base camera door settings and toggle window type actions.
+ Also enabling the user to modify both door access and type.
+ - imageadd: Improved the two grayscale towel item sprites a little.
+ - bugfix: Fixed towels onmob suit overlays. Again.
+ - spellcheck: Fixed some reagents taste descriptions.
+ - bugfix: Fixed hidden random event reports only priting a paper message without
+ sending the message to the consoles' message list.
+ - bugfix: Rosary beads prayer now works on non-carbon mobs too, and won't break
+ when performed on a monkey or other humanoids.
+ - tweak: You can flagellate people with rosary beads on harm intent. It's even mediocrer
+ than the sord though.
+ - tweak: Moved the `Stealth and Camouflage Items` uplink category next to `Devices
+ and Tools`.
+ - bugfix: Deleted a duplicate phatom thief mask entry from the uplink.
+ - bugfix: Fixed missing delivery packages sprites
+ - bugfix: fixed a few minor issues with console frames building.
+ - bugfix: Wizards can use the teleport spell from their den once again.
+ - tweak: Wizards will now receive feedback messages when attempting to cast teleport
+ or use the warp whistle while in a no-teleport area.
+ - rscadd: New clockwork cultist, gondola, monkey and securitron cardboard cutouts.
+ - bugfix: Fixed aliens gasping randomly once in a while.
+ - bugfix: fixed superlube waterflower, my bad.
+ - bugfix: Fixed closing the aux base construction RCD's door access settings window
+ throwing you out of camera mode when closed.
+ - rscdel: Removed not functional aux base RCD's door type menu. Use airlock painters,
+ maybe.
+ - rscadd: Honkbot oil spills are of the slippery kind now. Honk.
+ - imageadd: local code scavenger finds forgotten slighty improved apc sprites left
+ buried in old dusty folders.
+ - bugfix: Seven old and otherwordly pAI holochassis icons have crawled their way
+ out of the modular citadel catacombs.
+ - bugfix: chem dispenser beakers end up in your hand yet again.
+ - bugfix: Bikehorns squeak yet again, the world is safe.
+ - bugfix: Cyborgs can now actually use cameras from a distance.
+ - bugfix: Suicides are yet again painful and instant and won't throw people in deep
+ crit from full health.
+ - bugfix: fixed rogue pixels on the energy gu- ahem blaster carbine... and a few
+ apc lights states being neigh-indistinguishable.
+ - bugfix: Fixed several "behind" layer tail sprites skipping areas normally covered
+ by bodyparts.
+ - bugfix: Morgues' original alert beeping sound has been restored, they no longer
+ go "ammunition depleted"
+ - bugfix: Fixed missing hypereutactic left inhand sprites.
+ - bugfix: Dying, ghosting, having your mind / ckey transferred to another mob, going
+ softcrit or otherwise unconscious now properly turn off combat mode.
+ - bugfix: combat mode can't be toggled on while non fully conscious anymore.
+ - bugfix: Fixed limbs' set_disabled NOT dropping your held items, updating your
+ hand slot inventory screen image, prompting chat messages and making your character
+ scream like a sissy.
+ - bugfix: Lusty xenomoprh maids will now actually clean tiles they travel onto yet
+ again.
+ - bugfix: Fixed double whitespace gap in human and AI examine. Fixed single whitespace
+ in carbon examine.
+ - rscdel: 'Removed a few useless supply packs: "Siezed" power cells, means of production
+ and promiscous organs.'
+ - tweak: Merged the synthetic blood supply pack into the standard blood supply pack,
+ effectively removing a random type blood pack in favor of two synthetic ones.
+ - tweak: "Merged together premium carpet pack n\xB01 and n\xB02 to hold one of each\
+ \ standard pattern."
+ - tweak: You can no longer estimate the amount of reagents found inside a damp rag.
+ - tweak: You can now squeeze a rag's reagents into another open container, as long
+ as the other one is not full.
+ - bugfix: Fixed ED-209 being unbuildable past the welding step.
+ - bugfix: Fixed ai displays status being reset to "Neutral" on login, regardless
+ of choice.
+ - bugfix: Fixed tinfoil hats giving random traumas.
+ Ghommie (original PR by Denton):
+ - rscadd: Added three new .38 ammo types. TRAC bullets, which embed a tracking implant
+ inside the target's body. The implant only lasts for five minutes and doesn't
+ work as a teleport beacon. Hot Shot bullets set targets on fire; Iceblox bullets
+ drastically lower the target's body temperature. They are available after researching
+ the Subdermal Implants node (TRAC) or Exotic Ammunition node (Hot Shot/Iceblox).
+ - tweak: Renamed the Technological Shells research node to Exotic Ammunition.
+ - code_imp: The "lifespan_postmortem" var now determines how long tracking implants
+ work after death.
+ - rscadd: .357 AP speedloaders can now be ordered from syndicate uplinks.
+ - balance: lowered the cost of uplink's .357 speedloaderd from 4 to 3.
+ Ghommie (original PR by nicbn and Menshin):
+ - bugfix: You can click on things that are under flaps or holo barriers.
+ Ghommie (original PRs by ShizCalev, CRTXBacon and Niknakflak):
+ - rscadd: Adds the intelliLantern, a big ol' spooky intelliCard skin
+ - rscadd: crafting recipe for the new intelliCard skin (requires 1 pumpkin, 1 intelliCard,
+ 5 cables and a wirecutter as a tool)
+ - tweak: changed the intelliTater crafting recipe to match the intelliLantern recipe
+ (but with a potato for obvious reasons) add:cute pai gameboy face :3
+ Ghommie, porting lot of PRs by MrDoomBringer, AnturK, nemvar and coiax.:
+ - admin: Admins can now launch supplypods the old, slightly quicker way as well
+ - bugfix: Centcom-launched supplypods will now properly delimb you (if they are
+ designated to do so) instead of touching you then literally yeeting all of your
+ internal organs out of your body.
+ - admin: Centcom can now specify if they want to yeet all of your organs out of
+ your body with a supplypod
+ - soundadd: Supplypods sound a bit nicer as the land now.
+ - admin: admins can now adjust the animation duration for centcom-launched supplypods
+ - admin: admins can adjust any sounds that are played as the supplypod lands
+ - bugfix: Reverse-Supplypods (the admin-launched ones) no longer stay behind after
+ rising up, and also auto-delete from centcom.
+ - admin: The centcom podlauncher now has better logging
+ - tweak: Admins can now allow ghosts to follow the delivery of Centcom-launched
+ supply pods
+ - admin: Admins can now use the Centcom Podlauncher to launch things without the
+ things looking like they're being sent inside a pod.
+ - admin: sparks will not generate if the quietLanding effect is on, for the centcom
+ podlauncher
+ - admin: makes input text clearer for the centcom podlauncher
+ - admin: New 'Podspawn' verb, which functions like 'Spawn', except any atoms movable
+ spawned will be dropped in via a no-damage, no-explosion Centcom supply pod.
+ - bugfix: Removed an oversight that made many obj/effect subtypes accidentally bombproof.
+ GrayRachnid:
+ - rscadd: Added saboteur syndicate engiborg
+ - tweak: changed cyborg tool icons and the secborg taser/laser icons.
+ - bugfix: Fixes golden toolbox missing inhand sprite
+ - rscadd: Added traumas
+ - rscadd: Added science powergame tool
+ - tweak: a few hearing args
+ - bugfix: fixed my mistakes
+ - tweak: tweaked the number of ingredients/pancakes you can stack.
+ Hatterhat:
+ - tweak: The Big Red Button now sets bomb timers to 2 seconds, instead of 5.
+ - tweak: Gloves of the North Star (not Hugs of the North Star) now use all their
+ intents very, very fast. This does not apply to grabs' click cooldown, nor shoving
+ people.
+ - rscadd: The seedvault/alien plant DNA manipulator can now be printed off with
+ Alien Biotechnology.
+ Iroquois-Pliskin:
+ - rscdel: Removed Clockwork Cult Surgical facility from Reebe
+ Jerry Derpington, baldest of the balds, and nemvar.:
+ - rscdel: Nanotrasen has lost communication to two away mission sites that contained
+ a beach for Nanotrasen employees.
+ - rscadd: Nanotrasen has been able to locate a new away mission site that ALSO has
+ a beach. Nanotrasen employees will be able to enjoy the beach after all!
+ - rscadd: Seashells have been added to the game.
+ KathrinBailey:
+ - rscadd: Two extra 'luxury' dorms rooms!
+ - rscadd: Gas miners to atmos.
+ - rscadd: Posters around the station.
+ - rscadd: Vacant room added to the Starboard Bow with it's own APC, above electrical
+ maintenance.
+ - rscadd: New trendy clothes to the locker room, giving variety and bringing fashion
+ back onto Nanotrasen stations.
+ - rscadd: Coloured bedsheet and towel bin.
+ - rscadd: Maid uniforms for the janitor.
+ - tweak: Completely reworked bar. Milk kegs added in bar office. The bar has been
+ changed for a homey restaurant feel just in time for Christmas! You can now
+ run it as an actual restaurant! Local Bartender Icktsie III loved it so much
+ he rolled around on the new floor smiling happily.
+ - tweak: Dorms rework. Fitness room now has lots of costumes and outfits.
+ - tweak: Junk removed from engineering, welding goggles added.
+ - tweak: Welding tools in engineering replaced with industrial welding tools.
+ - tweak: Package wrappers and hand labellers now in major departments.
+ - tweak: Cell charger moved from engineering lobby to the protolathe room, just
+ like how it is in all of the other maps and just where the cell charger is actually
+ needed.
+ - tweak: Library redesigned to have a private room and a 3x3 private study that
+ is cleaned up.
+ - tweak: Paper bins have gone big or gone home, with premium stationery scattered
+ around. Engineering and security now have a labeller and packaging supplies.
+ - bugfix: Dark spot top left of Botany fixed.
+ - bugfix: Huge galactic-sized dark spot in bar fixed.
+ - bugfix: Light replacers now are less horrifically overpowered and PTSD-inducing
+ for the server.
+ - bugfix: 'Fixes issue 9706: https://github.com/Citadel-Station-13/Citadel-Station-13/issues/9706
+ Part of maint getting hit by radstorms.
+
+ _Kathrin''s Box Beautification:_'
+ - rscadd: Ports TG's pews https://github.com/tgstation/tgstation/pull/42712
+ - rscadd: The first step of a corporate incursion of Space IKEA into Nanotrasen.
+ Kevinz000, Cruix, MrStonedOne, Denton, Kmc2000, Anturk, MrDoomBringer, Dennok, TheChosenEvilOne, Ghommie:
+ - rscadd: Added support for Multi-Z power, atmospherics and disposals
+ - bugfix: 'massive service department nerf: space can no longer be extra crispy.'
+ Knouli:
+ - rscadd: attack_self proc for the legion core which triggers a self-heal al la
+ the previous 'afterattack' proc, as if clicking on the character's own sprite
+ to self-heal
+ - rscadd: admin logging for all three use cases of legion core healing - afterattack,
+ attack_self, and implanted ui_action_click
+ Krysonism, Ghommie:
+ - rscadd: NT has made breakthroughs in ice cream science, ice creams can now be
+ flavoured with any reagent!
+ - tweak: The ice cream vat now accepts beakers.
+ - bugfix: Grape and Peach icecreams have scoop overlays yet again.
+ Linzolle:
+ - code_imp: butchering component update
+ - tweak: hat tossing can no longer knock hats off
+ - bugfix: strange reagent being unable to revive simplemobs
+ - rscadd: jitter animation and more clear text to strange reagent revival
+ Mickyy5:
+ - rscadd: Nanotrasen are now issuing Plasmamen with plasma in their survival boxes
+ MrJWhit:
+ - tweak: tweaked brain damage line
+ Naksu, ShizCalev:
+ - refactor: Refactored examine-code
+ - bugfix: Examining a human with a burned prosthetic limb will no longer tell you
+ that the limb is blistered.
+ - tweak: Items will now inform you if they are resistant to frost, fire, acid, and
+ lava when examined.
+ Owai-Seek:
+ - rscadd: '"silly" bounties'
+ - rscadd: '"gardenchef" bounties'
+ - rscdel: several bounties that require seriously good RNG to pull off.
+ - tweak: moved several chef and assistant bounties to silly and gardenchef
+ - balance: modified several bounty point rewards
+ - server: added new files "silly.dm" and "gardenchef.dm"
+ - rscadd: 15+ new crates for cargo
+ - tweak: organizes crates and moving them to proper categories
+ - rscdel: some dumb stuff like toner crates re
+ - rscadd: leg wraps and sweaters to clothesmate
+ - rscadd: screwdriver and cable coil to janidrobe
+ - rscadd: screwdriver and cable coil to janibelt whitelist (for fixing/placing light
+ fixtures)
+ - rscadd: monkey cube, syringe, enzyme, soy sauce, and cryoxadone to chef's vendor
+ (contraband and premium)
+ - rscadd: add cracker, beans, honey bars, lollipops, chocolate coin, and spider
+ lollipop to snack vendors (contraband and premium)
+ - rscadd: newspaper to loadout menu for bapping purposes
+ - rscdel: removed poppy pretzels from snack vendor premium
+ - rscadd: maid uniform (janimaid alt) to kinkmate.
+ - tweak: moves gear harness from premium to normal stock in kinkmate
+ - balance: re-balanced metal shield bounty
+ - rscadd: cryoxadone bottle (for use in chef vendor)
+ PersianXerxes:
+ - tweak: Reduces the grace period for meteors from a minimum of 5 and maximum of
+ 10 to 3 and 6 minutes respectively.
+ - rscadd: Adds a pair of VR sleepers to Box Station's permabrig
+ - rscadd: Adds a pair of VR sleepers to Delta Station's permabrig
+ - rscadd: Adds a pair of VR sleepers to Pubby Station's permabrig
+ - rscadd: Adds a pair of VR sleepers to Meta Station's permabrig
+ Putnam:
+ - bugfix: From-ghosts dynamic rulesets now actually listen to "required candidates"
+ - bugfix: Every dynamic-triggered event is now blacklisted from being triggered
+ by the random events system when dynamic can trigger them.
+ - rscadd: Dynamic voting now features extended, if recent rounds have been chaotic.
+ - tweak: Roundstart rulesets now scale on population ready rather than total population.
+ - bugfix: Threat log now accurately represents what actually used the threat.
+ - tweak: Verbose threat log (admin-only) now shows ALL threat level changes.
+ - bugfix: VR mobs can no longer be dynamic midround antags.
+ - bugfix: Personal closets can use anything that holds an ID card now.
+ Putnam3145:
+ - bugfix: traitors work now
+ - balance: Gas filters now push gas the same way volume pumps do.
+ - balance: Gas filters now won't clog if only one output is clogged.
+ - tweak: Glowsticks can no longer be radioactively contaminated (one more supermatter
+ contam exploit gone)
+ - bugfix: traitor removal is no longer borked
+ - rscadd: Dynamic voting
+ - config: Added DYNAMIC_VOTING to game_options
+ - tweak: SDGF now copies memories as well as antag data and factions.
+ - bugfix: Summon events now properly costs threat.
+ - bugfix: Refunded spells refund threat, too.
+ - refactor: Made wizard spells inherently have a requirement and cost.
+ - tweak: Meteor wave is no longer repeatable in dynamic.
+ - tweak: tweaked nuke ops
+ - bugfix: Organs can no longer be radioactively contaminated.
+ Robustin, Subject217:
+ - balance: The NukeOp Shuttle hull has been dramatically hardened. The walls are
+ now "R-Walls" with far greater explosion resistance.
+ - balance: The NukeOp Shuttle guns have been significantly buffed. They now rapidly
+ fire a new type of penetrator round, at a greater range, and have far greater
+ explosion resistance.
+ - balance: The nuclear device on the NukeOp Shuttle is now in an anchored state
+ by default, the Nuke can only be unanchored by inserting the disk and entering
+ the proper code.
+ - balance: Non-Syndicate cyborgs are now unable to access the NukeOp Shuttle Console.
+ - bugfix: You can now unanchor Nukes even when the floor under them has been destroyed
+ Seris02:
+ - rscadd: added sleeping carp hallucination
+ - rscadd: Centcom + Assistant's formal winter coat + loadout + narsian + ratvarian
+ winter coats
+ - rscadd: GPS location on examine
+ - bugfix: fixed the meteor hallucination
+ - tweak: tweaked the way the tapered penis looks
+ - rscadd: Added nine winter coats
+ - imageadd: added images for the winter coats
+ - tweak: adds the mining winter coat to mining wardrobes and mining lockers
+ ShizCalev:
+ - tweak: Ghosts can now see active AI cameras.
+ - bugfix: Fixed a couple of laser / energy guns never switching to the empty icon
+ despite being unable to fire.
+ Swindly:
+ - bugfix: Fixed MMIs not being able to use mecha equipment
+ - bugfix: Fixed MMIs not getting mecha mouse pointers
+ - bugfix: Fixed MMIs not getting medical HUDs in Odysseuses
+ - tweak: Brains can now switch to harm intent
+ Tetr4:
+ - bugfix: Turning a tile with gas effects into space now gets rid of the effects.
+ Trilbyspaceclone:
+ - rscadd: plastic trash cart crafting with plastic
+ - rscadd: wallets are known for now holding more items
+ - tweak: shades and clowns HP
+ - rscadd: six more crates, A barrel, A Loom, 40 cotton sheets, two sets of fruit
+ crates, raw lumber crate
+ - rscadd: All fermi chems, Boozes, Medical, food chems now sell
+ - rscadd: Loads more to sell - Mech gear, Cooking and more!
+ - tweak: Moved around the vaule of some things and removed elastic of most items
+ - balance: Rebreather implants will now loss vaule, Do to being just metal and glass
+ - balance: lowered how many chems are in lewd chem kegs to be around 150-100 as
+ well as the fancy booze kegs
+ - bugfix: bad returns and tools used
+ - rscadd: 8 new cargo crates!
+ - tweak: tablet cargo crate by -3k
+ - admin: Closes a bunch of issues
+ - server: updates changlogs and such
+ - bugfix: fixed a catnip not having sprites
+ - balance: Boh cant hold WEIGHT_CLASS_GIGANTIC, just Bulky. Makes katana, chainsaw
+ and base ball bat into bulky items so they may fit
+ - server: changes header to be more cit-like
+ - rscadd: new clothing for the hotel staff and a hat
+ Ty-the-Smonk:
+ - bugfix: You can now interact with self sustaining crossbreeds
+ Useroth:
+ - rscadd: Colored fairygrass variants.
+ - bugfix: Added a missing cherrybulb seedpack sprite
+ - bugfix: numbered storages now are sorted in a consistent way, instead of depending
+ on ordering of their contents var
+ - rscadd: strange seeds as a buyable traitor botanist item
+ - bugfix: resolves the issues revolving around blackpowder exploding where the reaction
+ happened, instead of where it actually is through making it explode instantly
+ - tweak: the explosion delay moved from blackpowder directly into bomb cherries,
+ to keep them functioning as intended
+ - rscadd: A bunch of newer tg plants
+ - rscadd: A bunch of newer tg plant traits
+ - rscadd: A couple of newer tg plant reagents
+ - bugfix: the new plants now properly get their reagents and reagent genes instead
+ of being empty with UNKNOWN reagents listed in the DNA machine
+ - rscadd: extradimensional oranges now contain haloperidol
+ - bugfix: extradimensional oranges now actually grow properly and give proper seeds.
+ Weblure:
+ - rscadd: Button added to slime console that prints out the hotkey commands to the
+ user. [Includes DMI update]
+ - rscadd: Shift-click a slime to pick it up, or the floor to drop all held slimes.
+ (Requires Basic Slime Console upgrade)
+ - rscadd: Ctrl-click a slime to scan it.
+ - rscadd: Alt-click a slime to feed it a potion. (Requires Advanced Slime Console
+ upgrade)
+ - rscadd: Ctrl-click on a dead monkey to recycle it, or the floor to place a new
+ monkey. (Requires Monkey Console upgrade)
+ - rscadd: If the console does not have the required upgrade, an error message will
+ print to the user.
+ - rscadd: You can now pick up a single slime from a pile, instead of all of them
+ at once.
+ - tweak: When recycling monkeys, the console will now report how many monkeys it
+ has (will not report decimal increases).
+ - tweak: Console now alerts you when you're out of monkeys and reports your current
+ decimal amount.
+ - tweak: Console messages are now styled consistently.
+ XDTM, ShizCalev, Naksu, Skoglol, cacogen, Rohesie (ported by Ghommie):
+ - tweak: Holding an ID in your hands uses it instead of your worn ID for authentication
+ purposes.
+ - tweak: If you don't have an ID in your id slot, the belt slot will be checked
+ as well.
+ - code_imp: small cleanup to id and bounty console html generation
+ - tweak: Hop console now hurts your eyes less. Red button text replaced with green.
+ - tweak: IDs with ID console access now go into the Confirm Identity slot by default
+ like they used to, similarly IDs without it go into the Target slot by default
+ again
+ - rscadd: Can easily swap out IDs by clicking the machine or the UI fields with
+ another ID
+ - rscadd: ID console now names which IDs are added/removed in its visible messages
+ - rscadd: Labels the ID slot fields when logged in so you know which is which
+ - tweak: Can use Job Management without an ID provided the console is logged in
+ (matches how the console now stays logged in even without an ID)
+ - tweak: Can log in without an ID in the Target field (matches how the machine now
+ stays logged in even after the ID is removed from the Target field)
+ - tweak: Cleans up UI slightly (had some duplicate/conflicting buttons)
+ - bugfix: Fixes ID console duping issues. Includes some ID containers, such as PDAs,
+ tablets and wallets, into the swapping behavior when an ID card is being removed
+ and the item is being held.
+ Xantholne:
+ - rscadd: New Berets for most heads and departments available in their autodrobes
+ or lockers
+ YakumoChen:
+ - imageadd: New AI Holograms and Displays! Ported from /vg/station.
+ actioninja:
+ - bugfix: med records no longer can eat id cards for no reason
+ - bugfix: Chat is properly sent to legacy window if goonchat fails to load again.
+ dapnee:
+ - bugfix: fixed closet initialisation being broken
+ - rscdel: emergency closets no longer have a 1% chance to delete themselves
+ - bugfix: Communications console window no longer updates, won't steal focus anymore.
+ - bugfix: Trimline neutral end exists now.
+ dzahlus:
+ - soundadd: added a new gun sounds
+ - sounddel: removed an old gun sounds
+ him:
+ - bugfix: hos and aeg guns now conform to le epic taser rework standards
+ kappa-sama:
+ - tweak: changed flavor text of alien tech on uplink
+ - imageadd: added TG's icons for traitor, russian, and golden revolver
+ kevinz000:
+ - rscadd: you can now choose never for this round for magical antags
+ - rscadd: Cargo has passive point generation again at 750 points/minute
+ - balance: Mindshield crate price increased from 3000 to 4000
+ - balance: Miasma sell price reduced from 15/mol to 4/mol
+ - balance: bluespace wizard apprentice now has blink instead of targeted area teleportation
+ - balance: Emagged medibots now charcoal toxinlovers.
+ - balance: disablers buffed 0.7 --> 0.6 speed 24 --> 28 damage
+ - balance: kinetic crushers no longer drop if you try to use it with one hand
+ - config: added multi_keyed_list, delimiter defaults to |.
+ - balance: Light pink extracts no longer speed you up. Instead, they give stamina
+ regeneration and free sprinting.
+ kiwedespars:
+ - rscdel: removed moth fluff coloring you like your wings
+ - balance: made insect not so bad.
+ nemvar:
+ - bugfix: You now get a message if your PDA explodes while you are holding it.
+ - tweak: The lavaland clown ruin has some new pranks ready.
+ - rscadd: Added a new loot item to the lavaland clown ruin.
+ - rscdel: Removed the slime core from said ruin.
+ - balance: The clown PDA now properly slips people on jogging move intent regardless
+ of fatigue. Honkmother's will.
+ nemvar, ShizCalev, Qustinnus/Floyd, Ghommie:
+ - rscadd: You can now unfasten the loom.
+ - tweak: it now takes 4 strands to make one piece of durathread cloth
+ - bugfix: Looms can now be attacked.
+ - rscadd: Durathread golem weaves his magic
+ - tweak: Supply ordered looms are unanchored. Bring a wrench.
+ r4d6:
+ - rscadd: Added Departements Winter Coats to the loadout list.
diff --git a/html/changelogs/AutoChangeLog-pr-10005.yml b/html/changelogs/AutoChangeLog-pr-10005.yml
deleted file mode 100644
index 728de78c37..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10005.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Commandersand"
-delete-after: True
-changes:
- - rscadd: "Added more stuff to loadout,check uniforms mask and backpack"
diff --git a/html/changelogs/AutoChangeLog-pr-10008.yml b/html/changelogs/AutoChangeLog-pr-10008.yml
deleted file mode 100644
index 9a4090ad28..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10008.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Seris02"
-delete-after: True
-changes:
- - rscadd: "added sleeping carp hallucination"
diff --git a/html/changelogs/AutoChangeLog-pr-10010.yml b/html/changelogs/AutoChangeLog-pr-10010.yml
deleted file mode 100644
index 2926093ee4..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10010.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-author: "Ghommie"
-delete-after: True
-changes:
- - bugfix: "Fixing implant cases being lost inside implant pads when trying to eject them with your active hand full."
- - tweak: "Moved the implant pad's case ejection from attack_hand() to AltClick(), added examination infos about it."
diff --git a/html/changelogs/AutoChangeLog-pr-10015.yml b/html/changelogs/AutoChangeLog-pr-10015.yml
deleted file mode 100644
index 61ce93cd88..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10015.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Putnam3145"
-delete-after: True
-changes:
- - bugfix: "traitors work now"
diff --git a/html/changelogs/AutoChangeLog-pr-10016.yml b/html/changelogs/AutoChangeLog-pr-10016.yml
deleted file mode 100644
index 783b56ff0b..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10016.yml
+++ /dev/null
@@ -1,10 +0,0 @@
-author: "Bhijn"
-delete-after: True
-changes:
- - code_imp: "Item mousedrop() now provides a return value indicating whether or not behavior has been overridden somehow."
- - bugfix: "Defibs now properly check that their loc is the same as the user for mousedrop() calls, meaning ghosts can no longer make you equip defibs. Plus extra sanity checks."
- - bugfix: "Pet carriers no longer attack turfs while trying to unload their contents."
- - bugfix: "Decks of cards now function as they originally intended when attempting to use their drag and drop behavior."
- - bugfix: "Paper bins and papercutters no longer act wonky when you're trying to pull a piece of paper from them."
- - bugfix: "Adds clothing drag n drop sanity checks."
- - bugfix: "Sythetic hats now have extra sanity checks"
diff --git a/html/changelogs/AutoChangeLog-pr-10017.yml b/html/changelogs/AutoChangeLog-pr-10017.yml
deleted file mode 100644
index a208dce4a6..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10017.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-author: "Putnam3145"
-delete-after: True
-changes:
- - balance: "Gas filters now push gas the same way volume pumps do."
- - balance: "Gas filters now won't clog if only one output is clogged."
diff --git a/html/changelogs/AutoChangeLog-pr-10019.yml b/html/changelogs/AutoChangeLog-pr-10019.yml
deleted file mode 100644
index b28d90e39e..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10019.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Seris02"
-delete-after: True
-changes:
- - rscadd: "Centcom + Assistant's formal winter coat + loadout + narsian + ratvarian winter coats"
diff --git a/html/changelogs/AutoChangeLog-pr-10021.yml b/html/changelogs/AutoChangeLog-pr-10021.yml
deleted file mode 100644
index 8d59963e67..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10021.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Putnam3145"
-delete-after: True
-changes:
- - tweak: "Glowsticks can no longer be radioactively contaminated (one more supermatter contam exploit gone)"
diff --git a/html/changelogs/AutoChangeLog-pr-10025.yml b/html/changelogs/AutoChangeLog-pr-10025.yml
deleted file mode 100644
index b690e4e7b5..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10025.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Linzolle"
-delete-after: True
-changes:
- - code_imp: "butchering component update"
diff --git a/html/changelogs/AutoChangeLog-pr-10031.yml b/html/changelogs/AutoChangeLog-pr-10031.yml
deleted file mode 100644
index 707cb80f66..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10031.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Ghommie"
-delete-after: True
-changes:
- - bugfix: "Fixed holodeck sleepers leaving sleeper buffers behind when deleted."
diff --git a/html/changelogs/AutoChangeLog-pr-10033.yml b/html/changelogs/AutoChangeLog-pr-10033.yml
deleted file mode 100644
index 0a2fa85469..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10033.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-author: "Ghommie"
-delete-after: True
-changes:
- - bugfix: "Fixed traitor codewords highlight and some other hear signal hooks spans highlight (phobias, split personality, hypnosis) or modifiers (mind echo)"
- - bugfix: "Fixed traitor codewords highlight not passing down with the mind datum and stickying to the first mob."
diff --git a/html/changelogs/AutoChangeLog-pr-10034.yml b/html/changelogs/AutoChangeLog-pr-10034.yml
deleted file mode 100644
index d954926e38..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10034.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Ghommie"
-delete-after: True
-changes:
- - spellcheck: "Fixed the incongruent bone satchel description."
diff --git a/html/changelogs/AutoChangeLog-pr-10037.yml b/html/changelogs/AutoChangeLog-pr-10037.yml
new file mode 100644
index 0000000000..b0f0501516
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-10037.yml
@@ -0,0 +1,6 @@
+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-10038.yml b/html/changelogs/AutoChangeLog-pr-10038.yml
deleted file mode 100644
index 40ba8ee11b..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10038.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Trilbyspaceclone"
-delete-after: True
-changes:
- - rscadd: "plastic trash cart crafting with plastic"
diff --git a/html/changelogs/AutoChangeLog-pr-10039.yml b/html/changelogs/AutoChangeLog-pr-10039.yml
deleted file mode 100644
index 9bc5eaf62b..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10039.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Putnam3145"
-delete-after: True
-changes:
- - bugfix: "traitor removal is no longer borked"
diff --git a/html/changelogs/AutoChangeLog-pr-10042.yml b/html/changelogs/AutoChangeLog-pr-10042.yml
deleted file mode 100644
index cabf698030..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10042.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Ghommie"
-delete-after: True
-changes:
- - bugfix: "Fixed sofa overlays doing nothing, because their layer wasn't properly set."
diff --git a/html/changelogs/AutoChangeLog-pr-10043.yml b/html/changelogs/AutoChangeLog-pr-10043.yml
deleted file mode 100644
index 9bd7fdced0..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10043.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Arturlang"
-delete-after: True
-changes:
- - tweak: "PDA catridges cant be irradiated anymore."
diff --git a/html/changelogs/AutoChangeLog-pr-10044.yml b/html/changelogs/AutoChangeLog-pr-10044.yml
new file mode 100644
index 0000000000..8d1782c3a8
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-10044.yml
@@ -0,0 +1,6 @@
+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-10045.yml b/html/changelogs/AutoChangeLog-pr-10045.yml
deleted file mode 100644
index 39fdba4fda..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10045.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Trilbyspaceclone"
-delete-after: True
-changes:
- - rscadd: "wallets are known for now holding more items"
diff --git a/html/changelogs/AutoChangeLog-pr-10049.yml b/html/changelogs/AutoChangeLog-pr-10049.yml
deleted file mode 100644
index 34d8c2947a..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10049.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-author: "Useroth"
-delete-after: True
-changes:
- - rscadd: "Colored fairygrass variants."
- - bugfix: "Added a missing cherrybulb seedpack sprite"
diff --git a/html/changelogs/AutoChangeLog-pr-10050.yml b/html/changelogs/AutoChangeLog-pr-10050.yml
new file mode 100644
index 0000000000..c736ded339
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-10050.yml
@@ -0,0 +1,5 @@
+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-10053.yml b/html/changelogs/AutoChangeLog-pr-10053.yml
new file mode 100644
index 0000000000..36d392d8f8
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-10053.yml
@@ -0,0 +1,4 @@
+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-10056.yml b/html/changelogs/AutoChangeLog-pr-10056.yml
deleted file mode 100644
index 05c8f706c1..0000000000
--- a/html/changelogs/AutoChangeLog-pr-10056.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "nemvar"
-delete-after: True
-changes:
- - bugfix: "You now get a message if your PDA explodes while you are holding it."
diff --git a/html/changelogs/AutoChangeLog-pr-10057.yml b/html/changelogs/AutoChangeLog-pr-10057.yml
new file mode 100644
index 0000000000..be285bfc57
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-10057.yml
@@ -0,0 +1,5 @@
+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-10068.yml b/html/changelogs/AutoChangeLog-pr-10068.yml
new file mode 100644
index 0000000000..39b2c37c28
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-10068.yml
@@ -0,0 +1,5 @@
+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
new file mode 100644
index 0000000000..3632bdfa86
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-10071.yml
@@ -0,0 +1,4 @@
+author: "Ghommie"
+delete-after: True
+changes:
+ - bugfix: "Fixes bubblegum's death not unlocking the arena shuttle buyment."
diff --git a/html/changelogs/AutoChangeLog-pr-10082.yml b/html/changelogs/AutoChangeLog-pr-10082.yml
new file mode 100644
index 0000000000..e5c669f798
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-10082.yml
@@ -0,0 +1,4 @@
+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
new file mode 100644
index 0000000000..c60c3fea36
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-10083.yml
@@ -0,0 +1,4 @@
+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
new file mode 100644
index 0000000000..a82f052fed
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-10085.yml
@@ -0,0 +1,6 @@
+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
new file mode 100644
index 0000000000..08dff8ee5c
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-10086.yml
@@ -0,0 +1,4 @@
+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-10094.yml b/html/changelogs/AutoChangeLog-pr-10094.yml
new file mode 100644
index 0000000000..ee9513489d
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-10094.yml
@@ -0,0 +1,4 @@
+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-10099.yml b/html/changelogs/AutoChangeLog-pr-10099.yml
new file mode 100644
index 0000000000..9ad4bfdfc2
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-10099.yml
@@ -0,0 +1,4 @@
+author: "Ghommie"
+delete-after: True
+changes:
+ - bugfix: "Fixed a few holo barriers lacking transparency."
diff --git a/html/changelogs/AutoChangeLog-pr-9614.yml b/html/changelogs/AutoChangeLog-pr-10101.yml
similarity index 61%
rename from html/changelogs/AutoChangeLog-pr-9614.yml
rename to html/changelogs/AutoChangeLog-pr-10101.yml
index ae47ffb4a3..059c8b2d85 100644
--- a/html/changelogs/AutoChangeLog-pr-9614.yml
+++ b/html/changelogs/AutoChangeLog-pr-10101.yml
@@ -1,4 +1,4 @@
author: "Trilbyspaceclone"
delete-after: True
changes:
- - tweak: "shades and clowns HP"
+ - admin: "Updates the changlogs"
diff --git a/html/changelogs/AutoChangeLog-pr-10108.yml b/html/changelogs/AutoChangeLog-pr-10108.yml
new file mode 100644
index 0000000000..67c6396763
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-10108.yml
@@ -0,0 +1,4 @@
+author: "DeltaFire15"
+delete-after: True
+changes:
+ - balance: "Clock cult kindle no longer cares about oxygen damage"
diff --git a/html/changelogs/AutoChangeLog-pr-10114.yml b/html/changelogs/AutoChangeLog-pr-10114.yml
new file mode 100644
index 0000000000..f413760ff9
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-10114.yml
@@ -0,0 +1,4 @@
+author: "r4d6"
+delete-after: True
+changes:
+ - rscadd: "Added a N2O pressure tank"
diff --git a/html/changelogs/AutoChangeLog-pr-10116.yml b/html/changelogs/AutoChangeLog-pr-10116.yml
new file mode 100644
index 0000000000..70c1b4590d
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-10116.yml
@@ -0,0 +1,4 @@
+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-10121.yml b/html/changelogs/AutoChangeLog-pr-10121.yml
new file mode 100644
index 0000000000..38a91fcc01
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-10121.yml
@@ -0,0 +1,4 @@
+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
new file mode 100644
index 0000000000..4d503dc2be
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-10122.yml
@@ -0,0 +1,4 @@
+author: "kevinz000"
+delete-after: True
+changes:
+ - rscdel: "conveyors can only stack items on tiles to 150 now."
diff --git a/html/changelogs/AutoChangeLog-pr-10130.yml b/html/changelogs/AutoChangeLog-pr-10130.yml
new file mode 100644
index 0000000000..1f6ba6ac6a
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-10130.yml
@@ -0,0 +1,4 @@
+author: "kappa-sama"
+delete-after: True
+changes:
+ - code_imp: "modular is gone"
diff --git a/html/changelogs/AutoChangeLog-pr-9663.yml b/html/changelogs/AutoChangeLog-pr-10132.yml
similarity index 57%
rename from html/changelogs/AutoChangeLog-pr-9663.yml
rename to html/changelogs/AutoChangeLog-pr-10132.yml
index ad11e40878..d8755d2b90 100644
--- a/html/changelogs/AutoChangeLog-pr-9663.yml
+++ b/html/changelogs/AutoChangeLog-pr-10132.yml
@@ -1,4 +1,4 @@
author: "Trilbyspaceclone"
delete-after: True
changes:
- - bugfix: "bad returns and tools used"
+ - tweak: "meat hook from HUGE to bulky"
diff --git a/html/changelogs/AutoChangeLog-pr-10137.yml b/html/changelogs/AutoChangeLog-pr-10137.yml
new file mode 100644
index 0000000000..63678d4425
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-10137.yml
@@ -0,0 +1,4 @@
+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
new file mode 100644
index 0000000000..d5e33fa02d
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-10140.yml
@@ -0,0 +1,4 @@
+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-10143.yml b/html/changelogs/AutoChangeLog-pr-10143.yml
new file mode 100644
index 0000000000..45dfe225c4
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-10143.yml
@@ -0,0 +1,4 @@
+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-10150.yml b/html/changelogs/AutoChangeLog-pr-10150.yml
new file mode 100644
index 0000000000..d2a2b79ff0
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-10150.yml
@@ -0,0 +1,4 @@
+author: "Trilbyspaceclone"
+delete-after: True
+changes:
+ - bugfix: "Wrong icon names, missing dog fashion with telegram hat"
diff --git a/html/changelogs/AutoChangeLog-pr-10156.yml b/html/changelogs/AutoChangeLog-pr-10156.yml
new file mode 100644
index 0000000000..ec08642b3f
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-10156.yml
@@ -0,0 +1,5 @@
+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-10161.yml b/html/changelogs/AutoChangeLog-pr-10161.yml
new file mode 100644
index 0000000000..7f09609b99
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-10161.yml
@@ -0,0 +1,4 @@
+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
new file mode 100644
index 0000000000..2818019ad7
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-10163.yml
@@ -0,0 +1,4 @@
+author: "Ghommie"
+delete-after: True
+changes:
+ - tweak: "Blood bank generators can now be anchored and unanchored now."
diff --git a/html/changelogs/AutoChangeLog-pr-10171.yml b/html/changelogs/AutoChangeLog-pr-10171.yml
new file mode 100644
index 0000000000..0138d7a381
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-10171.yml
@@ -0,0 +1,4 @@
+author: "r4d6"
+delete-after: True
+changes:
+ - rscdel: "Removed a AM Shielding from the crate"
diff --git a/html/changelogs/AutoChangeLog-pr-9268.yml b/html/changelogs/AutoChangeLog-pr-9268.yml
deleted file mode 100644
index 3d856b6842..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9268.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-author: "Fermis"
-delete-after: True
-changes:
- - tweak: "Purity, Astral, RNG, MK, SMilk, SDGF, furranium, hatmium, eigen, nanite."
- - bugfix: "Eigen and purity."
diff --git a/html/changelogs/AutoChangeLog-pr-9323.yml b/html/changelogs/AutoChangeLog-pr-9323.yml
deleted file mode 100644
index 19e91deaf5..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9323.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "kevinz000"
-delete-after: True
-changes:
- - rscadd: "you can now choose never for this round for magical antags"
diff --git a/html/changelogs/AutoChangeLog-pr-9372.yml b/html/changelogs/AutoChangeLog-pr-9372.yml
deleted file mode 100644
index 923200ce11..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9372.yml
+++ /dev/null
@@ -1,13 +0,0 @@
-author: "Weblure"
-delete-after: True
-changes:
- - rscadd: "Button added to slime console that prints out the hotkey commands to the user. [Includes DMI update]"
- - rscadd: "Shift-click a slime to pick it up, or the floor to drop all held slimes. (Requires Basic Slime Console upgrade)"
- - rscadd: "Ctrl-click a slime to scan it."
- - rscadd: "Alt-click a slime to feed it a potion. (Requires Advanced Slime Console upgrade)"
- - rscadd: "Ctrl-click on a dead monkey to recycle it, or the floor to place a new monkey. (Requires Monkey Console upgrade)"
- - rscadd: "If the console does not have the required upgrade, an error message will print to the user."
- - rscadd: "You can now pick up a single slime from a pile, instead of all of them at once."
- - tweak: "When recycling monkeys, the console will now report how many monkeys it has (will not report decimal increases)."
- - tweak: "Console now alerts you when you're out of monkeys and reports your current decimal amount."
- - tweak: "Console messages are now styled consistently."
diff --git a/html/changelogs/AutoChangeLog-pr-9430.yml b/html/changelogs/AutoChangeLog-pr-9430.yml
deleted file mode 100644
index 8552d00926..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9430.yml
+++ /dev/null
@@ -1,8 +0,0 @@
-author: "Ghommie (original PR by Denton)"
-delete-after: True
-changes:
- - rscadd: "Added three new .38 ammo types. TRAC bullets, which embed a tracking implant inside the target's body. The implant only lasts for five minutes and doesn't work as a teleport beacon. Hot Shot bullets set targets on fire; Iceblox bullets drastically lower the target's body temperature. They are available after researching the Subdermal Implants node (TRAC) or Exotic Ammunition node (Hot Shot/Iceblox)."
- - tweak: "Renamed the Technological Shells research node to Exotic Ammunition."
- - code_imp: "The \"lifespan_postmortem\" var now determines how long tracking implants work after death."
- - rscadd: ".357 AP speedloaders can now be ordered from syndicate uplinks."
- - balance: "lowered the cost of uplink's .357 speedloaderd from 4 to 3."
diff --git a/html/changelogs/AutoChangeLog-pr-9453.yml b/html/changelogs/AutoChangeLog-pr-9453.yml
deleted file mode 100644
index bcb35f7394..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9453.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-author: "Ghommie"
-delete-after: True
-changes:
- - tweak: "Suicide and cryo now prevents ghost/midround roles for a definite duration of 30 minutes (and more if that was done before 30 minutes in the game passed), down from the rest of the round."
- - bugfix: "fixed several midround roles bypassing and nulling the aforementioned prevention measures."
diff --git a/html/changelogs/AutoChangeLog-pr-9518.yml b/html/changelogs/AutoChangeLog-pr-9518.yml
deleted file mode 100644
index 67a2c25938..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9518.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Ghommie (original PR by nicbn and Menshin)"
-delete-after: True
-changes:
- - bugfix: "You can click on things that are under flaps or holo barriers."
diff --git a/html/changelogs/AutoChangeLog-pr-9530.yml b/html/changelogs/AutoChangeLog-pr-9530.yml
deleted file mode 100644
index ace41e9e97..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9530.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-author: "Ghommie"
-delete-after: True
-changes:
- - bugfix: "Fixed the little issue of PDA skins not updating on job equip."
- - tweak: "Anomaly Crystals of the clowning type will now rename the victim to their clown name preference when triggered, instead of giving them a random clown name."
diff --git a/html/changelogs/AutoChangeLog-pr-9538.yml b/html/changelogs/AutoChangeLog-pr-9538.yml
new file mode 100644
index 0000000000..a036a8d24a
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-9538.yml
@@ -0,0 +1,5 @@
+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-9544.yml b/html/changelogs/AutoChangeLog-pr-9544.yml
deleted file mode 100644
index 1b0d979b7f..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9544.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "MrJWhit"
-delete-after: True
-changes:
- - tweak: "tweaked brain damage line"
diff --git a/html/changelogs/AutoChangeLog-pr-9554.yml b/html/changelogs/AutoChangeLog-pr-9554.yml
deleted file mode 100644
index 229f5a5d0c..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9554.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Anonymous"
-delete-after: True
-changes:
- - rscadd: "Added NEET-- I mean, DAB Suit and Helmet into loadout. Exclusive to Assistants, for obvious reasons, and don't provide any armor. Goes well with balaclava, finger-less gloves and jackboots for that true tactic~~f~~ool experience."
diff --git a/html/changelogs/AutoChangeLog-pr-9557.yml b/html/changelogs/AutoChangeLog-pr-9557.yml
deleted file mode 100644
index f88e9cced8..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9557.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-author: "Putnam3145"
-delete-after: True
-changes:
- - rscadd: "Dynamic voting"
- - config: "Added DYNAMIC_VOTING to game_options"
diff --git a/html/changelogs/AutoChangeLog-pr-9574.yml b/html/changelogs/AutoChangeLog-pr-9574.yml
deleted file mode 100644
index 240d5ad0af..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9574.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "r4d6"
-delete-after: True
-changes:
- - rscadd: "Added Departements Winter Coats to the loadout list."
diff --git a/html/changelogs/AutoChangeLog-pr-9575.yml b/html/changelogs/AutoChangeLog-pr-9575.yml
deleted file mode 100644
index 76b71da82b..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9575.yml
+++ /dev/null
@@ -1,24 +0,0 @@
-author: "KathrinBailey"
-delete-after: True
-changes:
- - rscadd: "Two extra 'luxury' dorms rooms!"
- - rscadd: "Gas miners to atmos."
- - rscadd: "Posters around the station."
- - rscadd: "Vacant room added to the Starboard Bow with it's own APC, above electrical maintenance."
- - rscadd: "New trendy clothes to the locker room, giving variety and bringing fashion back onto Nanotrasen stations."
- - rscadd: "Coloured bedsheet and towel bin."
- - rscadd: "Maid uniforms for the janitor."
- - tweak: "Completely reworked bar. Milk kegs added in bar office. The bar has been changed for a homey restaurant feel just in time for Christmas! You can now run it as an actual restaurant! Local Bartender Icktsie III loved it so much he rolled around on the new floor smiling happily."
- - tweak: "Dorms rework. Fitness room now has lots of costumes and outfits."
- - tweak: "Junk removed from engineering, welding goggles added."
- - tweak: "Welding tools in engineering replaced with industrial welding tools."
- - tweak: "Package wrappers and hand labellers now in major departments."
- - tweak: "Cell charger moved from engineering lobby to the protolathe room, just like how it is in all of the other maps and just where the cell charger is actually needed."
- - tweak: "Library redesigned to have a private room and a 3x3 private study that is cleaned up."
- - tweak: "Paper bins have gone big or gone home, with premium stationery scattered around. Engineering and security now have a labeller and packaging supplies."
- - bugfix: "Dark spot top left of Botany fixed."
- - bugfix: "Huge galactic-sized dark spot in bar fixed."
- - bugfix: "Light replacers now are less horrifically overpowered and PTSD-inducing for the server."
- - bugfix: "Fixes issue 9706: https://github.com/Citadel-Station-13/Citadel-Station-13/issues/9706 Part of maint getting hit by radstorms.
-
-_Kathrin's Box Beautification:_"
diff --git a/html/changelogs/AutoChangeLog-pr-9611.yml b/html/changelogs/AutoChangeLog-pr-9611.yml
deleted file mode 100644
index 48a0e9982b..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9611.yml
+++ /dev/null
@@ -1,6 +0,0 @@
-author: "kevinz000"
-delete-after: True
-changes:
- - rscadd: "Cargo has passive point generation again at 750 points/minute"
- - balance: "Mindshield crate price increased from 3000 to 4000"
- - balance: "Miasma sell price reduced from 15/mol to 4/mol"
diff --git a/html/changelogs/AutoChangeLog-pr-9628.yml b/html/changelogs/AutoChangeLog-pr-9628.yml
deleted file mode 100644
index 45315940ac..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9628.yml
+++ /dev/null
@@ -1,9 +0,0 @@
-author: "Trilbyspaceclone"
-delete-after: True
-changes:
- - rscadd: "six more crates, A barrel, A Loom, 40 cotton sheets, two sets of fruit crates, raw lumber crate"
- - rscadd: "All fermi chems, Boozes, Medical, food chems now sell"
- - rscadd: "Loads more to sell - Mech gear, Cooking and more!"
- - tweak: "Moved around the vaule of some things and removed elastic of most items"
- - balance: "Rebreather implants will now loss vaule, Do to being just metal and glass"
- - balance: "lowered how many chems are in lewd chem kegs to be around 150-100 as well as the fancy booze kegs"
diff --git a/html/changelogs/AutoChangeLog-pr-9629.yml b/html/changelogs/AutoChangeLog-pr-9629.yml
new file mode 100644
index 0000000000..f0419e4ce9
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-9629.yml
@@ -0,0 +1,4 @@
+author: "kevinz000"
+delete-after: True
+changes:
+ - bugfix: "aooc toggling now only broadcasts to antagonists"
diff --git a/html/changelogs/AutoChangeLog-pr-9632.yml b/html/changelogs/AutoChangeLog-pr-9632.yml
deleted file mode 100644
index 41abee528f..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9632.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-author: "Kevinz000, Cruix, MrStonedOne, Denton, Kmc2000, Anturk, MrDoomBringer, Dennok, TheChosenEvilOne, Ghommie"
-delete-after: True
-changes:
- - rscadd: "Added support for Multi-Z power, atmospherics and disposals"
- - bugfix: "massive service department nerf: space can no longer be extra crispy."
diff --git a/html/changelogs/AutoChangeLog-pr-9666.yml b/html/changelogs/AutoChangeLog-pr-9666.yml
deleted file mode 100644
index 9d4511b3e9..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9666.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Ghommie"
-delete-after: True
-changes:
- - balance: "Lowered blob event earliest start from 1 hour to 40 minutes (ergo one third), and the required player population from 40 to 35."
diff --git a/html/changelogs/AutoChangeLog-pr-9680.yml b/html/changelogs/AutoChangeLog-pr-9680.yml
deleted file mode 100644
index e2e9aa0b64..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9680.yml
+++ /dev/null
@@ -1,9 +0,0 @@
-author: "Owai-Seek"
-delete-after: True
-changes:
- - rscadd: "\"silly\" bounties"
- - rscadd: "\"gardenchef\" bounties"
- - rscdel: "several bounties that require seriously good RNG to pull off."
- - tweak: "moved several chef and assistant bounties to silly and gardenchef"
- - balance: "modified several bounty point rewards"
- - server: "added new files \"silly.dm\" and \"gardenchef.dm\""
diff --git a/html/changelogs/AutoChangeLog-pr-9681.yml b/html/changelogs/AutoChangeLog-pr-9681.yml
deleted file mode 100644
index c4c289425b..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9681.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "kevinz000"
-delete-after: True
-changes:
- - balance: "bluespace wizard apprentice now has blink instead of targeted area teleportation"
diff --git a/html/changelogs/AutoChangeLog-pr-9683.yml b/html/changelogs/AutoChangeLog-pr-9683.yml
deleted file mode 100644
index 44f6bb1759..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9683.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Ghommie"
-delete-after: True
-changes:
- - bugfix: "Several fixes and QoL for dullahans. They can see and hear visible and audible messages now, don't need a space helmet they can't wear anyway to be space/temperature proof, can examine things through shiftclick, and, most of all, fixed their head being unpickable. Fixed dullahans gibbing when revived or had their limbs regenerated."
diff --git a/html/changelogs/AutoChangeLog-pr-9688.yml b/html/changelogs/AutoChangeLog-pr-9688.yml
deleted file mode 100644
index 29606173a4..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9688.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-author: "Ghommie"
-delete-after: True
-changes:
- - bugfix: "humans should now drop gibs when gibbed again."
- - rscadd: "synths (not to be confused with IPCs), android and corporate species, as well as robotic simple mobs, will now spawn robotic giblets instead of organic ones."
diff --git a/html/changelogs/AutoChangeLog-pr-9689.yml b/html/changelogs/AutoChangeLog-pr-9689.yml
deleted file mode 100644
index e1733d92ef..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9689.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Ghommie"
-delete-after: True
-changes:
- - bugfix: "You can't wear dakimakuras in any other inappropriate slots save for the back slot anymore, degenerates."
diff --git a/html/changelogs/AutoChangeLog-pr-9694.yml b/html/changelogs/AutoChangeLog-pr-9694.yml
deleted file mode 100644
index 6c4842e70e..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9694.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "him"
-delete-after: True
-changes:
- - bugfix: "hos and aeg guns now conform to le epic taser rework standards"
diff --git a/html/changelogs/AutoChangeLog-pr-9695.yml b/html/changelogs/AutoChangeLog-pr-9695.yml
deleted file mode 100644
index 60455c2bb5..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9695.yml
+++ /dev/null
@@ -1,7 +0,0 @@
-author: "Ghommie (original PRs by ShizCalev, CRTXBacon and Niknakflak)"
-delete-after: True
-changes:
- - rscadd: "Adds the intelliLantern, a big ol' spooky intelliCard skin"
- - rscadd: "crafting recipe for the new intelliCard skin (requires 1 pumpkin, 1 intelliCard, 5 cables and a wirecutter as a tool)"
- - tweak: "changed the intelliTater crafting recipe to match the intelliLantern recipe (but with a potato for obvious reasons)
-add:cute pai gameboy face :3"
diff --git a/html/changelogs/AutoChangeLog-pr-9696.yml b/html/changelogs/AutoChangeLog-pr-9696.yml
deleted file mode 100644
index 3188173d54..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9696.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Ghommie"
-delete-after: True
-changes:
- - bugfix: "Insert snarky remark about clock welders actually displaying the welder flame overlay when turned on now here."
diff --git a/html/changelogs/AutoChangeLog-pr-9703.yml b/html/changelogs/AutoChangeLog-pr-9703.yml
deleted file mode 100644
index 312057c2c6..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9703.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "kevinz000"
-delete-after: True
-changes:
- - balance: "Emagged medibots now charcoal toxinlovers."
diff --git a/html/changelogs/AutoChangeLog-pr-9704.yml b/html/changelogs/AutoChangeLog-pr-9704.yml
deleted file mode 100644
index f4c8127241..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9704.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Ghommie"
-delete-after: True
-changes:
- - balance: "Minor ninja tweaks and stealth nerfs. The stealth penalty for the many combat-related actions, bumping and now teleporting/dashing or firing guns has been increased a by a third. There is now a cooldown of 5 seconds on toggling stealth as well as a slighty slowed stealth in/out animation."
diff --git a/html/changelogs/AutoChangeLog-pr-9705.yml b/html/changelogs/AutoChangeLog-pr-9705.yml
deleted file mode 100644
index c3dafc0582..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9705.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "kappa-sama"
-delete-after: True
-changes:
- - tweak: "changed flavor text of alien tech on uplink"
diff --git a/html/changelogs/AutoChangeLog-pr-9709.yml b/html/changelogs/AutoChangeLog-pr-9709.yml
deleted file mode 100644
index 73d3164433..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9709.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-author: "Trilbyspaceclone"
-delete-after: True
-changes:
- - rscadd: "8 new cargo crates!"
- - tweak: "tablet cargo crate by -3k"
diff --git a/html/changelogs/AutoChangeLog-pr-9710.yml b/html/changelogs/AutoChangeLog-pr-9710.yml
deleted file mode 100644
index fc815f5255..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9710.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-author: "Trilbyspaceclone"
-delete-after: True
-changes:
- - admin: "Closes a bunch of issues"
- - server: "updates changlogs and such"
diff --git a/html/changelogs/AutoChangeLog-pr-9713.yml b/html/changelogs/AutoChangeLog-pr-9713.yml
deleted file mode 100644
index fcefecf94d..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9713.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Trilbyspaceclone"
-delete-after: True
-changes:
- - bugfix: "fixed a catnip not having sprites"
diff --git a/html/changelogs/AutoChangeLog-pr-9715.yml b/html/changelogs/AutoChangeLog-pr-9715.yml
deleted file mode 100644
index a7cfb50426..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9715.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Ghommie"
-delete-after: True
-changes:
- - imageadd: "Ported slighty better matchbox sprites from CEV-Eris, also resprited cigar boxes myself."
diff --git a/html/changelogs/AutoChangeLog-pr-9716.yml b/html/changelogs/AutoChangeLog-pr-9716.yml
deleted file mode 100644
index 704b263b50..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9716.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Ghommie"
-delete-after: True
-changes:
- - bugfix: "Fixed abductors/abductees objectives by porting an objective code."
diff --git a/html/changelogs/AutoChangeLog-pr-9717.yml b/html/changelogs/AutoChangeLog-pr-9717.yml
deleted file mode 100644
index 7ac1988b74..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9717.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Putnam3145"
-delete-after: True
-changes:
- - tweak: "SDGF now copies memories as well as antag data and factions."
diff --git a/html/changelogs/AutoChangeLog-pr-9720.yml b/html/changelogs/AutoChangeLog-pr-9720.yml
deleted file mode 100644
index f4c4aade36..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9720.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "kevinz000"
-delete-after: True
-changes:
- - balance: "disablers buffed 0.7 --> 0.6 speed 24 --> 28 damage"
diff --git a/html/changelogs/AutoChangeLog-pr-9723.yml b/html/changelogs/AutoChangeLog-pr-9723.yml
deleted file mode 100644
index 2952fc8273..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9723.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Ghommie"
-delete-after: True
-changes:
- - bugfix: "Riding component fix"
diff --git a/html/changelogs/AutoChangeLog-pr-9726.yml b/html/changelogs/AutoChangeLog-pr-9726.yml
deleted file mode 100644
index 9e8f3bf71e..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9726.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Ghommie"
-delete-after: True
-changes:
- - bugfix: "fixing a few runtimes on lightgeists, libido trait, rcd, one admin transformation topic, chem dispensers, glowing robotic eyes..."
diff --git a/html/changelogs/AutoChangeLog-pr-9730.yml b/html/changelogs/AutoChangeLog-pr-9730.yml
deleted file mode 100644
index 6caf95bcbc..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9730.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "kevinz000"
-delete-after: True
-changes:
- - balance: "kinetic crushers no longer drop if you try to use it with one hand"
diff --git a/html/changelogs/AutoChangeLog-pr-9734.yml b/html/changelogs/AutoChangeLog-pr-9734.yml
deleted file mode 100644
index dd134e480c..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9734.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Ghommie"
-delete-after: True
-changes:
- - imageadd: "Porting CEV-eris delivery packages sprites and dunking the old syndie cybernetics box sprite."
diff --git a/html/changelogs/AutoChangeLog-pr-9742.yml b/html/changelogs/AutoChangeLog-pr-9742.yml
deleted file mode 100644
index ef5822e959..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9742.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Seris02"
-delete-after: True
-changes:
- - rscadd: "GPS location on examine"
diff --git a/html/changelogs/AutoChangeLog-pr-9744.yml b/html/changelogs/AutoChangeLog-pr-9744.yml
deleted file mode 100644
index a653e77c1a..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9744.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Seris02"
-delete-after: True
-changes:
- - bugfix: "fixed the meteor hallucination"
diff --git a/html/changelogs/AutoChangeLog-pr-9745.yml b/html/changelogs/AutoChangeLog-pr-9745.yml
deleted file mode 100644
index 95a6d943b5..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9745.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Ghommie"
-delete-after: True
-changes:
- - bugfix: "Certain objects shouldn't be able to become radioactive because of a bitflag that previously was checked nowhere in the code anymore."
diff --git a/html/changelogs/AutoChangeLog-pr-9746.yml b/html/changelogs/AutoChangeLog-pr-9746.yml
deleted file mode 100644
index e4b1c312ea..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9746.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "actioninja"
-delete-after: True
-changes:
- - bugfix: "med records no longer can eat id cards for no reason"
diff --git a/html/changelogs/AutoChangeLog-pr-9747.yml b/html/changelogs/AutoChangeLog-pr-9747.yml
new file mode 100644
index 0000000000..01caf36136
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-9747.yml
@@ -0,0 +1,4 @@
+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-9749.yml b/html/changelogs/AutoChangeLog-pr-9749.yml
deleted file mode 100644
index 3113fa08c3..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9749.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Trilbyspaceclone"
-delete-after: True
-changes:
- - balance: "Boh cant hold WEIGHT_CLASS_GIGANTIC, just Bulky. Makes katana, chainsaw and base ball bat into bulky items so they may fit"
diff --git a/html/changelogs/AutoChangeLog-pr-9764.yml b/html/changelogs/AutoChangeLog-pr-9764.yml
deleted file mode 100644
index a3ad009e81..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9764.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "AffectedArc07"
-delete-after: True
-changes:
- - code_imp: "Fixes a LOT of code edge cases"
diff --git a/html/changelogs/AutoChangeLog-pr-9765.yml b/html/changelogs/AutoChangeLog-pr-9765.yml
deleted file mode 100644
index 1cb21916cc..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9765.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-author: "dapnee"
-delete-after: True
-changes:
- - bugfix: "fixed closet initialisation being broken"
- - rscdel: "emergency closets no longer have a 1% chance to delete themselves"
diff --git a/html/changelogs/AutoChangeLog-pr-9769.yml b/html/changelogs/AutoChangeLog-pr-9769.yml
deleted file mode 100644
index 2a1f92f68c..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9769.yml
+++ /dev/null
@@ -1,15 +0,0 @@
-author: "XDTM, ShizCalev, Naksu, Skoglol, cacogen, Rohesie (ported by Ghommie)"
-delete-after: True
-changes:
- - tweak: "Holding an ID in your hands uses it instead of your worn ID for authentication purposes."
- - tweak: "If you don't have an ID in your id slot, the belt slot will be checked as well."
- - code_imp: "small cleanup to id and bounty console html generation"
- - tweak: "Hop console now hurts your eyes less. Red button text replaced with green."
- - tweak: "IDs with ID console access now go into the Confirm Identity slot by default like they used to, similarly IDs without it go into the Target slot by default again"
- - rscadd: "Can easily swap out IDs by clicking the machine or the UI fields with another ID"
- - rscadd: "ID console now names which IDs are added/removed in its visible messages"
- - rscadd: "Labels the ID slot fields when logged in so you know which is which"
- - tweak: "Can use Job Management without an ID provided the console is logged in (matches how the console now stays logged in even without an ID)"
- - tweak: "Can log in without an ID in the Target field (matches how the machine now stays logged in even after the ID is removed from the Target field)"
- - tweak: "Cleans up UI slightly (had some duplicate/conflicting buttons)"
- - bugfix: "Fixes ID console duping issues. Includes some ID containers, such as PDAs, tablets and wallets, into the swapping behavior when an ID card is being removed and the item is being held."
diff --git a/html/changelogs/AutoChangeLog-pr-9771.yml b/html/changelogs/AutoChangeLog-pr-9771.yml
deleted file mode 100644
index 55652519e4..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9771.yml
+++ /dev/null
@@ -1,8 +0,0 @@
-author: "Robustin, Subject217"
-delete-after: True
-changes:
- - balance: "The NukeOp Shuttle hull has been dramatically hardened. The walls are now \"R-Walls\" with far greater explosion resistance."
- - balance: "The NukeOp Shuttle guns have been significantly buffed. They now rapidly fire a new type of penetrator round, at a greater range, and have far greater explosion resistance."
- - balance: "The nuclear device on the NukeOp Shuttle is now in an anchored state by default, the Nuke can only be unanchored by inserting the disk and entering the proper code."
- - balance: "Non-Syndicate cyborgs are now unable to access the NukeOp Shuttle Console."
- - bugfix: "You can now unanchor Nukes even when the floor under them has been destroyed"
diff --git a/html/changelogs/AutoChangeLog-pr-9772.yml b/html/changelogs/AutoChangeLog-pr-9772.yml
deleted file mode 100644
index 675b9a9cde..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9772.yml
+++ /dev/null
@@ -1,7 +0,0 @@
-author: "DeltaFire15"
-delete-after: True
-changes:
- - rscadd: "Adds eight new plushies"
- - imageadd: "Adds icons for the new plushies and adds a new icon for the skylar plush"
- - imagedel: "Deleted a old, no-longer used icon for the skylar plush"
- - spellcheck: "Fixed a typo in the trilby plush"
diff --git a/html/changelogs/AutoChangeLog-pr-9773.yml b/html/changelogs/AutoChangeLog-pr-9773.yml
deleted file mode 100644
index e02fe07a37..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9773.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Ghommie"
-delete-after: True
-changes:
- - rscadd: "Added a new PDA reskin, sprites from CEV-Eris"
diff --git a/html/changelogs/AutoChangeLog-pr-9775.yml b/html/changelogs/AutoChangeLog-pr-9775.yml
deleted file mode 100644
index 07ed8efdbe..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9775.yml
+++ /dev/null
@@ -1,7 +0,0 @@
-author: "nemvar"
-delete-after: True
-changes:
- - tweak: "The lavaland clown ruin has some new pranks ready."
- - rscadd: "Added a new loot item to the lavaland clown ruin."
- - rscdel: "Removed the slime core from said ruin."
- - balance: "The clown PDA now properly slips people on jogging move intent regardless of fatigue. Honkmother's will."
diff --git a/html/changelogs/AutoChangeLog-pr-9779.yml b/html/changelogs/AutoChangeLog-pr-9779.yml
deleted file mode 100644
index b6d1046957..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9779.yml
+++ /dev/null
@@ -1,6 +0,0 @@
-author: "Ghommie"
-delete-after: True
-changes:
- - rscadd: "Clock cult starts with some spare vitality matrix charge scaled of the number of starter servants."
- - balance: "Made the vitality matrix sigil slighty more visible, also allowed conversion runes to heal fresh converts at the cost of some vitality charge."
- - bugfix: "Crawling won't save you from the wrath of ocular wardens and pressure sensors anymore, heretics. fix: Pressure sensors are no more triggered by floating/flying mobs."
diff --git a/html/changelogs/AutoChangeLog-pr-9780.yml b/html/changelogs/AutoChangeLog-pr-9780.yml
deleted file mode 100644
index b014218fbc..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9780.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Hatterhat"
-delete-after: True
-changes:
- - tweak: "The Big Red Button now sets bomb timers to 2 seconds, instead of 5."
diff --git a/html/changelogs/AutoChangeLog-pr-9781.yml b/html/changelogs/AutoChangeLog-pr-9781.yml
deleted file mode 100644
index c8e73b3b9d..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9781.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Hatterhat"
-delete-after: True
-changes:
- - tweak: "Gloves of the North Star (not Hugs of the North Star) now use all their intents very, very fast. This does not apply to grabs' click cooldown, nor shoving people."
diff --git a/html/changelogs/AutoChangeLog-pr-9782.yml b/html/changelogs/AutoChangeLog-pr-9782.yml
deleted file mode 100644
index f29da71edc..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9782.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Ghommie"
-delete-after: True
-changes:
- - bugfix: "Strawberry milk and tea have sprites now."
diff --git a/html/changelogs/AutoChangeLog-pr-9783.yml b/html/changelogs/AutoChangeLog-pr-9783.yml
deleted file mode 100644
index 0362b582f6..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9783.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Ghommie"
-delete-after: True
-changes:
- - bugfix: "Fixed the Aux base camera door settings and toggle window type actions. Also enabling the user to modify both door access and type."
diff --git a/html/changelogs/AutoChangeLog-pr-9785.yml b/html/changelogs/AutoChangeLog-pr-9785.yml
deleted file mode 100644
index 17d4f5325b..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9785.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-author: "Ghommie"
-delete-after: True
-changes:
- - imageadd: "Improved the two grayscale towel item sprites a little."
- - bugfix: "Fixed towels onmob suit overlays. Again."
diff --git a/html/changelogs/AutoChangeLog-pr-9786.yml b/html/changelogs/AutoChangeLog-pr-9786.yml
deleted file mode 100644
index f8b69521cb..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9786.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Ghommie"
-delete-after: True
-changes:
- - spellcheck: "Fixed some reagents taste descriptions."
diff --git a/html/changelogs/AutoChangeLog-pr-9788.yml b/html/changelogs/AutoChangeLog-pr-9788.yml
deleted file mode 100644
index 503f3dbb0e..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9788.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Seris02"
-delete-after: True
-changes:
- - tweak: "tweaked the way the tapered penis looks"
diff --git a/html/changelogs/AutoChangeLog-pr-9790.yml b/html/changelogs/AutoChangeLog-pr-9790.yml
deleted file mode 100644
index 4f243774c4..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9790.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "PersianXerxes"
-delete-after: True
-changes:
- - tweak: "Reduces the grace period for meteors from a minimum of 5 and maximum of 10 to 3 and 6 minutes respectively."
diff --git a/html/changelogs/AutoChangeLog-pr-9791.yml b/html/changelogs/AutoChangeLog-pr-9791.yml
deleted file mode 100644
index 587fbce481..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9791.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "kappa-sama"
-delete-after: True
-changes:
- - imageadd: "added TG's icons for traitor, russian, and golden revolver"
diff --git a/html/changelogs/AutoChangeLog-pr-9797.yml b/html/changelogs/AutoChangeLog-pr-9797.yml
deleted file mode 100644
index eb50cb7254..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9797.yml
+++ /dev/null
@@ -1,7 +0,0 @@
-author: "PersianXerxes"
-delete-after: True
-changes:
- - rscadd: "Adds a pair of VR sleepers to Box Station's permabrig"
- - rscadd: "Adds a pair of VR sleepers to Delta Station's permabrig"
- - rscadd: "Adds a pair of VR sleepers to Pubby Station's permabrig"
- - rscadd: "Adds a pair of VR sleepers to Meta Station's permabrig"
diff --git a/html/changelogs/AutoChangeLog-pr-9800.yml b/html/changelogs/AutoChangeLog-pr-9800.yml
deleted file mode 100644
index 244518bd40..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9800.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Trilbyspaceclone"
-delete-after: True
-changes:
- - server: "changes header to be more cit-like"
diff --git a/html/changelogs/AutoChangeLog-pr-9801.yml b/html/changelogs/AutoChangeLog-pr-9801.yml
deleted file mode 100644
index 986f271fd8..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9801.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Ghommie"
-delete-after: True
-changes:
- - bugfix: "Fixed hidden random event reports only priting a paper message without sending the message to the consoles' message list."
diff --git a/html/changelogs/AutoChangeLog-pr-9802.yml b/html/changelogs/AutoChangeLog-pr-9802.yml
deleted file mode 100644
index 183515f5f1..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9802.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-author: "Ghommie"
-delete-after: True
-changes:
- - bugfix: "Rosary beads prayer now works on non-carbon mobs too, and won't break when performed on a monkey or other humanoids."
- - tweak: "You can flagellate people with rosary beads on harm intent. It's even mediocrer than the sord though."
diff --git a/html/changelogs/AutoChangeLog-pr-9803.yml b/html/changelogs/AutoChangeLog-pr-9803.yml
deleted file mode 100644
index cd81b52620..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9803.yml
+++ /dev/null
@@ -1,6 +0,0 @@
-author: "Jerry Derpington, baldest of the balds, and nemvar."
-delete-after: True
-changes:
- - rscdel: "Nanotrasen has lost communication to two away mission sites that contained a beach for Nanotrasen employees."
- - rscadd: "Nanotrasen has been able to locate a new away mission site that ALSO has a beach. Nanotrasen employees will be able to enjoy the beach after all!"
- - rscadd: "Seashells have been added to the game."
diff --git a/html/changelogs/AutoChangeLog-pr-9805.yml b/html/changelogs/AutoChangeLog-pr-9805.yml
deleted file mode 100644
index 6f74b934f0..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9805.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-author: "Ghommie"
-delete-after: True
-changes:
- - tweak: "Moved the `Stealth and Camouflage Items` uplink category next to `Devices and Tools`."
- - bugfix: "Deleted a duplicate phatom thief mask entry from the uplink."
diff --git a/html/changelogs/AutoChangeLog-pr-9812.yml b/html/changelogs/AutoChangeLog-pr-9812.yml
deleted file mode 100644
index d669d20343..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9812.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Ghommie"
-delete-after: True
-changes:
- - bugfix: "Fixed missing delivery packages sprites"
diff --git a/html/changelogs/AutoChangeLog-pr-9813.yml b/html/changelogs/AutoChangeLog-pr-9813.yml
deleted file mode 100644
index fbf1c6f022..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9813.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "ShizCalev"
-delete-after: True
-changes:
- - tweak: "Ghosts can now see active AI cameras."
diff --git a/html/changelogs/AutoChangeLog-pr-9814.yml b/html/changelogs/AutoChangeLog-pr-9814.yml
deleted file mode 100644
index 6e806b8860..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9814.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "kevinz000"
-delete-after: True
-changes:
- - config: "added multi_keyed_list, delimiter defaults to |."
diff --git a/html/changelogs/AutoChangeLog-pr-9816.yml b/html/changelogs/AutoChangeLog-pr-9816.yml
deleted file mode 100644
index 512d60e7eb..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9816.yml
+++ /dev/null
@@ -1,7 +0,0 @@
-author: "Swindly"
-delete-after: True
-changes:
- - bugfix: "Fixed MMIs not being able to use mecha equipment"
- - bugfix: "Fixed MMIs not getting mecha mouse pointers"
- - bugfix: "Fixed MMIs not getting medical HUDs in Odysseuses"
- - tweak: "Brains can now switch to harm intent"
diff --git a/html/changelogs/AutoChangeLog-pr-9818.yml b/html/changelogs/AutoChangeLog-pr-9818.yml
deleted file mode 100644
index 44222d2359..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9818.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-author: "GrayRachnid"
-delete-after: True
-changes:
- - rscadd: "Added saboteur syndicate engiborg"
- - tweak: "changed cyborg tool icons and the secborg taser/laser icons."
diff --git a/html/changelogs/AutoChangeLog-pr-9822.yml b/html/changelogs/AutoChangeLog-pr-9822.yml
deleted file mode 100644
index 425a667086..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9822.yml
+++ /dev/null
@@ -1,6 +0,0 @@
-author: "Putnam3145"
-delete-after: True
-changes:
- - bugfix: "Summon events now properly costs threat."
- - bugfix: "Refunded spells refund threat, too."
- - refactor: "Made wizard spells inherently have a requirement and cost."
diff --git a/html/changelogs/AutoChangeLog-pr-9823.yml b/html/changelogs/AutoChangeLog-pr-9823.yml
deleted file mode 100644
index 3408f04171..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9823.yml
+++ /dev/null
@@ -1,6 +0,0 @@
-author: "Seris02"
-delete-after: True
-changes:
- - rscadd: "Added nine winter coats"
- - imageadd: "added images for the winter coats"
- - tweak: "adds the mining winter coat to mining wardrobes and mining lockers"
diff --git a/html/changelogs/AutoChangeLog-pr-9828.yml b/html/changelogs/AutoChangeLog-pr-9828.yml
deleted file mode 100644
index 53dbebba28..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9828.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Putnam3145"
-delete-after: True
-changes:
- - tweak: "Meteor wave is no longer repeatable in dynamic."
diff --git a/html/changelogs/AutoChangeLog-pr-9831.yml b/html/changelogs/AutoChangeLog-pr-9831.yml
deleted file mode 100644
index 569fd14f69..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9831.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Putnam3145"
-delete-after: True
-changes:
- - tweak: "tweaked nuke ops"
diff --git a/html/changelogs/AutoChangeLog-pr-9835.yml b/html/changelogs/AutoChangeLog-pr-9835.yml
deleted file mode 100644
index 675eedef02..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9835.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Ty-the-Smonk"
-delete-after: True
-changes:
- - bugfix: "You can now interact with self sustaining crossbreeds"
diff --git a/html/changelogs/AutoChangeLog-pr-9837.yml b/html/changelogs/AutoChangeLog-pr-9837.yml
deleted file mode 100644
index a20d04effc..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9837.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Fox McCloud"
-delete-after: True
-changes:
- - bugfix: "Fixes a very longstanding LINDA bug where turfs adjacent to a hotspot would be less prone to igniting"
diff --git a/html/changelogs/AutoChangeLog-pr-9838.yml b/html/changelogs/AutoChangeLog-pr-9838.yml
deleted file mode 100644
index 5a99c27abe..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9838.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "actioninja"
-delete-after: True
-changes:
- - bugfix: "Chat is properly sent to legacy window if goonchat fails to load again."
diff --git a/html/changelogs/AutoChangeLog-pr-9842.yml b/html/changelogs/AutoChangeLog-pr-9842.yml
deleted file mode 100644
index d816911560..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9842.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Anonymous"
-delete-after: True
-changes:
- - tweak: "Renamed loadout name appropriately (ASSU -> DAB)"
diff --git a/html/changelogs/AutoChangeLog-pr-9846.yml b/html/changelogs/AutoChangeLog-pr-9846.yml
deleted file mode 100644
index d3721b6c32..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9846.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-author: "KathrinBailey"
-delete-after: True
-changes:
- - rscadd: "Ports TG's pews https://github.com/tgstation/tgstation/pull/42712"
- - rscadd: "The first step of a corporate incursion of Space IKEA into Nanotrasen."
diff --git a/html/changelogs/AutoChangeLog-pr-9850.yml b/html/changelogs/AutoChangeLog-pr-9850.yml
deleted file mode 100644
index f6aee261a4..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9850.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Ghommie"
-delete-after: True
-changes:
- - bugfix: "fixed a few minor issues with console frames building."
diff --git a/html/changelogs/AutoChangeLog-pr-9852.yml b/html/changelogs/AutoChangeLog-pr-9852.yml
deleted file mode 100644
index 4a17480992..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9852.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-author: "Ghommie"
-delete-after: True
-changes:
- - bugfix: "Wizards can use the teleport spell from their den once again."
- - tweak: "Wizards will now receive feedback messages when attempting to cast teleport or use the warp whistle while in a no-teleport area."
diff --git a/html/changelogs/AutoChangeLog-pr-9853.yml b/html/changelogs/AutoChangeLog-pr-9853.yml
deleted file mode 100644
index f752f6bf16..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9853.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Ghommie"
-delete-after: True
-changes:
- - rscadd: "New clockwork cultist, gondola, monkey and securitron cardboard cutouts."
diff --git a/html/changelogs/AutoChangeLog-pr-9858.yml b/html/changelogs/AutoChangeLog-pr-9858.yml
deleted file mode 100644
index c211cd5962..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9858.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Ghommie"
-delete-after: True
-changes:
- - bugfix: "Fixed aliens gasping randomly once in a while."
diff --git a/html/changelogs/AutoChangeLog-pr-9864.yml b/html/changelogs/AutoChangeLog-pr-9864.yml
deleted file mode 100644
index ff1f4f6508..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9864.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-author: "Knouli"
-delete-after: True
-changes:
- - rscadd: "attack_self proc for the legion core which triggers a self-heal al la the previous 'afterattack' proc, as if clicking on the character's own sprite to self-heal"
- - rscadd: "admin logging for all three use cases of legion core healing - afterattack, attack_self, and implanted ui_action_click"
diff --git a/html/changelogs/AutoChangeLog-pr-9865.yml b/html/changelogs/AutoChangeLog-pr-9865.yml
deleted file mode 100644
index 6bef9d6b5b..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9865.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Useroth"
-delete-after: True
-changes:
- - bugfix: "numbered storages now are sorted in a consistent way, instead of depending on ordering of their contents var"
diff --git a/html/changelogs/AutoChangeLog-pr-9866.yml b/html/changelogs/AutoChangeLog-pr-9866.yml
deleted file mode 100644
index 1e6e8d0e88..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9866.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Useroth"
-delete-after: True
-changes:
- - rscadd: "strange seeds as a buyable traitor botanist item"
diff --git a/html/changelogs/AutoChangeLog-pr-9867.yml b/html/changelogs/AutoChangeLog-pr-9867.yml
deleted file mode 100644
index 4333d5eb73..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9867.yml
+++ /dev/null
@@ -1,6 +0,0 @@
-author: "Naksu, ShizCalev"
-delete-after: True
-changes:
- - refactor: "Refactored examine-code"
- - bugfix: "Examining a human with a burned prosthetic limb will no longer tell you that the limb is blistered."
- - tweak: "Items will now inform you if they are resistant to frost, fire, acid, and lava when examined."
diff --git a/html/changelogs/AutoChangeLog-pr-9868.yml b/html/changelogs/AutoChangeLog-pr-9868.yml
deleted file mode 100644
index 18c4388dcd..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9868.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Ghommie"
-delete-after: True
-changes:
- - bugfix: "fixed superlube waterflower, my bad."
diff --git a/html/changelogs/AutoChangeLog-pr-9869.yml b/html/changelogs/AutoChangeLog-pr-9869.yml
deleted file mode 100644
index ecb3ac6cb7..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9869.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Hatterhat"
-delete-after: True
-changes:
- - rscadd: "The seedvault/alien plant DNA manipulator can now be printed off with Alien Biotechnology."
diff --git a/html/changelogs/AutoChangeLog-pr-9871.yml b/html/changelogs/AutoChangeLog-pr-9871.yml
deleted file mode 100644
index 3940d256c2..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9871.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-author: "dzahlus"
-delete-after: True
-changes:
- - soundadd: "added a new gun sounds"
- - sounddel: "removed an old gun sounds"
diff --git a/html/changelogs/AutoChangeLog-pr-9873.yml b/html/changelogs/AutoChangeLog-pr-9873.yml
deleted file mode 100644
index b0568bad14..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9873.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-author: "Ghommie"
-delete-after: True
-changes:
- - bugfix: "Fixed closing the aux base construction RCD's door access settings window throwing you out of camera mode when closed."
- - rscdel: "Removed not functional aux base RCD's door type menu. Use airlock painters, maybe."
diff --git a/html/changelogs/AutoChangeLog-pr-9874.yml b/html/changelogs/AutoChangeLog-pr-9874.yml
deleted file mode 100644
index 2e932c458b..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9874.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Ghommie"
-delete-after: True
-changes:
- - rscadd: "Honkbot oil spills are of the slippery kind now. Honk."
diff --git a/html/changelogs/AutoChangeLog-pr-9875.yml b/html/changelogs/AutoChangeLog-pr-9875.yml
deleted file mode 100644
index 4e14a561e7..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9875.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Putnam"
-delete-after: True
-changes:
- - bugfix: "From-ghosts dynamic rulesets now actually listen to \"required candidates\""
diff --git a/html/changelogs/AutoChangeLog-pr-9876.yml b/html/changelogs/AutoChangeLog-pr-9876.yml
deleted file mode 100644
index 4bc0a19954..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9876.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Ghommie"
-delete-after: True
-changes:
- - imageadd: "local code scavenger finds forgotten slighty improved apc sprites left buried in old dusty folders."
diff --git a/html/changelogs/AutoChangeLog-pr-9877.yml b/html/changelogs/AutoChangeLog-pr-9877.yml
deleted file mode 100644
index c84cb7aa92..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9877.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Ghommie"
-delete-after: True
-changes:
- - bugfix: "Seven old and otherwordly pAI holochassis icons have crawled their way out of the modular citadel catacombs."
diff --git a/html/changelogs/AutoChangeLog-pr-9880.yml b/html/changelogs/AutoChangeLog-pr-9880.yml
deleted file mode 100644
index 0f9dfa58f3..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9880.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Putnam"
-delete-after: True
-changes:
- - bugfix: "Every dynamic-triggered event is now blacklisted from being triggered by the random events system when dynamic can trigger them."
diff --git a/html/changelogs/AutoChangeLog-pr-9881.yml b/html/changelogs/AutoChangeLog-pr-9881.yml
deleted file mode 100644
index 3ff9081e66..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9881.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Putnam"
-delete-after: True
-changes:
- - rscadd: "Dynamic voting now features extended, if recent rounds have been chaotic."
diff --git a/html/changelogs/AutoChangeLog-pr-9882.yml b/html/changelogs/AutoChangeLog-pr-9882.yml
deleted file mode 100644
index 581149a51f..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9882.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Fermis"
-delete-after: True
-changes:
- - refactor: "refactored sleepers!"
diff --git a/html/changelogs/AutoChangeLog-pr-9884.yml b/html/changelogs/AutoChangeLog-pr-9884.yml
deleted file mode 100644
index 598fd7f4e6..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9884.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-author: "Useroth"
-delete-after: True
-changes:
- - bugfix: "resolves the issues revolving around blackpowder exploding where the reaction happened, instead of where it actually is through making it explode instantly"
- - tweak: "the explosion delay moved from blackpowder directly into bomb cherries, to keep them functioning as intended"
diff --git a/html/changelogs/AutoChangeLog-pr-9886.yml b/html/changelogs/AutoChangeLog-pr-9886.yml
deleted file mode 100644
index 64c011e37c..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9886.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-author: "Ghommie"
-delete-after: True
-changes:
- - bugfix: "chem dispenser beakers end up in your hand yet again."
- - bugfix: "Bikehorns squeak yet again, the world is safe."
diff --git a/html/changelogs/AutoChangeLog-pr-9887.yml b/html/changelogs/AutoChangeLog-pr-9887.yml
deleted file mode 100644
index c76016575b..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9887.yml
+++ /dev/null
@@ -1,7 +0,0 @@
-author: "Fox McCloud, Ghommie"
-delete-after: True
-changes:
- - bugfix: "Fixes being able to mech-punch other mobs, as a pacifist"
- - bugfix: "Fixes being able to hurt people, as a pacifist, by throwing them into a wall or other mob, or by using most martial arts (save for the unpredictable psychotic brawl, and the stamina-damage-only boxing)."
- - balance: "Buffs boxing to outdamage natural stamina regeneration. Made the chance of outright missing your opponent actually possible."
- - tweak: "Pacifists can now engage in the (laughably not harmful) sweet sweet art of boxing now."
diff --git a/html/changelogs/AutoChangeLog-pr-9889.yml b/html/changelogs/AutoChangeLog-pr-9889.yml
deleted file mode 100644
index 68094bd33d..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9889.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "GrayRachnid"
-delete-after: True
-changes:
- - bugfix: "Fixes golden toolbox missing inhand sprite"
diff --git a/html/changelogs/AutoChangeLog-pr-9891.yml b/html/changelogs/AutoChangeLog-pr-9891.yml
deleted file mode 100644
index 105749ea29..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9891.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Putnam"
-delete-after: True
-changes:
- - tweak: "Roundstart rulesets now scale on population ready rather than total population."
diff --git a/html/changelogs/AutoChangeLog-pr-9893.yml b/html/changelogs/AutoChangeLog-pr-9893.yml
deleted file mode 100644
index 157602a3b8..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9893.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-author: "Putnam"
-delete-after: True
-changes:
- - bugfix: "Threat log now accurately represents what actually used the threat."
- - tweak: "Verbose threat log (admin-only) now shows ALL threat level changes."
diff --git a/html/changelogs/AutoChangeLog-pr-9894.yml b/html/changelogs/AutoChangeLog-pr-9894.yml
new file mode 100644
index 0000000000..6e4b5c09d0
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-9894.yml
@@ -0,0 +1,5 @@
+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-9895.yml b/html/changelogs/AutoChangeLog-pr-9895.yml
deleted file mode 100644
index 213e7cdb73..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9895.yml
+++ /dev/null
@@ -1,10 +0,0 @@
-author: "Fermis"
-delete-after: True
-changes:
- - rscadd: "Organ fridges to all maps near surgery with a random sensible organ, steralizine and synthtissue."
- - tweak: "the med hand scanner to be less of a mishmash of random things"
- - rscadd: "a little icon to the HUD if someone's heart has failed."
- - tweak: "Lets neurine's brain splash attack work via syringe."
- - rscadd: "a new surgery; Emergency Cardioversion Induction for use on the recently deceased"
- - tweak: "Synthtissue to be less demanding on growth size for organ regeneration and improves clarify of it's growth gated effects."
- - tweak: "Synthtissue now is more useful than synthflesh on the dead"
diff --git a/html/changelogs/AutoChangeLog-pr-9896.yml b/html/changelogs/AutoChangeLog-pr-9896.yml
deleted file mode 100644
index 378129d227..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9896.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Ghommie"
-delete-after: True
-changes:
- - bugfix: "Cyborgs can now actually use cameras from a distance."
diff --git a/html/changelogs/AutoChangeLog-pr-9898.yml b/html/changelogs/AutoChangeLog-pr-9898.yml
deleted file mode 100644
index 002e3b544d..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9898.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Ghommie"
-delete-after: True
-changes:
- - bugfix: "Suicides are yet again painful and instant and won't throw people in deep crit from full health."
diff --git a/html/changelogs/AutoChangeLog-pr-9902.yml b/html/changelogs/AutoChangeLog-pr-9902.yml
deleted file mode 100644
index 9a9d7f4597..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9902.yml
+++ /dev/null
@@ -1,6 +0,0 @@
-author: "Useroth"
-delete-after: True
-changes:
- - rscadd: "A bunch of newer tg plants"
- - rscadd: "A bunch of newer tg plant traits"
- - rscadd: "A couple of newer tg plant reagents"
diff --git a/html/changelogs/AutoChangeLog-pr-9903.yml b/html/changelogs/AutoChangeLog-pr-9903.yml
new file mode 100644
index 0000000000..0c21b30fd6
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-9903.yml
@@ -0,0 +1,4 @@
+author: "PersianXerxes"
+delete-after: True
+changes:
+ - rscdel: "Removed night vision quirk"
diff --git a/html/changelogs/AutoChangeLog-pr-9906.yml b/html/changelogs/AutoChangeLog-pr-9906.yml
deleted file mode 100644
index 67c5c20b58..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9906.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Xantholne"
-delete-after: True
-changes:
- - rscadd: "New Berets for most heads and departments available in their autodrobes or lockers"
diff --git a/html/changelogs/AutoChangeLog-pr-9907.yml b/html/changelogs/AutoChangeLog-pr-9907.yml
deleted file mode 100644
index 6bd27c6e50..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9907.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Putnam"
-delete-after: True
-changes:
- - bugfix: "VR mobs can no longer be dynamic midround antags."
diff --git a/html/changelogs/AutoChangeLog-pr-9908.yml b/html/changelogs/AutoChangeLog-pr-9908.yml
deleted file mode 100644
index fb0ae06238..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9908.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Ghommie"
-delete-after: True
-changes:
- - bugfix: "fixed rogue pixels on the energy gu- ahem blaster carbine... and a few apc lights states being neigh-indistinguishable."
diff --git a/html/changelogs/AutoChangeLog-pr-9909.yml b/html/changelogs/AutoChangeLog-pr-9909.yml
deleted file mode 100644
index 7cfb6ce5b2..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9909.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-author: "kiwedespars"
-delete-after: True
-changes:
- - rscdel: "removed moth fluff coloring you like your wings"
- - balance: "made insect not so bad."
diff --git a/html/changelogs/AutoChangeLog-pr-9913.yml b/html/changelogs/AutoChangeLog-pr-9913.yml
deleted file mode 100644
index 64b97f8828..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9913.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Trilbyspaceclone"
-delete-after: True
-changes:
- - rscadd: "new clothing for the hotel staff and a hat"
diff --git a/html/changelogs/AutoChangeLog-pr-9915.yml b/html/changelogs/AutoChangeLog-pr-9915.yml
deleted file mode 100644
index 652a942d13..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9915.yml
+++ /dev/null
@@ -1,14 +0,0 @@
-author: "Owai-Seek"
-delete-after: True
-changes:
- - rscadd: "leg wraps and sweaters to clothesmate"
- - rscadd: "screwdriver and cable coil to janidrobe"
- - rscadd: "screwdriver and cable coil to janibelt whitelist (for fixing/placing light fixtures)"
- - rscadd: "monkey cube, syringe, enzyme, soy sauce, and cryoxadone to chef's vendor (contraband and premium)"
- - rscadd: "add cracker, beans, honey bars, lollipops, chocolate coin, and spider lollipop to snack vendors (contraband and premium)"
- - rscadd: "newspaper to loadout menu for bapping purposes"
- - rscdel: "removed poppy pretzels from snack vendor premium"
- - rscadd: "maid uniform (janimaid alt) to kinkmate."
- - tweak: "moves gear harness from premium to normal stock in kinkmate"
- - balance: "re-balanced metal shield bounty"
- - rscadd: "cryoxadone bottle (for use in chef vendor)"
diff --git a/html/changelogs/AutoChangeLog-pr-9919.yml b/html/changelogs/AutoChangeLog-pr-9919.yml
deleted file mode 100644
index 47b63b3357..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9919.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Ghommie"
-delete-after: True
-changes:
- - bugfix: "Fixed several \"behind\" layer tail sprites skipping areas normally covered by bodyparts."
diff --git a/html/changelogs/AutoChangeLog-pr-9920.yml b/html/changelogs/AutoChangeLog-pr-9920.yml
deleted file mode 100644
index 68e336f042..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9920.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "YakumoChen"
-delete-after: True
-changes:
- - imageadd: "New AI Holograms and Displays! Ported from /vg/station."
diff --git a/html/changelogs/AutoChangeLog-pr-9922.yml b/html/changelogs/AutoChangeLog-pr-9922.yml
deleted file mode 100644
index 3c293c742c..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9922.yml
+++ /dev/null
@@ -1,6 +0,0 @@
-author: "GrayRachnid"
-delete-after: True
-changes:
- - rscadd: "Added traumas"
- - rscadd: "Added science powergame tool"
- - tweak: "a few hearing args"
diff --git a/html/changelogs/AutoChangeLog-pr-9941.yml b/html/changelogs/AutoChangeLog-pr-9941.yml
deleted file mode 100644
index f7f011f38e..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9941.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Putnam"
-delete-after: True
-changes:
- - bugfix: "Personal closets can use anything that holds an ID card now."
diff --git a/html/changelogs/AutoChangeLog-pr-9942.yml b/html/changelogs/AutoChangeLog-pr-9942.yml
deleted file mode 100644
index 3b6925289b..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9942.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Useroth"
-delete-after: True
-changes:
- - bugfix: "the new plants now properly get their reagents and reagent genes instead of being empty with UNKNOWN reagents listed in the DNA machine"
diff --git a/html/changelogs/AutoChangeLog-pr-9943.yml b/html/changelogs/AutoChangeLog-pr-9943.yml
deleted file mode 100644
index 8164ff2701..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9943.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-author: "dapnee"
-delete-after: True
-changes:
- - bugfix: "Communications console window no longer updates, won't steal focus anymore."
- - bugfix: "Trimline neutral end exists now."
diff --git a/html/changelogs/AutoChangeLog-pr-9946.yml b/html/changelogs/AutoChangeLog-pr-9946.yml
deleted file mode 100644
index e045c5006f..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9946.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "kevinz000"
-delete-after: True
-changes:
- - balance: "Light pink extracts no longer speed you up. Instead, they give stamina regeneration and free sprinting."
diff --git a/html/changelogs/AutoChangeLog-pr-9947.yml b/html/changelogs/AutoChangeLog-pr-9947.yml
deleted file mode 100644
index 0ade316470..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9947.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Iroquois-Pliskin"
-delete-after: True
-changes:
- - rscdel: "Removed Clockwork Cult Surgical facility from Reebe"
diff --git a/html/changelogs/AutoChangeLog-pr-9948.yml b/html/changelogs/AutoChangeLog-pr-9948.yml
deleted file mode 100644
index 4f337660be..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9948.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Ghommie"
-delete-after: True
-changes:
- - bugfix: "Morgues' original alert beeping sound has been restored, they no longer go \"ammunition depleted\""
diff --git a/html/changelogs/AutoChangeLog-pr-9955.yml b/html/changelogs/AutoChangeLog-pr-9955.yml
deleted file mode 100644
index 3bd30ca6ee..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9955.yml
+++ /dev/null
@@ -1,19 +0,0 @@
-author: "Ghommie, porting lot of PRs by MrDoomBringer, AnturK, nemvar and coiax."
-delete-after: True
-changes:
- - admin: "Admins can now launch supplypods the old, slightly quicker way as well"
- - bugfix: "Centcom-launched supplypods will now properly delimb you (if they are designated to do so) instead of touching you then literally yeeting all of your internal organs out of your body."
- - admin: "Centcom can now specify if they want to yeet all of your organs out of your body with a supplypod"
- - soundadd: "Supplypods sound a bit nicer as the land now."
- - admin: "admins can now adjust the animation duration for centcom-launched supplypods"
- - admin: "admins can adjust any sounds that are played as the supplypod lands"
- - bugfix: "Reverse-Supplypods (the admin-launched ones) no longer stay behind after rising up, and also auto-delete from centcom."
- - admin: "The centcom podlauncher now has better logging"
- - tweak: "Admins can now allow ghosts to follow the delivery of Centcom-launched supply pods"
- - admin: "Admins can now use the Centcom Podlauncher to launch things without the things looking like they're being sent inside a pod."
- - admin: "sparks will not generate if the quietLanding effect is on, for the centcom podlauncher"
- - admin: "makes input text clearer for the centcom podlauncher"
- - admin: "New 'Podspawn' verb, which functions like 'Spawn', except
-any atoms movable spawned will be dropped in via a no-damage, no-explosion
-Centcom supply pod."
- - bugfix: "Removed an oversight that made many obj/effect subtypes accidentally bombproof."
diff --git a/html/changelogs/AutoChangeLog-pr-9957.yml b/html/changelogs/AutoChangeLog-pr-9957.yml
deleted file mode 100644
index 234fecdf79..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9957.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Ghommie"
-delete-after: True
-changes:
- - bugfix: "Fixed missing hypereutactic left inhand sprites."
diff --git a/html/changelogs/AutoChangeLog-pr-9959.yml b/html/changelogs/AutoChangeLog-pr-9959.yml
deleted file mode 100644
index e222659096..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9959.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-author: "Ghommie"
-delete-after: True
-changes:
- - bugfix: "Dying, ghosting, having your mind / ckey transferred to another mob, going softcrit or otherwise unconscious now properly turn off combat mode."
- - bugfix: "combat mode can't be toggled on while non fully conscious anymore."
diff --git a/html/changelogs/AutoChangeLog-pr-9960.yml b/html/changelogs/AutoChangeLog-pr-9960.yml
deleted file mode 100644
index d6701d7eb4..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9960.yml
+++ /dev/null
@@ -1,6 +0,0 @@
-author: "Krysonism, Ghommie"
-delete-after: True
-changes:
- - rscadd: "NT has made breakthroughs in ice cream science, ice creams can now be flavoured with any reagent!"
- - tweak: "The ice cream vat now accepts beakers."
- - bugfix: "Grape and Peach icecreams have scoop overlays yet again."
diff --git a/html/changelogs/AutoChangeLog-pr-9962.yml b/html/changelogs/AutoChangeLog-pr-9962.yml
deleted file mode 100644
index d1ac38193f..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9962.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Ghommie"
-delete-after: True
-changes:
- - bugfix: "Fixed limbs' set_disabled NOT dropping your held items, updating your hand slot inventory screen image, prompting chat messages and making your character scream like a sissy."
diff --git a/html/changelogs/AutoChangeLog-pr-9964.yml b/html/changelogs/AutoChangeLog-pr-9964.yml
deleted file mode 100644
index 76687969ca..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9964.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "GrayRachnid"
-delete-after: True
-changes:
- - bugfix: "fixed my mistakes"
diff --git a/html/changelogs/AutoChangeLog-pr-9965.yml b/html/changelogs/AutoChangeLog-pr-9965.yml
deleted file mode 100644
index 6a7562aa46..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9965.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "GrayRachnid"
-delete-after: True
-changes:
- - tweak: "tweaked the number of ingredients/pancakes you can stack."
diff --git a/html/changelogs/AutoChangeLog-pr-9966.yml b/html/changelogs/AutoChangeLog-pr-9966.yml
deleted file mode 100644
index 2b4a027949..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9966.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Ghommie"
-delete-after: True
-changes:
- - bugfix: "Lusty xenomoprh maids will now actually clean tiles they travel onto yet again."
diff --git a/html/changelogs/AutoChangeLog-pr-9967.yml b/html/changelogs/AutoChangeLog-pr-9967.yml
deleted file mode 100644
index 8d9448d290..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9967.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Mickyy5"
-delete-after: True
-changes:
- - rscadd: "Nanotrasen are now issuing Plasmamen with plasma in their survival boxes"
diff --git a/html/changelogs/AutoChangeLog-pr-9969.yml b/html/changelogs/AutoChangeLog-pr-9969.yml
deleted file mode 100644
index 2aac34acd4..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9969.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Linzolle"
-delete-after: True
-changes:
- - tweak: "hat tossing can no longer knock hats off"
diff --git a/html/changelogs/AutoChangeLog-pr-9970.yml b/html/changelogs/AutoChangeLog-pr-9970.yml
new file mode 100644
index 0000000000..ebeaa326e7
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-9970.yml
@@ -0,0 +1,4 @@
+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-9972.yml b/html/changelogs/AutoChangeLog-pr-9972.yml
deleted file mode 100644
index ab9047a1ce..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9972.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Ghommie"
-delete-after: True
-changes:
- - bugfix: "Fixed double whitespace gap in human and AI examine. Fixed single whitespace in carbon examine."
diff --git a/html/changelogs/AutoChangeLog-pr-9975.yml b/html/changelogs/AutoChangeLog-pr-9975.yml
deleted file mode 100644
index ea0ca116b5..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9975.yml
+++ /dev/null
@@ -1,6 +0,0 @@
-author: "Ghommie"
-delete-after: True
-changes:
- - rscdel: "Removed a few useless supply packs: \"Siezed\" power cells, means of production and promiscous organs."
- - tweak: "Merged the synthetic blood supply pack into the standard blood supply pack, effectively removing a random type blood pack in favor of two synthetic ones."
- - tweak: "Merged together premium carpet pack n°1 and n°2 to hold one of each standard pattern."
diff --git a/html/changelogs/AutoChangeLog-pr-9976.yml b/html/changelogs/AutoChangeLog-pr-9976.yml
deleted file mode 100644
index 3db57e2c5a..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9976.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Coconutwarrior97"
-delete-after: True
-changes:
- - bugfix: "Can only wrench down two transit tubes per turf."
diff --git a/html/changelogs/AutoChangeLog-pr-9977.yml b/html/changelogs/AutoChangeLog-pr-9977.yml
deleted file mode 100644
index 8a4d2dc304..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9977.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-author: "Useroth"
-delete-after: True
-changes:
- - rscadd: "extradimensional oranges now contain haloperidol"
- - bugfix: "extradimensional oranges now actually grow properly and give proper seeds."
diff --git a/html/changelogs/AutoChangeLog-pr-9980.yml b/html/changelogs/AutoChangeLog-pr-9980.yml
deleted file mode 100644
index b5deb45f2d..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9980.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Tetr4"
-delete-after: True
-changes:
- - bugfix: "Turning a tile with gas effects into space now gets rid of the effects."
diff --git a/html/changelogs/AutoChangeLog-pr-9981.yml b/html/changelogs/AutoChangeLog-pr-9981.yml
deleted file mode 100644
index cd7957df0f..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9981.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-author: "Ghommie"
-delete-after: True
-changes:
- - tweak: "You can no longer estimate the amount of reagents found inside a damp rag."
- - tweak: "You can now squeeze a rag's reagents into another open container, as long as the other one is not full."
diff --git a/html/changelogs/AutoChangeLog-pr-9983.yml b/html/changelogs/AutoChangeLog-pr-9983.yml
new file mode 100644
index 0000000000..b8cd4f0f5b
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-9983.yml
@@ -0,0 +1,6 @@
+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/html/changelogs/AutoChangeLog-pr-9988.yml b/html/changelogs/AutoChangeLog-pr-9988.yml
deleted file mode 100644
index 7fb1c5c6d8..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9988.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Ghommie"
-delete-after: True
-changes:
- - bugfix: "Fixed ED-209 being unbuildable past the welding step."
diff --git a/html/changelogs/AutoChangeLog-pr-9989.yml b/html/changelogs/AutoChangeLog-pr-9989.yml
deleted file mode 100644
index 6e19e7eb5e..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9989.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "ShizCalev"
-delete-after: True
-changes:
- - bugfix: "Fixed a couple of laser / energy guns never switching to the empty icon despite being unable to fire."
diff --git a/html/changelogs/AutoChangeLog-pr-9990.yml b/html/changelogs/AutoChangeLog-pr-9990.yml
deleted file mode 100644
index 1e3de0164c..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9990.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-author: "Linzolle"
-delete-after: True
-changes:
- - bugfix: "strange reagent being unable to revive simplemobs"
- - rscadd: "jitter animation and more clear text to strange reagent revival"
diff --git a/html/changelogs/AutoChangeLog-pr-9992.yml b/html/changelogs/AutoChangeLog-pr-9992.yml
deleted file mode 100644
index fb59893d34..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9992.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Ghommie"
-delete-after: True
-changes:
- - bugfix: "Fixed ai displays status being reset to \"Neutral\" on login, regardless of choice."
diff --git a/html/changelogs/AutoChangeLog-pr-9993.yml b/html/changelogs/AutoChangeLog-pr-9993.yml
deleted file mode 100644
index 980d82bbdc..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9993.yml
+++ /dev/null
@@ -1,8 +0,0 @@
-author: "nemvar, ShizCalev, Qustinnus/Floyd, Ghommie"
-delete-after: True
-changes:
- - rscadd: "You can now unfasten the loom."
- - tweak: "it now takes 4 strands to make one piece of durathread cloth"
- - bugfix: "Looms can now be attacked."
- - rscadd: "Durathread golem weaves his magic"
- - tweak: "Supply ordered looms are unanchored. Bring a wrench."
diff --git a/html/changelogs/AutoChangeLog-pr-9996.yml b/html/changelogs/AutoChangeLog-pr-9996.yml
deleted file mode 100644
index 1562cfd766..0000000000
--- a/html/changelogs/AutoChangeLog-pr-9996.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Ghommie"
-delete-after: True
-changes:
- - bugfix: "Fixed tinfoil hats giving random traumas."
diff --git a/icons/mob/accessories.dmi b/icons/mob/accessories.dmi
index 33964645ee..68f13c8875 100644
Binary files a/icons/mob/accessories.dmi and b/icons/mob/accessories.dmi differ
diff --git a/icons/mob/inhands/equipment/idcards_lefthand.dmi b/icons/mob/inhands/equipment/idcards_lefthand.dmi
index 53b40584e7..dd7f6fbbe2 100644
Binary files a/icons/mob/inhands/equipment/idcards_lefthand.dmi and b/icons/mob/inhands/equipment/idcards_lefthand.dmi differ
diff --git a/icons/mob/inhands/equipment/idcards_righthand.dmi b/icons/mob/inhands/equipment/idcards_righthand.dmi
index 19a6f77c28..a7483ca2eb 100644
Binary files a/icons/mob/inhands/equipment/idcards_righthand.dmi and b/icons/mob/inhands/equipment/idcards_righthand.dmi differ
diff --git a/icons/obj/clothing/accessories.dmi b/icons/obj/clothing/accessories.dmi
index eb019bc44b..c62a88c829 100644
Binary files a/icons/obj/clothing/accessories.dmi and b/icons/obj/clothing/accessories.dmi differ
diff --git a/icons/obj/module.dmi b/icons/obj/module.dmi
index 037525150e..ace24db5ff 100644
Binary files a/icons/obj/module.dmi and b/icons/obj/module.dmi differ
diff --git a/icons/obj/projectiles.dmi b/icons/obj/projectiles.dmi
index ad1d34836d..d1c625c18e 100644
Binary files a/icons/obj/projectiles.dmi and b/icons/obj/projectiles.dmi differ
diff --git a/icons/obj/projectiles_impact.dmi b/icons/obj/projectiles_impact.dmi
index bac35e68e1..5506f6f866 100644
Binary files a/icons/obj/projectiles_impact.dmi and b/icons/obj/projectiles_impact.dmi differ
diff --git a/icons/obj/projectiles_muzzle.dmi b/icons/obj/projectiles_muzzle.dmi
index 2f1d6d90c6..884605c373 100644
Binary files a/icons/obj/projectiles_muzzle.dmi and b/icons/obj/projectiles_muzzle.dmi differ
diff --git a/icons/obj/projectiles_tracer.dmi b/icons/obj/projectiles_tracer.dmi
index 56442452e7..34718d7066 100644
Binary files a/icons/obj/projectiles_tracer.dmi and b/icons/obj/projectiles_tracer.dmi differ
diff --git a/icons/turf/smoothrocks.dmi b/icons/turf/smoothrocks.dmi
index ba2bbce955..20314cff5b 100644
Binary files a/icons/turf/smoothrocks.dmi and b/icons/turf/smoothrocks.dmi differ
diff --git a/modular_citadel/code/datums/mutations/hulk.dm b/modular_citadel/code/datums/mutations/hulk.dm
deleted file mode 100644
index 601238707d..0000000000
--- a/modular_citadel/code/datums/mutations/hulk.dm
+++ /dev/null
@@ -1,2 +0,0 @@
-/datum/mutation/human/hulk
- species_allowed = list("fly")
\ No newline at end of file
diff --git a/modular_citadel/code/game/machinery/wishgranter.dm b/modular_citadel/code/game/machinery/wishgranter.dm
index f24062a126..48024a2228 100644
--- a/modular_citadel/code/game/machinery/wishgranter.dm
+++ b/modular_citadel/code/game/machinery/wishgranter.dm
@@ -63,7 +63,9 @@
to_chat(user, "Your wish is 'granted', but at a terrible cost...")
to_chat(user, "The Wish Granter punishes you for your selfishness, claiming your soul and warping your eyes to match the darkness in your heart.")
user.dna.add_mutation(BLINDMUT)
- user.adjust_eye_damage(100)
+ var/obj/item/organ/eyes/eyes = user.getorganslot(ORGAN_SLOT_EYES)
+ if(eyes)
+ eyes.applyOrganDamage(eyes.maxHealth)
var/list/destinations = list()
for(var/obj/item/beacon/B in GLOB.teleportbeacons)
var/turf/T = get_turf(B)
diff --git a/modular_citadel/code/game/objects/effects/temporary_visuals/projectiles/impact.dm b/modular_citadel/code/game/objects/effects/temporary_visuals/projectiles/impact.dm
deleted file mode 100644
index 20052c3351..0000000000
--- a/modular_citadel/code/game/objects/effects/temporary_visuals/projectiles/impact.dm
+++ /dev/null
@@ -1,4 +0,0 @@
-/obj/effect/projectile/impact/laser/wavemotion
- name = "particle impact"
- icon = 'modular_citadel/icons/obj/projectiles_impact.dmi'
- icon_state = "impact_wavemotion"
\ No newline at end of file
diff --git a/modular_citadel/code/game/objects/effects/temporary_visuals/projectiles/muzzle.dm b/modular_citadel/code/game/objects/effects/temporary_visuals/projectiles/muzzle.dm
deleted file mode 100644
index 5114cb223e..0000000000
--- a/modular_citadel/code/game/objects/effects/temporary_visuals/projectiles/muzzle.dm
+++ /dev/null
@@ -1,4 +0,0 @@
-/obj/effect/projectile/muzzle/laser/wavemotion
- name = "particle backblast"
- icon = 'modular_citadel/icons/obj/projectiles_muzzle.dmi'
- icon_state = "muzzle_wavemotion"
\ No newline at end of file
diff --git a/modular_citadel/code/game/objects/effects/temporary_visuals/projectiles/tracer.dm b/modular_citadel/code/game/objects/effects/temporary_visuals/projectiles/tracer.dm
deleted file mode 100644
index 8110fcabeb..0000000000
--- a/modular_citadel/code/game/objects/effects/temporary_visuals/projectiles/tracer.dm
+++ /dev/null
@@ -1,4 +0,0 @@
-/obj/effect/projectile/tracer/laser/wavemotion
- name = "particle trail"
- icon = 'modular_citadel/icons/obj/projectiles_tracer.dmi'
- icon_state = "tracer_wavemotion"
\ No newline at end of file
diff --git a/modular_citadel/code/modules/arousal/toys/dildos.dm b/modular_citadel/code/modules/arousal/toys/dildos.dm
index 24c8de1b60..964c9964ad 100644
--- a/modular_citadel/code/modules/arousal/toys/dildos.dm
+++ b/modular_citadel/code/modules/arousal/toys/dildos.dm
@@ -37,15 +37,11 @@
name = "[sizeword][dildo_shape] [can_customize ? "custom " : ""][dildo_type]"
/obj/item/dildo/AltClick(mob/living/user)
- if(QDELETED(src))
- return
- if(!isliving(user))
- return
- if(isAI(user))
- return
- if(user.stat > 0)//unconscious or dead
+ . = ..()
+ if(!istype(user) || !user.canUseTopic(src, BE_CLOSE, FALSE, NO_TK))
return
customize(user)
+ return TRUE
/obj/item/dildo/proc/customize(mob/living/user)
if(!can_customize)
@@ -150,7 +146,8 @@ obj/item/dildo/custom
playsound(loc, 'sound/weapons/gagging.ogg', 50, 1, -1)
user.Stun(150)
user.adjust_blurriness(8)
- user.adjust_eye_damage(10)
+ var/obj/item/organ/eyes/eyes = user.getorganslot(ORGAN_SLOT_EYES)
+ eyes?.applyOrganDamage(10)
return MANUAL_SUICIDE
/obj/item/dildo/flared/huge/suicide_act(mob/living/user)
@@ -159,6 +156,5 @@ obj/item/dildo/custom
playsound(loc, 'sound/weapons/gagging.ogg', 50, 2, -1)
user.Stun(300)
user.adjust_blurriness(8)
- user.adjust_eye_damage(15)
return MANUAL_SUICIDE
diff --git a/modular_citadel/code/modules/clothing/clothing.dm b/modular_citadel/code/modules/clothing/clothing.dm
index b23e805f92..843b7a84c9 100644
--- a/modular_citadel/code/modules/clothing/clothing.dm
+++ b/modular_citadel/code/modules/clothing/clothing.dm
@@ -56,7 +56,7 @@
add_overlay(tertiary_overlay)
/obj/item/clothing/AltClick(mob/living/user)
- ..()
+ . = ..()
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
@@ -78,6 +78,7 @@
tertiary_color = sanitize_hexcolor(tertiary_color_input, desired_format=6, include_crunch=1)
update_icon()
user.regenerate_icons()
+ return TRUE
/obj/item/clothing/examine(mob/user)
. = ..()
diff --git a/modular_citadel/code/modules/mob/living/silicon/robot/dogborg archive.dm b/modular_citadel/code/modules/mob/living/silicon/robot/dogborg archive.dm
index 8b5c0b0af0..368abc6335 100644
--- a/modular_citadel/code/modules/mob/living/silicon/robot/dogborg archive.dm
+++ b/modular_citadel/code/modules/mob/living/silicon/robot/dogborg archive.dm
@@ -57,20 +57,4 @@
modules += new /obj/item/healthanalyzer(src)
modules += new /obj/item/analyzer/nose(src)
emag = new /obj/item/dogborg/pounce(src)
- fix_modules()
-
-/obj/item/robot_module/medihound
- name = "MediHound module"
-
-/obj/item/robot_module/medihound/New()
- ..()
- modules += new /obj/item/dogborg/jaws/small(src)
- modules += new /obj/item/storage/bag/borgdelivery(src)
- modules += new /obj/item/analyzer/nose(src)
- modules += new /obj/item/soap/tongue(src)
- modules += new /obj/item/healthanalyzer(src)
- modules += new /obj/item/dogborg/sleeper(src)
- modules += new /obj/item/twohanded/shockpaddles/hound(src)
- modules += new /obj/item/sensor_device(src)
- emag = new /obj/item/dogborg/pounce(src)
fix_modules()
\ No newline at end of file
diff --git a/modular_citadel/code/modules/mob/living/silicon/robot/dogborg_equipment.dm b/modular_citadel/code/modules/mob/living/silicon/robot/dogborg_equipment.dm
index 17def26f1d..a1466f58d4 100644
--- a/modular_citadel/code/modules/mob/living/silicon/robot/dogborg_equipment.dm
+++ b/modular_citadel/code/modules/mob/living/silicon/robot/dogborg_equipment.dm
@@ -162,9 +162,6 @@ SLEEPER CODE IS IN game/objects/items/devices/dogborg_sleeper.dm !
to_chat(user, "[GLOB.meta_gas_names[id]]: [round(gas_concentration*100, 0.01)] %")
to_chat(user, "Temperature: [round(environment.temperature-T0C)] °C")
-/obj/item/analyzer/nose/AltClick(mob/user) //Barometer output for measuring when the next storm happens
- . = ..()
-
/obj/item/analyzer/nose/afterattack(atom/target, mob/user, proximity)
. = ..()
if(!proximity)
@@ -356,15 +353,6 @@ SLEEPER CODE IS IN game/objects/items/devices/dogborg_sleeper.dm !
icon = 'icons/mob/dogborg.dmi'
icon_state= "kibble"
-//Defibs
-
-/obj/item/twohanded/shockpaddles/cyborg/hound
- name = "Paws of Life"
- desc = "MediHound specific shock paws."
- icon = 'icons/mob/dogborg.dmi'
- icon_state = "defibpaddles0"
- item_state = "defibpaddles0"
-
// Pounce stuff for K-9
/obj/item/dogborg/pounce
diff --git a/modular_citadel/code/modules/mob/living/silicon/robot/robot_movement.dm b/modular_citadel/code/modules/mob/living/silicon/robot/robot_movement.dm
index 28327cde0e..59630186d1 100644
--- a/modular_citadel/code/modules/mob/living/silicon/robot/robot_movement.dm
+++ b/modular_citadel/code/modules/mob/living/silicon/robot/robot_movement.dm
@@ -14,7 +14,7 @@
. += speed
/mob/living/silicon/robot/proc/togglesprint(shutdown = FALSE) //Basically a copypaste of the proc from /mob/living/carbon/human
- if(!shutdown && (!cell || cell.charge < 25))
+ if(!shutdown && (!cell || cell.charge < 25) || !cansprint)
return FALSE
sprinting = shutdown ? FALSE : !sprinting
if(!resting && canmove)
diff --git a/modular_citadel/code/modules/mob/mob.dm b/modular_citadel/code/modules/mob/mob.dm
index aa0e6b5828..2d08299320 100644
--- a/modular_citadel/code/modules/mob/mob.dm
+++ b/modular_citadel/code/modules/mob/mob.dm
@@ -18,10 +18,10 @@
else
return
-/mob/living/compose_message(atom/movable/speaker, datum/language/message_language, raw_message, radio_freq, list/spans, message_mode, face_name = FALSE)
+/mob/living/compose_message(atom/movable/speaker, datum/language/message_language, raw_message, radio_freq, list/spans, message_mode, face_name = FALSE, atom/movable/source)
. = ..()
- if(istype(speaker, /mob/living))
- var/turf/speakturf = get_turf(speaker)
- var/turf/sourceturf = get_turf(src)
- if(istype(speakturf) && istype(sourceturf) && !(speakturf in get_hear(5, sourceturf)))
- . = "[.]" //Don't ask how the fuck this works. It just does.
+ if(isliving(speaker))
+ var/turf/sourceturf = get_turf(source)
+ var/turf/T = get_turf(src)
+ if(sourceturf && T && !(sourceturf in get_hear(5, T)))
+ . = "[.]"
diff --git a/modular_citadel/code/modules/projectiles/guns/ballistic/rifles.dm b/modular_citadel/code/modules/projectiles/guns/ballistic/rifles.dm
index e40ccfe6ea..024669757a 100644
--- a/modular_citadel/code/modules/projectiles/guns/ballistic/rifles.dm
+++ b/modular_citadel/code/modules/projectiles/guns/ballistic/rifles.dm
@@ -207,8 +207,10 @@
var/mob/M = loc
M.update_inv_hands()
/obj/item/gun/ballistic/automatic/AM4B/AltClick(mob/living/user)
+ . = ..()
if(!in_range(src, user)) //Basic checks to prevent abuse
return
+ . = TRUE
if(user.incapacitated() || !istype(user))
to_chat(user, "You can't do that right now!")
return
@@ -217,6 +219,7 @@
if(body_color_input)
body_color = sanitize_hexcolor(body_color_input, desired_format=6, include_crunch=1)
update_icon()
+
/obj/item/gun/ballistic/automatic/AM4B/examine(mob/user)
. = ..()
. += "Alt-click to recolor it."
diff --git a/modular_citadel/code/modules/projectiles/guns/energy/energy_gun.dm b/modular_citadel/code/modules/projectiles/guns/energy/energy_gun.dm
index 5fc75fa414..89e086687a 100644
--- a/modular_citadel/code/modules/projectiles/guns/energy/energy_gun.dm
+++ b/modular_citadel/code/modules/projectiles/guns/energy/energy_gun.dm
@@ -30,8 +30,10 @@ obj/item/gun/energy/e_gun/cx/update_icon()
M.update_inv_hands()
obj/item/gun/energy/e_gun/cx/AltClick(mob/living/user)
+ . = ..()
if(!in_range(src, user)) //Basic checks to prevent abuse
return
+ . = TRUE
if(user.incapacitated() || !istype(user))
to_chat(user, "You can't do that right now!")
return
diff --git a/modular_citadel/code/modules/projectiles/guns/pumpenergy.dm b/modular_citadel/code/modules/projectiles/guns/pumpenergy.dm
index be070ff7b5..735c0890af 100644
--- a/modular_citadel/code/modules/projectiles/guns/pumpenergy.dm
+++ b/modular_citadel/code/modules/projectiles/guns/pumpenergy.dm
@@ -83,15 +83,17 @@
return 1
/obj/item/gun/energy/pumpaction/AltClick(mob/living/user) //for changing firing modes since attackself is already used for pumping
+ . = ..()
if(!in_range(src, user)) //Basic checks to prevent abuse
return
- if(user.incapacitated() || !istype(user))
- to_chat(user, "You can't do that right now!")
- return
if(ammo_type.len > 1)
- select_fire(user)
- update_icon()
+ if(user.incapacitated() || !istype(user))
+ to_chat(user, "You can't do that right now!")
+ else
+ select_fire(user)
+ update_icon()
+ return TRUE
/obj/item/gun/energy/pumpaction/examine(mob/user) //so people don't ask HOW TO CHANGE FIRING MODE
. = ..()
@@ -183,7 +185,6 @@
name = "particle blast"
damage = 13
icon_state = "disablerpellet"
- icon = 'modular_citadel/icons/obj/projectiles.dmi'
/obj/item/projectile/beam/disabler/slug
name = "positron blast"
@@ -191,12 +192,10 @@
range = 14
speed = 0.6
icon_state = "disablerslug"
- icon = 'modular_citadel/icons/obj/projectiles.dmi'
/obj/item/projectile/energy/electrode/pump
name = "electron blast"
icon_state = "stunjectile"
- icon = 'modular_citadel/icons/obj/projectiles.dmi'
color = null
nodamage = 1
knockdown = 100
diff --git a/modular_citadel/code/modules/reagents/chemistry/reagents/enlargement.dm b/modular_citadel/code/modules/reagents/chemistry/reagents/enlargement.dm
index ee90f985c6..7d358b4149 100644
--- a/modular_citadel/code/modules/reagents/chemistry/reagents/enlargement.dm
+++ b/modular_citadel/code/modules/reagents/chemistry/reagents/enlargement.dm
@@ -56,18 +56,17 @@
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)
+ var/obj/item/organ/liver/L = H.getorganslot(ORGAN_SLOT_LIVER)
+ if(L)
+ L.swelling += 0.05
+ else
+ H.adjustToxLoss(1)
+ return..()
+ //otherwise proceed as normal
if(!B) //If they don't have breasts, give them breasts.
- //If they have Acute hepatic pharmacokinesis, then route processing though liver.
- if(HAS_TRAIT(H, TRAIT_PHARMA) || !H.canbearoused)
- var/obj/item/organ/liver/L = H.getorganslot(ORGAN_SLOT_LIVER)
- if(L)
- L.swelling += 0.05
- else
- H.adjustToxLoss(1)
- return..()
-
- //otherwise proceed as normal
B = new
if(H.dna.species.use_skintones && H.dna.features["genitals_use_skintone"])
B.color = skintone2hex(H.skin_tone)
@@ -222,18 +221,17 @@
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)
+ var/obj/item/organ/liver/L = H.getorganslot(ORGAN_SLOT_LIVER)
+ if(L)
+ L.swelling += 0.05
+ else
+ H.adjustToxLoss(1)
+ return ..()
+ //otherwise proceed as normal
if(!P)//They do have a preponderance for escapism, or so I've heard.
- //If they have Acute hepatic pharmacokinesis, then route processing though liver.
- if(HAS_TRAIT(H, TRAIT_PHARMA) || !H.canbearoused)
- var/obj/item/organ/liver/L = H.getorganslot(ORGAN_SLOT_LIVER)
- if(L)
- L.swelling += 0.05
- else
- H.adjustToxLoss(1)
- return ..()
-
- //otherwise proceed as normal
P = new
P.length = 1
to_chat(H, "Your groin feels warm, as you feel a newly forming bulge down below.")
diff --git a/modular_citadel/icons/obj/VGProjectile.dmi b/modular_citadel/icons/obj/VGProjectile.dmi
deleted file mode 100644
index 010d2fc739..0000000000
Binary files a/modular_citadel/icons/obj/VGProjectile.dmi and /dev/null differ
diff --git a/modular_citadel/icons/obj/defib_disks.dmi b/modular_citadel/icons/obj/defib_disks.dmi
deleted file mode 100644
index 8908b0cf98..0000000000
Binary files a/modular_citadel/icons/obj/defib_disks.dmi and /dev/null differ
diff --git a/modular_citadel/icons/obj/projectiles.dmi b/modular_citadel/icons/obj/projectiles.dmi
deleted file mode 100644
index f5f6f2f8f3..0000000000
Binary files a/modular_citadel/icons/obj/projectiles.dmi and /dev/null differ
diff --git a/modular_citadel/icons/obj/projectiles_impact.dmi b/modular_citadel/icons/obj/projectiles_impact.dmi
deleted file mode 100644
index 1d798b5e9e..0000000000
Binary files a/modular_citadel/icons/obj/projectiles_impact.dmi and /dev/null differ
diff --git a/modular_citadel/icons/obj/projectiles_muzzle.dmi b/modular_citadel/icons/obj/projectiles_muzzle.dmi
deleted file mode 100644
index 2116b0559c..0000000000
Binary files a/modular_citadel/icons/obj/projectiles_muzzle.dmi and /dev/null differ
diff --git a/modular_citadel/icons/obj/projectiles_tracer.dmi b/modular_citadel/icons/obj/projectiles_tracer.dmi
deleted file mode 100644
index e26e8501f1..0000000000
Binary files a/modular_citadel/icons/obj/projectiles_tracer.dmi and /dev/null differ
diff --git a/sound/misc/deltakalaxon.ogg b/sound/misc/deltakalaxon.ogg
index cc489526dd..7a9522c1ff 100644
Binary files a/sound/misc/deltakalaxon.ogg and b/sound/misc/deltakalaxon.ogg differ
diff --git a/tgstation.dme b/tgstation.dme
index e85c2c1111..4c7e29739f 100755
--- a/tgstation.dme
+++ b/tgstation.dme
@@ -2986,7 +2986,6 @@
#include "modular_citadel\code\_onclick\hud\stamina.dm"
#include "modular_citadel\code\datums\components\material_container.dm"
#include "modular_citadel\code\datums\components\souldeath.dm"
-#include "modular_citadel\code\datums\mutations\hulk.dm"
#include "modular_citadel\code\datums\status_effects\chems.dm"
#include "modular_citadel\code\datums\status_effects\debuffs.dm"
#include "modular_citadel\code\datums\wires\autoylathe.dm"
@@ -3013,9 +3012,6 @@
#include "modular_citadel\code\game\objects\items.dm"
#include "modular_citadel\code\game\objects\effects\spawner\spawners.dm"
#include "modular_citadel\code\game\objects\effects\temporary_visuals\souldeath.dm"
-#include "modular_citadel\code\game\objects\effects\temporary_visuals\projectiles\impact.dm"
-#include "modular_citadel\code\game\objects\effects\temporary_visuals\projectiles\muzzle.dm"
-#include "modular_citadel\code\game\objects\effects\temporary_visuals\projectiles\tracer.dm"
#include "modular_citadel\code\game\objects\items\balls.dm"
#include "modular_citadel\code\game\objects\items\boombox.dm"
#include "modular_citadel\code\game\objects\items\stunsword.dm"
diff --git a/tools/json_verifier.py b/tools/json_verifier.py
index 04c8670705..dbba811205 100644
--- a/tools/json_verifier.py
+++ b/tools/json_verifier.py
@@ -4,16 +4,17 @@ import json
if len(sys.argv) <= 1:
exit(1)
-files = filter(len, sys.argv[1].split('\n'))
-msg = []
-for file in files:
+status = 0
+
+for file in sys.argv[1:]:
with open(file, encoding="ISO-8859-1") as f:
try:
json.load(f)
except ValueError as exception:
- msg.append("JSON synxtax error on file: {}".format(file))
- msg.append(str(exception))
-if msg:
- print("\n".join(msg))
- exit(1)
-exit(0)
+ print("JSON error in {}".format(file))
+ print(exception)
+ status = 1
+ else:
+ print("Valid {}".format(file))
+
+exit(status)
diff --git a/tools/travis/before_build_tools.sh b/tools/travis/before_build_tools.sh
deleted file mode 100755
index 2329de82b2..0000000000
--- a/tools/travis/before_build_tools.sh
+++ /dev/null
@@ -1,7 +0,0 @@
-#!/bin/bash
-set -e
-
-if [ "$BUILD_TOOLS" = true ]; then
- cd tgui && source ~/.nvm/nvm.sh && npm install && cd ..
-fi;
-
diff --git a/tools/travis/build_bsql.sh b/tools/travis/build_bsql.sh
new file mode 100755
index 0000000000..e2b281efc6
--- /dev/null
+++ b/tools/travis/build_bsql.sh
@@ -0,0 +1,21 @@
+#!/usr/bin/env bash
+set -euo pipefail
+
+source dependencies.sh
+
+mkdir -p BSQL
+cd BSQL
+git init
+git remote add origin https://github.com/tgstation/BSQL
+git fetch --depth 1 origin $BSQL_VERSION
+git checkout FETCH_HEAD
+
+mkdir -p artifacts
+cd artifacts
+export CXX=g++-7
+# The -D will be unnecessary past BSQL v1.4.0.0
+cmake .. -DMARIA_LIBRARY=/usr/lib/i386-linux-gnu/libmariadb.so
+make
+
+mkdir -p ~/.byond/bin
+ln -s $PWD/src/BSQL/libBSQL.so ../../libBSQL.so
diff --git a/tools/travis/build_byond.sh b/tools/travis/build_byond.sh
deleted file mode 100755
index 3a7e00df29..0000000000
--- a/tools/travis/build_byond.sh
+++ /dev/null
@@ -1,80 +0,0 @@
-#!/bin/bash
-
-#nb: must be bash to support shopt globstar
-set -e
-shopt -s globstar
-
-if [ "$BUILD_TOOLS" = false ]; then
- if grep -E '^\".+\" = \(.+\)' _maps/**/*.dmm; then
- echo "Non-TGM formatted map detected. Please convert it using Map Merger!"
- exit 1
- fi;
- if grep -P '^\ttag = \"icon' _maps/**/*.dmm; then
- echo "tag vars from icon state generation detected in maps, please remove them."
- exit 1
- fi;
- if grep 'step_[xy]' _maps/**/*.dmm; then
- echo "step_x/step_y variables detected in maps, please remove them."
- exit 1
- fi;
- if grep 'pixel_[xy] = 0' _maps/**/*.dmm; then
- echo "pixel_x/pixel_y = 0 variables detected in maps, please review to ensure they are not dirty varedits."
- fi;
- if grep -P '\td[1-2] =' _maps/**/*.dmm; then
- echo "d1/d2 cable variables detected in maps, please remove them."
- exit 1
- fi;
- if grep '^/area/.+[\{]' _maps/**/*.dmm; then
- echo "Vareditted /area path use detected in maps, please replace with proper paths."
- exit 1
- fi;
- if grep '\W\/turf\s*[,\){]' _maps/**/*.dmm; then
- echo "base /turf path use detected in maps, please replace with proper paths."
- exit 1
- fi;
- if grep '^/*var/' code/**/*.dm; then
- echo "Unmanaged global var use detected in code, please use the helpers."
- exit 1
- fi;
- if grep -i 'centcomm' code/**/*.dm; then
- echo "Misspelling(s) of CENTCOM detected in code, please remove the extra M(s)."
- exit 1
- fi;
- if grep -i 'centcomm' _maps/**/*.dmm; then
- echo "Misspelling(s) of CENTCOM detected in maps, please remove the extra M(s)."
- exit 1
- fi;
-
- source $HOME/BYOND/byond/bin/byondsetup
- if [ "$BUILD_TESTING" = true ]; then
- tools/travis/dm.sh -DTRAVISBUILDING -DTRAVISTESTING -DALL_MAPS tgstation.dme
- else
- tools/travis/dm.sh -DTRAVISBUILDING tgstation.dme
-
- tools/deploy.sh travis_test
- mkdir travis_test/config
-
- #test config
- cp tools/travis/travis_config.txt travis_test/config/config.txt
-
- # get libmariadb, cache it so limmex doesn't get angery
- if [ -f $HOME/libmariadb ]; then
- #travis likes to interpret the cache command as it being a file for some reason
- rm $HOME/libmariadb
- fi
- mkdir -p $HOME/libmariadb
- if [ ! -f $HOME/libmariadb/libmariadb.so ]; then
- wget http://www.byond.com/download/db/mariadb_client-2.0.0-linux.tgz
- tar -xvf mariadb_client-2.0.0-linux.tgz
- mv mariadb_client-2.0.0-linux/libmariadb.so $HOME/libmariadb/libmariadb.so
- rm -rf mariadb_client-2.0.0-linux.tgz mariadb_client-2.0.0-linux
- fi
-
- cd travis_test
- ln -s $HOME/libmariadb/libmariadb.so libmariadb.so
- DreamDaemon tgstation.dmb -close -trusted -verbose -params "test-run&log-directory=travis"
- cd ..
- cat travis_test/data/logs/travis/clean_run.lk
-
- fi;
-fi;
diff --git a/tools/travis/build_dependencies.sh b/tools/travis/build_dependencies.sh
deleted file mode 100755
index 2c24bdbaaf..0000000000
--- a/tools/travis/build_dependencies.sh
+++ /dev/null
@@ -1,55 +0,0 @@
-#!/usr/bin/env bash
-
-set -e
-
-source dependencies.sh
-
-#ensure the Dockerfile version matches the dependencies.sh version
-line=$(head -n 1 Dockerfile)
-if [[ $line != *"$BYOND_MAJOR.$BYOND_MINOR"* ]]; then
- echo "Dockerfile BYOND version in FROM command does not match dependencies.sh (Or it's not on line 1)!"
- exit 1
-fi
-
-if [ $BUILD_TOOLS = false ] && [ $BUILD_TESTING = false ]; then
- curl https://sh.rustup.rs -sSf | sh -s -- -y --default-host i686-unknown-linux-gnu
- source ~/.profile
-
- mkdir rust-g
- cd rust-g
- git init
- git remote add origin https://github.com/tgstation/rust-g
- git fetch --depth 1 origin $RUST_G_VERSION
- git checkout FETCH_HEAD
- cargo build --release
- cmp target/rust_g.dm ../code/__DEFINES/rust_g.dm
-
- mkdir -p ~/.byond/bin
- ln -s $PWD/target/release/librust_g.so ~/.byond/bin/rust_g
-
- mkdir -p ../BSQL/artifacts
- cd ../BSQL
- git init
- git remote add origin https://github.com/tgstation/BSQL
- git fetch --depth 1 origin $BSQL_VERSION
- git checkout FETCH_HEAD
-
- if [ -f "$HOME/MariaDB/libmariadb.so.2" ] && [ -f "$HOME/MariaDB/libmariadb.so" ] && [ -d "$HOME/MariaDB/include" ];
- then
- echo "Using cached MariaDB library."
- else
- echo "Setting up MariaDB."
- rm -rf "$HOME/MariaDB"
- mkdir -p "$HOME/MariaDB"
- mkdir -p "$HOME/MariaDB/include"
- cp /usr/lib/i386-linux-gnu/libmariadb.so.2 $HOME/MariaDB/
- ln -s $HOME/MariaDB/libmariadb.so.2 $HOME/MariaDB/libmariadb.so
- cp -r /usr/include/mariadb $HOME/MariaDB/include/
- fi
-
- cd artifacts
- export CXX=g++-7
- cmake .. -DMARIA_INCLUDE_DIR=$HOME/MariaDB/include
- make
- mv src/BSQL/libBSQL.so ../../
-fi
diff --git a/tools/travis/build_tgui.sh b/tools/travis/build_tgui.sh
new file mode 100755
index 0000000000..0141f3e117
--- /dev/null
+++ b/tools/travis/build_tgui.sh
@@ -0,0 +1,7 @@
+#!/bin/bash
+set -euo pipefail
+
+cd tgui
+source ~/.nvm/nvm.sh
+npm ci
+node node_modules/gulp/bin/gulp.js --min
diff --git a/tools/travis/build_tools.sh b/tools/travis/build_tools.sh
deleted file mode 100755
index eaccd64c8c..0000000000
--- a/tools/travis/build_tools.sh
+++ /dev/null
@@ -1,16 +0,0 @@
-#!/bin/bash
-
-#must also be bash for the md5sum commands
-set -e
-
-if [ "$BUILD_TOOLS" = true ];
-then
- md5sum -c - <<< "49bc6b1b9ed56c83cceb6674bd97cb34 *html/changelogs/example.yml";
- (cd tgui && source ~/.nvm/nvm.sh && npm ci && node node_modules/gulp/bin/gulp.js --min)
- phpenv global 5.6
- php -l tools/WebhookProcessor/github_webhook_processor.php;
- php -l tools/TGUICompiler.php;
- echo "Checking for JSON errors";
- find . -name "*.json" -not -path "./tgui/node_modules/*" | xargs -0 python3 ./tools/json_verifier.py;
- python3 tools/ss13_genchangelog.py html/changelog.html html/changelogs;
-fi;
diff --git a/tools/travis/check_changelogs.sh b/tools/travis/check_changelogs.sh
new file mode 100755
index 0000000000..e33c0e6df3
--- /dev/null
+++ b/tools/travis/check_changelogs.sh
@@ -0,0 +1,5 @@
+#!/bin/bash
+set -euo pipefail
+
+md5sum -c - <<< "49bc6b1b9ed56c83cceb6674bd97cb34 *html/changelogs/example.yml"
+python3 tools/ss13_genchangelog.py html/changelog.html html/changelogs
diff --git a/tools/travis/check_grep.sh b/tools/travis/check_grep.sh
new file mode 100755
index 0000000000..2117b570eb
--- /dev/null
+++ b/tools/travis/check_grep.sh
@@ -0,0 +1,49 @@
+#!/bin/bash
+set -euo pipefail
+
+#nb: must be bash to support shopt globstar
+shopt -s globstar
+
+st=0
+
+if grep -El '^\".+\" = \(.+\)' _maps/**/*.dmm; then
+ echo "Non-TGM formatted map detected. Please convert it using Map Merger!"
+ st=1
+fi;
+if grep -P '^\ttag = \"icon' _maps/**/*.dmm; then
+ echo "tag vars from icon state generation detected in maps, please remove them."
+ st=1
+fi;
+if grep 'step_[xy]' _maps/**/*.dmm; then
+ echo "step_x/step_y variables detected in maps, please remove them."
+ st=1
+fi;
+if grep 'pixel_[xy] = 0' _maps/**/*.dmm; then
+ echo "pixel_x/pixel_y = 0 variables detected in maps, please review to ensure they are not dirty varedits."
+fi;
+if grep -P '\td[1-2] =' _maps/**/*.dmm; then
+ echo "d1/d2 cable variables detected in maps, please remove them."
+ st=1
+fi;
+if grep '^/area/.+[\{]' _maps/**/*.dmm; then
+ echo "Vareditted /area path use detected in maps, please replace with proper paths."
+ st=1
+fi;
+if grep '\W\/turf\s*[,\){]' _maps/**/*.dmm; then
+ echo "base /turf path use detected in maps, please replace with proper paths."
+ st=1
+fi;
+if grep '^/*var/' code/**/*.dm; then
+ echo "Unmanaged global var use detected in code, please use the helpers."
+ st=1
+fi;
+if grep -i 'centcomm' code/**/*.dm; then
+ echo "Misspelling(s) of CENTCOM detected in code, please remove the extra M(s)."
+ st=1
+fi;
+if grep -i 'centcomm' _maps/**/*.dmm; then
+ echo "Misspelling(s) of CENTCOM detected in maps, please remove the extra M(s)."
+ st=1
+fi;
+
+exit $st
diff --git a/tools/travis/install_build_tools.sh b/tools/travis/install_build_tools.sh
index 0ea2a605ab..224687f088 100755
--- a/tools/travis/install_build_tools.sh
+++ b/tools/travis/install_build_tools.sh
@@ -1,11 +1,12 @@
#!/bin/bash
-set -e
+set -euo pipefail
source dependencies.sh
-if [ "$BUILD_TOOLS" = true ]; then
- source ~/.nvm/nvm.sh
- nvm install $NODE_VERSION
- pip3 install --user PyYaml
- pip3 install --user beautifulsoup4
-fi;
+source ~/.nvm/nvm.sh
+nvm install $NODE_VERSION
+
+pip3 install --user PyYaml
+pip3 install --user beautifulsoup4
+
+phpenv global $PHP_VERSION
diff --git a/tools/travis/before_build_byond.sh b/tools/travis/install_byond.sh
similarity index 67%
rename from tools/travis/before_build_byond.sh
rename to tools/travis/install_byond.sh
index 55afb07ffe..4a688755d3 100755
--- a/tools/travis/before_build_byond.sh
+++ b/tools/travis/install_byond.sh
@@ -1,15 +1,5 @@
#!/bin/bash
-set -e
-
-#If this is the build tools step, we do not bother to install/build byond
-if [ "$BUILD_TOOLS" = true ]; then
- exit 0
-fi
-
-echo "Combining maps for building"
-if [ $BUILD_TESTING = true ]; then
- python tools/travis/template_dm_generator.py
-fi
+set -euo pipefail
source dependencies.sh
diff --git a/tools/travis/install_dreamchecker.sh b/tools/travis/install_dreamchecker.sh
new file mode 100755
index 0000000000..4423e5aafb
--- /dev/null
+++ b/tools/travis/install_dreamchecker.sh
@@ -0,0 +1,8 @@
+#!/bin/bash
+set -euo pipefail
+
+source dependencies.sh
+
+wget -O ~/dreamchecker "https://github.com/SpaceManiac/SpacemanDMM/releases/download/$SPACEMAN_DMM_VERSION/dreamchecker"
+chmod +x ~/dreamchecker
+~/dreamchecker --version
diff --git a/tools/travis/install_libmariadb.sh b/tools/travis/install_libmariadb.sh
new file mode 100755
index 0000000000..d0ce4adc14
--- /dev/null
+++ b/tools/travis/install_libmariadb.sh
@@ -0,0 +1,15 @@
+#!/bin/bash
+set -euo pipefail
+
+# get libmariadb, cache it so limmex doesn't get angery
+if [ -f $HOME/libmariadb ]; then
+ #travis likes to interpret the cache command as it being a file for some reason
+ rm $HOME/libmariadb
+fi
+mkdir -p $HOME/libmariadb
+if [ ! -f $HOME/libmariadb/libmariadb.so ]; then
+ wget http://www.byond.com/download/db/mariadb_client-2.0.0-linux.tgz
+ tar -xvf mariadb_client-2.0.0-linux.tgz
+ mv mariadb_client-2.0.0-linux/libmariadb.so $HOME/libmariadb/libmariadb.so
+ rm -rf mariadb_client-2.0.0-linux.tgz mariadb_client-2.0.0-linux
+fi
diff --git a/tools/travis/install_rust_g.sh b/tools/travis/install_rust_g.sh
new file mode 100755
index 0000000000..227034af66
--- /dev/null
+++ b/tools/travis/install_rust_g.sh
@@ -0,0 +1,8 @@
+#!/usr/bin/env bash
+set -euo pipefail
+
+source dependencies.sh
+
+mkdir -p ~/.byond/bin
+wget -O ~/.byond/bin/rust_g "https://github.com/tgstation/rust-g/releases/download/$RUST_G_VERSION/librust_g.so"
+chmod +x ~/.byond/bin/rust_g
diff --git a/tools/travis/run_server.sh b/tools/travis/run_server.sh
new file mode 100755
index 0000000000..975e8f6884
--- /dev/null
+++ b/tools/travis/run_server.sh
@@ -0,0 +1,14 @@
+#!/bin/bash
+set -euo pipefail
+
+tools/deploy.sh travis_test
+mkdir travis_test/config
+
+#test config
+cp tools/travis/travis_config.txt travis_test/config/config.txt
+
+cd travis_test
+ln -s $HOME/libmariadb/libmariadb.so libmariadb.so
+DreamDaemon tgstation.dmb -close -trusted -verbose -params "test-run&log-directory=travis"
+cd ..
+cat travis_test/data/logs/travis/clean_run.lk
diff --git a/tools/travis/template_dm_generator.py b/tools/travis/template_dm_generator.py
index 89e1d2647d..970fba7db4 100755
--- a/tools/travis/template_dm_generator.py
+++ b/tools/travis/template_dm_generator.py
@@ -1,7 +1,6 @@
#!/usr/bin/env python
import os
-import os.path
import sys
folders = ["_maps/RandomRuins", "_maps/RandomZLevels", "_maps/shuttles",
|