tweaks and fixes to a bunch of artifact effects

Signed-off-by: Cael_Aislinn <cael_aislinn@yahoo.com.au>
This commit is contained in:
Cael_Aislinn
2013-03-10 18:21:45 +10:00
parent 44470e35b5
commit fdcbebab93
10 changed files with 46 additions and 43 deletions

View File

@@ -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)

View File

@@ -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 << "<b><font color='red' size='[num2text(rand(1,5))]'><b>[pick(drastic_messages)]</b></font>"

View File

@@ -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)

View File

@@ -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)

View File

@@ -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 << "<b><font color='blue' size='[num2text(rand(1,5))]'><b>[pick(drastic_messages)]</b></font>"

View File

@@ -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)

View File

@@ -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)

View File

@@ -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

View File

@@ -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

View File

@@ -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))