mirror of
https://github.com/VOREStation/VOREStation.git
synced 2026-08-22 03:27:46 +01:00
Absorb Prey Names (#18237)
* Absorb Prey Names * Test fixes (#15) * Automatic changelog compile [ci skip] * Floor tile placement and backend logic (#18228) * tiletweak * Update turfs.dm * Automatic changelog for PR #18228 [ci skip] * qucik test to telemetry (#18229) * qucik test to telemetry * . * Bump actions/checkout from 4 to 5 (#18233) Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 5. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v4...v5) --- updated-dependencies: - dependency-name: actions/checkout dependency-version: '5' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Cell-Loaded Revolver Update (#18235) Co-authored-by: Aroliacue <avaylaiss34@gmail.com> * Automatic changelog for PR #18235 [ci skip] * Absorb Prey Names * Added warning + Fixed emotes --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: vorestation-ci[bot] <199609141+vorestation-ci[bot]@users.noreply.github.com> Co-authored-by: Cameron Lennox <killer65311@gmail.com> Co-authored-by: Kashargul <144968721+Kashargul@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Aroliacue <96730930+Aroliacue@users.noreply.github.com> Co-authored-by: Aroliacue <avaylaiss34@gmail.com> * Delete html/changelogs/AutoChangeLog-pr-18235.yml * Delete html/changelogs/AutoChangeLog-pr-18228.yml * why... * . --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: fracshun <fracshun@gmail.com> Co-authored-by: vorestation-ci[bot] <199609141+vorestation-ci[bot]@users.noreply.github.com> Co-authored-by: Cameron Lennox <killer65311@gmail.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Aroliacue <96730930+Aroliacue@users.noreply.github.com> Co-authored-by: Aroliacue <avaylaiss34@gmail.com>
This commit is contained in:
co-authored by
dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Aroliacue
vorestation-ci[bot] <199609141+vorestation-ci[bot]@users.noreply.github.com>
Cameron Lennox
dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Aroliacue
fracshun
vorestation-ci[bot] <199609141+vorestation-ci[bot]@users.noreply.github.com>
dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
parent
61478b0f27
commit
eee14587ca
@@ -65,6 +65,14 @@
|
||||
/mob/proc/build_the_emote(m_type, message, input, range, runemessage)
|
||||
if(client)
|
||||
message = span_emote(span_bold("[src]") + " [input]")
|
||||
if(src.absorbed && isbelly(src.loc))
|
||||
var/obj/belly/B = src.loc
|
||||
if(B.absorbedrename_enabled)
|
||||
var/formatted_name = B.absorbedrename_name
|
||||
formatted_name = replacetext(formatted_name,"%pred",B.owner)
|
||||
formatted_name = replacetext(formatted_name,"%belly",B.name)
|
||||
formatted_name = replacetext(formatted_name,"%prey",name)
|
||||
message = span_emote(span_bold("[formatted_name]") + " [input]")
|
||||
else
|
||||
message = span_npc_emote(span_bold("[src]") + " [input]")
|
||||
|
||||
|
||||
@@ -2,6 +2,10 @@
|
||||
var/datum/component/shadekin/SK = get_shadekin_component()
|
||||
if(SK && SK.in_phase)
|
||||
return ""
|
||||
if(absorbed && isbelly(loc))
|
||||
var/obj/belly/B = loc
|
||||
if(B.absorbedrename_enabled)
|
||||
return "" // Don't use alt name if under absorbed rename.
|
||||
if(name != GetVoice())
|
||||
return " (as [get_id_name("Unknown")])"
|
||||
|
||||
@@ -107,6 +111,14 @@
|
||||
return comp.mimicing
|
||||
if(GetSpecialVoice())
|
||||
return GetSpecialVoice()
|
||||
if(absorbed && isbelly(loc)) // If absorbed in a belly, check and apply absorbed rename if applicable.
|
||||
var/obj/belly/B = loc
|
||||
if(B.absorbedrename_enabled)
|
||||
var/formatted_name = B.absorbedrename_name
|
||||
formatted_name = replacetext(formatted_name,"%pred",B.owner)
|
||||
formatted_name = replacetext(formatted_name,"%belly",B.name)
|
||||
formatted_name = replacetext(formatted_name,"%prey",name)
|
||||
return formatted_name
|
||||
return real_name
|
||||
|
||||
/mob/living/carbon/human/proc/SetSpecialVoice(var/new_voice)
|
||||
|
||||
+38
-12
@@ -76,6 +76,14 @@
|
||||
if(input)
|
||||
log_subtle(message,src)
|
||||
message = span_emote_subtle(span_bold("[src]") + " " + span_italics("[input]"))
|
||||
if(src.absorbed && isbelly(src.loc))
|
||||
var/obj/belly/B = src.loc
|
||||
if(B.absorbedrename_enabled)
|
||||
var/formatted_name = B.absorbedrename_name
|
||||
formatted_name = replacetext(formatted_name,"%pred",B.owner)
|
||||
formatted_name = replacetext(formatted_name,"%belly",B.name)
|
||||
formatted_name = replacetext(formatted_name,"%prey",name)
|
||||
message = span_emote_subtle(span_bold("[formatted_name]") + " " + span_italics("[input]"))
|
||||
if(!(subtle_mode == "Adjacent Turfs (Default)"))
|
||||
message = span_bold("(T) ") + message
|
||||
else
|
||||
@@ -272,6 +280,7 @@
|
||||
var/f = FALSE //did we find someone to send the message to other than ourself?
|
||||
var/mob/living/pb //predator body
|
||||
var/mob/living/M = src
|
||||
var/formatted_name = "\The [M]"
|
||||
if(istype(M, /mob/living/dominated_brain))
|
||||
var/mob/living/dominated_brain/db = M
|
||||
if(db.loc != db.pred_body)
|
||||
@@ -286,7 +295,15 @@
|
||||
f = TRUE
|
||||
else if(M.absorbed && isbelly(M.loc))
|
||||
pb = M.loc.loc
|
||||
to_chat(pb, span_psay("\The [M] thinks, \"[message]\"")) //To our pred if absorbed
|
||||
var/obj/belly/B = M.loc
|
||||
if(B.absorbedrename_enabled)
|
||||
formatted_name = B.absorbedrename_name
|
||||
formatted_name = replacetext(formatted_name,"%pred",B.owner)
|
||||
formatted_name = replacetext(formatted_name,"%belly",B.name)
|
||||
formatted_name = replacetext(formatted_name,"%prey","\The [M]")
|
||||
to_chat(pb, span_psay("[formatted_name] thinks, \"[message]\""))
|
||||
else
|
||||
to_chat(pb, span_psay("\The [M] thinks, \"[message]\"")) //To our pred if absorbed
|
||||
if(pb.read_preference(/datum/preference/toggle/subtle_sounds))
|
||||
pb << sound('sound/talksounds/subtle_sound.ogg', volume = 50)
|
||||
f = TRUE
|
||||
@@ -303,7 +320,7 @@
|
||||
for(var/B in pb.vore_organs)
|
||||
for(var/mob/living/L in B)
|
||||
if(L.absorbed && L != M && L.ckey)
|
||||
to_chat(L, span_psay("\The [M] thinks, \"[message]\"")) //To any absorbed people in the pred
|
||||
to_chat(L, span_psay("[formatted_name] thinks, \"[message]\"")) //To any absorbed people in the pred
|
||||
if(L.read_preference(/datum/preference/toggle/subtle_sounds))
|
||||
L << sound('sound/talksounds/subtle_sound.ogg', volume = 50)
|
||||
f = TRUE
|
||||
@@ -312,14 +329,14 @@
|
||||
for(var/I in M.contents)
|
||||
if(istype(I, /mob/living/dominated_brain))
|
||||
var/mob/living/dominated_brain/db = I
|
||||
to_chat(db, span_psay(span_bold("\The [M] thinks, \"[message]\""))) //To any dominated brains inside us
|
||||
to_chat(db, span_psay(span_bold("[formatted_name] thinks, \"[message]\""))) //To any dominated brains inside us
|
||||
if(db.read_preference(/datum/preference/toggle/subtle_sounds))
|
||||
db << sound('sound/talksounds/subtle_sound.ogg', volume = 50)
|
||||
f = TRUE
|
||||
for(var/B in M.vore_organs)
|
||||
for(var/mob/living/L in B)
|
||||
if(L.absorbed)
|
||||
to_chat(L, span_psay(span_bold("\The [M] thinks, \"[message]\""))) //To any absorbed people inside us
|
||||
to_chat(L, span_psay(span_bold("[formatted_name] thinks, \"[message]\""))) //To any absorbed people inside us
|
||||
if(L.read_preference(/datum/preference/toggle/subtle_sounds))
|
||||
L << sound('sound/talksounds/subtle_sound.ogg', volume = 50)
|
||||
f = TRUE
|
||||
@@ -339,7 +356,7 @@
|
||||
else if(isobserver(G) && G.client?.prefs?.read_preference(/datum/preference/toggle/ghost_ears) && \
|
||||
G.client?.prefs?.read_preference(/datum/preference/toggle/ghost_see_whisubtle))
|
||||
if(client?.prefs?.read_preference(/datum/preference/toggle/whisubtle_vis) || check_rights_for(G.client, R_HOLDER))
|
||||
to_chat(G, span_psay("\The [M] thinks, \"[message]\""))
|
||||
to_chat(G, span_psay("[formatted_name] thinks, \"[message]\""))
|
||||
log_say(message,M)
|
||||
else //There wasn't anyone to send the message to, pred or prey, so let's just say it instead and correct our psay just in case.
|
||||
M.forced_psay = FALSE
|
||||
@@ -368,6 +385,7 @@
|
||||
var/f = FALSE //did we find someone to send the message to other than ourself?
|
||||
var/mob/living/pb //predator body
|
||||
var/mob/living/M = src
|
||||
var/formatted_name = "\The [M]"
|
||||
if(istype(M, /mob/living/dominated_brain))
|
||||
var/mob/living/dominated_brain/db = M
|
||||
if(db.loc != db.pred_body)
|
||||
@@ -383,7 +401,15 @@
|
||||
|
||||
else if(M.absorbed && isbelly(M.loc))
|
||||
pb = M.loc.loc
|
||||
to_chat(pb, span_pemote("\The [M] [message]")) //To our pred if absorbed
|
||||
var/obj/belly/B = M.loc
|
||||
if(B.absorbedrename_enabled)
|
||||
formatted_name = B.absorbedrename_name
|
||||
formatted_name = replacetext(formatted_name,"%pred",B.owner)
|
||||
formatted_name = replacetext(formatted_name,"%belly",B.name)
|
||||
formatted_name = replacetext(formatted_name,"%prey","\The [M]")
|
||||
to_chat(pb, span_pemote("[formatted_name] [message]"))
|
||||
else
|
||||
to_chat(pb, span_pemote("\The [M] [message]")) //To our pred if absorbed
|
||||
if(pb.read_preference(/datum/preference/toggle/subtle_sounds))
|
||||
pb << sound('sound/talksounds/subtle_sound.ogg', volume = 50)
|
||||
f = TRUE
|
||||
@@ -393,14 +419,14 @@
|
||||
for(var/I in pb.contents)
|
||||
if(istype(I, /mob/living/dominated_brain) && I != M)
|
||||
var/mob/living/dominated_brain/db = I
|
||||
to_chat(db, span_pemote("\The [M] [message]")) //To any dominated brains in the pred
|
||||
to_chat(db, span_pemote("[formatted_name] [message]")) //To any dominated brains in the pred
|
||||
if(db.read_preference(/datum/preference/toggle/subtle_sounds))
|
||||
db << sound('sound/talksounds/subtle_sound.ogg', volume = 50)
|
||||
f = TRUE
|
||||
for(var/B in pb.vore_organs)
|
||||
for(var/mob/living/L in B)
|
||||
if(L.absorbed && L != M && L.ckey)
|
||||
to_chat(L, span_pemote("\The [M] [message]")) //To any absorbed people in the pred
|
||||
to_chat(L, span_pemote("[formatted_name] [message]")) //To any absorbed people in the pred
|
||||
if(L.read_preference(/datum/preference/toggle/subtle_sounds))
|
||||
L << sound('sound/talksounds/subtle_sound.ogg', volume = 50)
|
||||
f = TRUE
|
||||
@@ -409,21 +435,21 @@
|
||||
for(var/I in M.contents)
|
||||
if(istype(I, /mob/living/dominated_brain))
|
||||
var/mob/living/dominated_brain/db = I
|
||||
to_chat(db, span_pemote(span_bold("\The [M] [message]"))) //To any dominated brains inside us
|
||||
to_chat(db, span_pemote(span_bold("[formatted_name] [message]"))) //To any dominated brains inside us
|
||||
if(db.read_preference(/datum/preference/toggle/subtle_sounds))
|
||||
db << sound('sound/talksounds/subtle_sound.ogg', volume = 50)
|
||||
f = TRUE
|
||||
for(var/B in M.vore_organs)
|
||||
for(var/mob/living/L in B)
|
||||
if(L.absorbed)
|
||||
to_chat(L, span_pemote(span_bold("\The [M] [message]"))) //To any absorbed people inside us
|
||||
to_chat(L, span_pemote(span_bold("[formatted_name] [message]"))) //To any absorbed people inside us
|
||||
if(L.read_preference(/datum/preference/toggle/subtle_sounds))
|
||||
L << sound('sound/talksounds/subtle_sound.ogg', volume = 50)
|
||||
f = TRUE
|
||||
|
||||
if(f) //We found someone to send the message to
|
||||
if(pb)
|
||||
to_chat(M, span_pemote("\The [M] [message]")) //To us if we are the prey
|
||||
to_chat(M, span_pemote("[formatted_name] [message]")) //To us if we are the prey
|
||||
if(M.read_preference(/datum/preference/toggle/subtle_sounds))
|
||||
M << sound('sound/talksounds/subtle_sound.ogg', volume = 50)
|
||||
else
|
||||
@@ -436,7 +462,7 @@
|
||||
else if(isobserver(G) && G.client?.prefs?.read_preference(/datum/preference/toggle/ghost_ears) && \
|
||||
G.client?.prefs?.read_preference(/datum/preference/toggle/ghost_see_whisubtle))
|
||||
if(client?.prefs?.read_preference(/datum/preference/toggle/whisubtle_vis) || check_rights_for(G.client, R_HOLDER))
|
||||
to_chat(G, span_pemote("\The [M] [message]"))
|
||||
to_chat(G, span_pemote("[formatted_name] [message]"))
|
||||
log_say(message,M)
|
||||
else //There wasn't anyone to send the message to, pred or prey, so let's just emote it instead and correct our psay just in case.
|
||||
M.forced_psay = FALSE
|
||||
|
||||
@@ -23,6 +23,10 @@
|
||||
BB = new projectile_type(src)
|
||||
randpixel_xy()
|
||||
|
||||
/obj/item/ammo_casing/Destroy()
|
||||
QDEL_NULL(BB)
|
||||
return ..()
|
||||
|
||||
//removes the projectile from the ammo casing
|
||||
/obj/item/ammo_casing/proc/expend()
|
||||
. = BB
|
||||
|
||||
@@ -604,6 +604,18 @@
|
||||
if(new_private_struggle == 1)
|
||||
new_belly.private_struggle = TRUE
|
||||
|
||||
if(isnum(belly_data["absorbedrename_enabled"]))
|
||||
var/new_absorbedrename_enabled = belly_data["absorbedrename_enabled"]
|
||||
if(new_absorbedrename_enabled == 0)
|
||||
new_belly.absorbedrename_enabled = FALSE
|
||||
if(new_absorbedrename_enabled == 1)
|
||||
new_belly.absorbedrename_enabled = TRUE
|
||||
|
||||
if(istext(belly_data["absorbedrename_name"]))
|
||||
var/new_absorbedrename_name = sanitize(belly_data["absorbedrename_name"],MAX_MESSAGE_LEN,0,0,0)
|
||||
if(new_absorbedrename_name)
|
||||
new_belly.absorbedrename_name = new_absorbedrename_name
|
||||
|
||||
if(istext(belly_data["eating_privacy_local"]))
|
||||
var/new_eating_privacy_local = html_encode(belly_data["eating_privacy_local"])
|
||||
if(new_eating_privacy_local && (new_eating_privacy_local in list("default","subtle","loud")))
|
||||
|
||||
@@ -68,6 +68,8 @@
|
||||
var/belly_overall_mult = 1 //Multiplier applied ontop of any other specific multipliers
|
||||
var/private_struggle = FALSE // If struggles are made public or not
|
||||
var/prevent_saving = FALSE // Can this belly be saved? For special bellies that mobs and adminbus might have.
|
||||
var/absorbedrename_enabled = FALSE // If absorbed prey are renamed.
|
||||
var/absorbedrename_name = "%pred's %belly" // What absorbed prey are renamed to.
|
||||
|
||||
|
||||
var/vore_sprite_flags = DM_FLAG_VORESPRITE_BELLY
|
||||
@@ -439,6 +441,8 @@
|
||||
"entrance_logs",
|
||||
"noise_freq",
|
||||
"private_struggle",
|
||||
"absorbedrename_enabled",
|
||||
"absorbedrename_name",
|
||||
"item_digest_logs",
|
||||
"show_fullness_messages",
|
||||
"digest_max",
|
||||
|
||||
@@ -311,6 +311,8 @@
|
||||
belly_data["item_digest_logs"] = B.item_digest_logs
|
||||
belly_data["eating_privacy_local"] = B.eating_privacy_local
|
||||
belly_data["private_struggle"] = B.private_struggle
|
||||
belly_data["absorbedrename_enabled"] = B.absorbedrename_enabled
|
||||
belly_data["absorbedrename_name"] = B.absorbedrename_name
|
||||
|
||||
// Sounds
|
||||
belly_data["is_wet"] = B.is_wet
|
||||
|
||||
@@ -877,6 +877,14 @@
|
||||
if("b_private_struggle")
|
||||
host.vore_selected.private_struggle = !host.vore_selected.private_struggle
|
||||
. = TRUE
|
||||
if("b_absorbedrename_enabled")
|
||||
host.vore_selected.absorbedrename_enabled = !host.vore_selected.absorbedrename_enabled
|
||||
. = TRUE
|
||||
if("b_absorbedrename_name")
|
||||
var/new_absorbedrename_name = sanitize(params["val"], MAX_MESSAGE_LEN, FALSE, TRUE, FALSE)
|
||||
if(new_absorbedrename_name)
|
||||
host.vore_selected.absorbedrename_name = new_absorbedrename_name
|
||||
. = TRUE
|
||||
if("b_vorespawn_blacklist")
|
||||
host.vore_selected.vorespawn_blacklist = !host.vore_selected.vorespawn_blacklist
|
||||
. = TRUE
|
||||
|
||||
@@ -184,6 +184,10 @@
|
||||
"vorespawn_whitelist" = selected.vorespawn_whitelist,
|
||||
"vorespawn_absorbed" = (global_flag_check(selected.vorespawn_absorbed, VS_FLAG_ABSORB_YES) + global_flag_check(selected.vorespawn_absorbed, VS_FLAG_ABSORB_PREY)),
|
||||
"private_struggle" = selected.private_struggle,
|
||||
"absorbedrename_enabled" = selected.absorbedrename_enabled,
|
||||
"absorbedrename_name" = selected.absorbedrename_name,
|
||||
"absorbedrename_name_max" = BELLIES_NAME_MAX,
|
||||
"absorbedrename_name_min" = BELLIES_NAME_MIN,
|
||||
"drainmode" = selected.drainmode,
|
||||
"drainmode_options" = selected.drainmodes,
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user