diff --git a/byond-extools.dll b/byond-extools.dll index bd6b34c48e..718b475f9a 100644 Binary files a/byond-extools.dll and b/byond-extools.dll differ diff --git a/code/__DEFINES/_extools.dm b/code/__DEFINES/_extools.dm new file mode 100644 index 0000000000..4513243aae --- /dev/null +++ b/code/__DEFINES/_extools.dm @@ -0,0 +1 @@ +#define EXTOOLS (world.system_type == MS_WINDOWS ? "byond-extools.dll" : "libbyond-extools.so") diff --git a/code/__DEFINES/atmospherics.dm b/code/__DEFINES/atmospherics.dm index 621af2c811..dad2a38afd 100644 --- a/code/__DEFINES/atmospherics.dm +++ b/code/__DEFINES/atmospherics.dm @@ -281,8 +281,6 @@ GLOBAL_LIST_INIT(atmos_adjacent_savings, list(0,0)) #define CALCULATE_ADJACENT_TURFS(T) SSadjacent_air.queue[T] = 1 #endif -#define EXTOOLS (world.system_type == MS_WINDOWS ? "byond-extools.dll" : "libbyond-extools.so") - GLOBAL_VAR(atmos_extools_initialized) // this must be an uninitialized (null) one or init_monstermos will be called twice because reasons #define ATMOS_EXTOOLS_CHECK if(!GLOB.atmos_extools_initialized){\ GLOB.atmos_extools_initialized=TRUE;\ diff --git a/code/__DEFINES/dcs/signals.dm b/code/__DEFINES/dcs/signals.dm index 65994dda5a..8efb2617bd 100644 --- a/code/__DEFINES/dcs/signals.dm +++ b/code/__DEFINES/dcs/signals.dm @@ -32,7 +32,7 @@ #define COMSIG_ELEMENT_DETACH "element_detach" /// sent to the component itself when unregistered from a parent -#define COMSIG_COMPONENT_UNREGISTER_PARENT "component_unregister_parent" +#define COMSIG_COMPONENT_UNREGISTER_PARENT "component_unregister_parent" /// sent to the component itself when registered to a parent #define COMSIG_COMPONENT_REGISTER_PARENT "component_register_parent" @@ -184,6 +184,7 @@ // #define HEARING_SOURCE 8 #define COMSIG_MOVABLE_DISPOSING "movable_disposing" //called when the movable is added to a disposal holder object for disposal movement: (obj/structure/disposalholder/holder, obj/machinery/disposal/source) #define COMSIG_MOVABLE_TELEPORTED "movable_teleported" //from base of do_teleport(): (channel, turf/origin, turf/destination) +#define COMSIG_MOVABLE_CHASM_DROP "movable_chasm_drop" //from base of /datum/component/chasm/drop() (/datum/component/chasm) // /mind signals #define COMSIG_PRE_MIND_TRANSFER "pre_mind_transfer" //from base of mind/transfer_to() before it's done: (new_character, old_character) diff --git a/code/__HELPERS/_extools_api.dm b/code/__HELPERS/_extools_api.dm new file mode 100644 index 0000000000..af348dc939 --- /dev/null +++ b/code/__HELPERS/_extools_api.dm @@ -0,0 +1,5 @@ +#define EXTOOLS_LOGGING // rust_g is used as a fallback if this is undefined + +/proc/extools_log_write() + +/proc/extools_finalize_logging() diff --git a/code/__HELPERS/_logging.dm b/code/__HELPERS/_logging.dm index 62e6c4daf9..888c20003f 100644 --- a/code/__HELPERS/_logging.dm +++ b/code/__HELPERS/_logging.dm @@ -4,10 +4,15 @@ #define SEND_SOUND(target, sound) DIRECT_OUTPUT(target, sound) #define SEND_TEXT(target, text) DIRECT_OUTPUT(target, text) #define WRITE_FILE(file, text) DIRECT_OUTPUT(file, text) +#ifdef EXTOOLS_LOGGING +// proc hooked, so we can just put in standard TRUE and FALSE +#define WRITE_LOG(log, text) extools_log_write(log,text,TRUE) +#define WRITE_LOG_NO_FORMAT(log, text) extools_log_write(log,text,FALSE) +#else //This is an external call, "true" and "false" are how rust parses out booleans #define WRITE_LOG(log, text) rustg_log_write(log, text, "true") #define WRITE_LOG_NO_FORMAT(log, text) rustg_log_write(log, text, "false") - +#endif //print a warning message to world.log #define WARNING(MSG) warning("[MSG] in [__FILE__] at line [__LINE__] src: [UNLINT(src)] usr: [usr].") /proc/warning(msg) @@ -216,7 +221,11 @@ /* Close open log handles. This should be called as late as possible, and no logging should hapen after. */ /proc/shutdown_logging() +#ifdef EXTOOLS_LOGGING + extools_finalize_logging() +#else rustg_log_close_all() +#endif /* Helper procs for building detailed log lines */ diff --git a/code/_onclick/hud/alert.dm b/code/_onclick/hud/alert.dm index 6dc1433bc8..980ec38909 100644 --- a/code/_onclick/hud/alert.dm +++ b/code/_onclick/hud/alert.dm @@ -184,14 +184,23 @@ /obj/screen/alert/hot name = "Too Hot" - desc = "You're flaming hot! Get somewhere cooler and take off any insulating clothing like a fire suit." + desc = "The air around you is pretty toasty! Consider putting on some insulating clothing, or moving to a cooler area." icon_state = "hot" /obj/screen/alert/cold name = "Too Cold" - desc = "You're freezing cold! Get somewhere warmer and take off any insulating clothing like a space suit." + desc = "The air around you is pretty cold! Consider wearing a coat, or moving to a warmer area." icon_state = "cold" +/obj/screen/alert/sweat + name = "Sweating" + desc = "You're sweating! Get somewhere cooler and take off any insulating clothing like a fire suit." + icon_state = "sweat" + +/obj/screen/alert/shiver + name = "Shivering" + desc = "You're shivering! Get somewhere warmer and take off any insulating clothing like a space suit." + /obj/screen/alert/lowpressure name = "Low Pressure" desc = "The air around you is hazardously thin. A space suit would protect you." diff --git a/code/datums/accents.dm b/code/datums/accents.dm index edfdfb9fee..9baba90c32 100644 --- a/code/datums/accents.dm +++ b/code/datums/accents.dm @@ -94,6 +94,7 @@ /datum/accent/robot/modify_speech(list/speech_args) speech_args[SPEECH_SPANS] = SPAN_ROBOT + return speech_args /datum/accent/dullahan/modify_speech(list/speech_args, datum/source, mob/living/carbon/owner) if(owner) diff --git a/code/datums/components/chasm.dm b/code/datums/components/chasm.dm index 0bb6c4a0af..f5a34bfca2 100644 --- a/code/datums/components/chasm.dm +++ b/code/datums/components/chasm.dm @@ -76,19 +76,11 @@ return FALSE if(M.is_flying()) return FALSE - if(ishuman(AM)) - var/mob/living/carbon/human/H = AM - if(istype(H.belt, /obj/item/wormhole_jaunter)) - var/obj/item/wormhole_jaunter/J = H.belt - //To freak out any bystanders - H.visible_message("[H] falls into [parent]!") - J.chasm_react(H) - return FALSE return TRUE /datum/component/chasm/proc/drop(atom/movable/AM) //Make sure the item is still there after our sleep - if(!AM || QDELETED(AM)) + if(!AM || QDELETED(AM) || SEND_SIGNAL(AM, COMSIG_MOVABLE_CHASM_DROP, src)) return falling_atoms[AM] = (falling_atoms[AM] || 0) + 1 var/turf/T = target_turf diff --git a/code/datums/diseases/advance/symptoms/fire.dm b/code/datums/diseases/advance/symptoms/fire.dm index ea1897b67d..891d8a286a 100644 --- a/code/datums/diseases/advance/symptoms/fire.dm +++ b/code/datums/diseases/advance/symptoms/fire.dm @@ -113,9 +113,9 @@ Bonus symptom_delay_max = 90 var/chems = FALSE var/explosion_power = 1 - threshold_desc = "Resistance 9: Doubles the intensity of the effect, but reduces its frequency.
\ - Stage Speed 8: Increases explosion radius when the host is wet.
\ - Transmission 8: Additionally synthesizes chlorine trifluoride and napalm inside the host." + threshold_desc = list("Resistance 9" = "Doubles the intensity of the effect, but reduces its frequency.", + "Stage Speed 8" = "Increases explosion radius when the host is wet.", + "Transmission 8" = "Additionally synthesizes chlorine trifluoride and napalm inside the host.") /datum/symptom/alkali/Start(datum/disease/advance/A) if(!..()) diff --git a/code/game/gamemodes/dynamic/dynamic.dm b/code/game/gamemodes/dynamic/dynamic.dm index 659d50c077..2e6353b8a8 100644 --- a/code/game/gamemodes/dynamic/dynamic.dm +++ b/code/game/gamemodes/dynamic/dynamic.dm @@ -204,10 +204,7 @@ GLOBAL_VAR_INIT(dynamic_forced_storyteller, null) var/threatadd = input("Specify how much threat to add (negative to subtract). This can inflate the threat level.", "Adjust Threat", 0) as null|num if(!threatadd) return - if(threatadd > 0) - create_threat(threatadd) - else - remove_threat(threatadd) + create_threat(threatadd) else if (href_list["injectlate"]) latejoin_injection_cooldown = 0 forced_injection = TRUE diff --git a/code/game/objects/items/crayons.dm b/code/game/objects/items/crayons.dm index 7f8b720509..2a9944f770 100644 --- a/code/game/objects/items/crayons.dm +++ b/code/game/objects/items/crayons.dm @@ -735,7 +735,11 @@ if(isobj(target)) if(actually_paints) var/list/hsl = rgb2hsl(hex2num(copytext(paint_color,2,4)),hex2num(copytext(paint_color,4,6)),hex2num(copytext(paint_color,6,8))) - if(hsl[3] < 0.25 && !istype(target, /obj/structure/window) && !istype(target, /obj/effect/decal/cleanable/crayon)) //Colors too dark are rejected + var/static/whitelisted = typecacheof(list(/obj/structure/window, + /obj/effect/decal/cleanable/crayon, + /obj/machinery/door/window) + ) + if(hsl[3] < 0.25 && !whitelisted[target]) //Colors too dark are rejected to_chat(usr, "A color that dark on an object like this? Surely not...") return FALSE diff --git a/code/game/objects/items/defib.dm b/code/game/objects/items/defib.dm index 767f8fc395..277d132b12 100644 --- a/code/game/objects/items/defib.dm +++ b/code/game/objects/items/defib.dm @@ -394,8 +394,6 @@ to_chat(user, "[src] are recharging!") return - user.stop_pulling() //User has hands full, and we don't care about anyone else pulling on it, their problem. CLEAR!! - if(user.a_intent == INTENT_DISARM) do_disarm(M, user) return diff --git a/code/game/world.dm b/code/game/world.dm index 2d174c86e5..121d51136d 100644 --- a/code/game/world.dm +++ b/code/game/world.dm @@ -11,6 +11,11 @@ GLOBAL_LIST(topic_status_cache) /world/New() if (fexists(EXTOOLS)) call(EXTOOLS, "maptick_initialize")() + #ifdef EXTOOLS_LOGGING + call(EXTOOLS, "init_logging")() + else + CRASH("[EXTOOLS] does not exist!") + #endif enable_debugger() #ifdef REFERENCE_TRACKING enable_reference_tracking() @@ -274,6 +279,7 @@ GLOBAL_LIST(topic_status_cache) GM.__gasmixture_unregister() num_deleted++ log_world("Deallocated [num_deleted] gas mixtures") + shutdown_logging() // makes sure the thread is closed before end, else we terminate ..() /world/proc/update_status() diff --git a/code/modules/mining/equipment/wormhole_jaunter.dm b/code/modules/mining/equipment/wormhole_jaunter.dm index c17b62ba6c..e9f8079400 100644 --- a/code/modules/mining/equipment/wormhole_jaunter.dm +++ b/code/modules/mining/equipment/wormhole_jaunter.dm @@ -18,6 +18,15 @@ SSblackbox.record_feedback("tally", "jaunter", 1, "User") // user activated activate(user, TRUE) +/obj/item/wormhole_jaunter/equipped(mob/user, slot) + . = ..() + if(slot == SLOT_BELT) + RegisterSignal(user, COMSIG_MOVABLE_CHASM_DROP, .proc/chasm_react) + +/obj/item/wormhole_jaunter/dropped(mob/user) + . = ..() + UnregisterSignal(user, COMSIG_MOVABLE_CHASM_DROP) + /obj/item/wormhole_jaunter/proc/turf_check(mob/user) var/turf/device_turf = get_turf(user) if(!device_turf || is_centcom_level(device_turf.z) || is_reserved_level(device_turf.z)) @@ -71,13 +80,14 @@ SSblackbox.record_feedback("tally", "jaunter", 1, "EMP") // EMP accidental activation activate(M) -/obj/item/wormhole_jaunter/proc/chasm_react(mob/user) - if(user.get_item_by_slot(SLOT_BELT) == src) - to_chat(user, "Your [name] activates, saving you from the chasm!") - SSblackbox.record_feedback("tally", "jaunter", 1, "Chasm") // chasm automatic activation - activate(user, FALSE, TRUE) - else - to_chat(user, "[src] is not attached to your belt, preventing it from saving you from the chasm. RIP.") +/obj/item/wormhole_jaunter/proc/chasm_react(mob/source, datum/component/chasm/C) + to_chat(source, "Your [name] activates, saving you from the chasm!") + SSblackbox.record_feedback("tally", "jaunter", 1, "Chasm") // chasm automatic activation + activate(source, FALSE, TRUE) + if(C) + var/atom/A = C.parent + A.visible_message("[source] falls into [A]!") + return TRUE //jaunter tunnel /obj/effect/portal/jaunt_tunnel diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index ed509f900a..89f5783124 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -1956,19 +1956,19 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) H.adjust_bodytemperature(natural*(1/(thermal_protection+1)) + min(thermal_protection * (loc_temp - H.bodytemperature) / BODYTEMP_HEAT_DIVISOR, BODYTEMP_HEATING_MAX)) switch((loc_temp - H.bodytemperature)*thermal_protection) if(-INFINITY to -50) - H.throw_alert("temp", /obj/screen/alert/cold, 3) + H.throw_alert("tempfeel", /obj/screen/alert/cold, 3) if(-50 to -35) - H.throw_alert("temp", /obj/screen/alert/cold, 2) + H.throw_alert("tempfeel", /obj/screen/alert/cold, 2) if(-35 to -20) - H.throw_alert("temp", /obj/screen/alert/cold, 1) + H.throw_alert("tempfeel", /obj/screen/alert/cold, 1) if(-20 to 0) //This is the sweet spot where air is considered normal - H.clear_alert("temp") + H.clear_alert("tempfeel") if(0 to 15) //When the air around you matches your body's temperature, you'll start to feel warm. - H.throw_alert("temp", /obj/screen/alert/hot, 1) + H.throw_alert("tempfeel", /obj/screen/alert/hot, 1) if(15 to 30) - H.throw_alert("temp", /obj/screen/alert/hot, 2) + H.throw_alert("tempfeel", /obj/screen/alert/hot, 2) if(30 to INFINITY) - H.throw_alert("temp", /obj/screen/alert/hot, 3) + H.throw_alert("tempfeel", /obj/screen/alert/hot, 3) // +/- 50 degrees from 310K is the 'safe' zone, where no damage is dealt. if(H.bodytemperature > BODYTEMP_HEAT_DAMAGE_LIMIT && !HAS_TRAIT(H, TRAIT_RESISTHEAT)) @@ -1986,6 +1986,14 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) else firemodifier = min(firemodifier, 0) burn_damage = max(log(2-firemodifier,(H.bodytemperature-BODYTEMP_NORMAL))-5,0) // this can go below 5 at log 2.5 + if (burn_damage) + switch(burn_damage) + if(0 to 2) + H.throw_alert("temp", /obj/screen/alert/sweat, 1) + if(2 to 4) + H.throw_alert("temp", /obj/screen/alert/sweat, 2) + else + H.throw_alert("temp", /obj/screen/alert/sweat, 3) burn_damage = burn_damage * heatmod * H.physiology.heat_mod if (H.stat < UNCONSCIOUS && (prob(burn_damage) * 10) / 4) //40% for level 3 damage on humans H.emote("scream") @@ -1998,14 +2006,18 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) H.add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/cold, multiplicative_slowdown = ((BODYTEMP_COLD_DAMAGE_LIMIT - H.bodytemperature) / COLD_SLOWDOWN_FACTOR)) switch(H.bodytemperature) if(200 to BODYTEMP_COLD_DAMAGE_LIMIT) + H.throw_alert("temp", /obj/screen/alert/shiver, 1) H.apply_damage(COLD_DAMAGE_LEVEL_1*coldmod*H.physiology.cold_mod, BURN) if(120 to 200) + H.throw_alert("temp", /obj/screen/alert/shiver, 2) H.apply_damage(COLD_DAMAGE_LEVEL_2*coldmod*H.physiology.cold_mod, BURN) else + H.throw_alert("temp", /obj/screen/alert/shiver, 3) H.apply_damage(COLD_DAMAGE_LEVEL_3*coldmod*H.physiology.cold_mod, BURN) else H.remove_movespeed_modifier(/datum/movespeed_modifier/cold) + H.clear_alert("temp") SEND_SIGNAL(H, COMSIG_CLEAR_MOOD_EVENT, "cold") SEND_SIGNAL(H, COMSIG_CLEAR_MOOD_EVENT, "hot") diff --git a/code/modules/paperwork/photocopier.dm b/code/modules/paperwork/photocopier.dm index 38029b5d4c..25a9cf0043 100644 --- a/code/modules/paperwork/photocopier.dm +++ b/code/modules/paperwork/photocopier.dm @@ -187,12 +187,13 @@ */ /obj/machinery/photocopier/proc/do_copy_loop(datum/callback/copy_cb, mob/user) busy = TRUE - var/i - for(i in 1 to num_copies) + var/num_loops + for(var/i in 1 to num_copies) //if(attempt_charge(src, user) & COMPONENT_OBJ_CANCEL_CHARGE) // break addtimer(copy_cb, i SECONDS) - addtimer(CALLBACK(src, .proc/reset_busy), i SECONDS) + num_loops++ + addtimer(CALLBACK(src, .proc/reset_busy), num_loops SECONDS) /** * Sets busy to `FALSE`. Created as a proc so it can be used in callbacks. diff --git a/code/modules/power/supermatter/supermatter.dm b/code/modules/power/supermatter/supermatter.dm index fd8f900552..d4e3f6ad0d 100644 --- a/code/modules/power/supermatter/supermatter.dm +++ b/code/modules/power/supermatter/supermatter.dm @@ -985,6 +985,13 @@ GLOBAL_DATUM(main_supermatter_engine, /obj/machinery/power/supermatter_crystal) layer = ABOVE_MOB_LAYER moveable = TRUE +/obj/machinery/power/supermatter_crystal/shard/examine(mob/user) + . = ..() + if(anchored) + . += "[src] is anchored to the floor." + else + . += "[src] is unanchored, but can be bolted down." + /obj/machinery/power/supermatter_crystal/shard/engine name = "anchored supermatter shard" is_main_engine = TRUE diff --git a/code/modules/research/designs/misc_designs.dm b/code/modules/research/designs/misc_designs.dm index 1b608060ce..75e862778a 100644 --- a/code/modules/research/designs/misc_designs.dm +++ b/code/modules/research/designs/misc_designs.dm @@ -469,7 +469,7 @@ build_type = PROTOLATHE materials = list(/datum/material/iron = 5000, /datum/material/glass = 1000, /datum/material/gold = 1000, /datum/material/silver = 1000) build_path = /obj/item/holosign_creator/engineering - category = list("Equipment") + category = list("Tool Designs") departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING /datum/design/holosignatmos @@ -479,7 +479,7 @@ build_type = PROTOLATHE materials = list(/datum/material/iron = 5000, /datum/material/glass = 1000, /datum/material/gold = 1000, /datum/material/silver = 1000) build_path = /obj/item/holosign_creator/atmos - category = list("Equipment") + category = list("Tool Designs") departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING /datum/design/holosignfirelock @@ -489,7 +489,7 @@ build_type = PROTOLATHE materials = list(/datum/material/iron = 5000, /datum/material/glass = 1000, /datum/material/gold = 1000, /datum/material/silver = 1000) build_path = /obj/item/holosign_creator/firelock - category = list("Equipment") + category = list("Tool Designs") departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING /datum/design/holosigncombifan @@ -499,7 +499,7 @@ build_type = PROTOLATHE materials = list(/datum/material/iron = 7500, /datum/material/glass = 2500, /datum/material/silver = 2500, /datum/material/gold = 2500, /datum/material/titanium = 1750) build_path = /obj/item/holosign_creator/combifan - category = list("Equipment") + category = list("Tool Designs") departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING /datum/design/forcefield_projector @@ -509,7 +509,7 @@ build_type = PROTOLATHE materials = list(/datum/material/iron = 2500, /datum/material/glass = 1000) build_path = /obj/item/forcefield_projector - category = list("Equipment") + category = list("Tool Designs") departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING /datum/design/holobarrier_med diff --git a/code/modules/ruins/spaceruin_code/hilbertshotel.dm b/code/modules/ruins/spaceruin_code/hilbertshotel.dm index d97eae5766..4859fcfca0 100644 --- a/code/modules/ruins/spaceruin_code/hilbertshotel.dm +++ b/code/modules/ruins/spaceruin_code/hilbertshotel.dm @@ -183,6 +183,13 @@ GLOBAL_VAR_INIT(hhmysteryRoomNumber, 1337) . = ..() promptAndCheckIn(user) +/obj/item/hilbertshotel/ghostdojo/linkTurfs(datum/turf_reservation/currentReservation, currentRoomnumber) + . = ..() + var/area/hilbertshotel/currentArea = get_area(locate(currentReservation.bottom_left_coords[1], currentReservation.bottom_left_coords[2], currentReservation.bottom_left_coords[3])) + for(var/turf/closed/indestructible/hoteldoor/door in currentArea) + door.parentSphere = src + door.desc = "The door to this hotel room. Strange, this door doesnt even seem openable. The doorknob, however, seems to buzz with unusual energy...
Alt-Click to look through the peephole." + //Template Stuff /datum/map_template/hilbertshotel name = "Hilbert's Hotel Room" diff --git a/code/modules/unit_tests/character_saving.dm b/code/modules/unit_tests/character_saving.dm index 6c83d4142a..bdcb0f0276 100644 --- a/code/modules/unit_tests/character_saving.dm +++ b/code/modules/unit_tests/character_saving.dm @@ -11,4 +11,4 @@ if(P.features["ooc_notes"] != "Bar") Fail("OOC text is failing to save.") catch(var/exception/e) - Fail("Failed to save and load character due to exception [e.name]") + Fail("Failed to save and load character due to exception [e.file]:[e.line], [e.name]") diff --git a/html/changelog.html b/html/changelog.html index 01d3861fc5..864b5d19b0 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -50,6 +50,21 @@ -->
+

