Fix ruin generation (4reals) (#16175)

* Fix ruin generation (4reals)

* least insane merge edit

* fix runtime (by ignoring it)

* oops
This commit is contained in:
Wildkins
2023-04-08 12:23:43 +00:00
committed by GitHub
parent a1e858c699
commit 01b97181ef
9 changed files with 39 additions and 28 deletions
+9 -9
View File
@@ -16,13 +16,13 @@
//planet flags
#define PLANET_BARREN "barren"
#define PLANET_ASTEROID "asteroid"
#define PLANET_DESERT "desert"
#define PLANET_GROVE "grove"
#define PLANET_GRASS "grass"
#define PLANET_LAVA "lava"
#define PLANET_SNOW "snow"
#define PLANET_BARREN BITFLAG(0)
#define PLANET_ASTEROID BITFLAG(1)
#define PLANET_DESERT BITFLAG(2)
#define PLANET_GROVE BITFLAG(3)
#define PLANET_GRASS BITFLAG(4)
#define PLANET_LAVA BITFLAG(5)
#define PLANET_SNOW BITFLAG(6)
#define ALL_PLANET_TYPES list(PLANET_BARREN, PLANET_ASTEROID, PLANET_DESERT, PLANET_GROVE, PLANET_GRASS, PLANET_LAVA, PLANET_SNOW)
#define PLANET_LORE "lore"
#define ALL_PLANET_TYPES PLANET_BARREN|PLANET_ASTEROID|PLANET_DESERT|PLANET_GROVE|PLANET_GRASS|PLANET_LAVA|PLANET_SNOW
#define PLANET_LORE BITFLAG(16)
+1 -1
View File
@@ -108,7 +108,7 @@
var/datum/map_template/ruin/exoplanet/ruin = T
if((initial(ruin.template_flags) & TEMPLATE_FLAG_RUIN_STARTS_DISALLOWED))
continue
if(!(ruin_planet_type in initial(ruin.planet_types)))
if(!(ruin_planet_type & initial(ruin.planet_types)))
continue
var/filtered_tags = initial(ruin.ruin_tags) & ruin_allowed_tags
if(filtered_tags != initial(ruin.ruin_tags))
+3
View File
@@ -155,6 +155,9 @@
// Requires something in icon update or runtimes
ignore += typesof(/obj/item/gun/energy/gun/nuclear)
// do_spread sleeps and tries to addtimer after the src is qdeleted
ignore += typesof(/obj/effect/plant)
/**
* END EXCLUSIONS OF THE TEST
*/
+6
View File
@@ -0,0 +1,6 @@
author: JohnWildkins
delete-after: True
changes:
- bugfix: "Fixed ruins not being generated due to planet_type lists not being initialized."
+6 -4
View File
@@ -40,16 +40,18 @@
var/sanity_count = 0
while(all_ruins.len)
sanity_count++
var/types_needed = list()
var/types_needed = 0
var/planets_to_spawn = list()
for(var/datum/map_template/ruin/exoplanet/R in all_ruins)
if(!R.planet_types)
continue
types_needed |= R.planet_types[1]
types_needed |= R.planet_types
for(var/EP in subtypesof(/obj/effect/overmap/visitable/sector/exoplanet))
var/obj/effect/overmap/visitable/sector/exoplanet/E = EP
if(initial(E.ruin_planet_type) in types_needed)
if(initial(E.ruin_planet_type) & types_needed)
planets_to_spawn += EP
var/PT = initial(E.ruin_planet_type)
types_needed &= ~PT
all_ruins = build_exoplanets_for_testing(all_ruins, planets_to_spawn)
if(!planets_to_spawn || (sanity_count > 3))
testing("[ascii_red]FAILED SPAWNING RUINS:[ascii_reset] [sanity_count > 3 ? "EXCEEDED SANITY COUNT" : "NO VALID PLANETS"] for ruins [english_list(all_ruins)]")
@@ -63,7 +65,7 @@
continue
new_planet = new new_planet(null, planet_size[1], planet_size[2])
for(var/datum/map_template/ruin/exoplanet/R in ruins_to_test)
if(new_planet.ruin_planet_type in R.planet_types)
if(new_planet.ruin_planet_type & R.planet_types)
ruins_to_spawn |= R
testing("[ascii_green]LOADING EXOPLANET:[ascii_reset] Spawning [new_planet.name] on Z [english_list(GetConnectedZlevels(world.maxz))]")
@@ -6,7 +6,7 @@
sectors = list(SECTOR_TAU_CETI, SECTOR_ROMANOVICH, SECTOR_CORP_ZONE, SECTOR_VALLEY_HALE, SECTOR_BADLANDS)
suffixes = list("asteroid/mining_base/mining_base.dmm")
planet_types = list(PLANET_ASTEROID,PLANET_BARREN)
planet_types = PLANET_ASTEROID|PLANET_BARREN
ruin_tags = RUIN_AIRLESS|RUIN_LOWPOP|RUIN_MINING
/datum/map_template/ruin/exoplanet/carp_nest
@@ -17,7 +17,7 @@
sectors = list(SECTOR_TAU_CETI, SECTOR_ROMANOVICH, SECTOR_CORP_ZONE, SECTOR_VALLEY_HALE, SECTOR_BADLANDS)
suffixes = list("asteroid/carp_nest/carp_nest.dmm")
planet_types = list(PLANET_ASTEROID,PLANET_BARREN)
planet_types = PLANET_ASTEROID|PLANET_BARREN
ruin_tags = RUIN_AIRLESS|RUIN_LOWPOP|RUIN_HOSTILE|RUIN_NATURAL
/datum/map_template/ruin/exoplanet/hideout
@@ -30,7 +30,7 @@
sectors = list(SECTOR_TAU_CETI, SECTOR_ROMANOVICH, SECTOR_CORP_ZONE, SECTOR_VALLEY_HALE, SECTOR_BADLANDS)
suffixes = list("asteroid/hideout/hideout.dmm")
planet_types = list(PLANET_ASTEROID,PLANET_BARREN)
planet_types = PLANET_ASTEROID|PLANET_BARREN
ruin_tags = RUIN_AIRLESS|RUIN_LOWPOP|RUIN_HOSTILE|RUIN_WRECK
/datum/map_template/ruin/exoplanet/crashed_shuttle_01
@@ -44,7 +44,7 @@
spawn_weight = 0.5
spawn_cost = 2
planet_types = list(PLANET_ASTEROID)
planet_types = PLANET_ASTEROID
ruin_tags = RUIN_AIRLESS|RUIN_LOWPOP|RUIN_HOSTILE|RUIN_WRECK
/datum/map_template/ruin/exoplanet/crashed_sol_shuttle_01
@@ -91,7 +91,7 @@
sectors = list(SECTOR_TAU_CETI, SECTOR_ROMANOVICH, SECTOR_CORP_ZONE, SECTOR_VALLEY_HALE, SECTOR_BADLANDS, SECTOR_NEW_ANKARA, SECTOR_AEMAQ, SECTOR_SRANDMARR, SECTOR_NRRAHRAHUL, SECTOR_GAKAL, SECTOR_UUEOAESA)
suffixes = list("asteroid/satelite_crash/satelite_crash_unique.dmm")
planet_types = list(PLANET_ASTEROID,PLANET_BARREN)
planet_types = PLANET_ASTEROID|PLANET_BARREN
ruin_tags = RUIN_LOWPOP|RUIN_WRECK|RUIN_HOSTILE
/datum/map_template/ruin/exoplanet/abandoned_listening_post
@@ -104,7 +104,7 @@
sectors = list(SECTOR_TAU_CETI, SECTOR_ROMANOVICH, SECTOR_CORP_ZONE, SECTOR_VALLEY_HALE, SECTOR_BADLANDS)
suffixes = list("asteroid/listening_post/listening_post_unique.dmm")
planet_types = list(PLANET_ASTEROID,PLANET_BARREN)
planet_types = PLANET_ASTEROID|PLANET_BARREN
ruin_tags = RUIN_LOWPOP|RUIN_HOSTILE
/datum/map_template/ruin/exoplanet/crashed_escape_pod_1
@@ -117,7 +117,7 @@
sectors = list(SECTOR_TAU_CETI, SECTOR_ROMANOVICH, SECTOR_CORP_ZONE, SECTOR_VALLEY_HALE, SECTOR_BADLANDS, SECTOR_NEW_ANKARA, SECTOR_AEMAQ)
suffixes = list("asteroid/escape_pod/escape_pod_unique.dmm")
planet_types = list(PLANET_ASTEROID,PLANET_BARREN)
planet_types = PLANET_ASTEROID|PLANET_BARREN
ruin_tags = RUIN_LOWPOP|RUIN_WRECK|RUIN_HOSTILE
/datum/map_template/ruin/exoplanet/digsite
@@ -130,7 +130,7 @@
sectors = list(SECTOR_TAU_CETI, SECTOR_ROMANOVICH, SECTOR_CORP_ZONE, SECTOR_VALLEY_HALE, SECTOR_BADLANDS, SECTOR_NEW_ANKARA, SECTOR_AEMAQ)
suffixes = list("asteroid/digsite/digsite_unique.dmm")
planet_types = list(PLANET_ASTEROID,PLANET_BARREN)
planet_types = PLANET_ASTEROID|PLANET_BARREN
ruin_tags = RUIN_LOWPOP|RUIN_SCIENCE
/datum/map_template/ruin/exoplanet/crashed_pod_1
@@ -143,7 +143,7 @@
sectors = list(SECTOR_TAU_CETI, SECTOR_ROMANOVICH, SECTOR_CORP_ZONE, SECTOR_VALLEY_HALE, SECTOR_BADLANDS, SECTOR_NEW_ANKARA, SECTOR_AEMAQ)
suffixes = list("asteroid/crashed_pod/crashed_pod_unique.dmm")
planet_types = list(PLANET_ASTEROID)
planet_types = PLANET_ASTEROID
ruin_tags = RUIN_LOWPOP|RUIN_WRECK|RUIN_HOSTILE
/datum/map_template/ruin/exoplanet/crashed_coc_skipjack
@@ -156,5 +156,5 @@
sectors = list(SECTOR_TAU_CETI, SECTOR_ROMANOVICH, SECTOR_CORP_ZONE, SECTOR_VALLEY_HALE, SECTOR_BADLANDS)
suffixes = list("asteroid/coc_ship/coc_ship_unique.dmm")
planet_types = list(PLANET_ASTEROID)
planet_types = PLANET_ASTEROID
ruin_tags = RUIN_LOWPOP|RUIN_WRECK|RUIN_HOSTILE
@@ -8,5 +8,5 @@
sectors = list(SECTOR_TAU_CETI, SECTOR_ROMANOVICH, SECTOR_CORP_ZONE, SECTOR_VALLEY_HALE, SECTOR_BADLANDS)
suffixes = list("desert/desert_oasis/desert_oasis.dmm")
planet_types = list(PLANET_DESERT)
planet_types = PLANET_DESERT
ruin_tags = RUIN_NATURAL
@@ -5,5 +5,5 @@
spawn_cost = 1
/// See __defines/ruin_tags.dm
var/list/planet_types = ALL_PLANET_TYPES
var/planet_types = ALL_PLANET_TYPES
var/ruin_tags = RUIN_ALL_TAGS
+2 -2
View File
@@ -6,7 +6,7 @@
spawn_weight = 1
spawn_cost = 0.5
planet_types = list(PLANET_DESERT, PLANET_GRASS, PLANET_GROVE, PLANET_SNOW)
planet_types = PLANET_DESERT|PLANET_GRASS|PLANET_GROVE|PLANET_SNOW
ruin_tags = RUIN_LOWPOP|RUIN_SCIENCE
/datum/map_template/ruin/exoplanet/crashsurvivors
@@ -19,5 +19,5 @@
sectors = list(SECTOR_TAU_CETI, SECTOR_ROMANOVICH, SECTOR_CORP_ZONE, SECTOR_VALLEY_HALE, SECTOR_BADLANDS)
suffixes = list("grove/crashsurvivors/crashsurvivors.dmm")
planet_types = list(PLANET_GROVE)
planet_types = PLANET_GROVE
ruin_tags = RUIN_LOWPOP|RUIN_WRECK|RUIN_HOSTILE