mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-10 10:12:45 +00:00
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:
@@ -99,9 +99,9 @@
|
||||
/obj/item/weapon/circuitboard/swfdoor
|
||||
name = "Circuit board (Magix)"
|
||||
computertype = "/obj/machinery/computer/pod/old/swf"
|
||||
/obj/item/weapon/circuitboard/explosive
|
||||
name = "Circuit board (ExImplant)"
|
||||
computertype = "/obj/machinery/computer/explosive"
|
||||
/obj/item/weapon/circuitboard/prisoner
|
||||
name = "Circuit board (Prisoner Management)"
|
||||
computertype = "/obj/machinery/computer/prisoner"
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/obj/machinery/computer/explosive
|
||||
/obj/machinery/computer/prisoner
|
||||
name = "Prisoner Management"
|
||||
icon = 'computer.dmi'
|
||||
icon_state = "explosive"
|
||||
@@ -10,8 +10,9 @@
|
||||
var/timeleft = 60
|
||||
var/stop = 0.0
|
||||
var/screen = 0 // 0 - No Access Denied, 1 - Access allowed
|
||||
var/malf_access = 0
|
||||
|
||||
/obj/machinery/computer/explosive/attackby(I as obj, user as mob)
|
||||
/obj/machinery/computer/prisoner/attackby(I as obj, user as mob)
|
||||
if(istype(I, /obj/item/weapon/screwdriver))
|
||||
playsound(src.loc, 'Screwdriver.ogg', 50, 1)
|
||||
if(do_after(user, 20))
|
||||
@@ -19,7 +20,7 @@
|
||||
user << "\blue The broken glass falls out."
|
||||
var/obj/computerframe/A = new /obj/computerframe( src.loc )
|
||||
new /obj/item/weapon/shard( src.loc )
|
||||
var/obj/item/weapon/circuitboard/explosive/M = new /obj/item/weapon/circuitboard/explosive( A )
|
||||
var/obj/item/weapon/circuitboard/prisoner/M = new /obj/item/weapon/circuitboard/prisoner( A )
|
||||
for (var/obj/C in src)
|
||||
C.loc = src.loc
|
||||
M.id = src.id
|
||||
@@ -31,7 +32,7 @@
|
||||
else
|
||||
user << "\blue You disconnect the monitor."
|
||||
var/obj/computerframe/A = new /obj/computerframe( src.loc )
|
||||
var/obj/item/weapon/circuitboard/explosive/M = new /obj/item/weapon/circuitboard/explosive( A )
|
||||
var/obj/item/weapon/circuitboard/prisoner/M = new /obj/item/weapon/circuitboard/prisoner( A )
|
||||
for (var/obj/C in src)
|
||||
C.loc = src.loc
|
||||
M.id = src.id
|
||||
@@ -45,15 +46,24 @@
|
||||
src.attack_hand(user)
|
||||
return
|
||||
|
||||
/obj/machinery/computer/explosive/attack_ai(var/mob/user as mob)
|
||||
return src.attack_hand(user)
|
||||
/obj/machinery/computer/prisoner/attack_ai(var/mob/user as mob)
|
||||
user << "\red Access Denied"
|
||||
if(user.icon_state == "ai-malf" && malf_access == 0)
|
||||
user << "\red BZZZZZZ..."
|
||||
spawn(20)
|
||||
user << "\red ...ZZZZZZ *BEEP*"
|
||||
sleep(10)
|
||||
user << "\red You now have access to Prisoner Management console"
|
||||
malf_access = 1
|
||||
if(malf_access == 1)
|
||||
return src.attack_hand(user)
|
||||
else
|
||||
return
|
||||
|
||||
/obj/machinery/computer/explosive/attack_paw(var/mob/user as mob)
|
||||
|
||||
return src.attack_hand(user)
|
||||
/obj/machinery/computer/prisoner/attack_paw(var/mob/user as mob)
|
||||
return
|
||||
|
||||
/obj/machinery/computer/explosive/attack_hand(var/mob/user as mob)
|
||||
/obj/machinery/computer/prisoner/attack_hand(var/mob/user as mob)
|
||||
if(..())
|
||||
return
|
||||
user.machine = src
|
||||
@@ -62,12 +72,22 @@
|
||||
if(screen == 0)
|
||||
dat += "<HR><A href='?src=\ref[src];lock=1'>Unlock Console</A>"
|
||||
else if(screen == 1)
|
||||
for(var/obj/item/weapon/implant/explosive/E in world)
|
||||
if(!E.implanted) continue
|
||||
dat += "[E.imp_in.name] | "
|
||||
dat += "<A href='?src=\ref[src];killimplant=\ref[E]'>(<font color=red><i>Detonate</i></font>)</A> | "
|
||||
dat += "<A href='?src=\ref[src];disable=\ref[E]'>(<font color=red><i>Deactivate</i></font>)</A> | "
|
||||
dat += "<A href='?src=\ref[src];warn=\ref[E]'>(<font color=red><i>Warn</i></font>)</A> |<BR>"
|
||||
dat += "<HR>Chemical Implants<BR>"
|
||||
for(var/obj/item/weapon/implant/chem/C in world)
|
||||
if(!C.implanted) continue
|
||||
dat += "[C.imp_in.name] | Remaining Units: [C.reagents.total_volume] | Inject: "
|
||||
dat += "<A href='?src=\ref[src];inject1=\ref[C]'>(<font color=red>(1)</font>)</A>"
|
||||
dat += "<A href='?src=\ref[src];inject5=\ref[C]'>(<font color=red>(5)</font>)</A>"
|
||||
dat += "<A href='?src=\ref[src];inject10=\ref[C]'>(<font color=red>(10)</font>)</A><BR>"
|
||||
dat += "<HR>Tracking Implants<BR>"
|
||||
for(var/obj/item/weapon/implant/tracking/T in world)
|
||||
if(!T.implanted) continue
|
||||
var/loc_display = "Unknown"
|
||||
var/mob/living/carbon/M = T.imp_in
|
||||
if(M.z == 1 && !istype(M.loc, /turf/space))
|
||||
var/turf/mob_loc = get_turf_loc(M)
|
||||
loc_display = mob_loc.loc
|
||||
dat += "ID: [T.id] | Location: [loc_display]<BR>"
|
||||
dat += "<HR><A href='?src=\ref[src];lock=1'>Lock Console</A>"
|
||||
|
||||
user << browse(dat, "window=computer;size=400x500")
|
||||
@@ -81,7 +101,7 @@
|
||||
src.updateDialog()
|
||||
return
|
||||
|
||||
/obj/machinery/computer/explosive/Topic(href, href_list)
|
||||
/obj/machinery/computer/prisoner/Topic(href, href_list)
|
||||
if(..())
|
||||
return
|
||||
if ((usr.contents.Find(src) || (in_range(src, usr) && istype(src.loc, /turf))) || (istype(usr, /mob/living/silicon)))
|
||||
@@ -90,7 +110,11 @@
|
||||
var/obj/item/weapon/implant/I = locate(href_list["killimplant"])
|
||||
var/mob/living/carbon/R = I.imp_in
|
||||
if(R)
|
||||
var/choice = input("Are you certain you wish to detonate [R.name]?") in list("Confirm", "Abort")
|
||||
var/choice = null
|
||||
if(istype(usr, /mob/living/silicon))
|
||||
choice = input("Using this command is in violation of default laws.") in list("Continue", "Abort")
|
||||
if(choice != "Abort")
|
||||
choice = input("Are you certain you wish to detonate [R.name]?") in list("Confirm", "Abort")
|
||||
if(choice == "Confirm")
|
||||
R << "You hear quiet beep from the base of your skull."
|
||||
message_admins("\blue [key_name_admin(usr)] gibbed [R.name]")
|
||||
@@ -112,6 +136,30 @@
|
||||
R << "\blue you hear a click as the implant disintegrates."
|
||||
del(I)
|
||||
|
||||
else if (href_list["inject1"])
|
||||
var/obj/item/weapon/implant/I = locate(href_list["inject1"])
|
||||
var/mob/living/carbon/R = I.imp_in
|
||||
I.reagents.trans_to(R, 1)
|
||||
if(!I.reagents.total_volume)
|
||||
R << "You hear a faint click from your chest."
|
||||
del(I)
|
||||
|
||||
else if (href_list["inject5"])
|
||||
var/obj/item/weapon/implant/I = locate(href_list["inject5"])
|
||||
var/mob/living/carbon/R = I.imp_in
|
||||
I.reagents.trans_to(R, 5)
|
||||
if(!I.reagents.total_volume)
|
||||
R << "You hear a faint click from your chest."
|
||||
del(I)
|
||||
|
||||
else if (href_list["inject10"])
|
||||
var/obj/item/weapon/implant/I = locate(href_list["inject10"])
|
||||
var/mob/living/carbon/R = I.imp_in
|
||||
I.reagents.trans_to(R, 10)
|
||||
if(!I.reagents.total_volume)
|
||||
R << "You hear a faint click from your chest."
|
||||
del(I)
|
||||
|
||||
else if (href_list["lock"])
|
||||
if(src.allowed(usr))
|
||||
screen = !screen
|
||||
|
||||
@@ -91,6 +91,12 @@
|
||||
cheese_amount = 3
|
||||
creates = "/obj/item/weapon/reagent_containers/food/snacks/meatbread"
|
||||
|
||||
/datum/recipe/xenomeatbread
|
||||
flour_amount = 3
|
||||
xenomeat_amount = 3
|
||||
cheese_amount = 3
|
||||
creates = "/obj/item/weapon/reagent_containers/food/snacks/xenomeatbread"
|
||||
|
||||
/datum/recipe/omelette
|
||||
egg_amount = 2
|
||||
cheese_amount = 2
|
||||
@@ -230,6 +236,7 @@
|
||||
src.available_recipes += new /datum/recipe/tofubread(src)
|
||||
src.available_recipes += new /datum/recipe/loadedbakedpotato(src)
|
||||
src.available_recipes += new /datum/recipe/cheesyfries(src)
|
||||
src.available_recipes += new /datum/recipe/xenomeatbread(src)
|
||||
|
||||
|
||||
|
||||
@@ -328,14 +335,9 @@ obj/machinery/microwave/attackby(var/obj/item/O as obj, var/mob/user as mob)
|
||||
src.donkpocket_amount++
|
||||
del(O)
|
||||
|
||||
else if(istype(O, /obj/item/weapon/reagent_containers/food/drinks/milk))
|
||||
if(src.milk_amount < 5)
|
||||
for(var/mob/V in viewers(src, null))
|
||||
V.show_message(text("\blue [user] adds some milk to the microwave."))
|
||||
src.milk_amount++
|
||||
del(O)
|
||||
else if(O.is_open_container())
|
||||
return
|
||||
|
||||
else
|
||||
if(!istype(extra_item, /obj/item)) //Allow one non food item to be added!
|
||||
user.u_equip(O)
|
||||
@@ -374,6 +376,9 @@ obj/machinery/microwave/attack_paw(user as mob)
|
||||
while(src.reagents.get_reagent_amount("milk") > 4)
|
||||
src.reagents.remove_reagent("milk", 5)
|
||||
src.milk_amount++
|
||||
while(src.reagents.get_reagent_amount("soymilk") > 4)
|
||||
src.reagents.remove_reagent("soymilk", 5)
|
||||
src.milk_amount++
|
||||
while(src.reagents.get_reagent_amount("ketchup") > 4)
|
||||
src.reagents.remove_reagent("ketchup", 5)
|
||||
src.ketchup_amount++
|
||||
@@ -410,7 +415,7 @@ Please clean it before use!</TT><BR>
|
||||
<B>Cheese:</B>[src.cheese_amount] cheese wedges<BR>
|
||||
<B>Tofu:</B>[src.tofu_amount] tofu chunks<BR>
|
||||
<B>Monkey Meat:</B>[src.monkeymeat_amount] slabs of meat<BR>
|
||||
<B>Meat Turnovers:</B>[src.donkpocket_amount] turnovers<BR>
|
||||
<B>Turnovers:</B>[src.donkpocket_amount] turnovers<BR>
|
||||
<B>Milk:</B>[src.milk_amount] cups of milk.<BR>
|
||||
[sauces]
|
||||
<B>Other Meat:</B>[src.humanmeat_amount] slabs of meat<BR>
|
||||
@@ -507,6 +512,7 @@ Please clean it before use!</TT><BR>
|
||||
|
||||
if(operation == 2) // If dispose was pressed, empty the microwave
|
||||
src.clear()
|
||||
src.reagents.clear_reagents()
|
||||
if(src.extra_item != null)
|
||||
src.extra_item.loc = get_turf(src) // Eject the extra item so important shit like the disk can't be destroyed in there
|
||||
src.extra_item = null
|
||||
@@ -560,44 +566,6 @@ Please clean it before use!</TT><BR>
|
||||
src.tofu_amount = 0
|
||||
src.ketchup_amount = 0
|
||||
src.berryjuice_amount = 0
|
||||
src.updateUsrDialog()
|
||||
//src.temp.reagents.clear_reagents()
|
||||
return
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
//Food slicing RIGHT BELOW*************
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/meatbread/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/tofubread/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/cheesewheel/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
|
||||
return
|
||||
Reference in New Issue
Block a user