deadhead-space-freight-tycoon/packages/sim/src/index.ts

111 lines
2.8 KiB
TypeScript

// Public API of the deterministic simulation. Internal helpers (content
// lookups, contract building) stay unexported.
export { MS_PER_HOUR, MS_PER_MINUTE, gameToReal, realToGame } from "./clock";
export type { GameTime, RealTime } from "./clock";
export { createRng, deriveSeed } from "./rng";
export type { Rng, Seed } from "./rng";
export { fixedPoint, locationPosition } from "./positions";
export type { Position } from "./positions";
export { routeDistance } from "./distance";
export { travelTimeGameHours } from "./travel";
export {
affordableRefuel,
economicDistance,
fuelPriceAt,
fullTankReach,
legFuel,
legFuelCost,
plainDistance,
refuel,
type Refuel,
type Tank,
} from "./fuel";
export { canLandAt, checkRoute, rangeFrom } from "./eligibility";
export type { RouteCheck } from "./eligibility";
export { contractPayout } from "./contract";
export type { Contract, PayoutInput } from "./contract";
export {
boardPeriodIndex,
boardPeriodMs,
generateContractBoard,
requiredLongHaulLevel,
} from "./board";
export type { BoardInput, FleetMember, SimContent } from "./board";
export { priorityWindow } from "./board";
export { generateTutorialBoard, loanerModel } from "./tutorial";
export type { TutorialBoardInput, TutorialLocationId } from "./tutorial";
export { LONG_HAUL_SKILL_ID, checkPilotEligibility } from "./pilot";
export type { PilotCheck, SkillLevels } from "./pilot";
export {
DISPATCH_FAILURES,
REPOSITION_FAILURES,
contractTripGameHours,
createDispatchRecord,
createRepositionRecord,
shipStats,
tripFuel,
validateDispatch,
wouldStrand,
emergencyFuel,
fuelAfterLeg,
type EmergencyFuel,
validateReposition,
} from "./dispatch";
export type {
DispatchCheck,
DispatchFailure,
DispatchProposal,
DispatchRecord,
PilotState,
RecordInput,
RepositionCheck,
RepositionFailure,
RepositionProposal,
RepositionRecordInput,
ShipState,
} from "./dispatch";
export { dispatchPosition, dispatchProgress } from "./flight";
export { deliveryXp, pilotLevel, skillPointsAvailable } from "./xp";
export { completedGoals, isGoalConditionMet } from "./goals";
export type { GoalProgress } from "./goals";
export { splitLoanRepayment } from "./loan";
export type { LoanSplit } from "./loan";
export { deliveryXpFor, resolveDispatch } from "./resolution";
export type { RefuelPolicy, Resolution, ResolveInput, ResolveResult, TopUp } from "./resolution";
export { dutyAfterTrip, dutyLimit, isResting, needsRest, restEndsAt, tripGameHours } from "./duty";
export {
UPGRADE_FAILURES,
effectiveStats,
isInShop,
nextUpgradeLevel,
upgradeCost,
upgradeShopMs,
validateUpgrade,
} from "./upgrades";
export type {
EffectiveStats,
UpgradeCheck,
UpgradeFailure,
UpgradeLevels,
UpgradeProposal,
} from "./upgrades";
export { pilotShare } from "./pay";