[likes]
+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 = {"
+
+
+
| + Save Character Preferences + | +
| + Edit + | +
[notes]
+ + + + +| + Edit + | +
[likes]
+| + Edit + | +
[dislikes]
+