mind transfer pref (#8258)

This commit is contained in:
Kashargul
2024-04-19 16:07:17 +02:00
committed by GitHub
parent 11eacbeddb
commit 1bc280b6f5
50 changed files with 159 additions and 93 deletions

View File

@@ -61,50 +61,6 @@ var/global/list/item_vore_blacklist = list(
/obj/item/weapon/disk/nuclear,
/obj/item/clothing/suit/storage/hooded/wintercoat/roiz)
//CHOMPEdit start - Global Whitelist mobs for takeover (mind binder/domination)
var/global/list/mob_takeover_whitelist = list(
/mob/living/carbon,
/mob/living/silicon,
/mob/living/simple_mob/animal/sif,
/mob/living/simple_mob/animal/passive,
/mob/living/simple_mob/slime,
/mob/living/bot,
/mob/living/simple_mob/vore/horse,
/mob/living/simple_mob/vore/wolf,
/mob/living/simple_mob/animal/giant_spider,
/mob/living/simple_mob/vore/pakkun,
/mob/living/simple_mob/vore/otie,
/mob/living/simple_mob/vore/scel,
/mob/living/simple_mob/vore/aggressive/corrupthound,
/mob/living/simple_mob/vore/rabbit,
/mob/living/simple_mob/vore/redpanda,
/mob/living/simple_mob/vore/fennec,
/mob/living/simple_mob/vore/fennix,
/mob/living/simple_mob/vore/bee,
/mob/living/simple_mob/animal/space/bear,
/mob/living/simple_mob/vore/aggressive/dino,
/mob/living/simple_mob/vore/aggressive/lizardman,
/mob/living/simple_mob/vore/aggressive/frog,
/mob/living/simple_mob/vore/aggressive/rat,
/mob/living/simple_mob/vore/jelly,
/mob/living/simple_mob/animal/hyena,
/mob/living/simple_mob/vore/solargrub,
/mob/living/simple_mob/vore/sect_queen,
/mob/living/simple_mob/vore/sect_drone,
/mob/living/simple_mob/vore/xeno_defanged,
/mob/living/simple_mob/vore/aggressive/panther,
/mob/living/simple_mob/vore/aggressive/giant_snake,
/mob/living/simple_mob/vore/aggressive/deathclaw,
/mob/living/simple_mob/vore/weretiger,
/mob/living/simple_mob/vore/bigdragon/friendly/maintpred,
/mob/living/simple_mob/vore/alienanimals/catslug,
/mob/living/simple_mob/vore/alienanimals/teppi,
/mob/living/simple_mob/vore/squirrel/big,
/mob/living/simple_mob/vore/raptor,
/mob/living/simple_mob/vore/bat,
)
//CHOMPEdit end
//Classic Vore sounds
var/global/list/classic_vore_sounds = list(
"Gulp" = 'sound/vore/gulp.ogg',

View File

@@ -25,6 +25,12 @@
to_chat(usr,"<span class='warning'>A warning pops up on the device, informing you that [M] appears braindead.</span>")
return
//CHOMPAdd Start
if(!M.allow_mind_transfer)
to_chat(usr,"<span class='danger'>The target's mind is too complex to be affected!</span>")
return
//CHOMPAdd End
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

View File

@@ -91,6 +91,11 @@ var/global/mob/living/carbon/human/dummy/mannequin/sleevemate_mob
M = new_M
if(ishuman(M))
//CHOMPAdd Start
if(!M.allow_mind_transfer)
to_chat(usr,"<span class='danger'>The target's mind is too complex to be affected!</span>")
return
//CHOMPAdd End
scan_mob(M, user)
else
to_chat(user,"<span class='warning'>Not a compatible subject to work with!</span>")

View File

@@ -4926,6 +4926,7 @@
/mob/living/simple_mob/slime
composition_reagent = "slimejelly"
allow_mind_transfer = TRUE //CHOMPAdd
/mob/living/simple_mob
var/kitchen_tag = "animal" //Used for cooking with animals

View File

@@ -43,6 +43,7 @@
var/max_frustration = 0
can_pain_emote = FALSE // CHOMPEdit: Sanity/safety, if bots ever get emotes later, undo this
allow_mind_transfer = TRUE //CHOMPAdd
/mob/living/bot/New()
..()

View File

@@ -58,6 +58,8 @@
var/obj/item/clothing/head/hat = null // Scughat.
var/can_wear_hat = TRUE // Some have inbuilt hats
allow_mind_transfer = TRUE //CHOMPAdd
//var/picked_color = FALSE //CHOMPEdit - now on simplemob.
can_enter_vent_with = list(

View File

@@ -118,6 +118,7 @@
)
can_be_drop_prey = FALSE //CHOMP Add
allow_mind_transfer = TRUE //CHOMPAdd
species_sounds = "Spider"
pain_emote_1p = list("chitter", "click") //CHOMP Add
pain_emote_3p = list("chitters", "clicks") //CHOMP Add

View File

@@ -82,6 +82,8 @@ They're also cool, and Rykka/Nyria wrote this uwu
say_list_type = /datum/say_list/hyena
allow_mind_transfer = TRUE //CHOMPAdd
var/obj/item/clothing/head/hat = null // The hat the yeen is wearing when initialized, var will update with the chosen hat.
// Silly stuff. HATS! Give your yeen a hat today <3

View File

@@ -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 //CHOMPAdd

View File

@@ -3,10 +3,11 @@
minbodytemp = 175
cold_resist = 0.75
heat_resist = -0.5
allow_mind_transfer = TRUE //CHOMPAdd
tame_items = list(
/obj/item/weapon/reagent_containers/food/snacks/crabmeat = 20,
/obj/item/weapon/reagent_containers/food/snacks/meat = 10
)
can_be_drop_prey = FALSE //CHOMP Add

View File

@@ -26,8 +26,9 @@
meat_amount = 8
say_list_type = /datum/say_list/bear
can_be_drop_prey = FALSE //CHOMP Add
allow_mind_transfer = TRUE //CHOMPAdd
/datum/say_list/bear
speak = list("RAWR!","Rawr!","GRR!","Growl!")

View File

@@ -52,6 +52,8 @@
var/do_seasons = TRUE
picked_color = FALSE //CHOMPedit: removed "var/" since we already have this defined for all simple_mobs.
allow_mind_transfer = TRUE //CHOMPAdd
/////////////////////////////////////// Vore stuff///////////////////////////////////////////
swallowTime = 4 SECONDS

View File

@@ -24,6 +24,8 @@
faction = "vampire"
allow_mind_transfer = TRUE //CHOMPAdd
// 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

View File

@@ -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 //CHOMPAdd
/mob/living/simple_mob/vore/bee/Process_Spacemove(var/check_drift = 0)
return 1 //No drifting in space for space bee!

View File

@@ -178,7 +178,7 @@ I think I covered everything.
)
var/eyes
can_be_drop_prey = FALSE //CHOMP Add
can_be_drop_prey = FALSE
///
/// Subtypes
@@ -201,6 +201,7 @@ I think I covered everything.
maxHealth = 200
melee_damage_lower = 20
melee_damage_upper = 15
allow_mind_transfer = TRUE
///
/// Misc define stuff
@@ -237,13 +238,13 @@ I think I covered everything.
. = ..()
if(!riding_datum)
riding_datum = new /datum/riding/simple_mob(src)
add_verb(src,/mob/living/simple_mob/proc/animal_mount) //CHOMPEdit TGPanel
add_verb(src,/mob/living/proc/toggle_rider_reins) //CHOMPEdit TGPanel
add_verb(src,/mob/living/simple_mob/vore/bigdragon/proc/set_style) //CHOMPEdit TGPanel
add_verb(src,/mob/living/simple_mob/vore/bigdragon/proc/toggle_glow) //CHOMPEdit TGPanel
add_verb(src,/mob/living/simple_mob/vore/bigdragon/proc/sprite_toggle) //CHOMPEdit TGPanel
add_verb(src,/mob/living/simple_mob/vore/bigdragon/proc/flame_toggle) //CHOMPEdit TGPanel
add_verb(src,/mob/living/simple_mob/vore/bigdragon/proc/special_toggle) //CHOMPEdit TGPanel
add_verb(src,/mob/living/simple_mob/proc/animal_mount)
add_verb(src,/mob/living/proc/toggle_rider_reins)
add_verb(src,/mob/living/simple_mob/vore/bigdragon/proc/set_style)
add_verb(src,/mob/living/simple_mob/vore/bigdragon/proc/toggle_glow)
add_verb(src,/mob/living/simple_mob/vore/bigdragon/proc/sprite_toggle)
add_verb(src,/mob/living/simple_mob/vore/bigdragon/proc/flame_toggle)
add_verb(src,/mob/living/simple_mob/vore/bigdragon/proc/special_toggle)
//verbs |= /mob/living/simple_mob/vore/bigdragon/proc/set_name //Implemented upstream
//verbs |= /mob/living/simple_mob/vore/bigdragon/proc/set_desc //Implemented upstream
faction = "neutral"

View File

@@ -74,6 +74,7 @@
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)
can_be_drop_prey = FALSE //CHOMP Add
allow_mind_transfer = TRUE //CHOMPAdd
/mob/living/simple_mob/vore/aggressive/corrupthound/prettyboi
name = "corrupt corrupt hound"

