From d3c7cc6040571b7e367afe8e3d55502eb89d0405 Mon Sep 17 00:00:00 2001 From: Chompstation Bot Date: Mon, 1 Feb 2021 19:35:41 +0000 Subject: [PATCH 1/2] New advanced Egg Release mechanics. --- code/_helpers/global_lists_vr.dm | 83 +++++--- .../objects/items/weapons/storage/egg_vr.dm | 182 ++++++++++++++++++ .../crates_lockers/closets/egg_vr.dm | 10 +- .../client/preference_setup/vore/03_egg.dm | 17 +- code/modules/vore/eating/belly_obj_vr.dm | 33 +++- .../vore/eating/bellymodes_datum_vr.dm | 68 ++++++- code/modules/vore/eating/bellymodes_vr.dm | 13 +- code/modules/vore/eating/vorepanel_vr.dm | 6 + code/modules/vore/resizing/holder_micro_vr.dm | 20 ++ icons/obj/egg_new_vr.dmi | Bin 0 -> 12590 bytes icons/obj/egg_open_vr.dmi | Bin 0 -> 11762 bytes icons/obj/egg_vr.dmi | Bin 6235 -> 6242 bytes vorestation.dme | 1 + 13 files changed, 378 insertions(+), 55 deletions(-) create mode 100644 code/game/objects/items/weapons/storage/egg_vr.dm create mode 100644 icons/obj/egg_new_vr.dmi create mode 100644 icons/obj/egg_open_vr.dmi diff --git a/code/_helpers/global_lists_vr.dm b/code/_helpers/global_lists_vr.dm index 862a562b39..7a49e8b387 100644 --- a/code/_helpers/global_lists_vr.dm +++ b/code/_helpers/global_lists_vr.dm @@ -108,30 +108,66 @@ var/global/list/fancy_release_sounds = list( ) var/global/list/global_vore_egg_types = list( - "Unathi" = UNATHI_EGG, - "Tajaran" = TAJARAN_EGG, - "Akula" = AKULA_EGG, - "Skrell" = SKRELL_EGG, - "Nevrean" = NEVREAN_EGG, - "Sergal" = SERGAL_EGG, - "Human" = HUMAN_EGG, - "Slime" = SLIME_EGG, - "Egg" = EGG_EGG, - "Xenochimera" = XENOCHIMERA_EGG, - "Xenomorph" = XENOMORPH_EGG) + "Unathi", + "Tajara", + "Akula", + "Skrell", + "Sergal", + "Nevrean", + "Human", + "Slime", + "Egg", + "Xenochimera", + "Xenomorph", + "Chocolate", + "Boney", + "Slime glob", + "Chicken", + "Synthetic", + "Cooking error", + "Escape pod", + "Web cocoon", + "Bug cocoon", + "Rock", + "Yellow", + "Blue", + "Green", + "Orange", + "Purple", + "Red", + "Rainbow", + "Spotted pink") var/global/list/tf_vore_egg_types = list( - "Unathi" = /obj/structure/closet/secure_closet/egg/unathi, - "Tajara" = /obj/structure/closet/secure_closet/egg/tajaran, - "Akula" = /obj/structure/closet/secure_closet/egg/shark, - "Skrell" = /obj/structure/closet/secure_closet/egg/skrell, - "Sergal" = /obj/structure/closet/secure_closet/egg/sergal, - "Nevrean" = /obj/structure/closet/secure_closet/egg/nevrean, - "Human" = /obj/structure/closet/secure_closet/egg/human, - "Slime" = /obj/structure/closet/secure_closet/egg/slime, - "Egg" = /obj/structure/closet/secure_closet/egg, - "Xenochimera" = /obj/structure/closet/secure_closet/egg/scree, - "Xenomorph" = /obj/structure/closet/secure_closet/egg/xenomorph) + "Unathi" = /obj/item/weapon/storage/vore_egg/unathi, + "Tajara" = /obj/item/weapon/storage/vore_egg/tajaran, + "Akula" = /obj/item/weapon/storage/vore_egg/shark, + "Skrell" = /obj/item/weapon/storage/vore_egg/skrell, + "Sergal" = /obj/item/weapon/storage/vore_egg/sergal, + "Nevrean" = /obj/item/weapon/storage/vore_egg/nevrean, + "Human" = /obj/item/weapon/storage/vore_egg/human, + "Slime" = /obj/item/weapon/storage/vore_egg/slime, + "Egg" = /obj/item/weapon/storage/vore_egg, + "Xenochimera" = /obj/item/weapon/storage/vore_egg/scree, + "Xenomorph" = /obj/item/weapon/storage/vore_egg/xenomorph, + "Chocolate" = /obj/item/weapon/storage/vore_egg/chocolate, + "Boney" = /obj/item/weapon/storage/vore_egg/owlpellet, + "Slime glob" = /obj/item/weapon/storage/vore_egg/slimeglob, + "Chicken" = /obj/item/weapon/storage/vore_egg/chicken, + "Synthetic" = /obj/item/weapon/storage/vore_egg/synthetic, + "Cooking error" = /obj/item/weapon/storage/vore_egg/badrecipe, + "Escape pod" = /obj/item/weapon/storage/vore_egg/escapepod, + "Web cocoon" = /obj/item/weapon/storage/vore_egg/cocoon, + "Bug cocoon" = /obj/item/weapon/storage/vore_egg/bugcocoon, + "Rock" = /obj/item/weapon/storage/vore_egg/rock, + "Yellow" = /obj/item/weapon/storage/vore_egg/yellow, + "Blue" = /obj/item/weapon/storage/vore_egg/blue, + "Green" = /obj/item/weapon/storage/vore_egg/green, + "Orange" = /obj/item/weapon/storage/vore_egg/orange, + "Purple" = /obj/item/weapon/storage/vore_egg/purple, + "Red" = /obj/item/weapon/storage/vore_egg/red, + "Rainbow" = /obj/item/weapon/storage/vore_egg/rainbow, + "Spotted pink" = /obj/item/weapon/storage/vore_egg/pinkspots) var/global/list/edible_trash = list(/obj/item/broken_device, /obj/item/clothing/accessory/collar, //TFF 10/7/19 - add option to nom collars, @@ -182,7 +218,8 @@ var/global/list/edible_trash = list(/obj/item/broken_device, /obj/item/weapon/storage/fancy/cigarettes, /obj/item/weapon/storage/fancy/crayons, /obj/item/weapon/storage/fancy/egg_box, - /obj/item/weapon/storage/wallet) + /obj/item/weapon/storage/wallet, + /obj/item/weapon/storage/vore_egg) var/global/list/contamination_flavors = list( "Generic" = contamination_flavors_generic, diff --git a/code/game/objects/items/weapons/storage/egg_vr.dm b/code/game/objects/items/weapons/storage/egg_vr.dm new file mode 100644 index 0000000000..0ea3b673e1 --- /dev/null +++ b/code/game/objects/items/weapons/storage/egg_vr.dm @@ -0,0 +1,182 @@ +//Item type vorepanel egg release containers. + +/obj/item/weapon/storage/vore_egg + name = "egg" + desc = "It's an egg; it's smooth to the touch." //This is the default egg. + icon = 'icons/obj/egg_new_vr.dmi' + icon_state = "egg" + var/open_egg_icon = 'icons/obj/egg_open_vr.dmi' + item_icons = list( + slot_l_hand_str = 'icons/mob/items/lefthand_storage.dmi', + slot_r_hand_str = 'icons/mob/items/righthand_storage.dmi', + ) + w_class = 2 + max_w_class = 0 + show_messages = 0 + allow_quick_empty = TRUE + use_sound = 'sound/items/drop/flesh.ogg' + +/obj/item/weapon/storage/vore_egg/open(mob/user as mob) + icon = open_egg_icon + ..() + +/obj/item/weapon/storage/vore_egg/proc/hatch(mob/living/user as mob) + visible_message("\The [src] begins to shake as something pushes out from within!") + animate_shake() + if(do_after(user, 50)) + if(use_sound) + playsound(src, src.use_sound, 50, 0, -5) + animate_shake() + drop_contents() + icon = open_egg_icon + +/obj/item/weapon/storage/vore_egg/proc/animate_shake() + var/init_px = pixel_x + var/shake_dir = pick(-1, 1) + animate(src, transform=turn(matrix(), 8*shake_dir), pixel_x=init_px + 2*shake_dir, time=1) + animate(transform=null, pixel_x=init_px, time=6, easing=ELASTIC_EASING) + +/obj/item/weapon/storage/vore_egg/unathi + name = "unathi egg" + desc = "Some species of Unathi apparently lay soft-shelled eggs!" + icon_state = "egg_unathi" + +/obj/item/weapon/storage/vore_egg/nevrean + name = "nevrean egg" + desc = "Most Nevreans lay hard-shelled eggs!" + icon_state = "egg_nevrean" + +/obj/item/weapon/storage/vore_egg/human + name = "human egg" + desc = "Some humans lay eggs that are--wait, what?" + icon_state = "egg_human" + +/obj/item/weapon/storage/vore_egg/tajaran + name = "tajaran egg" + desc = "Apparently that's what a Tajaran egg looks like. Weird." + icon_state = "egg_tajaran" + +/obj/item/weapon/storage/vore_egg/skrell + name = "skrell egg" + desc = "Its soft and squishy" + icon_state = "egg_skrell" + +/obj/item/weapon/storage/vore_egg/shark + name = "akula egg" + desc = "Its soft and slimy to the touch" + icon_state = "egg_akula" + +/obj/item/weapon/storage/vore_egg/sergal + name = "sergal egg" + desc = "An egg with a slightly fuzzy exterior, and a hard layer beneath." + icon_state = "egg_sergal" + +/obj/item/weapon/storage/vore_egg/slime + name = "slime egg" + desc = "An egg with a soft and squishy interior, coated with slime." + icon_state = "egg_slime" + +/obj/item/weapon/storage/vore_egg/special //Not actually used, but the sprites are in, and it's there in case any admins need to spawn in the egg for any specific reasons. + name = "special egg" + desc = "This egg has a very unique look to it." + icon_state = "egg_unique" + +/obj/item/weapon/storage/vore_egg/scree + name = "Chimera egg" + desc = "...You don't know what type of creature laid this egg." + icon_state = "egg_scree" + +/obj/item/weapon/storage/vore_egg/xenomorph + name = "Xenomorph egg" + desc = "Some type of pitch black egg. It has a slimy exterior coating." + icon_state = "egg_xenomorph" + +/obj/item/weapon/storage/vore_egg/chocolate + name = "chocolate egg" + desc = "Delicious. May contain a choking hazard." + icon_state = "egg_chocolate" + +/obj/item/weapon/storage/vore_egg/owlpellet + name = "boney egg" + desc = "Can an egg shell be made of bones and hair?" + icon_state = "egg_pellet" + +/obj/item/weapon/storage/vore_egg/slimeglob + name = "glob of slime" + desc = "Very squishy." + icon_state = "egg_slimeglob" + +/obj/item/weapon/storage/vore_egg/chicken + name = "chicken egg" + desc = "Looks like chickens come in all sizes and shapes." + icon_state = "egg_chicken" + +/obj/item/weapon/storage/vore_egg/synthetic + name = "synthetic egg" + desc = "Can robots lay eggs?" + icon_state = "egg_synthetic" + +/obj/item/weapon/storage/vore_egg/badrecipe + name = "Burned mess" + desc = "Someone didn't cook this egg quite right..." + icon_state = "egg_badrecipe" + +/obj/item/weapon/storage/vore_egg/escapepod + name = "small escape pod" + desc = "Someone left in a hurry." + icon_state = "egg_escapepod" + +/obj/item/weapon/storage/vore_egg/cocoon + name = "web cocoon" + desc = "It straight up smells like spiders in here." + icon_state = "egg_cocoon" + +/obj/item/weapon/storage/vore_egg/bugcocoon + name = "bug cocoon" + desc = "Metamorphosis!" + icon_state = "egg_bugcocoon" + +/obj/item/weapon/storage/vore_egg/rock + name = "rock egg" + desc = "It looks like a small boulder." + icon_state = "egg_rock" + +/obj/item/weapon/storage/vore_egg/yellow + name = "yellow egg" + desc = "It is a nice yellow egg." + icon_state = "egg_yellow" + +/obj/item/weapon/storage/vore_egg/blue + name = "blue egg" + desc = "It is a nice blue egg." + icon_state = "egg_blue" + +/obj/item/weapon/storage/vore_egg/green + name = "green egg" + desc = "It is a nice green egg." + icon_state = "egg_green" + +/obj/item/weapon/storage/vore_egg/orange + name = "orange egg" + desc = "It is a nice orange egg." + icon_state = "egg_orange" + +/obj/item/weapon/storage/vore_egg/purple + name = "purple egg" + desc = "It is a nice purple egg." + icon_state = "egg_purple" + +/obj/item/weapon/storage/vore_egg/red + name = "red egg" + desc = "It is a nice red egg." + icon_state = "egg_red" + +/obj/item/weapon/storage/vore_egg/rainbow + name = "rainbow egg" + desc = "It looks so colorful." + icon_state = "egg_rainbow" + +/obj/item/weapon/storage/vore_egg/pinkspots + name = "spotted pink egg" + desc = "It is a cute pink egg with white spots." + icon_state = "egg_pinkspots" diff --git a/code/game/objects/structures/crates_lockers/closets/egg_vr.dm b/code/game/objects/structures/crates_lockers/closets/egg_vr.dm index ba0809f638..dabc8fd88b 100644 --- a/code/game/objects/structures/crates_lockers/closets/egg_vr.dm +++ b/code/game/objects/structures/crates_lockers/closets/egg_vr.dm @@ -36,11 +36,11 @@ icon_opened = "egg_unathi_open" /obj/structure/closet/secure_closet/egg/nevrean - name = "nevarean egg" - desc = "Most Nevareans lay hard-shelled eggs!" - icon_state = "egg_nevarean" - icon_closed = "egg_nevarean" - icon_opened = "egg_nevarean_open" + name = "nevrean egg" + desc = "Most Nevreans lay hard-shelled eggs!" + icon_state = "egg_nevrean" + icon_closed = "egg_nevrean" + icon_opened = "egg_nevrean_open" /obj/structure/closet/secure_closet/egg/human name = "human egg" diff --git a/code/modules/client/preference_setup/vore/03_egg.dm b/code/modules/client/preference_setup/vore/03_egg.dm index 648b31b399..6c090478d5 100644 --- a/code/modules/client/preference_setup/vore/03_egg.dm +++ b/code/modules/client/preference_setup/vore/03_egg.dm @@ -1,15 +1,3 @@ -var/UNATHI_EGG = "Unathi" -var/TAJARAN_EGG = "Tajaran" -var/AKULA_EGG = "Akula" -var/SKRELL_EGG = "Skrell" -var/SERGAL_EGG = "Sergal" -var/HUMAN_EGG = "Human" -var/NEVREAN_EGG = "nevrean" -var/SLIME_EGG = "Slime" -var/EGG_EGG = "Egg" -var/XENOCHIMERA_EGG = "Xenochimera" -var/XENOMORPH_EGG = "Xenomorph" - // Define a place to save appearance in character setup /datum/preferences var/vore_egg_type = "Egg" //The egg type they have. @@ -26,8 +14,7 @@ var/XENOMORPH_EGG = "Xenomorph" S["vore_egg_type"] << pref.vore_egg_type /datum/category_item/player_setup_item/vore/egg/sanitize_character() - var/valid_vore_egg_types = global_vore_egg_types - pref.vore_egg_type = sanitize_inlist(pref.vore_egg_type, valid_vore_egg_types, initial(pref.vore_egg_type)) + pref.vore_egg_type = sanitize_inlist(pref.vore_egg_type, global_vore_egg_types, initial(pref.vore_egg_type)) /datum/category_item/player_setup_item/vore/egg/copy_to_mob(var/mob/living/carbon/human/character) character.vore_egg_type = pref.vore_egg_type @@ -44,7 +31,7 @@ var/XENOMORPH_EGG = "Xenomorph" var/list/vore_egg_types = global_vore_egg_types var/selection = input(user, "Choose your character's egg type:", "Character Preference", pref.vore_egg_type) as null|anything in vore_egg_types if(selection) - pref.vore_egg_type = vore_egg_types[selection] + pref.vore_egg_type = selection return TOPIC_REFRESH else return diff --git a/code/modules/vore/eating/belly_obj_vr.dm b/code/modules/vore/eating/belly_obj_vr.dm index bf753d7cb2..f8abbb477a 100644 --- a/code/modules/vore/eating/belly_obj_vr.dm +++ b/code/modules/vore/eating/belly_obj_vr.dm @@ -38,6 +38,9 @@ var/fancy_vore = FALSE // Using the new sounds? var/is_wet = TRUE // Is this belly's insides made of slimy parts? var/wet_loop = TRUE // Does the belly have a fleshy loop playing? + var/obj/item/weapon/storage/vore_egg/ownegg // Is this belly creating an egg? + var/egg_type = "egg" // Default egg type and path. + var/egg_path = /obj/item/weapon/storage/vore_egg //I don't think we've ever altered these lists. making them static until someone actually overrides them somewhere. //Actual full digest modes @@ -341,6 +344,11 @@ if (!(M in contents)) return 0 // They weren't in this belly anyway + for(var/mob/living/L in M.contents) + L.muffled = 0 + for(var/obj/item/weapon/holder/H in M.contents) + H.held_mob.muffled = 0 + //Place them into our drop_location M.forceMove(drop_location()) @@ -601,9 +609,10 @@ //Handle a mob struggling // Called from /mob/living/carbon/relaymove() -/obj/belly/proc/relay_resist(mob/living/R) +/obj/belly/proc/relay_resist(mob/living/R, obj/item/C) if (!(R in contents)) - return // User is not in this belly + if(!C) + return // User is not in this belly R.setClickCooldown(50) @@ -612,9 +621,13 @@ to_chat(owner, "Someone is attempting to climb out of your [lowertext(name)]!") if(do_after(R, escapetime, owner, incapacitation_flags = INCAPACITATION_DEFAULT & ~INCAPACITATION_RESTRAINED)) - if((owner.stat || escapable) && (R.loc == src)) //Can still escape? - release_specific_contents(R) - return + if((owner.stat || escapable)) //Can still escape? + if(C) + release_specific_contents(C) + return + if(R.loc == src) + release_specific_contents(R) + return else if(R.loc != src) //Aren't even in the belly. Quietly fail. return else //Belly became inescapable or mob revived @@ -657,6 +670,13 @@ to_chat(R, "You start to climb out of \the [lowertext(name)].") to_chat(owner, "Someone is attempting to climb out of your [lowertext(name)]!") if(do_after(R, escapetime)) + if(escapable && C) + release_specific_contents(C) + to_chat(R,"Your struggles successfully cause [owner] to squeeze your container out of their \the [lowertext(name)].") + to_chat(owner,"[C] suddenly slips out of your [lowertext(name)]!") + for(var/mob/M in hearers(4, owner)) + M.show_message("[C] suddenly slips out of [owner]'s [lowertext(name)]!", 2) + return if((escapable) && (R.loc == src) && !R.absorbed) //Does the owner still have escapable enabled? release_specific_contents(R) to_chat(R,"You climb out of \the [lowertext(name)].") @@ -687,6 +707,9 @@ to_chat(R, "Your attempt to escape [lowertext(name)] has failed and your struggles only results in you sliding into [owner]'s [transferlocation]!") to_chat(owner, "Someone slid into your [transferlocation] due to their struggling inside your [lowertext(name)]!") + if(C) + transfer_contents(C, dest_belly) + return transfer_contents(R, dest_belly) return diff --git a/code/modules/vore/eating/bellymodes_datum_vr.dm b/code/modules/vore/eating/bellymodes_datum_vr.dm index 8b46a660ba..6d97729767 100644 --- a/code/modules/vore/eating/bellymodes_datum_vr.dm +++ b/code/modules/vore/eating/bellymodes_datum_vr.dm @@ -14,6 +14,9 @@ GLOBAL_LIST_INIT(digest_modes, list()) /datum/digest_mode/proc/process_mob(obj/belly/B, mob/living/L) return null +/datum/digest_mode/proc/handle_atoms(obj/belly/B, list/touchable_atoms) + return FALSE + /datum/digest_mode/digest id = DM_DIGEST noise_chance = 50 @@ -156,8 +159,69 @@ GLOBAL_LIST_INIT(digest_modes, list()) // E G G /datum/digest_mode/egg id = DM_EGG - +/* /datum/digest_mode/egg/process_mob(obj/belly/B, mob/living/carbon/human/H) if(!istype(H) || H.stat == DEAD || H.absorbed) return null - B.put_in_egg(H, 1) + B.put_in_egg(H, 1)*/ + +/datum/digest_mode/egg/handle_atoms(obj/belly/B, list/touchable_atoms) + var/list/egg_contents = list() + for(var/E in touchable_atoms) + if(istype(E, /obj/item/weapon/storage/vore_egg)) // Don't egg other eggs. + continue + if(isliving(E)) + var/mob/living/L = E + if(L.absorbed) + continue + egg_contents += L + if(isitem(E)) + egg_contents += E + if(egg_contents.len) + if(!B.ownegg) + if(B.owner.vore_egg_type in tf_vore_egg_types) + B.egg_type = B.owner.vore_egg_type + B.egg_path = tf_vore_egg_types[B.egg_type] + B.ownegg = new B.egg_path(B) + for(var/atom/movable/C in egg_contents) + if(isitem(C) && egg_contents.len == 1) //Only egging one item + var/obj/item/I = C + B.ownegg.w_class = I.w_class + B.ownegg.max_storage_space = B.ownegg.w_class + I.forceMove(B.ownegg) + B.ownegg.icon_scale_x = 0.2 * B.ownegg.w_class + B.ownegg.icon_scale_y = 0.2 * B.ownegg.w_class + B.ownegg.update_transform() + egg_contents -= I + B.ownegg = null + return + if(isliving(C)) + var/mob/living/M = C + B.ownegg.w_class = M.size_multiplier * 4 //Egg size and weight scaled to match occupant. + var/obj/item/weapon/holder/H = new M.holder_type(B.ownegg) + H.held_mob = M + M.forceMove(H) + H.sync(M) + B.ownegg.max_storage_space = H.w_class + B.ownegg.icon_scale_x = 0.25 * B.ownegg.w_class + B.ownegg.icon_scale_y = 0.25 * B.ownegg.w_class + B.ownegg.update_transform() + egg_contents -= M + if(B.ownegg.w_class > 4) + B.ownegg.slowdown = B.ownegg.w_class - 4 + B.ownegg = null + return + C.forceMove(B.ownegg) + if(isitem(C)) + var/obj/item/I = C + B.ownegg.w_class += I.w_class //Let's assume a regular outfit can reach total w_class of 16. + B.ownegg.calibrate_size() + B.ownegg.orient2hud() + B.ownegg.w_class = clamp(B.ownegg.w_class * 0.25, 1, 8) //A total w_class of 16 will result in a backpack sized egg. + B.ownegg.icon_scale_x = 0.25 * B.ownegg.w_class + B.ownegg.icon_scale_y = 0.25 * B.ownegg.w_class + B.ownegg.update_transform() + if(B.ownegg.w_class > 4) + B.ownegg.slowdown = B.ownegg.w_class - 4 + B.ownegg = null + return \ No newline at end of file diff --git a/code/modules/vore/eating/bellymodes_vr.dm b/code/modules/vore/eating/bellymodes_vr.dm index 95162dfb15..9d4b5309c8 100644 --- a/code/modules/vore/eating/bellymodes_vr.dm +++ b/code/modules/vore/eating/bellymodes_vr.dm @@ -32,6 +32,14 @@ if(!length(touchable_atoms)) return + var/datum/digest_mode/DM = GLOB.digest_modes["[digest_mode]"] + if(!DM) + log_debug("Digest mode [digest_mode] didn't exist in the digest_modes list!!") + return FALSE + if(DM.handle_atoms(src, touchable_atoms)) + updateVRPanels() + return + var/list/touchable_mobs = null var/list/hta_returns = handle_touchable_atoms(touchable_atoms) @@ -55,11 +63,6 @@ continue // don't give digesty messages to indigestible people to_chat(M, "[pick(EL)]") - var/datum/digest_mode/DM = GLOB.digest_modes["[digest_mode]"] - if(!DM) - log_debug("Digest mode [digest_mode] didn't exist in the digest_modes list!!") - return FALSE - if(!digestion_noise_chance) digestion_noise_chance = DM.noise_chance diff --git a/code/modules/vore/eating/vorepanel_vr.dm b/code/modules/vore/eating/vorepanel_vr.dm index ccf3535d25..0e4f392091 100644 --- a/code/modules/vore/eating/vorepanel_vr.dm +++ b/code/modules/vore/eating/vorepanel_vr.dm @@ -929,10 +929,16 @@ qdel(host.vore_selected) host.vore_selected = host.vore_organs[1] . = TRUE +<<<<<<< HEAD if("b_vorespawn_blacklist") host.vore_selected.vorespawn_blacklist = !host.vore_selected.vorespawn_blacklist . = TRUE +||||||| parent of 5dd99a1257... Merge pull request #9622 from Verkister/eastercameearly + +======= + +>>>>>>> 5dd99a1257... Merge pull request #9622 from Verkister/eastercameearly if(.) unsaved_changes = TRUE diff --git a/code/modules/vore/resizing/holder_micro_vr.dm b/code/modules/vore/resizing/holder_micro_vr.dm index 4e7b63e0b9..b0bfbcc5b4 100644 --- a/code/modules/vore/resizing/holder_micro_vr.dm +++ b/code/modules/vore/resizing/holder_micro_vr.dm @@ -48,3 +48,23 @@ ..() for(var/mob/living/carbon/human/I in contents) item_state = lowertext(I.species.name) + +//Egg features. +/obj/item/weapon/holder/attack_hand(mob/living/user as mob) + if(istype(src.loc, /obj/item/weapon/storage/vore_egg)) //Don't scoop up the egged mob + src.pickup(user) + user.drop_from_inventory(src) + return + ..() + +/obj/item/weapon/holder/container_resist(mob/living/held) + if(!istype(src.loc, /obj/item/weapon/storage/vore_egg)) + ..() + else + var/obj/item/weapon/storage/vore_egg/E = src.loc + if(isbelly(E.loc)) + var/obj/belly/B = E.loc + B.relay_resist(held, E) + return + E.hatch(held) + return diff --git a/icons/obj/egg_new_vr.dmi b/icons/obj/egg_new_vr.dmi new file mode 100644 index 0000000000000000000000000000000000000000..b9804d69baf338b851874753db8b26af4562a54d GIT binary patch literal 12590 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 K=_)Ccfd2#2DHUA+ literal 0 HcmV?d00001 diff --git a/icons/obj/egg_open_vr.dmi b/icons/obj/egg_open_vr.dmi new file mode 100644 index 0000000000000000000000000000000000000000..e3faabb4dc2b068b8c55f56756022cd3a8fb971a GIT binary patch literal 11762 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 Y?nuM25ch^Z1JfIHBpi*BTJUb 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 i9B!jQl%~>@&`Uy* zUZo>os6nJB2*j+(37+@;pZ9z?U(R0F?qr^8X0o&MoBO$UXB8(DUlswU4*qnk*4>f~ zh{dSRJ}zm$@Jn4LWmMVX8qba5R(})8vm!lTPQ)-zksj3+qxMV;i1)<{%SJ{}YhsWt7$tu6NHv_bOmj_Ge!p`3^3 zS_5daTPv%Wb#Lrc7-p(=Vo^JLd}4StZ0!}Eut;2^Ox%!9X>R9{{7`ddO~LW5a6a0e zOBV2t#EeZ$cxdhz=FTjwy@@0LElzKQaU$fhFFQ3=QOgrVW4Px?qe`~IdRgh~GLXA`d4th@6z6{mWv+mY zT(*W6p94}Az45R+ONvgwWGK9KK#;v=*G05l@~aYyW1`zt4un=_MQdA|eOul3;8Izs zi=sCj9jk8l=11Uh$~S<#LCTvUqFlxv`fR;lP93GMx;{P{xn96=KmtAW(P}c(Nom{* zw;9uMxAIxTPT0wAALBxE<@4uPWVEfk2+jdFx`H^F3lDo_v5KkuVWLA5|f2{TF(}Yh8l1)MjpjW>{!rY@PVW0 zunHMUb4=K^-6jy#NuZx4lIPXGh}}#@TFt(g->G|;q(~^dME!%YE+Jb`E`9)&7Kg(i z8pg5*|LA?U>${(>0mLl?rQbB5=CWoL6vzyz6;||N*J&{6bUkr!T=zl0mm8{kfl%mr z@4eT}C0T+iBp@*GoUZPP;DQS%Mq2MV#7!^PXydJY-<~^^xQLx71Eu#hrTmgzsQ;QB zQPD^D4sp|ES0HpF#{3WPHF7pNab{hBmbMtu%ml(?BKf160e(bGWFoQ!a#QjLLSuzl zT%kJeYv_mEfk+O|JE%r$pOQj~Z0+ssE$vu81I;T| zoW#8lP!xrfbN9gak-5CgZ6VU*lf$c56%!^^f9$z7TYEplS9 zkI)WkQU4u#v?jHt-KEf7f>wC+=5z7Ft4PL=0Rrpf0+h7VwIc$#FwA=LV_u*uVA@t*txgpt?45cB-_Wo(V8oNpYm>eS?^f-5>H&#*AzX!K#5$}K4L;0Ed z3HKv(627a59JB2}dqb1=;lh`QB2tYW6xjMv_L%NzeW4|OS2&aiZ30KWNdNk6;GKwC z2gsEUBjn?MBgB+H&$b@H8Q*uxLpcempRfJ7^Rs5Q0t}A%Q({NU)gAOV3mq%|^0s+B zW)E~Gw*zx>!16*r_{lyl1?i9%tt0;!Gz# z#cRXqlWFkiZ;ve}7j|gAy2Ap?Pk&J%1Yn09RtI(>CP3}uczl2=M~^_sZ84o7l0b$} zwMzf?aHaKQ(!~vO!67crFtsL$ht>39>x-0=!Aw${%+qEf0Vc?M9M8vEpM!|@BkVt`5zYE~I3# za&$nr%+Vh|hPAkcaOhQ2Ey+G%5rrxL|P)xP@<2Phzvh{()H^^j#DOL^6 z3Z)WDV0mX9^ZuLAlRvq0eeQGGd%?hs0*;6=MpGOx(i+6?>FlsPZOzO2nQ^p>+_RH( z+;&^-j(yib4u;!k3M2>>?1ah;9iK=Dlrs?q88zf}NDwuK8c25bQ64GRG2ehEOQY&= zAak{-5d+!QywUGR797fhTmKSkp!nYmcdgQPJ(9UtCDZRo_l^H<}iQAg9ysWS5`|UlNzo+21 zl!8Y_*C#;^O7SP%+RjYZ0S};2CvfUh6*a9pR=`CGCJ!f-mlPh&LH{2bo??6OSeaT+ zeSyoXGGKbW`Z|5iYP~XXGioHyweLf<#@XF`pO=J@!J73fB~<@69V}qi(Q>X4PDyhX z=)&MOhA-}PY@BBk^Rzxy$lcYme)c>jUW{uZiOZwuK7}Sl_*>yV%DzC_u|TDXxjoVQ zgiVKC1I`c@hYP?V&{Uf659t7sR97Pa$&W*)!ie`~&m=Q1V;F&r@=avS9@W%MfI3Ux zL%kNHf)j5moJ5u>EO<4#41VI*5@Lc-M+!qCYtkc0vB-KjXf&;Woa}S8wuibsn!<)k zsK6pq2!Y7mwDwTCmr|Ml=eNAUd*XwBdR>IQX@t}Rl_y;yn3VhE*<^_=>|J@sSN560 zA&>VRVnck8NMUZAcchZDap|`zKxudS!`JUSoVye(D7?(H`v1~v zOJI03*rWDnpJ$>S$TBO|5aT(5m$dRm5kSP!*8+|UHl3(4Q*od7zZU5IqaP;!tO}sUgTtBM1Ppj=P1k-h1 zu;b7raUy&8t1|E2;!4uzmr0XA;mA6WNW&x}`Ww}w&|i5^0~oPT<$a3eA+PaAa$kF{ z;DTqf3o}yhR;l*f{?d1*xd`UGz}|3e4Q}<_*sKSM;8Z?#&mO_a`vW4zMJ$8ps|NZ% zs2^^&hs+V;7A9tq$Mi>%VCeKS;)?j|oV_NQJ!1&Qv@rqSX=5GCrh^Y;|N7oIpbU z>L?Ccn>ur4nb}cZYFV$(H>bQo<@i?SzMCnw%^fe(1~Nk>jRUP_pITjDf6Dj2^y|6U zlPJcmwYVXvR=4blwV)Em<|Wp_?MJOt0eL6>qlb?Ok)Y-4{2s2;hqK&4ay4)k7Ec0p zn)i}A#x}+F&YKNc^n?A#Vi8Y`Rh|5XL{YqTP`dzelF#*q<+$g_HC(jUNEBbr3C9%6 zj0nN<)vNr>2V$C@#&YP&`3AM+M$>ZOM(77ovCQjsb8~aWcN}O-0k$^kV%~JTfW7+^ zBd)LddC2NItv}be5o_40c0=962KZ7AW<=1j%KZx6XA@Fg;=)+m#ePA?$3yjhb?*#w z2>pi*&ZhWR-}_A?=!S9UZuV&6*R{7F?28A;h{BBa5sOviatp3`rx}NK(ooQiQOZb-X9TDP$ zzWP+5c$=de#h_*97+dtxwVc6wGJ86!@aBY1UVd!y*RTDcqJ3N#tY(O3PjS1F(GLVp z0R6({zVh=)#P`(w=XmGyNwKf5g8!IgR9`_3YyqE=-gbfJ-EEQJ=jwjCwh(LX7_U~- zq0}zbs?l=jUb65DsUHl3#u6IDH(eu+x|u2Q90yJn76pSkAyzr^V>`3m;>{uC9Gm-J zzfC=yH{?KATU#?-bW0|Tq5W1J5OhCk<(C3;Of*<>k@E^*ZlwOT*go-Q77u>SeO?FS zy*n6wdNv1s%s$%3>m~qa`d*SmbaGGB8(JyWnG zvrW{mXx&rLY-1V42gyypr3SBy|F`chcux)5S@%m5_@tns=`po1d0nOp2%l}qSF5o} zv1JqXn3j#ov6-diRlVOGFg*3Af|co5&Jsp$xG@b3L^5X9X-poE!%xd3E?-b)tSBJ3(eMv_w2<;QU~P1{T*c}w&gW7H6JV3 zZ!;c`7XkeEzcEgNt)bYq52NGaTWY2AdO4FcFG_i7f?ADW+ToGhk+FT+CK!u^O+uYV zkS34Oc$;;Oys2ZS+Kgsz@N>?0Bty=I_Vz2C_X=%G0%c8vL!HRR&UX3KzzwWTaM*u_ z$z<&w*kc7Nr`%nL%|082-qr2(ODXK1dL(f3W~sg>c$c5UBxNp@(^j)>Qzn@2w5$FB zY|+&0S?gM&?#Dp1ppYo==v-&b&=Dr}D`AU9PyJEfHLnEXeeB)$PZVxt`7iUoXWeD`<3G7{3J{-!o(?37KzdSP_*c97KgG{;jU-|1t*+BKdaK9e zZuRgPq&C+*?lOT@c8lG-&%40Pl`cWL67X6hLv066Q8j6=967{O{L(q?<07P&@Sg@%T0N$J$eLy z2>*kFbxpU6D~V^fTOROJv;s-_*t@ABp3|2rl&~@(u?M>suOYmsL9P=;Y&!f6+8NW@ z)g{0~)OY5{HhuH!pLYnaL!#lo$9-EUM!aHg$>2(#Ul8GkHzc6+$l~Aygb!+Wv8omp zpNIA0UU76=e4))WqojPFnV-GPq!lk$=onQmV%~yGT>3<1=8>Z0>0GZE%Eu~r?AdE9KKX&`gq-;c%lVYip9)h0uJx~p zfrUbVN2`(?LL{UD;y@j@tEy3612>*lV+1R9ps8ywj3VA|TaLmU%$jkfA%xBEZSE~%KZ6A_xFIE%+4?pkk%8LgVfvQ@hI&4-B z5XW;x%29=Dc6*A`M_D>4IBjK$7R=l?qkj8-*|_kykU7A$W!X@O~hjh?EZ9mI) z_e*IytCmK?9CPNb)QeFvZY;<5k`{V6KNEB%?~GA53pPziX9GiX^ImQh9XPn+^x8>c z%wlurIt7|4(Uvs;0vo33OCRofFT#-laRKxBz^ft=KwrK@KPOi~sX zku9Q7q|TS74#v~TbIJ#bPxV0#RAyE9mWLJEq8>QW`F}&osWWy}-!LS0X)_v@dmao~#PzE!dJXZ-dfGO|y@>)bdl$t@2_SB%L;_kvqVW8uqM z;nMi`9e^`sP9ZBBIBJ-bOh~h&Xoa`;IXJqj!D%M;VP0l~_D#pEEef>Yp_&XAlp=d> zx~@Cw#sV?ZtMUQ!)iFeH4;Y`Gn;G3ErO$F9p3Gmep%&@btz`%%C`y!q^C=s&sOva} z>P5g4lQGQOI%Th#NXEsg>WR~J>Ec!ZYG?rpZSJJ99b1?I?>}0?@}qEuKOMv*&zB5` zI5{U8tcv^&&n&ro=A8Lvn~4^(jMV`Q)ag@8W<;rjcci=mXi9`v%r8JWuYHU0Cb;N`A-3&55?Si-P+)+nee<%q z$Kh#7)0N*Z9~N$Dh&`{_oek6fPUZ`D=@TGIf+C)dP<0VI>^O^Ggj8+UY39hzP<5#} z_1c^gc6ATbuKvtZRTewtwHK3((og`Z?uR4=4#+mjW^E=1Kveb`OcNWu-v|VgGtCc2 z_el0Z+_u4uXAPX5cz{CBQZc;QMuBd^dKDJ0JKQzYZ9$O2xg(E!JPbJn*G{Z~%)&BU zxX({smg#Em`5v{V67>Uyy`6wQ#GxOsswV*0$3cq{RtcBO=T-G zYOlF$XF%01vr&bMER=C~<_&a{DR#!z?Qfs5iru5mEGH3|gM>d-@V?I$tU6XRfkO5Ky-}`*D*w1$(Si>7_IEyjzUAnen{A T%HdTA^SFBX`laFvj* Date: Mon, 1 Feb 2021 18:45:13 -0700 Subject: [PATCH 2/2] Fix conflict and adds chomp comments to vorespawn_blacklist --- code/modules/vore/eating/vorepanel_vr.dm | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/code/modules/vore/eating/vorepanel_vr.dm b/code/modules/vore/eating/vorepanel_vr.dm index 0e4f392091..0b902e82bc 100644 --- a/code/modules/vore/eating/vorepanel_vr.dm +++ b/code/modules/vore/eating/vorepanel_vr.dm @@ -158,7 +158,7 @@ "belly_fullscreen" = selected.belly_fullscreen, "possible_fullscreens" = icon_states('icons/mob/screen_full_vore.dmi'), "vorespawn_blacklist" = selected.vorespawn_blacklist - ) + ) //CHOMP Addition: vorespawn blacklist data["selected"]["addons"] = list() for(var/flag_name in selected.mode_flag_list) @@ -929,16 +929,11 @@ qdel(host.vore_selected) host.vore_selected = host.vore_organs[1] . = TRUE -<<<<<<< HEAD - if("b_vorespawn_blacklist") + + if("b_vorespawn_blacklist") //CHOMP Addition host.vore_selected.vorespawn_blacklist = !host.vore_selected.vorespawn_blacklist . = TRUE -||||||| parent of 5dd99a1257... Merge pull request #9622 from Verkister/eastercameearly - -======= - ->>>>>>> 5dd99a1257... Merge pull request #9622 from Verkister/eastercameearly if(.) unsaved_changes = TRUE @@ -1113,4 +1108,4 @@ if(new_message) host.vore_selected.set_reagent_messages(new_message,"full5") . = TRUE -//CHOMPedit end \ No newline at end of file +//CHOMPedit end