mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-29 16:18:01 +01:00
## About The Pull Request Updates the safe tree to use a proper blacklist instead of being boring and just giving bloodthirsty spacemen and women toys... They were good all year, they crave violence. This replaces the round start Christmas trees with the safe trees, which no longer only give out toys, but also no longer give out admin/debug gear. A compromise for all, just in time for Christmas! The Christmas event present spawns have all been replaced with the safe variants that utilize the blacklist, the other means of acquiring presents have been left untouched. ## Why It's Good For The Game People not getting admin tools out of Christmas presents and causing headaches for staff is probably good for the game, maybe. ## Proof Of Testing <details> <summary>Screenshots/Videos</summary> <img width="418" height="452" alt="image" src="https://github.com/user-attachments/assets/df6554ee-084a-40c2-9592-94c88f6569c4" /> </details> ## Changelog 🆑 xPokee, LT3 balance: All Christmas event presents have been replaced with the safe variants. refactor: The safe Christmas tree subtype now uses a blacklist instead of just giving toys. admin: Added a new verb in the 'game' tab to blacklist presents on the fly. /🆑
69 lines
2.3 KiB
Plaintext
69 lines
2.3 KiB
Plaintext
/// Gifts that typically contain pretty much any item in the game, except with all of the admin/debug gear filtered out.
|
|
/obj/item/gift/mostly_anything
|
|
name = "christmas gift"
|
|
desc = "It could be pretty much anything!"
|
|
|
|
/obj/item/gift/mostly_anything/get_gift_type(obj/item/gift/mostly_anything/present)
|
|
var/static/list/obj/item/possible_gifts = null
|
|
|
|
if(isnull(possible_gifts))
|
|
possible_gifts = get_sane_item_types(/obj/item)
|
|
|
|
var/list/filtered = list()
|
|
|
|
for(var/type in possible_gifts)
|
|
if(!is_blacklisted(type, GLOB.xmas_gift_blacklist))
|
|
filtered += type
|
|
|
|
if(!length(filtered))
|
|
return null
|
|
|
|
return pick(filtered)
|
|
|
|
/obj/item/gift/mostly_anything/proc/is_blacklisted(typepath)
|
|
for(var/blacklisted_type in GLOB.xmas_gift_blacklist)
|
|
if(ispath(typepath, blacklisted_type))
|
|
return TRUE
|
|
return FALSE
|
|
|
|
/// The actual blacklist for the admin/debug gear. It goes at the bottom as it may end up getting quite long.
|
|
GLOBAL_LIST_INIT(xmas_gift_blacklist, list(
|
|
/datum/storage/box/debug,
|
|
/obj/item/uplink,
|
|
/obj/item/clothing/ears/earmuffs/debug,
|
|
/obj/item/gps/visible_debug,
|
|
/obj/item/clothing/glasses/meson/engine/admin,
|
|
/obj/item/storage/bag/sheetsnatcher/debug,
|
|
/obj/item/construction/rcd/combat/admin,
|
|
/obj/item/disk/tech_disk/debug,
|
|
/obj/item/flashlight/emp/debug,
|
|
/obj/item/card/id/advanced/debug,
|
|
/obj/item/debug/omnitool/item_spawner,
|
|
/obj/item/borg/projectile_dampen/debug,
|
|
/obj/item/clothing/glasses/debug,
|
|
/obj/item/gun/magic/wand/resurrection/debug,
|
|
/obj/item/mod/control/pre_equipped/administrative,
|
|
/obj/item/mod/control/pre_equipped/debug,
|
|
/obj/item/mod/control/pre_equipped/chrono,
|
|
/obj/item/gun/energy/laser/instakill,
|
|
/obj/item/gun/magic/wand/death,
|
|
/obj/item/disk/nuclear,
|
|
/obj/item/melee/energy/axe,
|
|
/obj/item/phystool,
|
|
/obj/item/physic_manipulation_tool/advanced,
|
|
/obj/item/gun/magic/wand/polymorph,
|
|
/obj/item/gun/magic/staff/chaos,
|
|
/obj/item/gun/energy/pulse,
|
|
/obj/item/dna_probe/carp_scanner,
|
|
/obj/item/antag_granter,
|
|
/obj/item/storage/box/syndie_kit/romerol,
|
|
/obj/item/reagent_containers/cup/bottle/romerol,
|
|
/obj/item/card/emag/battlecruiser,
|
|
/obj/item/proteon_orb,
|
|
/obj/structure/fluff/paper, // So I stop getting 500 papers
|
|
/obj/item/circuitboard, // Like above but for boards.
|
|
/obj/item/circuit_component, // I hate these things.
|
|
/obj/item/organ/genital, // Rule 8.
|
|
/obj/item/melee/supermatter_sword,
|
|
))
|