View File

@@ -59,6 +59,8 @@
ai_holder_type = /datum/ai_holder/simple_mob/melee/deathclaw
allow_mind_transfer = TRUE //CHOMPAdd
// Activate Noms!
/mob/living/simple_mob/vore/aggressive/deathclaw
vore_active = 1

View File

@@ -38,8 +38,9 @@
min_n2 = 0
max_n2 = 0
minbodytemp = 0
can_be_drop_prey = FALSE //CHOMP Add
allow_mind_transfer = TRUE //CHOMPAdd
// Activate Noms!
/mob/living/simple_mob/vore/aggressive/dino

View File

@@ -26,7 +26,7 @@
var/prey_ooc_notes
var/prey_ooc_likes
var/prey_ooc_dislikes
var/was_mob=0 //CHOMPAdd - tracks if the dominated being was a mob
var/was_mob = FALSE //CHOMPAdd - tracks if the dominated being was a mob
/mob/living/dominated_brain/New(loc, var/mob/living/pred, preyname, var/mob/living/prey)
. = ..()
@@ -199,7 +199,7 @@
set category = "Abilities"
set name = "Dominate Predator"
set desc = "Connect to and dominate the brain of your predator."
var/is_mob=0 ////CHOMPAdd - tracks if character is a non player mob
var/is_mob = FALSE //CHOMPAdd - tracks if character is a non player mob
var/mob/living/pred
var/mob/living/prey = src
@@ -224,6 +224,12 @@
to_chat(prey, "<span class='warning'>You cannot do that in your current state.</span>")
return
//CHOMPAdd Start Mind transfer pref
if(!pred.allow_mind_transfer)
to_chat(prey, "<span class='warning'>[pred] is unable to be dominated.</span>")
return
//CHOMPAdd End
if(isrobot(pred) && jobban_isbanned(prey, "Cyborg"))
to_chat(prey, "<span class='warning'>Forces beyond your comprehension forbid you from taking control of [pred].</span>")
return
@@ -253,13 +259,10 @@
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=1
else if(!is_type_in_list(pred, mob_takeover_whitelist)) //check if the dominated mob is not on the whitelist
to_chat(prey, "<span class='warning'>[pred] is unable to be dominated.</span>")
return
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=1
pred.ckey = "DOMMOB[rand(100000,999999)]" //this is cursed, but it does work and is cleaned up after
is_mob = TRUE
//CHOMPEdit end
to_chat(pred, "<span class='warning'>You can feel the will of another overwriting your own, control of your body being sapped away from you...</span>")
@@ -328,7 +331,7 @@
//CHOMPEdit start - extra variable for mobs that assist cleanup
if(is_mob == 1)
pred_brain.was_mob=1
pred_brain.was_mob = TRUE
//CHOMPEdit End
/mob/proc/release_predator()
@@ -342,9 +345,9 @@
if(db.ckey == db.pred_ckey)
to_chat(src, "<span class='notice'>You ease off of your control, releasing \the [db].</span>")
to_chat(db, "<span class='notice'>You feel the alien presence fade, and restore control of your body to you of their own will...</span>")
if(db.was_mob==1) //CHOMPEdit start - clean up if the dominated body was a playerless mob
db.pred_ckey=null
db.ckey=null
if(db.was_mob) //CHOMPEdit start - clean up if the dominated body was a playerless mob
db.pred_ckey = null
db.ckey = null
db.restore_control()
else
db.restore_control()
@@ -381,7 +384,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
@@ -389,7 +392,7 @@
var/obj/item/weapon/grab/G = src.get_active_hand()
if(istype(G))
var/mob/living/L = G.affecting
if(istype(L))
if(istype(L) && L.allow_mind_transfer)
if(G.state != GRAB_NECK)
possible_mobs |= "~~[L.name]~~ (reinforce grab first)"
else
@@ -406,6 +409,9 @@
if(!istype(M))
to_chat(src, "<span class='warning'>You must have a tighter grip to dominate this creature.</span>")
return
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
//CHOMPEdit End
if(tgui_alert(src, "You selected [M] to attempt to dominate. Are you sure?", "Dominate Prey",list("No","Yes")) != "Yes")
return

