From 46761b14f8733525d210eaf3a39af0bcd97acfda Mon Sep 17 00:00:00 2001 From: Cael_Aislinn Date: Sun, 10 Mar 2013 14:55:04 +1000 Subject: [PATCH] fleshed out artifact analysis, added effect types to all the effects Signed-off-by: Cael_Aislinn --- .../xenoarchaeology/unknown/analysis.dm | 202 +++++++++++++++++- .../unknown/effects/unknown_affect_cold.dm | 1 + .../effects/unknown_effect_badfeeling.dm | 1 + .../effects/unknown_effect_cellcharge.dm | 1 + .../effects/unknown_effect_celldrain.dm | 1 + .../effects/unknown_effect_dnaswitch.dm | 1 + .../unknown/effects/unknown_effect_emp.dm | 1 + .../effects/unknown_effect_forcefield.dm | 1 + .../unknown/effects/unknown_effect_gasco2.dm | 4 + .../effects/unknown_effect_gasnitro.dm | 1 + .../unknown/effects/unknown_effect_gasoxy.dm | 2 + .../effects/unknown_effect_gasplasma.dm | 1 + .../effects/unknown_effect_gassleeping.dm | 1 + .../effects/unknown_effect_goodfeeling.dm | 1 + .../unknown/effects/unknown_effect_heal.dm | 1 + .../unknown/effects/unknown_effect_heat.dm | 4 + .../unknown/effects/unknown_effect_hurt.dm | 1 + .../unknown/effects/unknown_effect_radiate.dm | 1 + .../effects/unknown_effect_roboheal.dm | 4 + .../effects/unknown_effect_robohurt.dm | 4 + .../unknown/effects/unknown_effect_sleepy.dm | 4 + .../unknown/effects/unknown_effect_stun.dm | 4 + .../effects/unknown_effect_teleport.dm | 1 + .../xenoarchaeology/unknown/unknown_effect.dm | 10 + 24 files changed, 246 insertions(+), 7 deletions(-) diff --git a/code/modules/research/xenoarchaeology/unknown/analysis.dm b/code/modules/research/xenoarchaeology/unknown/analysis.dm index e4bf5c6ecd3..87320ac2ee1 100644 --- a/code/modules/research/xenoarchaeology/unknown/analysis.dm +++ b/code/modules/research/xenoarchaeology/unknown/analysis.dm @@ -1,27 +1,37 @@ //cael - some changes here. the analysis pad is entirely new -/obj/machinery/anomaly/artifact_analyser +/obj/machinery/artifact_analyser name = "Artifact Analyser" desc = "Studies the structure of artifacts to discover their uses." icon = 'virology.dmi' icon_state = "analyser" anchored = 1 density = 1 - var/scan_progress = 0 + var/scan_in_progress = 0 var/scan_num = 0 var/obj/scanned_obj var/obj/machinery/scanner/owned_scanner = null + var/scan_completion_time = 0 + var/scan_duration = 50 + var/obj/scanned_object + var/report_num = 0 -/obj/machinery/anomaly/artifact_analyser/New() +/obj/machinery/artifact_analyser/New() ..() + reconnect_scanner() +/obj/machinery/artifact_analyser/proc/reconnect_scanner() //connect to a nearby scanner pad owned_scanner = locate(/obj/machinery/scanner) in get_step(src, dir) if(!owned_scanner) owned_scanner = locate(/obj/machinery/scanner) in orange(1, src) -/obj/machinery/anomaly/artifact_analyser/attack_hand(var/mob/user as mob) +/obj/machinery/artifact_analyser/attack_hand(var/mob/user as mob) + src.add_fingerprint(user) + interact(user) + +/obj/machinery/artifact_analyser/interact(mob/user) if(stat & (NOPOWER|BROKEN) || get_dist(src, user) > 1) user.unset_machine(src) return @@ -33,13 +43,191 @@ if(!owned_scanner) dat += "Unable to locate analysis pad.
" - else if(scan_progress) - dat += "Please wait. Analysis in progress.
" + else if(scan_in_progress) + dat += "Please wait. Analysis in progress.
" + dat += "Halt scanning.
" else - dat += "Place an item to be scanned on the pad to begin." + dat += "Scanner is ready.
" + dat += "Begin scanning.
" + dat += "
" dat += "
" dat += "Refresh Close" user << browse(dat, "window=artanalyser;size=450x500") user.set_machine(src) onclose(user, "artanalyser") + +/obj/machinery/artifact_analyser/process() + if(scan_in_progress && world.time > scan_completion_time) + //finish scanning + scan_in_progress = 0 + updateDialog() + + //print results + var/results = "" + if(!owned_scanner) + reconnect_scanner() + if(!owned_scanner) + results = "Error communicating with scanner." + else if(!scanned_object || scanned_object.loc != owned_scanner.loc) + results = "Unable to locate scanned object. Ensure it was not moved in the process." + else + results = get_scan_info(scanned_object) + + src.visible_message("\blue \icon[src] makes an insistent chime.", 2) + var/obj/item/weapon/paper/P = new(src.loc) + P.name = "[src] report #[++report_num]" + P.info = "[src] analysis report #[report_num]
" + P.info += "
" + P.info += "\icon[scanned_object] [results]" + P.stamped = list(/obj/item/weapon/stamp) + P.overlays = list("paper_stamped") + +/obj/machinery/artifact_analyser/Topic(href, href_list) + if(href_list["begin_scan"]) + if(!owned_scanner) + reconnect_scanner() + if(owned_scanner) + for(var/obj/O in owned_scanner.loc) + if(O == owned_scanner) + continue + if(O.invisibility) + continue + scanned_object = O + scan_in_progress = 1 + scan_completion_time = world.time + scan_duration + break + if(href_list["halt_scan"]) + scan_in_progress = 0 + src.visible_message("\blue \icon[src] bleets rudely.", 2) + + if(href_list["close"]) + usr.unset_machine(src) + usr << browse(null, "window=artanalyser") + + ..() + updateDialog() + +//hardcoded responses, oh well +/obj/machinery/artifact_analyser/proc/get_scan_info(var/obj/scanned_obj) + switch(scanned_obj.type) + if(/obj/machinery/auto_cloner) + return "Automated cloning pod - appears to rely on organic nanomachines with a self perpetuating \ + ecosystem involving self cannibalism and a symbiotic relationship with the contained liquid.

