ports mind transfer pref from chomp (#16225)

* ports mind transfer pref from chomp

* don't push that

* .
This commit is contained in:
Kashargul
2024-08-31 05:29:49 +10:00
committed by GitHub
parent 753e398fe4
commit 10637da2f4
44 changed files with 118 additions and 7 deletions
@@ -25,6 +25,10 @@
to_chat(usr,"<span class='warning'>A warning pops up on the device, informing you that [M] appears braindead.</span>")
return
if(!M.allow_mind_transfer)
to_chat(usr,"<span class='danger'>The target's mind is too complex to be affected!</span>")
return
if(M.stat == DEAD) //Are they dead?
to_chat(usr,"<span class='warning'>A warning pops up on the device, informing you that [M] is dead, and, as such, the mind transfer can not be done.</span>")
return
+1
View File
@@ -4873,6 +4873,7 @@
/mob/living/simple_mob/slime
composition_reagent = "slimejelly"
allow_mind_transfer = TRUE
/mob/living/simple_mob
var/kitchen_tag = "animal" //Used for cooking with animals
+2
View File
@@ -41,6 +41,8 @@
var/frustration = 0
var/max_frustration = 0
allow_mind_transfer = TRUE
/mob/living/bot/New()
..()
//update_icons() //VOREstation edit: moved to Init
@@ -60,6 +60,8 @@
var/picked_color = FALSE
allow_mind_transfer = TRUE
can_enter_vent_with = list(
/obj/item/weapon/implant,
/obj/item/device/radio/borg,
@@ -117,6 +117,8 @@
/obj/item/stack/material/chitin = 1\
)
allow_mind_transfer = TRUE
/mob/living/simple_mob/animal/giant_spider/apply_melee_effects(var/atom/A)
if(isliving(A))
var/mob/living/L = A
@@ -2,4 +2,5 @@
// They can also be displaced by all mobs.
/mob/living/simple_mob/animal/passive
ai_holder_type = /datum/ai_holder/simple_mob/passive
mob_bump_flag = 0
mob_bump_flag = 0
allow_mind_transfer = TRUE
@@ -3,6 +3,7 @@
minbodytemp = 175
cold_resist = 0.75
heat_resist = -0.5
allow_mind_transfer = TRUE
tame_items = list(
/obj/item/weapon/reagent_containers/food/snacks/crabmeat = 20,
@@ -27,6 +27,8 @@
say_list_type = /datum/say_list/bear
allow_mind_transfer = TRUE
/datum/say_list/bear
speak = list("RAWR!","Rawr!","GRR!","Growl!")
emote_see = list("stares ferociously", "stomps")
@@ -52,6 +52,8 @@
var/do_seasons = TRUE
var/picked_color = FALSE
allow_mind_transfer = TRUE
/////////////////////////////////////// Vore stuff///////////////////////////////////////////
swallowTime = 4 SECONDS
@@ -24,6 +24,8 @@
faction = "vampire"
allow_mind_transfer = TRUE
// Activate Noms!
/mob/living/simple_mob/vore/bat
vore_active = 1
@@ -55,4 +57,3 @@
B.escapechance = 15
B.selective_preference = DM_DRAIN
B.escape_stun = 5
@@ -44,6 +44,8 @@
var/poison_chance = 10 // Chance for injection to occur.
var/poison_per_bite = 1 // Amount added per injection.
allow_mind_transfer = TRUE
/mob/living/simple_mob/vore/bee/Process_Spacemove(var/check_drift = 0)
return 1 //No drifting in space for space bee!
@@ -73,6 +73,8 @@
loot_list = list(/obj/item/borg/upgrade/basic/syndicate = 6, /obj/item/borg/upgrade/basic/vtec = 6, /obj/item/weapon/material/knife/ritual = 6, /obj/item/weapon/disk/nifsoft/compliance = 6)
allow_mind_transfer = TRUE
/mob/living/simple_mob/vore/aggressive/corrupthound/prettyboi
name = "corrupt corrupt hound"
desc = "Bad boy machine broke as well. Seems an attempt was made to achieve a less threatening look, and this one is definitely having some conflicting feelings about it."
@@ -59,6 +59,8 @@
ai_holder_type = /datum/ai_holder/simple_mob/melee/deathclaw
allow_mind_transfer = TRUE
// Activate Noms!
/mob/living/simple_mob/vore/aggressive/deathclaw
vore_active = 1
@@ -39,6 +39,8 @@
max_n2 = 0
minbodytemp = 0
allow_mind_transfer = TRUE
// Activate Noms!
/mob/living/simple_mob/vore/aggressive/dino
vore_active = 1
@@ -194,6 +194,10 @@
to_chat(prey, "<span class='warning'>You cannot do that in your current state.</span>")
return
if(!pred.allow_mind_transfer)
to_chat(prey, "<span class='warning'>[pred] is unable to be dominated.</span>")
return
if(!pred.ckey)
to_chat(prey, "<span class='notice'>\The [pred] isn't able to be dominated.</span>")
return
@@ -316,7 +320,7 @@
var/list/possible_mobs = list()
for(var/obj/belly/B in src.vore_organs)
for(var/mob/living/L in B)
if(isliving(L) && L.ckey)
if(isliving(L) && L.ckey && L.allow_mind_transfer)
possible_mobs |= L
else
continue
@@ -327,6 +331,9 @@
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>")
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]).")
@@ -52,6 +52,8 @@
say_list_type = /datum/say_list/fennec
ai_holder_type = /datum/ai_holder/simple_mob/passive
allow_mind_transfer = TRUE
// Activate Noms!
/mob/living/simple_mob/vore/fennec
vore_active = 1
@@ -27,6 +27,8 @@
say_list_type = /datum/say_list/fennix
ai_holder_type = /datum/ai_holder/simple_mob/retaliate/cooperative
allow_mind_transfer = TRUE
/datum/say_list/fennix
speak = list("SQUEL!","SQEL?","Skree.")
emote_hear = list("Screeeeecheeeeessss!","Chirrup.")
@@ -44,6 +44,8 @@
special_attack_max_range = 5
special_attack_cooldown = 100
allow_mind_transfer = TRUE
// Pepe is love, not hate.
/mob/living/simple_mob/vore/aggressive/frog/New()
if(rand(1,1000000) == 1)
@@ -35,6 +35,8 @@
say_list_type = /datum/say_list/horse
ai_holder_type = /datum/ai_holder/simple_mob/retaliate
allow_mind_transfer = TRUE
/mob/living/simple_mob/vore/horse/big
name = "horse"
icon_state = "horse"
@@ -194,4 +196,4 @@
holder.set_dir(moving_to)
holder.IMove(get_step(holder,moving_to))
wander_delay = base_wander_delay
ai_log("handle_wander_movement() : Exited.", AI_LOG_TRACE)
ai_log("handle_wander_movement() : Exited.", AI_LOG_TRACE)
@@ -27,6 +27,8 @@
max_n2 = 0
minbodytemp = 0
allow_mind_transfer = TRUE
// Activate Noms!
vore_active = 1
vore_pounce_chance = 0
@@ -47,6 +47,8 @@
var/tamed = 0
var/tame_chance = 50 //It's a fiddy-fiddy default you may get a buddy pal or you may get mauled and ate. Win-win!
allow_mind_transfer = TRUE
// Activate Noms!
/mob/living/simple_mob/vore/otie
@@ -58,6 +58,8 @@
maxHealth = 100
health = 100
allow_mind_transfer = TRUE
/mob/living/simple_mob/vore/pakkun/Life()
. = ..()
if(client)
@@ -42,6 +42,8 @@
say_list_type = /datum/say_list/panther
ai_holder_type = /datum/ai_holder/simple_mob/melee/evasive
allow_mind_transfer = TRUE
// Activate Noms!
/mob/living/simple_mob/vore/aggressive/panther
vore_active = 1
@@ -43,6 +43,8 @@
vore_default_mode = DM_HOLD
vore_icons = SA_ICON_LIVING
allow_mind_transfer = TRUE
var/body_color //brown, black and white, leave blank for random
var/grumpiness = 0 // This determines how grumpy we are. Pet us to increase it, leave us alone to decrease.
@@ -48,6 +48,8 @@
"raptorwhite"
)
allow_mind_transfer = TRUE
/mob/living/simple_mob/vore/raptor
vore_bump_chance = 25
@@ -70,6 +70,8 @@
say_list_type = /datum/say_list/rat
ai_holder_type = /datum/ai_holder/simple_mob/melee/rat
allow_mind_transfer = TRUE
/mob/living/simple_mob/vore/aggressive/rat/init_vore()
..()
var/obj/belly/B = vore_selected
@@ -28,6 +28,8 @@
say_list_type = /datum/say_list/redpanda
ai_holder_type = /datum/ai_holder/simple_mob/passive
allow_mind_transfer = TRUE
// Activate Noms!
/mob/living/simple_mob/vore/redpanda
vore_active = 1
@@ -56,6 +56,8 @@
"scel_green"
)
allow_mind_transfer = TRUE
/mob/living/simple_mob/vore/scel/New()
..()
if(random_skin)
@@ -84,6 +84,8 @@
ai_holder_type = /datum/ai_holder/simple_mob/melee
say_list_type = /datum/say_list/sect_drone
allow_mind_transfer = TRUE
/mob/living/simple_mob/vore/sect_drone/Login()
. = ..()
verbs |= /mob/living/simple_mob/vore/sect_drone/proc/set_abdomen_color
@@ -85,6 +85,8 @@
ai_holder_type = /datum/ai_holder/simple_mob/melee
say_list_type = /datum/say_list/sect_queen
allow_mind_transfer = TRUE
/mob/living/simple_mob/vore/sect_queen/Login()
. = ..()
verbs |= /mob/living/simple_mob/vore/sect_queen/proc/set_abdomen_color
@@ -54,6 +54,8 @@
ai_holder_type = /datum/ai_holder/simple_mob/melee
allow_mind_transfer = TRUE
// Activate Noms!
/mob/living/simple_mob/vore/aggressive/giant_snake
vore_active = 1
@@ -51,6 +51,7 @@ List of things solar grubs should be able to do:
var/shock_chance = 10 // Beware
var/tracked = FALSE
allow_mind_transfer = TRUE
glow_override = TRUE
/datum/say_list/solargrub
@@ -46,6 +46,7 @@
show_vore_fx = client.prefs_vr.show_vore_fx
step_mechanics_pref = client.prefs_vr.step_mechanics_pref
pickup_pref = client.prefs_vr.pickup_pref
allow_mind_transfer = client.prefs_vr.allow_mind_transfer
/mob/living/simple_mob/proc/set_name()
set name = "Set Name"
@@ -31,6 +31,8 @@
has_hands = 1
allow_mind_transfer = TRUE
// Nomnomn
/mob/living/simple_mob/vore/weretiger
vore_active = 1
@@ -33,6 +33,8 @@
ai_holder_type = /datum/ai_holder/simple_mob/melee/evasive
catalogue_data = list(/datum/category_item/catalogue/fauna/wolf)
allow_mind_transfer = TRUE
// Activate Noms!
/mob/living/simple_mob/vore/wolf
vore_active = 1
@@ -28,7 +28,7 @@
maxHealth = 150
health = 150
see_in_dark = 10
//Something something, phoron mutation.
min_oxy = 0
max_oxy = 0
@@ -64,5 +64,7 @@
ai_holder_type = /datum/ai_holder/simple_mob/melee
say_list_type = /datum/say_list/xeno_defanged
allow_mind_transfer = TRUE
/datum/say_list/xeno_defanged
say_got_target = list("hisses angrily!")
say_got_target = list("hisses angrily!")
+3
View File
@@ -264,6 +264,7 @@
P.nutrition_messages = src.nutrition_messages
P.weight_message_visible = src.weight_message_visible
P.weight_messages = src.weight_messages
P.allow_mind_transfer = src.allow_mind_transfer
P.vore_sprite_color = istype(src, /mob/living/carbon/human) ? src:vore_sprite_color : null
@@ -316,6 +317,7 @@
nutrition_messages = P.nutrition_messages
weight_message_visible = P.weight_message_visible
weight_messages = P.weight_messages
allow_mind_transfer = P.allow_mind_transfer
if (istype(src, /mob/living/carbon/human))
@@ -1135,6 +1137,7 @@
dispvoreprefs += "<b>Food Vore:</b> [food_vore ? "Enabled" : "Disabled"]<br>"
dispvoreprefs += "<b>Inbelly Spawning:</b> [allow_inbelly_spawning ? "Allowed" : "Disallowed"]<br>"
dispvoreprefs += "<b>Spontaneous transformation:</b> [allow_spontaneous_tf ? "Enabled" : "Disabled"]<br>"
dispvoreprefs += "<b>Mind transfer:</b> [allow_mind_transfer ? "Allowed" : "Disallowed"]<br>"
dispvoreprefs += "<b>Can be stepped on/over:</b> [step_mechanics_pref ? "Allowed" : "Disallowed"]<br>"
dispvoreprefs += "<b>Can be picked up:</b> [pickup_pref ? "Allowed" : "Disallowed"]<br>"
dispvoreprefs += "<b>Global Vore Privacy is:</b> [eating_privacy_global ? "Subtle" : "Loud"]<br>"
+1
View File
@@ -27,6 +27,7 @@
var/selective_preference = DM_DEFAULT // Preference for selective bellymode
var/text_warnings = TRUE // Allows us to dismiss the text limit warning messages after viewing it once per round
var/eating_privacy_global = FALSE // Makes eating attempt/success messages only reach for subtle range if true, overwritten by belly-specific var
var/allow_mind_transfer = FALSE //Allows ones mind to be taken over or swapped
var/nutrition_message_visible = TRUE
var/list/nutrition_messages = list(
"They are starving! You can hear their stomach snarling from across the room!",
+5
View File
@@ -70,6 +70,7 @@ V::::::V V::::::VO:::::::OOO:::::::ORR:::::R R:::::REE::::::EEEEEE
var/pickup_pref = TRUE
var/vore_sprite_color = list("stomach" = "#000", "taur belly" = "#000")
var/allow_mind_transfer = FALSE
var/list/belly_prefs = list()
var/vore_taste = "nothing in particular"
@@ -196,6 +197,7 @@ V::::::V V::::::VO:::::::OOO:::::::ORR:::::R R:::::REE::::::EEEEEE
weight_messages = json_from_file["weight_messages"]
eating_privacy_global = json_from_file["eating_privacy_global"]
vore_sprite_color = json_from_file["vore_sprite_color"]
allow_mind_transfer = json_from_file["allow_mind_transfer"]
//Quick sanitize
if(isnull(digestable))
@@ -284,6 +286,8 @@ V::::::V V::::::VO:::::::OOO:::::::ORR:::::R R:::::REE::::::EEEEEE
weight_messages.Add("")
if(isnull(vore_sprite_color))
vore_sprite_color = list("stomach" = "#000", "taur belly" = "#000")
if(isnull(allow_mind_transfer))
allow_mind_transfer = FALSE
return TRUE
/datum/vore_preferences/proc/save_vore()
@@ -317,6 +321,7 @@ V::::::V V::::::VO:::::::OOO:::::::ORR:::::R R:::::REE::::::EEEEEE
"slip_vore" = slip_vore,
"stumble_vore" = stumble_vore,
"throw_vore" = throw_vore,
"allow_mind_transfer" = allow_mind_transfer,
"food_vore" = food_vore,
"digest_pain" = digest_pain,
"nutrition_message_visible" = nutrition_message_visible,
+7
View File
@@ -335,6 +335,7 @@ var/global/list/belly_colorable_only_fullscreens = list("a_synth_flesh_mono",
"step_mechanics_active" = host.step_mechanics_pref,
"pickup_mechanics_active" = host.pickup_pref,
"noisy" = host.noisy,
"allow_mind_transfer" = host.allow_mind_transfer,
"drop_vore" = host.drop_vore,
"slip_vore" = host.slip_vore,
"stumble_vore" = host.stumble_vore,
@@ -569,6 +570,12 @@ var/global/list/belly_colorable_only_fullscreens = list("a_synth_flesh_mono",
host.client.prefs_vr.pickup_pref = host.pickup_pref
unsaved_changes = TRUE
return TRUE
if("toggle_allow_mind_transfer")
host.allow_mind_transfer = !host.allow_mind_transfer
if(host.client.prefs_vr)
host.client.prefs_vr.allow_mind_transfer = host.allow_mind_transfer
unsaved_changes = TRUE
return TRUE
if("toggle_healbelly")
host.permit_healbelly = !host.permit_healbelly
if(host.client.prefs_vr)
+1
View File
@@ -250,6 +250,7 @@
new_mob.allow_spontaneous_tf = allow_spontaneous_tf
new_mob.eating_privacy_global = eating_privacy_global
new_mob.text_warnings = text_warnings
new_mob.allow_mind_transfer = allow_mind_transfer
/////SUBTYPES/////
@@ -28,6 +28,7 @@ export const VoreUserPreferences = (props: {
can_be_drop_pred,
allow_inbelly_spawning,
allow_spontaneous_tf,
allow_mind_transfer,
step_mechanics_active,
pickup_mechanics_active,
noisy,
@@ -367,6 +368,21 @@ export const VoreUserPreferences = (props: {
disabled: 'Spontaneous TF Disabled',
},
},
mind_transfer: {
action: 'toggle_allow_mind_transfer',
test: allow_mind_transfer,
tooltip: {
main:
'This toggle is for mind transfer interactions' +
' as a victim, such as mind-binder or dominate pred/prey.',
enable: 'Click here to allow your mind being taken or swapped.',
disable: 'Click here to disallow having your mind taken or swapped.',
},
content: {
enabled: 'Mind Transfer Enabled',
disabled: 'Mind Transfer Disabled',
},
},
examine_nutrition: {
action: 'toggle_nutrition_ex',
test: nutrition_message_visible,
@@ -112,7 +112,10 @@ export const VoreUserPreferencesMechanical = (props: {
Selective Mode Preference
</Button>
</Flex.Item>
<Flex.Item basis="32%" grow={3}>
<Flex.Item basis="32%">
<VoreUserPreferenceItem spec={preferences.mind_transfer} />
</Flex.Item>
<Flex.Item basis="32%" grow={1}>
<VoreUserPreferenceItem spec={preferences.eating_privacy_global} />
</Flex.Item>
</Flex>
@@ -160,6 +160,7 @@ export type prefData = {
step_mechanics_active: BooleanLike;
pickup_mechanics_active: BooleanLike;
noisy: BooleanLike;
allow_mind_transfer: BooleanLike;
drop_vore: BooleanLike;
slip_vore: BooleanLike;
stumble_vore: BooleanLike;
@@ -198,6 +199,7 @@ export type localPrefs = {
remains: preferenceData;
pickuppref: preferenceData;
spontaneous_tf: preferenceData;
mind_transfer: preferenceData;
examine_nutrition: preferenceData;
examine_weight: preferenceData;
eating_privacy_global: preferenceData;