Template:SkillRollBandDef: Difference between revisions
obelisk-bot: Adding new tables for hero skill rolls |
obelisk-bot: Fixing bad field declaration |
||
| Line 7: | Line 7: | ||
{{#cargo_declare:_table=SkillRollBand | {{#cargo_declare:_table=SkillRollBand | ||
| id = String | | id = String | ||
| levels = List | | levels = List (,) of Integer | ||
| description = Wikitext | | description = Wikitext | ||
}} | }} | ||
| Line 14: | Line 14: | ||
{{SkillRollBandDef | {{SkillRollBandDef | ||
| id = String (allowed values=default,magic_levels,signature_levels,level_20_mega) | | id = String (allowed values=default,magic_levels,signature_levels,level_20_mega) | ||
| levels = List | | levels = List (,) of Integer <!-- comma-separated, e.g. "4,8,12,16,24,28,32,36,40,44,48" --> | ||
| description = Wikitext <!-- human-readable trigger explanation --> | | description = Wikitext <!-- human-readable trigger explanation --> | ||
}} | }} | ||
Latest revision as of 01:24, 19 May 2026
Small reference table — 4 rows, class-invariant — listing which levels each band_kind applies to. Every SkillRollWeightDef row's band_kind joins to a row here.
The level grid is identical across all 12 standard tables (and the 12 arena tables). Rather than embed the grid 24× into per-table data, the bot extracts it once and stores it here. If a future patch differentiates the grid per-class, this table promotes to (table_id, band_kind, levels) at the cost of 24× the rows.
Schema
This template defines the table "SkillRollBand". View table.
{{SkillRollBandDef
| id = String (allowed values=default,magic_levels,signature_levels,level_20_mega)
| levels = List (,) of Integer <!-- comma-separated, e.g. "4,8,12,16,24,28,32,36,40,44,48" -->
| description = Wikitext <!-- human-readable trigger explanation -->
}}
Field notes
idis theband_kindvalue used inSkillRollWeightDefrows. Enum of 4 fixed values.levelsis a CargoList of Integercolumn with comma delimiter. Use theHOLDSoperator to test membership in a query:WHERE levels HOLDS "20"matches every band that fires at level 20.descriptionis editor-authored prose explaining when the band fires. Bot writes a default ("Applies on the magic-milestone levels: …"); a wiki editor may rewrite for readability.
Canonical row contents
id |
levels |
description (en) |
|---|---|---|
default |
1,2,3,…,50 (50 entries) |
Applies to every level-up from 1 through 50. The baseline pool every roll draws from. |
magic_levels |
4,8,12,16,24,28,32,36,40,44,48 |
Every 4th level except 20 (which is covered by the level-20 milestone). Adds the four magic-element schools at their baseline weights — effectively doubling the chance of a magic-school offering on those levels. |
signature_levels |
5,10,15,25,30 |
Every 5th level from 5 through 30, except 20. Adds +100 weight to the table's own faction skill and +100 to the class-signature skill (battle_artistry for might, wisdom for magic).
|
level_20_mega |
20 |
The level-20 milestone — fires alone. Adds doubled magic-element weights (160/40/120/80 for day/night/space/primal) plus +100 faction and +100 class-signature. The single most-distinctive level in the roll system.
|
Why additive, not replacing
At level 20 in humans_might_skills_table, the engine produces an effective magic_day weight of 240 (= 80 default + 160 level_20_mega), not 160. This is empirically consistent with the "doubled magic at level 20" player-facing description and matches HoMM design tradition for milestone-level boosts.
Verified by working backwards: if the overlay replaced the default, faction_humans at level 20 would drop from 200 to 100 (worse than baseline) — incoherent. If the overlay adds, faction_humans goes from 200 to 300 (better at milestone) — coherent.
Related tables
- SkillRollWeight — joined on
band_kind = SkillRollBand.id(1:N from band side).
Notes
- The negative-level sentinels
[-1]and[-2]in source are not represented here.[-1]is dropped at extract (byte-identical to the default 1..50 band in every file — suspected engine fallback for a never-occurring code path; the audit flags it if a future patch breaks the equality).[-2]is the pseudo-skill fallback for "main pool can't supply 3 valid offerings" and lives in StatBonusRoll.


