mirror of
https://github.com/PolarisSS13/Polaris.git
synced 2025-12-21 15:42:53 +00:00
@@ -839,4 +839,60 @@ var/list/random_useful_
|
||||
random_junk_ -= /obj/item/trash/tray
|
||||
return pick(random_junk_)
|
||||
// Misc. actually useful stuff
|
||||
return get_random_useful_type()
|
||||
return get_random_useful_type()
|
||||
|
||||
/*
|
||||
Selects one spawn point out of a group of points with the same ID and asks it to generate its items
|
||||
*/
|
||||
var/list/multi_point_spawns
|
||||
|
||||
/obj/random_multi
|
||||
name = "random object spawn point"
|
||||
desc = "This item type is used to spawn random objects at round-start. Only one spawn point for a given group id is selected."
|
||||
icon = 'icons/misc/mark.dmi'
|
||||
icon_state = "x3"
|
||||
invisibility = INVISIBILITY_MAXIMUM
|
||||
var/id // Group id
|
||||
var/weight // Probability weight for this spawn point
|
||||
|
||||
/obj/random_multi/initialize()
|
||||
..()
|
||||
weight = max(1, round(weight))
|
||||
|
||||
if(!multi_point_spawns)
|
||||
multi_point_spawns = list()
|
||||
var/list/spawnpoints = multi_point_spawns[id]
|
||||
if(!spawnpoints)
|
||||
spawnpoints = list()
|
||||
multi_point_spawns[id] = spawnpoints
|
||||
spawnpoints[src] = weight
|
||||
|
||||
/obj/random_multi/Destroy()
|
||||
var/list/spawnpoints = multi_point_spawns[id]
|
||||
spawnpoints -= src
|
||||
if(!spawnpoints.len)
|
||||
multi_point_spawns -= id
|
||||
. = ..()
|
||||
|
||||
/obj/random_multi/proc/generate_items()
|
||||
return
|
||||
|
||||
/obj/random_multi/single_item
|
||||
var/item_path // Item type to spawn
|
||||
|
||||
/obj/random_multi/single_item/generate_items()
|
||||
new item_path(loc)
|
||||
|
||||
/hook/roundstart/proc/generate_multi_spawn_items()
|
||||
for(var/id in multi_point_spawns)
|
||||
var/list/spawn_points = multi_point_spawns[id]
|
||||
var/obj/random_multi/rm = pickweight(spawn_points)
|
||||
rm.generate_items()
|
||||
for(var/entry in spawn_points)
|
||||
qdel(entry)
|
||||
return 1
|
||||
|
||||
/obj/random_multi/single_item/captains_spare_id
|
||||
name = "Multi Point - Captain's Spare"
|
||||
id = "Captain's spare id"
|
||||
item_path = /obj/item/weapon/card/id/captains_spare
|
||||
Reference in New Issue
Block a user