mirror of
https://github.com/yogstation13/Yogstation.git
synced 2025-02-26 09:04:50 +00:00
eww someone else bit this food (#22748)
This commit is contained in:
@@ -59,7 +59,7 @@
|
||||
/// This person is crying
|
||||
#define TRAIT_CRYING "crying"
|
||||
/// you cannot put this in any container, backpack, box etc
|
||||
#define TRAIT_NO_STORAGE "no-storage"
|
||||
#define TRAIT_NO_STORAGE "no-storage"
|
||||
/// Crafts items using the crafting menu faster
|
||||
#define TRAIT_CRAFTY "crafty"
|
||||
/// Gets a more detailed reagent breakdown when examining
|
||||
@@ -130,6 +130,7 @@
|
||||
#define TRAIT_DIGITIGRADE "digitigrade" // the funny lizard legs
|
||||
/// If the legs are to be displayed like regular legs
|
||||
#define TRAIT_DIGI_SQUISH "didi_squish"
|
||||
#define TRAIT_IGNORE_SHAREDFOOD "ignore_shared_food" // don't get negative moodlet from sharing a plate
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////
|
||||
//---------------------------------Quirk defines----------------------------------//
|
||||
|
||||
@@ -77,6 +77,11 @@
|
||||
mood_change = -4
|
||||
timeout = 4 MINUTES
|
||||
|
||||
/datum/mood_event/shared_food
|
||||
description = "<span class='warning'>I'm eating scraps like an animal...</span>\n"
|
||||
mood_change = -2
|
||||
timeout = 4 MINUTES
|
||||
|
||||
/datum/mood_event/breakfast
|
||||
description = "<span class='nicegreen'>Nothing like a hearty breakfast to start the shift.</span>\n"
|
||||
mood_change = 2
|
||||
|
||||
@@ -42,6 +42,7 @@
|
||||
|
||||
/obj/item/reagent_containers/food/proc/checkLiked(fraction, mob/M)
|
||||
if(last_check_time + 50 < world.time)
|
||||
. = TRUE
|
||||
if(ishuman(M))
|
||||
var/mob/living/carbon/human/H = M
|
||||
if(!HAS_TRAIT(H, TRAIT_AGEUSIA))
|
||||
@@ -64,5 +65,7 @@
|
||||
if((foodtype & BREAKFAST) && world.time - SSticker.round_start_time < STOP_SERVING_BREAKFAST)
|
||||
SEND_SIGNAL(H, COMSIG_ADD_MOOD_EVENT, "breakfast", /datum/mood_event/breakfast)
|
||||
last_check_time = world.time
|
||||
else
|
||||
return FALSE
|
||||
|
||||
#undef STOP_SERVING_BREAKFAST
|
||||
|
||||
@@ -52,9 +52,15 @@ All foods are distributed among various categories. Use common sense.
|
||||
var/list/bonus_reagents //the amount of reagents (usually nutriment and vitamin) added to crafted/cooked snacks, on top of the ingredients reagents.
|
||||
var/customfoodfilling = 1 // whether it can be used as filling in custom food
|
||||
var/list/tastes // for example list("crisps" = 2, "salt" = 1)
|
||||
var/list/datum/weakref/who_bit
|
||||
|
||||
//Placeholder for effect that trigger on eating that aren't tied to reagents.
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/Initialize(mapload)
|
||||
. = ..()
|
||||
if(who_bit == null)
|
||||
who_bit = list()
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/add_initial_reagents()
|
||||
if(tastes && tastes.len)
|
||||
if(list_reagents)
|
||||
@@ -70,6 +76,7 @@ All foods are distributed among various categories. Use common sense.
|
||||
/obj/item/reagent_containers/food/snacks/proc/On_Consume(mob/living/eater)
|
||||
if(!eater)
|
||||
return
|
||||
who_bit |= WEAKREF(eater)
|
||||
if(!reagents.total_volume)
|
||||
var/mob/living/location = loc
|
||||
var/obj/item/trash_item = generate_trash(location)
|
||||
@@ -137,6 +144,16 @@ All foods are distributed among various categories. Use common sense.
|
||||
|
||||
return 0
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/checkLiked(fraction, mob/M)
|
||||
. = ..()
|
||||
if(.)
|
||||
// ewww someone else bit this
|
||||
var/someone_else_bit = islist(who_bit) && ((length(who_bit) > 0 && who_bit[1].resolve() != M) || length(who_bit) > 1)
|
||||
// (most) junky snacks are meant to be shared!
|
||||
if(someone_else_bit && !HAS_TRAIT(M, TRAIT_AGEUSIA) && !HAS_TRAIT(M, TRAIT_IGNORE_SHAREDFOOD) && junkiness <= 0)
|
||||
to_chat(M, span_notice("Eww... Someone else bit this..."))
|
||||
SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "shared_food", /datum/mood_event/shared_food)
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/examine(mob/user)
|
||||
. = ..()
|
||||
switch (bitecount)
|
||||
@@ -148,6 +165,9 @@ All foods are distributed among various categories. Use common sense.
|
||||
. += "[src] was bitten [bitecount] times!"
|
||||
else
|
||||
. += "[src] was bitten multiple times!"
|
||||
var/someone_else_bit = islist(who_bit) && ((length(who_bit) > 0 && who_bit[1].resolve() != user) || length(who_bit) > 1)
|
||||
if(someone_else_bit && junkiness <= 0)
|
||||
. += span_notice("You recognize some bites as not your own.")
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/attackby(obj/item/W, mob/user, params)
|
||||
if(istype(W, /obj/item/storage))
|
||||
|
||||
@@ -47,7 +47,7 @@
|
||||
mood.add_event(null, "fav_food", /datum/mood_event/favorite_food)
|
||||
last_check_time = world.time
|
||||
return
|
||||
..()
|
||||
. = ..()
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/donut/chaos
|
||||
name = "chaos donut"
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
say_mod = "hisses"
|
||||
default_color = "00FF00"
|
||||
species_traits = list(MUTCOLORS,EYECOLOR,DIGITIGRADE,LIPS,HAS_FLESH,HAS_BONE,HAS_TAIL)
|
||||
inherent_traits = list(TRAIT_COLDBLOODED)
|
||||
inherent_traits = list(TRAIT_COLDBLOODED, TRAIT_IGNORE_SHAREDFOOD)
|
||||
inherent_biotypes = MOB_ORGANIC|MOB_HUMANOID|MOB_REPTILE
|
||||
mutant_bodyparts = list("tail_lizard", "snout", "spines", "horns", "frills", "body_markings")
|
||||
mutanttongue = /obj/item/organ/tongue/lizard
|
||||
@@ -175,7 +175,14 @@
|
||||
/datum/species/lizard/create_pref_temperature_perks()
|
||||
var/list/to_add = list()
|
||||
|
||||
to_add += list(list(
|
||||
to_add += list(
|
||||
list(
|
||||
SPECIES_PERK_TYPE = SPECIES_POSITIVE_PERK,
|
||||
SPECIES_PERK_ICON = "hamburger",
|
||||
SPECIES_PERK_NAME = "Communal Eater",
|
||||
SPECIES_PERK_DESC = "Due to the communal nature of Vuulen, they are unbothered by the thought of sharing a meal.",
|
||||
),
|
||||
list(
|
||||
SPECIES_PERK_TYPE = SPECIES_NEUTRAL_PERK,
|
||||
SPECIES_PERK_ICON = "thermometer-half",
|
||||
SPECIES_PERK_NAME = "Cold-Blooded",
|
||||
|
||||
@@ -240,7 +240,7 @@ Slimecrossing Items
|
||||
mood.add_event(null,"gross_food", /datum/mood_event/gross_food)
|
||||
last_check_time = world.time
|
||||
return
|
||||
..()
|
||||
. = ..()
|
||||
|
||||
//Ice stasis block - Chilling Dark Blue
|
||||
/obj/structure/ice_stasis
|
||||
@@ -335,6 +335,6 @@ Slimecrossing Items
|
||||
electrocute_mob(carbie, get_area(src), src)
|
||||
qdel(src)
|
||||
return
|
||||
|
||||
|
||||
stack_item.add(amt)
|
||||
qdel(src)
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
is_dimorphic = FALSE
|
||||
generate_husk_icon = TRUE
|
||||
species_traits = list(EYECOLOR, HAS_TAIL, HAS_FLESH, HAS_BONE, HAIRCOLOR, FACEHAIRCOLOR, MUTCOLORS, MUTCOLORS_SECONDARY) // Robust, but cannot be cloned easily.
|
||||
inherent_traits = list(TRAIT_RESISTCOLD, TRAIT_NOCLONE)
|
||||
inherent_traits = list(TRAIT_RESISTCOLD, TRAIT_NOCLONE, TRAIT_IGNORE_SHAREDFOOD)
|
||||
mutant_bodyparts = list("vox_quills", "vox_body_markings", "vox_facial_quills", "vox_tail", "vox_tail_markings")
|
||||
default_features = list("vox_quills" = "None", "vox_facial_quills" = "None", "vox_body_markings" = "None", "vox_tail" = "lime", "vox_tail_markings" = "None", "vox_skin_tone" = "lime")
|
||||
attack_verbs = list("scratch", "claw")
|
||||
@@ -48,7 +48,7 @@
|
||||
These bioengineered, reptilian, beaked, and quilled beings have a physiological caste system and follow 'The Inviolate' tenets. \
|
||||
Breathing pure nitrogen, they need specialized masks and tanks for survival outside their arkships. \
|
||||
Their insular nature limits their involvement in broader galactic affairs, maintaining a distinct, yet isolated presence away from other species."
|
||||
|
||||
|
||||
/datum/species/vox/get_species_lore()
|
||||
return list("Vox have no colonies of their own to speak of. Most Vox originate from a location known as the Shoal, a sprawling, labyrinth-like space megalith of debris and asteroids fused together over countless orbits. It is there where their cutthroat and opportunistic behavior stems from.",\
|
||||
"Little is known of Vox history itself, as the Vox do not keep many records beyond personal accomplishments and tales of profit and triumph. They have lived among the Shoal and the stars as long as they or anyone else can remember.",\
|
||||
@@ -77,7 +77,7 @@
|
||||
vox.dna.update_uf_block(DNA_VOX_FACIAL_QUILLS_BLOCK)
|
||||
vox.dna.update_uf_block(DNA_VOX_QUILLS_BLOCK)
|
||||
vox.update_hair()
|
||||
|
||||
|
||||
/datum/species/vox/survival_box_replacement(mob/living/carbon/human/box_holder, obj/item/storage/box/survival_box, list/soon_deleted_items, list/soon_added_items)
|
||||
var/mask_to_replace = /obj/item/clothing/mask/breath/vox
|
||||
if(mask_to_replace in soon_added_items)
|
||||
@@ -154,6 +154,12 @@
|
||||
SPECIES_PERK_NAME = "Imperishable Organs",
|
||||
SPECIES_PERK_DESC = "Vox organs contain advanced cybernetics that prevent them from decaying.",
|
||||
),
|
||||
list(
|
||||
SPECIES_PERK_TYPE = SPECIES_POSITIVE_PERK,
|
||||
SPECIES_PERK_ICON = "hamburger",
|
||||
SPECIES_PERK_NAME = "Communal Eater",
|
||||
SPECIES_PERK_DESC = "Due to their tribal background, Vox are unbothered by the thought of sharing a meal.",
|
||||
),
|
||||
list(
|
||||
SPECIES_PERK_TYPE = SPECIES_NEGATIVE_PERK,
|
||||
SPECIES_PERK_ICON = "bolt",
|
||||
|
||||
Reference in New Issue
Block a user