Files
FalloutFalconandGitHub d2f34e33be moves abstract_type up to datum, spawners wont spawn them (#92909)
## About The Pull Request
moves all implementations (im aware of) for "Im a parent type dont spawn
me please" to the datum layer to standardized behavior
adds a standerized proc for filtering out "bad" items that we dont want
spawning. applies to it the subtype vendor, gifts, and a new spawner and
mystery box for a random gun (neither playerfacing)
"port" of https://github.com/shiptest-ss13/Shiptest/pull/4621



https://github.com/user-attachments/assets/22f6f0b2-b44e-411a-b3dc-6b97dc0287aa

small warning: I dont have EVERY abstract type defined right now but,
ive done a good enough job for now. Im tired of data entry rn
## Why It's Good For The Game
standardizing behavior. Might be a micro hit to performance however

having this lets us not rely on icon state to determine whether
something is a parent type and makes it much easier to tell something is
a parent type (could be applied further to things like admin spawning
menus and things like that).

need feedback on if this is actually good for the game.
## Changelog
🆑
add: Soda cans show up in the silver slime drink table.
add: Examine tag for items that are not mean to show up ingame.
refactor: Standardizes how gifts rule out abstract types.
fix: gifts no longer check if something has an inhand, massively
expanding the list of potential items.
/🆑
2025-09-13 00:36:15 +02:00

94 lines
3.3 KiB
Plaintext

/obj/item/food/bait
name = "this is bait"
desc = "you got baited."
icon = 'icons/obj/fishing.dmi'
abstract_type = /obj/item/food/bait
/// Quality trait of this bait
var/bait_quality = TRAIT_BASIC_QUALITY_BAIT
/// Icon state added to main fishing rod icon when this bait is equipped
var/rod_overlay_icon_state
/// Is this included in the autowiki?
var/show_on_wiki = TRUE
/obj/item/food/bait/Initialize(mapload)
. = ..()
ADD_TRAIT(src, bait_quality, INNATE_TRAIT)
/obj/item/food/bait/worm
name = "worm"
desc = "It's a wriggling worm from a can of fishing bait. You're not going to eat it are you ?"
icon = 'icons/obj/fishing.dmi'
icon_state = "worm"
food_reagents = list(/datum/reagent/consumable/nutriment/protein = 1)
tastes = list("meat" = 1, "worms" = 1)
foodtypes = GROSS | MEAT | BUGS
w_class = WEIGHT_CLASS_TINY
bait_quality = TRAIT_BASIC_QUALITY_BAIT
rod_overlay_icon_state = "worm_overlay"
/obj/item/food/bait/worm/premium
name = "extra slimy worm"
desc = "This worm looks very sophisticated."
bait_quality = TRAIT_GOOD_QUALITY_BAIT
/obj/item/food/bait/natural
name = "natural bait"
desc = "Fish can't seem to get enough of this!"
icon = 'icons/obj/medical/chemical.dmi'
icon_state = "pill9"
lefthand_file = 'icons/mob/inhands/items_lefthand.dmi'
righthand_file = 'icons/mob/inhands/items_righthand.dmi'
inhand_icon_state = "pen"
bait_quality = TRAIT_GREAT_QUALITY_BAIT //this is only here for autowiki purposes, it's removed on init.
food_reagents = list(/datum/reagent/drug/kronkaine = 2) //The kronkaine is the thing that makes this a great bait.
tastes = list("hypocrisy" = 1)
/obj/item/food/bait/natural/Initialize(mapload)
. = ..()
REMOVE_TRAIT(src, bait_quality, INNATE_TRAIT)
/obj/item/food/bait/doughball
name = "doughball"
desc = "Small piece of dough. Simple but effective fishing bait."
icon = 'icons/obj/fishing.dmi'
icon_state = "doughball"
food_reagents = list(/datum/reagent/consumable/nutriment/protein = 1)
tastes = list("dough" = 1)
foodtypes = GRAIN
w_class = WEIGHT_CLASS_TINY
bait_quality = TRAIT_BASIC_QUALITY_BAIT
rod_overlay_icon_state = "dough_overlay"
///The abstract synthetic doughball type.
/obj/item/food/bait/doughball/synthetic
name = "synthetic doughball"
icon_state = "doughball_blue"
rod_overlay_icon_state = "dough_blue_overlay"
preserved_food = TRUE
show_on_wiki = FALSE //It's an abstract item.
/obj/item/food/bait/doughball/synthetic/Initialize(mapload)
. = ..()
ADD_TRAIT(src, TRAIT_OMNI_BAIT, INNATE_TRAIT)
///Found in the can of omni-baits, only available from the super fishing toolbox, from the fishing mystery box.
/obj/item/food/bait/doughball/synthetic/super
name = "super-doughball"
desc = "Be they herbivore or carnivores, no fish will be able to resist this."
bait_quality = TRAIT_GREAT_QUALITY_BAIT
show_on_wiki = TRUE
/**
* Bound to the tech fishing rod, from which cannot be removed,
* Bait-related preferences and traits, both negative and positive,
* should be ignored by this bait.
* Otherwise it'd be hard/impossible to cath some fish with it,
* making that rod a shoddy choice in the long run.
*/
/obj/item/food/bait/doughball/synthetic/unconsumable
/obj/item/food/bait/doughball/synthetic/unconsumable/Initialize(mapload)
. = ..()
ADD_TRAIT(src, TRAIT_BAIT_UNCONSUMABLE, INNATE_TRAIT)