\ + Structure is composed of a carbo-titanium alloy with interlaced reinforcing energy fields, and the contained liquid \ + resembles proto-plasmic residue supportive of single cellular developmental conditions." + if(/obj/machinery/power/supermatter) + return "Super dense plasma clump - Appears to have been shaped or hewn, structure is composed of matter 2000% denser than ordinary carbon matter residue.\ + Potential application as unrefined plasma source." + if(/obj/machinery/power/supermatter) + return "Super dense plasma clump - Appears to have been shaped or hewn, structure is composed of matter 2000% denser than ordinary carbon matter residue.\ + Potential application as unrefined plasma source." + if(/obj/structure/constructshell) + return "Tribal idol - Item resembles statues/emblems built by superstitious pre-warp civilisations to honour their gods. Material appears to be a \ + rock/plastcrete composite." + if(/obj/machinery/giga_drill) + return "Automated mining drill - structure composed of titanium-carbide alloy, with tip and drill lines edged in an alloy of diamond and plasma." + if(/obj/structure/cult/pylon) + return "Tribal pylon - Item resembles statues/emblems built by cargo cult civilisations to honour energy systems from post-warp civilisations." + if(/obj/mecha/working/hoverpod) + return "Vacuum capable repair pod - Item is a remarkably intact single man repair craft capable of flight in a vacuum. Outer shell composed of primarily \ + post-warp hull alloys, with internal wiring and circuitry consistent with modern electronics and engineering." + if(/obj/machinery/replicator) + return "Automated construction unit - Item appears to be able to synthesize synthetic items, some with simple internal circuitry. Method unknown, \ + phasing suggested?" + if(/obj/structure/crystal) + return "Crystal formation - Pseudo organic crystalline matrix, unlikely to have formed naturally. No known technology exists to synthesize this exact composition." + if(/obj/machinery/artifact) + //the fun one + var/obj/machinery/artifact/A = scanned_obj + var/out = "Anomalous alien device - Composed of an unknown alloy, " + + //primary effect + if(A.my_effect) + //what kind of effect the artifact has + switch(A.my_effect.effect_type) + if(1) + out += "concentrated energy emissions" + if(2) + out += "intermittent psionic wavefront" + if(3) + out += "electromagnetic energy" + if(4) + out += "high frequency particles" + if(5) + out += "organically reactive exotic particles" + if(6) + out += "interdimensional/bluespace? phasing" + if(7) + out += "atomic synthesis" + else + out += "low level energy emissions" + out += " have been detected " + + //how the artifact does it's effect + switch(A.my_effect.effect_type) + if(1) + out += " emitting in an ambient energy field." + if(2) + out += " emitting in periodic bursts." + else + out += " interspersed throughout substructure and shell." + + if(A.my_effect.trigger >= 0 && A.my_effect.trigger <= 4) + out += " Activation index involves physical interaction with artifact surface." + else if(A.my_effect.trigger >= 5 && A.my_effect.trigger <= 8) + out += " Activation index involves energetic interaction with artifact surface." + else if(A.my_effect.trigger >= 9 && A.my_effect.trigger <= 12) + out += " Activation index involves precise local atmospheric conditions." + else + out += " Unable to determine any data about activation trigger." + + //secondary: + if(A.secondary_effect && A.secondary_effect.activated) + //sciencey words go! + out += "

