Merge pull request #12198 from Fox-McCloud/personal-crafting-update

Updates/Refactors Personal Crafting
This commit is contained in:
variableundefined
2019-09-03 19:01:47 -04:00
committed by GitHub
9 changed files with 212 additions and 70 deletions
+19 -2
View File
@@ -1,11 +1,28 @@
//tablecrafting defines
#define CAT_NONE ""
#define CAT_WEAPON "Weaponry"
#define CAT_WEAPONRY "Weaponry"
#define CAT_WEAPON "Weapons"
#define CAT_AMMO "Ammunition"
#define CAT_ROBOT "Robots"
#define CAT_FOOD "Food"
#define CAT_MISC "Misc"
#define CAT_PRIMAL "Tribal"
#define CAT_CLOTHING "Clothing"
#define CAT_FOOD "Foods"
#define CAT_BREAD "Breads"
#define CAT_BURGER "Burgers"
#define CAT_CAKE "Cakes"
#define CAT_EGG "Egg-Based Food"
#define CAT_MEAT "Meats"
#define CAT_SUSHI "Sushi"
#define CAT_MISCFOOD "Misc. Food"
#define CAT_PASTRY "Pastries"
#define CAT_PIE "Pies"
#define CAT_PIZZA "Pizzas"
#define CAT_SALAD "Salads"
#define CAT_SANDWICH "Sandwiches"
#define CAT_SOUP "Soups"
#define CAT_SPAGHETTI "Spaghettis"
#define CAT_ICE "Frozen"
#define RECIPE_MICROWAVE "Microwave"
#define RECIPE_OVEN "Oven"
+1 -5
View File
@@ -46,11 +46,7 @@
if(IS_WHITELISTED in S.species_traits)
GLOB.whitelisted_species += S.name
for(var/D in subtypesof(/datum/crafting_recipe))
var/datum/crafting_recipe/R = D
if(!initial(R.roundstart_enabled))
continue
GLOB.crafting_recipes += new R
init_subtypes(/datum/crafting_recipe, GLOB.crafting_recipes)
//Pipe list building
init_subtypes(/datum/pipes, GLOB.construction_pipe_list)
+2
View File
@@ -80,6 +80,8 @@
//zealot_master is a reference to the mob that converted them into a zealot (for ease of investigation and such)
var/mob/living/carbon/human/zealot_master = null
var/list/learned_recipes //List of learned recipe TYPES.
/datum/mind/New(new_key)
key = new_key
soulOwner = src
@@ -145,7 +145,8 @@
/obj/item/stack/packageWrap = 8,
/obj/item/pipe = 2)
time = 300
category = CAT_WEAPON
category = CAT_WEAPONRY
subcategory = CAT_WEAPON
/obj/item/pneumatic_cannon/proc/updateTank(obj/item/tank/thetank, removing = 0, mob/living/carbon/human/user)
if(removing)
+100 -26
View File
@@ -1,7 +1,26 @@
/datum/personal_crafting
var/busy
var/viewing_category = 1 //typical powergamer starting on the Weapons tab
var/list/categories = list(CAT_WEAPON,CAT_AMMO,CAT_ROBOT,CAT_FOOD,CAT_CLOTHING,CAT_MISC,CAT_PRIMAL)
var/viewing_subcategory = 1
var/list/categories = list(
CAT_WEAPONRY,
CAT_ROBOT,
CAT_MISC,
CAT_PRIMAL,
CAT_FOOD,
CAT_CLOTHING)
var/list/subcategories = list(
list( //Weapon subcategories
CAT_WEAPON,
CAT_AMMO),
CAT_NONE, //Robot subcategories
CAT_NONE, //Misc subcategories
CAT_NONE, //Tribal subcategories
list( //Food subcategories
CAT_CAKE,
CAT_SUSHI,
CAT_SANDWICH),
CAT_CLOTHING) //Clothing subcategories
var/display_craftable_only = FALSE
var/display_compact = TRUE
@@ -22,11 +41,14 @@
/datum/personal_crafting/proc/check_contents(datum/crafting_recipe/R, list/contents)
contents = contents["other"]
main_loop:
for(var/A in R.reqs)
var/needed_amount = R.reqs[A]
for(var/B in contents)
if(ispath(B, A))
if (R.blacklist.Find(B))
continue
if(contents[B] >= R.reqs[A])
continue main_loop
else
@@ -56,45 +78,47 @@
if(AM.flags_2 & HOLOGRAM_2)
continue
. += AM
for(var/slot in list(slot_r_store, slot_l_store))
. += user.get_item_by_slot(slot)
/datum/personal_crafting/proc/get_surroundings(mob/user)
. = list()
.["other"] = list()
for(var/obj/item/I in get_environment(user))
if(I.flags_2 & HOLOGRAM_2)
continue
if(istype(I, /obj/item/stack))
var/obj/item/stack/S = I
.[I.type] += S.amount
.["other"][I.type] += S.amount
else
if(istype(I, /obj/item/reagent_containers))
var/obj/item/reagent_containers/RC = I
if(RC.container_type & OPENCONTAINER)
if(RC.is_drainable())
for(var/datum/reagent/A in RC.reagents.reagent_list)
.[A.type] += A.volume
.[I.type] += 1
.["other"][A.type] += A.volume
.["other"][I.type] += 1
/datum/personal_crafting/proc/check_tools(mob/user, datum/crafting_recipe/R, list/contents)
if(!R.tools.len)
return 1
return TRUE
var/list/possible_tools = list()
for(var/obj/item/I in user.contents)
if(istype(I, /obj/item/storage))
for(var/obj/item/SI in I.contents)
possible_tools += SI.type
possible_tools += I.type
possible_tools += contents
possible_tools |= contents["other"]
main_loop:
for(var/A in R.tools)
for(var/I in possible_tools)
if(ispath(I,A))
continue main_loop
return 0
return 1
return FALSE
return TRUE
/datum/personal_crafting/proc/construct_item(mob/user, datum/crafting_recipe/R)
for(var/A in R.parts)
var/list/contents = get_surroundings(user)
var/send_feedback = 1
if(check_contents(R, contents))
@@ -108,6 +132,8 @@
var/list/parts = del_reqs(R, user)
var/atom/movable/I = new R.result (get_turf(user.loc))
I.CheckParts(parts, R)
if(isitem(I))
user.put_in_hands(I)
if(send_feedback)
feedback_add_details("object_crafted","[I.type]")
return 0
@@ -173,6 +199,7 @@
RGNT.volume += RG.volume
RGNT.data += RG.data
qdel(RG)
RC.on_reagent_change()
else
surroundings -= RC
else if(ispath(A, /obj/item/stack))
@@ -195,7 +222,7 @@
else
data = S.amount
S = locate(S.type) in Deletion
S.amount += data
S.add(data)
surroundings -= S
else
var/atom/movable/I
@@ -241,11 +268,19 @@
/datum/personal_crafting/ui_data(mob/user)
var/list/data = list()
var/list/subs = list()
var/cur_subcategory = CAT_NONE
var/cur_category = categories[viewing_category]
if(islist(subcategories[viewing_category]))
subs = subcategories[viewing_category]
cur_subcategory = subs[viewing_subcategory]
data["busy"] = busy
data["prev_cat"] = categories[prev_cat()]
data["prev_subcat"] = subs[prev_subcat()]
data["category"] = cur_category
data["subcategory"] = cur_subcategory
data["next_cat"] = categories[next_cat()]
data["next_subcat"] = subs[next_subcat()]
data["display_craftable_only"] = display_craftable_only
data["display_compact"] = display_compact
@@ -254,7 +289,11 @@
var/list/cant_craft = list()
for(var/rec in GLOB.crafting_recipes)
var/datum/crafting_recipe/R = rec
if(R.category != cur_category)
if(!R.always_availible && !(R.type in user?.mind?.learned_recipes)) //User doesn't actually know how to make this.
continue
if((R.category != cur_category) || (R.subcategory != cur_subcategory))
continue
if(check_contents(R, surroundings))
can_craft += list(build_recipe_data(R))
@@ -269,41 +308,54 @@
return
if(href_list["make"])
var/datum/crafting_recipe/TR = locate(href_list["make"])
busy = 1
var/datum/crafting_recipe/TR = locate(href_list["make"]) in GLOB.crafting_recipes
busy = TRUE
SSnanoui.update_uis(src)
var/fail_msg = construct_item(usr, TR)
if(!fail_msg)
to_chat(usr, "<span class='notice'>[TR.name] constructed.</span>")
else
to_chat(usr, "<span class ='warning'>Construction failed[fail_msg]</span>")
busy = 0
busy = FALSE
SSnanoui.update_uis(src)
if(href_list["forwardCat"])
viewing_category = next_cat()
to_chat(usr, "<span class='notice'>Category is now [categories[viewing_category]].</span>")
viewing_category = next_cat(FALSE)
. = TRUE
if(href_list["backwardCat"])
viewing_category = prev_cat()
to_chat(usr, "<span class='notice'>Category is now [categories[viewing_category]].</span>")
viewing_category = prev_cat(FALSE)
. = TRUE
if(href_list["forwardSubCat"])
viewing_subcategory = next_subcat()
. = TRUE
if(href_list["backwardSubCat"])
viewing_subcategory = prev_subcat()
. = TRUE
if(href_list["toggle_recipes"])
display_craftable_only = !display_craftable_only
to_chat(usr, "<span class='notice'>You will now [display_craftable_only ? "only see recipes you can craft":"see all recipes"].</span>")
. = TRUE
if(href_list["toggle_compact"])
display_compact = !display_compact
to_chat(usr, "<span class='notice'>Crafting menu is now [display_compact? "compact" : "full size"].</span>")
. = TRUE
SSnanoui.update_uis(src)
//Next works nicely with modular arithmetic
/datum/personal_crafting/proc/next_cat()
//Next works nicely with modular arithmetic
/datum/personal_crafting/proc/next_cat(readonly = TRUE)
if (!readonly)
viewing_subcategory = 1
. = viewing_category % categories.len + 1
/datum/personal_crafting/proc/next_subcat()
if(islist(subcategories[viewing_category]))
var/list/subs = subcategories[viewing_category]
. = viewing_subcategory % subs.len + 1
//Previous can go fuck itself
/datum/personal_crafting/proc/prev_cat()
/datum/personal_crafting/proc/prev_cat(readonly = TRUE)
if (!readonly)
viewing_subcategory = 1
if(viewing_category == categories.len)
. = viewing_category-1
else
@@ -311,6 +363,18 @@
if(. <= 0)
. = categories.len
/datum/personal_crafting/proc/prev_subcat()
if(islist(subcategories[viewing_category]))
var/list/subs = subcategories[viewing_category]
if(viewing_subcategory == subs.len)
. = viewing_subcategory-1
else
. = viewing_subcategory % subs.len - 1
if(. <= 0)
. = subs.len
else
. = null
/datum/personal_crafting/proc/build_recipe_data(datum/crafting_recipe/R)
var/list/data = list()
data["name"] = R.name
@@ -334,9 +398,19 @@
data["catalyst_text"] = catalyst_text
for(var/a in R.tools)
var/atom/A = a //cheat-typecast
tool_text += " [R.tools[A]] [initial(A.name)],"
if(ispath(a, /obj/item))
var/obj/item/b = a
tool_text += " [initial(b.name)],"
else
tool_text += " [a],"
tool_text = replacetext(tool_text, ",", "", -1)
data["tool_text"] = tool_text
return data
return data
//Mind helpers
/datum/mind/proc/teach_crafting_recipe(R)
if(!learned_recipes)
learned_recipes = list()
learned_recipes |= R
+49 -31
View File
@@ -1,19 +1,15 @@
/datum/crafting_recipe
var/name = "" //in-game display name
var/reqs[] = list() //type paths of items consumed associated with how many are needed
var/blacklist[] = list() //type paths of items explicitly not allowed as an ingredient
var/result //type path of item resulting from this craft
var/tools[] = list() //type paths of items needed but not consumed
var/time = 30 //time in deciseconds
var/parts[] = list() //type paths of items that will be placed in the result
var/chem_catalysts[] = list() //like tools but for reagents
var/category = CAT_NONE // Recipe category
var/roundstart_enabled = TRUE //Set to FALSE if you don't want a particular crafting recipe to be available all the time
/datum/crafting_recipe/proc/AdjustChems(var/obj/resultobj as obj)
//This proc is to replace the make_food proc of recipes from microwaves and such that are being converted to table crafting recipes.
//Use it to handle the removal of reagents after the food has been created (like removing toxins from a salad made with ambrosia)
//If a recipe does not require it's chems adjusted, don't bother declaring this for the recipe, as it will call this placeholder
return
var/category = CAT_NONE //where it shows up in the crafting UI
var/subcategory = CAT_NONE
var/always_availible = TRUE //Set to FALSE if it needs to be learned first.
/datum/crafting_recipe/IED
name = "IED"
@@ -24,7 +20,8 @@
/obj/item/reagent_containers/food/drinks/cans = 1)
parts = list(/obj/item/reagent_containers/food/drinks/cans = 1)
time = 15
category = CAT_WEAPON
category = CAT_WEAPONRY
subcategory = CAT_WEAPON
/datum/crafting_recipe/molotov
name = "Molotov"
@@ -33,7 +30,8 @@
/obj/item/reagent_containers/food/drinks/bottle = 1)
parts = list(/obj/item/reagent_containers/food/drinks/bottle = 1)
time = 40
category = CAT_WEAPON
category = CAT_WEAPONRY
subcategory = CAT_WEAPON
/datum/crafting_recipe/stunprod
name = "Stunprod"
@@ -42,7 +40,8 @@
/obj/item/stack/rods = 1,
/obj/item/assembly/igniter = 1)
time = 40
category = CAT_WEAPON
category = CAT_WEAPONRY
subcategory = CAT_WEAPON
/datum/crafting_recipe/bola
name = "Bola"
@@ -50,7 +49,8 @@
reqs = list(/obj/item/restraints/handcuffs/cable = 1,
/obj/item/stack/sheet/metal = 6)
time = 20//15 faster than crafting them by hand!
category= CAT_WEAPON
category = CAT_WEAPONRY
subcategory = CAT_WEAPON
/datum/crafting_recipe/ed209
name = "ED209"
@@ -144,7 +144,8 @@
/obj/item/weldingtool = 1)
tools = list(/obj/item/screwdriver)
time = 10
category = CAT_WEAPON
category = CAT_WEAPONRY
subcategory = CAT_WEAPON
/datum/crafting_recipe/meteorshot
name = "Meteorshot Shell"
@@ -154,7 +155,8 @@
/obj/item/stock_parts/manipulator = 2)
tools = list(/obj/item/screwdriver)
time = 5
category = CAT_AMMO
category = CAT_WEAPONRY
subcategory = CAT_AMMO
/datum/crafting_recipe/pulseslug
name = "Pulse Slug Shell"
@@ -164,7 +166,8 @@
/obj/item/stock_parts/micro_laser/ultra = 1)
tools = list(/obj/item/screwdriver)
time = 5
category = CAT_AMMO
category = CAT_WEAPONRY
subcategory = CAT_AMMO
/datum/crafting_recipe/dragonsbreath
name = "Dragonsbreath Shell"
@@ -173,7 +176,8 @@
/datum/reagent/phosphorus = 5,)
tools = list(/obj/item/screwdriver)
time = 5
category = CAT_AMMO
category = CAT_WEAPONRY
subcategory = CAT_AMMO
/datum/crafting_recipe/frag12
name = "FRAG-12 Shell"
@@ -184,7 +188,8 @@
/datum/reagent/facid = 5,)
tools = list(/obj/item/screwdriver)
time = 5
category = CAT_AMMO
category = CAT_WEAPONRY
subcategory = CAT_AMMO
/datum/crafting_recipe/ionslug
name = "Ion Scatter Shell"
@@ -194,7 +199,8 @@
/obj/item/stock_parts/subspace/crystal = 1)
tools = list(/obj/item/screwdriver)
time = 5
category = CAT_AMMO
category = CAT_WEAPONRY
subcategory = CAT_AMMO
/datum/crafting_recipe/improvisedslug
name = "Improvised Shotgun Shell"
@@ -205,7 +211,8 @@
/datum/reagent/fuel = 10)
tools = list(/obj/item/screwdriver)
time = 5
category = CAT_AMMO
category = CAT_WEAPONRY
subcategory = CAT_AMMO
/datum/crafting_recipe/improvisedslugoverload
name = "Overload Improvised Shell"
@@ -215,7 +222,8 @@
/datum/reagent/plasma_dust = 20)
tools = list(/obj/item/screwdriver)
time = 5
category = CAT_AMMO
category = CAT_WEAPONRY
subcategory = CAT_AMMO
/datum/crafting_recipe/laserslug
name = "Laser Slug Shell"
@@ -225,7 +233,8 @@
/obj/item/stock_parts/micro_laser/high = 1)
tools = list(/obj/item/screwdriver)
time = 5
category = CAT_AMMO
category = CAT_WEAPONRY
subcategory = CAT_AMMO
/datum/crafting_recipe/ishotgun
name = "Improvised Shotgun"
@@ -236,7 +245,8 @@
/obj/item/stack/packageWrap = 5,)
tools = list(/obj/item/screwdriver)
time = 100
category = CAT_WEAPON
category = CAT_WEAPONRY
subcategory = CAT_AMMO
/datum/crafting_recipe/chainsaw
name = "Chainsaw"
@@ -246,7 +256,8 @@
/obj/item/stack/sheet/plasteel = 1)
tools = list(/obj/item/weldingtool)
time = 50
category = CAT_WEAPON
category = CAT_WEAPONRY
subcategory = CAT_WEAPON
/datum/crafting_recipe/spear
name = "Spear"
@@ -255,7 +266,8 @@
/obj/item/shard = 1,
/obj/item/stack/rods = 1)
time = 40
category = CAT_WEAPON
category = CAT_WEAPONRY
subcategory = CAT_WEAPON
/datum/crafting_recipe/spooky_camera
name = "Camera Obscura"
@@ -296,7 +308,8 @@
reqs = list(/obj/item/stack/sheet/wood = 1,
/obj/item/stack/cable_coil = 5)
tools = list(/obj/item/kitchen/knife) // Gotta carve the wood into handles
category = CAT_WEAPON
category = CAT_WEAPONRY
subcategory = CAT_WEAPON
/datum/crafting_recipe/makeshift_bolt
name = "Makeshift Bolt"
@@ -304,7 +317,8 @@
time = 5
reqs = list(/obj/item/stack/rods = 1)
tools = list(/obj/item/weldingtool)
category = CAT_AMMO
category = CAT_WEAPONRY
subcategory = CAT_AMMO
/datum/crafting_recipe/crossbow
name = "Powered Crossbow"
@@ -316,7 +330,8 @@
/obj/item/stack/sheet/wood = 5)
tools = list(/obj/item/weldingtool,
/obj/item/screwdriver)
category = CAT_WEAPON
category = CAT_WEAPONRY
subcategory = CAT_WEAPON
/datum/crafting_recipe/glove_balloon
name = "Latex Glove Balloon"
@@ -361,7 +376,8 @@
)
parts = list(/obj/item/stock_parts/matter_bin = 1, /obj/item/grenade/chem_grenade = 2)
time = 30
category = CAT_WEAPON
category = CAT_WEAPONRY
subcategory = CAT_WEAPON
/datum/crafting_recipe/chemical_payload2
name = "Chemical Payload (gibtonite)"
@@ -373,7 +389,8 @@
)
parts = list(/obj/item/stock_parts/matter_bin = 1, /obj/item/grenade/chem_grenade = 2)
time = 50
category = CAT_WEAPON
category = CAT_WEAPONRY
subcategory = CAT_WEAPON
/datum/crafting_recipe/toxins_payload
name = "Toxins Payload Casing"
@@ -383,7 +400,8 @@
/obj/item/assembly/signaler = 1,
/obj/item/stack/sheet/metal = 2
)
category = CAT_WEAPON
category = CAT_WEAPONRY
subcategory = CAT_WEAPON
/datum/crafting_recipe/bonearmor
name = "Bone Armor"
@@ -552,4 +570,4 @@
/obj/item/grown/log = 2)
time = 50
category = CAT_MISC
roundstart_enabled = FALSE
always_availible = FALSE
@@ -17,6 +17,7 @@
)
result = /obj/item/reagent_containers/food/snacks/sandwich
category = CAT_FOOD
subcategory = CAT_SANDWICH
/datum/crafting_recipe/slimesandwich
name = "Slime Jelly Sandwich"
@@ -26,6 +27,7 @@
)
result = /obj/item/reagent_containers/food/snacks/jellysandwich/slime
category = CAT_FOOD
subcategory = CAT_SANDWICH
/datum/crafting_recipe/cherrysandwich
name = "Cherry Jelly Sandwich"
@@ -35,6 +37,7 @@
)
result = /obj/item/reagent_containers/food/snacks/jellysandwich/cherry
category = CAT_FOOD
subcategory = CAT_SANDWICH
/datum/crafting_recipe/slimeburger
name = "Slime Jelly Burger"
@@ -44,6 +47,7 @@
)
result = /obj/item/reagent_containers/food/snacks/jellyburger/slime
category = CAT_FOOD
subcategory = CAT_SANDWICH
/datum/crafting_recipe/jellyburger
name = "Cherry Jelly Burger"
@@ -53,6 +57,7 @@
)
result = /obj/item/reagent_containers/food/snacks/jellyburger/cherry
category = CAT_FOOD
subcategory = CAT_SANDWICH
/datum/crafting_recipe/baseballburger
name = "Home run baseball burger"
@@ -62,6 +67,7 @@
)
result = /obj/item/reagent_containers/food/snacks/baseballburger
category = CAT_FOOD
subcategory = CAT_SANDWICH
/datum/crafting_recipe/notasandwich
name = "not-a-sandwich"
@@ -71,7 +77,7 @@
)
result = /obj/item/reagent_containers/food/snacks/notasandwich
category = CAT_FOOD
subcategory = CAT_SANDWICH
/datum/crafting_recipe/sushi_Ebi
name = "Ebi Sushi"
@@ -81,6 +87,7 @@
)
result = /obj/item/reagent_containers/food/snacks/sushi_Ebi
category = CAT_FOOD
subcategory = CAT_SUSHI
/datum/crafting_recipe/Ebi_maki
name = "Ebi Makiroll"
@@ -91,6 +98,7 @@
tools = list(/obj/item/kitchen/sushimat)
result = /obj/item/reagent_containers/food/snacks/sliceable/Ebi_maki
category = CAT_FOOD
subcategory = CAT_SUSHI
/datum/crafting_recipe/sushi_Ikura
name = "Ikura Sushi"
@@ -100,6 +108,7 @@
)
result = /obj/item/reagent_containers/food/snacks/sushi_Ikura
category = CAT_FOOD
subcategory = CAT_SUSHI
/datum/crafting_recipe/Ikura_maki
name = "Ikura Makiroll"
@@ -110,6 +119,7 @@
tools = list(/obj/item/kitchen/sushimat)
result = /obj/item/reagent_containers/food/snacks/sliceable/Ikura_maki
category = CAT_FOOD
subcategory = CAT_SUSHI
/datum/crafting_recipe/sushi_Inari
name = "Inari Sushi"
@@ -119,6 +129,7 @@
)
result = /obj/item/reagent_containers/food/snacks/sushi_Inari
category = CAT_FOOD
subcategory = CAT_SUSHI
/datum/crafting_recipe/Inari_maki
name = "Inari Makiroll"
@@ -129,6 +140,7 @@
tools = list(/obj/item/kitchen/sushimat)
result = /obj/item/reagent_containers/food/snacks/sliceable/Inari_maki
category = CAT_FOOD
subcategory = CAT_SUSHI
/datum/crafting_recipe/sushi_Sake
name = "Sake Sushi"
@@ -138,6 +150,7 @@
)
result = /obj/item/reagent_containers/food/snacks/sushi_Sake
category = CAT_FOOD
subcategory = CAT_SUSHI
/datum/crafting_recipe/Sake_maki
name = "Sake Makiroll"
@@ -148,6 +161,7 @@
tools = list(/obj/item/kitchen/sushimat)
result = /obj/item/reagent_containers/food/snacks/sliceable/Sake_maki
category = CAT_FOOD
subcategory = CAT_SUSHI
/datum/crafting_recipe/sushi_SmokedSalmon
name = "Smoked Salmon Sushi"
@@ -157,6 +171,7 @@
)
result = /obj/item/reagent_containers/food/snacks/sushi_SmokedSalmon
category = CAT_FOOD
subcategory = CAT_SUSHI
/datum/crafting_recipe/SmokedSalmon_maki
name = "Smoked Salmon Makiroll"
@@ -167,6 +182,7 @@
tools = list(/obj/item/kitchen/sushimat)
result = /obj/item/reagent_containers/food/snacks/sliceable/SmokedSalmon_maki
category = CAT_FOOD
subcategory = CAT_SUSHI
/datum/crafting_recipe/sushi_Masago
name = "Masago Sushi"
@@ -176,6 +192,7 @@
)
result = /obj/item/reagent_containers/food/snacks/sushi_Masago
category = CAT_FOOD
subcategory = CAT_SUSHI
/datum/crafting_recipe/Masago_maki
name = "Masago Makiroll"
@@ -186,6 +203,7 @@
tools = list(/obj/item/kitchen/sushimat)
result = /obj/item/reagent_containers/food/snacks/sliceable/Masago_maki
category = CAT_FOOD
subcategory = CAT_SUSHI
/datum/crafting_recipe/sushi_Tobiko
name = "Tobiko Sushi"
@@ -195,6 +213,7 @@
)
result = /obj/item/reagent_containers/food/snacks/sushi_Tobiko
category = CAT_FOOD
subcategory = CAT_SUSHI
/datum/crafting_recipe/Tobiko_maki
name = "Tobiko Makiroll"
@@ -205,6 +224,7 @@
tools = list(/obj/item/kitchen/sushimat)
result = /obj/item/reagent_containers/food/snacks/sliceable/Tobiko_maki
category = CAT_FOOD
subcategory = CAT_SUSHI
/datum/crafting_recipe/sushi_TobikoEgg
name = "Tobiko and Egg Sushi"
@@ -214,6 +234,7 @@
)
result = /obj/item/reagent_containers/food/snacks/sushi_TobikoEgg
category = CAT_FOOD
subcategory = CAT_SUSHI
/datum/crafting_recipe/TobikoEgg_maki
name = "Tobiko Makiroll"
@@ -224,6 +245,7 @@
tools = list(/obj/item/kitchen/sushimat)
result = /obj/item/reagent_containers/food/snacks/sliceable/TobikoEgg_maki
category = CAT_FOOD
subcategory = CAT_SUSHI
/datum/crafting_recipe/Sake_maki
name = "Sake Makiroll"
@@ -234,6 +256,7 @@
tools = list(/obj/item/kitchen/sushimat)
result = /obj/item/reagent_containers/food/snacks/sliceable/TobikoEgg_maki
category = CAT_FOOD
subcategory = CAT_SUSHI
/datum/crafting_recipe/sushi_Tai
name = "Tai Sushi"
@@ -243,6 +266,7 @@
)
result = /obj/item/reagent_containers/food/snacks/sushi_Tai
category = CAT_FOOD
subcategory = CAT_SUSHI
/datum/crafting_recipe/Tai_maki
name = "Tai Makiroll"
@@ -253,6 +277,7 @@
tools = list(/obj/item/kitchen/sushimat)
result = /obj/item/reagent_containers/food/snacks/sliceable/Tai_maki
category = CAT_FOOD
subcategory = CAT_SUSHI
/datum/crafting_recipe/food
@@ -271,4 +296,5 @@
/datum/reagent/teslium = 1,
)
result = /mob/living/simple_animal/pet/cat/cak
category = CAT_FOOD
category = CAT_FOOD
subcategory = CAT_CAKE //Cat! Haha, get it? CAT? GET IT? We get it - Love Felines -Foxes are better
+4 -2
View File
@@ -6,8 +6,10 @@
new /obj/item/a_gift(T)
for(var/mob/living/simple_animal/pet/corgi/Ian/Ian in GLOB.mob_list)
Ian.place_on_head(new /obj/item/clothing/head/helmet/space/santahat(Ian))
GLOB.crafting_recipes += new /datum/crafting_recipe/snowman
//The following spawn is necessary as both the timer and the shuttle systems initialise after the events system does, so we can't add stuff to the shuttle system as it doesn't exist yet and we can't use a timer
for(var/datum/crafting_recipe/snowman/S in GLOB.crafting_recipes)
S.always_availible = TRUE
break
//The following spawn is necessary as both the timer and the shuttle systems initialise after the events system does, so we can't add stuff to the shuttle system as it doesn't exist yet and we can't use a timer
spawn(60 SECONDS)
var/datum/supply_packs/xmas = SSshuttle.supply_packs["[/datum/supply_packs/misc/snow_machine]"]
xmas.special_enabled = TRUE
+7 -1
View File
@@ -4,7 +4,7 @@
<div class='display'>
<header><h3>{{:data.category}}</h3></header>
<header><h3>{{:data.category}}{{if data.subcategory}} : {{:data.subcategory}}{{/if}}</h3></header>
<article>
<div class='item'>
{{:helper.link(data.prev_cat, 'arrow-left', {'backwardCat': 1})}}
@@ -16,6 +16,12 @@
{{/if}}
{{:helper.link('Compact', data.display_compact ? 'check-square-o' : 'square-o', {'toggle_compact': 1})}}
</div>
{{if data.subcategory}}
<div class='item'>
{{:helper.link(data.prev_subcat, 'arrow-left', {'backwardSubCat': 1})}}
{{:helper.link(data.next_subcat, 'arrow-right', {'forwardSubCat': 1})}}
</div>
{{/if}}
{{if data.display_compact}}
<div class='display'>
<article>