Wisdom Cows contain unusual milk (#82269)

## About The Pull Request

Wisdom Cows can now be milked for a random reagent (excepting the
randomly generated reagent blacklist).
Also I changed it to say `you milk the cow` instead of `you milk the
udder` because the latter is stupid.

## Why It's Good For The Game

My experience is that people totally ignore this event when it occurs,
which is _fine_ when we have so many events and they don't all need to
be high impact but I think someone discovering that you can milk the cow
for cognac or meth or something could add something to a round.
I want people to bicker over ownership of the cow, basically.

If the reagent is annoying you can simply speak to the cow to receive
its wisdom and it will disappear.

## Changelog

🆑
add: Wise cows produce surprising milk.
spellcheck: You now milk the owner of an udder, not the udder.
/🆑
This commit is contained in:
Jacquerel
2024-03-28 12:35:12 -06:00
committed by GitHub
parent 2888810b45
commit 6ab9f654f1
5 changed files with 34 additions and 17 deletions
@@ -33,6 +33,8 @@
var/tame_message = "lets out a happy moo"
/// singular version for player cows
var/self_tame_message = "let out a happy moo"
/// What kind of juice do we produce?
var/milked_reagent = /datum/reagent/consumable/milk
/mob/living/basic/cow/Initialize(mapload)
AddComponent(/datum/component/tippable, \
@@ -42,14 +44,14 @@
post_tipped_callback = CALLBACK(src, PROC_REF(after_cow_tipped)))
AddElement(/datum/element/pet_bonus, "moos happily!")
AddElement(/datum/element/swabable, CELL_LINE_TABLE_COW, CELL_VIRUS_TABLE_GENERIC_MOB, 1, 5)
udder_component()
setup_udder()
setup_eating()
. = ..()
ai_controller.set_blackboard_key(BB_BASIC_FOODS, typecacheof(food_types))
///wrapper for the udder component addition so you can have uniquely uddered cow subtypes
/mob/living/basic/cow/proc/udder_component()
AddComponent(/datum/component/udder)
/mob/living/basic/cow/proc/setup_udder()
AddComponent(/datum/component/udder, reagent_produced_override = milked_reagent)
/*
* food related components and elements are set up here for a few reasons:
@@ -21,15 +21,13 @@
food_types = list(/obj/item/food/grown/galaxythistle)
tame_message = "nods with respect"
self_tame_message = "nod with respect"
milked_reagent = /datum/reagent/drug/mushroomhallucinogen
/mob/living/basic/cow/moonicorn/Initialize(mapload)
. = ..()
AddElement(/datum/element/venomous, /datum/reagent/pax, 5, injection_flags = INJECT_CHECK_PENETRATE_THICK | INJECT_CHECK_IGNORE_SPECIES)
AddElement(/datum/element/movement_turf_changer, /turf/open/floor/grass/fairy)
/mob/living/basic/cow/moonicorn/udder_component()
AddComponent(/datum/component/udder, /obj/item/udder, null, null, /datum/reagent/drug/mushroomhallucinogen)
/mob/living/basic/cow/moonicorn/setup_eating()
var/static/list/food_types
if(!food_types)
@@ -9,7 +9,8 @@
///How much experience this cow will grant.
var/granted_experience
/mob/living/basic/cow/wisdom/Initialize(mapload, granted_wisdom, granted_experience = 500)
/mob/living/basic/cow/wisdom/Initialize(mapload, granted_wisdom, granted_experience = 500, milked_reagent = null)
src.milked_reagent = milked_reagent
. = ..()
src.granted_wisdom = granted_wisdom
if(!granted_wisdom)
@@ -21,6 +22,11 @@
/mob/living/basic/cow/wisdom/setup_eating()
return //cannot tame me! and I don't care about eatin' nothing, neither!
/mob/living/basic/cow/wisdom/setup_udder()
if (isnull(milked_reagent))
milked_reagent = get_random_reagent_id()
return ..()
/datum/ai_controller/basic_controller/cow/wisdom
//don't give a targeting strategy
blackboard = list(