Merge pull request #10782 from phil235/VendingCharges

Mech & vending machine fixes
This commit is contained in:
Cheridan
2015-07-24 00:02:31 -05:00
11 changed files with 107 additions and 105 deletions
+54 -47
View File
@@ -1,3 +1,7 @@
#define STANDARD_CHARGE 1
#define CONTRABAND_CHARGE 2
#define COIN_CHARGE 3
/datum/data/vending_product
var/product_name = "generic"
var/product_path = null
@@ -82,11 +86,10 @@
coin = null
..()
/obj/machinery/vending/snack/Destroy()
for(var/obj/item/weapon/reagent_containers/food/snacks/S in contents)
S.loc = get_turf(src)
..()
return ..()
/obj/machinery/vending/RefreshParts() //Better would be to make constructable child
if(component_parts)
@@ -97,9 +100,9 @@
build_inventory(contraband, 1, start_empty = 1)
build_inventory(premium, 0, 1, start_empty = 1)
for(var/obj/item/weapon/vending_refill/VR in component_parts)
refill_inventory(VR, product_records)
refill_inventory(VR, coin_records)
refill_inventory(VR, hidden_records)
refill_inventory(VR, product_records, STANDARD_CHARGE)
refill_inventory(VR, coin_records, COIN_CHARGE)
refill_inventory(VR, hidden_records, CONTRABAND_CHARGE)
/obj/machinery/vending/ex_act(severity, target)
..()
@@ -136,31 +139,31 @@
else
product_records += R
/obj/machinery/vending/proc/refill_inventory(obj/item/weapon/vending_refill/refill, datum/data/vending_product/machine)
/obj/machinery/vending/proc/refill_inventory(obj/item/weapon/vending_refill/refill, datum/data/vending_product/machine, var/charge_type = STANDARD_CHARGE)
var/total = 0
var/to_restock = 0
for(var/datum/data/vending_product/machine_content in machine)
if(machine_content.amount == 0 && refill.charges > 0)
if(machine_content.amount == 0 && refill.charges[charge_type] > 0)
machine_content.amount++
refill.charges--
refill.charges[charge_type]--
total++
to_restock += machine_content.max_amount - machine_content.amount
if(to_restock <= refill.charges)
if(to_restock <= refill.charges[charge_type])
for(var/datum/data/vending_product/machine_content in machine)
machine_content.amount = machine_content.max_amount
refill.charges -= to_restock
refill.charges[charge_type] -= to_restock
total += to_restock
else
var/tmp_charges = refill.charges
var/tmp_charges = refill.charges[charge_type]
for(var/datum/data/vending_product/machine_content in machine)
if(refill.charges == 0)
if(refill.charges[charge_type] == 0)
break
var/restock = Ceiling(((machine_content.max_amount - machine_content.amount)/to_restock)*tmp_charges)
if(restock > refill.charges)
restock = refill.charges
if(restock > refill.charges[charge_type])
restock = refill.charges[charge_type]
machine_content.amount += restock
refill.charges -= restock
refill.charges[charge_type] -= restock
total += restock
return total
@@ -263,7 +266,7 @@
else if(panel_open)
//if the panel is open we attempt to refill the machine
var/obj/item/weapon/vending_refill/canister = W
if(canister.charges == 0)
if(canister.charges[STANDARD_CHARGE] == 0)
user << "<span class='notice'>This [canister.name] is empty!</span>"
else
var/transfered = refill_inventory(canister,product_records,user)
@@ -279,21 +282,22 @@
/obj/machinery/vending/default_deconstruction_crowbar(obj/item/O)
var/list/all_products = product_records + hidden_records + coin_records
for(var/datum/data/vending_product/machine_content in all_products)
while(machine_content.amount !=0)
var/safety = 0 //to avoid infinite loop
for(var/obj/item/weapon/vending_refill/VR in component_parts)
safety++
if(VR.charges < initial(VR.charges))
VR.charges++
machine_content.amount--
if(!machine_content.amount)
break
else
safety--
if(safety <= 0)
break
var/product_list = list(product_records, hidden_records, coin_records)
for(var/i=1, i<=3, i++)
for(var/datum/data/vending_product/machine_content in product_list[i])
while(machine_content.amount !=0)
var/safety = 0 //to avoid infinite loop
for(var/obj/item/weapon/vending_refill/VR in component_parts)
safety++
if(VR.charges[i] < VR.init_charges[i])
VR.charges[i]++
machine_content.amount--
if(!machine_content.amount)
break
else
safety--
if(safety <= 0) // all refill canisters are full
break
..()
/obj/machinery/vending/emag_act(mob/user)
@@ -637,8 +641,8 @@ IF YOU MODIFY THE PRODUCTS LIST OF A MACHINE, MAKE SURE TO UPDATE ITS RESUPPLY C
/obj/item/weapon/reagent_containers/food/drinks/bottle/cream = 4,/obj/item/weapon/reagent_containers/food/drinks/soda_cans/tonic = 8,
/obj/item/weapon/reagent_containers/food/drinks/soda_cans/cola = 8, /obj/item/weapon/reagent_containers/food/drinks/soda_cans/sodawater = 15,
/obj/item/weapon/reagent_containers/food/drinks/drinkingglass = 30,/obj/item/weapon/reagent_containers/food/drinks/ice = 10,
/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/shotglass = 8)
contraband = list(/obj/item/weapon/reagent_containers/food/drinks/tea = 10)
/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/shotglass = 12)
contraband = list(/obj/item/weapon/reagent_containers/food/drinks/tea = 12)
vend_delay = 15
product_slogans = "I hope nobody asks me for a bloody cup o' tea...;Alcohol is humanity's friend. Would you abandon a friend?;Quite delighted to serve you!;Is nobody thirsty on this station?"
product_ads = "Drink up!;Booze is good for you!;Alcohol is humanity's best friend.;Quite delighted to serve you!;Care for a nice, cold beer?;Nothing cures you like booze!;Have a sip!;Have a drink!;Have a beer!;Beer is good for you!;Only the finest alcohol!;Best quality booze since 2053!;Award-winning wine!;Maximum alcohol!;Man loves beer.;A toast for progress!"
@@ -659,7 +663,7 @@ IF YOU MODIFY THE PRODUCTS LIST OF A MACHINE, MAKE SURE TO UPDATE ITS RESUPPLY C
icon_vend = "coffee-vend"
vend_delay = 34
products = list(/obj/item/weapon/reagent_containers/food/drinks/coffee = 25,/obj/item/weapon/reagent_containers/food/drinks/tea = 25,/obj/item/weapon/reagent_containers/food/drinks/h_chocolate = 25)
contraband = list(/obj/item/weapon/reagent_containers/food/drinks/ice = 10)
contraband = list(/obj/item/weapon/reagent_containers/food/drinks/ice = 12)
refill_canister = /obj/item/weapon/vending_refill/coffee
/obj/machinery/vending/snack
@@ -668,10 +672,10 @@ IF YOU MODIFY THE PRODUCTS LIST OF A MACHINE, MAKE SURE TO UPDATE ITS RESUPPLY C
product_slogans = "Try our new nougat bar!;Twice the calories for half the price!"
product_ads = "The healthiest!;Award-winning chocolate bars!;Mmm! So good!;Oh my god it's so juicy!;Have a snack.;Snacks are good for you!;Have some more Getmore!;Best quality snacks straight from mars.;We love chocolate!;Try our new jerky!"
icon_state = "snack"
products = list(/obj/item/weapon/reagent_containers/food/snacks/candy = 5,/obj/item/weapon/reagent_containers/food/drinks/dry_ramen = 5,/obj/item/weapon/reagent_containers/food/snacks/chips =5,
/obj/item/weapon/reagent_containers/food/snacks/sosjerky = 5,/obj/item/weapon/reagent_containers/food/snacks/no_raisin = 5,/obj/item/weapon/reagent_containers/food/snacks/spacetwinkie = 5,
/obj/item/weapon/reagent_containers/food/snacks/cheesiehonkers = 5)
contraband = list(/obj/item/weapon/reagent_containers/food/snacks/syndicake = 7)
products = list(/obj/item/weapon/reagent_containers/food/snacks/candy = 6,/obj/item/weapon/reagent_containers/food/drinks/dry_ramen = 6,/obj/item/weapon/reagent_containers/food/snacks/chips =6,
/obj/item/weapon/reagent_containers/food/snacks/sosjerky = 6,/obj/item/weapon/reagent_containers/food/snacks/no_raisin = 6,/obj/item/weapon/reagent_containers/food/snacks/spacetwinkie = 6,
/obj/item/weapon/reagent_containers/food/snacks/cheesiehonkers = 6)
contraband = list(/obj/item/weapon/reagent_containers/food/snacks/syndicake = 6)
refill_canister = /obj/item/weapon/vending_refill/snack
var/chef_compartment_access = "28"
@@ -735,14 +739,14 @@ IF YOU MODIFY THE PRODUCTS LIST OF A MACHINE, MAKE SURE TO UPDATE ITS RESUPPLY C
icon_state = "cigs"
products = list(/obj/item/weapon/storage/fancy/cigarettes = 5,
/obj/item/weapon/storage/fancy/cigarettes/cigpack_uplift = 3,
/obj/item/weapon/storage/fancy/cigarettes/cigpack_robust = 2,
/obj/item/weapon/storage/fancy/cigarettes/cigpack_robust = 3,
/obj/item/weapon/storage/fancy/cigarettes/cigpack_carp = 3,
/obj/item/weapon/storage/fancy/cigarettes/cigpack_midori = 3,
/obj/item/weapon/storage/box/matches = 10,
/obj/item/weapon/lighter/greyscale = 4,
/obj/item/weapon/storage/fancy/rollingpapers = 5)
contraband = list(/obj/item/weapon/lighter = 4)
premium = list(/obj/item/weapon/storage/fancy/cigarettes/cigpack_robustgold = 2, \
contraband = list(/obj/item/weapon/lighter = 3)
premium = list(/obj/item/weapon/storage/fancy/cigarettes/cigpack_robustgold = 3, \
/obj/item/weapon/storage/fancy/cigarettes/cigars = 1, /obj/item/weapon/storage/fancy/cigarettes/cigars/havana = 1, /obj/item/weapon/storage/fancy/cigarettes/cigars/cohiba = 1)
refill_canister = /obj/item/weapon/vending_refill/cigarette
@@ -867,8 +871,8 @@ IF YOU MODIFY THE PRODUCTS LIST OF A MACHINE, MAKE SURE TO UPDATE ITS RESUPPLY C
/obj/item/clothing/under/maid = 1, /obj/item/clothing/under/janimaid = 1,/obj/item/clothing/glasses/cold=1,/obj/item/clothing/glasses/heat=1,
/obj/item/clothing/suit/whitedress = 1,
/obj/item/clothing/under/jester = 1, /obj/item/clothing/head/jester = 1)
contraband = list(/obj/item/clothing/suit/judgerobe = 1,/obj/item/clothing/head/powdered_wig = 1,/obj/item/weapon/gun/magic/wand = 1,/obj/item/clothing/glasses/sunglasses/garb = 1)
premium = list(/obj/item/clothing/suit/hgpirate = 1, /obj/item/clothing/head/hgpiratecap = 1, /obj/item/clothing/head/helmet/roman = 1, /obj/item/clothing/head/helmet/roman/legionaire = 1, /obj/item/clothing/under/roman = 1, /obj/item/clothing/shoes/roman = 1, /obj/item/weapon/shield/riot/roman = 1)
contraband = list(/obj/item/clothing/suit/judgerobe = 1,/obj/item/clothing/head/powdered_wig = 1,/obj/item/weapon/gun/magic/wand = 2,/obj/item/clothing/glasses/sunglasses/garb = 2)
premium = list(/obj/item/clothing/suit/hgpirate = 2, /obj/item/clothing/head/hgpiratecap = 2, /obj/item/clothing/head/helmet/roman = 1, /obj/item/clothing/head/helmet/roman/legionaire = 1, /obj/item/clothing/under/roman = 1, /obj/item/clothing/shoes/roman = 1, /obj/item/weapon/shield/riot/roman = 1)
refill_canister = /obj/item/weapon/vending_refill/autodrobe
/obj/machinery/vending/dinnerware
@@ -934,8 +938,8 @@ IF YOU MODIFY THE PRODUCTS LIST OF A MACHINE, MAKE SURE TO UPDATE ITS RESUPPLY C
/obj/item/weapon/scalpel = 2,/obj/item/weapon/circular_saw = 2,/obj/item/weapon/tank/internals/anesthetic = 2,/obj/item/clothing/mask/breath/medical = 5,
/obj/item/weapon/screwdriver = 5,/obj/item/weapon/crowbar = 5)
//This one's from NTstation
//don't forget to change the refill size if you change the machine's contents!
//DON'T FORGET TO CHANGE THE REFILL SIZE IF YOU CHANGE THE MACHINE'S CONTENTS!
/obj/machinery/vending/clothing
name = "ClothesMate" //renamed to make the slogan rhyme
desc = "A vending machine for clothing."
@@ -963,7 +967,10 @@ IF YOU MODIFY THE PRODUCTS LIST OF A MACHINE, MAKE SURE TO UPDATE ITS RESUPPLY C
/obj/item/clothing/suit/ianshirt=1,/obj/item/clothing/shoes/laceup=2,/obj/item/clothing/shoes/sneakers/black=4,
/obj/item/clothing/shoes/sandal=1, /obj/item/clothing/gloves/fingerless=2,/obj/item/clothing/glasses/orange=1,/obj/item/clothing/glasses/red=1,
/obj/item/weapon/storage/belt/fannypack=1, /obj/item/weapon/storage/belt/fannypack/blue=1, /obj/item/weapon/storage/belt/fannypack/red=1)
contraband = list(/obj/item/clothing/under/syndicate/tacticool=1,/obj/item/clothing/mask/balaclava=1,/obj/item/clothing/head/ushanka=1,/obj/item/clothing/under/soviet=1,/obj/item/weapon/storage/belt/fannypack/black=1)
contraband = list(/obj/item/clothing/under/syndicate/tacticool=1,/obj/item/clothing/mask/balaclava=1,/obj/item/clothing/head/ushanka=1,/obj/item/clothing/under/soviet=1,/obj/item/weapon/storage/belt/fannypack/black=2)
premium = list(/obj/item/clothing/under/suit_jacket/checkered=1,/obj/item/clothing/head/mailman=1,/obj/item/clothing/under/rank/mailman=1,/obj/item/clothing/suit/jacket/leather=1,/obj/item/clothing/suit/jacket/leather/overcoat=1,/obj/item/clothing/under/pants/mustangjeans=1)
refill_canister = /obj/item/weapon/vending_refill/clothing
#undef STANDARD_CHARGE
#undef CONTRABAND_CHARGE
#undef COIN_CHARGE
+1 -1
View File
@@ -46,7 +46,7 @@
else
chassis.occupant << sound('sound/mecha/critdestr.ogg',volume=50)
chassis = null
..()
return ..()
/obj/item/mecha_parts/mecha_equipment/proc/critfail()
if(chassis)
@@ -32,7 +32,7 @@
SSobj.processing.Remove(src)
for(var/atom/movable/AM in src)
AM.forceMove(get_turf(src))
..()
return ..()
/obj/item/mecha_parts/mecha_equipment/sleeper/Exit(atom/movable/O)
return 0
@@ -75,6 +75,7 @@
log_message("[patient] ejected. Life support functions disabled.")
patient.reset_view()
SSobj.processing.Remove(src)
patient = null
update_equip_info()
/obj/item/mecha_parts/mecha_equipment/sleeper/detach()
@@ -82,7 +83,6 @@
occupant_message("<span class='warning'>Unable to detach [src] - equipment occupied!</span>")
return
SSobj.processing.Remove(src)
update_equip_info()
return ..()
/obj/item/mecha_parts/mecha_equipment/sleeper/get_equip_info()
@@ -188,16 +188,16 @@
/obj/item/mecha_parts/mecha_equipment/sleeper/update_equip_info()
if(..())
send_byjax(chassis.occupant,"msleeper.browser","lossinfo",get_patient_dam())
send_byjax(chassis.occupant,"msleeper.browser","reagents",get_patient_reagents())
send_byjax(chassis.occupant,"msleeper.browser","injectwith",get_available_reagents())
if(patient)
send_byjax(chassis.occupant,"msleeper.browser","lossinfo",get_patient_dam())
send_byjax(chassis.occupant,"msleeper.browser","reagents",get_patient_reagents())
send_byjax(chassis.occupant,"msleeper.browser","injectwith",get_available_reagents())
return 1
return
/obj/item/mecha_parts/mecha_equipment/sleeper/container_resist()
go_out()
/obj/item/mecha_parts/mecha_equipment/sleeper/process()
if(!chassis)
SSobj.processing.Remove(src)
@@ -259,7 +259,7 @@
/obj/item/mecha_parts/mecha_equipment/syringe_gun/Destroy()
SSobj.processing.Remove(src)
..()
return ..()
/obj/item/mecha_parts/mecha_equipment/syringe_gun/critfail()
..()
@@ -505,6 +505,7 @@
occupant_message("<span class=\"alert\">Reagent processing stopped.</a>")
log_message("Reagent processing stopped.")
SSobj.processing.Remove(src)
return
if(anyprob(reliability))
critfail()
var/amount = synth_speed / processed_reagents.len
@@ -205,7 +205,7 @@
SSobj.processing.Remove(src)
if(chassis)
chassis.overlays -= droid_overlay
..()
return ..()
/obj/item/mecha_parts/mecha_equipment/repair_droid/attach(obj/mecha/M as obj)
..()
@@ -317,7 +317,7 @@
/obj/item/mecha_parts/mecha_equipment/cable_layer/Destroy()
chassis.events.clearEvent("onMove",event)
..()
return ..()
/obj/item/mecha_parts/mecha_equipment/cable_layer/action(var/obj/item/stack/cable_coil/target)
if(!action_checks(target))
+1 -1
View File
@@ -143,7 +143,7 @@
spark_system = null
mechas_list -= src //global mech list
..()
return ..()
////////////////////////
////// Helpers /////////
+8 -8
View File
@@ -12,6 +12,7 @@
wreckage = /obj/structure/mecha_wreckage/ripley
var/list/cargo = new
var/cargo_capacity = 15
var/hides = 0
/obj/mecha/working/ripley/Move()
. = ..()
@@ -23,15 +24,14 @@
update_pressure()
/obj/mecha/working/ripley/Destroy()
var/hides = round((initial(damage_absorption["brute"]) - damage_absorption["brute"])*10)
for(var/i=0, i < hides, i++)
for(var/i=1, i <= hides, i++)
new /obj/item/asteroid/goliath_hide(loc) //If a goliath-plated ripley gets killed, all the plates drop
damage_absorption["brute"] = initial(damage_absorption["brute"])
for(var/atom/movable/A in cargo)
A.loc = loc
step_rand(A)
cargo.Cut()
..()
return ..()
/obj/mecha/working/ripley/go_out()
..()
@@ -47,12 +47,12 @@
/obj/mecha/working/ripley/update_icon()
..()
if (damage_absorption["brute"] < 0.6 && damage_absorption["brute"] > 0.3)
if (hides)
overlays = null
overlays += image("icon" = "mecha.dmi", "icon_state" = "ripley-g-open")
else if (damage_absorption.["brute"] == 0.3)
overlays = null
overlays += image("icon" = "mecha.dmi", "icon_state" = "ripley-g-full-open")
if(hides < 3)
overlays += image("icon" = "mecha.dmi", "icon_state" = occupant ? "ripley-g" : "ripley-g-open")
else
overlays += image("icon" = "mecha.dmi", "icon_state" = occupant ? "ripley-g-full" : "ripley-g-full-open")
/obj/mecha/working/ripley/firefighter
+3 -1
View File
@@ -709,7 +709,7 @@
<h2>Microwave:</h2>
Use it to cook or boil food ingredients (meats, doughs, egg, spaghetti, donkpocket, etc...).
It can cook multiple items at once. Use the higher power settings for faster (and riskier) cooking.
It can cook multiple items at once.
<h2>Processor:</h2>
Use it to process certain ingredients (meat into faggot, doughslice into spaghetti, potato into fries,etc...)
@@ -733,6 +733,8 @@
<b>Donuts:</b> 1u sugar + 1 pastry base<br>
<b>Fries:</b> Process potato.
<h2>Sharing your food:</h2>
You can put your meals on your kitchen counter or load them in the snack vending machines.
</body>
</html>
"}
@@ -12,18 +12,20 @@
throw_range = 7
w_class = 4.0
var/charges = 0 //how many restocking "charges" the refill has
var/charges = list(0, 0, 0) //how many restocking "charges" the refill has for standard/contraband/coin products
var/init_charges = list(0, 0, 0)
/obj/item/weapon/vending_refill/New(amt = -1)
..()
name = "\improper [machine_name] restocking unit"
if(isnum(amt) && amt > -1)
charges = amt
charges[1] = amt
/obj/item/weapon/vending_refill/examine(mob/user)
..()
if(charges)
user << "It can restock [charges] item(s)."
if(charges[1] > 0)
user << "It can restock [charges[1]] item(s)."
else
user << "It's empty!"
@@ -32,33 +34,40 @@
/obj/item/weapon/vending_refill/boozeomat
machine_name = "Booze-O-Mat"
icon_state = "refill_booze"
charges = 54//of 162
charges = list(52, 4, 0)//of 156 standard, 12 contraband
init_charges = list(52, 4, 0)
/obj/item/weapon/vending_refill/coffee
machine_name = "Solar's Best Hot Drinks"
icon_state = "refill_joe"
charges = 28//of 85
charges = list(25, 4, 0)//of 75 standard, 12 contraband
init_charges = list(25, 4, 0)
/obj/item/weapon/vending_refill/snack
machine_name = "Getmore Chocolate Corp"
charges = 14//of 42
charges = list(12, 2, 0)//of 36 standard, 6 contraband
init_charges = list(12, 2, 0)
/obj/item/weapon/vending_refill/cola
machine_name = "Robust Softdrinks"
icon_state = "refill_cola"
charges = 22//of 66
charges = list(20, 2, 0)//of 60 standard, 6 contraband
init_charges = list(20, 2, 0)
/obj/item/weapon/vending_refill/cigarette
machine_name = "ShadyCigs Deluxe"
icon_state = "refill_smoke"
charges = 14// of 42
charges = list(12, 1, 2)// of 36 standard, 3 contraband, 6 premium
init_charges = list(12, 1, 2)
/obj/item/weapon/vending_refill/autodrobe
machine_name = "AutoDrobe"
icon_state = "refill_costume"
charges = 29// of 87
charges = list(25, 2, 3)// of 75 standard, 6 contraband, 9 premium
init_charges = list(25, 2, 3)
/obj/item/weapon/vending_refill/clothing
machine_name = "ClothesMate"
icon_state = "refill_clothes"
charges = 30// of 90
charges = list(29, 2, 2)// of 85 standard, 6 contraband, 6 premium
init_charges = list(29, 2, 2)
@@ -14,7 +14,6 @@
var/broken = 0 // ={0,1,2} How broken is it???
var/max_n_of_items = 10 // whatever fat fuck made this a global var needs to look at themselves in the mirror sometime
var/efficiency = 0
var/microwavepower = 1
// see code/modules/food/recipes_microwave.dm for recipes
@@ -203,12 +202,6 @@
dat = "<h3>Ingredients:</h3>[dat]</div>"
dat += "<A href='?src=\ref[src];action=cook'>Turn on</A>"
dat += "<A href='?src=\ref[src];action=dispose'>Eject ingredients</A><BR>"
dat += "Microwave Power: [microwavepower*200]W<BR>"
dat += "<A href='?src=\ref[src];action=power;amount=1'>200W</A>"
dat += "<A href='?src=\ref[src];action=power;amount=2'>400W</A>"
dat += "<A href='?src=\ref[src];action=power;amount=3'>600W</A>"
dat += "<A href='?src=\ref[src];action=power;amount=4'>800W</A>"
dat += "<A href='?src=\ref[src];action=power;amount=5'>1000W</A><BR>"
var/datum/browser/popup = new(user, "microwave", name, 300, 300)
popup.set_content(dat)
@@ -224,7 +217,7 @@
return
start()
if (prob(max(microwavepower*5/efficiency-5,dirty*5))) //a clean unupgraded microwave on lowest power has no risk of failure
if (prob(max(5/efficiency-5,dirty*5))) //a clean unupgraded microwave has no risk of failure
muck_start()
if (!microwaving(4))
muck_finish()
@@ -265,7 +258,7 @@
if (stat & (NOPOWER|BROKEN))
return 0
use_power(500)
sleep(max(14-2*microwavepower-2*efficiency,2)) // standard power means sleep(10). The higher the power and the better the efficiency, the faster the cooking
sleep(max(12-2*efficiency,2)) // standard microwave means sleep(10). The better the efficiency, the faster the cooking
return 1
/obj/machinery/microwave/proc/has_extra_item()
@@ -340,10 +333,5 @@
if ("dispose")
dispose()
if ("power")
var/amount = text2num(href_list["amount"])
if(amount<1 || amount>5)
return
microwavepower = amount
updateUsrDialog()
return
@@ -468,26 +468,21 @@
user << "<span class='warning'>You can't improve [C] any further!</span>"
return
if(istype(target, /obj/mecha/working/ripley))
var/obj/mecha/D = target
var/obj/mecha/working/ripley/D = target
var/list/damage_absorption = D.damage_absorption
if(damage_absorption["brute"] > 0.3)
if(D.hides < 3)
D.hides++
damage_absorption["brute"] = max(damage_absorption["brute"] - 0.1, 0.3)
damage_absorption["bullet"] = damage_absorption["bullet"] - 0.05
damage_absorption["fire"] = damage_absorption["fire"] - 0.05
damage_absorption["laser"] = damage_absorption["laser"] - 0.025
user << "<span class='info'>You strengthen [target], improving its resistance against melee attacks.</span>"
qdel(src)
if(D.icon_state == "ripley-open")
D.overlays += image("icon"="mecha.dmi", "icon_state"="ripley-g-open")
D.desc = "Autonomous Power Loader Unit. Its armour is enhanced with some goliath hide plates."
D.update_icon()
if(D.hides == 3)
D.desc = "Autonomous Power Loader Unit. It's wearing a fearsome carapace entirely composed of goliath hide plates - its pilot must be an experienced monster hunter."
else
user << "<span class='info'>You can't add armour onto the mech while someone is inside!</span>"
if(damage_absorption.["brute"] == 0.3)
if(D.icon_state == "ripley-open")
D.overlays += image("icon"="mecha.dmi", "icon_state"="ripley-g-full-open")
D.desc = "Autonomous Power Loader Unit. It's wearing a fearsome carapace entirely composed of goliath hide plates - the pilot must be an experienced monster hunter."
else
user << "<span class='warning'>You can't add armour onto the mech while someone is inside!</span>"
D.desc = "Autonomous Power Loader Unit. Its armour is enhanced with some goliath hide plates."
qdel(src)
else
user << "<span class='warning'>You can't improve [D] any further!</span>"
return