Merge branch 'master' of https://github.com/Citadel-Station-13/Citadel-Station-13 into Ghommie-cit642
This commit is contained in:
@@ -58,6 +58,21 @@
|
||||
|
||||
new /obj/effect/abstract/DPtarget(get_turf(src), pod)
|
||||
|
||||
/obj/item/choice_beacon/ingredients
|
||||
name = "ingredient box delivery beacon"
|
||||
desc = "Summon a box of ingredients from a wide selection!"
|
||||
icon_state = "gangtool-red"
|
||||
|
||||
/obj/item/choice_beacon/ingredients/generate_display_names()
|
||||
var/static/list/ingredientboxes
|
||||
if(!ingredientboxes)
|
||||
ingredientboxes = list()
|
||||
var/list/templist = typesof(/obj/item/storage/box/ingredients)
|
||||
for(var/V in templist)
|
||||
var/obj/item/storage/box/ingredients/A = V
|
||||
ingredientboxes[initial(A.theme_name)] = A
|
||||
return ingredientboxes
|
||||
|
||||
/obj/item/choice_beacon/hero
|
||||
name = "heroic beacon"
|
||||
desc = "To summon heroes from the past to protect the future."
|
||||
@@ -72,7 +87,6 @@
|
||||
hero_item_list[initial(A.name)] = A
|
||||
return hero_item_list
|
||||
|
||||
|
||||
/obj/item/storage/box/hero
|
||||
name = "Courageous Tomb Raider - 1940's."
|
||||
|
||||
@@ -115,4 +129,5 @@
|
||||
icon = 'icons/obj/supermatter.dmi'
|
||||
icon_state = "supermatterspray"
|
||||
w_class = WEIGHT_CLASS_SMALL
|
||||
var/usesleft = 2
|
||||
var/usesleft = 2
|
||||
|
||||
|
||||
@@ -120,6 +120,7 @@ GLOBAL_LIST_INIT(metal_recipes, list ( \
|
||||
)), \
|
||||
null, \
|
||||
new/datum/stack_recipe("iron door", /obj/structure/mineral_door/iron, 20, one_per_turf = TRUE, on_floor = TRUE), \
|
||||
new/datum/stack_recipe("pestle", /obj/item/pestle, 1, time = 50), \
|
||||
new/datum/stack_recipe("floodlight frame", /obj/structure/floodlight_frame, 5, one_per_turf = TRUE, on_floor = TRUE), \
|
||||
))
|
||||
|
||||
@@ -255,6 +256,7 @@ GLOBAL_LIST_INIT(wood_recipes, list ( \
|
||||
new/datum/stack_recipe("apiary", /obj/structure/beebox, 40, time = 50),\
|
||||
null, \
|
||||
new/datum/stack_recipe("picture frame", /obj/item/wallframe/picture, 1, time = 10),\
|
||||
new/datum/stack_recipe("mortar", /obj/item/reagent_containers/glass/mortar, 3), \
|
||||
new/datum/stack_recipe("honey frame", /obj/item/honey_frame, 5, time = 10),\
|
||||
))
|
||||
|
||||
|
||||
@@ -946,12 +946,47 @@
|
||||
/obj/item/reagent_containers/food/snacks/grown/apple,
|
||||
/obj/item/reagent_containers/food/snacks/chocolatebar,
|
||||
/obj/item/reagent_containers/food/snacks/grown/cherries,
|
||||
/obj/item/reagent_containers/food/snacks/grown/berries,
|
||||
/obj/item/reagent_containers/food/snacks/grown/banana,
|
||||
/obj/item/reagent_containers/food/snacks/grown/cabbage,
|
||||
/obj/item/reagent_containers/food/snacks/grown/soybeans,
|
||||
/obj/item/reagent_containers/food/snacks/grown/corn,
|
||||
/obj/item/reagent_containers/food/snacks/grown/mushroom/plumphelmet,
|
||||
/obj/item/reagent_containers/food/snacks/grown/mushroom/chanterelle)
|
||||
/obj/item/reagent_containers/food/snacks/grown/mushroom/chanterelle,
|
||||
/obj/item/reagent_containers/food/snacks/faggot,
|
||||
/obj/item/reagent_containers/food/snacks/grown/citrus/orange,
|
||||
/obj/item/reagent_containers/food/snacks/grown/citrus/lemon,
|
||||
/obj/item/reagent_containers/food/snacks/grown/citrus/lime,
|
||||
/obj/item/reagent_containers/food/snacks/grown/bluecherries,
|
||||
/obj/item/reagent_containers/food/snacks/grown/cocoapod,
|
||||
/obj/item/reagent_containers/food/snacks/grown/vanillapod,
|
||||
/obj/item/reagent_containers/food/snacks/grown/grapes,
|
||||
/obj/item/reagent_containers/food/snacks/grown/strawberry,
|
||||
/obj/item/reagent_containers/food/snacks/grown/whitebeet,
|
||||
/obj/item/reagent_containers/food/snacks/meat/slab/bear,
|
||||
/obj/item/reagent_containers/food/snacks/meat/slab/spider,
|
||||
/obj/item/reagent_containers/food/snacks/spidereggs,
|
||||
/obj/item/reagent_containers/food/snacks/carpmeat,
|
||||
/obj/item/reagent_containers/food/snacks/meat/slab/xeno,
|
||||
/obj/item/reagent_containers/food/snacks/meat/slab/corgi,
|
||||
/obj/item/reagent_containers/food/snacks/grown/oat,
|
||||
/obj/item/reagent_containers/food/snacks/grown/wheat,
|
||||
/obj/item/reagent_containers/honeycomb,
|
||||
/obj/item/reagent_containers/food/snacks/grown/watermelon,
|
||||
/obj/item/reagent_containers/food/snacks/grown/onion,
|
||||
/obj/item/reagent_containers/food/snacks/grown/peach,
|
||||
/obj/item/reagent_containers/food/snacks/grown/peanut,
|
||||
/obj/item/reagent_containers/food/snacks/grown/pineapple,
|
||||
/obj/item/reagent_containers/food/snacks/grown/pumpkin,
|
||||
/obj/item/reagent_containers/food/snacks/meat/rawcrab,
|
||||
/obj/item/reagent_containers/food/snacks/meat/slab/goliath,
|
||||
/obj/item/reagent_containers/food/snacks/meat/slab/chicken,
|
||||
/obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/slime,
|
||||
/obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/golem,
|
||||
/obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/lizard,
|
||||
/obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/skeleton,
|
||||
/obj/item/reagent_containers/food/snacks/egg,
|
||||
/obj/item/reagent_containers/food/snacks/grown/eggplant)
|
||||
new randomFood(src)
|
||||
|
||||
/obj/item/storage/box/ingredients/fiesta
|
||||
@@ -1061,6 +1096,15 @@
|
||||
new /obj/item/reagent_containers/food/snacks/grown/cabbage(src)
|
||||
new /obj/item/reagent_containers/food/snacks/grown/chili(src)
|
||||
|
||||
/obj/item/storage/box/ingredients/sushi
|
||||
theme_name = "sushi"
|
||||
|
||||
/obj/item/storage/box/ingredients/sushi/PopulateContents()
|
||||
for(var/i in 1 to 3)
|
||||
new /obj/item/reagent_containers/food/snacks/sea_weed(src)
|
||||
new /obj/item/reagent_containers/food/snacks/carpmeat(src)
|
||||
new /obj/item/reagent_containers/food/snacks/meat/rawcrab(src)
|
||||
|
||||
/obj/item/storage/box/emptysandbags
|
||||
name = "box of empty sandbags"
|
||||
|
||||
|
||||
@@ -24,6 +24,7 @@
|
||||
w_class = WEIGHT_CLASS_SMALL
|
||||
armor = list("melee" = 10, "bullet" = 5, "laser" = 5,"energy" = 5, "bomb" = 0, "bio" = 0, "rad" = 10, "fire" = 30, "acid" = 30)
|
||||
resistance_flags = FIRE_PROOF | ACID_PROOF
|
||||
mutantrace_variation = STYLE_MUZZLE
|
||||
var/voice_unknown = TRUE ///This makes it so that your name shows up as unknown when wearing the mask.
|
||||
|
||||
/obj/item/clothing/mask/luchador
|
||||
|
||||
@@ -189,12 +189,11 @@
|
||||
GLOBAL_VAR_INIT(frying_hardmode, TRUE)
|
||||
GLOBAL_VAR_INIT(frying_bad_chem_add_volume, TRUE)
|
||||
GLOBAL_LIST_INIT(frying_bad_chems, list(
|
||||
/datum/reagent/toxin/bad_food = 10,
|
||||
/datum/reagent/clf3 = 2,
|
||||
/datum/reagent/toxin/bad_food = 3,
|
||||
/datum/reagent/drug/aranesp = 2,
|
||||
/datum/reagent/blackpowder = 10,
|
||||
/datum/reagent/phlogiston = 3,
|
||||
/datum/reagent/toxin/cyanide = 3,
|
||||
/datum/reagent/toxin = 2,
|
||||
/datum/reagent/lithium = 2,
|
||||
/datum/reagent/mercury = 2,
|
||||
))
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/deepfryholder/Initialize(mapload, obj/item/fried)
|
||||
@@ -227,8 +226,10 @@ GLOBAL_LIST_INIT(frying_bad_chems, list(
|
||||
var/bad_chem = GLOB.frying_bad_chems[R]
|
||||
var/bad_chem_amount = GLOB.frying_bad_chems[bad_chem]
|
||||
if(GLOB.frying_bad_chem_add_volume)
|
||||
reagents.maximum_volume += bad_chem_amount
|
||||
reagents.maximum_volume += bad_chem_amount + 2 //Added room for condensed cooking oil
|
||||
reagents.add_reagent(bad_chem, bad_chem_amount)
|
||||
//All fried inedible items also get condensed cooking oil added, which induces minor vomiting and heart damage
|
||||
reagents.add_reagent(/datum/reagent/toxin/condensed_cooking_oil, 2)
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/deepfryholder/Destroy()
|
||||
if(trash)
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
suit = /obj/item/clothing/suit/toggle/chef
|
||||
head = /obj/item/clothing/head/chefhat
|
||||
mask = /obj/item/clothing/mask/fakemoustache/italian
|
||||
backpack_contents = list(/obj/item/sharpener = 1)
|
||||
backpack_contents = list(/obj/item/sharpener = 1, /obj/item/choice_beacon/ingredients = 1)
|
||||
|
||||
/datum/outfit/job/cook/pre_equip(mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source)
|
||||
..()
|
||||
@@ -43,10 +43,6 @@
|
||||
..()
|
||||
if(visualsOnly)
|
||||
return
|
||||
var/list/possible_boxes = subtypesof(/obj/item/storage/box/ingredients)
|
||||
var/chosen_box = pick(possible_boxes)
|
||||
var/obj/item/storage/box/I = new chosen_box(src)
|
||||
H.equip_to_slot_or_del(I,SLOT_IN_BACKPACK)
|
||||
var/datum/martial_art/cqc/under_siege/justacook = new
|
||||
justacook.teach(H)
|
||||
|
||||
|
||||
@@ -702,8 +702,8 @@
|
||||
|
||||
/mob/living/do_resist_grab(moving_resist, forced, silent = FALSE)
|
||||
. = ..()
|
||||
if(pulledby.grab_state)
|
||||
if(CHECK_MOBILITY(src, MOBILITY_STAND) && prob(30/pulledby.grab_state))
|
||||
if(pulledby.grab_state > GRAB_PASSIVE)
|
||||
if(CHECK_MOBILITY(src, MOBILITY_RESIST) && prob(30/pulledby.grab_state))
|
||||
visible_message("<span class='danger'>[src] has broken free of [pulledby]'s grip!</span>")
|
||||
pulledby.stop_pulling()
|
||||
return TRUE
|
||||
|
||||
@@ -495,6 +495,24 @@
|
||||
toxpwr = 0.5
|
||||
taste_description = "bad cooking"
|
||||
|
||||
/datum/reagent/toxin/condensed_cooking_oil
|
||||
name = "Condensed Cooking Oil"
|
||||
description = "Taste the consequences of your mistakes."
|
||||
reagent_state = LIQUID
|
||||
color = "#d6d6d8"
|
||||
metabolization_rate = 0.25 * REAGENTS_METABOLISM
|
||||
toxpwr = 0
|
||||
taste_mult = -2
|
||||
taste_description = "awful cooking"
|
||||
|
||||
/datum/reagent/toxin/condensed_cooking_oil/on_mob_life(mob/living/carbon/M)
|
||||
if(prob(15))
|
||||
M.vomit()
|
||||
else
|
||||
if(prob(40))
|
||||
M.adjustOrganLoss(ORGAN_SLOT_HEART, 0.5) //For reference, bungotoxin does 3
|
||||
..()
|
||||
|
||||
/datum/reagent/toxin/itching_powder
|
||||
name = "Itching Powder"
|
||||
description = "A powder that induces itching upon contact with the skin. Causes the victim to scratch at their itches and has a very low chance to decay into Histamine."
|
||||
|
||||
@@ -388,3 +388,67 @@
|
||||
|
||||
/obj/item/reagent_containers/glass/get_belt_overlay()
|
||||
return mutable_appearance('icons/obj/clothing/belt_overlays.dmi', "bottle")
|
||||
|
||||
//Mortar & Pestle
|
||||
|
||||
/obj/item/pestle
|
||||
name = "pestle"
|
||||
desc = "An ancient, simple tool used in conjunction with a mortar to grind or juice items."
|
||||
icon = 'icons/obj/chemical.dmi'
|
||||
icon_state = "pestle"
|
||||
force = 4
|
||||
|
||||
/obj/item/reagent_containers/glass/mortar
|
||||
name = "mortar"
|
||||
desc = "A specially formed bowl of ancient design. It is possible to crush or juice items placed in it using a pestle; however the process, unlike modern methods, is slow and physically exhausting. Alt click to eject the item."
|
||||
icon_state = "mortar"
|
||||
amount_per_transfer_from_this = 10
|
||||
possible_transfer_amounts = list(5, 10, 15, 20, 25, 30, 50)
|
||||
item_flags = NO_MAT_REDEMPTION
|
||||
reagent_flags = OPENCONTAINER
|
||||
spillable = TRUE
|
||||
var/obj/item/grinded
|
||||
|
||||
/obj/item/reagent_containers/glass/mortar/AltClick(mob/user)
|
||||
. = ..()
|
||||
if(grinded)
|
||||
grinded.forceMove(drop_location())
|
||||
grinded = null
|
||||
to_chat(user, "<span class='notice'>You eject the item inside.</span>")
|
||||
return TRUE
|
||||
|
||||
/obj/item/reagent_containers/glass/mortar/attackby(obj/item/I, mob/living/carbon/human/user)
|
||||
..()
|
||||
if(istype(I,/obj/item/pestle))
|
||||
if(grinded)
|
||||
if(IS_STAMCRIT(user))
|
||||
to_chat(user, "<span class='warning'>You are too tired to work!</span>")
|
||||
return
|
||||
to_chat(user, "<span class='notice'>You start grinding...</span>")
|
||||
if((do_after(user, 25, target = src)) && grinded)
|
||||
user.adjustStaminaLoss(20)
|
||||
if(grinded.juice_results) //prioritize juicing
|
||||
grinded.on_juice()
|
||||
reagents.add_reagent_list(grinded.juice_results)
|
||||
to_chat(user, "<span class='notice'>You juice [grinded] into a fine liquid.</span>")
|
||||
QDEL_NULL(grinded)
|
||||
return
|
||||
grinded.on_grind()
|
||||
reagents.add_reagent_list(grinded.grind_results)
|
||||
if(grinded.reagents) //food and pills
|
||||
grinded.reagents.trans_to(src, grinded.reagents.total_volume)
|
||||
to_chat(user, "<span class='notice'>You break [grinded] into powder.</span>")
|
||||
QDEL_NULL(grinded)
|
||||
return
|
||||
return
|
||||
else
|
||||
to_chat(user, "<span class='warning'>There is nothing to grind!</span>")
|
||||
return
|
||||
if(grinded)
|
||||
to_chat(user, "<span class='warning'>There is something inside already!</span>")
|
||||
return
|
||||
if(I.juice_results || I.grind_results)
|
||||
I.forceMove(src)
|
||||
grinded = I
|
||||
return
|
||||
to_chat(user, "<span class='warning'>You can't grind this!</span>")
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
author: "Trilbyspaceclone"
|
||||
delete-after: True
|
||||
changes:
|
||||
- rscadd: "Ports over TG's Mortars and Pestles."
|
||||
@@ -0,0 +1,5 @@
|
||||
author: "timothyteakettle"
|
||||
delete-after: True
|
||||
changes:
|
||||
- rscadd: "new reagent 'Condensed Cooking Oil'"
|
||||
- tweak: "list of chems that can go into fried non-food items was changed"
|
||||
@@ -0,0 +1,6 @@
|
||||
author: "timothyteakettle"
|
||||
delete-after: True
|
||||
changes:
|
||||
- rscadd: "added beacon for cooks to choose an ingredient box, which replaces the random box they used to receive"
|
||||
- rscadd: "added a new sushi ingredients box"
|
||||
- rscadd: "added more items to the wildcard box's possible contents"
|
||||
@@ -0,0 +1,4 @@
|
||||
author: "zeroisthebiggay"
|
||||
delete-after: True
|
||||
changes:
|
||||
- bugfix: "insidious balaclava muzzlepsprite works"
|
||||
@@ -0,0 +1,4 @@
|
||||
author: "Kraseo"
|
||||
delete-after: True
|
||||
changes:
|
||||
- bugfix: "You can break out of neckgrabs once more."
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 54 KiB After Width: | Height: | Size: 54 KiB |
Reference in New Issue
Block a user