This repository has been archived on 2022-05-21. You can view files and clone it, but cannot push or open issues or pull requests.
LEFTONE/core/loworld/template.h

139 lines
2.6 KiB
C
Raw Permalink Normal View History

#pragma once
#include <stdbool.h>
#include <stddef.h>
#include <stdint.h>
#include "./chunk.h"
#include "./poolset.h"
#define LOWORLD_TEMPLATE_MAX_CHARACTERS_PER_CHUNK 5
#define LOWORLD_TEMPLATE_MAX_GROUNDS_PER_CHUNK 5
typedef struct {
loworld_chunk_t* target;
const loworld_poolset_t* pools;
uint64_t seed;
} loworld_template_building_param_t;
bool
loworld_template_building_param_valid(
const loworld_template_building_param_t* param
);
/* [metaphysical gate]
* 2 grounds (=) and the one encephalon statue (E)
*
* E
* ======
*
* ==================
*/
void
loworld_template_metaphysical_gate_build_chunk(
const loworld_template_building_param_t* param
);
/* [open space]
* 1 ground (=) and 0~3 enemies (E)
*
*
* E E E
* ==================
*/
void
loworld_template_open_space_build_chunk(
const loworld_template_building_param_t* param
);
/* [broken open space]
* 1 ground (=) and 0~2 enemies (E)
*
*
* E E
* ======== ========
*
* ======
*/
void
loworld_template_broken_open_space_build_chunk(
const loworld_template_building_param_t* param
);
/* [passage]
* 1 ground (=), ceiling (-), and 0~2 enemies (E)
*
* E
* ----------
* E
* =================
*/
void
loworld_template_passage_build_chunk(
const loworld_template_building_param_t* param
);
/* [broken passage]
* 3 grounds (=), 1 or 2 ceilings (-), and 0~5 enemies (E)
*
* E E
* ---- ----
* E E E
* ==== ==== =====
*/
void
loworld_template_broken_passage_build_chunk(
const loworld_template_building_param_t* param
);
/* [stairs]
* 4 grounds (=), and 0~4 enemies (E)
*
* E
* =========
* E
* ======
* E
* =========
* E
* ==================
*/
void
loworld_template_stairs_build_chunk(
const loworld_template_building_param_t* param
);
/* [BOSS: thiest's child]
* 1 ground (=), and The Theist's Child (E)
*
* E
* =================
*/
void
loworld_template_boss_theists_child_build_chunk(
const loworld_template_building_param_t* param
);
/* [BOSS: big warder]
* 1 ground (=), and The Big Warder (E)
*
* E
* =================
*/
void
loworld_template_boss_big_warder_build_chunk(
const loworld_template_building_param_t* param
);
/* [BOSS: greedy scientist]
* 1 ground (=), and The Greedy Scientist (E)
*
* E
* =================
*/
void
loworld_template_boss_greedy_scientist_build_chunk(
const loworld_template_building_param_t* param
);