-You can now store donuts in the donut box. The next donut you pull out will be the last one you put in.

-Changed the class type of donuts. donut/normal is now the regular donut. All other donuts have been made this way. (I.E: donut/chaos)
-Hopefully the merged records proc will now not spit out runtimes.
-You cannot enter a name without any character now. This way you can also click on the link.
-Added some coloured caps to their respected coloured wardrobes.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4123 316c924e-a436-60f5-8080-3fe189b3f50e
This commit is contained in:
giacomand@gmail.com
2012-07-20 00:12:50 +00:00
parent fb2cd3692b
commit 285f31f0c4
14 changed files with 147 additions and 95 deletions

View File

@@ -36,7 +36,7 @@
/datum/recipe
var/list/reagents // example: = list("berryjuice" = 5) // do not list same reagent twice
var/list/items // example: =list(/obj/item/weapon/crowbar, /obj/item/weapon/welder) // place /foo/bar before /foo
var/result //example: = /obj/item/weapon/reagent_containers/food/snacks/donut
var/result //example: = /obj/item/weapon/reagent_containers/food/snacks/donut/normal
var/time = 100 // 1/10 part of second

View File

@@ -176,7 +176,7 @@
icon_state = "sec"
icon_deny = "sec-deny"
req_access_txt = "1"
product_paths = "/obj/item/weapon/handcuffs;/obj/item/weapon/grenade/flashbang;/obj/item/device/flash;/obj/item/weapon/reagent_containers/food/snacks/donut;/obj/item/weapon/storage/box/evidence"
product_paths = "/obj/item/weapon/handcuffs;/obj/item/weapon/grenade/flashbang;/obj/item/device/flash;/obj/item/weapon/reagent_containers/food/snacks/donut/normal;/obj/item/weapon/storage/box/evidence"
product_amounts = "8;4;5;12;6"
product_hidden = "/obj/item/clothing/glasses/sunglasses;/obj/item/kitchen/donut_box"
product_hideamt = "2;2"

View File

@@ -272,7 +272,9 @@
return (result + R.Copy(Ri, 0))
/proc/sortRecord(var/list/datum/data/record/L, var/field = "name", var/order = 1)
if(isnull(L) || L.len < 2)
if(isnull(L))
return list()
if(L.len < 2)
return L
var/middle = L.len / 2 + 1
return mergeRecordLists(sortRecord(L.Copy(0, middle), field, order), sortRecord(L.Copy(middle), field, order), field, order)
@@ -282,16 +284,23 @@
var/Li=1
var/Ri=1
var/list/result = new()
while(Li <= L.len && Ri <= R.len)
var/datum/data/record/rL = L[Li]
var/datum/data/record/rR = R[Ri]
if(sorttext(rL.fields[field], rR.fields[field]) == order)
result += L[Li++]
else
result += R[Ri++]
if(!isnull(L) && !isnull(R))
while(Li <= L.len && Ri <= R.len)
var/datum/data/record/rL = L[Li]
if(isnull(rL))
L -= rL
continue
var/datum/data/record/rR = R[Ri]
if(isnull(rR))
R -= rR
continue
if(sorttext(rL.fields[field], rR.fields[field]) == order)
result += L[Li++]
else
result += R[Ri++]
if(Li <= L.len)
return (result + L.Copy(Li, 0))
if(Li <= L.len)
return (result + L.Copy(Li, 0))
return (result + R.Copy(Ri, 0))
/proc/sortList(var/list/L)

View File

@@ -45,9 +45,10 @@
"}
if(2.0)
dat += "<B>Record List</B>:<HR>"
for(var/datum/data/record/R in sortRecord(data_core.general))
dat += text("<A href='?src=\ref[];d_rec=\ref[]'>[]: []<BR>", src, R, R.fields["id"], R.fields["name"])
//Foreach goto(132)
if(!isnull(data_core.general))
for(var/datum/data/record/R in sortRecord(data_core.general))
dat += text("<A href='?src=\ref[];d_rec=\ref[]'>[]: []<BR>", src, R, R.fields["id"], R.fields["name"])
//Foreach goto(132)
dat += text("<HR><A href='?src=\ref[];screen=1'>Back</A>", src)
if(3.0)
dat += text("<B>Records Maintenance</B><HR>\n<A href='?src=\ref[];back=1'>Backup To Disk</A><BR>\n<A href='?src=\ref[];u_load=1'>Upload From disk</A><BR>\n<A href='?src=\ref[];del_all=1'>Delete All Records</A><BR>\n<BR>\n<A href='?src=\ref[];screen=1'>Back</A>", src, src, src, src)

