import {GameState} from "./GameState"; export enum ElementalType { Fire = "fire", Water = "water", Lightning = "lightning", Ice = "ice", Earth = "earth", Wind = "wind", Light = "light", Dark = "dark", Physical = "physical", Nonelemental = "non-elemental", Healing = "healing", } export enum Affinity { Absorbs = "absorbs", Immune = "immune", Resistant = "resistant", Normal = "normal", Vulnerable = "vulnerable", } export enum NumberSign { Positive = "+", Negative = "-", } export enum MeteredResource { Experience = "EXP", Health = "HP", Magic = "MP", Items = "IP", Zero = "ZP", Blood = "BP", Turns = "TP", Segments = "Segments", } export enum UnmeteredResource { Fabula = "FP", Ultima = "UP", Special = "SP", Level = "Level", Materials = "Materials", Zenit = "Zenit", } export type Resource = MeteredResource|UnmeteredResource export const Target = Symbol("target"); export const Source = Symbol("source"); export type Operands = Set export interface ParseContext { readonly source: readonly string[] readonly target: readonly string[] readonly game: GameState } export interface MarkdownContext extends ParseContext {} export interface MarkdownOutput extends MarkdownContext { readonly output: string }