Files
forge-master/GAME.md
T
2026-06-16 21:00:21 +02:00

151 lines
4.8 KiB
Markdown

# Forge Master Game Model
This document is the source of truth for game-specific rules, stat assumptions, formulas, and known limitations used by the optimizer.
## Equipment model
A build contains:
- 8 fixed core items
- 1 mount
- 3 pets
- 1 skill base-stat entry
Core item names and base stat types are fixed. Their base values are currently hardcoded from the player's known setup:
| Slot | Item | Base stat |
| --- | --- | ---: |
| Item 1 | Helmet | 1,930,000 health |
| Item 2 | Armor | 1,890,000 health |
| Item 3 | Gloves | 237,000 damage |
| Item 4 | Collar | 237,000 damage |
| Item 5 | Ring | 244,000 damage |
| Item 6 | Weapon | 398,000 damage |
| Item 7 | Boots | 1,850,000 health |
| Item 8 | Belt | 1,150,000 health |
Mounts and pets provide both damage and health base stats. Skill provides damage and health base stats only and has no effects.
## Effects
Items, mounts, and pets may have zero, one, or two effects depending on rarity. Effects start at `1%` and roll up to their cap.
| Effect | Maximum | Optimizer id |
| --- | ---: | --- |
| Crit chance | 12% | `critChance` |
| Crit damage | 80% | `critDamage` |
| Block chance | 5% | `blockChance` |
| Health regen | 4% | `healthRegen` |
| Lifesteal | 20% | `lifesteal` |
| Double chance | 20% | `doubleChance` |
| Damage | 15% | `damage` |
| Melee damage | 50% | `meleeDamage` |
| Ranged damage | 15% | `rangedDamage` |
| Attack speed | 40% | `attackSpeed` |
| Skill damage | 30% | `skillDamage` |
| Skill cooldown reduction | 7% | `skillCooldown` |
| Health | 15% | `health` |
Effects stack additively within their own effect type, then each type contributes as a multiplier in the formulas below.
## DPS formula
The current DPS model is:
```text
single hit = base damage
* (1 + damage%)
* (1 + selected style damage%)
crit hit = single hit * (1 + crit damage%)
DPS = single hit
* ((1 + attack speed%) / 2)
* (1 + double chance%)
* (1 + crit chance% * crit damage%)
* skill cooldown multiplier, only for Skill style
```
Attack speed assumption: base `100%` attack speed means about one hit every two seconds, or `0.5` hits per second. Therefore the attack-rate term is `(1 + attack speed%) / 2`.
Crit damage has no effect until crit chance is above `0%` because the crit multiplier is `1 + crit chance% * crit damage%`.
The selected combat style controls which specialized damage bonus is used:
- Melee uses melee damage.
- Ranged uses ranged damage.
- Skill uses skill damage and skill cooldown reduction.
Skill cooldown multiplier:
```text
1 / max(0.05, 1 - skill cooldown reduction%)
```
The `0.05` floor prevents division by zero or unrealistic infinite DPS if future inputs exceed known caps.
## Regen formula
The Regen metric estimates healing from health regen and lifesteal:
```text
max health = base health * (1 + health%)
health regen healing = max health * health regen%
lifesteal healing = DPS * lifesteal%
regen = health regen healing + lifesteal healing
```
The metric is a comparison estimate, not a full combat simulator.
## Survivability estimate
Some effect-total comparisons still use an estimated survivability value:
```text
survivability = max health
* (1 / max(0.05, 1 - block chance%))
* (1 + health regen%)
* (1 + lifesteal%)
```
This is used only to compare marginal defensive effects in the effect totals panel.
## Additive stacking examples
If a build already has `+100% melee damage`, adding a max `+50% melee damage` changes the melee multiplier from `2.0x` to `2.5x`.
```text
2.5 / 2.0 - 1 = +25% DPS
```
That is why the optimizer displays marginal value, not raw roll value.
## Replacement model
Players cannot directly increment or adjust an existing effect. They roll replacement items and decide whether to swap.
The app models this with the New item comparison panel:
- Select what the new roll would replace.
- Enter the new roll's base stat and effects.
- The app shows DPS and Regen change separately.
- If `Pet` is selected, the app chooses the current worst pet by piece score as the replacement target.
- Swapping in the new roll stores the replaced piece and prior New item fields so the user can swap back.
## Profiles
Profiles change sacrifice scoring and tie-breaking weights:
- Lifesteal: prioritizes DPS and lifesteal-based healing.
- Regen: prioritizes health and health-regeneration based healing.
DPS and Regen calculations themselves do not change by profile.
## Known limitations
- Exact Forge Master combat internals are not fully known.
- Enemy defense, uptime, overkill, proc timing, animation locks, and fight length are not modeled.
- Block chance is represented as effective-health style mitigation in survivability estimates only.
- Health regen timing is assumed to be comparable as a per-second-style value.
- Lifesteal assumes all displayed DPS can convert into healing.