Updating mechanics for OS protocols
This commit is contained in:
+32
-21
@@ -341,17 +341,29 @@ squeezed beside long module headings on mobile.
|
||||
### Command Grid builder
|
||||
|
||||
The production builder uses Command Grid as its loadout workbench. Keep the
|
||||
entire build visible in a dense matrix while one connected editor configures the
|
||||
selected cell. The full-width Specialization and Focus cell is the root choice.
|
||||
Its three supplied abilities appear directly below it, followed by two weapons,
|
||||
six gear positions, and one full-width OS Protocol.
|
||||
entire build visible in a compact matrix while one connected editor configures
|
||||
the selected cell. The editor uses two lanes when its container has enough
|
||||
width. Equipment identity and base values occupy the first lane; allocations,
|
||||
rolls, Talents, and upgrades occupy the second. The lanes stack when either
|
||||
would become too narrow. The full-width Specialization and Focus cell is the
|
||||
root choice. Its three supplied abilities appear directly below it, followed by
|
||||
two weapons, six gear positions, and one full-width OS Protocol.
|
||||
|
||||
Matrix cells summarize selected Talent names, Attribute names and values, Brand
|
||||
Sets, or Skill Chips. Do not replace those choices with configuration counts.
|
||||
Selecting an ability opens its three attached Skill Chip positions. Selecting
|
||||
equipment opens the searchable real-data catalog and its compatible
|
||||
configuration controls. Do not display a prototype option that the current
|
||||
loadout schema cannot save.
|
||||
Matrix cells show the slot and equipped item at rest. The selected cell reveals
|
||||
its compact Talent, Attribute, Brand Set, or Skill Chip summary. This
|
||||
progressive disclosure keeps the matrix scannable without replacing configured
|
||||
choices with counts. Selecting an ability opens its three attached Skill Chip
|
||||
positions. Selecting equipment opens the searchable real-data catalog and its
|
||||
compatible configuration controls. Large Talent pools show the selected Talent
|
||||
at rest and open their search grid through an explicit Change action. Do not
|
||||
display a prototype option that the current loadout schema cannot save.
|
||||
|
||||
Each equipped gear or weapon Talent exposes two adjacent icon choices for Tier I
|
||||
and Tier II. Both choices reuse the Talent artwork; Tier II applies a restrained
|
||||
warm recolor so players can distinguish the pair before reading the labels.
|
||||
Every tile retains `T1` or `T2`, its full tier name, and selected or unavailable
|
||||
text. Disable Tier II when the canonical Talent has no authored Tier II data.
|
||||
Weapon equipment tier and Talent tier are independent selections.
|
||||
|
||||
Equipment readiness belongs at the point of resolution. Mark an incomplete
|
||||
matrix cell with a compact red text indicator and status rail, then let the cell
|
||||
@@ -361,20 +373,19 @@ and Skill DPS, encounter assumptions, activation profiles, rotations, and
|
||||
simulation as `COMING SOON`; they do not report calculation-profile blockers as
|
||||
current player errors.
|
||||
|
||||
The builder uses three workbench columns on wide screens, moves the live summary
|
||||
below the matrix and editor at intermediate widths, and stacks all three regions
|
||||
on narrow screens. Every grid track and editor child must accept content
|
||||
shrinkage. At 560px and below, stack attribute picker/value pairs and section
|
||||
headings; keep the command actions in two equal columns. Validation markers use
|
||||
short visible labels while their full messages remain available to assistive
|
||||
technology and pointer users.
|
||||
The builder uses two primary workbench columns on wide screens: the compact
|
||||
matrix and the two-lane editor. The live summary spans both columns below them.
|
||||
Narrow screens stack the matrix, editor, and summary. Every grid track and
|
||||
editor child must accept content shrinkage. At 560px and below, stack Attribute
|
||||
picker/value pairs and section headings; keep the command actions in two equal
|
||||
columns. Validation markers use short visible labels while their full messages
|
||||
remain available to assistive technology and pointer users.
|
||||
|
||||
Use `--shd-builder-canvas` for recessed equipment fields. Use
|
||||
`--shd-builder-selection` with `--shd-builder-selection-border` for the selected
|
||||
cell. Preserve button semantics, `aria-pressed`, focus-visible outlines, pressed
|
||||
feedback, and textual readiness states. At narrower desktop widths, keep the
|
||||
matrix and editor together and move live results below them. On mobile, stack
|
||||
the matrix, editor, and live results in that order.
|
||||
feedback, and textual readiness states. On mobile, stack the matrix, editor, and
|
||||
live results in that order.
|
||||
|
||||
The command header contains the required build name, local and account save
|
||||
actions, account visibility, and optional sharing notes. Sharing notes include a
|
||||
@@ -2575,7 +2586,7 @@ conditional Talent outcomes, weapon and Skill DPS, encounter assumptions,
|
||||
activation profiles, rotations, and simulation behind explicit `COMING SOON`
|
||||
panels.
|
||||
|
||||
Loadout schema version 5 retains `maximum`, `custom`, conditional state,
|
||||
Loadout schema version 6 retains `maximum`, `custom`, conditional state,
|
||||
encounter-assumption, and per-ability activation fields. Version 4 is obsolete
|
||||
prototype data rather than a compatibility format. The current player UI ignores
|
||||
the simulation fields. When player simulation ships, one required two-option
|
||||
|
||||
@@ -26,8 +26,8 @@ Use these event boundaries:
|
||||
- **Healing:** Count each healing event. A heal-over-time effect counts each
|
||||
tick as a separate event.
|
||||
- **Extra Health gained:** Count every Extra Health grant, including a grant
|
||||
received while the Agent already has Extra Health. Use
|
||||
`extra_health_granted` for the grant action.
|
||||
received while the Agent already has Extra Health. Use `extra_health_granted`
|
||||
for the grant action.
|
||||
- **Extra Health state changed:** `extra_health_changed` is Agent-scoped. Emit
|
||||
it when the Agent receives a grant, when the remaining amount changes, and
|
||||
when it is depleted to zero. Every event requires the boolean
|
||||
@@ -35,8 +35,8 @@ Use these event boundaries:
|
||||
`values.currentExtraHealth`, which must agree with that status. This state
|
||||
event is distinct from the `extra_health_granted` grant action.
|
||||
- **Reloading:** Trigger on reload completion when the weapon had at least one
|
||||
round to load. A canceled reload does not count. A weapon that loads one
|
||||
round at a time produces one completed-reload event for each round.
|
||||
round to load. A canceled reload does not count. A weapon that loads one round
|
||||
at a time produces one completed-reload event for each round.
|
||||
- **Taking damage:** Require Health loss. A hit absorbed by Extra Health does
|
||||
not count as taking damage.
|
||||
|
||||
@@ -59,8 +59,8 @@ Inspiration and Crossfire use a binary deployed-Skill state:
|
||||
|
||||
- The benefit remains active while the Agent has at least one persistent
|
||||
deployed Skill object.
|
||||
- Destruction or timed expiration removes that object from the active count.
|
||||
The benefit ends when no qualifying objects remain.
|
||||
- Destruction or timed expiration removes that object from the active count. The
|
||||
benefit ends when no qualifying objects remain.
|
||||
- Instant-use Skills do not qualify.
|
||||
- Multiple deployed Skill objects do not multiply the benefit.
|
||||
|
||||
@@ -75,8 +75,8 @@ meters:
|
||||
|
||||
- Moving within 30 meters of an ally who is already downed qualifies.
|
||||
- Each qualifying presence refreshes the ten-second duration.
|
||||
- Leaving the radius or reviving the ally does not cancel the current
|
||||
ten-second duration.
|
||||
- Leaving the radius or reviving the ally does not cancel the current ten-second
|
||||
duration.
|
||||
- The wearer does not count as an ally.
|
||||
|
||||
## Emergency Retreat
|
||||
@@ -93,9 +93,9 @@ qualifies when the weapon had at least one round to load. This includes each
|
||||
round inserted by a weapon that reloads one round at a time. A canceled reload
|
||||
does not qualify.
|
||||
|
||||
Resolve the Extra Health amount from the Agent's displayed Firepower when
|
||||
Second Wind activates. Include all equipped-item and active-buff contributions
|
||||
in that Firepower value:
|
||||
Resolve the Extra Health amount from the Agent's displayed Firepower when Second
|
||||
Wind activates. Include all equipped-item and active-buff contributions in that
|
||||
Firepower value:
|
||||
|
||||
- Tier I grants Extra Health equal to 600% of displayed Firepower.
|
||||
- Tier II grants Extra Health equal to 840% of displayed Firepower.
|
||||
@@ -103,19 +103,39 @@ in that Firepower value:
|
||||
Second Wind adds its Extra Health to Extra Health from other sources. Its
|
||||
five-second duration and five-second cooldown start when it activates. Expiry
|
||||
removes only the Second Wind contribution. At the five-second boundary, the
|
||||
prior grant can expire as a qualifying reload completion grants a new amount.
|
||||
If Second Wind supplies the Agent's only Extra Health, the old amount expires
|
||||
and the new amount begins at that boundary.
|
||||
prior grant can expire as a qualifying reload completion grants a new amount. If
|
||||
Second Wind supplies the Agent's only Extra Health, the old amount expires and
|
||||
the new amount begins at that boundary.
|
||||
|
||||
## Nothing to Lose
|
||||
|
||||
Nothing to Lose uses a forward-looking deployment window:
|
||||
|
||||
- Each Health-damage instance makes its own 50% activation roll. Damage
|
||||
absorbed by Extra Health does not roll.
|
||||
- Each Health-damage instance makes its own 50% activation roll. Damage absorbed
|
||||
by Extra Health does not roll.
|
||||
- A successful activation applies to every Skill deployed during the five
|
||||
seconds after that damage instance. Several Skills can qualify during the
|
||||
same window.
|
||||
seconds after that damage instance. Several Skills can qualify during the same
|
||||
window.
|
||||
- Calculate each reduction from the Skill's total cooldown after equipment
|
||||
modifiers.
|
||||
- A Skill can receive no more than three reductions during one cooldown cycle.
|
||||
|
||||
## OS Protocol Talents
|
||||
|
||||
Happy Survival restores Health once per second while it has a qualifying nearby
|
||||
enemy count. Each restoration resolves 0.5% of maximum Health per enemy within
|
||||
10 meters, capped at 2.5% before OS Protocol upgrade scaling.
|
||||
|
||||
Explosive Charge requires three seconds of uninterrupted firing. Completion
|
||||
opens an eight-second window to deploy the next Skill. The window ends when the
|
||||
Agent deploys that Skill. Only the enhanced Skill's first damaging hit creates
|
||||
the five-meter explosion. The shared Talent cooldown rule starts its five-second
|
||||
cooldown when that explosion activates.
|
||||
|
||||
Heavy Armor and Pummeling Shield replace and refresh their own active Extra
|
||||
Health grant when the same Talent activates again. Extra Health grants from
|
||||
different sources remain separate.
|
||||
|
||||
Pummeling Shield counts confirmed weapon hits while the Agent possesses Extra
|
||||
Health. Losing all Extra Health resets the hit count. The full-Health condition
|
||||
checks Health immediately before the incoming hit resolves.
|
||||
|
||||
+24
-18
@@ -584,6 +584,9 @@ state, with sprinting taking precedence. Enabled Skill activation profiles emit
|
||||
the deployed ability. An `on_event` Skill modifier applies to that activation
|
||||
until the ability's next deployment or the encounter ends.
|
||||
|
||||
`skill_deployed.values.abilityId` and `skill_hit.values.abilityId` identify the
|
||||
same ability for mechanics that bind an effect to the next deployed Skill.
|
||||
|
||||
Each source supplies a fixed value-variant contract:
|
||||
|
||||
- Standard Talents require Tier I and Tier II values. Exotic Talents require
|
||||
@@ -631,11 +634,11 @@ timestamp.
|
||||
the hit resolved. A producer omits the field when it lacks authoritative aiming
|
||||
state; the runtime does not replace missing evidence with a scenario assumption.
|
||||
Predicates compare this field explicitly with `true` or `false`; negation and
|
||||
inequality cannot turn missing evidence into a match. A weapon-hit event may
|
||||
also include an event-target-centered area sample. The bounded sample lists up
|
||||
to 256 valid ally and enemy entity IDs with their distances from the hit target
|
||||
and includes that target as an enemy at zero meters. Duplicate IDs, negative
|
||||
distances, or a missing center target invalidate the evaluation.
|
||||
inequality cannot turn missing evidence into a match. A `weapon_hit` or
|
||||
`skill_hit` event may include an event-target-centered area sample. The bounded
|
||||
sample lists up to 256 valid ally and enemy entity IDs with their distances from
|
||||
the hit target and includes that target as an enemy at zero meters. Duplicate
|
||||
IDs, negative distances, or a missing center target invalidate the evaluation.
|
||||
|
||||
`extra_health_changed` is Agent-scoped. Normalized timeline producers emit it
|
||||
when the Agent receives an Extra Health grant, when the remaining amount
|
||||
@@ -730,11 +733,13 @@ substitute zero.
|
||||
The read-only `combat.currentHealthPercent` reference divides resolved current
|
||||
Health by resolved maximum Health and returns a value from 0 through 100. The
|
||||
runtime derives it when a predicate is evaluated instead of storing a second
|
||||
Health value that could become stale. Current timing observes deterministic
|
||||
resource changes from earlier branches at the same event. Health-band mechanics
|
||||
use strict upper bounds and inclusive lower bounds, so bands do not overlap and
|
||||
an exact threshold enters the next weaker band. Maximum-potential evaluation
|
||||
applies the same predicates before emitting passive outcomes.
|
||||
Health value that could become stale. Pre-event timing reads the combat snapshot
|
||||
before mechanic branches process the event. Current timing observes
|
||||
deterministic resource changes from earlier branches at the same event.
|
||||
Health-band mechanics use strict upper bounds and inclusive lower bounds, so
|
||||
bands do not overlap and an exact threshold enters the next weaker band.
|
||||
Maximum-potential evaluation applies the same predicates before emitting passive
|
||||
outcomes.
|
||||
|
||||
Continuous restoration resolves the outcome's total when the branch activates,
|
||||
then delivers that total at a constant rate over the configured duration.
|
||||
@@ -876,17 +881,18 @@ 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.
|
||||
|
||||
Loadout schema version 5 stores one focus, selected tree ranks, nine Skill
|
||||
Chips, a unified conditional-effect state map, encounter assumptions,
|
||||
per-ability activation controls, and `calculationMode`. Runtime readers accept
|
||||
the exact version 5 structure. The schema retains its simulation fields, but the
|
||||
current player UI ignores them. Version 4 is obsolete prototype data. A
|
||||
backed-up prototype migration removes version 4 drafts, saved builds, and
|
||||
calibration snapshots instead of translating them.
|
||||
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
|
||||
unified conditional-effect state map, encounter assumptions, per-ability
|
||||
activation controls, and `calculationMode`. Runtime readers accept the exact
|
||||
version 6 structure. A backed-up migration translated version 5 equipment
|
||||
Talents from their previous equipment-tier-derived behavior. The schema retains
|
||||
its simulation fields, but the current player UI ignores them. Version 4 remains
|
||||
obsolete prototype data.
|
||||
|
||||
## Planned player calculation modes
|
||||
|
||||
Loadout v5 defines `maximum` and `custom` modes for the planned simulation UI:
|
||||
Loadout v6 defines `maximum` and `custom` modes for the planned simulation UI:
|
||||
|
||||
- Maximum mode supplies each scenario input's best-case value, selects peak
|
||||
conditional-effect state, and runs selected abilities on cooldown against
|
||||
|
||||
Reference in New Issue
Block a user