From 7a8899cf427d858ec524f6b56d5a30d4e425d784 Mon Sep 17 00:00:00 2001 From: Chinsky Date: Fri, 9 Nov 2012 18:03:57 +0400 Subject: [PATCH 1/9] Updated admin revive to work with organs and bloodloss --- code/modules/mob/living/carbon/human/human.dm | 17 +++++++++++++++++ config/admins.txt | 2 +- config/moderators.txt | 2 +- 3 files changed, 19 insertions(+), 2 deletions(-) diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 0f74acea11f..6d4db2558d8 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -828,3 +828,20 @@ spawn(350) //wait 35 seconds before next volley lastpuke = 0 +/mob/living/carbon/human/revive() + for (var/datum/organ/external/O in organs) + O.status &= ~ORGAN_BROKEN + O.status &= ~ORGAN_BLEEDING + O.status &= ~ORGAN_SPLINTED + O.status &= ~ORGAN_ATTACHABLE + if (!O.amputated) + O.status &= ~ORGAN_DESTROYED + O.wounds.Cut() + + vessel.add_reagent("blood",560-vessel.total_volume) + fixblood() + for (var/obj/item/weapon/organ/head/H in world) + if(H.brainmob.real_name == src.real_name) + + + ..() \ No newline at end of file diff --git a/config/admins.txt b/config/admins.txt index 4467f45452c..753cf8d825b 100644 --- a/config/admins.txt +++ b/config/admins.txt @@ -1,4 +1,4 @@ -abi79 - Game Master +chinsky - Game Master arcalane - Game Admin asanadas - Game Admin bobbehluvspropane - Game Admin diff --git a/config/moderators.txt b/config/moderators.txt index d4874564c24..d956734e232 100644 --- a/config/moderators.txt +++ b/config/moderators.txt @@ -16,7 +16,7 @@ roaper searif sparklysheep themij -chinsky +;chinsky danny220 ; Why u no keep list in alphabetical order?! Lazies! Lazies! -Abi ; Imma best alphabetiser - Erthilo From f45855078b9ba97de3dfc40da87f15296e74e5f6 Mon Sep 17 00:00:00 2001 From: Chinsky Date: Fri, 9 Nov 2012 20:29:03 +0400 Subject: [PATCH 2/9] Admin revive now fixes beheaded peps. --- code/modules/mob/living/carbon/human/human.dm | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 6d4db2558d8..6ff7f447c11 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -841,7 +841,11 @@ vessel.add_reagent("blood",560-vessel.total_volume) fixblood() for (var/obj/item/weapon/organ/head/H in world) - if(H.brainmob.real_name == src.real_name) + if(H.brainmob) + if(H.brainmob.real_name == src.real_name) + if(H.brainmob.mind) + H.brainmob.mind.transfer_to(src) + del(H) ..() \ No newline at end of file From 058aa7a7953e2c7045d51312685c89fae602f470 Mon Sep 17 00:00:00 2001 From: Chinsky Date: Tue, 13 Nov 2012 01:42:11 +0400 Subject: [PATCH 3/9] Fix for training gun runtime. --- code/modules/projectiles/guns/energy.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/projectiles/guns/energy.dm b/code/modules/projectiles/guns/energy.dm index bf38f8f7e34..f1006d45b85 100644 --- a/code/modules/projectiles/guns/energy.dm +++ b/code/modules/projectiles/guns/energy.dm @@ -7,7 +7,7 @@ var/obj/item/weapon/cell/power_supply //What type of power cell this uses var/charge_cost = 100 //How much energy is needed to fire. var/cell_type = "/obj/item/weapon/cell" - var/projectile_type = "/obj/item/projectile/energy" + var/projectile_type = "/obj/item/projectile/beam/practice" var/modifystate emp_act(severity) From bd20233c35ffa888036d58af0e39448c8270077e Mon Sep 17 00:00:00 2001 From: Chinsky Date: Tue, 13 Nov 2012 01:56:31 +0400 Subject: [PATCH 4/9] Added color coding to health analyzers, much like crew monitors. Numbers for each damage will be written in corresponding color, bolded if above 50. --- code/game/objects/items/devices/scanners.dm | 45 ++++++++++++--------- 1 file changed, 27 insertions(+), 18 deletions(-) diff --git a/code/game/objects/items/devices/scanners.dm b/code/game/objects/items/devices/scanners.dm index 359efb68e3f..0a781c81b7c 100644 --- a/code/game/objects/items/devices/scanners.dm +++ b/code/game/objects/items/devices/scanners.dm @@ -76,6 +76,7 @@ MASS SPECTROMETER origin_tech = "magnets=1;biotech=1" var/mode = 1; + /obj/item/device/healthanalyzer/attack(mob/living/M as mob, mob/living/user as mob) if (( (CLUMSY in user.mutations) || user.getBrainLoss() >= 60) && prob(50)) user << text("\red You try to analyze the floor's vitals!") @@ -89,17 +90,19 @@ MASS SPECTROMETER if (!(istype(usr, /mob/living/carbon/human) || ticker) && ticker.mode.name != "monkey") usr << "\red You don't have the dexterity to do this!" return - for(var/mob/O in viewers(M, null)) - O.show_message(text("\red [] has analyzed []'s vitals!", user, M), 1) - //Foreach goto(67) + user.visible_message(" [user] has analyzed [M]'s vitals."," You have analyzed [M]'s vitals.") var/fake_oxy = max(rand(1,40), M.getOxyLoss(), (300 - (M.getToxLoss() + M.getFireLoss() + M.getBruteLoss()))) + var/OX = M.getOxyLoss() > 50 ? "[M.getOxyLoss()]" : M.getOxyLoss() + var/TX = M.getToxLoss() > 50 ? "[M.getToxLoss()]" : M.getToxLoss() + var/BU = M.getFireLoss() > 50 ? "[M.getFireLoss()]" : M.getFireLoss() + var/BR = M.getBruteLoss() > 50 ? "[M.getBruteLoss()]" : M.getBruteLoss() if(M.status_flags & FAKEDEATH) - user.show_message(text("\blue Analyzing Results for []:\n\t Overall Status: []", M, "dead"), 1) - user.show_message(text("\blue \t Damage Specifics: []-[]-[]-[]", fake_oxy < 50 ? "\red [fake_oxy]" : fake_oxy , M.getToxLoss() > 50 ? "\red [M.getToxLoss()]" : M.getToxLoss(), M.getFireLoss() > 50 ? "\red[M.getFireLoss()]" : M.getFireLoss(), M.getBruteLoss() > 50 ? "\red[M.getBruteLoss()]" : M.getBruteLoss()), 1) + OX = fake_oxy > 50 ? "[fake_oxy]" : fake_oxy + user.show_message("\blue Analyzing Results for [M]:\n\t Overall Status: dead") else - user.show_message(text("\blue Analyzing Results for []:\n\t Overall Status: []", M, (M.stat > 1 ? "dead" : text("[]% healthy", M.health - M.halloss))), 1) - user.show_message(text("\blue \t Damage Specifics: []-[]-[]-[]", M.getOxyLoss() > 50 ? "\red [M.getOxyLoss()]" : M.getOxyLoss(), M.getToxLoss() > 50 ? "\red [M.getToxLoss()]" : M.getToxLoss(), M.getFireLoss() > 50 ? "\red[M.getFireLoss()]" : M.getFireLoss(), M.getBruteLoss() > 50 ? "\red[M.getBruteLoss()]" : M.getBruteLoss()), 1) - user.show_message("\blue Key: Suffocation/Toxin/Burns/Brute", 1) + user.show_message("\blue Analyzing Results for [M]:\n\t Overall Status: [M.stat > 1 ? "dead" : "[M.health - M.halloss]% healthy"]") + user.show_message("\t Key: Suffocation/Toxin/Burns/Brute", 1) + user.show_message("\t Damage Specifics: [OX] - [TX] - [BU] - [BR]") user.show_message("\blue Body Temperature: [M.bodytemperature-T0C]°C ([M.bodytemperature*1.8-459.67]°F)", 1) if(M.tod && (M.stat == DEAD || (M.status_flags & FAKEDEATH))) user.show_message("\blue Time of Death: [M.tod]") @@ -109,27 +112,34 @@ MASS SPECTROMETER user.show_message("\blue Localized Damage, Brute/Burn:",1) if(length(damaged)>0) for(var/datum/organ/external/org in damaged) - user.show_message(text("\blue \t []: []\blue-[][]",capitalize(org.getDisplayName()),(org.brute_dam > 0)?"\red [org.brute_dam]":0,(org.burn_dam > 0)?"\red [org.burn_dam]":0, (org.status & ORGAN_BLEEDING)?"\red (bleeding)":""),1) + user.show_message(text("\blue \t []: [][]\blue - []", \ + capitalize(org.getDisplayName()), \ + (org.brute_dam > 0) ? "\red [org.brute_dam]" :0, \ + (org.status & ORGAN_BLEEDING)?"\red \[Bleeding\]":"\t", \ + (org.burn_dam > 0) ? "[org.burn_dam]" :0),1) else user.show_message("\blue \t Limbs are OK.",1) + OX = M.getOxyLoss() > 50 ? "Severe oxygen deprivation detected" : "Subject bloodstream oxygen level normal" + TX = M.getToxLoss() > 50 ? "Dangerous amount of toxins detected" : "Subject bloodstream toxin level minimal" + BU = M.getFireLoss() > 50 ? "Severe burn damage detected" : "Subject burn injury status O.K" + BR = M.getBruteLoss() > 50 ? "Severe anatomical damage detected" : "Subject brute-force injury status O.K" if(M.status_flags & FAKEDEATH) - user.show_message(text("\blue [] | [] | [] | []", fake_oxy > 50 ? "\red Severe oxygen deprivation detected\blue" : "Subject bloodstream oxygen level normal", M.getToxLoss() > 50 ? "\red Dangerous amount of toxins detected\blue" : "Subject bloodstream toxin level minimal", M.getFireLoss() > 50 ? "\red Severe burn damage detected\blue" : "Subject burn injury status O.K", M.getBruteLoss() > 50 ? "\red Severe anatomical damage detected\blue" : "Subject brute-force injury status O.K"), 1) - else - user.show_message(text("\blue [] | [] | [] | []", M.getOxyLoss() > 50 ? "\red Severe oxygen deprivation detected\blue" : "Subject bloodstream oxygen level normal", M.getToxLoss() > 50 ? "\red Dangerous amount of toxins detected\blue" : "Subject bloodstream toxin level minimal", M.getFireLoss() > 50 ? "\red Severe burn damage detected\blue" : "Subject burn injury status O.K", M.getBruteLoss() > 50 ? "\red Severe anatomical damage detected\blue" : "Subject brute-force injury status O.K"), 1) + OX = fake_oxy > 50 ? "\red Severe oxygen deprivation detected\blue" : "Subject bloodstream oxygen level normal" + user.show_message("[OX] | [TX] | [BU] | [BR]") if (M.getCloneLoss()) - user.show_message(text("\red Subject appears to have been imperfectly cloned."), 1) + user.show_message("\red Subject appears to have been imperfectly cloned.") for(var/datum/disease/D in M.viruses) if(!D.hidden[SCANNER]) user.show_message(text("\red Warning: [D.form] Detected\nName: [D.name].\nType: [D.spread].\nStage: [D.stage]/[D.max_stages].\nPossible Cure: [D.cure]")) if (M.reagents && M.reagents.get_reagent_amount("inaprovaline")) - user.show_message(text("\blue Bloodstream Analysis located [M.reagents:get_reagent_amount("inaprovaline")] units of rejuvenation chemicals."), 1) + user.show_message("\blue Bloodstream Analysis located [M.reagents:get_reagent_amount("inaprovaline")] units of rejuvenation chemicals.") if (M.getBrainLoss() >= 100 || istype(M, /mob/living/carbon/human) && M:brain_op_stage == 4.0) - user.show_message(text("\red Subject is brain dead."), 1) + user.show_message("\red Subject is brain dead.") else if (M.getBrainLoss() >= 60) - user.show_message(text("\red Severe brain damage detected. Subject likely to have mental retardation."), 1) + user.show_message("\red Severe brain damage detected. Subject likely to have mental retardation.") else if (M.getBrainLoss() >= 10) - user.show_message(text("\red Significant brain damage detected. Subject may have had a concussion."), 1) + user.show_message("\red Significant brain damage detected. Subject may have had a concussion.") if(ishuman(M)) var/mob/living/carbon/human/H = M for(var/name in H.organs_by_name) @@ -143,7 +153,6 @@ MASS SPECTROMETER if(e.status & ORGAN_BROKEN) user.show_message(text("\red Bone fractures detected. Advanced scanner required for location."), 1) break - if(ishuman(M)) if(M:vessel) var/blood_volume = round(M:vessel.get_reagent_amount("blood")) var/blood_percent = blood_volume / 560 From 0caf4673ce516be9898a5ac4169f2edee1e53a6c Mon Sep 17 00:00:00 2001 From: Chinsky Date: Tue, 13 Nov 2012 02:05:13 +0400 Subject: [PATCH 5/9] Fix for sleep runtime. Fix for internals setting message. --- code/modules/mob/living/carbon/human/inventory.dm | 2 +- code/modules/mob/living/carbon/human/life.dm | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/code/modules/mob/living/carbon/human/inventory.dm b/code/modules/mob/living/carbon/human/inventory.dm index 85088beea25..e220b673744 100644 --- a/code/modules/mob/living/carbon/human/inventory.dm +++ b/code/modules/mob/living/carbon/human/inventory.dm @@ -587,7 +587,7 @@ It can still be worn/put on as normal. target.internal = target.belt if (target.internal) for(var/mob/M in viewers(target, 1)) - M.show_message("[source] is now running on internals.", 1) + M.show_message("[target] is now running on internals.", 1) target.internal.add_fingerprint(source) if (target.internals) target.internals.icon_state = "internal1" diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm index 13c9ae5a553..3e5a410b118 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -1078,8 +1078,9 @@ AND YOU */ else if(sleeping) handle_dreams() adjustHalLoss(-5) - if(mind.active || immune_to_ssd) - sleeping = max(sleeping-1, 0) + if (mind) + if(mind.active || immune_to_ssd) + sleeping = max(sleeping-1, 0) blinded = 1 stat = UNCONSCIOUS if( prob(10) && health && !hal_crit ) From 94b54d1cef57169a48a99e2cf9288699a1918d42 Mon Sep 17 00:00:00 2001 From: Chinsky Date: Tue, 13 Nov 2012 03:42:40 +0400 Subject: [PATCH 6/9] Fix for laughing gas leaks in surgery. Humans breath out same gas mix datum they breathed in. Works fine because in processing oxygen and CO2 levels in mix are adjusted. But trace gases remained untouched. So sedated patient just breathed out N20 at surgeon. --- code/modules/mob/living/carbon/human/life.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm index 3e5a410b118..2e47a93b71e 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -633,6 +633,7 @@ else if(SA_pp > 0.01) // There is sleeping gas in their lungs, but only a little, so give them a bit of a warning if(prob(20)) spawn(0) emote(pick("giggle", "laugh")) + SA.moles = 0 if( (abs(310.15 - breath.temperature) > 50) && !(COLD_RESISTANCE in mutations)) // Hot air hurts :( if(breath.temperature < 260.15) From 02cd6e6b63545c8db555d27d8d91ba9a192ce496 Mon Sep 17 00:00:00 2001 From: Chinsky Date: Tue, 13 Nov 2012 04:05:08 +0400 Subject: [PATCH 7/9] Derp --- baystation12.dme | 1 + config/admins.txt | 2 +- config/moderators.txt | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/baystation12.dme b/baystation12.dme index f3ec846620e..35771b67a21 100644 --- a/baystation12.dme +++ b/baystation12.dme @@ -420,6 +420,7 @@ #include "code\game\gamemodes\intercept_report.dm" #include "code\game\gamemodes\objective.dm" #include "code\game\gamemodes\setupgame.dm" +#include "code\game\gamemodes\autotraitor\autotraitor.dm" #include "code\game\gamemodes\blob\blob.dm" #include "code\game\gamemodes\blob\blob_finish.dm" #include "code\game\gamemodes\blob\blob_report.dm" diff --git a/config/admins.txt b/config/admins.txt index 753cf8d825b..b1b06f0caec 100644 --- a/config/admins.txt +++ b/config/admins.txt @@ -1,4 +1,4 @@ -chinsky - Game Master +abi - Game Master arcalane - Game Admin asanadas - Game Admin bobbehluvspropane - Game Admin diff --git a/config/moderators.txt b/config/moderators.txt index d956734e232..d4874564c24 100644 --- a/config/moderators.txt +++ b/config/moderators.txt @@ -16,7 +16,7 @@ roaper searif sparklysheep themij -;chinsky +chinsky danny220 ; Why u no keep list in alphabetical order?! Lazies! Lazies! -Abi ; Imma best alphabetiser - Erthilo From df319a8536cb543d30d9b0a51b013673133d1f92 Mon Sep 17 00:00:00 2001 From: Chinsky Date: Tue, 13 Nov 2012 04:06:43 +0400 Subject: [PATCH 8/9] Dammit, Abi, why you Abi79 --- config/admins.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/admins.txt b/config/admins.txt index b1b06f0caec..4467f45452c 100644 --- a/config/admins.txt +++ b/config/admins.txt @@ -1,4 +1,4 @@ -abi - Game Master +abi79 - Game Master arcalane - Game Admin asanadas - Game Admin bobbehluvspropane - Game Admin From d5e8f90a9eabaca54de75d3db4745becf04cbd61 Mon Sep 17 00:00:00 2001 From: Chinsky Date: Tue, 13 Nov 2012 17:45:22 +0400 Subject: [PATCH 9/9] Made virus crate spawn with virus2 samples instead of old ones. --- code/datums/supplypacks.dm | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/code/datums/supplypacks.dm b/code/datums/supplypacks.dm index b90c547067c..fa5b43e69c4 100755 --- a/code/datums/supplypacks.dm +++ b/code/datums/supplypacks.dm @@ -272,16 +272,25 @@ /datum/supply_packs/virus name = "Virus crate" - contains = list(/obj/item/weapon/reagent_containers/glass/bottle/flu_virion, + contains = list(/obj/item/weapon/virusdish/random, + /obj/item/weapon/virusdish/random, + /obj/item/weapon/virusdish/random, + /obj/item/weapon/virusdish/random, + /obj/item/weapon/virusdish/random, + /obj/item/weapon/virusdish/random +/* VIRUS2 4LIFE + /obj/item/weapon/reagent_containers/glass/bottle/flu_virion, /obj/item/weapon/reagent_containers/glass/bottle/cold, /obj/item/weapon/reagent_containers/glass/bottle/fake_gbs, /obj/item/weapon/reagent_containers/glass/bottle/magnitis, -// /obj/item/weapon/reagent_containers/glass/bottle/wizarditis, worse than GBS if anything -// /obj/item/weapon/reagent_containers/glass/bottle/gbs, No. Just no. + /obj/item/weapon/reagent_containers/glass/bottle/wizarditis, worse than GBS if anything + /obj/item/weapon/reagent_containers/glass/bottle/gbs, No. Just no. /obj/item/weapon/reagent_containers/glass/bottle/pierrot_throat, /obj/item/weapon/reagent_containers/glass/bottle/brainrot, /obj/item/weapon/storage/syringes, - /obj/item/weapon/storage/beakerbox) + /obj/item/weapon/storage/beakerbox +*/ + ) cost = 20 containertype = /obj/structure/closet/crate/secure/weapon containername = "Virus crate"