From c4af5850d1e6e4bc0b18e8f6cf89546e0a978ea7 Mon Sep 17 00:00:00 2001 From: Arokha Sieyes Date: Mon, 26 Feb 2018 20:27:13 -0500 Subject: [PATCH 1/2] Readds NIF examine text Recoded it a little different. The verb is in OOC, if you have a NIF. It's saved as part of the NIF, so if your head explodes and you lose your NIF, you'll need to describe your new one. Also fixes an unrelated bug where ghosts examining people print all sorts of crazy messages about being able to trample people. --- .../mob/living/carbon/human/examine.dm | 2 +- .../mob/living/carbon/human/examine_vr.dm | 19 +++++-------- code/modules/nifsoft/nif.dm | 28 ++++++++++++++++++- code/modules/vore/eating/living_vr.dm | 6 ---- code/modules/vore/eating/vore_vr.dm | 6 ---- 5 files changed, 35 insertions(+), 26 deletions(-) diff --git a/code/modules/mob/living/carbon/human/examine.dm b/code/modules/mob/living/carbon/human/examine.dm index bedb652f381..36e38532957 100644 --- a/code/modules/mob/living/carbon/human/examine.dm +++ b/code/modules/mob/living/carbon/human/examine.dm @@ -302,7 +302,7 @@ msg += attempt_vr(src,"examine_bellies",args) //VOREStation Code msg += attempt_vr(src,"examine_pickup_size",args) //VOREStation Code msg += attempt_vr(src,"examine_step_size",args) //VOREStation Code - msg += attempt_vr(src,"nif_examine",args) //VOREStation Code + msg += attempt_vr(src,"examine_nif",args) //VOREStation Code if(mSmallsize in mutations) msg += "[T.He] [T.is] small halfling!\n" diff --git a/code/modules/mob/living/carbon/human/examine_vr.dm b/code/modules/mob/living/carbon/human/examine_vr.dm index 9d86241dd12..12c7b231356 100644 --- a/code/modules/mob/living/carbon/human/examine_vr.dm +++ b/code/modules/mob/living/carbon/human/examine_vr.dm @@ -141,23 +141,18 @@ return FALSE -/mob/living/carbon/human/proc/examine_pickup_size(mob/living/carbon/human/H) +/mob/living/carbon/human/proc/examine_pickup_size(mob/living/H) var/message = "" - if(isliving(src) && (H.get_effective_size() - src.get_effective_size()) >= 0.50) + if(istype(H) && (H.get_effective_size() - src.get_effective_size()) >= 0.50) message = "They are small enough that you could easily pick them up!\n" return message - -/mob/living/carbon/human/proc/examine_step_size(mob/living/carbon/human/H) +/mob/living/carbon/human/proc/examine_step_size(mob/living/H) var/message = "" - if(isliving(src) && (H.get_effective_size() - src.get_effective_size()) >= 0.75) + if(istype(H) && (H.get_effective_size() - src.get_effective_size()) >= 0.75) message = "They are small enough that you could easily trample them!\n" return message -/mob/living/carbon/human/proc/nif_examine(mob/living/carbon/human/H) - var/message = "" - if(!src.nif || src.conceal_nif || !src.nif_examine) //Do they have a nif, do they have the NIF concealed, and do they have a NIF examine message? - return "" //If so, no message. - else - message += "[src.nif_examine]\n" - return message +/mob/living/carbon/human/proc/examine_nif(mob/living/carbon/human/H) + if(nif && nif.examine_msg) //If you have one set, anyway. + return "[nif.examine_msg]\n" diff --git a/code/modules/nifsoft/nif.dm b/code/modules/nifsoft/nif.dm index 614ce79d4c8..19cd74b8850 100644 --- a/code/modules/nifsoft/nif.dm +++ b/code/modules/nifsoft/nif.dm @@ -32,7 +32,8 @@ You can also set the stat of a NIF to NIF_TEMPFAIL without any issues to disable var/tmp/list/nifsofts[TOTAL_NIF_SOFTWARE] // All our nifsofts var/tmp/list/nifsofts_life = list() // Ones that want to be talked to on life() var/owner // Owner character name - + var/examine_msg //Message shown on examine. + var/tmp/vision_flags = 0 // Flags implants set for faster lookups var/tmp/health_flags = 0 var/tmp/combat_flags = 0 @@ -69,6 +70,7 @@ You can also set the stat of a NIF to NIF_TEMPFAIL without any issues to disable //Put loaded data here if we loaded any save_data = islist(load_data) ? load_data.Copy() : list() + examine_msg = save_data["examine_msg"] || "There's a certain spark to their eyes." //If given a human on spawn (probably from persistence) if(ishuman(newloc)) @@ -110,6 +112,7 @@ You can also set the stat of a NIF to NIF_TEMPFAIL without any issues to disable human = H human.nif = src stat = NIF_INSTALLING + H.verbs |= /mob/living/carbon/human/proc/set_nif_examine return TRUE return FALSE @@ -138,6 +141,7 @@ You can also set the stat of a NIF to NIF_TEMPFAIL without any issues to disable SC.brainmobs = list() stat = NIF_PREINSTALL vis_update() + H.verbs |= /mob/living/carbon/human/proc/set_nif_examine H.nif = null human = null install_done = null @@ -572,3 +576,25 @@ You can also set the stat of a NIF to NIF_TEMPFAIL without any issues to disable playsound(T,'sound/effects/slime_squish.ogg',50,1) else return ..() + +/mob/living/carbon/human/proc/set_nif_examine() + set name = "NIF Appearance" + set desc = "If your NIF alters your appearance in some way, describe it here." + set category = "OOC" + + if(!nif) + verbs -= /mob/living/carbon/human/proc/set_nif_examine + to_chat(src,"You don't have a NIF, not sure why this was here.") + return + + var/new_flavor = sanitize(input(src,"Describe how your NIF alters your appearance, like glowy eyes or metal plate on your head, etc. Be sensible. Clear this for no examine text. 128ch max.","Describe NIF", nif.examine_msg) as null|text, max_length = 128) + //They clicked cancel or meanwhile lost their NIF + if(!nif || isnull(new_flavor)) + return //No changes + //Sanitize or they cleaned it entirely + if(!new_flavor) + nif.examine_msg = null + nif.save_data -= "examine_msg" + else + nif.examine_msg = new_flavor + nif.save_data["examine_msg"] = new_flavor diff --git a/code/modules/vore/eating/living_vr.dm b/code/modules/vore/eating/living_vr.dm index ed9fe0ae168..78cb2845bfe 100644 --- a/code/modules/vore/eating/living_vr.dm +++ b/code/modules/vore/eating/living_vr.dm @@ -15,8 +15,6 @@ var/vore_taste = null // What the character tastes like var/no_vore = 0 // If the character/mob can vore. var/openpanel = 0 // Is the vore panel open? - var/conceal_nif = 0 // Do they wish to conceal their NIF from examine? - var/nif_examine = "There's a certain spark to their eyes" //The examine text of their NIF. This is the default placeholder. var/noisy = 0 // Toggle audible hunger. var/absorbing_prey = 0 // Determines if the person is using the succubus drain or not. See station_special_abilities_vr. var/drain_finalized = 0 // Determines if the succubus drain will be KO'd/absorbed. Can be toggled on at any time. @@ -236,8 +234,6 @@ P.allowmobvore = src.allowmobvore P.belly_prefs = src.vore_organs P.vore_taste = src.vore_taste - P.nif_examine = src.nif_examine - P.conceal_nif = src.conceal_nif P.can_be_drop_prey = src.can_be_drop_prey P.can_be_drop_pred = src.can_be_drop_pred @@ -257,8 +253,6 @@ src.allowmobvore = P.allowmobvore src.vore_organs = list() src.vore_taste = P.vore_taste - src.nif_examine = P.nif_examine - src.conceal_nif = P.conceal_nif src.can_be_drop_prey = P.can_be_drop_prey src.can_be_drop_pred = P.can_be_drop_pred diff --git a/code/modules/vore/eating/vore_vr.dm b/code/modules/vore/eating/vore_vr.dm index 4988faa81ec..b67978c2cf6 100644 --- a/code/modules/vore/eating/vore_vr.dm +++ b/code/modules/vore/eating/vore_vr.dm @@ -45,8 +45,6 @@ V::::::V V::::::VO:::::::OOO:::::::ORR:::::R R:::::REE::::::EEEEEE var/allowmobvore = 1 var/list/belly_prefs = list() var/vore_taste - var/conceal_nif - var/nif_examine var/can_be_drop_prey var/can_be_drop_pred @@ -109,8 +107,6 @@ V::::::V V::::::VO:::::::OOO:::::::ORR:::::R R:::::REE::::::EEEEEE S["allowmobvore"] >> allowmobvore S["belly_prefs"] >> belly_prefs S["vore_taste"] >> vore_taste - S["conceal_nif"] >> conceal_nif - S["nif_examine"] >> nif_examine S["can_be_drop_prey"] >> can_be_drop_prey S["can_be_drop_pred"] >> can_be_drop_pred @@ -134,8 +130,6 @@ V::::::V V::::::VO:::::::OOO:::::::ORR:::::R R:::::REE::::::EEEEEE S["allowmobvore"] << allowmobvore S["belly_prefs"] << belly_prefs S["vore_taste"] << vore_taste - S["conceal_nif"] << conceal_nif - S["nif_examine"] << nif_examine S["can_be_drop_prey"] << can_be_drop_prey S["can_be_drop_pred"] << can_be_drop_pred From 66f2acb931d77c46b40c8d0818287ed9fd7ab9b5 Mon Sep 17 00:00:00 2001 From: Arokha Sieyes Date: Tue, 27 Feb 2018 11:34:57 -0500 Subject: [PATCH 2/2] Handle NIF examine saving string vs null --- code/modules/nifsoft/nif.dm | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/code/modules/nifsoft/nif.dm b/code/modules/nifsoft/nif.dm index 19cd74b8850..da4594d5575 100644 --- a/code/modules/nifsoft/nif.dm +++ b/code/modules/nifsoft/nif.dm @@ -70,7 +70,12 @@ You can also set the stat of a NIF to NIF_TEMPFAIL without any issues to disable //Put loaded data here if we loaded any save_data = islist(load_data) ? load_data.Copy() : list() - examine_msg = save_data["examine_msg"] || "There's a certain spark to their eyes." + var/saved_examine_msg = save_data["examine_msg"] + + //If it's an empty string, they want it blank. If null, it's never been saved, give default. + if(isnull(saved_examine_msg)) + saved_examine_msg = "There's a certain spark to their eyes." + examine_msg = saved_examine_msg //If given a human on spawn (probably from persistence) if(ishuman(newloc)) @@ -591,10 +596,10 @@ You can also set the stat of a NIF to NIF_TEMPFAIL without any issues to disable //They clicked cancel or meanwhile lost their NIF if(!nif || isnull(new_flavor)) return //No changes - //Sanitize or they cleaned it entirely + //Sanitize or user cleaned it entirely if(!new_flavor) - nif.examine_msg = null - nif.save_data -= "examine_msg" + nif.examine_msg = "" + nif.save_data["examine_msg"] = "" else nif.examine_msg = new_flavor nif.save_data["examine_msg"] = new_flavor