G
GNOSIS
ASCII prison-cosmos roguelike
Menu
Browse
Home Product Characters Web wiki Bestiary Spell omnibus Technique omnibus Item omnibus Recipe omnibus Leaderboards Steam
Live server
Active characters: 5
Gryphtopher under the Black Bell
Server mode
Access
Log in Register
More
Support Privacy Terms
combat_systems_wiki

Gnosis Combat Systems Deep Dive

This page has been reviewed against the current terminal/server build and the latest portal documentation surfaces. For exact live catalogs and tuning values, use the source-driven...

Updated
2026-04-21T07:01:55+00:00

Gnosis Combat Systems Deep Dive

Documentation Freshness (2026-04-21)

  • This page has been reviewed against the current terminal/server build and the latest portal documentation surfaces.
  • For exact live catalogs and tuning values, use the source-driven portal compendiums:
    • /bestiary
    • /spell-omnibus
    • /technique-omnibus
    • /item-omnibus
    • /recipe-omnibus
  • In-game references are available through the W wiki menu (including generated spell/component compendiums).
  • World/floor map reference is in-game via P; the website map page is intentionally hidden.
  • Multiplayer host/deployment details live in docs/multiplayer_server_wiki.md and docs/server_portal_setup.md.

Current Build Delta (2026-04-21)

  • Deep floors now have a depth-scaled chance to spawn Lizard Kingdom Gates (FeatureLizardKingdomGate).
  • Using a Lizard Kingdom Gate enters Lizard Kingdom side sites (SiteLizardKingdom) with lizard society-biased populations.
  • Lizard Kingdom floors use dedicated cave themes (Outer Warrens -> Royal Sinkhalls) and integrate with map/examine/senses/clairvoyance text.
  • : now opens a zen script planner for movement plus quoted directional combat actions (for example "attack"+d, "lthrow"+a, "parry", or 3d"piercing strike"+3s), fast/charged pacing, Up/Down history recall, F1-F3 saved slots, blue path preview, green impact-area preview, spirit-gated movement, committed sequence execution once movement starts, and burst-meter planning.
  • New reactive defense stances are live: H parry, Z spell-parry ward, and feat-gated enchanted-weapon spell parries (Spellbreaker Arms).
  • Martial content now spans broader world schools (Brazilian, Chinese boxing/monk-weapon lines, and Indian traditions) with style-specific damage-bias conversions and new technique-attack riders (kick launch, choke lock, vital-point pressure, monk sweep control).
  • Western style coverage expanded (Savate, Catch Wrestling, Rapier Fencing, HEMA Longsword, Viking Skjoldr, Roman Legionary, Hoplite Phalanx, Systema, Tower Shield Bastion), including style-themed technique attacks with explicit attack-type/damage-type/effect metadata.
  • Shield combat now supports dual-shield loadouts (for example dual tower shields) and dedicated shield-bash technique branches.
  • This update is live in terminal mode and server mode; hosted clients inherit the behavior from the game build.

This is the implementation-level combat reference for the current Go terminal build.

It describes what is actually in code now: turn costs, formulas, targeting rules, AI behavior, conditions, spell combat, Aeons, and afterlife combat.

1. Combat Loop Architecture

Combat is fully turn-based. Most combat actions resolve as:

  1. Validate action (range, line of sight, resources, target legality).
  2. Spend resource(s) if applicable (stamina/focus).
  3. Resolve hit checks and effects.
  4. Apply damage/effects/death handling.
  5. Advance simulation by turns (advanceEnemies(n)), unless negated by QuickTurns.

Important: offscreen loaded floors continue simulating, so combat choices can affect wider world state.

2. Turn Economy And Action Costs

Default combat action costs

  • Move one tile: advanceEnemies(movementCost())
  • Melee strike: 3 stamina, then advanceEnemies(1)
  • Throw: 2 stamina, then advanceEnemies(1)
  • Shoot: stamina gate 2, then advanceEnemies(1) (current code only deducts stamina on the non-splash branch)
  • Use targeted consumable: advanceEnemies(1)
  • Equip/unequip gear in inventory: advanceEnemies(1)
  • Speak (o): advanceEnemies(1) and can alert enemies
  • Standard spell cast: focus cost, then advanceEnemies(1)
  • Crafted spell cast: focus cost, then advanceEnemies(castTurns)
  • Aeon invoke: advanceEnemies(1)

Crafted spell cast time

Crafted spell turn cost uses component count:

  • castTurns = ceil(componentCount / 2)
  • Code form: (components + 1) / 2

Examples:

  • 1-2 components: 1 turn
  • 3-4 components: 2 turns
  • 5-6 components: 3 turns

Quick turns override

