mirror of
https://github.com/Yawn-Wider/YWPolarisVore.git
synced 2026-08-30 08:32:39 +01:00
refactors most spans
This commit is contained in:
@@ -113,7 +113,7 @@
|
||||
try_reload()
|
||||
return FALSE
|
||||
|
||||
visible_message("<span class='danger'><b>\The [src]</b> fires at \the [A]!</span>")
|
||||
visible_message(span_danger("<b>\The [src]</b> fires at \the [A]!"))
|
||||
shoot(A)
|
||||
if(casingtype)
|
||||
new casingtype(loc)
|
||||
|
||||
@@ -16,10 +16,10 @@
|
||||
switch(L.a_intent)
|
||||
if(I_HELP)
|
||||
if(health > 0)
|
||||
L.visible_message("<span class='notice'>\The [L] [response_help] \the [src].</span>")
|
||||
L.visible_message(span_notice("\The [L] [response_help] \the [src]."))
|
||||
|
||||
if(I_DISARM)
|
||||
L.visible_message("<span class='notice'>\The [L] [response_disarm] \the [src].</span>")
|
||||
L.visible_message(span_notice("\The [L] [response_disarm] \the [src]."))
|
||||
L.do_attack_animation(src)
|
||||
//TODO: Push the mob away or something
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
if (!(status_flags & CANPUSH))
|
||||
return
|
||||
if(!incapacitated(INCAPACITATION_ALL) && prob(grab_resist))
|
||||
L.visible_message("<span class='warning'>\The [L] tries to grab \the [src] but fails!</span>")
|
||||
L.visible_message(span_warning("\The [L] tries to grab \the [src] but fails!"))
|
||||
return
|
||||
|
||||
var/obj/item/grab/G = new /obj/item/grab(L, src)
|
||||
@@ -40,7 +40,7 @@
|
||||
G.affecting = src
|
||||
LAssailant = L
|
||||
|
||||
L.visible_message("<span class='warning'>\The [L] has grabbed [src] passively!</span>")
|
||||
L.visible_message(span_warning("\The [L] has grabbed [src] passively!"))
|
||||
L.do_attack_animation(src)
|
||||
|
||||
if(I_HURT)
|
||||
@@ -53,15 +53,15 @@
|
||||
var/hit_dam_type = attack.damage_type //Let's get the type of damage. Brute? Burn? Defined by the unarmed_attack.
|
||||
real_damage += attack.get_unarmed_damage(attacker) //Add the damage that their special attack has. Some have 0. Some have 15.
|
||||
if(real_damage <= damage_threshold)
|
||||
L.visible_message("<span class='warning'>\The [L] uselessly hits \the [src]!</span>")
|
||||
L.visible_message(span_warning("\The [L] uselessly hits \the [src]!"))
|
||||
L.do_attack_animation(src)
|
||||
return
|
||||
apply_damage(damage = real_damage, damagetype = hit_dam_type, def_zone = null, blocked = armor, blocked = resistance, used_weapon = null, sharp = FALSE, edge = FALSE)
|
||||
L.visible_message("<span class='warning'>\The [L] [pick(attack.attack_verb)] \the [src]!</span>")
|
||||
L.visible_message(span_warning("\The [L] [pick(attack.attack_verb)] \the [src]!"))
|
||||
L.do_attack_animation(src)
|
||||
return //VOREStation EDIT END
|
||||
apply_damage(damage = harm_intent_damage, damagetype = BRUTE, def_zone = null, blocked = armor, blocked = resistance, used_weapon = null, sharp = FALSE, edge = FALSE) //VOREStation EDIT Somebody set this to burn instead of brute.
|
||||
L.visible_message("<span class='warning'>\The [L] [response_harm] \the [src]!</span>")
|
||||
L.visible_message(span_warning("\The [L] [response_harm] \the [src]!"))
|
||||
L.do_attack_animation(src)
|
||||
|
||||
return
|
||||
@@ -79,7 +79,7 @@
|
||||
visible_message("<b>\The [user]</b> applies the [MED] on [src].")
|
||||
else
|
||||
var/datum/gender/T = gender_datums[src.get_visible_gender()]
|
||||
to_chat(user, "<span class='notice'>\The [src] is dead, medical items won't bring [T.him] back to life.</span>") // the gender lookup is somewhat overkill, but it functions identically to the obsolete gender macros and future-proofs this code
|
||||
to_chat(user, span_notice("\The [src] is dead, medical items won't bring [T.him] back to life.")) // the gender lookup is somewhat overkill, but it functions identically to the obsolete gender macros and future-proofs this code
|
||||
if(can_butcher(user, O)) //if the animal can be butchered, do so and return. It's likely to be gibbed.
|
||||
harvest(user, O)
|
||||
return
|
||||
@@ -89,13 +89,13 @@
|
||||
livestock_harvest(O, user)
|
||||
return
|
||||
else
|
||||
to_chat(user, "<span class='notice'>\The [src] can't be [harvest_verb] so soon.</span>")
|
||||
to_chat(user, span_notice("\The [src] can't be [harvest_verb] so soon."))
|
||||
return
|
||||
|
||||
if(can_tame(O, user))
|
||||
to_chat(user, "<span class='notice'>You offer \the [src] \the [O].</span>")
|
||||
to_chat(user, span_notice("You offer \the [src] \the [O]."))
|
||||
if(tame_prob(O, user))
|
||||
to_chat(user, "<span class='notice'>\The [src] appears to accept \the [O], seemingly calmed.</span>")
|
||||
to_chat(user, span_notice("\The [src] appears to accept \the [O], seemingly calmed."))
|
||||
do_tame(O,user)
|
||||
else
|
||||
fail_tame(O, user)
|
||||
@@ -115,7 +115,7 @@
|
||||
effective_force *= 2
|
||||
purge = 3
|
||||
if(O.force <= resistance)
|
||||
to_chat(user,"<span class='danger'>This weapon is ineffective, it does no damage.</span>")
|
||||
to_chat(user,span_danger("This weapon is ineffective, it does no damage."))
|
||||
return 2 //???
|
||||
|
||||
. = ..()
|
||||
|
||||
@@ -132,7 +132,7 @@
|
||||
display_name = tool
|
||||
else
|
||||
display_name = "object"
|
||||
to_chat(src, "<span class='danger'>Your [hand_form] are not fit for use of \the [display_name].</span>")
|
||||
to_chat(src, span_danger("Your [hand_form] are not fit for use of \the [display_name]."))
|
||||
return humanoid_hands
|
||||
|
||||
/mob/living/simple_mob/is_holding_item_of_type(typepath)
|
||||
|
||||
@@ -18,12 +18,12 @@
|
||||
/mob/living/simple_mob/examine(mob/user)
|
||||
. = ..()
|
||||
if(stat != DEAD && user && harvest_tool && (get_dist(user, src) <= 3))
|
||||
. += "<span class='notice'>\The [src] can be [harvest_verb] with a [initial(harvest_tool.name)] every [round(harvest_cooldown, 0.1)] minutes.</span>"
|
||||
. += span_notice("\The [src] can be [harvest_verb] with a [initial(harvest_tool.name)] every [round(harvest_cooldown, 0.1)] minutes.")
|
||||
var/time_to_harvest = (harvest_recent + harvest_cooldown) - world.time
|
||||
if(time_to_harvest > 0)
|
||||
. += "<span class='notice'>It can be [harvest_verb] in [time_to_harvest / (1 MINUTE)] second(s).</span>"
|
||||
. += span_notice("It can be [harvest_verb] in [time_to_harvest / (1 MINUTE)] second(s).")
|
||||
else
|
||||
. += "<span class='notice'>It can be [harvest_verb] now.</span>"
|
||||
. += span_notice("It can be [harvest_verb] now.")
|
||||
|
||||
/mob/living/simple_mob/proc/livestock_harvest(var/obj/item/tool, var/mob/living/user)
|
||||
if(!LAZYLEN(harvest_results)) // Might be a unique interaction of an object using the proc to do something weird, or just someone's a donk.
|
||||
|
||||
@@ -308,7 +308,7 @@
|
||||
|
||||
/datum/riding/simple_mob/force_dismount(mob/M)
|
||||
. =..()
|
||||
ridden.visible_message("<span class='notice'>[M] stops riding [ridden]!</span>")
|
||||
ridden.visible_message(span_notice("[M] stops riding [ridden]!"))
|
||||
|
||||
/datum/riding/simple_mob/get_offsets(pass_index) // list(dir = x, y, layer)
|
||||
var/mob/living/simple_mob/L = ridden
|
||||
@@ -335,7 +335,7 @@
|
||||
if(M in buckled_mobs)
|
||||
return FALSE
|
||||
if(M.size_multiplier > size_multiplier * 1.2)
|
||||
to_chat(src,"<span class='warning'>This isn't a pony show! You need to be bigger for them to ride.</span>")
|
||||
to_chat(src,span_warning("This isn't a pony show! You need to be bigger for them to ride."))
|
||||
return FALSE
|
||||
|
||||
var/mob/living/carbon/human/H = M
|
||||
@@ -375,7 +375,7 @@
|
||||
if(!can_buckle || !istype(M) || !M.Adjacent(src) || M.buckled)
|
||||
return
|
||||
if(buckle_mob(M))
|
||||
visible_message("<span class='notice'>[M] starts riding [name]!</span>")
|
||||
visible_message(span_notice("[M] starts riding [name]!"))
|
||||
|
||||
/mob/living/simple_mob/handle_message_mode(message_mode, message, verb, used_radios, speaking, alt_name)
|
||||
if(mob_radio)
|
||||
@@ -431,7 +431,7 @@
|
||||
status_flags |= LEAPING
|
||||
pixel_y = pixel_y + 10
|
||||
|
||||
src.visible_message("<span class='danger'>\The [src] leaps at [T]!</span>")
|
||||
src.visible_message(span_danger("\The [src] leaps at [T]!"))
|
||||
src.throw_at(get_step(get_turf(T),get_turf(src)), 4, 1, src)
|
||||
playsound(src, 'sound/effects/bodyfall1.ogg', 50, 1)
|
||||
pixel_y = default_pixel_y
|
||||
@@ -441,7 +441,7 @@
|
||||
if(status_flags & LEAPING) status_flags &= ~LEAPING
|
||||
|
||||
if(!src.Adjacent(T))
|
||||
to_chat(src, "<span class='warning'>You miss!</span>")
|
||||
to_chat(src, span_warning("You miss!"))
|
||||
return
|
||||
|
||||
if(ishuman(T))
|
||||
|
||||
@@ -153,13 +153,13 @@
|
||||
else if(!istype(O, /obj/item/reagent_containers/food/snacks))
|
||||
return ..()
|
||||
if(resting)
|
||||
to_chat(user, "<span class='notice'>\The [src] is napping, and doesn't respond to \the [O].</span>")
|
||||
to_chat(user, span_notice("\The [src] is napping, and doesn't respond to \the [O]."))
|
||||
return
|
||||
if(nutrition >= max_nutrition)
|
||||
if(user == src)
|
||||
to_chat(src, "<span class='notice'>You're too full to eat another bite.</span>")
|
||||
to_chat(src, span_notice("You're too full to eat another bite."))
|
||||
return
|
||||
to_chat(user, "<span class='notice'>\The [src] seems too full to eat.</span>")
|
||||
to_chat(user, span_notice("\The [src] seems too full to eat."))
|
||||
return
|
||||
var/nutriment_amount = O.reagents?.get_reagent_amount("nutriment") //does it have nutriment, if so how much?
|
||||
var/protein_amount = O.reagents?.get_reagent_amount("protein") //does it have protein, if so how much?
|
||||
@@ -172,11 +172,11 @@
|
||||
if(O.bitecount >= 3)
|
||||
user.drop_from_inventory(O)
|
||||
qdel(O)
|
||||
visible_message("<span class='notice'>\The [src] eats \the [O].</span>")
|
||||
visible_message(span_notice("\The [src] eats \the [O]."))
|
||||
else
|
||||
to_chat(user, "<span class='notice'>\The [src] takes a bite of \the [O].</span>")
|
||||
to_chat(user, span_notice("\The [src] takes a bite of \the [O]."))
|
||||
if(user != src)
|
||||
to_chat(src, "<span class='notice'>\The [user] feeds \the [O] to you.</span>")
|
||||
to_chat(src, span_notice("\The [user] feeds \the [O] to you."))
|
||||
playsound(src, 'sound/items/eatfood.ogg', 75, 1)
|
||||
|
||||
/mob/living/simple_mob/vore/alienanimals/catslug/attack_hand(mob/living/carbon/human/M as mob)
|
||||
@@ -190,41 +190,41 @@
|
||||
return ..()
|
||||
playsound(src, 'sound/weapons/thudswoosh.ogg', 50, 1, -1)
|
||||
if(resting)
|
||||
M.visible_message("<span class='notice'>\The [M.name] shakes \the [src] awake from their nap.</span>","<span class='notice'>You shake \the [src] awake!</span>")
|
||||
M.visible_message(span_notice("\The [M.name] shakes \the [src] awake from their nap."),span_notice("You shake \the [src] awake!"))
|
||||
lay_down()
|
||||
ai_holder.go_wake()
|
||||
return
|
||||
if(M.zone_sel.selecting == BP_HEAD)
|
||||
M.visible_message( \
|
||||
"<span class='notice'>[M] pats \the [src] on the head.</span>", \
|
||||
"<span class='notice'>You pat \the [src] on the head.</span>", )
|
||||
span_notice("[M] pats \the [src] on the head."), \
|
||||
span_notice("You pat \the [src] on the head."), )
|
||||
if(client)
|
||||
return
|
||||
if(prob(10))
|
||||
visible_message("<span class='notice'>\The [src] purrs and leans into [M]'s hand.</span>")
|
||||
visible_message(span_notice("\The [src] purrs and leans into [M]'s hand."))
|
||||
else if(M.zone_sel.selecting == BP_R_HAND || M.zone_sel.selecting == BP_L_HAND)
|
||||
M.visible_message( \
|
||||
"<span class='notice'>[M] shakes \the [src]'s hand.</span>", \
|
||||
"<span class='notice'>You shake \the [src]'s hand.</span>", )
|
||||
span_notice("[M] shakes \the [src]'s hand."), \
|
||||
span_notice("You shake \the [src]'s hand."), )
|
||||
if(client)
|
||||
return
|
||||
if(prob(10))
|
||||
visible_message("<span class='notice'>\The [src]'s looks a little confused nibbles at [M]'s hand experimentally.</span>")
|
||||
visible_message(span_notice("\The [src]'s looks a little confused nibbles at [M]'s hand experimentally."))
|
||||
else if(M.zone_sel.selecting == "mouth")
|
||||
M.visible_message( \
|
||||
"<span class='notice'>[M] boops \the [src]'s nose.</span>", \
|
||||
"<span class='notice'>You boop \the [src] on the nose.</span>", )
|
||||
span_notice("[M] boops \the [src]'s nose."), \
|
||||
span_notice("You boop \the [src] on the nose."), )
|
||||
if(client)
|
||||
return
|
||||
if(prob(10))
|
||||
visible_message("<span class='notice'>\The [src]'s eyes widen as they stare at [M]. After a moment they rub their prodded snoot.</span>")
|
||||
visible_message(span_notice("\The [src]'s eyes widen as they stare at [M]. After a moment they rub their prodded snoot."))
|
||||
else if(M.zone_sel.selecting == BP_GROIN)
|
||||
M.visible_message( \
|
||||
"<span class='notice'>[M] rubs \the [src]'s tummy...</span>", \
|
||||
"<span class='notice'>You rub \the [src]'s tummy... You feel the danger.</span>", )
|
||||
span_notice("[M] rubs \the [src]'s tummy..."), \
|
||||
span_notice("You rub \the [src]'s tummy... You feel the danger."), )
|
||||
if(client)
|
||||
return
|
||||
visible_message("<span class='notice'>\The [src] pushes [M]'s hand away from their tummy and furrows their brow!</span>")
|
||||
visible_message(span_notice("\The [src] pushes [M]'s hand away from their tummy and furrows their brow!"))
|
||||
if(prob(5))
|
||||
ai_holder.give_target(M, urgent = TRUE)
|
||||
else
|
||||
@@ -261,11 +261,11 @@
|
||||
|
||||
/mob/living/simple_mob/vore/alienanimals/catslug/proc/remove_hat(var/mob/living/user)
|
||||
if(!hat)
|
||||
to_chat(user, "<span class='warning'>\The [src] doesn't have a hat to remove.</span>")
|
||||
to_chat(user, span_warning("\The [src] doesn't have a hat to remove."))
|
||||
else
|
||||
hat.forceMove(get_turf(src))
|
||||
user.put_in_hands(hat)
|
||||
to_chat(user, "<span class='warning'>You take away \the [src]'s [hat.name]. How mean.</span>")
|
||||
to_chat(user, span_warning("You take away \the [src]'s [hat.name]. How mean."))
|
||||
hat = null
|
||||
update_icon()
|
||||
|
||||
@@ -287,7 +287,7 @@
|
||||
set category = "Abilities"
|
||||
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)
|
||||
@@ -417,41 +417,41 @@
|
||||
return ..()
|
||||
playsound(src, 'sound/weapons/thudswoosh.ogg', 50, 1, -1)
|
||||
if(resting)
|
||||
M.visible_message("<span class='notice'>\The [M.name] shakes \the [src] awake from their nap.</span>","<span class='notice'>You shake \the [src] awake!</span>")
|
||||
M.visible_message(span_notice("\The [M.name] shakes \the [src] awake from their nap."),span_notice("You shake \the [src] awake!"))
|
||||
lay_down()
|
||||
ai_holder.go_wake()
|
||||
return
|
||||
if(M.zone_sel.selecting == BP_HEAD)
|
||||
M.visible_message( \
|
||||
"<span class='notice'>[M] pats \the [src] on their helmet.</span>", \
|
||||
"<span class='notice'>You pat \the [src] on their helmet.</span>", )
|
||||
span_notice("[M] pats \the [src] on their helmet."), \
|
||||
span_notice("You pat \the [src] on their helmet."), )
|
||||
if(client)
|
||||
return
|
||||
if(prob(10))
|
||||
visible_message("<span class='notice'>\The [src] purrs and leans into [M]'s hand.</span>")
|
||||
visible_message(span_notice("\The [src] purrs and leans into [M]'s hand."))
|
||||
else if(M.zone_sel.selecting == BP_R_HAND || M.zone_sel.selecting == BP_L_HAND)
|
||||
M.visible_message( \
|
||||
"<span class='notice'>[M] shakes \the [src]'s hand.</span>", \
|
||||
"<span class='notice'>You shake \the [src]'s hand.</span>", )
|
||||
span_notice("[M] shakes \the [src]'s hand."), \
|
||||
span_notice("You shake \the [src]'s hand."), )
|
||||
if(client)
|
||||
return
|
||||
if(prob(10))
|
||||
visible_message("<span class='notice'>\The [src]'s looks a little confused and bonks their helmet's faceplate against [M]'s hand experimentally, attempting to nibble at it.</span>")
|
||||
visible_message(span_notice("\The [src]'s looks a little confused and bonks their helmet's faceplate against [M]'s hand experimentally, attempting to nibble at it."))
|
||||
else if(M.zone_sel.selecting == "mouth")
|
||||
M.visible_message( \
|
||||
"<span class='notice'>[M] attempts to boop \the [src]'s nose, defeated only by the helmet they wear.</span>", \
|
||||
"<span class='notice'>You attempt to boop \the [src] on the nose, stopped only by that helmet they wear.</span>", )
|
||||
span_notice("[M] attempts to boop \the [src]'s nose, defeated only by the helmet they wear."), \
|
||||
span_notice("You attempt to boop \the [src] on the nose, stopped only by that helmet they wear."), )
|
||||
if(client)
|
||||
return
|
||||
if(prob(10))
|
||||
visible_message("<span class='notice'>\The [src]'s eyes widen as they stare at [M]. After a moment they rub at the faint mark [M]'s digit left upon the surface of their helmet's faceplate.</span>")
|
||||
visible_message(span_notice("\The [src]'s eyes widen as they stare at [M]. After a moment they rub at the faint mark [M]'s digit left upon the surface of their helmet's faceplate."))
|
||||
else if(M.zone_sel.selecting == BP_GROIN)
|
||||
M.visible_message( \
|
||||
"<span class='notice'>[M] rubs \the [src]'s tummy...</span>", \
|
||||
"<span class='notice'>You rub \the [src]'s tummy, accidently pressing a few of the buttons on their chestpiece in the process... You feel the danger.</span>", )
|
||||
span_notice("[M] rubs \the [src]'s tummy..."), \
|
||||
span_notice("You rub \the [src]'s tummy, accidently pressing a few of the buttons on their chestpiece in the process... You feel the danger."), )
|
||||
if(client)
|
||||
return
|
||||
visible_message("<span class='notice'>\The [src] pushes [M]'s hand away from their tummy and furrows their brow, frantically pressing at the buttons [M] so carelessly pushed!</span>")
|
||||
visible_message(span_notice("\The [src] pushes [M]'s hand away from their tummy and furrows their brow, frantically pressing at the buttons [M] so carelessly pushed!"))
|
||||
if(prob(5))
|
||||
ai_holder.give_target(M, urgent = TRUE)
|
||||
else
|
||||
@@ -517,41 +517,41 @@
|
||||
return ..()
|
||||
playsound(src, 'sound/weapons/thudswoosh.ogg', 50, 1, -1)
|
||||
if(resting)
|
||||
M.visible_message("<span class='notice'>\The [M.name] shakes \the [src] awake from their nap.</span>","<span class='notice'>You shake \the [src] awake!</span>")
|
||||
M.visible_message(span_notice("\The [M.name] shakes \the [src] awake from their nap."),span_notice("You shake \the [src] awake!"))
|
||||
lay_down()
|
||||
ai_holder.go_wake()
|
||||
return
|
||||
if(M.zone_sel.selecting == BP_HEAD)
|
||||
M.visible_message( \
|
||||
"<span class='notice'>[M] pats \the [src] on their helmet.</span>", \
|
||||
"<span class='notice'>You pat \the [src] on their helmet.</span>", )
|
||||
span_notice("[M] pats \the [src] on their helmet."), \
|
||||
span_notice("You pat \the [src] on their helmet."), )
|
||||
if(client)
|
||||
return
|
||||
if(prob(10))
|
||||
visible_message("<span class='notice'>\The [src] purrs and leans into [M]'s hand.</span>")
|
||||
visible_message(span_notice("\The [src] purrs and leans into [M]'s hand."))
|
||||
else if(M.zone_sel.selecting == BP_R_HAND || M.zone_sel.selecting == BP_L_HAND)
|
||||
M.visible_message( \
|
||||
"<span class='notice'>[M] shakes \the [src]'s hand.</span>", \
|
||||
"<span class='notice'>You shake \the [src]'s hand.</span>", )
|
||||
span_notice("[M] shakes \the [src]'s hand."), \
|
||||
span_notice("You shake \the [src]'s hand."), )
|
||||
if(client)
|
||||
return
|
||||
if(prob(10))
|
||||
visible_message("<span class='notice'>\The [src]'s looks a little confused and bonks their helmet's faceplate against [M]'s hand experimentally, attempting to nibble at it.</span>")
|
||||
visible_message(span_notice("\The [src]'s looks a little confused and bonks their helmet's faceplate against [M]'s hand experimentally, attempting to nibble at it."))
|
||||
else if(M.zone_sel.selecting == "mouth")
|
||||
M.visible_message( \
|
||||
"<span class='notice'>[M] attempts to boop \the [src]'s nose, defeated only by the helmet they wear.</span>", \
|
||||
"<span class='notice'>You attempt to boop \the [src] on the nose, stopped only by that helmet they wear.</span>", )
|
||||
span_notice("[M] attempts to boop \the [src]'s nose, defeated only by the helmet they wear."), \
|
||||
span_notice("You attempt to boop \the [src] on the nose, stopped only by that helmet they wear."), )
|
||||
if(client)
|
||||
return
|
||||
if(prob(10))
|
||||
visible_message("<span class='notice'>\The [src]'s eyes widen as they stare at [M]. After a moment they rub at the faint mark [M]'s digit left upon the surface of their helmet's faceplate.</span>")
|
||||
visible_message(span_notice("\The [src]'s eyes widen as they stare at [M]. After a moment they rub at the faint mark [M]'s digit left upon the surface of their helmet's faceplate."))
|
||||
else if(M.zone_sel.selecting == BP_GROIN)
|
||||
M.visible_message( \
|
||||
"<span class='notice'>[M] rubs \the [src]'s tummy...</span>", \
|
||||
"<span class='notice'>You rub \the [src]'s tummy... You feel the danger.</span>", )
|
||||
span_notice("[M] rubs \the [src]'s tummy..."), \
|
||||
span_notice("You rub \the [src]'s tummy... You feel the danger."), )
|
||||
if(client)
|
||||
return
|
||||
visible_message("<span class='notice'>\The [src] pushes [M]'s hand away from their tummy and furrows their brow!</span>")
|
||||
visible_message(span_notice("\The [src] pushes [M]'s hand away from their tummy and furrows their brow!"))
|
||||
if(prob(5))
|
||||
ai_holder.give_target(M, urgent = TRUE)
|
||||
else
|
||||
@@ -1095,7 +1095,7 @@
|
||||
|
||||
/mob/living/simple_mob/vore/alienanimals/catslug/suslug/can_ventcrawl()
|
||||
if(!is_impostor)
|
||||
to_chat(src, "<span class='notice'>You are not an impostor! You can't vent!</span>")
|
||||
to_chat(src, span_notice("You are not an impostor! You can't vent!"))
|
||||
return FALSE
|
||||
.=..()
|
||||
|
||||
@@ -1106,19 +1106,19 @@
|
||||
var/mob/living/simple_mob/vore/alienanimals/catslug/suslug/us = user
|
||||
if(us.is_impostor)
|
||||
if(src.is_impostor)
|
||||
. += "<span class='notice'>They appear to be a fellow impostor!</span>"
|
||||
. += span_notice("They appear to be a fellow impostor!")
|
||||
else
|
||||
. += "<span class='notice'>They appear to be a filthy innocent!</span>"
|
||||
. += span_notice("They appear to be a filthy innocent!")
|
||||
|
||||
/mob/living/simple_mob/vore/alienanimals/catslug/suslug/proc/assussinate()
|
||||
set name = "Kill Innocent"
|
||||
set category = "Abilities"
|
||||
set desc = "Kill an innocent suslug!"
|
||||
if(!is_impostor)
|
||||
to_chat(src, "<span class='notice'>You are not an impostor! You can't kill like that!</span>")
|
||||
to_chat(src, span_notice("You are not an impostor! You can't kill like that!"))
|
||||
return
|
||||
if((world.time - kill_cooldown) < 1 MINUTE)
|
||||
to_chat(src, "<span class='notice'>You cannot kill so soon after previous kill!</span>")
|
||||
to_chat(src, span_notice("You cannot kill so soon after previous kill!"))
|
||||
return
|
||||
|
||||
var/mob/living/simple_mob/vore/alienanimals/catslug/suslug/target
|
||||
@@ -1127,7 +1127,7 @@
|
||||
if(!S.is_impostor)
|
||||
victims += S
|
||||
if(!victims || !victims.len)
|
||||
to_chat(src, "<span class='warning'>There are no innocent suslugs nearby!</span>")
|
||||
to_chat(src, span_warning("There are no innocent suslugs nearby!"))
|
||||
return
|
||||
if(victims.len == 1)
|
||||
target = victims[1]
|
||||
@@ -1136,7 +1136,7 @@
|
||||
|
||||
if(target && istype(target))
|
||||
target.adjustBruteLoss(3000)
|
||||
visible_message("<span class='warning'>\The [src] kills \the [target]!</span>")
|
||||
visible_message(span_warning("\The [src] kills \the [target]!"))
|
||||
kill_cooldown = world.time
|
||||
|
||||
/mob/living/simple_mob/vore/alienanimals/catslug/suslug/color
|
||||
|
||||
@@ -122,10 +122,10 @@
|
||||
if(child_om_marker.known == TRUE)
|
||||
if(restless)
|
||||
child_om_marker.icon_state = "space_whale_restless"
|
||||
visible_message("<span class='notice'>\The [child_om_marker.name] ripples excitedly.</span>")
|
||||
visible_message(span_notice("\The [child_om_marker.name] ripples excitedly."))
|
||||
else
|
||||
child_om_marker.icon_state = "space_whale"
|
||||
visible_message("<span class='notice'>\The [child_om_marker.name] settles down.</span>")
|
||||
visible_message(span_notice("\The [child_om_marker.name] settles down."))
|
||||
|
||||
/datum/ai_holder/simple_mob/melee/spacewhale
|
||||
hostile = TRUE
|
||||
|
||||
@@ -87,16 +87,16 @@
|
||||
|
||||
if(!possible_targets.len)
|
||||
return ..()
|
||||
user.visible_message("<span class='warning'>\The [user] reaches for something in \the [src]'s fur...</span>","<span class='notice'>You look through \the [src]'s fur...</span>")
|
||||
user.visible_message(span_warning("\The [user] reaches for something in \the [src]'s fur..."),span_notice("You look through \the [src]'s fur..."))
|
||||
var/mob/living/that_one = tgui_input_list(user, "Select a mob:", "Select a mob to grab!", possible_targets)
|
||||
if(!that_one)
|
||||
return ..()
|
||||
to_chat(that_one, "<span class='danger'>\The [user]'s hand reaches toward you!!!</span>")
|
||||
to_chat(that_one, span_danger("\The [user]'s hand reaches toward you!!!"))
|
||||
if(!do_after(user, 3 SECONDS, src))
|
||||
return ..()
|
||||
if(!istype(that_one.loc,/turf/simulated/floor/outdoors/fur))
|
||||
to_chat(user, "<span class='warning'>\The [that_one] got away...</span>")
|
||||
to_chat(that_one, "<span class='notice'>You got away!</span>")
|
||||
to_chat(user, span_warning("\The [that_one] got away..."))
|
||||
to_chat(that_one, span_notice("You got away!"))
|
||||
return
|
||||
var/prev_size = that_one.size_multiplier
|
||||
that_one.resize(RESIZE_TINY, ignore_prefs = TRUE)
|
||||
@@ -148,7 +148,7 @@
|
||||
movement_cooldown = 0
|
||||
|
||||
/mob/living/simple_mob/vore/overmap/stardog/perform_the_nom(mob/living/user, mob/living/prey, mob/living/pred, obj/belly/belly, delay)
|
||||
to_chat(src, "<span class='warning'>You can't do that.</span>") //The dog can move back and forth between the overmap.
|
||||
to_chat(src, span_warning("You can't do that.")) //The dog can move back and forth between the overmap.
|
||||
return //If it can do normal vore mechanics, it can carry players to the OM,
|
||||
//and release them there. I think that's probably a bad idea.
|
||||
|
||||
@@ -253,24 +253,24 @@
|
||||
heal = TRUE
|
||||
delet = FALSE
|
||||
else
|
||||
to_chat(src, "<span class='warning'>You can't eat \the [e].</span>")
|
||||
to_chat(src, span_warning("You can't eat \the [e]."))
|
||||
return
|
||||
|
||||
if(!E)
|
||||
to_chat(src, "<span class='warning'>There isn't anything to eat here.</span>")
|
||||
to_chat(src, span_warning("There isn't anything to eat here."))
|
||||
return
|
||||
|
||||
to_chat(src, "<span class='notice'>You begin to eat \the [E]...</span>")
|
||||
to_chat(src, span_notice("You begin to eat \the [E]..."))
|
||||
|
||||
if(!do_after(src, 20 SECONDS, E, exclusive = TRUE))
|
||||
return
|
||||
to_chat(src, "<span class='notice'>[msg]</span>")
|
||||
to_chat(src, span_notice("[msg]"))
|
||||
if(nut || aff)
|
||||
adjust_nutrition(nut)
|
||||
adjust_affinity(aff)
|
||||
if(mob)
|
||||
spawn_mob()
|
||||
to_chat(src, "<span class='notice'>You can feel something moving inside of you...</span>")
|
||||
to_chat(src, span_notice("You can feel something moving inside of you..."))
|
||||
if(ore)
|
||||
spawn_ore(ore)
|
||||
if(tre)
|
||||
@@ -299,7 +299,7 @@
|
||||
set desc = "Attempt to go to the location you have arrived at, or return to space!"
|
||||
set category = "Abilities"
|
||||
if(nutrition <= 500)
|
||||
to_chat(src, "<span class='warning'>You're too hungry...</span>")
|
||||
to_chat(src, span_warning("You're too hungry..."))
|
||||
return
|
||||
if(istype(loc, /turf/unsimulated/map))
|
||||
var/list/destinations = list()
|
||||
@@ -312,7 +312,7 @@
|
||||
for(var/our_z in v.map_z)
|
||||
our_maps |= our_z
|
||||
if(!our_maps.len)
|
||||
to_chat(src, "<span class='warning'>There is nowhere nearby to go to! You need to get closer to somewhere you can transition to before you can transition.</span>")
|
||||
to_chat(src, span_warning("There is nowhere nearby to go to! You need to get closer to somewhere you can transition to before you can transition."))
|
||||
return
|
||||
for(var/obj/effect/landmark/l in landmarks_list)
|
||||
if(l.z in our_maps)
|
||||
@@ -320,30 +320,30 @@
|
||||
destinations |= l
|
||||
|
||||
if(!destinations.len)
|
||||
to_chat(src, "<span class='warning'>There is nowhere nearby to land! You need to get closer to somewhere else that you can transition to before you can transition.</span>")
|
||||
to_chat(src, span_warning("There is nowhere nearby to land! You need to get closer to somewhere else that you can transition to before you can transition."))
|
||||
return
|
||||
for(var/obj/effect/landmark/stardog/l in destinations)
|
||||
var/obj/effect/overmap/visitable/our_dest = tgui_input_list(src, "Where would you like to try to go?", "Transition", destinations, timeout = 15 SECONDS, strict_modern = TRUE)
|
||||
if(!our_dest)
|
||||
to_chat(src, "<span class='warning'>You decide not to transition.</span>")
|
||||
to_chat(src, span_warning("You decide not to transition."))
|
||||
return
|
||||
to_chat(src, "<span class='notice'>You begin to transition down to \the [our_dest], stay still...</span>")
|
||||
to_chat(src, span_notice("You begin to transition down to \the [our_dest], stay still..."))
|
||||
if(!do_after(src, 15 SECONDS, exclusive = TRUE))
|
||||
to_chat(src, "<span class='warning'>You were interrupted.</span>")
|
||||
to_chat(src, span_warning("You were interrupted."))
|
||||
return
|
||||
visible_message("<span class='warning'>\The [src] disappears!!!</span>")
|
||||
visible_message(span_warning("\The [src] disappears!!!"))
|
||||
stop_pulling()
|
||||
forceMove(get_turf(our_dest))
|
||||
adjust_nutrition(-1000)
|
||||
visible_message("<span class='warning'>\The [src] steps into the area as if from nowhere!</span>")
|
||||
visible_message(span_warning("\The [src] steps into the area as if from nowhere!"))
|
||||
|
||||
else
|
||||
to_chat(src, "<span class='notice'>You begin to transition back to space, stay still...</span>")
|
||||
to_chat(src, span_notice("You begin to transition back to space, stay still..."))
|
||||
if(!do_after(src, 15 SECONDS, exclusive = TRUE))
|
||||
to_chat(src, "<span class='warning'>You were interrupted.</span>")
|
||||
to_chat(src, span_warning("You were interrupted."))
|
||||
return
|
||||
|
||||
visible_message("<span class='warning'>\The [src] disappears!!!</span>")
|
||||
visible_message(span_warning("\The [src] disappears!!!"))
|
||||
stop_pulling()
|
||||
forceMove(get_turf(get_overmap_sector(z)))
|
||||
adjust_nutrition(-500)
|
||||
@@ -473,7 +473,7 @@
|
||||
return
|
||||
var/mob/living/L = usr
|
||||
if(L.client.prefs.muted & MUTE_IC)
|
||||
to_chat(L, "<span class='warning'>You cannot speak in IC (muted).</span>")
|
||||
to_chat(L, span_warning("You cannot speak in IC (muted)."))
|
||||
return
|
||||
if (!message)
|
||||
message = tgui_input_text(usr, "Type a message to emote.","Emote Beyond")
|
||||
@@ -489,11 +489,11 @@
|
||||
var/mob/living/simple_mob/vore/overmap/stardog/m = s.parent
|
||||
|
||||
log_subtle(message,L)
|
||||
message = "<span class='emotesubtle'><B>[L]</B> <I>[message]</I></span>"
|
||||
message = span_emote_subtle("<B>[L]</B> <I>[message]</I>")
|
||||
message = "<B>(From the back of \the [m]) </B>" + message
|
||||
message = encode_html_emphasis(message)
|
||||
|
||||
var/undisplayed_message = "<span class='emote'><B>[L]</B> <I>does something too subtle for you to see.</I></span>"
|
||||
var/undisplayed_message = span_emote("<B>[L]</B> <I>does something too subtle for you to see.</I>")
|
||||
var/list/vis = get_mobs_and_objs_in_view_fast(get_turf(m),1,2)
|
||||
var/list/vis_mobs = vis["mobs"]
|
||||
vis_mobs |= L
|
||||
@@ -605,13 +605,13 @@
|
||||
var/obj/item/stack/material/fur/F = new product(get_turf(src), product_amount)
|
||||
F.color = color
|
||||
F.update_icon()
|
||||
visible_message("<span class='notice'>\The [src] is felled!</span>")
|
||||
visible_message(span_notice("\The [src] is felled!"))
|
||||
if(prob(mob_chance))
|
||||
if(!mob_list.len)
|
||||
return
|
||||
var/ourmob = pickweight(mob_list)
|
||||
var/mob/living/simple_mob/s = new ourmob(get_turf(src))
|
||||
visible_message("<span class='danger'>\The [s] tumbles out of \the [src]!</span>")
|
||||
visible_message(span_danger("\The [s] tumbles out of \the [src]!"))
|
||||
s.ai_holder.hostile = FALSE
|
||||
s.ai_holder.retaliate = TRUE
|
||||
s.ghostjoin = TRUE
|
||||
@@ -924,7 +924,7 @@
|
||||
ghostjoin = FALSE
|
||||
|
||||
/area/redgate/stardog/flesh_abyss/node
|
||||
enter_message = "<span class='notice'>Radical energy hangs as a haze in the air. It's much less hot here than other places within the dog, but the air is thick with alien whispers and desires that you can hardly comprehend.</span>"
|
||||
enter_message = span_notice("Radical energy hangs as a haze in the air. It's much less hot here than other places within the dog, but the air is thick with alien whispers and desires that you can hardly comprehend.")
|
||||
icon_state = "yelwhisqu"
|
||||
requires_power = 0
|
||||
spawnstuff = FALSE
|
||||
@@ -1146,7 +1146,7 @@
|
||||
return
|
||||
var/mob/living/L = usr
|
||||
if(L.client.prefs.muted & MUTE_IC)
|
||||
to_chat(L, "<span class='warning'>You cannot speak in IC (muted).</span>")
|
||||
to_chat(L, span_warning("You cannot speak in IC (muted)."))
|
||||
return
|
||||
if (!message)
|
||||
message = tgui_input_text(usr, "Type a message to emote.","Emote Beyond")
|
||||
@@ -1157,15 +1157,15 @@
|
||||
return L.say_dead(message)
|
||||
var/obj/effect/overmap/visitable/ship/s = get_overmap_sector(z)
|
||||
if(!s || !istype(s, /obj/effect/overmap/visitable/ship))
|
||||
to_chat(L, "<span class='warning'>You can't do that here.</span>")
|
||||
to_chat(L, span_warning("You can't do that here."))
|
||||
return
|
||||
|
||||
log_subtle(message,L)
|
||||
message = "<span class='emotesubtle'><B>[L]</B> <I>[message]</I></span>"
|
||||
message = span_emote_subtle("<B>[L]</B> <I>[message]</I>")
|
||||
message = "<B>(From within \the [s]) </B>" + message
|
||||
message = encode_html_emphasis(message)
|
||||
|
||||
var/undisplayed_message = "<span class='emote'><B>[L]</B> <I>does something too subtle for you to see.</I></span>"
|
||||
var/undisplayed_message = span_emote("<B>[L]</B> <I>does something too subtle for you to see.</I>")
|
||||
var/list/vis = get_mobs_and_objs_in_view_fast(get_turf(s),1,2)
|
||||
var/list/vis_mobs = vis["mobs"]
|
||||
vis_mobs |= L
|
||||
@@ -1234,7 +1234,7 @@
|
||||
|
||||
/obj/effect/dog_nose/attack_hand(mob/living/user)
|
||||
. = ..()
|
||||
user.visible_message("<span class='notice'>\The [user] boops the snoot.</span>","<span class='notice'>You boop the snoot.</span>",runemessage = "boop")
|
||||
user.visible_message(span_notice("\The [user] boops the snoot."),span_notice("You boop the snoot."),runemessage = "boop")
|
||||
|
||||
/obj/effect/dog_nose/Crossed(atom/movable/AM as mob|obj)
|
||||
. = ..()
|
||||
@@ -1244,7 +1244,7 @@
|
||||
if(!isliving(L))
|
||||
return
|
||||
if(L.client)
|
||||
to_chat(L, "<span class='notice'>A hot breath rushes up from under your feet, before the air rushes back down into the dog's nose as the dog sniffs you! SNEEF SNEEF!!!</span>")
|
||||
to_chat(L, span_notice("A hot breath rushes up from under your feet, before the air rushes back down into the dog's nose as the dog sniffs you! SNEEF SNEEF!!!"))
|
||||
|
||||
/obj/effect/dog_eye/Initialize()
|
||||
. = ..()
|
||||
@@ -1348,7 +1348,7 @@
|
||||
if(!go)
|
||||
return
|
||||
|
||||
visible_message("<span class='danger'>\The [AM] passes through \the [src]!</span>")
|
||||
visible_message(span_danger("\The [AM] passes through \the [src]!"))
|
||||
if(throw_through) //We will throw the target to the south!
|
||||
var/turf/throwtarg = locate(target.x, (target.y - 5), target.z)
|
||||
spawn(0)
|
||||
@@ -1356,7 +1356,7 @@
|
||||
|
||||
/obj/effect/dog_teleporter/food_gobbler
|
||||
teleport_sound = 'sound/vore/gulp.ogg'
|
||||
teleport_message = "<span class='notice'>The thundering drum of the dog's heart beat throbs all around you, while the sweltering heat of its body soaks into you. It's soft and wet as a symphony of gurgles and glorps fills the steamy air!</span>"
|
||||
teleport_message = span_notice("The thundering drum of the dog's heart beat throbs all around you, while the sweltering heat of its body soaks into you. It's soft and wet as a symphony of gurgles and glorps fills the steamy air!")
|
||||
|
||||
/obj/effect/dog_teleporter/food_gobbler/Crossed(atom/movable/AM)
|
||||
|
||||
@@ -1375,9 +1375,9 @@
|
||||
dog.adjust_nutrition(I.reagents.total_volume)
|
||||
dog.adjust_affinity(25)
|
||||
playsound(src, teleport_sound, vol = 100, vary = 1, preference = /datum/preference/toggle/eating_noises, volume_channel = VOLUME_CHANNEL_VORE)
|
||||
visible_message("<span class='warning'>The dog gobbles up \the [I]!</span>")
|
||||
visible_message(span_warning("The dog gobbles up \the [I]!"))
|
||||
if(dog.client)
|
||||
to_chat(dog, "<span class='notice'>[I.thrower ? "\The [I.thrower]" : "Someone"] feeds \the [I] to you!</span>")
|
||||
to_chat(dog, span_notice("[I.thrower ? "\The [I.thrower]" : "Someone"] feeds \the [I] to you!"))
|
||||
qdel(I)
|
||||
GLOB.items_digested_roundstat++
|
||||
|
||||
@@ -1471,7 +1471,7 @@
|
||||
food = TRUE
|
||||
if(prob(95)) //Give people a chance to pick them up
|
||||
return TRUE
|
||||
I.visible_message("<span class='warning'>\The [I] sizzles...</span>")
|
||||
I.visible_message(span_warning("\The [I] sizzles..."))
|
||||
var/yum = I.digest_act() //Glorp
|
||||
if(istype(I , /obj/item/card))
|
||||
yum = 0 //No, IDs do not have infinite nutrition, thank you
|
||||
@@ -1653,7 +1653,7 @@
|
||||
if(isliving(L))
|
||||
L.Weaken(3)
|
||||
if(prob(5))
|
||||
to_chat(L, "<span class='warning'>\The [src] throbs heavily around you...</span>")
|
||||
to_chat(L, span_warning("\The [src] throbs heavily around you..."))
|
||||
|
||||
/obj/structure/auto_flesh_door/attack_generic(mob/user, damage, attack_verb)
|
||||
. = ..()
|
||||
@@ -1667,7 +1667,7 @@
|
||||
playsound(src, knock_sound, 50, 0, 3)
|
||||
countdown -= 10
|
||||
else
|
||||
visible_message("<span class='warning'>[user] hammers on \the [src]!</span>", "<span class='warning'>Someone hammers loudly on \the [src]!</span>")
|
||||
visible_message(span_warning("[user] hammers on \the [src]!"), span_warning("Someone hammers loudly on \the [src]!"))
|
||||
playsound(src, knock_sound, 50, 0, 3)
|
||||
countdown -= 25
|
||||
|
||||
@@ -1683,7 +1683,7 @@
|
||||
playsound(src, knock_sound, 50, 0, 3)
|
||||
countdown -= 10
|
||||
else
|
||||
visible_message("<span class='warning'>[user] hammers on \the [src]!</span>", "<span class='warning'>Someone hammers loudly on \the [src]!</span>")
|
||||
visible_message(span_warning("[user] hammers on \the [src]!"), span_warning("Someone hammers loudly on \the [src]!"))
|
||||
playsound(src, knock_sound, 50, 0, 3)
|
||||
countdown -= 25
|
||||
|
||||
@@ -1730,7 +1730,7 @@
|
||||
for(var/mob/living/L in src.loc.contents)
|
||||
if(isliving(L))
|
||||
L.Weaken(3)
|
||||
L.visible_message("<span class='danger'>\The [src] closes up on \the [L]!</span>","<span class='danger'>The weight of \the [src] closes in on you, squeezing you on all sides so tightly that you can hardly move! It throbs against you as the way is sealed, with you stuck in the middle!!!</span>")
|
||||
L.visible_message(span_danger("\The [src] closes up on \the [L]!"),span_danger("The weight of \the [src] closes in on you, squeezing you on all sides so tightly that you can hardly move! It throbs against you as the way is sealed, with you stuck in the middle!!!"))
|
||||
|
||||
/obj/structure/auto_flesh_door/update_icon()
|
||||
if(state)
|
||||
|
||||
@@ -124,7 +124,7 @@
|
||||
flip_cooldown = 0
|
||||
flipped = FALSE
|
||||
handle_flip()
|
||||
visible_message("<span class='notice'>\The [src] rights itself!!!</span>")
|
||||
visible_message(span_notice("\The [src] rights itself!!!"))
|
||||
return
|
||||
if(flip_cooldown)
|
||||
flip_cooldown --
|
||||
|
||||
@@ -135,7 +135,7 @@
|
||||
|
||||
/mob/living/simple_mob/vore/alienanimals/succlet/attackby(var/obj/item/O, var/mob/user)
|
||||
if(istype(O, /obj/item/newspaper) && !ckey && isturf(user.loc))
|
||||
user.visible_message("<span class='info'>[user] swats [src] with [O]!</span>")
|
||||
user.visible_message(span_info("[user] swats [src] with [O]!"))
|
||||
release_vore_contents()
|
||||
else
|
||||
..()
|
||||
@@ -153,7 +153,7 @@
|
||||
if(l.devourable && l.allowmobvore && l.can_be_drop_prey)
|
||||
target_turf = get_turf(l)
|
||||
else
|
||||
to_chat(src, "<span class='warning'>You can't move on to [l], they are watching...</span>")
|
||||
to_chat(src, span_warning("You can't move on to [l], they are watching..."))
|
||||
return
|
||||
else if(isturf(target))
|
||||
target_turf = target
|
||||
@@ -166,7 +166,7 @@
|
||||
if(ismob(A))
|
||||
continue
|
||||
else if(A.density && !(A.flags & ON_BORDER))
|
||||
to_chat(src, "<span class='warning'>You can't move there...</span>")
|
||||
to_chat(src, span_warning("You can't move there..."))
|
||||
return
|
||||
else
|
||||
return
|
||||
@@ -176,19 +176,19 @@
|
||||
if(isliving(M) && M != src && M != target && !istype(M, /mob/observer) && !M.invisibility && !istype(M,/mob/living/simple_mob/vore/alienanimals/succlet))
|
||||
var/mob/living/check = M
|
||||
if(check.stat == CONSCIOUS)
|
||||
to_chat(src, "<span class='warning'>You can't move, [check] is watching...</span>")
|
||||
to_chat(src, span_warning("You can't move, [check] is watching..."))
|
||||
return
|
||||
else if (!check.eye_blind)
|
||||
to_chat(src, "<span class='warning'>You can't move, [check] is watching...</span>")
|
||||
to_chat(src, span_warning("You can't move, [check] is watching..."))
|
||||
return
|
||||
for(var/atom/T in view(world.view, target_turf)) //Is anyone at our target?
|
||||
if(isliving(T) && T != src && T != target && !istype(T, /mob/observer) && !T.invisibility && !istype(T,/mob/living/simple_mob/vore/alienanimals/succlet))
|
||||
var/mob/living/check = T
|
||||
if(check.stat == CONSCIOUS)
|
||||
to_chat(src, "<span class='warning'>You can't move, [check] is watching...</span>")
|
||||
to_chat(src, span_warning("You can't move, [check] is watching..."))
|
||||
return
|
||||
else if (!check.eye_blind)
|
||||
to_chat(src, "<span class='warning'>You can't move, [check] is watching...</span>")
|
||||
to_chat(src, span_warning("You can't move, [check] is watching..."))
|
||||
return
|
||||
forceMove(target_turf)
|
||||
if(l)
|
||||
@@ -221,7 +221,7 @@
|
||||
if(user.a_intent != I_HELP)
|
||||
if(isliving(user))
|
||||
var/mob/living/l = user
|
||||
to_chat(l, "<span class='warning'>You feel \the [src]'s sting!!!</span>")
|
||||
to_chat(l, span_warning("You feel \the [src]'s sting!!!"))
|
||||
l.hallucination += 25
|
||||
l.adjustHalLoss(200)
|
||||
l.adjustToxLoss(10)
|
||||
|
||||
@@ -498,7 +498,7 @@ GLOBAL_VAR_INIT(teppi_count, 0) // How mant teppi DO we have?
|
||||
if(resting)
|
||||
lay_down()
|
||||
handle_affinity(user, -5)
|
||||
user.visible_message(user, "<span class='notice'>\The [user] hits \the [src] with \the [O]. \The [src] grumbles at \the [user].</span>","<span class='notice'>You hits \the [src] with \the [O]. \The [src] grumbles at you.</span>")
|
||||
user.visible_message(user, span_notice("\The [user] hits \the [src] with \the [O]. \The [src] grumbles at \the [user]."),span_notice("You hits \the [src] with \the [O]. \The [src] grumbles at you."))
|
||||
playsound(src, 'sound/weapons/tap.ogg', 50, 1, -1)
|
||||
return ..()
|
||||
if(teppi_wool)
|
||||
@@ -507,10 +507,10 @@ GLOBAL_VAR_INIT(teppi_count, 0) // How mant teppi DO we have?
|
||||
/////FOOD/////
|
||||
if(istype(O, /obj/item/reagent_containers/food))
|
||||
if(resting)
|
||||
to_chat(user, "<span class='notice'>\The [src] is napping, and doesn't respond to \the [O].</span>")
|
||||
to_chat(user, span_notice("\The [src] is napping, and doesn't respond to \the [O]."))
|
||||
return
|
||||
if(nutrition >= 5000)
|
||||
user.visible_message("<span class='notice'>\The [user] tries to feed \the [O] to \the [src]. It snoofs but does not eat.</span>","<span class='notice'>You try to feed \the [O] to \the [src], but it only snoofts at it.</span>")
|
||||
user.visible_message(span_notice("\The [user] tries to feed \the [O] to \the [src]. It snoofs but does not eat."),span_notice("You try to feed \the [O] to \the [src], but it only snoofts at it."))
|
||||
return
|
||||
var/nutriment_amount = O.reagents?.get_reagent_amount("nutriment") //does it have nutriment, if so how much?
|
||||
var/protein_amount = O.reagents?.get_reagent_amount("protein") //does it have protein, if so how much?
|
||||
@@ -529,54 +529,54 @@ GLOBAL_VAR_INIT(teppi_count, 0) // How mant teppi DO we have?
|
||||
if(R.allergen_type & allergen_unpreference)
|
||||
disliked = TRUE
|
||||
if(liked && disliked) //in case a food has both the thing they like and also the thing they don't like in it
|
||||
user.visible_message("<span class='notice'>\The [user] feeds \the [O] to \the [src]. It nibbles \the [O] and looks confused.</span>","<span class='notice'>You feed \the [O] to \the [src]. It nibbles \the [O] and looks confused.</span>")
|
||||
user.visible_message(span_notice("\The [user] feeds \the [O] to \the [src]. It nibbles \the [O] and looks confused."),span_notice("You feed \the [O] to \the [src]. It nibbles \the [O] and looks confused."))
|
||||
else if(liked && !disliked)
|
||||
user.visible_message("<span class='notice'>\The [user] feeds \the [O] to \the [src]. It nibbles \the [O] excitedly.</span>","<span class='notice'>You feed \the [O] to \the [src]. It nibbles \the [O] excitedly.</span>")
|
||||
user.visible_message(span_notice("\The [user] feeds \the [O] to \the [src]. It nibbles \the [O] excitedly."),span_notice("You feed \the [O] to \the [src]. It nibbles \the [O] excitedly."))
|
||||
yum *= 2
|
||||
handle_affinity(user, 5)
|
||||
else if(!liked && disliked)
|
||||
user.visible_message("<span class='notice'>\The [user] feeds \the [O] to \the [src]. It nibbles \the [O] slowly.</span>","<span class='notice'>You feed \the [O] to \the [src]. It nibbles \the [O] slowly.</span>")
|
||||
user.visible_message(span_notice("\The [user] feeds \the [O] to \the [src]. It nibbles \the [O] slowly."),span_notice("You feed \the [O] to \the [src]. It nibbles \the [O] slowly."))
|
||||
yum *= 0.5
|
||||
handle_affinity(user, -5)
|
||||
else
|
||||
user.visible_message("<span class='notice'>\The [user] feeds \the [O] to \the [src]. It nibbles \the [O].</span>","<span class='notice'>You feed \the [O] to \the [src]. It nibbles \the [O].</span>")
|
||||
user.visible_message(span_notice("\The [user] feeds \the [O] to \the [src]. It nibbles \the [O]."),span_notice("You feed \the [O] to \the [src]. It nibbles \the [O]."))
|
||||
handle_affinity(user, 1)
|
||||
else
|
||||
user.visible_message("<span class='notice'>\The [user] feeds \the [O] to \the [src]. It nibbles \the [O] casually.</span>","<span class='notice'>You feed \the [O] to \the [src]. It nibbles \the [O] casually.</span>")
|
||||
user.visible_message(span_notice("\The [user] feeds \the [O] to \the [src]. It nibbles \the [O] casually."),span_notice("You feed \the [O] to \the [src]. It nibbles \the [O] casually."))
|
||||
adjust_nutrition(yum) //add the nutriment!
|
||||
user.drop_from_inventory(O)
|
||||
qdel(O)
|
||||
playsound(src, 'sound/items/eatfood.ogg', 75, 1)
|
||||
if(!client && lets_eat(user) && prob(1))
|
||||
visible_message("<span class='danger'>\The [src] scromfs \the [user] along with the food!</span>!")
|
||||
to_chat(user, "<span class='notice'>\The [src] leans in close, spreading its jaws in front of you. A hot, humid gust of breath blows over you as the weight of \the [src]'s presses you over, knocking you off of your feet as the warm gooey tough of jaws scromf over your figure, rapidly guzzling you away with the [O], leaving you to tumble down into the depths of its body...</span>")
|
||||
to_chat(user, span_notice("\The [src] leans in close, spreading its jaws in front of you. A hot, humid gust of breath blows over you as the weight of \the [src]'s presses you over, knocking you off of your feet as the warm gooey tough of jaws scromf over your figure, rapidly guzzling you away with the [O], leaving you to tumble down into the depths of its body..."))
|
||||
playsound(src, pick(bodyfall_sound), 75, 1)
|
||||
teppi_pounce(user)
|
||||
if(yum && nutrition >= 500)
|
||||
to_chat(user, "<span class='notice'>\The [src] seems satisfied.</span>")
|
||||
to_chat(user, span_notice("\The [src] seems satisfied."))
|
||||
return
|
||||
/////WEAPONS/////
|
||||
if(istype(O, /obj/item/material/knife))
|
||||
if(client)
|
||||
return ..()
|
||||
if(resting)
|
||||
user.visible_message("<span class='attack'>\The [user] approaches \the [src]'s neck with \the [O].</span>","<span class='attack'>You approach \the [src]'s neck with \the [O].</span>")
|
||||
user.visible_message(span_attack("\The [user] approaches \the [src]'s neck with \the [O]."),span_attack("You approach \the [src]'s neck with \the [O]."))
|
||||
if(do_after(user, 5 SECONDS, exclusive = TASK_USER_EXCLUSIVE, target = src))
|
||||
if(resting)
|
||||
death()
|
||||
return
|
||||
else
|
||||
to_chat(user, "<span class='notice'>\The [src] woke up! You think better of slaughtering it while it is awake.</span>")
|
||||
to_chat(user, span_notice("\The [src] woke up! You think better of slaughtering it while it is awake."))
|
||||
return
|
||||
else
|
||||
return ..()
|
||||
if(istype(O, /obj/item/clothing/accessory/collar/craftable))
|
||||
var/obj/item/clothing/accessory/collar/craftable/C = O
|
||||
if(item_type == "collar")
|
||||
to_chat(user, "<span class='notice'>[src] is already wearing a collar.</span>")
|
||||
to_chat(user, span_notice("[src] is already wearing a collar."))
|
||||
return
|
||||
if(!C.given_name)
|
||||
to_chat(user, "<span class='notice'>You didn't put a name on the collar. You can use it in your hand to do that!</span>")
|
||||
to_chat(user, span_notice("You didn't put a name on the collar. You can use it in your hand to do that!"))
|
||||
return
|
||||
item_type = "collar"
|
||||
item_color = C.color
|
||||
@@ -596,18 +596,18 @@ GLOBAL_VAR_INIT(teppi_count, 0) // How mant teppi DO we have?
|
||||
return ..()
|
||||
if(M.a_intent == I_GRAB && item_type)
|
||||
if(affinity[M.real_name] >= 30)
|
||||
M.visible_message("<span class='notice'>\The [M.name] removes \the [src]'s [item_type].</span>","<span class='notice'>You remove \the [src]'s [item_type].</span>")
|
||||
M.visible_message(span_notice("\The [M.name] removes \the [src]'s [item_type]."),span_notice("You remove \the [src]'s [item_type]."))
|
||||
item_type = null
|
||||
update_icon()
|
||||
return
|
||||
if(M.a_intent != I_HELP) //be gentle
|
||||
handle_affinity(M, -5)
|
||||
to_chat(M, "<span class='notice'>\The [src] fusses at your rough treatment!!</span>")
|
||||
to_chat(M, span_notice("\The [src] fusses at your rough treatment!!"))
|
||||
if(resting)
|
||||
lay_down()
|
||||
return..()
|
||||
if(resting)
|
||||
M.visible_message("<span class='notice'>\The [M.name] shakes \the [src] awake from their nap.</span>","<span class='notice'>You shake \the [src] awake!</span>")
|
||||
M.visible_message(span_notice("\The [M.name] shakes \the [src] awake from their nap."),span_notice("You shake \the [src] awake!"))
|
||||
playsound(src, 'sound/weapons/thudswoosh.ogg', 50, 1, -1)
|
||||
lay_down()
|
||||
return
|
||||
@@ -618,24 +618,24 @@ GLOBAL_VAR_INIT(teppi_count, 0) // How mant teppi DO we have?
|
||||
handle_affinity(M, 1)
|
||||
if(teppi_adult)
|
||||
if(prob(25))
|
||||
M.visible_message("<span class='notice'>\The [src] rumbles happily at \the [M]</span>","<span class='notice'>\The [src] rumbles happily at you!</span>")
|
||||
M.visible_message(span_notice("\The [src] rumbles happily at \the [M]"),span_notice("\The [src] rumbles happily at you!"))
|
||||
playsound(src, 'sound/voice/teppi/rumble.ogg', 75, 1)
|
||||
vore_selected.digest_mode = DM_DRAIN //People outside can help calm the tumby if you squirm too much
|
||||
else if(prob(25))
|
||||
M.visible_message("<span class='notice'>\The [src] rumbles happily at \the [M]</span>","<span class='notice'>\The [src] rumbles happily at you!</span>")
|
||||
M.visible_message(span_notice("\The [src] rumbles happily at \the [M]"),span_notice("\The [src] rumbles happily at you!"))
|
||||
playsound(src, 'sound/voice/teppi/cute_rumble.ogg', 75, 1)
|
||||
if(prob(25))
|
||||
wantpet = rand(0,25) * affection_factor //We stopped wanting pets
|
||||
to_chat(M, "<span class='notice'>\The [src] leans into your touch.</span>")
|
||||
to_chat(M, span_notice("\The [src] leans into your touch."))
|
||||
petcount = 0
|
||||
else if(petcount < 20)
|
||||
wantpet = 0
|
||||
petcount += 1
|
||||
if(prob(20))
|
||||
to_chat(M, "<span class='notice'>\The [src] grumbles at your touch.</span>")
|
||||
to_chat(M, span_notice("\The [src] grumbles at your touch."))
|
||||
else if(lets_eat(M) && prob(50))
|
||||
to_chat(M, "<span class='notice'>\The [src] grumbles a bit... and then bowls you over, pressing their weight into yours to knock you off of your feet! In a rush of chaotic presses and schlorps, the gooey touch of Teppi flesh grinds over you as you're guzzled away! Casually swallowed down in retaliation for all of the pettings. Pumped down deep into the grumbling depths of \the [src].</span>")
|
||||
visible_message("<span class='danger'>\The [src] scromfs \the [M], before chuffing and settling down again.</span>")
|
||||
to_chat(M, span_notice("\The [src] grumbles a bit... and then bowls you over, pressing their weight into yours to knock you off of your feet! In a rush of chaotic presses and schlorps, the gooey touch of Teppi flesh grinds over you as you're guzzled away! Casually swallowed down in retaliation for all of the pettings. Pumped down deep into the grumbling depths of \the [src]."))
|
||||
visible_message(span_danger("\The [src] scromfs \the [M], before chuffing and settling down again."))
|
||||
playsound(src, pick(bodyfall_sound), 75, 1)
|
||||
teppi_pounce(M)
|
||||
wantpet = 100
|
||||
@@ -645,13 +645,13 @@ GLOBAL_VAR_INIT(teppi_count, 0) // How mant teppi DO we have?
|
||||
/mob/living/simple_mob/vore/alienanimals/teppi/examine()
|
||||
. = ..()
|
||||
if(item_type)
|
||||
. += "<span class='notice'>They are wearing a [item_type] with [name] written on it.</span>"
|
||||
. += span_notice("They are wearing a [item_type] with [name] written on it.")
|
||||
if(nutrition >= 1000)
|
||||
. += "<span class='notice'>They look well fed.</span>"
|
||||
. += span_notice("They look well fed.")
|
||||
if(nutrition <= 500)
|
||||
. += "<span class='notice'>They look hungry.</span>"
|
||||
. += span_notice("They look hungry.")
|
||||
if(health < maxHealth && health / maxHealth * 100 <= 75)
|
||||
. += "<span class='notice'>They look beat up.</span>"
|
||||
. += span_notice("They look beat up.")
|
||||
|
||||
|
||||
/mob/living/simple_mob/vore/alienanimals/teppi/update_icon()
|
||||
@@ -746,7 +746,7 @@ GLOBAL_VAR_INIT(teppi_count, 0) // How mant teppi DO we have?
|
||||
else
|
||||
return FALSE
|
||||
if(do_after(user, sheartime, exclusive = TASK_USER_EXCLUSIVE, target = src))
|
||||
user.visible_message("<span class='notice'>\The [user] shears \the [src] with \the [tool].</span>","<span class='notice'>You shear \the [src] with \the [tool].</span>")
|
||||
user.visible_message(span_notice("\The [user] shears \the [src] with \the [tool]."),span_notice("You shear \the [src] with \the [tool]."))
|
||||
amount_grown = rand(0,250)
|
||||
var/obj/item/stack/material/fur/F = new(get_turf(user), rand(10,15))
|
||||
F.color = marking_color
|
||||
@@ -965,26 +965,26 @@ GLOBAL_VAR_INIT(teppi_count, 0) // How mant teppi DO we have?
|
||||
set category = "Abilities"
|
||||
set desc = "You can have babies if the conditions are right."
|
||||
if(prevent_breeding)
|
||||
to_chat(src, "<span class='notice'>You have elected to not participate in breeding mechanics, and so cannot complete that action.</span>")
|
||||
to_chat(src, span_notice("You have elected to not participate in breeding mechanics, and so cannot complete that action."))
|
||||
return
|
||||
if(!teppi_warned)
|
||||
to_chat(src, "<span class='danger'>Be aware of your surroundings when using this verb. If you use this to be disruptive or prefbreak people, you are likely to eat a ban. If whoever's tending the teppi is trying to make more babies, or you're alone, or playing with other people who you know are into it, then sure. You should not however, for example, drag another teppi to the bar (or any public place) and drop a baby in the middle of the floor. If you're not sure if it's okay to do where you are, with whoever's around, it probably isn't. This is intended to preserve the mechanical utility of the mob you are playing as, not as a scene tool.</span>")
|
||||
to_chat(src, span_danger("Be aware of your surroundings when using this verb. If you use this to be disruptive or prefbreak people, you are likely to eat a ban. If whoever's tending the teppi is trying to make more babies, or you're alone, or playing with other people who you know are into it, then sure. You should not however, for example, drag another teppi to the bar (or any public place) and drop a baby in the middle of the floor. If you're not sure if it's okay to do where you are, with whoever's around, it probably isn't. This is intended to preserve the mechanical utility of the mob you are playing as, not as a scene tool."))
|
||||
teppi_warned = TRUE
|
||||
return
|
||||
if(stat != CONSCIOUS)
|
||||
to_chat(src, "<span class='notice'>I can't do that right now...</span>")
|
||||
to_chat(src, span_notice("I can't do that right now..."))
|
||||
return
|
||||
if(!teppi_adult)
|
||||
to_chat(src, "<span class='notice'>I'm not old enough to make babies.</span>")
|
||||
to_chat(src, span_notice("I'm not old enough to make babies."))
|
||||
return
|
||||
if(baby_countdown > 0)
|
||||
to_chat(src, "<span class='notice'>It is not time yet...</span>")
|
||||
to_chat(src, span_notice("It is not time yet..."))
|
||||
return
|
||||
if(!breedable || nutrition < 500)
|
||||
to_chat(src, "<span class='notice'>The conditions are not right to produce offspring.</span>")
|
||||
to_chat(src, span_notice("The conditions are not right to produce offspring."))
|
||||
return
|
||||
if(GLOB.teppi_count >= GLOB.max_teppi) //if we can't make more then we shouldn't look for partners
|
||||
to_chat(src, "<span class='notice'>I cannot produce more offspring at the moment, there are too many of us!</span>")
|
||||
to_chat(src, span_notice("I cannot produce more offspring at the moment, there are too many of us!"))
|
||||
return
|
||||
. = FALSE
|
||||
for(var/mob/living/simple_mob/vore/alienanimals/teppi/alltep in oview(1,src))
|
||||
@@ -1000,17 +1000,17 @@ GLOBAL_VAR_INIT(teppi_count, 0) // How mant teppi DO we have?
|
||||
alltep.handle_affinity(src, 30)
|
||||
return
|
||||
if(. == FALSE)
|
||||
to_chat(src, "<span class='notice'>There are no suitable partners nearby.</span>")
|
||||
to_chat(src, span_notice("There are no suitable partners nearby."))
|
||||
|
||||
/mob/living/simple_mob/vore/alienanimals/teppi/proc/toggle_producing_offspring()
|
||||
set name = "Toggle Producing Offspring"
|
||||
set category = "Abilities"
|
||||
set desc = "You can toggle whether or not you can produce offspring."
|
||||
if(!prevent_breeding)
|
||||
to_chat(src, "<span class='notice'>You disable breeding.</span>")
|
||||
to_chat(src, span_notice("You disable breeding."))
|
||||
prevent_breeding = TRUE
|
||||
else
|
||||
to_chat(src, "<span class='notice'>You enable breeding.</span>")
|
||||
to_chat(src, span_notice("You enable breeding."))
|
||||
prevent_breeding = FALSE
|
||||
|
||||
///////////////////AI Things////////////////////////
|
||||
@@ -1100,7 +1100,7 @@ GLOBAL_VAR_INIT(teppi_count, 0) // How mant teppi DO we have?
|
||||
if(!leader)
|
||||
if(speaker_affinity >= 100)
|
||||
set_follow(speaker, follow_for = 10 MINUTES)
|
||||
holder.visible_message("<span class='notice'>\The [holder] starts following \the [speaker]</span>","<span class='notice'>\The [holder] starts following you.</span>")
|
||||
holder.visible_message(span_notice("\The [holder] starts following \the [speaker]"),span_notice("\The [holder] starts following you."))
|
||||
return
|
||||
else
|
||||
var/mob/living/L = leader
|
||||
@@ -1108,19 +1108,19 @@ GLOBAL_VAR_INIT(teppi_count, 0) // How mant teppi DO we have?
|
||||
lose_follow()
|
||||
if(speaker_affinity >= 100)
|
||||
set_follow(speaker, follow_for = 10 MINUTES)
|
||||
holder.visible_message("<span class='notice'>\The [holder] starts following \the [speaker]</span>","<span class='notice'>\The [holder] starts following you.</span>")
|
||||
holder.visible_message(span_notice("\The [holder] starts following \the [speaker]"),span_notice("\The [holder] starts following you."))
|
||||
return
|
||||
else if(speaker_affinity > T.affinity[L.real_name])
|
||||
holder.visible_message("<span class='notice'>\The [holder] starts following \the [speaker]</span>","<span class='notice'>\The [holder] starts following you.</span>")
|
||||
holder.visible_message(span_notice("\The [holder] starts following \the [speaker]"),span_notice("\The [holder] starts following you."))
|
||||
set_follow(speaker, follow_for = 10 MINUTES)
|
||||
return
|
||||
if(speaker_affinity == T.affinity[L.real_name])
|
||||
lose_follow()
|
||||
holder.visible_message("<span class='notice'>\The [holder] gives off an anxious whine.</span>")
|
||||
holder.visible_message(span_notice("\The [holder] gives off an anxious whine."))
|
||||
if(findtext(message, "stop teppi") || findtext(message, "stay here") || findtext(message, "stop [holder.name]"))
|
||||
if(leader == speaker)
|
||||
lose_follow()
|
||||
holder.visible_message("<span class='notice'>\The [holder] stops following \the [speaker]</span>","<span class='notice'>\The [holder] stops following you.</span>")
|
||||
holder.visible_message(span_notice("\The [holder] stops following \the [speaker]"),span_notice("\The [holder] stops following you."))
|
||||
return
|
||||
|
||||
//This a teppi with funny colors will spawn!
|
||||
|
||||
@@ -32,11 +32,11 @@
|
||||
to_chat(M, "The captive mind of [src] whispers, \"[message]\"")
|
||||
|
||||
/mob/living/captive_brain/me_verb(message as text)
|
||||
to_chat(src, "<span class='danger'>You cannot emote as a captive mind.</span>")
|
||||
to_chat(src, span_danger("You cannot emote as a captive mind."))
|
||||
return
|
||||
|
||||
/mob/living/captive_brain/emote(var/message)
|
||||
to_chat(src, "<span class='danger'>You cannot emote as a captive mind.</span>")
|
||||
to_chat(src, span_danger("You cannot emote as a captive mind."))
|
||||
return
|
||||
|
||||
/mob/living/captive_brain/process_resist()
|
||||
@@ -45,15 +45,15 @@
|
||||
var/mob/living/simple_mob/animal/borer/B = src.loc
|
||||
var/mob/living/captive_brain/H = src
|
||||
|
||||
to_chat(H, "<span class='danger'>You begin doggedly resisting the parasite's control (this will take approximately sixty seconds).</span>")
|
||||
to_chat(B.host, "<span class='danger'>You feel the captive mind of [src] begin to resist your control.</span>")
|
||||
to_chat(H, span_danger("You begin doggedly resisting the parasite's control (this will take approximately sixty seconds)."))
|
||||
to_chat(B.host, span_danger("You feel the captive mind of [src] begin to resist your control."))
|
||||
|
||||
spawn(rand(200,250)+B.host.brainloss)
|
||||
if(!B || !B.controlling) return
|
||||
|
||||
B.host.adjustBrainLoss(rand(0.1,0.5))
|
||||
to_chat(H, "<span class='danger'>With an immense exertion of will, you regain control of your body!</span>")
|
||||
to_chat(B.host, "<span class='danger'>You feel control of the host brain ripped from your grasp, and retract your probosci before the wild neural impulses can damage you.</span>")
|
||||
to_chat(H, span_danger("With an immense exertion of will, you regain control of your body!"))
|
||||
to_chat(B.host, span_danger("You feel control of the host brain ripped from your grasp, and retract your probosci before the wild neural impulses can damage you."))
|
||||
B.detatch()
|
||||
verbs -= /mob/living/carbon/proc/release_control
|
||||
verbs -= /mob/living/carbon/proc/punish_host
|
||||
|
||||
@@ -32,8 +32,8 @@
|
||||
to_chat(src, "You wiggle out of [host]'s ear and plop to the ground.")
|
||||
if(host.mind)
|
||||
if(!host.stat)
|
||||
to_chat(host, "<span class='danger'>Something slimy wiggles out of your ear and plops to the ground!</span>")
|
||||
to_chat(host, "<span class='danger'>As though waking from a dream, you shake off the insidious mind control of the brain worm. Your thoughts are your own again.</span>")
|
||||
to_chat(host, span_danger("Something slimy wiggles out of your ear and plops to the ground!"))
|
||||
to_chat(host, span_danger("As though waking from a dream, you shake off the insidious mind control of the brain worm. Your thoughts are your own again."))
|
||||
|
||||
detatch()
|
||||
leave_host()
|
||||
@@ -348,7 +348,7 @@
|
||||
return
|
||||
|
||||
verbs -= /mob/living/carbon/human/proc/jumpstart
|
||||
visible_message("<span class='warning'>With a hideous, rattling moan, [src] shudders back to life!</span>")
|
||||
visible_message(span_warning("With a hideous, rattling moan, [src] shudders back to life!"))
|
||||
|
||||
rejuvenate()
|
||||
restore_blood()
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
/mob/living/simple_mob/animal/passive/cow/attackby(var/obj/item/O as obj, var/mob/user as mob)
|
||||
var/obj/item/reagent_containers/glass/G = O
|
||||
if(stat == CONSCIOUS && istype(G) && G.is_open_container())
|
||||
user.visible_message("<span class='notice'>[user] milks [src] using \the [O].</span>")
|
||||
user.visible_message(span_notice("[user] milks [src] using \the [O]."))
|
||||
var/transfered = udder.trans_id_to(G, "milk", rand(5,10))
|
||||
if(G.reagents.total_volume >= G.volume)
|
||||
to_chat(user, span_red("The [O] is full."))
|
||||
@@ -49,7 +49,7 @@
|
||||
|
||||
/mob/living/simple_mob/animal/passive/cow/attack_hand(mob/living/carbon/M as mob)
|
||||
if(!stat && M.a_intent == I_DISARM && icon_state != icon_dead)
|
||||
M.visible_message("<span class='warning'>[M] tips over [src].</span>","<span class='notice'>You tip over [src].</span>")
|
||||
M.visible_message(span_warning("[M] tips over [src]."),span_notice("You tip over [src]."))
|
||||
Weaken(30)
|
||||
icon_state = icon_dead
|
||||
spawn(rand(20,50))
|
||||
|
||||
@@ -63,7 +63,7 @@
|
||||
/mob/living/simple_mob/animal/goat/attackby(var/obj/item/O as obj, var/mob/user as mob)
|
||||
var/obj/item/reagent_containers/glass/G = O
|
||||
if(stat == CONSCIOUS && istype(G) && G.is_open_container())
|
||||
user.visible_message("<span class='notice'>[user] milks [src] using \the [O].</span>")
|
||||
user.visible_message(span_notice("[user] milks [src] using \the [O]."))
|
||||
var/transfered = udder.trans_id_to(G, "milk", rand(5,10))
|
||||
if(G.reagents.total_volume >= G.volume)
|
||||
to_chat(user, span_red("The [O] is full."))
|
||||
@@ -78,4 +78,4 @@
|
||||
emote_see = list("shakes its head", "stamps a foot", "glares around")
|
||||
|
||||
// say_got_target doesn't seem to handle emotes, but keeping this here in case someone wants to make it work
|
||||
// say_got_target = list("<span class='warning'>[src] gets an evil-looking gleam in their eye.</span>")
|
||||
// say_got_target = list(span_warning("[src] gets an evil-looking gleam in their eye."))
|
||||
|
||||
@@ -130,7 +130,7 @@
|
||||
// Does actual poison injection, after all checks passed.
|
||||
/mob/living/simple_mob/animal/giant_spider/proc/inject_poison(mob/living/L, target_zone)
|
||||
if(prob(poison_chance))
|
||||
to_chat(L, "<span class='warning'>You feel a tiny prick.</span>")
|
||||
to_chat(L, span_warning("You feel a tiny prick."))
|
||||
L.reagents.add_reagent(poison_type, poison_per_bite)
|
||||
|
||||
/mob/living/simple_mob/animal/giant_spider/proc/make_spiderling()
|
||||
|
||||
@@ -110,7 +110,7 @@
|
||||
// G.affecting = victim
|
||||
// victim.LAssailant = src
|
||||
|
||||
// visible_message("<span class='warning'>\The [src] seizes \the [victim] aggressively!</span>")
|
||||
// visible_message(span_warning("\The [src] seizes \the [victim] aggressively!"))
|
||||
// do_attack_animation(victim)
|
||||
|
||||
|
||||
|
||||
@@ -199,8 +199,8 @@
|
||||
/datum/modifier/tunneler_vulnerable
|
||||
name = "Vulnerable"
|
||||
desc = "You are vulnerable to more harm than usual."
|
||||
on_created_text = "<span class='warning'>You feel vulnerable...</span>"
|
||||
on_expired_text = "<span class='notice'>You feel better.</span>"
|
||||
on_created_text = span_warning("You feel vulnerable...")
|
||||
on_expired_text = span_notice("You feel better.")
|
||||
stacks = MODIFIER_STACK_EXTEND
|
||||
|
||||
incoming_damage_percent = 2
|
||||
|
||||
@@ -54,17 +54,17 @@
|
||||
var/mob/living/A = AM
|
||||
if(A.mob_size > MOB_SMALL)
|
||||
if(prob(squish_chance))
|
||||
A.visible_message("<span class='notice'>[A] squashed [src].</span>", "<span class='notice'>You squashed [src].</span>")
|
||||
A.visible_message(span_notice("[A] squashed [src]."), span_notice("You squashed [src]."))
|
||||
adjustBruteLoss(1) //kills a normal cockroach
|
||||
else
|
||||
visible_message("<span class='notice'>[src] avoids getting crushed.</span>")
|
||||
visible_message(span_notice("[src] avoids getting crushed."))
|
||||
else
|
||||
if(isstructure(AM))
|
||||
if(prob(squish_chance))
|
||||
AM.visible_message("<span class='notice'>[src] was crushed under [AM].</span>")
|
||||
AM.visible_message(span_notice("[src] was crushed under [AM]."))
|
||||
adjustBruteLoss(1)
|
||||
else
|
||||
visible_message("<span class='notice'>[src] avoids getting crushed.</span>")
|
||||
visible_message(span_notice("[src] avoids getting crushed."))
|
||||
|
||||
/mob/living/simple_mob/animal/passive/cockroach/ex_act() //Explosions are a terrible way to handle a cockroach.
|
||||
return
|
||||
|
||||
@@ -20,11 +20,11 @@
|
||||
..()
|
||||
if(isliving(L) && Adjacent(L))
|
||||
var/mob/living/M = L
|
||||
visible_message("<span class='warning'>\The [src][is_dead()?"'s corpse":""] flails at [M]!</span>")
|
||||
visible_message(span_warning("\The [src][is_dead()?"'s corpse":""] flails at [M]!"))
|
||||
SpinAnimation(7,1)
|
||||
if(prob(75))
|
||||
if(sting(M))
|
||||
to_chat(M, "<span class='warning'>You feel a tiny prick.</span>")
|
||||
to_chat(M, span_warning("You feel a tiny prick."))
|
||||
if(is_dead())
|
||||
return
|
||||
for(var/i = 1 to 3)
|
||||
@@ -38,11 +38,11 @@
|
||||
/mob/living/simple_mob/animal/passive/fish/koi/poisonous/react_to_attack(var/atom/A)
|
||||
if(isliving(A) && Adjacent(A))
|
||||
var/mob/living/M = A
|
||||
visible_message("<span class='warning'>\The [src][is_dead()?"'s corpse":""] flails at [M]!</span>")
|
||||
visible_message(span_warning("\The [src][is_dead()?"'s corpse":""] flails at [M]!"))
|
||||
SpinAnimation(7,1)
|
||||
if(prob(75))
|
||||
if(sting(M))
|
||||
to_chat(M, "<span class='warning'>You feel a tiny prick.</span>")
|
||||
to_chat(M, span_warning("You feel a tiny prick."))
|
||||
if(is_dead())
|
||||
return
|
||||
for(var/i = 1 to 3)
|
||||
@@ -74,4 +74,4 @@
|
||||
vore_bump_chance = 100
|
||||
vore_default_mode = DM_HOLD //docile shark
|
||||
vore_capacity = 5
|
||||
pixel_x = -50
|
||||
pixel_x = -50
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
for(var/mob/living/simple_mob/M in src.contents)
|
||||
if((I_HELP) && U.checkClickCooldown()) //a little snowflakey, but makes it use the same cooldown as interacting with non-inventory objects
|
||||
U.setClickCooldown(U.get_attack_speed()) //if there's a cleaner way in baycode, I'll change this
|
||||
U.visible_message("<span class='notice'>[U] [M.response_help] \the [M].</span>")
|
||||
U.visible_message(span_notice("[U] [M.response_help] \the [M]."))
|
||||
|
||||
//Jank grabber that uses the 'attack_hand' insead of 'MouseDrop'
|
||||
/mob/living/simple_mob/animal/passive/mouse/attack_hand(var/atom/over_object)
|
||||
@@ -41,12 +41,12 @@
|
||||
grabber.put_in_hands(H)
|
||||
|
||||
if(self_grab)
|
||||
to_chat(grabber, "<span class='notice'>\The [src] clambers onto you!</span>")
|
||||
to_chat(src, "<span class='notice'>You climb up onto \the [grabber]!</span>")
|
||||
to_chat(grabber, span_notice("\The [src] clambers onto you!"))
|
||||
to_chat(src, span_notice("You climb up onto \the [grabber]!"))
|
||||
grabber.equip_to_slot_if_possible(H, slot_back, 0, 1)
|
||||
else
|
||||
to_chat(grabber, "<span class='notice'>You scoop up \the [src]!</span>")
|
||||
to_chat(src, "<span class='notice'>\The [grabber] scoops you up!</span>")
|
||||
to_chat(grabber, span_notice("You scoop up \the [src]!"))
|
||||
to_chat(src, span_notice("\The [grabber] scoops you up!"))
|
||||
|
||||
add_attack_logs(grabber, H.held_mob, "Scooped up", FALSE) // Not important enough to notify admins, but still helpful.
|
||||
return H
|
||||
@@ -67,5 +67,4 @@
|
||||
for(var/L in contents)
|
||||
if(isanimal(L))
|
||||
var/mob/living/simple_mob/S = L
|
||||
user.visible_message("<span class='notice'>[user] [S.response_help] \the [S].</span>")
|
||||
|
||||
user.visible_message(span_notice("[user] [S.response_help] \the [S]."))
|
||||
|
||||
@@ -258,13 +258,13 @@ var/list/_cat_default_emotes = list(
|
||||
/mob/living/simple_mob/animal/passive/cat/attackby(obj/item/W as obj, mob/user as mob)
|
||||
if(istype(W, /obj/item/pen) || istype(W, /obj/item/flashlight/pen))
|
||||
if(named)
|
||||
to_chat(user, "<span class='notice'>\The [name] already has a name!</span>")
|
||||
to_chat(user, span_notice("\The [name] already has a name!"))
|
||||
else
|
||||
var/tmp_name = sanitizeSafe(tgui_input_text(user, "Give \the [name] a name", "Name", null, MAX_NAME_LEN), MAX_NAME_LEN)
|
||||
if(length(tmp_name) > 50)
|
||||
to_chat(user, "<span class='notice'>The name can be at most 50 characters long.</span>")
|
||||
to_chat(user, span_notice("The name can be at most 50 characters long."))
|
||||
else
|
||||
to_chat(user, "<span class='notice'>You name \the [name]. Meow!</span>")
|
||||
to_chat(user, span_notice("You name \the [name]. Meow!"))
|
||||
name = tmp_name
|
||||
named = TRUE
|
||||
else
|
||||
@@ -279,7 +279,7 @@ var/list/_cat_default_emotes = list(
|
||||
|
||||
/obj/item/cat_box/attack_self(var/mob/user)
|
||||
var/turf/catturf = get_turf(src)
|
||||
to_chat(user, "<span class='notice'>You peek into \the [name]-- and a cat jumps out!</span>")
|
||||
to_chat(user, span_notice("You peek into \the [name]-- and a cat jumps out!"))
|
||||
new cattype(catturf)
|
||||
new /obj/item/stack/material/cardboard(catturf) //if i fits i sits
|
||||
qdel(src)
|
||||
|
||||
@@ -176,7 +176,7 @@
|
||||
return
|
||||
|
||||
if (!(ishuman(usr) && befriend_job && usr.job == befriend_job))
|
||||
to_chat(usr, "<span class='notice'>[src] ignores you.</span>")
|
||||
to_chat(usr, span_notice("[src] ignores you."))
|
||||
return
|
||||
|
||||
friend = usr
|
||||
|
||||
@@ -80,7 +80,7 @@
|
||||
|
||||
/mob/living/simple_mob/animal/passive/bird/parrot/proc/remove_headset(mob/living/user)
|
||||
if(!my_headset)
|
||||
to_chat(user, "<span class='warning'>\The [src] doesn't have a headset to remove, thankfully.</span>")
|
||||
to_chat(user, span_warning("\The [src] doesn't have a headset to remove, thankfully."))
|
||||
else
|
||||
ISay("BAWWWWWK LEAVE THE HEADSET BAWKKKKK!")
|
||||
my_headset.forceMove(get_turf(src))
|
||||
|
||||
@@ -83,14 +83,14 @@
|
||||
hat = null
|
||||
update_icon()
|
||||
if(user == src)
|
||||
to_chat(user, "<span class='notice'>You removed your hat.</span>")
|
||||
to_chat(user, span_notice("You removed your hat."))
|
||||
return
|
||||
to_chat(user, "<span class='warning'>You removed \the [src]'s hat. You monster.</span>")
|
||||
to_chat(user, span_warning("You removed \the [src]'s hat. You monster."))
|
||||
else
|
||||
if(user == src)
|
||||
to_chat(user, "<span class='notice'>You are not wearing a hat!</span>")
|
||||
to_chat(user, span_notice("You are not wearing a hat!"))
|
||||
return
|
||||
to_chat(user, "<span class='notice'>\The [src] is not wearing a hat!</span>")
|
||||
to_chat(user, span_notice("\The [src] is not wearing a hat!"))
|
||||
|
||||
/mob/living/simple_mob/animal/sif/sakimm/verb/give_hat()
|
||||
set name = "Give Hat"
|
||||
@@ -103,16 +103,16 @@
|
||||
/mob/living/simple_mob/animal/sif/sakimm/proc/take_hat(var/mob/user)
|
||||
if(hat)
|
||||
if(user == src)
|
||||
to_chat(user, "<span class='notice'>You already have a hat!</span>")
|
||||
to_chat(user, span_notice("You already have a hat!"))
|
||||
return
|
||||
to_chat(user, "<span class='notice'>\The [src] already has a hat!</span>")
|
||||
to_chat(user, span_notice("\The [src] already has a hat!"))
|
||||
else
|
||||
if(user == src)
|
||||
if(istype(get_active_hand(), /obj/item/clothing/head))
|
||||
hat = get_active_hand()
|
||||
drop_from_inventory(hat, src)
|
||||
hat.forceMove(src)
|
||||
to_chat(user, "<span class='notice'>You put on the hat.</span>")
|
||||
to_chat(user, span_notice("You put on the hat."))
|
||||
update_icon()
|
||||
return
|
||||
else if(ishuman(user))
|
||||
@@ -125,10 +125,10 @@
|
||||
a_intent = I_HELP
|
||||
newhat.attack_hand(src)
|
||||
else if(src.get_active_hand())
|
||||
to_chat(user, "<span class='notice'>\The [src] seems busy with \the [get_active_hand()] already!</span>")
|
||||
to_chat(user, span_notice("\The [src] seems busy with \the [get_active_hand()] already!"))
|
||||
|
||||
else
|
||||
to_chat(user, "<span class='warning'>You aren't holding a hat...</span>")
|
||||
to_chat(user, span_warning("You aren't holding a hat..."))
|
||||
|
||||
/datum/say_list/sakimm
|
||||
speak = list("Shurr.", "|R|rr?", "Hss.")
|
||||
|
||||
@@ -44,7 +44,7 @@
|
||||
var/mob/living/L = A
|
||||
if(prob(scare_chance))
|
||||
L.Stun(1)
|
||||
L.visible_message("<span class='danger'>\The [src] scares \the [L]!</span>")
|
||||
L.visible_message(span_danger("\The [src] scares \the [L]!"))
|
||||
|
||||
// Spookiest of bats
|
||||
/mob/living/simple_mob/animal/space/bats/cult
|
||||
|
||||
@@ -143,7 +143,7 @@
|
||||
|
||||
/mob/living/simple_mob/animal/passive/snake/python/noodle/attackby(var/obj/item/O, var/mob/user)
|
||||
if(istype(O, /obj/item/reagent_containers/food/snacks/snakesnack))
|
||||
visible_message("<span class='notice'>[user] feeds \the [O] to [src].</span>")
|
||||
visible_message(span_notice("[user] feeds \the [O] to [src]."))
|
||||
qdel(O)
|
||||
else
|
||||
return ..()
|
||||
|
||||
@@ -128,10 +128,10 @@
|
||||
|
||||
if(world.time < time_maw_opened + maw_cooldown)
|
||||
if(open_maw)
|
||||
to_chat(src, "<span class='notice'>You retract your teeth.</span>")
|
||||
to_chat(src, span_notice("You retract your teeth."))
|
||||
time_maw_opened -= maw_cooldown / 2 // Recovers half cooldown if you end it early manually.
|
||||
else
|
||||
to_chat(src, "<span class='notice'>You are too tired to do this..</span>")
|
||||
to_chat(src, span_notice("You are too tired to do this.."))
|
||||
set_maw(FALSE)
|
||||
else
|
||||
set_maw(!open_maw)
|
||||
@@ -158,7 +158,7 @@
|
||||
|
||||
if(world.time > time_maw_opened + maw_cooldown) // Auto-stop eating.
|
||||
if(open_maw)
|
||||
to_chat(src, "<span class='notice'>Your jaws cannot remain open..</span>")
|
||||
to_chat(src, span_notice("Your jaws cannot remain open.."))
|
||||
set_maw(FALSE)
|
||||
|
||||
if(next && !(next in view(src,1)) && !z_transitioning)
|
||||
@@ -260,7 +260,7 @@
|
||||
break
|
||||
|
||||
if(do_after(src, 5))
|
||||
D.visible_message("<span class='danger'>Something crashes against \the [D]!</span>")
|
||||
D.visible_message(span_danger("Something crashes against \the [D]!"))
|
||||
D.take_damage(2 * melee_damage_upper)
|
||||
else
|
||||
objectOrMob = null
|
||||
@@ -274,14 +274,14 @@
|
||||
var/obj/effect/energy_field/EF = objectOrMob
|
||||
objectOrMob = null // No eating shields.
|
||||
if(EF.opacity)
|
||||
EF.visible_message("<span class='danger'>Something begins forcing itself through \the [EF]!</span>")
|
||||
EF.visible_message(span_danger("Something begins forcing itself through \the [EF]!"))
|
||||
else
|
||||
EF.visible_message("<span class='danger'>\The [src] begins forcing itself through \the [EF]!</span>")
|
||||
EF.visible_message(span_danger("\The [src] begins forcing itself through \the [EF]!"))
|
||||
if(do_after(src, EF.strength * 5))
|
||||
EF.adjust_strength(rand(-8, -10))
|
||||
EF.visible_message("<span class='danger'>\The [src] crashes through \the [EF]!</span>")
|
||||
EF.visible_message(span_danger("\The [src] crashes through \the [EF]!"))
|
||||
else
|
||||
EF.visible_message("<span class='danger'>\The [EF] reverberates as it returns to normal.</span>")
|
||||
EF.visible_message(span_danger("\The [EF] reverberates as it returns to normal."))
|
||||
|
||||
if(objectOrMob)
|
||||
objectOrMob.update_nearby_tiles(need_rebuild=1)
|
||||
|
||||
@@ -211,7 +211,7 @@
|
||||
set category = "Abilities"
|
||||
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)
|
||||
|
||||
@@ -122,15 +122,15 @@
|
||||
/mob/living/simple_mob/humanoid/merc/melee/sword/attackby(var/obj/item/O as obj, var/mob/user as mob)
|
||||
if(O.force)
|
||||
if(prob(20))
|
||||
visible_message("<span class='danger'>\The [src] blocks \the [O] with its shield!</span>")
|
||||
visible_message(span_danger("\The [src] blocks \the [O] with its shield!"))
|
||||
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/humanoid/merc/melee/sword/bullet_act(var/obj/item/projectile/Proj)
|
||||
if(!Proj) return
|
||||
@@ -321,7 +321,7 @@
|
||||
try_reload()
|
||||
return FALSE
|
||||
|
||||
visible_message("<span class='danger'><b>\The [src]</b> fires at \the [orig_targ]!</span>")
|
||||
visible_message(span_danger("<b>\The [src]</b> fires at \the [orig_targ]!"))
|
||||
shoot(A)
|
||||
if(casingtype)
|
||||
new casingtype(loc)
|
||||
|
||||
@@ -62,7 +62,7 @@
|
||||
// Does actual poison injection, after all checks passed.
|
||||
/mob/living/simple_mob/mechanical/corrupt_maint_drone/proc/inject_poison(mob/living/L, target_zone)
|
||||
if(prob(poison_chance))
|
||||
to_chat(L, "<span class='warning'>Something burns in your veins.</span>")
|
||||
to_chat(L, span_warning("Something burns in your veins."))
|
||||
L.reagents.add_reagent(poison_type, poison_per_bite)
|
||||
|
||||
|
||||
|
||||
@@ -66,5 +66,5 @@
|
||||
// Does actual poison injection, after all checks passed.
|
||||
/mob/living/simple_mob/mechanical/infectionbot/proc/inject_poison(mob/living/L, target_zone)
|
||||
if(prob(poison_chance))
|
||||
to_chat(L, "<span class='warning'>You feel a tiny prick.</span>")
|
||||
to_chat(L, span_warning("You feel a tiny prick."))
|
||||
L.reagents.add_reagent(poison_type, poison_per_bite)
|
||||
|
||||
@@ -32,8 +32,8 @@
|
||||
// The boost is lost if the commander is too far away or dies.
|
||||
/datum/modifier/aura/hivebot_commander_buff
|
||||
name = "Strategicals"
|
||||
on_created_text = "<span class='notice'>Signal established with commander. Optimizating combat performance...</span>"
|
||||
on_expired_text = "<span class='warning'>Lost signal to commander. Optimization halting.</span>"
|
||||
on_created_text = span_notice("Signal established with commander. Optimizating combat performance...")
|
||||
on_expired_text = span_warning("Lost signal to commander. Optimization halting.")
|
||||
stacks = MODIFIER_STACK_FORBID
|
||||
aura_max_distance = 4
|
||||
mob_overlay_state = "signal_blue"
|
||||
|
||||
@@ -23,8 +23,8 @@
|
||||
/datum/modifier/hivebot_weaken
|
||||
name = "Shocked"
|
||||
desc = "You feel less able to exert yourself after being prodded."
|
||||
on_created_text = "<span class='warning'>You feel weak...</span>"
|
||||
on_expired_text = "<span class='notice'>You feel better.</span>"
|
||||
on_created_text = span_warning("You feel weak...")
|
||||
on_expired_text = span_notice("You feel better.")
|
||||
stacks = MODIFIER_STACK_EXTEND
|
||||
mob_overlay_state = "electricity"
|
||||
|
||||
|
||||
@@ -84,7 +84,7 @@
|
||||
if(l_spell.aspect == ASPECT_CHROMATIC) //Check the other hand too.
|
||||
l_spell.on_combine_cast(S, src)
|
||||
else //Welp
|
||||
to_chat(src, "<span class='warning'>You require a free manipulator to use this power.</span>")
|
||||
to_chat(src, span_warning("You require a free manipulator to use this power."))
|
||||
return 0
|
||||
|
||||
if(S.run_checks())
|
||||
@@ -128,7 +128,7 @@
|
||||
adjustFireLoss(rand(repair_lower_bound, repair_upper_bound))
|
||||
user.visible_message("<b>\The [user]</b> mends some of \the [src]'s wounds.")
|
||||
else
|
||||
to_chat(user, "<span class='notice'>\The [src] is undamaged.</span>")
|
||||
to_chat(user, span_notice("\The [src] is undamaged."))
|
||||
return
|
||||
return ..()
|
||||
|
||||
@@ -137,9 +137,9 @@
|
||||
var/max = getMaxHealth()
|
||||
if (health < max)
|
||||
if (health >= max/2)
|
||||
. += "<span class='warning'>It looks slightly dented.</span>"
|
||||
. += span_warning("It looks slightly dented.")
|
||||
else
|
||||
. += "<span class='warning'><B>It looks severely dented!</B></span>"
|
||||
. += span_warning("<B>It looks severely dented!</B>")
|
||||
|
||||
//Constructs levitate, can fall from a shuttle with no harm, and are piloted by either damned spirits or some otherworldly entity. Let 'em float in space.
|
||||
/mob/living/simple_mob/construct/Process_Spacemove()
|
||||
|
||||
@@ -58,8 +58,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
|
||||
@@ -67,8 +67,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))
|
||||
@@ -127,8 +127,8 @@
|
||||
/mob/living/simple_mob/construct/juggernaut/behemoth/bullet_act(var/obj/item/projectile/P)
|
||||
var/reflectchance = 80 - round(P.damage/3)
|
||||
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)
|
||||
|
||||
@@ -50,7 +50,7 @@
|
||||
var/mob/living/L = A
|
||||
if(prob(12))
|
||||
L.Weaken(3)
|
||||
L.visible_message("<span class='danger'>\The [src] knocks down \the [L]!</span>")
|
||||
L.visible_message(span_danger("\The [src] knocks down \the [L]!"))
|
||||
|
||||
// Strong Variant
|
||||
/mob/living/simple_mob/faithless/strong
|
||||
|
||||
@@ -203,13 +203,13 @@
|
||||
|
||||
if(target && istype(target))
|
||||
if(target.client)
|
||||
to_chat(target, "<span class='critical'>You feel as though you are losing your sense of direction! Brace yourself!</span>")
|
||||
to_chat(target, span_critical("You feel as though you are losing your sense of direction! Brace yourself!"))
|
||||
new /obj/effect/temp_visual/pre_confuse(get_turf(target))
|
||||
spawn(5 SECONDS)
|
||||
if(target)
|
||||
target.Confuse(3)
|
||||
if(target.client)
|
||||
to_chat(target, "<span class='critical'>You feel confused!</span>")
|
||||
to_chat(target, span_critical("You feel confused!"))
|
||||
new /obj/effect/temp_visual/confuse(get_turf(target))
|
||||
|
||||
/mob/living/simple_mob/glitch_boss/proc/bullethell(atom/A)
|
||||
|
||||
@@ -229,11 +229,11 @@ var/list/_slime_default_emotes = list(
|
||||
|
||||
/mob/living/simple_mob/slime/proc/remove_hat(var/mob/living/user)
|
||||
if(!hat)
|
||||
to_chat(user, "<span class='warning'>\The [src] doesn't have a hat to remove.</span>")
|
||||
to_chat(user, span_warning("\The [src] doesn't have a hat to remove."))
|
||||
else
|
||||
hat.forceMove(get_turf(src))
|
||||
user.put_in_hands(hat)
|
||||
to_chat(user, "<span class='warning'>You take away \the [src]'s [hat.name]. How mean.</span>")
|
||||
to_chat(user, span_warning("You take away \the [src]'s [hat.name]. How mean."))
|
||||
hat = null
|
||||
update_icon()
|
||||
|
||||
|
||||
@@ -569,8 +569,8 @@
|
||||
stacks = MODIFIER_STACK_FORBID
|
||||
aura_max_distance = 2
|
||||
|
||||
on_created_text = "<span class='warning'>Twinkling spores of goo surround you. It makes you feel healthier.</span>"
|
||||
on_expired_text = "<span class='notice'>The spores of goo have faded, although you feel much healthier than before.</span>"
|
||||
on_created_text = span_warning("Twinkling spores of goo surround you. It makes you feel healthier.")
|
||||
on_expired_text = span_notice("The spores of goo have faded, although you feel much healthier than before.")
|
||||
|
||||
/datum/modifier/aura/slime_heal/tick()
|
||||
if(holder.stat == DEAD)
|
||||
|
||||
@@ -65,7 +65,7 @@
|
||||
// Does actual poison injection, after all checks passed.
|
||||
/mob/living/simple_mob/vore/bee/proc/inject_poison(mob/living/L, target_zone)
|
||||
if(prob(poison_chance))
|
||||
to_chat(L, "<span class='warning'>You feel a tiny prick.</span>")
|
||||
to_chat(L, span_warning("You feel a tiny prick."))
|
||||
L.reagents.add_reagent(poison_type, poison_per_bite)
|
||||
|
||||
/datum/say_list/bee
|
||||
|
||||
@@ -301,11 +301,11 @@ I think I covered everything.
|
||||
set category = "Abilities"
|
||||
|
||||
if(norange)
|
||||
to_chat(src, "<span class='userdanger'>You don't have a breath attack!</span>")
|
||||
to_chat(src, span_userdanger("You don't have a breath attack!"))
|
||||
return
|
||||
|
||||
flametoggle = !flametoggle
|
||||
to_chat(src, "<span class='notice'>You will [flametoggle?"now breath":"no longer breath"] attack on harm intent.</span>")
|
||||
to_chat(src, span_notice("You will [flametoggle?"now breath":"no longer breath"] attack on harm intent."))
|
||||
|
||||
/mob/living/simple_mob/vore/bigdragon/proc/special_toggle()
|
||||
set name = "Toggle special attacks"
|
||||
@@ -313,11 +313,11 @@ I think I covered everything.
|
||||
set category = "Abilities"
|
||||
|
||||
if(nospecial)
|
||||
to_chat(src, "<span class='userdanger'>You don't have special attacks!</span>")
|
||||
to_chat(src, span_userdanger("You don't have special attacks!"))
|
||||
return
|
||||
|
||||
specialtoggle = !specialtoggle
|
||||
to_chat(src, "<span class='notice'>You will [specialtoggle?"now special":"no longer special"] attack on grab/disarm intent.</span>")
|
||||
to_chat(src, span_notice("You will [specialtoggle?"now special":"no longer special"] attack on grab/disarm intent."))
|
||||
|
||||
|
||||
///
|
||||
@@ -757,14 +757,14 @@ I think I covered everything.
|
||||
M.Weaken(5)
|
||||
if(!gentle)
|
||||
M.adjustBruteLoss(50) //A dragon just slammed ontop of you
|
||||
to_chat(M, "<span class='userdanger'>You're slammed into the floor by [src]!</span>")
|
||||
to_chat(M, span_userdanger("You're slammed into the floor by [src]!"))
|
||||
else
|
||||
if(isliving(AM))
|
||||
var/mob/living/M = AM
|
||||
M.Weaken(1.5)
|
||||
if(!gentle)
|
||||
M.adjustBruteLoss(20)
|
||||
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)
|
||||
|
||||
@@ -825,7 +825,7 @@ I think I covered everything.
|
||||
set_AI_busy(FALSE)
|
||||
return
|
||||
var/obj/item/projectile/P = new /obj/item/projectile/bullet/dragon(get_turf(src))
|
||||
src.visible_message("<span class='danger'>\The [src] spews fire at \the [A]!</span>")
|
||||
src.visible_message(span_danger("\The [src] spews fire at \the [A]!"))
|
||||
playsound(src, "sound/weapons/Flamer.ogg", 50, 1)
|
||||
P.launch_projectile(A, BP_TORSO, src)
|
||||
set_AI_busy(FALSE)
|
||||
|
||||
@@ -5,15 +5,15 @@
|
||||
|
||||
var/turf/T = get_turf(src)
|
||||
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
|
||||
|
||||
if(shift_state && shift_state == AB_SHIFT_ACTIVE)
|
||||
to_chat(src,"<span class='warning'>You can't do a shift while actively shifting!</span>")
|
||||
to_chat(src,span_warning("You can't do a shift while actively shifting!"))
|
||||
return FALSE
|
||||
|
||||
if(!(locate(/obj/effect/decal/cleanable/blood) in src.loc))
|
||||
to_chat(src,"<span class='warning'>You need blood to shift between realities!</span>")
|
||||
to_chat(src,span_warning("You need blood to shift between realities!"))
|
||||
return FALSE
|
||||
|
||||
forceMove(T)
|
||||
@@ -57,7 +57,7 @@
|
||||
var/mob/living/target = pick(potentials)
|
||||
if(istype(target) && target.devourable && target.can_be_drop_prey && vore_selected)
|
||||
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(target,span_vwarning("\The [src] phases in around you, [vore_selected.vore_verb]ing you into their [vore_selected.name]!"))
|
||||
|
||||
// Do this after the potential vore, so we get the belly
|
||||
update_icon()
|
||||
@@ -114,15 +114,15 @@
|
||||
var/turf/T = get_turf(src)
|
||||
|
||||
if(shift_state && shift_state == AB_SHIFT_PASSIVE)
|
||||
to_chat(src,"<span class='warning'>You can't do a shift while passively shifting!</span>")
|
||||
to_chat(src,span_warning("You can't do a shift while passively shifting!"))
|
||||
return FALSE
|
||||
|
||||
if(shifted_out)
|
||||
to_chat(src,"<span class='warning'>You can't return to the physical world yet!</span>")
|
||||
to_chat(src,span_warning("You can't return to the physical world yet!"))
|
||||
return FALSE
|
||||
|
||||
if(world.time - last_shift < 600)
|
||||
to_chat(src,"<span class='warning'>You can't temporarily shift so soon! You need to wait [round(((last_shift+600)-world.time)/10)] second\s!</span>")
|
||||
to_chat(src,span_warning("You can't temporarily shift so soon! You need to wait [round(((last_shift+600)-world.time)/10)] second\s!"))
|
||||
return FALSE
|
||||
|
||||
shift_state = AB_SHIFT_ACTIVE
|
||||
@@ -201,7 +201,7 @@
|
||||
var/mob/living/target = pick(potentials)
|
||||
if(istype(target) && target.devourable && target.can_be_drop_prey && vore_selected)
|
||||
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(target,span_vwarning("\The [src] phases in around you, [vore_selected.vore_verb]ing you into their [vore_selected.name]!"))
|
||||
|
||||
// Do this after the potential vore, so we get the belly
|
||||
update_icon()
|
||||
|
||||
@@ -78,16 +78,16 @@
|
||||
if(tgui_alert(src, "Do you want to wrest control over your body back from \the [prey_name]?", "Regain Control",list("No","Yes")) != "Yes")
|
||||
return
|
||||
|
||||
to_chat(src, "<span class='danger'>You begin to resist \the [prey_name]'s control!!!</span>")
|
||||
to_chat(pred_body, "<span class='danger'>You feel the captive mind of [src] begin to resist your control.</span>")
|
||||
to_chat(src, span_danger("You begin to resist \the [prey_name]'s control!!!"))
|
||||
to_chat(pred_body, span_danger("You feel the captive mind of [src] begin to resist your control."))
|
||||
|
||||
if(do_after(src, 10 SECONDS, exclusive = TRUE))
|
||||
restore_control()
|
||||
else
|
||||
to_chat(src, "<span class='notice'>Your attempt to regain control has been interrupted...</span>")
|
||||
to_chat(pred_body, "<span class='notice'>The dominant sensation fades away...</span>")
|
||||
to_chat(src, span_notice("Your attempt to regain control has been interrupted..."))
|
||||
to_chat(pred_body, span_notice("The dominant sensation fades away..."))
|
||||
else
|
||||
to_chat(src, "<span class='warning'>\The [pred_body] is already dominated, and cannot be controlled at this time.</span>")
|
||||
to_chat(src, span_warning("\The [pred_body] is already dominated, and cannot be controlled at this time."))
|
||||
..()
|
||||
|
||||
/mob/living/dominated_brain/proc/restore_control(ask = TRUE)
|
||||
@@ -187,47 +187,47 @@
|
||||
if(isbelly(pocketpal.card.loc))
|
||||
pred = pocketpal.card.loc.loc
|
||||
else
|
||||
to_chat(prey, "<span class='notice'>You are not inside anyone.</span>")
|
||||
to_chat(prey, span_notice("You are not inside anyone."))
|
||||
return
|
||||
|
||||
if(prey.stat == DEAD)
|
||||
to_chat(prey, "<span class='warning'>You cannot do that in your current state.</span>")
|
||||
to_chat(prey, span_warning("You cannot do that in your current state."))
|
||||
return
|
||||
|
||||
if(!pred.allow_mind_transfer)
|
||||
to_chat(prey, "<span class='warning'>[pred] is unable to be dominated.</span>")
|
||||
to_chat(prey, span_warning("[pred] is unable to be dominated."))
|
||||
return
|
||||
|
||||
if(!pred.ckey)
|
||||
to_chat(prey, "<span class='notice'>\The [pred] isn't able to be dominated.</span>")
|
||||
to_chat(prey, span_notice("\The [pred] isn't able to be dominated."))
|
||||
return
|
||||
if(isrobot(pred) && jobban_isbanned(prey, JOB_CYBORG))
|
||||
to_chat(prey, "<span class='warning'>Forces beyond your comprehension forbid you from taking control of [pred].</span>")
|
||||
to_chat(prey, span_warning("Forces beyond your comprehension forbid you from taking control of [pred]."))
|
||||
return
|
||||
if(prey.prey_controlled)
|
||||
to_chat(prey, "<span class='warning'>You are already controlling someone, you can't control anyone else at this time.</span>")
|
||||
to_chat(prey, span_warning("You are already controlling someone, you can't control anyone else at this time."))
|
||||
return
|
||||
if(pred.prey_controlled)
|
||||
to_chat(prey, "<span class='warning'>\The [pred] is already dominated, and cannot be controlled at this time.</span>")
|
||||
to_chat(prey, span_warning("\The [pred] is already dominated, and cannot be controlled at this time."))
|
||||
return
|
||||
if(tgui_alert(prey, "You are attempting to take over [pred], are you sure? Ensure that their preferences align with this kind of play.", "Take Over Predator",list("No","Yes")) != "Yes")
|
||||
return
|
||||
to_chat(prey, "<span class='notice'>You attempt to exert your control over \the [pred]...</span>")
|
||||
to_chat(prey, span_notice("You attempt to exert your control over \the [pred]..."))
|
||||
log_admin("[key_name_admin(prey)] attempted to take over [pred].")
|
||||
if(tgui_alert(pred, "\The [prey] has elected to attempt to take control of you. Is this something you will allow to happen?", "Allow Prey Domination",list("No","Yes")) != "Yes")
|
||||
to_chat(prey, "<span class='warning'>\The [pred] declined your request for control.</span>")
|
||||
to_chat(prey, span_warning("\The [pred] declined your request for control."))
|
||||
return
|
||||
if(tgui_alert(pred, "Are you sure? If you should decide to revoke this, you will have the ability to do so in your 'Abilities' tab.", "Allow Prey Domination",list("No","Yes")) != "Yes")
|
||||
return
|
||||
to_chat(pred, "<span class='warning'>You can feel the will of another overwriting your own, control of your body being sapped away from you...</span>")
|
||||
to_chat(prey, "<span class='warning'>You can feel the will of your host diminishing as you exert your will over them!</span>")
|
||||
to_chat(pred, span_warning("You can feel the will of another overwriting your own, control of your body being sapped away from you..."))
|
||||
to_chat(prey, span_warning("You can feel the will of your host diminishing as you exert your will over them!"))
|
||||
if(!do_after(prey, 10 SECONDS, exclusive = TRUE))
|
||||
to_chat(prey, "<span class='notice'>Your attempt to regain control has been interrupted...</span>")
|
||||
to_chat(pred, "<span class='notice'>The dominant sensation fades away...</span>")
|
||||
to_chat(prey, span_notice("Your attempt to regain control has been interrupted..."))
|
||||
to_chat(pred, span_notice("The dominant sensation fades away..."))
|
||||
return
|
||||
|
||||
to_chat(prey, "<span class='danger'>You plunge your conciousness into \the [pred], assuming control over their very body, leaving your own behind within \the [pred]'s [loc].</span>")
|
||||
to_chat(pred, "<span class='danger'>You feel your body move on its own, as you are pushed to the background, and an alien consciousness displaces yours.</span>")
|
||||
to_chat(prey, span_danger("You plunge your conciousness into \the [pred], assuming control over their very body, leaving your own behind within \the [pred]'s [loc]."))
|
||||
to_chat(pred, span_danger("You feel your body move on its own, as you are pushed to the background, and an alien consciousness displaces yours."))
|
||||
var/mob/living/dominated_brain/pred_brain
|
||||
var/delete_source = FALSE
|
||||
if(istype(prey, /mob/living/dominated_brain))
|
||||
@@ -279,13 +279,13 @@
|
||||
if(istype(I, /mob/living/dominated_brain))
|
||||
var/mob/living/dominated_brain/db = I
|
||||
if(db.ckey == db.pred_ckey)
|
||||
to_chat(src, "<span class='notice'>You ease off of your control, releasing \the [db].</span>")
|
||||
to_chat(db, "<span class='notice'>You feel the alien presence fade, and restore control of your body to you of their own will...</span>")
|
||||
to_chat(src, span_notice("You ease off of your control, releasing \the [db]."))
|
||||
to_chat(db, span_notice("You feel the alien presence fade, and restore control of your body to you of their own will..."))
|
||||
db.restore_control()
|
||||
return
|
||||
else
|
||||
continue
|
||||
to_chat(src, "<span class='danger'>You haven't been taken over, and shouldn't have this verb. I'll clean that up for you. Report this on the github, it is a bug.</span>")
|
||||
to_chat(src, span_danger("You haven't been taken over, and shouldn't have this verb. I'll clean that up for you. Report this on the github, it is a bug."))
|
||||
verbs -= /mob/proc/release_predator
|
||||
|
||||
/mob/living/dominated_brain/proc/resist_control()
|
||||
@@ -296,16 +296,16 @@
|
||||
dominate_predator()
|
||||
return
|
||||
if(pred_ckey == ckey && pred_body.prey_controlled)
|
||||
to_chat(src, "<span class='danger'>You begin to resist \the [prey_name]'s control!!!</span>")
|
||||
to_chat(pred_body, "<span class='danger'>You feel the captive mind of [src] begin to resist your control.</span>")
|
||||
to_chat(src, span_danger("You begin to resist \the [prey_name]'s control!!!"))
|
||||
to_chat(pred_body, span_danger("You feel the captive mind of [src] begin to resist your control."))
|
||||
|
||||
if(do_after(src, 10 SECONDS, exclusive = TRUE))
|
||||
restore_control()
|
||||
else
|
||||
to_chat(src, "<span class='notice'>Your attempt to regain control has been interrupted...</span>")
|
||||
to_chat(pred_body, "<span class='notice'>The dominant sensation fades away...</span>")
|
||||
to_chat(src, span_notice("Your attempt to regain control has been interrupted..."))
|
||||
to_chat(pred_body, span_notice("The dominant sensation fades away..."))
|
||||
else
|
||||
to_chat(src, "<span class='warning'>\The [pred_body] is already dominated, and cannot be controlled at this time.</span>")
|
||||
to_chat(src, span_warning("\The [pred_body] is already dominated, and cannot be controlled at this time."))
|
||||
|
||||
/mob/living/proc/dominate_prey()
|
||||
set category = "Abilities"
|
||||
@@ -320,35 +320,35 @@
|
||||
else
|
||||
continue
|
||||
if(!possible_mobs)
|
||||
to_chat(src, "<span class='warning'>There are no valid targets inside of you.</span>")
|
||||
to_chat(src, span_warning("There are no valid targets inside of you."))
|
||||
return
|
||||
var/input = tgui_input_list(src, "Select a mob to dominate:", "Dominate Prey", possible_mobs)
|
||||
if(!input)
|
||||
return
|
||||
var/mob/living/M = input
|
||||
if(!M.allow_mind_transfer) //check if the dominated mob pref is enabled
|
||||
to_chat(src, "<span class='warning'>[M] is unable to be dominated.</span>")
|
||||
to_chat(src, span_warning("[M] is unable to be dominated."))
|
||||
return
|
||||
if(tgui_alert(src, "You selected [M] to attempt to dominate. Are you sure?", "Dominate Prey",list("No","Yes")) != "Yes")
|
||||
return
|
||||
log_admin("[key_name_admin(src)] offered to use dominate prey on [M] ([M.ckey]).")
|
||||
to_chat(src, "<span class='warning'>Attempting to dominate and gather \the [M]'s mind...</span>")
|
||||
to_chat(src, span_warning("Attempting to dominate and gather \the [M]'s mind..."))
|
||||
if(tgui_alert(M, "\The [src] has elected collect your mind into their own. Is this something you will allow to happen?", "Allow Dominate Prey",list("No","Yes")) != "Yes")
|
||||
to_chat(src, "<span class='warning'>\The [M] has declined your Dominate Prey attempt.</span>")
|
||||
to_chat(src, span_warning("\The [M] has declined your Dominate Prey attempt."))
|
||||
return
|
||||
if(tgui_alert(M, "Are you sure? You can only undo this while your body is inside of [src]. (You can resist, or use the resist verb in the abilities tab)", "Allow Dominate Prey",list("No","Yes")) != "Yes")
|
||||
to_chat(src, "<span class='warning'>\The [M] has declined your Dominate Prey attempt.</span>")
|
||||
to_chat(src, span_warning("\The [M] has declined your Dominate Prey attempt."))
|
||||
return
|
||||
to_chat(M, "<span class='warning'>You can feel the will of another pulling you away from your body...</span>")
|
||||
to_chat(src, "<span class='warning'>You can feel the will of your prey diminishing as you gather them!</span>")
|
||||
to_chat(M, span_warning("You can feel the will of another pulling you away from your body..."))
|
||||
to_chat(src, span_warning("You can feel the will of your prey diminishing as you gather them!"))
|
||||
|
||||
if(!do_after(src, 10 SECONDS, exclusive = TRUE))
|
||||
to_chat(M, "<span class='notice'>The alien presence fades, and you are left along in your body...</span>")
|
||||
to_chat(src, "<span class='notice'>Your attempt to gather [M]'s mind has been interrupted.</span>")
|
||||
to_chat(M, span_notice("The alien presence fades, and you are left along in your body..."))
|
||||
to_chat(src, span_notice("Your attempt to gather [M]'s mind has been interrupted."))
|
||||
return
|
||||
if(!isbelly(M.loc))
|
||||
to_chat(M, "<span class='notice'>The alien presence fades, and you are left along in your body...</span>")
|
||||
to_chat(src, "<span class='notice'>Your attempt to gather [M]'s mind has been interrupted.</span>")
|
||||
to_chat(M, span_notice("The alien presence fades, and you are left along in your body..."))
|
||||
to_chat(src, span_notice("Your attempt to gather [M]'s mind has been interrupted."))
|
||||
return
|
||||
|
||||
var/mob/living/dominated_brain/db = new /mob/living/dominated_brain(src, src, M.name, M)
|
||||
@@ -374,8 +374,8 @@
|
||||
|
||||
db.ckey = db.prey_ckey
|
||||
log_admin("[db] ([db.ckey]) has agreed to [src]'s dominate prey attempt, and so no longer occupies their original body.")
|
||||
to_chat(src, "<span class='notice'>You feel your mind expanded as [M] is incorporated into you.</span>")
|
||||
to_chat(M, "<span class='warning'>Your mind is gathered into \the [src], becoming part of them...</span>")
|
||||
to_chat(src, span_notice("You feel your mind expanded as [M] is incorporated into you."))
|
||||
to_chat(M, span_warning("Your mind is gathered into \the [src], becoming part of them..."))
|
||||
|
||||
/mob/living/dominated_brain/proc/cease_this_foolishness()
|
||||
set category = "Abilities"
|
||||
@@ -383,25 +383,25 @@
|
||||
set desc = "If your body is inside of your predator still, attempts to re-insert yourself into it."
|
||||
|
||||
if(prey_body && prey_body.loc.loc == pred_body)
|
||||
to_chat(src, "<span class='notice'>You exert your will and attempt to return to yout body!!!</span>")
|
||||
to_chat(pred_body, "<span class='warning'>\The [src] resists your hold and attempts to return to their body!</span>")
|
||||
to_chat(src, span_notice("You exert your will and attempt to return to yout body!!!"))
|
||||
to_chat(pred_body, span_warning("\The [src] resists your hold and attempts to return to their body!"))
|
||||
if(do_after(src, 10 SECONDS, exclusive = TRUE))
|
||||
if(prey_body && prey_body.loc.loc == pred_body)
|
||||
|
||||
prey_body.ckey = prey_ckey
|
||||
pred_body.absorb_langs()
|
||||
to_chat(src, "<span class='warning'>Your connection to [pred_body] fades, and you awaken back in your own body!</span>")
|
||||
to_chat(pred_body, "<span class='warning'>You feel as though a piece of yourself is missing, as \the [src] returns to their body.</span>")
|
||||
to_chat(src, span_warning("Your connection to [pred_body] fades, and you awaken back in your own body!"))
|
||||
to_chat(pred_body, span_warning("You feel as though a piece of yourself is missing, as \the [src] returns to their body."))
|
||||
log_admin("[src] ([src.ckey]) has returned to their body, [prey_body].")
|
||||
qdel(src)
|
||||
else
|
||||
to_chat(src, "<span class='warning'>Your attempt to regain your body has been interrupted...</span>")
|
||||
to_chat(src, span_warning("Your attempt to regain your body has been interrupted..."))
|
||||
else
|
||||
to_chat(src, "<span class='warning'>Your attempt to regain your body has been interrupted...</span>")
|
||||
to_chat(src, span_warning("Your attempt to regain your body has been interrupted..."))
|
||||
else if(prey_body)
|
||||
to_chat(src, "<span class='warning'>You can sense your body... but it is not contained within [pred_body]... You cannot return to it at this time.</span>")
|
||||
to_chat(src, span_warning("You can sense your body... but it is not contained within [pred_body]... You cannot return to it at this time."))
|
||||
else
|
||||
to_chat(src, "<span class='warning'>Your body seems to no longer exist, so, you cannot return to it.</span>")
|
||||
to_chat(src, span_warning("Your body seems to no longer exist, so, you cannot return to it."))
|
||||
verbs -= /mob/living/dominated_brain/proc/cease_this_foolishness
|
||||
|
||||
/mob/living/proc/lend_prey_control()
|
||||
@@ -417,7 +417,7 @@
|
||||
else
|
||||
continue
|
||||
if(!possible_mobs)
|
||||
to_chat(src, "<span class='warning'>There are no valid targets inside of you.</span>")
|
||||
to_chat(src, span_warning("There are no valid targets inside of you."))
|
||||
return
|
||||
var/input = tgui_input_list(src, "Select a mob to give control:", "Give Prey Control", possible_mobs)
|
||||
if(!input)
|
||||
@@ -426,39 +426,39 @@
|
||||
var/mob/living/pred = src
|
||||
|
||||
if(prey.stat == DEAD)
|
||||
to_chat(pred, "<span class='warning'>You cannot do that to this prey.</span>")
|
||||
to_chat(pred, span_warning("You cannot do that to this prey."))
|
||||
return
|
||||
|
||||
if(!prey.ckey)
|
||||
to_chat(pred, "<span class='notice'>\The [prey] cannot take control.</span>")
|
||||
to_chat(pred, span_notice("\The [prey] cannot take control."))
|
||||
return
|
||||
if(isrobot(pred) && jobban_isbanned(prey, JOB_CYBORG))
|
||||
to_chat(pred, "<span class='warning'>Forces beyond your comprehension prevent you from giving [prey] control.</span>")
|
||||
to_chat(pred, span_warning("Forces beyond your comprehension prevent you from giving [prey] control."))
|
||||
return
|
||||
if(prey.prey_controlled)
|
||||
to_chat(pred, "<span class='warning'>\The [prey] is already under someone's control and cannot be given control of your body.</span>")
|
||||
to_chat(pred, span_warning("\The [prey] is already under someone's control and cannot be given control of your body."))
|
||||
return
|
||||
if(pred.prey_controlled)
|
||||
to_chat(pred, "<span class='warning'>You are already controlling someone's body.</span>")
|
||||
to_chat(pred, span_warning("You are already controlling someone's body."))
|
||||
return
|
||||
if(tgui_alert(pred, "You are attempting to give [prey] control over you, are you sure? Ensure that their preferences align with this kind of play.", "Give Prey Control",list("No","Yes")) != "Yes")
|
||||
return
|
||||
to_chat(pred, "<span class='notice'>You attempt to give your control over to \the [prey]...</span>")
|
||||
to_chat(pred, span_notice("You attempt to give your control over to \the [prey]..."))
|
||||
log_admin("[key_name_admin(pred)] attempted to give control to [prey].")
|
||||
if(tgui_alert(prey, "\The [pred] has elected to attempt to give you control of them. Is this something you will allow to happen?", "Allow Prey Domination",list("No","Yes")) != "Yes")
|
||||
to_chat(pred, "<span class='warning'>\The [prey] declined your request for control.</span>")
|
||||
to_chat(pred, span_warning("\The [prey] declined your request for control."))
|
||||
return
|
||||
if(tgui_alert(prey, "Are you sure? If you should decide to revoke this, you will have the ability to do so in your 'Abilities' tab.", "Allow Prey Domination",list("No","Yes")) != "Yes")
|
||||
return
|
||||
to_chat(pred, "<span class='warning'>You diminish your will, reducing it and allowing will of your prey to take over...</span>")
|
||||
to_chat(prey, "<span class='warning'>You can feel the will of your host diminishing as you are given control over them!</span>")
|
||||
to_chat(pred, span_warning("You diminish your will, reducing it and allowing will of your prey to take over..."))
|
||||
to_chat(prey, span_warning("You can feel the will of your host diminishing as you are given control over them!"))
|
||||
if(!do_after(pred, 10 SECONDS, exclusive = TRUE))
|
||||
to_chat(pred, "<span class='notice'>Your attempt to share control has been interrupted...</span>")
|
||||
to_chat(prey, "<span class='notice'>The dominant sensation fades away...</span>")
|
||||
to_chat(pred, span_notice("Your attempt to share control has been interrupted..."))
|
||||
to_chat(prey, span_notice("The dominant sensation fades away..."))
|
||||
return
|
||||
|
||||
to_chat(prey, "<span class='danger'>You plunge your conciousness into \the [pred], assuming control over their very body, leaving your own behind within \the [pred]'s [loc].</span>")
|
||||
to_chat(pred, "<span class='danger'>You feel your body move on its own, as you move to the background, and an alien consciousness displaces yours.</span>")
|
||||
to_chat(prey, span_danger("You plunge your conciousness into \the [pred], assuming control over their very body, leaving your own behind within \the [pred]'s [loc]."))
|
||||
to_chat(pred, span_danger("You feel your body move on its own, as you move to the background, and an alien consciousness displaces yours."))
|
||||
var/mob/living/dominated_brain/pred_brain
|
||||
var/delete_source = FALSE
|
||||
if(istype(prey, /mob/living/dominated_brain))
|
||||
|
||||
@@ -108,10 +108,10 @@
|
||||
if(!has_AI())//No autobarf on player control.
|
||||
return
|
||||
if(istype(O, /obj/item/reagent_containers/food/snacks/donut) && istype(src, /mob/living/simple_mob/vore/greatwolf/black))
|
||||
to_chat(user,"<span class='notice'>The huge wolf begrudgingly accepts your offer in exchange for it's catch.</span>")
|
||||
to_chat(user,span_notice("The huge wolf begrudgingly accepts your offer in exchange for it's catch."))
|
||||
release_vore_contents()
|
||||
else if(prob(2)) //Small chance to get prey out from white doggos
|
||||
to_chat(user,"<span class='notice'>The huge wolf accepts your offer for their catch.</span>")
|
||||
to_chat(user,span_notice("The huge wolf accepts your offer for their catch."))
|
||||
release_vore_contents()
|
||||
return
|
||||
. = ..()
|
||||
|
||||
@@ -104,7 +104,7 @@
|
||||
if(istype(O, /obj/item/reagent_containers/food))
|
||||
if(health <= 0)
|
||||
return
|
||||
user.visible_message("<span class='notice'>\The [src] happily gulps down \the [O] right out of \the [user]'s hand, it seems pretty content now.</span>","<span class='notice'>\The [src] happily gulps down \the [O] right out of your hand, it seems pretty content now.</span>")
|
||||
user.visible_message(span_notice("\The [src] happily gulps down \the [O] right out of \the [user]'s hand, it seems pretty content now."),span_notice("\The [src] happily gulps down \the [O] right out of your hand, it seems pretty content now."))
|
||||
user.drop_from_inventory(O)
|
||||
qdel(O)
|
||||
well_fed = world.time
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
/mob/living/simple_mob/clowns/big/c_shift/proc/phase_shift()
|
||||
var/turf/T = get_turf(src)
|
||||
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
|
||||
|
||||
forceMove(T)
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
cutoff_number = 1
|
||||
|
||||
/obj/structure/ghost_pod/manual/clegg/trigger()
|
||||
..("<span class='warning'>\The [usr] places their hand on the egg!</span>", "is attempting to make a mistake!")
|
||||
..(span_warning("\The [usr] places their hand on the egg!"), "is attempting to make a mistake!")
|
||||
|
||||
/obj/structure/ghost_pod/manual/clegg/create_occupant(var/mob/M)
|
||||
lightning_strike(get_turf(src), cosmetic = TRUE)
|
||||
@@ -23,8 +23,8 @@
|
||||
var/mob/living/simple_mob/R = new chosen_clown(get_turf(src))
|
||||
if(M.mind)
|
||||
M.mind.transfer_to(R)
|
||||
to_chat(M, "<span class='notice'>You are a <b>Clown!</b>! HONK!</span>")
|
||||
to_chat(M, span_notice("You are a <b>Clown!</b>! HONK!"))
|
||||
R.ckey = M.ckey
|
||||
visible_message("<span class='warning'>With a bright flash of light, \the [src] disappears, and in its place you see a... Clown?</span>")
|
||||
visible_message(span_warning("With a bright flash of light, \the [src] disappears, and in its place you see a... Clown?"))
|
||||
log_and_message_admins("successfully touched \a [src] and summoned a mistake!")
|
||||
..()
|
||||
|
||||
@@ -80,7 +80,7 @@
|
||||
if(morphed)
|
||||
. = form.examine(user)
|
||||
if(get_dist(user, src) <= 3 && !resting)
|
||||
. += "<span class='warning'>[form] doesn't look quite right...</span>"
|
||||
. += span_warning("[form] doesn't look quite right...")
|
||||
else
|
||||
. = ..()
|
||||
|
||||
@@ -93,22 +93,22 @@
|
||||
if(istype(A) && allowed(A))
|
||||
assume(A)
|
||||
else
|
||||
to_chat(src, "<span class='warning'>Your chameleon skin is still repairing itself!</span>")
|
||||
to_chat(src, span_warning("Your chameleon skin is still repairing itself!"))
|
||||
else
|
||||
..()
|
||||
|
||||
/mob/living/simple_mob/vore/morph/proc/assume(atom/movable/target)
|
||||
var/mob/living/carbon/human/humantarget = target
|
||||
if(istype(humantarget) && !humantarget.allow_mimicry)
|
||||
to_chat(src, "<span class='warning'>[target] cannot be impersonated!</span>")
|
||||
to_chat(src, span_warning("[target] cannot be impersonated!"))
|
||||
return
|
||||
if(morphed)
|
||||
to_chat(src, "<span class='warning'>You must restore to your original form first!</span>")
|
||||
to_chat(src, span_warning("You must restore to your original form first!"))
|
||||
return
|
||||
morphed = TRUE
|
||||
form = target
|
||||
|
||||
visible_message("<span class='warning'>[src] suddenly twists and changes shape, becoming a copy of [target]!</span>")
|
||||
visible_message(span_warning("[src] suddenly twists and changes shape, becoming a copy of [target]!"))
|
||||
color = null
|
||||
name = target.name
|
||||
desc = target.desc
|
||||
@@ -144,12 +144,12 @@
|
||||
|
||||
/mob/living/simple_mob/vore/morph/proc/restore(var/silent = FALSE)
|
||||
if(!morphed)
|
||||
to_chat(src, "<span class='warning'>You're already in your normal form!</span>")
|
||||
to_chat(src, span_warning("You're already in your normal form!"))
|
||||
return
|
||||
morphed = FALSE
|
||||
|
||||
if(!silent)
|
||||
visible_message("<span class='warning'>[src] suddenly collapses in on itself, dissolving into a pile of flesh!</span>")
|
||||
visible_message(span_warning("[src] suddenly collapses in on itself, dissolving into a pile of flesh!"))
|
||||
|
||||
form = null
|
||||
name = initial(name)
|
||||
@@ -189,7 +189,7 @@
|
||||
|
||||
/mob/living/simple_mob/vore/morph/death(gibbed)
|
||||
if(morphed)
|
||||
visible_message("<span class='warning'>[src] twists and dissolves into a pile of flesh!</span>")
|
||||
visible_message(span_warning("[src] twists and dissolves into a pile of flesh!"))
|
||||
restore(TRUE)
|
||||
..()
|
||||
|
||||
@@ -209,10 +209,10 @@
|
||||
//Stolen from protean blobs, ambush noms from resting! Doesn't hide you any better, but makes noms sneakier.
|
||||
if(resting)
|
||||
plane = ABOVE_OBJ_PLANE
|
||||
to_chat(src,"<span class='notice'>Your form settles in, appearing more 'normal'... laying in wait.</span>")
|
||||
to_chat(src,span_notice("Your form settles in, appearing more 'normal'... laying in wait."))
|
||||
else
|
||||
plane = MOB_PLANE
|
||||
to_chat(src,"<span class='notice'>Your form quivers back to life, allowing you to move again!</span>")
|
||||
to_chat(src,span_notice("Your form quivers back to life, allowing you to move again!"))
|
||||
if(can_be_drop_pred) //Toggleable in vore panel
|
||||
var/list/potentials = living_mobs(0)
|
||||
if(potentials.len)
|
||||
@@ -221,7 +221,7 @@
|
||||
if(target.buckled)
|
||||
target.buckled.unbuckle_mob(target, force = TRUE)
|
||||
target.forceMove(vore_selected)
|
||||
to_chat(target,"<span class='vwarning'>\The [src] quickly engulfs you, [vore_selected.vore_verb]ing you into their [vore_selected.name]!</span>")
|
||||
to_chat(target,span_vwarning("\The [src] quickly engulfs you, [vore_selected.vore_verb]ing you into their [vore_selected.name]!"))
|
||||
else
|
||||
..()
|
||||
|
||||
@@ -260,7 +260,7 @@
|
||||
set category = "Abilities"
|
||||
set desc = "Take command of your prey's body."
|
||||
if(morphed)
|
||||
to_chat(src, "<span class='warning'>You must restore to your original form first!</span>")
|
||||
to_chat(src, span_warning("You must restore to your original form first!"))
|
||||
return
|
||||
var/list/possible_mobs = list()
|
||||
for(var/obj/belly/B in src.vore_organs)
|
||||
@@ -273,7 +273,7 @@
|
||||
if(!L)
|
||||
return
|
||||
if(!L.allow_mimicry)
|
||||
to_chat(src, "<span class='warning'>\The [L] cannot be impersonated!</span>")
|
||||
to_chat(src, span_warning("\The [L] cannot be impersonated!"))
|
||||
return
|
||||
if(tgui_alert(src, "You selected [L] to attempt to take over. Are you sure?", "Take Over Prey",list("No","Yes")) == "Yes")
|
||||
log_admin("[key_name_admin(src)] offered [L] to swap bodies as a morph.")
|
||||
@@ -298,9 +298,9 @@
|
||||
log_and_message_admins("[key_name_admin(src)] has swapped bodies with [key_name_admin(L)] as a morph at [get_area(src)] - [COORD(src)].")
|
||||
new /mob/living/simple_mob/vore/morph/dominated_prey(L.vore_selected, L.ckey, src, L)
|
||||
else
|
||||
to_chat(src, "<span class='warning'>\The [L] declined your request for control.</span>")
|
||||
to_chat(src, span_warning("\The [L] declined your request for control."))
|
||||
else
|
||||
to_chat(src, "<span class='warning'>\The [L] declined your request for control.</span>")
|
||||
to_chat(src, span_warning("\The [L] declined your request for control."))
|
||||
|
||||
/mob/living/simple_mob/vore/morph/dominated_prey
|
||||
name = "subservient node"
|
||||
@@ -326,7 +326,7 @@
|
||||
prey_body.ckey = parent_morph.original_ckey
|
||||
parent_morph.forceMove(src)
|
||||
name = "[prey_body.name]"
|
||||
to_chat(prey_body, "<span class='notice'>You have completely assumed the form of [prey_body]. Your form is now unable to change anymore until you restore control back to them. You can do this by 'ejecting' them from your [prey_body.vore_selected]. This will not actually release them from your body in this state, but instead return control to them, and restore you to your original form.</span>")
|
||||
to_chat(prey_body, span_notice("You have completely assumed the form of [prey_body]. Your form is now unable to change anymore until you restore control back to them. You can do this by 'ejecting' them from your [prey_body.vore_selected]. This will not actually release them from your body in this state, but instead return control to them, and restore you to your original form."))
|
||||
else
|
||||
qdel(src)
|
||||
|
||||
|
||||
@@ -130,7 +130,7 @@
|
||||
inject_poison(L, target_zone)
|
||||
|
||||
/mob/living/simple_mob/vore/oregrub/death()
|
||||
visible_message("<span class='warning'>\The [src] shudders and collapses, expelling the ores it had devoured!</span>")
|
||||
visible_message(span_warning("\The [src] shudders and collapses, expelling the ores it had devoured!"))
|
||||
var/i = rand(min_ore,max_ore)
|
||||
while(i>1)
|
||||
var/ore = pick(/obj/item/ore/glass,/obj/item/ore/coal,/obj/item/ore/iron,/obj/item/ore/lead,/obj/item/ore/marble,/obj/item/ore/phoron,/obj/item/ore/silver,/obj/item/ore/gold)
|
||||
@@ -158,7 +158,7 @@
|
||||
// Does actual poison injection, after all checks passed.
|
||||
/mob/living/simple_mob/vore/oregrub/proc/inject_poison(mob/living/L, target_zone)
|
||||
if(prob(poison_chance))
|
||||
to_chat(L, "<span class='warning'>You feel fire running through your veins!</span>")
|
||||
to_chat(L, span_warning("You feel fire running through your veins!"))
|
||||
L.reagents.add_reagent(poison_type, poison_per_bite)
|
||||
|
||||
//I'm no good at writing this stuff, so I've just left it as placeholders and disabled the chances of them eating you.
|
||||
|
||||
@@ -241,10 +241,10 @@
|
||||
if(!has_AI())//No autobarf on player control.
|
||||
return
|
||||
if(istype(O, /obj/item/reagent_containers/food/snacks/donut) && istype(src, /mob/living/simple_mob/vore/otie/security))
|
||||
to_chat(user,"<span class='notice'>The guard pup accepts your offer for their catch.</span>")
|
||||
to_chat(user,span_notice("The guard pup accepts your offer for their catch."))
|
||||
release_vore_contents()
|
||||
else if(prob(2)) //Small chance to get prey out from non-sec oties.
|
||||
to_chat(user,"<span class='notice'>The pup accepts your offer for their catch.</span>")
|
||||
to_chat(user,span_notice("The pup accepts your offer for their catch."))
|
||||
release_vore_contents()
|
||||
return
|
||||
. = ..()
|
||||
@@ -276,7 +276,7 @@
|
||||
switch(M.a_intent)
|
||||
if(I_HELP)
|
||||
if(health > 0)
|
||||
M.visible_message("<span class='notice'>[M] [response_help] \the [src].</span>")
|
||||
M.visible_message(span_notice("[M] [response_help] \the [src]."))
|
||||
if(has_AI())
|
||||
var/datum/ai_holder/AI = ai_holder
|
||||
AI.set_stance(STANCE_IDLE)
|
||||
|
||||
@@ -95,7 +95,7 @@
|
||||
return ..()
|
||||
if(resting)
|
||||
playsound(src, 'sound/weapons/thudswoosh.ogg', 50, 1, -1)
|
||||
user.visible_message("<span class='notice'>\The [user] shakes \the [src] awake.</span>","<span class='notice'>You shake \the [src] awake!</span>")
|
||||
user.visible_message(span_notice("\The [user] shakes \the [src] awake."),span_notice("You shake \the [src] awake!"))
|
||||
lay_down()
|
||||
return
|
||||
else
|
||||
@@ -162,7 +162,7 @@
|
||||
|
||||
/mob/living/simple_mob/vore/pakkun/attackby(var/obj/item/O, var/mob/user) //if they're newspapered, they'll spit out any junk they've eaten for whatever reason
|
||||
if(istype(O, /obj/item/newspaper) && !ckey && isturf(user.loc))
|
||||
user.visible_message("<span class='info'>[user] swats [src] with [O]!</span>")
|
||||
user.visible_message(span_info("[user] swats [src] with [O]!"))
|
||||
release_vore_contents()
|
||||
for(var/mob/living/L in living_mobs(0))
|
||||
if(!(LAZYFIND(prey_excludes, L)))
|
||||
@@ -261,7 +261,7 @@
|
||||
|
||||
/mob/living/simple_mob/vore/pakkun/snapdragon/snappy/attack_hand(mob/living/carbon/human/M as mob)
|
||||
if(M.a_intent == I_HELP && !(M in petters))
|
||||
to_chat(M, "<span class='notice'>\The [src] gets a mischievous glint in her eye!!</span>")
|
||||
to_chat(M, span_notice("\The [src] gets a mischievous glint in her eye!!"))
|
||||
petters += M //YOU HAVE OFFERED YOURSELF TO THE LIZARD
|
||||
return ..()
|
||||
|
||||
|
||||
@@ -164,7 +164,7 @@
|
||||
|
||||
/mob/living/simple_mob/vore/pitcher/proc/tongue(atom/A)
|
||||
var/obj/item/projectile/P = new /obj/item/projectile/beam/appendage(get_turf(src))
|
||||
src.visible_message("<span class='danger'>\The [src] launches a green appendage at \the [A]!</span>")
|
||||
src.visible_message(span_danger("\The [src] launches a green appendage at \the [A]!"))
|
||||
playsound(src, "sound/effects/slime_squish.ogg", 50, 1)
|
||||
P.launch_projectile(A, BP_TORSO, src)*/
|
||||
|
||||
|
||||
@@ -189,7 +189,7 @@
|
||||
|
||||
/mob/living/simple_mob/vore/scel/proc/tongue(atom/A)
|
||||
var/obj/item/projectile/P = new /obj/item/projectile/beam/appendage(get_turf(src))
|
||||
src.visible_message("<span class='danger'>\The [src] launches a black appendage at \the [A]!</span>")
|
||||
src.visible_message(span_danger("\The [src] launches a black appendage at \the [A]!"))
|
||||
playsound(src, "sound/effects/slime_squish.ogg", 50, 1)
|
||||
P.launch_projectile(A, BP_TORSO, src)
|
||||
|
||||
|
||||
@@ -38,22 +38,22 @@
|
||||
var/opts = clickprops["shift"]
|
||||
|
||||
if(opts)
|
||||
to_chat(my_kin,"<span class='notice'><b>[name]</b> (Cost: [cost]%) - [desc]</span>")
|
||||
to_chat(my_kin,span_notice("<b>[name]</b> (Cost: [cost]%) - [desc]"))
|
||||
else
|
||||
do_ability(my_kin)
|
||||
|
||||
/obj/effect/shadekin_ability/proc/do_ability()
|
||||
if(my_kin.stat)
|
||||
to_chat(my_kin,"<span class='warning'>Can't use that ability in your state!</span>")
|
||||
to_chat(my_kin,span_warning("Can't use that ability in your state!"))
|
||||
return FALSE
|
||||
if(shift_mode == NOT_WHILE_SHIFTED && (my_kin.ability_flags & AB_PHASE_SHIFTED))
|
||||
to_chat(my_kin,"<span class='warning'>Can't use that ability while phase shifted!</span>")
|
||||
to_chat(my_kin,span_warning("Can't use that ability while phase shifted!"))
|
||||
return FALSE
|
||||
else if(shift_mode == ONLY_WHILE_SHIFTED && !(my_kin.ability_flags & AB_PHASE_SHIFTED))
|
||||
to_chat(my_kin,"<span class='warning'>Can only use that ability while phase shifted!</span>")
|
||||
to_chat(my_kin,span_warning("Can only use that ability while phase shifted!"))
|
||||
return FALSE
|
||||
else if(my_kin.energy < cost)
|
||||
to_chat(my_kin,"<span class='warning'>Not enough energy for that ability!</span>")
|
||||
to_chat(my_kin,span_warning("Not enough energy for that ability!"))
|
||||
return FALSE
|
||||
|
||||
my_kin.energy -= cost
|
||||
@@ -97,8 +97,8 @@
|
||||
desc = "You feel serene and well rested."
|
||||
mob_overlay_state = "green_sparkles"
|
||||
|
||||
on_created_text = "<span class='notice'>Sparkles begin to appear around you, and all your ills seem to fade away.</span>"
|
||||
on_expired_text = "<span class='notice'>The sparkles have faded, although you feel much healthier than before.</span>"
|
||||
on_created_text = span_notice("Sparkles begin to appear around you, and all your ills seem to fade away.")
|
||||
on_expired_text = span_notice("The sparkles have faded, although you feel much healthier than before.")
|
||||
stacks = MODIFIER_STACK_EXTEND
|
||||
|
||||
/datum/modifier/shadekin/heal_boop/tick()
|
||||
@@ -129,8 +129,8 @@
|
||||
desc = "Darkness envelops you."
|
||||
mob_overlay_state = ""
|
||||
|
||||
on_created_text = "<span class='notice'>You drag part of The Dark into realspace, enveloping yourself.</span>"
|
||||
on_expired_text = "<span class='warning'>You lose your grasp on The Dark and realspace reasserts itself.</span>"
|
||||
on_created_text = span_notice("You drag part of The Dark into realspace, enveloping yourself.")
|
||||
on_expired_text = span_warning("You lose your grasp on The Dark and realspace reasserts itself.")
|
||||
stacks = MODIFIER_STACK_EXTEND
|
||||
var/mob/living/simple_mob/shadekin/my_kin
|
||||
|
||||
@@ -165,4 +165,4 @@
|
||||
/obj/effect/shadekin_ability/energy_feast/do_ability()
|
||||
if(!..())
|
||||
return
|
||||
*/
|
||||
*/
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
/mob/living/simple_mob/shadekin/proc/phase_shift()
|
||||
var/turf/T = get_turf(src)
|
||||
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
|
||||
|
||||
forceMove(T)
|
||||
@@ -45,7 +45,7 @@
|
||||
var/mob/living/target = pick(potentials)
|
||||
if(istype(target) && target.devourable && target.can_be_drop_prey && vore_selected)
|
||||
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(target,span_vwarning("\The [src] phases in around you, [vore_selected.vore_verb]ing you into their [vore_selected.name]!"))
|
||||
|
||||
// Do this after the potential vore, so we get the belly
|
||||
update_icon()
|
||||
@@ -120,7 +120,7 @@
|
||||
for(var/mob/living/L in viewed)
|
||||
targets += L
|
||||
if(!targets.len)
|
||||
to_chat(src,"<span class='warning'>Nobody nearby to mend!</span>")
|
||||
to_chat(src,span_warning("Nobody nearby to mend!"))
|
||||
return FALSE
|
||||
|
||||
var/mob/living/target = tgui_input_list(src,"Pick someone to mend:","Mend Other", targets)
|
||||
@@ -128,6 +128,6 @@
|
||||
return FALSE
|
||||
|
||||
target.add_modifier(/datum/modifier/shadekin/heal_boop,1 MINUTE)
|
||||
visible_message("<span class='notice'>\The [src] gently places a hand on \the [target]...</span>")
|
||||
visible_message(span_notice("\The [src] gently places a hand on \the [target]..."))
|
||||
face_atom(target)
|
||||
return TRUE
|
||||
|
||||
@@ -381,7 +381,7 @@
|
||||
if((get_dist(src,henlo_human) <= 1))
|
||||
dir = moving_to
|
||||
if(prob(speak_chance))
|
||||
visible_message("<span class='notice'>\The [src] [pick(friendly)] \the [henlo_human].</span>")
|
||||
visible_message(span_notice("\The [src] [pick(friendly)] \the [henlo_human]."))
|
||||
shy_approach = FALSE //ACCLIMATED
|
||||
lifes_since_move = 0
|
||||
return //No need to move
|
||||
|
||||
@@ -93,7 +93,7 @@
|
||||
if(!harvestable_wool)
|
||||
return ..()
|
||||
if(do_after(user, 3 SECONDS, exclusive = TASK_USER_EXCLUSIVE, target = src))
|
||||
user.visible_message("<span class='notice'>\The [user] shears \the [src] with \the [O].</span>","<span class='notice'>You shear \the [src] with \the [O].</span>")
|
||||
user.visible_message(span_notice("\The [user] shears \the [src] with \the [O]."),span_notice("You shear \the [src] with \the [O]."))
|
||||
var/obj/item/stack/material/fur/wool/W = new(get_turf(user))
|
||||
harvestable_wool = FALSE
|
||||
update_icon()
|
||||
|
||||
@@ -279,25 +279,25 @@
|
||||
/mob/living/simple_mob/vore/woof/hostile/aweful/death()
|
||||
. = ..()
|
||||
if(killswitch)
|
||||
visible_message("<span class='notice'>\The [src] evaporates into nothing...</span>")
|
||||
visible_message(span_notice("\The [src] evaporates into nothing..."))
|
||||
qdel(src)
|
||||
return
|
||||
var/thismany = rand(0,3)
|
||||
var/list/possiblewoofs = list(/mob/living/simple_mob/vore/woof/hostile/aweful/melee, /mob/living/simple_mob/vore/woof/hostile/aweful/ranged)
|
||||
if(thismany == 0)
|
||||
visible_message("<span class='notice'>\The [src] evaporates into nothing...</span>")
|
||||
visible_message(span_notice("\The [src] evaporates into nothing..."))
|
||||
if(thismany >= 1)
|
||||
var/thiswoof = pick(possiblewoofs)
|
||||
new thiswoof(loc, src)
|
||||
visible_message("<span class='warning'>Another [src] appears!</span>")
|
||||
visible_message(span_warning("Another [src] appears!"))
|
||||
if(thismany >= 2)
|
||||
var/thiswoof = pick(possiblewoofs)
|
||||
new thiswoof(loc, src)
|
||||
visible_message("<span class='warning'>Another [src] appears!</span>")
|
||||
visible_message(span_warning("Another [src] appears!"))
|
||||
if(thismany >= 3)
|
||||
var/thiswoof = pick(possiblewoofs)
|
||||
new thiswoof(loc, src)
|
||||
visible_message("<span class='warning'>Another [src] appears!</span>")
|
||||
visible_message(span_warning("Another [src] appears!"))
|
||||
qdel(src)
|
||||
|
||||
/mob/living/simple_mob/vore/woof/hostile/aweful/melee
|
||||
|
||||
@@ -112,7 +112,7 @@ List of things solar grubs should be able to do:
|
||||
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
|
||||
s.set_up(5, 1, L)
|
||||
s.start()
|
||||
visible_message("<span class='danger'>The grub releases a powerful shock!</span>")
|
||||
visible_message(span_danger("The grub releases a powerful shock!"))
|
||||
else
|
||||
if(L.reagents)
|
||||
var/target_zone = pick(BP_TORSO,BP_TORSO,BP_TORSO,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_HEAD)
|
||||
@@ -122,7 +122,7 @@ List of things solar grubs should be able to do:
|
||||
// Does actual poison injection, after all checks passed.
|
||||
/mob/living/simple_mob/vore/solargrub/proc/inject_poison(mob/living/L, target_zone)
|
||||
if(prob(poison_chance))
|
||||
to_chat(L, "<span class='warning'>You feel a small shock rushing through your veins.</span>")
|
||||
to_chat(L, span_warning("You feel a small shock rushing through your veins."))
|
||||
L.reagents.add_reagent(poison_type, poison_per_bite)
|
||||
|
||||
/mob/living/simple_mob/vore/solargrub/death()
|
||||
|
||||
@@ -122,7 +122,7 @@ var/global/list/grub_machine_overlays = list()
|
||||
set_AI_busy(TRUE)
|
||||
forceMove(M)
|
||||
powermachine.draining = 2
|
||||
visible_message("<span class='warning'>\The [src] finds an opening and crawls inside \the [M].</span>")
|
||||
visible_message(span_warning("\The [src] finds an opening and crawls inside \the [M]."))
|
||||
if(!(M.type in grub_machine_overlays))
|
||||
generate_machine_effect(M)
|
||||
machine_effect = image(grub_machine_overlays[M.type], M) //Can't do this the reasonable way with an overlay,
|
||||
@@ -176,7 +176,7 @@ var/global/list/grub_machine_overlays = list()
|
||||
|
||||
/mob/living/simple_mob/animal/solargrub_larva/proc/expand_grub()
|
||||
eject_from_machine()
|
||||
visible_message("<span class='warning'>\The [src] suddenly balloons in size!</span>")
|
||||
visible_message(span_warning("\The [src] suddenly balloons in size!"))
|
||||
log_game("A larva has matured into a grub in area [src.loc.name] ([src.x],[src.y],[src.z]")
|
||||
var/mob/living/simple_mob/vore/solargrub/adult = new(get_turf(src))
|
||||
adult.tracked = tracked
|
||||
@@ -297,6 +297,6 @@ var/global/list/grub_machine_overlays = list()
|
||||
var/mob/living/simple_mob/animal/solargrub_larva/grub = locate() in O
|
||||
if(grub)
|
||||
grub.eject_from_machine(O)
|
||||
to_chat(user, "<span class='warning'>You disturb a grub nesting in \the [O]!</span>")
|
||||
to_chat(user, span_warning("You disturb a grub nesting in \the [O]!"))
|
||||
return
|
||||
return ..()
|
||||
|
||||
@@ -54,7 +54,7 @@
|
||||
set desc = "Sets your mobs name. You only get to do this once."
|
||||
set category = "Abilities"
|
||||
if(limit_renames && nameset)
|
||||
to_chat(src, "<span class='userdanger'>You've already set your name. Ask an admin to toggle \"nameset\" to 0 if you really must.</span>")
|
||||
to_chat(src, span_userdanger("You've already set your name. Ask an admin to toggle \"nameset\" to 0 if you really must."))
|
||||
return
|
||||
var/newname
|
||||
newname = sanitizeSafe(tgui_input_text(src,"Set your name. You only get to do this once. Max 52 chars.", "Name set","", MAX_NAME_LEN), MAX_NAME_LEN)
|
||||
|
||||
@@ -165,7 +165,7 @@
|
||||
/* //VOREStation AI Temporary removal
|
||||
/mob/living/simple_mob/animal/passive/cat/PunchTarget()
|
||||
if(istype(target_mob,/mob/living/simple_mob/animal/passive/mouse))
|
||||
visible_message("<span class='warning'>\The [src] pounces on \the [target_mob]!]</span>")
|
||||
visible_message(span_warning("\The [src] pounces on \the [target_mob]!]"))
|
||||
target_mob.Stun(5)
|
||||
return EatTarget()
|
||||
else ..()
|
||||
|
||||
Reference in New Issue
Block a user