mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2025-12-30 20:22:32 +00:00
Expanded productivity bit usage (#30476)
This commit is contained in:
@@ -348,6 +348,9 @@
|
||||
var/initial_volume = 0 // the total some of reagents this food had initially
|
||||
for(var/ingredient in list_reagents)
|
||||
initial_volume += list_reagents[ingredient]
|
||||
|
||||
// Total slices after factoring in productivity value of the knife
|
||||
slices_num = clamp(slices_num * used.bit_productivity_mod, 1, round(slices_num * 2.5))
|
||||
// we want to account for how much has been eaten already, reduce slices by how is left vs. how much food we started with
|
||||
slices_num = clamp(slices_num * (reagents.total_volume / initial_volume), 1, slices_num)
|
||||
var/slices_lost
|
||||
@@ -362,6 +365,9 @@
|
||||
"<span class='notice'>You crudely slice [src] with [used], destroying some in the process!</span>"
|
||||
)
|
||||
slices_lost = rand(1, min(1, round(slices_num / 2)))
|
||||
// Low efficiency means more loss.
|
||||
if(used.bit_efficiency_mod < 1)
|
||||
slices_lost = slices_num * (1 - used.bit_efficiency_mod)
|
||||
var/reagents_per_slice = reagents.total_volume/slices_num
|
||||
for(var/i in 1 to (slices_num - slices_lost))
|
||||
var/obj/slice = new slice_path (loc, TRUE)
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
/obj/item/smithed_item/tool_bit
|
||||
)
|
||||
/// Amount of extra items made in batches
|
||||
var/batch_extras = 2
|
||||
var/batch_extras = 1
|
||||
|
||||
/obj/machinery/smithing/kinetic_assembler/Initialize(mapload)
|
||||
. = ..()
|
||||
@@ -251,14 +251,18 @@
|
||||
playsound(src, 'sound/magic/fellowship_armory.ogg', 50, TRUE)
|
||||
finished_product.forceMove(src.loc)
|
||||
SSblackbox.record_feedback("tally", "smith_assembler_production", 1, "[finished_product.type]")
|
||||
// Modify based on productivity
|
||||
var/total_extras = clamp(round(1 * i.bit_productivity_mod / 2), 0, 2)
|
||||
if(is_type_in_typecache(finished_product, batched_item_types))
|
||||
for(var/iterator in 1 to batch_extras)
|
||||
var/obj/item/smithed_item/extra_product = new finished_product.type(src.loc)
|
||||
extra_product.quality = finished_product.quality
|
||||
extra_product.material = finished_product.material
|
||||
extra_product.set_stats()
|
||||
extra_product.update_appearance(UPDATE_NAME)
|
||||
extra_product.scatter_atom()
|
||||
total_extras += clamp(round(batch_extras * i.bit_productivity_mod / 2), 1, 4)
|
||||
for(var/iterator in 1 to total_extras)
|
||||
var/obj/item/smithed_item/extra_product = new finished_product.type(src.loc)
|
||||
extra_product.quality = finished_product.quality
|
||||
extra_product.material = finished_product.material
|
||||
extra_product.set_stats()
|
||||
extra_product.update_appearance(UPDATE_NAME)
|
||||
extra_product.scatter_atom()
|
||||
|
||||
finished_product = null
|
||||
|
||||
// MARK: Scientific Assembler
|
||||
|
||||
@@ -147,6 +147,7 @@
|
||||
speed_mod = -1
|
||||
failure_rate = -20
|
||||
durability = 300
|
||||
productivity_mod = 4
|
||||
quality = /datum/smith_quality/masterwork
|
||||
material = /datum/smith_material/platinum
|
||||
|
||||
|
||||
Reference in New Issue
Block a user