Warning, internal scans indicate ongoing [pick("subluminous","subcutaneous","superstructural")] activity operating \ + independantly from primary systems. Auxiliary activity involves " + + //what kind of effect the artifact has + switch(A.secondary_effect.effect_type) + if(1) + out += "concentrated energy emissions" + if(2) + out += "intermittent psionic wavefront" + if(3) + out += "electromagnetic energy" + if(4) + out += "high frequency particles" + if(5) + out += "organically reactive exotic particles" + if(6) + out += "interdimensional/bluespace? phasing" + if(7) + out += "atomic synthesis" + else + out += "low level radiation" + + //how the artifact does it's effect + switch(A.secondary_effect.effect_type) + if(1) + out += " emitting in an ambient energy field." + if(2) + out += " emitting in periodic bursts." + else + out += " interspersed throughout substructure and shell." + + if(A.secondary_effect.trigger >= 0 && A.secondary_effect.trigger <= 4) + out += " Activation index involves physical interaction with artifact surface, but subsystems indicate \ + anomalous interference with standard attempts at triggering." + else if(A.secondary_effect.trigger >= 5 && A.secondary_effect.trigger <= 8) + out += " Activation index involves energetic interaction with artifact surface, but subsystems indicate \ + anomalous interference with standard attempts at triggering." + else if(A.secondary_effect.trigger >= 9 && A.secondary_effect.trigger <= 12) + out += " Activation index involves precise local atmospheric conditions, but subsystems indicate \ + anomalous interference with standard attempts at triggering." + else + out += " Unable to determine any data about activation trigger." + return out + else + //it was an ordinary item + return "[scanned_obj.name] - Mundane application, composed of carbo-ferritic alloy composite." 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 c2302d91878..f75d7005d3c 100644 --- a/code/modules/research/xenoarchaeology/unknown/effects/unknown_affect_cold.dm +++ b/code/modules/research/xenoarchaeology/unknown/effects/unknown_affect_cold.dm @@ -8,6 +8,7 @@ ..() target_temp = rand(0, 250) effect = pick(EFFECT_TOUCH, EFFECT_AURA) + effect_type = pick(5,6,7) /datum/artifact_effect/cold/DoEffectTouch(var/mob/user) if(holder) 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 b95ebc14016..2847bbd4888 100644 --- a/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_badfeeling.dm +++ b/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_badfeeling.dm @@ -1,6 +1,7 @@ /datum/artifact_effect/badfeeling effecttype = "badfeeling" + effect_type = 2 var/list/messages = list("You feel worried.",\ "Something doesn't feel right.",\ "You get a strange feeling in your gut.",\ diff --git a/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_cellcharge.dm b/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_cellcharge.dm index b6f48daf1b6..5008f5306af 100644 --- a/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_cellcharge.dm +++ b/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_cellcharge.dm @@ -2,6 +2,7 @@ //todo /datum/artifact_effect/cellcharge effecttype = "cellcharge" + effect_type = 3 /datum/artifact_effect/cellcharge/DoEffectTouch(var/mob/user) if(user) diff --git a/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_celldrain.dm b/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_celldrain.dm index 954cbe46a6d..1f091433d98 100644 --- a/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_celldrain.dm +++ b/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_celldrain.dm @@ -2,6 +2,7 @@ //todo /datum/artifact_effect/celldrain effecttype = "celldrain" + effect_type = 3 /datum/artifact_effect/celldrain/DoEffectTouch(var/mob/user) if(user) 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 9c66974e9ca..fd8f6751b2d 100644 --- a/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_dnaswitch.dm +++ b/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_dnaswitch.dm @@ -2,6 +2,7 @@ //todo /datum/artifact_effect/dnaswitch effecttype = "dnaswitch" + effect_type = 5 var/severity /datum/artifact_effect/dnaswitch/New() diff --git a/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_emp.dm b/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_emp.dm index 3a62e146acf..aeafa6387df 100644 --- a/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_emp.dm +++ b/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_emp.dm @@ -1,6 +1,7 @@ /datum/artifact_effect/emp effecttype = "emp" + effect_type = 3 /datum/artifact_effect/emp/New() ..() 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 7957c999dd1..f4a664d0ae5 100644 --- a/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_forcefield.dm +++ b/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_forcefield.dm @@ -2,6 +2,7 @@ /datum/artifact_effect/forcefield effecttype = "forcefield" var/list/created_field = list() + effect_type = 4 /datum/artifact_effect/forcefield/New() ..() diff --git a/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_gasco2.dm b/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_gasco2.dm index ae44c04b171..c9cafa4e718 100644 --- a/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_gasco2.dm +++ b/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_gasco2.dm @@ -4,6 +4,10 @@ var/max_pressure var/target_percentage +/datum/artifact_effect/heat/New() + ..() + effect_type = pick(6,7) + /datum/artifact_effect/gasco2/New() ..() effect = pick(EFFECT_TOUCH, EFFECT_AURA) diff --git a/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_gasnitro.dm b/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_gasnitro.dm index 60b7e2a47c3..527c2592aa9 100644 --- a/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_gasnitro.dm +++ b/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_gasnitro.dm @@ -7,6 +7,7 @@ /datum/artifact_effect/gasnitro/New() ..() effect = pick(EFFECT_TOUCH, EFFECT_AURA) + effect_type = pick(6,7) max_pressure = rand(115,1000) /datum/artifact_effect/gasnitro/DoEffectTouch(var/mob/user) diff --git a/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_gasoxy.dm b/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_gasoxy.dm index 45e40bd3647..d0daa6951fb 100644 --- a/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_gasoxy.dm +++ b/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_gasoxy.dm @@ -7,6 +7,8 @@ ..() effect = pick(EFFECT_TOUCH, EFFECT_AURA) max_pressure = rand(115,1000) + effect_type = pick(6,7) + /datum/artifact_effect/gasoxy/DoEffectTouch(var/mob/user) if(holder) diff --git a/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_gasplasma.dm b/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_gasplasma.dm index 27a5c98515b..c375e746e28 100644 --- a/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_gasplasma.dm +++ b/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_gasplasma.dm @@ -8,6 +8,7 @@ ..() effect = pick(EFFECT_TOUCH, EFFECT_AURA) max_pressure = rand(115,1000) + effect_type = pick(6,7) /datum/artifact_effect/gasplasma/DoEffectTouch(var/mob/user) if(holder) diff --git a/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_gassleeping.dm b/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_gassleeping.dm index 3ac107be500..5ce5256736c 100644 --- a/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_gassleeping.dm +++ b/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_gassleeping.dm @@ -8,6 +8,7 @@ ..() effect = pick(EFFECT_TOUCH, EFFECT_AURA) max_pressure = rand(115,1000) + effect_type = pick(6,7) /datum/artifact_effect/gassleeping/DoEffectTouch(var/mob/user) if(holder) 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 6eae8b8bc2c..c286157a6f6 100644 --- a/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_goodfeeling.dm +++ b/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_goodfeeling.dm @@ -1,6 +1,7 @@ /datum/artifact_effect/goodfeeling effecttype = "goodfeeling" + effect_type = 2 var/list/messages = list("You feel good.",\ "Everything seems to be going alright",\ "You've got a good feeling about this",\ 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 6d4aba5f748..56680ac523b 100644 --- a/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_heal.dm +++ b/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_heal.dm @@ -1,6 +1,7 @@ /datum/artifact_effect/heal effecttype = "heal" + effect_type = 5 /datum/artifact_effect/heal/DoEffectTouch(var/mob/toucher) //todo: check over this properly 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 4639f503e68..a1031e57d93 100644 --- a/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_heat.dm +++ b/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_heat.dm @@ -4,6 +4,10 @@ effecttype = "heat" var/target_temp +/datum/artifact_effect/heat/New() + ..() + effect_type = pick(5,6,7) + /datum/artifact_effect/heat/New() ..() target_temp = rand(300,600) 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 a9ae4d89ee0..8eeaff8cc11 100644 --- a/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_hurt.dm +++ b/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_hurt.dm @@ -1,6 +1,7 @@ /datum/artifact_effect/hurt effecttype = "hurt" + effect_type = 5 /datum/artifact_effect/hurt/DoEffectTouch(var/mob/toucher) //caeltodo 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 7d1c1c887ff..3d2e174d2e7 100644 --- a/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_radiate.dm +++ b/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_radiate.dm @@ -6,6 +6,7 @@ /datum/artifact_effect/radiate/New() ..() radiation_amount = rand(1, 10) + effect_type = pick(4,5) /datum/artifact_effect/radiate/DoEffectTouch(var/mob/living/user) if(user) 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 cd058da7fa2..fa1f7ed8573 100644 --- a/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_roboheal.dm +++ b/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_roboheal.dm @@ -2,6 +2,10 @@ /datum/artifact_effect/roboheal effecttype = "roboheal" +/datum/artifact_effect/roboheal/New() + ..() + effect_type = pick(3,4) + /datum/artifact_effect/roboheal/DoEffectTouch(var/mob/user) if(user) if (istype(user, /mob/living/silicon/robot)) diff --git a/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_robohurt.dm b/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_robohurt.dm index 8e93a26b3c0..b230efa33ec 100644 --- a/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_robohurt.dm +++ b/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_robohurt.dm @@ -2,6 +2,10 @@ /datum/artifact_effect/robohurt effecttype = "robohurt" +/datum/artifact_effect/robohurt/New() + ..() + effect_type = pick(3,4) + /datum/artifact_effect/robohurt/DoEffectTouch(var/mob/user) if(user) if (istype(user, /mob/living/silicon/robot)) diff --git a/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_sleepy.dm b/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_sleepy.dm index 911efd04135..1da02ceaa92 100644 --- a/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_sleepy.dm +++ b/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_sleepy.dm @@ -3,6 +3,10 @@ /datum/artifact_effect/sleepy effecttype = "sleepy" +/datum/artifact_effect/sleepy/New() + ..() + effect_type = pick(5,2) + /datum/artifact_effect/sleepy/DoEffectTouch(var/mob/toucher) if(toucher) var/weakness = GetAnomalySusceptibility(toucher) diff --git a/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_stun.dm b/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_stun.dm index 4e3b2374913..b37862eb0c7 100644 --- a/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_stun.dm +++ b/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_stun.dm @@ -2,6 +2,10 @@ /datum/artifact_effect/stun effecttype = "stun" +/datum/artifact_effect/stun/New() + ..() + effect_type = pick(2,5) + /datum/artifact_effect/stun/DoEffectTouch(var/mob/toucher) if(toucher && iscarbon(toucher)) var/mob/living/carbon/C = toucher diff --git a/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_teleport.dm b/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_teleport.dm index 166fcbfd2af..e1580e20738 100644 --- a/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_teleport.dm +++ b/code/modules/research/xenoarchaeology/unknown/effects/unknown_effect_teleport.dm @@ -1,6 +1,7 @@ /datum/artifact_effect/teleport effecttype = "teleport" + effect_type = 6 /datum/artifact_effect/teleport/DoEffectTouch(var/mob/user) var/weakness = GetAnomalySusceptibility(user) diff --git a/code/modules/research/xenoarchaeology/unknown/unknown_effect.dm b/code/modules/research/xenoarchaeology/unknown/unknown_effect.dm index b6d0fd61901..93982aa44fa 100644 --- a/code/modules/research/xenoarchaeology/unknown/unknown_effect.dm +++ b/code/modules/research/xenoarchaeology/unknown/unknown_effect.dm @@ -10,6 +10,16 @@ var/chargelevel = 0 var/chargelevelmax = 10 var/artifact_id = "" + var/effect_type = 0 + +//0 = Unknown / none detectable +//1 = Concentrated energy +//2 = Intermittent psionic wavefront +//3 = Electromagnetic energy +//4 = Particle field +//5 = Organically reactive exotic particles +//6 = Interdimensional/bluespace? phasing +//7 = Atomic synthesis /datum/artifact_effect/New(var/atom/location) ..()