View File

@@ -69,32 +69,33 @@
<th><A href='?src=\ref[src];choice=Sorting;sort=fingerprint'>Fingerprints</A></th>
<th>Criminal Status</th>
</tr>"}
for(var/datum/data/record/R in sortRecord(data_core.general, sortBy, order))
var/crimstat = ""
for(var/datum/data/record/E in data_core.security)
if ((E.fields["name"] == R.fields["name"] && E.fields["id"] == R.fields["id"]))
crimstat = E.fields["criminal"]
var/background
switch(crimstat)
if("*Arrest*")
background = "'background-color:#DC143C;'"
if("Incarcerated")
background = "'background-color:#CD853F;'"
if("Parolled")
background = "'background-color:#CD853F;'"
if("Released")
background = "'background-color:#3BB9FF;'"
if("None")
background = "'background-color:#00FF7F;'"
if("")
background = "'background-color:#FFFFFF;'"
crimstat = "No Record."
dat += text("<tr style=[]><td><A href='?src=\ref[];choice=Browse Record;d_rec=\ref[]'>[]</a></td>", background, src, R, R.fields["name"])
dat += text("<td>[]</td>", R.fields["id"])
dat += text("<td>[]</td>", R.fields["rank"])
dat += text("<td>[]</td>", R.fields["fingerprint"])
dat += text("<td>[]</td></tr>", crimstat)
dat += "</table><hr width='75%' />"
if(!isnull(data_core.general))
for(var/datum/data/record/R in sortRecord(data_core.general, sortBy, order))
var/crimstat = ""
for(var/datum/data/record/E in data_core.security)
if ((E.fields["name"] == R.fields["name"] && E.fields["id"] == R.fields["id"]))
crimstat = E.fields["criminal"]
var/background
switch(crimstat)
if("*Arrest*")
background = "'background-color:#DC143C;'"
if("Incarcerated")
background = "'background-color:#CD853F;'"
if("Parolled")
background = "'background-color:#CD853F;'"
if("Released")
background = "'background-color:#3BB9FF;'"
if("None")
background = "'background-color:#00FF7F;'"
if("")
background = "'background-color:#FFFFFF;'"
crimstat = "No Record."
dat += text("<tr style=[]><td><A href='?src=\ref[];choice=Browse Record;d_rec=\ref[]'>[]</a></td>", background, src, R, R.fields["name"])
dat += text("<td>[]</td>", R.fields["id"])
dat += text("<td>[]</td>", R.fields["rank"])
dat += text("<td>[]</td>", R.fields["fingerprint"])
dat += text("<td>[]</td></tr>", crimstat)
dat += "</table><hr width='75%' />"
dat += text("<A href='?src=\ref[];choice=Record Maintenance'>Record Maintenance</A><br><br>", src)
dat += text("<A href='?src=\ref[];choice=Log Out'>{Log Out}</A>",src)
if(2.0)
@@ -400,7 +401,7 @@ What a mess.*/
if("name")
if (istype(active1, /datum/data/record))
var/t1 = input("Please input name:", "Secure. records", active1.fields["name"], null) as text
if ((!( t1 ) || !( authenticated ) || usr.stat || usr.restrained() || (!in_range(src, usr) && (!istype(usr, /mob/living/silicon)))) || active1 != a1)
if ((!( t1 ) || !length(trim(t1)) || !( authenticated ) || usr.stat || usr.restrained() || (!in_range(src, usr) && (!istype(usr, /mob/living/silicon)))) || active1 != a1)
return
active1.fields["name"] = t1
if("id")

View File

@@ -13,3 +13,4 @@
new /obj/item/weapon/caution(src)
new /obj/item/weapon/trashbag(src)
new /obj/item/device/lightreplacer(src)
new /obj/item/clothing/head/soft/purple(src)

View File