QuickTurns reduces enemy/world advancement first:

  • If action would advance n turns and you have q quick turns:
    • negated = min(n, q)
    • actual advancement becomes n - negated

Movement detail

  • movementCost = 1 + missingLegs (+1 if crawling or forced crawl)
  • Hunger from movement is independent of movementCost:
    • 1 hunger per 4 movement steps (0.25 per step average)

Zen script pacing and spirit budget

  • In zen script fast mode, scripted actions resolve at half-turn pacing (advanceEnemies applies 1 world turn per 2 scripted turns, rounding up at script end).
  • In zen script charged mode, scripted actions resolve at normal pacing (1 world turn per scripted turn).
  • Scripts only accept movement plus quoted applicable combat actions (equipped techniques, directional throws, parry/ward stance actions, and "attack"/"atk"); invalid/inapplicable plans are rejected before execution.
  • Scripted movement consumes spirit (1 per successful movement step) and the chain stops when spirit is depleted.
  • Spirit is now a burst-limit meter: no passive regen/decay; it is built mainly through successful combat actions and spent on committed script movement/technique lines.
  • Quoted named actions in zen scripts resolve applicable technique/throw/attack actions with optional lane hints (+w/+a/+s/+d) and optional distance hints like +3a.
  • Quoted stance actions are available in scripts: "parry" and "spell parry ward".
  • Barrage-labeled technique attacks now perform multi-hit strike chains in one turn with per-follow-up accuracy falloff.
  • Technique attacks enforce a minimum cooldown floor of 3 turns.
  • Technique attacks are mastery-gated: active technique/style rank progression unlocks higher-tier specials, and style-study rewards can unlock style-linked specials through manuals/books.
  • Piercing Strike remains a non-reposition line cut, while Impaling Rush is the matching forward-moving thrust/lunge variant.

Reactive parry stances

  • G remains guard: flat damage absorption for that incoming enemy phase.
  • H is parry: if the incoming enemy hit is successfully deflected, that hit is canceled and the player gains +1 quick turn.
  • Z is spell-parry ward: same quick-turn proc behavior, but dedicated to spell-like incoming attacks.
  • Spellbreaker Arms feat allows normal parry stance (H) to also parry spell-like attacks while wielding an enchanted weapon.

3. Resource Economy In Combat

Stamina

  • Used for physical combat actions.
  • Actual stamina cost is reduced by conditioning:
    • physicalCost = max(1, base - conditioning/2)

Focus

  • Used for spell actions.
  • Actual focus cost is reduced by memory, attunement, and feat:
    • focusCost = max(1, base - reduction)
    • reduction includes:
      • soul.Memory / 4
      • active-element attunement contribution
      • +1 if FeatArcaneConduit

Passive regen

Per world turn (tickResources):

  • Base stamina regen: 1 + conditioning/4
  • Base focus regen: 1 + memory/6
  • Spirit has no passive regeneration or decay in this model.
  • Hunger penalties reduce regen at starving/famished states
  • Sanctum increases stamina/focus/chi regeneration values

Spirit burst and chi forms

  • Landing melee/throw/shoot/technique hits builds spirit burst toward MaxSpirit.
  • Baseline offense scaling now reads current spirit (stored burst), not missing spirit.
  • Chi forms can add in-combat burst effects:
    • Kaioken Blood Overdrive: spends chi and health during combat pressure to spike spirit gain.
    • Hamon Healing Breath: spends chi during combat pressure to heal and sustain burst tempo.

4. Hit Resolution Core Formula

Global hit check:

  • finalChance = clamp(chance - defense, 18, 96)
  • Hit if rand(0..99) < finalChance

This means all attacks have:

  • hard floor: 18%
  • hard ceiling: 96%

Damage roll:

  • Uniform integer roll in [minDamage, maxDamage]

5. Player Combat Pipelines

Melee

Base flow:

  • Stamina gate (3)
  • Build min/max/accuracy from weapon or unarmed base
  • Apply:
    • offhand contribution (if valid dual setup)
    • missing-limb penalties
    • skill bonus (applyCombatSkillBonus)
    • persistent unarmed knowledge bonuses
    • feat bonuses
    • active martial style bonuses
    • true-name attack bonuses
  • Hit roll: rollHit(60 + acc*7, target.Defense*8)

Throw

Base flow:

  • Stamina gate (2)
  • Compute throw range with arm/eye penalties and martial range bonus
  • Use projectile preview/path collision
  • Accuracy baseline:
    • 62 + (grace + weaponAcc)*6 - eyePenalty*8
    • plus throwing skill, feats, martial bonuses
  • Hit roll against actor defense:
    • rollHit(accuracy + trueNameAccBonus*6, target.Defense*8)
  • Thrown item leaves inventory and lands on impact tile

