refactor: Migrate more random_spawners to random/spawners and mapping helpers. (#27017)

* refactor: Migrate more random_spawners to random/spawners and mapping helpers.

* set script PR number

* maybe using a reserved keyword isn't a great idea

* oh i guess we're done

* whoops

* make code actually work

* gnarg

* rerun updatepaths for recent changes

* rerun updatepaths for recent changes

* fix build
This commit is contained in:
warriorstar-orion
2024-11-23 14:23:24 +00:00
committed by GitHub
parent c044ff1216
commit 586805a318
52 changed files with 3074 additions and 3103 deletions
+1 -22
View File
@@ -242,7 +242,7 @@ INITIALIZE_IMMEDIATE(/obj/effect/landmark/newplayer_start) //Without this you sp
/obj/effect/landmark/spawner/roundstart_observer/Initialize(mapload)
spawner_list = GLOB.roundstart_observer_start
return ..()
/obj/effect/landmark/Destroy()
GLOB.landmarks_list -= src
..()
@@ -659,24 +659,3 @@ INITIALIZE_IMMEDIATE(/obj/effect/landmark/newplayer_start) //Without this you sp
/obj/effect/landmark/mob_spawner/abandoned_minebot
mobtype = /mob/living/simple_animal/hostile/asteroid/abandoned_minebot
// Damage tiles
/obj/effect/landmark/damageturf
icon_state = "damaged"
/obj/effect/landmark/damageturf/Initialize(mapload)
. = ..()
var/turf/simulated/T = get_turf(src)
if(istype(T))
T.break_tile()
/obj/effect/landmark/burnturf
icon_state = "burned"
/obj/effect/landmark/burnturf/Initialize(mapload)
. = ..()
var/turf/simulated/T = get_turf(src)
T.burn_tile()
/obj/effect/landmark/free_golem_spawn
name = "Free Golem Spawn Point"
@@ -1,114 +0,0 @@
/obj/effect/spawner/random_spawners
name = "random spawners"
icon = 'icons/effects/spawner_icons.dmi'
icon_state = "questionmark"
var/list/result = list(
/datum/nothing = 1,
/obj/effect/decal/cleanable/blood/splatter = 1,
/obj/effect/decal/cleanable/blood/oil = 1,
/obj/effect/decal/cleanable/fungus = 1)
var/spawn_inside = null
// This needs to use New() instead of Initialize() because the thing it creates might need to be initialized too
// AA 2022-08-11: The above comment doesnt even make sense. If extra atoms are loaded during SSatoms.Initialize(), they still get initialised!
/obj/effect/spawner/random_spawners/New()
. = ..()
var/turf/T = get_turf(src)
if(!T)
stack_trace("Spawner placed in nullspace!")
return
randspawn(T)
/obj/effect/spawner/random_spawners/proc/randspawn(turf/T)
var/thing_to_place = pickweight(result)
if(ispath(thing_to_place, /datum/nothing))
// Nothing.
qdel(src) // See line 13, this needs moving to /Initialize() so we can use the qdel hint already
return
else if(ispath(thing_to_place, /turf))
T.ChangeTurf(thing_to_place)
else
if(ispath(spawn_inside, /obj))
var/obj/O = new thing_to_place(T)
var/obj/E = new spawn_inside(T)
O.forceMove(E)
else
new thing_to_place(T)
qdel(src)
/obj/effect/spawner/random_spawners/blood_maybe
name = "blood maybe"
icon_state = "blood"
result = list(
/datum/nothing = 20,
/obj/effect/decal/cleanable/blood/splatter = 1)
/obj/effect/spawner/random_spawners/blood_often
name = "blood often"
icon_state = "blood"
result = list(
/datum/nothing = 5,
/obj/effect/decal/cleanable/blood/splatter = 1)
/obj/effect/spawner/random_spawners/oil_maybe
name = "oil maybe"
icon_state = "oil"
result = list(
/datum/nothing = 20,
/obj/effect/decal/cleanable/blood/oil = 1)
/obj/effect/spawner/random_spawners/oil_often
name = "oil often"
icon_state = "oil"
result = list(
/datum/nothing = 5,
/obj/effect/decal/cleanable/blood/oil = 1)
/obj/effect/spawner/random_spawners/cobweb_left_frequent
name = "cobweb left frequent"
icon_state = "cobwebl"
result = list(
/datum/nothing = 1,
/obj/effect/decal/cleanable/cobweb = 1)
/obj/effect/spawner/random_spawners/cobweb_right_frequent
name = "cobweb right frequent"
icon_state = "cobwebr"
result = list(
/datum/nothing = 1,
/obj/effect/decal/cleanable/cobweb2 = 1)
/obj/effect/spawner/random_spawners/cobweb_left_rare
name = "cobweb left rare"
icon_state = "cobwebl"
result = list(
/datum/nothing = 10,
/obj/effect/decal/cleanable/cobweb = 1)
/obj/effect/spawner/random_spawners/cobweb_right_rare
name = "cobweb right rare"
icon_state = "cobwebr"
result = list(
/datum/nothing = 10,
/obj/effect/decal/cleanable/cobweb2 = 1)
/obj/effect/spawner/random_spawners/dirt_frequent
name = "dirt frequent"
icon_state = "dirt"
result = list(
/datum/nothing = 1,
/obj/effect/decal/cleanable/dirt = 1)
/obj/effect/spawner/random_spawners/dirt_often
name = "dirt often"
icon_state = "dirt"
result = list(
/datum/nothing = 5,
/obj/effect/decal/cleanable/dirt = 1)
/obj/effect/spawner/random_spawners/dirt_maybe
name = "dirt maybe"
icon_state = "dirt"
result = list(
/datum/nothing = 7,
/obj/effect/decal/cleanable/dirt = 1)
@@ -0,0 +1,93 @@
/obj/effect/spawner/random/fungus
name = "fungus 100% chance"
icon = 'icons/effects/random_spawners.dmi'
icon_state = "fungus"
color = "#D5820B"
loot = list(/obj/effect/decal/cleanable/fungus)
/obj/effect/spawner/random/fungus/maybe
name = "fungus 15% chance"
spawn_loot_chance = 15
/obj/effect/spawner/random/fungus/frequent
name = "fungus 50% chance"
spawn_loot_chance = 50
/obj/effect/spawner/random/fungus/probably
name = "fungus 85% chance"
spawn_loot_chance = 85
/obj/effect/spawner/random/blood
name = "blood 100% chance"
icon = 'icons/effects/random_spawners.dmi'
icon_state = "blood"
loot = list(/obj/effect/decal/cleanable/blood/splatter)
/obj/effect/spawner/random/blood/maybe
name = "blood 4% chance"
spawn_loot_chance = 4
/obj/effect/spawner/random/blood/often
name = "blood 16% chance"
spawn_loot_chance = 16
/obj/effect/spawner/random/oil
name = "oil 100% chance"
icon = 'icons/effects/random_spawners.dmi'
icon_state = "oil"
loot = list(/obj/effect/decal/cleanable/blood/oil)
/obj/effect/spawner/random/oil/maybe
name = "oil 4% chance"
spawn_loot_chance = 4
/obj/effect/spawner/random/oil/often
name = "oil 16% chance"
spawn_loot_chance = 16
/obj/effect/spawner/random/cobweb
icon = 'icons/effects/random_spawners.dmi'
/obj/effect/spawner/random/cobweb/left
name = "cobweb left 100% chance"
icon_state = "cobwebl"
loot = list(/obj/effect/decal/cleanable/cobweb)
/obj/effect/spawner/random/cobweb/left/frequent
name = "cobweb left 50% chance"
spawn_loot_chance = 50
/obj/effect/spawner/random/cobweb/left/rare
name = "cobweb left 9% chance"
spawn_loot_chance = 9
/obj/effect/spawner/random/cobweb/right
name = "cobweb right 100% chance"
icon_state = "cobwebr"
loot = list(/obj/effect/decal/cleanable/cobweb2)
/obj/effect/spawner/random/cobweb/right/frequent
name = "cobweb right 50% chance"
spawn_loot_chance = 50
/obj/effect/spawner/random/cobweb/right/rare
name = "cobweb right 9% chance"
spawn_loot_chance = 9
/obj/effect/spawner/random/dirt
name = "dirt 100% chance"
icon = 'icons/effects/random_spawners.dmi'
icon_state = "dirt"
loot = list(/obj/effect/decal/cleanable/dirt)
/obj/effect/spawner/random/dirt/frequent
name = "dirt 50% chance"
spawn_loot_chance = 50
/obj/effect/spawner/random/dirt/often
name = "dirt 16% chance"
spawn_loot_chance = 16
/obj/effect/spawner/random/dirt/maybe
name = "dirt 12% chance"
spawn_loot_chance = 12
@@ -1,13 +0,0 @@
/obj/effect/spawner/random/fungus
icon_state = "fungus"
color = "#D5820B"
loot = list(/obj/effect/decal/cleanable/fungus)
/obj/effect/spawner/random/fungus/maybe
spawn_loot_chance = 15
/obj/effect/spawner/random/fungus/frequent
spawn_loot_chance = 50
/obj/effect/spawner/random/fungus/probably
spawn_loot_chance = 85
@@ -1,30 +0,0 @@
/obj/effect/spawner/random_spawners/proc/rustify(turf/T)
var/turf/simulated/wall/W = T
if(istype(W) && !W.rusted)
W.rust()
/obj/effect/spawner/random_spawners/wall_rusted_probably
name = "rusted wall probably"
icon_state = "rust"
/obj/effect/spawner/random_spawners/wall_rusted_probably/randspawn(turf/T)
if(prob(75))
rustify(T)
qdel(src)
/obj/effect/spawner/random_spawners/wall_rusted_maybe
name = "rusted wall maybe"
icon_state = "rust"
/obj/effect/spawner/random_spawners/wall_rusted_maybe/randspawn(turf/T)
if(prob(25))
rustify(T)
qdel(src)
/obj/effect/spawner/random_spawners/wall_rusted_always
name = "rusted wall always"
icon_state = "rust"
/obj/effect/spawner/random_spawners/wall_rusted_always/randspawn(turf/T)
rustify(T)
qdel(src)