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

152 lines
4.9 KiB
Plaintext

// Citrus - base type
/obj/item/food/grown/citrus
name = "citrus"
desc = "It's so sour, your face will twist."
icon_state = "lime"
abstract_type = /obj/item/food/grown/citrus
foodtypes = FRUIT
wine_power = 30
seed = /obj/item/seeds/lime
// Lime
/obj/item/seeds/lime
name = "lime seed pack"
desc = "These are very sour seeds."
icon_state = "seed-lime"
species = "lime"
plantname = "Lime Tree"
product = /obj/item/food/grown/citrus/lime
lifespan = 55
endurance = 50
yield = 4
potency = 15
growing_icon = 'icons/obj/service/hydroponics/growing_fruits.dmi'
genes = list(/datum/plant_gene/trait/repeated_harvest)
mutatelist = list(/obj/item/seeds/orange)
reagents_add = list(/datum/reagent/consumable/nutriment/vitamin = 0.04, /datum/reagent/consumable/nutriment = 0.05)
/obj/item/food/grown/citrus/lime
seed = /obj/item/seeds/lime
name = "lime"
desc = "It's so sour, your face will twist."
icon_state = "lime"
juice_typepath = /datum/reagent/consumable/limejuice
// Orange
/obj/item/seeds/orange
name = "orange seed pack"
desc = "Sour seeds."
icon_state = "seed-orange"
species = "orange"
plantname = "Orange Tree"
product = /obj/item/food/grown/citrus/orange
lifespan = 60
endurance = 50
yield = 5
potency = 20
growing_icon = 'icons/obj/service/hydroponics/growing_fruits.dmi'
icon_grow = "lime-grow"
icon_dead = "lime-dead"
genes = list(/datum/plant_gene/trait/repeated_harvest)
mutatelist = list(/obj/item/seeds/lime, /obj/item/seeds/orange_3d)
reagents_add = list(/datum/reagent/consumable/nutriment/vitamin = 0.04, /datum/reagent/consumable/nutriment = 0.05)
/obj/item/food/grown/citrus/orange
seed = /obj/item/seeds/orange
name = "orange"
desc = "It's a tangy fruit."
icon_state = "orange"
foodtypes = ORANGES | FRUIT
juice_typepath = /datum/reagent/consumable/orangejuice
distill_reagent = /datum/reagent/consumable/ethanol/triple_sec
// Lemon
/obj/item/seeds/lemon
name = "lemon seed pack"
desc = "These are sour seeds."
icon_state = "seed-lemon"
species = "lemon"
plantname = "Lemon Tree"
product = /obj/item/food/grown/citrus/lemon
lifespan = 55
endurance = 45
yield = 4
growing_icon = 'icons/obj/service/hydroponics/growing_fruits.dmi'
icon_grow = "lime-grow"
icon_dead = "lime-dead"
genes = list(/datum/plant_gene/trait/repeated_harvest)
mutatelist = list(/obj/item/seeds/firelemon)
reagents_add = list(/datum/reagent/consumable/nutriment/vitamin = 0.04, /datum/reagent/consumable/nutriment = 0.05)
/obj/item/food/grown/citrus/lemon
seed = /obj/item/seeds/lemon
name = "lemon"
desc = "When life gives you lemons, make lemonade."
icon_state = "lemon"
juice_typepath = /datum/reagent/consumable/lemonjuice
// Combustible lemon
/obj/item/seeds/firelemon //combustible lemon is too long so firelemon
name = "combustible lemon seed pack"
desc = "When life gives you lemons, don't make lemonade. Make life take the lemons back! Get mad! I don't want your damn lemons!"
icon_state = "seed-firelemon"
species = "firelemon"
plantname = "Combustible Lemon Tree"
product = /obj/item/food/grown/firelemon
growing_icon = 'icons/obj/service/hydroponics/growing_fruits.dmi'
icon_grow = "lime-grow"
icon_dead = "lime-dead"
genes = list(/datum/plant_gene/trait/repeated_harvest, /datum/plant_gene/trait/bomb_plant/potency_based)
lifespan = 55
endurance = 45
yield = 4
reagents_add = list(/datum/reagent/consumable/nutriment = 0.05, /datum/reagent/fuel = 0.05)
/obj/item/food/grown/firelemon
seed = /obj/item/seeds/firelemon
name = "Combustible Lemon"
desc = "Made for burning houses down."
icon_state = "firelemon"
alt_icon = "firelemon_active"
foodtypes = FRUIT
wine_power = 70
//3D Orange
/obj/item/seeds/orange_3d
name = "extradimensional orange seed pack"
desc = "Polygonal seeds."
icon_state = "seed-orange"
species = "orange"
plantname = "Extradimensional Orange Tree"
product = /obj/item/food/grown/citrus/orange_3d
lifespan = 60
endurance = 50
yield = 5
potency = 20
instability = 64
growing_icon = 'icons/obj/service/hydroponics/growing_fruits.dmi'
icon_grow = "lime-grow"
icon_dead = "lime-dead"
genes = list(/datum/plant_gene/trait/repeated_harvest)
reagents_add = list(/datum/reagent/consumable/nutriment/vitamin = 0.04, /datum/reagent/consumable/nutriment = 0.05, /datum/reagent/medicine/haloperidol = 0.15) //insert joke about the effects of haloperidol and our glorious headcoder here
/obj/item/food/grown/citrus/orange_3d
seed = /obj/item/seeds/orange_3d
name = "extradimensional orange"
desc = "You can hardly wrap your head around this thing."
icon_state = "orang"
foodtypes = ORANGES
alt_icon = "orange"
bite_consumption_mod = 2
juice_typepath = /datum/reagent/consumable/orangejuice
distill_reagent = /datum/reagent/toxin/mindbreaker
tastes = list("polygons" = 1, "bluespace" = 1, "the true nature of reality" = 1)
/obj/item/food/grown/citrus/orange_3d/pickup(mob/user)
. = ..()
icon_state = alt_icon
/obj/item/food/grown/citrus/orange_3d/dropped(mob/user)
. = ..()
icon_state = initial(icon_state)