Namespace SurvivorsMaker.Core
Classes
- AppliedEffect
Record of one apply, holding what Undo(AppliedEffect, EffectStore) needs. The previous value of a Set lives here, not on the effect, so the same effect can be applied more than once and still undo cleanly.
- ConversionOutcome
The input spent and output produced by one explicit conversion evaluation.
- DamageFormula
Damage of one hit: (base + Σ stat × coefficient) × (1 + percent stat / 100), rounded, at least MinimumDamage. Every part is a setting so games can change the formula.
- Effect
One effect: a target id, an amount and how they are stored. Items, characters, level-up choices and buffs are lists of effects.
- EffectDiagnostic
Read-only explanation of an invalid or inactive effect evaluation.
- EffectEngine
Built-in apply/undo rules for each EffectMethod.
- EffectEvaluationSettings
Effect Evaluation tuning; defaults are defined by the field initializers and can be overridden per game.
- EffectHandlers
Custom effect handlers by id.
- EffectLeaseState
Save data, separate from the shared definition. Saved conversion markers prevent replay.
- EffectStore
Raw effect totals for one player, before stat base values and limits.
- StarterStats
Ids of the starter stat set. Games are free to rename, drop or add stats; nothing in Core depends on these ids except the default of PercentStat.
- StatBuild
One player's stats: a catalog of base values plus every applied effect. Read final values with Get(string); they include the base value and the stat's limits.
- StatCatalog
The list of stats a game uses. Effects that target an id outside the catalog are reported by StatBuild instead of silently creating a new stat.
- StatDefinition
One stat a game defines: its id, starting value and optional limits.
- StatEfficiencyBinding
Maps one target stat to the stat that scales its acquisition efficiency.
- StatExplanation
An on-demand snapshot. Mutating it does not change the build or its cached evaluation.
- StatValue
Snapshot of the permanent, temporary, limited and final values for one stat.
- StatWallet
Per-combat net ledger. Income statistics and pending net settlement are intentionally separate.
- SurvivorsMakerInfo
Package information.
- WeaponMath
Weapon numbers that do not depend on the game loop.
Structs
- StatContributionDetail
A detached value record. Amount is the effective delta, not the configured operand.
- StatScaling
A stat that adds to a weapon's damage: stat value × coefficient.
Interfaces
- IEffectHandler
Rules for a custom effect, e.g. "+1 armor for every 5 max health". Register it in EffectHandlers under the id effects put in Handler.
- IStatDebitSource
Optional atomic debit capability. False must leave the source unchanged.
- IStatSource
Snapshot sources must keep values stable until Revision changes. No side effects on read.
- IStatSourceDependencies
Declare derived external sources (e.g. missing health depends on maximum health).
Enums
- EffectLifetime
Boundary at which an applied effect expires: ownership, wave or run.
- EffectMethod
How an effect writes into an EffectStore.
- EffectRounding
How a transformed effect input is reduced to discrete output bundles.
- StatContributionLayer
The evaluation stage of an explanation entry, independent of its input read layer.
- StatLimitMode
Whether a stat bound is fixed, captured on application or follows a live input.
- StatReadLayer
Which evaluation layer supplies a linked or limited effect input.