diff --git a/baystation12.dme b/baystation12.dme index bc9565fa93c..1aec6f05ba5 100644 --- a/baystation12.dme +++ b/baystation12.dme @@ -3164,10 +3164,10 @@ #include "code\modules\spells\hand\entangle.dm" #include "code\modules\spells\hand\hand.dm" #include "code\modules\spells\hand\hand_item.dm" +#include "code\modules\spells\hand\health_scan.dm" #include "code\modules\spells\hand\slippery_surface.dm" #include "code\modules\spells\hand\sunwrath.dm" #include "code\modules\spells\targeted\_targeted.dm" -#include "code\modules\spells\targeted\analyze.dm" #include "code\modules\spells\targeted\blood_boil.dm" #include "code\modules\spells\targeted\ethereal_jaunt.dm" #include "code\modules\spells\targeted\exhude_pleasantness.dm" diff --git a/code/modules/spellbook/_spellbook.dm b/code/modules/spellbook/_spellbook.dm index c3da2fb5e47..8c8ab2e3453 100644 --- a/code/modules/spellbook/_spellbook.dm +++ b/code/modules/spellbook/_spellbook.dm @@ -250,3 +250,15 @@ GLOBAL_LIST_EMPTY(spells_by_categories) /datum/spell/aoe_turf/exchange_wounds, /datum/spell/aoe_turf/smoke, ) + +// Most healing-related spells, any user +/obj/item/spellbook/healing + book_flags = NO_OWNER + allowed_spells = list( + /datum/spell/hand/analyze_health, + /datum/spell/aimed/heal_target/touch, + /datum/spell/aimed/heal_target, + /datum/spell/aimed/heal_target/major, + /datum/spell/aimed/heal_target/trance, + /datum/spell/aimed/heal_target/sacrifice, + ) diff --git a/code/modules/spells/artifacts/spellbound_servants.dm b/code/modules/spells/artifacts/spellbound_servants.dm index b48b0139aca..987e52c61c3 100644 --- a/code/modules/spells/artifacts/spellbound_servants.dm +++ b/code/modules/spells/artifacts/spellbound_servants.dm @@ -75,7 +75,7 @@ /datum/spell/aimed/heal_target/touch, /datum/spell/aoe_turf/knock/slow, /datum/spell/targeted/heal_target/area, - /datum/spell/targeted/analyze, + /datum/spell/hand/analyze_health, /datum/spell/aimed/heal_target/trance ) diff --git a/code/modules/spells/hand/health_scan.dm b/code/modules/spells/hand/health_scan.dm new file mode 100644 index 00000000000..7480fbff9a8 --- /dev/null +++ b/code/modules/spells/hand/health_scan.dm @@ -0,0 +1,33 @@ +/datum/spell/hand/analyze_health + name = "Analyze Health" + desc = "Using your powers, you can detect the inner destructions of a persons body." + + range = 2 + level_max = list(UPGRADE_TOTAL = 2, UPGRADE_SPEED = 0, UPGRADE_POWER = 2) + charge_max = 5 + invocation_type = INVOKE_WHISPER + invocation = "Fu Yi Fim" + compatible_targets = list(/mob/living/carbon/human) + hud_state = "analyze" + + spell_cost = 1 + mana_cost = 3 + +/datum/spell/hand/analyze_health/cast_hand(mob/living/carbon/human/H, mob/user) + new /obj/effect/temp_visual/temporary(get_turf(H), 5, 'icons/effects/effects.dmi', "repel_missiles") + var/skill_level = SKILL_UNTRAINED + switch(spell_levels[UPGRADE_POWER]) + if(1) + skill_level = SKILL_TRAINED + if(2) + skill_level = SKILL_MAX + var/datum/browser/popup = new(user, "analyze_health", "Health Scan") + popup.set_content(display_medical_data(H.get_raw_medical_data(), skill_level)) + popup.open() + return TRUE + +/datum/spell/hand/analyze_health/empower_spell() + if(!..()) + return FALSE + + return "[src] is now more precise." diff --git a/code/modules/spells/targeted/analyze.dm b/code/modules/spells/targeted/analyze.dm deleted file mode 100644 index fc19e2f19ad..00000000000 --- a/code/modules/spells/targeted/analyze.dm +++ /dev/null @@ -1,20 +0,0 @@ -/datum/spell/targeted/analyze - name = "Analyze" - desc = "Using your wizardly powers, you can detect the inner destructions of a persons body." - - charge_max = 100 - spell_flags = INCLUDEUSER|SELECTABLE - range = 2 - invocation_type = INVOKE_WHISPER - invocation = "Fu Yi Fim" - compatible_mobs = list(/mob/living/carbon/human) - hud_state = "analyze" - - spell_cost = 1 - mana_cost = 3 - -/datum/spell/targeted/analyze/cast(var/list/targets, var/mob/user) - for(var/a in targets) - var/mob/living/carbon/human/H = a - new /obj/effect/temp_visual/temporary(get_turf(a),5, 'icons/effects/effects.dmi', "repel_missiles") - to_chat(user,medical_scan_results(H,1)) \ No newline at end of file