diff --git a/code/modules/vore/eating/living_ch.dm b/code/modules/vore/eating/living_ch.dm index 4f8ae74e2f..047edbdf7a 100644 --- a/code/modules/vore/eating/living_ch.dm +++ b/code/modules/vore/eating/living_ch.dm @@ -16,6 +16,8 @@ var/list/vore_fullness_ex = list("stomach" = 0) // Expanded list of fullness var/vore_icons = 0 // Bitfield for which fields we have vore icons for. var/vore_eyes = FALSE // For mobs with fullness specific eye overlays. + var/vore_sprite_multiply = list("stomach" = FALSE, "taur belly" = FALSE) + var/vore_sprite_color = list("stomach" = "#000", "taur belly" = "#000") var/list/vore_icon_bellies = list("stomach") diff --git a/code/modules/vore/eating/living_vr.dm b/code/modules/vore/eating/living_vr.dm index 6310567af2..2bc2c70898 100644 --- a/code/modules/vore/eating/living_vr.dm +++ b/code/modules/vore/eating/living_vr.dm @@ -299,6 +299,8 @@ P.receive_reagents = src.receive_reagents P.give_reagents = src.give_reagents P.autotransferable = src.autotransferable + P.vore_sprite_color = src.vore_sprite_color + P.vore_sprite_multiply = src.vore_sprite_multiply var/list/serialized = list() for(var/obj/belly/B as anything in src.vore_organs) @@ -355,6 +357,8 @@ receive_reagents = P.receive_reagents give_reagents = P.give_reagents autotransferable = P.autotransferable + vore_sprite_color = P.vore_sprite_color + vore_sprite_multiply = P.vore_sprite_multiply if(bellies) release_vore_contents(silent = TRUE) diff --git a/code/modules/vore/eating/vore_vr.dm b/code/modules/vore/eating/vore_vr.dm index 137a6364fc..b20e6a3cf2 100644 --- a/code/modules/vore/eating/vore_vr.dm +++ b/code/modules/vore/eating/vore_vr.dm @@ -72,6 +72,8 @@ V::::::V V::::::VO:::::::OOO:::::::ORR:::::R R:::::REE::::::EEEEEE var/latejoin_vore = FALSE var/latejoin_prey = FALSE var/autotransferable = TRUE + var/vore_sprite_multiply = list("stomach" = FALSE, "taur belly" = FALSE) + var/vore_sprite_color = list("stomach" = "#000", "taur belly" = "#000") //CHOMP stuff end var/list/belly_prefs = list() @@ -211,6 +213,8 @@ V::::::V V::::::VO:::::::OOO:::::::ORR:::::R R:::::REE::::::EEEEEE receive_reagents = json_from_file["receive_reagents"] give_reagents = json_from_file["give_reagents"] autotransferable = json_from_file["autotransferable"] + vore_sprite_color = json_from_file["vore_sprite_color"] + vore_sprite_multiply = json_from_file["vore_sprite_multiply"] //Quick sanitize @@ -306,6 +310,10 @@ V::::::V V::::::VO:::::::OOO:::::::ORR:::::R R:::::REE::::::EEEEEE give_reagents = FALSE if(isnull(autotransferable)) autotransferable = TRUE + if(isnull(vore_sprite_color)) + vore_sprite_color = list("stomach" = "#000", "taur belly" = "#000") + if(isnull(vore_sprite_multiply)) + vore_sprite_multiply = list("stomach" = FALSE, "taur belly" = FALSE) return TRUE @@ -350,6 +358,8 @@ V::::::V V::::::VO:::::::OOO:::::::ORR:::::R R:::::REE::::::EEEEEE "nutrition_messages" = nutrition_messages, "weight_message_visible" = weight_message_visible, "weight_messages" = weight_messages, + "vore_sprite_color" = vore_sprite_color, //CHOMPEdit + "vore_sprite_multiply" = vore_sprite_multiply, //CHOMPEdit ) //List to JSON diff --git a/code/modules/vore/eating/vorepanel_vr.dm b/code/modules/vore/eating/vorepanel_vr.dm index eb5adfeba5..f9f80c2ed2 100644 --- a/code/modules/vore/eating/vorepanel_vr.dm +++ b/code/modules/vore/eating/vorepanel_vr.dm @@ -366,7 +366,11 @@ "nutrition_message_visible" = host.nutrition_message_visible, "nutrition_messages" = host.nutrition_messages, "weight_message_visible" = host.weight_message_visible, - "weight_messages" = host.weight_messages + "weight_messages" = host.weight_messages, + //CHOMPEdit start, vore sprites + "vore_sprite_color" = host.vore_sprite_color, + "vore_sprite_multiply" = host.vore_sprite_multiply + //CHOMPEdit end ) return data @@ -670,6 +674,20 @@ host.weight_message_visible = !host.weight_message_visible unsaved_changes = TRUE return TRUE + //CHOMPEdit start - vore sprites color + if("set_vs_color") + var/belly_choice = tgui_input_list(usr, "Which vore sprite are you going to edit the color of?", "Vore Sprite Color", host.vore_icon_bellies) + var/newcolor = input(usr, "Choose a color.", "", host.vore_sprite_color[belly_choice]) as color|null + if(newcolor) + host.vore_sprite_color[belly_choice] = newcolor + var/multiply = tgui_input_list(usr, "Set the color to be applied multiplicatively or additively? Currently in [host.vore_sprite_multiply[belly_choice] ? "Multiply" : "Add"]", "Vore Sprite Color", list("Multiply", "Add")) + if(multiply == "Multiply") + host.vore_sprite_multiply[belly_choice] = TRUE + else if(multiply == "Add") + host.vore_sprite_multiply[belly_choice] = FALSE + host.update_icons_body() + return TRUE + //CHOMPEdit end /datum/vore_look/proc/pick_from_inside(mob/user, params) var/atom/movable/target = locate(params["pick"]) diff --git a/modular_chomp/code/modules/mob/living/carbon/human/update_icons.dm b/modular_chomp/code/modules/mob/living/carbon/human/update_icons.dm index 7ead82c834..ca428766c4 100644 --- a/modular_chomp/code/modules/mob/living/carbon/human/update_icons.dm +++ b/modular_chomp/code/modules/mob/living/carbon/human/update_icons.dm @@ -57,7 +57,7 @@ if(!(wear_suit && wear_suit.flags_inv & HIDETAIL)) var/vs_fullness = vore_fullness_ex["stomach"] var/icon/vorebelly_s = new/icon(icon = 'icons/mob/vore/Bellies.dmi', icon_state = "[species.vore_belly_default_variant]Belly[vs_fullness][struggle_anim_stomach ? "" : " idle"]") - vorebelly_s.Blend(rgb(r_skin, g_skin, b_skin), species.color_mult ? ICON_MULTIPLY : ICON_ADD) + vorebelly_s.Blend(vore_sprite_color["stomach"], vore_sprite_multiply["stomach"] ? ICON_MULTIPLY : ICON_ADD) var/image/working = image(vorebelly_s) working.overlays += em_block_image_generic(working) return working @@ -88,7 +88,7 @@ if(tail_style && istaurtail(tail_style) && tail_style:vore_tail_sprite_variant) var/vs_fullness = vore_fullness_ex["taur belly"] var/icon/vorebelly_s = new/icon(icon = 'icons/mob/vore/Taur_Bellies.dmi', icon_state = "Taur[tail_style:vore_tail_sprite_variant]-Belly-[vs_fullness][struggle_anim_taur ? "" : " idle"]") - vorebelly_s.Blend(rgb(src.r_tail, src.g_tail, src.b_tail), tail_style.color_blend_mode) + vorebelly_s.Blend(vore_sprite_color["taur belly"], vore_sprite_multiply["taur belly"] ? ICON_MULTIPLY : ICON_ADD) var/image/working = image(vorebelly_s) working.pixel_x = -16 if(tail_style.em_block) diff --git a/tgui/packages/tgui/interfaces/VorePanel.js b/tgui/packages/tgui/interfaces/VorePanel.js index 8b3d7e80fe..3e9501d0f3 100644 --- a/tgui/packages/tgui/interfaces/VorePanel.js +++ b/tgui/packages/tgui/interfaces/VorePanel.js @@ -1955,6 +1955,9 @@ const VoreUserPreferences = (props, context) => { + +