@@ -66,6 +66,9 @@
new /obj/item/clothing/shoes/black(src)
new /obj/item/clothing/shoes/black(src)
new /obj/item/clothing/shoes/black(src)
new /obj/item/clothing/head/soft/green(src)
new /obj/item/clothing/head/soft/green(src)
new /obj/item/clothing/head/soft/green(src)
return
/obj/structure/closet/wardrobe/orange/New()
@@ -75,6 +78,9 @@
new /obj/item/clothing/shoes/orange(src)
new /obj/item/clothing/shoes/orange(src)
new /obj/item/clothing/shoes/orange(src)
new /obj/item/clothing/head/soft/orange(src)
new /obj/item/clothing/head/soft/orange(src)
new /obj/item/clothing/head/soft/orange(src)
return
/obj/structure/closet/wardrobe/yellow/New()
@@ -84,6 +90,9 @@
new /obj/item/clothing/shoes/orange(src)
new /obj/item/clothing/shoes/orange(src)
new /obj/item/clothing/shoes/orange(src)
new /obj/item/clothing/head/soft/yellow(src)
new /obj/item/clothing/head/soft/yellow(src)
new /obj/item/clothing/head/soft/yellow(src)
return
/obj/structure/closet/wardrobe/atmospherics_yellow/New()
@@ -93,6 +102,9 @@
new /obj/item/clothing/shoes/black(src)
new /obj/item/clothing/shoes/black(src)
new /obj/item/clothing/shoes/black(src)
new /obj/item/clothing/head/soft/yellow(src)
new /obj/item/clothing/head/soft/yellow(src)
new /obj/item/clothing/head/soft/yellow(src)
return
/obj/structure/closet/wardrobe/engineering_yellow/New()
@@ -102,6 +114,9 @@
new /obj/item/clothing/shoes/orange(src)
new /obj/item/clothing/shoes/orange(src)
new /obj/item/clothing/shoes/orange(src)
new /obj/item/clothing/head/soft/yellow(src)
new /obj/item/clothing/head/soft/yellow(src)
new /obj/item/clothing/head/soft/yellow(src)
return
/obj/structure/closet/wardrobe/white/New()
@@ -185,6 +200,13 @@
new /obj/item/clothing/shoes/black(src)
new /obj/item/clothing/shoes/brown(src)
new /obj/item/clothing/shoes/white(src)
new /obj/item/clothing/head/soft/mime(src)
new /obj/item/clothing/head/soft/blue(src)
new /obj/item/clothing/head/soft/yellow(src)
new /obj/item/clothing/head/soft/green(src)
new /obj/item/clothing/head/soft/orange(src)
new /obj/item/clothing/head/soft/purple(src)
if(prob(10)) new /obj/item/clothing/head/soft/rainbow(src)
return
/obj/structure/closet/lawcloset/New()

View File

@@ -260,9 +260,9 @@ 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 sortRecord(data_core.general))
menu += "[t.fields["name"]] - [t.fields["rank"]]<br>"
if(!isnull(data_core.general))
for (var/datum/data/record/t in sortRecord(data_core.general))
menu += "[t.fields["name"]] - [t.fields["rank"]]<br>"
menu += "<br>"
@@ -335,8 +335,9 @@ Code:
if (44) //medical records //This thing only displays a single screen so it's hard to really get the sub-menu stuff working.
menu = "<h4><img src=pda_medical.png> Medical Record List</h4>"
for (var/datum/data/record/R in sortRecord(data_core.general))
menu += "<a href='byond://?src=\ref[src];choice=Medical Records;target=\ref[R]'>[R.fields["id"]]: [R.fields["name"]]<br>"
if(!isnull(data_core.general))
for (var/datum/data/record/R in sortRecord(data_core.general))
menu += "<a href='byond://?src=\ref[src];choice=Medical Records;target=\ref[R]'>[R.fields["id"]]: [R.fields["name"]]<br>"
menu += "<br>"
if(441)
menu = "<h4><img src=pda_medical.png> Medical Record</h4>"
@@ -377,9 +378,9 @@ Code:
menu += "<br>"
if (45) //security records
menu = "<h4><img src=pda_cuffs.png> Security Record List</h4>"
for (var/datum/data/record/R in sortRecord(data_core.general))
menu += "<a href='byond://?src=\ref[src];choice=Security Records;target=\ref[R]'>[R.fields["id"]]: [R.fields["name"]]<br>"
if(!isnull(data_core.general))
for (var/datum/data/record/R in sortRecord(data_core.general))
menu += "<a href='byond://?src=\ref[src];choice=Security Records;target=\ref[R]'>[R.fields["id"]]: [R.fields["name"]]<br>"
menu += "<br>"
if(451)

View File

