mirror of
https://github.com/VOREStation/VOREStation.git
synced 2026-08-25 21:19:44 +01:00
refactors most spans
This commit is contained in:
@@ -113,7 +113,7 @@ var/list/all_technomancer_assistance = subtypesof(/datum/technomancer/assistance
|
||||
if(!user)
|
||||
return 0
|
||||
if(owner && user != owner)
|
||||
to_chat(user, "<span class='danger'>\The [src] knows that you're not the original owner, and has locked you out of it!</span>")
|
||||
to_chat(user, span_danger("\The [src] knows that you're not the original owner, and has locked you out of it!"))
|
||||
return 0
|
||||
else if(!owner)
|
||||
bind_to_owner(user)
|
||||
@@ -308,13 +308,13 @@ var/list/all_technomancer_assistance = subtypesof(/datum/technomancer/assistance
|
||||
if(new_spell.cost <= budget)
|
||||
if(!core.has_spell(new_spell))
|
||||
budget -= new_spell.cost
|
||||
to_chat(H, "<span class='notice'>You have just bought [new_spell.name].</span>")
|
||||
to_chat(H, span_notice("You have just bought [new_spell.name]."))
|
||||
core.add_spell(new_spell.obj_path, new_spell.name, new_spell.ability_icon_state)
|
||||
else //We already own it.
|
||||
to_chat(H, "<span class='danger'>You already have [new_spell.name]!</span>")
|
||||
to_chat(H, span_danger("You already have [new_spell.name]!"))
|
||||
return
|
||||
else //Can't afford.
|
||||
to_chat(H, "<span class='danger'>You can't afford that!</span>")
|
||||
to_chat(H, span_danger("You can't afford that!"))
|
||||
return
|
||||
|
||||
// This needs less copypasta.
|
||||
@@ -328,19 +328,19 @@ var/list/all_technomancer_assistance = subtypesof(/datum/technomancer/assistance
|
||||
if(desired_object)
|
||||
if(desired_object.cost <= budget)
|
||||
budget -= desired_object.cost
|
||||
to_chat(H, "<span class='notice'>You have just bought \a [desired_object.name].</span>")
|
||||
to_chat(H, span_notice("You have just bought \a [desired_object.name]."))
|
||||
var/obj/O = new desired_object.obj_path(get_turf(H))
|
||||
technomancer_belongings.Add(O) // Used for the Track spell.
|
||||
|
||||
else //Can't afford.
|
||||
to_chat(H, "<span class='danger'>You can't afford that!</span>")
|
||||
to_chat(H, span_danger("You can't afford that!"))
|
||||
return
|
||||
|
||||
|
||||
if(href_list["refund_functions"])
|
||||
var/turf/T = get_turf(H)
|
||||
if(T.z in using_map.player_levels)
|
||||
to_chat(H, "<span class='danger'>You can only refund at your base, it's too late now!</span>")
|
||||
to_chat(H, span_danger("You can only refund at your base, it's too late now!"))
|
||||
return
|
||||
var/obj/item/technomancer_core/core = null
|
||||
if(istype(H.back, /obj/item/technomancer_core))
|
||||
@@ -357,16 +357,16 @@ var/list/all_technomancer_assistance = subtypesof(/datum/technomancer/assistance
|
||||
/obj/item/technomancer_catalog/attackby(var/atom/movable/AM, var/mob/user)
|
||||
var/turf/T = get_turf(user)
|
||||
if(T.z in using_map.player_levels)
|
||||
to_chat(user, "<span class='danger'>You can only refund at your base, it's too late now!</span>")
|
||||
to_chat(user, span_danger("You can only refund at your base, it's too late now!"))
|
||||
return
|
||||
for(var/datum/technomancer/equipment/E in equipment_instances + assistance_instances)
|
||||
if(AM.type == E.obj_path) // We got a match.
|
||||
if(budget + E.cost > max_budget)
|
||||
to_chat(user, "<span class='warning'>\The [src] will not allow you to overflow your maximum budget by refunding that.</span>")
|
||||
to_chat(user, span_warning("\The [src] will not allow you to overflow your maximum budget by refunding that."))
|
||||
return
|
||||
else
|
||||
budget = budget + E.cost
|
||||
to_chat(user, "<span class='notice'>You've refunded \the [AM].</span>")
|
||||
to_chat(user, span_notice("You've refunded \the [AM]."))
|
||||
|
||||
// We sadly need to do special stuff here or else people who refund cores with spells will lose points permanently.
|
||||
if(istype(AM, /obj/item/technomancer_core))
|
||||
@@ -375,11 +375,11 @@ var/list/all_technomancer_assistance = subtypesof(/datum/technomancer/assistance
|
||||
for(var/datum/technomancer/spell/spell_datum in spell_instances)
|
||||
if(spell_datum.obj_path == spell.spellpath)
|
||||
budget += spell_datum.cost
|
||||
to_chat(user, "<span class='notice'>[spell.name] was inside \the [core], and was refunded.</span>")
|
||||
to_chat(user, span_notice("[spell.name] was inside \the [core], and was refunded."))
|
||||
core.remove_spell(spell)
|
||||
break
|
||||
qdel(AM)
|
||||
return
|
||||
to_chat(user, "<span class='warn'>\The [src] is unable to refund \the [AM].</span>")
|
||||
to_chat(user, span_warning("\The [src] is unable to refund \the [AM]."))
|
||||
|
||||
#undef ALL_SPELLS
|
||||
|
||||
@@ -288,7 +288,7 @@
|
||||
if(prob(30))
|
||||
give_energy(round(amount / 2))
|
||||
if(amount >= 50) // Managing to recover less than half of this isn't worth telling the user about.
|
||||
to_chat(wearer, "<span class='notice'>\The [src] has recovered [amount/2 >= 1000 ? "a lot of" : "some"] energy.</span>")
|
||||
to_chat(wearer, span_notice("\The [src] has recovered [amount/2 >= 1000 ? "a lot of" : "some"] energy."))
|
||||
return success
|
||||
|
||||
// For those dedicated to summoning hoards of things.
|
||||
@@ -350,7 +350,7 @@
|
||||
set desc = "Toggles the locking mechanism on your manipulation core."
|
||||
|
||||
canremove = !canremove
|
||||
to_chat(usr, "<span class='notice'>You [canremove ? "de" : ""]activate the locking mechanism on \the [src].</span>")
|
||||
to_chat(usr, span_notice("You [canremove ? "de" : ""]activate the locking mechanism on \the [src]."))
|
||||
|
||||
//For the adminbuse! VOREStation Add
|
||||
/obj/item/technomancer_core/universal
|
||||
@@ -365,4 +365,4 @@
|
||||
instability_modifier = 0.3
|
||||
spell_power_modifier = 0.7
|
||||
universal = TRUE
|
||||
//VOREStation Add End
|
||||
//VOREStation Add End
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
|
||||
/obj/item/disposable_teleporter/attack_self(mob/user as mob)
|
||||
if(!uses)
|
||||
to_chat(user, "<span class='danger'>\The [src] has ran out of uses, and is now useless to you!</span>")
|
||||
to_chat(user, span_danger("\The [src] has ran out of uses, and is now useless to you!"))
|
||||
return
|
||||
else
|
||||
var/area_wanted = tgui_input_list(user, "Area to teleport to", "Teleportation", teleportlocs)
|
||||
@@ -74,8 +74,8 @@
|
||||
|
||||
if(destination)
|
||||
user.forceMove(destination)
|
||||
to_chat(user, "<span class='notice'>You are teleported to \the [A].</span>")
|
||||
to_chat(user, span_notice("You are teleported to \the [A]."))
|
||||
uses--
|
||||
if(uses <= 0)
|
||||
to_chat(user, "<span class='danger'>\The [src] has ran out of uses, and disintegrates from your hands.</span>")
|
||||
to_chat(user, span_danger("\The [src] has ran out of uses, and disintegrates from your hands."))
|
||||
qdel(src)
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
if(H && H.gloves == src)
|
||||
wearer = H
|
||||
if(wearer.can_feel_pain())
|
||||
to_chat(H, "<span class='danger'>You feel a stabbing sensation in your hands as you slide \the [src] on!</span>")
|
||||
to_chat(H, span_danger("You feel a stabbing sensation in your hands as you slide \the [src] on!"))
|
||||
wearer.custom_pain("You feel a sharp pain in your hands!",1)
|
||||
..()
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
..()
|
||||
if(wearer)
|
||||
if(wearer.can_feel_pain())
|
||||
to_chat(wearer, "<span class='danger'>You feel the hypodermic needles as you slide \the [src] off!</span>")
|
||||
to_chat(wearer, span_danger("You feel the hypodermic needles as you slide \the [src] off!"))
|
||||
wearer.custom_pain("Your hands hurt like hell!",1)
|
||||
wearer = null
|
||||
|
||||
@@ -63,4 +63,4 @@
|
||||
wearer.nutrition = max(wearer.nutrition - 10, 0)
|
||||
if(wearer.getCloneLoss())
|
||||
wearer.adjustCloneLoss(-0.1)
|
||||
wearer.nutrition = max(wearer.nutrition - 20, 0)
|
||||
wearer.nutrition = max(wearer.nutrition - 20, 0)
|
||||
|
||||
@@ -49,7 +49,7 @@
|
||||
var/damage_to_energy_cost = (damage_to_energy_multiplier * damage_blocked)
|
||||
|
||||
if(!user.technomancer_pay_energy(damage_to_energy_cost))
|
||||
to_chat(user, "<span class='danger'>Your shield fades due to lack of energy!</span>")
|
||||
to_chat(user, span_danger("Your shield fades due to lack of energy!"))
|
||||
active = 0
|
||||
update_icon()
|
||||
return 0
|
||||
@@ -66,8 +66,8 @@
|
||||
P.agony -= agony_blocked
|
||||
P.damage = P.damage - damage_blocked
|
||||
|
||||
user.visible_message("<span class='danger'>\The [user]'s [src] absorbs [attack_text]!</span>")
|
||||
to_chat(user, "<span class='warning'>Your shield has absorbed most of \the [damage_source].</span>")
|
||||
user.visible_message(span_danger("\The [user]'s [src] absorbs [attack_text]!"))
|
||||
to_chat(user, span_warning("Your shield has absorbed most of \the [damage_source]."))
|
||||
|
||||
spark_system.start()
|
||||
playsound(src, 'sound/weapons/blade1.ogg', 50, 1)
|
||||
@@ -75,7 +75,7 @@
|
||||
|
||||
/obj/item/clothing/suit/armor/shield/attack_self(mob/user)
|
||||
active = !active
|
||||
to_chat(user, "<span class='notice'>You [active ? "" : "de"]activate \the [src].</span>")
|
||||
to_chat(user, span_notice("You [active ? "" : "de"]activate \the [src]."))
|
||||
update_icon()
|
||||
user.update_inv_wear_suit()
|
||||
user.update_action_buttons()
|
||||
@@ -88,4 +88,4 @@
|
||||
else
|
||||
set_light(0, 0, l_color = "#000000")
|
||||
..()
|
||||
return
|
||||
return
|
||||
|
||||
@@ -46,15 +46,15 @@
|
||||
spawn(cooldown_to_charge)
|
||||
ready = 1
|
||||
update_icon()
|
||||
to_chat(user, "<span class='notice'>\The [src] is ready to protect you once more.</span>")
|
||||
visible_message("<span class='danger'>\The [user]'s [src.name] blocks [attack_text]!</span>")
|
||||
to_chat(user, span_notice("\The [src] is ready to protect you once more."))
|
||||
visible_message(span_danger("\The [user]'s [src.name] blocks [attack_text]!"))
|
||||
update_icon()
|
||||
return 1
|
||||
return 0
|
||||
|
||||
/obj/item/clothing/suit/armor/tesla/attack_self(mob/user)
|
||||
active = !active
|
||||
to_chat(user, "<span class='notice'>You [active ? "" : "de"]activate \the [src].</span>")
|
||||
to_chat(user, span_notice("You [active ? "" : "de"]activate \the [src]."))
|
||||
update_icon()
|
||||
user.update_inv_wear_suit()
|
||||
user.update_action_buttons()
|
||||
@@ -80,5 +80,5 @@
|
||||
lightning.power = power
|
||||
lightning.old_style_target(target)
|
||||
lightning.fire()
|
||||
visible_message("<span class='danger'>\The [src] strikes \the [target] with lightning!</span>")
|
||||
playsound(src, 'sound/weapons/gauss_shoot.ogg', 75, 1)
|
||||
visible_message(span_danger("\The [src] strikes \the [target] with lightning!"))
|
||||
playsound(src, 'sound/weapons/gauss_shoot.ogg', 75, 1)
|
||||
|
||||
@@ -109,7 +109,7 @@
|
||||
sparks.set_up(5, 0, src)
|
||||
sparks.attach(loc)
|
||||
sparks.start()
|
||||
visible_message("<span class='warning'>Electrical sparks manifest from nowhere around \the [src]!</span>")
|
||||
visible_message(span_warning("Electrical sparks manifest from nowhere around \the [src]!"))
|
||||
qdel(sparks)
|
||||
if(1)
|
||||
return
|
||||
@@ -121,13 +121,13 @@
|
||||
electrocute_act(instability * 0.3, "unstable energies", 0.75)
|
||||
if(1)
|
||||
adjustFireLoss(instability * 0.15) //7.5 burn @ 50 instability
|
||||
to_chat(src, "<span class='danger'>Your chassis alerts you to overheating from an unknown external force!</span>")
|
||||
to_chat(src, span_danger("Your chassis alerts you to overheating from an unknown external force!"))
|
||||
if(2)
|
||||
adjustBruteLoss(instability * 0.15) //7.5 brute @ 50 instability
|
||||
to_chat(src, "<span class='danger'>Your chassis makes the sound of metal groaning!</span>")
|
||||
to_chat(src, span_danger("Your chassis makes the sound of metal groaning!"))
|
||||
if(3)
|
||||
safe_blink(src, range = 6)
|
||||
to_chat(src, "<span class='warning'>You're teleported against your will!</span>")
|
||||
to_chat(src, span_warning("You're teleported against your will!"))
|
||||
if(4)
|
||||
emp_act(3)
|
||||
|
||||
@@ -140,10 +140,10 @@
|
||||
emp_act(2)
|
||||
if(2)
|
||||
adjustFireLoss(instability * 0.3) //30 burn @ 100 instability
|
||||
to_chat(src, "<span class='danger'>Your chassis alerts you to extreme overheating from an unknown external force!</span>")
|
||||
to_chat(src, span_danger("Your chassis alerts you to extreme overheating from an unknown external force!"))
|
||||
if(3)
|
||||
adjustBruteLoss(instability * 0.3) //30 brute @ 100 instability
|
||||
to_chat(src, "<span class='danger'>Your chassis makes the sound of metal groaning and tearing!</span>")
|
||||
to_chat(src, span_danger("Your chassis makes the sound of metal groaning and tearing!"))
|
||||
|
||||
if(101 to 200) //Lethal
|
||||
rng = rand(0,4)
|
||||
@@ -154,10 +154,10 @@
|
||||
emp_act(1)
|
||||
if(2)
|
||||
adjustFireLoss(instability * 0.4) //40 burn @ 100 instability
|
||||
to_chat(src, "<span class='danger'>Your chassis alerts you to extreme overheating from an unknown external force!</span>")
|
||||
to_chat(src, span_danger("Your chassis alerts you to extreme overheating from an unknown external force!"))
|
||||
if(3)
|
||||
adjustBruteLoss(instability * 0.4) //40 brute @ 100 instability
|
||||
to_chat(src, "<span class='danger'>Your chassis makes the sound of metal groaning and tearing!</span>")
|
||||
to_chat(src, span_danger("Your chassis makes the sound of metal groaning and tearing!"))
|
||||
|
||||
/mob/living/carbon/human/instability_effects()
|
||||
if(instability)
|
||||
@@ -174,7 +174,7 @@
|
||||
sparks.set_up(5, 0, src)
|
||||
sparks.attach(loc)
|
||||
sparks.start()
|
||||
visible_message("<span class='warning'>Electrical sparks manifest from nowhere around \the [src]!</span>")
|
||||
visible_message(span_warning("Electrical sparks manifest from nowhere around \the [src]!"))
|
||||
qdel(sparks)
|
||||
if(1)
|
||||
return
|
||||
@@ -189,23 +189,23 @@
|
||||
if(2)
|
||||
if(can_feel_pain())
|
||||
apply_effect(instability * 0.3, AGONY)
|
||||
to_chat(src, "<span class='danger'>You feel a sharp pain!</span>")
|
||||
to_chat(src, span_danger("You feel a sharp pain!"))
|
||||
if(3)
|
||||
apply_effect(instability * 0.3, EYE_BLUR)
|
||||
to_chat(src, "<span class='danger'>Your eyes start to get cloudy!</span>")
|
||||
to_chat(src, span_danger("Your eyes start to get cloudy!"))
|
||||
if(4)
|
||||
electrocute_act(instability * 0.3, "unstable energies")
|
||||
if(5)
|
||||
adjustFireLoss(instability * 0.15) //7.5 burn @ 50 instability
|
||||
to_chat(src, "<span class='danger'>You feel your skin burn!</span>")
|
||||
to_chat(src, span_danger("You feel your skin burn!"))
|
||||
if(6)
|
||||
adjustBruteLoss(instability * 0.15) //7.5 brute @ 50 instability
|
||||
to_chat(src, "<span class='danger'>You feel a sharp pain as an unseen force harms your body!</span>")
|
||||
to_chat(src, span_danger("You feel a sharp pain as an unseen force harms your body!"))
|
||||
if(7)
|
||||
adjustToxLoss(instability * 0.15) //7.5 tox @ 50 instability
|
||||
if(8)
|
||||
safe_blink(src, range = 6)
|
||||
to_chat(src, "<span class='warning'>You're teleported against your will!</span>")
|
||||
to_chat(src, span_warning("You're teleported against your will!"))
|
||||
|
||||
if(50 to 100) //Severe
|
||||
rng = rand(0,8)
|
||||
@@ -217,18 +217,18 @@
|
||||
if(2)
|
||||
if(can_feel_pain())
|
||||
apply_effect(instability * 0.7, AGONY)
|
||||
to_chat(src, "<span class='danger'>You feel an extremly angonizing pain from all over your body!</span>")
|
||||
to_chat(src, span_danger("You feel an extremly angonizing pain from all over your body!"))
|
||||
if(3)
|
||||
apply_effect(instability * 0.5, EYE_BLUR)
|
||||
to_chat(src, "<span class='danger'>Your eyes start to get cloudy!</span>")
|
||||
to_chat(src, span_danger("Your eyes start to get cloudy!"))
|
||||
if(4)
|
||||
electrocute_act(instability * 0.5, "extremely unstable energies")
|
||||
if(5)
|
||||
fire_act()
|
||||
to_chat(src, "<span class='danger'>You spontaneously combust!</span>")
|
||||
to_chat(src, span_danger("You spontaneously combust!"))
|
||||
if(6)
|
||||
adjustCloneLoss(instability * 0.05) //5 cloneloss @ 100 instability
|
||||
to_chat(src, "<span class='danger'>You feel your body slowly degenerate.</span>")
|
||||
to_chat(src, span_danger("You feel your body slowly degenerate."))
|
||||
if(7)
|
||||
adjustToxLoss(instability * 0.25) //25 tox @ 100 instability
|
||||
|
||||
@@ -238,24 +238,24 @@
|
||||
if(0)
|
||||
apply_effect(instability, IRRADIATE)
|
||||
if(1)
|
||||
visible_message("<span class='warning'>\The [src] suddenly collapses!</span>",
|
||||
"<span class='danger'>You suddenly feel very light-headed, and faint!</span>")
|
||||
visible_message(span_warning("\The [src] suddenly collapses!"),
|
||||
span_danger("You suddenly feel very light-headed, and faint!"))
|
||||
Paralyse(instability * 0.1)
|
||||
if(2)
|
||||
if(can_feel_pain())
|
||||
apply_effect(instability, AGONY)
|
||||
to_chat(src, "<span class='danger'>You feel an extremly angonizing pain from all over your body!</span>")
|
||||
to_chat(src, span_danger("You feel an extremly angonizing pain from all over your body!"))
|
||||
if(3)
|
||||
apply_effect(instability, EYE_BLUR)
|
||||
to_chat(src, "<span class='danger'>Your eyes start to get cloudy!</span>")
|
||||
to_chat(src, span_danger("Your eyes start to get cloudy!"))
|
||||
if(4)
|
||||
electrocute_act(instability, "extremely unstable energies")
|
||||
if(5)
|
||||
fire_act()
|
||||
to_chat(src, "<span class='danger'>You spontaneously combust!</span>")
|
||||
to_chat(src, span_danger("You spontaneously combust!"))
|
||||
if(6)
|
||||
adjustCloneLoss(instability * 0.10) //5 cloneloss @ 100 instability
|
||||
to_chat(src, "<span class='danger'>You feel your body slowly degenerate.</span>")
|
||||
to_chat(src, span_danger("You feel your body slowly degenerate."))
|
||||
if(7)
|
||||
adjustToxLoss(instability * 0.40) //40 tox @ 100 instability
|
||||
|
||||
@@ -282,9 +282,9 @@
|
||||
amount = amount * armor_factor
|
||||
if(amount && prob(10))
|
||||
if(isSynthetic())
|
||||
to_chat(src, "<span class='cult'><font size='4'>Warning: Anomalous field detected.</font></span>")
|
||||
to_chat(src, span_cult("<font size='4'>Warning: Anomalous field detected.</font>"))
|
||||
else
|
||||
to_chat(src, "<span class='cult'><font size='4'>The purple glow makes you feel strange...</font></span>")
|
||||
to_chat(src, span_cult("<font size='4'>The purple glow makes you feel strange...</font>"))
|
||||
adjust_instability(amount)
|
||||
|
||||
#undef TECHNOMANCER_INSTABILITY_DECAY
|
||||
|
||||
@@ -117,7 +117,7 @@
|
||||
if(owner)
|
||||
core = owner.get_technomancer_core()
|
||||
if(!core)
|
||||
to_chat(owner, "<span class='warning'>You need a Core to do that.</span>")
|
||||
to_chat(owner, span_warning("You need a Core to do that."))
|
||||
qdel(src)
|
||||
return
|
||||
// if(istype(/obj/item/technomancer_core, owner.back))
|
||||
@@ -160,13 +160,13 @@
|
||||
if(!core)
|
||||
core = locate(/obj/item/technomancer_core) in owner
|
||||
if(!core)
|
||||
to_chat(owner, "<span class='danger'>You need to be wearing a core on your back!</span>")
|
||||
to_chat(owner, span_danger("You need to be wearing a core on your back!"))
|
||||
return 0
|
||||
if(core.loc != owner || owner.back != core) //Make sure the core's being worn.
|
||||
to_chat(owner, "<span class='danger'>You need to be wearing a core on your back!</span>")
|
||||
to_chat(owner, span_danger("You need to be wearing a core on your back!"))
|
||||
return 0
|
||||
if(!technomancers.is_antagonist(owner.mind) && !core.universal) //Now make sure the person using this is the actual antag. //VOREStation Edit - Universal cores
|
||||
to_chat(owner, "<span class='danger'>You can't seem to figure out how to make the machine work properly.</span>")
|
||||
to_chat(owner, span_danger("You can't seem to figure out how to make the machine work properly."))
|
||||
return 0
|
||||
return 1
|
||||
|
||||
@@ -269,7 +269,7 @@
|
||||
if(l_spell.aspect == ASPECT_CHROMATIC) //Check the other hand too.
|
||||
l_spell.on_combine_cast(S, src)
|
||||
else //Welp
|
||||
to_chat(src, "<span class='warning'>You require a free hand to use this function.</span>")
|
||||
to_chat(src, span_warning("You require a free hand to use this function."))
|
||||
return 0
|
||||
|
||||
if(S.run_checks())
|
||||
@@ -298,4 +298,4 @@
|
||||
// If we miss or hit an obstacle, we still want to delete the spell.
|
||||
spawn(20)
|
||||
if(src)
|
||||
qdel(src)
|
||||
qdel(src)
|
||||
|
||||
@@ -23,18 +23,18 @@
|
||||
SM = L
|
||||
if(L.summoned || (SM && SM.supernatural) )
|
||||
if(L.client) // Player-controlled mobs are immune to being killed by this.
|
||||
to_chat(user, "<span class='warning'>\The [L] resists your attempt to banish it!</span>")
|
||||
to_chat(L, "<span class='warning'>\The [user] tried to teleport you far away, but failed.</span>")
|
||||
to_chat(user, span_warning("\The [L] resists your attempt to banish it!"))
|
||||
to_chat(L, span_warning("\The [user] tried to teleport you far away, but failed."))
|
||||
return 0
|
||||
else
|
||||
visible_message("<b>\The [L]</b> vanishes!")
|
||||
qdel(L)
|
||||
else if(istype(L, /mob/living/simple_mob/construct))
|
||||
var/mob/living/simple_mob/construct/evil = L
|
||||
to_chat(evil, "<span class='danger'>\The [user]'s abjuration purges your form!</span>")
|
||||
to_chat(evil, span_danger("\The [user]'s abjuration purges your form!"))
|
||||
evil.purge = 3
|
||||
adjust_instability(5)
|
||||
// In case NarNar comes back someday.
|
||||
if(istype(hit_atom, /obj/singularity/narsie))
|
||||
to_chat(user, "<span class='danger'>One does not simply abjurate Nar'sie away.</span>")
|
||||
adjust_instability(200)
|
||||
to_chat(user, span_danger("One does not simply abjurate Nar'sie away."))
|
||||
adjust_instability(200)
|
||||
|
||||
@@ -21,11 +21,11 @@
|
||||
if(!AM.loc) //Don't teleport HUD telements to us.
|
||||
return
|
||||
if(AM.anchored)
|
||||
to_chat(user, "<span class='warning'>\The [hit_atom] is firmly secured and anchored, you can't move it!</span>")
|
||||
to_chat(user, span_warning("\The [hit_atom] is firmly secured and anchored, you can't move it!"))
|
||||
return
|
||||
|
||||
if(!within_range(hit_atom) && !check_for_scepter())
|
||||
to_chat(user, "<span class='warning'>\The [hit_atom] is too far away.</span>")
|
||||
to_chat(user, span_warning("\The [hit_atom] is too far away."))
|
||||
return
|
||||
|
||||
//Teleporting an item.
|
||||
@@ -38,18 +38,18 @@
|
||||
s2.set_up(2, 1, I)
|
||||
s1.start()
|
||||
s2.start()
|
||||
I.visible_message("<span class='danger'>\The [I] vanishes into thin air!</span>")
|
||||
I.visible_message(span_danger("\The [I] vanishes into thin air!"))
|
||||
I.forceMove(get_turf(user))
|
||||
user.drop_item(src)
|
||||
src.loc = null
|
||||
user.put_in_hands(I)
|
||||
user.visible_message("<span class='notice'>\A [I] appears in \the [user]'s hand!</span>")
|
||||
user.visible_message(span_notice("\A [I] appears in \the [user]'s hand!"))
|
||||
add_attack_logs(user,I,"Stolen with [src]")
|
||||
qdel(src)
|
||||
//Now let's try to teleport a living mob.
|
||||
else if(istype(hit_atom, /mob/living))
|
||||
var/mob/living/L = hit_atom
|
||||
to_chat(L, "<span class='danger'>You are teleported towards \the [user].</span>")
|
||||
to_chat(L, span_danger("You are teleported towards \the [user]."))
|
||||
var/datum/effect/effect/system/spark_spread/s1 = new /datum/effect/effect/system/spark_spread
|
||||
var/datum/effect/effect/system/spark_spread/s2 = new /datum/effect/effect/system/spark_spread
|
||||
s1.set_up(2, 1, user)
|
||||
@@ -62,12 +62,12 @@
|
||||
|
||||
spawn(1 SECOND)
|
||||
if(!user.Adjacent(L))
|
||||
to_chat(user, "<span class='warning'>\The [L] is out of your reach.</span>")
|
||||
to_chat(user, span_warning("\The [L] is out of your reach."))
|
||||
qdel(src)
|
||||
return
|
||||
|
||||
L.Weaken(3)
|
||||
user.visible_message("<span class='warning'><b>\The [user]</b> seizes [L]!</span>")
|
||||
user.visible_message(span_warning("<b>\The [user]</b> seizes [L]!"))
|
||||
|
||||
var/obj/item/grab/G = new(user,L)
|
||||
|
||||
@@ -77,4 +77,3 @@
|
||||
G.icon_state = "grabbed1"
|
||||
G.synch()
|
||||
qdel(src)
|
||||
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
if(istype(W, /obj/item/spell))
|
||||
var/obj/item/spell/spell = W
|
||||
if(!spell.aspect || spell.aspect == ASPECT_CHROMATIC)
|
||||
to_chat(user, "<span class='warning'>You cannot combine \the [spell] with \the [src], as the aspects are incompatible.</span>")
|
||||
to_chat(user, span_warning("You cannot combine \the [spell] with \the [src], as the aspects are incompatible."))
|
||||
return
|
||||
user.drop_item(src)
|
||||
src.loc = null
|
||||
|
||||
@@ -30,7 +30,7 @@
|
||||
continue
|
||||
|
||||
if(L.isSynthetic())
|
||||
to_chat(L, "<span class='danger'>ERROR: Electrical fault detected!</span>")
|
||||
to_chat(L, span_danger("ERROR: Electrical fault detected!"))
|
||||
L.stuttering += 3
|
||||
|
||||
if(ishuman(L))
|
||||
|
||||
@@ -35,11 +35,11 @@
|
||||
if(L.isSynthetic())
|
||||
L.adjustBruteLoss(damage_to_inflict)
|
||||
if(damage_to_inflict && prob(10))
|
||||
to_chat(L, "<span class='danger'>Your chassis seems to slowly be decaying and breaking down.</span>")
|
||||
to_chat(L, span_danger("Your chassis seems to slowly be decaying and breaking down."))
|
||||
else
|
||||
L.adjustToxLoss(damage_to_inflict)
|
||||
if(damage_to_inflict && prob(10))
|
||||
to_chat(L, "<span class='danger'>You feel almost like you're melting from the inside!</span>")
|
||||
to_chat(L, span_danger("You feel almost like you're melting from the inside!"))
|
||||
|
||||
|
||||
adjust_instability(2)
|
||||
adjust_instability(2)
|
||||
|
||||
@@ -48,7 +48,7 @@
|
||||
L.buckled.unbuckle_mob()
|
||||
AM.forceMove(destination)
|
||||
AM.visible_message("<b>\The [AM]</b> vanishes!")
|
||||
to_chat(AM, "<span class='notice'>You suddenly appear somewhere else!</span>")
|
||||
to_chat(AM, span_notice("You suddenly appear somewhere else!"))
|
||||
new /obj/effect/effect/sparks(destination)
|
||||
new /obj/effect/effect/sparks(starting)
|
||||
return
|
||||
@@ -57,10 +57,10 @@
|
||||
if(istype(hit_atom, /atom/movable))
|
||||
var/atom/movable/AM = hit_atom
|
||||
if(!within_range(AM))
|
||||
to_chat(user, "<span class='warning'>\The [AM] is too far away to blink.</span>")
|
||||
to_chat(user, span_warning("\The [AM] is too far away to blink."))
|
||||
return
|
||||
if(!allowed_to_teleport())
|
||||
to_chat(user, "<span class='warning'>Teleportation doesn't seem to work here.</span>")
|
||||
to_chat(user, span_warning("Teleportation doesn't seem to work here."))
|
||||
return
|
||||
if(pay_energy(400))
|
||||
if(check_for_scepter())
|
||||
@@ -70,11 +70,11 @@
|
||||
adjust_instability(3)
|
||||
add_attack_logs(user,AM,"Blinked")
|
||||
else
|
||||
to_chat(user, "<span class='warning'>You need more energy to blink [AM] away!</span>")
|
||||
to_chat(user, span_warning("You need more energy to blink [AM] away!"))
|
||||
|
||||
/obj/item/spell/blink/on_use_cast(mob/user)
|
||||
if(!allowed_to_teleport())
|
||||
to_chat(user, "<span class='warning'>Teleportation doesn't seem to work here.</span>")
|
||||
to_chat(user, span_warning("Teleportation doesn't seem to work here."))
|
||||
return
|
||||
if(pay_energy(200))
|
||||
if(check_for_scepter())
|
||||
@@ -84,16 +84,16 @@
|
||||
adjust_instability(1)
|
||||
add_attack_logs(user,user,"Blinked")
|
||||
else
|
||||
to_chat(user, "<span class='warning'>You need more energy to blink yourself away!</span>")
|
||||
to_chat(user, span_warning("You need more energy to blink yourself away!"))
|
||||
|
||||
/obj/item/spell/blink/on_melee_cast(atom/hit_atom, mob/living/user, def_zone)
|
||||
if(istype(hit_atom, /atom/movable))
|
||||
var/atom/movable/AM = hit_atom
|
||||
if(!allowed_to_teleport())
|
||||
to_chat(user, "<span class='warning'>Teleportation doesn't seem to work here.</span>")
|
||||
to_chat(user, span_warning("Teleportation doesn't seem to work here."))
|
||||
return
|
||||
if(pay_energy(300))
|
||||
visible_message("<span class='danger'>\The [user] reaches out towards \the [AM] with a glowing hand.</span>")
|
||||
visible_message(span_danger("\The [user] reaches out towards \the [AM] with a glowing hand."))
|
||||
if(check_for_scepter())
|
||||
safe_blink(AM, 10)
|
||||
else
|
||||
@@ -101,4 +101,4 @@
|
||||
adjust_instability(2)
|
||||
add_attack_logs(user,AM,"Blinked")
|
||||
else
|
||||
to_chat(user, "<span class='warning'>You need more energy to blink [AM] away!</span>")
|
||||
to_chat(user, span_warning("You need more energy to blink [AM] away!"))
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
var/turf/T = get_turf(hit_atom)
|
||||
if(T)
|
||||
new /obj/effect/temporary_effect/chroma(T, color_to_use)
|
||||
to_chat(user, "<span class='notice'>You shift the light onto \the [T].</span>")
|
||||
to_chat(user, span_notice("You shift the light onto \the [T]."))
|
||||
qdel(src)
|
||||
|
||||
/obj/item/spell/chroma/on_use_cast(mob/user)
|
||||
|
||||
@@ -92,7 +92,7 @@
|
||||
if(choice == "Yes")
|
||||
for(var/mob/living/L in controlled_mobs)
|
||||
deselect(L)
|
||||
to_chat(user, "<span class='notice'>You've released control of all entities you had in control.</span>")
|
||||
to_chat(user, span_notice("You've released control of all entities you had in control."))
|
||||
|
||||
|
||||
/obj/item/spell/control/on_ranged_cast(atom/hit_atom, mob/living/user)
|
||||
@@ -106,21 +106,21 @@
|
||||
if(L.mob_class & allowed_mob_classes)
|
||||
if(!(L in controlled_mobs)) //Selecting
|
||||
if(L.client)
|
||||
to_chat(user, "<span class='danger'>\The [L] seems to resist you!</span>")
|
||||
to_chat(user, span_danger("\The [L] seems to resist you!"))
|
||||
return 0
|
||||
if(!L.has_AI())
|
||||
to_chat(user, span_warning("\The [L] seems too dim for this to work on them."))
|
||||
return FALSE
|
||||
if(pay_energy(500))
|
||||
select(L)
|
||||
to_chat(user, "<span class='notice'>\The [L] is now under your (limited) control.</span>")
|
||||
to_chat(user, span_notice("\The [L] is now under your (limited) control."))
|
||||
else //Deselect them
|
||||
deselect(L)
|
||||
to_chat(user, "<span class='notice'>You free \the [L] from your grasp.</span>")
|
||||
to_chat(user, span_notice("You free \the [L] from your grasp."))
|
||||
|
||||
else //Let's attack
|
||||
if(!controlled_mobs.len)
|
||||
to_chat(user, "<span class='warning'>You have no entities under your control to command.</span>")
|
||||
to_chat(user, span_warning("You have no entities under your control to command."))
|
||||
return 0
|
||||
if(pay_energy(25 * controlled_mobs.len))
|
||||
attack_all(L)
|
||||
@@ -134,7 +134,7 @@
|
||||
else if(isturf(hit_atom))
|
||||
var/turf/T = hit_atom
|
||||
if(!controlled_mobs.len)
|
||||
to_chat(user, "<span class='warning'>You have no entities under your control to command.</span>")
|
||||
to_chat(user, span_warning("You have no entities under your control to command."))
|
||||
return 0
|
||||
if(pay_energy(10 * controlled_mobs.len))
|
||||
move_all(T)
|
||||
|
||||
@@ -33,15 +33,15 @@
|
||||
if(!siphoning)
|
||||
return
|
||||
if(!pay_energy(100))
|
||||
to_chat(owner, "<span class='warning'>You can't afford to maintain the siphon link!</span>")
|
||||
to_chat(owner, span_warning("You can't afford to maintain the siphon link!"))
|
||||
stop_siphoning()
|
||||
return
|
||||
if(get_dist(siphoning, get_turf(src)) > 4)
|
||||
to_chat(owner, "<span class='warning'>\The [siphoning] is too far to drain from!</span>")
|
||||
to_chat(owner, span_warning("\The [siphoning] is too far to drain from!"))
|
||||
stop_siphoning()
|
||||
return
|
||||
if(!(siphoning in view(owner)))
|
||||
to_chat(owner, "<span class='warning'>\The [siphoning] cannot be seen!</span>")
|
||||
to_chat(owner, span_warning("\The [siphoning] cannot be seen!"))
|
||||
stop_siphoning()
|
||||
return
|
||||
siphon(siphoning, owner)
|
||||
@@ -53,7 +53,7 @@
|
||||
var/atom/movable/AM = hit_atom
|
||||
populate_siphon_list(AM)
|
||||
if(!things_to_siphon.len)
|
||||
to_chat(user, "<span class='warning'>You cannot steal energy from \a [AM].</span>")
|
||||
to_chat(user, span_warning("You cannot steal energy from \a [AM]."))
|
||||
return 0
|
||||
siphoning = AM
|
||||
update_icon()
|
||||
@@ -137,18 +137,18 @@
|
||||
// Now we can actually fill up the core.
|
||||
if(core.energy < core.max_energy)
|
||||
give_energy(charge_to_give)
|
||||
to_chat(user, "<span class='notice'>Stolen [charge_to_give * CELLRATE] kJ and converted to [charge_to_give] Core energy.</span>")
|
||||
to_chat(user, span_notice("Stolen [charge_to_give * CELLRATE] kJ and converted to [charge_to_give] Core energy."))
|
||||
if( (core.max_energy - core.energy) < charge_to_give ) // We have some overflow, if this is true.
|
||||
if(user.isSynthetic()) // Let's do something with it, if we're a robot.
|
||||
charge_to_give = charge_to_give - (core.max_energy - core.energy)
|
||||
user.adjust_nutrition(charge_to_give / SIPHON_FBP_TO_ENERGY)
|
||||
to_chat(user, "<span class='notice'>Redirected energy to internal microcell.</span>")
|
||||
to_chat(user, span_notice("Redirected energy to internal microcell."))
|
||||
else
|
||||
to_chat(user, "<span class='notice'>Stolen [charge_to_give * CELLRATE] kJ.</span>")
|
||||
to_chat(user, span_notice("Stolen [charge_to_give * CELLRATE] kJ."))
|
||||
adjust_instability(2)
|
||||
|
||||
if(flow_remaining == flow_rate) // We didn't drain anything.
|
||||
to_chat(user, "<span class='warning'>\The [siphoning] cannot be drained any further.</span>")
|
||||
to_chat(user, span_warning("\The [siphoning] cannot be drained any further."))
|
||||
stop_siphoning()
|
||||
|
||||
/obj/item/spell/energy_siphon/update_icon()
|
||||
@@ -202,4 +202,4 @@
|
||||
|
||||
#undef SIPHON_CELL_TO_ENERGY
|
||||
#undef SIPHON_FBP_TO_ENERGY
|
||||
#undef SIPHON_CORE_TO_ENERGY
|
||||
#undef SIPHON_CORE_TO_ENERGY
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
/obj/item/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>")
|
||||
visible_message(span_warning("\The [loc]'s hand begins to emit a flame."))
|
||||
welder = new /obj/item/weldingtool/spell(src)
|
||||
welder.setWelding(1)
|
||||
|
||||
@@ -43,8 +43,8 @@
|
||||
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>")
|
||||
to_chat(L, "<span class='danger'>You ignite!</span>")
|
||||
visible_message(span_danger("\The [user] reaches out towards \the [L] with the flaming hand, and they ignite!"))
|
||||
to_chat(L, span_danger("You ignite!"))
|
||||
L.fire_act()
|
||||
add_attack_logs(user,L,"Ignited with [src]")
|
||||
adjust_instability(12)
|
||||
|
||||
@@ -49,7 +49,7 @@
|
||||
var/rare_spell_chance = between(0, calculate_spell_power(100) - 100, 100) // Having 120% spellpower means a 20% chance to get to roll for rare spells.
|
||||
if(prob(rare_spell_chance))
|
||||
potential_spells += rare_spells.Copy()
|
||||
to_chat(owner, "<span class='notice'>You feel a bit luckier...</span>")
|
||||
to_chat(owner, span_notice("You feel a bit luckier..."))
|
||||
return pick(potential_spells)
|
||||
|
||||
// Gives a "random" spell.
|
||||
@@ -59,7 +59,7 @@
|
||||
var/give_rare_spells = FALSE
|
||||
if(prob(rare_spell_chance))
|
||||
give_rare_spells = TRUE
|
||||
to_chat(owner, "<span class='notice'>You feel a bit luckier...</span>")
|
||||
to_chat(owner, span_notice("You feel a bit luckier..."))
|
||||
|
||||
// First the spell will concern itself with the health of the technomancer.
|
||||
if(prob(owner.getBruteLoss() + owner.getBruteLoss() * 2)) // Having 20 brute means a 40% chance of being added to the pool.
|
||||
@@ -131,4 +131,4 @@
|
||||
if(!potential_spells.len)
|
||||
potential_spells = all_technomancer_gambit_spells.Copy()
|
||||
|
||||
return pick(potential_spells)
|
||||
return pick(potential_spells)
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
if(pay_energy(100))
|
||||
copied = AM
|
||||
update_icon()
|
||||
to_chat(user, "<span class='notice'>You've copied \the [AM]'s appearance.</span>")
|
||||
to_chat(user, span_notice("You've copied \the [AM]'s appearance."))
|
||||
user << 'sound/weapons/flash.ogg'
|
||||
return 1
|
||||
else if(istype(hit_atom, /turf))
|
||||
@@ -34,7 +34,7 @@
|
||||
illusion = new(T)
|
||||
illusion.copy_appearance(copied)
|
||||
illusion.copy_overlays(copied, TRUE)
|
||||
to_chat(user, "<span class='notice'>An illusion of \the [copied] is made on \the [T].</span>")
|
||||
to_chat(user, span_notice("An illusion of \the [copied] is made on \the [T]."))
|
||||
user << 'sound/effects/pop.ogg'
|
||||
return 1
|
||||
else
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
if(H.isSynthetic() || H.does_not_breathe) // It's hard to choke a robot or something that doesn't breathe.
|
||||
on_expire()
|
||||
return
|
||||
to_chat(H, "<span class='warning'>You are having difficulty breathing!</span>")
|
||||
to_chat(H, span_warning("You are having difficulty breathing!"))
|
||||
var/pulses = 3
|
||||
var/warned_victim = 0
|
||||
while(pulses)
|
||||
@@ -68,7 +68,7 @@
|
||||
//to_world("Predicted hardcrit.")
|
||||
return 1
|
||||
else if(predicted_damage >= victim.species.total_health / 2) // Or perhaps we're gonna go into 'oxy crit'.
|
||||
to_chat(victim, "<span class='danger'>You feel really light-headed, and everything seems to be fading...</span>")
|
||||
to_chat(victim, span_danger("You feel really light-headed, and everything seems to be fading..."))
|
||||
//to_world("Predicted oxycrit.")
|
||||
return 1
|
||||
//If we're at this point, the spell is not going to result in critting.
|
||||
|
||||
@@ -41,7 +41,7 @@
|
||||
if(!allow_stacking)
|
||||
for(var/obj/item/inserted_spell/IS in L.contents)
|
||||
if(IS.type == inserting)
|
||||
to_chat(user, "<span class='warning'>\The [L] is already affected by \the [src].</span>")
|
||||
to_chat(user, span_warning("\The [L] is already affected by \the [src]."))
|
||||
return
|
||||
var/obj/item/inserted_spell/inserted = new inserting(L,user,src)
|
||||
inserted.spell_power_at_creation = calculate_spell_power(1.0)
|
||||
@@ -56,4 +56,4 @@
|
||||
/obj/item/spell/insert/on_ranged_cast(atom/hit_atom, mob/user)
|
||||
if(istype(hit_atom, /mob/living))
|
||||
var/mob/living/L = hit_atom
|
||||
insert(L,user)
|
||||
insert(L,user)
|
||||
|
||||
@@ -42,7 +42,7 @@ GLOBAL_LIST_INIT(mark_spells, list())
|
||||
|
||||
/obj/item/spell/mark/on_use_cast(var/mob/living/user)
|
||||
if(!allowed_to_teleport()) // Otherwise you could teleport back to the admin Z-level.
|
||||
to_chat(user, "<span class='warning'>You can't teleport here!</span>")
|
||||
to_chat(user, span_warning("You can't teleport here!"))
|
||||
return 0
|
||||
if(pay_energy(1000))
|
||||
//VOREStation Add - Multiple technomancer support
|
||||
@@ -50,16 +50,16 @@ GLOBAL_LIST_INIT(mark_spells, list())
|
||||
//They have one in the list
|
||||
if(istype(marker))
|
||||
qdel(marker)
|
||||
to_chat(user, "<span class='notice'>Your mark is moved from its old position to \the [get_turf(user)] under you.</span>")
|
||||
to_chat(user, span_notice("Your mark is moved from its old position to \the [get_turf(user)] under you."))
|
||||
//They don't have one yet
|
||||
else
|
||||
to_chat(user, "<span class='notice'>You mark \the [get_turf(user)] under you.</span>")
|
||||
to_chat(user, span_notice("You mark \the [get_turf(user)] under you."))
|
||||
GLOB.mark_spells[WEAKREF(user)] = new /datum/technomancer_marker(user)
|
||||
//VOREStation Add End
|
||||
adjust_instability(5)
|
||||
return 1
|
||||
else
|
||||
to_chat(user, "<span class='warning'>You can't afford the energy cost!</span>")
|
||||
to_chat(user, span_warning("You can't afford the energy cost!"))
|
||||
return 0
|
||||
|
||||
//Recall
|
||||
@@ -85,21 +85,21 @@ GLOBAL_LIST_INIT(mark_spells, list())
|
||||
if(pay_energy(3000))
|
||||
var/datum/technomancer_marker/marker = GLOB.mark_spells[WEAKREF(user)] //VOREStation Add - Multiple technomancer support
|
||||
if(!istype(marker))
|
||||
to_chat(user, "<span class='danger'>There's no Mark!</span>")
|
||||
to_chat(user, span_danger("There's no Mark!"))
|
||||
return 0
|
||||
else
|
||||
if(!allowed_to_teleport())
|
||||
to_chat(user, "<span class='warning'>Teleportation doesn't seem to work here.</span>")
|
||||
to_chat(user, span_warning("Teleportation doesn't seem to work here."))
|
||||
return
|
||||
visible_message("<span class='warning'>\The [user] starts glowing!</span>")
|
||||
visible_message(span_warning("\The [user] starts glowing!"))
|
||||
var/light_intensity = 2
|
||||
var/time_left = 3
|
||||
if(check_for_scepter())
|
||||
time_left = 2
|
||||
while(time_left)
|
||||
if(user.incapacitated())
|
||||
visible_message("<span class='notice'>\The [user]'s glow fades.</span>")
|
||||
to_chat(user, "<span class='danger'>You cannot Recall while incapacitated!</span>")
|
||||
visible_message(span_notice("\The [user]'s glow fades."))
|
||||
to_chat(user, span_danger("You cannot Recall while incapacitated!"))
|
||||
return 0
|
||||
light_intensity++
|
||||
set_light(light_intensity, light_intensity, l_color = "#006AFF")
|
||||
@@ -112,10 +112,10 @@ GLOBAL_LIST_INIT(mark_spells, list())
|
||||
for(var/obj/item/grab/G in user.contents) // People the Technomancer is grabbing come along for the ride.
|
||||
if(G.affecting)
|
||||
G.affecting.forceMove(locate( target_turf.x+rand(-1,1), target_turf.y+rand(-1,1), target_turf.z))
|
||||
to_chat(G.affecting, "<span class='warning'>You are teleported along with [user]!</span>")
|
||||
to_chat(G.affecting, span_warning("You are teleported along with [user]!"))
|
||||
|
||||
user.forceMove(target_turf)
|
||||
to_chat(user, "<span class='notice'>You are teleported to your Mark.</span>")
|
||||
to_chat(user, span_notice("You are teleported to your Mark."))
|
||||
|
||||
playsound(target_turf, 'sound/effects/phasein.ogg', 25, 1)
|
||||
playsound(target_turf, 'sound/effects/sparks2.ogg', 50, 1)
|
||||
@@ -126,5 +126,5 @@ GLOBAL_LIST_INIT(mark_spells, list())
|
||||
qdel(src)
|
||||
return 1
|
||||
else
|
||||
to_chat(user, "<span class='warning'>You can't afford the energy cost!</span>")
|
||||
to_chat(user, span_warning("You can't afford the energy cost!"))
|
||||
return 0
|
||||
|
||||
@@ -24,10 +24,10 @@
|
||||
desc = "You appear to be glowing really bright. It doesn't seem to hurt, however hiding will be impossible."
|
||||
mob_overlay_state = "corona"
|
||||
|
||||
on_created_text = "<span class='warning'>You start to glow very brightly!</span>"
|
||||
on_expired_text = "<span class='notice'>Your glow has ended.</span>"
|
||||
on_created_text = span_warning("You start to glow very brightly!")
|
||||
on_expired_text = span_notice("Your glow has ended.")
|
||||
evasion = -30
|
||||
stacks = MODIFIER_STACK_EXTEND
|
||||
|
||||
/datum/modifier/technomancer/corona/tick()
|
||||
holder.break_cloak()
|
||||
holder.break_cloak()
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
desc = "Moving is almost effortless!"
|
||||
mob_overlay_state = "haste"
|
||||
|
||||
on_created_text = "<span class='notice'>You suddenly find it much easier to move.</span>"
|
||||
on_expired_text = "<span class='warning'>You feel slow again.</span>"
|
||||
on_created_text = span_notice("You suddenly find it much easier to move.")
|
||||
on_expired_text = span_warning("You feel slow again.")
|
||||
haste = TRUE
|
||||
stacks = MODIFIER_STACK_EXTEND
|
||||
stacks = MODIFIER_STACK_EXTEND
|
||||
|
||||
@@ -15,8 +15,8 @@
|
||||
desc = "You feel serene and well rested."
|
||||
mob_overlay_state = "green_sparkles"
|
||||
|
||||
on_created_text = "<span class='warning'>Sparkles begin to appear around you, and all your ills seem to fade away.</span>"
|
||||
on_expired_text = "<span class='notice'>The sparkles have faded, although you feel much healthier than before.</span>"
|
||||
on_created_text = span_warning("Sparkles begin to appear around you, and all your ills seem to fade away.")
|
||||
on_expired_text = span_notice("The sparkles have faded, although you feel much healthier than before.")
|
||||
stacks = MODIFIER_STACK_EXTEND
|
||||
|
||||
/datum/modifier/technomancer/mend_all/tick()
|
||||
@@ -32,4 +32,4 @@
|
||||
if(origin)
|
||||
var/mob/living/L = origin.resolve()
|
||||
if(istype(L))
|
||||
L.adjust_instability(1)
|
||||
L.adjust_instability(1)
|
||||
|
||||
@@ -24,8 +24,8 @@
|
||||
desc = "You feel rather refreshed."
|
||||
mob_overlay_state = "green_sparkles"
|
||||
|
||||
on_created_text = "<span class='warning'>Sparkles begin to appear around you, and you feel really.. refreshed.</span>"
|
||||
on_expired_text = "<span class='notice'>The sparkles have faded, although you feel healthier than before.</span>"
|
||||
on_created_text = span_warning("Sparkles begin to appear around you, and you feel really.. refreshed.")
|
||||
on_expired_text = span_notice("The sparkles have faded, although you feel healthier than before.")
|
||||
stacks = MODIFIER_STACK_EXTEND
|
||||
|
||||
/datum/modifier/technomancer/mend_life/tick()
|
||||
|
||||
@@ -24,8 +24,8 @@
|
||||
desc = "Something seems to be repairing you."
|
||||
mob_overlay_state = "cyan_sparkles"
|
||||
|
||||
on_created_text = "<span class='warning'>Sparkles begin to appear around you, and your systems report integrity rising.</span>"
|
||||
on_expired_text = "<span class='notice'>The sparkles have faded, although your systems seem to be better than before.</span>"
|
||||
on_created_text = span_warning("Sparkles begin to appear around you, and your systems report integrity rising.")
|
||||
on_expired_text = span_notice("The sparkles have faded, although your systems seem to be better than before.")
|
||||
stacks = MODIFIER_STACK_EXTEND
|
||||
|
||||
/datum/modifier/technomancer/mend_synthetic/tick()
|
||||
|
||||
@@ -24,8 +24,8 @@
|
||||
desc = "You feel rather clean and pure."
|
||||
mob_overlay_state = "green_sparkles"
|
||||
|
||||
on_created_text = "<span class='warning'>Sparkles begin to appear around you, and you feel really.. pure.</span>"
|
||||
on_expired_text = "<span class='notice'>The sparkles have faded, although you feel healthier than before.</span>"
|
||||
on_created_text = span_warning("Sparkles begin to appear around you, and you feel really.. pure.")
|
||||
on_expired_text = span_notice("The sparkles have faded, although you feel healthier than before.")
|
||||
stacks = MODIFIER_STACK_EXTEND
|
||||
|
||||
/datum/modifier/technomancer/purify/tick()
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
desc = "A repulsion field can always be useful to have."
|
||||
mob_overlay_state = "repel_missiles"
|
||||
|
||||
on_created_text = "<span class='notice'>You have a repulsion field around you, which will attempt to deflect projectiles.</span>"
|
||||
on_expired_text = "<span class='warning'>Your repulsion field has expired.</span>"
|
||||
on_created_text = span_notice("You have a repulsion field around you, which will attempt to deflect projectiles.")
|
||||
on_expired_text = span_warning("Your repulsion field has expired.")
|
||||
evasion = 45
|
||||
stacks = MODIFIER_STACK_EXTEND
|
||||
stacks = MODIFIER_STACK_EXTEND
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
if(busy) //Prevent someone from trying to get two uses of the spell from one instance.
|
||||
return 0
|
||||
if(!allowed_to_teleport())
|
||||
to_chat(user, "<span class='warning'>You can't teleport here!</span>")
|
||||
to_chat(user, span_warning("You can't teleport here!"))
|
||||
return 0
|
||||
// if(isturf(hit_atom))
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
var/turf/our_turf = get_turf(user) //Where we are.
|
||||
if(!T.density)
|
||||
if(!T.check_density())
|
||||
to_chat(user, "<span class='warning'>Perhaps you should try using passWALL on a wall, or other solid object.</span>")
|
||||
to_chat(user, span_warning("Perhaps you should try using passWALL on a wall, or other solid object."))
|
||||
return 0
|
||||
var/direction = get_dir(our_turf, T)
|
||||
var/total_cost = 0
|
||||
@@ -36,7 +36,7 @@
|
||||
var/turf/found_turf = null //Our destination, if one is found.
|
||||
var/i = maximum_distance
|
||||
|
||||
visible_message("<span class='info'>[user] rests a hand on \the [hit_atom].</span>")
|
||||
visible_message(span_info("[user] rests a hand on \the [hit_atom]."))
|
||||
busy = 1
|
||||
|
||||
var/datum/effect/effect/system/spark_spread/spark_system = new /datum/effect/effect/system/spark_spread()
|
||||
@@ -62,18 +62,18 @@
|
||||
|
||||
if(found_turf)
|
||||
if(user.loc != our_turf)
|
||||
to_chat(user, "<span class='warning'>You need to stand still in order to phase through \the [hit_atom].</span>")
|
||||
to_chat(user, span_warning("You need to stand still in order to phase through \the [hit_atom]."))
|
||||
return 0
|
||||
if(pay_energy(total_cost) && !user.incapacitated() )
|
||||
visible_message("<span class='warning'>[user] appears to phase through \the [hit_atom]!</span>")
|
||||
to_chat(user, "<span class='info'>You find a destination on the other side of \the [hit_atom], and phase through it.</span>")
|
||||
visible_message(span_warning("[user] appears to phase through \the [hit_atom]!"))
|
||||
to_chat(user, span_info("You find a destination on the other side of \the [hit_atom], and phase through it."))
|
||||
spark_system.start()
|
||||
user.forceMove(found_turf)
|
||||
qdel(src)
|
||||
return 1
|
||||
else
|
||||
to_chat(user, "<span class='warning'>You don't have enough energy to phase through these walls!</span>")
|
||||
to_chat(user, span_warning("You don't have enough energy to phase through these walls!"))
|
||||
busy = 0
|
||||
else
|
||||
to_chat(user, "<span class='info'>You weren't able to find an open space to go to.</span>")
|
||||
to_chat(user, span_info("You weren't able to find an open space to go to."))
|
||||
busy = 0
|
||||
|
||||
@@ -47,7 +47,7 @@
|
||||
if(user.stat)
|
||||
return
|
||||
|
||||
to_chat(user, "<span class='notice'>You step out of the rift.</span>")
|
||||
to_chat(user, span_notice("You step out of the rift."))
|
||||
user.forceMove(get_turf(src))
|
||||
qdel(src)
|
||||
|
||||
@@ -55,12 +55,12 @@
|
||||
if(isturf(user.loc)) //Check if we're not already in a rift.
|
||||
if(pay_energy(2000))
|
||||
var/obj/effect/phase_shift/PS = new(get_turf(user))
|
||||
visible_message("<span class='warning'>[user] vanishes into a pink rift!</span>")
|
||||
to_chat(user, "<span class='info'>You create an unstable rift, and go through it. Be sure to not stay too long.</span>")
|
||||
visible_message(span_warning("[user] vanishes into a pink rift!"))
|
||||
to_chat(user, span_info("You create an unstable rift, and go through it. Be sure to not stay too long."))
|
||||
user.forceMove(PS)
|
||||
adjust_instability(10)
|
||||
qdel(src)
|
||||
else
|
||||
to_chat(user, "<span class='warning'>You don't have enough energy to make a rift!</span>")
|
||||
to_chat(user, span_warning("You don't have enough energy to make a rift!"))
|
||||
else //We're already in a rift or something like a closet.
|
||||
to_chat(user, "<span class='warning'>Making a rift here would probably be a bad idea.</span>")
|
||||
to_chat(user, span_warning("Making a rift here would probably be a bad idea."))
|
||||
|
||||
@@ -69,12 +69,9 @@
|
||||
|
||||
if(new_target)
|
||||
var/turf/curloc = get_turf(target_mob)
|
||||
curloc.visible_message("<span class='danger'>\The [src] bounces to \the [new_target]!</span>")
|
||||
curloc.visible_message(span_danger("\The [src] bounces to \the [new_target]!"))
|
||||
redirect(new_target.x, new_target.y, curloc, firer)
|
||||
bounces--
|
||||
|
||||
return 0
|
||||
return 1
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -21,12 +21,12 @@
|
||||
set_light(3, 2, l_color = "#006AFF")
|
||||
spark_system = new /datum/effect/effect/system/spark_spread()
|
||||
spark_system.set_up(5, 0, src)
|
||||
to_chat(owner, "<span class='notice'>Your shield will expire in 5 seconds!</span>")
|
||||
to_chat(owner, span_notice("Your shield will expire in 5 seconds!"))
|
||||
QDEL_IN(src, 5 SECONDS)
|
||||
|
||||
/obj/item/spell/reflect/Destroy()
|
||||
if(owner)
|
||||
to_chat(owner, "<span class='danger'>Your shield expires!</span>")
|
||||
to_chat(owner, span_danger("Your shield expires!"))
|
||||
spark_system = null
|
||||
return ..()
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
var/damage_to_energy_cost = (damage_to_energy_multiplier * damage)
|
||||
|
||||
if(!pay_energy(damage_to_energy_cost))
|
||||
to_chat(owner, "<span class='danger'>Your shield fades due to lack of energy!</span>")
|
||||
to_chat(owner, span_danger("Your shield fades due to lack of energy!"))
|
||||
qdel(src)
|
||||
return 0
|
||||
|
||||
@@ -49,7 +49,7 @@
|
||||
var/obj/item/projectile/P = damage_source
|
||||
|
||||
if(P.starting && !P.reflected)
|
||||
visible_message("<span class='danger'>\The [user]'s [src.name] reflects [attack_text]!</span>")
|
||||
visible_message(span_danger("\The [user]'s [src.name] reflects [attack_text]!"))
|
||||
|
||||
var/turf/curloc = get_turf(user)
|
||||
|
||||
@@ -67,7 +67,7 @@
|
||||
if(!reflecting)
|
||||
reflecting = 1
|
||||
spawn(2 SECONDS) //To ensure that most or all of a burst fire cycle is reflected.
|
||||
to_chat(owner, "<span class='danger'>Your shield fades due being used up!</span>")
|
||||
to_chat(owner, span_danger("Your shield fades due being used up!"))
|
||||
qdel(src)
|
||||
|
||||
return PROJECTILE_CONTINUE // complete projectile permutation
|
||||
@@ -87,7 +87,7 @@
|
||||
if(!reflecting)
|
||||
reflecting = 1
|
||||
spawn(2 SECONDS) //To ensure that most or all of a burst fire cycle is reflected.
|
||||
to_chat(owner, "<span class='danger'>Your shield fades due being used up!</span>")
|
||||
to_chat(owner, span_danger("Your shield fades due being used up!"))
|
||||
qdel(src)
|
||||
return 1
|
||||
return 0
|
||||
|
||||
@@ -19,16 +19,16 @@
|
||||
if(isliving(hit_atom))
|
||||
var/mob/living/L = hit_atom
|
||||
if(L == user)
|
||||
to_chat(user, "<span class='warning'>Clever as you may seem, this won't work on yourself while alive.</span>")
|
||||
to_chat(user, span_warning("Clever as you may seem, this won't work on yourself while alive."))
|
||||
return 0
|
||||
if(L.stat != DEAD)
|
||||
to_chat(user, "<span class='warning'>\The [L] isn't dead!</span>")
|
||||
to_chat(user, span_warning("\The [L] isn't dead!"))
|
||||
return 0
|
||||
if(pay_energy(5000))
|
||||
if(L.tod > world.time + 30 MINUTES)
|
||||
to_chat(user, "<span class='danger'>\The [L]'s been dead for too long, even this function cannot replace cloning at this point.</span>")
|
||||
to_chat(user, span_danger("\The [L]'s been dead for too long, even this function cannot replace cloning at this point."))
|
||||
return 0
|
||||
to_chat(user, "<span class='notice'>You stab \the [L] with a hidden integrated hypo, attempting to bring them back...</span>")
|
||||
to_chat(user, span_notice("You stab \the [L] with a hidden integrated hypo, attempting to bring them back..."))
|
||||
if(istype(L, /mob/living/simple_mob))
|
||||
var/mob/living/simple_mob/SM = L
|
||||
SM.health = SM.getMaxHealth() / 3
|
||||
@@ -56,10 +56,10 @@
|
||||
dead_mob_list -= H
|
||||
living_mob_list += H
|
||||
H.timeofdeath = null
|
||||
visible_message("<span class='danger'>\The [H]'s eyes open!</span>")
|
||||
to_chat(user, "<span class='notice'>It's alive!</span>")
|
||||
visible_message(span_danger("\The [H]'s eyes open!"))
|
||||
to_chat(user, span_notice("It's alive!"))
|
||||
adjust_instability(50)
|
||||
log_and_message_admins("has resurrected [H].")
|
||||
else
|
||||
to_chat(user, "<span class='warning'>The body of \the [H] doesn't seem to respond, perhaps you could try again?</span>")
|
||||
adjust_instability(10)
|
||||
to_chat(user, span_warning("The body of \the [H] doesn't seem to respond, perhaps you could try again?"))
|
||||
adjust_instability(10)
|
||||
|
||||
@@ -17,13 +17,13 @@
|
||||
if(ishuman(hit_atom) && within_range(hit_atom))
|
||||
var/mob/living/carbon/human/H = hit_atom
|
||||
if(H == user)
|
||||
to_chat(user, "<span class='warning'>Draining instability out of you to put it back seems a bit pointless.</span>")
|
||||
to_chat(user, span_warning("Draining instability out of you to put it back seems a bit pointless."))
|
||||
return 0
|
||||
if(H.instability <= 0)
|
||||
to_chat(user, "<span class='warning'>\The [H] has no instability to drain.</span>")
|
||||
to_chat(user, span_warning("\The [H] has no instability to drain."))
|
||||
return 0
|
||||
if(pay_energy(500))
|
||||
var/instability_to_drain = min(H.instability, 25)
|
||||
to_chat(user, "<span class='notice'>You draw instability away from \the [H] and towards you.</span>")
|
||||
to_chat(user, span_notice("You draw instability away from \the [H] and towards you."))
|
||||
adjust_instability(instability_to_drain)
|
||||
H.adjust_instability(-calculate_spell_power(instability_to_drain))
|
||||
H.adjust_instability(-calculate_spell_power(instability_to_drain))
|
||||
|
||||
@@ -46,14 +46,14 @@
|
||||
damage_to_energy_cost *= 0.50
|
||||
|
||||
if(!pay_energy(damage_to_energy_cost))
|
||||
to_chat(owner, "<span class='danger'>Your shield fades due to lack of energy!</span>")
|
||||
to_chat(owner, span_danger("Your shield fades due to lack of energy!"))
|
||||
qdel(src)
|
||||
return 0
|
||||
|
||||
//block as long as they are not directly behind us
|
||||
var/bad_arc = reverse_direction(user.dir) //arc of directions from which we cannot block
|
||||
if(check_shield_arc(user, bad_arc, damage_source, attacker))
|
||||
user.visible_message("<span class='danger'>\The [user]'s [src] blocks [attack_text]!</span>")
|
||||
user.visible_message(span_danger("\The [user]'s [src] blocks [attack_text]!"))
|
||||
spark_system.start()
|
||||
playsound(src, 'sound/weapons/blade1.ogg', 50, 1)
|
||||
adjust_instability(2)
|
||||
|
||||
@@ -10,6 +10,6 @@
|
||||
var/turf/T = get_turf(hit_atom)
|
||||
if(T)
|
||||
new spawner_type(T)
|
||||
to_chat(user, "<span class='notice'>You shift \the [src] onto \the [T].</span>")
|
||||
to_chat(user, span_notice("You shift \the [src] onto \the [T]."))
|
||||
log_and_message_admins("has casted [src] at [T.x],[T.y],[T.z].")
|
||||
qdel(src)
|
||||
qdel(src)
|
||||
|
||||
@@ -27,8 +27,8 @@
|
||||
summon_underlay.alpha = 127
|
||||
L.underlays |= summon_underlay
|
||||
on_summon(L)
|
||||
to_chat(user, "<span class='notice'>You've successfully teleported \a [L] to you!</span>")
|
||||
visible_message("<span class='warning'>\A [L] appears from no-where!</span>")
|
||||
to_chat(user, span_notice("You've successfully teleported \a [L] to you!"))
|
||||
visible_message(span_warning("\A [L] appears from no-where!"))
|
||||
log_and_message_admins("has summoned \a [L] at [T.x],[T.y],[T.z].")
|
||||
user.adjust_instability(instability_cost)
|
||||
|
||||
@@ -40,4 +40,4 @@
|
||||
|
||||
// Called when a new mob is summoned, override for special behaviour.
|
||||
/obj/item/spell/summon/proc/on_summon(var/mob/living/summoned)
|
||||
return
|
||||
return
|
||||
|
||||
@@ -29,7 +29,7 @@ var/list/technomancer_belongings = list()
|
||||
/obj/item/spell/track/on_use_cast(mob/user)
|
||||
if(tracking)
|
||||
tracking = 0
|
||||
to_chat(user, "<span class='notice'>You stop tracking for \the [tracked]'s whereabouts.</span>")
|
||||
to_chat(user, span_notice("You stop tracking for \the [tracked]'s whereabouts."))
|
||||
tracked = null
|
||||
return
|
||||
|
||||
@@ -75,4 +75,4 @@ var/list/technomancer_belongings = list()
|
||||
icon_state = "track_far"
|
||||
|
||||
spawn(5)
|
||||
.()
|
||||
.()
|
||||
|
||||
@@ -64,7 +64,7 @@
|
||||
if(I)
|
||||
|
||||
if(is_path_in_list(I.type, blacklisted_items))
|
||||
to_chat(user, "<span class='danger'>You can't use \the [I] while warping!</span>")
|
||||
to_chat(user, span_danger("You can't use \the [I] while warping!"))
|
||||
return
|
||||
|
||||
if(istype(I, /obj/item))
|
||||
@@ -77,4 +77,3 @@
|
||||
else
|
||||
chosen_target.attack_hand(user)
|
||||
add_attack_logs(user,chosen_target,"Warp striked")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user