From e5ca86c1688cc3632f3ef7ed4286c599f5b7167c Mon Sep 17 00:00:00 2001 From: NullSnapshot Date: Sun, 25 Oct 2015 17:40:34 -0700 Subject: [PATCH 1/8] fixes random name EAL naming thing... again. --- code/modules/mob/language/station.dm | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/code/modules/mob/language/station.dm b/code/modules/mob/language/station.dm index 3d45e84f99..a0b686a314 100644 --- a/code/modules/mob/language/station.dm +++ b/code/modules/mob/language/station.dm @@ -107,11 +107,12 @@ space_chance = 10 /datum/language/machine/get_random_name() + var/new_name if(prob(70)) - name = "[pick(list("PBU","HIU","SINA","ARMA","OSI"))]-[rand(100, 999)]" + new_name = "[pick(list("PBU","HIU","SINA","ARMA","OSI"))]-[rand(100, 999)]" else - name = pick(ai_names) - return name + new_name = pick(ai_names) + return new_name //Syllable Lists /* From 00e0014a3f34f4af6c61595ddca04e9e238f7618 Mon Sep 17 00:00:00 2001 From: NullSnapshot Date: Sun, 25 Oct 2015 17:52:49 -0700 Subject: [PATCH 2/8] fixes #9962 --- code/modules/client/preferences.dm | 6 +++++- code/modules/client/preferences_savefile.dm | 6 +++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 9627cd65b3..1cbdc09594 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -1183,7 +1183,11 @@ datum/preferences if("name") var/raw_name = input(user, "Choose your character's name:", "Character Preference") as text|null if (!isnull(raw_name)) // Check to ensure that the user entered text (rather than cancel.) - var/new_name = sanitizeName(raw_name) + var/new_name + if(species == "Machine") + new_name = sanitizeName(raw_name,,1) + else + new_name = sanitizeName(raw_name) if(new_name) real_name = new_name else diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm index a67efd084c..f1b7eb5e0d 100644 --- a/code/modules/client/preferences_savefile.dm +++ b/code/modules/client/preferences_savefile.dm @@ -188,7 +188,11 @@ //Sanitize metadata = sanitize_text(metadata, initial(metadata)) - real_name = sanitizeName(real_name) + + if(species == "Machine") + real_name = sanitizeName(real_name,,1) + else + real_name = sanitizeName(real_name) if(isnull(species) || !(species in playable_species)) species = "Human" From c5fd67720686852a226aa5e51f272e9cd4568dc1 Mon Sep 17 00:00:00 2001 From: NullSnapshot Date: Sun, 25 Oct 2015 18:10:14 -0700 Subject: [PATCH 3/8] Fixes #11350 --- code/game/machinery/rechargestation.dm | 47 ++++++++++++++++++-------- 1 file changed, 33 insertions(+), 14 deletions(-) diff --git a/code/game/machinery/rechargestation.dm b/code/game/machinery/rechargestation.dm index ac5ae8d8c7..01d3d72dac 100644 --- a/code/game/machinery/rechargestation.dm +++ b/code/game/machinery/rechargestation.dm @@ -103,6 +103,11 @@ R.adjustBruteLoss(-weld_rate) if(wire_rate && R.getFireLoss() && cell.checked_use(wire_power_use * wire_rate * CELLRATE)) R.adjustFireLoss(-wire_rate) + else if(istype(occupant, /mob/living/carbon/human)) + var/mob/living/carbon/human/H = occupant + if(!isnull(H.internal_organs_by_name["cell"] && H.nutrition < 450)) + H.nutrition = min(H.nutrition+10, 450) + /obj/machinery/recharge_station/examine(mob/user) ..(user) @@ -200,22 +205,36 @@ go_in(R) /obj/machinery/recharge_station/proc/go_in(var/mob/living/silicon/robot/R) - if(!istype(R)) - return - if(occupant) - return - if(R.incapacitated()) - return - if(!R.cell) - return + if(istype(R, /mob/living/silicon/robot)) + if(!istype(R)) + return + if(occupant) + return - add_fingerprint(R) - R.reset_view(src) - R.forceMove(src) - occupant = R - update_icon() - return 1 + if(R.incapacitated()) + return + if(!R.cell) + return + + add_fingerprint(R) + R.reset_view(src) + R.forceMove(src) + occupant = R + update_icon() + return 1 + + else if(istype(R, /mob/living/carbon/human)) + var/mob/living/carbon/human/H = R + if(!isnull(H.internal_organs_by_name["cell"])) + add_fingerprint(H) + H.reset_view(src) + H.forceMove(src) + occupant = H + update_icon() + return 1 + else + return /obj/machinery/recharge_station/proc/go_out() if(!occupant) From 4694a263a7b097b7041b053ce47a82e180019f51 Mon Sep 17 00:00:00 2001 From: NullSnapshot Date: Sun, 25 Oct 2015 21:51:31 -0700 Subject: [PATCH 4/8] Fixes: #11351 #11357 #11359 #11361 --- code/__defines/damage_organs.dm | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/code/__defines/damage_organs.dm b/code/__defines/damage_organs.dm index 6c2590f840..4e3270b332 100644 --- a/code/__defines/damage_organs.dm +++ b/code/__defines/damage_organs.dm @@ -29,7 +29,7 @@ #define FIRE_DAMAGE_MODIFIER 0.0215 // Higher values result in more external fire damage to the skin. (default 0.0215) #define AIR_DAMAGE_MODIFIER 2.025 // More means less damage from hot air scalding lungs, less = more damage. (default 2.025) -// Organ defines. +/*// Organ defines. #define ORGAN_CUT_AWAY 1<<0 #define ORGAN_BLEEDING 1<<1 #define ORGAN_BROKEN 1<<2 @@ -38,7 +38,18 @@ #define ORGAN_SPLINTED 1<<5 #define ORGAN_DEAD 1<<6 #define ORGAN_MUTATED 1<<7 -#define ORGAN_ASSISTED 1<<8 +#define ORGAN_ASSISTED 1<<8*/ + +// Organ defines. +#define ORGAN_CUT_AWAY 1 +#define ORGAN_BLEEDING 2 +#define ORGAN_BROKEN 4 +#define ORGAN_DESTROYED 8 +#define ORGAN_ROBOT 16 +#define ORGAN_SPLINTED 32 +#define ORGAN_DEAD 64 +#define ORGAN_MUTATED 128 +#define ORGAN_ASSISTED 256 #define DROPLIMB_EDGE 0 #define DROPLIMB_BLUNT 1 From d94ece66f150a939e6563746a7f3d662e8885045 Mon Sep 17 00:00:00 2001 From: NullSnapshot Date: Sun, 25 Oct 2015 21:52:11 -0700 Subject: [PATCH 5/8] Fixes: #11354 --- .../mob/living/carbon/human/species/station/station.dm | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/code/modules/mob/living/carbon/human/species/station/station.dm b/code/modules/mob/living/carbon/human/species/station/station.dm index b63dd51963..403f086159 100644 --- a/code/modules/mob/living/carbon/human/species/station/station.dm +++ b/code/modules/mob/living/carbon/human/species/station/station.dm @@ -260,13 +260,13 @@ knockout_message = "encounters a hardware fault and suddenly reboots!" warning_low_pressure = 50 - hazard_low_pressure = 0 + hazard_low_pressure = -1 cold_level_1 = 50 cold_level_2 = -1 cold_level_3 = -1 - heat_level_1 = 500 // Gives them about 25 seconds in space before taking damage + heat_level_1 = 398.15 // Start taking damage above ~125 Degrees C heat_level_2 = 1000 heat_level_3 = 2000 @@ -301,6 +301,12 @@ "r_foot" = list("path" = /obj/item/organ/external/foot/right/ipc) ) + + heat_discomfort_level = 373.15 + heat_discomfort_strings = list( + "Your CPU temperature probes warn you that you are approaching critical heat levels!" + ) + /datum/species/machine/handle_death(var/mob/living/carbon/human/H) ..() H.h_style = "" From 556196420414b7b790b6458f2bbe2d7d79ccaeab Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Fri, 4 Dec 2015 16:49:21 +1030 Subject: [PATCH 6/8] Tweaks to previous commits. --- code/__defines/damage_organs.dm | 24 +++++++++---------- code/game/machinery/rechargestation.dm | 3 ++- code/modules/client/preferences.dm | 5 ++-- code/modules/mob/language/station.dm | 6 ++--- .../living/carbon/human/species/species.dm | 3 +++ .../carbon/human/species/station/station.dm | 5 +++- 6 files changed, 26 insertions(+), 20 deletions(-) diff --git a/code/__defines/damage_organs.dm b/code/__defines/damage_organs.dm index 4e3270b332..ca9cd28510 100644 --- a/code/__defines/damage_organs.dm +++ b/code/__defines/damage_organs.dm @@ -29,18 +29,18 @@ #define FIRE_DAMAGE_MODIFIER 0.0215 // Higher values result in more external fire damage to the skin. (default 0.0215) #define AIR_DAMAGE_MODIFIER 2.025 // More means less damage from hot air scalding lungs, less = more damage. (default 2.025) -/*// Organ defines. -#define ORGAN_CUT_AWAY 1<<0 -#define ORGAN_BLEEDING 1<<1 -#define ORGAN_BROKEN 1<<2 -#define ORGAN_DESTROYED 1<<3 -#define ORGAN_ROBOT 1<<4 -#define ORGAN_SPLINTED 1<<5 -#define ORGAN_DEAD 1<<6 -#define ORGAN_MUTATED 1<<7 -#define ORGAN_ASSISTED 1<<8*/ - // Organ defines. +#define ORGAN_CUT_AWAY (1<<0) +#define ORGAN_BLEEDING (1<<1) +#define ORGAN_BROKEN (1<<2) +#define ORGAN_DESTROYED (1<<3) +#define ORGAN_ROBOT (1<<4) +#define ORGAN_SPLINTED (1<<5) +#define ORGAN_DEAD (1<<6) +#define ORGAN_MUTATED (1<<7) +#define ORGAN_ASSISTED (1<<8) + +/*// Organ defines. #define ORGAN_CUT_AWAY 1 #define ORGAN_BLEEDING 2 #define ORGAN_BROKEN 4 @@ -49,7 +49,7 @@ #define ORGAN_SPLINTED 32 #define ORGAN_DEAD 64 #define ORGAN_MUTATED 128 -#define ORGAN_ASSISTED 256 +#define ORGAN_ASSISTED 256*/ #define DROPLIMB_EDGE 0 #define DROPLIMB_BLUNT 1 diff --git a/code/game/machinery/rechargestation.dm b/code/game/machinery/rechargestation.dm index 01d3d72dac..c35c419a42 100644 --- a/code/game/machinery/rechargestation.dm +++ b/code/game/machinery/rechargestation.dm @@ -105,8 +105,9 @@ R.adjustFireLoss(-wire_rate) else if(istype(occupant, /mob/living/carbon/human)) var/mob/living/carbon/human/H = occupant - if(!isnull(H.internal_organs_by_name["cell"] && H.nutrition < 450)) + if(!isnull(H.internal_organs_by_name["cell"]) && H.nutrition < 450) H.nutrition = min(H.nutrition+10, 450) + cell.use(7000/450*10) /obj/machinery/recharge_station/examine(mob/user) diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 1cbdc09594..08f991dacd 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -1184,8 +1184,9 @@ datum/preferences var/raw_name = input(user, "Choose your character's name:", "Character Preference") as text|null if (!isnull(raw_name)) // Check to ensure that the user entered text (rather than cancel.) var/new_name - if(species == "Machine") - new_name = sanitizeName(raw_name,,1) + var/datum/species/S = all_species[species] + if(istype(S)) + new_name = S.sanitize_name(raw_name) else new_name = sanitizeName(raw_name) if(new_name) diff --git a/code/modules/mob/language/station.dm b/code/modules/mob/language/station.dm index a0b686a314..e391dd2d0f 100644 --- a/code/modules/mob/language/station.dm +++ b/code/modules/mob/language/station.dm @@ -107,12 +107,10 @@ space_chance = 10 /datum/language/machine/get_random_name() - var/new_name if(prob(70)) - new_name = "[pick(list("PBU","HIU","SINA","ARMA","OSI"))]-[rand(100, 999)]" + return "[pick(list("PBU","HIU","SINA","ARMA","OSI"))]-[rand(100, 999)]" else - new_name = pick(ai_names) - return new_name + return pick(ai_names) //Syllable Lists /* diff --git a/code/modules/mob/living/carbon/human/species/species.dm b/code/modules/mob/living/carbon/human/species/species.dm index feb0725d5c..f31d396fde 100644 --- a/code/modules/mob/living/carbon/human/species/species.dm +++ b/code/modules/mob/living/carbon/human/species/species.dm @@ -154,6 +154,9 @@ for(var/u_type in unarmed_types) unarmed_attacks += new u_type() +/datum/species/proc/sanitize_name(var/new_name) + return sanitizeName(new_name) + /datum/species/proc/get_station_variant() return name diff --git a/code/modules/mob/living/carbon/human/species/station/station.dm b/code/modules/mob/living/carbon/human/species/station/station.dm index 403f086159..20695578ff 100644 --- a/code/modules/mob/living/carbon/human/species/station/station.dm +++ b/code/modules/mob/living/carbon/human/species/station/station.dm @@ -266,7 +266,7 @@ cold_level_2 = -1 cold_level_3 = -1 - heat_level_1 = 398.15 // Start taking damage above ~125 Degrees C + heat_level_1 = 500 // Gives them about 25 seconds in space before taking damage heat_level_2 = 1000 heat_level_3 = 2000 @@ -312,3 +312,6 @@ H.h_style = "" spawn(100) if(H) H.update_hair() + +/datum/species/machine/sanitize_name(var/new_name) + return sanitizeName(new_name,allow_numbers=1) From fd59c3ad76bdd755b6bf51f6513cf0ada4ecca94 Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Fri, 4 Dec 2015 17:08:48 +1030 Subject: [PATCH 7/8] More tweaks to IPC fixes. --- code/__defines/damage_organs.dm | 11 ----------- code/game/machinery/rechargestation.dm | 8 ++++---- code/modules/client/preferences_savefile.dm | 11 ++++++----- 3 files changed, 10 insertions(+), 20 deletions(-) diff --git a/code/__defines/damage_organs.dm b/code/__defines/damage_organs.dm index ca9cd28510..6a2fa0c267 100644 --- a/code/__defines/damage_organs.dm +++ b/code/__defines/damage_organs.dm @@ -40,17 +40,6 @@ #define ORGAN_MUTATED (1<<7) #define ORGAN_ASSISTED (1<<8) -/*// Organ defines. -#define ORGAN_CUT_AWAY 1 -#define ORGAN_BLEEDING 2 -#define ORGAN_BROKEN 4 -#define ORGAN_DESTROYED 8 -#define ORGAN_ROBOT 16 -#define ORGAN_SPLINTED 32 -#define ORGAN_DEAD 64 -#define ORGAN_MUTATED 128 -#define ORGAN_ASSISTED 256*/ - #define DROPLIMB_EDGE 0 #define DROPLIMB_BLUNT 1 #define DROPLIMB_BURN 2 diff --git a/code/game/machinery/rechargestation.dm b/code/game/machinery/rechargestation.dm index c35c419a42..1891170020 100644 --- a/code/game/machinery/rechargestation.dm +++ b/code/game/machinery/rechargestation.dm @@ -207,14 +207,14 @@ /obj/machinery/recharge_station/proc/go_in(var/mob/living/silicon/robot/R) + if(occupant) + return + if(istype(R, /mob/living/silicon/robot)) - if(!istype(R)) - return - if(occupant) - return if(R.incapacitated()) return + if(!R.cell) return diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm index f1b7eb5e0d..3de456d9e7 100644 --- a/code/modules/client/preferences_savefile.dm +++ b/code/modules/client/preferences_savefile.dm @@ -189,14 +189,15 @@ //Sanitize metadata = sanitize_text(metadata, initial(metadata)) - if(species == "Machine") - real_name = sanitizeName(real_name,,1) - else - real_name = sanitizeName(real_name) - if(isnull(species) || !(species in playable_species)) species = "Human" + var/datum/species/cur_species = all_species[species] + if(istype(cur_species)) + real_name = cur_species.sanitize_name(real_name) + else + real_name = sanitizeName(real_name) + if(isnum(underwear)) var/list/undies = gender == MALE ? underwear_m : underwear_f underwear = undies[undies[underwear]] From c946ca7468b2cbb5b907598e9444fbe889b94c20 Mon Sep 17 00:00:00 2001 From: NullSnapshot Date: Thu, 3 Dec 2015 23:45:13 -0800 Subject: [PATCH 8/8] cleaning up recharge station's go_in proc by implementing a helper. --- code/game/machinery/rechargestation.dm | 54 ++++++++++++-------------- 1 file changed, 24 insertions(+), 30 deletions(-) diff --git a/code/game/machinery/rechargestation.dm b/code/game/machinery/rechargestation.dm index 1891170020..980a2b3ee2 100644 --- a/code/game/machinery/rechargestation.dm +++ b/code/game/machinery/rechargestation.dm @@ -88,7 +88,7 @@ //Processes the occupant, drawing from the internal power cell if needed. /obj/machinery/recharge_station/proc/process_occupant() - if(istype(occupant, /mob/living/silicon/robot)) + if(isrobot(occupant)) var/mob/living/silicon/robot/R = occupant if(R.module) @@ -103,7 +103,7 @@ R.adjustBruteLoss(-weld_rate) if(wire_rate && R.getFireLoss() && cell.checked_use(wire_power_use * wire_rate * CELLRATE)) R.adjustFireLoss(-wire_rate) - else if(istype(occupant, /mob/living/carbon/human)) + else if(ishuman(occupant)) var/mob/living/carbon/human/H = occupant if(!isnull(H.internal_organs_by_name["cell"]) && H.nutrition < 450) H.nutrition = min(H.nutrition+10, 450) @@ -205,38 +205,30 @@ /obj/machinery/recharge_station/Bumped(var/mob/living/silicon/robot/R) go_in(R) -/obj/machinery/recharge_station/proc/go_in(var/mob/living/silicon/robot/R) - +/obj/machinery/recharge_station/proc/go_in(var/mob/M) if(occupant) return - - if(istype(R, /mob/living/silicon/robot)) - - if(R.incapacitated()) - return - - if(!R.cell) - return - - add_fingerprint(R) - R.reset_view(src) - R.forceMove(src) - occupant = R - update_icon() - return 1 - - else if(istype(R, /mob/living/carbon/human)) - var/mob/living/carbon/human/H = R - if(!isnull(H.internal_organs_by_name["cell"])) - add_fingerprint(H) - H.reset_view(src) - H.forceMove(src) - occupant = H - update_icon() - return 1 - else + if(!hascell(M)) return + add_fingerprint(M) + M.reset_view(src) + M.forceMove(src) + occupant = M + update_icon() + return 1 + +/obj/machinery/recharge_station/proc/hascell(var/mob/M) + if(isrobot(M)) + var/mob/living/silicon/robot/R = M + if(R.cell) + return 1 + if(ishuman(M)) + var/mob/living/carbon/human/H = M + if(!isnull(H.internal_organs_by_name["cell"])) + return 1 + return 0 + /obj/machinery/recharge_station/proc/go_out() if(!occupant) return @@ -263,4 +255,6 @@ set name = "Enter Recharger" set src in oview(1) + if(!usr.incapacitated()) + return go_in(usr)