Prisoner Management Update:

* New Implant: Chem. Insert up to 10 units of chemicals into implant with a syringe (while still in implant case) and then can use a prisoner management console to trigger 1, 5, or 10 units of the chemical to be injected into the implanted subject. Once all the chemicals are used up, the implant disables itself.
* Prisoner Management Console can now detect the approximate location of prisoners with tracking implants in them. It gives slightly more useful information then the tracker but isn't portable.
* AI cannot access Prisoner Management Console (unless malf/XISC).
* Prisoner Management Console re-added to Armory (It no longer can trigger explosive implants). Play nice or else you'll get your toys taken away from you.

BORK BORK update:
* Re-did ChemMaster. Now it allows you transfer reagents in and out of a buffer. You can then turn the contents of the buffer into either a pill or a bottle. When removing reagents from the buffer, you can either delete them entirely or return them to the beaker. However, removing the beaker clears the contents of the buffer (so no mixing inside the ChemMaster!). CondiMaster Neo is almost identical to the ChemMaster except it only makes condiment bottles (no pills).
* Milk now being handled like the other reagents (as intended). Remember: 5 units of milk = 1 cup.
* Soymilk interchangable with regular milk in microwave recipes. (again, 5 units = 1 cup)
* Xenomeatbread! 3 xeno meat, 3 cheese, 3 flour. Extra Heretical!
* Monkey related food items renamed to generic meat (since I'm adding animals, I really don't want to add a new food items for every single new animal).
* Cola removed from fridge. Thematically appropriate but it just clutters it up (especially since there are vending machines all over the damn place).
* Faggots removed from meat locker. Instead, a small amount of meat spawns in there.
* Carp processes modified. Code is a littles cleaner (lawl) and the random pathing a a little cleaner as well.

Badmin Update:
* By request, Admins can now trigger radiation event.
* Confirmation warning on admin-triggered carp event.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@660 316c924e-a436-60f5-8080-3fe189b3f50e
This commit is contained in:
morikou@gmail.com
2010-12-18 18:18:14 +00:00
parent 3eda991cc0
commit cac1fdb477
17 changed files with 3418 additions and 3148 deletions

View File

