Files
Bubberstation/code/game/objects/items/drug_items.dm
John Willard 4a274a6e4b [MDB IGNORE] Refactors drinks and fixes a lot of food problems (#69081)
* Makes condiments their own subtype, fixes geese, prepares for merging

* Fixes geese checking drink type instead of edible foodtype to eat gross food.
* Renames foodtype var on drinks to drink_types to prevent above from happening again because it KEEPS HAPPENING. DRINKS AREN'T FOOD!
* Makes Condiments their own subtype of reagent_containers because they don't make any use of being a subtype of food, at all.
* Starts moving things from food to /food/drink subtype in preparation for merging /food/drink with /drink

* fully removes Food subtype

* /reagent_containers/drinks are now /reagent_containers/cup - This is so it's no longer confused with eachother.
* /food/drinks is now /reagent_containers/cup/drinks, so we can keep their special abilities.
* Fixes a LOT of errors with food, which are STILL checking the reagent_containers, despite ACTUAL food being refactored away from it a long time ago.

This doesn't compile yet, but I do want to make sure my progress is well tracked.

* remove copypaste code, changes soda cans

* Removes most copy paste code between the two drinks, moving most stuff to parent whenever needed.
* Made soda cans their own subtype since they didn't share anything with glass bottles anyways.
* Fixes more problems with food/drinks, especially with geese. Geese really were just broken this whole time and no one said a word...
* Removes a snowflake signal, now that both drink types share a common one.
* Adds everything to the .dme

Currently my goal is to get this all compiling, then remove isGlass var by making glass be all glass ones only.

* Moves all icons into a single drinks dmi

I'm not that great at icon stuff, hopefully I didn't forget/break anything.

* Turns juices into their own subtype

This allows us to let them check for type in molotov, to both get rid of a use of isGlass, and so non-glass non-cartons don't show up as 'carton'.

* fixes compile issues, adds updatepaths

* a better updatepaths

* updates the damn maps now

* properly names the updatepath

* how did that get there

* i suck at handling merge conflicts

* how am i this bad

* code improvement and soda fix

* more fixes

* Don't be a timer

Ports from old food bottles to trans the reagents, rather than add a timer to.

* Merge conflicts and fixes bottle smashing

* Bottle smashing is now consistently functional regardless of how much liquid they have in them, when before it would spill first, then smash on the second hit.

* runs updatepaths again
2022-08-12 15:24:14 -04:00

73 lines
2.9 KiB
Plaintext

/obj/item/food/drug
name = "generic drug"
desc = "I am error"
icon = 'icons/obj/drugs.dmi'
foodtypes = GROSS
food_flags = FOOD_FINGER_FOOD
max_volume = 50
eat_time = 1 SECONDS
tastes = list("drugs" = 2, "chemicals" = 1)
eatverbs = list("gnaw" = 1)
bite_consumption = 10
w_class = WEIGHT_CLASS_TINY
preserved_food = TRUE
/obj/item/food/drug/saturnx
name = "saturnX glob"
desc = "A congealed glob of pure saturnX.\nThis compound was first discovered during the infancy of cloaking technology and at the time thought to be a promising candidate agent. It was withdrawn for consideration after the researchers discovered a slew of associated safety issues including thought disorders and hepatoxicity.\nIt has since attained some limited popularity as a street drug."
icon_state = "saturnx_glob" //tell kryson to sprite two more variants in the future.
food_reagents = list(/datum/reagent/drug/saturnx = 10)
/obj/item/food/drug/moon_rock
name = "moon rock"
desc = "A small hard lump of kronkaine freebase.\nIt is said the average kronkaine addict causes as much criminal damage as four cat burglars, two arsonists and one rabid pit bull terrier combined."
icon_state = "moon_rock1"
food_reagents = list(/datum/reagent/drug/kronkaine = 10)
/obj/item/food/drug/moon_rock/Initialize(mapload)
. = ..()
icon_state = pick("moon_rock1", "moon_rock2", "moon_rock3")
AddElement(/datum/element/swabable, CELL_LINE_TABLE_MOONICORN, CELL_VIRUS_TABLE_GENERIC_MOB, 1, 5)
/obj/item/reagent_containers/cup/blastoff_ampoule
name = "bLaSToFF ampoule" //stylized name
desc = "A small ampoule. The liquid inside appears to be boiling violently.\nYou suspect it contains bLasSToFF; the drug thought to be the cause of the infamous Luna nightclub mass casualty incident."
icon = 'icons/obj/drugs.dmi'
icon_state = "blastoff_ampoule"
base_icon_state = "blastoff_ampoule"
volume = 20
reagent_flags = TRANSPARENT
spillable = FALSE
list_reagents = list(/datum/reagent/drug/blastoff = 10)
/obj/item/reagent_containers/cup/blastoff_ampoule/update_icon_state()
. = ..()
if(!reagents.total_volume)
icon_state = "[base_icon_state]_empty"
else if(spillable)
icon_state = "[base_icon_state]_open"
else
icon_state = base_icon_state
/obj/item/reagent_containers/cup/blastoff_ampoule/attack_self(mob/user)
if(!user.canUseTopic(src, BE_CLOSE, NO_DEXTERITY) || spillable)
return ..()
reagent_flags |= OPENCONTAINER
spillable = TRUE
playsound(src, 'sound/items/ampoule_snap.ogg', 40)
update_appearance()
/obj/item/reagent_containers/cup/blastoff_ampoule/throw_impact(atom/hit_atom, datum/thrownthing/throwingdatum)
. = ..()
if(.)
return
if(QDELING(src) || !hit_atom) //Invalid loc
return
var/obj/item/shard/ampoule_shard = new(drop_location())
playsound(src, SFX_SHATTER, 40, TRUE)
transfer_fingerprints_to(ampoule_shard)
spillable = TRUE
SplashReagents(hit_atom, TRUE)
qdel(src)
hit_atom.Bumped(ampoule_shard)