mirror of
https://github.com/SPLURT-Station/S.P.L.U.R.T-Station-13.git
synced 2026-08-29 23:57:10 +01:00
Replace all modular HTML spans with defines spans
In total: - Adds span defines for `reallybig hypnophrase`, `big warning`, `header` - Fixes a missing apostrophe for hypno stare - Makes a special exception for cuddling.dm, which uses an irregular span - Puts the spans file back
This commit is contained in:
@@ -54,7 +54,7 @@
|
||||
structure_data["cost"][blueprint] = 20
|
||||
|
||||
playsound(src, 'sound/effects/pop.ogg', 50, FALSE)
|
||||
to_chat(user, "<span class='notice'>You change [name]s blueprint to '[choice]'.</span>")
|
||||
to_chat(user, span_notice("You change [name]s blueprint to '[choice]'."))
|
||||
|
||||
// Also pretty much rcd_create but named differently. I'm shameless, fuck you.
|
||||
/obj/item/construction/tables/proc/create_table(atom/A, mob/user)
|
||||
@@ -91,5 +91,5 @@
|
||||
create_table(A, user)
|
||||
|
||||
/obj/item/construction/tables/suicide_act(mob/user)
|
||||
user.visible_message("<span class='suicide'>[user] sets the RTC to 'Glass Table' and points it down [user.p_their()] throat! It looks like [user.p_theyre()] trying to commit suicide.</span>")
|
||||
user.visible_message(span_suicide("[user] sets the RTC to 'Glass Table' and points it down [user.p_their()] throat! It looks like [user.p_theyre()] trying to commit suicide."))
|
||||
return (BRUTELOSS)
|
||||
|
||||
@@ -58,7 +58,7 @@
|
||||
|
||||
/obj/item/rtl/examine(mob/user)
|
||||
. = ..()
|
||||
. += "<span class='notice'>Alt-click to set what tile to lay.</span>"
|
||||
. += span_notice("Alt-click to set what tile to lay.")
|
||||
if(loaded)
|
||||
. += span_info("It contains [loaded.amount]/[max_amount] metal.")
|
||||
|
||||
|
||||
@@ -85,22 +85,22 @@
|
||||
if(ishuman(M))
|
||||
var/mob/living/carbon/human/H = M
|
||||
if(H.nail_style) //to stop stacking bugs
|
||||
to_chat(user, "<span class='warning'>Remove the old nail polish first!</span>")
|
||||
to_chat(user, span_warning("Remove the old nail polish first!"))
|
||||
|
||||
if(H == user)
|
||||
user.visible_message("<span class='notice'>[user] does [user.p_their()] nails with \the [src].</span>", \
|
||||
"<span class='notice'>You take a moment to apply \the [src]. Perfect!</span>")
|
||||
user.visible_message(span_notice("[user] does [user.p_their()] nails with \the [src]."), \
|
||||
span_notice("You take a moment to apply \the [src]. Perfect!"))
|
||||
H.nail_style = "nails"
|
||||
H.nail_color = paint
|
||||
H.update_body()
|
||||
else
|
||||
user.visible_message("<span class='warning'>[user] begins to do [H]'s nails with \the [src].</span>", \
|
||||
"<span class='notice'>You begin to apply \the [src] on [H]'s nails...</span>")
|
||||
user.visible_message(span_warning("[user] begins to do [H]'s nails with \the [src]."), \
|
||||
span_notice("You begin to apply \the [src] on [H]'s nails..."))
|
||||
if(do_after(user, 20, target = H))
|
||||
user.visible_message("[user] does [H]'s nails with \the [src].", \
|
||||
"<span class='notice'>You apply \the [src] on [H]'s nails.</span>")
|
||||
span_notice("You apply \the [src] on [H]'s nails."))
|
||||
H.nail_style = "nails"
|
||||
H.nail_color = paint
|
||||
H.update_body()
|
||||
else
|
||||
to_chat(user, "<span class='warning'>Where are the nail on that?</span>")
|
||||
to_chat(user, span_warning("Where are the nail on that?"))
|
||||
|
||||
@@ -65,8 +65,8 @@
|
||||
|
||||
|
||||
/obj/item/electropack/shockcollar/slave/Destroy()
|
||||
visible_message("<span class='notice'>The [src] detaches from [src.loc]'s neck.</span>", \
|
||||
"<span class='notice'>The [src] detaches from your neck.</span>")
|
||||
visible_message(span_notice("The [src] detaches from [src.loc]'s neck."), \
|
||||
span_notice("The [src] detaches from your neck."))
|
||||
playsound(get_turf(src.loc), 'sound/machines/terminal_eject_disc.ogg', 50, 1)
|
||||
|
||||
GLOB.tracked_slaves -= src
|
||||
|
||||
@@ -93,7 +93,7 @@
|
||||
|
||||
/obj/item/storage/box/aphrodisiac_pump/examine(mob/user)
|
||||
. = ..()
|
||||
. += "<span class='notice'>Click the implant case while with the implant inside to change the desired dosage amounts.</span>"
|
||||
. += span_notice("Click the implant case while with the implant inside to change the desired dosage amounts.")
|
||||
|
||||
/obj/item/storage/box/aphrodisiac_pump/ComponentInitialize()
|
||||
. = ..()
|
||||
|
||||
@@ -99,7 +99,7 @@
|
||||
var/implant_toggle_text_2 = (!ability_active ? "dis" : "") // Engage or Disengage
|
||||
|
||||
// Display a chat message
|
||||
action_owner.visible_message("<span class='notice'>The equipment worn on [action_owner]'s back-region flickers momentarily, before becoming [implant_toggle_text].</span>", "<span class='notice'>You [implant_toggle_text_2]engage the Storage Concealment Implant, causing your backpack to be [implant_toggle_text].</span>")
|
||||
action_owner.visible_message(span_notice("The equipment worn on [action_owner]'s back-region flickers momentarily, before becoming [implant_toggle_text]."), span_notice("You [implant_toggle_text_2]engage the Storage Concealment Implant, causing your backpack to be [implant_toggle_text]."))
|
||||
|
||||
/*
|
||||
* Implant items
|
||||
|
||||
@@ -28,9 +28,9 @@
|
||||
if(target.mind.has_antag_datum(/datum/antagonist/rev/head) || target.mind.unconvertable || target.mind.assigned_role == "Security Officer" || target.mind.assigned_role == "Detective" || target.mind.assigned_role == "Warden" || target.mind.assigned_role == "Head of Security" || HAS_TRAIT(target, TRAIT_MINDSHIELD))
|
||||
if(!silent)
|
||||
if(target.mind.assigned_role == "Security Officer" || target.mind.assigned_role == "Detective" || target.mind.assigned_role == "Warden" || target.mind.assigned_role == "Head of Security")
|
||||
target.visible_message("<span class='warning'>[target] seems to resist the implant! You can't enslave a member of security!</span>", "<span class='warning'>You feel something interfering with your mental conditioning, but you resist it!</span>")
|
||||
target.visible_message(span_warning("[target] seems to resist the implant! You can't enslave a member of security!"), span_warning("You feel something interfering with your mental conditioning, but you resist it!"))
|
||||
else
|
||||
target.visible_message("<span class='warning'>[target] seems to resist the implant!</span>", "<span class='warning'>You feel something interfering with your mental conditioning, but you resist it!</span>")
|
||||
target.visible_message(span_warning("[target] seems to resist the implant!"), span_warning("You feel something interfering with your mental conditioning, but you resist it!"))
|
||||
var/obj/item/implanter/I = loc
|
||||
removed(target, 1)
|
||||
qdel(src)
|
||||
@@ -47,9 +47,9 @@
|
||||
target.mind.remove_antag_datum(/datum/antagonist/gang)
|
||||
if(!silent)
|
||||
if(target.mind in SSticker.mode.cult)
|
||||
to_chat(target, "<span class='warning'>You feel something interfering with your mental conditioning, but you resist it!</span>")
|
||||
to_chat(target, span_warning("You feel something interfering with your mental conditioning, but you resist it!"))
|
||||
else
|
||||
to_chat(target, "<span class='notice'>You feel a sense of peace and security. You are now enslaved!</span>")
|
||||
to_chat(target, span_notice("You feel a sense of peace and security. You are now enslaved!"))
|
||||
var/slave_objective = "[((target.client?.prefs.cit_toggles & HYPNO)?"Security has enslaved you into being their pet! Obey their commands, but remember: a good pet is not violent.":"You've been neutralized by security! Follow their orders, but remember: neutralization also means nonviolence.")]"
|
||||
brainwash(target, slave_objective)
|
||||
target.sec_hud_set_implants()
|
||||
@@ -63,7 +63,7 @@
|
||||
target.mind.remove_antag_datum(/datum/antagonist/brainwashed)
|
||||
L.sec_hud_set_implants()
|
||||
if(target.stat != DEAD && !silent)
|
||||
to_chat(target, "<span class='boldnotice'>Your mind suddenly feels free from burden. You are no longer enslaved!</span>")
|
||||
to_chat(target, span_boldnotice("Your mind suddenly feels free from burden. You are no longer enslaved!"))
|
||||
return 1
|
||||
return 0
|
||||
|
||||
|
||||
@@ -7,11 +7,11 @@
|
||||
/obj/item/implant/slaver/activate()
|
||||
. = ..()
|
||||
|
||||
imp_in.visible_message("<span class='notice'>[imp_in] begins fiddling with a subtle bump on their arm.</span>", "<span class='notice'>You prepare to teleport.</span>")
|
||||
imp_in.visible_message(span_notice("[imp_in] begins fiddling with a subtle bump on their arm."), span_notice("You prepare to teleport."))
|
||||
if(do_mob(imp_in, imp_in, 5 SECONDS, ignorehelditem = TRUE))
|
||||
playsound(get_turf(imp_in.loc), 'sound/magic/blink.ogg', 50, 1)
|
||||
imp_in.visible_message("<span class='notice'>[imp_in] vanishes from sight!</span>", \
|
||||
"<span class='notice'>You activate [src], sending you to the slaver mothership!</span>")
|
||||
imp_in.visible_message(span_notice("[imp_in] vanishes from sight!"), \
|
||||
span_notice("You activate [src], sending you to the slaver mothership!"))
|
||||
new /obj/effect/temp_visual/dir_setting/ninja(get_turf(imp_in), imp_in.dir)
|
||||
|
||||
var/list/L = list()
|
||||
@@ -26,7 +26,7 @@
|
||||
|
||||
qdel(src)
|
||||
else
|
||||
to_chat(imp_in, "<span class='warning'>You need to stand still and uninterrupted for 5 seconds!</span>")
|
||||
to_chat(imp_in, span_warning("You need to stand still and uninterrupted for 5 seconds!"))
|
||||
|
||||
/obj/item/implant/slaver/get_data()
|
||||
var/dat = {"<b>Implant Specifications:</b><BR>
|
||||
|
||||
@@ -3,8 +3,8 @@
|
||||
if(istype(imp, /obj/item/implant/genital_fluid))
|
||||
var/obj/item/implant/genital_fluid/I = imp
|
||||
if(I.obj_flags & EMAGGED)
|
||||
to_chat(user, "<span class='warning'>[src] has no functional safeties to emag.</span>")
|
||||
to_chat(user, span_warning("[src] has no functional safeties to emag."))
|
||||
return
|
||||
to_chat(user, "<span class='notice'>You short out [src]'s safeties.</span>")
|
||||
to_chat(user, span_notice("You short out [src]'s safeties."))
|
||||
name = "implant case - 'Genital Fluid (Hacked)'"
|
||||
I.emag_act()
|
||||
|
||||
@@ -36,7 +36,7 @@
|
||||
if(unwrapped == 0)
|
||||
icon_state = "b_condom"
|
||||
unwrapped = 1
|
||||
to_chat(user, "<span class='notice'>You unwrap the condom.</span>")
|
||||
to_chat(user, span_notice("You unwrap the condom."))
|
||||
playsound(user, 'sound/items/poster_ripped.ogg', 50, 1, -1)
|
||||
return
|
||||
|
||||
@@ -55,23 +55,23 @@
|
||||
// if(unwrapped == 1)
|
||||
// new /obj/item/clothing/head/condom(usr.loc)
|
||||
// qdel(src)
|
||||
// to_chat(user, "<span class='notice'>You roll the condom out.</span>")
|
||||
// to_chat(user, span_notice("You roll the condom out."))
|
||||
// playsound(user, 'sound/lewd/latex.ogg', 50, 1, -1)
|
||||
// return
|
||||
/*
|
||||
/obj/item/genital_equipment/condom/attack(mob/living/carbon/C, mob/living/user) //apply the johnny on another person or yourself
|
||||
|
||||
if(unwrapped == 0 )
|
||||
to_chat(user, "<span class='notice'>You must remove the condom from the package first!</span>")
|
||||
to_chat(user, span_notice("You must remove the condom from the package first!"))
|
||||
return
|
||||
var/obj/item/organ/genital/penis/P = C.getorganslot(ORGAN_SLOT_PENIS)
|
||||
if((C.has_penis(REQUIRE_EXPOSED) && (P?.genital_flags & HAS_EQUIPMENT)) || (C.has_strapon(REQUIRE_EXPOSED)))
|
||||
if(P.equipment[GENITAL_EQUIPEMENT_CONDOM])
|
||||
to_chat(user, "<span class='notice'>\The [C] already has condom on!</span>")
|
||||
to_chat(user, span_notice("\The [C] already has condom on!"))
|
||||
return
|
||||
if(isliving(C) && isliving(user) && unwrapped == 1)
|
||||
C.visible_message("<span class='warning'>\The <b>[user]</b> is trying to put a condom on \the <b>[C]</b>!</span>",\
|
||||
"<span class='warning'>\The <b>[user]</b> is trying to put a condom on you!</span>")
|
||||
C.visible_message(span_warning("\The <b>[user]</b> is trying to put a condom on \the <b>[C]</b>!"),\
|
||||
span_warning("\The <b>[user]</b> is trying to put a condom on you!"))
|
||||
if(!do_mob(user, C, 4 SECONDS)) //if Failed to put the condom on
|
||||
return
|
||||
if(!user.transferItemToLoc(src, P)) //check if you can put it in
|
||||
@@ -85,12 +85,12 @@
|
||||
L.update_genitals() // apply the colour!
|
||||
*/
|
||||
if(C.has_penis())
|
||||
to_chat(C, "<span class='userlove'>Your penis feels more safe!</span>")
|
||||
to_chat(C, span_userlove("Your penis feels more safe!"))
|
||||
else
|
||||
to_chat(C, "<span class='userlove'>Your strapon feels more safe... Not sure why would that matter though.</span>")
|
||||
to_chat(C, span_userlove("Your strapon feels more safe... Not sure why would that matter though."))
|
||||
|
||||
return
|
||||
to_chat(user, "<span class='notice'>You can't find anywhere to put the condom on.</span>") //Trying to put it on something without/or with a hidden
|
||||
to_chat(user, span_notice("You can't find anywhere to put the condom on.")) //Trying to put it on something without/or with a hidden
|
||||
*/
|
||||
|
||||
/obj/item/clothing/head/condom //p
|
||||
@@ -156,7 +156,7 @@
|
||||
//P.colourtint = ""
|
||||
update_genitals()
|
||||
C.update_icon()
|
||||
to_chat(src, "<span class='love'>The condom bubbles outwards and fills with your cum.</span>")
|
||||
to_chat(src, span_love("The condom bubbles outwards and fills with your cum."))
|
||||
SEND_SIGNAL(src, COMSIG_ADD_MOOD_EVENT, "orgasm", /datum/mood_event/orgasm)
|
||||
setArousalLoss(0)
|
||||
*/
|
||||
|
||||
@@ -15,23 +15,23 @@
|
||||
if(unwrapped == 0)
|
||||
icon_state = "sounding_rod"
|
||||
unwrapped = 1
|
||||
to_chat(user, "<span class='notice'>You unwrap the rod.</span>")
|
||||
to_chat(user, span_notice("You unwrap the rod."))
|
||||
playsound(user, 'sound/items/poster_ripped.ogg', 50, 1, -1)
|
||||
return
|
||||
/*
|
||||
/obj/item/genital_equipment/sounding/attack(mob/living/carbon/C, mob/living/user)
|
||||
|
||||
if(unwrapped == 0 )
|
||||
to_chat(user, "<span class='notice'>You must remove the rod from the package first!</span>")
|
||||
to_chat(user, span_notice("You must remove the rod from the package first!"))
|
||||
return
|
||||
var/obj/item/organ/genital/penis/P = C.getorganslot(ORGAN_SLOT_PENIS)
|
||||
if(C.has_penis(REQUIRE_EXPOSED) && (P?.genital_flags & HAS_EQUIPMENT))
|
||||
if(P.equipment[GENITAL_EQUIPMENT_SOUNDING])
|
||||
to_chat(user, "<span class='notice'><b>\The [C]</b> already has a rod inside!</span>")
|
||||
to_chat(user, span_notice("<b>\The [C]</b> already has a rod inside!"))
|
||||
return
|
||||
if(isliving(C) && isliving(user) && unwrapped == 1)
|
||||
C.visible_message("<span class='warning'><b>\The [user]</b> is trying to insert a rod inside <b>\The [C]</b>!</span>",\
|
||||
"<span class='warning'><b>\The [user]</b> is trying to insert a rod inside you!</span>")
|
||||
C.visible_message(span_warning("<b>\The [user]</b> is trying to insert a rod inside <b>\The [C]</b>!"),\
|
||||
span_warning("<b>\The [user]</b> is trying to insert a rod inside you!"))
|
||||
if(!do_mob(user, C, 4 SECONDS))
|
||||
return
|
||||
if(!user.transferItemToLoc(src, P)) //check if you can put it in
|
||||
@@ -39,11 +39,11 @@
|
||||
playsound(C, 'modular_sand/sound/lewd/champ_fingering.ogg', 50, 1, -1)
|
||||
P.equipment[GENITAL_EQUIPMENT_SOUNDING] = src
|
||||
|
||||
to_chat(C, "<span class='userlove'>Your penis feels stuffed and stretched!</span>")
|
||||
to_chat(C, span_userlove("Your penis feels stuffed and stretched!"))
|
||||
owner = C
|
||||
|
||||
return
|
||||
to_chat(user, "<span class='notice'>You can't find anywhere to put the rod inside.</span>")
|
||||
to_chat(user, span_notice("You can't find anywhere to put the rod inside."))
|
||||
|
||||
/obj/item/genital_equipment/sounding/genital_remove_proccess(var/obj/item/organ/genital/G)
|
||||
if(!G.equipment[GENITAL_EQUIPMENT_SOUNDING])
|
||||
@@ -59,7 +59,7 @@
|
||||
if(P.equipment[GENITAL_EQUIPMENT_SOUNDING])
|
||||
P.equipment.Remove(GENITAL_EQUIPMENT_SOUNDING)
|
||||
new /obj/item/genital_equipment/sounding/used_sounding(loc)
|
||||
to_chat(src, "<span class='lewd'>The rod falls off from your penis.</span>")
|
||||
to_chat(src, span_lewd("The rod falls off from your penis."))
|
||||
|
||||
/obj/item/genital_equipment/sounding/used_sounding
|
||||
name = "sounding rod"
|
||||
|
||||
@@ -49,7 +49,7 @@ Icons, maybe?
|
||||
RegisterSignal(owner, COMSIG_LIVING_RESIST, .proc/owner_resist)
|
||||
redirect_component = owner
|
||||
if(!owner.stat)
|
||||
to_chat(owner, "<span class='userdanger'>You have been leashed!</span>")
|
||||
to_chat(owner, span_userdanger("You have been leashed!"))
|
||||
return ..()
|
||||
|
||||
//This lets the pet resist their leash
|
||||
@@ -61,7 +61,7 @@ Icons, maybe?
|
||||
//deleash = 100
|
||||
if(do_mob(owner, owner, deleash))//do_mob creates a progress bar and then enacts the code after. Owner, owner, because it's an act on themself
|
||||
if(!QDELETED(src))
|
||||
to_chat(owner, "<span class='warning'>[owner] has removed their leash!</span>")
|
||||
to_chat(owner, span_warning("[owner] has removed their leash!"))
|
||||
owner.remove_status_effect(/datum/status_effect/leash_pet)
|
||||
|
||||
///// OBJECT /////
|
||||
@@ -90,7 +90,7 @@ Icons, maybe?
|
||||
//Called when someone is clicked with the leash
|
||||
/obj/item/leash/attack(mob/living/carbon/C, mob/living/user, attackchain_flags, damage_multiplier) //C is the target, user is the one with the leash
|
||||
if(C.has_status_effect(/datum/status_effect/leash_pet)) //If the pet is already leashed, do not leash them. For the love of god.
|
||||
to_chat(user, "<span class='notice'>[C] has already been leashed.</span>")
|
||||
to_chat(user, span_notice("[C] has already been leashed."))
|
||||
return
|
||||
if(istype(C.get_item_by_slot(ITEM_SLOT_NECK), /obj/item/clothing/neck/petcollar) || istype(C.get_item_by_slot(ITEM_SLOT_NECK), /obj/item/electropack/shockcollar) || istype(C.get_item_by_slot(ITEM_SLOT_NECK), /obj/item/clothing/neck/necklace/cowbell) || istype(C.get_item_by_slot(ITEM_SLOT_NECK), /obj/item/clothing/neck/maid))
|
||||
var/leashtime = 50
|
||||
@@ -114,9 +114,9 @@ Icons, maybe?
|
||||
leash_pet.add_movespeed_modifier(MOVESPEED_ID_LEASH)
|
||||
for(var/mob/viewing in viewers(user, null))
|
||||
if(viewing == leash_master)
|
||||
to_chat(leash_master, "<span class='warning'>You have hooked a leash onto [leash_pet]!</span>")
|
||||
to_chat(leash_master, span_warning("You have hooked a leash onto [leash_pet]!"))
|
||||
else
|
||||
viewing.show_message("<span class='warning'>[leash_pet] has been leashed by [leash_master]!</span>", 1)
|
||||
viewing.show_message(span_warning("[leash_pet] has been leashed by [leash_master]!"), 1)
|
||||
if(leash_pet.has_status_effect(/datum/status_effect/leash_dom)) //Pet leashed themself. They are not the dom
|
||||
leash_pet.apply_status_effect(/datum/status_effect/leash_freepet)
|
||||
leash_pet.remove_status_effect(/datum/status_effect/leash_dom)
|
||||
@@ -126,9 +126,9 @@ Icons, maybe?
|
||||
return
|
||||
if(!(leash_pet.get_item_by_slot(ITEM_SLOT_NECK))) //The pet has slipped their collar and is not the pet anymore.
|
||||
for(var/mob/viewing in viewers(user, null))
|
||||
viewing.show_message("<span class='notice'>[leash_pet] has slipped out of their collar!!</span>", 1)
|
||||
to_chat(leash_pet, "<span class='notice'>You have slipped out of your collar!</span>")
|
||||
to_chat(loc, "<span class='notice'>[leash_pet] has slipped out of their collar!</span>")
|
||||
viewing.show_message(span_notice("[leash_pet] has slipped out of their collar!!"), 1)
|
||||
to_chat(leash_pet, span_notice("You have slipped out of your collar!"))
|
||||
to_chat(loc, span_notice("[leash_pet] has slipped out of their collar!"))
|
||||
leash_pet.remove_status_effect(/datum/status_effect/leash_pet)
|
||||
|
||||
if(!leash_pet.has_status_effect(/datum/status_effect/leash_pet)) //If there is no pet, there is no dom. Loop breaks.
|
||||
@@ -150,7 +150,7 @@ Icons, maybe?
|
||||
|
||||
else //No collar, no fun
|
||||
var/leash_message = pick("Your pet needs a collar")
|
||||
to_chat(user, "<span class='notice'>[leash_message]</span>")
|
||||
to_chat(user, span_notice("[leash_message]"))
|
||||
|
||||
//Called when the leash is used in hand
|
||||
//Tugs the pet closer
|
||||
@@ -192,8 +192,8 @@ Icons, maybe?
|
||||
return
|
||||
if(leash_pet.x > leash_master.x + 3 || leash_pet.x < leash_master.x - 3 || leash_pet.y > leash_master.y + 3 || leash_pet.y < leash_master.y - 3)
|
||||
//var/leash_knockdown_message = "[leash_pet] got pulled to the ground by their leash!"
|
||||
//to_chat(leash_master, "<span class='notice'>[leash_knockdown_message]</span>")
|
||||
//to_chat(leash_pet, "<span class='notice'>[leash_knockdown_message]</span>")
|
||||
//to_chat(leash_master, span_notice("[leash_knockdown_message]"))
|
||||
//to_chat(leash_pet, span_notice("[leash_knockdown_message]"))
|
||||
leash_pet.apply_effect(20, EFFECT_KNOCKDOWN, 0)
|
||||
|
||||
//This code is to check if the pet has gotten too far away, and then break the leash.
|
||||
@@ -206,11 +206,11 @@ Icons, maybe?
|
||||
var/leash_break_message = "The leash snapped free from [leash_pet]!"
|
||||
for(var/mob/viewing in viewers(leash_pet, null))
|
||||
if(viewing == leash_master)
|
||||
to_chat(leash_master, "<span class='warning'>The leash snapped free from your pet!</span>")
|
||||
to_chat(leash_master, span_warning("The leash snapped free from your pet!"))
|
||||
if(viewing == leash_pet)
|
||||
to_chat(leash_pet, "<span class='warning'>Your leash has popped from your collar!</span>")
|
||||
to_chat(leash_pet, span_warning("Your leash has popped from your collar!"))
|
||||
else
|
||||
viewing.show_message("<span class='warning'>[leash_break_message]</span>", 1)
|
||||
viewing.show_message(span_warning("[leash_break_message]"), 1)
|
||||
leash_pet.apply_effect(20, EFFECT_KNOCKDOWN, 0)
|
||||
leash_pet.adjustOxyLoss(5)
|
||||
leash_pet.remove_status_effect(/datum/status_effect/leash_pet)
|
||||
@@ -315,9 +315,9 @@ Icons, maybe?
|
||||
var/leash_break_message = "The leash snapped free from [leash_pet]!"
|
||||
for(var/mob/viewing in viewers(leash_pet, null))
|
||||
if(viewing == leash_pet)
|
||||
to_chat(leash_pet, "<span class='warning'>Your leash has popped from your collar!</span>")
|
||||
to_chat(leash_pet, span_warning("Your leash has popped from your collar!"))
|
||||
else
|
||||
viewing.show_message("<span class='warning'>[leash_break_message]</span>", 1)
|
||||
viewing.show_message(span_warning("[leash_break_message]"), 1)
|
||||
leash_pet.apply_effect(20, EFFECT_KNOCKDOWN, 0)
|
||||
leash_pet.adjustOxyLoss(5)
|
||||
leash_pet.remove_status_effect(/datum/status_effect/leash_pet)
|
||||
@@ -345,7 +345,7 @@ Icons, maybe?
|
||||
if(leash_master.is_holding_item_of_type(/obj/item/leash) || istype(leash_master.get_item_by_slot(ITEM_SLOT_BELT), /obj/item/leash))
|
||||
return //Dom still has the leash as it turns out. Cancel the proc.
|
||||
for(var/mob/viewing in viewers(leash_master, null))
|
||||
viewing.show_message("<span class='notice'>[leash_master] has dropped the leash.</span>", 1)
|
||||
viewing.show_message(span_notice("[leash_master] has dropped the leash."), 1)
|
||||
//DOM HAS DROPPED LEASH. PET IS FREE. SCP HAS BREACHED CONTAINMENT.
|
||||
leash_pet.remove_movespeed_modifier(MOVESPEED_ID_LEASH)
|
||||
//mobhook_leash_freepet = leash_pet.AddComponent(/datum/component/redirect, list(COMSIG_MOVABLE_MOVED = CALLBACK(src, .proc/on_freepet_move)))
|
||||
|
||||
@@ -69,45 +69,45 @@ GLOBAL_LIST_INIT(bondage_rope_slowdowns, list(
|
||||
switch(rope_target)
|
||||
if(ROPE_TARGET_HANDS_IN_FRONT, ROPE_TARGET_HANDS_BEHIND, ROPE_TARGET_HANDS_OBJECT)
|
||||
if(C.handcuffed != null && !istype(C.handcuffed, /obj/item/restraints/bondage_rope))
|
||||
to_chat(user, "<span class='warning'>[C] is already handcuffed...</span>")
|
||||
to_chat(user, span_warning("[C] is already handcuffed..."))
|
||||
return
|
||||
if(C.get_num_arms(FALSE) < 2 && !C.get_arm_ignore())
|
||||
to_chat(user, "<span class='warning'>[C] doesn't have two hands...</span>")
|
||||
to_chat(user, span_warning("[C] doesn't have two hands..."))
|
||||
return
|
||||
if(C.handcuffed == null)
|
||||
C.visible_message("<span class='danger'>[user] is trying to tie [C]'s hands [rope_target_text()]!</span>", \
|
||||
"<span class='userdanger'>[user] is trying to tie [C]'s hands [rope_target_text()]!</span>")
|
||||
C.visible_message(span_danger("[user] is trying to tie [C]'s hands [rope_target_text()]!"), \
|
||||
span_userdanger("[user] is trying to tie [C]'s hands [rope_target_text()]!"))
|
||||
else
|
||||
var/obj/item/restraints/bondage_rope/rope = C.handcuffed
|
||||
if(LAZYLEN(rope.rope_stack) >= ROPE_MAX_STACK)
|
||||
to_chat(user, "<span class='warning'>You cannot strengthen this rope anymore...</span>")
|
||||
to_chat(user, span_warning("You cannot strengthen this rope anymore..."))
|
||||
return
|
||||
C.visible_message("<span class='danger'>[user] is trying to strengthen the rope on [C]!</span>", \
|
||||
"<span class='userdanger'>[user] is trying to strengthen the rope on [C]!</span>")
|
||||
C.visible_message(span_danger("[user] is trying to strengthen the rope on [C]!"), \
|
||||
span_userdanger("[user] is trying to strengthen the rope on [C]!"))
|
||||
process_knot(C, user)
|
||||
|
||||
if(ROPE_TARGET_LEGS, ROPE_TARGET_LEGS_OBJECT)
|
||||
if(C.legcuffed != null && !istype(C.legcuffed, /obj/item/restraints/bondage_rope))
|
||||
to_chat(user, "<span class='warning'>[C] is already legcuffed...</span>")
|
||||
to_chat(user, span_warning("[C] is already legcuffed..."))
|
||||
return
|
||||
if(C.get_num_legs(FALSE) < 2 && !C.get_leg_ignore())
|
||||
to_chat(user, "<span class='warning'>[C] doesn't have two legs...</span>")
|
||||
to_chat(user, span_warning("[C] doesn't have two legs..."))
|
||||
return
|
||||
if(C.legcuffed == null)
|
||||
C.visible_message("<span class='danger'>[user] is trying to tie [C]'s legs!</span>", \
|
||||
"<span class='userdanger'>[user] is trying to tie [C]'s legs!</span>")
|
||||
C.visible_message(span_danger("[user] is trying to tie [C]'s legs!"), \
|
||||
span_userdanger("[user] is trying to tie [C]'s legs!"))
|
||||
else
|
||||
var/obj/item/restraints/bondage_rope/rope = C.legcuffed
|
||||
if(LAZYLEN(rope.rope_stack) >= ROPE_MAX_STACK)
|
||||
to_chat(user, "<span class='warning'>You cannot strengthen this rope anymore...</span>")
|
||||
to_chat(user, span_warning("You cannot strengthen this rope anymore..."))
|
||||
return
|
||||
C.visible_message("<span class='danger'>[user] is trying to strengthen the rope on [C]!</span>", \
|
||||
"<span class='userdanger'>[user] is trying to strengthen the rope on [C]!</span>")
|
||||
C.visible_message(span_danger("[user] is trying to strengthen the rope on [C]!"), \
|
||||
span_userdanger("[user] is trying to strengthen the rope on [C]!"))
|
||||
process_knot(C, user)
|
||||
|
||||
/obj/item/restraints/bondage_rope/attack_obj(obj/O, mob/user)
|
||||
if(rope_state != ROPE_STATE_DECIDING_OBJECT)
|
||||
to_chat(user, "<span class='notice'>You need to attach the rope to somebody first.</span>")
|
||||
to_chat(user, span_notice("You need to attach the rope to somebody first."))
|
||||
return
|
||||
process_object(O, user)
|
||||
|
||||
@@ -119,7 +119,7 @@ GLOBAL_LIST_INIT(bondage_rope_slowdowns, list(
|
||||
// Might be reduntant, since the roped mob gets pulled, but meh
|
||||
var/distance = get_dist(user, roped_mob)
|
||||
if(distance > ROPE_MAX_DISTANCE_MASTER)
|
||||
to_chat(user, "<span class='warning'>The rope isn't long enough to tie a knot.</span>")
|
||||
to_chat(user, span_warning("The rope isn't long enough to tie a knot."))
|
||||
return
|
||||
|
||||
for(var/type in GLOB.bondage_rope_objects)
|
||||
@@ -137,26 +137,26 @@ GLOBAL_LIST_INIT(bondage_rope_slowdowns, list(
|
||||
SSblackbox.record_feedback("tally", "handcuffs", 1, type)
|
||||
log_combat(user, C, "handcuffed")
|
||||
if(C.handcuffed == null)
|
||||
to_chat(user, "<span class='notice'>You tie [C]'s hands [rope_target_text()].</span>")
|
||||
to_chat(user, span_notice("You tie [C]'s hands [rope_target_text()]."))
|
||||
after_process_knot(C, user)
|
||||
else
|
||||
to_chat(user, "<span class='notice'>You strengthen the rope on [C].</span>")
|
||||
to_chat(user, span_notice("You strengthen the rope on [C]."))
|
||||
strengthen_rope(C, user)
|
||||
else
|
||||
to_chat(user, "<span class='warning'>You fail to tie [C]'s hands!</span>")
|
||||
to_chat(user, span_warning("You fail to tie [C]'s hands!"))
|
||||
if(ROPE_TARGET_LEGS, ROPE_TARGET_LEGS_OBJECT)
|
||||
if(do_mob(user, C, 30) && (C.get_num_legs(FALSE) >= 2 || C.get_leg_ignore()))
|
||||
playsound(loc, cuffsound, 30, 1, -2)
|
||||
SSblackbox.record_feedback("tally", "handcuffs", 1, type)
|
||||
log_combat(user, C, "handcuffed")
|
||||
if(C.legcuffed == null)
|
||||
to_chat(user, "<span class='notice'>You tie [C]'s legs.</span>")
|
||||
to_chat(user, span_notice("You tie [C]'s legs."))
|
||||
after_process_knot(C, user)
|
||||
else
|
||||
to_chat(user, "<span class='notice'>You strengthen the rope on [C].</span>")
|
||||
to_chat(user, span_notice("You strengthen the rope on [C]."))
|
||||
strengthen_rope(C, user)
|
||||
else
|
||||
to_chat(user, "<span class='warning'>You fail to tie [C]'s legs!</span>")
|
||||
to_chat(user, span_warning("You fail to tie [C]'s legs!"))
|
||||
|
||||
// > Using normal rope, calls finish_knot_normal
|
||||
// > Using object rope, handles the handcuffed effect (unless instant self apply is disabled) and sets state to ROPE_STATE_DECIDING_OBJECT
|
||||
@@ -176,7 +176,7 @@ GLOBAL_LIST_INIT(bondage_rope_slowdowns, list(
|
||||
set_roped_mob(C)
|
||||
set_roped_master(user)
|
||||
set_rope_slowdown(C)
|
||||
to_chat(roped_master, "<span class='notice'>Attach the rope to an object to finish the knot.</span>")
|
||||
to_chat(roped_master, span_notice("Attach the rope to an object to finish the knot."))
|
||||
while(1)
|
||||
sleep(2)
|
||||
if(rope_state == ROPE_STATE_UNTIED)
|
||||
@@ -229,8 +229,8 @@ GLOBAL_LIST_INIT(bondage_rope_slowdowns, list(
|
||||
|
||||
set_roped_master(null)
|
||||
set_roped_object(O, O_type)
|
||||
to_chat(roped_mob, "<span class='warning'>You are tied to [O].</span>")
|
||||
to_chat(roped_master, "<span class='notice'>You tie the rope to [O].</span>")
|
||||
to_chat(roped_mob, span_warning("You are tied to [O]."))
|
||||
to_chat(roped_master, span_notice("You tie the rope to [O]."))
|
||||
tugged_flag = TRUE
|
||||
apply_tug_mob_to_object(roped_mob, roped_object, ROPE_MAX_DISTANCE_OBJECT)
|
||||
|
||||
@@ -241,22 +241,22 @@ GLOBAL_LIST_INIT(bondage_rope_slowdowns, list(
|
||||
|
||||
if(roped_mob == null)
|
||||
if(roped_master != null)
|
||||
to_chat(roped_master, "<span class='warning'>Seems like whoever you were roping... Is gone?</span>")
|
||||
to_chat(roped_master, span_warning("Seems like whoever you were roping... Is gone?"))
|
||||
reset_rope_state()
|
||||
return FALSE
|
||||
if(rope_state == ROPE_STATE_TIED || (roped_master != roped_mob || ROPE_SELF_APPLY_INSTANT))
|
||||
if(rope_target == ROPE_TARGET_HANDS_OBJECT && roped_mob.handcuffed != src)
|
||||
if(roped_master != null)
|
||||
to_chat(roped_master, "<span class='warning'>[roped_mob] got out of your rope.</span>")
|
||||
to_chat(roped_master, span_warning("[roped_mob] got out of your rope."))
|
||||
reset_rope_state()
|
||||
return FALSE
|
||||
if(rope_target == ROPE_TARGET_LEGS_OBJECT && roped_mob.legcuffed != src)
|
||||
if(roped_master != null)
|
||||
to_chat(roped_master, "<span class='warning'>[roped_mob] got out of your rope.</span>")
|
||||
to_chat(roped_master, span_warning("[roped_mob] got out of your rope."))
|
||||
reset_rope_state()
|
||||
return FALSE
|
||||
if(rope_state == ROPE_STATE_TIED && roped_object == null)
|
||||
to_chat(roped_mob, "<span class='warning'>The thing you were tied to... Is gone?</span>")
|
||||
to_chat(roped_mob, span_warning("The thing you were tied to... Is gone?"))
|
||||
reset_rope_state()
|
||||
return FALSE
|
||||
|
||||
@@ -308,11 +308,11 @@ GLOBAL_LIST_INIT(bondage_rope_slowdowns, list(
|
||||
var/distance = get_dist(roped_mob.loc, roped_master.loc)
|
||||
if(distance > ROPE_MAX_DISTANCE_MASTER)
|
||||
if (prob(10))
|
||||
to_chat(roped_mob, "<span class='warning'>You tug the rope away from [roped_master].</span>")
|
||||
to_chat(roped_master, "<span class='warning'>[roped_mob] tugs the rope away from you.</span>")
|
||||
to_chat(roped_mob, span_warning("You tug the rope away from [roped_master]."))
|
||||
to_chat(roped_master, span_warning("[roped_mob] tugs the rope away from you."))
|
||||
forceMove(roped_mob.loc)
|
||||
else
|
||||
to_chat(roped_mob, "<span class='warning'>The rope doesn't let you go further.</span>")
|
||||
to_chat(roped_mob, span_warning("The rope doesn't let you go further."))
|
||||
tugged_flag = TRUE
|
||||
apply_tug_mob_to_mob(roped_mob, roped_master, ROPE_MAX_DISTANCE_MASTER)
|
||||
// Not reduntant, since the above line can tug the rope and make roped_master null
|
||||
@@ -336,7 +336,7 @@ GLOBAL_LIST_INIT(bondage_rope_slowdowns, list(
|
||||
if(can_move)
|
||||
apply_tug_object_to_mob(roped_object, roped_mob, ROPE_MAX_DISTANCE_OBJECT)
|
||||
else
|
||||
to_chat(roped_mob, "<span class='warning'>The rope doesn't let you go further.</span>")
|
||||
to_chat(roped_mob, span_warning("The rope doesn't let you go further."))
|
||||
tugged_flag = TRUE
|
||||
apply_tug_mob_to_object(roped_mob, roped_object, ROPE_MAX_DISTANCE_OBJECT)
|
||||
distance = get_dist(roped_mob.loc, roped_object.loc)
|
||||
@@ -346,10 +346,10 @@ GLOBAL_LIST_INIT(bondage_rope_slowdowns, list(
|
||||
/obj/item/restraints/bondage_rope/proc/snap_rope()
|
||||
var/loc = null
|
||||
if(roped_master != null)
|
||||
to_chat(roped_master, "<span class='warning'>The rope snaps.</span>")
|
||||
to_chat(roped_master, span_warning("The rope snaps."))
|
||||
loc = roped_master.loc
|
||||
if(roped_mob != null)
|
||||
to_chat(roped_mob, "<span class='warning'>The rope snaps.</span>")
|
||||
to_chat(roped_mob, span_warning("The rope snaps."))
|
||||
loc = roped_mob.loc
|
||||
reset_rope_state()
|
||||
forceMove(loc)
|
||||
@@ -416,7 +416,7 @@ GLOBAL_LIST_INIT(bondage_rope_slowdowns, list(
|
||||
|
||||
/obj/item/restraints/bondage_rope/proc/customize_rope(mob/living/user)
|
||||
if(rope_state != ROPE_STATE_UNTIED)
|
||||
to_chat(user, "<span class='warning'>You can only customize an untied rope.</span>")
|
||||
to_chat(user, span_warning("You can only customize an untied rope."))
|
||||
return
|
||||
|
||||
if(src && !user.incapacitated() && in_range(user, src))
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
|
||||
/obj/item/strapon_strap/attackby(obj/item/I, mob/living/user, params)
|
||||
if(istype(I, /obj/item/dildo))
|
||||
to_chat(user, "<span class='userlove'>You attach the dildo to the strap.</span>")
|
||||
to_chat(user, span_userlove("You attach the dildo to the strap."))
|
||||
var/obj/item/dildo/dildo = I
|
||||
var/obj/item/clothing/underwear/briefs/strapon/new_strapon = new /obj/item/clothing/underwear/briefs/strapon(user.loc)
|
||||
new_strapon.dildo_color = dildo.color
|
||||
@@ -48,10 +48,10 @@
|
||||
/obj/item/clothing/underwear/briefs/strapon/examine(mob/user)
|
||||
. = ..()
|
||||
. += "There is a <span class='notice'>[GLOB.dildo_size_names[dildo_size]] [dildo_shape][dildo_can_customize ? " custom" : ""] dildo</span> attached to it."
|
||||
. += "<span class='notice'>Alt-Click \the [src.name] to separate the strap and dildo.</span>"
|
||||
. += span_notice("Alt-Click \the [src.name] to separate the strap and dildo.")
|
||||
|
||||
/obj/item/clothing/underwear/briefs/strapon/AltClick(mob/living/user, obj/item/I)
|
||||
to_chat(user, "<span class='userlove'>You separate the dildo from the strap.</span>")
|
||||
to_chat(user, span_userlove("You separate the dildo from the strap."))
|
||||
var/obj/item/strapon_strap/new_strapon_strap = new /obj/item/strapon_strap(user.loc)
|
||||
var/obj/item/dildo/new_dildo
|
||||
if(dildo_can_customize)
|
||||
@@ -105,7 +105,7 @@
|
||||
|
||||
if(istype(user, /mob/living/carbon))
|
||||
var/mob/living/carbon/C = user
|
||||
to_chat(C, "<span class='userlove'>You're now ready to bone someone!</span>")
|
||||
to_chat(C, span_userlove("You're now ready to bone someone!"))
|
||||
|
||||
/obj/item/clothing/underwear/briefs/strapon/mob_can_equip(M, equipper, slot, disable_warning, bypass_equip_delay_self)
|
||||
if(!..())
|
||||
@@ -114,7 +114,7 @@
|
||||
if(istype(M, /mob/living))
|
||||
var/mob/living/living = M
|
||||
if(living.has_penis(REQUIRE_ANY))
|
||||
to_chat(living, "<span class='notice'>\The [living] doesn't seem to need a strapon!</span>")
|
||||
to_chat(living, span_notice("\The [living] doesn't seem to need a strapon!"))
|
||||
return FALSE
|
||||
|
||||
return TRUE
|
||||
|
||||
@@ -48,15 +48,15 @@ Code:
|
||||
switch(mode)
|
||||
if(1)
|
||||
mode = 2
|
||||
to_chat(user, "<span class='notice'>You twist the bottom of [src], setting it to the medium setting.</span>")
|
||||
to_chat(user, span_notice("You twist the bottom of [src], setting it to the medium setting."))
|
||||
return
|
||||
if(2)
|
||||
mode = 3
|
||||
to_chat(user, "<span class='warning'>You twist the bottom of [src], setting it to the high setting.</span>")
|
||||
to_chat(user, span_warning("You twist the bottom of [src], setting it to the high setting."))
|
||||
return
|
||||
if(3)
|
||||
mode = 1
|
||||
to_chat(user, "<span class='notice'>You twist the bottom of [src], setting it to the low setting.</span>")
|
||||
to_chat(user, span_notice("You twist the bottom of [src], setting it to the low setting."))
|
||||
return
|
||||
/*
|
||||
/obj/item/electropack/vibrator/attack(mob/living/carbon/C, mob/living/user)
|
||||
@@ -66,22 +66,22 @@ Code:
|
||||
var/mob/living/carbon/human/T = C
|
||||
picked_organ = S.pick_receiving_organ(T, HAS_EQUIPMENT, "Vibrator", "Where are you putting it in?")
|
||||
if(picked_organ)
|
||||
C.visible_message("<span class='warning'><b>\The [user]</b> is trying to attach [src] to <b>\The [T]</b>!</span>",\
|
||||
"<span class='warning'><b>\The [user]</b> is trying to put [src] on you!</span>")
|
||||
C.visible_message(span_warning("<b>\The [user]</b> is trying to attach [src] to <b>\The [T]</b>!"),\
|
||||
span_warning("<b>\The [user]</b> is trying to put [src] on you!"))
|
||||
if(!do_mob(user, C, 5 SECONDS))//warn them and have a delay of 5 seconds to apply.
|
||||
return
|
||||
|
||||
if(style == "long" && !(picked_organ.type == /obj/item/organ/genital/vagina)) //long vibrators dont fit on anything but vaginas, but small ones fit everywhere
|
||||
to_chat(user, "<span class='warning'>[src] is too big to fit there, use a smaller version.</span>")
|
||||
to_chat(user, span_warning("[src] is too big to fit there, use a smaller version."))
|
||||
return
|
||||
|
||||
if(!picked_organ.equipment[GENITAL_EQUIPMENT_VIBRATOR])
|
||||
if(!(style == "long"))
|
||||
to_chat(user, "<span class='love'>You attach [src] to <b>\The [T]</b>'s [picked_organ.name].</span>")
|
||||
to_chat(user, span_love("You attach [src] to <b>\The [T]</b>'s [picked_organ.name]."))
|
||||
else
|
||||
to_chat(user, "<span class='love'>You insert [src] into <b>\The <b>[T]</b>'s [picked_organ.name].</span>")
|
||||
to_chat(user, span_love("You insert [src] into <b>\The <b>[T]</b>'s [picked_organ.name]."))
|
||||
else
|
||||
to_chat(user, "<span class='notice'>They already have a [picked_organ.equipment[GENITAL_EQUIPMENT_VIBRATOR].name] there.</span>")
|
||||
to_chat(user, span_notice("They already have a [picked_organ.equipment[GENITAL_EQUIPMENT_VIBRATOR].name] there."))
|
||||
return
|
||||
|
||||
if(!user.transferItemToLoc(src, picked_organ)) //check if you can put it in
|
||||
@@ -89,10 +89,10 @@ Code:
|
||||
playsound(C, 'modular_sand/sound/lewd/champ_fingering.ogg', 50, 1, -1)
|
||||
inside = TRUE
|
||||
picked_organ.equipment[GENITAL_EQUIPMENT_VIBRATOR] = src
|
||||
to_chat(user, "<span class='warning'>Done <b>Done</b></span>") //Will delete after testing
|
||||
to_chat(user, span_warning("Done <b>Done</b>")) //Will delete after testing
|
||||
|
||||
else
|
||||
to_chat(user, "<span class='notice'>You don't see anywhere to attach this.</span>")
|
||||
to_chat(user, span_notice("You don't see anywhere to attach this."))
|
||||
*/
|
||||
|
||||
|
||||
@@ -114,9 +114,9 @@ Code:
|
||||
if(G)
|
||||
switch(G.type) //just being fancy
|
||||
if(/obj/item/organ/genital/breasts)
|
||||
to_chat(U, "<span class='love'>[src] vibrates against your nipples!</span>")
|
||||
to_chat(U, span_love("[src] vibrates against your nipples!"))
|
||||
else
|
||||
to_chat(U, "<span class='love'>[src] vibrates against your [G.name]!</span>")
|
||||
to_chat(U, span_love("[src] vibrates against your [G.name]!"))
|
||||
|
||||
var/intencity = 6*mode
|
||||
U.handle_post_sex(intencity, null, src) //give pleasure
|
||||
@@ -125,13 +125,13 @@ Code:
|
||||
|
||||
switch(mode)
|
||||
if(1) //low, setting for RP, it wont force your character to do anything.
|
||||
to_chat(U, "<span class='love'>You feel pleasure surge through your [G.name]</span>")
|
||||
to_chat(U, span_love("You feel pleasure surge through your [G.name]"))
|
||||
U.do_jitter_animation() //do animation without heartbeat
|
||||
if(2) //med, can make you cum
|
||||
to_chat(U, "<span class='love'>You feel intense pleasure surge through your [G.name]</span>")
|
||||
to_chat(U, span_love("You feel intense pleasure surge through your [G.name]"))
|
||||
U.do_jitter_animation()
|
||||
if(3) //high, makes you stun
|
||||
to_chat(U, "<span class='userdanger'>You feel overpowering pleasure surge through your [G.name]</span>")
|
||||
to_chat(U, span_userdanger("You feel overpowering pleasure surge through your [G.name]"))
|
||||
U.Jitter(3)
|
||||
U.Stun(30)
|
||||
if(prob(50))
|
||||
|
||||
@@ -95,5 +95,5 @@
|
||||
"}
|
||||
|
||||
/obj/item/book/manual/splurt_space_law/suicide_act(mob/living/user)
|
||||
user.visible_message("<span class='suicide'>[user] pretends to read \the [src] intently... then promptly dies of laughter!</span>")
|
||||
user.visible_message(span_suicide("[user] pretends to read \the [src] intently... then promptly dies of laughter!"))
|
||||
return OXYLOSS
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
to_chat(user, "You can't hypnotize [H] whilst they're asleep!")
|
||||
return
|
||||
|
||||
user.visible_message("<span class='warning'>[user] begins to mesmerizingly wave [src] like a pendulum before [H]'s very eyes!</span>")
|
||||
user.visible_message(span_warning("[user] begins to mesmerizingly wave [src] like a pendulum before [H]'s very eyes!"))
|
||||
|
||||
if(!do_mob(user, H, 12 SECONDS))
|
||||
return
|
||||
@@ -34,7 +34,7 @@
|
||||
var/response = alert(H, "Do you wish to fall into a hypnotic sleep? (This will allow [user] to issue hypnotic suggestions)", "Hypnosis", "Yes", "No")
|
||||
|
||||
if(response == "Yes")
|
||||
H.visible_message("<span class='warning'>[H] falls into a deep slumber!</span>", "<span class ='danger'>Your eyelids gently shut as you fall into a deep slumber. All you can hear is [user]'s voice as you commit to following all of their suggestions</span>")
|
||||
H.visible_message(span_warning("[H] falls into a deep slumber!"), "<span class ='danger'>Your eyelids gently shut as you fall into a deep slumber. All you can hear is [user]'s voice as you commit to following all of their suggestions</span>")
|
||||
|
||||
H.SetSleeping(1200)
|
||||
H.drowsyness = max(H.drowsyness, 40)
|
||||
@@ -42,7 +42,7 @@
|
||||
return
|
||||
|
||||
//No
|
||||
H.visible_message("<span class='warning'>[H]'s attention breaks, despite your attempts to hypnotize them! They clearly don't want this</span>", "<span class ='warning'>Your concentration breaks as you realise you have no interest in following [user]'s words!</span>")
|
||||
H.visible_message(span_warning("[H]'s attention breaks, despite your attempts to hypnotize them! They clearly don't want this"), "<span class ='warning'>Your concentration breaks as you realise you have no interest in following [user]'s words!</span>")
|
||||
|
||||
|
||||
|
||||
@@ -76,11 +76,11 @@
|
||||
return
|
||||
|
||||
to_chat(user, "You whisper your suggestion in a smooth calming voice to [subject]")
|
||||
to_chat(subject, "<span class='hypnophrase'>...[text]...</span>")
|
||||
to_chat(subject, span_hypnophrase("...[text]..."))
|
||||
return
|
||||
//Release
|
||||
|
||||
subject.visible_message("<span class='warning'>[subject] wakes up from their deep slumber!</span>", "<span class ='danger'>Your eyelids gently open as you see [user]'s face staring back at you</span>")
|
||||
subject.visible_message(span_warning("[subject] wakes up from their deep slumber!"), "<span class ='danger'>Your eyelids gently open as you see [user]'s face staring back at you</span>")
|
||||
subject.SetSleeping(0)
|
||||
subject = null
|
||||
|
||||
|
||||
@@ -64,15 +64,15 @@
|
||||
|
||||
if(isnull(insults))
|
||||
playsound(get_turf(src), 'modular_splurt/sound/voice/halt.ogg', 100, 1, vary = 0)
|
||||
user.audible_message("<span class='warning'>[user]'s [name] rasps, \"[use_message]\"</span>", "<span class='warning'>\The [user] holds up \the [name].</span>")
|
||||
user.audible_message(span_warning("[user]'s [name] rasps, \"[use_message]\""), span_warning("\The [user] holds up \the [name]."))
|
||||
else
|
||||
if(insults > 0)
|
||||
playsound(get_turf(src), 'sound/voice/beepsky/insult.ogg', 100, 1, vary = 0)
|
||||
// Yes, it used to show the transcription of the sound clip. That was a) inaccurate b) immature as shit.
|
||||
user.audible_message("<span class='warning'>[user]'s [name] gurgles something indecipherable and deeply offensive.</span>", "<span class='warning'>\The [user] holds up \the [name].</span>")
|
||||
user.audible_message(span_warning("[user]'s [name] gurgles something indecipherable and deeply offensive."), span_warning("\The [user] holds up \the [name]."))
|
||||
insults--
|
||||
else
|
||||
user << "<span class='danger'>*BZZZZZZZZT*</span>"
|
||||
user << span_danger("*BZZZZZZZZT*")
|
||||
|
||||
spamcheck = 1
|
||||
spawn(20)
|
||||
@@ -80,7 +80,7 @@
|
||||
|
||||
/obj/item/device/hailer/emag_act(remaining_charges, mob/user)
|
||||
if(isnull(insults))
|
||||
user << "<span class='danger'>You overload \the [src]'s voice synthesizer.</span>"
|
||||
user << span_danger("You overload \the [src]'s voice synthesizer.")
|
||||
insults = rand(1, 3)//to prevent dickflooding
|
||||
return 1
|
||||
else
|
||||
@@ -170,20 +170,20 @@
|
||||
if(istype(C, /obj/item/card/id))
|
||||
var/obj/item/card/id/idcard = C
|
||||
if(!idcard.registered_name)
|
||||
to_chat(user, "<span class='warning'>\The [src] rejects the ID!</span>")
|
||||
to_chat(user, span_warning("\The [src] rejects the ID!"))
|
||||
return
|
||||
|
||||
if(!owner)
|
||||
owner = idcard.registered_name
|
||||
ownjob = idcard.assignment
|
||||
update_label()
|
||||
to_chat(user, "<span class='notice'>Badge updated.</span>")
|
||||
to_chat(user, span_notice("Badge updated."))
|
||||
|
||||
|
||||
/obj/item/clothing/accessory/badge/attack_self(mob/user)
|
||||
if(Adjacent(user))
|
||||
user.visible_message("<span class='notice'>[user] shows you: [icon2html(src, viewers(user))] [src.name].</span>", \
|
||||
"<span class='notice'>You show \the [src.name].</span>")
|
||||
user.visible_message(span_notice("[user] shows you: [icon2html(src, viewers(user))] [src.name]."), \
|
||||
span_notice("You show \the [src.name]."))
|
||||
add_fingerprint(user)
|
||||
|
||||
/obj/item/clothing/accessory/badge/holo
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
ExpandSize = 200
|
||||
if(ExpandSize <= 0)
|
||||
ExpandSize = 200
|
||||
to_chat(user, "<span class='notice'>Expand set to [ExpandSize] %.</span>")
|
||||
to_chat(user, span_notice("Expand set to [ExpandSize] %."))
|
||||
return ExpandSize
|
||||
|
||||
/obj/item/borg/upgrade/shrink
|
||||
@@ -25,5 +25,5 @@
|
||||
ShrinkSize = 50
|
||||
if(ShrinkSize <= 0)
|
||||
ShrinkSize = 50
|
||||
to_chat(user, "<span class='notice'>Shrink set to [ShrinkSize] %.</span>")
|
||||
to_chat(user, span_notice("Shrink set to [ShrinkSize] %."))
|
||||
return ShrinkSize
|
||||
|
||||
@@ -22,13 +22,13 @@
|
||||
force = 10
|
||||
|
||||
/obj/item/bdsm_whip/suicide_act(mob/user)
|
||||
user.visible_message("<span class='suicide'>[user] is getting just a little too kinky!</span>")
|
||||
user.visible_message(span_suicide("[user] is getting just a little too kinky!"))
|
||||
return (OXYLOSS)
|
||||
|
||||
/obj/item/bdsm_whip/attack(mob/M, mob/user)
|
||||
if(user.zone_selected == BODY_ZONE_PRECISE_GROIN)
|
||||
playsound(loc, 'sound/weapons/whip.ogg', 30)
|
||||
M.visible_message("<span class='userdanger'>[user] has [pick(attack_verb)] [M] on the ass!</span>")
|
||||
M.visible_message(span_userdanger("[user] has [pick(attack_verb)] [M] on the ass!"))
|
||||
else
|
||||
return ..(M, user)
|
||||
|
||||
@@ -54,5 +54,5 @@
|
||||
total_mass = TOTAL_MASS_MEDIEVAL_WEAPON
|
||||
|
||||
/obj/item/khopesh/suicide_act(mob/user)
|
||||
user.visible_message("<span class='suicide'>[user] is falling on [src]! It looks like [user.p_theyre()] trying to commit suicide!</span>")
|
||||
user.visible_message(span_suicide("[user] is falling on [src]! It looks like [user.p_theyre()] trying to commit suicide!"))
|
||||
return(BRUTELOSS)
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
/obj/item/armyknife/attack_self(mob/user)
|
||||
playsound(get_turf(user),'sound/weapons/batonextend.ogg',50,1)
|
||||
var/obj/item/armyknife/ak_screw = new /obj/item/armyknife/screw(drop_location())
|
||||
to_chat(user, "<span class='notice'>You unfold the screwdriver.</span>")
|
||||
to_chat(user, span_notice("You unfold the screwdriver."))
|
||||
qdel(src)
|
||||
user.put_in_active_hand(ak_screw)
|
||||
|
||||
@@ -42,7 +42,7 @@
|
||||
/obj/item/armyknife/screw/attack_self(mob/user)
|
||||
playsound(get_turf(user),'sound/weapons/batonextend.ogg',50,1)
|
||||
var/obj/item/armyknife/ak_cut = new /obj/item/armyknife/cutter(drop_location())
|
||||
to_chat(user, "<span class='notice'>You fold the screwdriver and unfold the wirecutters.</span>")
|
||||
to_chat(user, span_notice("You fold the screwdriver and unfold the wirecutters."))
|
||||
qdel(src)
|
||||
user.put_in_active_hand(ak_cut)
|
||||
|
||||
@@ -70,7 +70,7 @@
|
||||
/obj/item/armyknife/cutter/attack_self(mob/user)
|
||||
playsound(get_turf(user), 'sound/weapons/batonextend.ogg', 50, 1)
|
||||
var/obj/item/armyknife/ak_knife = new /obj/item/armyknife/blade(drop_location())
|
||||
to_chat(user, "<span class='notice'>You fold the wirecutters and unfold the knife.</span>")
|
||||
to_chat(user, span_notice("You fold the wirecutters and unfold the knife."))
|
||||
qdel(src)
|
||||
user.put_in_active_hand(ak_knife)
|
||||
|
||||
@@ -94,7 +94,7 @@
|
||||
/obj/item/armyknife/blade/attack_self(mob/user)
|
||||
playsound(get_turf(user), 'sound/weapons/batonextend.ogg', 50, 1)
|
||||
var/obj/item/armyknife/ak_fold = new /obj/item/armyknife(drop_location())
|
||||
to_chat(user, "<span class='notice'>You fold the knife.</span>")
|
||||
to_chat(user, span_notice("You fold the knife."))
|
||||
qdel(src)
|
||||
user.put_in_active_hand(ak_fold)
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
|
||||
/obj/item/melee/baseball_bat/AltClick(mob/living/carbon/human/user as mob)
|
||||
hole = hole == CUM_TARGET_VAGINA ? CUM_TARGET_ANUS : CUM_TARGET_VAGINA
|
||||
to_chat(user, "<span class='notice'>Now targetting \the [hole].</span>")
|
||||
to_chat(user, span_notice("Now targetting \the [hole]."))
|
||||
|
||||
/obj/item/melee/baseball_bat/attack(mob/living/target, mob/living/user)
|
||||
if (BODY_ZONE_PRECISE_GROIN && user.a_intent != INTENT_HARM) //ROUGH PRISON HUMILATION YAY
|
||||
@@ -22,7 +22,7 @@
|
||||
message = (user == target) ? pick("fucks [possessive_verb] own ass with \the [src]","shoves \the [src] into [possessive_verb] ass", "jams \the [src] into [possessive_verb] ass") : pick("fucks [target]'s asshole with \the [src]", "jams \the [src] into [target]'s ass")
|
||||
lust_amt = NORMAL_LUST
|
||||
if(message)
|
||||
user.visible_message("<span class='lewd'>[user] [message].</span>")
|
||||
user.visible_message(span_lewd("[user] [message]."))
|
||||
target.handle_post_sex(lust_amt, null, user)
|
||||
playsound(loc, pick('modular_sand/sound/interactions/bang4.ogg',
|
||||
'modular_sand/sound/interactions/bang5.ogg',
|
||||
@@ -33,7 +33,7 @@
|
||||
return
|
||||
var/atom/throw_target = get_edge_target_turf(target, user.dir)
|
||||
if(homerun_ready)
|
||||
user.visible_message("<span class='userdanger'>It's a home run!</span>")
|
||||
user.visible_message(span_userdanger("It's a home run!"))
|
||||
target.throw_at(throw_target, rand(8,10), 14, user)
|
||||
target.ex_act(EXPLODE_HEAVY)
|
||||
playsound(get_turf(src), 'sound/weapons/homerun.ogg', 100, TRUE)
|
||||
|
||||
Reference in New Issue
Block a user