From a51c0ad2261e64bb78c35f961b4ec0b0073d4de3 Mon Sep 17 00:00:00 2001 From: Gabriel Adamson Date: Tue, 19 Oct 2021 09:58:12 -0500 Subject: [PATCH 1/3] Prevent bloodstones from spawning on top of each other --- code/game/gamemodes/cult/cult.dm | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/code/game/gamemodes/cult/cult.dm b/code/game/gamemodes/cult/cult.dm index 37ed5f4c4dc7..7acb426c13cd 100644 --- a/code/game/gamemodes/cult/cult.dm +++ b/code/game/gamemodes/cult/cult.dm @@ -178,8 +178,13 @@ altogether." /datum/game_mode/proc/begin_bloodstone_phase() + var/list/stone_spawns = GLOB.generic_event_spawns.Copy() for(var/i = 0, i < 4, i++) //four bloodstones - var/spawnpoint = get_turf(pick(GLOB.generic_event_spawns)) + var/stone_spawn = pick(stone_spawns) + if(stone_spawn) stone_spawns -= stone_spawn + else stone_spawn = pick(GLOB.generic_event_spawns) // Fallback on all spawns + + var/spawnpoint = get_turf(stone_spawn) new /obj/structure/destructible/cult/bloodstone(spawnpoint) var/list/bloodstone_areas = list() for(var/obj/structure/destructible/cult/bloodstone/B in bloodstone_list) From ffec64c749bae99a361cbab6865127e171ca5918 Mon Sep 17 00:00:00 2001 From: Gabriel Adamson Date: Wed, 20 Oct 2021 21:15:40 -0500 Subject: [PATCH 2/3] Use pick_n_take --- code/game/gamemodes/cult/cult.dm | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/code/game/gamemodes/cult/cult.dm b/code/game/gamemodes/cult/cult.dm index 7acb426c13cd..a9985e425b29 100644 --- a/code/game/gamemodes/cult/cult.dm +++ b/code/game/gamemodes/cult/cult.dm @@ -180,9 +180,8 @@ /datum/game_mode/proc/begin_bloodstone_phase() var/list/stone_spawns = GLOB.generic_event_spawns.Copy() for(var/i = 0, i < 4, i++) //four bloodstones - var/stone_spawn = pick(stone_spawns) - if(stone_spawn) stone_spawns -= stone_spawn - else stone_spawn = pick(GLOB.generic_event_spawns) // Fallback on all spawns + var/stone_spawn = pick_n_take(stone_spawns) + if(!stone_spawn) stone_spawn = pick(GLOB.generic_event_spawns) // Fallback on all spawns var/spawnpoint = get_turf(stone_spawn) new /obj/structure/destructible/cult/bloodstone(spawnpoint) From 2d2d71c36053caab92b816368ffda1bcede372e1 Mon Sep 17 00:00:00 2001 From: Theos Date: Fri, 22 Oct 2021 17:05:01 -0400 Subject: [PATCH 3/3] normal if structure --- code/game/gamemodes/cult/cult.dm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/code/game/gamemodes/cult/cult.dm b/code/game/gamemodes/cult/cult.dm index 66ee4796bb45..e5ce5324e609 100644 --- a/code/game/gamemodes/cult/cult.dm +++ b/code/game/gamemodes/cult/cult.dm @@ -182,7 +182,8 @@ var/list/bloodstone_areas = list() for(var/i = 0, i < 4, i++) //four bloodstones var/stone_spawn = pick_n_take(stone_spawns) - if(!stone_spawn) stone_spawn = pick(GLOB.generic_event_spawns) // Fallback on all spawns + if(!stone_spawn) + stone_spawn = pick(GLOB.generic_event_spawns) // Fallback on all spawns var/spawnpoint = get_turf(stone_spawn) var/stone = new /obj/structure/destructible/cult/bloodstone(spawnpoint) notify_ghosts("Bloodcult has an object of interest: [stone]!", source=stone, action=NOTIFY_ORBIT, header="Praise the Geometer!")