From fdcbebab93a2efe3f3fc7e29186c84c706bc8ef8 Mon Sep 17 00:00:00 2001 From: Cael_Aislinn Date: Sun, 10 Mar 2013 18:21:45 +1000 Subject: [PATCH] tweaks and fixes to a bunch of artifact effects Signed-off-by: Cael_Aislinn --- .../unknown/effects/unknown_affect_cold.dm | 6 +-- .../effects/unknown_effect_badfeeling.dm | 2 +- .../effects/unknown_effect_dnaswitch.dm | 14 +++---- .../effects/unknown_effect_forcefield.dm | 38 ++++++++++--------- .../effects/unknown_effect_goodfeeling.dm | 2 +- .../unknown/effects/unknown_effect_heal.dm | 2 +- .../unknown/effects/unknown_effect_heat.dm | 2 +- .../unknown/effects/unknown_effect_hurt.dm | 3 +- .../unknown/effects/unknown_effect_radiate.dm | 18 +++++---- .../effects/unknown_effect_roboheal.dm | 2 +- 10 files changed, 46 insertions(+), 43 deletions(-) diff --git a/code/modules/research/xenoarchaeology/unknown/effects/unknown_affect_cold.dm b/code/modules/research/xenoarchaeology/unknown/effects/unknown_affect_cold.dm index f75d7005d3..fcdb163ac7 100644 --- a/code/modules/research/xenoarchaeology/unknown/effects/unknown_affect_cold.dm +++ b/code/modules/research/xenoarchaeology/unknown/effects/unknown_affect_cold.dm @@ -14,10 +14,10 @@ if(holder) var/datum/gas_mixture/env = holder.loc.return_air() if(env) - env.temperature -= rand(5,50) + env.temperature = max(env.temperature - rand(5,50), 0) /datum/artifact_effect/cold/DoEffectAura() if(holder) var/datum/gas_mixture/env = holder.loc.return_air() - if(env && env.temperature < target_temp) - env.temperature -= pick(0, 0, rand(), 1) + if(env && env.temperature > target_temp) + env.temperature -= pick(0, 0, 1) diff --git a/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_badfeeling.dm b/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_badfeeling.dm index 2847bbd488..2e57907b50 100644 --- a/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_badfeeling.dm +++ b/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_badfeeling.dm @@ -29,7 +29,7 @@ /datum/artifact_effect/badfeeling/DoEffectTouch(var/mob/user) if(user) if (istype(user, /mob/living/carbon/human)) - var/mob/living/carbon/human/H = holder + var/mob/living/carbon/human/H = user if(prob(50)) if(prob(75)) H << "[pick(drastic_messages)]" diff --git a/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_dnaswitch.dm b/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_dnaswitch.dm index fd8f6751b2..cff708b0c3 100644 --- a/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_dnaswitch.dm +++ b/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_dnaswitch.dm @@ -8,14 +8,14 @@ /datum/artifact_effect/dnaswitch/New() ..() if(effect == EFFECT_AURA) - severity = rand(1,10) + severity = rand(5,30) else - severity = rand(5,95) + severity = rand(25,95) /datum/artifact_effect/dnaswitch/DoEffectTouch(var/mob/toucher) var/weakness = GetAnomalySusceptibility(toucher) if(ishuman(toucher) && prob(weakness * 100)) - holder << pick("\green You feel a little different.",\ + toucher << pick("\green You feel a little different.",\ "\green You feel very strange.",\ "\green Your stomach churns.",\ "\green Your skin feels loose.",\ @@ -23,9 +23,9 @@ "\green You feel a tingling sensation in your chest.",\ "\green Your entire body vibrates.") if(prob(75)) - scramble(1, holder, weakness * severity) + scramble(1, toucher, weakness * severity) else - scramble(0, holder, weakness * severity) + scramble(0, toucher, weakness * severity) return 1 /datum/artifact_effect/dnaswitch/DoEffectAura() @@ -41,7 +41,7 @@ "\green You feel a stabbing pain in your head.",\ "\green You feel a tingling sensation in your chest.",\ "\green Your entire body vibrates.") - if(prob(25)) + if(prob(50)) scramble(1, H, weakness * severity) else scramble(0, H, weakness * severity) @@ -60,7 +60,7 @@ "\green You feel a tingling sensation in your chest.",\ "\green Your entire body vibrates.") if(prob(25)) - if(prob(50)) + if(prob(75)) scramble(1, H, weakness * severity) else scramble(0, H, weakness * severity) diff --git a/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_forcefield.dm b/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_forcefield.dm index f4a664d0ae..e076eedd2b 100644 --- a/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_forcefield.dm +++ b/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_forcefield.dm @@ -15,8 +15,9 @@ created_field.Remove(F) del F else if(holder) + var/turf/T = get_turf(holder) while(created_field.len < 16) - var/obj/effect/energy_field/E = new (locate(holder.x,holder.y,holder.z)) + var/obj/effect/energy_field/E = new (locate(T.x,T.y,T.z)) created_field.Add(E) E.strength = 1 E.density = 1 @@ -36,43 +37,44 @@ /datum/artifact_effect/forcefield/UpdateMove() if(created_field.len && holder) + var/turf/T = get_turf(holder) while(created_field.len < 16) //for now, just instantly respawn the fields when they get destroyed - var/obj/effect/energy_field/E = new (locate(holder.x,holder.y,holder)) + var/obj/effect/energy_field/E = new (locate(T.x,T.y,T)) created_field.Add(E) E.anchored = 1 E.density = 1 E.invisibility = 0 var/obj/effect/energy_field/E = created_field[1] - E.loc = locate(holder.x + 2,holder.y + 2,holder.z) + E.loc = locate(T.x + 2,T.y + 2,T.z) E = created_field[2] - E.loc = locate(holder.x + 2,holder.y + 1,holder.z) + E.loc = locate(T.x + 2,T.y + 1,T.z) E = created_field[3] - E.loc = locate(holder.x + 2,holder.y,holder.z) + E.loc = locate(T.x + 2,T.y,T.z) E = created_field[4] - E.loc = locate(holder.x + 2,holder.y - 1,holder.z) + E.loc = locate(T.x + 2,T.y - 1,T.z) E = created_field[5] - E.loc = locate(holder.x + 2,holder.y - 2,holder.z) + E.loc = locate(T.x + 2,T.y - 2,T.z) E = created_field[6] - E.loc = locate(holder.x + 1,holder.y + 2,holder.z) + E.loc = locate(T.x + 1,T.y + 2,T.z) E = created_field[7] - E.loc = locate(holder.x + 1,holder.y - 2,holder.z) + E.loc = locate(T.x + 1,T.y - 2,T.z) E = created_field[8] - E.loc = locate(holder.x,holder.y + 2,holder.z) + E.loc = locate(T.x,T.y + 2,T.z) E = created_field[9] - E.loc = locate(holder.x,holder.y - 2,holder.z) + E.loc = locate(T.x,T.y - 2,T.z) E = created_field[10] - E.loc = locate(holder.x - 1,holder.y + 2,holder.z) + E.loc = locate(T.x - 1,T.y + 2,T.z) E = created_field[11] - E.loc = locate(holder.x - 1,holder.y - 2,holder.z) + E.loc = locate(T.x - 1,T.y - 2,T.z) E = created_field[12] - E.loc = locate(holder.x - 2,holder.y + 2,holder.z) + E.loc = locate(T.x - 2,T.y + 2,T.z) E = created_field[13] - E.loc = locate(holder.x - 2,holder.y + 1,holder.z) + E.loc = locate(T.x - 2,T.y + 1,T.z) E = created_field[14] - E.loc = locate(holder.x - 2,holder.y,holder.z) + E.loc = locate(T.x - 2,T.y,T.z) E = created_field[15] - E.loc = locate(holder.x - 2,holder.y - 1,holder.z) + E.loc = locate(T.x - 2,T.y - 1,T.z) E = created_field[16] - E.loc = locate(holder.x - 2,holder.y - 2,holder.z) + E.loc = locate(T.x - 2,T.y - 2,T.z) diff --git a/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_goodfeeling.dm b/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_goodfeeling.dm index c286157a6f..752aa61ce0 100644 --- a/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_goodfeeling.dm +++ b/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_goodfeeling.dm @@ -27,7 +27,7 @@ /datum/artifact_effect/goodfeeling/DoEffectTouch(var/mob/user) if(user) if (istype(user, /mob/living/carbon/human)) - var/mob/living/carbon/human/H = holder + var/mob/living/carbon/human/H = user if(prob(50)) if(prob(75)) H << "[pick(drastic_messages)]" diff --git a/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_heal.dm b/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_heal.dm index 56680ac523..8b92784424 100644 --- a/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_heal.dm +++ b/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_heal.dm @@ -12,7 +12,7 @@ C << "\blue You feel a soothing energy invigorate you." if(ishuman(toucher)) - var/mob/living/carbon/human/H = holder + var/mob/living/carbon/human/H = toucher for(var/datum/organ/external/affecting in H.organs) if(affecting && istype(affecting)) affecting.heal_damage(25 * weakness, 25 * weakness) diff --git a/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_heat.dm b/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_heat.dm index a1031e57d9..da59078a1b 100644 --- a/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_heat.dm +++ b/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_heat.dm @@ -23,4 +23,4 @@ if(holder) var/datum/gas_mixture/env = holder.loc.return_air() if(env && env.temperature < target_temp) - env.temperature += pick(0, 0, rand(), 1) + env.temperature += pick(0, 0, 1) diff --git a/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_hurt.dm b/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_hurt.dm index 8eeaff8cc1..f69b9b9d9d 100644 --- a/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_hurt.dm +++ b/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_hurt.dm @@ -4,8 +4,7 @@ effect_type = 5 /datum/artifact_effect/hurt/DoEffectTouch(var/mob/toucher) - //caeltodo - if(holder) + if(toucher) var/weakness = GetAnomalySusceptibility(toucher) if(iscarbon(toucher) && prob(weakness * 100)) var/mob/living/carbon/C = toucher diff --git a/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_radiate.dm b/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_radiate.dm index 3d2e174d2e..e6c49c96ce 100644 --- a/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_radiate.dm +++ b/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_radiate.dm @@ -15,13 +15,15 @@ return 1 /datum/artifact_effect/radiate/DoEffectAura() - for (var/mob/living/M in range(src.effectrange,holder)) - M.apply_effect(radiation_amount,IRRADIATE,0) - M.updatehealth() - return 1 + if(holder) + for (var/mob/living/M in range(src.effectrange,holder)) + M.apply_effect(radiation_amount,IRRADIATE,0) + M.updatehealth() + return 1 /datum/artifact_effect/radiate/DoEffectPulse() - for (var/mob/living/M in range(src.effectrange,holder)) - M.apply_effect(radiation_amount * 25,IRRADIATE,0) - M.updatehealth() - return 1 + if(holder) + for (var/mob/living/M in range(src.effectrange,holder)) + M.apply_effect(radiation_amount * 25,IRRADIATE,0) + M.updatehealth() + return 1 diff --git a/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_roboheal.dm b/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_roboheal.dm index fa1f7ed857..8e154f0b66 100644 --- a/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_roboheal.dm +++ b/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_roboheal.dm @@ -9,7 +9,7 @@ /datum/artifact_effect/roboheal/DoEffectTouch(var/mob/user) if(user) if (istype(user, /mob/living/silicon/robot)) - var/mob/living/silicon/robot/R = holder + var/mob/living/silicon/robot/R = user R << "\blue Your systems report damaged components mending by themselves!" R.adjustBruteLoss(rand(-10,-30)) R.adjustFireLoss(rand(-10,-30))