Smith Addition: Productivity Bit (#28999)

* Adds productivity bit

* Digging sand

* Proper smithing costs
This commit is contained in:
PollardTheDragon
2025-04-26 14:15:34 +00:00
committed by GitHub
parent bdf4863757
commit 5a5e760f37
7 changed files with 51 additions and 10 deletions
@@ -28,6 +28,12 @@
materials = list(MAT_TITANIUM = 8000, MAT_PLASMA = 8000)
finished_product = /obj/item/smithed_item/tool_bit/heavy
/obj/item/smithed_item/component/bit_mount/productivity
name = "productivity bit mount"
desc = "This is the primary component of a productivity bit."
materials = list(MAT_METAL = 2000, MAT_PLASMA = 2000)
finished_product = /obj/item/smithed_item/tool_bit/productivity
/obj/item/smithed_item/component/bit_mount/economical
name = "economical bit mount"
desc = "This is the primary component of an economical bit."
@@ -70,6 +76,12 @@
materials = list(MAT_METAL = 8000, MAT_PLASMA = 8000)
finished_product = /obj/item/smithed_item/tool_bit/heavy
/obj/item/smithed_item/component/bit_head/productivity
name = "productivity bit mount"
desc = "This is the secondary component of a productivity bit."
materials = list(MAT_GOLD = 2000, MAT_SILVER = 2000)
finished_product = /obj/item/smithed_item/tool_bit/productivity
/obj/item/smithed_item/component/bit_head/economical
name = "economical bit head"
desc = "This is the secondary component of an economical bit."
+11
View File
@@ -70,6 +70,8 @@
var/tool_speed_mult = 1.0
/// Tool precision multiplier
var/tool_failure_mult = 1.0
/// Tool productivity mult
var/tool_productivity_mult = 1.0
/// How much larger does a bit with this material make it?
var/size_mod = 0
/// Projectile speed multiplier
@@ -106,6 +108,7 @@
heat_insulation_mult = MINOR_MATERIAL_BUFF
siemens_coeff_mult = MINOR_MATERIAL_DEBUFF
tool_failure_mult = MINOR_MATERIAL_DEBUFF
tool_productivity_mult = MINOR_MATERIAL_BUFF
power_draw_mult = MINOR_MATERIAL_DEBUFF
projectile_damage_multiplier = MINOR_MATERIAL_DEBUFF
secondary_goal_candidate = TRUE
@@ -120,6 +123,7 @@
radiation_armor_mult = MAJOR_MATERIAL_BUFF
tool_speed_mult = MINOR_MATERIAL_BUFF
tool_failure_mult = MINOR_MATERIAL_DEBUFF
tool_productivity_mult = MAJOR_MATERIAL_BUFF
size_mod = 1
fire_rate_multiplier = MINOR_MATERIAL_BUFF
durability_mult = MINOR_MATERIAL_DEBUFF
@@ -132,6 +136,7 @@
explosive_armor_mult = MINOR_MATERIAL_BUFF
siemens_coeff_mult = MINOR_MATERIAL_BUFF
tool_speed_mult = MINOR_MATERIAL_BUFF
tool_productivity_mult = MINOR_MATERIAL_DEBUFF
projectile_damage_multiplier = MINOR_MATERIAL_BUFF
durability_mult = MINOR_MATERIAL_DEBUFF
secondary_goal_candidate = TRUE
@@ -161,6 +166,7 @@
radiation_armor_mult = MAJOR_MATERIAL_DEBUFF
tool_speed_mult = MINOR_MATERIAL_BUFF
tool_failure_mult = MINOR_MATERIAL_DEBUFF
tool_productivity_mult = MINOR_MATERIAL_DEBUFF
size_mod = 1
projectile_speed_mult = MINOR_MATERIAL_BUFF
power_draw_mult = MINOR_MATERIAL_DEBUFF
@@ -178,6 +184,7 @@
explosive_armor_mult = MINOR_MATERIAL_BUFF
siemens_coeff_mult = MAJOR_MATERIAL_BUFF
tool_failure_mult = MINOR_MATERIAL_DEBUFF
tool_productivity_mult = MAJOR_MATERIAL_BUFF
durability_mult = MAJOR_MATERIAL_BUFF
/datum/smith_material/bluespace
@@ -189,6 +196,7 @@
siemens_coeff_mult = MINOR_MATERIAL_BUFF
radiation_armor_mult = MINOR_MATERIAL_DEBUFF
tool_speed_mult = MAJOR_MATERIAL_BUFF
tool_productivity_mult = MAJOR_MATERIAL_BUFF
power_draw_mult = MAJOR_MATERIAL_BUFF
projectile_damage_multiplier = MAJOR_MATERIAL_BUFF
@@ -236,6 +244,7 @@
heat_insulation_mult = MINOR_MATERIAL_DEBUFF
radiation_armor_mult = MINOR_MATERIAL_BUFF
tool_speed_mult = MINOR_MATERIAL_BUFF
tool_productivity_mult = MINOR_MATERIAL_BUFF
size_mod = -1
projectile_speed_mult = MINOR_MATERIAL_BUFF
power_draw_mult = MINOR_MATERIAL_BUFF
@@ -252,6 +261,7 @@
siemens_coeff_mult = MINOR_MATERIAL_BUFF
radiation_armor_mult = MINOR_MATERIAL_BUFF
tool_speed_mult = MINOR_MATERIAL_BUFF
tool_productivity_mult = MINOR_MATERIAL_BUFF
size_mod = -1
power_draw_mult = MINOR_MATERIAL_DEBUFF
projectile_damage_multiplier = MINOR_MATERIAL_DEBUFF
@@ -267,6 +277,7 @@
heat_insulation_mult = MINOR_MATERIAL_DEBUFF
siemens_coeff_mult = MINOR_MATERIAL_DEBUFF
tool_failure_mult = MINOR_MATERIAL_DEBUFF
tool_productivity_mult = MAJOR_MATERIAL_BUFF
size_mod = -1
projectile_damage_multiplier = MINOR_MATERIAL_BUFF
power_draw_mult = MINOR_MATERIAL_BUFF
@@ -6,6 +6,10 @@
var/base_speed_mod = 0
/// Base Efficiency modifier
var/base_efficiency_mod = 0
/// Base productivity modifier
var/base_productivity_mod = 0
/// Productivity mod
var/productivity_mod = 1.0
/// Speed modifier
var/speed_mod = 1.0
/// Efficiency modifier
@@ -34,6 +38,7 @@
speed_mod = 1 + (base_speed_mod * quality.stat_mult * material.tool_speed_mult)
failure_rate = initial(failure_rate) * quality.stat_mult * material.tool_failure_mult
efficiency_mod = 1 + (base_efficiency_mod * quality.stat_mult * material.power_draw_mult)
productivity_mod = 1 + (base_productivity_mod * quality.stat_mult * material.tool_productivity_mult)
/obj/item/smithed_item/tool_bit/on_attached(obj/item/target)
if(!istype(target))
@@ -43,12 +48,14 @@
attached_tool.toolspeed = attached_tool.toolspeed * speed_mod
attached_tool.bit_failure_rate += failure_rate
attached_tool.bit_efficiency_mod = attached_tool.bit_efficiency_mod * efficiency_mod
attached_tool.bit_productivity_mod = attached_tool.bit_productivity_mod * productivity_mod
/obj/item/smithed_item/tool_bit/on_detached()
attached_tool.toolspeed = attached_tool.toolspeed / speed_mod
attached_tool.w_class -= size_mod
attached_tool.bit_failure_rate -= failure_rate
attached_tool.bit_efficiency_mod = attached_tool.bit_efficiency_mod / efficiency_mod
attached_tool.bit_productivity_mod = attached_tool.bit_productivity_mod / productivity_mod
attached_tool.attached_bits -= src
attached_tool = null
@@ -98,6 +105,7 @@
desc = "A tool bit that's fairly balanced in all aspects."
base_speed_mod = -0.1
failure_rate = 2
base_productivity_mod = 0.5
base_efficiency_mod = -0.1
secondary_goal_candidate = TRUE
@@ -110,6 +118,13 @@
size_mod = 1
durability = 120
/obj/item/smithed_item/tool_bit/productivity
name = "productivity bit"
desc = "A tool bit that minimizes waste."
base_speed_mod = -0.1
base_productivity_mod = 2
durability = 50
/obj/item/smithed_item/tool_bit/economical
name = "economical bit"
desc = "An advanced tool bit that maximises efficiency."
@@ -121,6 +136,7 @@
name = "advanced bit"
desc = "An advanced tool bit that's fairly balanced in all aspects."
base_speed_mod = -0.25
base_productivity_mod = 1
failure_rate = 2
base_efficiency_mod = -0.3