Kitchen Sink P2 TGUI Prefs (#17579)

* Kitchen Sink V2

* tsx

* Update vorestation.dme

* Update 01_basic.dm

* Update 01_basic.dm

* Deletes the character  directory

* F & M tags

* Flexible

* Update misc.dm

* ICP

* more fixes

* missing sounds
This commit is contained in:
Cameron Lennox
2025-04-26 16:08:58 -04:00
committed by GitHub
parent ea488c4ba4
commit a0e9785d0d
62 changed files with 1210 additions and 397 deletions
@@ -15,9 +15,16 @@
var/pred_ooc_notes
var/pred_ooc_likes
var/pred_ooc_dislikes
var/pred_ooc_favs
var/pred_ooc_maybes
var/pred_ooc_style
var/prey_ooc_favs
var/prey_ooc_maybes
var/prey_ooc_style
var/prey_ooc_notes
var/prey_ooc_likes
var/prey_ooc_dislikes
var/was_mob
/mob/living/dominated_brain/Initialize(mapload, var/mob/living/pred, preyname, var/mob/living/prey)
prey_name = preyname
@@ -112,6 +119,9 @@
prey_goes_here.ooc_notes = prey_ooc_notes
prey_goes_here.ooc_notes_likes = prey_ooc_likes
prey_goes_here.ooc_notes_dislikes = prey_ooc_dislikes
prey_goes_here.ooc_notes_favs = prey_ooc_favs
prey_goes_here.ooc_notes_maybes = prey_ooc_maybes
prey_goes_here.ooc_notes_style = prey_ooc_style
add_verb(prey_goes_here, /mob/living/dominated_brain/proc/cease_this_foolishness)
@@ -128,6 +138,9 @@
prey_goes_here.ooc_notes = prey_ooc_notes
prey_goes_here.ooc_notes_likes = prey_ooc_likes
prey_goes_here.ooc_notes_dislikes = prey_ooc_dislikes
prey_goes_here.ooc_notes_favs = prey_ooc_favs
prey_goes_here.ooc_notes_maybes = prey_ooc_maybes
prey_goes_here.ooc_notes_style = prey_ooc_style
///////////////////
@@ -140,6 +153,9 @@
pred_body.ooc_notes = pred_ooc_notes
pred_body.ooc_notes_likes = pred_ooc_likes
pred_body.ooc_notes_dislikes = pred_ooc_dislikes
pred_body.ooc_notes_favs = pred_ooc_favs
pred_body.ooc_notes_maybes = pred_ooc_maybes
pred_body.ooc_notes_style = pred_ooc_style
log_and_message_admins("is now controlled by [pred_body.ckey]. They were restored to control through prey domination, and had been controlled by [prey_ckey].", pred_body)
pred_body.absorb_langs()
pred_body.prey_controlled = FALSE
@@ -173,6 +189,7 @@
set category = "Abilities.Vore"
set name = "Dominate Predator"
set desc = "Connect to and dominate the brain of your predator."
var/is_mob = FALSE // - tracks if character is a non player mob TODO: Add
var/mob/living/pred
var/mob/living/prey = src
@@ -196,9 +213,6 @@
to_chat(prey, span_warning("[pred] is unable to be dominated."))
return
if(!pred.ckey)
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_warning("Forces beyond your comprehension forbid you from taking control of [pred]."))
return
@@ -212,11 +226,21 @@
return
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_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
if(pred.ckey) //check if body is assigned to another player currently
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_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
else if(!pred.client && ("original_player" in pred.vars)) //check if the body belonged to a player and give proper log about it while preparing it
log_and_message_admins("[key_name_admin(prey)] is taking control over [pred] while they are out of their body.")
pred.ckey="DOMPLY[rand(100000,999999)]"
is_mob = TRUE
else //at this point we end up with a mob
pred.ckey = "DOMMOB[rand(100000,999999)]" //this is cursed, but it does work and is cleaned up after
is_mob = TRUE
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))
@@ -241,6 +265,12 @@
pred_brain.prey_ooc_notes = prey.ooc_notes
pred_brain.prey_ooc_likes = prey.ooc_notes_likes
pred_brain.prey_ooc_dislikes = prey.ooc_notes_dislikes
pred_brain.prey_ooc_favs = prey.ooc_notes_favs
pred_brain.prey_ooc_maybes = prey.ooc_notes_maybes
pred_brain.prey_ooc_style = prey.ooc_notes_style
pred_brain.pred_ooc_favs = pred.ooc_notes_favs
pred_brain.pred_ooc_maybes = pred.ooc_notes_maybes
pred_brain.pred_ooc_style = pred.ooc_notes_style
pred_brain.pred_ooc_notes = pred.ooc_notes
pred_brain.pred_ooc_likes = pred.ooc_notes_likes
pred_brain.pred_ooc_dislikes = pred.ooc_notes_dislikes
@@ -256,6 +286,9 @@
pred.ooc_notes = pred_brain.prey_ooc_notes
pred.ooc_notes_likes = pred_brain.prey_ooc_likes
pred.ooc_notes_dislikes = pred_brain.prey_ooc_dislikes
pred.ooc_notes_favs = pred_brain.prey_ooc_favs
pred.ooc_notes_maybes = pred_brain.prey_ooc_maybes
pred.ooc_notes_style = pred_brain.prey_ooc_style
add_verb(pred, /mob/proc/release_predator)
@@ -268,6 +301,9 @@
if(delete_source)
qdel(prey)
if(is_mob == 1)
pred_brain.was_mob = TRUE
/mob/proc/release_predator()
set category = "Abilities.Vore"
set name = "Restore Control"
@@ -279,7 +315,12 @@
if(db.ckey == db.pred_ckey)
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()
if(db.was_mob)
db.pred_ckey = null
db.ckey = null
db.restore_control()
else
db.restore_control()
return
else
continue
@@ -317,6 +358,14 @@
possible_mobs |= L
else
continue
var/obj/item/grab/G = src.get_active_hand()
if(istype(G))
var/mob/living/L = G.affecting
if(istype(L) && L.allow_mind_transfer)
if(G.state != GRAB_NECK)
possible_mobs |= "~~[L.name]~~ (reinforce grab first)"
else
possible_mobs |= L
if(!possible_mobs)
to_chat(src, span_warning("There are no valid targets inside of you."))
return
@@ -324,6 +373,9 @@
if(!input)
return
var/mob/living/M = input
if(!istype(M))
to_chat(src, span_warning("You must have a tighter grip to dominate this creature."))
return
if(!M.allow_mind_transfer) //check if the dominated mob pref is enabled
to_chat(src, span_warning("[M] is unable to be dominated."))
return
@@ -340,11 +392,13 @@
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(istype(G) && M == G.affecting)
src.visible_message(span_danger("[src] seems to be doing something to [M], resulting in [M]'s body looking increasingly drowsy with every passing moment!"))
if(!do_after(src, 10 SECONDS, exclusive = TRUE))
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))
if(!isbelly(M.loc) && !(istype(G) && M == G.affecting && G.state == GRAB_NECK)) //CHOMPEdit - Let dominate prey work on grabbed people
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
@@ -364,6 +418,12 @@
db.ooc_notes = M.ooc_notes
db.ooc_notes_likes = M.ooc_notes_likes
db.ooc_notes_dislikes = M.ooc_notes_dislikes
db.ooc_notes_favs = M.ooc_notes_favs
db.ooc_notes_maybes = M.ooc_notes_maybes
db.ooc_notes_style = M.ooc_notes_style
db.prey_ooc_favs = M.ooc_notes_favs
db.prey_ooc_maybes = M.ooc_notes_maybes
db.prey_ooc_style = M.ooc_notes_style
db.prey_ooc_likes = M.ooc_notes_likes
db.prey_ooc_dislikes = M.ooc_notes_dislikes
add_verb(db, /mob/living/dominated_brain/proc/cease_this_foolishness)
@@ -374,6 +434,8 @@
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_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..."))
if(istype(G) && M == G.affecting)
visible_message(span_danger("[src] seems to finish whatever they were doing to [M]."))
/mob/living/dominated_brain/proc/cease_this_foolishness()
set category = "Abilities.Vore"
@@ -472,6 +534,12 @@
pred_brain.prey_ooc_notes = prey.ooc_notes
pred_brain.prey_ooc_likes = prey.ooc_notes_likes
pred_brain.prey_ooc_dislikes = prey.ooc_notes_dislikes
pred_brain.prey_ooc_favs = prey.ooc_notes_favs
pred_brain.prey_ooc_maybes = prey.ooc_notes_maybes
pred_brain.prey_ooc_style = prey.ooc_notes_style
pred_brain.pred_ooc_favs = pred.ooc_notes_favs
pred_brain.pred_ooc_maybes = pred.ooc_notes_maybes
pred_brain.pred_ooc_style = pred.ooc_notes_style
pred_brain.pred_ooc_notes = pred.ooc_notes
pred_brain.pred_ooc_likes = pred.ooc_notes_likes
pred_brain.pred_ooc_dislikes = pred.ooc_notes_dislikes
@@ -486,6 +554,9 @@
pred.ooc_notes = pred_brain.prey_ooc_notes
pred.ooc_notes_likes = pred_brain.prey_ooc_likes
pred.ooc_notes_dislikes = pred_brain.prey_ooc_dislikes
pred.ooc_notes_favs = pred_brain.prey_ooc_favs
pred.ooc_notes_maybes = pred_brain.prey_ooc_maybes
pred.ooc_notes_style = pred_brain.prey_ooc_style
add_verb(pred, /mob/proc/release_predator)
@@ -22,11 +22,9 @@
ooc_notes = client.prefs.read_preference(/datum/preference/text/living/ooc_notes)
ooc_notes_likes = client.prefs.read_preference(/datum/preference/text/living/ooc_notes_likes)
ooc_notes_dislikes = client.prefs.read_preference(/datum/preference/text/living/ooc_notes_dislikes)
/* Not implemented on virgo
ooc_notes_favs = read_preference(/datum/preference/text/living/ooc_notes_favs)
ooc_notes_maybes = read_preference(/datum/preference/text/living/ooc_notes_maybes)
ooc_notes_style = read_preference(/datum/preference/toggle/living/ooc_notes_style)
*/
private_notes = client.prefs.read_preference(/datum/preference/text/living/private_notes)
digestable = client.prefs_vr.digestable
devourable = client.prefs_vr.devourable