diff --git a/code/__DEFINES/voreconstants.dm b/code/__DEFINES/voreconstants.dm index a133297315..a396cf9962 100644 --- a/code/__DEFINES/voreconstants.dm +++ b/code/__DEFINES/voreconstants.dm @@ -18,39 +18,6 @@ /* // removing sizeplay again GLOBAL_LIST_INIT(player_sizes_list, list("Macro" = SIZESCALE_HUGE, "Big" = SIZESCALE_BIG, "Normal" = SIZESCALE_NORMAL, "Small" = SIZESCALE_SMALL, "Tiny" = SIZESCALE_TINY)) // Edited to make the new travis check go away - - -GLOBAL_LIST_INIT(digest_pred, list( - 'sound/vore/pred/digest_01.ogg', - 'sound/vore/pred/digest_02.ogg', - 'sound/vore/pred/digest_03.ogg', - 'sound/vore/pred/digest_04.ogg', - 'sound/vore/pred/digest_05.ogg', - 'sound/vore/pred/digest_06.ogg', - 'sound/vore/pred/digest_07.ogg', - 'sound/vore/pred/digest_08.ogg', - 'sound/vore/pred/digest_09.ogg', - 'sound/vore/pred/digest_10.ogg', - 'sound/vore/pred/digest_11.ogg', - 'sound/vore/pred/digest_12.ogg', - 'sound/vore/pred/digest_13.ogg', - 'sound/vore/pred/digest_14.ogg', - 'sound/vore/pred/digest_15.ogg', - 'sound/vore/pred/digest_16.ogg', - 'sound/vore/pred/digest_17.ogg', - 'sound/vore/pred/digest_18.ogg')) - -GLOBAL_LIST_INIT(death_pred, list( - 'sound/vore/pred/death_01.ogg', - 'sound/vore/pred/death_02.ogg', - 'sound/vore/pred/death_03.ogg', - 'sound/vore/pred/death_04.ogg', - 'sound/vore/pred/death_05.ogg', - 'sound/vore/pred/death_06.ogg', - 'sound/vore/pred/death_07.ogg', - 'sound/vore/pred/death_08.ogg', - 'sound/vore/pred/death_09.ogg', - 'sound/vore/pred/death_10.ogg')) */ GLOBAL_LIST_INIT(vore_sounds, list( @@ -66,79 +33,21 @@ GLOBAL_LIST_INIT(vore_sounds, list( "Squish3" = 'sound/vore/pred/squish_03.ogg', "Squish4" = 'sound/vore/pred/squish_04.ogg', "Rustle (cloth)" = 'sound/effects/rustle5.ogg', - "rustle2(cloth)" = 'sound/effects/rustle2.ogg', - "rustle3(cloth)" = 'sound/effects/rustle3.ogg', - "rustle4(cloth)" = 'sound/effects/rustle4.ogg', - "rustle5(cloth)" = 'sound/effects/rustle5.ogg', - "None" = null)) -/* -GLOBAL_LIST_INIT(pred_struggle_sounds, list( - "Struggle1" = 'sound/vore/pred/struggle_01.ogg', - "Struggle2" = 'sound/vore/pred/struggle_02.ogg', - "Struggle3" = 'sound/vore/pred/struggle_03.ogg', - "Struggle4" = 'sound/vore/pred/struggle_04.ogg', - "Struggle5" = 'sound/vore/pred/struggle_05.ogg')) - -GLOBAL_LIST_INIT(prey_vore_sounds, list( - "Gulp" = 'sound/vore/prey/swallow_01.ogg', - "Swallow" = 'sound/vore/prey/swallow_02.ogg', - "Insertion1" = 'sound/vore/prey/insertion_01.ogg', - "Insertion2" = 'sound/vore/prey/insertion_02.ogg', - "Tauric Swallow" = 'sound/vore/prey/taurswallow.ogg', - "Schlorp" = 'sound/vore/prey/schlorp.ogg', - "Squish1" = 'sound/vore/prey/squish_01.ogg', - "Squish2" = 'sound/vore/prey/squish_02.ogg', - "Squish3" = 'sound/vore/prey/squish_03.ogg', - "Squish4" = 'sound/vore/prey/squish_04.ogg')) - - -GLOBAL_LIST_INIT(prey_struggle_sounds, list( - "Struggle1" = 'sound/vore/prey/struggle_01.ogg', - "Struggle2" = 'sound/vore/prey/struggle_02.ogg', - "Struggle3" = 'sound/vore/prey/struggle_03.ogg', - "Struggle4" = 'sound/vore/prey/struggle_04.ogg', - "Struggle5" = 'sound/vore/prey/struggle_05.ogg')) - -GLOBAL_LIST_INIT(digest_prey, list( - "digest1" = 'sound/vore/prey/digest_01.ogg', - "digest2" = 'sound/vore/prey/digest_02.ogg', - "digest3" = 'sound/vore/prey/digest_03.ogg', - "digest4" = 'sound/vore/prey/digest_04.ogg', - "digest5" = 'sound/vore/prey/digest_05.ogg', - "digest6" = 'sound/vore/prey/digest_06.ogg', - "digest7" = 'sound/vore/prey/digest_07.ogg', - "digest8" = 'sound/vore/prey/digest_08.ogg', - "digest9" = 'sound/vore/prey/digest_09.ogg', - "digest10" = 'sound/vore/prey/digest_10.ogg', - "digest11" = 'sound/vore/prey/digest_11.ogg', - "digest12" = 'sound/vore/prey/digest_12.ogg', - "digest13" = 'sound/vore/prey/digest_13.ogg', - "digest14" = 'sound/vore/prey/digest_14.ogg', - "digest15" = 'sound/vore/prey/digest_15.ogg', - "digest16" = 'sound/vore/prey/digest_16.ogg', - "digest17" = 'sound/vore/prey/digest_17.ogg', - "digest18" = 'sound/vore/prey/digest_18.ogg')) - -GLOBAL_LIST_INIT(death_prey, list( - "death1" = 'sound/vore/prey/death_01.ogg', - "death2" = 'sound/vore/prey/death_02.ogg', - "death3" = 'sound/vore/prey/death_03.ogg', - "death4" = 'sound/vore/prey/death_04.ogg', - "death5" = 'sound/vore/prey/death_05.ogg', - "death6" = 'sound/vore/prey/death_06.ogg', - "death7" = 'sound/vore/prey/death_07.ogg', - "death8" = 'sound/vore/prey/death_08.ogg', - "death9" = 'sound/vore/prey/death_09.ogg', - "death10" = 'sound/vore/prey/death_10.ogg')) - */ + "Rustle 2 (cloth)" = 'sound/effects/rustle2.ogg', + "Rustle 3 (cloth)" = 'sound/effects/rustle3.ogg', + "Rustle 4 (cloth)" = 'sound/effects/rustle4.ogg', + "Rustle 5 (cloth)" = 'sound/effects/rustle5.ogg', + "None" = null + )) GLOBAL_LIST_INIT(release_sounds, list( - "rustle (cloth)" = 'sound/effects/rustle1.ogg', - "rustle2 (cloth)" = 'sound/effects/rustle2.ogg', - "rustle3 (cloth)" = 'sound/effects/rustle3.ogg', - "rustle4 (cloth)" = 'sound/effects/rustle4.ogg', - "rustle5 (cloth)" = 'sound/effects/rustle5.ogg', - "Stomach Move" = 'sound/vore/pred/stomachmove.ogg', - "Pred Escape" = 'sound/vore/pred/escape.ogg', - "Splatter" = 'sound/effects/splat.ogg', - "None" = null)) \ No newline at end of file + "Rustle (cloth)" = 'sound/effects/rustle1.ogg', + "Rustle 2 (cloth)" = 'sound/effects/rustle2.ogg', + "Rustle 3 (cloth)" = 'sound/effects/rustle3.ogg', + "Rustle 4 (cloth)" = 'sound/effects/rustle4.ogg', + "Rustle 5 (cloth)" = 'sound/effects/rustle5.ogg', + "Stomach Move" = 'sound/vore/pred/stomachmove.ogg', + "Pred Escape" = 'sound/vore/pred/escape.ogg', + "Splatter" = 'sound/effects/splat.ogg', + "None" = null + ) diff --git a/code/modules/mob/living/simple_animal/hostile/hostile.dm b/code/modules/mob/living/simple_animal/hostile/hostile.dm index d8635060ee..941ba0ec69 100644 --- a/code/modules/mob/living/simple_animal/hostile/hostile.dm +++ b/code/modules/mob/living/simple_animal/hostile/hostile.dm @@ -100,7 +100,7 @@ if(!target || !isturf(target.loc) || !isturf(loc) || stat == DEAD) return var/target_dir = get_dir(src,target) - + var/static/list/cardinal_sidestep_directions = list(-90,-45,0,45,90) var/static/list/diagonal_sidestep_directions = list(-45,0,45) var/chosen_dir = 0 @@ -202,6 +202,8 @@ if(see_invisible < the_target.invisibility)//Target's invisible to us, forget it return FALSE + if(isbelly(the_target.loc)) //Target's inside a gut, forget about it too + return FALSE if(search_objects < 2) if(isliving(the_target)) var/mob/living/L = the_target @@ -301,7 +303,7 @@ if(target) if(targets_from && isturf(targets_from.loc) && target.Adjacent(targets_from)) //If they're next to us, attack MeleeAction() - else + else if(rapid_melee > 1 && target_distance <= melee_queue_distance) MeleeAction(FALSE) in_melee = FALSE //If we're just preparing to strike do not enter sidestep mode diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/megafauna.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/megafauna.dm index 43bc2c26f8..92ac07b1a0 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/megafauna.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/megafauna.dm @@ -83,18 +83,12 @@ if(L.stat != DEAD) if(!client && ranged && ranged_cooldown <= world.time) OpenFire() - - else if(L.stat >= SOFT_CRIT) - if(vore_active == TRUE && L.devourable == TRUE) - if(isliving(target) && !target.Adjacent(targets_from)) - return - else + if(L.Adjacent(src) && (L.stat != CONSCIOUS)) + if(vore_active && L.devourable == TRUE) dragon_feeding(src,L) - if(L.loc == src.contents) - LoseTarget() - return 0 - else - devour(L) + LoseTarget() + else + devour(L) /mob/living/simple_animal/hostile/megafauna/proc/devour(mob/living/L) if(!L) diff --git a/modular_citadel/code/modules/vore/eating/belly_obj_vr.dm b/modular_citadel/code/modules/vore/eating/belly_obj_vr.dm index e76a09d4b7..142e5880d5 100644 --- a/modular_citadel/code/modules/vore/eating/belly_obj_vr.dm +++ b/modular_citadel/code/modules/vore/eating/belly_obj_vr.dm @@ -15,7 +15,7 @@ desc = "It's a belly! You're in it!" // Flavor text description of inside sight/sound/smells/feels. var/vore_sound = "Gulp" // Sound when ingesting someone var/vore_verb = "ingest" // Verb for eating with this in messages - var/release_sound = "Splatter" + var/release_sound = "Splatter" // Sound for letting someone out. var/human_prey_swallow_time = 100 // Time in deciseconds to swallow /mob/living/carbon/human var/nonhuman_prey_swallow_time = 30 // Time in deciseconds to swallow anything else var/emote_time = 60 SECONDS // How long between stomach emotes at prey @@ -30,7 +30,6 @@ var/can_taste = FALSE // If this belly prints the flavor of prey when it eats someone. var/bulge_size = 0.25 // The minimum size the prey has to be in order to show up on examine. // var/shrink_grow_size = 1 // This horribly named variable determines the minimum/maximum size it will shrink/grow prey to. - var/silent = FALSE var/transferlocation // Location that the prey is released if they struggle and get dropped off. var/transferchance = 0 // % Chance of prey being transferred to transfer location when resisting @@ -127,7 +126,6 @@ "escapechance", "can_taste", "bulge_size", - "silent", "transferlocation", "transferchance", "autotransferchance", @@ -170,7 +168,7 @@ //Sound w/ antispam flag setting if(is_wet && !recent_sound) - for(var/mob/M in get_hearers_in_view(5, get_turf(owner))) + for(var/mob/M in get_hearers_in_view(2, get_turf(owner))) if(M.client && (M.client.prefs.cit_toggles & EATING_NOISES)) playsound(get_turf(owner),"[src.vore_sound]",50,0,-5,0,ignore_walls = FALSE,channel=CHANNEL_PRED) recent_sound = TRUE @@ -184,7 +182,7 @@ // Release all contents of this belly into the owning mob's location. // If that location is another mob, contents are transferred into whichever of its bellies the owning mob is in. // Returns the number of mobs so released. -/obj/belly/proc/release_all_contents(var/include_absorbed = FALSE) +/obj/belly/proc/release_all_contents(var/include_absorbed = FALSE, var/silent = FALSE) var/atom/destination = drop_location() var/count = 0 for(var/thing in contents) @@ -203,7 +201,7 @@ SEND_SIGNAL(L, COMSIG_ADD_MOOD_EVENT, "emptyprey", /datum/mood_event/emptyprey) AM.forceMove(destination) // Move the belly contents into the same location as belly's owner. count++ - for(var/mob/M in get_hearers_in_view(5, get_turf(owner))) + for(var/mob/M in get_hearers_in_view(2, get_turf(owner))) if(M.client && (M.client.prefs.cit_toggles & EATING_NOISES)) playsound(get_turf(owner),"[src.release_sound]",50,0,-5,0,ignore_walls = FALSE,channel=CHANNEL_PRED) if(!silent) @@ -216,16 +214,15 @@ // Release a specific atom from the contents of this belly into the owning mob's location. // If that location is another mob, the atom is transferred into whichever of its bellies the owning mob is in. // Returns the number of atoms so released. -/obj/belly/proc/release_specific_contents(var/atom/movable/M) +/obj/belly/proc/release_specific_contents(var/atom/movable/M, var/silent = FALSE) if (!(M in contents)) return FALSE // They weren't in this belly anyway M.forceMove(drop_location()) // Move the belly contents into the same location as belly's owner. items_preserved -= M - if(release_sound) - for(var/mob/H in get_hearers_in_view(5, get_turf(owner))) - if(H.client && (H.client.prefs.cit_toggles & EATING_NOISES)) - playsound(get_turf(owner),"[src.release_sound]",50,0,-5,0,ignore_walls = FALSE,channel=CHANNEL_PRED) + for(var/mob/H in get_hearers_in_view(2, get_turf(owner))) + if(H.client && (H.client.prefs.cit_toggles & EATING_NOISES)) + playsound(get_turf(owner),"[src.release_sound]",50,0,-5,0,ignore_walls = FALSE,channel=CHANNEL_PRED) if(istype(M,/mob/living)) var/mob/living/ML = M @@ -515,6 +512,11 @@ var/sound/prey_struggle = sound(get_sfx("prey_struggle")) R.playsound_local(get_turf(R),prey_struggle,45,0) + else + for(var/mob/M in get_hearers_in_view(2, get_turf(owner))) + if(M.client && (M.client.prefs.cit_toggles & EATING_NOISES)) + playsound(get_turf(owner),"rustle",35,0,-5,1,ignore_walls = FALSE,channel=CHANNEL_PRED) + for(var/mob/M in get_hearers_in_view(3, get_turf(owner))) if(M.client && (M.client.prefs.cit_toggles & EATING_NOISES)) //Might as well censor the normies here too. M.show_message(struggle_outer_message, 1) // visible @@ -608,7 +610,6 @@ dupe.escapechance = escapechance dupe.can_taste = can_taste dupe.bulge_size = bulge_size - dupe.silent = silent dupe.transferlocation = transferlocation dupe.transferchance = transferchance dupe.autotransferchance = autotransferchance diff --git a/modular_citadel/code/modules/vore/eating/bellymodes_vr.dm b/modular_citadel/code/modules/vore/eating/bellymodes_vr.dm index 6c528f75a9..542241e9f2 100644 --- a/modular_citadel/code/modules/vore/eating/bellymodes_vr.dm +++ b/modular_citadel/code/modules/vore/eating/bellymodes_vr.dm @@ -25,7 +25,7 @@ for(var/mob/living/M in contents) if(isbelly(M.loc)) if(world.time > M.next_preyloop) - if(!silent) + if(is_wet) M.stop_sound_channel(CHANNEL_PREYLOOP) // sanity just in case var/sound/preyloop = sound('sound/vore/prey/loop.ogg', repeat = TRUE) M.playsound_local(get_turf(src),preyloop,80,0, channel = CHANNEL_PREYLOOP) diff --git a/modular_citadel/code/modules/vore/eating/vorepanel_vr.dm b/modular_citadel/code/modules/vore/eating/vorepanel_vr.dm index bc30de6ca6..3d20526a5c 100644 --- a/modular_citadel/code/modules/vore/eating/vorepanel_vr.dm +++ b/modular_citadel/code/modules/vore/eating/vorepanel_vr.dm @@ -18,9 +18,10 @@ var/dat = picker_holder.gen_vui(src) - picker_holder.popup = new(src, "insidePanel","Vore Panel", 400, 600, picker_holder) + picker_holder.popup = new(src, "insidePanel","Vore Panel", 450, 700, picker_holder) picker_holder.popup.set_content(dat) picker_holder.popup.open() + src.openpanel = 1 /mob/living/proc/updateVRPanel() //Panel popup update call from belly events. if(src.openpanel == 1) @@ -30,7 +31,7 @@ var/dat = picker_holder.gen_vui(src) - picker_holder.popup = new(src, "insidePanel","Vore Panel", 400, 600, picker_holder) + picker_holder.popup = new(src, "insidePanel","Vore Panel", 450, 700, picker_holder) picker_holder.popup.set_content(dat) picker_holder.popup.open() @@ -39,7 +40,7 @@ // /datum/vore_look var/obj/belly/selected - var/show_interacts = TRUE + var/show_interacts = 0 var/datum/browser/popup var/loop = null; // Magic self-reference to stop the handler from being GC'd before user takes action. @@ -61,7 +62,7 @@ var/obj/belly/inside_belly = userloc var/mob/living/eater = inside_belly.owner - //Don't display this part if we couldn't find the belly since could be held in hand. + //Don't display this part if we couldn't find the belly since could be held in hand. if(inside_belly) dat += "You are currently [user.absorbed ? "absorbed into " : "inside "] [eater]'s [inside_belly]!

