Update mechanic authoring persistence
This commit is contained in:
+43
-13
@@ -638,12 +638,24 @@ normalized events are `shot_fired`, `weapon_hit`, `skill_deployed`,
|
||||
`weapon_swapped`, and `tick`. Event details such as target, distance, critical
|
||||
state, source, movement, and nearby counts travel as typed event values. The
|
||||
event registry publishes authoritative field metadata where branches need a
|
||||
bounded contract. For those events, the mechanic editor derives its event-field
|
||||
controls from that metadata. For example, `weapon_hit.values.headshot` is a
|
||||
boolean that distinguishes headshots from body shots. `enemy_killed` and
|
||||
`assist` may carry `values.assignedAbilityActive`; a Skill Chip Talent uses that
|
||||
boolean to restrict a kill or assist trigger to its assigned ability's active
|
||||
period. `skill_deployed` and `signature_ability_deployed` may carry
|
||||
bounded contract. For those events, the mechanic editor derives event-field
|
||||
conditions and manual derived-scalar controls from that metadata.
|
||||
`proximity_snapshot.values.alliesWithin30MetersWithAgentGrantedBuff` is an
|
||||
optional non-negative integer. It contains the resolved count of distinct allied
|
||||
Agents at a distance less than or equal to 30 meters who have at least one buff
|
||||
granted by the source Agent. Several qualifying buffs on one ally count once.
|
||||
`proximity_snapshot` remains non-strict, so saved mechanic data and producers
|
||||
that omit the field remain compatible.
|
||||
|
||||
`src/lib/builder/loadout-combat.ts` bridges the calculation scenario input
|
||||
`allies-within-30m-with-agent-granted-buff` into that field on each generated
|
||||
`proximity_snapshot`. For example, a derived-scalar reducer can select the
|
||||
registered numeric field without requiring a hand-entered path. Other registered
|
||||
metadata includes `weapon_hit.values.headshot`, a boolean that distinguishes
|
||||
headshots from body shots. `enemy_killed` and `assist` may carry
|
||||
`values.assignedAbilityActive`; a Skill Chip Talent uses that boolean to
|
||||
restrict a kill or assist trigger to its assigned ability's active period.
|
||||
`skill_deployed` and `signature_ability_deployed` may carry
|
||||
`values.assignedAbilityDurationSeconds` to start assigned-ability state. The
|
||||
runtime expires that state before it evaluates another event at the same
|
||||
timestamp.
|
||||
@@ -707,11 +719,20 @@ The program graph uses three child tables:
|
||||
rolls separately. Restoration outcomes may deliver their total immediately or
|
||||
continuously over an explicit duration.
|
||||
|
||||
Target-scoped direct damage may use `event_target_area` targeting for an
|
||||
explosion around its event target. This targeting selects valid enemies and
|
||||
stores a positive radius in meters. It is valid only for `on_event` or
|
||||
`after_event` outcomes. The legacy `within_radius` shape remains descriptive
|
||||
targeting metadata and does not select runtime entities.
|
||||
Draft outcome expressions may use `{"ref":{"source":"variant_value"}}`. This
|
||||
reference belongs to the conditional draft grammar and does not enter the
|
||||
runtime expression grammar. Each persisted outcome-variant row keeps its
|
||||
human-facing numeric `value`, while `value_expression_json` preserves the
|
||||
reference and its semantic link. The adapters in
|
||||
`src/lib/calculations/mechanic-editor.ts` and
|
||||
`src/lib/calculations/mechanic-persistence.ts` resolve the reference from the
|
||||
current row's `value` when they construct a runtime program.
|
||||
|
||||
Target-scoped direct damage may use `event_target_area` targeting for an
|
||||
explosion around its event target. This targeting selects valid enemies and
|
||||
stores a positive radius in meters. It is valid only for `on_event` or
|
||||
`after_event` outcomes. The legacy `within_radius` shape remains descriptive
|
||||
targeting metadata and does not select runtime entities.
|
||||
|
||||
The generic runtime in `src/lib/calculations/mechanic.ts` processes combat
|
||||
events in timestamp order. Predicates decide whether an event enters a clause.
|
||||
@@ -800,6 +821,13 @@ descriptions, and calculation metadata. The client cannot replace the system
|
||||
instructions, choose arbitrary models, attach files, add tools, or add external
|
||||
URLs.
|
||||
|
||||
When source wording contains an unresolved numbered numeric placeholder, the
|
||||
assistant must return `clarification_required` and ask for the value of every
|
||||
required source variant. It must not infer a percentage or other numeric value.
|
||||
After clarification, the draft places each answer in the corresponding
|
||||
outcome-variant `value`; any scaling expression uses the draft-only
|
||||
`variant_value` reference instead of repeating that number.
|
||||
|
||||
The deterministic draft parser owns the canonical outcome-capability manifest.
|
||||
The AI context serializes that manifest instead of maintaining a second outcome
|
||||
grammar. The parser rejects outcome fields absent from the manifest. Contract
|
||||
@@ -896,8 +924,10 @@ events remain the evidence for revision saves and activation.
|
||||
Source authors define planned player scenario controls as typed toggle, slider,
|
||||
or numeric inputs. Each input records its label, guidance, bounds when
|
||||
applicable, default value, and best-case value. ISAC retains these definitions
|
||||
for continued mechanic authoring. Current Builder and shared Build pages do not
|
||||
render or evaluate them. Their calculation panels display `COMING SOON` instead.
|
||||
for continued mechanic authoring, and the calculation timeline builder can
|
||||
consume scenario values supplied by calculation orchestration. Current Builder
|
||||
and shared Build pages do not expose those controls or invoke the simulation.
|
||||
Their calculation panels display `COMING SOON` instead.
|
||||
|
||||
Loadout schema version 6 stores one focus, selected tree ranks, nine Skill
|
||||
Chips, independent T1/T2 choices for each equipped gear and weapon Talent, a
|
||||
|
||||
Reference in New Issue
Block a user