Merge pull request #537 from Tastyfish/master

fancy departmentalized crew manifest, reinforced floor fix, some food improvements
This commit is contained in:
SkyMarshal
2012-02-27 20:29:41 -08:00
13 changed files with 152 additions and 30 deletions
+1 -1
View File
@@ -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..."
+104
View File
@@ -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 = {"
<head><style>
.manifest {border-collapse:collapse;}
.manifest td, th {border:1px solid [monochrome?"black":"#DEF; background-color:white; color:black"]; padding:.25em}
.manifest th {height: 2em; [monochrome?"border-top-width: 3px":"background-color: #48C; color:white"]}
.manifest tr.head th { [monochrome?"border-top-width: 1px":"background-color: #488;"] }
.manifest td:first-child {text-align:right}
.manifest tr.alt td {[monochrome?"border-top-width: 2px":"background-color: #DEF"]}
</style></head>
<table class="manifest">
<tr class='head'><th>Name</th><th>Rank</th></tr>
"}
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 += "<tr><th colspan=2>Heads</th></tr>"
for(name in heads)
dat += "<tr[even ? " class='alt'" : ""]><td>[name]</td><td>[heads[name]]</td></tr>"
even = !even
if(sec.len > 0)
dat += "<tr><th colspan=2>Security</th></tr>"
for(name in sec)
dat += "<tr[even ? " class='alt'" : ""]><td>[name]</td><td>[sec[name]]</td></tr>"
even = !even
if(eng.len > 0)
dat += "<tr><th colspan=2>Engineering</th></tr>"
for(name in eng)
dat += "<tr[even ? " class='alt'" : ""]><td>[name]</td><td>[eng[name]]</td></tr>"
even = !even
if(med.len > 0)
dat += "<tr><th colspan=2>Medical</th></tr>"
for(name in med)
dat += "<tr[even ? " class='alt'" : ""]><td>[name]</td><td>[med[name]]</td></tr>"
even = !even
if(sci.len > 0)
dat += "<tr><th colspan=2>Science</th></tr>"
for(name in sci)
dat += "<tr[even ? " class='alt'" : ""]><td>[name]</td><td>[sci[name]]</td></tr>"
even = !even
if(civ.len > 0)
dat += "<tr><th colspan=2>Civilian</th></tr>"
for(name in civ)
dat += "<tr[even ? " class='alt'" : ""]><td>[name]</td><td>[civ[name]]</td></tr>"
even = !even
// in case somebody is insane and added them to the manifest, why not
if(bot.len > 0)
dat += "<tr><th colspan=2>Silicon</th></tr>"
for(name in bot)
dat += "<tr[even ? " class='alt'" : ""]><td>[name]</td><td>[bot[name]]</td></tr>"
even = !even
// misc guys
if(misc.len > 0)
dat += "<tr><th colspan=2>Miscellaneous</th></tr>"
for(name in misc)
dat += "<tr[even ? " class='alt'" : ""]><td>[name]</td><td>[misc[name]]</td></tr>"
even = !even
dat += "</table>"
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
+2 -7
View File
@@ -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"]]<br>"
var/crew = data_core.get_manifest()
dat = "<tt><b>Crew Manifest:</b><br>Please use the security record computer to modify entries.<br>[crew]<a href='?src=\ref[src];choice=print'>Print</a><br><br><a href='?src=\ref[src];choice=mode;mode_target=0'>Access ID modification console.</a><br></tt>"
else
var/header = "<div align='center'><b>Identification Card Modifier</b></div>"
@@ -245,10 +243,7 @@
printing = 1
sleep(50)
var/obj/item/weapon/paper/P = new /obj/item/weapon/paper( loc )
var/t1 = "<B>Crew Manifest:</B><BR>"
for(var/datum/data/record/t in data_core.general)
t1 += "<B>[t.fields["name"]]</B> - [t.fields["rank"]]<BR>"
P.info = t1
P.info = "<B>Crew Manifest:</B><BR>" + data_core.get_manifest()
P.name = "paper - 'Crew Manifest'"
printing = null
if (modify)
+2
View File
@@ -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()
+1 -2
View File
@@ -235,8 +235,7 @@ Code:
menu = "<h4><img src=pda_notes.png> Crew Manifest</h4>"
menu += "Entries cannot be modified from this terminal.<br><br>"
for (var/datum/data/record/t in data_core.general)
menu += "[t.fields["name"]] - [t.fields["rank"]]<br>"
menu += data_core.get_manifest(1)
menu += "<br>"
+1 -4
View File
@@ -228,11 +228,8 @@
return
/obj/effect/manifest/proc/manifest()
var/dat = "<B>Crew Manifest</B>:<BR>"
for(var/mob/living/carbon/human/M in world)
dat += text(" <B>[]</B> - []<BR>", M.name, M.get_assignment())
var/obj/item/weapon/paper/P = new /obj/item/weapon/paper( src.loc )
P.info = dat
P.info = "<B>Crew Manifest:</B><BR>" + data_core.get_manifest()
P.name = "paper - 'Crew Manifest'"
//SN src = null
del(src)
+2
View File
@@ -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))
@@ -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"
+1 -1
View File
@@ -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
+4 -7
View File
@@ -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 ( \
+14
View File
@@ -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"
+6
View File
@@ -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(
-8
View File
@@ -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