[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 ae54787040..78ef29609b 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 0be0bf2c7b..4fc14f8ccd 100644
--- a/code/modules/client/preferences.dm
+++ b/code/modules/client/preferences.dm
@@ -145,6 +145,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/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm
index 89effc1f19..47b846efc1 100644
--- a/code/modules/client/preferences_savefile.dm
+++ b/code/modules/client/preferences_savefile.dm
@@ -118,4 +118,4 @@
return 1
#undef SAVEFILE_VERSION_MAX
-#undef SAVEFILE_VERSION_MIN
\ No newline at end of file
+#undef SAVEFILE_VERSION_MIN
diff --git a/code/modules/client/verbs/character_directory.dm b/code/modules/client/verbs/character_directory.dm
index 13a1bd3e16..f6c38357fc 100644
--- a/code/modules/client/verbs/character_directory.dm
+++ b/code/modules/client/verbs/character_directory.dm
@@ -77,6 +77,7 @@ GLOBAL_DATUM(character_directory, /datum/character_directory)
name = H.real_name
species = "[H.custom_species ? H.custom_species : H.species.name]"
ooc_notes = H.ooc_notes
+ ooc_notes += "\n\n LIKES\n\n[H.ooc_notes_likes]\n\nDISLIKES\n\n[H.ooc_notes_dislikes]"
flavor_text = H.flavor_texts["general"]
if(isAI(C.mob))
@@ -84,6 +85,7 @@ GLOBAL_DATUM(character_directory, /datum/character_directory)
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))
@@ -93,6 +95,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
// It's okay if we fail to find OOC notes and flavor text
diff --git a/code/modules/mob/living/bot/bot.dm b/code/modules/mob/living/bot/bot.dm
index 1f00b23f06..fd69d9ec69 100644
--- a/code/modules/mob/living/bot/bot.dm
+++ b/code/modules/mob/living/bot/bot.dm
@@ -517,6 +517,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
@@ -526,6 +528,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)
@@ -568,4 +572,4 @@
feeding = FALSE
can_be_drop_pred = FALSE
- return ..()
\ No newline at end of file
+ return ..()
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 76bb771c7b..665bfdcd10 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
@@ -8,7 +8,7 @@
unity = TRUE
water_resist = 100 // Lets not kill the prommies
cores = 0
- movement_cooldown = 0
+ movement_cooldown = 0
//appearance_flags = RADIATION_GLOWS
shock_resist = 0 // Lets not be immune to zaps.
friendly = list("nuzzles", "glomps", "snuggles", "cuddles", "squishes") // lets be cute :3
@@ -392,6 +392,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.nutrition = nutrition
@@ -464,6 +466,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 aae66646ca..82f2064a42 100644
--- a/code/modules/mob/living/living.dm
+++ b/code/modules/mob/living/living.dm
@@ -697,7 +697,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 670b0050d3..91f0af6cde 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 7e932dc403..a9ec8eef3a 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..b8ce7a4b77
--- /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]
+