@@ -10,62 +10,70 @@ MONKEY CUBE BOX
/mob/living/carbon/var/last_eating = 0
/obj/item/kitchen/donut_box
var/amount = 6
var/const/max_amount = 6
var/list/obj/item/weapon/reagent_containers/food/snacks/donut/donuts = list()
icon = 'food.dmi'
icon_state = "donutbox"
icon_state = "donutbox6"
name = "donut box"
/obj/item/kitchen/egg_box
var/amount = 12
icon = 'food.dmi'
icon_state = "eggbox"
name = "egg box"
/obj/item/kitchen/donut_box/New()
for(var/i = 0; i < max_amount; i++)
donuts += new /obj/item/weapon/reagent_containers/food/snacks/donut/normal(src)
update()
..()
/obj/item/kitchen/donut_box/proc/update()
src.icon_state = text("donutbox[]", src.amount)
src.icon_state = text("donutbox[]", src.donuts.len)
return
/*
/obj/item/kitchen/donut_box/attackby(obj/item/weapon/W as obj, mob/user as mob)
if (istype(W, /obj/item/weapon/reagent_containers/food/snacks/donut) && (amount < 6))
/obj/item/kitchen/donut_box/attackby(obj/item/weapon/W as obj, mob/living/user as mob)
if (istype(W, /obj/item/weapon/reagent_containers/food/snacks/donut) && (donuts.len < max_amount))
user.drop_item()
W.loc = src
donuts += W
usr << "You place a donut back into the box."
src.update()
src.update()
return
*/
/obj/item/kitchen/donut_box/MouseDrop(mob/user as mob)
/obj/item/kitchen/donut_box/MouseDrop(mob/living/user as mob)
if ((user == usr && (!( usr.restrained() ) && (!( usr.stat ) && (usr.contents.Find(src) || in_range(src, usr))))))
if(!istype(user, /mob/living/carbon/metroid))
if( !usr.get_active_hand() )
src.attack_hand(usr, usr.hand, 1)
return
/obj/item/kitchen/donut_box/attack_paw(mob/user as mob)
/obj/item/kitchen/donut_box/attack_paw(mob/living/user as mob)
return src.attack_hand(user)
/obj/item/kitchen/donut_box/attack_hand(mob/user as mob, unused, flag)
/obj/item/kitchen/donut_box/attack_hand(mob/living/user as mob, unused, flag)
if (flag)
return ..()
src.add_fingerprint(user)
var/obj/item/weapon/reagent_containers/food/snacks/donut/P = locate() in src
if(!P && (amount >= 1))
P = new /obj/item/weapon/reagent_containers/food/snacks/donut( src )
var/last = donuts.len
if(last <= 0)
user << "Oh no! No donuts left!"
return
//world.log << last
var/obj/item/weapon/reagent_containers/food/snacks/donut/P = donuts[last] // Get the last donut.
if(P)
usr.put_in_hands(P)
usr << "You take a donut out of the box."
src.amount--
P.loc = user.loc
user.put_in_hands(P)
donuts -= P
user << "You take a donut out of the box."
src.update()
return
/obj/item/kitchen/donut_box/examine()
set src in oview(1)
src.amount = round(src.amount)
var/n = src.amount
for(var/obj/item/weapon/reagent_containers/food/snacks/donut/P in src)
n++
var/n = src.donuts.len
if (n <= 0)
n = 0
usr << "There are no donuts left in the box."

View File

@@ -110,8 +110,8 @@
"/obj/item/clothing/glasses",
"/obj/item/ammo_casing/shotgun",
"/obj/item/ammo_magazine",
"/obj/item/weapon/reagent_containers/food/snacks/donut",
"/obj/item/weapon/reagent_containers/food/snacks/jellydonut"
"/obj/item/weapon/reagent_containers/food/snacks/donut/normal",
"/obj/item/weapon/reagent_containers/food/snacks/donut/jelly"
)
/obj/item/weapon/storage/belt/soulstone

View File