Shoot

Base flow:

  • Stamina gate (2)
  • Range from weapon shoot range with arm/eye penalties + martial modifiers
  • Accuracy baseline:
    • 64 + (grace + weaponAcc)*6 - missingArms*8 - eyePenalty*8
    • plus marksmanship skill, feats, martial bonuses
  • Hit roll against actor defense:
    • rollHit(accuracy + trueNameAccBonus*6, target.Defense*8)
  • Splash weapons:
    • apply AoE damage to affected points
    • off-center targets take reduced damage
    • current implementation checks stamina availability but does not deduct stamina on the splash branch

Targeted consumables

  • Use shared range selector and AoE preview.
  • Can deal damage, reveal, heal/buff, deploy traps/security, apply oils, etc.
  • Always consumes a turn when successfully used.

6. Modifier Stack (Damage / Accuracy)

Major combat modifiers currently in use:

  • Stats (Vigour, Grace, Wit, Faith)
  • Weapon profile and enchantments
  • Skill ranks (weapon domain, throwing, marksmanship, spellcraft)
  • Feats (for example Pugilist, WeaponSpecialist, Sharpshooter, ThrowSavant)
  • Active martial style
  • Persistent teachings and known unarmed styles
  • True-name knowledge / named-state pressure
  • Element mastery + attunement + active element
  • Oil buffs on equipped weapon
  • Body penalties (missing arms/legs, eye penalty; one missing eye is a penalty, not full blindness)

True-name combat effects

If you know target true name:

  • +1 min damage
  • +1 max damage
  • +1 accuracy

If target is currently name-pressed (NamedTurns > 0):

  • additional +1 min damage
  • additional +2 max damage
  • additional +2 accuracy

7. Targeting System (Range Selector)

All aimed systems use the same targeting UI (t/f/z/X/Aeon/item), but crafted formulas also carry a forge-time target profile.

Validation includes:

  • map bounds
  • range limit
  • visibility requirements
  • line-of-sight requirements
  • projectile blocking (doors/walls/barricades/hidden doors)
  • target legality (merchant, ally, self-only rules, etc.)

Preview types:

  • projectile preview
  • shot preview (with splash)
  • tile preview
  • AoE preview
  • teleport preview
  • special previews (for example Hollow Wolf lunge)

X (examine) uses selector UI but does not consume a turn.

8. Enemy Combat AI (Player Floor)

Perception and pursuit

  • Enemies need line of sight to actively see player (enemyCanSeePlayer).
  • If seen, they store player as LastKnown.
  • If line of sight breaks, they move toward last known position.
  • Once they reach last known position without reacquiring, they clear it and wander/search.

Invisibility detection

If player is invisible, detection uses a chance roll:

  • Base from actor accuracy and distance
  • Caster/elite enemy kinds get bonus detection chance
  • Sneaking and acrobatics reduce detection
  • Final chance clamped 3..82

Behavior priorities

  1. Handle control states (pacified, restrained, fear).
  2. Drag helpless player if adjacent and possible.
  3. Melee if adjacent and line of sight.
  4. Special logic (necromancer summon when available).
  5. Ranged fire in preferred distance band.
  6. Reposition (step away if too close for ranged profile).
  7. Path to last known.
  8. Wander/search.

Enemy hit formulas vs player

  • Melee: rollHit(58 + actorAcc*7, playerGrace*5)
  • Ranged: rollHit(60 + actorAcc*7, playerGrace*4)

Notable enemy combat extras

  • Goblin melee can steal obols.
  • Necromancer can summon Bone Wretch (cooldown-gated).
  • False angel ranged can force sleep.
  • Sorcerer ranged can inflict temporary anosmia.
  • Aeon boss ranged can inflict temporary deafness.
  • Demon/guardian/aeon melee have higher limb-maim pressure.
  • Enemies can break barricades.

9. Actor-vs-Actor Combat (Ambient Sim / Minions / Faction Fights)

Non-player actor combat uses ambient formulas:

  • Melee: rollHit(58 + acc*7, defense*8)
  • Ranged: rollHit(60 + acc*7, defense*8)

Actors use combat profiles including equipped gear bonuses. This is what drives:

  • offscreen faction fighting
  • minion/servitor engagements
  • ecosystem predation loops

10. Control, Status, And Attrition Effects

Player-side states relevant to combat

  • Blind, Deaf, Mute, Anosmic
  • Sleeping, Unconscious
  • Crawling / forced crawl
  • Toxicity overflow
  • Burning/regen/oil timers
  • Invisibility / muffle timers
  • Limb wounds/loss/prosthetics

