mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-13 08:03:43 +01:00
Adds Glass Sandwiches and Supermatter Sandwiches (#30435)
* glass sammich
* Update cutting_board_recipes.dm
* yummy
* Update test_tiny.dmm
* Update test_tiny.dmm
* Update toxins.dm
* Update test_tiny.dmm
* Update test_tiny.dmm
* Update test_tiny.dmm
* Update test_tiny.dmm
* Revert "yummy"
This reverts commit b2a5736618.
* yummy but without test tiny shit
* Update cooking_container.dm
* isolate sliver handling to a recipe step
* fix
---------
Co-authored-by: warriorstar-orion <orion@snowfrost.garden>
This commit is contained in:
@@ -414,6 +414,72 @@
|
||||
PCWJ_ADD_ITEM(/obj/item/food/sliced/bread),
|
||||
)
|
||||
|
||||
/datum/cooking/recipe/glass_sandwich
|
||||
container_type = /obj/item/reagent_containers/cooking/board
|
||||
product_type = /obj/item/food/glass_sandwich
|
||||
catalog_category = COOKBOOK_CATEGORY_BURGS
|
||||
steps = list(
|
||||
PCWJ_ADD_ITEM(/obj/item/food/sliced/bread),
|
||||
PCWJ_ADD_ITEM(/obj/item/shard, exact = TRUE),
|
||||
PCWJ_ADD_ITEM(/obj/item/food/sliced/bread),
|
||||
)
|
||||
|
||||
/datum/cooking/recipe/plasma_glass_sandwich
|
||||
container_type = /obj/item/reagent_containers/cooking/board
|
||||
product_type = /obj/item/food/glass_sandwich/plasma
|
||||
catalog_category = COOKBOOK_CATEGORY_BURGS
|
||||
steps = list(
|
||||
PCWJ_ADD_ITEM(/obj/item/food/sliced/bread),
|
||||
PCWJ_ADD_ITEM(/obj/item/shard/plasma),
|
||||
PCWJ_ADD_ITEM(/obj/item/food/sliced/bread),
|
||||
)
|
||||
|
||||
/datum/cooking/recipe/plastitanium_glass_sandwich
|
||||
container_type = /obj/item/reagent_containers/cooking/board
|
||||
product_type = /obj/item/food/glass_sandwich/plasma/plastitanium
|
||||
catalog_category = COOKBOOK_CATEGORY_BURGS
|
||||
steps = list(
|
||||
PCWJ_ADD_ITEM(/obj/item/food/sliced/bread),
|
||||
PCWJ_ADD_ITEM(/obj/item/shard/plastitanium),
|
||||
PCWJ_ADD_ITEM(/obj/item/food/sliced/bread),
|
||||
)
|
||||
|
||||
/// A step that allows either direct adding of a supermatter sliver
|
||||
/// (if you have somehow manage to hold one), or
|
||||
/// from tongs if those are used and contain a sliver in them.
|
||||
/datum/cooking/recipe_step/add_item/supermatter_sliver
|
||||
|
||||
/datum/cooking/recipe_step/add_item/supermatter_sliver/check_conditions_met(obj/added_item, datum/cooking/recipe_tracker/tracker)
|
||||
var/obj/item/retractor/supermatter/tongs = added_item
|
||||
if(istype(tongs) && tongs.sliver)
|
||||
return PCWJ_CHECK_VALID
|
||||
|
||||
var/obj/item/nuke_core/supermatter_sliver/sliver = added_item
|
||||
if(istype(sliver))
|
||||
return PCWJ_CHECK_VALID
|
||||
|
||||
return PCWJ_CHECK_INVALID
|
||||
|
||||
/datum/cooking/recipe_step/add_item/supermatter_sliver/follow_step(obj/used_item, datum/cooking/recipe_tracker/tracker, mob/user)
|
||||
var/obj/item/retractor/supermatter/tongs = used_item
|
||||
if(istype(tongs) && tongs.sliver)
|
||||
. = ..(tongs.sliver, tracker, user)
|
||||
// TODO: refactor the tongs so they actually check if(sliver) in `update_icon()` instead of manually setting the icons everywhere.
|
||||
tongs.sliver = null
|
||||
tongs.update_appearance(UPDATE_ICON_STATE)
|
||||
else
|
||||
. = ..()
|
||||
|
||||
/datum/cooking/recipe/supermatter_sandwich
|
||||
container_type = /obj/item/reagent_containers/cooking/board
|
||||
product_type = /obj/item/food/supermatter_sandwich
|
||||
catalog_category = COOKBOOK_CATEGORY_BURGS
|
||||
steps = list(
|
||||
PCWJ_ADD_ITEM(/obj/item/food/sliced/bread),
|
||||
new /datum/cooking/recipe_step/add_item/supermatter_sliver(),
|
||||
PCWJ_ADD_ITEM(/obj/item/food/sliced/bread),
|
||||
)
|
||||
|
||||
/datum/cooking/recipe/philly_cheesesteak
|
||||
container_type = /obj/item/reagent_containers/cooking/board
|
||||
product_type = /obj/item/food/philly_cheesesteak
|
||||
|
||||
@@ -457,3 +457,59 @@
|
||||
list_reagents = list("nutriment" = 5, "protein" = 2)
|
||||
tastes = list("peanutbutter" = 3, "banana" = 3, "bread" = 2)
|
||||
goal_difficulty = FOOD_GOAL_NORMAL
|
||||
|
||||
/obj/item/food/glass_sandwich
|
||||
name = "glass sandwich"
|
||||
desc = "Crushed glass shards sandwiched between two slices of plain bread. Crunchy!"
|
||||
icon = 'icons/obj/food/burgerbread.dmi'
|
||||
icon_state = "glass_sandwich"
|
||||
tastes = list("dozens of glass shards skewering your mouth" = 3, "pain" = 3, "bread" = 2)
|
||||
list_reagents = list("nutriment" = 2, "glass_shards" = 5)
|
||||
var/bite_damage = 2
|
||||
|
||||
/obj/item/food/glass_sandwich/On_Consume(mob/living/M)
|
||||
..()
|
||||
M.adjustBruteLoss(bite_damage)
|
||||
|
||||
/obj/item/food/glass_sandwich/plasma
|
||||
name = "plasma glass sandwich"
|
||||
desc = "Razor-sharp plasma glass shards, crushed up and sandwiched between two slices of plain bread. Extra crunchy!"
|
||||
icon_state = "plasma_glass_sandwich"
|
||||
list_reagents = list("nutriment" = 2, "glass_shards" = 5, "plasma" = 5)
|
||||
bite_damage = 4
|
||||
|
||||
/obj/item/food/glass_sandwich/plasma/plastitanium
|
||||
name = "plastitanium glass sandwich"
|
||||
desc = "Evil-looking plastitanium glass shards, crushed up and sandwiched between two slices of plain bread. Evilly crunchy!"
|
||||
icon_state = "plastitanium_glass_sandwich"
|
||||
|
||||
/obj/item/food/supermatter_sandwich
|
||||
name = "supermatter sandwich"
|
||||
desc = "A supermatter sliver, somehow safely contained between two slices of bread. You have been told many times to not lick the forbidden nacho... But surely one taste can't be that bad?"
|
||||
icon = 'icons/obj/food/burgerbread.dmi'
|
||||
icon_state = "supermatter_sandwich"
|
||||
tastes = list("indescribable power" = 3, "bread" = 2)
|
||||
list_reagents = list("vitamin" = 50) // Supermatter is full of energy!
|
||||
|
||||
/obj/item/food/supermatter_sandwich/On_Consume(mob/living/M)
|
||||
..()
|
||||
if(!HAS_TRAIT(M, TRAIT_SUPERMATTER_IMMUNE))
|
||||
M.visible_message(
|
||||
"<span class='danger'>[M] lifts [src] up to [M.p_their()] mouth and bites down, inducing a resonance... [M.p_their(TRUE)] body starts to glow and burst into flames before flashing into dust!</span>",
|
||||
"<span class='userdanger'>You bite down on [src].<br><br> Everything starts burning and all you can hear is ringing. Your final thought is: \"OH FU-\"</span>",
|
||||
"<span class='danger'>A deafening resonance fills the air, followed by silence...</span>"
|
||||
)
|
||||
radiation_pulse(src, 2000, GAMMA_RAD)
|
||||
playsound(src, 'sound/effects/supermatter.ogg', 50, TRUE)
|
||||
M.drop_item() // How many bridge hobos will take a bite, I wonder?
|
||||
M.dust()
|
||||
message_admins("[src] has consumed [key_name_admin(M)] [ADMIN_JMP(src)].")
|
||||
investigate_log("has consumed [key_name(M)].", INVESTIGATE_SUPERMATTER)
|
||||
|
||||
/obj/item/food/supermatter_sandwich/process()
|
||||
. = ..()
|
||||
var/new_filter = isnull(get_filter("ray"))
|
||||
ray_filter_helper(1, 40,"#ffd04f", 6, 20)
|
||||
if(new_filter)
|
||||
animate(get_filter("ray"), offset = 10, time = 10 SECONDS, loop = -1)
|
||||
animate(offset = 0, time = 10 SECONDS)
|
||||
|
||||
@@ -1329,3 +1329,27 @@
|
||||
|
||||
/datum/reagent/gluttonytoxin/reaction_mob(mob/living/L, method=REAGENT_TOUCH, reac_volume)
|
||||
L.ForceContractDisease(new /datum/disease/transformation/morph())
|
||||
|
||||
/datum/reagent/glass_shards
|
||||
name = "Glass shards"
|
||||
id = "glass_shards"
|
||||
description = "Glass, crushed into a coarse powder made up of razor-sharp shards."
|
||||
color = "#87c6dac8"
|
||||
taste_description = "<span class='userdanger'>Broken glass!</span>"
|
||||
|
||||
/datum/reagent/glass_shards/on_mob_life(mob/living/M)
|
||||
var/update_flags = STATUS_UPDATE_NONE
|
||||
update_flags |= M.adjustBruteLoss(2, FALSE)
|
||||
if(iscarbon(M) && prob(5)) // OH GOD IT'S CUTTING UP INSIDE ME AAAAAAAGHHHH!
|
||||
var/mob/living/carbon/human/H = M
|
||||
var/obj/item/organ/external/affected = H.get_organ(BODY_ZONE_CHEST)
|
||||
if(affected.status & !ORGAN_INT_BLEEDING)
|
||||
affected.cause_internal_bleeding()
|
||||
|
||||
return ..() | update_flags
|
||||
|
||||
/datum/reagent/glass_shards/reaction_mob(mob/living/M, method = REAGENT_TOUCH, volume)
|
||||
if(iscarbon(M))
|
||||
to_chat(M, "<span class='userdanger'>OH GOD IT HURTS!</span>")
|
||||
M.emote("scream")
|
||||
M.adjustBruteLoss(4)
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 23 KiB After Width: | Height: | Size: 47 KiB |
Reference in New Issue
Block a user