Initial import of HEROLL source and design documents
This commit is contained in:
@@ -0,0 +1,27 @@
|
||||
"key","original_status","mvp_default","type","range","rationale","source","label"
|
||||
"enemyTilesPerLoop","serialized field confirmed; original scene value not recovered","3 attempts per normal loop","integer","0..40","keeps the board playable while preserving the real configuration entry","BoardController field + AddNextLoopTiles native call","DEMO default"
|
||||
"blackMarketSurchargePercent","formula confirmed; percentage unknown","50","integer percent","0..300","reproduces the former 1.5x demo while keeping the source formula","Black Market price native path","DEMO default"
|
||||
"bossPressureTargetCountWhenShort","normal target=4; shortage behavior unknown","require exactly 4 eligible distinct non-AUGMENT tiles; if fewer than 4, delay with no partial conversion and keep gauge full","rule","exactly 4","MVP does not downgrade the pressure action","DiceGauge reverse report + v0.2.8 design decision","MVP frozen"
|
||||
"bossPressureResolvedTile","restoration behavior unknown","convert resolved pressure tile to Empty; do not restore overwritten tile","enum","Empty","deterministic and avoids resurrecting consumed rewards","residual risk in stage-floor report","DEMO default"
|
||||
"bossPressureGaugeCycle","source normal path is 0->50->100","enter stage at 50; add 25 per completed player action; at 100 start 4-roll countdown; after pressure action reset to 0","rule","0..100","creates the approved initial 2-action then repeating 4-action pressure cycle","source reverse + v0.2.8 intentional deviation","MVP frozen"
|
||||
"bossPressureCounterUI","exact original presentation unknown","warning icon plus 4/3/2/1 countdown; never replace visible 0/50 progress","UI rule","hidden/off or warning","keeps three state variables distinct","runtime observation + reverse report","DEMO default"
|
||||
"combatDropDisplayCapacity","finite capacity confirmed; exact count unknown","10; when the 11th arrives replace the oldest unhandled drop FIFO with explicit feedback","integer","10","separates four equipped slots from the ten-item drop display","runtime observation + v0.2.8 design decision","MVP frozen"
|
||||
"randomShopDraw","3 random slots confirmed; full weighting/exclusion not closed","equal weight, without replacement, 3 offers","rule","0..3 visible","exclude disabled, sold-out, owned unique and unmet dependency offers","shop metadata/native partial","DEMO default"
|
||||
"shopTileInstallTarget","purchase exists; exact target selection not closed","random legal ordinary small tile; block purchase and do not charge if none","rule","eligible small tiles","atomic transaction and no reward loss","shop catalog + unresolved consumer","DEMO default"
|
||||
"augmentCandidateDraw","31 enabled all prob=10; runtime exclusion order partial","filter first, equal-weight without replacement, show exactly 3; if fewer than 3 treat as configuration error and block resolution","rule","exactly 3 visible","never fill with duplicates; all definitions return to the pool after selection and are filtered again next time","augment.csv + v0.2.8 design decision","MVP frozen"
|
||||
"augmentRerollNoRepeat","exact replacement exclusion unknown","replace all three; avoid the currently displayed IDs where pool permits","rule","once per event if enabled","prevents a no-op reroll","MVP interaction rule","DEMO default"
|
||||
"goodDeckFailedInstallConsumption","draw/deck behavior confirmed; failure consumption edge unknown","consume the drawn metadata attempt; reshuffle only after deck exhaustion","rule","boolean","preserves attempt semantics and deterministic RNG","GetNextMetadata/AddRandomGoodTiles partial","DEMO default"
|
||||
"integerAffixRandom","min/max formula confirmed; endpoint behavior not closed","uniform real draw over inclusive conceptual range, then round half up to integer","RNG rule","rounded integer","uses one explicit rounding policy","equipment reverse residual + v0.2.8 design decision","MVP frozen"
|
||||
"floatAffixRandom","one-decimal precision confirmed; endpoint behavior not closed","uniform real draw over inclusive conceptual range, then round half up to 0.1","RNG rule","rounded to 0.1","matches displayed precision","weaponstatus.csv + v0.2.8 design decision","MVP frozen"
|
||||
"maxHpDecreaseCurrentHp","consumer edge behavior unknown","currentHP=min(currentHP,newMaxHP), no damage/death event","rule","clamp","prevents equipment swap from triggering combat damage hooks","unresolved runtime edge","DEMO default"
|
||||
"attackSpeedChangeTiming","source uses real-time cooldown scheduling","apply to the next cooldown scheduled after the current attack completes; do not retroactively rescale an active attack or cooldown","rule","next cooldown","preserves deterministic scheduling in the source-aligned real-time model","combat native reverse + v0.2.8 decision","source-aligned edge rule"
|
||||
"bossMidFightDropHp","mid-fight drop observed; exact threshold/phase unknown","first crossing to HP <= 50%, once per boss fight","percent","1..99","documented v0.2.7 validation value","runtime observation","DEMO default"
|
||||
"normalEnemyDeathReward","death-time generation path confirmed; probabilities unknown","one weighted result: gear 95, potion 4, points 1","relative weights","95:4:1","stable validation economy","v0.2.7 frozen reward pacing","DEMO default"
|
||||
"eliteEnemyDeathReward","exact elite rule unknown","1 gear plus one extra result from potion:points=5:2","rule","fixed + weighted","stable elite differentiation","v0.2.7 frozen reward pacing","DEMO default"
|
||||
"floorPointReward","original loop rewards use different resources; MVP mapping is not source","10 + 5 * displayedFloor points","integer formula",">=15","closed local-run economy","v0.2.7 design","DEMO default"
|
||||
"originalRewardFloatRounding","stage multiplier rows confirmed; rounding unknown","floor after multiplication","rounding","nonnegative integer","single deterministic policy","ingamereward.csv residual","DEMO default"
|
||||
"finalStartRemainingSteps","boss branch exists; overflow movement edge not fully observed","preserve remainingSteps on boss-floor conversion; if zero require one additional Roll before Boss battle","rule",">=0","implements the approved Boss-board landing semantics","Start branch + v0.2.8 design decision","MVP frozen"
|
||||
"diceBattleTie","tie consumer not fully closed","dealer wins ties","enum","dealer/player/retry","standard house-edge fallback and single-exit state","GoodEventDiceBattle partial","DEMO default"
|
||||
"luckyScratchRevealThreshold","gesture completion threshold not recovered","65% revealed area","percent","50..90","prevents pixel-perfect scratching","GoodEventSpito UI residual","DEMO default"
|
||||
"forgeMaxQuality","80/50/30/10 steps confirmed; Arcane transition not closed","cap at Myth; Arcane cannot be forged","enum","Myth","four transitions from Normal align with four probabilities","Forge config/runtime residual","DEMO default"
|
||||
"housingRewardPerHouse","Housing Support rolls two independent D6 and rewards by actual houses built; exact house-to-point mapping is not recovered","1 spirit stone per successfully built house","integer","1","closes the construction event economy without presenting the value as an original rule","CornerDiceBuilding reverse + v0.2.8 design decision","DEMO default"
|
||||
|
@@ -0,0 +1,14 @@
|
||||
"key","value","execution_rule","source_status","source"
|
||||
"buildingCarrier","exterior house layer","A house is attached to a small tile's exterior slot and never replaces its movement tile, event, or enemy content","MVP frozen","v0.2.8 building-module decision"
|
||||
"exteriorSlotCapacity","1 per ordinary small tile","A slot is eligible only when it has no house and belongs to the configured upcoming board side","MVP frozen","v0.2.8 building-module decision"
|
||||
"housingSupportTileId","129","Landing on Housing Support opens the construction event and performs one two-die construction roll","source-aligned","newtile.csv + CornerDiceBuilding reverse"
|
||||
"baseConstructionAttempts","D6_A + D6_B","Roll two independent six-sided dice once; their sum is the number of base construction attempts","source-aligned","CornerDiceBuilding reverse"
|
||||
"urbanPlanningBlessingId","152","If owned, add 2 construction attempts once per Housing Support event; the blessing is unique and does not stack","source structure + MVP consumer freeze","augment.csv EmptyTripleBuild"
|
||||
"placementOrder","next clockwise board side","Starting after the Housing Support Corner, collect empty exterior slots on the following side and choose distinct slots without replacement using the run RNG seed","MVP executable edge","v0.2.8 geometry freeze"
|
||||
"actualBuiltCount","min(totalAttempts, eligibleSlotCount)","Every selected eligible slot succeeds; unused attempts are discarded","source-aligned cap + MVP edge","CornerDiceBuilding reverse + v0.2.8"
|
||||
"reward","actualBuiltCount * 1 spirit stone","Grant the reward after placement animation; the exact original reward conversion remains unknown","DEMO default","04-unknown-parameter-mvp-defaults.csv"
|
||||
"zeroEligibleSlots","build 0 and reward 0","Show a no-space result, complete the event, and do not reroll or relocate to another side","MVP frozen","v0.2.8 building-module decision"
|
||||
"persistence","until final Boss Floor","Houses survive loop/Floor progression and Good/Enemy/Empty mutations of the underlying tile because the exterior layer is independent","MVP frozen","v0.2.8 building-module decision"
|
||||
"ongoingEffect","none","A built house has no passive income, combat bonus, or tile-trigger modification in MVP","MVP scope freeze","v0.2.8 building-module decision"
|
||||
"finalBossCleanup","clear every exterior house","Clear houses in the same board-conversion transaction that replaces all 44 positions with Boss Tiles","MVP frozen","v0.2.8 final Boss rule"
|
||||
"saveState","slot occupancy + construction RNG result","Persist occupied slot IDs, both dice values, selected slot IDs, reward, seed, and ruleset version at the event safety point","MVP frozen","v0.2.8 determinism requirement"
|
||||
|
@@ -0,0 +1,136 @@
|
||||
# HEROLL 2.0.1 Good Tile 与 Corner 规则逆向报告
|
||||
|
||||
> 仅限本机内部玩法验证。本文只分析 HEROLL;其他项目资料不构成证据。
|
||||
|
||||
## 结论摘要
|
||||
|
||||
用户指定的六个 Good Tile 已闭合为六套独立状态机:Chest、Forge、Dice Battle、Lucky Scratch、Claw Machine、Dicereel。用户所说的“四类 Corner”不是 `newtile.csv` 中全部 Corner,而是 `ingamereward.csv` 基础四项 `126–129`:Piggy Bank、Race、Flower Garden、Housing Support。原作另有 Wall of Thorns、Black Market、Dice Catapult、Warp;本文列出它们用于防止配置误归类,但不把它们伪装成基础四类。
|
||||
|
||||
最重要的纠错:
|
||||
|
||||
- Chest 一次生成 **3 件**随机局内装备,不是旧验证表中的 1 件。
|
||||
- Dice Battle 没有“支付 3 点下注”的证据。配置 `3,10,2.5,5,10` 与原生字段更支持“开局 3 骰、首胜 10 点、连胜倍率 2.5/5/10”。
|
||||
- Lucky Scratch 对应 `GoodEventSpito(169)`,不是 `GoodEventLotto(142)`;后者是另一个 Drawing Lots/抽签事件。
|
||||
- Claw 2.0.1 配置为基础 `1` 次、`15` 秒;截图中的 2 次处于额外继续入口。社区资料所称“两次基础抓取”属于版本冲突,开发还原以本 APK 为准。
|
||||
- Dicereel 的 `value` 列不是概率。奖励由三骰配对/三连模式决定;不能拿 `20,25,50...` 归一化成掉率。
|
||||
|
||||
完整结构化规则见 [good-tile-rules.csv](tables/good-tile-rules.csv)、[corner-rules.csv](tables/corner-rules.csv) 与 [event-reward-tables.csv](tables/event-reward-tables.csv)。
|
||||
|
||||
## 1. 统一进入与退出框架
|
||||
|
||||
```text
|
||||
完成普通移动
|
||||
→ HandlePlayerTileLanding(tile)
|
||||
→ GetETileEvent(ETileEvent)
|
||||
→ ExecuteAsync(tile)
|
||||
→ 锁定下一次掷骰/移动
|
||||
→ 事件 UI 或被动 Corner 状态机
|
||||
→ 结果写入角色/棋盘状态
|
||||
→ 完成动画与回调
|
||||
→ ExecuteAsync 返回
|
||||
→ 恢复棋盘操作
|
||||
```
|
||||
|
||||
自然生成资格先受 `newtile.isEnabled/minStage/minLoop` 过滤;玩家安装地块则来自 `OutGameTile.refNewTileId` 牌组。两条入口进入的是同一事件执行器。`minLoop` 为零基索引,因此 `minLoop=3` 对应内部第 4 个 Loop,而不是可随意解释为 UI 第 3 层。
|
||||
|
||||
原作普遍使用 `isClick/isPicking/isRolling/canGrab/isResetting` 做重复输入保护。没有证据显示 2.0.1 会给局内小游戏建立独立、可恢复的事务快照;因此“进程被杀后精确恢复半局小游戏”不能写成原作规则。复刻时应在结果 RNG 产生后、表现前保存 `eventInstanceId + result + committed`,但这是工程防护,不是逆向确认的原作功能。
|
||||
|
||||
## 2. Good Tile 详细规则
|
||||
|
||||
### 2.1 Chest(141)
|
||||
|
||||
- 条件:启用,`minStage=0/minLoop=0`;默认 Good Tile 牌组也包含其 Rare 版本。
|
||||
- 操作:打开宝箱;一次生成 3 个独立装备实例。装备使用正常局内生成器,因此等级、品质、词条仍服从装备掉落报告,而不是 Chest 专属固定表。
|
||||
- 成败:必定完成,无空奖失败分支。
|
||||
- 奖励:3 件装备同时进入常规掉落/比较流程;是否装备由玩家后续决定,未选择项按正常掉落处理。
|
||||
- 退出:三次生成与飞入表现结束后,事件回调返回;不能在只生成 1–2 件时恢复棋盘。
|
||||
- 异常:打开按钮需幂等;如果资产或生成器异常,原生只有空引用防崩路径,没有补偿表。复刻应把三件实例作为一个原子批次保存。
|
||||
|
||||
### 2.2 Forge(137)
|
||||
|
||||
- 条件:启用,`minStage=0/minLoop=0`;落地创建一件 Normal 候选装备。
|
||||
- 操作:玩家在“直接领取”和“挑战强化”之间选择。强化成功后仍可领取或继续挑战。
|
||||
- 概率:当前 2.0.1/GDD 证据链采用 `80% → 50% → 30% → 10%` 四步。它支持从 Normal 逐步向更高品质推进;Arcane 是否可由 Forge 获得没有闭环,不能擅自加入。
|
||||
- 成功:候选装备升一档,继续显示下一档概率。
|
||||
- 失败:候选销毁,事件立即结束,不获得该装备。
|
||||
- 奖励:只有“直接领取”或最终停止时的当前候选装备。
|
||||
- 异常:强化点击必须在 RNG 结果写入后锁死;返回/重复点击不得重投。社区旧页记录 `80/50/10`,与当前四步版本冲突,本文不采用旧页覆盖 APK。
|
||||
|
||||
### 2.3 Dice Battle(143)
|
||||
|
||||
- 条件:启用,`minStage=0/minLoop=3`;落地打开 `BlackJackView`。
|
||||
- 操作:玩家初始掷 3 颗 D6;可反复 `HIT` 增加一颗或 `STAND`。对手随后自动行动。
|
||||
- 判定:目标是不超过 21 且比对手更接近 21。玩家超过 21 立即失败。原生只有 `UserWin/DealerWin` 两个终局函数,未发现独立 Push 奖励;平局进入 DealerWin 是强推断,需一条平局录像才能升级为确认。
|
||||
- 奖励:首次连胜基础 10 点;`GetCalculatedReward = baseReward × GetStreakMultiplier + accumulatedBonus`。配置提供 2.5、5、10 三档连胜倍率。胜利后可领取或继续;失败丢失尚未领取的连胜奖励。
|
||||
- 退出:领取提交并关闭;继续会重置双方本手、保留 winStreak;失败关闭且无领取。
|
||||
- 异常:`isRolling` 时 HIT/STAND 禁用。奖励在领取时计算,不能在每次胜利同时发放再允许重试,否则会重复产出。
|
||||
|
||||
### 2.4 Lucky Scratch(169)
|
||||
|
||||
- 条件:`minStage=1/minLoop=3`;这也解释了它不会在第 1 关 Stage 0 自然出现。
|
||||
- 操作:奖励先按权重选定,玩家拖动擦除遮罩。`ScratchPainter` 达到 prefab 的 `revealThreshold` 后只触发一次 `OnRevealed`。
|
||||
- 奖励:一等奖 30 点/权重 10,二等奖 10 点/权重 50,三等奖 1 点/权重 40。总权重 100,无空奖。
|
||||
- 退出:揭示并展示奖励后回调结束。局内版本不应把 `GoodEventLotto` 的五次抽签成本带进来。
|
||||
- 异常:`isRevealed` 防重复;`OnDestroy` 清理渲染纹理和订阅。遮罩阈值是 prefab 序列化字段,当前归档没有给出可靠数字,必须以原资产值或实机标定,不能填造百分比。
|
||||
|
||||
### 2.5 Claw Machine(151)
|
||||
|
||||
- 条件:启用,`minStage=0/minLoop=0`;进入时创建物理柜和胶囊。
|
||||
- 操作:抓钩自动横移;15 秒内按一次 `GRAB`,执行下落、闭爪、回程与投放。
|
||||
- 次数:2.0.1 基础值为 1。参考图中的“2 次”属于额外继续按钮;不应当作基础次数。
|
||||
- 胶囊:源表注明布局 20 个胶囊;一件 Legendary 装备为 guaranteed-good,位于底部。其余普通池按 `empty 40 / point 70 / potion 14 / Normal gear 40` 加权。Rare、Epic、祝福、药水祝福基础权重为 0,只有技能/额外状态可注入。
|
||||
- 成功:胶囊进入收集触发器才发对应奖励。夹起后途中掉落仍算失败。
|
||||
- 失败:时间到、回程无胶囊或抽到 empty 均不发奖。
|
||||
- 异常:`canGrab/isResetting` 阻止二次抓取,`OnDisable` 取消移动,奖励在 `OnCapsuleCollected` 触发,不在按键时预发。
|
||||
|
||||
### 2.6 Dicereel(164)
|
||||
|
||||
- 条件:启用,`minStage=0/minLoop=3`。
|
||||
- 操作:启动三格骰面转轮;结果使用 1–6 六种图标。逻辑按任意一对或三连归类,三颗均不同为空奖。
|
||||
- 奖励:完整 13 行映射见 `event-reward-tables.csv`。三连优先于对子;对子行的 `-1` 表示第三颗必须不参与该对,而不是通配后把三连重复结算。
|
||||
- 免费结果:面 3 的对子给 1 次免费转,三连给 2 次;免费次数回到同一状态机,不重复进入地块。
|
||||
- 退出:本次结果动画完成且免费次数为 0 后结束。`isClick/isAnyFail` 防止重复停止或重复发奖。
|
||||
|
||||
## 3. 基础四类 Corner
|
||||
|
||||
### Piggy Bank(126)
|
||||
|
||||
它是跨回合被动容器。只要该 Corner 存在,每次正常双骰掷出对子 `A,A`,向罐内加入 **A** 点,而不是骰子和 `2A`。玩家落到 Piggy Bank 时一次性领取余额并清零。非对子没有失败提示,也不改变余额。
|
||||
|
||||
### Race(127)
|
||||
|
||||
落地后启动 3-roll 计数。玩家继续执行普通棋盘掷骰;在三次内到达/跨过 Start 即成功,获得 1 件 Legendary 局内装备。第三次结算后仍未到达则失败、无奖励。`TryAddCornerRace` 表明竞速不能叠加创建;成功或失败均清除覆盖层与计数。
|
||||
|
||||
### Flower Garden(128)
|
||||
|
||||
落地后把“前方下一整行”所有可转换普通格改成 Chest。它没有骰子判定、失败率或额外领取按钮。Corner、Start 与受保护地块不是转换目标。公开说明的“every tile”应理解为该行可变地块,而不是覆盖角落/起点控制格。
|
||||
|
||||
### Housing Support(129)
|
||||
|
||||
落地后玩家掷两颗独立 D6,以和 `A+B` 作为建房尝试数,在下一行的可用格建房;实际数量受可用格上限限制。随后按实际建成数给点数。原生分支确认双骰、位置映射、逐项建造和奖励阶段,但 APK 暴露表中没有房屋数到点数的可读映射,本地化 bundle 也只含空壳 `New Table_en`;因此“每房 1 点”只能作为实现候选,不能标成原作确认值。该项是本报告唯一会影响奖励量的残余未知。
|
||||
|
||||
## 4. 异常与恢复验收矩阵
|
||||
|
||||
| 场景 | 原作证据支持的行为 | 复刻验收要求 |
|
||||
|---|---|---|
|
||||
| 连点进入/结果按钮 | 各视图有 click/rolling/picking 状态锁 | 同一事件实例只生成一次结果 |
|
||||
| 切后台 | 异步状态仍等待;Claw 可取消移动 | 恢复时显示既定结果,不重抽 |
|
||||
| 动画中退出 | 原作无独立安全点证据 | 表现可重播,资源不可重发 |
|
||||
| 奖励生成异常 | 原生以空对象检查为主,无补偿表 | 保持事件未提交并允许安全重试 |
|
||||
| Claw 夹取途中销毁视图 | OnDisable 取消、未进收集区不发奖 | 不根据“抓钩曾接触”发奖 |
|
||||
| Scratch 重复达到阈值 | isRevealed 单次触发 | OnRevealed 必须幂等 |
|
||||
| Race 中断 | 未发现独立 race checkpoint | 复刻需保存 rollsLeft/active/rewarded |
|
||||
| Corner 批量改格中断 | 未发现半批次恢复 | 目标列表和改格结果应原子提交 |
|
||||
|
||||
## 5. 证据、冲突与残余未知
|
||||
|
||||
Evidence → Finding → Design:
|
||||
|
||||
1. `newtile/outgametile/outgametileskill` 与三个小游戏配置表 → 事件 ID、门槛、基础值、奖励映射 → 结构化规则表。
|
||||
2. IL2CPP metadata 与 31 个 ARM64 方法切片 → 独立事件类、输入锁、状态回调、奖励函数 → 状态机与异常矩阵。
|
||||
3. 用户 `局内说明/局内_part4` → Chest 三装备、Forge 80% UI、Scratch 30/10/1、Claw 额外次数层级 → 纠正旧 GDD 假设。
|
||||
4. 社区 Tiles 页 → 自然语言名称、Race 三次、Corner 效果、Chest 三件与旧版 Claw/Forge 文本 → 仅作语义交叉验证,不覆盖 2.0.1 配置。
|
||||
|
||||
残余未知只有两项:Housing Support 的精确点数换算;Dice Battle 平局是否由 DealerWin 处理。它们已明确标记,未用近似值冒充逆向结论。
|
||||
|
||||
公开交叉资料:[Heroll Wiki – Tiles](https://heroll.fandom.com/wiki/Tiles)。
|
||||
@@ -0,0 +1,12 @@
|
||||
# 03-建筑
|
||||
|
||||
地块外侧房屋、营造司掷骰、都市计划、建设奖励、持久化与终局清理。
|
||||
|
||||
## 文件
|
||||
|
||||
- [04-unknown-parameter-mvp-defaults.csv](./04-unknown-parameter-mvp-defaults.csv) — contract;来源:`analysis/mvp-rules-closure/04-unknown-parameter-mvp-defaults.csv`
|
||||
- [06-building-rules.csv](./06-building-rules.csv) — contract;来源:`analysis/mvp-rules-closure/06-building-rules.csv`
|
||||
- [corner-rules.csv](./corner-rules.csv) — table;来源:`analysis/tile-event-rules/tables/corner-rules.csv`
|
||||
- [Housing Support逆向依据.md](./Housing%20Support%E9%80%86%E5%90%91%E4%BE%9D%E6%8D%AE.md) — report;来源:`analysis/tile-event-rules/2026-09-01_逆向-HEROLL-GoodTile与Corner规则-report.md`
|
||||
|
||||
模块内Markdown与CSV均来自同一v0.2.8规则域;跨模块综合报告会在相关模块中保留副本。
|
||||
@@ -0,0 +1,9 @@
|
||||
tile_id,source_id,display_name,group,min_stage,min_loop,entry,player_input,success_failure,reward_or_effect,exit_exception,confidence
|
||||
126,CornerDoubleStack,Piggy Bank,core_four,0,0,"corner exists on board; doubles are observed globally while it is present","none while charging; land on the bank to collect","no fail state; a non-double adds nothing","each double A=A adds A points to the bank, not 2A; landing transfers the full stored balance to player points and resets it to zero","passive state survives ordinary tile events; collection is one settlement; duplicate receipt must not pay twice",high
|
||||
127,CornerRace,Race,core_four,0,0,"landing starts a race only when no race is already active","make normal board rolls and reach/pass the Start tile within the next 3 rolls","success on reaching Start within 3 rolls; fail when the third roll ends without reaching Start","success gives one Legendary in-run gear; failure gives nothing","TryAddCornerRace prevents stacking; success/fail clears race overlay and counter; interrupted run has no separately proven race checkpoint",high
|
||||
128,CornerOneLineChest,Flower Garden,core_four,0,0,"landing resolves the next board row/line","no choice; transformation animation plays","no random failure","every transformable ordinary tile in the upcoming row becomes Chest; corner/start/protected tiles are not targets","event ends after line transformation; if no eligible target, it completes with zero changes; partial-animation crash behavior is not source-confirmed",high for effect; medium for empty-candidate fallback
|
||||
129,CornerDiceBuilding,Housing Support,core_four,0,0,"landing opens its two-dice construction event","roll two independent D6 once","no random failure; constructed count is capped by eligible spaces in the upcoming row","attempt to build A+B houses in the upcoming row and grant points according to actual houses constructed; exact point lookup/multiplier was not recoverable from exposed CSV/localization","dice/result input is single-flight; finishes after construction/reward animation; seed and chosen positions must be persisted in a reproduction",high for construction; partial for point amount
|
||||
125,CornerKillOneLineEnemy,Wall of Thorns,additional,0,0,"landing resolves upcoming row","none","no fail state","reduce enemy count on every Enemy tile in upcoming row by 1; zero-enemy tiles are not decremented below zero","immediate callback after mutation",high
|
||||
131,CornerBlackMarket,Black Market,additional,0,3,"eligible from zero-based loop 3; landing opens market","buy with points or exit","purchase only if affordable and not sold out","higher-price shop inventory; no reroll","purchase updates total and inventory; close cleans listeners",high
|
||||
167,CornerDiceCatapult,Dice Catapult,additional,0,5,"eligible from zero-based loop 5","event-specific launch input","not part of the requested core four; detailed reward path remains outside this work item","see source event class","normal event callback",not analyzed
|
||||
175,CornerWarp,Warp,additional,0,3,"eligible from zero-based loop 3; at most 3 per game by config","none","no fail state","move hero to a random board space and resolve warp movement rules","movement uses WarpTile visual/state path; destination-event chaining requires focused capture",medium-high
|
||||
|
Reference in New Issue
Block a user