diff --git a/src/samples/slay-the-spire-like/index.ts b/src/samples/slay-the-spire-like/index.ts new file mode 100644 index 0000000..8d5e964 --- /dev/null +++ b/src/samples/slay-the-spire-like/index.ts @@ -0,0 +1,135 @@ +// 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 } from './system/grid-inventory'; +export { + createGridInventory, + flipItem, + getAdjacentItems, + getItemAtCell, + getOccupiedCellSet, + moveItem, + placeItem, + removeItem as removeItemFromGrid, + rotateItem, + validatePlacement, +} 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 { + EncounterResult, + EncounterState, + GameItem, + GameItemMeta, + PlayerState, + RunMutationResult, + RunState, +} from './system/progress'; +export { + assignEncounterToNode, + assignEncountersFromPool, + assignAllEncounters, + buildCombatState, + createEnemyEntities, + getCurrentEncounterData, + isCombatEncounter, + startEncounter, + resolveCombatEncounter, + createRunState, + canMoveTo, + moveToNode, + resolveEncounter, + isEncounterResolved, + damagePlayer, + healPlayer, + setMaxHp, + addGold, + spendGold, + addItem, + removeItem, + getCurrentNode, + getReachableChildren, + getUnresolvedChildren, + isAtStartNode, + isAtEndNode, +} from './system/progress'; + +// 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 { default as data } from './data'; \ No newline at end of file