From feef63741907820b52256847ef9fa32dd9f80e28 Mon Sep 17 00:00:00 2001 From: SkyMarshal Date: Sun, 19 Feb 2012 14:04:06 -0700 Subject: [PATCH 1/3] Delagged singularity. It will now grab and slow down any humans when it tries to drag them in, and tell them: "\red The singularity has you in it's gravitational pull! It's hard to break free!" And adds 20 to their movement delay (can be adjusted later) All the DNA superpowers work now. Readded fatness as sprite only, can only be triggered by admins (some people were complaining about it being unavailible for adminstoff, so now they get a taste of how bad the sprite is.) To trigger fatness, modify the "mutations" variable to a value of 32 --- code/defines/mob/mob.dm | 3 + code/game/atom_procs.dm | 2 +- code/game/dna.dm | 91 ++++++++++++++++--- code/game/objects/devices/geneanalyzer.dm | 3 +- code/game/objects/tables_racks.dm | 5 +- code/modules/admin/admin_verbs.dm | 1 + .../mob/living/carbon/alien/humanoid/life.dm | 2 +- code/modules/mob/living/carbon/human/human.dm | 41 +++++---- code/modules/mob/living/carbon/human/life.dm | 32 ++++--- code/modules/mob/living/living.dm | 2 +- code/modules/mob/mob_movement.dm | 1 + code/modules/power/singularity/singularity.dm | 23 +++-- code/setup.dm | 11 ++- 13 files changed, 158 insertions(+), 59 deletions(-) diff --git a/code/defines/mob/mob.dm b/code/defines/mob/mob.dm index 828db621342..d498b149e23 100644 --- a/code/defines/mob/mob.dm +++ b/code/defines/mob/mob.dm @@ -174,6 +174,7 @@ var/radiation = 0.0//Carbon var/mutations = 0//Carbon + var/mutations2 = 0//Carbon //telekinesis = 1 //firemut = 2 //xray = 4 @@ -251,6 +252,8 @@ the mob is also allowed to move without any sort of restriction. For instance, i var/list/atom/hallucinations = list() var/halloss = 0 var/hallucination = 0 +//Singularity wants you! + var/grav_delay = 0 /mob/proc/contract_disease(var/datum/disease/virus, var/skip_this = 0, var/force_species_check=1) // world << "Contract_disease called by [src] with virus [virus]" diff --git a/code/game/atom_procs.dm b/code/game/atom_procs.dm index 411a5e19c22..99498f7e924 100644 --- a/code/game/atom_procs.dm +++ b/code/game/atom_procs.dm @@ -85,7 +85,7 @@ return if (ishuman(M)) add_fibers(M) - if (M.mutations & mFingerprints) + if (M.mutations2 & mFingerprints) if(src.fingerprintslast != M.key) src.fingerprintshidden += "(Has no fingerprints) Real name: [M.real_name], Key: [M.key]" src.fingerprintslast = M.key diff --git a/code/game/dna.dm b/code/game/dna.dm index 38a15fbf1d7..771c1d1409f 100644 --- a/code/game/dna.dm +++ b/code/game/dna.dm @@ -9,10 +9,74 @@ var/original_name = "Unknown" var/b_type = "A+" -/datum/dna/proc/check_integrity() - //Lazy. - if(length(uni_identity) != 39) uni_identity = "00600200A00E0110148FC01300B0095BD7FD3F4" - if(length(struc_enzymes)!= 81) struc_enzymes = "43359156756131E13763334D1C369012032164D4FE4CD61544B6C03F251B6C60A42821D26BA3B02D6" +/datum/dna/proc/check_integrity(var/mob/living/carbon/human/character) + if(character) + if(length(uni_identity) != 39) + //Lazy. + var/temp + var/hair + var/beard + + // determine DNA fragment from hairstyle + // :wtc: + + var/list/styles = typesof(/datum/sprite_accessory/hair) - /datum/sprite_accessory/hair + var/hrange = round(4095 / styles.len) + + var/style = styles.Find(character.hair_style.type) + if(style) + hair = style * hrange - rand(1,hrange-1) + else + hair = 0 + + // Beard dna code - mostly copypasted from hair code to allow for more dynamic facial hair style additions + var/list/face_styles = typesof(/datum/sprite_accessory/facial_hair) - /datum/sprite_accessory/facial_hair + var/f_hrange = round(4095 / face_styles.len) + + var/f_style = face_styles.Find(character.facial_hair_style.type) + if(f_style) + beard = f_style * f_hrange - rand(1,f_hrange-1) + else + beard = 0 + + temp = add_zero2(num2hex((character.r_hair),1), 3) + temp += add_zero2(num2hex((character.b_hair),1), 3) + temp += add_zero2(num2hex((character.g_hair),1), 3) + temp += add_zero2(num2hex((character.r_facial),1), 3) + temp += add_zero2(num2hex((character.b_facial),1), 3) + temp += add_zero2(num2hex((character.g_facial),1), 3) + temp += add_zero2(num2hex(((character.s_tone + 220) * 16),1), 3) + temp += add_zero2(num2hex((character.r_eyes),1), 3) + temp += add_zero2(num2hex((character.g_eyes),1), 3) + temp += add_zero2(num2hex((character.b_eyes),1), 3) + + var/gender + + if (character.gender == MALE) + gender = add_zero2(num2hex((rand(1,(2050+BLOCKADD))),1), 3) + else + gender = add_zero2(num2hex((rand((2051+BLOCKADD),4094)),1), 3) + + temp += gender + temp += add_zero2(num2hex((beard),1), 3) + temp += add_zero2(num2hex((hair),1), 3) + + uni_identity = temp + if(length(struc_enzymes)!= 81) + var/mutstring = "" + for(var/i = 1, i <= 26, i++) + mutstring += add_zero2(num2hex(rand(1,1024)),3) + + struc_enzymes = mutstring + if(length(unique_enzymes) != 32) + unique_enzymes = md5(character.real_name) + if(original_name == "Unknown") + original_name = character.real_name + else + if(length(uni_identity) != 39) uni_identity = "00600200A00E0110148FC01300B0095BD7FD3F4" + if(length(struc_enzymes)!= 81) struc_enzymes = "43359156756131E13763334D1C369012032164D4FE4CD61544B6C03F251B6C60A42821D26BA3B02D6" + +// reg_dna[unique_enzymes] = character.real_name /datum/dna/proc/ready_dna(mob/living/carbon/human/character) @@ -291,10 +355,12 @@ mRemotetalk =(1<<13) mMorph =(1<<14) mBlend =(1<<15) - mHallucination =(1<<16) - mFingerprints =(1<<17) - mShock =(1<<18) - mSmallsize =(1<<19) + + mutations2: + mHallucination =(1<<0) + mFingerprints =(1<<1) + mShock =(1<<2) + mSmallsize =(1<<3) */ //disabilities @@ -311,6 +377,7 @@ M.disabilities = 0 M.mutations = 0 + M.mutations2 = 0 M.see_in_dark = 2 M.see_invisible = 0 @@ -345,20 +412,20 @@ M << "\blue You feel alone" if(ismuton(HALLUCINATIONBLOCK,M)) if(prob(50)) - M.mutations |= mHallucination + M.mutations2 |= mHallucination M << "\blue Your mind says 'Hello'" if(ismuton(NOPRINTSBLOCK,M)) if(prob(50)) - M.mutations |= mFingerprints + M.mutations2 |= mFingerprints M << "\blue Your fingers feel numb" if(ismuton(SHOCKIMMUNITYBLOCK,M)) if(prob(50)) - M.mutations |= mShock + M.mutations2 |= mShock M << "\blue You feel strange" if(ismuton(SMALLSIZEBLOCK,M)) if(prob(50)) M << "\blue Your skin feels rubbery" - M.mutations |= mSmallsize + M.mutations2 |= mSmallsize diff --git a/code/game/objects/devices/geneanalyzer.dm b/code/game/objects/devices/geneanalyzer.dm index 467e93586a3..fd63380955d 100644 --- a/code/game/objects/devices/geneanalyzer.dm +++ b/code/game/objects/devices/geneanalyzer.dm @@ -18,9 +18,10 @@ user.show_message(text("\blue \t Deaf: [isblockon(getblock(M.dna.struc_enzymes, DEAFBLOCK,3),DEAFBLOCK) ? "Yes" : "No"]"), 1) user.show_message(text("\blue \t Requires Glasses: [isblockon(getblock(M.dna.struc_enzymes, GLASSESBLOCK,3),GLASSESBLOCK) ? "Yes" : "No"]"), 1) +/* var/unknow = 0 var/list/unknowns = list(HULKBLOCK,TELEBLOCK,FIREBLOCK,XRAYBLOCK,NOBREATHBLOCK,REMOTEVIEWBLOCK,REGENERATEBLOCK,INCREASERUNBLOCK,REMOTETALKBLOCK,MORPHBLOCK,BLENDBLOCK,HALLUCINATIONBLOCK,NOPRINTSBLOCK,SHOCKIMMUNITYBLOCK,SMALLSIZEBLOCK) for(var/unknown in unknowns) if(isblockon(getblock(M.dna.struc_enzymes, unknown,3),unknown)) unknow += 1 - user.show_message(text("\blue \t Unknown Anomalies: [unknow]")) \ No newline at end of file + user.show_message(text("\blue \t Unknown Anomalies: [unknow]"))*/ \ No newline at end of file diff --git a/code/game/objects/tables_racks.dm b/code/game/objects/tables_racks.dm index 945752a3c5d..1e8d879c5eb 100644 --- a/code/game/objects/tables_racks.dm +++ b/code/game/objects/tables_racks.dm @@ -92,13 +92,16 @@ TABLE AND RACK OBJECT INTERATIONS new /obj/item/weapon/table_parts( src.loc ) src.density = 0 del(src) - if (usr.mutations & mSmallsize) +/* if (user.mutations2 & mSmallsize) step(user, get_dir(user, src)) if (user.loc == src.loc) user.layer = TURF_LAYER + user.update_clothing() for(var/mob/M in viewers(user, null)) M.show_message("[user] hides under the table!", 1) //Foreach goto(69) + */ +//Googol never tested this shit. return diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm index 25542971d90..f2a9d4a073d 100644 --- a/code/modules/admin/admin_verbs.dm +++ b/code/modules/admin/admin_verbs.dm @@ -867,6 +867,7 @@ M.update_body() M.update_face() M.update_clothing() + M.check_dna(M) /client/proc/radioalert() diff --git a/code/modules/mob/living/carbon/alien/humanoid/life.dm b/code/modules/mob/living/carbon/alien/humanoid/life.dm index 6228ec167a0..9d1f29246f5 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/life.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/life.dm @@ -549,7 +549,7 @@ if (src.stat != 2) if (src.machine) if (!( src.machine.check_eye(src) )) - src.reset_view(null) + reset_view(null) else if(!client.adminobs) reset_view(null) diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 65275acb8a9..e58e97d1ae0 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -775,8 +775,8 @@ // lol var/fat = "" - /*if (mutations & FAT) - fat = "fat"*/ + if (mutations & FAT) + fat = "fat" if (mutations & HULK) overlays += image("icon" = 'genetics.dmi', "icon_state" = "hulk[fat][!lying ? "_s" : "_l"]") @@ -879,10 +879,10 @@ var/t1 = w_uniform.color if (!t1) t1 = icon_state - /*if (mutations & FAT) + if (mutations & FAT) overlays += image("icon" = 'uniform_fat.dmi', "icon_state" = "[t1][!lying ? "_s" : "_l"]", "layer" = MOB_LAYER) - else*/ - overlays += image("icon" = 'uniform.dmi', "icon_state" = text("[][]",t1, (!(lying) ? "_s" : "_l")), "layer" = MOB_LAYER) + else + overlays += image("icon" = 'uniform.dmi', "icon_state" = text("[][]",t1, (!(lying) ? "_s" : "_l")), "layer" = MOB_LAYER) if (w_uniform.blood_DNA.len) var/icon/stain_icon = icon('blood.dmi', "uniformblood[!lying ? "" : "2"]") overlays += image("icon" = stain_icon, "layer" = MOB_LAYER) @@ -1289,7 +1289,7 @@ lying_icon = new /icon('human.dmi', "torso_l") var/husk = (mutations & HUSK) - //var/obese = (mutations & FAT) + var/obese = (mutations & FAT) stand_icon.Blend(new /icon('human.dmi', "chest_[g]_s"), ICON_OVERLAY) lying_icon.Blend(new /icon('human.dmi', "chest_[g]_l"), ICON_OVERLAY) @@ -1326,9 +1326,9 @@ stand_icon.Blend(husk_s, ICON_OVERLAY) lying_icon.Blend(husk_l, ICON_OVERLAY) - /*else if(obese) + else if(obese) stand_icon.Blend(new /icon('human.dmi', "fatbody_s"), ICON_OVERLAY) - lying_icon.Blend(new /icon('human.dmi', "fatbody_l"), ICON_OVERLAY)*/ + lying_icon.Blend(new /icon('human.dmi', "fatbody_l"), ICON_OVERLAY) // Skin tone if (s_tone >= 0) @@ -2524,6 +2524,7 @@ It can still be worn/put on as normal. update_body() update_face() update_clothing() + check_dna() for(var/mob/M in view()) M.show_message("[src.name] just morphed!") @@ -2543,35 +2544,43 @@ It can still be worn/put on as normal. if(target.mutations & mRemotetalk) target.show_message("\blue You hear [src.real_name]'s voice: [say]") else - target.show_message("\blue You hear a voice: [say]") + target.show_message("\blue You hear a voice that seems to echo around the room: [say]") + target << "\red This ain't an admin message, this is IC. Act like it. If someone's abusing it, pretending to be us, adminhelp it." usr.show_message("\blue You project your mind into [target.real_name]: [say]") for(var/mob/dead/observer/G in world) G.show_message("Telepathic message from [src] to [target]: [say]") +/mob/living/carbon/human + var/mob/remoteobserve /mob/living/carbon/human/proc/remoteobserve() set name = "Remote View" set category = "Superpower" if(!(src.mutations & mRemote)) - client.eye = client.mob + reset_view(0) + remoteobserve = null src.verbs -= /mob/living/carbon/human/proc/remoteobserve return if(client.eye != client.mob) - client.eye = client.mob + reset_view(0) + remoteobserve = null return var/list/mob/creatures = list() for(var/mob/living/carbon/h in world) creatures += h - client.perspective = EYE_PERSPECTIVE - - var/mob/target = input ("Who do you want to project your mind to ?") as mob in creatures if (target) - client.eye = target + reset_view(target) + remoteobserve = target else - client.eye = client.mob + reset_view(0) + remoteobserve = null + +/mob/living/carbon/human/proc/check_dna() + dna.check_integrity(src) + return \ No newline at end of file diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm index 39944cb0f95..52a8cb07aa3 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -130,6 +130,10 @@ var/pr = 50 if(prob(pr)) adjustToxLoss(1) + else + if(!lying) + lying = 1 //Seriously, stay down :x + update_clothing() clamp_values() @@ -154,7 +158,7 @@ handle_disabilities() - if (mutations & mHallucination) + if(mutations2 & mHallucination) hallucination = 100 halloss = 0 @@ -175,13 +179,12 @@ for(var/atom/a in hallucinations) del a - - if(mutations & mSmallsize) - if(!(flags & PASSTABLE)) - flags |= PASSTABLE + if(mutations2 & mSmallsize) + if(!(pass_flags & PASSTABLE)) + pass_flags |= PASSTABLE else - if(flags & PASSTABLE) - flags &= ~PASSTABLE + if(pass_flags & PASSTABLE) + pass_flags &= ~PASSTABLE @@ -209,7 +212,7 @@ src.verbs += /mob/living/carbon/human/proc/remoteobserve else if(!(mutations & mRemote)) - src.verbs += /mob/living/carbon/human/proc/remoteobserve + src.verbs -= /mob/living/carbon/human/proc/remoteobserve if(!(/mob/living/carbon/human/proc/remotesay in src.verbs)) if(mutations & mRemotetalk) @@ -250,8 +253,8 @@ pixel_x = old_x pixel_y = old_y if (disabilities & 16) - if (prob(20))//Instant Chad Ore! - stuttering = max(10, stuttering) + if (prob(40))//Instant Chad Ore! + stuttering = max(5, stuttering) if (brainloss >= 60 && stat != 2) if (prob(7)) @@ -312,6 +315,8 @@ emote("gasp") updatehealth() + //As close as I could find to where to put it + grav_delay = max(grav_delay-3,0) breathe() @@ -1147,9 +1152,10 @@ if (machine) if (!( machine.check_eye(src) )) reset_view(null) - else - if(!client.adminobs) - reset_view(null) + else if(!(mutations & mRemote) && !client.adminobs) + reset_view(null) + if(remoteobserve) + remoteobserve = null return 1 diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index 861541ac003..32b88c92135 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -17,7 +17,7 @@ //sort of a legacy burn method for /electrocute, /shock, and the e_chair /mob/living/proc/burn_skin(burn_amount) if(istype(src, /mob/living/carbon/human)) - if(src.mutations & mShock) + if(src.mutations2 & mShock) return 0 //world << "DEBUG: burn_skin(), mutations=[mutations]" if (src.mutations & COLD_RESISTANCE) //fireproof diff --git a/code/modules/mob/mob_movement.dm b/code/modules/mob/mob_movement.dm index bf083644a13..098ca75e562 100644 --- a/code/modules/mob/mob_movement.dm +++ b/code/modules/mob/mob_movement.dm @@ -185,6 +185,7 @@ // move_delay += mob.organStructure.legs.moveWalkDelay move_delay += 5 move_delay += mob.movement_delay() + move_delay += mob.grav_delay //We are now going to move moving = 1 diff --git a/code/modules/power/singularity/singularity.dm b/code/modules/power/singularity/singularity.dm index 50035fd7608..dc23896f9eb 100644 --- a/code/modules/power/singularity/singularity.dm +++ b/code/modules/power/singularity/singularity.dm @@ -2,7 +2,6 @@ var/global/list/uneatable = list( /turf/space, /obj/effect, /obj/effect/overlay, - /obj/effect/decal/cleanable, /obj/effect/rune ) @@ -212,15 +211,19 @@ var/global/list/uneatable = list( consume(X) for(var/atom/movable/X in orange(grav_pull,src)) if(is_type_in_list(X, uneatable)) continue - if(((X) &&(!X:anchored) && (!istype(X,/mob/living/carbon/human)))|| (src.current_size >= 9)) - step_towards(X,src) + if((((X) && (!X:anchored)) || (src.current_size >= 9)) && (!istype(X,/mob/living/carbon/human))) + spawn(rand(0,15)) + step_towards(X,src) else if(istype(X,/mob/living/carbon/human)) var/mob/living/carbon/human/H = X - if(istype(H.shoes,/obj/item/clothing/shoes/magboots)) + H << "\red The singularity has you in it's gravitational pull! It's hard to break free!" + H.grav_delay = 20 //No running this time! + if(istype(H.shoes,/obj/item/clothing/shoes/magboots) && !(src.current_size >= 9)) var/obj/item/clothing/shoes/magboots/M = H.shoes if(M.magpulse) continue - step_towards(H,src) + spawn(rand(0,15)) + step_towards(H,src) if(defer_powernet_rebuild != 2) defer_powernet_rebuild = 0 return @@ -236,7 +239,8 @@ var/global/list/uneatable = list( gain = 100 spawn() A:gib() - sleep(1) +//Sleep being called in process() :| +// sleep(1) else if(istype(A,/obj/)) if (istype(A,/obj/item/weapon/storage/backpack/holding)) @@ -258,8 +262,8 @@ var/global/list/uneatable = list( O.y = 2 O.z = 2 else - A:ex_act(1.0) - if(A) del(A) + spawn(rand(0,10)) //Spreading shit out + del(A) gain = 2 else if(isturf(A)) var/turf/T = A @@ -271,6 +275,9 @@ var/global/list/uneatable = list( src.consume(O) A:ReplaceWithSpace() gain = 2 + else + spawn(rand(0,10)) //Spreading shit out + del(A) src.energy += gain return diff --git a/code/setup.dm b/code/setup.dm index 2269e987090..5e7369fbb9a 100644 --- a/code/setup.dm +++ b/code/setup.dm @@ -155,7 +155,7 @@ var/const XRAY =(1<<2) HULK =(1<<3) CLUMSY =(1<<4) - //FAT =(1<<5) + FAT =(1<<5) HUSK =(1<<6) LASER =(1<<7) HEAL =(1<<8) @@ -166,10 +166,11 @@ var/const mRemotetalk =(1<<13) mMorph =(1<<14) mBlend =(1<<15) - mHallucination =(1<<16) - mFingerprints =(1<<17) - mShock =(1<<18) - mSmallsize =(1<<19) +//the "&" operator cannot go higher than (2^16)-1 + mHallucination =(1<<0) + mFingerprints =(1<<1) + mShock =(1<<2) + mSmallsize =(1<<3) //mob/var/stat things var/const From 54e21423409b3c1e8924b27f6b9f1ef92fedbf5a Mon Sep 17 00:00:00 2001 From: SkyMarshal Date: Sun, 19 Feb 2012 18:36:49 -0700 Subject: [PATCH 2/3] Switched over to oldcode stuttering. --- code/modules/mob/living/carbon/human/life.dm | 4 ++-- code/modules/mob/living/carbon/human/whisper.dm | 2 +- code/modules/mob/living/say.dm | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm index 52a8cb07aa3..cd3f96c2d0e 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -253,8 +253,8 @@ pixel_x = old_x pixel_y = old_y if (disabilities & 16) - if (prob(40))//Instant Chad Ore! - stuttering = max(5, stuttering) + if (prob(10))//Instant Chad Ore! + stuttering = max(10, stuttering) if (brainloss >= 60 && stat != 2) if (prob(7)) diff --git a/code/modules/mob/living/carbon/human/whisper.dm b/code/modules/mob/living/carbon/human/whisper.dm index e85dac790ca..e681e11325c 100644 --- a/code/modules/mob/living/carbon/human/whisper.dm +++ b/code/modules/mob/living/carbon/human/whisper.dm @@ -53,7 +53,7 @@ message = capitalize(message) if (src.stuttering) - message = stutter(message) + message = NewStutter(message,stunned) if (src.slurring) message = slur(message) diff --git a/code/modules/mob/living/say.dm b/code/modules/mob/living/say.dm index bc667c7395e..8af1a2bd5fb 100644 --- a/code/modules/mob/living/say.dm +++ b/code/modules/mob/living/say.dm @@ -157,10 +157,10 @@ message = uppertext(message) message += "[stutter(pick("!", "!!", "!!!"))]" if(!stuttering && prob(15)) - message = stutter(message) + message = NewStutter(message,stunned) if (stuttering) - message = stutter(message) + message = NewStutter(message,stunned) if (slurring) message = slur(message) From 37f39de8611e34e84706e5e80820ab7ed0dac06c Mon Sep 17 00:00:00 2001 From: SkyMarshal Date: Sun, 19 Feb 2012 21:09:11 -0700 Subject: [PATCH 3/3] CentCom doors are less hackable. Clamped values on the regeneration superpower Moved detective work to a modules subfolder --- baystation12.dme | 5 +++-- code/defines/obj/machinery.dm | 10 ---------- code/game/machinery/doors/airlock.dm | 17 ++++++++++++++++- .../DetectiveWork}/detective_work.dm | 0 .../DetectiveWork}/evidence.dm | 0 code/modules/mob/living/carbon/human/life.dm | 15 +++++++-------- code/modules/mob/living/silicon/pai/software.dm | 2 +- 7 files changed, 27 insertions(+), 22 deletions(-) rename code/{WorkInProgress => modules/DetectiveWork}/detective_work.dm (100%) rename code/{WorkInProgress/SkyMarshal => modules/DetectiveWork}/evidence.dm (100%) diff --git a/baystation12.dme b/baystation12.dme index bff4edbeca1..397b7cde37d 100644 --- a/baystation12.dme +++ b/baystation12.dme @@ -94,6 +94,7 @@ #define FILE_DIR "code/modules/clothing/uniforms" #define FILE_DIR "code/modules/critters" #define FILE_DIR "code/modules/critters/hivebots" +#define FILE_DIR "code/modules/DetectiveWork" #define FILE_DIR "code/modules/flufftext" #define FILE_DIR "code/modules/food" #define FILE_DIR "code/modules/mining" @@ -802,6 +803,8 @@ #include "code\modules\critters\critter_defenses.dm" #include "code\modules\critters\critters.dm" #include "code\modules\critters\hivebots\hivebot.dm" +#include "code\modules\DetectiveWork\detective_work.dm" +#include "code\modules\DetectiveWork\evidence.dm" #include "code\modules\flufftext\Dreaming.dm" #include "code\modules\flufftext\Hallucination.dm" #include "code\modules\flufftext\TextFilters.dm" @@ -1022,7 +1025,6 @@ #include "code\modules\security levels\security levels.dm" #include "code\WorkInProgress\AI_Visibility.dm" #include "code\WorkInProgress\buildmode.dm" -#include "code\WorkInProgress\detective_work.dm" #include "code\WorkInProgress\explosion_particles.dm" #include "code\WorkInProgress\Cael_Aislinn\Tajara\examine.dm" #include "code\WorkInProgress\Cael_Aislinn\Tajara\tajaran.dm" @@ -1041,7 +1043,6 @@ #include "code\WorkInProgress\Ported\ZeroPoint\LaserComputer.dm" #include "code\WorkInProgress\Ported\ZeroPoint\SuperMatter.dm" #include "code\WorkInProgress\SkyMarshal\coatrack.dm" -#include "code\WorkInProgress\SkyMarshal\evidence.dm" #include "code\WorkInProgress\SkyMarshal\traitoritems.dm" #include "code\WorkInProgress\SkyMarshal\wardrobes.dm" #include "code\WorkInProgress\Tastyfish\Eliza.dm" diff --git a/code/defines/obj/machinery.dm b/code/defines/obj/machinery.dm index 5365249ca45..bb45e2ab079 100644 --- a/code/defines/obj/machinery.dm +++ b/code/defines/obj/machinery.dm @@ -454,13 +454,3 @@ h_r = 245.0 h_g = 245.0 h_b = 245.0 - -/obj/machinery/coatrack - name = "coat rack" - desc = "A fancy stand for the Detective's coat and hat." - icon_state = "coatrack0" - icon = 'coatrack.dmi' - density = 1 - anchored = 1.0 - var/obj/item/clothing/suit/storage/det_suit/coat - var/obj/item/clothing/head/det_hat/hat diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm index fe5606c3693..c618fc3a5e9 100644 --- a/code/game/machinery/doors/airlock.dm +++ b/code/game/machinery/doors/airlock.dm @@ -1556,8 +1556,11 @@ About the new airlock wires panel: name = "CentCom Secure Airlock" desc = "I hope you have insulated gloves...." icon = 'Doorhatchele.dmi' + var/list/mob/morons pulse(var/wireColor) + if(prob(25)) + usr.ex_act(rand(1,3)) if (src.secondsElectrified==0) src.secondsElectrified = 10 spawn(10) @@ -1637,6 +1640,8 @@ About the new airlock wires panel: robotPlayer.triggerUnmarkedAlarm("AirlockHacking", src.loc.loc) cut(var/wireColor) + if(prob(25)) + usr.ex_act(rand(1,3)) if (src.secondsElectrified==0) src.secondsElectrified = 30 spawn(10) @@ -1693,4 +1698,14 @@ About the new airlock wires panel: aiPlayer.triggerUnmarkedAlarm("AirlockHacking", src.loc.loc) for (var/mob/living/silicon/robot/robotPlayer in world) if (robotPlayer.stat != 2) - robotPlayer.triggerUnmarkedAlarm("AirlockHacking", src.loc.loc) \ No newline at end of file + robotPlayer.triggerUnmarkedAlarm("AirlockHacking", src.loc.loc) + + attack_ai(mob/user as mob, obj/item/device/hacktool/C) + if(!(user in morons)) + user << "\red Do that again, and you will die horribly." + if(prob(50)) + morons.Add(user) + else + user << "\red You were warned..." + world << "\red [user.name] has been found attempting to hack a CentCom Secure Door via AI/Hacktool. Better luck next time." + user.ex_act(1) \ No newline at end of file diff --git a/code/WorkInProgress/detective_work.dm b/code/modules/DetectiveWork/detective_work.dm similarity index 100% rename from code/WorkInProgress/detective_work.dm rename to code/modules/DetectiveWork/detective_work.dm diff --git a/code/WorkInProgress/SkyMarshal/evidence.dm b/code/modules/DetectiveWork/evidence.dm similarity index 100% rename from code/WorkInProgress/SkyMarshal/evidence.dm rename to code/modules/DetectiveWork/evidence.dm diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm index cd3f96c2d0e..f3bb6616cfd 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -189,16 +189,15 @@ if (mutations & mRegen) - src.bruteloss -= 2 - src.fireloss -= 2 - src.oxyloss -= 2 - src.toxloss -= 2 + adjustBruteLoss(-2) + adjustToxLoss(-2) + adjustOxyLoss(-2) + adjustFireLoss(-2) for(var/datum/organ/external/org in organs) - org.brute_dam -= 2 - org.burn_dam -= 2 - org.brute_dam = max(org.brute_dam, 0) - org.burn_dam = max(org.burn_dam, 0) + org.brute_dam = max(org.brute_dam - 2, 0) + org.burn_dam = max(org.burn_dam - 2, 0) + updatehealth() if(!(/mob/living/carbon/human/proc/morph in src.verbs)) if(mutations & mMorph) diff --git a/code/modules/mob/living/silicon/pai/software.dm b/code/modules/mob/living/silicon/pai/software.dm index 15ef10914c6..f5d96760133 100644 --- a/code/modules/mob/living/silicon/pai/software.dm +++ b/code/modules/mob/living/silicon/pai/software.dm @@ -550,7 +550,7 @@ var/obj/machinery/machine = src.cable.machine dat += "Connected
" - if(!istype(machine, /obj/machinery/door)) + if(!istype(machine, /obj/machinery/door) || istype(machine, /obj/machinery/door/airlock/secure/centcom)) dat += "Connected device's firmware does not appear to be compatible with Airlock Jack protocols.
" return dat // var/obj/machinery/airlock/door = machine