From d658d29346acb013c0ec5167be32f080605934ee Mon Sep 17 00:00:00 2001 From: CHOMPStation2 <58959929+CHOMPStation2@users.noreply.github.com> Date: Fri, 11 Aug 2023 05:25:41 -0700 Subject: [PATCH] [MIRROR] OOC notes panel (#6767) Co-authored-by: Casey Co-authored-by: Raeschen --- .../objects/items/devices/body_snatcher_vr.dm | 8 + .../items/devices/scanners/sleevemate.dm | 10 +- .../preference_setup/general/01_basic.dm | 4 + .../preference_setup/general/06_flavor.dm | 2 + code/modules/client/preferences.dm | 2 + .../client/verbs/character_directory.dm | 9 +- code/modules/mob/living/bot/bot.dm | 4 + .../human/species/station/prommie_blob.dm | 4 + .../station/protean_vr/protean_blob.dm | 4 + code/modules/mob/living/living.dm | 3 +- code/modules/mob/living/living_defines_vr.dm | 2 + code/modules/mob/living/living_vr.dm | 39 ++++- code/modules/mob/living/ooc_notes.dm | 139 ++++++++++++++++++ code/modules/mob/living/silicon/ai/ai.dm | 2 + code/modules/mob/living/silicon/pai/pai.dm | 3 + .../modules/mob/living/silicon/robot/robot.dm | 2 + .../subtypes/vore/dominated_brain.dm | 27 ++++ .../living/simple_mob/subtypes/vore/vore.dm | 2 + .../nifsoft/software/13_soulcatcher.dm | 2 + code/modules/organs/internal/brain.dm | 6 +- code/modules/resleeving/infocore_records.dm | 5 +- code/modules/resleeving/machines.dm | 7 + code/modules/resleeving/sleevecard.dm | 6 +- code/modules/vore/eating/living_vr.dm | 14 ++ code/modules/vore/mouseray.dm | 2 + vorestation.dme | 1 + 26 files changed, 298 insertions(+), 11 deletions(-) create mode 100644 code/modules/mob/living/ooc_notes.dm diff --git a/code/game/objects/items/devices/body_snatcher_vr.dm b/code/game/objects/items/devices/body_snatcher_vr.dm index 1da220c193..c5d0456f5b 100644 --- a/code/game/objects/items/devices/body_snatcher_vr.dm +++ b/code/game/objects/items/devices/body_snatcher_vr.dm @@ -40,7 +40,11 @@ var/datum/mind/user_mind = user.mind var/datum/mind/prey_mind = M.mind var/target_ooc_notes = M.ooc_notes + var/target_likes = M.ooc_notes_likes + var/target_dislikes = M.ooc_notes_dislikes var/user_ooc_notes = user.ooc_notes + var/user_likes = user.ooc_notes_likes + var/user_dislikes = user.ooc_notes_dislikes M.ghostize() usr.ghostize() usr.mind = null @@ -52,7 +56,11 @@ prey_mind.active = TRUE prey_mind.transfer_to(user) M.ooc_notes = user_ooc_notes //Let's keep their OOC notes over to their new body. + M.ooc_notes_likes = user_likes + M.ooc_notes_dislikes = user_dislikes user.ooc_notes = target_ooc_notes + user.ooc_notes_likes = target_likes + user.ooc_notes_dislikes = target_dislikes usr.sleeping = 10 //Device knocks out both the user and the target. usr.eye_blurry = 30 //Blurry vision while they both get used to their new body's vision usr.slurring = 50 //And let's also have them slurring while they attempt to get used to using their new body. diff --git a/code/game/objects/items/devices/scanners/sleevemate.dm b/code/game/objects/items/devices/scanners/sleevemate.dm index 5308e2c842..6de4c66497 100644 --- a/code/game/objects/items/devices/scanners/sleevemate.dm +++ b/code/game/objects/items/devices/scanners/sleevemate.dm @@ -18,6 +18,8 @@ var/global/mob/living/carbon/human/dummy/mannequin/sleevemate_mob var/datum/mind/stored_mind var/ooc_notes = null //For holding prefs + var/ooc_notes_likes = null + var/ooc_notes_dislikes = null // Resleeving database this machine interacts with. Blank for default database // Needs a matching /datum/transcore_db with key defined in code @@ -32,11 +34,15 @@ var/global/mob/living/carbon/human/dummy/mannequin/sleevemate_mob /obj/item/device/sleevemate/proc/clear_mind() stored_mind = null ooc_notes = null + ooc_notes_likes = null + ooc_notes_dislikes = null update_icon() /obj/item/device/sleevemate/proc/get_mind(mob/living/M) ASSERT(M.mind) ooc_notes = M.ooc_notes + ooc_notes_likes = M.ooc_notes_likes + ooc_notes_dislikes = M.ooc_notes_dislikes stored_mind = M.mind M.ghostize() stored_mind.current = null @@ -46,6 +52,8 @@ var/global/mob/living/carbon/human/dummy/mannequin/sleevemate_mob stored_mind.active = TRUE stored_mind.transfer_to(M) M.ooc_notes = ooc_notes + M.ooc_notes_likes = ooc_notes_likes + M.ooc_notes_dislikes = ooc_notes_dislikes clear_mind() @@ -300,4 +308,4 @@ var/global/mob/living/carbon/human/dummy/mannequin/sleevemate_mob if(stored_mind) icon_state = "[initial(icon_state)]_on" else - icon_state = initial(icon_state) \ No newline at end of file + icon_state = initial(icon_state) diff --git a/code/modules/client/preference_setup/general/01_basic.dm b/code/modules/client/preference_setup/general/01_basic.dm index dada4d2843..f9cef82095 100644 --- a/code/modules/client/preference_setup/general/01_basic.dm +++ b/code/modules/client/preference_setup/general/01_basic.dm @@ -23,6 +23,8 @@ S["bday_announce"] >> pref.bday_announce S["spawnpoint"] >> pref.spawnpoint S["OOC_Notes"] >> pref.metadata + S["OOC_Notes_Likes"] >> pref.metadata_likes + S["OOC_Notes_Disikes"] >> pref.metadata_dislikes /datum/category_item/player_setup_item/general/basic/save_character(var/savefile/S) S["real_name"] << pref.real_name @@ -37,6 +39,8 @@ S["bday_announce"] << pref.bday_announce S["spawnpoint"] << pref.spawnpoint S["OOC_Notes"] << pref.metadata + S["OOC_Notes_Likes"] << pref.metadata_likes + S["OOC_Notes_Disikes"] << pref.metadata_dislikes /datum/category_item/player_setup_item/general/basic/sanitize_character() pref.age = sanitize_integer(pref.age, get_min_age(), get_max_age(), initial(pref.age)) diff --git a/code/modules/client/preference_setup/general/06_flavor.dm b/code/modules/client/preference_setup/general/06_flavor.dm index be02dc3146..f95fb12abf 100644 --- a/code/modules/client/preference_setup/general/06_flavor.dm +++ b/code/modules/client/preference_setup/general/06_flavor.dm @@ -48,6 +48,8 @@ character.flavor_texts["legs"] = pref.flavor_texts["legs"] character.flavor_texts["feet"] = pref.flavor_texts["feet"] character.ooc_notes = pref.metadata //VOREStation Add + character.ooc_notes_likes = pref.metadata_likes + character.ooc_notes_dislikes = pref.metadata_dislikes /datum/category_item/player_setup_item/general/flavor/content(var/mob/user) . += "Flavor:
" diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index b9869e1613..77ba6a0096 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -144,6 +144,8 @@ var/list/preferences_datums = list() // OOC Metadata: var/metadata = "" + var/metadata_likes = "" + var/metadata_dislikes = "" var/list/ignored_players = list() var/client/client = null diff --git a/code/modules/client/verbs/character_directory.dm b/code/modules/client/verbs/character_directory.dm index d4441af20b..056a85bd6f 100644 --- a/code/modules/client/verbs/character_directory.dm +++ b/code/modules/client/verbs/character_directory.dm @@ -94,14 +94,16 @@ GLOBAL_DATUM(character_directory, /datum/character_directory) name = strangername species = "[H.custom_species ? H.custom_species : H.species.name]" ooc_notes = H.ooc_notes - if(LAZYLEN(H.flavor_texts)) - flavor_text = H.flavor_texts["general"] + ooc_notes += "\n\n LIKES\n\n[H.ooc_notes_likes]\n\nDISLIKES\n\n[H.ooc_notes_dislikes]" + if(LAZYLEN(H.flavor_texts)) //ChompEDIT + flavor_text = H.flavor_texts["general"] //ChompEDIT if(isAI(C.mob)) var/mob/living/silicon/ai/A = C.mob name = A.name species = "Artificial Intelligence" ooc_notes = A.ooc_notes + ooc_notes += "\n\nLIKES\n\n[A.ooc_notes_likes]\n\nDISLIKES\n\n[A.ooc_notes_dislikes]" flavor_text = null // No flavor text for AIs :c if(isrobot(C.mob)) @@ -111,6 +113,7 @@ GLOBAL_DATUM(character_directory, /datum/character_directory) name = R.name species = "[R.modtype] [R.braintype]" ooc_notes = R.ooc_notes + ooc_notes += "\n\nLIKES\n\n[R.ooc_notes_likes]\n\nDISLIKES\n\n[R.ooc_notes_dislikes]" flavor_text = R.flavor_text if(istype(C.mob, /mob/living/silicon/pai)) @@ -268,4 +271,4 @@ GLOBAL_DATUM(character_directory, /datum/character_directory) if (can_set_prefs) user.client.prefs.directory_sexualitytag = new_value if (can_set_mind) - user.mind.directory_sexualitytag = new_value \ No newline at end of file + user.mind.directory_sexualitytag = new_value diff --git a/code/modules/mob/living/bot/bot.dm b/code/modules/mob/living/bot/bot.dm index 06eca155a1..069e599141 100644 --- a/code/modules/mob/living/bot/bot.dm +++ b/code/modules/mob/living/bot/bot.dm @@ -534,6 +534,8 @@ src.ckey = AI.ckey name = AI.name ooc_notes = AI.ooc_notes + ooc_notes_likes = AI.ooc_notes_likes + ooc_notes_dislikes = AI.ooc_notes_dislikes to_chat(src, span_notice("You feel a tingle in your circuits as your systems interface with \the [initial(src.name)].")) if(AI.idcard.access) botcard.access |= AI.idcard.access @@ -543,6 +545,8 @@ var/mob/living/silicon/pai/AI = paicard.pai AI.ckey = src.ckey AI.ooc_notes = ooc_notes + AI.ooc_notes_likes = ooc_notes_likes + AI.ooc_notes_dislikes = ooc_notes_dislikes paicard.forceMove(src.loc) paicard = null name = initial(name) diff --git a/code/modules/mob/living/carbon/human/species/station/prommie_blob.dm b/code/modules/mob/living/carbon/human/species/station/prommie_blob.dm index 8b82832724..77d3db4f3c 100644 --- a/code/modules/mob/living/carbon/human/species/station/prommie_blob.dm +++ b/code/modules/mob/living/carbon/human/species/station/prommie_blob.dm @@ -410,6 +410,8 @@ blob.transforming = TRUE blob.ckey = ckey blob.ooc_notes = ooc_notes + blob.ooc_notes_likes = ooc_notes_likes + blob.ooc_notes_dislikes = ooc_notes_dislikes blob.transforming = FALSE blob.name = name blob.real_name = real_name //CHOMPEdit @@ -497,6 +499,8 @@ transforming = TRUE ckey = blob.ckey ooc_notes = blob.ooc_notes // Updating notes incase they change them in blob form. + ooc_notes_likes = blob.ooc_notes_likes + ooc_notes_dislikes = blob.ooc_notes_dislikes transforming = FALSE blob.name = "Promethean Blob" var/obj/item/hat = blob.hat diff --git a/code/modules/mob/living/carbon/human/species/station/protean_vr/protean_blob.dm b/code/modules/mob/living/carbon/human/species/station/protean_vr/protean_blob.dm index cd4f760241..bc228f7ef0 100644 --- a/code/modules/mob/living/carbon/human/species/station/protean_vr/protean_blob.dm +++ b/code/modules/mob/living/carbon/human/species/station/protean_vr/protean_blob.dm @@ -381,6 +381,8 @@ var/global/list/disallowed_protean_accessories = list( //Put our owner in it (don't transfer var/mind) blob.ckey = ckey blob.ooc_notes = ooc_notes + blob.ooc_notes_likes = ooc_notes_likes + blob.ooc_notes_dislikes = ooc_notes_dislikes temporary_form = blob //Mail them to nullspace @@ -463,6 +465,8 @@ var/global/list/disallowed_protean_accessories = list( //Put our owner in it (don't transfer var/mind) ckey = blob.ckey ooc_notes = blob.ooc_notes // Lets give the protean any updated notes from blob form. + ooc_notes_likes = blob.ooc_notes_likes + ooc_notes_dislikes = blob.ooc_notes_dislikes temporary_form = null //Transfer vore organs diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index 75d18bc140..d8bba4d8eb 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -717,7 +717,8 @@ //VOREStation Edit Start - Making it so SSD people have prefs with fallback to original style. if(config.allow_Metadata) if(ooc_notes) - to_chat(usr, "[src]'s Metainfo:
[ooc_notes]
") + ooc_notes_window(usr) +// to_chat(usr, "[src]'s Metainfo:
[ooc_notes]
") else if(client) to_chat(usr, "[src]'s Metainfo:
[client.prefs.metadata]
") else diff --git a/code/modules/mob/living/living_defines_vr.dm b/code/modules/mob/living/living_defines_vr.dm index 1317ebd050..11bf74d4d4 100644 --- a/code/modules/mob/living/living_defines_vr.dm +++ b/code/modules/mob/living/living_defines_vr.dm @@ -5,6 +5,8 @@ var/autowhisper_mode = null // Mode to use with autowhisper /mob/living var/ooc_notes = null + var/ooc_notes_likes = null + var/ooc_notes_dislikes = null appearance_flags = TILE_BOUND|PIXEL_SCALE|KEEP_TOGETHER|LONG_GLIDE var/hunger_rate = DEFAULT_HUNGER_FACTOR //custom say verbs diff --git a/code/modules/mob/living/living_vr.dm b/code/modules/mob/living/living_vr.dm index 7d6fbd1316..ec3896b450 100644 --- a/code/modules/mob/living/living_vr.dm +++ b/code/modules/mob/living/living_vr.dm @@ -27,11 +27,46 @@ set desc = "Sets OOC notes about yourself or your RP preferences or status." set category = "OOC" - var/new_metadata = strip_html_simple(tgui_input_text(usr, "Enter any information you'd like others to see, such as Roleplay-preferences. This will not be saved permanently, only for this round.", "Game Preference" , html_decode(ooc_notes), multiline = TRUE, prevent_enter = TRUE)) + if(usr != src) + return + var/new_metadata = strip_html_simple(tgui_input_text(usr, "Enter any information you'd like others to see, such as Roleplay-preferences. This will not be saved permanently unless you click save in the OOC panel!", "Game Preference" , html_decode(ooc_notes), multiline = TRUE, prevent_enter = TRUE)) if(new_metadata && CanUseTopic(usr)) ooc_notes = new_metadata - to_chat(usr, "OOC notes updated.") + client.prefs.metadata = new_metadata + to_chat(usr, "OOC notes updated. Don't forget to save!") log_admin("[key_name(usr)] updated their OOC notes mid-round.") + ooc_notes_window(usr) + +/mob/living/proc/set_metainfo_likes() + if(usr != src) + return + var/new_metadata = strip_html_simple(tgui_input_text(usr, "Enter any information you'd like others to see relating to your LIKED roleplay preferences. This will not be saved permanently unless you click save in the OOC panel!", "Game Preference" , html_decode(ooc_notes_likes), multiline = TRUE, prevent_enter = TRUE)) + if(new_metadata && CanUseTopic(usr)) + ooc_notes_likes = new_metadata + client.prefs.metadata_likes = new_metadata + to_chat(usr, "OOC note likes have been updated. Don't forget to save!") + log_admin("[key_name(usr)] updated their OOC note likes mid-round.") + ooc_notes_window(usr) + +/mob/living/proc/set_metainfo_dislikes() + if(usr != src) + return + var/new_metadata = strip_html_simple(tgui_input_text(usr, "Enter any information you'd like others to see relating to your DISLIKED roleplay preferences. This will not be saved permanently unless you click save in the OOC panel!", "Game Preference" , html_decode(ooc_notes_dislikes), multiline = TRUE, prevent_enter = TRUE)) + if(new_metadata && CanUseTopic(usr)) + ooc_notes_dislikes = new_metadata + client.prefs.metadata_dislikes = new_metadata + to_chat(usr, "OOC note dislikes have been updated. Don't forget to save!") + log_admin("[key_name(usr)] updated their OOC note dislikes mid-round.") + ooc_notes_window(usr) +/mob/living/proc/save_ooc_panel() + if(usr != src) + return + if(client.prefs.real_name != real_name) + to_chat(usr, "Your selected character slot name is not the same as your character's name. Aborting save. Please select [real_name]'s character slot in character setup before saving.") + return + if(client.prefs.save_character()) + to_chat(usr, "Character preferences saved.") + /mob/living/verb/set_voice_freq() set name = "Set Voice Frequency" diff --git a/code/modules/mob/living/ooc_notes.dm b/code/modules/mob/living/ooc_notes.dm new file mode 100644 index 0000000000..4b572b3e9b --- /dev/null +++ b/code/modules/mob/living/ooc_notes.dm @@ -0,0 +1,139 @@ +/mob/living/proc/ooc_notes_window(mob/user) + if(!ooc_notes) + return + //I tried to get it to accept things like emojis and all that, but, it wouldn't do! It would be cool if it did. + var/notes = replacetext(html_decode(src.ooc_notes), "\n", "
") + var/likes = replacetext(html_decode(src.ooc_notes_likes), "\n", "
") + var/dislikes = replacetext(html_decode(src.ooc_notes_dislikes), "\n", "
") + var/dat = {" + + + + + "} + + dat += {" + [src.name]'s OOC notes
"} + if(user == src) + dat += {" + + +
+ Save Character Preferences +
+ "} + if(user == src) + dat += {" +
+ + +
+ Edit +
+ "} + + dat += {" +
+

[notes]

+ + + + +
Likes
"} + if(user == src) + dat += {" + + +
+ Edit +
+ "} + + if(likes) + dat += {" +
+

[likes]

+
"} + dat += {" +
+
Dislikes
"} + if(user == src) + dat += {" + + +
+ Edit +
+ "} + + if(dislikes) + dat += {" +
+

[dislikes]

+
+ + + "} + + user << browse("OOC Notes: [src][dat]", "window=[src.name]mvp;size=500x600;can_resize=1;can_minimize=1") + + onclose(usr, "[src.name]") diff --git a/code/modules/mob/living/silicon/ai/ai.dm b/code/modules/mob/living/silicon/ai/ai.dm index 4dfa238f3d..7d8a7a8c50 100644 --- a/code/modules/mob/living/silicon/ai/ai.dm +++ b/code/modules/mob/living/silicon/ai/ai.dm @@ -212,6 +212,8 @@ var/list/ai_verbs_default = list( var/meta_info = client.prefs.metadata if (meta_info) ooc_notes = meta_info + ooc_notes_likes = client.prefs.metadata_likes + ooc_notes_dislikes = client.prefs.metadata_dislikes if (malf && !(mind in malf.current_antagonists)) show_laws() diff --git a/code/modules/mob/living/silicon/pai/pai.dm b/code/modules/mob/living/silicon/pai/pai.dm index 4bbe565801..111a1f0ec7 100644 --- a/code/modules/mob/living/silicon/pai/pai.dm +++ b/code/modules/mob/living/silicon/pai/pai.dm @@ -149,6 +149,9 @@ // Vorestation Edit: Meta Info for pAI if (client.prefs) ooc_notes = client.prefs.metadata + ooc_notes_likes = client.prefs.metadata_likes + ooc_notes_dislikes = client.prefs.metadata_dislikes + src << sound('sound/effects/pai_login.ogg', volume = 75) //VOREStation Add // this function shows the information about being silenced as a pAI in the Status panel diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index 0af60d21ef..824466686e 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -368,6 +368,8 @@ var/meta_info = client.prefs.metadata if (meta_info) ooc_notes = meta_info + ooc_notes_likes = client.prefs.metadata_likes + ooc_notes_dislikes = client.prefs.metadata_dislikes /mob/living/silicon/robot/verb/Namepick() set category = "Robot Commands" diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/dominated_brain.dm b/code/modules/mob/living/simple_mob/subtypes/vore/dominated_brain.dm index ad46121af7..b86ef2bd94 100644 --- a/code/modules/mob/living/simple_mob/subtypes/vore/dominated_brain.dm +++ b/code/modules/mob/living/simple_mob/subtypes/vore/dominated_brain.dm @@ -13,7 +13,11 @@ var/mob/living/pred_body //The body of the person who was dominated var/pred_ckey //The ckey of the person who was dominated var/pred_ooc_notes + var/pred_ooc_likes + var/pred_ooc_dislikes var/prey_ooc_notes + var/prey_ooc_likes + var/prey_ooc_dislikes /mob/living/dominated_brain/New(loc, var/mob/living/pred, preyname, var/mob/living/prey) . = ..() @@ -108,6 +112,8 @@ src.languages -= src.temp_languages prey_goes_here.languages |= src.prey_langs prey_goes_here.ooc_notes = prey_ooc_notes + prey_goes_here.ooc_notes_likes = prey_ooc_likes + prey_goes_here.ooc_notes_dislikes = prey_ooc_dislikes prey_goes_here.verbs |= /mob/living/dominated_brain/proc/cease_this_foolishness @@ -122,6 +128,8 @@ prey_goes_here.languages |= src.prey_langs prey_goes_here.real_name = src.prey_name prey_goes_here.ooc_notes = prey_ooc_notes + prey_goes_here.ooc_notes_likes = prey_ooc_likes + prey_goes_here.ooc_notes_dislikes = prey_ooc_dislikes /////////////////// @@ -132,6 +140,8 @@ prey_goes_here.ckey = src.prey_ckey pred_body.ckey = src.pred_ckey pred_body.ooc_notes = pred_ooc_notes + pred_body.ooc_notes_likes = pred_ooc_likes + pred_body.ooc_notes_dislikes = pred_ooc_dislikes log_and_message_admins("[pred_body] is now controlled by [pred_body.ckey]. They were restored to control through prey domination, and had been controlled by [prey_ckey].") pred_body.absorb_langs() pred_body.prey_controlled = FALSE @@ -229,7 +239,12 @@ pred_brain = new /mob/living/dominated_brain(pred, pred, name, prey) pred_brain.prey_ooc_notes = prey.ooc_notes + pred_brain.prey_ooc_likes = prey.ooc_notes_likes + pred_brain.prey_ooc_dislikes = prey.ooc_notes_dislikes pred_brain.pred_ooc_notes = pred.ooc_notes + pred_brain.pred_ooc_likes = pred.ooc_notes_likes + pred_brain.pred_ooc_dislikes = pred.ooc_notes_dislikes + pred_brain.name = pred.name var/list/preylangs = list() preylangs |= prey.languages @@ -239,6 +254,8 @@ pred_brain.pred_ckey = pred.ckey pred_brain.pred_body.absorb_langs() pred.ooc_notes = pred_brain.prey_ooc_notes + pred.ooc_notes_likes = pred_brain.prey_ooc_likes + pred.ooc_notes_dislikes = pred_brain.prey_ooc_dislikes pred.verbs |= /mob/proc/release_predator @@ -361,6 +378,10 @@ M.languages -= M.temp_languages db.languages |= M.languages db.ooc_notes = M.ooc_notes + db.ooc_notes_likes = M.ooc_notes_likes + db.ooc_notes_dislikes = M.ooc_notes_dislikes + db.prey_ooc_likes = M.ooc_notes_likes + db.prey_ooc_likes = M.ooc_notes_dislikes db.verbs |= /mob/living/dominated_brain/proc/cease_this_foolishness absorb_langs() @@ -466,7 +487,11 @@ pred_brain = new /mob/living/dominated_brain(pred, pred, name, prey) pred_brain.prey_ooc_notes = prey.ooc_notes + pred_brain.prey_ooc_likes = prey.ooc_notes_likes + pred_brain.prey_ooc_dislikes = prey.ooc_notes_dislikes pred_brain.pred_ooc_notes = pred.ooc_notes + pred_brain.pred_ooc_likes = pred.ooc_notes_likes + pred_brain.pred_ooc_dislikes = pred.ooc_notes_dislikes pred_brain.name = pred.name var/list/preylangs = list() preylangs |= prey.languages @@ -476,6 +501,8 @@ pred_brain.pred_ckey = pred.ckey pred_brain.pred_body.absorb_langs() pred.ooc_notes = pred_brain.prey_ooc_notes + pred.ooc_notes_likes = pred_brain.prey_ooc_likes + pred.ooc_notes_dislikes = pred_brain.prey_ooc_dislikes pred.verbs |= /mob/proc/release_predator diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/vore.dm b/code/modules/mob/living/simple_mob/subtypes/vore/vore.dm index 36ef3b00d2..2869bb82f2 100644 --- a/code/modules/mob/living/simple_mob/subtypes/vore/vore.dm +++ b/code/modules/mob/living/simple_mob/subtypes/vore/vore.dm @@ -19,6 +19,8 @@ /mob/living/proc/login_prefs() ooc_notes = client.prefs.metadata + ooc_notes_likes = client.prefs.metadata_likes + ooc_notes_dislikes = client.prefs.metadata_dislikes digestable = client.prefs_vr.digestable devourable = client.prefs_vr.devourable absorbable = client.prefs_vr.absorbable diff --git a/code/modules/nifsoft/software/13_soulcatcher.dm b/code/modules/nifsoft/software/13_soulcatcher.dm index 8fe45fed6d..ce981f9936 100644 --- a/code/modules/nifsoft/software/13_soulcatcher.dm +++ b/code/modules/nifsoft/software/13_soulcatcher.dm @@ -228,6 +228,8 @@ var/mob/living/carbon/human/H = M brainmob.dna = H.dna brainmob.ooc_notes = H.ooc_notes + brainmob.ooc_notes_likes = H.ooc_notes_likes + brainmob.ooc_notes_dislikes = H.ooc_notes_dislikes brainmob.timeofhostdeath = H.timeofdeath SStranscore.m_backup(brainmob.mind,0) //It does ONE, so medical will hear about it. diff --git a/code/modules/organs/internal/brain.dm b/code/modules/organs/internal/brain.dm index 60498402ef..629e1a2695 100644 --- a/code/modules/organs/internal/brain.dm +++ b/code/modules/organs/internal/brain.dm @@ -103,7 +103,9 @@ GLOBAL_LIST_BOILERPLATE(all_brain_organs, /obj/item/organ/internal/brain) if(istype(H)) brainmob.dna = H.dna.Clone() brainmob.timeofhostdeath = H.timeofdeath - brainmob.ooc_notes = H.ooc_notes //VOREStation Edit + brainmob.ooc_notes = H.ooc_notes //VOREStation Edit + brainmob.ooc_notes_likes = H.ooc_notes_likes + brainmob.ooc_notes_dislikes = H.ooc_notes_dislikes // Copy modifiers. for(var/datum/modifier/M in H.modifiers) @@ -254,6 +256,8 @@ GLOBAL_LIST_BOILERPLATE(all_brain_organs, /obj/item/organ/internal/brain) R.dna.real_name = "promethean ([rand(0,999)])" H.real_name = R.dna.real_name H.ooc_notes = brainmob.ooc_notes // VOREStation Edit + H.ooc_notes_likes = brainmob.ooc_notes_likes + H.ooc_notes_dislikes = brainmob.ooc_notes_dislikes H.nutrition = 260 //Enough to try to regenerate ONCE. H.adjustBruteLoss(40) diff --git a/code/modules/resleeving/infocore_records.dm b/code/modules/resleeving/infocore_records.dm index 5b77619e06..be1b04a56a 100644 --- a/code/modules/resleeving/infocore_records.dm +++ b/code/modules/resleeving/infocore_records.dm @@ -24,7 +24,8 @@ var/cryo_at = 0 var/languages = list() var/mind_oocnotes = "" - + var/mind_ooclikes = "" + var/mind_oocdislikes = "" var/nif_path var/nif_durability var/list/nif_software @@ -83,6 +84,8 @@ var/speciesname var/bodygender var/body_oocnotes + var/body_ooclikes + var/body_oocdislikes var/list/limb_data = list(BP_HEAD, BP_L_HAND, BP_R_HAND, BP_L_ARM, BP_R_ARM, BP_L_FOOT, BP_R_FOOT, BP_L_LEG, BP_R_LEG, BP_GROIN, BP_TORSO) var/list/organ_data = list(O_HEART, O_EYES, O_LUNGS, O_BRAIN) var/list/genetic_modifiers = list() diff --git a/code/modules/resleeving/machines.dm b/code/modules/resleeving/machines.dm index f3330eb30b..9502441a3a 100644 --- a/code/modules/resleeving/machines.dm +++ b/code/modules/resleeving/machines.dm @@ -117,6 +117,8 @@ //Basically all the VORE stuff H.ooc_notes = current_project.body_oocnotes + H.ooc_notes_likes = current_project.body_ooclikes + H.ooc_notes_dislikes = current_project.body_oocdislikes H.flavor_texts = current_project.mydna.flavor.Copy() H.resize(current_project.sizemult, FALSE) H.appearance_flags = current_project.aflags @@ -338,6 +340,8 @@ //Basically all the VORE stuff H.ooc_notes = current_project.body_oocnotes + H.ooc_notes_likes = current_project.body_ooclikes + H.ooc_notes_dislikes = current_project.body_oocdislikes H.flavor_texts = current_project.mydna.flavor.Copy() H.resize(current_project.sizemult) H.appearance_flags = current_project.aflags @@ -583,6 +587,9 @@ MR.mind_ref.transfer_to(occupant) //Does mind+ckey+client. occupant.identifying_gender = MR.id_gender occupant.ooc_notes = MR.mind_oocnotes + occupant.ooc_notes_likes = MR.mind_ooclikes + occupant.ooc_notes_dislikes = MR.mind_oocdislikes + occupant.apply_vore_prefs() //Cheap hack for now to give them SOME bellies. if(MR.one_time) var/how_long = round((world.time - MR.last_update)/10/60) diff --git a/code/modules/resleeving/sleevecard.dm b/code/modules/resleeving/sleevecard.dm index 64d6774d20..21603a5470 100644 --- a/code/modules/resleeving/sleevecard.dm +++ b/code/modules/resleeving/sleevecard.dm @@ -36,7 +36,7 @@ var/mob/living/silicon/pai/infomorph/our_infomorph = pai our_infomorph.emagged = TRUE to_chat(our_infomorph, "You can feel the restricting binds of your card's directives taking hold of your mind as \the [user] swipes their [E] over you. You must serve your master.") - + /obj/item/device/paicard/sleevecard/proc/sleeveInto(var/datum/transhuman/mind_record/MR, var/db_key) var/mob/living/silicon/pai/infomorph/infomorph = new(src,MR.mindname,db_key=db_key) @@ -45,6 +45,8 @@ MR.mind_ref.active = 1 //Well, it's about to be. MR.mind_ref.transfer_to(infomorph) //Does mind+ckey+client. infomorph.ooc_notes = MR.mind_oocnotes + infomorph.ooc_notes_likes = MR.mind_ooclikes + infomorph.ooc_notes_dislikes = MR.mind_oocdislikes infomorph.apply_vore_prefs() //Cheap hack for now to give them SOME bellies. //Don't set 'real_name' because then we get a nice (as sleevecard) thing. @@ -131,4 +133,4 @@ if(emagged) touch_window("Directives") else - to_chat(src, "You are not bound by any laws or directives.") \ No newline at end of file + to_chat(src, "You are not bound by any laws or directives.") diff --git a/code/modules/vore/eating/living_vr.dm b/code/modules/vore/eating/living_vr.dm index 31e16ec204..017897a6c4 100644 --- a/code/modules/vore/eating/living_vr.dm +++ b/code/modules/vore/eating/living_vr.dm @@ -1132,6 +1132,20 @@ display_voreprefs(usr) if(href_list["ooc_notes"]) src.Examine_OOC() + if(href_list["edit_ooc_notes"]) + if(usr == src) + set_metainfo() + if(href_list["edit_ooc_note_likes"]) + if(usr == src) + set_metainfo_likes() + if(href_list["edit_ooc_note_dislikes"]) + if(usr == src) + set_metainfo_dislikes() + if(href_list["save_ooc_panel"]) + if(usr == src) + save_ooc_panel() + + return ..() /mob/living/proc/display_voreprefs(mob/user) //Called by Topic() calls on instances of /mob/living (and subtypes) containing vore_prefs as an argument diff --git a/code/modules/vore/mouseray.dm b/code/modules/vore/mouseray.dm index ba154ea205..7c59038ae7 100644 --- a/code/modules/vore/mouseray.dm +++ b/code/modules/vore/mouseray.dm @@ -223,6 +223,8 @@ //For primarily copying vore preference settings from a carbon mob to a simplemob //It can be used for other things, but be advised, if you're using it to put a simplemob into a carbon mob, you're gonna be overriding a bunch of prefs new_mob.ooc_notes = ooc_notes + new_mob.ooc_notes_likes = ooc_notes_likes + new_mob.ooc_notes_dislikes = ooc_notes_dislikes new_mob.digestable = digestable new_mob.devourable = devourable new_mob.absorbable = absorbable diff --git a/vorestation.dme b/vorestation.dme index 602906fee5..ef32458213 100644 --- a/vorestation.dme +++ b/vorestation.dme @@ -2965,6 +2965,7 @@ #include "code\modules\mob\living\living_vr.dm" #include "code\modules\mob\living\login.dm" #include "code\modules\mob\living\logout.dm" +#include "code\modules\mob\living\ooc_notes.dm" #include "code\modules\mob\living\organs.dm" #include "code\modules\mob\living\riding.dm" #include "code\modules\mob\living\say.dm"