@its-not-rocket-science/ananke 0.1.11 → 0.1.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +18 -0
- package/STABLE_API.md +168 -9
- package/dist/src/campaign-layer.d.ts +22 -0
- package/dist/src/campaign-layer.js +22 -0
- package/dist/src/character.d.ts +19 -0
- package/dist/src/character.js +19 -0
- package/dist/src/combat.d.ts +23 -0
- package/dist/src/combat.js +23 -0
- package/dist/src/narrative-layer.d.ts +20 -0
- package/dist/src/narrative-layer.js +20 -0
- package/dist/src/social.d.ts +17 -0
- package/dist/src/social.js +17 -0
- package/package.json +33 -1
package/CHANGELOG.md
CHANGED
|
@@ -10,6 +10,24 @@ Versioning follows [Semantic Versioning](https://semver.org/).
|
|
|
10
10
|
|
|
11
11
|
### Added
|
|
12
12
|
|
|
13
|
+
- **Option B · Tier 2 subpath exports** — eight new named import subpaths for all
|
|
14
|
+
Tier 2 module groupings; deep imports remain supported as a fallback:
|
|
15
|
+
- `ananke/character` → aging, sleep, disease, wound-aging, thermoregulation, nutrition,
|
|
16
|
+
medical, toxicology, progression
|
|
17
|
+
- `ananke/combat` → ranged, grapple, formation-combat, mount, hazard, morale, sensory,
|
|
18
|
+
sensory-extended, weather, terrain, skills, biome
|
|
19
|
+
- `ananke/campaign` → campaign, downtime, collective-activities, settlement,
|
|
20
|
+
settlement-services, inventory, item-durability, world-generation, inheritance,
|
|
21
|
+
economy, polity (campaign layer barrel)
|
|
22
|
+
- `ananke/social` → dialogue, faction, relationships, relationships-effects, party,
|
|
23
|
+
quest, quest-generators
|
|
24
|
+
- `ananke/narrative` → chronicle, story-arcs, narrative-render, legend, mythology,
|
|
25
|
+
narrative, narrative-stress, metrics, arena
|
|
26
|
+
- `ananke/anatomy` → existing `src/anatomy/index.ts` barrel
|
|
27
|
+
- `ananke/crafting` → existing `src/crafting/index.ts` barrel
|
|
28
|
+
- `ananke/competence` → existing `src/competence/index.ts` barrel
|
|
29
|
+
- `STABLE_API.md` updated to document preferred subpath import patterns.
|
|
30
|
+
|
|
13
31
|
- **CE-16 · Modding Support** (`src/modding.ts`)
|
|
14
32
|
- Layer 1 — `hashMod(json)`: deterministic FNV-1a fingerprint (8-char hex) for any
|
|
15
33
|
parsed JSON mod file; canonical key-sorted serialisation ensures order-independence.
|
package/STABLE_API.md
CHANGED
|
@@ -185,21 +185,124 @@ version bump; renames require a major bump and migration guide.
|
|
|
185
185
|
These exports are usable and tested but may change across minor versions.
|
|
186
186
|
A `CHANGELOG.md` entry will document any breaking change.
|
|
187
187
|
|
|
188
|
+
Tier 2 modules are accessible via **named subpath exports** (preferred) or deep imports:
|
|
189
|
+
|
|
190
|
+
```typescript
|
|
191
|
+
// Preferred — named subpath (stable grouping, no internal path coupling)
|
|
192
|
+
import { stepAging, applyAgingToAttributes } from "@its-not-rocket-science/ananke/character";
|
|
193
|
+
import { resolveRangedAttack, stepGrapple } from "@its-not-rocket-science/ananke/combat";
|
|
194
|
+
import { stepCampaignDay, createSettlement } from "@its-not-rocket-science/ananke/campaign";
|
|
195
|
+
import { dialogueProbability, effectiveStanding } from "@its-not-rocket-science/ananke/social";
|
|
196
|
+
import { addChronicleEntry, detectStoryArcs } from "@its-not-rocket-science/ananke/narrative";
|
|
197
|
+
import { compileAnatomyDefinition } from "@its-not-rocket-science/ananke/anatomy";
|
|
198
|
+
import { craftItem, getAvailableRecipes } from "@its-not-rocket-science/ananke/crafting";
|
|
199
|
+
import { resolveCompetence } from "@its-not-rocket-science/ananke/competence";
|
|
200
|
+
|
|
201
|
+
// Deep import (fallback — internal paths may change)
|
|
202
|
+
import { stepAging } from "@its-not-rocket-science/ananke/dist/src/sim/aging.js";
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
### AI command system
|
|
206
|
+
|
|
207
|
+
| Module | Key exports |
|
|
208
|
+
|--------|------------|
|
|
209
|
+
| `src/sim/ai/system.ts` | `buildAICommands(world, ctx)` — build a `CommandMap` for all AI-controlled entities |
|
|
210
|
+
|
|
211
|
+
### Character lifecycle
|
|
212
|
+
|
|
188
213
|
| Module | Key exports |
|
|
189
214
|
|--------|------------|
|
|
190
|
-
| `src/mythology.ts` | `compressMythsFromHistory`, `stepMythologyYear`, `aggregateFactionMythEffect`, `scaledMythEffect` |
|
|
191
|
-
| `src/narrative-stress.ts` | `runNarrativeStressTest`, `scoreNarrativePush` |
|
|
192
|
-
| `src/campaign.ts` | `Campaign`, `stepCampaignDay`, `advanceCampaignClock`, `serializeCampaign`, `deserializeCampaign` |
|
|
193
|
-
| `src/arena.ts` | Arena scenario DSL, `runArenaTrial`, `runArenaScenario` |
|
|
194
215
|
| `src/sim/aging.ts` | `applyAgingToAttributes`, `stepAging`, `deriveAgeMultipliers`, `getAgePhase` |
|
|
195
216
|
| `src/sim/sleep.ts` | `applySleepToAttributes`, `stepSleep`, `deriveSleepDeprivationMuls`, `circadianAlertness` |
|
|
196
217
|
| `src/sim/disease.ts` | `exposeToDisease`, `stepDiseaseForEntity`, `spreadDisease`, `computeTransmissionRisk` |
|
|
218
|
+
| `src/sim/wound-aging.ts` | `stepWoundAging`, `recordTraumaEvent`, `deriveFearThresholdMul`, `deriveSepsisRisk` |
|
|
219
|
+
| `src/sim/thermoregulation.ts` | `stepThermoregulation`, `deriveThermalComfort`, `computeMetabolicRate` |
|
|
220
|
+
| `src/sim/nutrition.ts` | `stepNutrition`, `computeHungerEffect`, food catalogue constants |
|
|
221
|
+
| `src/sim/medical.ts` | `resolveTreatment`, `computeTreatmentEffect`, medical tier definitions |
|
|
222
|
+
| `src/sim/toxicology.ts` | `applyVenom`, `stepActiveVenoms`, `resolveIngestedToxin` |
|
|
223
|
+
| `src/progression.ts` | `applyXP`, `applyTrainingDrift`, `computeMilestones` |
|
|
224
|
+
|
|
225
|
+
### Combat extensions
|
|
226
|
+
|
|
227
|
+
| Module | Key exports |
|
|
228
|
+
|--------|------------|
|
|
197
229
|
| `src/sim/mount.ts` | `checkMountStep`, `computeChargeBonus`, `deriveRiderHeightBonus` |
|
|
198
230
|
| `src/sim/hazard.ts` | `deriveHazardEffect`, `computeHazardExposure`, `stepHazardZone` |
|
|
231
|
+
| `src/sim/ranged.ts` | `resolveRangedAttack`, `computeRangedAccuracy`, `computeProjectileEnergy` |
|
|
232
|
+
| `src/sim/grapple.ts` | `resolveGrappleContest`, `computeGrappleStrength`, `stepGrapple` |
|
|
233
|
+
| `src/sim/formation.ts` | `FormationConfig`, `computeFormationBonus`, `resolveFormationStep` |
|
|
234
|
+
| `src/sim/morale.ts` | `computeMoraleEffect`, `stepMorale`, `applyRoutEffect` |
|
|
235
|
+
| `src/sim/sensory.ts` | `computeVisibility`, `computeHearingRange`, `stepSensoryState` |
|
|
236
|
+
| `src/sim/sensory-extended.ts` | `computeEcholocationRange`, `computeOlfactionRange` — non-human senses |
|
|
237
|
+
| `src/sim/weather.ts` | `WeatherState`, `stepWeather`, `computeWeatherEffect` |
|
|
238
|
+
| `src/sim/terrain.ts` | `TerrainType`, `TERRAIN_PROFILES`, `computeTerrainTraction` |
|
|
239
|
+
| `src/sim/skills.ts` | `SkillId`, `SkillLevel`, `SKILL_LEVEL_MULS`, `buildSkillMap`, `getSkillMul` |
|
|
240
|
+
| `src/sim/biome.ts` | `BiomeType`, `BIOME_PROFILES`, `deriveBiomeEnvironment` |
|
|
241
|
+
|
|
242
|
+
### Social and economic systems
|
|
243
|
+
|
|
244
|
+
| Module | Key exports |
|
|
245
|
+
|--------|------------|
|
|
199
246
|
| `src/dialogue.ts` | `resolveIntimidation`, `resolvePersuasion`, `resolveDeception`, `resolveTradeNegotiation` |
|
|
200
247
|
| `src/faction.ts` | `FactionRegistry`, `updateStanding`, `getFactionStanding` |
|
|
201
248
|
| `src/economy.ts` | `computeItemValue`, `applyWear`, `resolveDrops`, `evaluateTradeOffer` |
|
|
202
|
-
| `src/
|
|
249
|
+
| `src/relationships.ts` | `createRelationshipGraph`, `establishRelationship`, `recordEvent`, `getRelationshipAffinity` |
|
|
250
|
+
| `src/relationships-effects.ts` | Relationship modifiers applied to dialogue, teaching, morale contexts |
|
|
251
|
+
| `src/party.ts` | `createPartyRegistry`, `createParty`, `addPartyMember`, `setPartyStanding` |
|
|
252
|
+
|
|
253
|
+
### Campaign and world management
|
|
254
|
+
|
|
255
|
+
| Module | Key exports |
|
|
256
|
+
|--------|------------|
|
|
257
|
+
| `src/campaign.ts` | `Campaign`, `stepCampaignDay`, `advanceCampaignClock`, `serializeCampaign`, `deserializeCampaign` |
|
|
258
|
+
| `src/downtime.ts` | `stepDowntime`, `TreatmentSchedule`, `EntityRecoveryReport` |
|
|
259
|
+
| `src/collective-activities.ts` | `createCollectiveProject`, `contributeToCollectiveProject`, `stepRitual`, `planCaravanRoute` |
|
|
260
|
+
| `src/inventory.ts` | `createInventory`, `addItemToInventory`, `consumeItemsByTemplateId`, `getEncumbrancePenalty` |
|
|
261
|
+
| `src/item-durability.ts` | `stepWear`, `applyWearPenalty` |
|
|
262
|
+
| `src/settlement.ts` | `createSettlement`, `upgradeSettlement`, `getServiceBonus` |
|
|
263
|
+
| `src/settlement-services.ts` | Service definitions (forge, medical, market, barracks, temple) |
|
|
264
|
+
| `src/inheritance.ts` | `transferEquipment`, `transferRelationships`, `transferInventory` — character death succession |
|
|
265
|
+
| `src/world-generation.ts` | `generateWorld`, `deriveStartingRelationships`, `deriveStartingConflicts` |
|
|
266
|
+
|
|
267
|
+
### Quest and narrative layer
|
|
268
|
+
|
|
269
|
+
| Module | Key exports |
|
|
270
|
+
|--------|------------|
|
|
271
|
+
| `src/quest.ts` | `questFactory`, `updateQuestState`, `resolveObjective`, `Quest`, `QuestObjective` |
|
|
272
|
+
| `src/quest-generators.ts` | `generateBountyQuest`, `generateEscortQuest`, `generateRetrievalQuest` |
|
|
273
|
+
| `src/chronicle.ts` | `createChronicle`, `addChronicleEntry`, `getEntriesForEntity`, `ChronicleEntry` |
|
|
274
|
+
| `src/story-arcs.ts` | `detectStoryArcs`, `updateDetectedArcs` — pattern detection across chronicle entries |
|
|
275
|
+
| `src/narrative-render.ts` | `renderEntry`, `renderArcSummary` — template-based prose from chronicle entries |
|
|
276
|
+
| `src/legend.ts` | `createLegendRegistry`, `createLegendFromChronicle`, `applyLegendToDialogueContext` |
|
|
277
|
+
| `src/mythology.ts` | `compressMythsFromHistory`, `stepMythologyYear`, `aggregateFactionMythEffect`, `scaledMythEffect` |
|
|
278
|
+
| `src/narrative.ts` | `narrateCombatTick`, `narrateInjury` — human-readable combat event strings |
|
|
279
|
+
| `src/narrative-stress.ts` | `runNarrativeStressTest`, `scoreNarrativePush` |
|
|
280
|
+
| `src/metrics.ts` | `extractCombatMetrics`, `summariseBattle` — analytics from trace events |
|
|
281
|
+
| `src/arena.ts` | Arena scenario DSL, `runArenaTrial`, `runArenaScenario` |
|
|
282
|
+
|
|
283
|
+
### Anatomy subsystem
|
|
284
|
+
|
|
285
|
+
| Module | Key exports |
|
|
286
|
+
|--------|------------|
|
|
287
|
+
| `src/anatomy/index.ts` | Re-export barrel for the full anatomy API |
|
|
288
|
+
| `src/anatomy/anatomy-contracts.ts` | `CompiledAnatomyModel`, `AnatomyContracts`, `AnatomyCapabilities` — core anatomy types |
|
|
289
|
+
| `src/anatomy/anatomy-schema.ts` | `validateExtendedBodyPlan`, `ValidationResult` — validate JSON body plan definitions |
|
|
290
|
+
| `src/anatomy/anatomy-compiler.ts` | `compileAnatomyDefinition`, `compileAnatomyDefinitionOrThrow` — compile a body plan to indexed model |
|
|
291
|
+
| `src/anatomy/anatomy-helpers.ts` | `createAnatomyHelpers`, `summarizeFunctionalHealth`, `sampleProfile` — query compiled anatomy |
|
|
292
|
+
|
|
293
|
+
### Competence framework
|
|
294
|
+
|
|
295
|
+
| Module | Key exports |
|
|
296
|
+
|--------|------------|
|
|
297
|
+
| `src/competence/index.ts` | Re-export barrel for the full competence API |
|
|
298
|
+
| `src/competence/framework.ts` | `resolveCompetence(entity, action, ctx)` — unified competence resolution dispatcher |
|
|
299
|
+
| `src/competence/catalogue.ts` | `CompetenceDomain`, `CompetenceTask`, predefined task catalogue entries |
|
|
300
|
+
|
|
301
|
+
### Crafting subsystem
|
|
302
|
+
|
|
303
|
+
| Module | Key exports |
|
|
304
|
+
|--------|------------|
|
|
305
|
+
| `src/crafting/index.ts` | `craftItem`, `startManufacturing`, `advanceManufacturing`, `getAvailableRecipes` — main crafting API |
|
|
203
306
|
|
|
204
307
|
---
|
|
205
308
|
|
|
@@ -207,16 +310,72 @@ A `CHANGELOG.md` entry will document any breaking change.
|
|
|
207
310
|
|
|
208
311
|
These are implementation details. Do not import them directly; they may change at any time.
|
|
209
312
|
|
|
313
|
+
### Kernel internals
|
|
314
|
+
|
|
210
315
|
| Module | Why internal |
|
|
211
316
|
|--------|-------------|
|
|
212
317
|
| `src/rng.ts` | `makeRng`, `eventSeed`, `hashString` — RNG contract is internal; seed structure may change |
|
|
318
|
+
| `src/sim/seeds.ts` | Seed derivation utilities |
|
|
213
319
|
| `src/sim/push.ts` | Pair-based resolution internals |
|
|
214
320
|
| `src/sim/kernel.ts` (non-exported functions) | Step sub-phases, internal accumulators |
|
|
215
|
-
| `src/sim/
|
|
216
|
-
| `src/sim/
|
|
321
|
+
| `src/sim/tick.ts` | Single-tick orchestration called by `stepWorld` |
|
|
322
|
+
| `src/sim/action.ts` | Attack cooldown and swing-momentum state machine |
|
|
323
|
+
| `src/sim/intent.ts` | Movement and defence intent processing |
|
|
324
|
+
| `src/sim/combat.ts` | Hit resolution and skill-contest internals |
|
|
325
|
+
| `src/sim/step/` | All sub-step modules (`push`, `energy`, `injury`, `movement`, etc.) |
|
|
326
|
+
| `src/sim/context.ts` | `KernelContext` type definition (re-exported via `sim/world.ts`) |
|
|
327
|
+
| `src/sim/events.ts` | Internal event emission — consumed by trace and bridge |
|
|
328
|
+
| `src/sim/indexing.ts` | Spatial index internals used by `stepWorld` |
|
|
329
|
+
| `src/sim/tuning.ts` | Physics constant tables — may be retuned in patch releases |
|
|
330
|
+
| `src/sim/impairment.ts` | Functional damage accumulator — called by the kernel step |
|
|
331
|
+
| `src/sim/occlusion.ts` | Internal visibility occlusion used by sensory |
|
|
332
|
+
| `src/sim/systemic-toxicology.ts` | Multi-substance pharmacokinetics internals |
|
|
333
|
+
| `src/sim/formation-unit.ts` | Squad-level unit structure used by `formation-combat.ts` |
|
|
334
|
+
| `src/sim/commandBuilders.ts` | Low-level command construction helpers — prefer `noMove()` from `commands.ts` |
|
|
335
|
+
| `src/sim/team.ts` | Team/side definitions used internally by AI and morale |
|
|
336
|
+
| `src/derive.ts` | Movement-force and geometry derivations used by the kernel |
|
|
337
|
+
| `src/lod.ts` | Level-of-detail helpers for large simulations |
|
|
338
|
+
| `src/debug.ts` | Visual debug extraction (motion vectors, hit traces) |
|
|
339
|
+
|
|
340
|
+
### AI decision internals
|
|
217
341
|
|
|
218
|
-
|
|
219
|
-
|
|
342
|
+
| Module | Why internal |
|
|
343
|
+
|--------|-------------|
|
|
344
|
+
| `src/sim/ai/decide.ts` | Decision-tree evaluation — called by `buildAICommands` |
|
|
345
|
+
| `src/sim/ai/perception.ts` | AI sensory processing — called by `buildAICommands` |
|
|
346
|
+
| `src/sim/ai/targeting.ts` | Target selection heuristics — called by `buildAICommands` |
|
|
347
|
+
| `src/sim/ai/personality.ts` | Personality trait modifiers on AI decisions |
|
|
348
|
+
| `src/sim/ai/types.ts` | AI policy and state types used only within `src/sim/ai/` |
|
|
349
|
+
|
|
350
|
+
> Use `buildAICommands(world, ctx)` from `src/sim/ai/system.ts` (Tier 2) rather than importing AI sub-modules directly.
|
|
351
|
+
|
|
352
|
+
### Competence domain resolvers
|
|
353
|
+
|
|
354
|
+
These are called by `resolveCompetence()` and should not be imported directly.
|
|
355
|
+
|
|
356
|
+
| Module | Domain |
|
|
357
|
+
|--------|--------|
|
|
358
|
+
| `src/competence/crafting.ts` | Crafting and tool use |
|
|
359
|
+
| `src/competence/navigation.ts` | Wayfinding and cartography |
|
|
360
|
+
| `src/competence/naturalist.ts` | Tracking, foraging, taming |
|
|
361
|
+
| `src/competence/interspecies.ts` | Cross-species communication |
|
|
362
|
+
| `src/competence/language.ts` | Linguistics and translation |
|
|
363
|
+
| `src/competence/teaching.ts` | Knowledge transfer |
|
|
364
|
+
| `src/competence/willpower.ts` | Endurance and mental fortitude |
|
|
365
|
+
| `src/competence/engineering.ts` | Siege and structural engineering |
|
|
366
|
+
| `src/competence/performance.ts` | Entertainment and oratory |
|
|
367
|
+
| `src/competence/acoustic.ts` | Formation signalling (drums, horns) |
|
|
368
|
+
|
|
369
|
+
### Crafting internals
|
|
370
|
+
|
|
371
|
+
These are called by `craftItem()` / `startManufacturing()` and should not be imported directly.
|
|
372
|
+
|
|
373
|
+
| Module | Role |
|
|
374
|
+
|--------|------|
|
|
375
|
+
| `src/crafting/materials.ts` | Material definitions and property calculations |
|
|
376
|
+
| `src/crafting/recipes.ts` | Recipe validation and feasibility |
|
|
377
|
+
| `src/crafting/manufacturing.ts` | Batch production mechanics |
|
|
378
|
+
| `src/crafting/workshops.ts` | Workshop facility definitions and output bonuses |
|
|
220
379
|
|
|
221
380
|
---
|
|
222
381
|
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module ananke/campaign
|
|
3
|
+
* @tier2 Experimental — breaking changes get a CHANGELOG entry.
|
|
4
|
+
*
|
|
5
|
+
* Campaign and world management: downtime activities, collective projects,
|
|
6
|
+
* settlements, inventory, item durability, world generation, inheritance,
|
|
7
|
+
* economy, and polity/socio-economic systems.
|
|
8
|
+
*
|
|
9
|
+
* Import via subpath:
|
|
10
|
+
* import { stepDowntime, createSettlement } from "@its-not-rocket-science/ananke/campaign"
|
|
11
|
+
*/
|
|
12
|
+
export * from "./campaign.js";
|
|
13
|
+
export * from "./downtime.js";
|
|
14
|
+
export * from "./collective-activities.js";
|
|
15
|
+
export * from "./settlement.js";
|
|
16
|
+
export * from "./settlement-services.js";
|
|
17
|
+
export * from "./inventory.js";
|
|
18
|
+
export * from "./item-durability.js";
|
|
19
|
+
export * from "./world-generation.js";
|
|
20
|
+
export * from "./inheritance.js";
|
|
21
|
+
export * from "./economy.js";
|
|
22
|
+
export * from "./polity.js";
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module ananke/campaign
|
|
3
|
+
* @tier2 Experimental — breaking changes get a CHANGELOG entry.
|
|
4
|
+
*
|
|
5
|
+
* Campaign and world management: downtime activities, collective projects,
|
|
6
|
+
* settlements, inventory, item durability, world generation, inheritance,
|
|
7
|
+
* economy, and polity/socio-economic systems.
|
|
8
|
+
*
|
|
9
|
+
* Import via subpath:
|
|
10
|
+
* import { stepDowntime, createSettlement } from "@its-not-rocket-science/ananke/campaign"
|
|
11
|
+
*/
|
|
12
|
+
export * from "./campaign.js";
|
|
13
|
+
export * from "./downtime.js";
|
|
14
|
+
export * from "./collective-activities.js";
|
|
15
|
+
export * from "./settlement.js";
|
|
16
|
+
export * from "./settlement-services.js";
|
|
17
|
+
export * from "./inventory.js";
|
|
18
|
+
export * from "./item-durability.js";
|
|
19
|
+
export * from "./world-generation.js";
|
|
20
|
+
export * from "./inheritance.js";
|
|
21
|
+
export * from "./economy.js";
|
|
22
|
+
export * from "./polity.js";
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module ananke/character
|
|
3
|
+
* @tier2 Experimental — breaking changes get a CHANGELOG entry.
|
|
4
|
+
*
|
|
5
|
+
* Character lifecycle: aging, sleep, disease, wound healing, thermoregulation,
|
|
6
|
+
* nutrition, medical treatment, toxicology, and skill progression.
|
|
7
|
+
*
|
|
8
|
+
* Import via subpath:
|
|
9
|
+
* import { stepAging, stepSleep } from "@its-not-rocket-science/ananke/character"
|
|
10
|
+
*/
|
|
11
|
+
export * from "./sim/aging.js";
|
|
12
|
+
export * from "./sim/sleep.js";
|
|
13
|
+
export * from "./sim/disease.js";
|
|
14
|
+
export * from "./sim/wound-aging.js";
|
|
15
|
+
export * from "./sim/thermoregulation.js";
|
|
16
|
+
export * from "./sim/nutrition.js";
|
|
17
|
+
export * from "./sim/medical.js";
|
|
18
|
+
export * from "./sim/toxicology.js";
|
|
19
|
+
export * from "./progression.js";
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module ananke/character
|
|
3
|
+
* @tier2 Experimental — breaking changes get a CHANGELOG entry.
|
|
4
|
+
*
|
|
5
|
+
* Character lifecycle: aging, sleep, disease, wound healing, thermoregulation,
|
|
6
|
+
* nutrition, medical treatment, toxicology, and skill progression.
|
|
7
|
+
*
|
|
8
|
+
* Import via subpath:
|
|
9
|
+
* import { stepAging, stepSleep } from "@its-not-rocket-science/ananke/character"
|
|
10
|
+
*/
|
|
11
|
+
export * from "./sim/aging.js";
|
|
12
|
+
export * from "./sim/sleep.js";
|
|
13
|
+
export * from "./sim/disease.js";
|
|
14
|
+
export * from "./sim/wound-aging.js";
|
|
15
|
+
export * from "./sim/thermoregulation.js";
|
|
16
|
+
export * from "./sim/nutrition.js";
|
|
17
|
+
export * from "./sim/medical.js";
|
|
18
|
+
export * from "./sim/toxicology.js";
|
|
19
|
+
export * from "./progression.js";
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module ananke/combat
|
|
3
|
+
* @tier2 Experimental — breaking changes get a CHANGELOG entry.
|
|
4
|
+
*
|
|
5
|
+
* Combat extensions: ranged weapons, grappling, formation tactics, mounted
|
|
6
|
+
* combat, environmental hazards, morale, sensory systems, weather, terrain,
|
|
7
|
+
* skills, and biome effects.
|
|
8
|
+
*
|
|
9
|
+
* Import via subpath:
|
|
10
|
+
* import { resolveRangedAttack, stepGrapple } from "@its-not-rocket-science/ananke/combat"
|
|
11
|
+
*/
|
|
12
|
+
export * from "./sim/ranged.js";
|
|
13
|
+
export * from "./sim/grapple.js";
|
|
14
|
+
export * from "./sim/formation-combat.js";
|
|
15
|
+
export * from "./sim/mount.js";
|
|
16
|
+
export * from "./sim/hazard.js";
|
|
17
|
+
export * from "./sim/morale.js";
|
|
18
|
+
export * from "./sim/sensory.js";
|
|
19
|
+
export * from "./sim/sensory-extended.js";
|
|
20
|
+
export * from "./sim/weather.js";
|
|
21
|
+
export * from "./sim/terrain.js";
|
|
22
|
+
export * from "./sim/skills.js";
|
|
23
|
+
export * from "./sim/biome.js";
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module ananke/combat
|
|
3
|
+
* @tier2 Experimental — breaking changes get a CHANGELOG entry.
|
|
4
|
+
*
|
|
5
|
+
* Combat extensions: ranged weapons, grappling, formation tactics, mounted
|
|
6
|
+
* combat, environmental hazards, morale, sensory systems, weather, terrain,
|
|
7
|
+
* skills, and biome effects.
|
|
8
|
+
*
|
|
9
|
+
* Import via subpath:
|
|
10
|
+
* import { resolveRangedAttack, stepGrapple } from "@its-not-rocket-science/ananke/combat"
|
|
11
|
+
*/
|
|
12
|
+
export * from "./sim/ranged.js";
|
|
13
|
+
export * from "./sim/grapple.js";
|
|
14
|
+
export * from "./sim/formation-combat.js";
|
|
15
|
+
export * from "./sim/mount.js";
|
|
16
|
+
export * from "./sim/hazard.js";
|
|
17
|
+
export * from "./sim/morale.js";
|
|
18
|
+
export * from "./sim/sensory.js";
|
|
19
|
+
export * from "./sim/sensory-extended.js";
|
|
20
|
+
export * from "./sim/weather.js";
|
|
21
|
+
export * from "./sim/terrain.js";
|
|
22
|
+
export * from "./sim/skills.js";
|
|
23
|
+
export * from "./sim/biome.js";
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module ananke/narrative
|
|
3
|
+
* @tier2 Experimental — breaking changes get a CHANGELOG entry.
|
|
4
|
+
*
|
|
5
|
+
* Narrative and chronicle systems: event chronicles, story arc detection,
|
|
6
|
+
* narrative rendering, legends, mythology, stress testing, combat metrics,
|
|
7
|
+
* and arena scenarios.
|
|
8
|
+
*
|
|
9
|
+
* Import via subpath:
|
|
10
|
+
* import { addChronicleEntry, detectStoryArcs } from "@its-not-rocket-science/ananke/narrative"
|
|
11
|
+
*/
|
|
12
|
+
export * from "./chronicle.js";
|
|
13
|
+
export * from "./story-arcs.js";
|
|
14
|
+
export * from "./narrative-render.js";
|
|
15
|
+
export * from "./legend.js";
|
|
16
|
+
export * from "./mythology.js";
|
|
17
|
+
export * from "./narrative.js";
|
|
18
|
+
export * from "./narrative-stress.js";
|
|
19
|
+
export * from "./metrics.js";
|
|
20
|
+
export * from "./arena.js";
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module ananke/narrative
|
|
3
|
+
* @tier2 Experimental — breaking changes get a CHANGELOG entry.
|
|
4
|
+
*
|
|
5
|
+
* Narrative and chronicle systems: event chronicles, story arc detection,
|
|
6
|
+
* narrative rendering, legends, mythology, stress testing, combat metrics,
|
|
7
|
+
* and arena scenarios.
|
|
8
|
+
*
|
|
9
|
+
* Import via subpath:
|
|
10
|
+
* import { addChronicleEntry, detectStoryArcs } from "@its-not-rocket-science/ananke/narrative"
|
|
11
|
+
*/
|
|
12
|
+
export * from "./chronicle.js";
|
|
13
|
+
export * from "./story-arcs.js";
|
|
14
|
+
export * from "./narrative-render.js";
|
|
15
|
+
export * from "./legend.js";
|
|
16
|
+
export * from "./mythology.js";
|
|
17
|
+
export * from "./narrative.js";
|
|
18
|
+
export * from "./narrative-stress.js";
|
|
19
|
+
export * from "./metrics.js";
|
|
20
|
+
export * from "./arena.js";
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module ananke/social
|
|
3
|
+
* @tier2 Experimental — breaking changes get a CHANGELOG entry.
|
|
4
|
+
*
|
|
5
|
+
* Social systems: dialogue, factions, relationships, party management,
|
|
6
|
+
* quests, and quest generation.
|
|
7
|
+
*
|
|
8
|
+
* Import via subpath:
|
|
9
|
+
* import { dialogueProbability, effectiveStanding } from "@its-not-rocket-science/ananke/social"
|
|
10
|
+
*/
|
|
11
|
+
export * from "./dialogue.js";
|
|
12
|
+
export * from "./faction.js";
|
|
13
|
+
export * from "./relationships.js";
|
|
14
|
+
export * from "./relationships-effects.js";
|
|
15
|
+
export * from "./party.js";
|
|
16
|
+
export * from "./quest.js";
|
|
17
|
+
export * from "./quest-generators.js";
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module ananke/social
|
|
3
|
+
* @tier2 Experimental — breaking changes get a CHANGELOG entry.
|
|
4
|
+
*
|
|
5
|
+
* Social systems: dialogue, factions, relationships, party management,
|
|
6
|
+
* quests, and quest generation.
|
|
7
|
+
*
|
|
8
|
+
* Import via subpath:
|
|
9
|
+
* import { dialogueProbability, effectiveStanding } from "@its-not-rocket-science/ananke/social"
|
|
10
|
+
*/
|
|
11
|
+
export * from "./dialogue.js";
|
|
12
|
+
export * from "./faction.js";
|
|
13
|
+
export * from "./relationships.js";
|
|
14
|
+
export * from "./relationships-effects.js";
|
|
15
|
+
export * from "./party.js";
|
|
16
|
+
export * from "./quest.js";
|
|
17
|
+
export * from "./quest-generators.js";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@its-not-rocket-science/ananke",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.12",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Deterministic lockstep-friendly SI-units RPG/physics core (fixed-point TS)",
|
|
6
6
|
"license": "MIT",
|
|
@@ -22,6 +22,38 @@
|
|
|
22
22
|
"./catalog": {
|
|
23
23
|
"import": "./dist/src/catalog.js",
|
|
24
24
|
"types": "./dist/src/catalog.d.ts"
|
|
25
|
+
},
|
|
26
|
+
"./character": {
|
|
27
|
+
"import": "./dist/src/character.js",
|
|
28
|
+
"types": "./dist/src/character.d.ts"
|
|
29
|
+
},
|
|
30
|
+
"./combat": {
|
|
31
|
+
"import": "./dist/src/combat.js",
|
|
32
|
+
"types": "./dist/src/combat.d.ts"
|
|
33
|
+
},
|
|
34
|
+
"./campaign": {
|
|
35
|
+
"import": "./dist/src/campaign-layer.js",
|
|
36
|
+
"types": "./dist/src/campaign-layer.d.ts"
|
|
37
|
+
},
|
|
38
|
+
"./social": {
|
|
39
|
+
"import": "./dist/src/social.js",
|
|
40
|
+
"types": "./dist/src/social.d.ts"
|
|
41
|
+
},
|
|
42
|
+
"./narrative": {
|
|
43
|
+
"import": "./dist/src/narrative-layer.js",
|
|
44
|
+
"types": "./dist/src/narrative-layer.d.ts"
|
|
45
|
+
},
|
|
46
|
+
"./anatomy": {
|
|
47
|
+
"import": "./dist/src/anatomy/index.js",
|
|
48
|
+
"types": "./dist/src/anatomy/index.d.ts"
|
|
49
|
+
},
|
|
50
|
+
"./crafting": {
|
|
51
|
+
"import": "./dist/src/crafting/index.js",
|
|
52
|
+
"types": "./dist/src/crafting/index.d.ts"
|
|
53
|
+
},
|
|
54
|
+
"./competence": {
|
|
55
|
+
"import": "./dist/src/competence/index.js",
|
|
56
|
+
"types": "./dist/src/competence/index.d.ts"
|
|
25
57
|
}
|
|
26
58
|
},
|
|
27
59
|
"files": [
|