convert random smith item to spawner (#28931)

This commit is contained in:
warriorstar-orion
2025-04-08 13:49:39 +00:00
committed by GitHub
parent a5dc38876d
commit eaf3f014c4
3 changed files with 77 additions and 75 deletions
+1 -1
View File
@@ -130,7 +130,7 @@ GLOBAL_LIST_INIT(maintenance_loot_tier_2, list(
/obj/item/clothing/head/welding,
/obj/item/crowbar/red,
/obj/item/storage/belt/utility,
/obj/item/smithed_item/random,
/obj/effect/spawner/random/smithed_item/any,
) = 45,
list(
@@ -116,6 +116,82 @@
/obj/item/flashlight/flare/glowstick/pink,
)
/obj/effect/spawner/random/smithed_item
name = "random smithed item"
icon = 'icons/effects/random_spawners.dmi'
icon_state = "metal"
record_spawn = TRUE
/// Weighted list of possible item qualities
var/static/list/smithed_item_qualities = list(
/datum/smith_quality = 9,
/datum/smith_quality/improved = 1
)
/// Weighted list of possible item materials
var/static/list/smithed_item_materials = list(
/datum/smith_material/metal = 40,
/datum/smith_material/silver = 10,
/datum/smith_material/gold = 5,
/datum/smith_material/plasma = 10,
/datum/smith_material/titanium = 5,
/datum/smith_material/uranium = 3,
/datum/smith_material/brass = 15
)
/obj/effect/spawner/random/smithed_item/make_item(spawn_loc, type_path_to_make)
var/obj/item/smithed_item/new_item = ..()
new_item.quality = pickweight(smithed_item_qualities)
new_item.material = pickweight(smithed_item_materials)
new_item.set_stats()
new_item.update_appearance(UPDATE_NAME)
return new_item
/obj/effect/spawner/random/smithed_item/any
loot = list(
/obj/item/smithed_item/insert/ballistic,
/obj/item/smithed_item/insert/thermal,
/obj/item/smithed_item/insert/fireproofing,
/obj/item/smithed_item/insert/reflective,
/obj/item/smithed_item/insert/rad_hazard,
/obj/item/smithed_item/insert/rubberized,
/obj/item/smithed_item/tool_bit/speed,
/obj/item/smithed_item/tool_bit/balanced,
/obj/item/smithed_item/tool_bit/efficiency,
/obj/item/smithed_item/lens/accelerator,
/obj/item/smithed_item/lens/speed,
/obj/item/smithed_item/lens/amplifier,
/obj/item/smithed_item/lens/efficiency
)
/obj/effect/spawner/random/smithed_item/insert
name = "random smithed insert"
loot = list(
/obj/item/smithed_item/insert/ballistic,
/obj/item/smithed_item/insert/thermal,
/obj/item/smithed_item/insert/fireproofing,
/obj/item/smithed_item/insert/reflective,
/obj/item/smithed_item/insert/rad_hazard,
/obj/item/smithed_item/insert/rubberized
)
/obj/effect/spawner/random/smithed_item/bit
name = "random smithed tool bit"
loot = list(
/obj/item/smithed_item/tool_bit/speed,
/obj/item/smithed_item/tool_bit/balanced,
/obj/item/smithed_item/tool_bit/efficiency
)
/obj/effect/spawner/random/smithed_item/lens
name = "random smithed lens"
loot = list(
/obj/item/smithed_item/lens/accelerator,
/obj/item/smithed_item/lens/speed,
/obj/item/smithed_item/lens/amplifier,
/obj/item/smithed_item/lens/efficiency
)
/obj/effect/spawner/random/space_pirate
name = "random space pirate spawner"
loot = list(
-74
View File
@@ -37,77 +37,3 @@
name = "[quality.name] " + name
return
name = "[quality.name] [material.name] [initial(name)]"
// Random Spawners
/obj/item/smithed_item/random
name = "random smithed item"
desc = "If you see me please contact development because I should not exist."
/// Weighted list of possible item qualities
var/list/smithed_item_qualities = list(
/datum/smith_quality = 9,
/datum/smith_quality/improved = 1
)
/// Weighted list of possible item materials
var/list/smithed_item_materials = list(
/datum/smith_material/metal = 40,
/datum/smith_material/silver = 10,
/datum/smith_material/gold = 5,
/datum/smith_material/plasma = 10,
/datum/smith_material/titanium = 5,
/datum/smith_material/uranium = 3,
/datum/smith_material/brass = 15
)
/// List of possible item types
var/list/smithed_type_list = list(
/obj/item/smithed_item/insert/ballistic,
/obj/item/smithed_item/insert/thermal,
/obj/item/smithed_item/insert/fireproofing,
/obj/item/smithed_item/insert/reflective,
/obj/item/smithed_item/insert/rad_hazard,
/obj/item/smithed_item/insert/rubberized,
/obj/item/smithed_item/tool_bit/speed,
/obj/item/smithed_item/tool_bit/balanced,
/obj/item/smithed_item/tool_bit/efficiency,
/obj/item/smithed_item/lens/accelerator,
/obj/item/smithed_item/lens/speed,
/obj/item/smithed_item/lens/amplifier,
/obj/item/smithed_item/lens/efficiency
)
/obj/item/smithed_item/random/Initialize(mapload)
. = ..()
var/picked_type = pick(smithed_type_list)
var/obj/item/smithed_item/new_item = new picked_type(src.loc)
new_item.quality = pickweight(smithed_item_qualities)
new_item.material = pickweight(smithed_item_materials)
new_item.set_stats()
new_item.update_appearance(UPDATE_NAME)
qdel(src)
/obj/item/smithed_item/random/insert
name = "random smithed insert"
smithed_type_list = list(
/obj/item/smithed_item/insert/ballistic,
/obj/item/smithed_item/insert/thermal,
/obj/item/smithed_item/insert/fireproofing,
/obj/item/smithed_item/insert/reflective,
/obj/item/smithed_item/insert/rad_hazard,
/obj/item/smithed_item/insert/rubberized
)
/obj/item/smithed_item/random/bit
name = "random smithed tool bit"
smithed_type_list = list(
/obj/item/smithed_item/tool_bit/speed,
/obj/item/smithed_item/tool_bit/balanced,
/obj/item/smithed_item/tool_bit/efficiency
)
/obj/item/smithed_item/random/lens
name = "random smithed lens"
smithed_type_list = list(
/obj/item/smithed_item/lens/accelerator,
/obj/item/smithed_item/lens/speed,
/obj/item/smithed_item/lens/amplifier,
/obj/item/smithed_item/lens/efficiency
)