View File

@@ -50,10 +50,12 @@
say_list_type = /datum/say_list/fennec
ai_holder_type = /datum/ai_holder/simple_mob/passive
// CHOMPAdd: :c
// CHOMPAdd: Start :c
allow_mind_transfer = TRUE
pain_emote_1p = list("yelp", "whine", "bark", "growl")
pain_emote_3p = list("yelps", "whines", "barks", "growls")
species_sounds = "Vulpine"
//CHOMPAdd End
// Activate Noms!
/mob/living/simple_mob/vore/fennec

View File

@@ -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 //CHOMPAdd
/datum/say_list/fennix
speak = list("SQUEL!","SQEL?","Skree.")
emote_hear = list("Screeeeecheeeeessss!","Chirrup.")

View File

@@ -43,8 +43,9 @@
special_attack_min_range = 1
special_attack_max_range = 5
special_attack_cooldown = 100
can_be_drop_prey = FALSE //CHOMP Add
allow_mind_transfer = TRUE //CHOMPAdd
// Pepe is love, not hate.
/mob/living/simple_mob/vore/aggressive/frog/New()

View File

@@ -36,6 +36,7 @@
ai_holder_type = /datum/ai_holder/simple_mob/retaliate
can_be_drop_prey = FALSE //CHOMP Add
allow_mind_transfer = TRUE //CHOMPAdd
/mob/living/simple_mob/vore/horse/big
name = "horse"
@@ -198,4 +199,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)