@@ -104,6 +104,11 @@
name = "donut"
desc = "Goes great with Robust Coffee."
icon_state = "donut1"
/obj/item/weapon/reagent_containers/food/snacks/donut/normal
name = "donut"
desc = "Goes great with Robust Coffee."
icon_state = "donut1"
New()
..()
reagents.add_reagent("nutriment", 3)
@@ -114,12 +119,12 @@
src.name = "frosted donut"
reagents.add_reagent("sprinkles", 2)
/obj/item/weapon/reagent_containers/food/snacks/chaosdonut
/obj/item/weapon/reagent_containers/food/snacks/donut/chaos
name = "Chaos Donut"
desc = "Like life, it never quite tastes the same."
icon_state = "donut1"
New()
..()
reagents.add_reagent("nutriment", 2)
reagents.add_reagent("sprinkles", 1)
bitesize = 10
@@ -150,7 +155,8 @@
src.name = "Frosted Chaos Donut"
reagents.add_reagent("sprinkles", 2)
/obj/item/weapon/reagent_containers/food/snacks/jellydonut
/obj/item/weapon/reagent_containers/food/snacks/donut/jelly
name = "Jelly Donut"
desc = "You jelly?"
icon_state = "jdonut1"

View File

@@ -45,14 +45,14 @@
/obj/item/weapon/reagent_containers/food/snacks/flour,
/obj/item/weapon/reagent_containers/food/snacks/egg
)
result = /obj/item/weapon/reagent_containers/food/snacks/jellydonut
result = /obj/item/weapon/reagent_containers/food/snacks/donut/jelly
/datum/recipe/donut
items = list(
/obj/item/weapon/reagent_containers/food/snacks/flour,
/obj/item/weapon/reagent_containers/food/snacks/egg
)
result = /obj/item/weapon/reagent_containers/food/snacks/donut
result = /obj/item/weapon/reagent_containers/food/snacks/donut/normal
/datum/recipe/human
//invalid recipe
@@ -414,7 +414,7 @@
/obj/item/weapon/reagent_containers/food/snacks/flour,
/obj/item/weapon/reagent_containers/food/snacks/egg
)
result = /obj/item/weapon/reagent_containers/food/snacks/chaosdonut
result = /obj/item/weapon/reagent_containers/food/snacks/donut/chaos
/datum/recipe/human/kabob
items = list(

View File

@@ -413,9 +413,10 @@
var/dat = ""
dat += "<h2>Crew Manifest</h2><br><br>"
var/list/L = list()
for (var/datum/data/record/t in sortRecord(data_core.general))
var/R = t.fields["name"] + " - " + t.fields["rank"]
L += R
if(!isnull(data_core.general))
for (var/datum/data/record/t in sortRecord(data_core.general))
var/R = t.fields["name"] + " - " + t.fields["rank"]
L += R
for(var/R in sortList(L))
dat += "[R]<br>"
dat += "</body></html>"
@@ -426,8 +427,9 @@
var/dat = ""
if(src.subscreen == 0)
dat += "<h3>Medical Records</h3><HR>"
for(var/datum/data/record/R in sortRecord(data_core.general))
dat += text("<A href='?src=\ref[];med_rec=\ref[];software=medicalrecord;sub=1'>[]: []<BR>", src, R, R.fields["id"], R.fields["name"])
if(!isnull(data_core.general))
for(var/datum/data/record/R in sortRecord(data_core.general))
dat += text("<A href='?src=\ref[];med_rec=\ref[];software=medicalrecord;sub=1'>[]: []<BR>", src, R, R.fields["id"], R.fields["name"])
//dat += text("<HR><A href='?src=\ref[];screen=0;softFunction=medical records'>Back</A>", src)
if(src.subscreen == 1)
dat += "<CENTER><B>Medical Record</B></CENTER><BR>"
@@ -448,8 +450,9 @@
var/dat = ""
if(src.subscreen == 0)
dat += "<h3>Security Records</h3><HR>"
for(var/datum/data/record/R in sortRecord(data_core.general))
dat += text("<A href='?src=\ref[];sec_rec=\ref[];software=securityrecord;sub=1'>[]: []<BR>", src, R, R.fields["id"], R.fields["name"])
if(!isnull(data_core.general))
for(var/datum/data/record/R in sortRecord(data_core.general))
dat += text("<A href='?src=\ref[];sec_rec=\ref[];software=securityrecord;sub=1'>[]: []<BR>", src, R, R.fields["id"], R.fields["name"])
if(src.subscreen == 1)
dat += "<h3>Security Record</h3>"
if ((istype(src.securityActive1, /datum/data/record) && data_core.general.Find(src.securityActive1)))

Binary file not shown.

Before

Width:  |  Height:  |  Size: 83 KiB

After

Width:  |  Height:  |  Size: 83 KiB