From a240dc71bac338b650f6eab8a1596b8165d33454 Mon Sep 17 00:00:00 2001 From: caelaislinn Date: Mon, 25 Jun 2012 01:48:55 +1000 Subject: [PATCH] added acid_act() proc, works similarly to proc on luna code, fixed some anomaly bugs Signed-off-by: caelaislinn --- code/modules/chemical/Chemistry-Reagents.dm | 9 ++++ code/modules/research/artifact_analysis.dm | 4 +- code/modules/research/artifact_archaeo.dm | 47 +++++++++++++-------- code/modules/research/artifact_harvester.dm | 19 ++++----- 4 files changed, 49 insertions(+), 30 deletions(-) diff --git a/code/modules/chemical/Chemistry-Reagents.dm b/code/modules/chemical/Chemistry-Reagents.dm index d86f77622fe..753fafc8d94 100644 --- a/code/modules/chemical/Chemistry-Reagents.dm +++ b/code/modules/chemical/Chemistry-Reagents.dm @@ -702,6 +702,8 @@ datum reaction_mob(var/mob/living/M, var/method=TOUCH, var/volume) if(!istype(M, /mob/living)) return + if(M.acid_act(src)) + return if(method == TOUCH) if(istype(M, /mob/living/carbon/human)) if(M:wear_mask) @@ -734,6 +736,8 @@ datum M.take_organ_damage(min(15, volume * 2)) reaction_obj(var/obj/O, var/volume) + if(O.acid_act(src)) + return if(istype(O, /obj/effect/blob)) var/obj/effect/blob/B = O if(B.weakness == "acid") @@ -772,6 +776,9 @@ datum reaction_mob(var/mob/living/M, var/method=TOUCH, var/volume) if(!istype(M, /mob/living)) return //wooo more runtime fixin + //cael - added the option for things splashed with acid to handle it themselves (for xenoarch) + if(M.acid_act(src)) + return if(method == TOUCH) if(istype(M, /mob/living/carbon/human)) if(M:wear_mask) @@ -815,6 +822,8 @@ datum M.take_organ_damage(min(15, volume * 4)) reaction_obj(var/obj/O, var/volume) + if(O.acid_act(src)) + return if(istype(O, /obj/effect/blob)) var/obj/effect/blob/B = O if(B.weakness == "acid") diff --git a/code/modules/research/artifact_analysis.dm b/code/modules/research/artifact_analysis.dm index fea65bbb6d7..3089e9cd655 100644 --- a/code/modules/research/artifact_analysis.dm +++ b/code/modules/research/artifact_analysis.dm @@ -248,10 +248,10 @@ src.visible_message(message, message) use_power(500) else if (findarti > 1) - var/message = "[src] states, \"Cannot analyse. Too many artifacts on pad.\"" + var/message = "[src] states, \"Cannot analyse. Error isolating energy signature.\"" src.visible_message(message, message) else - var/message = "[src] states, \"Cannot analyse. No artifact found.\"" + var/message = "[src] states, \"Cannot analyse. No noteworthy energy signature isolated.\"" src.visible_message(message, message) if(href_list["upload"] && cur_id != "") diff --git a/code/modules/research/artifact_archaeo.dm b/code/modules/research/artifact_archaeo.dm index 68d16696a5d..9ad7179b705 100644 --- a/code/modules/research/artifact_archaeo.dm +++ b/code/modules/research/artifact_archaeo.dm @@ -31,24 +31,31 @@ else for(var/mob/M in viewers(world.view, user)) M.show_message("\blue A few sparks fly off the rock, but otherwise nothing else happens.",1) - else if(istype(W, /obj/item/weapon/reagent_containers/)) - var/obj/item/weapon/reagent_containers/R = W - if(R.reagents.has_reagent("pacid", 1)) - if(src.method) - if(inside) - var/obj/A = new src.inside(get_turf(src)) - for(var/mob/M in viewers(world.view, get_turf(src))) - M.show_message("\blue The rock fizzes away revealing a [A.name].",1) - else - for(var/mob/M in viewers(world.view, get_turf(src))) - M.show_message("\blue The rock fizzes away into nothing.",1) - del src - else - for(var/mob/M in viewers(world.view, get_turf(src))) - M.show_message("\blue The acid splashes harmlessly off the rock, nothing else interesting happens.",1) +/obj/item/weapon/ore/strangerock/acid_act(var/datum/reagent/R) + if(src.method) + if(inside) + var/obj/A = new src.inside(get_turf(src)) + for(var/mob/M in viewers(world.view, get_turf(src))) + M.show_message("\blue The rock fizzes away revealing a [A.name].",1) + else + for(var/mob/M in viewers(world.view, get_turf(src))) + M.show_message("\blue The rock fizzes away into nothing.",1) + del src + else + for(var/mob/M in viewers(world.view, get_turf(src))) + M.show_message("\blue The acid splashes harmlessly off the rock, nothing else interesting happens.",1) + return 1 +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +//this should probably be elsewhere, but oh well +/atom/proc/acid_act(var/datum/reagent/R) + return 0 +/*/obj/proc/acid_act(var/datum/reagent/R) + return 0 +/mob/proc/acid_act(var/datum/reagent/R) + return 0*/ //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// @@ -124,7 +131,11 @@ /obj/item/weapon/talkingcrystal/proc/catchMessage(var/msg, var/mob/source) var/list/seperate = list() - if(findtext(msg," ")==0) + if(findtext(msg,"((")) + return + else if(findtext(msg,"))")) + return + else if(findtext(msg," ")==0) return else /*var/l = lentext(msg) @@ -167,7 +178,7 @@ if(!word) text = "[pick(words)]" else - text = word + text = pick(stringsplit(word)) if(lentext(text)==1) text=uppertext(text) else @@ -207,7 +218,7 @@ listening|=M for(var/mob/M in listening) - M << "The crystal says, \"[msg]\"" + M << "The crystal reverberates, \blue\"[msg]\"" lastsaid = world.timeofday + rand(300,800) /obj/item/weapon/talkingcrystal/process() diff --git a/code/modules/research/artifact_harvester.dm b/code/modules/research/artifact_harvester.dm index 16c0a4e6ce5..b01bdbf4d0d 100644 --- a/code/modules/research/artifact_harvester.dm +++ b/code/modules/research/artifact_harvester.dm @@ -94,20 +94,19 @@ var/mundane = 0 for(var/obj/O in get_turf(owned_pad)) - mundane++ - break + if(!istype(O, /obj/machinery/artifact)) + mundane++ + break for(var/mob/O in get_turf(owned_pad)) - mundane++ - break + if(!istype(O, /obj/machinery/artifact)) + mundane++ + break - if(articount > 1) - var/message = "[src] states, \"Cannot harvest. Too many artifacts on pad.\"" - src.visible_message(message, message) - else if(mundane) - var/message = "[src] states, \"No noteworthy energy signatures detected.\"" + if(articount > 1 || mundane) + var/message = "[src] states, \"Cannot harvest. Error isolating energy signature.\"" src.visible_message(message, message) else if(!articount) - var/message = "[src] states, \"Cannot harvest. No artifact found.\"" + var/message = "[src] states, \"Cannot harvest. No noteworthy energy signature isolated.\"" src.visible_message(message, message) else if (cur_artifact.being_used) var/message = "[src] states, \"Cannot harvest. Too much interferance from energy scan.\""