mirror of
https://github.com/PolarisSS13/Polaris.git
synced 2025-12-21 15:42:53 +00:00
Adds ability to sort the spells section of the catalog into categories. The categories available are 'All', 'Offensive', 'Defensive', 'Utility', and 'Support'. Removes preset section on catalog as it was unused. Projectile spells now have a sound when fired. Haste lasts five seconds instead of three. Repel Missiles lasts for five minutes instead of two. All healing spells work five times as fast, healing in five seconds instead of twenty five seconds. The amount of instability and healing done has been multiplied to remain consistent. Passwall can now be used on more than just walls, if there's something dense on the same tile. Force Missile is now 25% cheaper to cast, and has a cooldown of .5 seconds instead of one second, and does 5 more damage. Beam's damage is increased by 10, and energy cost decreased by 25%. Lightning's warm-up time is now one second instead of two. Overload now costs 10% of total energy instead of 15%, and damage scaled with 4% of their current energy reserves, and 5% with the Scepter, instead of 3%/4%. Additionally, instability per shot is lowered to 12 from 15. Track now costs 25 points instead of 30 in the catalog, because roundness. Fire Aura should look more impressive without a Scepter. Fixes bug where shooting Lightning made you motionless for twenty seconds.
63 lines
2.6 KiB
Plaintext
63 lines
2.6 KiB
Plaintext
/datum/technomancer/spell/resurrect
|
|
name = "Resurrect"
|
|
desc = "This function injects various regenetive medical compounds and nanomachines, in an effort to restart the body, \
|
|
however this must be done soon after they die, as this will have no effect on people who have died long ago. It also doesn't \
|
|
resolve whatever caused them to die originally."
|
|
cost = 100
|
|
obj_path = /obj/item/weapon/spell/resurrect
|
|
ability_icon_state = "tech_resurrect"
|
|
category = SUPPORT_SPELLS
|
|
|
|
/obj/item/weapon/spell/resurrect
|
|
name = "resurrect"
|
|
icon_state = "radiance"
|
|
desc = "Perhaps this can save a trip to cloning?"
|
|
cast_methods = CAST_MELEE
|
|
aspect = ASPECT_BIOMED
|
|
|
|
/obj/item/weapon/spell/resurrect/on_melee_cast(atom/hit_atom, mob/living/user, def_zone)
|
|
if(isliving(hit_atom))
|
|
var/mob/living/L = hit_atom
|
|
if(L == user)
|
|
user << "<span class='warning'>Clever as you may seem, this won't work on yourself while alive.</span>"
|
|
return 0
|
|
if(L.stat != DEAD)
|
|
user << "<span class='warning'>\The [L] isn't dead!</span>"
|
|
return 0
|
|
if(pay_energy(5000))
|
|
if(L.tod > world.time + 10 MINUTES)
|
|
user << "<span class='danger'>\The [L]'s been dead for too long, even this function cannot replace cloning at \
|
|
this point.</span>"
|
|
return 0
|
|
user << "<span class='notice'>You stab \the [L] with a hidden integrated hypo, attempting to bring them back...</span>"
|
|
if(istype(L, /mob/living/simple_animal))
|
|
var/mob/living/simple_animal/SM = L
|
|
SM.health = SM.maxHealth / 3
|
|
SM.stat = CONSCIOUS
|
|
dead_mob_list -= SM
|
|
living_mob_list += SM
|
|
SM.icon_state = SM.icon_living
|
|
owner.adjust_instability(30)
|
|
else if(ishuman(L))
|
|
var/mob/living/carbon/human/H = L
|
|
|
|
if(!H.client && H.mind) //Don't force the dead person to come back if they don't want to.
|
|
for(var/mob/observer/dead/ghost in player_list)
|
|
if(ghost.mind == H.mind)
|
|
ghost << "<b><font color = #330033><font size = 3>The Technomancer [user.real_name] is trying to \
|
|
revive you. Return to your body if you want to be resurrected!</b> \
|
|
(Verbs -> Ghost -> Re-enter corpse)</font></font>"
|
|
break
|
|
|
|
sleep(10 SECONDS)
|
|
if(H.client)
|
|
L.stat = CONSCIOUS //Note that if whatever killed them in the first place wasn't fixed, they're likely to die again.
|
|
dead_mob_list -= H
|
|
living_mob_list += H
|
|
H.timeofdeath = null
|
|
visible_message("<span class='danger'>\The [H]'s eyes open!</span>")
|
|
user << "<span class='notice'>It's alive!</span>"
|
|
owner.adjust_instability(100)
|
|
else
|
|
user << "<span class='warning'>The body of \the [H] doesn't seem to respond, perhaps you could try again?</span>"
|
|
owner.adjust_instability(10) |