mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-30 00:29:02 +01:00
Adds some Fish Content (#88213)
## About The Pull Request Adds a new biotype, MOB_AQUATIC, indicating the mob is water-themed somehow. Given to carp, lobstrosities, frogs, axolotls, penguins, fire sharks. Aquatic mobs can be hooked by fishing rods, even without a jawed fishing hook installed. The carp and fish infusion sets now give the infusee the aquatic biotype. Added support for infusions adding a biotype. You can check for a fish's pulse with a stethoscope, which will tell you its status even without fishing skill. Refined fish health status checks to be more precise. Added 'Fishy' Reagent, a version of strange reagent that only works for fish or aquatic biotype mobs. It's made with omnizine, saltwater, and carpotoxin or tetrodotoxin. Added a lifish chemical reaction that creates fish. ## Why It's Good For The Game Fish content fish content fish content > Adds a new biotype, MOB_AQUATIC, indicating the mob is water-themed somehow. Given to carp, lobstrosities, frogs, axolotls, penguins, fire sharks. We were really missing this one by now. > Aquatic mobs can be hooked by fishing rods, even without a jawed fishing hook installed. > The carp and fish infusion sets now give the infusee the aquatic biotype. Added support for infusions adding a biotype. I want to reel in fish people. This is going to be hilarious. > You can check for a fish's pulse with a stethoscope, which will tell you its status even without fishing skill. Fish doctor content - also lets you see the exact status of a fish's health even if you haven't interacted w/ fishing that shift. > Added 'Fishy' Reagent, a version of strange reagent that only works for fish or aquatic biotype mobs. It's made with omnizine, saltwater, and carpotoxin or tetrodotoxin. A somewhat easier to get version of strange reagent, purely for fish, as they die very easily and the road to making SR is a large diversion. I might add this to cargo, maybe? > Added a lifish chemical reaction that creates fish. Fish. fish fish fish fish fish. @Ghommie ## Changelog 🆑 add: Adds a new biotype, MOB_AQUATIC, indicating the mob is water-themed somehow. Given to carp, lobstrosities, frogs, axolotls, penguins, fire sharks. add: Aquatic mobs can be hooked by fishing rods, even without a jawed fishing hook installed. add: The carp and fish infusion sets now give the infusee the aquatic biotype. Added support for infusions adding a biotype. add: You can check for a fish's pulse with a stethoscope, which will tell you its status even without fishing skill. qol: Refined fish health status checks to be more precise. add: Added 'Fishy' Reagent, a version of strange reagent that only works for fish or aquatic biotype mobs. It's made with omnizine, saltwater, and carpotoxin or tetrodotoxin. add: Added a lifish chemical reaction that creates fish. /🆑 --------- Co-authored-by: _0Steven <42909981+00-Steven@users.noreply.github.com> Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
This commit is contained in:
co-authored by
_0Steven
Ghom
parent
a9fe2fe29d
commit
fe7c8e1fde
@@ -219,8 +219,26 @@
|
||||
if(istype(held_item, /obj/item/fish_analyzer))
|
||||
context[SCREENTIP_CONTEXT_LMB] = "Scan"
|
||||
return CONTEXTUAL_SCREENTIP_SET
|
||||
if(istype(held_item, /obj/item/clothing/neck/stethoscope))
|
||||
context[SCREENTIP_CONTEXT_LMB] = "Check Pulse"
|
||||
return CONTEXTUAL_SCREENTIP_SET
|
||||
return NONE
|
||||
|
||||
/obj/item/fish/item_interaction(mob/living/user, obj/item/tool, list/modifiers)
|
||||
if(!istype(tool, /obj/item/clothing/neck/stethoscope))
|
||||
return NONE
|
||||
user.balloon_alert_to_viewers("checking pulse")
|
||||
if(!do_after(user, 2.5 SECONDS, src))
|
||||
return ITEM_INTERACT_FAILURE
|
||||
// Sir... I'm afraid your fish is dying.
|
||||
user.visible_message(span_notice("[user] checks the pulse of [src] with [tool]."), span_notice("You check the pulse of [src] with [tool]."))
|
||||
var/warns = get_health_warnings(user, always_deep = TRUE)
|
||||
if(!warns)
|
||||
to_chat(user, span_notice("[src] appears to be perfectly healthy!"))
|
||||
return ITEM_INTERACT_SUCCESS
|
||||
to_chat(user, warns)
|
||||
return ITEM_INTERACT_SUCCESS
|
||||
|
||||
/obj/item/fish/interact_with_atom_secondary(atom/interacting_with, mob/living/user, list/modifiers)
|
||||
if(!HAS_TRAIT(interacting_with, TRAIT_CATCH_AND_RELEASE))
|
||||
return NONE
|
||||
@@ -434,27 +452,46 @@
|
||||
|
||||
/obj/item/fish/examine(mob/user)
|
||||
. = ..()
|
||||
if(HAS_MIND_TRAIT(user, TRAIT_EXAMINE_DEEPER_FISH))
|
||||
if(status == FISH_DEAD)
|
||||
. += span_deadsay("It's [HAS_MIND_TRAIT(user, TRAIT_NAIVE) ? "taking the big snooze" : "dead"].")
|
||||
else
|
||||
var/list/warnings = list()
|
||||
if(is_starving())
|
||||
warnings += "starving"
|
||||
if(!HAS_TRAIT(src, TRAIT_FISH_STASIS) && !proper_environment())
|
||||
warnings += "drowning"
|
||||
if(health < initial(health) * 0.6)
|
||||
warnings += "sick"
|
||||
if(length(warnings))
|
||||
. += span_warning("It's [english_list(warnings)].")
|
||||
if(HAS_MIND_TRAIT(user, TRAIT_EXAMINE_FISH))
|
||||
. += span_notice("It's [size] cm long.")
|
||||
. += span_notice("It weighs [weight] g.")
|
||||
if(HAS_TRAIT(src, TRAIT_FISHING_BAIT))
|
||||
. += span_smallnoticeital("It can be used as a fishing bait.")
|
||||
|
||||
. += get_health_warnings(user, always_deep = FALSE)
|
||||
|
||||
if(HAS_TRAIT(src, TRAIT_FISHING_BAIT))
|
||||
. += span_smallnoticeital("It can be used as a fishing bait.")
|
||||
|
||||
if(bites_amount)
|
||||
. += span_warning("It's been bitten by someone.")
|
||||
|
||||
/obj/item/fish/proc/get_health_warnings(mob/user, always_deep = FALSE)
|
||||
if(!HAS_MIND_TRAIT(user, TRAIT_EXAMINE_DEEPER_FISH) && !always_deep)
|
||||
return
|
||||
if(status == FISH_DEAD)
|
||||
return span_deadsay("It's [HAS_MIND_TRAIT(user, TRAIT_NAIVE) ? "taking the big snooze" : "dead"].")
|
||||
|
||||
var/list/warnings = list()
|
||||
if(is_starving())
|
||||
warnings += "starving"
|
||||
if(!HAS_TRAIT(src, TRAIT_FISH_STASIS) && !proper_environment())
|
||||
warnings += "drowning"
|
||||
|
||||
var/health_ratio = health / initial(health)
|
||||
switch(health_ratio)
|
||||
if(0 to 0.25)
|
||||
warnings += "dying"
|
||||
if(0.25 to 0.5)
|
||||
warnings += "very unhealthy"
|
||||
if(0.5 to 0.75)
|
||||
warnings += "unhealthy"
|
||||
if(0.75 to 0.9)
|
||||
warnings += "mostly healthy"
|
||||
|
||||
if(length(warnings))
|
||||
. += span_warning("It's [english_list(warnings)].")
|
||||
|
||||
return .
|
||||
|
||||
/**
|
||||
* This proc takes a base size, base weight and deviation arguments to generate new size and weight through a gaussian distribution (bell curve)
|
||||
* Mainly used to determinate the size and weight of caught fish.
|
||||
@@ -961,7 +998,7 @@
|
||||
var/datum/reagent/medicine/strange_reagent/revival = locate() in reagents
|
||||
if(!revival)
|
||||
return
|
||||
if(reagents[revival] >= 2 * w_class)
|
||||
if(reagents[revival] >= 2 * w_class && revival.pre_rez_check(src))
|
||||
set_status(FISH_ALIVE)
|
||||
else
|
||||
balloon_alert_to_viewers("twitches for a moment!")
|
||||
|
||||
Reference in New Issue
Block a user