04 September 2020

+

timothyteakettle updated:

+ + +

03 September 2020

+

Ghommie updated:

+ +

02 September 2020

Putnam3145 updated:

GoonStation 13 Development Team diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml index ff80f736e1..134fadc0c5 100644 --- a/html/changelogs/.all_changelog.yml +++ b/html/changelogs/.all_changelog.yml @@ -27206,3 +27206,12 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py. - bugfix: pyroclastic anomaly client spam timothyteakettle: - rscadd: you can hide your ckey now from the roundend report +2020-09-03: + Ghommie: + - bugfix: Jaunters should now work with magic mirror chasming. + - bugfix: The photocopier can now print more than one copy at a time. + - bugfix: Alkali perspiration infos don't crash the Pandemic UI anymore. + - bugfix: Windoors can be actually tinted now. +2020-09-04: + timothyteakettle: + - bugfix: ipcs can speak diff --git a/html/changelogs/AutoChangeLog-pr-13321.yml b/html/changelogs/AutoChangeLog-pr-13321.yml new file mode 100644 index 0000000000..6ef5e6c391 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-13321.yml @@ -0,0 +1,4 @@ +author: "Putnam3145" +delete-after: True +changes: + - tweak: "Hilbert hotel flavor text for one particular snowflake hotel changed." diff --git a/html/changelogs/AutoChangeLog-pr-13324.yml b/html/changelogs/AutoChangeLog-pr-13324.yml new file mode 100644 index 0000000000..0724421ff7 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-13324.yml @@ -0,0 +1,4 @@ +author: "Putnam3145" +delete-after: True +changes: + - refactor: "Added an extools proc hook alternative to rust_g logging." diff --git a/html/changelogs/AutoChangeLog-pr-13331.yml b/html/changelogs/AutoChangeLog-pr-13331.yml new file mode 100644 index 0000000000..b75fd5b557 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-13331.yml @@ -0,0 +1,4 @@ +author: "raspy-on-osu" +delete-after: True +changes: + - tweak: "protolathe item categories" diff --git a/html/changelogs/AutoChangeLog-pr-13333.yml b/html/changelogs/AutoChangeLog-pr-13333.yml new file mode 100644 index 0000000000..a5aba367be --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-13333.yml @@ -0,0 +1,4 @@ +author: "raspy-on-osu" +delete-after: True +changes: + - tweak: "supermatter shard examine text" diff --git a/html/changelogs/AutoChangeLog-pr-13335.yml b/html/changelogs/AutoChangeLog-pr-13335.yml new file mode 100644 index 0000000000..a216340770 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-13335.yml @@ -0,0 +1,4 @@ +author: "Bhijn" +delete-after: True +changes: + - rscadd: "Readded the old method of temperature notifications in the form of a new pair of shivering/sweating notifications." diff --git a/html/changelogs/AutoChangeLog-pr-13336.yml b/html/changelogs/AutoChangeLog-pr-13336.yml new file mode 100644 index 0000000000..60bad4e644 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-13336.yml @@ -0,0 +1,4 @@ +author: "Putnam3145" +delete-after: True +changes: + - admin: "admins can now actually reduce threat level in dynamic" diff --git a/html/changelogs/AutoChangeLog-pr-13337.yml b/html/changelogs/AutoChangeLog-pr-13337.yml new file mode 100644 index 0000000000..74f5833824 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-13337.yml @@ -0,0 +1,4 @@ +author: "Putnam3145" +delete-after: True +changes: + - tweak: "Made owo.ogg smaller." diff --git a/html/changelogs/AutoChangeLog-pr-13338.yml b/html/changelogs/AutoChangeLog-pr-13338.yml new file mode 100644 index 0000000000..73b3af15e0 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-13338.yml @@ -0,0 +1,4 @@ +author: "Putnam3145" +delete-after: True +changes: + - tweak: "Character saving unit test is now more verbose on failure." diff --git a/icons/mob/32x64.dmi b/icons/mob/32x64.dmi index 79a4c8a7fd..cddf9599b4 100644 Binary files a/icons/mob/32x64.dmi and b/icons/mob/32x64.dmi differ diff --git a/icons/mob/cyborg/drakemech.dmi b/icons/mob/cyborg/drakemech.dmi index a9c47b2b78..6a4845d983 100644 Binary files a/icons/mob/cyborg/drakemech.dmi and b/icons/mob/cyborg/drakemech.dmi differ diff --git a/icons/mob/screen_alert.dmi b/icons/mob/screen_alert.dmi index 4ced910193..e64c037cf8 100644 Binary files a/icons/mob/screen_alert.dmi and b/icons/mob/screen_alert.dmi differ diff --git a/libbyond-extools.so b/libbyond-extools.so index 8e17f952f2..052a8cb037 100644 Binary files a/libbyond-extools.so and b/libbyond-extools.so differ diff --git a/sound/voice/medbot/owo.ogg b/sound/voice/medbot/owo.ogg index 0fdaa9d483..5eeb502c88 100644 Binary files a/sound/voice/medbot/owo.ogg and b/sound/voice/medbot/owo.ogg differ diff --git a/tgstation.dme b/tgstation.dme index e742498527..f0ca748803 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -17,6 +17,7 @@ #include "_maps\_basemap.dm" #include "code\_compile_options.dm" #include "code\world.dm" +#include "code\__DEFINES\_extools.dm" #include "code\__DEFINES\_globals.dm" #include "code\__DEFINES\_protect.dm" #include "code\__DEFINES\_tick.dm" @@ -147,6 +148,7 @@ #include "code\__DEFINES\storage\_storage.dm" #include "code\__DEFINES\storage\volumetrics.dm" #include "code\__HELPERS\_cit_helpers.dm" +#include "code\__HELPERS\_extools_api.dm" #include "code\__HELPERS\_lists.dm" #include "code\__HELPERS\_logging.dm" #include "code\__HELPERS\_string_lists.dm"