mirror of
https://github.com/VOREStation/VOREStation.git
synced 2026-08-26 05:27:39 +01:00
Merge pull request #8377 from lbnesquik/Kot-Smell-stuff
Add a smell system, closely matching the flavor system.
This commit is contained in:
@@ -18,6 +18,7 @@
|
||||
var/revive_ready = REVIVING_READY // Only used for creatures that have the xenochimera regen ability, so far.
|
||||
var/metabolism = 0.0015
|
||||
var/vore_taste = null // What the character tastes like
|
||||
var/vore_smell = null // What the character smells like
|
||||
var/no_vore = FALSE // If the character/mob can vore.
|
||||
var/noisy = FALSE // Toggle audible hunger.
|
||||
var/absorbing_prey = 0 // Determines if the person is using the succubus drain or not. See station_special_abilities_vr.
|
||||
@@ -38,6 +39,7 @@
|
||||
/hook/living_new/proc/vore_setup(mob/living/M)
|
||||
M.verbs += /mob/living/proc/escapeOOC
|
||||
M.verbs += /mob/living/proc/lick
|
||||
M.verbs += /mob/living/proc/smell
|
||||
M.verbs += /mob/living/proc/switch_scaling
|
||||
if(M.no_vore) //If the mob isn't supposed to have a stomach, let's not give it an insidepanel so it can make one for itself, or a stomach.
|
||||
return TRUE
|
||||
@@ -231,6 +233,7 @@
|
||||
P.digest_leave_remains = src.digest_leave_remains
|
||||
P.allowmobvore = src.allowmobvore
|
||||
P.vore_taste = src.vore_taste
|
||||
P.vore_smell = src.vore_smell
|
||||
P.permit_healbelly = src.permit_healbelly
|
||||
P.can_be_drop_prey = src.can_be_drop_prey
|
||||
P.can_be_drop_pred = src.can_be_drop_pred
|
||||
@@ -261,6 +264,7 @@
|
||||
digest_leave_remains = P.digest_leave_remains
|
||||
allowmobvore = P.allowmobvore
|
||||
vore_taste = P.vore_taste
|
||||
vore_smell = P.vore_smell
|
||||
permit_healbelly = P.permit_healbelly
|
||||
can_be_drop_prey = P.can_be_drop_prey
|
||||
can_be_drop_pred = P.can_be_drop_pred
|
||||
@@ -356,6 +360,43 @@
|
||||
var/datum/reagent/R = H.touching.reagent_list[1]
|
||||
taste_message += " You also get the flavor of [R.taste_description] from something on them"
|
||||
return taste_message
|
||||
|
||||
|
||||
|
||||
//This is just the above proc but switched about.
|
||||
/mob/living/proc/smell(mob/living/smelled in living_mobs(1))
|
||||
set name = "Smell"
|
||||
set category = "IC"
|
||||
set desc = "Smell someone nearby!"
|
||||
set popup_menu = FALSE
|
||||
|
||||
if(!istype(smelled))
|
||||
return
|
||||
if(!checkClickCooldown() || incapacitated(INCAPACITATION_ALL))
|
||||
return
|
||||
|
||||
setClickCooldown(DEFAULT_ATTACK_COOLDOWN)
|
||||
visible_message("<span class='warning'>[src] smell [smelled]!</span>","<span class='notice'>You smells [smelled]. They smell like [smelled.get_smell_message()].</span>","<b>Sniff!</b>")
|
||||
|
||||
/mob/living/proc/get_smell_message(allow_generic = 1)
|
||||
if(!vore_smell && !allow_generic)
|
||||
return FALSE
|
||||
|
||||
var/smell_message = ""
|
||||
if(vore_smell && (vore_smell != ""))
|
||||
smell_message += "[vore_smell]"
|
||||
else
|
||||
if(ishuman(src))
|
||||
var/mob/living/carbon/human/H = src
|
||||
smell_message += "a normal [H.custom_species ? H.custom_species : H.species.name]"
|
||||
else
|
||||
smell_message += "a plain old normal [src]"
|
||||
|
||||
return smell_message
|
||||
|
||||
|
||||
|
||||
|
||||
//
|
||||
// OOC Escape code for pref-breaking or AFK preds
|
||||
//
|
||||
|
||||
@@ -51,6 +51,7 @@ V::::::V V::::::VO:::::::OOO:::::::ORR:::::R R:::::REE::::::EEEEEE
|
||||
var/allowmobvore = TRUE
|
||||
var/list/belly_prefs = list()
|
||||
var/vore_taste = "nothing in particular"
|
||||
var/vore_smell = "nothing in particular"
|
||||
var/permit_healbelly = TRUE
|
||||
var/can_be_drop_prey = FALSE
|
||||
var/can_be_drop_pred = FALSE
|
||||
@@ -123,6 +124,7 @@ V::::::V V::::::VO:::::::OOO:::::::ORR:::::R R:::::REE::::::EEEEEE
|
||||
digest_leave_remains = json_from_file["digest_leave_remains"]
|
||||
allowmobvore = json_from_file["allowmobvore"]
|
||||
vore_taste = json_from_file["vore_taste"]
|
||||
vore_smell = json_from_file["vore_smell"]
|
||||
permit_healbelly = json_from_file["permit_healbelly"]
|
||||
can_be_drop_prey = json_from_file["can_be_drop_prey"]
|
||||
can_be_drop_pred = json_from_file["can_be_drop_pred"]
|
||||
@@ -166,6 +168,7 @@ V::::::V V::::::VO:::::::OOO:::::::ORR:::::R R:::::REE::::::EEEEEE
|
||||
"digest_leave_remains" = digest_leave_remains,
|
||||
"allowmobvore" = allowmobvore,
|
||||
"vore_taste" = vore_taste,
|
||||
"vore_smell" = vore_smell,
|
||||
"permit_healbelly" = permit_healbelly,
|
||||
"can_be_drop_prey" = can_be_drop_prey,
|
||||
"can_be_drop_pred" = can_be_drop_pred,
|
||||
|
||||
@@ -351,6 +351,7 @@
|
||||
dat += jointext(nightmare_list, null) //AAAA
|
||||
|
||||
dat += "<br><a href='?src=\ref[src];setflavor=1'>Set Your Taste</a>"
|
||||
dat += "<br><a href='?src=\ref[src];setsmell=1'>Set Your Smell</a>"
|
||||
dat += "<br><a href='?src=\ref[src];togglenoisy=1'>Toggle Hunger Noises</a>"
|
||||
|
||||
//Under the last HR, save and stuff.
|
||||
@@ -905,6 +906,17 @@
|
||||
return FALSE
|
||||
user.vore_taste = new_flavor
|
||||
|
||||
if(href_list["setsmell"])
|
||||
var/new_smell = html_encode(input(usr,"What your character smells like (40ch limit). This text will be printed to the pred after 'X smells of...' so just put something like 'strawberries and cream':","Character Smell",user.vore_smell) as text|null)
|
||||
if(!new_smell)
|
||||
return FALSE
|
||||
|
||||
new_smell = readd_quotes(new_smell)
|
||||
if(length(new_smell) > FLAVOR_MAX)
|
||||
alert("Entered perfume/smell text too long. [FLAVOR_MAX] character limit.","Error!")
|
||||
return FALSE
|
||||
user.vore_smell = new_smell
|
||||
|
||||
if(href_list["toggle_dropnom_pred"])
|
||||
var/choice = alert(user, "This toggle is for spontaneous, environment related vore as a predator, including drop-noms, teleporters, etc. You are currently [user.can_be_drop_pred ? " able to eat prey that you encounter by environmental actions." : "avoiding eating prey encountered in the environment."]", "", "Be Pred", "Cancel", "Don't be Pred")
|
||||
switch(choice)
|
||||
|
||||
Reference in New Issue
Block a user