" @@ -102,7 +103,6 @@ dat += "
  • [B.name]" else dat += "
  • [B.name]" - var/spanstyle switch(B.digest_mode) if(DM_HOLD) @@ -157,7 +157,7 @@ dat += " '[selected.name]'" //Belly Type button - dat += "Has Flesh Noises?" + dat += "
    Is Fleshy:" dat += "[selected.is_wet ? "Yes" : "No"]" //Digest Mode Button @@ -173,11 +173,11 @@ dat += " '[selected.desc]'" //Belly sound - dat += "
    Set Vore Sound" + dat += "
    Vore Sound: [selected.vore_sound]" dat += "Test" //Release sound - dat += "
    Set Release Sound" + dat += "
    Release Sound: [selected.release_sound]" dat += "Test" //Belly messages @@ -205,10 +205,6 @@ dat += "
    Set Belly Escape Time" dat += " [selected.escapetime/10]s" - dat += "
    " - dat += "
    Set Belly Absorb Chance" - dat += " [selected.absorbchance]%" - //Special
    here to add a gap dat += "
    " dat += "
    Set Belly Transfer Chance" @@ -219,14 +215,13 @@ //Special
    here to add a gap dat += "
    " + dat += "
    Set Belly Absorb Chance" + dat += " [selected.absorbchance]%" + dat += "
    Set Belly Digest Chance" dat += " [selected.digestchance]%" dat += "
    " - // Belly Silence - dat += "
    Belly Silence (for not belly bellies):" - dat += " [selected.silent ? "Yes" : "No"]" - //Delete button dat += "
    Delete Belly" @@ -262,25 +257,26 @@ if(href_list["close"]) qdel(src) // Cleanup + user.openpanel = 0 return if(href_list["show_int"]) show_interacts = !show_interacts - return TRUE //Force update + return 1 //Force update if(href_list["int_help"]) - to_chat(usr,"These control how your belly responds to someone using 'resist' while inside you. The percent chance to trigger each is listed below, \ + alert("These control how your belly responds to someone using 'resist' while inside you. The percent chance to trigger each is listed below, \ and you can change them to whatever you see fit. Setting them to 0% will disable the possibility of that interaction. \ - These only function as long as interactions are turned on in general. Keep in mind, the 'belly mode' interactions (digest) \ - will affect all prey in that belly, if one resists and triggers digestion. If multiple trigger at the same time, \ - only the first in the order of 'Escape > Transfer > Absorb > Digest' will occur.") - return TRUE //Force update + These only function as long as interactions are turned on in general. Keep in mind, the 'belly mode' interactions (digest/absorb) \ + will affect all prey in that belly, if one resists and triggers digestion/absorption. If multiple trigger at the same time, \ + only the first in the order of 'Escape > Transfer > Absorb > Digest' will occur.","Interactions Help") + return 0 //Force update if(href_list["outsidepick"]) var/atom/movable/tgt = locate(href_list["outsidepick"]) var/obj/belly/OB = locate(href_list["outsidebelly"]) if(!(tgt in OB)) //Aren't here anymore, need to update menu. - return TRUE + return 1 var/intent = "Examine" if(istype(tgt,/mob/living)) @@ -293,11 +289,11 @@ if("Help Out") //Help the inside-mob out if(user.stat || user.absorbed || M.absorbed) to_chat(user,"You can't do that in your state!") - return + return 1 to_chat(user,"You begin to push [M] to freedom!") to_chat(M,"[usr] begins to push you to freedom!") - to_chat(OB.owner,"Someone is trying to escape from inside you!") + to_chat(M.loc,"Someone is trying to escape from inside you!") sleep(50) if(prob(33)) OB.release_specific_contents(M) @@ -309,15 +305,14 @@ to_chat(M," Even with [user]'s help, you slip back inside again.") to_chat(OB.owner,"Your body efficiently shoves [M] back where they belong.") - if("Devour") //Eat the inside mob if(user.absorbed || user.stat) to_chat(user,"You can't do that in your state!") - return + return 1 if(!user.vore_selected) to_chat(user,"Pick a belly on yourself first!") - return + return 1 var/obj/belly/TB = user.vore_selected to_chat(user,"You begin to [lowertext(TB.vore_verb)] [M] into your [lowertext(TB.name)]!") @@ -333,9 +328,9 @@ else if(istype(tgt,/obj/item)) var/obj/item/T = tgt - if(!(tgt in OB.contents)) + if(!(tgt in OB)) //Doesn't exist anymore, update. - return TRUE + return 1 intent = alert("What do you want to do to that?","Query","Examine","Use Hand") switch(intent) if("Examine") @@ -343,8 +338,8 @@ if("Use Hand") if(user.stat) - to_chat(user, "You can't do that in your state!") - return + to_chat(user,"You can't do that in your state!") + return 1 user.ClickOn(T) sleep(5) //Seems to exit too fast for the panel to update @@ -357,32 +352,31 @@ intent = alert("Eject all, Move all?","Query","Eject all","Cancel","Move all") switch(intent) if("Cancel") - return + return 0 if("Eject all") if(user.stat) - to_chat(user, "You can't do that in your state!") - return + to_chat(user,"You can't do that in your state!") + return 0 selected.release_all_contents() - to_chat(user.loc,"Everything is released from [user]!") if("Move all") if(user.stat) - to_chat(user, "You can't do that in your state!") - return FALSE + to_chat(user,"You can't do that in your state!") + return 0 var/obj/belly/choice = input("Move all where?","Select Belly") as null|anything in user.vore_organs if(!choice) - return FALSE + return 0 for(var/atom/movable/tgt in selected) - selected.transfer_contents(tgt, choice, 1) to_chat(tgt,"You're squished from [user]'s [lowertext(selected)] to their [lowertext(choice.name)]!") + selected.transfer_contents(tgt, choice, 1) var/atom/movable/tgt = locate(href_list["insidepick"]) if(!(tgt in selected)) //Old menu, needs updating because they aren't really there. - return TRUE//Forces update + return 1 //Forces update intent = "Examine" intent = alert("Examine, Eject, Move? Examine if you want to leave this box.","Query","Examine","Eject","Move") switch(intent) @@ -391,11 +385,10 @@ if("Eject") if(user.stat) - to_chat(user, "You can't do that in your state!") - return FALSE + to_chat(user,"You can't do that in your state!") + return 0 selected.release_specific_contents(tgt) - user.loc << "[tgt] is released from [user]!" if("Move") if(user.stat) @@ -547,7 +540,7 @@ if(!choice) return - selected.release_sound = GLOB.release_sounds[choice] + selected.release_sound = choice if(href_list["b_releasesoundtest"]) var/soundfile = selected.release_sound @@ -560,7 +553,7 @@ if(!choice) return - selected.vore_sound = GLOB.vore_sounds[choice] + selected.vore_sound = choice if(href_list["b_soundtest"]) var/soundfile = selected.vore_sound @@ -584,17 +577,17 @@ selected.bulge_size = (new_bulge/100) if(href_list["b_escapable"]) - if(selected.escapable == FALSE) //Possibly escapable and special interactions. - selected.escapable = TRUE - to_chat(usr,"Prey now have special interactions with your [selected.name] depending on your settings.") - else if(selected.escapable == TRUE) //Never escapable. - selected.escapable = FALSE - to_chat(usr,"Prey will not be able to have special interactions with your [selected.name].") - show_interacts = FALSE //Force the hiding of the panel + if(selected.escapable == 0) //Possibly escapable and special interactions. + selected.escapable = 1 + to_chat(usr,"Prey now have special interactions with your [lowertext(selected.name)] depending on your settings.") + else if(selected.escapable == 1) //Never escapable. + selected.escapable = 0 + to_chat(usr,"Prey will not be able to have special interactions with your [lowertext(selected.name)].") + show_interacts = 0 //Force the hiding of the panel else - to_chat(usr,"Something went wrong. Your stomach will now not have special interactions. Press the button enable them again and tell a dev.") //If they somehow have a varable that's not 0 or 1 - selected.escapable = TRUE - show_interacts = FALSE //Force the hiding of the panel + alert("Something went wrong. Your stomach will now not have special interactions. Press the button enable them again and tell a dev.","Error") //If they somehow have a varable that's not 0 or 1 + selected.escapable = 0 + show_interacts = 0 //Force the hiding of the panel if(href_list["b_escapechance"]) var/escape_chance_input = input(user, "Set prey escape chance on resist (as %)", "Prey Escape Chance") as num|null @@ -612,14 +605,14 @@ selected.transferchance = sanitize_integer(transfer_chance_input, 0, 100, initial(selected.transferchance)) if(href_list["b_transferlocation"]) - var/choice = input("Where do you want your [selected.name] to lead if prey resists?","Select Belly") as null|anything in (user.vore_organs + "None - Remove" - selected.name) + var/obj/belly/choice = input("Where do you want your [lowertext(selected.name)] to lead if prey resists?","Select Belly") as null|anything in (user.vore_organs + "None - Remove" - selected) if(!choice) //They cancelled, no changes - return FALSE + return 0 else if(choice == "None - Remove") selected.transferlocation = null else - selected.transferlocation = user.vore_organs[choice] + selected.transferlocation = choice.name if(href_list["b_absorbchance"]) var/absorb_chance_input = input(user, "Set belly absorb mode chance on resist (as %)", "Prey Absorb Chance") as num|null @@ -631,13 +624,10 @@ if(!isnull(digest_chance_input)) selected.digestchance = sanitize_integer(digest_chance_input, 0, 100, initial(selected.digestchance)) - if(href_list["b_silent"]) - selected.silent = !selected.silent - if(href_list["b_del"]) var/alert = alert("Are you sure you want to delete your [lowertext(selected.name)]?","Confirmation","Delete","Cancel") if(!alert == "Delete") - return FALSE + return 0 var/failure_msg = "" @@ -658,7 +648,7 @@ if(failure_msg) alert(user,failure_msg,"Error!") - return FALSE + return 0 qdel(selected) selected = user.vore_organs[1]