boardgame-core/src/samples/slay-the-spire-like/index.ts

131 lines
2.4 KiB
TypeScript

// Types
export type {
EffectData,
EffectLifecycle,
EnemyData,
CardType,
CardCostType,
CardTargetType,
EffectTarget,
CardData,
CardEffectTrigger,
CardEffectTarget,
EncounterType,
EncounterData,
IntentData,
ItemData,
} from "./system/types";
// Deck
export type {
GameCard,
GameCardMeta,
PlayerDeck,
DeckRegions,
} from "./system/deck";
export {
generateDeckFromInventory,
createCard,
createPlayerDeck,
generateCardId,
} from "./system/deck";
// Grid Inventory
export type {
CellCoordinate,
CellKey,
GridInventory,
InventoryItem,
MutationResult,
PlacementResult,
GameItem,
GameItemMeta,
} from "./system/grid-inventory";
export {
createGridInventory,
flipItem,
getAdjacentItems,
getItemAtCell,
getOccupiedCellSet,
moveItem,
placeItem,
removeItem as removeItemFromGrid,
rotateItem,
validatePlacement,
createItemIn,
} from "./system/grid-inventory";
// Map
export { MapNodeType, MapLayerType } from "./system/map";
export type {
MapNode,
MapLayer,
PointCrawlMap,
MapGenerationConfig,
} from "./system/map";
export {
generatePointCrawlMap,
getNode,
getChildren,
getParents,
findAllPaths,
} from "./system/map";
// Progress / Run
export type { EncounterState, RunState } from "./system/encounter";
export { buildCombatState } from "./system/encounter";
// Combat
export type {
EffectTable,
CombatEntity,
PlayerEntity,
EnemyEntity,
CombatPhase,
CombatResult,
LootEntry,
CombatState,
CombatGameContext,
} from "./system/combat/types";
export {
addEffect,
addEntityEffect,
addItemEffect,
onEntityEffectUpkeep,
onEntityPostureDamage,
onPlayerItemEffectUpkeep,
onItemPlay,
onItemDiscard,
getAliveEnemies,
getEffectTargets,
getCombatEntity,
canPlayCard,
payCardCost,
} from "./system/combat/effects";
export {
prompts as combatPrompts,
promptMainAction,
} from "./system/combat/prompts";
export { createStartWith, type Triggers } from "./system/combat/triggers";
// Utils
export { parseShapeString, type ParsedShape } from "./system/utils/parse-shape";
export {
IDENTITY_TRANSFORM,
type Transform2D,
type Point2D,
getOccupiedCells,
transformPoint,
transformShape,
checkCollision,
checkBoardCollision,
checkBounds,
rotateTransform,
flipXTransform,
flipYTransform,
} from "./system/utils/shape-collision";
// Data
export type { ContentModule } from "./data";
export { default as data } from "./data";