Merge pull request #3069 from 9600bauds/kitchenupgrades

Microwaves and Grinders can be upgraded with protolathe parts [proper git]
This commit is contained in:
d3athrow
2015-03-07 10:47:57 -06:00
5 changed files with 46 additions and 10 deletions

View File

@@ -9,7 +9,7 @@
use_power = 1 use_power = 1
idle_power_usage = 5 idle_power_usage = 5
active_power_usage = 100 active_power_usage = 100
machine_flags = SCREWTOGGLE | CROWDESTROY | WRENCHMOVE machine_flags = SCREWTOGGLE | CROWDESTROY | WRENCHMOVE | EJECTNOTDEL
flags = OPENCONTAINER | NOREACT flags = OPENCONTAINER | NOREACT
pass_flags = PASSTABLE pass_flags = PASSTABLE
var/operating = 0 // Is it on? var/operating = 0 // Is it on?
@@ -22,6 +22,8 @@
var/global/max_n_of_items = 0 var/global/max_n_of_items = 0
var/list/holdingitems = list() var/list/holdingitems = list()
var/limit = 100 var/limit = 100
var/speed_multiplier = 1
var/scanning_power = 0
// see code/modules/food/recipes_microwave.dm for recipes // see code/modules/food/recipes_microwave.dm for recipes
//Cannot use tools - screwdriver and crowbar for recipes. Or at least fix things before you do //Cannot use tools - screwdriver and crowbar for recipes. Or at least fix things before you do
@@ -68,6 +70,20 @@
if (recipe.items) if (recipe.items)
max_n_of_items = max(max_n_of_items,recipe.items.len) max_n_of_items = max(max_n_of_items,recipe.items.len)
/*******************
* Part Upgrades
********************/
/obj/machinery/microwave/RefreshParts()
var/T = 0
for(var/obj/item/weapon/stock_parts/micro_laser/M in component_parts)
T += M.rating-1
speed_multiplier = initial(speed_multiplier)+(T * 0.25)
T = 0
for(var/obj/item/weapon/stock_parts/scanning_module/M in component_parts)
T += M.rating-1
scanning_power = initial(scanning_power)+(T)
/******************* /*******************
* Item Adding * Item Adding
********************/ ********************/
@@ -255,8 +271,16 @@
if (items_counts.len==0 && reagents.reagent_list.len==0) if (items_counts.len==0 && reagents.reagent_list.len==0)
dat = {"<B>The microwave is empty</B><BR>"} dat = {"<B>The microwave is empty</B><BR>"}
else else
dat = {"<b>Ingredients:</b><br>[dat]"} dat = {"<b>Ingredients:</b><br>[dat]<HR><BR>"}
dat += {"<HR><BR>\ if (scanning_power >= 2 )
var/datum/recipe/recipe = select_recipe(available_recipes,src)
if (!recipe)
dat += {"<font color = 'red'>ERROR: No matching recipe found!</font><br>"}
else
var/obj/O = recipe.result
var/display_name = initial(O.name)
dat += {"<b>Expected result: </b>[display_name]<br>"}
dat += {"\
<A href='?src=\ref[src];action=cook'>Turn on!<BR>\ <A href='?src=\ref[src];action=cook'>Turn on!<BR>\
<A href='?src=\ref[src];action=dispose'>Eject ingredients!<BR>\ <A href='?src=\ref[src];action=dispose'>Eject ingredients!<BR>\
"} "}
@@ -333,7 +357,7 @@
if (stat & (NOPOWER|BROKEN)) if (stat & (NOPOWER|BROKEN))
return 0 return 0
use_power(500) use_power(500)
sleep(10) sleep(10/speed_multiplier)
return 1 return 1
/obj/machinery/microwave/proc/has_extra_item() /obj/machinery/microwave/proc/has_extra_item()

View File

@@ -11,7 +11,7 @@
var/opened = 0 var/opened = 0
var/useramount = 30 // Last used amount var/useramount = 30 // Last used amount
machine_flags = SCREWTOGGLE | CROWDESTROY machine_flags = SCREWTOGGLE | CROWDESTROY | WRENCHMOVE | FIXED2WORK
l_color = "#7BF9FF" l_color = "#7BF9FF"
power_change() power_change()

View File

@@ -958,11 +958,12 @@ USE THIS CHEMISTRY DISPENSER FOR MAPS SO THEY START AT 100 ENERGY
use_power = 1 use_power = 1
idle_power_usage = 5 idle_power_usage = 5
active_power_usage = 100 active_power_usage = 100
machine_flags = SCREWTOGGLE | CROWDESTROY | WRENCHMOVE | FIXED2WORK machine_flags = SCREWTOGGLE | CROWDESTROY | WRENCHMOVE | FIXED2WORK | EJECTNOTDEL
pass_flags = PASSTABLE pass_flags = PASSTABLE
var/inuse = 0 var/inuse = 0
var/obj/item/weapon/reagent_containers/beaker = null var/obj/item/weapon/reagent_containers/beaker = null
var/limit = 10 var/limit = 10
var/speed_multiplier = 1
var/list/blend_items = list ( var/list/blend_items = list (
//Sheets //Sheets
@@ -1033,6 +1034,17 @@ USE THIS CHEMISTRY DISPENSER FOR MAPS SO THEY START AT 100 ENERGY
return return
/obj/machinery/reagentgrinder/RefreshParts()
var/T = 0
for(var/obj/item/weapon/stock_parts/matter_bin/M in component_parts)
T += M.rating-1
limit = initial(limit)+(T * 5)
T = 0
for(var/obj/item/weapon/stock_parts/micro_laser/M in component_parts)
T += M.rating-1
speed_multiplier = initial(speed_multiplier)+(T * 0.50)
/obj/machinery/reagentgrinder/update_icon() /obj/machinery/reagentgrinder/update_icon()
icon_state = "juicer"+num2text(!isnull(beaker)) icon_state = "juicer"+num2text(!isnull(beaker))
return return
@@ -1249,9 +1261,9 @@ USE THIS CHEMISTRY DISPENSER FOR MAPS SO THEY START AT 100 ENERGY
return return
if (!beaker || (beaker && beaker.reagents.total_volume >= beaker.reagents.maximum_volume)) if (!beaker || (beaker && beaker.reagents.total_volume >= beaker.reagents.maximum_volume))
return return
playsound(get_turf(src), 'sound/machines/juicer.ogg', 20, 1) playsound(get_turf(src), speed_multiplier < 2 ? 'sound/machines/juicer.ogg' : 'sound/machines/juicerfast.ogg', 30, 1)
inuse = 1 inuse = 1
spawn(50) spawn(50/speed_multiplier)
inuse = 0 inuse = 0
interact(usr) interact(usr)
//Snacks //Snacks
@@ -1282,9 +1294,9 @@ USE THIS CHEMISTRY DISPENSER FOR MAPS SO THEY START AT 100 ENERGY
return return
if (!beaker || (beaker && beaker.reagents.total_volume >= beaker.reagents.maximum_volume)) if (!beaker || (beaker && beaker.reagents.total_volume >= beaker.reagents.maximum_volume))
return return
playsound(get_turf(src), 'sound/machines/blender.ogg', 50, 1) playsound(get_turf(src), speed_multiplier < 2 ? 'sound/machines/blender.ogg' : 'sound/machines/blenderfast.ogg', 50, 1)
inuse = 1 inuse = 1
spawn(60) spawn(60/speed_multiplier)
inuse = 0 inuse = 0
interact(usr) interact(usr)
//Snacks and Plants //Snacks and Plants

Binary file not shown.

Binary file not shown.