Actor-side states relevant to combat

  • Restrained
  • NamedTurns
  • BurningTurns
  • SoulTrapTurns
  • PacifiedTurns
  • FearTurns
  • FrenzyTurns
  • CourageTurns
  • InfectedTurns + infection spread potency

All transient actor states tick down per world turn; some apply periodic damage or behavior overrides.

Ward behavior

  • Ward is a pre-HP buffer.
  • Incoming damage is absorbed by ward first.
  • Remaining damage then hits HP.

11. Grapple / Interrogate / Rob (Close-Control Combat)

These are combat-adjacent control actions:

Grapple

  • Cost: 3 stamina
  • Check:
    • attack side: 58 + vigour*7 + grace*4 - missingArms*12
    • defense side: target.Defense*8 + target.Accuracy*5 + target.MaxHP/2
  • On success applies restraint turns and naming pressure.

Interrogate

  • Requires restrained target
  • Cost: 3 focus
  • Check:
    • attack side: 56 + wit*7 + faith*5 + soul.Memory*2
    • defense side: target.Defense*7 + target.HP
  • On success can expose true name and extract knowledge.

Rob/Search restrained target

  • Requires restrained target
  • Cost: 2 stamina
  • Check:
    • attack side: 58 + grace*7 + wit*5 - missingArms*10 (+sneak bonus if sneaking)
    • defense side: target.Defense*6 + target.Accuracy*4 + target.HP/2

Each of these advances turns and can shift nearby combat state.

12. Spell Combat

Standard spells

  • Focus cost from standardSpellFocusCost(name), then reduced by focusCost.
  • Usually 1-turn cast time.
  • Uses the standard target modes (self, actor, area, tile) and preview validation.
  • Cooldowns tracked per spell key.

Crafted spells

  • Focus cost from craftedSpellFocusCost(spell), then reduced by focusCost.
  • Target profile is chosen at forge time (self, single, or chain).
  • Targeting depends on form:
    • Bolt: projectile actor line
    • Halo: AoE
    • Step: teleport tile
    • Veil: self-cast
  • Cast time scales with components (ceil(n/2) turns).
  • Cooldown scales by school/element/attunement/mastery adjustments.
  • Power scales with stats, attunement, mastery, table/form/element/school, and spellcraft skill.

Self-targeting support

The system supports self, actor, and area targeting paths. Crafted formulas can also lock in self/single/chain subject behavior at forge time, which is why the same form can become a self spell, a target spell, or a chain spell. Many defensive/utility/control spells can be self-cast (directly or via composition).

13. Aeon Combat

Two bound Aeon slots can be invoked in combat.

Current invoke profiles:

  • Cinder Saint: ranged AoE burst
  • Glass Widow: short-range blink + ward
  • Sepulchral Tutor: reveal + AoE strike
  • Iron Choir: large ward + heal
  • Hollow Wolf: lunge setup into melee strike

Aeon invoke consumes a turn and applies per-Aeon cooldown.

14. Afterlife Combat Model

Afterlife is a separate combat mode with soul stats and Noss chain battles.

Chain sizes

  • Normal death: 3 Noss encounters
  • Final-trial death: 4
  • Grand trial (level 9999): full 72 Noss chain

Core afterlife actions

  • a: strike
  • f: soul-shot ranged
  • G: guard (ward generation)
  • H: parry stance
  • Z: spell-parry ward stance
  • n: speak true name (instant dismiss if known)
  • z: spells/formulas allowed in afterlife

Afterlife combat formulas

  • Strike damage: scales from Echo/Faith/Wit and RNG
  • Soul-shot hit chance: clamped formula with Grace/Wit/Insight vs judge accuracy
  • Guard adds ward from Faith/Wit scaling
  • Judge attack chance and damage scale by encounter stats and trial depth context
  • Ward absorbs damage first, then soul HP

Final victory condition is clearing all required chain encounters; grand trial clear is game win.

15. Multiplayer Combat Turn Sync (Observer Rule)

On server mode, if two players mutually observe each other:

  • acting player may be blocked until observed players resolve their own turn
  • UI reports waiting state
  • this applies to combat turns the same as other actions

Outside mutual observation, players continue on independent local turn progression.

16. Practical Combat Tuning Knobs (For Design Iteration)

High-impact tuning fields:

  • rollHit clamp bounds and attack/defense coefficients
  • stamina/focus base costs
  • movement cost and quick-turn generation
  • enemy preferred range bands and cooldowns
  • limb-maim probabilities
  • crafted spell cast-turn formula
  • affliction durations and cleanse rates
  • invisibility/speech detection formulas
  • ward generation/decay rate sources

17. Related Docs