View File

@@ -16,8 +16,9 @@
say_list_type = /datum/say_list/jelly
ai_holder_type = /datum/ai_holder/simple_mob/retaliate/jelly
can_be_drop_prey = FALSE //CHOMP Add
allow_mind_transfer = TRUE //CHOMPAdd
min_oxy = 0
max_oxy = 0

View File

@@ -32,8 +32,9 @@
say_list_type = /datum/say_list/lizardman
ai_holder_type = /datum/ai_holder/simple_mob/melee
can_be_drop_prey = FALSE //CHOMP Add
allow_mind_transfer = TRUE //CHOMPAdd
/datum/say_list/lizardman
@@ -41,4 +42,4 @@
emote_hear = list("hisses", "yawns", "growls")
emote_see = list("licks their maw", "stretches", "yawns", "noodles")
say_maybe_target = list("Rawr?")
say_got_target = list("GWAR!!")
say_got_target = list("GWAR!!")

View File

@@ -47,8 +47,9 @@
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!
can_be_drop_prey = FALSE //CHOMP Add
// CHOMPAdd: :c
// CHOMPAdd Start :c
can_be_drop_prey = FALSE
allow_mind_transfer = TRUE
species_sounds = "Canine"
pain_emote_1p = list("yelp", "whine", "bark", "growl")
pain_emote_3p = list("yelps", "whines", "barks", "growls")

View File

@@ -58,6 +58,8 @@
maxHealth = 100
health = 100
allow_mind_transfer = TRUE //CHOMPAdd
/mob/living/simple_mob/vore/pakkun/Life()
. = ..()
if(client)

View File

