diff --git a/code/defines/mob/simple_animal/corgi.dm b/code/defines/mob/simple_animal/corgi.dm
index ee07f6427d6..f86729daec0 100644
--- a/code/defines/mob/simple_animal/corgi.dm
+++ b/code/defines/mob/simple_animal/corgi.dm
@@ -329,7 +329,7 @@
dir = i
sleep(1)
-/obj/item/weapon/reagent_containers/food/snacks/meat/corgi
+/obj/item/weapon/reagent_containers/food/snacks/sliceable/meat/corgi
name = "Corgi meat"
desc = "Tastes like... well you know..."
diff --git a/code/defines/obj.dm b/code/defines/obj.dm
index c574a8285ed..b8658dadf68 100644
--- a/code/defines/obj.dm
+++ b/code/defines/obj.dm
@@ -107,6 +107,110 @@
//This list tracks characters spawned in the world and cannot be modified in-game. Currently referenced by respawn_character().
var/locked[] = list()
+ proc/get_manifest(monochrome)
+ var/list/heads = new()
+ var/list/sec = new()
+ var/list/eng = new()
+ var/list/med = new()
+ var/list/sci = new()
+ var/list/civ = new()
+ var/list/bot = new()
+ var/list/misc = new()
+
+ var/dat = {"
+
+
+ | Name | Rank |
+ "}
+ var/even = 0
+
+ // sort mobs
+ for(var/datum/data/record/t in data_core.general)
+ var/name = t.fields["name"]
+ var/rank = t.fields["rank"]
+
+ //world << "[name]: [rank]"
+
+ if(rank in command_positions)
+ heads[name] = rank
+ if(rank in security_positions)
+ sec[name] = rank
+ continue
+ if(rank in engineering_positions)
+ eng[name] = rank
+ continue
+ if(rank in medical_positions)
+ med[name] = rank
+ continue
+ if(rank in science_positions)
+ sci[name] = rank
+ continue
+ if(rank in civilian_positions)
+ civ[name] = rank
+ continue
+ if(rank in nonhuman_positions)
+ bot[name] = rank
+ continue
+
+ if(!(name in heads))
+ misc[name] = rank
+
+ if(heads.len > 0)
+ dat += "| Heads |
"
+ for(name in heads)
+ dat += "| [name] | [heads[name]] |
"
+ even = !even
+ if(sec.len > 0)
+ dat += "| Security |
"
+ for(name in sec)
+ dat += "| [name] | [sec[name]] |
"
+ even = !even
+ if(eng.len > 0)
+ dat += "| Engineering |
"
+ for(name in eng)
+ dat += "| [name] | [eng[name]] |
"
+ even = !even
+ if(med.len > 0)
+ dat += "| Medical |
"
+ for(name in med)
+ dat += "| [name] | [med[name]] |
"
+ even = !even
+ if(sci.len > 0)
+ dat += "| Science |
"
+ for(name in sci)
+ dat += "| [name] | [sci[name]] |
"
+ even = !even
+ if(civ.len > 0)
+ dat += "| Civilian |
"
+ for(name in civ)
+ dat += "| [name] | [civ[name]] |
"
+ even = !even
+ // in case somebody is insane and added them to the manifest, why not
+ if(bot.len > 0)
+ dat += "| Silicon |
"
+ for(name in bot)
+ dat += "| [name] | [bot[name]] |
"
+ even = !even
+ // misc guys
+ if(misc.len > 0)
+ dat += "| Miscellaneous |
"
+ for(name in misc)
+ dat += "| [name] | [misc[name]] |
"
+ even = !even
+
+
+ dat += "
"
+ dat = dd_replacetext(dat, "\n", "") // so it can be placed on paper correctly
+ dat = dd_replacetext(dat, "\t", "")
+ return dat
+
/obj/effect/equip_e
name = "equip e"
var/mob/source = null
diff --git a/code/game/machinery/computer/id.dm b/code/game/machinery/computer/id.dm
index 05cc6749c91..6583bc5f416 100644
--- a/code/game/machinery/computer/id.dm
+++ b/code/game/machinery/computer/id.dm
@@ -52,9 +52,7 @@
if (!( ticker ))
return
if (mode) // accessing crew manifest
- var/crew = ""
- for(var/datum/data/record/t in data_core.general)
- crew += "[t.fields["name"]] - [t.fields["rank"]]
"
+ var/crew = data_core.get_manifest()
dat = "Crew Manifest:
Please use the security record computer to modify entries.
[crew]Print
Access ID modification console.
"
else
var/header = "Identification Card Modifier
"
@@ -245,10 +243,7 @@
printing = 1
sleep(50)
var/obj/item/weapon/paper/P = new /obj/item/weapon/paper( loc )
- var/t1 = "Crew Manifest:
"
- for(var/datum/data/record/t in data_core.general)
- t1 += "[t.fields["name"]] - [t.fields["rank"]]
"
- P.info = t1
+ P.info = "Crew Manifest:
" + data_core.get_manifest()
P.name = "paper - 'Crew Manifest'"
printing = null
if (modify)
diff --git a/code/game/machinery/kitchen/juicer.dm b/code/game/machinery/kitchen/juicer.dm
index c329a4a883b..0a32cd32242 100644
--- a/code/game/machinery/kitchen/juicer.dm
+++ b/code/game/machinery/kitchen/juicer.dm
@@ -21,6 +21,8 @@
/obj/item/weapon/reagent_containers/food/snacks/grown/lime = "limejuice",
/obj/item/weapon/reagent_containers/food/snacks/watermelonslice = "watermelonjuice",
/obj/item/weapon/reagent_containers/food/snacks/grown/poisonberries = "poisonberryjuice",
+ /obj/item/weapon/reagent_containers/food/snacks/grown/grapes = "grapejuice",
+ /obj/item/weapon/reagent_containers/food/snacks/grown/greengrapes = "grapejuice",
)
/obj/machinery/juicer/New()
diff --git a/code/game/objects/devices/PDA/cart.dm b/code/game/objects/devices/PDA/cart.dm
index b3e9698f6de..488db44b814 100644
--- a/code/game/objects/devices/PDA/cart.dm
+++ b/code/game/objects/devices/PDA/cart.dm
@@ -235,8 +235,7 @@ Code:
menu = "
Crew Manifest
"
menu += "Entries cannot be modified from this terminal.
"
- for (var/datum/data/record/t in data_core.general)
- menu += "[t.fields["name"]] - [t.fields["rank"]]
"
+ menu += data_core.get_manifest(1)
menu += "
"
diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm
index 81e8d63dad0..0fc8d0c57e9 100644
--- a/code/game/objects/items.dm
+++ b/code/game/objects/items.dm
@@ -228,11 +228,8 @@
return
/obj/effect/manifest/proc/manifest()
- var/dat = "Crew Manifest:
"
- for(var/mob/living/carbon/human/M in world)
- dat += text(" [] - []
", M.name, M.get_assignment())
var/obj/item/weapon/paper/P = new /obj/item/weapon/paper( src.loc )
- P.info = dat
+ P.info = "Crew Manifest:
" + data_core.get_manifest()
P.name = "paper - 'Crew Manifest'"
//SN src = null
del(src)
diff --git a/code/game/turf.dm b/code/game/turf.dm
index 73e2545a90c..8da08eacb13 100644
--- a/code/game/turf.dm
+++ b/code/game/turf.dm
@@ -169,6 +169,8 @@
E.dir = old_dir
E.icon_state = "engine"
+ E.levelupdate()
+ return E
/turf/simulated/Entered(atom/A, atom/OL)
if (istype(A,/mob/living/carbon))
diff --git a/code/modules/chemical/Chemistry-Reagents.dm b/code/modules/chemical/Chemistry-Reagents.dm
index df748a5ab2c..e2566516f6e 100644
--- a/code/modules/chemical/Chemistry-Reagents.dm
+++ b/code/modules/chemical/Chemistry-Reagents.dm
@@ -2131,6 +2131,20 @@ datum
..()
return
+ grapejuice
+ name = "Grape Juice"
+ id = "grapejuice"
+ description = "A tasty, purple juice made from grapes."
+ reagent_state = LIQUID
+ nutriment_factor = 1 * REAGENTS_METABOLISM
+ color = "#333386" // rgb: 51, 51, 134
+
+ on_mob_life(var/mob/living/M as mob)
+ if(!M) M = holder.my_atom
+ M:nutrition += nutriment_factor
+ ..()
+ return
+
berryjuice
name = "Berry Juice"
id = "berryjuice"
diff --git a/code/modules/chemical/Chemistry-Recipes.dm b/code/modules/chemical/Chemistry-Recipes.dm
index a403d17e01c..8ec84a262ad 100644
--- a/code/modules/chemical/Chemistry-Recipes.dm
+++ b/code/modules/chemical/Chemistry-Recipes.dm
@@ -969,7 +969,7 @@ datum
name = "Wine"
id = "wine"
result = "wine"
- required_reagents = list("berryjuice" = 10)
+ required_reagents = list("grapejuice" = 10)
required_catalysts = list("enzyme" = 5)
result_amount = 10
diff --git a/code/modules/chemical/Chemistry-Tools.dm b/code/modules/chemical/Chemistry-Tools.dm
index da586839b8d..b2b1a58a488 100644
--- a/code/modules/chemical/Chemistry-Tools.dm
+++ b/code/modules/chemical/Chemistry-Tools.dm
@@ -1516,15 +1516,12 @@
istype(W, /obj/item/weapon/shovel) \
)
inaccurate = 1
- else if(W.w_class <= 2 && istype(src,/obj/item/weapon/reagent_containers/food/snacks/sliceable))
+ /*else if(W.w_class <= 2 && istype(src,/obj/item/weapon/reagent_containers/food/snacks/sliceable))
user << "\red You slip [W] inside [src]."
- user.u_equip(W)
- if ((user.client && user.s_active != src))
- user.client.screen -= W
- W.dropped(user)
+ user.drop_item()
+ W.loc = src
add_fingerprint(user)
- contents += W
- return
+ return*/
else
return 1
if ( \
diff --git a/code/modules/food/food.dm b/code/modules/food/food.dm
index e6d2c0dc642..c5a2f62e054 100644
--- a/code/modules/food/food.dm
+++ b/code/modules/food/food.dm
@@ -799,6 +799,8 @@
desc = "A piece of hot spicy meat."
icon_state = "meatstake"
trash = "plate"
+ slice_path = /obj/item/weapon/reagent_containers/food/snacks/cutlet
+ slices_num = 3
New()
..()
reagents.add_reagent("nutriment", 4)
@@ -806,6 +808,18 @@
reagents.add_reagent("blackpepper", 1)
bitesize = 3
+/obj/item/weapon/reagent_containers/food/snacks/sliceable/cookedmeat
+ name = "Simple, cooked meat"
+ desc = "A chunk of meat."
+ icon_state = "meatstake"
+ trash = "plate"
+ slice_path = /obj/item/weapon/reagent_containers/food/snacks/cutlet
+ slices_num = 3
+ New()
+ ..()
+ reagents.add_reagent("nutriment", 3)
+ bitesize = 3
+
/obj/item/weapon/reagent_containers/food/snacks/spacylibertyduff
name = "Spacy Liberty Duff"
desc = "Jello gelatin, from Alfred Hubbard's cookbook"
diff --git a/code/modules/food/recipes_microwave.dm b/code/modules/food/recipes_microwave.dm
index d5922514f52..7060477a596 100644
--- a/code/modules/food/recipes_microwave.dm
+++ b/code/modules/food/recipes_microwave.dm
@@ -461,6 +461,12 @@
)
result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/meatsteak
+/datum/recipe/cookedmeat
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/sliceable/meat
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/cookedmeat
+
/datum/recipe/syntisteak
reagents = list("sodiumchloride" = 1, "blackpepper" = 1)
items = list(
diff --git a/code/modules/mob/mob_helpers.dm b/code/modules/mob/mob_helpers.dm
index 57338de3d7c..c84b909cd33 100644
--- a/code/modules/mob/mob_helpers.dm
+++ b/code/modules/mob/mob_helpers.dm
@@ -111,14 +111,6 @@ proc/isorgan(A)
zone = "head"
if("mouth")
zone = "head"
- if("l_hand")
- zone = "l_arm"
- if("r_hand")
- zone = "r_arm"
- if("l_foot")
- zone = "l_leg"
- if("r_foot")
- zone = "r_leg"
if("groin")
zone = "chest"
return zone