@@ -100,12 +100,19 @@
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/obj/machinery/chem_master/
name = "CheMaster 3000"
name = "ChemMaster 3000"
density = 1
anchored = 1
icon = 'chemical.dmi'
icon_state = "mixer0"
var/beaker = null
var/mode = 0
var/condi = 0
New()
var/datum/reagents/R = new/datum/reagents(50)
reagents = R
R.my_atom = src
ex_act(severity)
switch(severity)
@@ -149,63 +156,73 @@
if(!beaker) return
var/datum/reagents/R = beaker:reagents
if (href_list["isolate"])
R.isolate_reagent(href_list["isolate"])
src.updateUsrDialog()
return
else if (href_list["remove"])
R.del_reagent(href_list["remove"])
src.updateUsrDialog()
return
else if (href_list["remove5"])
R.remove_reagent(href_list["remove5"], 5)
src.updateUsrDialog()
return
else if (href_list["remove1"])
R.remove_reagent(href_list["remove1"], 1)
src.updateUsrDialog()
return
else if (href_list["analyze"])
var/dat = "<TITLE>Chemmaster 3000</TITLE>Chemical infos:<BR><BR>Name:<BR>[href_list["name"]]<BR><BR>Description:<BR>[href_list["desc"]]<BR><BR><BR><A href='?src=\ref[src];main=1'>(Back)</A>"
if (href_list["analyze"])
var/dat = ""
if(!condi)
dat += "<TITLE>Chemmaster 3000</TITLE>Chemical infos:<BR><BR>Name:<BR>[href_list["name"]]<BR><BR>Description:<BR>[href_list["desc"]]<BR><BR><BR><A href='?src=\ref[src];main=1'>(Back)</A>"
else
dat += "<TITLE>Condimaster 3000</TITLE>Condiment infos:<BR><BR>Name:<BR>[href_list["name"]]<BR><BR>Description:<BR>[href_list["desc"]]<BR><BR><BR><A href='?src=\ref[src];main=1'>(Back)</A>"
usr << browse(dat, "window=chem_master;size=575x400")
return
else if (href_list["add1"])
R.remove_reagent(href_list["add1"], 1) //Remove/add used instead of trans_to since we're moving a specific reagent.
reagents.add_reagent(href_list["add1"], 1)
else if (href_list["add5"])
R.remove_reagent(href_list["add5"], 5)
reagents.add_reagent(href_list["add5"], 5)
else if (href_list["add10"])
R.remove_reagent(href_list["add10"], 10)
reagents.add_reagent(href_list["add10"], 10)
else if (href_list["addall"])
var/temp_amt = R.get_reagent_amount(href_list["addall"])
reagents.add_reagent(href_list["addall"], temp_amt)
R.del_reagent(href_list["addall"])
else if (href_list["remove1"])
reagents.remove_reagent(href_list["remove1"], 1)
if(mode) R.add_reagent(href_list["remove1"], 1)
else if (href_list["remove5"])
reagents.remove_reagent(href_list["remove5"], 5)
if(mode) R.add_reagent(href_list["remove5"], 5)
else if (href_list["remove10"])
reagents.remove_reagent(href_list["remove10"], 10)
if(mode) R.add_reagent(href_list["remove10"], 10)
else if (href_list["removeall"])
if(mode)
var/temp_amt = reagents.get_reagent_amount(href_list["removeall"])
R.add_reagent(href_list["removeall"], temp_amt)
reagents.del_reagent(href_list["removeall"])
else if (href_list["toggle"])
if(mode)
mode = 0
else
mode = 1
else if (href_list["main"])
attack_hand(usr)
return
else if (href_list["eject"])
beaker:loc = src.loc
beaker = null
reagents.clear_reagents()
icon_state = "mixer0"
src.updateUsrDialog()
return
else if (href_list["createpill"])
var/obj/item/weapon/reagent_containers/pill/P = new/obj/item/weapon/reagent_containers/pill(src.loc)
var/name = input(usr,"Name:","Name your pill!",R.get_master_reagent_name())
if(!name || name == " ") name = R.get_master_reagent_name()
var/name = input(usr,"Name:","Name your pill!",reagents.get_master_reagent_name())
if(!name || name == " ") name = reagents.get_master_reagent_name()
P.name = "[name] pill"
R.trans_to(P,R.total_volume)
src.updateUsrDialog()
return
else if (href_list["create5pill"])
var/obj/item/weapon/reagent_containers/pill/P = new/obj/item/weapon/reagent_containers/pill(src.loc)
var/name = input(usr,"Name:","Name your pill!",R.get_master_reagent_name())
if(!name || name == " ") name = R.get_master_reagent_name()
P.name = "[name] pill"
R.trans_to(P,5)
src.updateUsrDialog()
return
reagents.trans_to(P,50)
else if (href_list["createbottle"])
var/obj/item/weapon/reagent_containers/glass/bottle/P = new/obj/item/weapon/reagent_containers/glass/bottle(src.loc)
var/name = input(usr,"Name:","Name your bottle!",R.get_master_reagent_name())
if(!name || name == " ") name = R.get_master_reagent_name()
P.name = "[name] bottle"
R.trans_to(P,30)
src.updateUsrDialog()
return
if(!condi)
var/name = input(usr,"Name:","Name your bottle!",reagents.get_master_reagent_name())
var/obj/item/weapon/reagent_containers/glass/bottle/P = new/obj/item/weapon/reagent_containers/glass/bottle(src.loc)
if(!name || name == " ") name = reagents.get_master_reagent_name()
P.name = "[name] bottle"
reagents.trans_to(P,30)
else
var/obj/item/weapon/reagent_containers/food/condiment/P = new/obj/item/weapon/reagent_containers/food/condiment(src.loc)
reagents.trans_to(P,50)
else
usr << browse(null, "window=chem_master")
return
src.updateUsrDialog()
src.add_fingerprint(usr)
return
@@ -225,23 +242,51 @@
dat += "<A href='?src=\ref[src];close=1'>Close</A>"
else
var/datum/reagents/R = beaker:reagents
dat += "<A href='?src=\ref[src];eject=1'>Eject beaker</A><BR><BR>"
dat += "<A href='?src=\ref[src];eject=1'>Eject beaker and Clear Buffer</A><BR><BR>"
if(!R.total_volume)
dat += "Beaker is empty."
else
dat += "Contained reagents:<BR>"
dat += "Add to buffer:<BR>"
for(var/datum/reagent/G in R.reagent_list)
dat += "[G.name] , [G.volume] Units - <A href='?src=\ref[src];isolate=[G.id]'>(Isolate)</A> <A href='?src=\ref[src];remove=[G.id]'>(Remove all)</A> <A href='?src=\ref[src];remove5=[G.id]'>(Remove 5)</A> <A href='?src=\ref[src];remove1=[G.id]'>(Remove 1)</A> <A href='?src=\ref[src];analyze=1;desc=[G.description];name=[G.name]'>(Analyze)</A><BR>"
dat += "<BR><A href='?src=\ref[src];createpill=1'>Create pill</A>"
dat += "<BR><A href='?src=\ref[src];create5pill=1'>Create 5-unit pill</A><BR>"
dat += "[G.name] , [G.volume] Units - "
dat += "<A href='?src=\ref[src];analyze=1;desc=[G.description];name=[G.name]'>(Analyze)</A> "
dat += "<A href='?src=\ref[src];add1=[G.id]'>(1)</A> "
if(G.volume >= 5) dat += "<A href='?src=\ref[src];add5=[G.id]'>(5)</A> "
if(G.volume >= 10) dat += "<A href='?src=\ref[src];add10=[G.id]'>(10)</A> "
dat += "<A href='?src=\ref[src];addall=[G.id]'>(All)</A><BR>"
if(!mode)
dat += "<HR>Transfer to <A href='?src=\ref[src];toggle=1'>disposal:</A><BR>"
else
dat += "<HR>Transfer to <A href='?src=\ref[src];toggle=1'>beaker:</A><BR>"
if(reagents.total_volume)
for(var/datum/reagent/N in reagents.reagent_list)
dat += "[N.name] , [N.volume] Units - "
dat += "<A href='?src=\ref[src];analyze=1;desc=[N.description];name=[N.name]'>(Analyze)</A> "
dat += "<A href='?src=\ref[src];remove1=[N.id]'>(1)</A> "
if(N.volume >= 5) dat += "<A href='?src=\ref[src];remove5=[N.id]'>(5)</A> "
if(N.volume >= 10) dat += "<A href='?src=\ref[src];remove10=[N.id]'>(10)</A> "
dat += "<A href='?src=\ref[src];removeall=[N.id]'>(All)</A><BR>"
else
dat += "Empty<BR>"
if(!condi)
dat += "<HR><BR><A href='?src=\ref[src];createpill=1'>Create pill (50 units max)</A><BR>"
dat += "<A href='?src=\ref[src];createbottle=1'>Create bottle (30 units max)</A>"
user << browse("<TITLE>Chemmaster 3000</TITLE>Chemmaster menu:<BR><BR>[dat]", "window=chem_master;size=575x400")
else
dat += "<A href='?src=\ref[src];createbottle=1'>Create bottle (50 units max)</A>"
if(!condi)
user << browse("<TITLE>Chemmaster 3000</TITLE>Chemmaster menu:<BR><BR>[dat]", "window=chem_master;size=575x400")
else
user << browse("<TITLE>Condimaster 3000</TITLE>Condimaster menu:<BR><BR>[dat]", "window=chem_master;size=575x400")
onclose(user, "chem_master")
return
/obj/machinery/chem_master/condimaster
name = "CondiMaster 3000"
condi = 1
////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////
/obj/machinery/computer/pandemic
name = "PanD.E.M.I.C 2200"

