mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-10 02:09:41 +00:00
[MIRROR] Kitchen Sink P2 TGUI Prefs (#10770)
Co-authored-by: Cameron Lennox <killer65311@gmail.com> Co-authored-by: Kashargul <144968721+Kashargul@users.noreply.github.com>
This commit is contained in:
committed by
GitHub
parent
77b972fed3
commit
ca9de6648e
@@ -33,7 +33,7 @@ var/list/talk_sound_map = rlist(
|
|||||||
GLOB.goon_speak_pugg_sound,
|
GLOB.goon_speak_pugg_sound,
|
||||||
GLOB.goon_speak_roach_sound,
|
GLOB.goon_speak_roach_sound,
|
||||||
GLOB.goon_speak_skelly_sound,
|
GLOB.goon_speak_skelly_sound,
|
||||||
GLOB.xeno_speak_sound // CHOMPEnable
|
GLOB.xeno_speak_sound // Does not exist on virgo
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -10,10 +10,8 @@ GLOBAL_LIST_EMPTY(tagger_locations)
|
|||||||
|
|
||||||
GLOBAL_LIST_INIT(char_directory_tags, list("Pred", "Pred-Pref", "Prey", "Prey-Pref", "Switch", "Non-Vore", "Unset"))
|
GLOBAL_LIST_INIT(char_directory_tags, list("Pred", "Pred-Pref", "Prey", "Prey-Pref", "Switch", "Non-Vore", "Unset"))
|
||||||
GLOBAL_LIST_INIT(char_directory_erptags, list("Dominant", "Dom-Pref", "Submissive", "Sub-Pref", "Switch", "No ERP", "Unset"))
|
GLOBAL_LIST_INIT(char_directory_erptags, list("Dominant", "Dom-Pref", "Submissive", "Sub-Pref", "Switch", "No ERP", "Unset"))
|
||||||
// CHOMPStation Edit Start: Directory Update
|
GLOBAL_LIST_INIT(char_directory_sexualitytags, list("Straight", "Bisexual", "Pansexual", "Gay", "Lesbian", "Asexual", "Demisexual", "Flexible", "Other", "Unset"))
|
||||||
GLOBAL_LIST_INIT(char_directory_sexualitytags, list("Straight", "Bisexual", "Pansexual", "Gay", "Lesbian", "Asexual", "Demisexual", "Unset"))
|
GLOBAL_LIST_INIT(char_directory_gendertags, list("Male", "Female", "Feminine", "Masculine", "Nonbinary", "Trans Man", "Trans Woman", "Other", "Flexible", "Ungendered", "Unset"))
|
||||||
GLOBAL_LIST_INIT(char_directory_gendertags, list("Male", "Female", "Nonbinary", "Trans Man", "Trans Woman", "Other", "Ungendered", "Unset"))
|
|
||||||
// CHOMPStation Edit End: Directory Update
|
|
||||||
GLOBAL_LIST_EMPTY(crafting_recipes) //list of all table craft recipes
|
GLOBAL_LIST_EMPTY(crafting_recipes) //list of all table craft recipes
|
||||||
|
|
||||||
GLOBAL_LIST_INIT(uplink_locations, list("PDA", "Headset", "None"))
|
GLOBAL_LIST_INIT(uplink_locations, list("PDA", "Headset", "None"))
|
||||||
|
|||||||
@@ -5,11 +5,9 @@
|
|||||||
var/directory_erptag
|
var/directory_erptag
|
||||||
var/directory_ad
|
var/directory_ad
|
||||||
var/vore_prey_eaten = 0
|
var/vore_prey_eaten = 0
|
||||||
//CHOMPAdd Start
|
|
||||||
var/vantag_preference = VANTAG_NONE
|
var/vantag_preference = VANTAG_NONE
|
||||||
var/directory_gendertag
|
var/directory_gendertag
|
||||||
var/directory_sexualitytag
|
var/directory_sexualitytag
|
||||||
//CHOMPAdd End
|
|
||||||
|
|
||||||
/mob/living/mind_initialize()
|
/mob/living/mind_initialize()
|
||||||
. = ..()
|
. = ..()
|
||||||
@@ -18,8 +16,6 @@
|
|||||||
mind.directory_tag = client.prefs.directory_tag
|
mind.directory_tag = client.prefs.directory_tag
|
||||||
mind.directory_erptag = client.prefs.directory_erptag
|
mind.directory_erptag = client.prefs.directory_erptag
|
||||||
mind.directory_ad = client.prefs.directory_ad
|
mind.directory_ad = client.prefs.directory_ad
|
||||||
//CHOMPAdd Start
|
|
||||||
mind.vantag_preference = client.prefs.vantag_preference
|
mind.vantag_preference = client.prefs.vantag_preference
|
||||||
mind.directory_gendertag = client.prefs.directory_gendertag
|
mind.directory_gendertag = client.prefs.directory_gendertag
|
||||||
mind.directory_sexualitytag = client.prefs.directory_sexualitytag
|
mind.directory_sexualitytag = client.prefs.directory_sexualitytag
|
||||||
//CHOMPAdd End
|
|
||||||
|
|||||||
@@ -28,26 +28,16 @@
|
|||||||
to_chat(user,span_danger("The target's mind is too complex to be affected!"))
|
to_chat(user,span_danger("The target's mind is too complex to be affected!"))
|
||||||
return
|
return
|
||||||
|
|
||||||
/* CHOMPRemove Start, we have a vore pref for that
|
|
||||||
if(ishuman(M))
|
|
||||||
var/mob/living/carbon/human/H = M
|
|
||||||
if(H.resleeve_lock && user.ckey != H.resleeve_lock)
|
|
||||||
to_chat(src, span_danger("[H] cannot be impersonated!"))
|
|
||||||
return
|
|
||||||
*///CHOMPRemove End
|
|
||||||
|
|
||||||
if(M.stat == DEAD) //Are they dead?
|
if(M.stat == DEAD) //Are they dead?
|
||||||
to_chat(user,span_warning("A warning pops up on the device, informing you that [M] is dead, and, as such, the mind transfer can not be done."))
|
to_chat(user,span_warning("A warning pops up on the device, informing you that [M] is dead, and, as such, the mind transfer can not be done."))
|
||||||
return
|
return
|
||||||
|
|
||||||
var/choice = tgui_alert(user,"This will swap your mind with the target's mind. This will result in them controlling your body, and you controlling their body. Continue?","Confirmation",list("Continue","Cancel"))
|
var/choice = tgui_alert(user,"This will swap your mind with the target's mind. This will result in them controlling your body, and you controlling their body. Continue?","Confirmation",list("Continue","Cancel"))
|
||||||
if(choice == "Continue" && user.get_active_hand() == src && user.Adjacent(M))
|
if(choice == "Continue" && user.get_active_hand() == src && user.Adjacent(M))
|
||||||
//CHOMPAdd Start - Admin logging for Body Snatcher usage
|
|
||||||
if(M.ckey && !M.client)
|
if(M.ckey && !M.client)
|
||||||
log_and_message_admins("attempted to body swap with [key_name(M)] while they were SSD!")
|
log_and_message_admins("attempted to body swap with [key_name(M)] while they were SSD!")
|
||||||
else
|
else
|
||||||
log_and_message_admins("attempted to body swap with [key_name(M)].")
|
log_and_message_admins("attempted to body swap with [key_name(M)].")
|
||||||
//CHOMPAdd End
|
|
||||||
user.visible_message(span_warning("[user] pushes the device up their forehead and [M]'s head, the device beginning to let out a series of light beeps!"),span_notice("You begin swap minds with [M]!"))
|
user.visible_message(span_warning("[user] pushes the device up their forehead and [M]'s head, the device beginning to let out a series of light beeps!"),span_notice("You begin swap minds with [M]!"))
|
||||||
if(do_after(user,35 SECONDS,M))
|
if(do_after(user,35 SECONDS,M))
|
||||||
if(user.mind && M.mind && M.stat != DEAD && user.stat != DEAD)
|
if(user.mind && M.mind && M.stat != DEAD && user.stat != DEAD)
|
||||||
@@ -58,14 +48,12 @@
|
|||||||
var/target_ooc_notes = M.ooc_notes
|
var/target_ooc_notes = M.ooc_notes
|
||||||
var/target_likes = M.ooc_notes_likes
|
var/target_likes = M.ooc_notes_likes
|
||||||
var/target_dislikes = M.ooc_notes_dislikes
|
var/target_dislikes = M.ooc_notes_dislikes
|
||||||
//CHOMPEdit Start
|
|
||||||
var/target_favs = M.ooc_notes_favs
|
var/target_favs = M.ooc_notes_favs
|
||||||
var/target_maybes = M.ooc_notes_maybes
|
var/target_maybes = M.ooc_notes_maybes
|
||||||
var/target_style = M.ooc_notes_style
|
var/target_style = M.ooc_notes_style
|
||||||
var/user_favs = user.ooc_notes_favs
|
var/user_favs = user.ooc_notes_favs
|
||||||
var/user_maybes = user.ooc_notes_maybes
|
var/user_maybes = user.ooc_notes_maybes
|
||||||
var/user_style = user.ooc_notes_style
|
var/user_style = user.ooc_notes_style
|
||||||
//CHOMPEdit End
|
|
||||||
var/user_ooc_notes = user.ooc_notes
|
var/user_ooc_notes = user.ooc_notes
|
||||||
var/user_likes = user.ooc_notes_likes
|
var/user_likes = user.ooc_notes_likes
|
||||||
var/user_dislikes = user.ooc_notes_dislikes
|
var/user_dislikes = user.ooc_notes_dislikes
|
||||||
@@ -82,7 +70,6 @@
|
|||||||
M.ooc_notes = user_ooc_notes //Let's keep their OOC notes over to their new body.
|
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_likes = user_likes
|
||||||
M.ooc_notes_dislikes = user_dislikes
|
M.ooc_notes_dislikes = user_dislikes
|
||||||
//CHOMPEdit Start
|
|
||||||
M.ooc_notes_favs = user_favs
|
M.ooc_notes_favs = user_favs
|
||||||
M.ooc_notes_maybes = user_maybes
|
M.ooc_notes_maybes = user_maybes
|
||||||
M.ooc_notes_style = user_style
|
M.ooc_notes_style = user_style
|
||||||
@@ -97,7 +84,6 @@
|
|||||||
user.tf_mob_holder = null
|
user.tf_mob_holder = null
|
||||||
else
|
else
|
||||||
user.tf_mob_holder = M
|
user.tf_mob_holder = M
|
||||||
//CHOMPEdit End
|
|
||||||
user.ooc_notes = target_ooc_notes
|
user.ooc_notes = target_ooc_notes
|
||||||
user.ooc_notes_likes = target_likes
|
user.ooc_notes_likes = target_likes
|
||||||
user.ooc_notes_dislikes = target_dislikes
|
user.ooc_notes_dislikes = target_dislikes
|
||||||
|
|||||||
@@ -53,11 +53,9 @@ var/global/mob/living/carbon/human/dummy/mannequin/sleevemate_mob
|
|||||||
ooc_notes = M.ooc_notes
|
ooc_notes = M.ooc_notes
|
||||||
ooc_notes_likes = M.ooc_notes_likes
|
ooc_notes_likes = M.ooc_notes_likes
|
||||||
ooc_notes_dislikes = M.ooc_notes_dislikes
|
ooc_notes_dislikes = M.ooc_notes_dislikes
|
||||||
//CHOMPEdit Start
|
|
||||||
ooc_notes_favs = M.ooc_notes_favs
|
ooc_notes_favs = M.ooc_notes_favs
|
||||||
ooc_notes_maybes = M.ooc_notes_maybes
|
ooc_notes_maybes = M.ooc_notes_maybes
|
||||||
ooc_notes_style = M.ooc_notes_style
|
ooc_notes_style = M.ooc_notes_style
|
||||||
//CHOMPEdit End
|
|
||||||
stored_mind = M.mind
|
stored_mind = M.mind
|
||||||
M.ghostize()
|
M.ghostize()
|
||||||
stored_mind.current = null
|
stored_mind.current = null
|
||||||
@@ -69,11 +67,9 @@ var/global/mob/living/carbon/human/dummy/mannequin/sleevemate_mob
|
|||||||
M.ooc_notes = ooc_notes
|
M.ooc_notes = ooc_notes
|
||||||
M.ooc_notes_likes = ooc_notes_likes
|
M.ooc_notes_likes = ooc_notes_likes
|
||||||
M.ooc_notes_dislikes = ooc_notes_dislikes
|
M.ooc_notes_dislikes = ooc_notes_dislikes
|
||||||
//CHOMPEdit Start
|
|
||||||
M.ooc_notes_favs = ooc_notes_favs
|
M.ooc_notes_favs = ooc_notes_favs
|
||||||
M.ooc_notes_maybes = ooc_notes_maybes
|
M.ooc_notes_maybes = ooc_notes_maybes
|
||||||
M.ooc_notes_style = ooc_notes_style
|
M.ooc_notes_style = ooc_notes_style
|
||||||
//CHOMPEdit End
|
|
||||||
clear_mind()
|
clear_mind()
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -329,13 +329,11 @@ GLOBAL_LIST_INIT(goon_speak_pugg_sound, list('sound/talksounds/goon/pugg.ogg', '
|
|||||||
GLOBAL_LIST_INIT(goon_speak_roach_sound, list('sound/talksounds/goon/roach.ogg', 'sound/talksounds/goon/roach_ask.ogg', 'sound/talksounds/goon/roach_exclaim.ogg'))
|
GLOBAL_LIST_INIT(goon_speak_roach_sound, list('sound/talksounds/goon/roach.ogg', 'sound/talksounds/goon/roach_ask.ogg', 'sound/talksounds/goon/roach_exclaim.ogg'))
|
||||||
GLOBAL_LIST_INIT(goon_speak_skelly_sound, list('sound/talksounds/goon/skelly.ogg', 'sound/talksounds/goon/skelly_ask.ogg', 'sound/talksounds/goon/skelly_exclaim.ogg'))
|
GLOBAL_LIST_INIT(goon_speak_skelly_sound, list('sound/talksounds/goon/skelly.ogg', 'sound/talksounds/goon/skelly_ask.ogg', 'sound/talksounds/goon/skelly_exclaim.ogg'))
|
||||||
|
|
||||||
//CHOMPAdd Start: More sounds.
|
|
||||||
GLOBAL_LIST_INIT(wf_speak_lure_sound, list ('sound/talksounds/wf/lure_1.ogg', 'sound/talksounds/wf/lure_2.ogg', 'sound/talksounds/wf/lure_3.ogg', 'sound/talksounds/wf/lure_4.ogg', 'sound/talksounds/wf/lure_5.ogg'))
|
GLOBAL_LIST_INIT(wf_speak_lure_sound, list ('sound/talksounds/wf/lure_1.ogg', 'sound/talksounds/wf/lure_2.ogg', 'sound/talksounds/wf/lure_3.ogg', 'sound/talksounds/wf/lure_4.ogg', 'sound/talksounds/wf/lure_5.ogg'))
|
||||||
GLOBAL_LIST_INIT(wf_speak_lyst_sound, list ('sound/talksounds/wf/lyst_1.ogg', 'sound/talksounds/wf/lyst_2.ogg', 'sound/talksounds/wf/lyst_3.ogg', 'sound/talksounds/wf/lyst_4.ogg', 'sound/talksounds/wf/lyst_5.ogg', 'sound/talksounds/wf/lyst_6.ogg'))
|
GLOBAL_LIST_INIT(wf_speak_lyst_sound, list ('sound/talksounds/wf/lyst_1.ogg', 'sound/talksounds/wf/lyst_2.ogg', 'sound/talksounds/wf/lyst_3.ogg', 'sound/talksounds/wf/lyst_4.ogg', 'sound/talksounds/wf/lyst_5.ogg', 'sound/talksounds/wf/lyst_6.ogg'))
|
||||||
GLOBAL_LIST_INIT(wf_speak_void_sound, list ('sound/talksounds/wf/void_1.ogg', 'sound/talksounds/wf/void_2.ogg', 'sound/talksounds/wf/void_3.ogg'))
|
GLOBAL_LIST_INIT(wf_speak_void_sound, list ('sound/talksounds/wf/void_1.ogg', 'sound/talksounds/wf/void_2.ogg', 'sound/talksounds/wf/void_3.ogg'))
|
||||||
GLOBAL_LIST_INIT(wf_speak_vomva_sound, list ('sound/talksounds/wf/vomva_1.ogg', 'sound/talksounds/wf/vomva_2.ogg', 'sound/talksounds/wf/vomva_3.ogg', 'sound/talksounds/wf/vomva_4.ogg'))
|
GLOBAL_LIST_INIT(wf_speak_vomva_sound, list ('sound/talksounds/wf/vomva_1.ogg', 'sound/talksounds/wf/vomva_2.ogg', 'sound/talksounds/wf/vomva_3.ogg', 'sound/talksounds/wf/vomva_4.ogg'))
|
||||||
GLOBAL_LIST_INIT(xeno_speak_sound, list('sound/talksounds/xeno/xenotalk.ogg', 'sound/talksounds/xeno/xenotalk2.ogg', 'sound/talksounds/xeno/xenotalk3.ogg'))
|
GLOBAL_LIST_INIT(xeno_speak_sound, list('sound/talksounds/xeno/xenotalk.ogg', 'sound/talksounds/xeno/xenotalk2.ogg', 'sound/talksounds/xeno/xenotalk3.ogg'))
|
||||||
//CHOMPAdd End
|
|
||||||
|
|
||||||
#define canine_sounds list("cough" = null, "sneeze" = null, "scream" = list('sound/voice/scream/canine/wolf_scream.ogg', 'sound/voice/scream/canine/wolf_scream2.ogg', 'sound/voice/scream/canine/wolf_scream3.ogg', 'sound/voice/scream/canine/wolf_scream4.ogg', 'sound/voice/scream/canine/wolf_scream5.ogg', 'sound/voice/scream/canine/wolf_scream6.ogg'), "pain" = list('sound/voice/pain/canine/wolf_pain.ogg', 'sound/voice/pain/canine/wolf_pain2.ogg', 'sound/voice/pain/canine/wolf_pain3.ogg', 'sound/voice/pain/canine/wolf_pain4.ogg'), "gasp" = list('sound/voice/gasp/canine/wolf_gasp.ogg'), "death" = list('sound/voice/death/canine/wolf_death1.ogg', 'sound/voice/death/canine/wolf_death2.ogg', 'sound/voice/death/canine/wolf_death3.ogg', 'sound/voice/death/canine/wolf_death4.ogg', 'sound/voice/death/canine/wolf_death5.ogg'))
|
#define canine_sounds list("cough" = null, "sneeze" = null, "scream" = list('sound/voice/scream/canine/wolf_scream.ogg', 'sound/voice/scream/canine/wolf_scream2.ogg', 'sound/voice/scream/canine/wolf_scream3.ogg', 'sound/voice/scream/canine/wolf_scream4.ogg', 'sound/voice/scream/canine/wolf_scream5.ogg', 'sound/voice/scream/canine/wolf_scream6.ogg'), "pain" = list('sound/voice/pain/canine/wolf_pain.ogg', 'sound/voice/pain/canine/wolf_pain2.ogg', 'sound/voice/pain/canine/wolf_pain3.ogg', 'sound/voice/pain/canine/wolf_pain4.ogg'), "gasp" = list('sound/voice/gasp/canine/wolf_gasp.ogg'), "death" = list('sound/voice/death/canine/wolf_death1.ogg', 'sound/voice/death/canine/wolf_death2.ogg', 'sound/voice/death/canine/wolf_death3.ogg', 'sound/voice/death/canine/wolf_death4.ogg', 'sound/voice/death/canine/wolf_death5.ogg'))
|
||||||
#define feline_sounds list("cough" = null, "sneeze" = null, "scream" = list('sound/voice/scream/feline/feline_scream.ogg'), "pain" = list('sound/voice/pain/feline/feline_pain.ogg'), "gasp" = list('sound/voice/gasp/feline/feline_gasp.ogg'), "death" = list('sound/voice/death/feline/feline_death.ogg'))
|
#define feline_sounds list("cough" = null, "sneeze" = null, "scream" = list('sound/voice/scream/feline/feline_scream.ogg'), "pain" = list('sound/voice/pain/feline/feline_pain.ogg'), "gasp" = list('sound/voice/gasp/feline/feline_gasp.ogg'), "death" = list('sound/voice/death/feline/feline_death.ogg'))
|
||||||
|
|||||||
@@ -62,13 +62,11 @@
|
|||||||
. += "<br>"
|
. += "<br>"
|
||||||
. += span_bold("Biological Sex:") + " <a href='byond://?src=\ref[src];bio_gender=1'><b>[gender2text(pref.biological_gender)]</b></a><br>"
|
. += span_bold("Biological Sex:") + " <a href='byond://?src=\ref[src];bio_gender=1'><b>[gender2text(pref.biological_gender)]</b></a><br>"
|
||||||
. += span_bold("Pronouns:") + " <a href='byond://?src=\ref[src];id_gender=1'><b>[genders_to_pronoun_set[pref.identifying_gender]]</b></a><br>"
|
. += span_bold("Pronouns:") + " <a href='byond://?src=\ref[src];id_gender=1'><b>[genders_to_pronoun_set[pref.identifying_gender]]</b></a><br>"
|
||||||
. += span_bold("Age:") + " <a href='byond://?src=\ref[src];age=1'>[pref.read_preference(/datum/preference/numeric/human/age)]</a> <b>Birthday:</b> <a href='byond://?src=\ref[src];bday_month=1'>[pref.read_preference(/datum/preference/numeric/human/bday_month)]</a><b>/</b><a href='byond://?src=\ref[src];bday_day=1'>[pref.read_preference(/datum/preference/numeric/human/bday_day)]</a> - <b>Announce?:</b> <a href='byond://?src=\ref[src];bday_announce=1'>[pref.read_preference(/datum/preference/toggle/human/bday_announce) ? "Yes" : "Disabled"]</a><br>" //ChompEDIT - DISABLE the announcement
|
. += span_bold("Age:") + " <a href='byond://?src=\ref[src];age=1'>[pref.read_preference(/datum/preference/numeric/human/age)]</a> <b>Birthday:</b> <a href='byond://?src=\ref[src];bday_month=1'>[pref.read_preference(/datum/preference/numeric/human/bday_month)]</a><b>/</b><a href='byond://?src=\ref[src];bday_day=1'>[pref.read_preference(/datum/preference/numeric/human/bday_day)]</a> - <b>Announce?:</b> <a href='byond://?src=\ref[src];bday_announce=1'>[pref.read_preference(/datum/preference/toggle/human/bday_announce) ? "Yes" : "Disabled"]</a><br>"
|
||||||
. += span_bold("Spawn Point:") + " <a href='byond://?src=\ref[src];spawnpoint=1'>[pref.read_preference(/datum/preference/choiced/living/spawnpoint)]</a><br>"
|
. += span_bold("Spawn Point:") + " <a href='byond://?src=\ref[src];spawnpoint=1'>[pref.read_preference(/datum/preference/choiced/living/spawnpoint)]</a><br>"
|
||||||
if(CONFIG_GET(flag/allow_metadata))
|
if(CONFIG_GET(flag/allow_metadata))
|
||||||
//CHOMPEdit Start
|
|
||||||
. += span_bold("OOC Notes: <a href='byond://?src=\ref[src];edit_ooc_notes=1'>Edit</a><a href='byond://?src=\ref[src];edit_ooc_note_favs=1'>Favs</a><a href='byond://?src=\ref[src];edit_ooc_note_likes=1'>Likes</a><a href='byond://?src=\ref[src];edit_ooc_note_maybes=1'>Maybes</a><a href='byond://?src=\ref[src];edit_ooc_note_dislikes=1'>Dislikes</a>") + "<br>"
|
. += span_bold("OOC Notes: <a href='byond://?src=\ref[src];edit_ooc_notes=1'>Edit</a><a href='byond://?src=\ref[src];edit_ooc_note_favs=1'>Favs</a><a href='byond://?src=\ref[src];edit_ooc_note_likes=1'>Likes</a><a href='byond://?src=\ref[src];edit_ooc_note_maybes=1'>Maybes</a><a href='byond://?src=\ref[src];edit_ooc_note_dislikes=1'>Dislikes</a>") + "<br>"
|
||||||
. += "Detailed field or short list system? <a href='byond://?src=\ref[src];edit_ooc_note_style=1'>[pref.read_preference(/datum/preference/toggle/living/ooc_notes_style) ? "Lists" : "Fields"]</a><br><br>"
|
. += "Detailed field or short list system? <a href='byond://?src=\ref[src];edit_ooc_note_style=1'>[pref.read_preference(/datum/preference/toggle/living/ooc_notes_style) ? "Lists" : "Fields"]</a><br><br>"
|
||||||
//CHOMPEdit End
|
|
||||||
. = jointext(.,null)
|
. = jointext(.,null)
|
||||||
|
|
||||||
/datum/category_item/player_setup_item/general/basic/OnTopic(var/href,var/list/href_list, var/mob/user)
|
/datum/category_item/player_setup_item/general/basic/OnTopic(var/href,var/list/href_list, var/mob/user)
|
||||||
@@ -205,15 +203,14 @@
|
|||||||
if(new_metadata == "!clear")
|
if(new_metadata == "!clear")
|
||||||
new_metadata = ""
|
new_metadata = ""
|
||||||
pref.update_preference_by_type(/datum/preference/text/living/ooc_notes_dislikes, new_metadata)
|
pref.update_preference_by_type(/datum/preference/text/living/ooc_notes_dislikes, new_metadata)
|
||||||
//CHOMPEdit Start
|
|
||||||
else if(href_list["edit_ooc_note_favs"])
|
else if(href_list["edit_ooc_note_favs"])
|
||||||
var/new_metadata = strip_html_simple(tgui_input_text(user, "Enter any information you'd like others to see relating to your FAVOURITE roleplay preferences. This will not be saved permanently unless you click save in the Character Setup panel! Type \"!clear\" to empty.", "Game Preference" , html_decode(pref.read_preference(/datum/preference/text/living/ooc_notes_favs)), multiline = TRUE, prevent_enter = TRUE)) //ChompEDIT - usr removal
|
var/new_metadata = strip_html_simple(tgui_input_text(user, "Enter any information you'd like others to see relating to your FAVOURITE roleplay preferences. This will not be saved permanently unless you click save in the Character Setup panel! Type \"!clear\" to empty.", "Game Preference" , html_decode(pref.read_preference(/datum/preference/text/living/ooc_notes_favs)), multiline = TRUE, prevent_enter = TRUE))
|
||||||
if(new_metadata && CanUseTopic(user))
|
if(new_metadata && CanUseTopic(user))
|
||||||
if(new_metadata == "!clear")
|
if(new_metadata == "!clear")
|
||||||
new_metadata = ""
|
new_metadata = ""
|
||||||
pref.update_preference_by_type(/datum/preference/text/living/ooc_notes_favs, new_metadata)
|
pref.update_preference_by_type(/datum/preference/text/living/ooc_notes_favs, new_metadata)
|
||||||
else if(href_list["edit_ooc_note_maybes"])
|
else if(href_list["edit_ooc_note_maybes"])
|
||||||
var/new_metadata = strip_html_simple(tgui_input_text(user, "Enter any information you'd like others to see relating to your MAYBE roleplay preferences. This will not be saved permanently unless you click save in the Character Setup panel! Type \"!clear\" to empty.", "Game Preference" , html_decode(pref.read_preference(/datum/preference/text/living/ooc_notes_maybes)), multiline = TRUE, prevent_enter = TRUE)) //ChompEDIT - usr removal
|
var/new_metadata = strip_html_simple(tgui_input_text(user, "Enter any information you'd like others to see relating to your MAYBE roleplay preferences. This will not be saved permanently unless you click save in the Character Setup panel! Type \"!clear\" to empty.", "Game Preference" , html_decode(pref.read_preference(/datum/preference/text/living/ooc_notes_maybes)), multiline = TRUE, prevent_enter = TRUE))
|
||||||
if(new_metadata && CanUseTopic(user))
|
if(new_metadata && CanUseTopic(user))
|
||||||
if(new_metadata == "!clear")
|
if(new_metadata == "!clear")
|
||||||
new_metadata = ""
|
new_metadata = ""
|
||||||
@@ -221,7 +218,6 @@
|
|||||||
else if(href_list["edit_ooc_note_style"])
|
else if(href_list["edit_ooc_note_style"])
|
||||||
pref.update_preference_by_type(/datum/preference/toggle/living/ooc_notes_style, !pref.read_preference(/datum/preference/toggle/living/ooc_notes_style))
|
pref.update_preference_by_type(/datum/preference/toggle/living/ooc_notes_style, !pref.read_preference(/datum/preference/toggle/living/ooc_notes_style))
|
||||||
return TOPIC_REFRESH
|
return TOPIC_REFRESH
|
||||||
//CHOMPEdit End
|
|
||||||
return ..()
|
return ..()
|
||||||
|
|
||||||
/datum/category_item/player_setup_item/general/basic/proc/get_genders()
|
/datum/category_item/player_setup_item/general/basic/proc/get_genders()
|
||||||
|
|||||||
@@ -33,9 +33,7 @@
|
|||||||
pref.voice_sound = save_data["voice_sound"]
|
pref.voice_sound = save_data["voice_sound"]
|
||||||
pref.custom_speech_bubble = save_data["custom_speech_bubble"]
|
pref.custom_speech_bubble = save_data["custom_speech_bubble"]
|
||||||
pref.custom_footstep = save_data["custom_footstep"]
|
pref.custom_footstep = save_data["custom_footstep"]
|
||||||
//CHOMPAdd Start
|
|
||||||
pref.species_sound = save_data["species_sound"]
|
pref.species_sound = save_data["species_sound"]
|
||||||
//CHOMPAdd End
|
|
||||||
|
|
||||||
/datum/category_item/player_setup_item/vore/size/save_character(list/save_data)
|
/datum/category_item/player_setup_item/vore/size/save_character(list/save_data)
|
||||||
save_data["size_multiplier"] = pref.size_multiplier
|
save_data["size_multiplier"] = pref.size_multiplier
|
||||||
@@ -48,9 +46,7 @@
|
|||||||
save_data["voice_sound"] = pref.voice_sound
|
save_data["voice_sound"] = pref.voice_sound
|
||||||
save_data["custom_speech_bubble"] = pref.custom_speech_bubble
|
save_data["custom_speech_bubble"] = pref.custom_speech_bubble
|
||||||
save_data["custom_footstep"] = pref.custom_footstep
|
save_data["custom_footstep"] = pref.custom_footstep
|
||||||
//CHOMPAdd Start
|
|
||||||
save_data["species_sound"] = pref.species_sound
|
save_data["species_sound"] = pref.species_sound
|
||||||
//CHOMPAdd End
|
|
||||||
|
|
||||||
/datum/category_item/player_setup_item/vore/size/sanitize_character()
|
/datum/category_item/player_setup_item/vore/size/sanitize_character()
|
||||||
pref.weight_vr = sanitize_integer(pref.weight_vr, WEIGHT_MIN, WEIGHT_MAX, initial(pref.weight_vr))
|
pref.weight_vr = sanitize_integer(pref.weight_vr, WEIGHT_MIN, WEIGHT_MAX, initial(pref.weight_vr))
|
||||||
@@ -59,16 +55,16 @@
|
|||||||
pref.fuzzy = sanitize_integer(pref.fuzzy, 0, 1, initial(pref.fuzzy))
|
pref.fuzzy = sanitize_integer(pref.fuzzy, 0, 1, initial(pref.fuzzy))
|
||||||
pref.offset_override = sanitize_integer(pref.offset_override, 0, 1, initial(pref.offset_override))
|
pref.offset_override = sanitize_integer(pref.offset_override, 0, 1, initial(pref.offset_override))
|
||||||
if(pref.voice_freq != 0)
|
if(pref.voice_freq != 0)
|
||||||
pref.voice_freq = sanitize_integer(pref.voice_freq, MIN_VOICE_FREQ, MAX_VOICE_FREQ, initial(pref.voice_freq)) //CHOMPEdit
|
pref.voice_freq = sanitize_integer(pref.voice_freq, MIN_VOICE_FREQ, MAX_VOICE_FREQ, initial(pref.voice_freq))
|
||||||
if(pref.size_multiplier == null || pref.size_multiplier < RESIZE_TINY || pref.size_multiplier > RESIZE_HUGE)
|
if(pref.size_multiplier == null || pref.size_multiplier < RESIZE_TINY || pref.size_multiplier > RESIZE_HUGE)
|
||||||
pref.size_multiplier = initial(pref.size_multiplier)
|
pref.size_multiplier = initial(pref.size_multiplier)
|
||||||
if(!(pref.custom_speech_bubble in GLOB.selectable_speech_bubbles))
|
if(!(pref.custom_speech_bubble in GLOB.selectable_speech_bubbles))
|
||||||
pref.custom_speech_bubble = "default"
|
pref.custom_speech_bubble = "default"
|
||||||
if(!(pref.custom_footstep))
|
if(!(pref.custom_footstep))
|
||||||
pref.custom_footstep = "Default"
|
pref.custom_footstep = "Default"
|
||||||
// var/datum/species/selected_species = GLOB.all_species[pref.species] // CHOMPEdit
|
// var/datum/species/selected_species = GLOB.all_species[pref.species]
|
||||||
if(!(pref.species_sound)) // CHOMPEdit // && selected_species.selects_bodytype
|
if(!(pref.species_sound))
|
||||||
pref.species_sound = "Unset" // CHOMPEdit - otherwise, we leave this as null or w/e the default is
|
pref.species_sound = "Unset"
|
||||||
|
|
||||||
/datum/category_item/player_setup_item/vore/size/copy_to_mob(var/mob/living/carbon/human/character)
|
/datum/category_item/player_setup_item/vore/size/copy_to_mob(var/mob/living/carbon/human/character)
|
||||||
character.weight = pref.weight_vr
|
character.weight = pref.weight_vr
|
||||||
@@ -79,7 +75,6 @@
|
|||||||
character.voice_freq = pref.voice_freq
|
character.voice_freq = pref.voice_freq
|
||||||
character.resize(pref.size_multiplier, animate = FALSE, ignore_prefs = TRUE)
|
character.resize(pref.size_multiplier, animate = FALSE, ignore_prefs = TRUE)
|
||||||
|
|
||||||
//CHOMPEDIT Global voice lookup
|
|
||||||
if(!pref.voice_sound)
|
if(!pref.voice_sound)
|
||||||
character.voice_sounds_list = GLOB.talk_sound
|
character.voice_sounds_list = GLOB.talk_sound
|
||||||
else
|
else
|
||||||
@@ -92,17 +87,14 @@
|
|||||||
. += span_bold("Scale:") + " <a href='byond://?src=\ref[src];size_multiplier=1'>[round(pref.size_multiplier*100)]%</a><br>"
|
. += span_bold("Scale:") + " <a href='byond://?src=\ref[src];size_multiplier=1'>[round(pref.size_multiplier*100)]%</a><br>"
|
||||||
. += span_bold("Scaled Appearance:") + " <a [pref.fuzzy ? "" : ""] href='byond://?src=\ref[src];toggle_fuzzy=1'><b>[pref.fuzzy ? "Fuzzy" : "Sharp"]</b></a><br>"
|
. += span_bold("Scaled Appearance:") + " <a [pref.fuzzy ? "" : ""] href='byond://?src=\ref[src];toggle_fuzzy=1'><b>[pref.fuzzy ? "Fuzzy" : "Sharp"]</b></a><br>"
|
||||||
. += span_bold("Scaling Center:") + " <a [pref.offset_override ? "" : ""] href='byond://?src=\ref[src];toggle_offset_override=1'><b>[pref.offset_override ? "Odd" : "Even"]</b></a><br>"
|
. += span_bold("Scaling Center:") + " <a [pref.offset_override ? "" : ""] href='byond://?src=\ref[src];toggle_offset_override=1'><b>[pref.offset_override ? "Odd" : "Even"]</b></a><br>"
|
||||||
. += "<br>" // CHOMPEdit: Fancy:tm:
|
. += "<br>"
|
||||||
. += span_bold("Mob Speech/Noise Customization") + "" // CHOMPEdit: Fancy:tm:
|
. += span_bold("Mob Speech/Noise Customization") + ""
|
||||||
. += "<br>" // CHOMPEdit
|
. += "<br>"
|
||||||
. += span_bold("Voice Frequency:") + " <a href='byond://?src=\ref[src];voice_freq=1'>[pref.voice_freq]</a><br>"
|
. += span_bold("Voice Frequency:") + " <a href='byond://?src=\ref[src];voice_freq=1'>[pref.voice_freq]</a><br>"
|
||||||
. += span_bold("Voice Sounds:") + " <a href='byond://?src=\ref[src];voice_sounds_list=1'>[pref.voice_sound]</a><br>"
|
. += span_bold("Voice Sounds:") + " <a href='byond://?src=\ref[src];voice_sounds_list=1'>[pref.voice_sound]</a><br>"
|
||||||
. += "<a href='byond://?src=\ref[src];voice_test=1'><b>Test Selected Voice</b></a><br>"
|
. += "<a href='byond://?src=\ref[src];voice_test=1'><b>Test Selected Voice</b></a><br>"
|
||||||
. += span_bold("Custom Speech Bubble:") + " <a href='byond://?src=\ref[src];customize_speech_bubble=1'>[pref.custom_speech_bubble]</a><br>"
|
. += span_bold("Custom Speech Bubble:") + " <a href='byond://?src=\ref[src];customize_speech_bubble=1'>[pref.custom_speech_bubble]</a><br>"
|
||||||
. += span_bold("Custom Footstep Sounds:") + "<a href='byond://?src=\ref[src];customize_footsteps=1'>[pref.custom_footstep]</a><br>"
|
. += span_bold("Custom Footstep Sounds:") + "<a href='byond://?src=\ref[src];customize_footsteps=1'>[pref.custom_footstep]</a><br>"
|
||||||
// CHOMPEdit Start: Pain/Scream/Death Custom Sounds
|
|
||||||
// var/datum/species/selected_species = GLOB.all_species[pref.species]
|
|
||||||
// if(selected_species.selects_bodytype)
|
|
||||||
. += "<br>"
|
. += "<br>"
|
||||||
. += span_bold("Species Sounds:") + " <a href='byond://?src=\ref[src];species_sound_options=1'>[pref.species_sound]</a><br>"
|
. += span_bold("Species Sounds:") + " <a href='byond://?src=\ref[src];species_sound_options=1'>[pref.species_sound]</a><br>"
|
||||||
. += "<a href='byond://?src=\ref[src];cough_test=1'><b>Test Cough Sounds</b></a><br>"
|
. += "<a href='byond://?src=\ref[src];cough_test=1'><b>Test Cough Sounds</b></a><br>"
|
||||||
@@ -111,7 +103,6 @@
|
|||||||
. += "<a href='byond://?src=\ref[src];pain_test=1'><b>Test Pain Sounds</b></a><br>"
|
. += "<a href='byond://?src=\ref[src];pain_test=1'><b>Test Pain Sounds</b></a><br>"
|
||||||
. += "<a href='byond://?src=\ref[src];gasp_test=1'><b>Test Gasp Sounds</b></a><br>"
|
. += "<a href='byond://?src=\ref[src];gasp_test=1'><b>Test Gasp Sounds</b></a><br>"
|
||||||
. += "<a href='byond://?src=\ref[src];death_test=1'><b>Test Death Sounds</b></a><br>"
|
. += "<a href='byond://?src=\ref[src];death_test=1'><b>Test Death Sounds</b></a><br>"
|
||||||
// CHOMPEdit End: Pain/Scream/Death Custom Sounds
|
|
||||||
. += "<br>"
|
. += "<br>"
|
||||||
. += span_bold("Relative Weight:") + " <a href='byond://?src=\ref[src];weight=1'>[pref.weight_vr]</a><br>"
|
. += span_bold("Relative Weight:") + " <a href='byond://?src=\ref[src];weight=1'>[pref.weight_vr]</a><br>"
|
||||||
. += span_bold("Weight Gain Rate:") + " <a href='byond://?src=\ref[src];weight_gain=1'>[pref.weight_gain]</a><br>"
|
. += span_bold("Weight Gain Rate:") + " <a href='byond://?src=\ref[src];weight_gain=1'>[pref.weight_gain]</a><br>"
|
||||||
@@ -178,7 +169,7 @@
|
|||||||
return
|
return
|
||||||
choice = preset_voice_freqs[choice]
|
choice = preset_voice_freqs[choice]
|
||||||
if(choice == 0)
|
if(choice == 0)
|
||||||
pref.voice_freq = 42500 //CHOMPEdit
|
pref.voice_freq = 42500
|
||||||
return TOPIC_REFRESH
|
return TOPIC_REFRESH
|
||||||
else if(choice == 1)
|
else if(choice == 1)
|
||||||
choice = tgui_input_number(user, "Choose your character's voice frequency, ranging from [MIN_VOICE_FREQ] to [MAX_VOICE_FREQ]", "Custom Voice Frequency", null, MAX_VOICE_FREQ, MIN_VOICE_FREQ)
|
choice = tgui_input_number(user, "Choose your character's voice frequency, ranging from [MIN_VOICE_FREQ] to [MAX_VOICE_FREQ]", "Custom Voice Frequency", null, MAX_VOICE_FREQ, MIN_VOICE_FREQ)
|
||||||
@@ -205,12 +196,12 @@
|
|||||||
"goon speak pugg",
|
"goon speak pugg",
|
||||||
"goon speak roach",
|
"goon speak roach",
|
||||||
"goon speak skelly",
|
"goon speak skelly",
|
||||||
"xeno speak") // CHOMPedit
|
"xeno speak")
|
||||||
var/choice = tgui_input_list(user, "Which set of sounds would you like to use for your character's speech sounds?", "Voice Sounds", possible_voice_types)
|
var/choice = tgui_input_list(user, "Which set of sounds would you like to use for your character's speech sounds?", "Voice Sounds", possible_voice_types)
|
||||||
if(!pref.voice_sound)
|
if(!pref.voice_sound)
|
||||||
pref.voice_sound = "goon speak 1" //CHOMPEdit - Defaults voice to a less jarring sound
|
pref.voice_sound = "goon speak 1"
|
||||||
else if(!choice)
|
else if(!choice)
|
||||||
return TOPIC_REFRESH // CHOMPEdit
|
return TOPIC_REFRESH
|
||||||
else
|
else
|
||||||
pref.voice_sound = choice
|
pref.voice_sound = choice
|
||||||
return TOPIC_REFRESH
|
return TOPIC_REFRESH
|
||||||
@@ -260,15 +251,12 @@
|
|||||||
S = sound(pick(GLOB.goon_speak_roach_sound))
|
S = sound(pick(GLOB.goon_speak_roach_sound))
|
||||||
if("goon speak skelly")
|
if("goon speak skelly")
|
||||||
S = sound(pick(GLOB.goon_speak_skelly_sound))
|
S = sound(pick(GLOB.goon_speak_skelly_sound))
|
||||||
//CHOMPedit start.
|
|
||||||
if("xeno speak")
|
if("xeno speak")
|
||||||
S = sound(pick(GLOB.xeno_speak_sound))
|
S = sound(pick(GLOB.xeno_speak_sound))
|
||||||
//CHOMPedit end.
|
|
||||||
if(S)
|
if(S)
|
||||||
S.frequency = pick(pref.voice_freq)
|
S.frequency = pick(pref.voice_freq)
|
||||||
S.volume = 50
|
S.volume = 50
|
||||||
SEND_SOUND(user, S)
|
SEND_SOUND(user, S)
|
||||||
// CHOMPEdit Start: Pain/Scream/Death sounds
|
|
||||||
else if(href_list["species_sound_options"]) // You shouldn't be able to see this option if you don't have the option to select a custom icon base, so we don't need to re-check for safety here.
|
else if(href_list["species_sound_options"]) // You shouldn't be able to see this option if you don't have the option to select a custom icon base, so we don't need to re-check for safety here.
|
||||||
var/list/possible_species_sound_types = species_sound_map
|
var/list/possible_species_sound_types = species_sound_map
|
||||||
var/choice = tgui_input_list(user, "Which set of sounds would you like to use for your character's species sounds? (Cough, Sneeze, Scream, Pain, Gasp, Death)", "Species Sounds", possible_species_sound_types)
|
var/choice = tgui_input_list(user, "Which set of sounds would you like to use for your character's species sounds? (Cough, Sneeze, Scream, Pain, Gasp, Death)", "Species Sounds", possible_species_sound_types)
|
||||||
@@ -367,7 +355,6 @@
|
|||||||
S.volume = 20
|
S.volume = 20
|
||||||
SEND_SOUND(user, S)
|
SEND_SOUND(user, S)
|
||||||
return TOPIC_REFRESH
|
return TOPIC_REFRESH
|
||||||
// CHOMPEdit End
|
|
||||||
return ..();
|
return ..();
|
||||||
|
|
||||||
#undef WEIGHT_CHANGE_MIN
|
#undef WEIGHT_CHANGE_MIN
|
||||||
|
|||||||
@@ -5,10 +5,8 @@
|
|||||||
/datum/category_item/player_setup_item/vore/misc/load_character(list/save_data)
|
/datum/category_item/player_setup_item/vore/misc/load_character(list/save_data)
|
||||||
pref.show_in_directory = save_data["show_in_directory"]
|
pref.show_in_directory = save_data["show_in_directory"]
|
||||||
pref.directory_tag = save_data["directory_tag"]
|
pref.directory_tag = save_data["directory_tag"]
|
||||||
//CHOMPAdd Start
|
|
||||||
pref.directory_gendertag = save_data["directory_gendertag"]
|
pref.directory_gendertag = save_data["directory_gendertag"]
|
||||||
pref.directory_sexualitytag = save_data["directory_sexualitytag"]
|
pref.directory_sexualitytag = save_data["directory_sexualitytag"]
|
||||||
//CHOMPAdd End
|
|
||||||
pref.directory_erptag = save_data["directory_erptag"]
|
pref.directory_erptag = save_data["directory_erptag"]
|
||||||
pref.directory_ad = save_data["directory_ad"]
|
pref.directory_ad = save_data["directory_ad"]
|
||||||
pref.sensorpref = save_data["sensorpref"]
|
pref.sensorpref = save_data["sensorpref"]
|
||||||
@@ -19,10 +17,8 @@
|
|||||||
/datum/category_item/player_setup_item/vore/misc/save_character(list/save_data)
|
/datum/category_item/player_setup_item/vore/misc/save_character(list/save_data)
|
||||||
save_data["show_in_directory"] = pref.show_in_directory
|
save_data["show_in_directory"] = pref.show_in_directory
|
||||||
save_data["directory_tag"] = pref.directory_tag
|
save_data["directory_tag"] = pref.directory_tag
|
||||||
//CHOMPAdd Start
|
|
||||||
save_data["directory_gendertag"] = pref.directory_gendertag
|
save_data["directory_gendertag"] = pref.directory_gendertag
|
||||||
save_data["directory_sexualitytag"] = pref.directory_sexualitytag
|
save_data["directory_sexualitytag"] = pref.directory_sexualitytag
|
||||||
//CHOMPAdd End
|
|
||||||
save_data["directory_erptag"] = pref.directory_erptag
|
save_data["directory_erptag"] = pref.directory_erptag
|
||||||
save_data["directory_ad"] = pref.directory_ad
|
save_data["directory_ad"] = pref.directory_ad
|
||||||
save_data["sensorpref"] = pref.sensorpref
|
save_data["sensorpref"] = pref.sensorpref
|
||||||
@@ -41,8 +37,8 @@
|
|||||||
/datum/category_item/player_setup_item/vore/misc/sanitize_character()
|
/datum/category_item/player_setup_item/vore/misc/sanitize_character()
|
||||||
pref.show_in_directory = sanitize_integer(pref.show_in_directory, 0, 1, initial(pref.show_in_directory))
|
pref.show_in_directory = sanitize_integer(pref.show_in_directory, 0, 1, initial(pref.show_in_directory))
|
||||||
pref.directory_tag = sanitize_inlist(pref.directory_tag, GLOB.char_directory_tags, initial(pref.directory_tag))
|
pref.directory_tag = sanitize_inlist(pref.directory_tag, GLOB.char_directory_tags, initial(pref.directory_tag))
|
||||||
pref.directory_gendertag = sanitize_inlist(pref.directory_gendertag, GLOB.char_directory_gendertags, initial(pref.directory_gendertag)) // CHOMPStation Edit: Character Directory Update
|
pref.directory_gendertag = sanitize_inlist(pref.directory_gendertag, GLOB.char_directory_gendertags, initial(pref.directory_gendertag))
|
||||||
pref.directory_sexualitytag = sanitize_inlist(pref.directory_sexualitytag, GLOB.char_directory_sexualitytags, initial(pref.directory_sexualitytag)) // CHOMPStation Edit: Character Directory Update
|
pref.directory_sexualitytag = sanitize_inlist(pref.directory_sexualitytag, GLOB.char_directory_sexualitytags, initial(pref.directory_sexualitytag))
|
||||||
pref.directory_erptag = sanitize_inlist(pref.directory_erptag, GLOB.char_directory_erptags, initial(pref.directory_erptag))
|
pref.directory_erptag = sanitize_inlist(pref.directory_erptag, GLOB.char_directory_erptags, initial(pref.directory_erptag))
|
||||||
pref.sensorpref = sanitize_integer(pref.sensorpref, 1, GLOB.sensorpreflist.len, initial(pref.sensorpref))
|
pref.sensorpref = sanitize_integer(pref.sensorpref, 1, GLOB.sensorpreflist.len, initial(pref.sensorpref))
|
||||||
pref.capture_crystal = sanitize_integer(pref.capture_crystal, 0, 1, initial(pref.capture_crystal))
|
pref.capture_crystal = sanitize_integer(pref.capture_crystal, 0, 1, initial(pref.capture_crystal))
|
||||||
@@ -53,8 +49,8 @@
|
|||||||
. += "<br>"
|
. += "<br>"
|
||||||
. += span_bold("Appear in Character Directory:") + " <a [pref.show_in_directory ? "class='linkOn'" : ""] href='byond://?src=\ref[src];toggle_show_in_directory=1'><b>[pref.show_in_directory ? "Yes" : "No"]</b></a><br>"
|
. += span_bold("Appear in Character Directory:") + " <a [pref.show_in_directory ? "class='linkOn'" : ""] href='byond://?src=\ref[src];toggle_show_in_directory=1'><b>[pref.show_in_directory ? "Yes" : "No"]</b></a><br>"
|
||||||
. += span_bold("Character Directory Vore Tag:") + " <a href='byond://?src=\ref[src];directory_tag=1'><b>[pref.directory_tag]</b></a><br>"
|
. += span_bold("Character Directory Vore Tag:") + " <a href='byond://?src=\ref[src];directory_tag=1'><b>[pref.directory_tag]</b></a><br>"
|
||||||
. += span_bold("Character Directory Gender:") + " <a href='byond://?src=\ref[src];directory_gendertag=1'><b>[pref.directory_gendertag]</b></a><br>" // CHOMPStation Edit: Character Directory Update
|
. += span_bold("Character Directory Gender:") + " <a href='byond://?src=\ref[src];directory_gendertag=1'><b>[pref.directory_gendertag]</b></a><br>"
|
||||||
. += span_bold("Character Directory Sexuality:") + " <a href='byond://?src=\ref[src];directory_sexualitytag=1'><b>[pref.directory_sexualitytag]</b></a><br>" // CHOMPStation Edit: Character Directory Update
|
. += span_bold("Character Directory Sexuality:") + " <a href='byond://?src=\ref[src];directory_sexualitytag=1'><b>[pref.directory_sexualitytag]</b></a><br>"
|
||||||
. += span_bold("Character Directory ERP Tag:") + " <a href='byond://?src=\ref[src];directory_erptag=1'><b>[pref.directory_erptag]</b></a><br>"
|
. += span_bold("Character Directory ERP Tag:") + " <a href='byond://?src=\ref[src];directory_erptag=1'><b>[pref.directory_erptag]</b></a><br>"
|
||||||
. += span_bold("Character Directory Advertisement:") + " <a href='byond://?src=\ref[src];directory_ad=1'><b>Set Directory Ad</b></a><br>"
|
. += span_bold("Character Directory Advertisement:") + " <a href='byond://?src=\ref[src];directory_ad=1'><b>Set Directory Ad</b></a><br>"
|
||||||
. += span_bold("Suit Sensors Preference:") + " <a [pref.sensorpref ? "" : ""] href='byond://?src=\ref[src];toggle_sensor_setting=1'><b>[GLOB.sensorpreflist[pref.sensorpref]]</b></a><br>"
|
. += span_bold("Suit Sensors Preference:") + " <a [pref.sensorpref ? "" : ""] href='byond://?src=\ref[src];toggle_sensor_setting=1'><b>[GLOB.sensorpreflist[pref.sensorpref]]</b></a><br>"
|
||||||
@@ -74,7 +70,6 @@
|
|||||||
return
|
return
|
||||||
pref.directory_tag = new_tag
|
pref.directory_tag = new_tag
|
||||||
return TOPIC_REFRESH
|
return TOPIC_REFRESH
|
||||||
// CHOMPStation Edit Start: Directory Update
|
|
||||||
else if(href_list["directory_gendertag"])
|
else if(href_list["directory_gendertag"])
|
||||||
var/new_gendertag = tgui_input_list(user, "Pick a new Gender tag for the character directory. This is YOUR gender, not what you prefer.", "Character Gender Tag", GLOB.char_directory_gendertags, pref.directory_gendertag)
|
var/new_gendertag = tgui_input_list(user, "Pick a new Gender tag for the character directory. This is YOUR gender, not what you prefer.", "Character Gender Tag", GLOB.char_directory_gendertags, pref.directory_gendertag)
|
||||||
if(!new_gendertag)
|
if(!new_gendertag)
|
||||||
@@ -87,7 +82,6 @@
|
|||||||
return
|
return
|
||||||
pref.directory_sexualitytag = new_sexualitytag
|
pref.directory_sexualitytag = new_sexualitytag
|
||||||
return TOPIC_REFRESH
|
return TOPIC_REFRESH
|
||||||
// CHOMPStation Edit End: Directory Update
|
|
||||||
else if(href_list["directory_erptag"])
|
else if(href_list["directory_erptag"])
|
||||||
var/new_erptag = tgui_input_list(user, "Pick a new ERP tag for the character directory", "Character ERP Tag", GLOB.char_directory_erptags, pref.directory_erptag)
|
var/new_erptag = tgui_input_list(user, "Pick a new ERP tag for the character directory", "Character ERP Tag", GLOB.char_directory_erptags, pref.directory_erptag)
|
||||||
if(!new_erptag)
|
if(!new_erptag)
|
||||||
|
|||||||
@@ -614,11 +614,9 @@ var/list/preferences_datums = list()
|
|||||||
character.ooc_notes = read_preference(/datum/preference/text/living/ooc_notes)
|
character.ooc_notes = read_preference(/datum/preference/text/living/ooc_notes)
|
||||||
character.ooc_notes_dislikes = read_preference(/datum/preference/text/living/ooc_notes_dislikes)
|
character.ooc_notes_dislikes = read_preference(/datum/preference/text/living/ooc_notes_dislikes)
|
||||||
character.ooc_notes_likes = read_preference(/datum/preference/text/living/ooc_notes_likes)
|
character.ooc_notes_likes = read_preference(/datum/preference/text/living/ooc_notes_likes)
|
||||||
// CHOMPAdd Start
|
|
||||||
character.ooc_notes_favs = read_preference(/datum/preference/text/living/ooc_notes_favs)
|
character.ooc_notes_favs = read_preference(/datum/preference/text/living/ooc_notes_favs)
|
||||||
character.ooc_notes_maybes = read_preference(/datum/preference/text/living/ooc_notes_maybes)
|
character.ooc_notes_maybes = read_preference(/datum/preference/text/living/ooc_notes_maybes)
|
||||||
character.ooc_notes_style = read_preference(/datum/preference/toggle/living/ooc_notes_style)
|
character.ooc_notes_style = read_preference(/datum/preference/toggle/living/ooc_notes_style)
|
||||||
// CHOMPAdd End
|
|
||||||
|
|
||||||
character.weight = weight_vr
|
character.weight = weight_vr
|
||||||
character.weight_gain = weight_gain
|
character.weight_gain = weight_gain
|
||||||
|
|||||||
@@ -115,7 +115,6 @@
|
|||||||
target.ooc_notes_dislikes = value
|
target.ooc_notes_dislikes = value
|
||||||
return
|
return
|
||||||
|
|
||||||
// CHOMP specific, but added here not to forget
|
|
||||||
/datum/preference/toggle/living/ooc_notes_style
|
/datum/preference/toggle/living/ooc_notes_style
|
||||||
category = PREFERENCE_CATEGORY_MANUALLY_RENDERED
|
category = PREFERENCE_CATEGORY_MANUALLY_RENDERED
|
||||||
savefile_key = "OOC_Notes_System"
|
savefile_key = "OOC_Notes_System"
|
||||||
@@ -124,7 +123,7 @@
|
|||||||
can_randomize = FALSE
|
can_randomize = FALSE
|
||||||
|
|
||||||
/datum/preference/toggle/living/ooc_notes_style/apply_to_living(mob/living/target, value)
|
/datum/preference/toggle/living/ooc_notes_style/apply_to_living(mob/living/target, value)
|
||||||
target.ooc_notes_style = value // CHOMPEnable
|
target.ooc_notes_style = value
|
||||||
return
|
return
|
||||||
|
|
||||||
/datum/preference/text/living/ooc_notes_maybes
|
/datum/preference/text/living/ooc_notes_maybes
|
||||||
@@ -135,7 +134,7 @@
|
|||||||
can_randomize = FALSE
|
can_randomize = FALSE
|
||||||
|
|
||||||
/datum/preference/text/living/ooc_notes_maybes/apply_to_living(mob/living/target, value)
|
/datum/preference/text/living/ooc_notes_maybes/apply_to_living(mob/living/target, value)
|
||||||
target.ooc_notes_maybes = value // CHOMPEnable
|
target.ooc_notes_maybes = value
|
||||||
return
|
return
|
||||||
|
|
||||||
/datum/preference/text/living/ooc_notes_favs
|
/datum/preference/text/living/ooc_notes_favs
|
||||||
@@ -146,7 +145,7 @@
|
|||||||
can_randomize = FALSE
|
can_randomize = FALSE
|
||||||
|
|
||||||
/datum/preference/text/living/ooc_notes_favs/apply_to_living(mob/living/target, value)
|
/datum/preference/text/living/ooc_notes_favs/apply_to_living(mob/living/target, value)
|
||||||
target.ooc_notes_favs = value // CHOMPEnable
|
target.ooc_notes_favs = value
|
||||||
return
|
return
|
||||||
|
|
||||||
/datum/preference/toggle/human/name_is_always_random
|
/datum/preference/toggle/human/name_is_always_random
|
||||||
|
|||||||
@@ -106,3 +106,13 @@
|
|||||||
/datum/preference/text/lastchangelog/is_accessible(datum/preferences/preferences)
|
/datum/preference/text/lastchangelog/is_accessible(datum/preferences/preferences)
|
||||||
..()
|
..()
|
||||||
return FALSE
|
return FALSE
|
||||||
|
|
||||||
|
/datum/preference/toggle/random_emote_pitch
|
||||||
|
category = PREFERENCE_CATEGORY_GAME_PREFERENCES
|
||||||
|
savefile_key = "EMOTE_VARY"
|
||||||
|
savefile_identifier = PREFERENCE_PLAYER
|
||||||
|
|
||||||
|
/datum/preference/toggle/autotranscore
|
||||||
|
category = PREFERENCE_CATEGORY_GAME_PREFERENCES
|
||||||
|
savefile_key = "AUTOTRANSCORE"
|
||||||
|
savefile_identifier = PREFERENCE_PLAYER
|
||||||
|
|||||||
@@ -2,10 +2,8 @@
|
|||||||
var/show_in_directory = 1 //Show in Character Directory
|
var/show_in_directory = 1 //Show in Character Directory
|
||||||
var/directory_tag = "Unset" //Sorting tag to use in character directory
|
var/directory_tag = "Unset" //Sorting tag to use in character directory
|
||||||
var/directory_erptag = "Unset" //ditto, but for non-vore scenes
|
var/directory_erptag = "Unset" //ditto, but for non-vore scenes
|
||||||
// CHOMPStation Edit Start: Directory Update
|
|
||||||
var/directory_gendertag = "Unset" // Gender stuff!
|
var/directory_gendertag = "Unset" // Gender stuff!
|
||||||
var/directory_sexualitytag = "Unset" // Sexuality!
|
var/directory_sexualitytag = "Unset" // Sexuality!
|
||||||
// CHOMPStation Edit End: Directory Update
|
|
||||||
var/directory_ad = "" //Advertisement stuff to show in character directory.
|
var/directory_ad = "" //Advertisement stuff to show in character directory.
|
||||||
var/sensorpref = 5 //Set character's suit sensor level
|
var/sensorpref = 5 //Set character's suit sensor level
|
||||||
var/capture_crystal = 1 //Whether or not someone is able to be caught with capture crystals
|
var/capture_crystal = 1 //Whether or not someone is able to be caught with capture crystals
|
||||||
|
|||||||
@@ -34,16 +34,16 @@ GLOBAL_DATUM(character_directory, /datum/character_directory)
|
|||||||
data["personalVisibility"] = user.mind.show_in_directory
|
data["personalVisibility"] = user.mind.show_in_directory
|
||||||
data["personalTag"] = user.mind.directory_tag || "Unset"
|
data["personalTag"] = user.mind.directory_tag || "Unset"
|
||||||
data["personalErpTag"] = user.mind.directory_erptag || "Unset"
|
data["personalErpTag"] = user.mind.directory_erptag || "Unset"
|
||||||
data["personalEventTag"] = GLOB.vantag_choices_list[user.mind.vantag_preference] //CHOMPEdit
|
data["personalEventTag"] = GLOB.vantag_choices_list[user.mind.vantag_preference]
|
||||||
data["personalGenderTag"] = user.mind.directory_gendertag || "Unset" // CHOMPStation Edit: Character Directory Update
|
data["personalGenderTag"] = user.mind.directory_gendertag || "Unset"
|
||||||
data["personalSexualityTag"] = user.mind.directory_sexualitytag || "Unset" // CHOMPStation Edit: Character Directory Update
|
data["personalSexualityTag"] = user.mind.directory_sexualitytag || "Unset"
|
||||||
else if (user?.client?.prefs)
|
else if (user?.client?.prefs)
|
||||||
data["personalVisibility"] = user.client.prefs.show_in_directory
|
data["personalVisibility"] = user.client.prefs.show_in_directory
|
||||||
data["personalTag"] = user.client.prefs.directory_tag || "Unset"
|
data["personalTag"] = user.client.prefs.directory_tag || "Unset"
|
||||||
data["personalErpTag"] = user.client.prefs.directory_erptag || "Unset"
|
data["personalErpTag"] = user.client.prefs.directory_erptag || "Unset"
|
||||||
data["personalEventTag"] = GLOB.vantag_choices_list[user.client.prefs.vantag_preference] //CHOMPEdit
|
data["personalEventTag"] = GLOB.vantag_choices_list[user.client.prefs.vantag_preference]
|
||||||
data["personalGenderTag"] = user.client.prefs.directory_gendertag || "Unset" // CHOMPStation Edit: Character Directory Update
|
data["personalGenderTag"] = user.client.prefs.directory_gendertag || "Unset"
|
||||||
data["personalSexualityTag"] = user.client.prefs.directory_sexualitytag || "Unset" // CHOMPStation Edit: Character Directory Update
|
data["personalSexualityTag"] = user.client.prefs.directory_sexualitytag || "Unset"
|
||||||
|
|
||||||
return data
|
return data
|
||||||
|
|
||||||
@@ -61,7 +61,6 @@ GLOBAL_DATUM(character_directory, /datum/character_directory)
|
|||||||
var/name = null
|
var/name = null
|
||||||
var/species = null
|
var/species = null
|
||||||
var/ooc_notes = null
|
var/ooc_notes = null
|
||||||
//CHOMPEdit Start
|
|
||||||
var/ooc_notes_favs = null
|
var/ooc_notes_favs = null
|
||||||
var/ooc_notes_likes = null
|
var/ooc_notes_likes = null
|
||||||
var/ooc_notes_maybes = null
|
var/ooc_notes_maybes = null
|
||||||
@@ -70,7 +69,6 @@ GLOBAL_DATUM(character_directory, /datum/character_directory)
|
|||||||
var/gendertag = null
|
var/gendertag = null
|
||||||
var/sexualitytag = null
|
var/sexualitytag = null
|
||||||
var/eventtag = GLOB.vantag_choices_list[VANTAG_NONE]
|
var/eventtag = GLOB.vantag_choices_list[VANTAG_NONE]
|
||||||
//CHOMPEdit End
|
|
||||||
var/flavor_text = null
|
var/flavor_text = null
|
||||||
var/tag
|
var/tag
|
||||||
var/erptag
|
var/erptag
|
||||||
@@ -79,24 +77,19 @@ GLOBAL_DATUM(character_directory, /datum/character_directory)
|
|||||||
tag = C.mob.mind.directory_tag || "Unset"
|
tag = C.mob.mind.directory_tag || "Unset"
|
||||||
erptag = C.mob.mind.directory_erptag || "Unset"
|
erptag = C.mob.mind.directory_erptag || "Unset"
|
||||||
character_ad = C.mob.mind.directory_ad
|
character_ad = C.mob.mind.directory_ad
|
||||||
//CHOMPEdit Start
|
|
||||||
gendertag = C.mob.mind.directory_gendertag || "Unset"
|
gendertag = C.mob.mind.directory_gendertag || "Unset"
|
||||||
sexualitytag = C.mob.mind.directory_sexualitytag || "Unset"
|
sexualitytag = C.mob.mind.directory_sexualitytag || "Unset"
|
||||||
eventtag = GLOB.vantag_choices_list[C.mob.mind.vantag_preference]
|
eventtag = GLOB.vantag_choices_list[C.mob.mind.vantag_preference]
|
||||||
//CHOMPEdit End
|
|
||||||
else
|
else
|
||||||
tag = C.prefs.directory_tag || "Unset"
|
tag = C.prefs.directory_tag || "Unset"
|
||||||
erptag = C.prefs.directory_erptag || "Unset"
|
erptag = C.prefs.directory_erptag || "Unset"
|
||||||
character_ad = C.prefs.directory_ad
|
character_ad = C.prefs.directory_ad
|
||||||
//CHOMPEdit Start
|
|
||||||
gendertag = C.prefs.directory_gendertag || "Unset"
|
gendertag = C.prefs.directory_gendertag || "Unset"
|
||||||
sexualitytag = C.prefs.directory_sexualitytag || "Unset"
|
sexualitytag = C.prefs.directory_sexualitytag || "Unset"
|
||||||
eventtag = GLOB.vantag_choices_list[C.prefs.vantag_preference]
|
eventtag = GLOB.vantag_choices_list[C.prefs.vantag_preference]
|
||||||
//CHOMPEdit End
|
|
||||||
|
|
||||||
if(ishuman(C.mob))
|
if(ishuman(C.mob))
|
||||||
var/mob/living/carbon/human/H = C.mob
|
var/mob/living/carbon/human/H = C.mob
|
||||||
// CHOMPEdit Start
|
|
||||||
var/strangername = H.real_name
|
var/strangername = H.real_name
|
||||||
if(GLOB.data_core && GLOB.data_core.general)
|
if(GLOB.data_core && GLOB.data_core.general)
|
||||||
if(!find_general_record("name", H.real_name))
|
if(!find_general_record("name", H.real_name))
|
||||||
@@ -105,7 +98,6 @@ GLOBAL_DATUM(character_directory, /datum/character_directory)
|
|||||||
name = strangername
|
name = strangername
|
||||||
species = "[H.custom_species ? H.custom_species : H.species.name]"
|
species = "[H.custom_species ? H.custom_species : H.species.name]"
|
||||||
ooc_notes = H.ooc_notes
|
ooc_notes = H.ooc_notes
|
||||||
//CHOMPEdit Start
|
|
||||||
if(H.ooc_notes_style && (H.ooc_notes_favs || H.ooc_notes_likes || H.ooc_notes_maybes || H.ooc_notes_dislikes))
|
if(H.ooc_notes_style && (H.ooc_notes_favs || H.ooc_notes_likes || H.ooc_notes_maybes || H.ooc_notes_dislikes))
|
||||||
ooc_notes = H.ooc_notes + "\n\n"
|
ooc_notes = H.ooc_notes + "\n\n"
|
||||||
ooc_notes_favs = H.ooc_notes_favs
|
ooc_notes_favs = H.ooc_notes_favs
|
||||||
@@ -124,14 +116,12 @@ GLOBAL_DATUM(character_directory, /datum/character_directory)
|
|||||||
ooc_notes += "\n\nDISLIKES\n\n[H.ooc_notes_dislikes]"
|
ooc_notes += "\n\nDISLIKES\n\n[H.ooc_notes_dislikes]"
|
||||||
if(LAZYLEN(H.flavor_texts))
|
if(LAZYLEN(H.flavor_texts))
|
||||||
flavor_text = H.flavor_texts["general"]
|
flavor_text = H.flavor_texts["general"]
|
||||||
//CHOMPEdit End
|
|
||||||
|
|
||||||
if(isAI(C.mob))
|
if(isAI(C.mob))
|
||||||
var/mob/living/silicon/ai/A = C.mob
|
var/mob/living/silicon/ai/A = C.mob
|
||||||
name = A.name
|
name = A.name
|
||||||
species = "Artificial Intelligence"
|
species = "Artificial Intelligence"
|
||||||
ooc_notes = A.ooc_notes
|
ooc_notes = A.ooc_notes
|
||||||
//CHOMPEdit Start
|
|
||||||
if(A.ooc_notes_style && (A.ooc_notes_favs || A.ooc_notes_likes || A.ooc_notes_maybes || A.ooc_notes_dislikes))
|
if(A.ooc_notes_style && (A.ooc_notes_favs || A.ooc_notes_likes || A.ooc_notes_maybes || A.ooc_notes_dislikes))
|
||||||
ooc_notes = A.ooc_notes + "\n\n"
|
ooc_notes = A.ooc_notes + "\n\n"
|
||||||
ooc_notes_favs = A.ooc_notes_favs
|
ooc_notes_favs = A.ooc_notes_favs
|
||||||
@@ -148,7 +138,6 @@ GLOBAL_DATUM(character_directory, /datum/character_directory)
|
|||||||
ooc_notes += "\n\nMAYBES\n\n[A.ooc_notes_maybes]"
|
ooc_notes += "\n\nMAYBES\n\n[A.ooc_notes_maybes]"
|
||||||
if(A.ooc_notes_dislikes)
|
if(A.ooc_notes_dislikes)
|
||||||
ooc_notes += "\n\nDISLIKES\n\n[A.ooc_notes_dislikes]"
|
ooc_notes += "\n\nDISLIKES\n\n[A.ooc_notes_dislikes]"
|
||||||
//CHOMPEdit End
|
|
||||||
|
|
||||||
flavor_text = null // No flavor text for AIs :c
|
flavor_text = null // No flavor text for AIs :c
|
||||||
|
|
||||||
@@ -159,7 +148,6 @@ GLOBAL_DATUM(character_directory, /datum/character_directory)
|
|||||||
name = R.name
|
name = R.name
|
||||||
species = "[R.modtype] [R.braintype]"
|
species = "[R.modtype] [R.braintype]"
|
||||||
ooc_notes = R.ooc_notes
|
ooc_notes = R.ooc_notes
|
||||||
//CHOMPEdit Start
|
|
||||||
if(R.ooc_notes_style && (R.ooc_notes_favs || R.ooc_notes_likes || R.ooc_notes_maybes || R.ooc_notes_dislikes))
|
if(R.ooc_notes_style && (R.ooc_notes_favs || R.ooc_notes_likes || R.ooc_notes_maybes || R.ooc_notes_dislikes))
|
||||||
ooc_notes = R.ooc_notes + "\n\n"
|
ooc_notes = R.ooc_notes + "\n\n"
|
||||||
ooc_notes_favs = R.ooc_notes_favs
|
ooc_notes_favs = R.ooc_notes_favs
|
||||||
@@ -176,7 +164,6 @@ GLOBAL_DATUM(character_directory, /datum/character_directory)
|
|||||||
ooc_notes += "\n\nMAYBES\n\n[R.ooc_notes_maybes]"
|
ooc_notes += "\n\nMAYBES\n\n[R.ooc_notes_maybes]"
|
||||||
if(R.ooc_notes_dislikes)
|
if(R.ooc_notes_dislikes)
|
||||||
ooc_notes += "\n\nDISLIKES\n\n[R.ooc_notes_dislikes]"
|
ooc_notes += "\n\nDISLIKES\n\n[R.ooc_notes_dislikes]"
|
||||||
//CHOMPEdit End
|
|
||||||
|
|
||||||
flavor_text = R.flavor_text
|
flavor_text = R.flavor_text
|
||||||
|
|
||||||
@@ -185,7 +172,6 @@ GLOBAL_DATUM(character_directory, /datum/character_directory)
|
|||||||
name = P.name
|
name = P.name
|
||||||
species = "pAI"
|
species = "pAI"
|
||||||
ooc_notes = P.ooc_notes
|
ooc_notes = P.ooc_notes
|
||||||
// CHOMPEdit Start
|
|
||||||
if(P.ooc_notes_style && (P.ooc_notes_favs || P.ooc_notes_likes || P.ooc_notes_maybes || P.ooc_notes_dislikes))
|
if(P.ooc_notes_style && (P.ooc_notes_favs || P.ooc_notes_likes || P.ooc_notes_maybes || P.ooc_notes_dislikes))
|
||||||
ooc_notes = P.ooc_notes + "\n\n"
|
ooc_notes = P.ooc_notes + "\n\n"
|
||||||
ooc_notes_favs = P.ooc_notes_favs
|
ooc_notes_favs = P.ooc_notes_favs
|
||||||
@@ -202,13 +188,11 @@ GLOBAL_DATUM(character_directory, /datum/character_directory)
|
|||||||
ooc_notes += "\n\nMAYBES\n\n[P.ooc_notes_maybes]"
|
ooc_notes += "\n\nMAYBES\n\n[P.ooc_notes_maybes]"
|
||||||
if(P.ooc_notes_dislikes)
|
if(P.ooc_notes_dislikes)
|
||||||
ooc_notes += "\n\nDISLIKES\n\n[P.ooc_notes_dislikes]"
|
ooc_notes += "\n\nDISLIKES\n\n[P.ooc_notes_dislikes]"
|
||||||
//CHOMPEdit End
|
|
||||||
flavor_text = P.flavor_text
|
flavor_text = P.flavor_text
|
||||||
|
|
||||||
if(isanimal(C.mob))
|
if(isanimal(C.mob))
|
||||||
var/mob/living/simple_mob/S = C.mob
|
var/mob/living/simple_mob/S = C.mob
|
||||||
name = S.name
|
name = S.name
|
||||||
// CHOMPEdit Start
|
|
||||||
species = S.character_directory_species()
|
species = S.character_directory_species()
|
||||||
ooc_notes = S.ooc_notes
|
ooc_notes = S.ooc_notes
|
||||||
if(S.ooc_notes_style && (S.ooc_notes_favs || S.ooc_notes_likes || S.ooc_notes_maybes || S.ooc_notes_dislikes))
|
if(S.ooc_notes_style && (S.ooc_notes_favs || S.ooc_notes_likes || S.ooc_notes_maybes || S.ooc_notes_dislikes))
|
||||||
@@ -227,7 +211,6 @@ GLOBAL_DATUM(character_directory, /datum/character_directory)
|
|||||||
ooc_notes += "\n\nMAYBES\n\n[S.ooc_notes_maybes]"
|
ooc_notes += "\n\nMAYBES\n\n[S.ooc_notes_maybes]"
|
||||||
if(S.ooc_notes_dislikes)
|
if(S.ooc_notes_dislikes)
|
||||||
ooc_notes += "\n\nDISLIKES\n\n[S.ooc_notes_dislikes]"
|
ooc_notes += "\n\nDISLIKES\n\n[S.ooc_notes_dislikes]"
|
||||||
// CHOMPEdit End
|
|
||||||
flavor_text = S.desc
|
flavor_text = S.desc
|
||||||
|
|
||||||
// It's okay if we fail to find OOC notes and flavor text
|
// It's okay if we fail to find OOC notes and flavor text
|
||||||
@@ -238,7 +221,6 @@ GLOBAL_DATUM(character_directory, /datum/character_directory)
|
|||||||
directory_mobs.Add(list(list(
|
directory_mobs.Add(list(list(
|
||||||
"name" = name,
|
"name" = name,
|
||||||
"species" = species,
|
"species" = species,
|
||||||
//CHOMPEdit Start
|
|
||||||
"ooc_notes_favs" = ooc_notes_favs,
|
"ooc_notes_favs" = ooc_notes_favs,
|
||||||
"ooc_notes_likes" = ooc_notes_likes,
|
"ooc_notes_likes" = ooc_notes_likes,
|
||||||
"ooc_notes_maybes" = ooc_notes_maybes,
|
"ooc_notes_maybes" = ooc_notes_maybes,
|
||||||
@@ -247,7 +229,6 @@ GLOBAL_DATUM(character_directory, /datum/character_directory)
|
|||||||
"gendertag" = gendertag,
|
"gendertag" = gendertag,
|
||||||
"sexualitytag" = sexualitytag,
|
"sexualitytag" = sexualitytag,
|
||||||
"eventtag" = eventtag,
|
"eventtag" = eventtag,
|
||||||
//CHOMPEdit End
|
|
||||||
"ooc_notes" = ooc_notes,
|
"ooc_notes" = ooc_notes,
|
||||||
"tag" = tag,
|
"tag" = tag,
|
||||||
"erptag" = erptag,
|
"erptag" = erptag,
|
||||||
@@ -310,7 +291,6 @@ GLOBAL_DATUM(character_directory, /datum/character_directory)
|
|||||||
if(isnull(new_ad))
|
if(isnull(new_ad))
|
||||||
return
|
return
|
||||||
return set_for_mind_or_prefs(user, action, new_ad, can_set_prefs, can_set_mind)
|
return set_for_mind_or_prefs(user, action, new_ad, can_set_prefs, can_set_mind)
|
||||||
// CHOMPStation Edit Start: Directory Update
|
|
||||||
if("setGenderTag")
|
if("setGenderTag")
|
||||||
var/list/new_gendertag = tgui_input_list(usr, "Pick a new Gender tag for the character directory. This is YOUR gender, not what you prefer.", "Character Gender Tag", GLOB.char_directory_gendertags)
|
var/list/new_gendertag = tgui_input_list(usr, "Pick a new Gender tag for the character directory. This is YOUR gender, not what you prefer.", "Character Gender Tag", GLOB.char_directory_gendertags)
|
||||||
if(!new_gendertag)
|
if(!new_gendertag)
|
||||||
@@ -329,7 +309,6 @@ GLOBAL_DATUM(character_directory, /datum/character_directory)
|
|||||||
if(!new_eventtag)
|
if(!new_eventtag)
|
||||||
return
|
return
|
||||||
return set_for_mind_or_prefs(user, action, names_list[new_eventtag], can_set_prefs, can_set_mind)
|
return set_for_mind_or_prefs(user, action, names_list[new_eventtag], can_set_prefs, can_set_mind)
|
||||||
//CHOMPEdit end
|
|
||||||
|
|
||||||
/datum/character_directory/proc/set_for_mind_or_prefs(mob/user, action, new_value, can_set_prefs, can_set_mind)
|
/datum/character_directory/proc/set_for_mind_or_prefs(mob/user, action, new_value, can_set_prefs, can_set_mind)
|
||||||
can_set_prefs &&= !!user.client.prefs
|
can_set_prefs &&= !!user.client.prefs
|
||||||
@@ -362,7 +341,6 @@ GLOBAL_DATUM(character_directory, /datum/character_directory)
|
|||||||
if (can_set_mind)
|
if (can_set_mind)
|
||||||
user.mind.directory_ad = new_value
|
user.mind.directory_ad = new_value
|
||||||
return TRUE
|
return TRUE
|
||||||
//CHOMPEdit Start
|
|
||||||
if ("setEventTag")
|
if ("setEventTag")
|
||||||
if (can_set_prefs)
|
if (can_set_prefs)
|
||||||
user.client.prefs.vantag_preference = new_value
|
user.client.prefs.vantag_preference = new_value
|
||||||
@@ -378,4 +356,3 @@ GLOBAL_DATUM(character_directory, /datum/character_directory)
|
|||||||
user.client.prefs.directory_sexualitytag = new_value
|
user.client.prefs.directory_sexualitytag = new_value
|
||||||
if (can_set_mind)
|
if (can_set_mind)
|
||||||
user.mind.directory_sexualitytag = new_value
|
user.mind.directory_sexualitytag = new_value
|
||||||
//CHOMPEdit End
|
|
||||||
|
|||||||
@@ -189,13 +189,11 @@ var/global/list/emotes_by_key
|
|||||||
if(islist(sound_to_play) && length(sound_to_play))
|
if(islist(sound_to_play) && length(sound_to_play))
|
||||||
sound_to_play = pick(sound_to_play)
|
sound_to_play = pick(sound_to_play)
|
||||||
if(sound_to_play)
|
if(sound_to_play)
|
||||||
//CHOMPEdit Add - Preference for variable pitch + Extra range argument
|
|
||||||
if(istype(user, /mob))
|
if(istype(user, /mob))
|
||||||
var/mob/u = user
|
var/mob/u = user
|
||||||
playsound(user.loc, sound_to_play, use_sound["vol"], u.read_preference(/datum/preference/toggle/random_emote_pitch) && sound_vary, extrarange = use_sound["exr"], frequency = u.voice_freq, preference = sound_preferences, volume_channel = use_sound["volchannel"]) //CHOMPEdit
|
playsound(user.loc, sound_to_play, use_sound["vol"], u.read_preference(/datum/preference/toggle/random_emote_pitch) && sound_vary, extrarange = use_sound["exr"], frequency = u.voice_freq, preference = sound_preferences, volume_channel = use_sound["volchannel"])
|
||||||
else
|
else
|
||||||
playsound(user.loc, sound_to_play, use_sound["vol"], sound_vary, extrarange = use_sound["exr"], frequency = null, preference = sound_preferences, volume_channel = use_sound["volchannel"]) //VOREStation Add - Preference // CHOMPEdit: volume channel + range
|
playsound(user.loc, sound_to_play, use_sound["vol"], sound_vary, extrarange = use_sound["exr"], frequency = null, preference = sound_preferences, volume_channel = use_sound["volchannel"])
|
||||||
//CHOMPEdit End - Previous line used to be outside an if/else before the edit.
|
|
||||||
|
|
||||||
/decl/emote/proc/mob_can_use(var/mob/user)
|
/decl/emote/proc/mob_can_use(var/mob/user)
|
||||||
return istype(user) && user.stat != DEAD && (type in user.get_available_emotes())
|
return istype(user) && user.stat != DEAD && (type in user.get_available_emotes())
|
||||||
|
|||||||
@@ -536,11 +536,9 @@
|
|||||||
ooc_notes = AI.ooc_notes
|
ooc_notes = AI.ooc_notes
|
||||||
ooc_notes_likes = AI.ooc_notes_likes
|
ooc_notes_likes = AI.ooc_notes_likes
|
||||||
ooc_notes_dislikes = AI.ooc_notes_dislikes
|
ooc_notes_dislikes = AI.ooc_notes_dislikes
|
||||||
//CHOMPEdit Start
|
|
||||||
ooc_notes_favs = AI.ooc_notes_favs
|
ooc_notes_favs = AI.ooc_notes_favs
|
||||||
ooc_notes_maybes = AI.ooc_notes_maybes
|
ooc_notes_maybes = AI.ooc_notes_maybes
|
||||||
ooc_notes_style = AI.ooc_notes_style
|
ooc_notes_style = AI.ooc_notes_style
|
||||||
//CHOMPEdit End
|
|
||||||
to_chat(src, span_notice("You feel a tingle in your circuits as your systems interface with \the [initial(src.name)]."))
|
to_chat(src, span_notice("You feel a tingle in your circuits as your systems interface with \the [initial(src.name)]."))
|
||||||
if(AI.idcard.GetAccess())
|
if(AI.idcard.GetAccess())
|
||||||
botcard.access |= AI.idcard.GetAccess()
|
botcard.access |= AI.idcard.GetAccess()
|
||||||
@@ -552,11 +550,9 @@
|
|||||||
AI.ooc_notes = ooc_notes
|
AI.ooc_notes = ooc_notes
|
||||||
AI.ooc_notes_likes = ooc_notes_likes
|
AI.ooc_notes_likes = ooc_notes_likes
|
||||||
AI.ooc_notes_dislikes = ooc_notes_dislikes
|
AI.ooc_notes_dislikes = ooc_notes_dislikes
|
||||||
//CHOMPEdit Start
|
|
||||||
AI.ooc_notes_favs = ooc_notes_favs
|
AI.ooc_notes_favs = ooc_notes_favs
|
||||||
AI.ooc_notes_maybes = ooc_notes_maybes
|
AI.ooc_notes_maybes = ooc_notes_maybes
|
||||||
AI.ooc_notes_style = ooc_notes_style
|
AI.ooc_notes_style = ooc_notes_style
|
||||||
//CHOMPEdit End
|
|
||||||
paicard.forceMove(src.loc)
|
paicard.forceMove(src.loc)
|
||||||
paicard = null
|
paicard = null
|
||||||
name = initial(name)
|
name = initial(name)
|
||||||
|
|||||||
@@ -382,11 +382,9 @@
|
|||||||
blob.ooc_notes = ooc_notes
|
blob.ooc_notes = ooc_notes
|
||||||
blob.ooc_notes_likes = ooc_notes_likes
|
blob.ooc_notes_likes = ooc_notes_likes
|
||||||
blob.ooc_notes_dislikes = ooc_notes_dislikes
|
blob.ooc_notes_dislikes = ooc_notes_dislikes
|
||||||
//CHOMPEdit Start
|
|
||||||
blob.ooc_notes_favs = ooc_notes_favs
|
blob.ooc_notes_favs = ooc_notes_favs
|
||||||
blob.ooc_notes_maybes = ooc_notes_maybes
|
blob.ooc_notes_maybes = ooc_notes_maybes
|
||||||
blob.ooc_notes_style = ooc_notes_style
|
blob.ooc_notes_style = ooc_notes_style
|
||||||
//CHOMPEdit End
|
|
||||||
blob.transforming = FALSE
|
blob.transforming = FALSE
|
||||||
blob.name = name
|
blob.name = name
|
||||||
blob.real_name = real_name
|
blob.real_name = real_name
|
||||||
@@ -475,11 +473,9 @@
|
|||||||
ooc_notes = blob.ooc_notes // Updating notes incase they change them in blob form.
|
ooc_notes = blob.ooc_notes // Updating notes incase they change them in blob form.
|
||||||
ooc_notes_likes = blob.ooc_notes_likes
|
ooc_notes_likes = blob.ooc_notes_likes
|
||||||
ooc_notes_dislikes = blob.ooc_notes_dislikes
|
ooc_notes_dislikes = blob.ooc_notes_dislikes
|
||||||
//CHOMPEdit Start
|
|
||||||
ooc_notes_favs = blob.ooc_notes_favs
|
ooc_notes_favs = blob.ooc_notes_favs
|
||||||
ooc_notes_maybes = blob.ooc_notes_maybes
|
ooc_notes_maybes = blob.ooc_notes_maybes
|
||||||
ooc_notes_style = blob.ooc_notes_style
|
ooc_notes_style = blob.ooc_notes_style
|
||||||
//CHOMPEdit End
|
|
||||||
transforming = FALSE
|
transforming = FALSE
|
||||||
blob.name = "Promethean Blob"
|
blob.name = "Promethean Blob"
|
||||||
var/obj/item/hat = blob.hat
|
var/obj/item/hat = blob.hat
|
||||||
|
|||||||
@@ -477,11 +477,9 @@
|
|||||||
blob.ooc_notes = ooc_notes
|
blob.ooc_notes = ooc_notes
|
||||||
blob.ooc_notes_likes = ooc_notes_likes
|
blob.ooc_notes_likes = ooc_notes_likes
|
||||||
blob.ooc_notes_dislikes = ooc_notes_dislikes
|
blob.ooc_notes_dislikes = ooc_notes_dislikes
|
||||||
// CHOMPAdd Start
|
|
||||||
blob.ooc_notes_favs = ooc_notes_favs
|
blob.ooc_notes_favs = ooc_notes_favs
|
||||||
blob.ooc_notes_maybes = ooc_notes_maybes
|
blob.ooc_notes_maybes = ooc_notes_maybes
|
||||||
blob.ooc_notes_style = ooc_notes_style
|
blob.ooc_notes_style = ooc_notes_style
|
||||||
// CHOMPAdd End
|
|
||||||
temporary_form = blob
|
temporary_form = blob
|
||||||
var/obj/item/radio/R = null
|
var/obj/item/radio/R = null
|
||||||
if(isradio(l_ear))
|
if(isradio(l_ear))
|
||||||
@@ -609,11 +607,9 @@
|
|||||||
ooc_notes = blob.ooc_notes // Lets give the protean any updated notes from blob form.
|
ooc_notes = blob.ooc_notes // Lets give the protean any updated notes from blob form.
|
||||||
ooc_notes_likes = blob.ooc_notes_likes
|
ooc_notes_likes = blob.ooc_notes_likes
|
||||||
ooc_notes_dislikes = blob.ooc_notes_dislikes
|
ooc_notes_dislikes = blob.ooc_notes_dislikes
|
||||||
// CHOMPAdd Start
|
|
||||||
ooc_notes_favs = blob.ooc_notes_favs
|
ooc_notes_favs = blob.ooc_notes_favs
|
||||||
ooc_notes_maybes = blob.ooc_notes_maybes
|
ooc_notes_maybes = blob.ooc_notes_maybes
|
||||||
ooc_notes_style = blob.ooc_notes_style
|
ooc_notes_style = blob.ooc_notes_style
|
||||||
// CHOMPAdd End
|
|
||||||
temporary_form = null
|
temporary_form = null
|
||||||
|
|
||||||
//Transfer vore organs
|
//Transfer vore organs
|
||||||
|
|||||||
@@ -1462,6 +1462,36 @@ GLOBAL_LIST_EMPTY(damage_icon_parts) //see UpdateDamageIcon()
|
|||||||
struggle_anim_taur = FALSE
|
struggle_anim_taur = FALSE
|
||||||
update_vore_tail_sprite()
|
update_vore_tail_sprite()
|
||||||
|
|
||||||
|
/mob/living/carbon/human/proc/GetAppearanceFromPrefs(var/flavourtext, var/oocnotes)
|
||||||
|
/* Jank code that effectively creates the client's mob from save, then copies its appearance to our current mob.
|
||||||
|
Intended to be used with shapeshifter species so we don't reset their organs in doing so.*/
|
||||||
|
if(client.prefs)
|
||||||
|
var/mob/living/carbon/human/dummy/mannequin/Dummy = get_mannequin(client.ckey)
|
||||||
|
client.prefs.copy_to(Dummy)
|
||||||
|
//Important, since some sprites only work for specific species
|
||||||
|
/* Probably not needed anymore since impersonate_bodytype no longer exists
|
||||||
|
if(Dummy.species.base_species == "Promethean")
|
||||||
|
impersonate_bodytype = "Human"
|
||||||
|
else
|
||||||
|
impersonate_bodytype = Dummy.species.base_species
|
||||||
|
*/
|
||||||
|
custom_species = Dummy.custom_species
|
||||||
|
var/list/traits = dna.species_traits.Copy()
|
||||||
|
dna = Dummy.dna.Clone()
|
||||||
|
dna.species_traits.Cut()
|
||||||
|
dna.species_traits = traits.Copy()
|
||||||
|
UpdateAppearance()
|
||||||
|
icon = Dummy.icon
|
||||||
|
if(flavourtext)
|
||||||
|
flavor_texts = client.prefs.flavor_texts.Copy()
|
||||||
|
if(oocnotes)
|
||||||
|
ooc_notes = client.prefs.read_preference(/datum/preference/text/living/ooc_notes)
|
||||||
|
ooc_notes_likes = client.prefs.read_preference(/datum/preference/text/living/ooc_notes_likes)
|
||||||
|
ooc_notes_dislikes = client.prefs.read_preference(/datum/preference/text/living/ooc_notes_dislikes)
|
||||||
|
ooc_notes_favs = read_preference(/datum/preference/text/living/ooc_notes_favs)
|
||||||
|
ooc_notes_maybes = read_preference(/datum/preference/text/living/ooc_notes_maybes)
|
||||||
|
ooc_notes_style = read_preference(/datum/preference/toggle/living/ooc_notes_style)
|
||||||
|
|
||||||
//Human Overlays Indexes/////////
|
//Human Overlays Indexes/////////
|
||||||
/* CHOMPEdit - why are these undefined??
|
/* CHOMPEdit - why are these undefined??
|
||||||
# undef MUTATIONS_LAYER
|
# undef MUTATIONS_LAYER
|
||||||
|
|||||||
@@ -1475,3 +1475,39 @@
|
|||||||
drop.invisibility = 0
|
drop.invisibility = 0
|
||||||
//else
|
//else
|
||||||
// come up with drips for other mobs someday
|
// come up with drips for other mobs someday
|
||||||
|
|
||||||
|
/mob/living/proc/set_metainfo_favs(var/mob/user, var/reopen = TRUE)
|
||||||
|
if(user != src)
|
||||||
|
return
|
||||||
|
var/new_metadata = strip_html_simple(tgui_input_text(user, "Enter any information you'd like others to see relating to your FAVOURITE roleplay preferences. This will not be saved permanently unless you click save in the OOC notes panel! Type \"!clear\" to empty.", "Game Preference" , html_decode(ooc_notes_favs), multiline = TRUE, prevent_enter = TRUE))
|
||||||
|
if(new_metadata && CanUseTopic(user))
|
||||||
|
if(new_metadata == "!clear")
|
||||||
|
new_metadata = ""
|
||||||
|
ooc_notes_favs = new_metadata
|
||||||
|
client.prefs.update_preference_by_type(/datum/preference/text/living/ooc_notes_favs, new_metadata)
|
||||||
|
to_chat(user, span_filter_notice("OOC note favs have been updated. Don't forget to save!"))
|
||||||
|
log_admin("[key_name(user)] updated their OOC note favs mid-round.")
|
||||||
|
if(reopen)
|
||||||
|
ooc_notes_window(user)
|
||||||
|
|
||||||
|
/mob/living/proc/set_metainfo_maybes(var/mob/user, var/reopen = TRUE)
|
||||||
|
if(user != src)
|
||||||
|
return
|
||||||
|
var/new_metadata = strip_html_simple(tgui_input_text(user, "Enter any information you'd like others to see relating to your MAYBE roleplay preferences. This will not be saved permanently unless you click save in the OOC notes panel! Type \"!clear\" to empty.", "Game Preference" , html_decode(ooc_notes_maybes), multiline = TRUE, prevent_enter = TRUE))
|
||||||
|
if(new_metadata && CanUseTopic(user))
|
||||||
|
if(new_metadata == "!clear")
|
||||||
|
new_metadata = ""
|
||||||
|
ooc_notes_maybes = new_metadata
|
||||||
|
client.prefs.update_preference_by_type(/datum/preference/text/living/ooc_notes_maybes, new_metadata)
|
||||||
|
to_chat(user, span_filter_notice("OOC note maybes have been updated. Don't forget to save!"))
|
||||||
|
log_admin("[key_name(user)] updated their OOC note maybes mid-round.")
|
||||||
|
if(reopen)
|
||||||
|
ooc_notes_window(user)
|
||||||
|
|
||||||
|
/mob/living/proc/set_metainfo_ooc_style(var/mob/user, var/reopen = TRUE)
|
||||||
|
if(user != src)
|
||||||
|
return
|
||||||
|
ooc_notes_style = !ooc_notes_style
|
||||||
|
client.prefs.update_preference_by_type(/datum/preference/toggle/living/ooc_notes_style, ooc_notes_style)
|
||||||
|
if(reopen)
|
||||||
|
ooc_notes_window(user)
|
||||||
|
|||||||
@@ -112,3 +112,7 @@
|
|||||||
|
|
||||||
var/mob/living/tf_form // Shapeshifter shenanigans
|
var/mob/living/tf_form // Shapeshifter shenanigans
|
||||||
var/tf_form_ckey
|
var/tf_form_ckey
|
||||||
|
|
||||||
|
var/ooc_notes_favs = null
|
||||||
|
var/ooc_notes_maybes = null
|
||||||
|
var/ooc_notes_style = FALSE
|
||||||
|
|||||||
@@ -96,7 +96,6 @@
|
|||||||
if(!ooc_notes)
|
if(!ooc_notes)
|
||||||
return
|
return
|
||||||
var/msg = ooc_notes
|
var/msg = ooc_notes
|
||||||
//CHOMPEdit Start
|
|
||||||
if(ooc_notes_style && (ooc_notes_favs || ooc_notes_likes || ooc_notes_maybes || ooc_notes_dislikes) && !user.client?.prefs?.read_preference(/datum/preference/toggle/vchat_enable)) // Oldchat hates proper formatting
|
if(ooc_notes_style && (ooc_notes_favs || ooc_notes_likes || ooc_notes_maybes || ooc_notes_dislikes) && !user.client?.prefs?.read_preference(/datum/preference/toggle/vchat_enable)) // Oldchat hates proper formatting
|
||||||
msg += "<br><br>"
|
msg += "<br><br>"
|
||||||
msg += "<table><tr>"
|
msg += "<table><tr>"
|
||||||
@@ -140,8 +139,6 @@
|
|||||||
if(ooc_notes_dislikes)
|
if(ooc_notes_dislikes)
|
||||||
msg += "<br><br><b>[span_red("DISLIKES")]</b><br>[ooc_notes_dislikes]"
|
msg += "<br><br><b>[span_red("DISLIKES")]</b><br>[ooc_notes_dislikes]"
|
||||||
to_chat(user, span_chatexport("<b>[src]'s Metainfo:</b><br>[msg]"))
|
to_chat(user, span_chatexport("<b>[src]'s Metainfo:</b><br>[msg]"))
|
||||||
//CHOMPEdit End
|
|
||||||
//ChompEDIT END - Removal of usr
|
|
||||||
/mob/living/verb/set_custom_link()
|
/mob/living/verb/set_custom_link()
|
||||||
set name = "Set Custom Link"
|
set name = "Set Custom Link"
|
||||||
set desc = "Set a custom link to show up with your examine text."
|
set desc = "Set a custom link to show up with your examine text."
|
||||||
|
|||||||
@@ -3,14 +3,27 @@
|
|||||||
return
|
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.
|
//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", "<BR>")
|
var/notes = replacetext(html_decode(src.ooc_notes), "\n", "<BR>")
|
||||||
|
var/favs = replacetext(html_decode(src.ooc_notes_favs), "\n", "<BR>")
|
||||||
var/likes = replacetext(html_decode(src.ooc_notes_likes), "\n", "<BR>")
|
var/likes = replacetext(html_decode(src.ooc_notes_likes), "\n", "<BR>")
|
||||||
|
var/maybes = replacetext(html_decode(src.ooc_notes_maybes), "\n", "<BR>")
|
||||||
var/dislikes = replacetext(html_decode(src.ooc_notes_dislikes), "\n", "<BR>")
|
var/dislikes = replacetext(html_decode(src.ooc_notes_dislikes), "\n", "<BR>")
|
||||||
|
var/style = src.ooc_notes_style
|
||||||
var/dat = {"
|
var/dat = {"
|
||||||
<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">
|
<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">
|
||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<style>
|
<style>
|
||||||
|
* {
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
.collapsible {
|
.collapsible {
|
||||||
|
background-color: #1a1e3f;
|
||||||
|
color: white;
|
||||||
|
width: 100%;
|
||||||
|
text-align: left;
|
||||||
|
font-size: 20px;
|
||||||
|
}
|
||||||
|
.collapsible_a {
|
||||||
background-color: #263d20;
|
background-color: #263d20;
|
||||||
color: white;
|
color: white;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
@@ -18,6 +31,13 @@
|
|||||||
font-size: 20px;
|
font-size: 20px;
|
||||||
}
|
}
|
||||||
.collapsible_b {
|
.collapsible_b {
|
||||||
|
background-color: #3e3f1a;
|
||||||
|
color: white;
|
||||||
|
width: 100%;
|
||||||
|
text-align: left;
|
||||||
|
font-size: 20px;
|
||||||
|
}
|
||||||
|
.collapsible_c {
|
||||||
background-color: #3f1a1a;
|
background-color: #3f1a1a;
|
||||||
color: white;
|
color: white;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
@@ -29,6 +49,17 @@
|
|||||||
width: 100%;
|
width: 100%;
|
||||||
background-color: #363636;
|
background-color: #363636;
|
||||||
}
|
}
|
||||||
|
.column {
|
||||||
|
verflow-wrap: break-word;
|
||||||
|
float: left;
|
||||||
|
width: 25%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.row:after {
|
||||||
|
content: "";
|
||||||
|
display: table;
|
||||||
|
clear: both;
|
||||||
|
}
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
</head>"}
|
</head>"}
|
||||||
@@ -44,8 +75,21 @@
|
|||||||
<td class="button">
|
<td class="button">
|
||||||
<a href='byond://?src=\ref[src];print_ooc_notes_chat=1' class='button'>Print to chat</a>
|
<a href='byond://?src=\ref[src];print_ooc_notes_chat=1' class='button'>Print to chat</a>
|
||||||
</td>
|
</td>
|
||||||
</table>
|
|
||||||
"}
|
"}
|
||||||
|
if(user == src)
|
||||||
|
if(style)
|
||||||
|
dat += {"
|
||||||
|
<td class="button">
|
||||||
|
<a href='byond://?src=\ref[src];set_metainfo_ooc_style=1' class='button'>Lists</a>
|
||||||
|
</td>
|
||||||
|
"}
|
||||||
|
else
|
||||||
|
dat += {"
|
||||||
|
<td class="button">
|
||||||
|
<a href='byond://?src=\ref[src];set_metainfo_ooc_style=1' class='button'>Fields</a>
|
||||||
|
</td>
|
||||||
|
"}
|
||||||
|
dat += {"</table>"}
|
||||||
|
|
||||||
if(user == src)
|
if(user == src)
|
||||||
dat += {"
|
dat += {"
|
||||||
@@ -59,12 +103,36 @@
|
|||||||
|
|
||||||
dat += {"
|
dat += {"
|
||||||
<br>
|
<br>
|
||||||
|
<div class="content">
|
||||||
<p>[notes]</p>
|
<p>[notes]</p>
|
||||||
|
</div>
|
||||||
|
<br>
|
||||||
<head>
|
<head>
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">"}
|
<meta name="viewport" content="width=device-width, initial-scale=1">"}
|
||||||
|
if(style)
|
||||||
|
dat += {"<div class='row'><div class='column'>"}
|
||||||
|
if(favs || user == src)
|
||||||
|
dat += "<div class=\"collapsible\">" + span_bold("<center>Favourites</center>") + "</div>"
|
||||||
|
if(user == src)
|
||||||
|
dat += {"
|
||||||
|
<table>
|
||||||
|
<td class="button">
|
||||||
|
<a href='byond://?src=\ref[src];edit_ooc_note_favs=1' class='button'>Edit</a>
|
||||||
|
</td>
|
||||||
|
</table>
|
||||||
|
"}
|
||||||
|
|
||||||
|
if(favs)
|
||||||
|
dat += {"
|
||||||
|
<div class="content">
|
||||||
|
<p>[favs]</p>
|
||||||
|
</div>"}
|
||||||
|
|
||||||
|
if(style)
|
||||||
|
dat += {"</div>"}
|
||||||
|
dat += {"<div class='column'>"}
|
||||||
if(likes || user == src)
|
if(likes || user == src)
|
||||||
dat += {"<div class="collapsible"><b><center>Likes</center></b></div>"}
|
dat += "<div class=\"collapsible_a\">" + span_bold("<center>Likes</center>") + "</div>"
|
||||||
if(user == src)
|
if(user == src)
|
||||||
dat += {"
|
dat += {"
|
||||||
<table>
|
<table>
|
||||||
@@ -79,10 +147,34 @@
|
|||||||
<div class="content">
|
<div class="content">
|
||||||
<p>[likes]</p>
|
<p>[likes]</p>
|
||||||
</div>"}
|
</div>"}
|
||||||
if(dislikes || user == src)
|
|
||||||
|
if(style)
|
||||||
|
dat += {"</div>"}
|
||||||
|
dat += {"<div class='column'>"}
|
||||||
|
if(maybes || user == src)
|
||||||
|
dat += "<div class=\"collapsible_b\">" + span_bold("<center>Maybes</center>") + "</div>"
|
||||||
|
if(user == src)
|
||||||
dat += {"
|
dat += {"
|
||||||
<br>
|
<table>
|
||||||
<div class="collapsible_b"><b><center>Dislikes</center></b></div>"}
|
<td class="button">
|
||||||
|
<a href='byond://?src=\ref[src];edit_ooc_note_maybes=1' class='button'>Edit</a>
|
||||||
|
</td>
|
||||||
|
</table>
|
||||||
|
"}
|
||||||
|
|
||||||
|
if(maybes)
|
||||||
|
dat += {"
|
||||||
|
<div class="content">
|
||||||
|
<p>[maybes]</p>
|
||||||
|
</div>
|
||||||
|
"}
|
||||||
|
|
||||||
|
|
||||||
|
if(style)
|
||||||
|
dat += {"</div>"}
|
||||||
|
dat += {"<div class='column'>"}
|
||||||
|
if(dislikes || user == src)
|
||||||
|
dat += "<div class=\"collapsible_c\">" + span_bold("<center>Dislikes</center>") + "</div>"
|
||||||
if(user == src)
|
if(user == src)
|
||||||
dat += {"
|
dat += {"
|
||||||
<table>
|
<table>
|
||||||
@@ -97,9 +189,11 @@
|
|||||||
<div class="content">
|
<div class="content">
|
||||||
<p>[dislikes]</p>
|
<p>[dislikes]</p>
|
||||||
</div>
|
</div>
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
"}
|
"}
|
||||||
|
if(style)
|
||||||
|
dat += {"</div></div>"}
|
||||||
|
dat+= {" </body>
|
||||||
|
</html>"}
|
||||||
|
|
||||||
var/key = "ooc_notes[src.real_name]" //Generate a unique key so we can make unique clones of windows, that way we can have more than one
|
var/key = "ooc_notes[src.real_name]" //Generate a unique key so we can make unique clones of windows, that way we can have more than one
|
||||||
if(src.ckey)
|
if(src.ckey)
|
||||||
|
|||||||
@@ -218,11 +218,9 @@ var/list/ai_verbs_default = list(
|
|||||||
ooc_notes = client.prefs.read_preference(/datum/preference/text/living/ooc_notes)
|
ooc_notes = client.prefs.read_preference(/datum/preference/text/living/ooc_notes)
|
||||||
ooc_notes_likes = client.prefs.read_preference(/datum/preference/text/living/ooc_notes_likes)
|
ooc_notes_likes = client.prefs.read_preference(/datum/preference/text/living/ooc_notes_likes)
|
||||||
ooc_notes_dislikes = client.prefs.read_preference(/datum/preference/text/living/ooc_notes_dislikes)
|
ooc_notes_dislikes = client.prefs.read_preference(/datum/preference/text/living/ooc_notes_dislikes)
|
||||||
//CHOMPAdd Start
|
|
||||||
ooc_notes_favs = read_preference(/datum/preference/text/living/ooc_notes_favs)
|
ooc_notes_favs = read_preference(/datum/preference/text/living/ooc_notes_favs)
|
||||||
ooc_notes_maybes = read_preference(/datum/preference/text/living/ooc_notes_maybes)
|
ooc_notes_maybes = read_preference(/datum/preference/text/living/ooc_notes_maybes)
|
||||||
ooc_notes_style = read_preference(/datum/preference/toggle/living/ooc_notes_style)
|
ooc_notes_style = read_preference(/datum/preference/toggle/living/ooc_notes_style)
|
||||||
//CHOMPAdd End
|
|
||||||
private_notes = client.prefs.read_preference(/datum/preference/text/living/private_notes)
|
private_notes = client.prefs.read_preference(/datum/preference/text/living/private_notes)
|
||||||
|
|
||||||
if (malf && !(mind in malf.current_antagonists))
|
if (malf && !(mind in malf.current_antagonists))
|
||||||
|
|||||||
@@ -155,11 +155,9 @@
|
|||||||
ooc_notes = client.prefs.read_preference(/datum/preference/text/living/ooc_notes)
|
ooc_notes = client.prefs.read_preference(/datum/preference/text/living/ooc_notes)
|
||||||
ooc_notes_likes = client.prefs.read_preference(/datum/preference/text/living/ooc_notes_likes)
|
ooc_notes_likes = client.prefs.read_preference(/datum/preference/text/living/ooc_notes_likes)
|
||||||
ooc_notes_dislikes = client.prefs.read_preference(/datum/preference/text/living/ooc_notes_dislikes)
|
ooc_notes_dislikes = client.prefs.read_preference(/datum/preference/text/living/ooc_notes_dislikes)
|
||||||
//CHOMPAdd Start
|
|
||||||
ooc_notes_favs = read_preference(/datum/preference/text/living/ooc_notes_favs)
|
ooc_notes_favs = read_preference(/datum/preference/text/living/ooc_notes_favs)
|
||||||
ooc_notes_maybes = read_preference(/datum/preference/text/living/ooc_notes_maybes)
|
ooc_notes_maybes = read_preference(/datum/preference/text/living/ooc_notes_maybes)
|
||||||
ooc_notes_style = read_preference(/datum/preference/toggle/living/ooc_notes_style)
|
ooc_notes_style = read_preference(/datum/preference/toggle/living/ooc_notes_style)
|
||||||
//CHOMPAdd End
|
|
||||||
private_notes = client.prefs.read_preference(/datum/preference/text/living/private_notes)
|
private_notes = client.prefs.read_preference(/datum/preference/text/living/private_notes)
|
||||||
|
|
||||||
src << sound('sound/effects/pai_login.ogg', volume = 75) //VOREStation Add
|
src << sound('sound/effects/pai_login.ogg', volume = 75) //VOREStation Add
|
||||||
|
|||||||
@@ -413,11 +413,9 @@
|
|||||||
ooc_notes = client.prefs.read_preference(/datum/preference/text/living/ooc_notes)
|
ooc_notes = client.prefs.read_preference(/datum/preference/text/living/ooc_notes)
|
||||||
ooc_notes_likes = client.prefs.read_preference(/datum/preference/text/living/ooc_notes_likes)
|
ooc_notes_likes = client.prefs.read_preference(/datum/preference/text/living/ooc_notes_likes)
|
||||||
ooc_notes_dislikes = client.prefs.read_preference(/datum/preference/text/living/ooc_notes_dislikes)
|
ooc_notes_dislikes = client.prefs.read_preference(/datum/preference/text/living/ooc_notes_dislikes)
|
||||||
//CHOMPAdd Start
|
|
||||||
ooc_notes_favs = read_preference(/datum/preference/text/living/ooc_notes_favs)
|
ooc_notes_favs = read_preference(/datum/preference/text/living/ooc_notes_favs)
|
||||||
ooc_notes_maybes = read_preference(/datum/preference/text/living/ooc_notes_maybes)
|
ooc_notes_maybes = read_preference(/datum/preference/text/living/ooc_notes_maybes)
|
||||||
ooc_notes_style = read_preference(/datum/preference/toggle/living/ooc_notes_style)
|
ooc_notes_style = read_preference(/datum/preference/toggle/living/ooc_notes_style)
|
||||||
//CHOMPAdd End
|
|
||||||
private_notes = client.prefs.read_preference(/datum/preference/text/living/private_notes)
|
private_notes = client.prefs.read_preference(/datum/preference/text/living/private_notes)
|
||||||
custom_link = client.prefs.custom_link
|
custom_link = client.prefs.custom_link
|
||||||
|
|
||||||
|
|||||||
@@ -15,18 +15,16 @@
|
|||||||
var/pred_ooc_notes
|
var/pred_ooc_notes
|
||||||
var/pred_ooc_likes
|
var/pred_ooc_likes
|
||||||
var/pred_ooc_dislikes
|
var/pred_ooc_dislikes
|
||||||
//CHOMPEdit Start
|
|
||||||
var/pred_ooc_favs
|
var/pred_ooc_favs
|
||||||
var/pred_ooc_maybes
|
var/pred_ooc_maybes
|
||||||
var/pred_ooc_style
|
var/pred_ooc_style
|
||||||
var/prey_ooc_favs
|
var/prey_ooc_favs
|
||||||
var/prey_ooc_maybes
|
var/prey_ooc_maybes
|
||||||
var/prey_ooc_style
|
var/prey_ooc_style
|
||||||
//CHOMPEdit End
|
|
||||||
var/prey_ooc_notes
|
var/prey_ooc_notes
|
||||||
var/prey_ooc_likes
|
var/prey_ooc_likes
|
||||||
var/prey_ooc_dislikes
|
var/prey_ooc_dislikes
|
||||||
var/was_mob = FALSE //CHOMPAdd - tracks if the dominated being was a mob
|
var/was_mob
|
||||||
|
|
||||||
/mob/living/dominated_brain/Initialize(mapload, var/mob/living/pred, preyname, var/mob/living/prey)
|
/mob/living/dominated_brain/Initialize(mapload, var/mob/living/pred, preyname, var/mob/living/prey)
|
||||||
prey_name = preyname
|
prey_name = preyname
|
||||||
@@ -121,11 +119,9 @@
|
|||||||
prey_goes_here.ooc_notes = prey_ooc_notes
|
prey_goes_here.ooc_notes = prey_ooc_notes
|
||||||
prey_goes_here.ooc_notes_likes = prey_ooc_likes
|
prey_goes_here.ooc_notes_likes = prey_ooc_likes
|
||||||
prey_goes_here.ooc_notes_dislikes = prey_ooc_dislikes
|
prey_goes_here.ooc_notes_dislikes = prey_ooc_dislikes
|
||||||
//CHOMPEdit Start
|
|
||||||
prey_goes_here.ooc_notes_favs = prey_ooc_favs
|
prey_goes_here.ooc_notes_favs = prey_ooc_favs
|
||||||
prey_goes_here.ooc_notes_maybes = prey_ooc_maybes
|
prey_goes_here.ooc_notes_maybes = prey_ooc_maybes
|
||||||
prey_goes_here.ooc_notes_style = prey_ooc_style
|
prey_goes_here.ooc_notes_style = prey_ooc_style
|
||||||
//CHOMPEdit End
|
|
||||||
add_verb(prey_goes_here, /mob/living/dominated_brain/proc/cease_this_foolishness)
|
add_verb(prey_goes_here, /mob/living/dominated_brain/proc/cease_this_foolishness)
|
||||||
|
|
||||||
|
|
||||||
@@ -142,11 +138,9 @@
|
|||||||
prey_goes_here.ooc_notes = prey_ooc_notes
|
prey_goes_here.ooc_notes = prey_ooc_notes
|
||||||
prey_goes_here.ooc_notes_likes = prey_ooc_likes
|
prey_goes_here.ooc_notes_likes = prey_ooc_likes
|
||||||
prey_goes_here.ooc_notes_dislikes = prey_ooc_dislikes
|
prey_goes_here.ooc_notes_dislikes = prey_ooc_dislikes
|
||||||
//CHOMPEdit Start
|
|
||||||
prey_goes_here.ooc_notes_favs = prey_ooc_favs
|
prey_goes_here.ooc_notes_favs = prey_ooc_favs
|
||||||
prey_goes_here.ooc_notes_maybes = prey_ooc_maybes
|
prey_goes_here.ooc_notes_maybes = prey_ooc_maybes
|
||||||
prey_goes_here.ooc_notes_style = prey_ooc_style
|
prey_goes_here.ooc_notes_style = prey_ooc_style
|
||||||
//CHOMPEdit End
|
|
||||||
|
|
||||||
///////////////////
|
///////////////////
|
||||||
|
|
||||||
@@ -159,11 +153,9 @@
|
|||||||
pred_body.ooc_notes = pred_ooc_notes
|
pred_body.ooc_notes = pred_ooc_notes
|
||||||
pred_body.ooc_notes_likes = pred_ooc_likes
|
pred_body.ooc_notes_likes = pred_ooc_likes
|
||||||
pred_body.ooc_notes_dislikes = pred_ooc_dislikes
|
pred_body.ooc_notes_dislikes = pred_ooc_dislikes
|
||||||
//CHOMPEdit Start
|
|
||||||
pred_body.ooc_notes_favs = pred_ooc_favs
|
pred_body.ooc_notes_favs = pred_ooc_favs
|
||||||
pred_body.ooc_notes_maybes = pred_ooc_maybes
|
pred_body.ooc_notes_maybes = pred_ooc_maybes
|
||||||
pred_body.ooc_notes_style = pred_ooc_style
|
pred_body.ooc_notes_style = pred_ooc_style
|
||||||
//CHOMPEdit End
|
|
||||||
log_and_message_admins("is now controlled by [pred_body.ckey]. They were restored to control through prey domination, and had been controlled by [prey_ckey].", pred_body)
|
log_and_message_admins("is now controlled by [pred_body.ckey]. They were restored to control through prey domination, and had been controlled by [prey_ckey].", pred_body)
|
||||||
pred_body.absorb_langs()
|
pred_body.absorb_langs()
|
||||||
pred_body.prey_controlled = FALSE
|
pred_body.prey_controlled = FALSE
|
||||||
@@ -197,7 +189,7 @@
|
|||||||
set category = "Abilities.Vore"
|
set category = "Abilities.Vore"
|
||||||
set name = "Dominate Predator"
|
set name = "Dominate Predator"
|
||||||
set desc = "Connect to and dominate the brain of your predator."
|
set desc = "Connect to and dominate the brain of your predator."
|
||||||
var/is_mob = FALSE //CHOMPAdd - tracks if character is a non player mob
|
var/is_mob = FALSE // - tracks if character is a non player mob TODO: Add
|
||||||
|
|
||||||
var/mob/living/pred
|
var/mob/living/pred
|
||||||
var/mob/living/prey = src
|
var/mob/living/prey = src
|
||||||
@@ -240,7 +232,6 @@
|
|||||||
to_chat(prey, span_notice("You attempt to exert your control over \the [pred]..."))
|
to_chat(prey, span_notice("You attempt to exert your control over \the [pred]..."))
|
||||||
log_admin("[key_name_admin(prey)] attempted to take over [pred].")
|
log_admin("[key_name_admin(prey)] attempted to take over [pred].")
|
||||||
|
|
||||||
//CHOMPEdit start - Ability to use dominate pred trait against whitelisted mobs
|
|
||||||
if(pred.ckey) //check if body is assigned to another player currently
|
if(pred.ckey) //check if body is assigned to another player currently
|
||||||
if(tgui_alert(pred, "\The [prey] has elected to attempt to take control of you. Is this something you will allow to happen?", "Allow Prey Domination",list("No","Yes")) != "Yes")
|
if(tgui_alert(pred, "\The [prey] has elected to attempt to take control of you. Is this something you will allow to happen?", "Allow Prey Domination",list("No","Yes")) != "Yes")
|
||||||
to_chat(prey, span_warning("\The [pred] declined your request for control."))
|
to_chat(prey, span_warning("\The [pred] declined your request for control."))
|
||||||
@@ -254,7 +245,6 @@
|
|||||||
else //at this point we end up with a mob
|
else //at this point we end up with a mob
|
||||||
pred.ckey = "DOMMOB[rand(100000,999999)]" //this is cursed, but it does work and is cleaned up after
|
pred.ckey = "DOMMOB[rand(100000,999999)]" //this is cursed, but it does work and is cleaned up after
|
||||||
is_mob = TRUE
|
is_mob = TRUE
|
||||||
//CHOMPEdit end
|
|
||||||
|
|
||||||
to_chat(pred, span_warning("You can feel the will of another overwriting your own, control of your body being sapped away from you..."))
|
to_chat(pred, span_warning("You can feel the will of another overwriting your own, control of your body being sapped away from you..."))
|
||||||
to_chat(prey, span_warning("You can feel the will of your host diminishing as you exert your will over them!"))
|
to_chat(prey, span_warning("You can feel the will of your host diminishing as you exert your will over them!"))
|
||||||
@@ -280,14 +270,12 @@
|
|||||||
pred_brain.prey_ooc_notes = prey.ooc_notes
|
pred_brain.prey_ooc_notes = prey.ooc_notes
|
||||||
pred_brain.prey_ooc_likes = prey.ooc_notes_likes
|
pred_brain.prey_ooc_likes = prey.ooc_notes_likes
|
||||||
pred_brain.prey_ooc_dislikes = prey.ooc_notes_dislikes
|
pred_brain.prey_ooc_dislikes = prey.ooc_notes_dislikes
|
||||||
//CHOMPEdit Start
|
|
||||||
pred_brain.prey_ooc_favs = prey.ooc_notes_favs
|
pred_brain.prey_ooc_favs = prey.ooc_notes_favs
|
||||||
pred_brain.prey_ooc_maybes = prey.ooc_notes_maybes
|
pred_brain.prey_ooc_maybes = prey.ooc_notes_maybes
|
||||||
pred_brain.prey_ooc_style = prey.ooc_notes_style
|
pred_brain.prey_ooc_style = prey.ooc_notes_style
|
||||||
pred_brain.pred_ooc_favs = pred.ooc_notes_favs
|
pred_brain.pred_ooc_favs = pred.ooc_notes_favs
|
||||||
pred_brain.pred_ooc_maybes = pred.ooc_notes_maybes
|
pred_brain.pred_ooc_maybes = pred.ooc_notes_maybes
|
||||||
pred_brain.pred_ooc_style = pred.ooc_notes_style
|
pred_brain.pred_ooc_style = pred.ooc_notes_style
|
||||||
//CHOMPEdit End
|
|
||||||
pred_brain.pred_ooc_notes = pred.ooc_notes
|
pred_brain.pred_ooc_notes = pred.ooc_notes
|
||||||
pred_brain.pred_ooc_likes = pred.ooc_notes_likes
|
pred_brain.pred_ooc_likes = pred.ooc_notes_likes
|
||||||
pred_brain.pred_ooc_dislikes = pred.ooc_notes_dislikes
|
pred_brain.pred_ooc_dislikes = pred.ooc_notes_dislikes
|
||||||
@@ -303,11 +291,9 @@
|
|||||||
pred.ooc_notes = pred_brain.prey_ooc_notes
|
pred.ooc_notes = pred_brain.prey_ooc_notes
|
||||||
pred.ooc_notes_likes = pred_brain.prey_ooc_likes
|
pred.ooc_notes_likes = pred_brain.prey_ooc_likes
|
||||||
pred.ooc_notes_dislikes = pred_brain.prey_ooc_dislikes
|
pred.ooc_notes_dislikes = pred_brain.prey_ooc_dislikes
|
||||||
//CHOMPEdit Start
|
|
||||||
pred.ooc_notes_favs = pred_brain.prey_ooc_favs
|
pred.ooc_notes_favs = pred_brain.prey_ooc_favs
|
||||||
pred.ooc_notes_maybes = pred_brain.prey_ooc_maybes
|
pred.ooc_notes_maybes = pred_brain.prey_ooc_maybes
|
||||||
pred.ooc_notes_style = pred_brain.prey_ooc_style
|
pred.ooc_notes_style = pred_brain.prey_ooc_style
|
||||||
//CHOMPEdit End
|
|
||||||
|
|
||||||
add_verb(pred, /mob/proc/release_predator)
|
add_verb(pred, /mob/proc/release_predator)
|
||||||
|
|
||||||
@@ -320,10 +306,8 @@
|
|||||||
if(delete_source)
|
if(delete_source)
|
||||||
qdel(prey)
|
qdel(prey)
|
||||||
|
|
||||||
//CHOMPEdit start - extra variable for mobs that assist cleanup
|
|
||||||
if(is_mob == 1)
|
if(is_mob == 1)
|
||||||
pred_brain.was_mob = TRUE
|
pred_brain.was_mob = TRUE
|
||||||
//CHOMPEdit End
|
|
||||||
|
|
||||||
/mob/proc/release_predator()
|
/mob/proc/release_predator()
|
||||||
set category = "Abilities.Vore"
|
set category = "Abilities.Vore"
|
||||||
@@ -336,13 +320,13 @@
|
|||||||
if(db.ckey == db.pred_ckey)
|
if(db.ckey == db.pred_ckey)
|
||||||
to_chat(src, span_notice("You ease off of your control, releasing \the [db]."))
|
to_chat(src, span_notice("You ease off of your control, releasing \the [db]."))
|
||||||
to_chat(db, span_notice("You feel the alien presence fade, and restore control of your body to you of their own will..."))
|
to_chat(db, span_notice("You feel the alien presence fade, and restore control of your body to you of their own will..."))
|
||||||
if(db.was_mob) //CHOMPEdit start - clean up if the dominated body was a playerless mob
|
if(db.was_mob)
|
||||||
db.pred_ckey = null
|
db.pred_ckey = null
|
||||||
db.ckey = null
|
db.ckey = null
|
||||||
db.restore_control()
|
db.restore_control()
|
||||||
else
|
else
|
||||||
db.restore_control()
|
db.restore_control()
|
||||||
return //CHOMPEdit end
|
return
|
||||||
else
|
else
|
||||||
continue
|
continue
|
||||||
to_chat(src, span_danger("You haven't been taken over, and shouldn't have this verb. I'll clean that up for you. Report this on the github, it is a bug."))
|
to_chat(src, span_danger("You haven't been taken over, and shouldn't have this verb. I'll clean that up for you. Report this on the github, it is a bug."))
|
||||||
@@ -379,7 +363,6 @@
|
|||||||
possible_mobs |= L
|
possible_mobs |= L
|
||||||
else
|
else
|
||||||
continue
|
continue
|
||||||
//CHOMPEdit Start - Let dominate prey work on grabbed people
|
|
||||||
var/obj/item/grab/G = src.get_active_hand()
|
var/obj/item/grab/G = src.get_active_hand()
|
||||||
if(istype(G))
|
if(istype(G))
|
||||||
var/mob/living/L = G.affecting
|
var/mob/living/L = G.affecting
|
||||||
@@ -388,7 +371,6 @@
|
|||||||
possible_mobs |= "~~[L.name]~~ (reinforce grab first)"
|
possible_mobs |= "~~[L.name]~~ (reinforce grab first)"
|
||||||
else
|
else
|
||||||
possible_mobs |= L
|
possible_mobs |= L
|
||||||
//CHOMPEdit End
|
|
||||||
if(!possible_mobs)
|
if(!possible_mobs)
|
||||||
to_chat(src, span_warning("There are no valid targets inside of you."))
|
to_chat(src, span_warning("There are no valid targets inside of you."))
|
||||||
return
|
return
|
||||||
@@ -396,11 +378,9 @@
|
|||||||
if(!input)
|
if(!input)
|
||||||
return
|
return
|
||||||
var/mob/living/M = input
|
var/mob/living/M = input
|
||||||
//CHOMPEdit Start - Let dominate prey work on grabbed people
|
|
||||||
if(!istype(M))
|
if(!istype(M))
|
||||||
to_chat(src, span_warning("You must have a tighter grip to dominate this creature."))
|
to_chat(src, span_warning("You must have a tighter grip to dominate this creature."))
|
||||||
return
|
return
|
||||||
//CHOMPEdit End
|
|
||||||
if(!M.allow_mind_transfer) //check if the dominated mob pref is enabled
|
if(!M.allow_mind_transfer) //check if the dominated mob pref is enabled
|
||||||
to_chat(src, span_warning("[M] is unable to be dominated."))
|
to_chat(src, span_warning("[M] is unable to be dominated."))
|
||||||
return
|
return
|
||||||
@@ -417,10 +397,8 @@
|
|||||||
to_chat(M, span_warning("You can feel the will of another pulling you away from your body..."))
|
to_chat(M, span_warning("You can feel the will of another pulling you away from your body..."))
|
||||||
to_chat(src, span_warning("You can feel the will of your prey diminishing as you gather them!"))
|
to_chat(src, span_warning("You can feel the will of your prey diminishing as you gather them!"))
|
||||||
|
|
||||||
//CHOMPEdit Start - Let dominate prey work on grabbed people
|
|
||||||
if(istype(G) && M == G.affecting)
|
if(istype(G) && M == G.affecting)
|
||||||
src.visible_message(span_danger("[src] seems to be doing something to [M], resulting in [M]'s body looking increasingly drowsy with every passing moment!"))
|
src.visible_message(span_danger("[src] seems to be doing something to [M], resulting in [M]'s body looking increasingly drowsy with every passing moment!"))
|
||||||
//CHOMPEdit End
|
|
||||||
if(!do_after(src, 10 SECONDS, exclusive = TRUE))
|
if(!do_after(src, 10 SECONDS, exclusive = TRUE))
|
||||||
to_chat(M, span_notice("The alien presence fades, and you are left along in your body..."))
|
to_chat(M, span_notice("The alien presence fades, and you are left along in your body..."))
|
||||||
to_chat(src, span_notice("Your attempt to gather [M]'s mind has been interrupted."))
|
to_chat(src, span_notice("Your attempt to gather [M]'s mind has been interrupted."))
|
||||||
@@ -445,14 +423,12 @@
|
|||||||
db.ooc_notes = M.ooc_notes
|
db.ooc_notes = M.ooc_notes
|
||||||
db.ooc_notes_likes = M.ooc_notes_likes
|
db.ooc_notes_likes = M.ooc_notes_likes
|
||||||
db.ooc_notes_dislikes = M.ooc_notes_dislikes
|
db.ooc_notes_dislikes = M.ooc_notes_dislikes
|
||||||
//CHOMPEdit Start
|
|
||||||
db.ooc_notes_favs = M.ooc_notes_favs
|
db.ooc_notes_favs = M.ooc_notes_favs
|
||||||
db.ooc_notes_maybes = M.ooc_notes_maybes
|
db.ooc_notes_maybes = M.ooc_notes_maybes
|
||||||
db.ooc_notes_style = M.ooc_notes_style
|
db.ooc_notes_style = M.ooc_notes_style
|
||||||
db.prey_ooc_favs = M.ooc_notes_favs
|
db.prey_ooc_favs = M.ooc_notes_favs
|
||||||
db.prey_ooc_maybes = M.ooc_notes_maybes
|
db.prey_ooc_maybes = M.ooc_notes_maybes
|
||||||
db.prey_ooc_style = M.ooc_notes_style
|
db.prey_ooc_style = M.ooc_notes_style
|
||||||
//CHOMPEdit End
|
|
||||||
db.prey_ooc_likes = M.ooc_notes_likes
|
db.prey_ooc_likes = M.ooc_notes_likes
|
||||||
db.prey_ooc_dislikes = M.ooc_notes_dislikes
|
db.prey_ooc_dislikes = M.ooc_notes_dislikes
|
||||||
add_verb(db, /mob/living/dominated_brain/proc/cease_this_foolishness)
|
add_verb(db, /mob/living/dominated_brain/proc/cease_this_foolishness)
|
||||||
@@ -463,10 +439,8 @@
|
|||||||
log_admin("[db] ([db.ckey]) has agreed to [src]'s dominate prey attempt, and so no longer occupies their original body.")
|
log_admin("[db] ([db.ckey]) has agreed to [src]'s dominate prey attempt, and so no longer occupies their original body.")
|
||||||
to_chat(src, span_notice("You feel your mind expanded as [M] is incorporated into you."))
|
to_chat(src, span_notice("You feel your mind expanded as [M] is incorporated into you."))
|
||||||
to_chat(M, span_warning("Your mind is gathered into \the [src], becoming part of them..."))
|
to_chat(M, span_warning("Your mind is gathered into \the [src], becoming part of them..."))
|
||||||
//CHOMPEdit Start - Let dominate prey work on grabbed people
|
|
||||||
if(istype(G) && M == G.affecting)
|
if(istype(G) && M == G.affecting)
|
||||||
visible_message(span_danger("[src] seems to finish whatever they were doing to [M]."))
|
visible_message(span_danger("[src] seems to finish whatever they were doing to [M]."))
|
||||||
//CHOMPEdit End
|
|
||||||
|
|
||||||
/mob/living/dominated_brain/proc/cease_this_foolishness()
|
/mob/living/dominated_brain/proc/cease_this_foolishness()
|
||||||
set category = "Abilities.Vore"
|
set category = "Abilities.Vore"
|
||||||
@@ -565,14 +539,12 @@
|
|||||||
pred_brain.prey_ooc_notes = prey.ooc_notes
|
pred_brain.prey_ooc_notes = prey.ooc_notes
|
||||||
pred_brain.prey_ooc_likes = prey.ooc_notes_likes
|
pred_brain.prey_ooc_likes = prey.ooc_notes_likes
|
||||||
pred_brain.prey_ooc_dislikes = prey.ooc_notes_dislikes
|
pred_brain.prey_ooc_dislikes = prey.ooc_notes_dislikes
|
||||||
//CHOMPEdit Start
|
|
||||||
pred_brain.prey_ooc_favs = prey.ooc_notes_favs
|
pred_brain.prey_ooc_favs = prey.ooc_notes_favs
|
||||||
pred_brain.prey_ooc_maybes = prey.ooc_notes_maybes
|
pred_brain.prey_ooc_maybes = prey.ooc_notes_maybes
|
||||||
pred_brain.prey_ooc_style = prey.ooc_notes_style
|
pred_brain.prey_ooc_style = prey.ooc_notes_style
|
||||||
pred_brain.pred_ooc_favs = pred.ooc_notes_favs
|
pred_brain.pred_ooc_favs = pred.ooc_notes_favs
|
||||||
pred_brain.pred_ooc_maybes = pred.ooc_notes_maybes
|
pred_brain.pred_ooc_maybes = pred.ooc_notes_maybes
|
||||||
pred_brain.pred_ooc_style = pred.ooc_notes_style
|
pred_brain.pred_ooc_style = pred.ooc_notes_style
|
||||||
//CHOMPEdit End
|
|
||||||
pred_brain.pred_ooc_notes = pred.ooc_notes
|
pred_brain.pred_ooc_notes = pred.ooc_notes
|
||||||
pred_brain.pred_ooc_likes = pred.ooc_notes_likes
|
pred_brain.pred_ooc_likes = pred.ooc_notes_likes
|
||||||
pred_brain.pred_ooc_dislikes = pred.ooc_notes_dislikes
|
pred_brain.pred_ooc_dislikes = pred.ooc_notes_dislikes
|
||||||
@@ -587,11 +559,9 @@
|
|||||||
pred.ooc_notes = pred_brain.prey_ooc_notes
|
pred.ooc_notes = pred_brain.prey_ooc_notes
|
||||||
pred.ooc_notes_likes = pred_brain.prey_ooc_likes
|
pred.ooc_notes_likes = pred_brain.prey_ooc_likes
|
||||||
pred.ooc_notes_dislikes = pred_brain.prey_ooc_dislikes
|
pred.ooc_notes_dislikes = pred_brain.prey_ooc_dislikes
|
||||||
//CHOMPEdit Start
|
|
||||||
pred.ooc_notes_favs = pred_brain.prey_ooc_favs
|
pred.ooc_notes_favs = pred_brain.prey_ooc_favs
|
||||||
pred.ooc_notes_maybes = pred_brain.prey_ooc_maybes
|
pred.ooc_notes_maybes = pred_brain.prey_ooc_maybes
|
||||||
pred.ooc_notes_style = pred_brain.prey_ooc_style
|
pred.ooc_notes_style = pred_brain.prey_ooc_style
|
||||||
//CHOMPEdit End
|
|
||||||
|
|
||||||
add_verb(pred, /mob/proc/release_predator)
|
add_verb(pred, /mob/proc/release_predator)
|
||||||
|
|
||||||
|
|||||||
@@ -22,11 +22,9 @@
|
|||||||
ooc_notes = client.prefs.read_preference(/datum/preference/text/living/ooc_notes)
|
ooc_notes = client.prefs.read_preference(/datum/preference/text/living/ooc_notes)
|
||||||
ooc_notes_likes = client.prefs.read_preference(/datum/preference/text/living/ooc_notes_likes)
|
ooc_notes_likes = client.prefs.read_preference(/datum/preference/text/living/ooc_notes_likes)
|
||||||
ooc_notes_dislikes = client.prefs.read_preference(/datum/preference/text/living/ooc_notes_dislikes)
|
ooc_notes_dislikes = client.prefs.read_preference(/datum/preference/text/living/ooc_notes_dislikes)
|
||||||
//CHOMPEnable Start
|
|
||||||
ooc_notes_favs = read_preference(/datum/preference/text/living/ooc_notes_favs)
|
ooc_notes_favs = read_preference(/datum/preference/text/living/ooc_notes_favs)
|
||||||
ooc_notes_maybes = read_preference(/datum/preference/text/living/ooc_notes_maybes)
|
ooc_notes_maybes = read_preference(/datum/preference/text/living/ooc_notes_maybes)
|
||||||
ooc_notes_style = read_preference(/datum/preference/toggle/living/ooc_notes_style)
|
ooc_notes_style = read_preference(/datum/preference/toggle/living/ooc_notes_style)
|
||||||
//CHOMPEnable End
|
|
||||||
private_notes = client.prefs.read_preference(/datum/preference/text/living/private_notes)
|
private_notes = client.prefs.read_preference(/datum/preference/text/living/private_notes)
|
||||||
digestable = client.prefs_vr.digestable
|
digestable = client.prefs_vr.digestable
|
||||||
devourable = client.prefs_vr.devourable
|
devourable = client.prefs_vr.devourable
|
||||||
|
|||||||
@@ -259,11 +259,9 @@
|
|||||||
brainmob.ooc_notes = H.ooc_notes
|
brainmob.ooc_notes = H.ooc_notes
|
||||||
brainmob.ooc_notes_likes = H.ooc_notes_likes
|
brainmob.ooc_notes_likes = H.ooc_notes_likes
|
||||||
brainmob.ooc_notes_dislikes = H.ooc_notes_dislikes
|
brainmob.ooc_notes_dislikes = H.ooc_notes_dislikes
|
||||||
//CHOMPEnable Start
|
|
||||||
brainmob.ooc_notes_favs = H.ooc_notes_favs
|
brainmob.ooc_notes_favs = H.ooc_notes_favs
|
||||||
brainmob.ooc_notes_maybes = H.ooc_notes_maybes
|
brainmob.ooc_notes_maybes = H.ooc_notes_maybes
|
||||||
brainmob.ooc_notes_style = H.ooc_notes_style
|
brainmob.ooc_notes_style = H.ooc_notes_style
|
||||||
//CHOMPEnable End
|
|
||||||
brainmob.timeofhostdeath = H.timeofdeath
|
brainmob.timeofhostdeath = H.timeofdeath
|
||||||
SStranscore.m_backup(brainmob.mind,0) //It does ONE, so medical will hear about it.
|
SStranscore.m_backup(brainmob.mind,0) //It does ONE, so medical will hear about it.
|
||||||
|
|
||||||
|
|||||||
@@ -111,11 +111,9 @@ GLOBAL_LIST_BOILERPLATE(all_brain_organs, /obj/item/organ/internal/brain)
|
|||||||
brainmob.ooc_notes = H.ooc_notes
|
brainmob.ooc_notes = H.ooc_notes
|
||||||
brainmob.ooc_notes_likes = H.ooc_notes_likes
|
brainmob.ooc_notes_likes = H.ooc_notes_likes
|
||||||
brainmob.ooc_notes_dislikes = H.ooc_notes_dislikes
|
brainmob.ooc_notes_dislikes = H.ooc_notes_dislikes
|
||||||
//CHOMPEdit Start
|
|
||||||
brainmob.ooc_notes_favs = H.ooc_notes_favs
|
brainmob.ooc_notes_favs = H.ooc_notes_favs
|
||||||
brainmob.ooc_notes_maybes = H.ooc_notes_maybes
|
brainmob.ooc_notes_maybes = H.ooc_notes_maybes
|
||||||
brainmob.ooc_notes_style = H.ooc_notes_style
|
brainmob.ooc_notes_style = H.ooc_notes_style
|
||||||
//CHOMPEdit End
|
|
||||||
|
|
||||||
// Copy modifiers.
|
// Copy modifiers.
|
||||||
for(var/datum/modifier/M in H.modifiers)
|
for(var/datum/modifier/M in H.modifiers)
|
||||||
|
|||||||
@@ -113,6 +113,8 @@
|
|||||||
for(var/atom/movable/A in affecting)
|
for(var/atom/movable/A in affecting)
|
||||||
if(istype(A,/obj/effect/abstract)) // Flashlight's lights are not physical objects
|
if(istype(A,/obj/effect/abstract)) // Flashlight's lights are not physical objects
|
||||||
continue
|
continue
|
||||||
|
if(A.is_incorporeal())
|
||||||
|
continue
|
||||||
if(!A.anchored)
|
if(!A.anchored)
|
||||||
if(A.loc == src.loc) // prevents the object from being affected if it's not currently here.
|
if(A.loc == src.loc) // prevents the object from being affected if it's not currently here.
|
||||||
step(A,movedir)
|
step(A,movedir)
|
||||||
|
|||||||
@@ -26,11 +26,9 @@
|
|||||||
var/mind_oocnotes = ""
|
var/mind_oocnotes = ""
|
||||||
var/mind_ooclikes = ""
|
var/mind_ooclikes = ""
|
||||||
var/mind_oocdislikes = ""
|
var/mind_oocdislikes = ""
|
||||||
//CHOMPEdit Start
|
|
||||||
var/mind_oocfavs = ""
|
var/mind_oocfavs = ""
|
||||||
var/mind_oocmaybes = ""
|
var/mind_oocmaybes = ""
|
||||||
var/mind_oocstyle = FALSE
|
var/mind_oocstyle = FALSE
|
||||||
//CHOMPEdit End
|
|
||||||
var/nif_path
|
var/nif_path
|
||||||
var/nif_durability
|
var/nif_durability
|
||||||
var/list/nif_software
|
var/list/nif_software
|
||||||
@@ -66,10 +64,8 @@
|
|||||||
nif_software = nifsofts
|
nif_software = nifsofts
|
||||||
nif_savedata = M.nif.save_data.Copy()
|
nif_savedata = M.nif.save_data.Copy()
|
||||||
|
|
||||||
//CHOMPEdit Start - Preference for Automatic transcore notifications
|
|
||||||
if(istype(M,/mob) && !M.read_preference(/datum/preference/toggle/autotranscore))
|
if(istype(M,/mob) && !M.read_preference(/datum/preference/toggle/autotranscore))
|
||||||
do_notify = FALSE
|
do_notify = FALSE
|
||||||
//CHOMPEdit End
|
|
||||||
|
|
||||||
last_update = world.time
|
last_update = world.time
|
||||||
|
|
||||||
@@ -91,11 +87,9 @@
|
|||||||
var/body_oocnotes
|
var/body_oocnotes
|
||||||
var/body_ooclikes
|
var/body_ooclikes
|
||||||
var/body_oocdislikes
|
var/body_oocdislikes
|
||||||
//CHOMPEdit Start
|
|
||||||
var/body_oocfavs
|
var/body_oocfavs
|
||||||
var/body_oocmaybes
|
var/body_oocmaybes
|
||||||
var/body_oocstyle
|
var/body_oocstyle
|
||||||
//CHOMPEdit End
|
|
||||||
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/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/organ_data = list(O_HEART, O_EYES, O_LUNGS, O_BRAIN)
|
||||||
var/list/genetic_modifiers = list()
|
var/list/genetic_modifiers = list()
|
||||||
@@ -129,7 +123,6 @@
|
|||||||
//Person OOCly doesn't want people impersonating them
|
//Person OOCly doesn't want people impersonating them
|
||||||
locked = ckeylock
|
locked = ckeylock
|
||||||
|
|
||||||
//CHOMPEdit Start, keep the lock
|
|
||||||
//Prevent people from printing restricted and whitelisted species
|
//Prevent people from printing restricted and whitelisted species
|
||||||
var/datum/species/S = GLOB.all_species["[M.dna.species]"]
|
var/datum/species/S = GLOB.all_species["[M.dna.species]"]
|
||||||
if(S)
|
if(S)
|
||||||
@@ -137,7 +130,6 @@
|
|||||||
// Force ckey locking if species is whitelisted
|
// Force ckey locking if species is whitelisted
|
||||||
//if((S.spawn_flags & SPECIES_IS_WHITELISTED) || (S.spawn_flags & SPECIES_IS_RESTRICTED))
|
//if((S.spawn_flags & SPECIES_IS_WHITELISTED) || (S.spawn_flags & SPECIES_IS_RESTRICTED))
|
||||||
//locked = TRUE
|
//locked = TRUE
|
||||||
//CHOMPEdit End
|
|
||||||
|
|
||||||
//General stuff about them
|
//General stuff about them
|
||||||
synthetic = M.isSynthetic()
|
synthetic = M.isSynthetic()
|
||||||
|
|||||||
@@ -128,11 +128,9 @@
|
|||||||
H.ooc_notes = current_project.body_oocnotes
|
H.ooc_notes = current_project.body_oocnotes
|
||||||
H.ooc_notes_likes = current_project.body_ooclikes
|
H.ooc_notes_likes = current_project.body_ooclikes
|
||||||
H.ooc_notes_dislikes = current_project.body_oocdislikes
|
H.ooc_notes_dislikes = current_project.body_oocdislikes
|
||||||
//CHOMPEdit Start
|
|
||||||
H.ooc_notes_favs = current_project.body_oocfavs
|
H.ooc_notes_favs = current_project.body_oocfavs
|
||||||
H.ooc_notes_maybes = current_project.body_oocmaybes
|
H.ooc_notes_maybes = current_project.body_oocmaybes
|
||||||
H.ooc_notes_style = current_project.body_oocstyle
|
H.ooc_notes_style = current_project.body_oocstyle
|
||||||
//CHOMPEdit End
|
|
||||||
H.flavor_texts = current_project.mydna.flavor.Copy()
|
H.flavor_texts = current_project.mydna.flavor.Copy()
|
||||||
H.resize(current_project.sizemult, FALSE)
|
H.resize(current_project.sizemult, FALSE)
|
||||||
H.appearance_flags = current_project.aflags
|
H.appearance_flags = current_project.aflags
|
||||||
@@ -615,11 +613,9 @@
|
|||||||
occupant.ooc_notes = MR.mind_oocnotes
|
occupant.ooc_notes = MR.mind_oocnotes
|
||||||
occupant.ooc_notes_likes = MR.mind_ooclikes
|
occupant.ooc_notes_likes = MR.mind_ooclikes
|
||||||
occupant.ooc_notes_dislikes = MR.mind_oocdislikes
|
occupant.ooc_notes_dislikes = MR.mind_oocdislikes
|
||||||
//CHOMPEdit Start
|
|
||||||
occupant.ooc_notes_favs = MR.mind_oocfavs
|
occupant.ooc_notes_favs = MR.mind_oocfavs
|
||||||
occupant.ooc_notes_maybes = MR.mind_oocmaybes
|
occupant.ooc_notes_maybes = MR.mind_oocmaybes
|
||||||
occupant.ooc_notes_style = MR.mind_oocstyle
|
occupant.ooc_notes_style = MR.mind_oocstyle
|
||||||
//CHOMPEdit End
|
|
||||||
|
|
||||||
occupant.apply_vore_prefs() //Cheap hack for now to give them SOME bellies.
|
occupant.apply_vore_prefs() //Cheap hack for now to give them SOME bellies.
|
||||||
if(MR.one_time)
|
if(MR.one_time)
|
||||||
|
|||||||
@@ -46,11 +46,9 @@
|
|||||||
infomorph.ooc_notes = MR.mind_oocnotes
|
infomorph.ooc_notes = MR.mind_oocnotes
|
||||||
infomorph.ooc_notes_likes = MR.mind_ooclikes
|
infomorph.ooc_notes_likes = MR.mind_ooclikes
|
||||||
infomorph.ooc_notes_dislikes = MR.mind_oocdislikes
|
infomorph.ooc_notes_dislikes = MR.mind_oocdislikes
|
||||||
//CHOMPEdit Start
|
|
||||||
infomorph.ooc_notes_favs = MR.mind_oocfavs
|
infomorph.ooc_notes_favs = MR.mind_oocfavs
|
||||||
infomorph.ooc_notes_maybes = MR.mind_oocmaybes
|
infomorph.ooc_notes_maybes = MR.mind_oocmaybes
|
||||||
infomorph.ooc_notes_style = MR.mind_oocstyle
|
infomorph.ooc_notes_style = MR.mind_oocstyle
|
||||||
//CHOMPEdit End
|
|
||||||
infomorph.apply_vore_prefs() //Cheap hack for now to give them SOME bellies.
|
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.
|
//Don't set 'real_name' because then we get a nice (as sleevecard) thing.
|
||||||
|
|||||||
@@ -1100,7 +1100,6 @@
|
|||||||
save_ooc_panel(usr)
|
save_ooc_panel(usr)
|
||||||
if(href_list["print_ooc_notes_chat"])
|
if(href_list["print_ooc_notes_chat"])
|
||||||
print_ooc_notes_chat(usr)
|
print_ooc_notes_chat(usr)
|
||||||
// CHOMPEnable Start
|
|
||||||
if(href_list["edit_ooc_note_favs"])
|
if(href_list["edit_ooc_note_favs"])
|
||||||
if(usr == src)
|
if(usr == src)
|
||||||
set_metainfo_favs(usr)
|
set_metainfo_favs(usr)
|
||||||
@@ -1109,7 +1108,6 @@
|
|||||||
set_metainfo_maybes(usr)
|
set_metainfo_maybes(usr)
|
||||||
if(href_list["set_metainfo_ooc_style"])
|
if(href_list["set_metainfo_ooc_style"])
|
||||||
set_metainfo_ooc_style(usr)
|
set_metainfo_ooc_style(usr)
|
||||||
// CHOMPEnable End
|
|
||||||
if(href_list["save_private_notes"])
|
if(href_list["save_private_notes"])
|
||||||
if(usr == src)
|
if(usr == src)
|
||||||
save_private_notes(usr)
|
save_private_notes(usr)
|
||||||
|
|||||||
@@ -168,11 +168,9 @@
|
|||||||
brainmob.ooc_notes = L.ooc_notes
|
brainmob.ooc_notes = L.ooc_notes
|
||||||
brainmob.ooc_notes_likes = L.ooc_notes_likes
|
brainmob.ooc_notes_likes = L.ooc_notes_likes
|
||||||
brainmob.ooc_notes_dislikes = L.ooc_notes_dislikes
|
brainmob.ooc_notes_dislikes = L.ooc_notes_dislikes
|
||||||
/* Not implemented on virgo
|
|
||||||
brainmob.ooc_notes_favs = L.ooc_notes_favs
|
brainmob.ooc_notes_favs = L.ooc_notes_favs
|
||||||
brainmob.ooc_notes_maybes = L.ooc_notes_maybes
|
brainmob.ooc_notes_maybes = L.ooc_notes_maybes
|
||||||
brainmob.ooc_notes_style = L.ooc_notes_style
|
brainmob.ooc_notes_style = L.ooc_notes_style
|
||||||
*/
|
|
||||||
brainmob.timeofhostdeath = L.timeofdeath
|
brainmob.timeofhostdeath = L.timeofdeath
|
||||||
if(ishuman(L))
|
if(ishuman(L))
|
||||||
SStranscore.m_backup(brainmob.mind,0) //It does ONE, so medical will hear about it.
|
SStranscore.m_backup(brainmob.mind,0) //It does ONE, so medical will hear about it.
|
||||||
|
|||||||
@@ -35,60 +35,7 @@
|
|||||||
apply_layer(SHOES_LAYER)
|
apply_layer(SHOES_LAYER)
|
||||||
apply_layer(SHOES_LAYER_ALT)
|
apply_layer(SHOES_LAYER_ALT)
|
||||||
|
|
||||||
/mob/living/carbon/human/proc/GetAppearanceFromPrefs(var/flavourtext, var/oocnotes)
|
|
||||||
/* Jank code that effectively creates the client's mob from save, then copies its appearance to our current mob.
|
|
||||||
Intended to be used with shapeshifter species so we don't reset their organs in doing so.*/
|
|
||||||
if(client.prefs)
|
|
||||||
var/mob/living/carbon/human/dummy/mannequin/Dummy = get_mannequin(client.ckey)
|
|
||||||
client.prefs.copy_to(Dummy)
|
|
||||||
//Important, since some sprites only work for specific species
|
|
||||||
/* Probably not needed anymore since impersonate_bodytype no longer exists
|
|
||||||
if(Dummy.species.base_species == "Promethean")
|
|
||||||
impersonate_bodytype = "Human"
|
|
||||||
else
|
|
||||||
impersonate_bodytype = Dummy.species.base_species
|
|
||||||
*/
|
|
||||||
custom_species = Dummy.custom_species
|
|
||||||
var/list/traits = dna.species_traits.Copy()
|
|
||||||
dna = Dummy.dna.Clone()
|
|
||||||
dna.species_traits.Cut()
|
|
||||||
dna.species_traits = traits.Copy()
|
|
||||||
UpdateAppearance()
|
|
||||||
icon = Dummy.icon
|
|
||||||
if(flavourtext)
|
|
||||||
flavor_texts = client.prefs.flavor_texts.Copy()
|
|
||||||
if(oocnotes)
|
|
||||||
ooc_notes = client.prefs.read_preference(/datum/preference/text/living/ooc_notes)
|
|
||||||
ooc_notes_likes = client.prefs.read_preference(/datum/preference/text/living/ooc_notes_likes)
|
|
||||||
ooc_notes_dislikes = client.prefs.read_preference(/datum/preference/text/living/ooc_notes_dislikes)
|
|
||||||
ooc_notes_favs = read_preference(/datum/preference/text/living/ooc_notes_favs)
|
|
||||||
ooc_notes_maybes = read_preference(/datum/preference/text/living/ooc_notes_maybes)
|
|
||||||
ooc_notes_style = read_preference(/datum/preference/toggle/living/ooc_notes_style)
|
|
||||||
|
|
||||||
/* Alternative version of the above proc, incase it turns out cloning our dummy mob's DNA is an awful, terrible bad idea.
|
|
||||||
Would need to fix this proc up to work as smoothly as the above proc, though.
|
|
||||||
/mob/living/carbon/human/proc/GetAppearanceFromPrefs()
|
|
||||||
/* Jank code that effectively creates the client's mob from save, then copies its appearance to our current mob.
|
|
||||||
Intended to be used with shapeshifter species so we don't reset their organs in doing so.*/
|
|
||||||
var/mob/living/carbon/human/dummy/mannequin/Dummy = new
|
|
||||||
if(client.prefs)
|
|
||||||
client.prefs.copy_to(Dummy)
|
|
||||||
//Important, since some sprites only work for specific species
|
|
||||||
if(Dummy.species.base_species == "Promethean")
|
|
||||||
impersonate_bodytype = "Human"
|
|
||||||
else
|
|
||||||
impersonate_bodytype = Dummy.species.base_species
|
|
||||||
custom_species = Dummy.custom_species
|
|
||||||
for(var/tag in Dummy.dna.body_markings)
|
|
||||||
var/obj/item/organ/external/E = organs_by_name[tag]
|
|
||||||
if(E)
|
|
||||||
E.markings.Cut()
|
|
||||||
var/list/marklist = Dummy.dna.body_markings[tag]
|
|
||||||
E.markings = marklist.Copy()
|
|
||||||
UpdateAppearance(Dummy.dna.UI.Copy())
|
|
||||||
icon = Dummy.icon
|
|
||||||
qdel(Dummy)
|
|
||||||
*/
|
|
||||||
|
|
||||||
/mob/living/carbon/human/update_tail_showing()
|
/mob/living/carbon/human/update_tail_showing()
|
||||||
. = ..()
|
. = ..()
|
||||||
|
|||||||
@@ -37,41 +37,3 @@ Maybe later, gotta figure out a way to click yourself when in a locker etc.
|
|||||||
|
|
||||||
/mob/living/proc/handle_vorefootstep(m_intent, turf/T) // Moved from living_ch.dm
|
/mob/living/proc/handle_vorefootstep(m_intent, turf/T) // Moved from living_ch.dm
|
||||||
return FALSE
|
return FALSE
|
||||||
|
|
||||||
//ChompEDIT START - Removal of usr
|
|
||||||
/mob/living/proc/set_metainfo_favs(var/mob/user, var/reopen = TRUE)
|
|
||||||
if(user != src)
|
|
||||||
return
|
|
||||||
var/new_metadata = strip_html_simple(tgui_input_text(user, "Enter any information you'd like others to see relating to your FAVOURITE roleplay preferences. This will not be saved permanently unless you click save in the OOC notes panel! Type \"!clear\" to empty.", "Game Preference" , html_decode(ooc_notes_favs), multiline = TRUE, prevent_enter = TRUE))
|
|
||||||
if(new_metadata && CanUseTopic(user))
|
|
||||||
if(new_metadata == "!clear")
|
|
||||||
new_metadata = ""
|
|
||||||
ooc_notes_favs = new_metadata
|
|
||||||
client.prefs.update_preference_by_type(/datum/preference/text/living/ooc_notes_favs, new_metadata)
|
|
||||||
to_chat(user, span_filter_notice("OOC note favs have been updated. Don't forget to save!"))
|
|
||||||
log_admin("[key_name(user)] updated their OOC note favs mid-round.")
|
|
||||||
if(reopen)
|
|
||||||
ooc_notes_window(user)
|
|
||||||
|
|
||||||
/mob/living/proc/set_metainfo_maybes(var/mob/user, var/reopen = TRUE)
|
|
||||||
if(user != src)
|
|
||||||
return
|
|
||||||
var/new_metadata = strip_html_simple(tgui_input_text(user, "Enter any information you'd like others to see relating to your MAYBE roleplay preferences. This will not be saved permanently unless you click save in the OOC notes panel! Type \"!clear\" to empty.", "Game Preference" , html_decode(ooc_notes_maybes), multiline = TRUE, prevent_enter = TRUE))
|
|
||||||
if(new_metadata && CanUseTopic(user))
|
|
||||||
if(new_metadata == "!clear")
|
|
||||||
new_metadata = ""
|
|
||||||
ooc_notes_maybes = new_metadata
|
|
||||||
client.prefs.update_preference_by_type(/datum/preference/text/living/ooc_notes_maybes, new_metadata)
|
|
||||||
to_chat(user, span_filter_notice("OOC note maybes have been updated. Don't forget to save!"))
|
|
||||||
log_admin("[key_name(user)] updated their OOC note maybes mid-round.")
|
|
||||||
if(reopen)
|
|
||||||
ooc_notes_window(user)
|
|
||||||
|
|
||||||
/mob/living/proc/set_metainfo_ooc_style(var/mob/user, var/reopen = TRUE)
|
|
||||||
if(user != src)
|
|
||||||
return
|
|
||||||
ooc_notes_style = !ooc_notes_style
|
|
||||||
client.prefs.update_preference_by_type(/datum/preference/toggle/living/ooc_notes_style, ooc_notes_style)
|
|
||||||
if(reopen)
|
|
||||||
ooc_notes_window(user)
|
|
||||||
//ChompEDIT END - Removal of usr
|
|
||||||
|
|||||||
@@ -1,4 +0,0 @@
|
|||||||
/mob/living
|
|
||||||
var/ooc_notes_favs = null
|
|
||||||
var/ooc_notes_maybes = null
|
|
||||||
var/ooc_notes_style = FALSE
|
|
||||||
@@ -1,208 +0,0 @@
|
|||||||
/mob/living/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", "<BR>")
|
|
||||||
var/favs = replacetext(html_decode(src.ooc_notes_favs), "\n", "<BR>")
|
|
||||||
var/likes = replacetext(html_decode(src.ooc_notes_likes), "\n", "<BR>")
|
|
||||||
var/maybes = replacetext(html_decode(src.ooc_notes_maybes), "\n", "<BR>")
|
|
||||||
var/dislikes = replacetext(html_decode(src.ooc_notes_dislikes), "\n", "<BR>")
|
|
||||||
var/style = src.ooc_notes_style
|
|
||||||
var/dat = {"
|
|
||||||
<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">
|
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<style>
|
|
||||||
* {
|
|
||||||
box-sizing: border-box;
|
|
||||||
}
|
|
||||||
.collapsible {
|
|
||||||
background-color: #1a1e3f;
|
|
||||||
color: white;
|
|
||||||
width: 100%;
|
|
||||||
text-align: left;
|
|
||||||
font-size: 20px;
|
|
||||||
}
|
|
||||||
.collapsible_a {
|
|
||||||
background-color: #263d20;
|
|
||||||
color: white;
|
|
||||||
width: 100%;
|
|
||||||
text-align: left;
|
|
||||||
font-size: 20px;
|
|
||||||
}
|
|
||||||
.collapsible_b {
|
|
||||||
background-color: #3e3f1a;
|
|
||||||
color: white;
|
|
||||||
width: 100%;
|
|
||||||
text-align: left;
|
|
||||||
font-size: 20px;
|
|
||||||
}
|
|
||||||
.collapsible_c {
|
|
||||||
background-color: #3f1a1a;
|
|
||||||
color: white;
|
|
||||||
width: 100%;
|
|
||||||
text-align: left;
|
|
||||||
font-size: 20px;
|
|
||||||
}
|
|
||||||
.content {
|
|
||||||
padding: 5;
|
|
||||||
width: 100%;
|
|
||||||
background-color: #363636;
|
|
||||||
}
|
|
||||||
.column {
|
|
||||||
verflow-wrap: break-word;
|
|
||||||
float: left;
|
|
||||||
width: 25%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.row:after {
|
|
||||||
content: "";
|
|
||||||
display: table;
|
|
||||||
clear: both;
|
|
||||||
}
|
|
||||||
|
|
||||||
</style>
|
|
||||||
</head>"}
|
|
||||||
|
|
||||||
dat += {"<body><table>"}
|
|
||||||
if(user == src)
|
|
||||||
dat += {"
|
|
||||||
<td class="button">
|
|
||||||
<a href='byond://?src=\ref[src];save_ooc_panel=1' class='button'>Save Character Preferences</a>
|
|
||||||
</td>
|
|
||||||
"}
|
|
||||||
dat += {"
|
|
||||||
<td class="button">
|
|
||||||
<a href='byond://?src=\ref[src];print_ooc_notes_chat=1' class='button'>Print to chat</a>
|
|
||||||
</td>
|
|
||||||
"}
|
|
||||||
if(user == src)
|
|
||||||
if(style)
|
|
||||||
dat += {"
|
|
||||||
<td class="button">
|
|
||||||
<a href='byond://?src=\ref[src];set_metainfo_ooc_style=1' class='button'>Lists</a>
|
|
||||||
</td>
|
|
||||||
"}
|
|
||||||
else
|
|
||||||
dat += {"
|
|
||||||
<td class="button">
|
|
||||||
<a href='byond://?src=\ref[src];set_metainfo_ooc_style=1' class='button'>Fields</a>
|
|
||||||
</td>
|
|
||||||
"}
|
|
||||||
dat += {"</table>"}
|
|
||||||
|
|
||||||
if(user == src)
|
|
||||||
dat += {"
|
|
||||||
<br>
|
|
||||||
<table>
|
|
||||||
<td class="button">
|
|
||||||
<a href='byond://?src=\ref[src];edit_ooc_notes=1' class='button'>Edit</a>
|
|
||||||
</td>
|
|
||||||
</table>
|
|
||||||
"}
|
|
||||||
|
|
||||||
dat += {"
|
|
||||||
<br>
|
|
||||||
<div class="content">
|
|
||||||
<p>[notes]</p>
|
|
||||||
</div>
|
|
||||||
<br>
|
|
||||||
<head>
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">"}
|
|
||||||
if(style)
|
|
||||||
dat += {"<div class='row'><div class='column'>"}
|
|
||||||
if(favs || user == src)
|
|
||||||
dat += "<div class=\"collapsible\">" + span_bold("<center>Favourites</center>") + "</div>"
|
|
||||||
if(user == src)
|
|
||||||
dat += {"
|
|
||||||
<table>
|
|
||||||
<td class="button">
|
|
||||||
<a href='byond://?src=\ref[src];edit_ooc_note_favs=1' class='button'>Edit</a>
|
|
||||||
</td>
|
|
||||||
</table>
|
|
||||||
"}
|
|
||||||
|
|
||||||
if(favs)
|
|
||||||
dat += {"
|
|
||||||
<div class="content">
|
|
||||||
<p>[favs]</p>
|
|
||||||
</div>"}
|
|
||||||
|
|
||||||
if(style)
|
|
||||||
dat += {"</div>"}
|
|
||||||
dat += {"<div class='column'>"}
|
|
||||||
if(likes || user == src)
|
|
||||||
dat += "<div class=\"collapsible_a\">" + span_bold("<center>Likes</center>") + "</div>"
|
|
||||||
if(user == src)
|
|
||||||
dat += {"
|
|
||||||
<table>
|
|
||||||
<td class="button">
|
|
||||||
<a href='byond://?src=\ref[src];edit_ooc_note_likes=1' class='button'>Edit</a>
|
|
||||||
</td>
|
|
||||||
</table>
|
|
||||||
"}
|
|
||||||
|
|
||||||
if(likes)
|
|
||||||
dat += {"
|
|
||||||
<div class="content">
|
|
||||||
<p>[likes]</p>
|
|
||||||
</div>"}
|
|
||||||
|
|
||||||
if(style)
|
|
||||||
dat += {"</div>"}
|
|
||||||
dat += {"<div class='column'>"}
|
|
||||||
if(maybes || user == src)
|
|
||||||
dat += "<div class=\"collapsible_b\">" + span_bold("<center>Maybes</center>") + "</div>"
|
|
||||||
if(user == src)
|
|
||||||
dat += {"
|
|
||||||
<table>
|
|
||||||
<td class="button">
|
|
||||||
<a href='byond://?src=\ref[src];edit_ooc_note_maybes=1' class='button'>Edit</a>
|
|
||||||
</td>
|
|
||||||
</table>
|
|
||||||
"}
|
|
||||||
|
|
||||||
if(maybes)
|
|
||||||
dat += {"
|
|
||||||
<div class="content">
|
|
||||||
<p>[maybes]</p>
|
|
||||||
</div>
|
|
||||||
"}
|
|
||||||
|
|
||||||
|
|
||||||
if(style)
|
|
||||||
dat += {"</div>"}
|
|
||||||
dat += {"<div class='column'>"}
|
|
||||||
if(dislikes || user == src)
|
|
||||||
dat += "<div class=\"collapsible_c\">" + span_bold("<center>Dislikes</center>") + "</div>"
|
|
||||||
if(user == src)
|
|
||||||
dat += {"
|
|
||||||
<table>
|
|
||||||
<td class="button">
|
|
||||||
<a href='byond://?src=\ref[src];edit_ooc_note_dislikes=1' class='button'>Edit</a>
|
|
||||||
</td>
|
|
||||||
</table>
|
|
||||||
"}
|
|
||||||
|
|
||||||
if(dislikes)
|
|
||||||
dat += {"
|
|
||||||
<div class="content">
|
|
||||||
<p>[dislikes]</p>
|
|
||||||
</div>
|
|
||||||
"}
|
|
||||||
if(style)
|
|
||||||
dat += {"</div></div>"}
|
|
||||||
dat+= {" </body>
|
|
||||||
</html>"}
|
|
||||||
|
|
||||||
var/key = "ooc_notes[src.real_name]" //Generate a unique key so we can make unique clones of windows, that way we can have more than one
|
|
||||||
if(src.ckey)
|
|
||||||
key = "[key][src.ckey]" //Add a ckey if they have one, in case their name is the same
|
|
||||||
|
|
||||||
winclone(user, "ooc_notes", key) //Allows us to have more than one OOC notes panel open
|
|
||||||
|
|
||||||
winshow(user, key, TRUE) //Register our window
|
|
||||||
var/datum/browser/popup = new(user, key, "OOC Notes: [src.name]", 500, 600) //Create the window
|
|
||||||
popup.set_content(dat) //Populate window contents
|
|
||||||
popup.open(FALSE) // Skip registring onclose on the browser pane
|
|
||||||
onclose(user, key, src) // We want to register on the window itself
|
|
||||||
@@ -1,311 +0,0 @@
|
|||||||
import { type ReactNode, useState } from 'react';
|
|
||||||
import { useBackend } from 'tgui/backend';
|
|
||||||
import { Window } from 'tgui/layouts';
|
|
||||||
import {
|
|
||||||
Box,
|
|
||||||
Button,
|
|
||||||
Icon,
|
|
||||||
LabeledList,
|
|
||||||
Section,
|
|
||||||
Stack,
|
|
||||||
Table,
|
|
||||||
} from 'tgui-core/components';
|
|
||||||
import type { BooleanLike } from 'tgui-core/react';
|
|
||||||
|
|
||||||
const getTagColor = (tag: string) => {
|
|
||||||
switch (tag) {
|
|
||||||
case 'Unset':
|
|
||||||
return 'label';
|
|
||||||
case 'Pred':
|
|
||||||
return 'red';
|
|
||||||
case 'Pred-Pref':
|
|
||||||
return 'orange';
|
|
||||||
case 'Prey':
|
|
||||||
return 'blue';
|
|
||||||
case 'Prey-Pref':
|
|
||||||
return 'green';
|
|
||||||
case 'Switch':
|
|
||||||
return 'yellow';
|
|
||||||
case 'Non-Vore':
|
|
||||||
return 'black';
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
type Data = {
|
|
||||||
personalVisibility: BooleanLike;
|
|
||||||
personalTag: string;
|
|
||||||
personalErpTag: string;
|
|
||||||
directory: character[];
|
|
||||||
};
|
|
||||||
|
|
||||||
type character = {
|
|
||||||
name: string;
|
|
||||||
species: string;
|
|
||||||
ooc_notes: string;
|
|
||||||
tag: string;
|
|
||||||
erptag: string;
|
|
||||||
character_ad: string;
|
|
||||||
flavor_text: string;
|
|
||||||
};
|
|
||||||
|
|
||||||
export const CharacterDirectory = (props) => {
|
|
||||||
const { act, data } = useBackend<Data>();
|
|
||||||
const { personalVisibility, personalTag, personalErpTag } = data;
|
|
||||||
|
|
||||||
const [overlay, setOverlay] = useState<character | null>(null);
|
|
||||||
const [overwritePrefs, setOverwritePrefs] = useState<boolean>(false);
|
|
||||||
|
|
||||||
function handleOverlay(value: character | null) {
|
|
||||||
setOverlay(value);
|
|
||||||
}
|
|
||||||
|
|
||||||
return (
|
|
||||||
<Window width={640} height={480}>
|
|
||||||
<Window.Content scrollable>
|
|
||||||
{(overlay && (
|
|
||||||
<ViewCharacter overlay={overlay} onOverlay={handleOverlay} />
|
|
||||||
)) || (
|
|
||||||
<>
|
|
||||||
<Section
|
|
||||||
title="Controls"
|
|
||||||
buttons={
|
|
||||||
<Stack>
|
|
||||||
<Stack.Item>
|
|
||||||
<Box color="label" inline>
|
|
||||||
Save to current preferences slot:
|
|
||||||
</Box>
|
|
||||||
</Stack.Item>
|
|
||||||
<Stack.Item>
|
|
||||||
<Button
|
|
||||||
icon={overwritePrefs ? 'toggle-on' : 'toggle-off'}
|
|
||||||
selected={overwritePrefs}
|
|
||||||
onClick={() => setOverwritePrefs(!overwritePrefs)}
|
|
||||||
>
|
|
||||||
{overwritePrefs ? 'On' : 'Off'}
|
|
||||||
</Button>
|
|
||||||
</Stack.Item>
|
|
||||||
</Stack>
|
|
||||||
}
|
|
||||||
>
|
|
||||||
<LabeledList>
|
|
||||||
<LabeledList.Item label="Visibility">
|
|
||||||
<Button
|
|
||||||
fluid
|
|
||||||
onClick={() =>
|
|
||||||
act('setVisible', { overwrite_prefs: overwritePrefs })
|
|
||||||
}
|
|
||||||
>
|
|
||||||
{personalVisibility ? 'Shown' : 'Not Shown'}
|
|
||||||
</Button>
|
|
||||||
</LabeledList.Item>
|
|
||||||
<LabeledList.Item label="Vore Tag">
|
|
||||||
<Button
|
|
||||||
fluid
|
|
||||||
onClick={() =>
|
|
||||||
act('setTag', { overwrite_prefs: overwritePrefs })
|
|
||||||
}
|
|
||||||
>
|
|
||||||
{personalTag}
|
|
||||||
</Button>
|
|
||||||
</LabeledList.Item>
|
|
||||||
<LabeledList.Item label="ERP Tag">
|
|
||||||
<Button
|
|
||||||
fluid
|
|
||||||
onClick={() =>
|
|
||||||
act('setErpTag', { overwrite_prefs: overwritePrefs })
|
|
||||||
}
|
|
||||||
>
|
|
||||||
{personalErpTag}
|
|
||||||
</Button>
|
|
||||||
</LabeledList.Item>
|
|
||||||
<LabeledList.Item label="Advertisement">
|
|
||||||
<Button
|
|
||||||
fluid
|
|
||||||
onClick={() =>
|
|
||||||
act('editAd', { overwrite_prefs: overwritePrefs })
|
|
||||||
}
|
|
||||||
>
|
|
||||||
Edit Ad
|
|
||||||
</Button>
|
|
||||||
</LabeledList.Item>
|
|
||||||
</LabeledList>
|
|
||||||
</Section>
|
|
||||||
<CharacterDirectoryList onOverlay={handleOverlay} />
|
|
||||||
</>
|
|
||||||
)}
|
|
||||||
</Window.Content>
|
|
||||||
</Window>
|
|
||||||
);
|
|
||||||
};
|
|
||||||
|
|
||||||
const ViewCharacter = (props) => {
|
|
||||||
return (
|
|
||||||
<Section
|
|
||||||
title={props.overlay.name}
|
|
||||||
buttons={
|
|
||||||
<Button icon="arrow-left" onClick={() => props.onOverlay(null)}>
|
|
||||||
Back
|
|
||||||
</Button>
|
|
||||||
}
|
|
||||||
>
|
|
||||||
<Section title="Species">
|
|
||||||
<Box>{props.overlay.species}</Box>
|
|
||||||
</Section>
|
|
||||||
<Section title="Vore Tag">
|
|
||||||
<Box p={1} backgroundColor={getTagColor(props.overlay.tag)}>
|
|
||||||
{props.overlay.tag}
|
|
||||||
</Box>
|
|
||||||
</Section>
|
|
||||||
<Section title="ERP Tag">
|
|
||||||
<Box>{props.overlay.erptag}</Box>
|
|
||||||
</Section>
|
|
||||||
<Section title="Character Ad">
|
|
||||||
<Box style={{ wordBreak: 'break-all' }} preserveWhitespace>
|
|
||||||
{props.overlay.character_ad || 'Unset.'}
|
|
||||||
</Box>
|
|
||||||
</Section>
|
|
||||||
<Section title="OOC Notes">
|
|
||||||
<Box style={{ wordBreak: 'break-all' }} preserveWhitespace>
|
|
||||||
{props.overlay.ooc_notes || 'Unset.'}
|
|
||||||
</Box>
|
|
||||||
</Section>
|
|
||||||
<Section title="Flavor Text">
|
|
||||||
<Box style={{ wordBreak: 'break-all' }} preserveWhitespace>
|
|
||||||
{props.overlay.flavor_text || 'Unset.'}
|
|
||||||
</Box>
|
|
||||||
</Section>
|
|
||||||
</Section>
|
|
||||||
);
|
|
||||||
};
|
|
||||||
|
|
||||||
const CharacterDirectoryList = (props) => {
|
|
||||||
const { act, data } = useBackend<Data>();
|
|
||||||
|
|
||||||
const { directory } = data;
|
|
||||||
|
|
||||||
const [sortId, setSortId] = useState<string>('name');
|
|
||||||
const [sortOrder, setSortOrder] = useState<string>('name');
|
|
||||||
|
|
||||||
function handleSortId(value: string) {
|
|
||||||
setSortId(value);
|
|
||||||
}
|
|
||||||
function handleSortOrder(value: string) {
|
|
||||||
setSortOrder(value);
|
|
||||||
}
|
|
||||||
|
|
||||||
return (
|
|
||||||
<Section
|
|
||||||
title="Directory"
|
|
||||||
buttons={
|
|
||||||
<Button icon="sync" onClick={() => act('refresh')}>
|
|
||||||
Refresh
|
|
||||||
</Button>
|
|
||||||
}
|
|
||||||
>
|
|
||||||
<Table>
|
|
||||||
<Table.Row bold>
|
|
||||||
<SortButton
|
|
||||||
id="name"
|
|
||||||
sortId={sortId}
|
|
||||||
sortOrder={sortOrder}
|
|
||||||
onSortId={handleSortId}
|
|
||||||
onSortOrder={handleSortOrder}
|
|
||||||
>
|
|
||||||
Name
|
|
||||||
</SortButton>
|
|
||||||
<SortButton
|
|
||||||
id="species"
|
|
||||||
sortId={sortId}
|
|
||||||
sortOrder={sortOrder}
|
|
||||||
onSortId={handleSortId}
|
|
||||||
onSortOrder={handleSortOrder}
|
|
||||||
>
|
|
||||||
Species
|
|
||||||
</SortButton>
|
|
||||||
<SortButton
|
|
||||||
id="tag"
|
|
||||||
sortId={sortId}
|
|
||||||
sortOrder={sortOrder}
|
|
||||||
onSortId={handleSortId}
|
|
||||||
onSortOrder={handleSortOrder}
|
|
||||||
>
|
|
||||||
Vore Tag
|
|
||||||
</SortButton>
|
|
||||||
<SortButton
|
|
||||||
id="erptag"
|
|
||||||
sortId={sortId}
|
|
||||||
sortOrder={sortOrder}
|
|
||||||
onSortId={handleSortId}
|
|
||||||
onSortOrder={handleSortOrder}
|
|
||||||
>
|
|
||||||
ERP Tag
|
|
||||||
</SortButton>
|
|
||||||
<Table.Cell collapsing textAlign="right">
|
|
||||||
View
|
|
||||||
</Table.Cell>
|
|
||||||
</Table.Row>
|
|
||||||
{directory
|
|
||||||
.sort((a, b) => {
|
|
||||||
const i = sortOrder ? 1 : -1;
|
|
||||||
return a[sortId].localeCompare(b[sortId]) * i;
|
|
||||||
})
|
|
||||||
.map((character, i) => (
|
|
||||||
<Table.Row key={i} backgroundColor={getTagColor(character.tag)}>
|
|
||||||
<Table.Cell p={1}>{character.name}</Table.Cell>
|
|
||||||
<Table.Cell>{character.species}</Table.Cell>
|
|
||||||
<Table.Cell>{character.tag}</Table.Cell>
|
|
||||||
<Table.Cell>{character.erptag}</Table.Cell>
|
|
||||||
<Table.Cell collapsing textAlign="right">
|
|
||||||
<Button
|
|
||||||
onClick={() => props.onOverlay(character)}
|
|
||||||
color="transparent"
|
|
||||||
icon="sticky-note"
|
|
||||||
mr={1}
|
|
||||||
>
|
|
||||||
View
|
|
||||||
</Button>
|
|
||||||
</Table.Cell>
|
|
||||||
</Table.Row>
|
|
||||||
))}
|
|
||||||
</Table>
|
|
||||||
</Section>
|
|
||||||
);
|
|
||||||
};
|
|
||||||
|
|
||||||
const SortButton = (props: {
|
|
||||||
id: string;
|
|
||||||
sortId: string;
|
|
||||||
sortOrder: string;
|
|
||||||
onSortId: Function;
|
|
||||||
onSortOrder: Function;
|
|
||||||
children: ReactNode | string;
|
|
||||||
}) => {
|
|
||||||
const { id, children } = props;
|
|
||||||
|
|
||||||
// Hey, same keys mean same data~
|
|
||||||
|
|
||||||
return (
|
|
||||||
<Table.Cell collapsing>
|
|
||||||
<Button
|
|
||||||
width="100%"
|
|
||||||
color={props.sortId !== id && 'transparent'}
|
|
||||||
onClick={() => {
|
|
||||||
if (props.sortId === id) {
|
|
||||||
props.onSortOrder(!props.sortOrder);
|
|
||||||
} else {
|
|
||||||
props.onSortId(id);
|
|
||||||
props.onSortOrder(true);
|
|
||||||
}
|
|
||||||
}}
|
|
||||||
>
|
|
||||||
{children}
|
|
||||||
{props.sortId === id && (
|
|
||||||
<Icon
|
|
||||||
name={props.sortOrder ? 'sort-up' : 'sort-down'}
|
|
||||||
ml="0.25rem;"
|
|
||||||
/>
|
|
||||||
)}
|
|
||||||
</Button>
|
|
||||||
</Table.Cell>
|
|
||||||
);
|
|
||||||
};
|
|
||||||
@@ -4984,8 +4984,6 @@
|
|||||||
#include "modular_chomp\code\modules\mob\language\language.dm"
|
#include "modular_chomp\code\modules\mob\language\language.dm"
|
||||||
#include "modular_chomp\code\modules\mob\living\emote.dm"
|
#include "modular_chomp\code\modules\mob\living\emote.dm"
|
||||||
#include "modular_chomp\code\modules\mob\living\living.dm"
|
#include "modular_chomp\code\modules\mob\living\living.dm"
|
||||||
#include "modular_chomp\code\modules\mob\living\living_defines.dm"
|
|
||||||
#include "modular_chomp\code\modules\mob\living\ooc_notes.dm"
|
|
||||||
#include "modular_chomp\code\modules\mob\living\carbon\carbon.dm"
|
#include "modular_chomp\code\modules\mob\living\carbon\carbon.dm"
|
||||||
#include "modular_chomp\code\modules\mob\living\carbon\human\emote.dm"
|
#include "modular_chomp\code\modules\mob\living\carbon\human\emote.dm"
|
||||||
#include "modular_chomp\code\modules\mob\living\carbon\human\human.dm"
|
#include "modular_chomp\code\modules\mob\living\carbon\human\human.dm"
|
||||||
|
|||||||
Reference in New Issue
Block a user