diff --git a/code/modules/vore/eating/belly_obj_ch.dm b/code/modules/vore/eating/belly_obj_ch.dm index bb2f956ba3..267d03f992 100644 --- a/code/modules/vore/eating/belly_obj_ch.dm +++ b/code/modules/vore/eating/belly_obj_ch.dm @@ -416,3 +416,8 @@ if(to_update) updateVRPanels() /////////////////////////// CHOMP PCL END /////////////////////////// + +/obj/belly/proc/update_internal_overlay() + for(var/A in contents) + if(isliving(A)) + vore_fx(A,1) \ No newline at end of file diff --git a/code/modules/vore/eating/belly_obj_vr.dm b/code/modules/vore/eating/belly_obj_vr.dm index afe99433b0..5d4a714829 100644 --- a/code/modules/vore/eating/belly_obj_vr.dm +++ b/code/modules/vore/eating/belly_obj_vr.dm @@ -166,6 +166,10 @@ var/disable_hud = FALSE var/colorization_enabled = TRUE //CHOMPedit var/belly_fullscreen_color = "#823232" + var/belly_fullscreen_color2 = "#FFFFFF" + var/belly_fullscreen_color3 = "#823232" + var/belly_fullscreen_color4 = "#FFFFFF" + var/belly_fullscreen_alpha = 255 @@ -230,6 +234,10 @@ "disable_hud", "reagent_mode_flags", //CHOMP start of variables from CHOMP "belly_fullscreen_color", + "belly_fullscreen_color2", + "belly_fullscreen_color3", + "belly_fullscreen_color4", + "belly_fullscreen_alpha", "colorization_enabled", "reagentbellymode", "liquid_fullness1_messages", @@ -415,7 +423,7 @@ for(var/count in I.d_mult to 1 step 0.25) I.add_overlay(I.d_stage_overlay, TRUE) //CHOMPEdit end -/obj/belly/proc/vore_fx(mob/living/L) +/obj/belly/proc/vore_fx(mob/living/L, var/update) if(!istype(L)) return if(!L.client) @@ -423,22 +431,35 @@ if(!L.show_vore_fx) L.clear_fullscreen("belly") return - + if(update) + L.clear_fullscreen("belly") if(belly_fullscreen) if(colorization_enabled) var/obj/screen/fullscreen/F = L.overlay_fullscreen("belly", /obj/screen/fullscreen/belly) //CHOMPedit: preserving save data - F.icon_state = belly_fullscreen - F.color = belly_fullscreen_color - /* //Allows for 'multilayered' stomachs. Currently not implemented. - if(b_multilayered) - var/obj/screen/fullscreen/F2 = L.overlay_fullscreen("belly2", /obj/screen/fullscreen/belly) - */ + var/image/I = image(F.icon, belly_fullscreen) //Would be cool if I could just include color and alpha in the image define so we don't have to copy paste + I.color = belly_fullscreen_color + I.alpha = belly_fullscreen_alpha + F.add_overlay(I) + I = image('modular_chomp/icons/mob/screen_full_vore_ch_overlays.dmi', belly_fullscreen+"-2") + I.color = belly_fullscreen_color2 + I.alpha = belly_fullscreen_alpha + F.add_overlay(I) + I = image('modular_chomp/icons/mob/screen_full_vore_ch_overlays.dmi', belly_fullscreen+"-3") + I.color = belly_fullscreen_color3 + I.alpha = belly_fullscreen_alpha + F.add_overlay(I) + I = image('modular_chomp/icons/mob/screen_full_vore_ch_overlays.dmi', belly_fullscreen+"-4") + I.color = belly_fullscreen_color4 + I.alpha = belly_fullscreen_alpha + F.add_overlay(I) else var/obj/screen/fullscreen/F = L.overlay_fullscreen("belly", /obj/screen/fullscreen/belly/fixed) //CHOMPedit: preserving save data - F.icon_state = belly_fullscreen + F.add_overlay(image(F.icon, belly_fullscreen)) + F.add_overlay(image('modular_chomp/icons/mob/screen_full_vore_ch_overlays.dmi', belly_fullscreen+"-2")) + F.add_overlay(image('modular_chomp/icons/mob/screen_full_vore_ch_overlays.dmi', belly_fullscreen+"-3")) + F.add_overlay(image('modular_chomp/icons/mob/screen_full_vore_ch_overlays.dmi', belly_fullscreen+"-4")) else L.clear_fullscreen("belly") - //L.clear_fullscreen("belly2") //Allows for 'multilayered' stomachs. Currently not implemented. if(disable_hud) if(L?.hud_used?.hud_shown) @@ -454,18 +475,30 @@ if(belly_fullscreen) if(colorization_enabled) var/obj/screen/fullscreen/F = L.overlay_fullscreen("belly", /obj/screen/fullscreen/belly) //CHOMPedit: preserving save data - F.icon_state = belly_fullscreen - F.color = belly_fullscreen_color - /* //Allows for 'multilayered' stomachs. Currently not implemented. - if(b_multilayered) - var/obj/screen/fullscreen/F2 = L.overlay_fullscreen("belly2", /obj/screen/fullscreen/belly) - */ + var/image/I = image(F.icon, belly_fullscreen) + I.color = belly_fullscreen_color + I.alpha = belly_fullscreen_alpha + F.add_overlay(I) + I = image('modular_chomp/icons/mob/screen_full_vore_ch_overlays.dmi', belly_fullscreen+"-2") + I.color = belly_fullscreen_color2 + I.alpha = belly_fullscreen_alpha + F.add_overlay(I) + I = image('modular_chomp/icons/mob/screen_full_vore_ch_overlays.dmi', belly_fullscreen+"-3") + I.color = belly_fullscreen_color3 + I.alpha = belly_fullscreen_alpha + F.add_overlay(I) + I = image('modular_chomp/icons/mob/screen_full_vore_ch_overlays.dmi', belly_fullscreen+"-4") + I.color = belly_fullscreen_color4 + I.alpha = belly_fullscreen_alpha + F.add_overlay(I) else var/obj/screen/fullscreen/F = L.overlay_fullscreen("belly", /obj/screen/fullscreen/belly/fixed) //CHOMPedit: preserving save data - F.icon_state = belly_fullscreen + F.add_overlay(image(F.icon, belly_fullscreen)) + F.add_overlay(image('modular_chomp/icons/mob/screen_full_vore_ch_overlays.dmi', belly_fullscreen+"-2")) + F.add_overlay(image('modular_chomp/icons/mob/screen_full_vore_ch_overlays.dmi', belly_fullscreen+"-3")) + F.add_overlay(image('modular_chomp/icons/mob/screen_full_vore_ch_overlays.dmi', belly_fullscreen+"-4")) else L.clear_fullscreen("belly") - //L.clear_fullscreen("belly2") //Allows for 'multilayered' stomachs. Currently not implemented. /obj/belly/proc/clear_preview(mob/living/L) L.clear_fullscreen("belly") @@ -1354,6 +1387,10 @@ dupe.reagent_mode_flags = reagent_mode_flags //CHOMP start of variables from CHOMP dupe.belly_fullscreen_color = belly_fullscreen_color + dupe.belly_fullscreen_color2 = belly_fullscreen_color2 + dupe.belly_fullscreen_color3 = belly_fullscreen_color3 + dupe.belly_fullscreen_color4 = belly_fullscreen_color4 + dupe.belly_fullscreen_alpha = belly_fullscreen_alpha dupe.reagentbellymode = reagentbellymode dupe.vorefootsteps_sounds = vorefootsteps_sounds dupe.liquid_fullness1_messages = liquid_fullness1_messages @@ -1397,7 +1434,6 @@ dupe.belly_fullscreen = belly_fullscreen dupe.disable_hud = disable_hud - dupe.belly_fullscreen_color = belly_fullscreen_color dupe.colorization_enabled = colorization_enabled dupe.egg_type = egg_type dupe.emote_time = emote_time diff --git a/code/modules/vore/eating/bellymodes_vr.dm b/code/modules/vore/eating/bellymodes_vr.dm index 7d6591202b..03183e4ef8 100644 --- a/code/modules/vore/eating/bellymodes_vr.dm +++ b/code/modules/vore/eating/bellymodes_vr.dm @@ -214,7 +214,7 @@ L.Weaken(5) // Fullscreen overlays - vore_fx(L) + //vore_fx(L) //CHOMPEdit - Don't update this every single process tick, damn. //Handle 'human' if(ishuman(L)) diff --git a/code/modules/vore/eating/vorepanel_vr.dm b/code/modules/vore/eating/vorepanel_vr.dm index 9c138efbf2..310f6a1cdc 100644 --- a/code/modules/vore/eating/vorepanel_vr.dm +++ b/code/modules/vore/eating/vorepanel_vr.dm @@ -198,11 +198,15 @@ "nutrition_ex" = host.nutrition_message_visible, "weight_ex" = host.weight_message_visible, "belly_fullscreen" = selected.belly_fullscreen, + //CHOMP add: vore sprite options and additional stuff "belly_fullscreen_color" = selected.belly_fullscreen_color, + "belly_fullscreen_color2" = selected.belly_fullscreen_color2, + "belly_fullscreen_color3" = selected.belly_fullscreen_color3, + "belly_fullscreen_color4" = selected.belly_fullscreen_color4, + "belly_fullscreen_alpha" = selected.belly_fullscreen_alpha, "colorization_enabled" = selected.colorization_enabled, - "vorespawn_blacklist" = selected.vorespawn_blacklist, //CHOMP Addition: vorespawn blacklist - "sound_volume" = selected.sound_volume, //CHOMPAdd - //CHOMP add: vore sprite options + "vorespawn_blacklist" = selected.vorespawn_blacklist, + "sound_volume" = selected.sound_volume, "affects_voresprite" = selected.affects_vore_sprites, "absorbed_voresprite" = selected.count_absorbed_prey_for_sprite, "absorbed_multiplier" = selected.absorbed_multiplier, @@ -271,6 +275,10 @@ selected_list["disable_hud"] = selected.disable_hud selected_list["colorization_enabled"] = selected.colorization_enabled selected_list["belly_fullscreen_color"] = selected.belly_fullscreen_color + selected_list["belly_fullscreen_color2"] = selected.belly_fullscreen_color2 + selected_list["belly_fullscreen_color3"] = selected.belly_fullscreen_color3 + selected_list["belly_fullscreen_color4"] = selected.belly_fullscreen_color4 + selected_list["belly_fullscreen_alpha"] = selected.belly_fullscreen_alpha if(selected.colorization_enabled) selected_list["possible_fullscreens"] = icon_states('modular_chomp/icons/mob/screen_full_vore_ch.dmi') //Makes any icons inside of here selectable. //CHOMPedit @@ -1644,6 +1652,7 @@ . = TRUE //CHOMPedit End if("b_fullscreen") host.vore_selected.belly_fullscreen = params["val"] + host.vore_selected.update_internal_overlay() . = TRUE if("b_disable_hud") host.vore_selected.disable_hud = !host.vore_selected.disable_hud @@ -1668,6 +1677,31 @@ var/newcolor = input(usr, "Choose a color.", "", host.vore_selected.belly_fullscreen_color) as color|null if(newcolor) host.vore_selected.belly_fullscreen_color = newcolor + host.vore_selected.update_internal_overlay() + . = TRUE + if("b_fullscreen_color2") + var/newcolor2 = input(usr, "Choose a color.", "", host.vore_selected.belly_fullscreen_color2) as color|null + if(newcolor2) + host.vore_selected.belly_fullscreen_color2 = newcolor2 + host.vore_selected.update_internal_overlay() + . = TRUE + if("b_fullscreen_color3") + var/newcolor3 = input(usr, "Choose a color.", "", host.vore_selected.belly_fullscreen_color3) as color|null + if(newcolor3) + host.vore_selected.belly_fullscreen_color3 = newcolor3 + host.vore_selected.update_internal_overlay() + . = TRUE + if("b_fullscreen_color4") + var/newcolor4 = input(usr, "Choose a color.", "", host.vore_selected.belly_fullscreen_color4) as color|null + if(newcolor4) + host.vore_selected.belly_fullscreen_color4 = newcolor4 + host.vore_selected.update_internal_overlay() + . = TRUE + if("b_fullscreen_alpha") + var/newalpha = tgui_input_number(usr, "Set alpha transparency between 0-255", "Vore Alpha",255,255,0,0,1) + if(newalpha) + host.vore_selected.belly_fullscreen_alpha = newalpha + host.vore_selected.update_internal_overlay() . = TRUE if("b_save_digest_mode") host.vore_selected.save_digest_mode = !host.vore_selected.save_digest_mode diff --git a/modular_chomp/icons/mob/screen_full_vore_ch.dmi b/modular_chomp/icons/mob/screen_full_vore_ch.dmi index 589df38a7c..de66723684 100644 Binary files a/modular_chomp/icons/mob/screen_full_vore_ch.dmi and b/modular_chomp/icons/mob/screen_full_vore_ch.dmi differ diff --git a/modular_chomp/icons/mob/screen_full_vore_ch_credits.txt b/modular_chomp/icons/mob/screen_full_vore_ch_credits.txt new file mode 100644 index 0000000000..700d34f185 --- /dev/null +++ b/modular_chomp/icons/mob/screen_full_vore_ch_credits.txt @@ -0,0 +1,39 @@ +Yeah hey if you're reading this, this is just a little .txt file keeping a record of which artist created which belly sprite (if any credit is due). + +Scottred: +VBO_belly1 +VBO_belly2 +VBO_belly3 +VBO_belly4 +VBO_belly6 +VBO_belly7 +VBO_intestines6 +VBO_intestines7 +VBO_intestines8 + +TheMirth: +VBO_belly5 +VBO_maw1 + +Tsumibeer: +VBO_intestines1 +VBO_intestines2 +VBO_intestines3 +VBO_intestines4 +VBO_intestines5 + +Ewebun: +VBO_maw2 +VBO_maw3 +VBO_maw4 +VBO_maw5 +VBO_maw6 +VBO_maw7 +VBO_maw8 +VBO_maw9 +VBO_maw10 +VBO_maw11 + +FishyBoner: +VBO_maw12 +VBO_trash \ No newline at end of file diff --git a/modular_chomp/icons/mob/screen_full_vore_ch_overlays.dmi b/modular_chomp/icons/mob/screen_full_vore_ch_overlays.dmi new file mode 100644 index 0000000000..da403b10dd Binary files /dev/null and b/modular_chomp/icons/mob/screen_full_vore_ch_overlays.dmi differ diff --git a/tgui/packages/tgui/interfaces/VorePanel.js b/tgui/packages/tgui/interfaces/VorePanel.js index d46eade1bd..b36ebba661 100644 --- a/tgui/packages/tgui/interfaces/VorePanel.js +++ b/tgui/packages/tgui/interfaces/VorePanel.js @@ -794,6 +794,10 @@ const VoreSelectedBellyVisuals = (props, context) => { const { belly_fullscreen, belly_fullscreen_color, + belly_fullscreen_color2, + belly_fullscreen_color3, + belly_fullscreen_color4, + belly_fullscreen_alpha, mapRef, colorization_enabled, possible_fullscreens, @@ -939,7 +943,30 @@ const VoreSelectedBellyVisuals = (props, context) => { + + + + + + +