Merge branch 'master' of https://github.com/Citadel-Station-13/Citadel-Station-13 into fix-monstermos-superconduct

This commit is contained in:
Putnam
2020-09-04 17:26:40 -07:00
19 changed files with 107 additions and 35 deletions
+1
View File
@@ -0,0 +1 @@
#define EXTOOLS (world.system_type == MS_WINDOWS ? "byond-extools.dll" : "libbyond-extools.so")
-2
View File
@@ -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;\
+5
View File
@@ -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()
+10 -1
View File
@@ -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 */
+11 -2
View File
@@ -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."
+1 -4
View File
@@ -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
-2
View File
@@ -394,8 +394,6 @@
to_chat(user, "<span class='warning'>[src] are recharging!</span>")
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
+6
View File
@@ -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()
@@ -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")
@@ -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)
. += "<span class='notice'>[src] is <b>anchored</b> to the floor.</span>"
else
. += "<span class='notice'>[src] is <i>unanchored</i>, but can be <b>bolted</b> down.</span>"
/obj/machinery/power/supermatter_crystal/shard/engine
name = "anchored supermatter shard"
is_main_engine = TRUE
@@ -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
@@ -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...<br /><span class='info'>Alt-Click to look through the peephole.</span>"
//Template Stuff
/datum/map_template/hilbertshotel
name = "Hilbert's Hotel Room"
+1 -1
View File
@@ -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]")
+19 -11
View File
@@ -50,6 +50,25 @@
-->
<div class="commit sansserif">
<h2 class="date">05 September 2020</h2>
<h3 class="author">Bhijn updated:</h3>
<ul class="changes bgimages16">
<li class="rscadd">Readded the old method of temperature notifications in the form of a new pair of shivering/sweating notifications.</li>
</ul>
<h3 class="author">Putnam3145 updated:</h3>
<ul class="changes bgimages16">
<li class="tweak">Hilbert hotel flavor text for one particular snowflake hotel changed.</li>
<li class="admin">admins can now actually reduce threat level in dynamic</li>
<li class="tweak">Made owo.ogg smaller.</li>
<li class="tweak">Character saving unit test is now more verbose on failure.</li>
<li class="refactor">Added an extools proc hook alternative to rust_g logging.</li>
</ul>
<h3 class="author">raspy-on-osu updated:</h3>
<ul class="changes bgimages16">
<li class="tweak">supermatter shard examine text</li>
<li class="tweak">protolathe item categories</li>
</ul>
<h2 class="date">04 September 2020</h2>
<h3 class="author">timothyteakettle updated:</h3>
<ul class="changes bgimages16">
@@ -1432,17 +1451,6 @@
<ul class="changes bgimages16">
<li class="tweak">cooking oil is now far less lethal, requiring a higher volume of the reagent to deal more damage</li>
</ul>
<h2 class="date">04 July 2020</h2>
<h3 class="author">Sonic121x updated:</h3>
<ul class="changes bgimages16">
<li class="rscadd">crushed Soldry sodacan</li>
<li class="rscadd">digitigrade version of chief medical officer's turtleneck and captain's female formal outfit.</li>
</ul>
<h3 class="author">silicons updated:</h3>
<ul class="changes bgimages16">
<li class="refactor">blood_DNA["color"] is now a single variable instead of a list</li>
</ul>
</div>
<b>GoonStation 13 Development Team</b>
+13
View File
@@ -27215,3 +27215,16 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py.
2020-09-04:
timothyteakettle:
- bugfix: ipcs can speak
2020-09-05:
Bhijn:
- rscadd: Readded the old method of temperature notifications in the form of a new
pair of shivering/sweating notifications.
Putnam3145:
- tweak: Hilbert hotel flavor text for one particular snowflake hotel changed.
- admin: admins can now actually reduce threat level in dynamic
- tweak: Made owo.ogg smaller.
- tweak: Character saving unit test is now more verbose on failure.
- refactor: Added an extools proc hook alternative to rust_g logging.
raspy-on-osu:
- tweak: supermatter shard examine text
- tweak: protolathe item categories
Binary file not shown.

Before

Width:  |  Height:  |  Size: 108 KiB

After

Width:  |  Height:  |  Size: 112 KiB

Binary file not shown.
Binary file not shown.
+2
View File
@@ -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"