diff --git a/code/ATMOSPHERICS/_atmospherics_helpers.dm b/code/ATMOSPHERICS/_atmospherics_helpers.dm index f85fa84b93..d4de419ad0 100644 --- a/code/ATMOSPHERICS/_atmospherics_helpers.dm +++ b/code/ATMOSPHERICS/_atmospherics_helpers.dm @@ -130,7 +130,7 @@ var/total_specific_power = 0 //the power required to remove one mole of filterable gas for (var/g in filtering) var/ratio = source.gas[g]/total_filterable_moles //this converts the specific power per mole of pure gas to specific power per mole of scrubbed gas - total_specific_power = specific_power_gas[g]*ratio + total_specific_power += specific_power_gas[g]*ratio //Figure out how much of each gas to filter if (isnull(total_transfer_moles)) diff --git a/code/ATMOSPHERICS/atmospherics.dm b/code/ATMOSPHERICS/atmospherics.dm index 7237cccbca..9ae50b11af 100644 --- a/code/ATMOSPHERICS/atmospherics.dm +++ b/code/ATMOSPHERICS/atmospherics.dm @@ -85,6 +85,9 @@ obj/machinery/atmospherics/proc/check_connect_types(obj/machinery/atmospherics/a return node.pipe_color /obj/machinery/atmospherics/process() + last_flow_rate = 0 + last_power_draw = 0 + build_network() /obj/machinery/atmospherics/proc/network_expand(datum/pipe_network/new_network, obj/machinery/atmospherics/pipe/reference) diff --git a/code/ATMOSPHERICS/components/unary/vent_scrubber.dm b/code/ATMOSPHERICS/components/unary/vent_scrubber.dm index 43874a64d9..561a2bf7df 100644 --- a/code/ATMOSPHERICS/components/unary/vent_scrubber.dm +++ b/code/ATMOSPHERICS/components/unary/vent_scrubber.dm @@ -17,6 +17,7 @@ var/frequency = 1439 var/datum/radio_frequency/radio_connection + var/hibernate = 0 //Do we even process? var/scrubbing = 1 //0 = siphoning, 1 = scrubbing var/list/scrubbing_gas = list("carbon_dioxide") @@ -126,8 +127,8 @@ /obj/machinery/atmospherics/unary/vent_scrubber/process() ..() - last_power_draw = 0 - last_flow_rate = 0 + if (hibernate) + return 1 if (!node) use_power = 0 @@ -149,6 +150,12 @@ power_draw = pump_gas(src, environment, air_contents, transfer_moles, power_rating) + if(scrubbing && power_draw < 0 && controller_iteration > 10) //99% of all scrubbers + //Fucking hibernate because you ain't doing shit. + hibernate = 1 + spawn(rand(100,200)) //hibernate for 10 or 20 seconds randomly + hibernate = 0 + if (power_draw >= 0) last_power_draw = power_draw use_power(power_draw) diff --git a/code/game/machinery/cryopod.dm b/code/game/machinery/cryopod.dm index 41bb3bef2d..e345847c86 100644 --- a/code/game/machinery/cryopod.dm +++ b/code/game/machinery/cryopod.dm @@ -393,9 +393,9 @@ occupant.ckey = null //Make an announcement and log the person entering storage. - control_computer.frozen_crew += "[occupant.real_name]" + control_computer.frozen_crew += "[occupant.real_name], [occupant.mind.assigned_role] - [worldtime2text()]" - announce.autosay("[occupant.real_name] [on_store_message]", "[on_store_name]") + announce.autosay("[occupant.real_name], [occupant.mind.assigned_role] [on_store_message]", "[on_store_name]") visible_message("\The [initial(name)] hums and hisses as it moves [occupant.real_name] into storage.", 3) // Delete the mob. diff --git a/code/modules/admin/verbs/adminpm.dm b/code/modules/admin/verbs/adminpm.dm index b947f3f710..26cae206e9 100644 --- a/code/modules/admin/verbs/adminpm.dm +++ b/code/modules/admin/verbs/adminpm.dm @@ -137,7 +137,7 @@ send2adminirc("PlayerPM from [key_name(src)]: [html_decode(msg)]") - src << "" + create_text_tag("pm_out_alt", "", src) + " to : [msg]" + src << "" + create_text_tag("pm_out_alt", "", src) + " to Admin IRC: [msg]" log_admin("PM: [key_name(src)]->IRC: [msg]") for(var/client/X in admins) diff --git a/code/modules/economy/EFTPOS.dm b/code/modules/economy/EFTPOS.dm index eed1e40ab2..fda22b17f9 100644 --- a/code/modules/economy/EFTPOS.dm +++ b/code/modules/economy/EFTPOS.dm @@ -100,7 +100,7 @@ else dat += "Lock in new transaction

" - dat += "Transaction purpose: [transaction_purpose]
" + dat += "Transaction purpose: [transaction_purpose]
" dat += "Value: $[transaction_amount]
" dat += "Linked account: [linked_account ? linked_account.owner_name : "None"]
" dat += "Change access code
" diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm index 2874d16d39..c8d5651b29 100644 --- a/code/modules/mob/dead/observer/observer.dm +++ b/code/modules/mob/dead/observer/observer.dm @@ -670,6 +670,12 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp client.images -= ghostimage //remove ourself mob/dead/observer/MayRespawn(var/feedback = 0) + if(!client || !mind) + return 0 + if(mind.current && mind.current.stat != DEAD) + if(feedback) + src << "Your non-dead body prevent you from respawning." + return 0 if(config.antag_hud_restricted && has_enabled_antagHUD == 1) if(feedback) src << "antagHUD restrictions prevent you from respawning." diff --git a/html/changelogs/PsiOmegaDelta-MayRespawn.yml b/html/changelogs/PsiOmegaDelta-MayRespawn.yml new file mode 100644 index 0000000000..eff6f0e298 --- /dev/null +++ b/html/changelogs/PsiOmegaDelta-MayRespawn.yml @@ -0,0 +1,5 @@ +author: PsiOmegaDelta +delete-after: True + +changes: + - bugfix: "Astral projecting mobs, such as wizards or cultists, may no longer respawn as something else while their body lives."