Files
CHOMPStation2/code/game/gamemodes/technomancer/spells/flame_tongue.dm
Neerti b8a7749351 Technomancer Golem Tweaks & Simple Animal Health "Refactor"
Simple animals now use the base health system that most other mobs use.
Fixes a bunch of Destroy()s so that they should qdel properly.
Mend Synthetic can heal synthetic simple animals.
Adds attack and spellcast animations to the golem.
Adds system to manually flick because byond is stupid sometimes.
Removes shield and reflect spells from the golem since SAs can't use shields at the moment.
Adds more helpful spells to the golem.
Golem and the Lost Drone now use the 'synthetic_evil' speech bubble.
2017-09-30 22:24:42 -04:00

66 lines
2.1 KiB
Plaintext

/datum/technomancer/spell/flame_tongue
name = "Flame Tongue"
desc = "Using a miniturized flamethrower in your gloves, you can emit a flame strong enough to melt both your enemies and walls."
cost = 50
obj_path = /obj/item/weapon/spell/flame_tongue
ability_icon_state = "tech_flametongue"
category = OFFENSIVE_SPELLS
/obj/item/weapon/spell/flame_tongue
name = "flame tongue"
icon_state = "flame_tongue"
desc = "Burn!"
cast_methods = CAST_MELEE
aspect = ASPECT_FIRE
var/obj/item/weapon/weldingtool/spell/welder = null
/obj/item/weapon/spell/flame_tongue/New()
..()
set_light(3, 2, l_color = "#FF6A00")
visible_message("<span class='warning'>\The [loc]'s hand begins to emit a flame.</span>")
welder = new /obj/item/weapon/weldingtool/spell(src)
welder.setWelding(1)
/obj/item/weapon/spell/flame_tongue/Destroy()
qdel(welder)
welder = null
return ..()
/obj/item/weapon/weldingtool/spell
name = "flame"
eye_safety_modifier = 3
/obj/item/weapon/weldingtool/spell/process()
return
//Needed to make the spell welder have infinite fuel. Don't worry, it uses energy instead.
/obj/item/weapon/weldingtool/spell/remove_fuel()
return 1
/obj/item/weapon/weldingtool/spell/eyecheck(mob/user as mob)
return
/obj/item/weapon/spell/flame_tongue/on_melee_cast(atom/hit_atom, mob/living/user, def_zone)
if(isliving(hit_atom) && user.a_intent != I_HELP)
var/mob/living/L = hit_atom
if(pay_energy(1000))
visible_message("<span class='danger'>\The [user] reaches out towards \the [L] with the flaming hand, and they ignite!</span>")
L << "<span class='danger'>You ignite!</span>"
L.fire_act()
log_and_message_admins("has ignited [L] with [src].")
adjust_instability(12)
else
//This is needed in order for the welder to work, and works similarly to grippers.
welder.loc = user
var/resolved = hit_atom.attackby(welder, user)
if(!resolved && welder && hit_atom)
if(pay_energy(500))
welder.attack(hit_atom, user, def_zone)
adjust_instability(4)
if(welder && user && (welder.loc == user))
welder.loc = src
else
welder = null
qdel(src)
return