Combat calculations — ISAC

MODELED DAMAGE + EMPIRICAL CALIBRATION

COMBAT CALCULATIONS

Configure typed calculation stages, Attribute bindings, and field observations used by the loadout builder.

ACTIVE REVISION{activeRevision ? `R${activeRevision.version}` : 'NONE'}{activeRevision?.name ?? 'NO ACTIVE RULES'}
ATTRIBUTE PROFILES{activeRevision?.profiles.length ?? 0}TYPED BINDINGS
READY CASES{Number(data.calibrationSummary?.ready ?? 0)}{Number(data.calibrationSummary?.predicted ?? 0)} WITH PREDICTIONS
{#if revisionEditing}

{revisionEditing.id ? 'MODIFY DRAFT REVISION' : 'NEW DRAFT REVISION'}

{revisionEditing.name || 'CALCULATION RULE SET'}

ORDERED CALCULATION STAGESBASE AND FIRING-CYCLE POSITIONS ARE LOCKED
{revisionEditing.stages.length} STAGES
{#each [...revisionEditing.stages].sort((left, right) => left.displayOrder - right.displayOrder) as stage, index}
{String(stage.displayOrder).padStart(2, '0')}{stage.operator.replaceAll('_', ' ').toUpperCase()}{stage.lockedPosition?.toUpperCase() ?? 'ORDERED'}
{/each}
ATTRIBUTE CALCULATION PROFILESWEIGHT, CAPS, AND SAFE CURVES
{#each revisionEditing.profiles as profile, index}
PROFILE {String(index + 1).padStart(2, '0')}
ATTRIBUTE
CALCULATION STAGE
{/each}
{#if form?.revisionError}

{form.revisionError}

{/if}
{/if} {#snippet calibrationEditor()} {#if calibrationEditing}

{calibrationEditing.id ? 'MODIFY CALIBRATION CASE' : 'NEW CALIBRATION CASE'}

{calibrationEditing.name || 'FIELD OBSERVATION'}

{#if form?.calibrationError}

{form.calibrationError}

{/if}
{/if} {/snippet} {#if calibrationEditing && !calibrationEditing.id} {@render calibrationEditor()} {/if}
CALCULATION REVISIONSSAVED BUILDS USE THE ACTIVE REVISION
{#snippet children(pending)}{/snippet}
{#if form?.suggestionError}

{form.suggestionError}

{/if} {#each data.revisions as revision}
REVISION {revision.version}

{revision.name}

{revision.status.toUpperCase()}

{revision.notes || 'No revision notes.'}

{revision.stages.length} STAGES · {revision.profiles.length} ATTRIBUTE PROFILES
{#if revision.status === 'draft'}{#if canPublish}{/if}{/if}
{#if publishingId === revision.id}
ACTIVATE REVISION {revision.version}?Every saved and shared build will recalculate using these rules.
{/if}
{/each}
CALIBRATION REGISTRYOBSERVED GAME VALUES + MODEL COMPARISON
{Number(data.calibrationSummary?.total ?? 0)} CASES
{#each data.calibrationCases as item}
{item.name}{item.game_version || 'GAME VERSION NOT RECORDED'} · {item.creator_name}
{Number(item.selected_weapon) === 0 ? 'PRIMARY' : 'SECONDARY'}{[item.body_hit,item.critical_body_hit,item.headshot,item.critical_headshot,item.magazine_seconds,item.reload_seconds].filter((value) => value !== null).length} / 6 CORE{item.predicted_json ? 'AVAILABLE' : 'INSUFFICIENT DATA'}{item.status.toUpperCase()}
{#if String(calibrationEditing?.id ?? '') === String(item.id)} {@render calibrationEditor()} {/if} {/each}