mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2026-08-24 21:57:53 +01:00
converts our spans (#9185)
This commit is contained in:
@@ -18,10 +18,10 @@
|
||||
/* Temp removal while I figure out how to reduce the respawn time to 1 minute
|
||||
var/time_till_respawn = time_till_respawn()
|
||||
if(time_till_respawn == -1) // Special case, never allowed to respawn
|
||||
to_chat(usr, "<span class='warning'>Respawning is not allowed!</span>")
|
||||
to_chat(usr, span_warning("Respawning is not allowed!"))
|
||||
return
|
||||
if(time_till_respawn) // Nonzero time to respawn
|
||||
to_chat(usr, "<span class='warning'>You can't do that yet! You died too recently. You need to wait another [round(time_till_respawn/10/60, 0.1)] minutes.</span>")
|
||||
to_chat(usr, span_warning("You can't do that yet! You died too recently. You need to wait another [round(time_till_respawn/10/60, 0.1)] minutes."))
|
||||
return
|
||||
*/
|
||||
var/datum/data/record/record_found
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
set category = "IC.Settings"
|
||||
|
||||
if(stat)
|
||||
to_chat(src, "<span class='warning'>You must be awake and standing to perform this action!</span>")
|
||||
to_chat(src, span_warning("You must be awake and standing to perform this action!"))
|
||||
return
|
||||
|
||||
speech_sound_enabled = !speech_sound_enabled
|
||||
|
||||
@@ -73,7 +73,7 @@
|
||||
set category = "IC.Game"
|
||||
|
||||
if(stat || world.time < last_special)
|
||||
to_chat(usr, "<span class='warning'>You recently tried to create an area. Wait a while before using it again.</span>")
|
||||
to_chat(usr, span_warning("You recently tried to create an area. Wait a while before using it again."))
|
||||
return
|
||||
|
||||
last_special = world.time + 2 SECONDS // Antispam.
|
||||
|
||||
+17
-19
@@ -8,10 +8,10 @@
|
||||
var/darkness = 1
|
||||
var/turf/T = get_turf(src)
|
||||
if(!T)
|
||||
to_chat(src,"<span class='warning'>You can't use that here!</span>")
|
||||
to_chat(src,span_warning("You can't use that here!"))
|
||||
return FALSE
|
||||
if((get_area(src).flags & PHASE_SHIELDED)) //CHOMPAdd - Mapping tools to control phasing
|
||||
to_chat(src,"<span class='warning'>This area is preventing you from phasing!</span>")
|
||||
to_chat(src,span_warning("This area is preventing you from phasing!"))
|
||||
return FALSE
|
||||
|
||||
if(ability_flags & AB_PHASE_SHIFTING)
|
||||
@@ -48,23 +48,23 @@
|
||||
log_debug("[src] attempted to shift with [watcher] observers with a cost of [ability_cost] in a darkness level of [darkness]")
|
||||
//CHOMPEdit start - inform about the observers affecting phasing
|
||||
if(darkness<=0.4 && watcher>=2)
|
||||
to_chat(src, "<span class='warning'>You have a few observers in a well-lit area! This may prevent phasing. (Working cameras count towards observers)</span>")
|
||||
to_chat(src, span_warning("You have a few observers in a well-lit area! This may prevent phasing. (Working cameras count towards observers)"))
|
||||
else if(watcher>=3)
|
||||
to_chat(src, "<span class='warning'>You have a large number of observers! This may prevent phasing. (Working cameras count towards observers)</span>")
|
||||
to_chat(src, span_warning("You have a large number of observers! This may prevent phasing. (Working cameras count towards observers)"))
|
||||
//CHOMPEdit end
|
||||
|
||||
|
||||
var/datum/species/shadekin/SK = species
|
||||
/* CHOMPEdit start - general shadekin ability check
|
||||
if(!istype(SK))
|
||||
to_chat(src, "<span class='warning'>Only a shadekin can use that!</span>")
|
||||
to_chat(src, span_warning("Only a shadekin can use that!"))
|
||||
return FALSE
|
||||
else if(stat)
|
||||
to_chat(src, "<span class='warning'>Can't use that ability in your state!</span>")
|
||||
to_chat(src, span_warning("Can't use that ability in your state!"))
|
||||
return FALSE
|
||||
//CHOMPEdit Start - Dark Respite
|
||||
else if((ability_flags & AB_DARK_RESPITE || has_modifier_of_type(/datum/modifier/dark_respite)) && !(ability_flags & AB_PHASE_SHIFTED))
|
||||
to_chat(src, "<span class='warning'>You can't use that so soon after an emergency warp!</span>")
|
||||
to_chat(src, span_warning("You can't use that so soon after an emergency warp!"))
|
||||
return FALSE
|
||||
*/
|
||||
if(!shadekin_ability_check())
|
||||
@@ -72,12 +72,12 @@
|
||||
//CHOMPEdit End
|
||||
//CHOMPEdit Start - Prevent bugs when spamming phase button
|
||||
else if(SK.doing_phase)
|
||||
to_chat(src, "<span class='warning'>You are already trying to phase!</span>")
|
||||
to_chat(src, span_warning("You are already trying to phase!"))
|
||||
return FALSE
|
||||
//CHOMPEdit End
|
||||
|
||||
else if(shadekin_get_energy() < ability_cost && !(ability_flags & AB_PHASE_SHIFTED))
|
||||
to_chat(src, "<span class='warning'>Not enough energy for that ability!</span>")
|
||||
to_chat(src, span_warning("Not enough energy for that ability!"))
|
||||
return FALSE
|
||||
|
||||
if(!(ability_flags & AB_PHASE_SHIFTED))
|
||||
@@ -85,7 +85,7 @@
|
||||
playsound(src, 'sound/effects/stealthoff.ogg', 75, 1)
|
||||
|
||||
if(!T.CanPass(src,T) || loc != T)
|
||||
to_chat(src,"<span class='warning'>You can't use that here!</span>")
|
||||
to_chat(src,span_warning("You can't use that here!"))
|
||||
return FALSE
|
||||
|
||||
|
||||
@@ -119,7 +119,6 @@
|
||||
// change
|
||||
ability_flags &= ~AB_PHASE_SHIFTED
|
||||
ability_flags |= AB_PHASE_SHIFTING
|
||||
mouse_opacity = 1
|
||||
name = get_visible_name()
|
||||
for(var/obj/belly/B as anything in vore_organs)
|
||||
B.escapable = initial(B.escapable)
|
||||
@@ -158,12 +157,12 @@
|
||||
var/mob/living/target = pick(potentials)
|
||||
if(can_be_drop_pred && istype(target) && target.devourable && target.can_be_drop_prey && target.phase_vore && vore_selected && phase_vore)
|
||||
target.forceMove(vore_selected)
|
||||
to_chat(target, "<span class='vwarning'>\The [src] phases in around you, [vore_selected.vore_verb]ing you into their [vore_selected.name]!</span>")
|
||||
to_chat(src, "<span class='vwarning'>You phase around [target], [vore_selected.vore_verb]ing them into your [vore_selected.name]!</span>")
|
||||
to_chat(target, span_vwarning("\The [src] phases in around you, [vore_selected.vore_verb]ing you into their [vore_selected.name]!"))
|
||||
to_chat(src, span_vwarning("You phase around [target], [vore_selected.vore_verb]ing them into your [vore_selected.name]!"))
|
||||
else if(can_be_drop_prey && istype(target) && devourable && target.can_be_drop_pred && target.phase_vore && target.vore_selected && phase_vore)
|
||||
forceMove(target.vore_selected)
|
||||
to_chat(target, "<span class='vwarning'>\The [src] phases into you, [target.vore_selected.vore_verb]ing them into your [target.vore_selected.name]!</span>")
|
||||
to_chat(src, "<span class='vwarning'>You phase into [target], having them [target.vore_selected.vore_verb] you into their [target.vore_selected.name]!</span>")
|
||||
to_chat(target, span_vwarning("\The [src] phases into you, [target.vore_selected.vore_verb]ing them into your [target.vore_selected.name]!"))
|
||||
to_chat(src, span_vwarning("You phase into [target], having them [target.vore_selected.vore_verb] you into their [target.vore_selected.name]!"))
|
||||
|
||||
ability_flags &= ~AB_PHASE_SHIFTING
|
||||
|
||||
@@ -230,7 +229,6 @@
|
||||
// change
|
||||
ability_flags |= AB_PHASE_SHIFTED
|
||||
ability_flags |= AB_PHASE_SHIFTING
|
||||
mouse_opacity = 0
|
||||
custom_emote(1,"phases out!")
|
||||
name = get_visible_name()
|
||||
|
||||
@@ -301,13 +299,13 @@
|
||||
|
||||
var/datum/species/shadekin/SK = species
|
||||
if(!istype(SK))
|
||||
to_chat(src, "<span class='warning'>Only a shadekin can use that!</span>")
|
||||
to_chat(src, span_warning("Only a shadekin can use that!"))
|
||||
return FALSE
|
||||
|
||||
if(SK.phase_gentle)
|
||||
to_chat(src, "<span class='notice'>Phasing toggled to Normal. You may damage lights.</span>")
|
||||
to_chat(src, span_notice("Phasing toggled to Normal. You may damage lights."))
|
||||
SK.phase_gentle = 0
|
||||
else
|
||||
to_chat(src, "<span class='notice'>Phasing toggled to Gentle. You won't damage lights, but concentrating on that incurs a short stun.</span>")
|
||||
to_chat(src, span_notice("Phasing toggled to Gentle. You won't damage lights, but concentrating on that incurs a short stun."))
|
||||
SK.phase_gentle = 1
|
||||
//CHOMPEdit End
|
||||
|
||||
@@ -23,9 +23,9 @@
|
||||
var/oocnotes = 0
|
||||
if(input == "Yes")
|
||||
oocnotes = 1
|
||||
to_chat(src, "<span class='notify'>You begin to reform. You will need to remain still.</span>")
|
||||
visible_message("<span class='notify'>[src] rapidly contorts and shifts!</span>", "<span class='danger'>You begin to reform.</span>")
|
||||
to_chat(src, span_notify("You begin to reform. You will need to remain still."))
|
||||
visible_message(span_notify("[src] rapidly contorts and shifts!"), span_danger("You begin to reform."))
|
||||
if (do_after(src, 40,exclusive = TASK_ALL_EXCLUSIVE))
|
||||
if (client?.prefs)
|
||||
client.prefs.vanity_copy_to(src, FALSE, flavour, oocnotes, FALSE)
|
||||
visible_message("<span class='notify'>[src] adopts a new form!</span>", "<span class='danger'>You have reformed.</span>")
|
||||
visible_message(span_notify("[src] adopts a new form!"), span_danger("You have reformed."))
|
||||
|
||||
+15
-15
@@ -370,7 +370,7 @@
|
||||
if(target.buckled)
|
||||
target.buckled.unbuckle_mob(target, force = TRUE)
|
||||
target.forceMove(vore_selected)
|
||||
to_chat(target,"<span class='warning'>\The [src] quickly engulfs you, [vore_selected.vore_verb]ing you into their [vore_selected.name]!</span>")
|
||||
to_chat(target,span_warning("\The [src] quickly engulfs you, [vore_selected.vore_verb]ing you into their [vore_selected.name]!"))
|
||||
update_canmove()
|
||||
|
||||
/mob/living/simple_mob/protean_blob/update_canmove()
|
||||
@@ -392,22 +392,22 @@
|
||||
if(!allowed)
|
||||
return
|
||||
if(refactory.add_stored_material(S.material.name,1*S.perunit) && S.use(1))
|
||||
visible_message("<b>[name]</b> gloms over some of \the [S], absorbing it.")
|
||||
visible_message(span_infoplain(span_bold("[name]") + " gloms over some of \the [S], absorbing it."))
|
||||
else if(isitem(A) && a_intent == "grab") //CHOMP Add all this block, down to I.forceMove.
|
||||
var/obj/item/I = A
|
||||
if(!vore_selected)
|
||||
to_chat(src,"<span class='warning'>You either don't have a belly selected, or don't have a belly!</span>")
|
||||
to_chat(src,span_warning("You either don't have a belly selected, or don't have a belly!"))
|
||||
return FALSE
|
||||
if(is_type_in_list(I,item_vore_blacklist) || I.anchored)
|
||||
to_chat(src, "<span class='warning'>You can't eat this.</span>")
|
||||
to_chat(src, span_warning("You can't eat this."))
|
||||
return
|
||||
|
||||
if(is_type_in_list(I,edible_trash) | adminbus_trash)
|
||||
if(I.hidden_uplink)
|
||||
to_chat(src, "<span class='warning'>You really should not be eating this.</span>")
|
||||
to_chat(src, span_warning("You really should not be eating this."))
|
||||
message_admins("[key_name(src)] has attempted to ingest an uplink item. ([src ? "<a href='?_src_=holder;adminplayerobservecoodjump=1;X=[src.x];Y=[src.y];Z=[src.z]'>JMP</a>" : "null"])")
|
||||
return
|
||||
visible_message("<b>[name]</b> stretches itself over the [I], engulfing it whole!")
|
||||
visible_message(span_infoplain(span_bold("[name]") + " stretches itself over the [I], engulfing it whole!"))
|
||||
I.forceMove(vore_selected)
|
||||
else
|
||||
return ..()
|
||||
@@ -423,7 +423,7 @@
|
||||
if(!allowed)
|
||||
return
|
||||
if(refactory.add_stored_material(S.material.name,1*S.perunit) && S.use(1))
|
||||
visible_message("<b>[name]</b> gloms over some of \the [S], absorbing it.")
|
||||
visible_message(span_infoplain(span_bold("[name]") + " gloms over some of \the [S], absorbing it."))
|
||||
else
|
||||
return ..()
|
||||
|
||||
@@ -453,9 +453,9 @@
|
||||
// Helpers - Unsafe, WILL perform change.
|
||||
/mob/living/carbon/human/proc/nano_intoblob(force)
|
||||
if(!force && !isturf(loc) && !loc == /obj/item/rig/protean)
|
||||
to_chat(src,"<span class='warning'>You can't change forms while inside something.</span>")
|
||||
to_chat(src,span_warning("You can't change forms while inside something."))
|
||||
return
|
||||
to_chat(src, "<span class='notice'>You rapidly disassociate your form.</span>")
|
||||
to_chat(src, span_notice("You rapidly disassociate your form."))
|
||||
if(force || do_after(src,20,exclusive = TASK_ALL_EXCLUSIVE))
|
||||
handle_grasp() //It's possible to blob out before some key parts of the life loop. This results in things getting dropped at null. TODO: Fix the code so this can be done better.
|
||||
remove_micros(src, src) //Living things don't fare well in roblobs.
|
||||
@@ -506,7 +506,7 @@
|
||||
moveToNullspace()
|
||||
|
||||
//Message
|
||||
blob.visible_message("<b>[src.name]</b> collapses into a gooey blob!")
|
||||
blob.visible_message(span_infoplain(span_bold("[src.name]") + " collapses into a gooey blob!"))
|
||||
|
||||
//Duration of the to_puddle iconstate that the blob starts with
|
||||
sleep(13)
|
||||
@@ -536,7 +536,7 @@
|
||||
//Return our blob in case someone wants it
|
||||
return blob
|
||||
else
|
||||
to_chat(src, "<span class='warning'>You must remain still to blobform!</span>")
|
||||
to_chat(src, span_warning("You must remain still to blobform!"))
|
||||
|
||||
//For some reason, there's no way to force drop all the mobs grabbed. This ought to fix that. And be moved elsewhere. Call with caution, doesn't handle cycles.
|
||||
/proc/remove_micros(var/src, var/mob/root)
|
||||
@@ -563,9 +563,9 @@
|
||||
if(blob.loc == /obj/item/rig/protean)
|
||||
return
|
||||
if(!force && !isturf(blob.loc))
|
||||
to_chat(blob,"<span class='warning'>You can't change forms while inside something.</span>")
|
||||
to_chat(blob,span_warning("You can't change forms while inside something."))
|
||||
return
|
||||
to_chat(src, "<span class='notice'>You rapidly reassemble your form.</span>")
|
||||
to_chat(src, span_notice("You rapidly reassemble your form."))
|
||||
if(force || do_after(blob,20,exclusive = TASK_ALL_EXCLUSIVE))
|
||||
if(buckled)
|
||||
buckled.unbuckle_mob()
|
||||
@@ -593,7 +593,7 @@
|
||||
blob.icon_state = "from_puddle"
|
||||
|
||||
//Message
|
||||
blob.visible_message("<b>[src.name]</b> reshapes into a humanoid appearance!")
|
||||
blob.visible_message(span_infoplain(span_bold("[src.name]") + " reshapes into a humanoid appearance!"))
|
||||
|
||||
//Size update
|
||||
resize(blob.size_multiplier, FALSE, TRUE, ignore_prefs = TRUE)
|
||||
@@ -639,7 +639,7 @@
|
||||
//Return ourselves in case someone wants it
|
||||
return src
|
||||
else
|
||||
to_chat(src, "<span class='warning'>You must remain still to reshape yourself!</span>")
|
||||
to_chat(src, span_warning("You must remain still to reshape yourself!"))
|
||||
|
||||
/mob/living/carbon/human/proc/nano_set_panel(var/client/C)
|
||||
if(C)
|
||||
|
||||
+52
-52
@@ -13,20 +13,20 @@
|
||||
if(temporary_form)
|
||||
caller = temporary_form
|
||||
if(nano_dead_check(caller))
|
||||
to_chat(caller, "<span class='warning'>You need to be repaired first before you can act!</span>")
|
||||
to_chat(caller, span_warning("You need to be repaired first before you can act!"))
|
||||
return
|
||||
if(stat)
|
||||
to_chat(caller,"<span class='warning'>You must be awake and standing to perform this action!</span>")
|
||||
to_chat(caller,span_warning("You must be awake and standing to perform this action!"))
|
||||
return
|
||||
|
||||
if(!isturf(caller.loc))
|
||||
to_chat(caller,"<span class='warning'>You need more space to perform this action!</span>")
|
||||
to_chat(caller,span_warning("You need more space to perform this action!"))
|
||||
return
|
||||
|
||||
var/obj/item/organ/internal/nano/refactory/refactory = nano_get_refactory()
|
||||
//Missing the organ that does this
|
||||
if(!istype(refactory))
|
||||
to_chat(caller,"<span class='warning'>You don't have a working refactory module!</span>")
|
||||
to_chat(caller,span_warning("You don't have a working refactory module!"))
|
||||
return
|
||||
|
||||
var/choice = tgui_input_list(caller,"Pick the bodypart to change:", "Refactor - One Bodypart", species.has_limbs)
|
||||
@@ -36,7 +36,7 @@
|
||||
//Organ is missing, needs restoring
|
||||
if(!organs_by_name[choice] || istype(organs_by_name[choice], /obj/item/organ/external/stump)) //allows limb stumps to regenerate like removed limbs.
|
||||
if(refactory.get_stored_material(MAT_STEEL) < PER_LIMB_STEEL_COST)
|
||||
to_chat(caller,"<span class='warning'>You're missing that limb, and need to store at least [PER_LIMB_STEEL_COST] steel to regenerate it.</span>")
|
||||
to_chat(caller,span_warning("You're missing that limb, and need to store at least [PER_LIMB_STEEL_COST] steel to regenerate it."))
|
||||
return
|
||||
var/regen = tgui_alert(caller,"That limb is missing, do you want to regenerate it in exchange for [PER_LIMB_STEEL_COST] steel?","Regenerate limb?",list("Yes","No"))
|
||||
if(regen != "Yes")
|
||||
@@ -105,15 +105,15 @@
|
||||
if(input == "Rebuild")
|
||||
var/obj/item/organ/internal/nano/refactory/refactory = nano_get_refactory()
|
||||
if(refactory.get_stored_material(MAT_STEEL) >= 10000)
|
||||
to_chat(caller, "<span class='notify'>You begin to rebuild. You will need to remain still.</span>")
|
||||
to_chat(caller, span_notify("You begin to rebuild. You will need to remain still."))
|
||||
if(do_after(caller, 400,exclusive = TASK_ALL_EXCLUSIVE))
|
||||
if(species?:OurRig) //Unsafe, but we should only ever be using this with a Protean
|
||||
species?:OurRig?:make_alive(src,1) //Re-using this proc
|
||||
refactory.use_stored_material(MAT_STEEL,refactory.get_stored_material(MAT_STEEL)) //Use all of our steel
|
||||
else
|
||||
to_chat(caller, "<span class='usrdanger'>Somehow, you are missing your protean rig. You are unable to rebuild without one.</span>")
|
||||
to_chat(caller, span_userdanger("Somehow, you are missing your protean rig. You are unable to rebuild without one."))
|
||||
else
|
||||
to_chat(caller, "<span class='warning'>You do not have enough steel stored for this operation.</span>")
|
||||
to_chat(caller, span_warning("You do not have enough steel stored for this operation."))
|
||||
else
|
||||
input = tgui_alert(caller,{"Include Flavourtext?"},"Reassembly",list("Yes","No","Cancel"))
|
||||
if(input == "Cancel" || !input)
|
||||
@@ -127,14 +127,14 @@
|
||||
var/oocnotes = 0
|
||||
if(input == "Yes")
|
||||
oocnotes = 1
|
||||
to_chat(caller, "<span class='notify'>You begin to reassemble. You will need to remain still.</span>")
|
||||
caller.visible_message("<span class='notify'>[caller] rapidly contorts and shifts!</span>", "<span class='danger'>You begin to reassemble.</span>")
|
||||
to_chat(caller, span_notify("You begin to reassemble. You will need to remain still."))
|
||||
caller.visible_message(span_notify("[caller] rapidly contorts and shifts!"), span_danger("You begin to reassemble."))
|
||||
if(do_after(caller, 40,exclusive = TASK_ALL_EXCLUSIVE))
|
||||
if(caller.client.prefs) //Make sure we didn't d/c
|
||||
var/obj/item/rig/protean/Rig = species?:OurRig
|
||||
caller.client.prefs.vanity_copy_to(src, FALSE, flavour, oocnotes, TRUE)
|
||||
species?:OurRig = Rig //Get a reference to our Rig and put it back after reassembling
|
||||
caller.visible_message("<span class='notify'>[caller] adopts a new form!</span>", "<span class='danger'>You have reassembled.</span>")
|
||||
caller.visible_message(span_notify("[caller] adopts a new form!"), span_danger("You have reassembled."))
|
||||
|
||||
|
||||
/mob/living/carbon/human/proc/nano_copy_body()
|
||||
@@ -156,22 +156,22 @@
|
||||
victim = G.affecting
|
||||
if (!victim)
|
||||
if (grabbing_but_not_enough)
|
||||
to_chat(caller, "<span class='warning'>You need a better grip to do that!</span>")
|
||||
to_chat(caller, span_warning("You need a better grip to do that!"))
|
||||
else
|
||||
to_chat(caller, "<span class='notice'>You need to be aggressively grabbing someone before you can copy their form.</span>")
|
||||
to_chat(caller, span_notice("You need to be aggressively grabbing someone before you can copy their form."))
|
||||
return
|
||||
if (!istype(victim))
|
||||
to_chat(caller, "<span class='warning'>You can only perform this on human mobs!</span>")
|
||||
to_chat(caller, span_warning("You can only perform this on human mobs!"))
|
||||
return
|
||||
if (!victim.client)
|
||||
to_chat(caller, "<span class='notice'>The person you try this on must have a client!</span>")
|
||||
to_chat(caller, span_notice("The person you try this on must have a client!"))
|
||||
return
|
||||
|
||||
|
||||
to_chat(caller, "<span class='notice'>Waiting for other person's consent.</span>")
|
||||
to_chat(caller, span_notice("Waiting for other person's consent."))
|
||||
var/consent = tgui_alert(victim, "Allow [src] to copy what you look like?", "Consent", list("Yes", "No"))
|
||||
if (consent != "Yes")
|
||||
to_chat(caller, "<span class='notice'>They declined your request.</span>")
|
||||
to_chat(caller, span_notice("They declined your request."))
|
||||
return
|
||||
|
||||
var/input = tgui_alert(caller,{"Copy [victim]'s flavourtext?"},"Copy Form",list("Yes","No","Cancel"))
|
||||
@@ -186,24 +186,24 @@
|
||||
if(G.affecting == victim && G.state >= GRAB_AGGRESSIVE)
|
||||
checking = TRUE
|
||||
if (!checking)
|
||||
to_chat(caller, "<span class='warning'>You lost your grip on [victim]!</span>")
|
||||
to_chat(caller, span_warning("You lost your grip on [victim]!"))
|
||||
return
|
||||
|
||||
to_chat(caller, "<span class='notify'>You begin to reassemble into [victim]. You will need to remain still.</span>")
|
||||
caller.visible_message("<span class='notify'>[caller] rapidly contorts and shifts!</span>", "<span class='danger'>You begin to reassemble into [victim].</span>")
|
||||
to_chat(caller, span_notify("You begin to reassemble into [victim]. You will need to remain still."))
|
||||
caller.visible_message(span_notify("[caller] rapidly contorts and shifts!"), span_danger("You begin to reassemble into [victim]."))
|
||||
if(do_after(caller, 40,exclusive = TASK_ALL_EXCLUSIVE))
|
||||
checking = FALSE
|
||||
for(var/obj/item/grab/G in caller)
|
||||
if(G.affecting == victim && G.state >= GRAB_AGGRESSIVE)
|
||||
checking = TRUE
|
||||
if (!checking)
|
||||
to_chat(caller, "<span class='warning'>You lost your grip on [victim]!</span>")
|
||||
to_chat(caller, span_warning("You lost your grip on [victim]!"))
|
||||
return
|
||||
if(caller.client) //Make sure we didn't d/c
|
||||
var/obj/item/rig/protean/Rig = species?:OurRig
|
||||
transform_into_other_human(victim, FALSE, flavour, TRUE)
|
||||
species?:OurRig = Rig //Get a reference to our Rig and put it back after reassembling
|
||||
caller.visible_message("<span class='notify'>[caller] adopts the form of [victim]!</span>", "<span class='danger'>You have reassembled into [victim].</span>")
|
||||
caller.visible_message(span_notify("[caller] adopts the form of [victim]!"), span_danger("You have reassembled into [victim]."))
|
||||
|
||||
////
|
||||
// Storing metal
|
||||
@@ -218,18 +218,18 @@
|
||||
if(temporary_form)
|
||||
caller = temporary_form
|
||||
if(nano_dead_check(caller))
|
||||
to_chat(caller, "<span class='warning'>You need to be repaired first before you can act!</span>")
|
||||
to_chat(caller, span_warning("You need to be repaired first before you can act!"))
|
||||
return
|
||||
|
||||
var/obj/item/organ/internal/nano/refactory/refactory = nano_get_refactory()
|
||||
//Missing the organ that does this
|
||||
if(!istype(refactory))
|
||||
to_chat(caller,"<span class='warning'>You don't have a working refactory module!</span>")
|
||||
to_chat(caller,span_warning("You don't have a working refactory module!"))
|
||||
return
|
||||
|
||||
var/held = caller.get_active_hand()
|
||||
if(!istype(held,/obj/item/stack/material))
|
||||
to_chat(caller,"<span class='warning'>You aren't holding a stack of materials in your active hand!</span>")
|
||||
to_chat(caller,span_warning("You aren't holding a stack of materials in your active hand!"))
|
||||
return
|
||||
|
||||
var/obj/item/stack/material/matstack = held
|
||||
@@ -238,7 +238,7 @@
|
||||
for(var/material in PROTEAN_EDIBLE_MATERIALS)
|
||||
if(material == substance) allowed = 1
|
||||
if(!allowed)
|
||||
to_chat(caller,"<span class='warning'>You can't process [substance]!</span>")
|
||||
to_chat(caller,span_warning("You can't process [substance]!"))
|
||||
return
|
||||
|
||||
var/howmuch = tgui_input_number(caller,"How much do you want to store? (0-[matstack.get_amount()])","Select amount",null,matstack.get_amount())
|
||||
@@ -248,13 +248,13 @@
|
||||
var/actually_added = refactory.add_stored_material(substance,howmuch*matstack.perunit)
|
||||
matstack.use(CEILING((actually_added/matstack.perunit), 1))
|
||||
if(actually_added && actually_added < howmuch)
|
||||
to_chat(caller,"<span class='warning'>Your refactory module is now full, so only [actually_added] units were stored.</span>")
|
||||
visible_message("<span class='notice'>[caller] nibbles some of the [substance] right off the stack!</span>")
|
||||
to_chat(caller,span_warning("Your refactory module is now full, so only [actually_added] units were stored."))
|
||||
visible_message(span_notice("[caller] nibbles some of the [substance] right off the stack!"))
|
||||
else if(actually_added)
|
||||
to_chat(caller,"<span class='notice'>You store [actually_added] units of [substance].</span>")
|
||||
visible_message("<span class='notice'>[caller] devours some of the [substance] right off the stack!</span>")
|
||||
to_chat(caller,span_notice("You store [actually_added] units of [substance]."))
|
||||
visible_message(span_notice("[caller] devours some of the [substance] right off the stack!"))
|
||||
else
|
||||
to_chat(caller,"<span class='notice'>You're completely capped out on [substance]!</span>")
|
||||
to_chat(caller,span_notice("You're completely capped out on [substance]!"))
|
||||
|
||||
////
|
||||
// Blob Form
|
||||
@@ -275,21 +275,21 @@
|
||||
return
|
||||
var/atom/movable/to_locate = temporary_form || src
|
||||
if(!isturf(to_locate.loc) && !forced)
|
||||
to_chat(to_locate,"<span class='warning'>You need more space to perform this action!</span>")
|
||||
to_chat(to_locate,span_warning("You need more space to perform this action!"))
|
||||
return
|
||||
//Blob form
|
||||
if(temporary_form)
|
||||
if(temporary_form.stat)
|
||||
to_chat(temporary_form,"<span class='warning'>You can only do this while not stunned.</span>")
|
||||
to_chat(temporary_form,span_warning("You can only do this while not stunned."))
|
||||
else
|
||||
nano_outofblob(temporary_form)
|
||||
|
||||
//Human form
|
||||
else if(stat)
|
||||
to_chat(src,"<span class='warning'>You can only do this while not stunned.</span>")
|
||||
to_chat(src,span_warning("You can only do this while not stunned."))
|
||||
return
|
||||
else if(handcuffed)
|
||||
to_chat(src, "<span class='warning'>You can't do this while handcuffed!</span>")
|
||||
to_chat(src, span_warning("You can't do this while handcuffed!"))
|
||||
return
|
||||
else
|
||||
nano_intoblob()
|
||||
@@ -303,7 +303,7 @@
|
||||
set category = "Abilities.Protean"
|
||||
|
||||
if(stat)
|
||||
to_chat(src,"<span class='warning'>You must be awake and standing to perform this action!</span>")
|
||||
to_chat(src,span_warning("You must be awake and standing to perform this action!"))
|
||||
return
|
||||
|
||||
var/new_species = tgui_input_list(usr, "Please select a species to emulate.", "Shapeshifter Body", list(species?.vanity_base_fit)|species?.get_valid_shapeshifter_forms())
|
||||
@@ -324,9 +324,9 @@
|
||||
if(temporary_form)
|
||||
caller = temporary_form
|
||||
if(nano_dead_check(src))
|
||||
to_chat(caller, "<span class='warning'>You need to be repaired first before you can act!</span>")
|
||||
to_chat(caller, span_warning("You need to be repaired first before you can act!"))
|
||||
return
|
||||
to_chat(caller, "<span class='notice'>You rapidly condense into your module.</span>")
|
||||
to_chat(caller, span_notice("You rapidly condense into your module."))
|
||||
if(forced || do_after(caller,20,exclusive = TASK_ALL_EXCLUSIVE))
|
||||
if(!temporary_form) //If you're human, force you into blob form before rig'ing
|
||||
nano_blobform(forced)
|
||||
@@ -353,7 +353,7 @@
|
||||
P.has_hands = 1
|
||||
else //We're not in our own RIG
|
||||
if(P.stat || P.resting && !forced)
|
||||
to_chat(P,"<span class='warning'>You can only do this while not stunned.</span>")
|
||||
to_chat(P,span_warning("You can only do this while not stunned."))
|
||||
else
|
||||
if(P.l_hand)
|
||||
P.drop_l_hand()
|
||||
@@ -366,10 +366,10 @@
|
||||
S.OurRig.canremove = 1
|
||||
P.reset_view()
|
||||
else //Make one if not
|
||||
to_chat(temporary_form, "<span class='warning'>Somehow, your RIG got disconnected from your species. This may have been caused by an admin heal. A new one has been created for you, contact a coder.</span>")
|
||||
to_chat(temporary_form, span_warning("Somehow, your RIG got disconnected from your species. This may have been caused by an admin heal. A new one has been created for you, contact a coder."))
|
||||
new /obj/item/rig/protean(src,src)
|
||||
else
|
||||
to_chat(caller, "<span class='warning'>You must remain still to condense!</span>")
|
||||
to_chat(caller, span_warning("You must remain still to condense!"))
|
||||
|
||||
/mob/living/carbon/human/proc/appearance_switch()
|
||||
set name = "Switch Blob Appearance"
|
||||
@@ -556,9 +556,9 @@
|
||||
target = S.OurRig.wearer
|
||||
if(target)
|
||||
target.drop_from_inventory(S.OurRig)
|
||||
to_chat(caller, "<span class='notice'>You detach from your host.</span>")
|
||||
to_chat(caller, span_notice("You detach from your host."))
|
||||
else
|
||||
to_chat(caller, "<span class='warning'>You aren't being worn, dummy.</span>")
|
||||
to_chat(caller, span_warning("You aren't being worn, dummy."))
|
||||
return
|
||||
var/obj/held_item = caller.get_active_hand()
|
||||
if(istype(held_item,/obj/item/grab))
|
||||
@@ -566,14 +566,14 @@
|
||||
if(istype(G.affecting, /mob/living/carbon/human))
|
||||
target = G.affecting
|
||||
if(istype(target.species, /datum/species/protean))
|
||||
to_chat(caller, "<span class='danger'>You can't latch onto a fellow Protean!</span>")
|
||||
to_chat(caller, span_danger("You can't latch onto a fellow Protean!"))
|
||||
return
|
||||
if(G.loc == caller && G.state >= GRAB_AGGRESSIVE)
|
||||
caller.visible_message("<span class='warning'>[caller] is attempting to latch onto [target]!</span>", "<span class='danger'>You attempt to latch onto [target]!</span>")
|
||||
caller.visible_message(span_warning("[caller] is attempting to latch onto [target]!"), span_danger("You attempt to latch onto [target]!"))
|
||||
if(do_after(caller, 50, target,exclusive = TASK_ALL_EXCLUSIVE))
|
||||
if(G.loc == caller && G.state >= GRAB_AGGRESSIVE)
|
||||
target.drop_from_inventory(target.back)
|
||||
caller.visible_message("<span class='danger'>[caller] latched onto [target]!</span>", "<span class='danger'>You latch yourself onto [target]!</span>")
|
||||
caller.visible_message(span_danger("[caller] latched onto [target]!"), span_danger("You latch yourself onto [target]!"))
|
||||
target.Weaken(3)
|
||||
nano_rig_transform(1)
|
||||
spawn(5) //Have to give time for the above proc to resolve
|
||||
@@ -583,11 +583,11 @@
|
||||
spawn(1) //Same here :(
|
||||
S.OurRig.wearer = target
|
||||
else
|
||||
to_chat(caller, "<span class='warning'>You need a more aggressive grab to do this!</span>")
|
||||
to_chat(caller, span_warning("You need a more aggressive grab to do this!"))
|
||||
else
|
||||
to_chat(caller, "<span class='warning'>You can only latch onto humanoid mobs!</span>")
|
||||
to_chat(caller, span_warning("You can only latch onto humanoid mobs!"))
|
||||
else
|
||||
to_chat(caller, "<span class='warning'>You need to be grabbing a humanoid mob aggressively to latch onto them.</span>")
|
||||
to_chat(caller, span_warning("You need to be grabbing a humanoid mob aggressively to latch onto them."))
|
||||
|
||||
/// /// /// A helper to reuse
|
||||
/mob/living/proc/nano_get_refactory(obj/item/organ/internal/nano/refactory/R)
|
||||
@@ -634,7 +634,7 @@
|
||||
var/opts = clickprops["shift"]
|
||||
|
||||
if(opts)
|
||||
to_chat(usr,"<span class='notice'><b>[ability_name]</b> - [desc]</span>")
|
||||
to_chat(usr,span_notice(span_bold("[ability_name]") + " - [desc]"))
|
||||
else
|
||||
//Humanform using it
|
||||
if(ishuman(usr))
|
||||
@@ -716,7 +716,7 @@
|
||||
if(proteanlimbs.organ_tag == BP_HEAD)
|
||||
continue
|
||||
proteanlimbs.transparent = !proteanlimbs.transparent
|
||||
visible_message("<span class='notice'>\The [src]'s internal composition seems to change.</span>")
|
||||
visible_message(span_notice("\The [src]'s internal composition seems to change."))
|
||||
update_icons_body()
|
||||
update_hair()
|
||||
|
||||
@@ -736,7 +736,7 @@
|
||||
for(var/obj/item/organ/external/proteanlimbs as anything in src.organs)
|
||||
proteanlimbs.transparent = !proteanlimbs.transparent
|
||||
|
||||
visible_message("<span class='notice'>\The [src]'s internal composition seems to change.</span>")
|
||||
visible_message(span_notice("\The [src]'s internal composition seems to change."))
|
||||
update_icons_body()
|
||||
update_hair()
|
||||
|
||||
|
||||
+13
-13
@@ -53,7 +53,7 @@
|
||||
addtimer(CALLBACK(src, PROC_REF(AssimilateBag), P, 1, P.back), 3)
|
||||
myprotean = P
|
||||
else
|
||||
to_chat(P, "<span class='notice'>You should have spawned with a backpack to assimilate into your RIG. Try clicking it with a backpack.</span>")
|
||||
to_chat(P, span_notice("You should have spawned with a backpack to assimilate into your RIG. Try clicking it with a backpack."))
|
||||
..(newloc)
|
||||
|
||||
/obj/item/rig/protean/Destroy()
|
||||
@@ -75,12 +75,12 @@
|
||||
B.forceMove(src)
|
||||
rig_storage = B
|
||||
P.drop_item(B)
|
||||
to_chat(P, "<span class='notice'>[B] has been integrated into the [src].</span>")
|
||||
to_chat(P, span_notice("[B] has been integrated into the [src]."))
|
||||
if(spawned) //This feels very dumb to have a second if but I'm lazy
|
||||
P.equip_to_slot_if_possible(src, slot_back)
|
||||
src.Moved()
|
||||
else
|
||||
to_chat(P,"<span class ='warning'>Your rigsuit can only assimilate a backpack into itself. If you are seeing this message, and you do not have a rigsuit, tell a coder.</span>")
|
||||
to_chat(P,span_warning("Your rigsuit can only assimilate a backpack into itself. If you are seeing this message, and you do not have a rigsuit, tell a coder."))
|
||||
|
||||
/obj/item/rig/protean/verb/RemoveBag()
|
||||
set name = "Remove Stored Bag"
|
||||
@@ -243,14 +243,14 @@
|
||||
if(W.is_screwdriver())
|
||||
playsound(src, W.usesound, 50, 1)
|
||||
if(do_after(user,50,src,exclusive = TASK_ALL_EXCLUSIVE))
|
||||
to_chat(user, "<span class='notice'>You unscrew the maintenace panel on the [src].</span>")
|
||||
to_chat(user, span_notice("You unscrew the maintenace panel on the [src]."))
|
||||
dead +=1
|
||||
return
|
||||
if(2)
|
||||
if(istype(W, /obj/item/protean_reboot))//placeholder
|
||||
if(do_after(user,50,src,exclusive = TASK_ALL_EXCLUSIVE))
|
||||
playsound(src, 'sound/items/Deconstruct.ogg', 50, 1)
|
||||
to_chat(user, "<span class='notice'>You carefully slot [W] in the [src].</span>")
|
||||
to_chat(user, span_notice("You carefully slot [W] in the [src]."))
|
||||
dead +=1
|
||||
qdel(W)
|
||||
return
|
||||
@@ -258,14 +258,14 @@
|
||||
if(istype(W, /obj/item/stack/nanopaste))
|
||||
if(do_after(user,50,src,exclusive = TASK_ALL_EXCLUSIVE))
|
||||
playsound(src, 'sound/effects/ointment.ogg', 50, 1)
|
||||
to_chat(user, "<span class='notice'>You slather the interior confines of the [src] with the [W].</span>")
|
||||
to_chat(user, span_notice("You slather the interior confines of the [src] with the [W]."))
|
||||
dead +=1
|
||||
W?:use(1)
|
||||
return
|
||||
if(4)
|
||||
if(istype(W, /obj/item/shockpaddles))
|
||||
if(W?:can_use(user))
|
||||
to_chat(user, "<span class='notice'>You hook up the [W] to the contact points in the maintenance assembly</span>")
|
||||
to_chat(user, span_notice("You hook up the [W] to the contact points in the maintenance assembly"))
|
||||
if(do_after(user,50,src,exclusive = TASK_ALL_EXCLUSIVE))
|
||||
playsound(src, 'sound/machines/defib_charge.ogg', 50, 0)
|
||||
if(do_after(user,10,src))
|
||||
@@ -398,7 +398,7 @@
|
||||
var/datum/species/protean/S
|
||||
S = H.species
|
||||
S.pseudodead = 0
|
||||
to_chat(myprotean, "<span class='notice'>You have finished reconstituting.</span>")
|
||||
to_chat(myprotean, span_notice("You have finished reconstituting."))
|
||||
playsound(src.loc, 'sound/machines/ding.ogg', 50, 1)
|
||||
dead = 0
|
||||
|
||||
@@ -413,7 +413,7 @@
|
||||
|
||||
/obj/item/rig/protean/force_rest(var/mob/user)
|
||||
wearer.lay_down()
|
||||
to_chat(user, "<span class='notice'>\The [wearer] is now [wearer.resting ? "resting" : "getting up"].</span>")
|
||||
to_chat(user, span_notice("\The [wearer] is now [wearer.resting ? "resting" : "getting up"]."))
|
||||
|
||||
/obj/item/cell/protean
|
||||
name = "Protean power cell"
|
||||
@@ -456,11 +456,11 @@
|
||||
return 0 //We don't do that here.
|
||||
if(offline || !cell || !cell.charge || locked_down)
|
||||
if(user)
|
||||
to_chat(user, "<span class='warning'>Your host rig is unpowered and unresponsive.</span>")
|
||||
to_chat(user, span_warning("Your host rig is unpowered and unresponsive."))
|
||||
return 0
|
||||
if(!wearer || (wearer.back != src && wearer.belt != src))
|
||||
if(user)
|
||||
to_chat(user, "<span class='warning'>Your host rig is not being worn.</span>")
|
||||
to_chat(user, span_warning("Your host rig is not being worn."))
|
||||
return 0
|
||||
return 1
|
||||
|
||||
@@ -495,9 +495,9 @@
|
||||
if(!R || assimilated_rig)
|
||||
return
|
||||
if(istype(R, /obj/item/rig/protean))
|
||||
to_chat(user, "<span class='warning'>The world is not ready for such a technological singularity.</span>")
|
||||
to_chat(user, span_warning("The world is not ready for such a technological singularity."))
|
||||
return
|
||||
to_chat(user, "<span class='notice'>You assimilate the [R] into the [src]. Mimicking its stats and appearance.</span>")
|
||||
to_chat(user, span_notice("You assimilate the [R] into the [src]. Mimicking its stats and appearance."))
|
||||
for(var/obj/item/piece in list(gloves,helmet,boots,chest))
|
||||
piece.armor = R.armor.Copy()
|
||||
piece.max_pressure_protection = R.max_pressure_protection
|
||||
|
||||
+2
-2
@@ -96,7 +96,7 @@ So here it sits, snowflake code for a single item.
|
||||
toggle_cooling(wearer)
|
||||
. = TRUE
|
||||
if("toggle_ai_control")
|
||||
to_chat(usr, "<span class='notice'>Proteans cannot be AI controlled.</span>")
|
||||
to_chat(usr, span_notice("Proteans cannot be AI controlled."))
|
||||
. = TRUE
|
||||
if("toggle_suit_lock")
|
||||
locked = !locked
|
||||
@@ -125,4 +125,4 @@ So here it sits, snowflake code for a single item.
|
||||
if("select_charge_type")
|
||||
module.charge_selected = params["charge_type"]
|
||||
. = TRUE
|
||||
*/
|
||||
*/
|
||||
|
||||
+13
-13
@@ -3,7 +3,7 @@
|
||||
name = SPECIES_PROTEAN
|
||||
name_plural = "Proteans"
|
||||
blurb = "Sometimes very advanced civilizations will produce the ability to swap into manufactured, robotic bodies. And sometimes \
|
||||
<i>VERY</i> advanced civilizations have the option of 'nanoswarm' bodies. Effectively a single robot body comprised \
|
||||
" + span_italics("VERY") + " advanced civilizations have the option of 'nanoswarm' bodies. Effectively a single robot body comprised \
|
||||
of millions of tiny nanites working in concert to maintain cohesion."
|
||||
show_ssd = "totally quiescent"
|
||||
death_message = "rapidly loses cohesion, retreating into their hardened control module..."
|
||||
@@ -246,8 +246,8 @@
|
||||
if(H.temporary_form)
|
||||
temp = H.temporary_form
|
||||
playsound(temp, 'modular_chomp/sound/voice/borg_deathsound.ogg', 50, 1)
|
||||
temp.visible_message("<b>[temp.name]</b> shudders and retreats inwards, coalescing into a single core componant!")
|
||||
to_chat(temp, "<span class='warning'>You've died as a Protean! While dead, you will be locked to your core RIG control module until you can be repaired. Instructions to your revival can be found in the Examine tab when examining your module.</span>")
|
||||
temp.visible_message(span_bold("[temp.name]") + " shudders and retreats inwards, coalescing into a single core componant!")
|
||||
to_chat(temp, span_warning("You've died as a Protean! While dead, you will be locked to your core RIG control module until you can be repaired. Instructions to your revival can be found in the Examine tab when examining your module."))
|
||||
if(H.temporary_form)
|
||||
if(!istype(H.temporary_form.loc, /obj/item/rig/protean))
|
||||
H.nano_rig_transform(1)
|
||||
@@ -347,8 +347,8 @@ CHOMP Station removal end*/
|
||||
name = "Protean Effect - M.Hydrogen"
|
||||
desc = "You're affected by the presence of metallic hydrogen."
|
||||
|
||||
on_created_text = "<span class='notice'>You feel yourself accelerate, the metallic hydrogen increasing your speed temporarily.</span>"
|
||||
on_expired_text = "<span class='notice'>Your refactory finishes consuming the metallic hydrogen, and you return to normal speed.</span>"
|
||||
on_created_text = span_notice("You feel yourself accelerate, the metallic hydrogen increasing your speed temporarily.")
|
||||
on_expired_text = span_notice("Your refactory finishes consuming the metallic hydrogen, and you return to normal speed.")
|
||||
|
||||
material_name = MAT_METALHYDROGEN
|
||||
|
||||
@@ -358,8 +358,8 @@ CHOMP Station removal end*/
|
||||
name = "Protean Effect - Uranium"
|
||||
desc = "You're affected by the presence of uranium."
|
||||
|
||||
on_created_text = "<span class='notice'>You feel yourself become nearly impervious to physical attacks as uranium is incorporated in your nanites.</span>"
|
||||
on_expired_text = "<span class='notice'>Your refactory finishes consuming the uranium, and you return to your normal nanites.</span>"
|
||||
on_created_text = span_notice("You feel yourself become nearly impervious to physical attacks as uranium is incorporated in your nanites.")
|
||||
on_expired_text = span_notice("Your refactory finishes consuming the uranium, and you return to your normal nanites.")
|
||||
|
||||
material_name = MAT_URANIUM
|
||||
|
||||
@@ -369,8 +369,8 @@ CHOMP Station removal end*/
|
||||
name = "Protean Effect - Gold"
|
||||
desc = "You're affected by the presence of gold."
|
||||
|
||||
on_created_text = "<span class='notice'>You feel yourself become more reflective, able to resist heat and fire better for a time.</span>"
|
||||
on_expired_text = "<span class='notice'>Your refactory finishes consuming the gold, and you return to your normal nanites.</span>"
|
||||
on_created_text = span_notice("You feel yourself become more reflective, able to resist heat and fire better for a time.")
|
||||
on_expired_text = span_notice("Your refactory finishes consuming the gold, and you return to your normal nanites.")
|
||||
|
||||
material_name = MAT_GOLD
|
||||
|
||||
@@ -380,8 +380,8 @@ CHOMP Station removal end*/
|
||||
name = "Protean Effect - Silver"
|
||||
desc = "You're affected by the presence of silver."
|
||||
|
||||
on_created_text = "<span class='notice'>Your physical control is improved for a time, making it easier to hit targets, and avoid being hit.</span>"
|
||||
on_expired_text = "<span class='notice'>Your refactory finishes consuming the silver, and your motor control returns to normal.</span>"
|
||||
on_created_text = span_notice("Your physical control is improved for a time, making it easier to hit targets, and avoid being hit.")
|
||||
on_expired_text = span_notice("Your refactory finishes consuming the silver, and your motor control returns to normal.")
|
||||
|
||||
material_name = MAT_SILVER
|
||||
|
||||
@@ -393,8 +393,8 @@ CHOMP Removal end*/
|
||||
name = "Protean Effect - Steel"
|
||||
desc = "You're affected by the presence of steel."
|
||||
|
||||
on_created_text = "<span class='notice'>You feel new nanites being produced from your stockpile of steel, healing you slowly.</span>"
|
||||
on_expired_text = "<span class='notice'>Your steel supply has either run out, or is no longer needed, and your healing stops.</span>"
|
||||
on_created_text = span_notice("You feel new nanites being produced from your stockpile of steel, healing you slowly.")
|
||||
on_expired_text = span_notice("Your steel supply has either run out, or is no longer needed, and your healing stops.")
|
||||
|
||||
material_name = MAT_STEEL
|
||||
|
||||
|
||||
@@ -179,7 +179,7 @@
|
||||
if(I.damage > 0)
|
||||
I.damage = max(I.damage - heal_rate, 0)
|
||||
if (prob(5))
|
||||
to_chat(H, "<span class='alien'>We feel a soothing sensation within our [I.parent_organ]...</span>")
|
||||
to_chat(H, span_alien("We feel a soothing sensation within our [I.parent_organ]..."))
|
||||
return 1
|
||||
|
||||
// Next, heal external damage.
|
||||
@@ -189,7 +189,7 @@
|
||||
H.adjustOxyLoss(-heal_rate)
|
||||
H.adjustToxLoss(-heal_rate)
|
||||
if (prob(5))
|
||||
to_chat(H, "<span class='alien'>A soothing sensation falls over us...</span>")
|
||||
to_chat(H, span_alien("A soothing sensation falls over us..."))
|
||||
return 1
|
||||
|
||||
// Lastly, mend broken bones. May remove this if it's abused.
|
||||
@@ -197,7 +197,7 @@
|
||||
if (E.status & ORGAN_BROKEN)
|
||||
if (prob(mend_prob))
|
||||
if (E.mend_fracture())
|
||||
to_chat(H, "<span class='alien'>We feel something mend within our [E.name].</span>")
|
||||
to_chat(H, span_alien("We feel something mend within our [E.name]."))
|
||||
return 1
|
||||
|
||||
return 0
|
||||
@@ -212,7 +212,7 @@
|
||||
set category = "Abilities.Alien"
|
||||
|
||||
if(check_alien_ability(150,1,O_RESIN))
|
||||
visible_message("<span class='alium'><B>[src] has planted some alien weeds!</B></span>")
|
||||
visible_message(span_alium(span_bold("[src] has planted some alien weeds!")))
|
||||
new /obj/effect/alien/weeds/node/weak(get_turf(src), null, "#321D37") // Aliens.dm for weed node origin.
|
||||
playsound(src, 'sound/effects/blobattack.ogg', 40, 1)
|
||||
return
|
||||
@@ -223,7 +223,7 @@
|
||||
|
||||
var/obj/item/organ/internal/xenos/plasmavessel/I = M.internal_organs_by_name[O_PLASMA]
|
||||
if(!istype(I))
|
||||
to_chat(src, "<span class='alium'>Our plasma vessel is missing!</span>")
|
||||
to_chat(src, span_alium("Our plasma vessel is missing!"))
|
||||
return
|
||||
|
||||
to_chat(src, "Our plasma reserves are at [I.stored_plasma]/[I.max_plasma].")
|
||||
@@ -273,7 +273,7 @@
|
||||
else O = new /obj/item/stack/material/resin(targetLoc)
|
||||
|
||||
if(O)
|
||||
visible_message("<span class='warning'><B>[src] vomits up a thick purple substance and begins to shape it!</B></span>", "<span class='alium'>You shape a [choice].</span>")
|
||||
visible_message(span_warning(span_bold("[src] vomits up a thick purple substance and begins to shape it!")), span_alium("You shape a [choice]."))
|
||||
// O.color = "#321D37" // Adding predefined colour icons.
|
||||
playsound(src, 'sound/effects/blobattack.ogg', 40, 1)
|
||||
|
||||
|
||||
@@ -116,7 +116,7 @@ Maybe later, gotta figure out a way to click yourself when in a locker etc.
|
||||
add_verb(new_mob,/mob/living/proc/shapeshift_form) //CHOMPEdit TGPanel
|
||||
new_mob.tf_form = src
|
||||
new_mob.forceMove(src.loc)
|
||||
visible_message("<span class='warning'>[src] twists and contorts, shapeshifting into a different form!</span>")
|
||||
visible_message(span_warning("[src] twists and contorts, shapeshifting into a different form!"))
|
||||
if(new_mob.ckey)
|
||||
new_mob.tf_form_ckey = new_mob.ckey
|
||||
else
|
||||
@@ -184,7 +184,7 @@ Maybe later, gotta figure out a way to click yourself when in a locker etc.
|
||||
set category = "Abilities.Shapeshift"
|
||||
set desc = "Shape shift between set mob forms. (Requires a spawned mob to be varedited into the user's tf_form var as mob reference.)"
|
||||
if(!istype(tf_form))
|
||||
to_chat(src, "<span class='notice'>No shapeshift form set. (Requires a spawned mob to be varedited into the user's tf_form var as mob reference.)</span>")
|
||||
to_chat(src, span_notice("No shapeshift form set. (Requires a spawned mob to be varedited into the user's tf_form var as mob reference.)"))
|
||||
return
|
||||
else
|
||||
transform_into_mob(tf_form, TRUE, TRUE, TRUE)
|
||||
@@ -204,7 +204,7 @@ Maybe later, gotta figure out a way to click yourself when in a locker etc.
|
||||
new_metadata = ""
|
||||
ooc_notes_favs = new_metadata
|
||||
client.prefs.metadata_favs = new_metadata
|
||||
to_chat(user, "<span class='filter_notice'>OOC note favs have been updated. Don't forget to save!</span>")
|
||||
to_chat(user, span_filter_notice("OOC note favs have been updated. Don't forget to save!"))
|
||||
log_admin("[key_name(user)] updated their OOC note favs mid-round.")
|
||||
if(reopen)
|
||||
ooc_notes_window(user)
|
||||
@@ -218,7 +218,7 @@ Maybe later, gotta figure out a way to click yourself when in a locker etc.
|
||||
new_metadata = ""
|
||||
ooc_notes_maybes = new_metadata
|
||||
client.prefs.metadata_maybes = new_metadata
|
||||
to_chat(user, "<span class='filter_notice'>OOC note maybes have been updated. Don't forget to save!</span>")
|
||||
to_chat(user, span_filter_notice("OOC note maybes have been updated. Don't forget to save!"))
|
||||
log_admin("[key_name(user)] updated their OOC note maybes mid-round.")
|
||||
if(reopen)
|
||||
ooc_notes_window(user)
|
||||
|
||||
@@ -112,7 +112,7 @@
|
||||
if(style)
|
||||
dat += {"<div class='row'><div class='column'>"}
|
||||
if(favs || user == src)
|
||||
dat += {"<div class="collapsible"><b><center>Favourites</center></b></div>"}
|
||||
dat += "<div class=\"collapsible\">" + span_bold("<center>Favourites</center>") + "</div>"
|
||||
if(user == src)
|
||||
dat += {"
|
||||
<table>
|
||||
@@ -132,7 +132,7 @@
|
||||
dat += {"</div>"}
|
||||
dat += {"<div class='column'>"}
|
||||
if(likes || user == src)
|
||||
dat += {"<div class="collapsible_a"><b><center>Likes</center></b></div>"}
|
||||
dat += "<div class=\"collapsible_a\">" + span_bold("<center>Likes</center>") + "</div>"
|
||||
if(user == src)
|
||||
dat += {"
|
||||
<table>
|
||||
@@ -152,7 +152,7 @@
|
||||
dat += {"</div>"}
|
||||
dat += {"<div class='column'>"}
|
||||
if(maybes || user == src)
|
||||
dat += {"<div class="collapsible_b"><b><center>Maybes</center></b></div>"}
|
||||
dat += "<div class=\"collapsible_b\">" + span_bold("<center>Maybes</center>") + "</div>"
|
||||
if(user == src)
|
||||
dat += {"
|
||||
<table>
|
||||
@@ -174,7 +174,7 @@
|
||||
dat += {"</div>"}
|
||||
dat += {"<div class='column'>"}
|
||||
if(dislikes || user == src)
|
||||
dat += {"<div class="collapsible_c"><b><center>Dislikes</center></b></div>"}
|
||||
dat += "<div class=\"collapsible_c\">" + span_bold("<center>Dislikes</center>") + "</div>"
|
||||
if(user == src)
|
||||
dat += {"
|
||||
<table>
|
||||
|
||||
@@ -2,9 +2,9 @@
|
||||
. = ..()
|
||||
if(Adjacent(user))
|
||||
if(water.energy)
|
||||
. += "<span class='notice'>[src] is wet. Just like it should be.</span>"
|
||||
. += span_notice("[src] is wet. Just like it should be.")
|
||||
if(water.energy < 5)
|
||||
. += "<span class='notice'>[src] is dry.</span>"
|
||||
. += span_notice("[src] is dry.")
|
||||
|
||||
/obj/item/gun/energy/taser/mounted/cyborg/flare
|
||||
name = "flare gun"
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
if (stat != CONSCIOUS || nutrition <= 1000)
|
||||
return
|
||||
nutrition = 1000
|
||||
to_chat(src, "<span class='warning'>You have purged most of the nutrition lingering in your systems.</span>")
|
||||
to_chat(src, span_warning("You have purged most of the nutrition lingering in your systems."))
|
||||
return TRUE
|
||||
|
||||
/mob/living/silicon/robot/proc/ex_reserve_refill()
|
||||
@@ -30,9 +30,9 @@
|
||||
amount = water.energy
|
||||
water.use_charge(amount)
|
||||
E.reagents.add_reagent("water", amount)
|
||||
to_chat(src, "<span class='filter_notice'>You refill the extinguisher using your water reserves.</span>")
|
||||
to_chat(src, span_filter_notice("You refill the extinguisher using your water reserves."))
|
||||
else
|
||||
to_chat(src, "<span class='filter_notice'>Insufficient water reserves.</span>")
|
||||
to_chat(src, span_filter_notice("Insufficient water reserves."))
|
||||
|
||||
/mob/living/silicon/robot/proc/reset_belly_lights(var/b_class)
|
||||
if(sprite_datum.belly_light_list.len && sprite_datum.belly_light_list.Find(b_class))
|
||||
|
||||
@@ -379,7 +379,7 @@
|
||||
L.adjustFireLoss(damage_done)
|
||||
return
|
||||
else
|
||||
to_chat(src,"<span class='notice'>Your stomach bounces off of the victim's armor!</span>")
|
||||
to_chat(src,span_notice("Your stomach bounces off of the victim's armor!"))
|
||||
return
|
||||
return //If stomach is distended, return here to perform no forcefeeding or poison injecton.
|
||||
|
||||
@@ -398,7 +398,7 @@
|
||||
var/target_zone = pick(BP_TORSO,BP_TORSO,BP_TORSO,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_HEAD)
|
||||
if(L.can_inject(src, null, target_zone))
|
||||
if(prob(poison_chance))
|
||||
to_chat(L, "<span class='warning'>You feel a strange substance on you.</span>")
|
||||
to_chat(L, span_warning("You feel a strange substance on you."))
|
||||
L.reagents.add_reagent(poison_type, poison_per_bite)
|
||||
|
||||
|
||||
@@ -435,7 +435,7 @@
|
||||
|
||||
/mob/living/simple_mob/animal/synx/perform_the_nom(mob/living/user, mob/living/prey, mob/living/pred, obj/belly/belly, delay) //Synx can only eat people if their organs are on the inside.
|
||||
if(stomach_distended)
|
||||
to_chat(src,"<span class='notice'>You can't eat people without your stomach inside of you!</span>")
|
||||
to_chat(src,span_notice("You can't eat people without your stomach inside of you!"))
|
||||
return
|
||||
else
|
||||
..()
|
||||
@@ -455,12 +455,12 @@
|
||||
if(status_flags & HIDING)
|
||||
status_flags &= ~HIDING
|
||||
reset_plane_and_layer()
|
||||
to_chat(src,"<span class='notice'>You have stopped hiding.</span>")
|
||||
to_chat(src,span_notice("You have stopped hiding."))
|
||||
else
|
||||
status_flags |= HIDING
|
||||
layer = HIDING_LAYER //Just above cables with their 2.44
|
||||
plane = OBJ_PLANE
|
||||
to_chat(src,"<span class='notice'>You are now hiding.</span>")
|
||||
to_chat(src,span_notice("You are now hiding."))
|
||||
|
||||
|
||||
update_icons()
|
||||
@@ -475,14 +475,14 @@
|
||||
|
||||
// If transform isn't true
|
||||
if(stomach_distended)
|
||||
to_chat(src,"<span class='warning'>You can't disguise with your stomach outside of your body!</span>")
|
||||
to_chat(src,span_warning("You can't disguise with your stomach outside of your body!"))
|
||||
return
|
||||
if(!transformed)
|
||||
to_chat(src,"<span class='warning'>Now they see your true form.</span>")
|
||||
to_chat(src,span_warning("Now they see your true form."))
|
||||
icon_living = transformed_state //Switch state to transformed state
|
||||
movement_cooldown = 3
|
||||
else // If transformed is true.
|
||||
to_chat(src,"<span class='warning'>You changed back into your disguise.</span>")
|
||||
to_chat(src,span_warning("You changed back into your disguise."))
|
||||
icon_living = initial(icon_living) //Switch state to what it was originally defined.
|
||||
movement_cooldown = 6
|
||||
|
||||
@@ -497,7 +497,7 @@
|
||||
if(speak && voices)
|
||||
handle_mimic()
|
||||
else
|
||||
usr << "<span class='warning'>YOU NEED TO HEAR THINGS FIRST, try using Ventcrawl to eevesdrop on nerds.</span>"
|
||||
usr << span_warning("YOU NEED TO HEAR THINGS FIRST, try using Ventcrawl to eevesdrop on nerds.")
|
||||
|
||||
/mob/living/simple_mob/animal/synx/proc/handle_mimic()
|
||||
name = pick(voices)
|
||||
@@ -517,24 +517,24 @@
|
||||
set category = "Abilities.Synx"
|
||||
|
||||
if(incapacitated())
|
||||
to_chat(src, "<span class='warning'>You need to recover before you can use this ability.</span>")
|
||||
to_chat(src, span_warning("You need to recover before you can use this ability."))
|
||||
return
|
||||
if(world.time < next_sonar_ping)
|
||||
to_chat(src, "<span class='warning'>You need another moment to focus.</span>")
|
||||
to_chat(src, span_warning("You need another moment to focus."))
|
||||
return
|
||||
if(is_deaf() || is_below_sound_pressure(get_turf(src)))
|
||||
to_chat(src, "<span class='warning'>You are for all intents and purposes currently deaf!</span>")
|
||||
to_chat(src, span_warning("You are for all intents and purposes currently deaf!"))
|
||||
return
|
||||
next_sonar_ping += 10 SECONDS
|
||||
var/heard_something = FALSE
|
||||
to_chat(src, "<span class='notice'>You take a moment to listen in to your environment...</span>")
|
||||
to_chat(src, span_notice("You take a moment to listen in to your environment..."))
|
||||
for(var/mob/living/L in range(client.view, src))
|
||||
var/turf/T = get_turf(L)
|
||||
if(!T || L == src || L.stat == DEAD || is_below_sound_pressure(T))
|
||||
continue
|
||||
heard_something = TRUE
|
||||
var/feedback = list()
|
||||
feedback += "<span class='notice'>There are noises of movement "
|
||||
feedback += "There are noises of movement "
|
||||
var/direction = get_dir(src, L)
|
||||
if(direction)
|
||||
feedback += "towards the [dir2text(direction)], "
|
||||
@@ -551,10 +551,9 @@
|
||||
feedback += "far away."
|
||||
else // No need to check distance if they're standing right on-top of us
|
||||
feedback += "right on top of you."
|
||||
feedback += "</span>"
|
||||
to_chat(src,jointext(feedback,null))
|
||||
to_chat(src,span_notice(jointext(feedback,null)))
|
||||
if(!heard_something)
|
||||
to_chat(src, "<span class='notice'>You hear no movement but your own.</span>")
|
||||
to_chat(src, span_notice("You hear no movement but your own."))
|
||||
|
||||
|
||||
|
||||
@@ -566,12 +565,12 @@
|
||||
set category = "Abilities.Synx"
|
||||
|
||||
if(transformed)
|
||||
to_chat(src,"<span class='warning'>Your limbs are in the way!</span>") //Kind of a weak excuse but since you already can't transform when your stomach is out, this avoids situations calling a sprite that doesn't exist and lightens my workload on making and implementing them
|
||||
to_chat(src,span_warning("Your limbs are in the way!")) //Kind of a weak excuse but since you already can't transform when your stomach is out, this avoids situations calling a sprite that doesn't exist and lightens my workload on making and implementing them
|
||||
return
|
||||
|
||||
if(!stomach_distended && !transformed) //true if stomach distended is null, 0, or ""
|
||||
stomach_distended = !stomach_distended //switch statement
|
||||
to_chat (src, "<span class='notice'>You disgorge your stomach, spilling its contents!</span>")
|
||||
to_chat (src, span_notice("You disgorge your stomach, spilling its contents!"))
|
||||
melee_damage_lower = 1 //Hopefully this will make all brute damage not apply while stomach is distended. I don't see a better way to do this.
|
||||
melee_damage_upper = 1
|
||||
icon_living = stomach_distended_state
|
||||
@@ -589,7 +588,7 @@
|
||||
|
||||
if(stomach_distended) //If our stomach has been vomitted
|
||||
stomach_distended = !stomach_distended
|
||||
to_chat (src, "<span class='notice'>You swallow your insides!</span>")
|
||||
to_chat (src, span_notice("You swallow your insides!"))
|
||||
melee_damage_lower = SYNX_LOWER_DAMAGE //This is why I'm using a define
|
||||
melee_damage_upper = SYNX_UPPER_DAMAGE
|
||||
icon_living = initial(icon_living)
|
||||
@@ -781,13 +780,13 @@
|
||||
//HOLOSEEDSPAWNCODE
|
||||
/mob/living/simple_mob/animal/synx/ai/pet/holo/death()
|
||||
..()
|
||||
visible_message("<span class='notice'>\The [src] fades away!</span>")
|
||||
visible_message(span_notice("\The [src] fades away!"))
|
||||
var/location = get_turf(src)
|
||||
new /obj/item/seeds/hardlightseed/typesx(location)
|
||||
qdel(src)
|
||||
|
||||
/mob/living/simple_mob/animal/synx/ai/pet/holo/gib()
|
||||
visible_message("<span class='notice'>\The [src] fades away!</span>")
|
||||
visible_message(span_notice("\The [src] fades away!"))
|
||||
var/location = get_turf(src)
|
||||
new /obj/item/seeds/hardlightseed/typesx(location)
|
||||
qdel(src)
|
||||
|
||||
@@ -26,15 +26,15 @@
|
||||
set category = "Abilities.Vore"
|
||||
|
||||
if(!vore_icons && !vore_icons_cache)
|
||||
to_chat(src,"<span class='warning'>This simplemob has no vore sprite.</span>")
|
||||
to_chat(src,span_warning("This simplemob has no vore sprite."))
|
||||
else if(isnull(vore_icons_cache))
|
||||
vore_icons_cache = vore_icons
|
||||
vore_icons = 0
|
||||
to_chat(src,"<span class='warning'>Vore sprite disabled.</span>")
|
||||
to_chat(src,span_warning("Vore sprite disabled."))
|
||||
else
|
||||
vore_icons = vore_icons_cache
|
||||
vore_icons_cache = null
|
||||
to_chat(src,"<span class='warning'>Vore sprite enabled.</span>")
|
||||
to_chat(src,span_warning("Vore sprite enabled."))
|
||||
|
||||
update_icon()
|
||||
|
||||
@@ -44,7 +44,7 @@
|
||||
set category = "IC.Mob"
|
||||
|
||||
if(stat)
|
||||
to_chat(src, "<span class='warning'>You must be awake and standing to perform this action!</span>")
|
||||
to_chat(src, span_warning("You must be awake and standing to perform this action!"))
|
||||
return
|
||||
|
||||
speech_sound_enabled = !speech_sound_enabled
|
||||
@@ -109,7 +109,7 @@
|
||||
if(istype(mob_radio, /obj/item/radio/headset))
|
||||
mob_radio.tgui_interact(src)
|
||||
else
|
||||
to_chat(src, "<span class='warning'>Your mob does not have a radio in its radio slot.</span>")
|
||||
to_chat(src, span_warning("Your mob does not have a radio in its radio slot."))
|
||||
|
||||
/mob/living/simple_mob/proc/use_pda()
|
||||
set name = "Use PDA"
|
||||
@@ -119,7 +119,7 @@
|
||||
if(istype(myid, /obj/item/pda))
|
||||
myid.tgui_interact(src)
|
||||
else
|
||||
to_chat(src, "<span class='warning'>Your mob does not have a PDA in its ID slot.</span>")
|
||||
to_chat(src, span_warning("Your mob does not have a PDA in its ID slot."))
|
||||
|
||||
/mob/living/simple_mob/New(var/newloc)
|
||||
..()
|
||||
|
||||
@@ -111,10 +111,10 @@
|
||||
set category = "Abilities.Mob"
|
||||
|
||||
if(pouncing)
|
||||
to_chat(src, "<span class='notice'>Pouncing toggled off.</span>")
|
||||
to_chat(src, span_notice("Pouncing toggled off."))
|
||||
pouncing = 0
|
||||
else
|
||||
to_chat(src, "<span class='notice'>Pouncing toggled on! DoubleClick somewhere to pounce there.</span>")
|
||||
to_chat(src, span_notice("Pouncing toggled on! DoubleClick somewhere to pounce there."))
|
||||
pouncing = 1
|
||||
update_icon()
|
||||
|
||||
@@ -162,9 +162,9 @@
|
||||
if(!foundpm)
|
||||
pass_flags &= ~PASSMOB
|
||||
else
|
||||
to_chat(src, "<span class='warning'>Pouncing blind isn't wise!</span>")
|
||||
to_chat(src, span_warning("Pouncing blind isn't wise!"))
|
||||
else
|
||||
to_chat(src, "<span class='warning'>You can't do that right now!</span>")
|
||||
to_chat(src, span_warning("You can't do that right now!"))
|
||||
// some sanity incase the callback didn't fire for some reason
|
||||
if(status_flags & LEAPING)
|
||||
status_flags &= ~LEAPING
|
||||
@@ -227,7 +227,7 @@
|
||||
return
|
||||
|
||||
if((spit_last + spit_delay) > world.time) //To prevent YATATATATATAT spitting.
|
||||
to_chat(src, "<span class='warning'>You have not yet prepared your chemical glands. You must wait before spitting again.</span>")
|
||||
to_chat(src, span_warning("You have not yet prepared your chemical glands. You must wait before spitting again."))
|
||||
return
|
||||
else
|
||||
spit_last = world.time
|
||||
@@ -238,7 +238,7 @@
|
||||
update_icon()
|
||||
return
|
||||
else if(spitting)
|
||||
//visible_message("<span class='warning'>[src] spits [spit_name] at \the [A]!</span>", "<span class='alium'>You spit [spit_name] at \the [A].</span>")
|
||||
//visible_message(span_warning("[src] spits [spit_name] at \the [A]!"), span_alium("You spit [spit_name] at \the [A]."))
|
||||
var/obj/item/projectile/P = new spit_projectile(get_turf(src))
|
||||
P.firer = src
|
||||
P.old_style_target(A)
|
||||
@@ -251,12 +251,12 @@
|
||||
set category = "Abilities.Mob"
|
||||
|
||||
if(spitting)
|
||||
to_chat(src, "<span class='notice'>You stop preparing to spit.</span>")
|
||||
to_chat(src, span_notice("You stop preparing to spit."))
|
||||
spitting = 0
|
||||
else
|
||||
spitting = 1
|
||||
spit_projectile = /obj/item/projectile/energy/neurotoxin
|
||||
to_chat(src, "<span class='notice'>You prepare to spit neurotoxin.</span>")
|
||||
to_chat(src, span_notice("You prepare to spit neurotoxin."))
|
||||
update_icon()
|
||||
|
||||
/mob/living/simple_mob/proc/acidspit()
|
||||
@@ -265,12 +265,12 @@
|
||||
set category = "Abilities.Mob"
|
||||
|
||||
if(spitting)
|
||||
to_chat(src, "<span class='notice'>You stop preparing to spit.</span>")
|
||||
to_chat(src, span_notice("You stop preparing to spit."))
|
||||
spitting = 0
|
||||
else
|
||||
spitting = 1
|
||||
spit_projectile = /obj/item/projectile/energy/acid
|
||||
to_chat(src, "<span class='notice'>You prepare to spit acid.</span>")
|
||||
to_chat(src, span_notice("You prepare to spit acid."))
|
||||
update_icon()
|
||||
|
||||
/mob/living/simple_mob/proc/corrosive_acid(O as obj|turf in oview(1)) //If they right click to corrode, an error will flash if its an invalid target./N
|
||||
@@ -279,7 +279,7 @@
|
||||
set category = "Abilities.Mob"
|
||||
|
||||
if(!(O in oview(1)))
|
||||
to_chat(src, "<span class='notice'>[O] is too far away.</span>")
|
||||
to_chat(src, span_notice("[O] is too far away."))
|
||||
return
|
||||
|
||||
// OBJ CHECK
|
||||
@@ -301,11 +301,11 @@
|
||||
cannot_melt = 1 //Gurgs : Everything that isn't a object, simulated wall, or simulated floor is assumed to be acid immune. Includes weird things like unsimulated floors and space.
|
||||
|
||||
if(cannot_melt)
|
||||
to_chat(src, "<span class='notice'>You cannot dissolve this object.</span>")
|
||||
to_chat(src, span_notice("You cannot dissolve this object."))
|
||||
return
|
||||
|
||||
new /obj/effect/alien/acid(get_turf(O), O)
|
||||
visible_message("<span class='alium'><B>[src] vomits globs of vile stuff all over [O]. It begins to sizzle and melt under the bubbling mess of acid!</B></span>")
|
||||
visible_message(span_alium(span_bold("[src] vomits globs of vile stuff all over [O]. It begins to sizzle and melt under the bubbling mess of acid!")))
|
||||
|
||||
return
|
||||
|
||||
@@ -316,7 +316,7 @@
|
||||
set category = "Abilities.Mob"
|
||||
|
||||
if(world.time < speen_last)
|
||||
to_chat(src, "<span class='warning'>You cannot spin again so soon.</span>")
|
||||
to_chat(src, span_warning("You cannot spin again so soon."))
|
||||
return
|
||||
|
||||
speen_last = world.time + speen_delay
|
||||
@@ -344,6 +344,6 @@
|
||||
M.Weaken(1.5)
|
||||
if(!gentle)
|
||||
M.adjustBruteLoss(damage)
|
||||
to_chat(M, "<span class='userdanger'>You're thrown back by [src]!</span>")
|
||||
to_chat(M, span_userdanger("You're thrown back by [src]!"))
|
||||
playsound(src, get_sfx("punch"), 50, 1)
|
||||
AM.throw_at(throwtarget, maxthrow, 3, src)
|
||||
|
||||
@@ -254,7 +254,7 @@ ANT STRUCTURES
|
||||
L.visible_message(
|
||||
span_danger("[L] steps in \the [src]."),
|
||||
span_danger("You step in \the [src]!"),
|
||||
"<b>You hear a strange rustling!</b>"
|
||||
span_hear(span_bold("You hear a strange rustling!"))
|
||||
)
|
||||
attack_mob(L)
|
||||
update_icon()
|
||||
|
||||
@@ -87,8 +87,8 @@
|
||||
desc = "Can you even see this in game?"
|
||||
mob_overlay_state = "cult_aura"
|
||||
|
||||
on_created_text = "<span class='warning'>You feel incrediably vulnerable.</span>"
|
||||
on_expired_text = "<span class='notice'>You feel better.</span>"
|
||||
on_created_text = span_warning("You feel incrediably vulnerable.")
|
||||
on_expired_text = span_notice("You feel better.")
|
||||
stacks = MODIFIER_STACK_ALLOWED // Multiple instances will hurt a lot.
|
||||
incoming_damage_percent = 2 // Adjusts all incoming damage.
|
||||
incoming_brute_damage_percent = 2 // Only affects bruteloss.
|
||||
|
||||
@@ -571,8 +571,8 @@
|
||||
/datum/modifier/bossbuff
|
||||
name = "boss_buff"
|
||||
|
||||
on_created_text = "<span class='critical'>You feel an intense and overwhelming rage overtake you as you go berserk!</span>"
|
||||
on_expired_text = "<span class='notice'>The blaze of rage inside you has ran out.</span>"
|
||||
on_created_text = span_critical("You feel an intense and overwhelming rage overtake you as you go berserk!")
|
||||
on_expired_text = span_notice("The blaze of rage inside you has ran out.")
|
||||
stacks = MODIFIER_STACK_EXTEND
|
||||
|
||||
disable_duration_percent = 0
|
||||
@@ -587,8 +587,8 @@
|
||||
|
||||
aura_max_distance = 28
|
||||
|
||||
on_created_text = "<span class='critical'>You feel like you're falling into ruin!</span>"
|
||||
on_expired_text = "<span class='notice'>The ruin feeling is gone.</span>"
|
||||
on_created_text = span_critical("You feel like you're falling into ruin!")
|
||||
on_expired_text = span_notice("The ruin feeling is gone.")
|
||||
stacks = MODIFIER_STACK_EXTEND
|
||||
|
||||
/datum/modifier/aura/despair/tick()
|
||||
|
||||
@@ -26,8 +26,8 @@
|
||||
var/armorcheck = run_armor_check(null, P.check_armour)
|
||||
var/soakedcheck = get_armor_soak(null, P.check_armour)
|
||||
if(!(istype(P, /obj/item/projectile/energy) || istype(P, /obj/item/projectile/beam)))
|
||||
visible_message("<span class='danger'>The [P.name] bounces off of [src]'s shield!</span>", \
|
||||
"<span class='userdanger'>The [P.name] bounces off of [src]'s shield!</span>")
|
||||
visible_message(span_danger("The [P.name] bounces off of [src]'s shield!"), \
|
||||
span_userdanger("The [P.name] bounces off of [src]'s shield!"))
|
||||
new /obj/item/material/shard/shrapnel(src.loc)
|
||||
if(!(P.damage_type == BRUTE || P.damage_type == BURN))
|
||||
projectile_dam_type = BRUTE
|
||||
@@ -35,8 +35,8 @@
|
||||
apply_damage(incoming_damage, projectile_dam_type, null, armorcheck, soakedcheck, is_sharp(P), has_edge(P), P)
|
||||
return -1 //Doesn't reflect non-beams or non-energy projectiles. They just smack and drop with little to no effect.
|
||||
else
|
||||
visible_message("<span class='danger'>The [P.name] gets reflected by [src]'s shield!</span>", \
|
||||
"<span class='userdanger'>The [P.name] gets reflected by [src]'s shield!</span>")
|
||||
visible_message(span_danger("The [P.name] gets reflected by [src]'s shield!"), \
|
||||
span_userdanger("The [P.name] gets reflected by [src]'s shield!"))
|
||||
damage_mod = rand(3,5)
|
||||
incoming_damage = (round(P.damage / damage_mod) - (round((P.damage / damage_mod) * 0.3)))
|
||||
if(!(P.damage_type == BRUTE || P.damage_type == BURN))
|
||||
|
||||
@@ -139,8 +139,8 @@
|
||||
desc = "Can you even see this in game?"
|
||||
mob_overlay_state = "on_fire"
|
||||
|
||||
on_created_text = "<span class='warning'>You are on digital fire.</span>"
|
||||
on_expired_text = "<span class='notice'>You feel better.</span>"
|
||||
on_created_text = span_warning("You are on digital fire.")
|
||||
on_expired_text = span_notice("You feel better.")
|
||||
stacks = MODIFIER_STACK_ALLOWED // Multiple instances will hurt a lot.
|
||||
var/damage_per_tick = 1.5
|
||||
bleeding_rate_percent = 0.7
|
||||
@@ -153,8 +153,8 @@
|
||||
desc = "Can you even see this in game?."
|
||||
mob_overlay_state = "blue_electricity_constant"
|
||||
|
||||
on_created_text = "<span class='warning'>You are filled with digital lighting.</span>"
|
||||
on_expired_text = "<span class='notice'>You feel better.</span>"
|
||||
on_created_text = span_warning("You are filled with digital lighting.")
|
||||
on_expired_text = span_notice("You feel better.")
|
||||
stacks = MODIFIER_STACK_ALLOWED // Multiple instances will hurt a lot.
|
||||
damage_per_tick = 1.0
|
||||
incoming_fire_damage_percent = 1.1
|
||||
@@ -164,8 +164,8 @@
|
||||
desc = "Can you even see this in game?."
|
||||
mob_overlay_state = "poisoned"
|
||||
|
||||
on_created_text = "<span class='warning'>You are on digital poisoned.</span>"
|
||||
on_expired_text = "<span class='notice'>You feel better.</span>"
|
||||
on_created_text = span_warning("You are on digital poisoned.")
|
||||
on_expired_text = span_notice("You feel better.")
|
||||
stacks = MODIFIER_STACK_ALLOWED // Multiple instances will hurt a lot.
|
||||
var/damage_per_tick = 3
|
||||
|
||||
@@ -179,8 +179,8 @@
|
||||
desc = "Can you even see this in game?."
|
||||
mob_overlay_state = "chilled"
|
||||
|
||||
on_created_text = "<span class='warning'>You are on freezing, digitally.</span>"
|
||||
on_expired_text = "<span class='notice'>You feel better.</span>"
|
||||
on_created_text = span_warning("You are on freezing, digitally.")
|
||||
on_expired_text = span_notice("You feel better.")
|
||||
stacks = MODIFIER_STACK_ALLOWED // Multiple instances will hurt a lot.
|
||||
damage_per_tick = 1
|
||||
slowdown = 0.5
|
||||
@@ -190,8 +190,8 @@
|
||||
desc = "Can you even see this in game?."
|
||||
mob_overlay_state = "corana"
|
||||
|
||||
on_created_text = "<span class='warning'>You feel less real.</span>"
|
||||
on_expired_text = "<span class='notice'>You feel real again.</span>"
|
||||
on_created_text = span_warning("You feel less real.")
|
||||
on_expired_text = span_notice("You feel real again.")
|
||||
stacks = MODIFIER_STACK_ALLOWED //How does this stack?
|
||||
max_health_percent = 0.7
|
||||
|
||||
@@ -200,8 +200,8 @@
|
||||
desc = "Can you even see this in game?."
|
||||
mob_overlay_state = "cult_aura"
|
||||
|
||||
on_created_text = "<span class='warning'>You feel like the end is nigh.</span>"
|
||||
on_expired_text = "<span class='notice'>You feel safe for now.</span>"
|
||||
on_created_text = span_warning("You feel like the end is nigh.")
|
||||
on_expired_text = span_notice("You feel safe for now.")
|
||||
aura_max_distance = 4
|
||||
max_health_percent = 0.9
|
||||
disable_duration_percent = 1.2
|
||||
|
||||
+5
-5
@@ -113,7 +113,7 @@
|
||||
|
||||
/mob/living/simple_mob/humanoid/eclipse/solar/bullet_act(obj/item/projectile/P)
|
||||
if(istype(P, /obj/item/projectile/energy) || istype(P, /obj/item/projectile/beam))
|
||||
visible_message(span_orange("<B>[P] seems ineffective!.</B>"))
|
||||
visible_message(span_boldwarning(span_orange("[P] seems ineffective!.")))
|
||||
..()
|
||||
else
|
||||
..()
|
||||
@@ -231,7 +231,7 @@
|
||||
try_reload()
|
||||
return FALSE
|
||||
|
||||
visible_message(span_danger("<b>\The [src]</b> fires at \the [orig_targ]!"))
|
||||
visible_message(span_danger(span_bold("\The [src]") + " fires at \the [orig_targ]!"))
|
||||
shoot(A)
|
||||
if(casingtype)
|
||||
new casingtype(loc)
|
||||
@@ -284,7 +284,7 @@
|
||||
|
||||
/mob/living/simple_mob/humanoid/eclipse/lunar/bullet_act(obj/item/projectile/P)
|
||||
if(istype(P, /obj/item/projectile/bullet))
|
||||
visible_message(span_orange("<B>[P] seems ineffective!.</B>"))
|
||||
visible_message(span_boldwarning(span_orange("[P] seems ineffective!.")))
|
||||
..()
|
||||
else
|
||||
..()
|
||||
@@ -333,7 +333,7 @@
|
||||
try_reload()
|
||||
return FALSE
|
||||
|
||||
visible_message(span_danger("<b>\The [src]</b> fires at \the [orig_targ]!"))
|
||||
visible_message(span_danger(span_bold("\The [src]") + " fires at \the [orig_targ]!"))
|
||||
shoot(A)
|
||||
if(casingtype)
|
||||
new casingtype(loc)
|
||||
@@ -646,7 +646,7 @@
|
||||
try_reload()
|
||||
return FALSE
|
||||
|
||||
visible_message(span_danger("<b>\The [src]</b> fires at \the [orig_targ]!"))
|
||||
visible_message(span_danger(span_bold("\The [src]") + " fires at \the [orig_targ]!"))
|
||||
shoot(A)
|
||||
if(casingtype)
|
||||
new casingtype(loc)
|
||||
|
||||
@@ -384,16 +384,16 @@
|
||||
if(fullshield > 0)
|
||||
fullshield--
|
||||
if(fullshield > 0)
|
||||
visible_message(span_warning(span_orange("<B>[P] is absorbed by the shield!.</B>")))
|
||||
visible_message(span_boldwarning(span_orange("[P] is absorbed by the shield!.")))
|
||||
else
|
||||
visible_message(span_warning(span_orange("<B>[P] breaks the shield!!.</B>")))
|
||||
visible_message(span_boldwarning(span_orange("[P] breaks the shield!!.")))
|
||||
else
|
||||
..()
|
||||
shieldrage--
|
||||
if(shieldrage == 0)
|
||||
shieldrage = 6
|
||||
fullshield = 6
|
||||
visible_message(span_warning(span_orange("<B>The shield reactivates!!.</B>")))
|
||||
visible_message(span_boldwarning(span_orange("The shield reactivates!!.")))
|
||||
|
||||
/mob/living/simple_mob/humanoid/eclipse/head/tyrlead/do_special_attack(atom/A)
|
||||
if(vore_fullness > 2) //If they nompf someone already
|
||||
|
||||
+1
-1
@@ -128,7 +128,7 @@
|
||||
|
||||
if(L.can_be_drop_prey && L.devourable)
|
||||
L.forceMove(belly_dest)
|
||||
to_chat(target, "<span class='danger'>[src] materializes around you, as you end up in their [belly_dest]!</span>")
|
||||
to_chat(target, span_danger("[src] materializes around you, as you end up in their [belly_dest]!"))
|
||||
|
||||
|
||||
/mob/living/simple_mob/humanoid/starhunter/hunter/proc/smokebomb(atom/target)
|
||||
|
||||
+3
-3
@@ -18,7 +18,7 @@
|
||||
|
||||
/mob/living/simple_mob/humanoid/starhunter/hunter/bullet_act(obj/item/projectile/P)
|
||||
if(istype(P, /obj/item/projectile/energy/lightpillar))
|
||||
visible_message(span_orange("<B>[P] seems ineffective!.</B>")) //immune to their own attack
|
||||
visible_message(span_bolddanger(span_orange("[P] seems ineffective!."))) //immune to their own attack
|
||||
else
|
||||
..()
|
||||
|
||||
@@ -89,7 +89,7 @@
|
||||
*/
|
||||
if(ranged_cooldown_time) //If you have a non-zero number in a mob's variables, this pattern begins.
|
||||
if(ranged_cooldown <= world.time) //Further down, a timer keeps adding to the ranged_cooldown variable automatically.
|
||||
visible_message("<span class='danger'><b>\The [src]</b> fires at \the [A]!</span>") //Leave notice of shooting.
|
||||
visible_message(span_danger(span_bold("\The [src]") + " fires at \the [A]!")) //Leave notice of shooting.
|
||||
shoot(A) //Perform the shoot action
|
||||
if(casingtype) //If the mob is designated to leave casings...
|
||||
new casingtype(loc) //... leave the casing.
|
||||
@@ -98,7 +98,7 @@
|
||||
return TRUE //End these commands here.
|
||||
// CHOMPAddition End
|
||||
|
||||
visible_message("<span class='danger'><b>\The [src]</b> fires at \the [orig_targ]!</span>")
|
||||
visible_message(span_danger(span_bold("\The [src]") + " fires at \the [orig_targ]!"))
|
||||
shoot(A)
|
||||
if(casingtype)
|
||||
new casingtype(loc)
|
||||
|
||||
+21
-21
@@ -75,7 +75,7 @@
|
||||
W.forceMove(src)
|
||||
coin = W
|
||||
categories |= CAT_COIN
|
||||
to_chat(user, "<span class='notice'>You insert \the [W] into \the [src].</span>")
|
||||
to_chat(user, span_notice("You insert \the [W] into \the [src]."))
|
||||
SStgui.update_uis(src)
|
||||
return
|
||||
else
|
||||
@@ -92,12 +92,12 @@
|
||||
|
||||
// This is not a status display message, since it's something the character
|
||||
// themselves is meant to see BEFORE putting the money in
|
||||
to_chat(usr, "[icon2html(cashmoney,user.client)] <span class='warning'>That is not enough money.</span>")
|
||||
to_chat(usr, "[icon2html(cashmoney,user.client)] " + span_warning("That is not enough money."))
|
||||
return 0
|
||||
|
||||
if(istype(cashmoney, /obj/item/spacecash))
|
||||
|
||||
visible_message("<span class='info'>\The [usr] inserts some cash into \the [src].</span>")
|
||||
visible_message(span_info("\The [usr] inserts some cash into \the [src]."))
|
||||
cashmoney.worth -= currently_vending.price
|
||||
|
||||
if(cashmoney.worth <= 0)
|
||||
@@ -186,20 +186,20 @@
|
||||
return FALSE
|
||||
|
||||
if(!coin)
|
||||
to_chat(usr, "<span class='filter_notice'>There is no coin in this machine.</span>")
|
||||
to_chat(usr, span_filter_notice("There is no coin in this machine."))
|
||||
return
|
||||
|
||||
coin.forceMove(src.loc)
|
||||
if(!usr.get_active_hand())
|
||||
usr.put_in_hands(coin)
|
||||
|
||||
to_chat(usr, "<span class='notice'>You remove \the [coin] from \the [src].</span>")
|
||||
to_chat(usr, span_notice("You remove \the [coin] from \the [src]."))
|
||||
coin = null
|
||||
categories &= ~CAT_COIN
|
||||
return TRUE
|
||||
if("vend")
|
||||
if(!vend_ready)
|
||||
to_chat(usr, "<span class='warning'>[src] is busy!</span>")
|
||||
to_chat(usr, span_warning("[src] is busy!"))
|
||||
return
|
||||
|
||||
var/key = text2num(params["vend"])
|
||||
@@ -218,7 +218,7 @@
|
||||
return TRUE
|
||||
|
||||
if(issilicon(usr)) //If the item is not free, provide feedback if a synth is trying to buy something.
|
||||
to_chat(usr, "<span class='danger'>Lawed unit recognized. Lawed units cannot complete this transaction. Purchase canceled.</span>")
|
||||
to_chat(usr, span_danger("Lawed unit recognized. Lawed units cannot complete this transaction. Purchase canceled."))
|
||||
return
|
||||
if(!ishuman(usr))
|
||||
return
|
||||
@@ -229,7 +229,7 @@
|
||||
var/obj/item/card/id/C = H.GetIdCard()
|
||||
|
||||
if(!vendor_account || vendor_account.suspended)
|
||||
to_chat(usr, "<span class='filter_notice'>Vendor account offline. Unable to process transaction.</span>")
|
||||
to_chat(usr, span_filter_notice("Vendor account offline. Unable to process transaction."))
|
||||
flick("[icon_state]-deny",src)
|
||||
vend_ready = TRUE
|
||||
return
|
||||
@@ -247,10 +247,10 @@
|
||||
else if(istype(C, /obj/item/card))
|
||||
paid = pay_with_card(C, usr)
|
||||
/*else if(usr.can_advanced_admin_interact())
|
||||
to_chat(usr, "<span class='notice'>Vending object due to admin interaction.</span>")
|
||||
to_chat(usr, span_notice("Vending object due to admin interaction."))
|
||||
paid = TRUE*/
|
||||
else
|
||||
to_chat(usr, "<span class='warning'>Payment failure: you have no ID or other method of payment.</span>")
|
||||
to_chat(usr, span_warning("Payment failure: you have no ID or other method of payment."))
|
||||
vend_ready = TRUE
|
||||
flick("[icon_state]-deny",src)
|
||||
return TRUE // we set this because they shouldn't even be able to get this far, and we want the UI to update.
|
||||
@@ -258,7 +258,7 @@
|
||||
vend(currently_vending, usr) // vend will handle vend_ready
|
||||
. = TRUE
|
||||
else
|
||||
to_chat(usr, "<span class='warning'>Payment failure: unable to process payment.</span>")
|
||||
to_chat(usr, span_warning("Payment failure: unable to process payment."))
|
||||
vend_ready = TRUE
|
||||
|
||||
/mob/living/simple_mob/humanoid/starhunter/trader/proc/vend(datum/stored_item/vending_product/R, mob/user)
|
||||
@@ -266,7 +266,7 @@
|
||||
return
|
||||
|
||||
if(!R.amount)
|
||||
to_chat(user, "<span class='warning'>[src] has ran out of that product.</span>")
|
||||
to_chat(user, span_warning("[src] has ran out of that product."))
|
||||
vend_ready = TRUE
|
||||
return
|
||||
|
||||
@@ -275,7 +275,7 @@
|
||||
|
||||
if(R.category & CAT_COIN)
|
||||
if(!coin)
|
||||
to_chat(user, "<span class='notice'>You need to insert a coin to get this item.</span>")
|
||||
to_chat(user, span_notice("You need to insert a coin to get this item."))
|
||||
return
|
||||
else
|
||||
qdel(coin)
|
||||
@@ -300,7 +300,7 @@
|
||||
if(!user.unEquip(W))
|
||||
return
|
||||
|
||||
to_chat(user, "<span class='notice'>You insert \the [W] in the product receptor.</span>")
|
||||
to_chat(user, span_notice("You insert \the [W] in the product receptor."))
|
||||
R.add_product(W)
|
||||
if(has_logs)
|
||||
do_logging(R, user)
|
||||
@@ -308,10 +308,10 @@
|
||||
SStgui.update_uis(src)
|
||||
|
||||
/mob/living/simple_mob/humanoid/starhunter/trader/proc/pay_with_ewallet(var/obj/item/spacecash/ewallet/wallet)
|
||||
visible_message("<span class='info'>\The [usr] swipes \the [wallet] through \the [src].</span>")
|
||||
visible_message(span_info("\The [usr] swipes \the [wallet] through \the [src]."))
|
||||
playsound(src, 'sound/machines/id_swipe.ogg', 50, 1)
|
||||
if(currently_vending.price > wallet.worth)
|
||||
to_chat(usr, "<span class='warning'>Insufficient funds on chargecard.</span>")
|
||||
to_chat(usr, span_warning("Insufficient funds on chargecard."))
|
||||
return 0
|
||||
else
|
||||
wallet.worth -= currently_vending.price
|
||||
@@ -325,16 +325,16 @@
|
||||
* successful, 0 if failed
|
||||
*/
|
||||
/mob/living/simple_mob/humanoid/starhunter/trader/proc/pay_with_card(obj/item/card/id/I, mob/M)
|
||||
visible_message("<span class='info'>[M] swipes a card through [src].</span>")
|
||||
visible_message(span_info("[M] swipes a card through [src]."))
|
||||
playsound(src, 'sound/machines/id_swipe.ogg', 50, 1)
|
||||
|
||||
var/datum/money_account/customer_account = get_account(I.associated_account_number)
|
||||
if(!customer_account)
|
||||
to_chat(M, "<span class='warning'>Error: Unable to access account. Please contact technical support if problem persists.</span>")
|
||||
to_chat(M, span_warning("Error: Unable to access account. Please contact technical support if problem persists."))
|
||||
return FALSE
|
||||
|
||||
if(customer_account.suspended)
|
||||
to_chat(M, "<span class='warning'>Unable to access account: account suspended.</span>")
|
||||
to_chat(M, span_warning("Unable to access account: account suspended."))
|
||||
return FALSE
|
||||
|
||||
// Have the customer punch in the PIN before checking if there's enough money. Prevents people from figuring out acct is
|
||||
@@ -344,11 +344,11 @@
|
||||
customer_account = attempt_account_access(I.associated_account_number, attempt_pin, 2)
|
||||
|
||||
if(!customer_account)
|
||||
to_chat(M, "<span class='warning'>Unable to access account: incorrect credentials.</span>")
|
||||
to_chat(M, span_warning("Unable to access account: incorrect credentials."))
|
||||
return FALSE
|
||||
|
||||
if(currently_vending.price > customer_account.money)
|
||||
to_chat(M, "<span class='warning'>Insufficient funds in account.</span>")
|
||||
to_chat(M, span_warning("Insufficient funds in account."))
|
||||
return FALSE
|
||||
|
||||
// Okay to move the money at this point
|
||||
|
||||
+2
-2
@@ -25,8 +25,8 @@
|
||||
/mob/living/simple_mob/construct/juggernaut/behemoth/unstoppable/bullet_act(var/obj/item/projectile/P)
|
||||
var/reflectchance = 100 - round(P.damage*2)
|
||||
if(prob(reflectchance))
|
||||
visible_message("<span class='danger'>The [P.name] gets reflected by [src]'s shell!</span>", \
|
||||
"<span class='userdanger'>The [P.name] gets reflected by [src]'s shell!</span>")
|
||||
visible_message(span_danger("The [P.name] gets reflected by [src]'s shell!"), \
|
||||
span_userdanger("The [P.name] gets reflected by [src]'s shell!"))
|
||||
|
||||
// Find a turf near or on the original location to bounce to
|
||||
if(P.starting)
|
||||
|
||||
+4
-4
@@ -236,8 +236,8 @@
|
||||
var/armorcheck = run_armor_check(null, P.check_armour)
|
||||
var/soakedcheck = get_armor_soak(null, P.check_armour)
|
||||
if(!(istype(P, /obj/item/projectile/energy) || istype(P, /obj/item/projectile/beam)))
|
||||
visible_message("<span class='danger'>The [P.name] bounces off of [src]'s shell!</span>", \
|
||||
"<span class='userdanger'>The [P.name] bounces off of [src]'s shell!</span>")
|
||||
visible_message(span_danger("The [P.name] bounces off of [src]'s shell!"), \
|
||||
span_userdanger("The [P.name] bounces off of [src]'s shell!"))
|
||||
new /obj/item/material/shard/shrapnel(src.loc)
|
||||
if(!(P.damage_type == BRUTE || P.damage_type == BURN))
|
||||
projectile_dam_type = BRUTE
|
||||
@@ -245,8 +245,8 @@
|
||||
apply_damage(incoming_damage, projectile_dam_type, null, armorcheck, soakedcheck, is_sharp(P), has_edge(P), P)
|
||||
return -1 //Doesn't reflect non-beams or non-energy projectiles. They just smack and drop with little to no effect.
|
||||
else
|
||||
visible_message("<span class='danger'>The [P.name] gets reflected by [src]'s shell!</span>", \
|
||||
"<span class='userdanger'>The [P.name] gets reflected by [src]'s shell!</span>")
|
||||
visible_message(span_danger("The [P.name] gets reflected by [src]'s shell!"), \
|
||||
span_userdanger("The [P.name] gets reflected by [src]'s shell!"))
|
||||
damage_mod = rand(3,5)
|
||||
incoming_damage = (round(P.damage / damage_mod) - (round((P.damage / damage_mod) * 0.3)))
|
||||
if(!(P.damage_type == BRUTE || P.damage_type == BURN))
|
||||
|
||||
@@ -40,7 +40,7 @@
|
||||
required = /obj/item/slime_extract/sepia
|
||||
|
||||
/decl/chemical_reaction/instant/slime/secertslime/on_reaction(var/datum/reagents/holder)
|
||||
holder.my_atom.visible_message("<span class='warning'>Infused with the mixture, the core begins to quiver and grow, and soon a new baby slime emerges from it!</span>")
|
||||
holder.my_atom.visible_message(span_warning("Infused with the mixture, the core begins to quiver and grow, and soon a new baby slime emerges from it!"))
|
||||
new /mob/living/simple_mob/slime/xenobio/redspace(get_turf(holder.my_atom))
|
||||
..()
|
||||
|
||||
@@ -53,7 +53,7 @@
|
||||
required = /obj/item/slime_extract/sepia
|
||||
|
||||
/decl/chemical_reaction/instant/slime/sepia_new_slime/on_reaction(var/datum/reagents/holder)
|
||||
holder.my_atom.visible_message("<span class='warning'>Infused with slime jelly, the core begins to quiver and grow, and soon a new baby slime emerges from it!</span>")
|
||||
holder.my_atom.visible_message(span_warning("Infused with slime jelly, the core begins to quiver and grow, and soon a new baby slime emerges from it!"))
|
||||
new /mob/living/simple_mob/slime/xenobio/sepia(get_turf(holder.my_atom))
|
||||
..()
|
||||
|
||||
@@ -203,7 +203,7 @@
|
||||
required = /obj/item/slime_extract/dark
|
||||
|
||||
/decl/chemical_reaction/instant/slime/dark_carpotoxin/on_reaction(var/datum/reagents/holder)
|
||||
holder.my_atom.visible_message("<span class='warning'>Infused with slime jelly, the core begins to quiver and grow, and soon a new baby slime emerges from it!</span>")
|
||||
holder.my_atom.visible_message(span_warning("Infused with slime jelly, the core begins to quiver and grow, and soon a new baby slime emerges from it!"))
|
||||
new /mob/living/simple_mob/slime/xenobio/oceanic(get_turf(holder.my_atom))
|
||||
..()
|
||||
|
||||
@@ -313,8 +313,8 @@
|
||||
name = "Aura Healing Tide"
|
||||
desc = "You are filled with an overwhelming energy."
|
||||
|
||||
on_created_text = "<span class='critical'>Your body begins to focus on recovering!</span>"
|
||||
on_expired_text = "<span class='notice'>The healing subsides.</span>"
|
||||
on_created_text = span_critical("Your body begins to focus on recovering!")
|
||||
on_expired_text = span_notice("The healing subsides.")
|
||||
stacks = MODIFIER_STACK_FORBID
|
||||
aura_max_distance = 4
|
||||
|
||||
@@ -374,7 +374,7 @@
|
||||
required = /obj/item/slime_extract/plague
|
||||
|
||||
/decl/chemical_reaction/instant/slime/warplague/on_reaction(var/datum/reagents/holder)
|
||||
holder.my_atom.visible_message("<span class='warning'>Infused with slime jelly, the core begins to quiver and grow, and soon a new baby slime emerges from it!</span>")
|
||||
holder.my_atom.visible_message(span_warning("Infused with slime jelly, the core begins to quiver and grow, and soon a new baby slime emerges from it!"))
|
||||
new /mob/living/simple_mob/slime/xenobio/nuclear(get_turf(holder.my_atom))
|
||||
..()
|
||||
|
||||
@@ -408,8 +408,8 @@
|
||||
name = "Radiation Hide"
|
||||
desc = "Your body defensivly warps."
|
||||
|
||||
on_created_text = "<span class='critical'>Your body strangly mutates!</span>"
|
||||
on_expired_text = "<span class='notice'>Your body returns to normal.</span>"
|
||||
on_created_text = span_critical("Your body strangly mutates!")
|
||||
on_expired_text = span_notice("Your body returns to normal.")
|
||||
stacks = MODIFIER_STACK_FORBID
|
||||
aura_max_distance = 4
|
||||
|
||||
@@ -435,7 +435,7 @@
|
||||
/decl/chemical_reaction/instant/slime/nuclear_radpulse/on_reaction(var/datum/reagents/holder)
|
||||
log_and_message_admins("Green extract reaction (radiation pulse) has been activated in [get_area(holder.my_atom)]. Last fingerprints: [holder.my_atom.fingerprintslast]")
|
||||
playsound(holder.my_atom, 'sound/effects/phasein.ogg', 75, 1)
|
||||
holder.my_atom.visible_message("<span class='danger'>\The [holder.my_atom] begins to vibrate violently!</span>")
|
||||
holder.my_atom.visible_message(span_danger("\The [holder.my_atom] begins to vibrate violently!"))
|
||||
spawn(5 SECONDS)
|
||||
SSradiation.flat_radiate(src, 30, 7, TRUE)
|
||||
..()
|
||||
@@ -513,7 +513,7 @@
|
||||
required = /obj/item/slime_extract/dream
|
||||
|
||||
/decl/chemical_reaction/instant/slime/nightmareslime/on_reaction(var/datum/reagents/holder)
|
||||
holder.my_atom.visible_message("<span class='warning'>Infused with slime jelly, the core begins to quiver and grow, and soon a new baby slime emerges from it!</span>")
|
||||
holder.my_atom.visible_message(span_warning("Infused with slime jelly, the core begins to quiver and grow, and soon a new baby slime emerges from it!"))
|
||||
new /mob/living/simple_mob/slime/xenobio/nightmare(get_turf(holder.my_atom))
|
||||
..()
|
||||
|
||||
@@ -630,7 +630,7 @@
|
||||
required = /obj/item/slime_extract/redspace
|
||||
|
||||
/decl/chemical_reaction/instant/slime/redspace_sound/on_reaction(var/datum/reagents/holder)
|
||||
holder.my_atom.visible_message("<span class='warning'>Infused with the mixture, the core begins to quiver and grow, and soon a new baby slime emerges from it!</span>")
|
||||
holder.my_atom.visible_message(span_warning("Infused with the mixture, the core begins to quiver and grow, and soon a new baby slime emerges from it!"))
|
||||
new /mob/living/simple_mob/slime/xenobio/sound(get_turf(holder.my_atom))
|
||||
..()
|
||||
|
||||
@@ -664,8 +664,8 @@
|
||||
name = "Soothing Song"
|
||||
desc = "Your body is soothed."
|
||||
|
||||
on_created_text = "<span class='critical'>Your mind is put to rest!</span>"
|
||||
on_expired_text = "<span class='notice'>Your mind functions normally.</span>"
|
||||
on_created_text = span_critical("Your mind is put to rest!")
|
||||
on_expired_text = span_notice("Your mind functions normally.")
|
||||
stacks = MODIFIER_STACK_FORBID
|
||||
aura_max_distance = 4
|
||||
|
||||
@@ -709,7 +709,7 @@
|
||||
required = /obj/item/slime_extract/sound
|
||||
|
||||
/decl/chemical_reaction/instant/slime/soundwater/on_reaction(var/datum/reagents/holder)
|
||||
holder.my_atom.visible_message("<span class='warning'>Infused with the mixture, the core begins to quiver and grow, and soon a new baby slime emerges from it!</span>")
|
||||
holder.my_atom.visible_message(span_warning("Infused with the mixture, the core begins to quiver and grow, and soon a new baby slime emerges from it!"))
|
||||
new /mob/living/simple_mob/slime/xenobio/sound(get_turf(holder.my_atom))
|
||||
..()
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
horns,
|
||||
overlay_colors["Eyes"],
|
||||
eyes), ";")
|
||||
to_chat(src, "<span class='notice'>Exported style string is \" [output_style] \". Use this to get the same style in the future with import style</span>")
|
||||
to_chat(src, span_notice("Exported style string is \" [output_style] \". Use this to get the same style in the future with import style"))
|
||||
|
||||
/mob/living/simple_mob/vore/bigdragon/proc/import_style()
|
||||
set name = "Import style string"
|
||||
|
||||
@@ -647,15 +647,15 @@
|
||||
/mob/living/simple_mob/vore/candy/peppermint/attackby(var/obj/item/O as obj, var/mob/user as mob)
|
||||
if(O.force)
|
||||
if(prob(80))
|
||||
visible_message("<span class='danger'>\The [src] deflects \the [O] with its shell!</span>")
|
||||
visible_message(span_danger("\The [src] deflects \the [O] with its shell!"))
|
||||
if(user)
|
||||
ai_holder.react_to_attack(user)
|
||||
return
|
||||
else
|
||||
..()
|
||||
else
|
||||
to_chat(user, "<span class='warning'>This weapon is ineffective, it does no damage.</span>")
|
||||
visible_message("<span class='warning'>\The [user] gently taps [src] with \the [O].</span>")
|
||||
to_chat(user, span_warning("This weapon is ineffective, it does no damage."))
|
||||
visible_message(span_warning("\The [user] gently taps [src] with \the [O]."))
|
||||
|
||||
/*
|
||||
/mob/living/simple_mob/vore/candy/worm
|
||||
|
||||
@@ -42,8 +42,8 @@
|
||||
set category = "Abilities.Shadekin"
|
||||
|
||||
if(phase_gentle)
|
||||
to_chat(src, "<span class='notice'>Phasing toggled to Normal. You may damage lights.</span>")
|
||||
to_chat(src, span_notice("Phasing toggled to Normal. You may damage lights."))
|
||||
phase_gentle = 0
|
||||
else
|
||||
to_chat(src, "<span class='notice'>Phasing toggled to Gentle. You won't damage lights, but concentrating on that incurs a short stun.</span>")
|
||||
to_chat(src, span_notice("Phasing toggled to Gentle. You won't damage lights, but concentrating on that incurs a short stun."))
|
||||
phase_gentle = 1
|
||||
|
||||
@@ -57,11 +57,11 @@
|
||||
L = new evolve(get_turf(src))
|
||||
if(mind)
|
||||
src.mind.transfer_to(L)
|
||||
visible_message("<span class='warning'>\The [src] suddenly evolves!</span>")
|
||||
visible_message(span_warning("\The [src] suddenly evolves!"))
|
||||
qdel(src)
|
||||
|
||||
/mob/living/simple_mob/vore/spacecritter/proc/duplicate()
|
||||
visible_message("<span class='warning'>\The [src] splits into two!</span>")
|
||||
visible_message(span_warning("\The [src] splits into two!"))
|
||||
new copy (src.loc)
|
||||
|
||||
|
||||
|
||||
@@ -253,15 +253,15 @@
|
||||
if(istype(AM, /mob/living))
|
||||
var/mob/living/M = AM
|
||||
if(!M.devourable || !M.can_be_drop_prey)
|
||||
to_chat(M, "<span class='warning'>[src] plunges their head into \the [D], while you narrowly avoid being sucked up!</span>")
|
||||
to_chat(M, span_warning("[src] plunges their head into \the [D], while you narrowly avoid being sucked up!"))
|
||||
continue
|
||||
to_chat(M, "<span class='warning'>[src] plunges their head into \the [D], sucking up everything inside- Including you!</span>")
|
||||
to_chat(M, span_warning("[src] plunges their head into \the [D], sucking up everything inside- Including you!"))
|
||||
foundstuff = 1
|
||||
AM.forceMove(src)
|
||||
if(foundstuff)
|
||||
src.visible_message("<span class='warning'>[src] plunges their head into \the [D], greedily sucking up everything inside!</span>")
|
||||
src.visible_message(span_warning("[src] plunges their head into \the [D], greedily sucking up everything inside!"))
|
||||
else //Oh, Nothing was inside...
|
||||
to_chat(src, "You poke your head into \the [D], but there doesnt seem to be anything of interest...")
|
||||
to_chat(src, span_infoplain("You poke your head into \the [D], but there doesnt seem to be anything of interest..."))
|
||||
return
|
||||
var/resolved = Vac.resolve_attackby(A, src, click_parameters = params)
|
||||
if(!resolved && A && Vac)
|
||||
@@ -278,7 +278,7 @@
|
||||
if(L.a_intent == I_GRAB && Vac && Vac.loc == src)
|
||||
if(L.zone_sel.selecting == BP_HEAD)
|
||||
if(L.put_in_active_hand(Vac))
|
||||
L.visible_message("<span class='warning'>[L] grabs [src] by the neck, brandishing the thing like a regular vacuum cleaner!</span>")
|
||||
L.visible_message(span_warning("[L] grabs [src] by the neck, brandishing the thing like a regular vacuum cleaner!"))
|
||||
L.start_pulling(src)
|
||||
return
|
||||
. = ..()
|
||||
@@ -303,9 +303,9 @@
|
||||
set category = "IC"
|
||||
set src in oview(1)
|
||||
if(!has_AI() || !IIsAlly(usr))
|
||||
to_chat(usr, "<span class=danger></span>")
|
||||
to_chat(usr, span_danger(""))
|
||||
if(!ai_holder == /datum/ai_holder/simple_mob/retaliate/swoopie || !ai_holder)
|
||||
to_chat(usr, "<span class=warning>This [src] doesnt seem to have changable settings!</span>")
|
||||
to_chat(usr, span_warning("This [src] doesnt seem to have changable settings!"))
|
||||
return
|
||||
var/datum/ai_holder/simple_mob/retaliate/swoopie/ai = ai_holder
|
||||
var/list/swooping_options = list(
|
||||
|
||||
@@ -67,7 +67,7 @@
|
||||
var/leap_warmup = 0.5 SECOND // How long the leap telegraphing is.
|
||||
var/leap_sound = 'sound/weapons/spiderlunge.ogg'
|
||||
|
||||
player_msg = "You are very fast, and <b>can perform a leaping attack</b> by clicking on someone from a short distance away.<br>\
|
||||
player_msg = "You are very fast, and " + span_bold("can perform a leaping attack") + " by clicking on someone from a short distance away.<br>\
|
||||
If the leap succeeds, the target will be knocked down briefly and you will be on top of them.<br>\
|
||||
Note that there is a short delay before you leap!<br>\
|
||||
In addition, you will do more damage to incapacitated opponents."
|
||||
|
||||
@@ -11,10 +11,10 @@
|
||||
set category = "Abilities.Settings"
|
||||
|
||||
if(picked_size)
|
||||
to_chat(src, "<span class='notice'>You have already picked a size! If you picked the wrong size, ask an admin to change your picked_size variable to 0.</span>")
|
||||
to_chat(src, span_notice("You have already picked a size! If you picked the wrong size, ask an admin to change your picked_size variable to 0."))
|
||||
return
|
||||
if(!resizable)
|
||||
to_chat(src, "<span class='warning'>You are immune to resizing!</span>")
|
||||
to_chat(src, span_warning("You are immune to resizing!"))
|
||||
return
|
||||
|
||||
var/nagmessage = "Pick a size between 25 to 200%. (Only usable once!)"
|
||||
@@ -31,7 +31,7 @@
|
||||
set category = "Abilities.Settings"
|
||||
set desc = "You can set your color!"
|
||||
if(picked_color)
|
||||
to_chat(src, "<span class='notice'>You have already picked a color! If you picked the wrong color, ask an admin to change your picked_color variable to 0.</span>")
|
||||
to_chat(src, span_notice("You have already picked a color! If you picked the wrong color, ask an admin to change your picked_color variable to 0."))
|
||||
return
|
||||
var/newcolor = input(usr, "Choose a color.", "", color) as color|null
|
||||
if(newcolor)
|
||||
|
||||
@@ -167,7 +167,7 @@
|
||||
|
||||
/mob/living/simple_mob/vore/weatherbeast/sandstorm/do_special_attack(atom/A)
|
||||
if(health < maxHealth*0.25)
|
||||
visible_message(span_orange("<B>The fossil tank begins self repairs!.</B>"))
|
||||
visible_message(span_bolddanger(span_orange("The fossil tank begins self repairs!.")))
|
||||
sleep(30)
|
||||
for(var/i =1 to 10)
|
||||
adjustBruteLoss(-100)
|
||||
@@ -215,7 +215,7 @@
|
||||
|
||||
/mob/living/simple_mob/vore/weatherbeast/acidrain/do_special_attack(atom/A)
|
||||
if(nutrition > 1100)
|
||||
visible_message(span_orange("<B>The giant jellyfish begins to regenerate!.</B>"))
|
||||
visible_message(span_bolddanger(span_orange("The giant jellyfish begins to regenerate!.")))
|
||||
adjustBruteLoss(-300)
|
||||
adjustFireLoss(-300)
|
||||
adjust_nutrition(-500)
|
||||
|
||||
@@ -36,7 +36,7 @@
|
||||
O = new /obj/effect/alien/weeds/node(targetLoc)
|
||||
|
||||
if(O)
|
||||
visible_message("<span class='warning'><B>[src] vomits up a thick purple substance and begins to shape it!</B></span>", "<span class='alium'>You shape a [choice].</span>")
|
||||
visible_message(span_boldwarning("[src] vomits up a thick purple substance and begins to shape it!"), span_alium("You shape a [choice]."))
|
||||
O.color = "#321D37"
|
||||
playsound(src, 'sound/effects/blobattack.ogg', 40, 1)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user