@@ -42,8 +42,9 @@
say_list_type = /datum/say_list/panther
ai_holder_type = /datum/ai_holder/simple_mob/melee/evasive
can_be_drop_prey = FALSE //CHOMP Add
// CHOMPAdd: :c
// CHOMPAdd Start :c
can_be_drop_prey = FALSE
allow_mind_transfer = TRUE
species_sounds = "Feline"
pain_emote_1p = list("yowl", "growl")
pain_emote_3p = list("yowls", "growls")

View File

@@ -43,6 +43,8 @@
vore_default_mode = DM_HOLD
vore_icons = SA_ICON_LIVING
allow_mind_transfer = TRUE //CHOMPAdd
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.
@@ -90,13 +92,13 @@
var/pounce_chance = CanPounceTarget(user)
if(pounce_chance)
PounceTarget(user, pounce_chance)
// CHOMPEdit start: More voremob bellies!
/mob/living/simple_mob/vore/rabbit/init_vore()
if(!voremob_loaded)
return
.=..()
var/obj/belly/B = vore_selected
B.name = "stomach"
B.desc = "With a sudden pounce, the rabbit begins swallowing you down with ease! A pink maw and surprisingly unintimidating teeth give way to the thing's pink, tight throat, until you're crammed down inside it's gut! Unless you happen to be drastically smaller than it, the inside of this thing's gut is incredibly cramped, as the fleshy pink walls undulate over your form. It's clearly still able to move with you inside somehow, despite the tiny size of the thing, as gastric sounds flood your ears. You've been bested by a RABBIT of all things!"
@@ -105,13 +107,13 @@
B.fancy_vore = 1 // CHOMPedit - Fancy Vore Sounds
B.belly_fullscreen_color = "#b15aac" // CHOMPedit - Belly Fullscreen
B.belly_fullscreen = "anim_belly" // CHOMPedit - Belly Fullscreen
/* // Commented out as unfortunately I suck at writing rabbit guts, given I'm mostly a canine and such pred. :p
B.emote_lists[DM_HOLD] = list(
"",
"",
"")
B.emote_lists[DM_DIGEST] = list(
"",
"",

View File

@@ -48,6 +48,8 @@
"raptorwhite"
)
allow_mind_transfer = TRUE //CHOMPAdd
/mob/living/simple_mob/vore/raptor
vore_bump_chance = 25

View File

@@ -71,6 +71,7 @@
ai_holder_type = /datum/ai_holder/simple_mob/melee/rat
can_be_drop_prey = FALSE //CHOMP Add
allow_mind_transfer = TRUE //CHOMPAdd
/mob/living/simple_mob/vore/aggressive/rat/init_vore()
if(!voremob_loaded)

View File

@@ -32,3 +32,4 @@
vore_bump_emote = "knocks over and attempts to engulf"
can_be_drop_prey = FALSE
allow_mind_transfer = FALSE

View File

@@ -28,6 +28,8 @@
say_list_type = /datum/say_list/redpanda
ai_holder_type = /datum/ai_holder/simple_mob/passive
allow_mind_transfer = TRUE //CHOMPAdd
// Activate Noms!
/mob/living/simple_mob/vore/redpanda
vore_active = 1

View File

@@ -56,6 +56,8 @@
"scel_green"
)
allow_mind_transfer = TRUE //CHOMPAdd
/mob/living/simple_mob/vore/scel/New()
..()
if(random_skin)

View File

@@ -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 //CHOMPAdd
/mob/living/simple_mob/vore/sect_drone/Login()
. = ..()
add_verb(src,/mob/living/simple_mob/vore/sect_drone/proc/set_abdomen_color) //CHOMPEdit TGPanel

View File

@@ -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 //CHOMPAdd
/mob/living/simple_mob/vore/sect_queen/Login()
. = ..()
add_verb(src,/mob/living/simple_mob/vore/sect_queen/proc/set_abdomen_color) //CHOMPEdit TGPanel

View File

@@ -53,8 +53,9 @@
pixel_y = -16
ai_holder_type = /datum/ai_holder/simple_mob/melee
can_be_drop_prey = FALSE //CHOMP Add
allow_mind_transfer = TRUE //CHOMPAdd
// Activate Noms!
/mob/living/simple_mob/vore/aggressive/giant_snake

View File

@@ -62,6 +62,7 @@ var/global/moth_amount = 0 // Chompstation Addition, Rykka waz here. *pawstamp*
var/tracked = FALSE
can_be_drop_prey = FALSE //CHOMP Add
allow_mind_transfer = TRUE //CHOMPAdd
glow_override = TRUE
/datum/say_list/solargrub

View File

@@ -52,6 +52,7 @@
pickup_pref = client.prefs_vr.pickup_pref
//CHOMP Stuff Start
allow_mind_transfer = client.prefs_vr.allow_mind_transfer
phase_vore = client.prefs_vr.phase_vore
latejoin_vore = client.prefs_vr.latejoin_vore
latejoin_prey = client.prefs_vr.latejoin_prey

View File

@@ -30,8 +30,9 @@
default_pixel_x = -16
has_hands = 1
can_be_drop_prey = FALSE //CHOMP Add
allow_mind_transfer = TRUE //CHOMPAdd
// Nomnomn
/mob/living/simple_mob/vore/weretiger

View File

@@ -33,8 +33,9 @@
ai_holder_type = /datum/ai_holder/simple_mob/melee/evasive
catalogue_data = list(/datum/category_item/catalogue/fauna/wolf)
can_be_drop_prey = FALSE //CHOMP Add
// CHOMPAdd: :c
// CHOMPAdd Start :c
can_be_drop_prey = FALSE
allow_mind_transfer = TRUE
species_sounds = "Canine"
pain_emote_1p = list("yelp", "whine", "bark", "growl")
pain_emote_3p = list("yelps", "whines", "barks", "growls")

View File

@@ -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 //CHOMPAdd
/datum/say_list/xeno_defanged
say_got_target = list("hisses angrily!")
say_got_target = list("hisses angrily!")

View File

@@ -246,6 +246,7 @@
P.weight_messages = src.weight_messages
//CHOMP stuff Start
P.allow_mind_transfer = src.allow_mind_transfer
P.phase_vore = src.phase_vore
P.noisy_full = src.noisy_full
P.latejoin_vore = src.latejoin_vore
@@ -315,6 +316,7 @@
weight_messages = P.weight_messages
//CHOMP stuff
allow_mind_transfer = P.allow_mind_transfer
phase_vore = P.phase_vore
noisy_full = P.noisy_full
latejoin_vore = P.latejoin_vore
@@ -1208,6 +1210,7 @@
dispvoreprefs += "<b>Can be picked up:</b> [pickup_pref ? "<font color='green'>Allowed</font>" : "<font color='red'>Disallowed</font>"]<br>"
dispvoreprefs += "<b>Can be resized:</b> [resizable ? "<font color='green'>Allowed</font>" : "<font color='red'>Disallowed</font>"]<br>"
dispvoreprefs += "<b>Spontaneous transformation:</b> [allow_spontaneous_tf ? "<font color='green'>Enabled</font>" : "<font color='red'>Disabled</font>"]<br>"
dispvoreprefs += "<b>Mind transfer:</b> [allow_mind_transfer ? "<font color='green'>Allowed</font>" : "<font color='red'>Disallowed</font>"]<br>"
dispvoreprefs += "<b>Feedable:</b> [feeding ? "<font color='green'>Enabled</font>" : "<font color='red'>Disabled</font>"]<br>"
dispvoreprefs += "<b>Receiving liquids:</b> [receive_reagents ? "<font color='green'>Enabled</font>" : "<font color='red'>Disabled</font>"]<br>"
dispvoreprefs += "<b>Giving liquids:</b> [give_reagents ? "<font color='green'>Enabled</font>" : "<font color='red'>Disabled</font>"]<br>"

View File

@@ -5,6 +5,7 @@
var/latejoin_vore = FALSE //If enabled, latejoiners can spawn into this, assuming they have a client
var/latejoin_prey = FALSE //If enabled, latejoiners can spawn ontop of and instantly eat the victim
var/noisy_full = FALSE //Enables belching when a mob has overeaten
var/allow_mind_transfer = FALSE //Allows ones mind to be taken over or swapped
var/phase_vore = TRUE //Enabled by default since you have to enable drop pred/prey to do this anyway
var/strip_pref = TRUE //Enables the ability for worn items to be stripped
var/no_latejoin_vore_warning = FALSE //Auto accepts pred spwan notifications (roundbased / saveable)

View File

@@ -67,6 +67,7 @@ V::::::V V::::::VO:::::::OOO:::::::ORR:::::R R:::::REE::::::EEEEEE
var/pickup_pref = TRUE
//CHOMP stuff
var/allow_mind_transfer = FALSE
var/phase_vore = TRUE
var/noisy_full = FALSE
var/receive_reagents = FALSE
@@ -216,6 +217,7 @@ V::::::V V::::::VO:::::::OOO:::::::ORR:::::R R:::::REE::::::EEEEEE
//CHOMP stuff Start
allow_mind_transfer = json_from_file["allow_mind_transfer"]
phase_vore = json_from_file["phase_vore"]
latejoin_vore = json_from_file["latejoin_vore"]
latejoin_prey = json_from_file["latejoin_prey"]
@@ -322,6 +324,8 @@ V::::::V V::::::VO:::::::OOO:::::::ORR:::::R R:::::REE::::::EEEEEE
weight_messages.Add("")
//CHOMP stuff Start
if(isnull(allow_mind_transfer))
allow_mind_transfer = FALSE
if(isnull(phase_vore))
phase_vore = TRUE
if(isnull(latejoin_vore))
@@ -397,6 +401,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, //CHOMPedit
"phase_vore" = phase_vore, //CHOMPedit
"food_vore" = food_vore,
"nutrition_message_visible" = nutrition_message_visible,

View File

@@ -529,6 +529,7 @@ var/global/list/belly_colorable_only_fullscreens = list("a_synth_flesh_mono",
"autotransferable" = host.autotransferable,
"noisy_full" = host.noisy_full, //Belching while full
"selective_active" = host.selective_preference, //Reveal active selective mode in prefs
"allow_mind_transfer" = host.allow_mind_transfer,
//CHOMPedit end
"drop_vore" = host.drop_vore,
"slip_vore" = host.slip_vore,
@@ -1877,6 +1878,12 @@ var/global/list/belly_colorable_only_fullscreens = list("a_synth_flesh_mono",
host.client.prefs_vr.strip_pref = host.strip_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
//CHOMPEdit End
if("toggle_healbelly")
host.permit_healbelly = !host.permit_healbelly

View File

@@ -284,6 +284,7 @@
new_mob.text_warnings = text_warnings
//CHOMP stuff Start
new_mob.allow_mind_transfer = allow_mind_transfer
new_mob.phase_vore = phase_vore
new_mob.latejoin_vore = latejoin_vore
new_mob.latejoin_prey = latejoin_prey

View File

@@ -43,7 +43,7 @@
A = H.held_mob
if(istype(A, /mob/living))
var/mob/living/M = A
if(!is_type_in_list(A, mob_takeover_whitelist))
if(!M.allow_mind_transfer)
to_chat(usr,"<span class='danger'>The target's mind is too complex to be affected!</span>")
return
if(usr == M)

View File

@@ -1,2 +1,3 @@
/mob/living/simple_mob/vore/alienanimals/teppi/baby
mob_size = MOB_MEDIUM
allow_mind_transfer = TRUE

View File

@@ -40,6 +40,7 @@ export const VoreUserPreferences = (props) => {
digest_leave_remains,
pickup_mechanics_active,
allow_spontaneous_tf,
allow_mind_transfer,
eating_privacy_global,
strip_mechanics_active,
autotransferable,
@@ -411,6 +412,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,
@@ -663,12 +679,18 @@ export const VoreUserPreferences = (props) => {
tooltipPosition="right"
/>
</Flex.Item>
<Flex.Item basis="33%">
<Flex.Item basis="33%" grow={1}>
<VoreUserPreferenceItem
spec={preferences.spontaneous_tf}
tooltipPosition="top"
/>
</Flex.Item>
<Flex.Item basis="33%">
<VoreUserPreferenceItem
spec={preferences.mind_transfer}
tooltipPosition="top"
/>
</Flex.Item>
</Flex>
</Section>
<Section