mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-07-16 02:24:11 +01:00
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. /🆑
This commit is contained in:
@@ -173,15 +173,7 @@ GLOBAL_LIST_INIT(mystery_fishing, list(
|
||||
|
||||
/// This proc is used to define what item types valid_types is filled with
|
||||
/obj/structure/mystery_box/proc/generate_valid_types()
|
||||
valid_types = list()
|
||||
|
||||
for(var/iter_path in typesof(selectable_base_type))
|
||||
if(!ispath(iter_path, /obj/item))
|
||||
continue
|
||||
var/obj/item/iter_item = iter_path
|
||||
if((initial(iter_item.item_flags) & ABSTRACT) || !initial(iter_item.icon_state) || !initial(iter_item.inhand_icon_state))
|
||||
continue
|
||||
valid_types += iter_path
|
||||
valid_types = get_sane_item_types(selectable_base_type)
|
||||
|
||||
/// The box has been activated, play the sound and spawn the prop item
|
||||
/obj/structure/mystery_box/proc/activate(mob/living/user)
|
||||
@@ -275,6 +267,12 @@ GLOBAL_LIST_INIT(mystery_fishing, list(
|
||||
/obj/structure/mystery_box/wands/generate_valid_types()
|
||||
valid_types = GLOB.mystery_magic
|
||||
|
||||
/obj/structure/mystery_box/wildcard
|
||||
desc = "A wooden crate that seems equally magical and mysterious, capable of granting the user all kinds of different pieces of gear. This one has an EXTREAMLY extended array of weaponry."
|
||||
|
||||
/obj/structure/mystery_box/wildcard/generate_valid_types()
|
||||
valid_types = GLOB.summoned_all_guns
|
||||
|
||||
///A fishing and pirate-themed mystery box, rarely found by fishing in the ocean, then another cannot be caught for the next 30 minutes.
|
||||
/obj/structure/mystery_box/fishing
|
||||
name = "treasure chest"
|
||||
|
||||
Reference in New Issue
Block a user