View File

@@ -602,11 +602,11 @@
if(!reagents.total_volume)
user << "\red The Syringe is empty."
return
if(istype(target, /obj/item/weapon/implantcase/chem))
return
if(target.reagents.total_volume >= target.reagents.maximum_volume)
user << "\red [target] is full."
return
if(!target.is_open_container() && !ismob(target) && !istype(target, /obj/item/weapon/reagent_containers/food))
user << "\red You cannot directly fill this object."
return
@@ -756,7 +756,6 @@
if(target.reagents.total_volume >= target.reagents.maximum_volume)
user << "\red you can't add anymore to [target]."
return
var/trans = src.reagents.trans_to(target, 1)
user << "\blue You transfer [trans] units of the condiment to [target]."
@@ -1485,7 +1484,7 @@
bitesize = 2
/obj/item/weapon/reagent_containers/food/snacks/monkeyburger
name = "monkeyburger"
name = "burger"
desc = "The cornerstone of every nutritious breakfast."
icon_state = "hburger"
New()
@@ -1493,43 +1492,6 @@
reagents.add_reagent("nutriment", 8)
bitesize = 2
/obj/item/weapon/reagent_containers/food/snacks/meatbread
name = "meatbread loaf"
desc = "The culinary base of every self-respecting eloquen/tg/entleman."
icon_state = "meatbread"
New()
..()
reagents.add_reagent("nutriment", 40)
bitesize = 2
/obj/item/weapon/reagent_containers/food/snacks/meatbreadslice
name = "meatbread slice"
desc = "A slice of delicious meatbread."
icon_state = "meatbreadslice"
New()
..()
reagents.add_reagent("nutriment", 8)
bitesize = 2
/obj/item/weapon/reagent_containers/food/snacks/cheesewheel
name = "Cheese wheel"
desc = "A big wheel of delcious Cheddar."
icon_state = "cheesewheel"
New()
..()
reagents.add_reagent("nutriment", 20)
bitesize = 2
/obj/item/weapon/reagent_containers/food/snacks/cheesewedge
name = "Cheese wedge"
desc = "A wedge of delicious Cheddar. The cheese wheel it was cut from can't have gone far."
icon_state = "cheesewedge"
New()
..()
reagents.add_reagent("nutriment", 4)
bitesize = 2
/obj/item/weapon/reagent_containers/food/snacks/omelette
name = "Omelette Du Fromage"
desc = "That's all you can say!"
@@ -1551,7 +1513,6 @@
..()
reagents.add_reagent("nutriment", 1)
/obj/item/weapon/reagent_containers/food/snacks/muffin
name = "Muffin"
desc = "A delicious and spongy little cake"
@@ -1692,7 +1653,7 @@
bitesize = 2
/obj/item/weapon/reagent_containers/food/snacks/momeatpie
name = "Monkey-pie"
name = "Meat-pie"
icon_state = "pie"
desc = "A delicious meatpie."
New()
@@ -1751,7 +1712,7 @@
bitesize = 2
/obj/item/weapon/reagent_containers/food/snacks/monkeykabob
name = "Monkey-kabob"
name = "Meat-kabob"
icon_state = "kabob"
desc = "A delicious kabob"
New()
@@ -1812,24 +1773,6 @@
reagents.add_reagent("nutriment", 4)
bitesize = 2
/obj/item/weapon/reagent_containers/food/snacks/tofubread
name = "Tofubread"
icon_state = "Like meatbread but for vegans. Not guaranteed to give superpowers."
icon_state = "tofubread"
New()
..()
reagents.add_reagent("nutriment", 40)
bitesize = 2
/obj/item/weapon/reagent_containers/food/snacks/tofubreadslice
name = "Tofubread slice"
desc = "A slice of delicious tofubread."
icon_state = "tofubreadslice"
New()
..()
reagents.add_reagent("nutriment", 8)
bitesize = 2
/obj/item/weapon/reagent_containers/food/snacks/loadedbakedpotato
name = "Loaded Baked Potato"
desc = "Totally baked."
@@ -1856,6 +1799,127 @@
reagents.add_reagent("nutriment", 6)
bitesize = 2
/////////////////////////////////////////////////Sliceable////////////////////////////////////////
// All the food items that can be sliced into smaller bits like Meatbread and Cheesewheels
/obj/item/weapon/reagent_containers/food/snacks/meatbread
name = "meatbread loaf"
desc = "The culinary base of every self-respecting eloquen/tg/entleman."
icon_state = "meatbread"
New()
..()
reagents.add_reagent("nutriment", 40)
bitesize = 2
attackby(obj/item/weapon/W as obj, mob/user as mob)
if(istype(W, /obj/item/weapon/kitchenknife /*|| /obj/item/weapon/scalpel*/))
W.visible_message(" \red <B>You slice the meatbread! </B>", 1)
new /obj/item/weapon/reagent_containers/food/snacks/meatbreadslice (src.loc)
new /obj/item/weapon/reagent_containers/food/snacks/meatbreadslice (src.loc)
new /obj/item/weapon/reagent_containers/food/snacks/meatbreadslice (src.loc)
new /obj/item/weapon/reagent_containers/food/snacks/meatbreadslice (src.loc)
new /obj/item/weapon/reagent_containers/food/snacks/meatbreadslice (src.loc)
del(src)
return
/obj/item/weapon/reagent_containers/food/snacks/meatbreadslice
name = "meatbread slice"
desc = "A slice of delicious meatbread."
icon_state = "meatbreadslice"
New()
..()
reagents.add_reagent("nutriment", 8)
bitesize = 2
/obj/item/weapon/reagent_containers/food/snacks/xenomeatbread
name = "xenomeatbread loaf"
desc = "The culinary base of every self-respecting eloquen/tg/entleman. Extra Heretical."
icon_state = "xenomeatbread"
New()
..()
reagents.add_reagent("nutriment", 5)
reagents.add_reagent("xenomicrobes", 35)
bitesize = 2
attackby(obj/item/weapon/W as obj, mob/user as mob)
if(istype(W, /obj/item/weapon/kitchenknife /*|| /obj/item/weapon/scalpel*/))
W.visible_message(" \red <B>You slice the xenomeatbread! </B>", 1)
new /obj/item/weapon/reagent_containers/food/snacks/xenomeatbreadslice (src.loc)
new /obj/item/weapon/reagent_containers/food/snacks/xenomeatbreadslice (src.loc)
new /obj/item/weapon/reagent_containers/food/snacks/xenomeatbreadslice (src.loc)
new /obj/item/weapon/reagent_containers/food/snacks/xenomeatbreadslice (src.loc)
new /obj/item/weapon/reagent_containers/food/snacks/xenomeatbreadslice (src.loc)
del(src)
return
/obj/item/weapon/reagent_containers/food/snacks/xenomeatbreadslice
name = "xenomeatbread slice"
desc = "A slice of delicious meatbread. Extra Heretical."
icon_state = "xenobreadslice"
New()
..()
reagents.add_reagent("nutriment", 2)
reagents.add_reagent("xenomicrobes", 6)
bitesize = 2
/obj/item/weapon/reagent_containers/food/snacks/tofubread
name = "Tofubread"
icon_state = "Like meatbread but for vegans. Not guaranteed to give superpowers."
icon_state = "tofubread"
New()
..()
reagents.add_reagent("nutriment", 40)
bitesize = 2
attackby(obj/item/weapon/W as obj, mob/user as mob)
if(istype(W, /obj/item/weapon/kitchenknife /*|| /obj/item/weapon/scalpel*/))
W.visible_message(" \red <B>You slice the tofubread! </B>", 1)
new /obj/item/weapon/reagent_containers/food/snacks/tofubreadslice (src.loc)
new /obj/item/weapon/reagent_containers/food/snacks/tofubreadslice (src.loc)
new /obj/item/weapon/reagent_containers/food/snacks/tofubreadslice (src.loc)
new /obj/item/weapon/reagent_containers/food/snacks/tofubreadslice (src.loc)
new /obj/item/weapon/reagent_containers/food/snacks/tofubreadslice (src.loc)
del(src)
return
/obj/item/weapon/reagent_containers/food/snacks/tofubreadslice
name = "Tofubread slice"
desc = "A slice of delicious tofubread."
icon_state = "tofubreadslice"
New()
..()
reagents.add_reagent("nutriment", 8)
bitesize = 2
/obj/item/weapon/reagent_containers/food/snacks/cheesewheel
name = "Cheese wheel"
desc = "A big wheel of delcious Cheddar."
icon_state = "cheesewheel"
New()
..()
reagents.add_reagent("nutriment", 20)
bitesize = 2
attackby(obj/item/weapon/W as obj, mob/user as mob)
if(istype(W, /obj/item/weapon/kitchenknife /* || /obj/item/weapon/scalpel*/))
W.visible_message(" \red <B> You slice the cheese! </B>", 1)
new /obj/item/weapon/reagent_containers/food/snacks/cheesewedge (src.loc)
new /obj/item/weapon/reagent_containers/food/snacks/cheesewedge (src.loc)
new /obj/item/weapon/reagent_containers/food/snacks/cheesewedge (src.loc)
new /obj/item/weapon/reagent_containers/food/snacks/cheesewedge (src.loc)
new /obj/item/weapon/reagent_containers/food/snacks/cheesewedge (src.loc)
del(src)
return
/obj/item/weapon/reagent_containers/food/snacks/cheesewedge
name = "Cheese wedge"
desc = "A wedge of delicious Cheddar. The cheese wheel it was cut from can't have gone far."
icon_state = "cheesewedge"
New()
..()
reagents.add_reagent("nutriment", 4)
bitesize = 2