Initial import of HEROLL source and design documents

This commit is contained in:
toshiocn
2026-10-26 16:05:39 +08:00
commit fdb55672c1
1846 changed files with 290692 additions and 0 deletions
@@ -0,0 +1,12 @@
"order","branch","phase","source_status","mvp_rule","skip_on_final_boss"
"0","all","Start entry","source-aligned entry","Cross Start; lock dice and movement; store remainingSteps; finish any already-open equipment, blessing, event-reward, and shop UI before advancing the transaction.","false"
"1","shop-eligible","shop judgment and interaction","MVP ordered override","Evaluate the every-3-Floor shop condition; build 3 fixed plus 3 non-duplicate random offers; open the shop and await close. TILE purchases enter purchasedTileQueue and are not installed yet.","false"
"2","all","final Floor / Boss judgment","MVP ordered override","Evaluate Default final Floor or DiceGauge 50/50. On success replace all 44 positions with Boss Tile and retain remainingSteps.","false"
"3","all","current Floor reward","MVP ordered override","Grant the completed-Floor reward exactly once. This step runs after Boss judgment and before any normal-loop mutation.","false"
"4","normal non-final","loop commit and purchased Tile install","MVP ordered override","Increment loopIndex exactly once; install purchasedTileQueue entries in purchase order on legal ordinary small tiles. If the Boss branch was selected, roll back and do not charge uncommitted TILE purchases.","true"
"5","normal non-final","Good injection","source call structure retained","Await AddRandomGoodTiles(loopIndex+2). The argument is attempt count, not guaranteed successful placement count.","true"
"6","normal non-final","Enemy injection","source call structure retained","Await AddRandomEnemyTile(enemyTilesPerLoop,false); MVP default enemyTilesPerLoop=3 attempts.","true"
"7","all surviving","spring heal","source relative position intentionally overridden","Heal 30% max HP after reward and normal refresh; clamp to max HP.","false"
"8","all surviving","transaction completion","source-aligned completion","Restore camera/UI; write a safe checkpoint; unlock movement.","false"
"9","normal or converted Boss board with remainingSteps","movement resume","MVP edge rule","Continue clockwise using remainingSteps. Only the new final landing tile resolves. On a Boss board, that landing starts the final Boss battle.","false"
"10","converted Boss board without remainingSteps","next-roll Boss entry","MVP edge rule","Do not treat the standing position as a new landing. Require one more Roll; the next completed Boss-Tile landing starts the final Boss battle.","false"
1 order branch phase source_status mvp_rule skip_on_final_boss
2 0 all Start entry source-aligned entry Cross Start; lock dice and movement; store remainingSteps; finish any already-open equipment, blessing, event-reward, and shop UI before advancing the transaction. false
3 1 shop-eligible shop judgment and interaction MVP ordered override Evaluate the every-3-Floor shop condition; build 3 fixed plus 3 non-duplicate random offers; open the shop and await close. TILE purchases enter purchasedTileQueue and are not installed yet. false
4 2 all final Floor / Boss judgment MVP ordered override Evaluate Default final Floor or DiceGauge 50/50. On success replace all 44 positions with Boss Tile and retain remainingSteps. false
5 3 all current Floor reward MVP ordered override Grant the completed-Floor reward exactly once. This step runs after Boss judgment and before any normal-loop mutation. false
6 4 normal non-final loop commit and purchased Tile install MVP ordered override Increment loopIndex exactly once; install purchasedTileQueue entries in purchase order on legal ordinary small tiles. If the Boss branch was selected, roll back and do not charge uncommitted TILE purchases. true
7 5 normal non-final Good injection source call structure retained Await AddRandomGoodTiles(loopIndex+2). The argument is attempt count, not guaranteed successful placement count. true
8 6 normal non-final Enemy injection source call structure retained Await AddRandomEnemyTile(enemyTilesPerLoop,false); MVP default enemyTilesPerLoop=3 attempts. true
9 7 all surviving spring heal source relative position intentionally overridden Heal 30% max HP after reward and normal refresh; clamp to max HP. false
10 8 all surviving transaction completion source-aligned completion Restore camera/UI; write a safe checkpoint; unlock movement. false
11 9 normal or converted Boss board with remainingSteps movement resume MVP edge rule Continue clockwise using remainingSteps. Only the new final landing tile resolves. On a Boss board, that landing starts the final Boss battle. false
12 10 converted Boss board without remainingSteps next-roll Boss entry MVP edge rule Do not treat the standing position as a new landing. Require one more Roll; the next completed Boss-Tile landing starts the final Boss battle. false
@@ -0,0 +1,62 @@
"domain","id","string_id","subtype","source_enabled","mvp_enabled","scope","min_stage","min_loop","gate_override","source"
"Tile","100","Empty","Empty","true","true","core board","0","0","none","newtile.csv + v0.2.8 scope freeze"
"Tile","101","NormalEnemy_1","NormalEnemy","true","true","core board","0","0","none","newtile.csv + v0.2.8 scope freeze"
"Tile","102","NormalEnemy_2","NormalEnemy","true","true","core board","0","0","none","newtile.csv + v0.2.8 scope freeze"
"Tile","103","NormalEnemy_3","NormalEnemy","true","true","core board","0","0","none","newtile.csv + v0.2.8 scope freeze"
"Tile","104","NormalEnemy_4","NormalEnemy","true","true","core board","0","0","none","newtile.csv + v0.2.8 scope freeze"
"Tile","105","BossAttackStrongEnemy","BossAttack","true","true","DiceGauge pressure extension","0","0","none","newtile.csv + v0.2.8 scope freeze"
"Tile","106","BossAttackBerserk1","BossAttack","true","true","DiceGauge pressure extension","0","0","none","newtile.csv + v0.2.8 scope freeze"
"Tile","110","BossAttackEvolve1","BossAttack","true","true","DiceGauge pressure extension","0","0","none","newtile.csv + v0.2.8 scope freeze"
"Tile","111","BossAttackEvolve2","BossAttack","true","true","DiceGauge pressure extension","0","0","none","newtile.csv + v0.2.8 scope freeze"
"Tile","112","BossAttackEvolve3","BossAttack","true","true","DiceGauge pressure extension","0","0","none","newtile.csv + v0.2.8 scope freeze"
"Tile","113","BossAttackEvolve4","BossAttack","true","true","DiceGauge pressure extension","0","0","none","newtile.csv + v0.2.8 scope freeze"
"Tile","114","BossAttackInfected","BossAttack","true","true","DiceGauge pressure extension","0","0","none","newtile.csv + v0.2.8 scope freeze"
"Tile","115","BossAttackInfectedHost3","BossAttack","true","true","DiceGauge pressure extension","0","0","none","newtile.csv + v0.2.8 scope freeze"
"Tile","116","BossAttackInfectedHost2","BossAttack","true","true","DiceGauge pressure extension","0","0","none","newtile.csv + v0.2.8 scope freeze"
"Tile","117","BossAttackInfectedHost1","BossAttack","true","true","DiceGauge pressure extension","0","0","none","newtile.csv + v0.2.8 scope freeze"
"Tile","118","MiniBoss","MiniBoss","true","true","core board","0","0","none","newtile.csv + v0.2.8 scope freeze"
"Tile","119","Boss","Boss","true","true","core board","0","0","none","newtile.csv + v0.2.8 scope freeze"
"Tile","124","AugmentRandom","Augment","true","true","core board","0","0","none","newtile.csv + v0.2.8 scope freeze"
"Tile","125","CornerKillOneLineEnemy","Corner","true","true","MVP active Corner","0","0","none","newtile.csv + v0.2.8 scope freeze"
"Tile","127","CornerRace","Corner","true","true","MVP active Corner","0","0","none","newtile.csv + v0.2.8 scope freeze"
"Tile","128","CornerOneLineChest","Corner","true","true","MVP active Corner","0","0","none","newtile.csv + v0.2.8 scope freeze"
"Tile","129","CornerDiceBuilding","Corner","true","true","MVP active Corner","0","0","none","newtile.csv + v0.2.8 scope freeze"
"Tile","131","CornerBlackMarket","Corner","true","true","MVP active Corner","0","3","none","newtile.csv + v0.2.8 scope freeze"
"Tile","132","Start","Start","true","true","core board","0","0","none","newtile.csv + v0.2.8 scope freeze"
"Tile","133","StartShop","Start","true","true","core board","0","0","none","newtile.csv + v0.2.8 scope freeze"
"Tile","134","BadEventJail","BadEvent","true","true","core board","0","0","none","newtile.csv + v0.2.8 scope freeze"
"Tile","135","BadEventPlusOneLineEnemy","BadEvent","true","true","core board","0","0","none","newtile.csv + v0.2.8 scope freeze"
"Tile","137","GoodEventSmithy","GoodEvent","true","true","MVP active Good event","0","0","none","newtile.csv + v0.2.8 scope freeze"
"Tile","141","GoodEventChest","GoodEvent","true","true","MVP active Good event","0","0","none","newtile.csv + v0.2.8 scope freeze"
"Tile","143","GoodEventBlackJack","GoodEvent","true","true","MVP active Good event","0","3","Keep original minLoop=3 for natural generation; debug console may force","newtile.csv + v0.2.8 scope freeze"
"Tile","151","GoodEventClawGrab","GoodEvent","true","true","MVP active Good event","0","0","none","newtile.csv + v0.2.8 scope freeze"
"Tile","164","GoodEventDiceMachine","GoodEvent","true","true","MVP active Good event","0","3","Keep original minLoop=3 for natural generation; debug console may force","newtile.csv + v0.2.8 scope freeze"
"Tile","169","GoodEventSpito","GoodEvent","true","true","MVP active Good event","1","3","MVP validation override: original minStage=1,minLoop=3; use minStage=0,minLoop=0 in the Stage 0 validation build","newtile.csv + v0.2.8 scope freeze"
"Blessing","100","AttackShield","AUGMENT","true","true","main blessing candidate pool","","","dependency/unique/stack cap filtering still applies","augment.csv + v0.2.8 scope freeze"
"Blessing","102","CritHeal","AUGMENT","true","true","main blessing candidate pool","","","dependency/unique/stack cap filtering still applies","augment.csv + v0.2.8 scope freeze"
"Blessing","103","CritDamageUp","AUGMENT","true","true","main blessing candidate pool","","","dependency/unique/stack cap filtering still applies","augment.csv + v0.2.8 scope freeze"
"Blessing","108","FirstAttackDMGUp","AUGMENT","true","true","main blessing candidate pool","","","dependency/unique/stack cap filtering still applies","augment.csv + v0.2.8 scope freeze"
"Blessing","109","DMGUpAfterSecond","AUGMENT","true","true","main blessing candidate pool","","","dependency/unique/stack cap filtering still applies","augment.csv + v0.2.8 scope freeze"
"Blessing","110","ASPUpAfterSecond","AUGMENT","true","true","main blessing candidate pool","","","dependency/unique/stack cap filtering still applies","augment.csv + v0.2.8 scope freeze"
"Blessing","111","DoubleHeal","AUGMENT","true","true","main blessing candidate pool","","","Natural Double consumer confirmed by runtime observation; additive 8% max-HP heal per stack","augment.csv + v0.2.8 scope freeze"
"Blessing","112","LowHPASPUp","AUGMENT","true","true","main blessing candidate pool","","","dependency/unique/stack cap filtering still applies","augment.csv + v0.2.8 scope freeze"
"Blessing","113","BattleStartHeal","AUGMENT","true","true","main blessing candidate pool","","","dependency/unique/stack cap filtering still applies","augment.csv + v0.2.8 scope freeze"
"Blessing","114","LuckyHit","AUGMENT","true","true","main blessing candidate pool","","","dependency/unique/stack cap filtering still applies","augment.csv + v0.2.8 scope freeze"
"Blessing","115","DiceSumDMGUp","AUGMENT","true","true","main blessing candidate pool","","","dependency/unique/stack cap filtering still applies","augment.csv + v0.2.8 scope freeze"
"Blessing","116","DiceSumShield","AUGMENT","true","true","main blessing candidate pool","","","dependency/unique/stack cap filtering still applies","augment.csv + v0.2.8 scope freeze"
"Blessing","117","KillHPUp","AUGMENT","true","true","main blessing candidate pool","","","dependency/unique/stack cap filtering still applies","augment.csv + v0.2.8 scope freeze"
"Blessing","118","ReduceEnemyDEF","AUGMENT","true","true","main blessing candidate pool","","","dependency/unique/stack cap filtering still applies","augment.csv + v0.2.8 scope freeze"
"Blessing","121","EnemyCountStatUp","AUGMENT","true","true","main blessing candidate pool","","","dependency/unique/stack cap filtering still applies","augment.csv + v0.2.8 scope freeze"
"Blessing","122","OddDiceCritUp","AUGMENT","true","true","main blessing candidate pool","","","dependency/unique/stack cap filtering still applies","augment.csv + v0.2.8 scope freeze"
"Blessing","124","KillInTimeGetGear","AUGMENT","true","true","main blessing candidate pool","","","dependency/unique/stack cap filtering still applies","augment.csv + v0.2.8 scope freeze"
"Blessing","125","HealAfterSecond","AUGMENT","true","true","main blessing candidate pool","","","dependency/unique/stack cap filtering still applies","augment.csv + v0.2.8 scope freeze"
"Blessing","126","LightingEverySec","AUGMENT","true","true","main blessing candidate pool","","","dependency/unique/stack cap filtering still applies","augment.csv + v0.2.8 scope freeze"
"Blessing","132","KillForHeroGear","AUGMENT","true","true","main blessing candidate pool","","","dependency/unique/stack cap filtering still applies","augment.csv + v0.2.8 scope freeze"
"Blessing","147","KillAllEmeny","AUGMENT","true","true","main blessing candidate pool","","","dependency/unique/stack cap filtering still applies","augment.csv + v0.2.8 scope freeze"
"Blessing","148","PointSupply","AUGMENT","true","true","main blessing candidate pool","","","dependency/unique/stack cap filtering still applies","augment.csv + v0.2.8 scope freeze"
"Blessing","149","DicePotionGet","AUGMENT","true","true","main blessing candidate pool","","","dependency/unique/stack cap filtering still applies","augment.csv + v0.2.8 scope freeze"
"Blessing","150","KillPotionGet","AUGMENT","true","true","main blessing candidate pool","","","dependency/unique/stack cap filtering still applies","augment.csv + v0.2.8 scope freeze"
"Blessing","151","ShopFreeReroll","AUGMENT","true","true","main blessing candidate pool","","","dependency/unique/stack cap filtering still applies","augment.csv + v0.2.8 scope freeze"
"Blessing","152","EmptyTripleBuild","AUGMENT","true","true","main blessing candidate pool","","","dependency/unique/stack cap filtering still applies","augment.csv + v0.2.8 scope freeze"
"Blessing","153","EvaHeal","AUGMENT","true","true","main blessing candidate pool","","","dependency/unique/stack cap filtering still applies","augment.csv + v0.2.8 scope freeze"
"Blessing","154","BattleEndHeal","AUGMENT","true","true","main blessing candidate pool","","","dependency/unique/stack cap filtering still applies","augment.csv + v0.2.8 scope freeze"
1 domain id string_id subtype source_enabled mvp_enabled scope min_stage min_loop gate_override source
2 Tile 100 Empty Empty true true core board 0 0 none newtile.csv + v0.2.8 scope freeze
3 Tile 101 NormalEnemy_1 NormalEnemy true true core board 0 0 none newtile.csv + v0.2.8 scope freeze
4 Tile 102 NormalEnemy_2 NormalEnemy true true core board 0 0 none newtile.csv + v0.2.8 scope freeze
5 Tile 103 NormalEnemy_3 NormalEnemy true true core board 0 0 none newtile.csv + v0.2.8 scope freeze
6 Tile 104 NormalEnemy_4 NormalEnemy true true core board 0 0 none newtile.csv + v0.2.8 scope freeze
7 Tile 105 BossAttackStrongEnemy BossAttack true true DiceGauge pressure extension 0 0 none newtile.csv + v0.2.8 scope freeze
8 Tile 106 BossAttackBerserk1 BossAttack true true DiceGauge pressure extension 0 0 none newtile.csv + v0.2.8 scope freeze
9 Tile 110 BossAttackEvolve1 BossAttack true true DiceGauge pressure extension 0 0 none newtile.csv + v0.2.8 scope freeze
10 Tile 111 BossAttackEvolve2 BossAttack true true DiceGauge pressure extension 0 0 none newtile.csv + v0.2.8 scope freeze
11 Tile 112 BossAttackEvolve3 BossAttack true true DiceGauge pressure extension 0 0 none newtile.csv + v0.2.8 scope freeze
12 Tile 113 BossAttackEvolve4 BossAttack true true DiceGauge pressure extension 0 0 none newtile.csv + v0.2.8 scope freeze
13 Tile 114 BossAttackInfected BossAttack true true DiceGauge pressure extension 0 0 none newtile.csv + v0.2.8 scope freeze
14 Tile 115 BossAttackInfectedHost3 BossAttack true true DiceGauge pressure extension 0 0 none newtile.csv + v0.2.8 scope freeze
15 Tile 116 BossAttackInfectedHost2 BossAttack true true DiceGauge pressure extension 0 0 none newtile.csv + v0.2.8 scope freeze
16 Tile 117 BossAttackInfectedHost1 BossAttack true true DiceGauge pressure extension 0 0 none newtile.csv + v0.2.8 scope freeze
17 Tile 118 MiniBoss MiniBoss true true core board 0 0 none newtile.csv + v0.2.8 scope freeze
18 Tile 119 Boss Boss true true core board 0 0 none newtile.csv + v0.2.8 scope freeze
19 Tile 124 AugmentRandom Augment true true core board 0 0 none newtile.csv + v0.2.8 scope freeze
20 Tile 125 CornerKillOneLineEnemy Corner true true MVP active Corner 0 0 none newtile.csv + v0.2.8 scope freeze
21 Tile 127 CornerRace Corner true true MVP active Corner 0 0 none newtile.csv + v0.2.8 scope freeze
22 Tile 128 CornerOneLineChest Corner true true MVP active Corner 0 0 none newtile.csv + v0.2.8 scope freeze
23 Tile 129 CornerDiceBuilding Corner true true MVP active Corner 0 0 none newtile.csv + v0.2.8 scope freeze
24 Tile 131 CornerBlackMarket Corner true true MVP active Corner 0 3 none newtile.csv + v0.2.8 scope freeze
25 Tile 132 Start Start true true core board 0 0 none newtile.csv + v0.2.8 scope freeze
26 Tile 133 StartShop Start true true core board 0 0 none newtile.csv + v0.2.8 scope freeze
27 Tile 134 BadEventJail BadEvent true true core board 0 0 none newtile.csv + v0.2.8 scope freeze
28 Tile 135 BadEventPlusOneLineEnemy BadEvent true true core board 0 0 none newtile.csv + v0.2.8 scope freeze
29 Tile 137 GoodEventSmithy GoodEvent true true MVP active Good event 0 0 none newtile.csv + v0.2.8 scope freeze
30 Tile 141 GoodEventChest GoodEvent true true MVP active Good event 0 0 none newtile.csv + v0.2.8 scope freeze
31 Tile 143 GoodEventBlackJack GoodEvent true true MVP active Good event 0 3 Keep original minLoop=3 for natural generation; debug console may force newtile.csv + v0.2.8 scope freeze
32 Tile 151 GoodEventClawGrab GoodEvent true true MVP active Good event 0 0 none newtile.csv + v0.2.8 scope freeze
33 Tile 164 GoodEventDiceMachine GoodEvent true true MVP active Good event 0 3 Keep original minLoop=3 for natural generation; debug console may force newtile.csv + v0.2.8 scope freeze
34 Tile 169 GoodEventSpito GoodEvent true true MVP active Good event 1 3 MVP validation override: original minStage=1,minLoop=3; use minStage=0,minLoop=0 in the Stage 0 validation build newtile.csv + v0.2.8 scope freeze
35 Blessing 100 AttackShield AUGMENT true true main blessing candidate pool dependency/unique/stack cap filtering still applies augment.csv + v0.2.8 scope freeze
36 Blessing 102 CritHeal AUGMENT true true main blessing candidate pool dependency/unique/stack cap filtering still applies augment.csv + v0.2.8 scope freeze
37 Blessing 103 CritDamageUp AUGMENT true true main blessing candidate pool dependency/unique/stack cap filtering still applies augment.csv + v0.2.8 scope freeze
38 Blessing 108 FirstAttackDMGUp AUGMENT true true main blessing candidate pool dependency/unique/stack cap filtering still applies augment.csv + v0.2.8 scope freeze
39 Blessing 109 DMGUpAfterSecond AUGMENT true true main blessing candidate pool dependency/unique/stack cap filtering still applies augment.csv + v0.2.8 scope freeze
40 Blessing 110 ASPUpAfterSecond AUGMENT true true main blessing candidate pool dependency/unique/stack cap filtering still applies augment.csv + v0.2.8 scope freeze
41 Blessing 111 DoubleHeal AUGMENT true true main blessing candidate pool Natural Double consumer confirmed by runtime observation; additive 8% max-HP heal per stack augment.csv + v0.2.8 scope freeze
42 Blessing 112 LowHPASPUp AUGMENT true true main blessing candidate pool dependency/unique/stack cap filtering still applies augment.csv + v0.2.8 scope freeze
43 Blessing 113 BattleStartHeal AUGMENT true true main blessing candidate pool dependency/unique/stack cap filtering still applies augment.csv + v0.2.8 scope freeze
44 Blessing 114 LuckyHit AUGMENT true true main blessing candidate pool dependency/unique/stack cap filtering still applies augment.csv + v0.2.8 scope freeze
45 Blessing 115 DiceSumDMGUp AUGMENT true true main blessing candidate pool dependency/unique/stack cap filtering still applies augment.csv + v0.2.8 scope freeze
46 Blessing 116 DiceSumShield AUGMENT true true main blessing candidate pool dependency/unique/stack cap filtering still applies augment.csv + v0.2.8 scope freeze
47 Blessing 117 KillHPUp AUGMENT true true main blessing candidate pool dependency/unique/stack cap filtering still applies augment.csv + v0.2.8 scope freeze
48 Blessing 118 ReduceEnemyDEF AUGMENT true true main blessing candidate pool dependency/unique/stack cap filtering still applies augment.csv + v0.2.8 scope freeze
49 Blessing 121 EnemyCountStatUp AUGMENT true true main blessing candidate pool dependency/unique/stack cap filtering still applies augment.csv + v0.2.8 scope freeze
50 Blessing 122 OddDiceCritUp AUGMENT true true main blessing candidate pool dependency/unique/stack cap filtering still applies augment.csv + v0.2.8 scope freeze
51 Blessing 124 KillInTimeGetGear AUGMENT true true main blessing candidate pool dependency/unique/stack cap filtering still applies augment.csv + v0.2.8 scope freeze
52 Blessing 125 HealAfterSecond AUGMENT true true main blessing candidate pool dependency/unique/stack cap filtering still applies augment.csv + v0.2.8 scope freeze
53 Blessing 126 LightingEverySec AUGMENT true true main blessing candidate pool dependency/unique/stack cap filtering still applies augment.csv + v0.2.8 scope freeze
54 Blessing 132 KillForHeroGear AUGMENT true true main blessing candidate pool dependency/unique/stack cap filtering still applies augment.csv + v0.2.8 scope freeze
55 Blessing 147 KillAllEmeny AUGMENT true true main blessing candidate pool dependency/unique/stack cap filtering still applies augment.csv + v0.2.8 scope freeze
56 Blessing 148 PointSupply AUGMENT true true main blessing candidate pool dependency/unique/stack cap filtering still applies augment.csv + v0.2.8 scope freeze
57 Blessing 149 DicePotionGet AUGMENT true true main blessing candidate pool dependency/unique/stack cap filtering still applies augment.csv + v0.2.8 scope freeze
58 Blessing 150 KillPotionGet AUGMENT true true main blessing candidate pool dependency/unique/stack cap filtering still applies augment.csv + v0.2.8 scope freeze
59 Blessing 151 ShopFreeReroll AUGMENT true true main blessing candidate pool dependency/unique/stack cap filtering still applies augment.csv + v0.2.8 scope freeze
60 Blessing 152 EmptyTripleBuild AUGMENT true true main blessing candidate pool dependency/unique/stack cap filtering still applies augment.csv + v0.2.8 scope freeze
61 Blessing 153 EvaHeal AUGMENT true true main blessing candidate pool dependency/unique/stack cap filtering still applies augment.csv + v0.2.8 scope freeze
62 Blessing 154 BattleEndHeal AUGMENT true true main blessing candidate pool dependency/unique/stack cap filtering still applies augment.csv + v0.2.8 scope freeze
@@ -0,0 +1,97 @@
"offer_id","item_type","item_id","name_zh_cn","price","buy_limit","fixed_key","fixed_sort","source_catalog_loaded","mvp_enabled","pool","reason"
"100","TILE","137","铁匠铺","6","1","","","true","true","random slot","Tile event is in the first-version event whitelist"
"101","TILE","138","恢復","9","1","","","true","false","random slot","Tile event is outside the frozen first-version deck"
"102","TILE","139","来点节奏","7","1","","","true","false","random slot","Tile event is outside the frozen first-version deck"
"103","TILE","140","勇士遗骸","4","1","","","true","false","random slot","Tile event is outside the frozen first-version deck"
"104","TILE","141","宝箱","5","1","","","true","true","random slot","Tile event is in the first-version event whitelist"
"105","TILE","142","抽取","5","1","","","true","false","random slot","Tile event is outside the frozen first-version deck"
"106","TILE","143","骰子对决","4","1","","","true","true","random slot","Tile event is in the first-version event whitelist"
"107","TILE","144","增幅星星","7","1","","","true","false","random slot","Tile event is outside the frozen first-version deck"
"108","TILE","151","夹娃娃机","7","1","","","true","true","random slot","Tile event is in the first-version event whitelist"
"109","TILE","152","黄金马车","7","1","","","true","false","random slot","Tile event is outside the frozen first-version deck"
"110","TILE","164","惊心骰子","5","1","","","true","true","random slot","Tile event is in the first-version event whitelist"
"111","TILE","166","史莱姆神射手","8","1","","","true","false","random slot","Tile event is outside the frozen first-version deck"
"112","AUGMENT","100","守护一击","17","1","","","true","true","random slot","Blessing is in the first-version blessing whitelist"
"113","AUGMENT","102","吸血","14","1","","","true","true","random slot","Blessing is in the first-version blessing whitelist"
"114","AUGMENT","103","攻击弱点","10","1","","","true","true","random slot","Blessing is in the first-version blessing whitelist"
"115","AUGMENT","106","奇蹟骰子","27","1","","","true","false","random slot","Disabled system: revive or burn chain"
"116","AUGMENT","108","起始一击","12","1","","","true","true","random slot","Blessing is in the first-version blessing whitelist"
"117","AUGMENT","109","攻击力加速","15","1","","","true","true","random slot","Blessing is in the first-version blessing whitelist"
"118","AUGMENT","110","攻击速度加速","15","1","","","true","true","random slot","Blessing is in the first-version blessing whitelist"
"119","AUGMENT","111","恢復骰子","23","1","","","true","true","random slot","Blessing is in the first-version blessing whitelist"
"120","AUGMENT","112","战斗狂","16","1","","","true","true","random slot","Blessing is in the first-version blessing whitelist"
"121","AUGMENT","113","祝福的开始","14","1","","","true","true","random slot","Blessing is in the first-version blessing whitelist"
"122","AUGMENT","114","快速迴避","15","1","","","true","true","random slot","Blessing is in the first-version blessing whitelist"
"123","AUGMENT","115","幸运骰子","14","1","","","true","true","random slot","Blessing is in the first-version blessing whitelist"
"124","AUGMENT","116","守护骰子","20","1","","","true","true","random slot","Blessing is in the first-version blessing whitelist"
"125","AUGMENT","117","吸收灵魂","17","1","","","true","true","random slot","Blessing is in the first-version blessing whitelist"
"126","AUGMENT","118","腐蚀一击","16","1","","","true","true","random slot","Blessing is in the first-version blessing whitelist"
"127","AUGMENT","121","多多益善","10","1","","","true","true","random slot","Blessing is in the first-version blessing whitelist"
"128","AUGMENT","122","奇数骰子","13","1","","","true","true","random slot","Blessing is in the first-version blessing whitelist"
"129","AUGMENT","124","掠夺者","19","1","","","true","true","random slot","Blessing is in the first-version blessing whitelist"
"130","AUGMENT","125","顽强生命","18","1","","","true","true","random slot","Blessing is in the first-version blessing whitelist"
"131","AUGMENT","126","呼唤闪电","16","1","","","true","true","random slot","Blessing is in the first-version blessing whitelist"
"132","AUGMENT","132","质重于量","17","1","","","true","true","random slot","Blessing is in the first-version blessing whitelist"
"133","AUGMENT","147","调整数量","15","1","","","true","true","random slot","Blessing is in the first-version blessing whitelist"
"134","AUGMENT","148","支援金","10","1","","","true","true","random slot","Blessing is in the first-version blessing whitelist"
"135","AUGMENT","149","补充骰子","17","1","","","true","true","random slot","Blessing is in the first-version blessing whitelist"
"136","AUGMENT","150","掠夺药水","19","1","","","true","true","random slot","Blessing is in the first-version blessing whitelist"
"137","AUGMENT","151","领袖气质","8","1","","","true","true","random slot","Blessing is in the first-version blessing whitelist"
"138","AUGMENT","152","都市计画","11","1","","","true","true","random slot","Blessing is in the first-version blessing whitelist"
"139","AUGMENT","153","刺激","15","1","","","true","true","random slot","Blessing is in the first-version blessing whitelist"
"140","AUGMENT","154","战后休息","24","1","","","true","true","random slot","Blessing is in the first-version blessing whitelist"
"141","AUGMENT","156","残火","16","1","","","true","false","random slot","Disabled system: revive or burn chain"
"142","AUGMENT","157","点燃","18","1","","","true","false","random slot","Disabled system: revive or burn chain"
"143","POTION","100","立即恢復药水","16","1","","","true","true","random slot","Only the healing potion family is retained"
"144","POTION","101","持续恢復药水","15","1","","","true","false","random slot","Functional potion removed by the single-healing-potion MVP decision"
"145","POTION","103","攻击药水","15","1","","","true","false","random slot","Functional potion removed by the single-healing-potion MVP decision"
"146","POTION","104","命中药水","13","1","","","true","false","random slot","Functional potion removed by the single-healing-potion MVP decision"
"147","POTION","105","暴击药水","14","1","","","true","false","random slot","Functional potion removed by the single-healing-potion MVP decision"
"148","POTION","106","吸血药水","16","1","","","true","false","random slot","Functional potion removed by the single-healing-potion MVP decision"
"149","POTION","107","防禦药水","20","1","","","true","false","random slot","Functional potion removed by the single-healing-potion MVP decision"
"150","POTION","108","反击药水","19","1","","","true","false","random slot","Functional potion removed by the single-healing-potion MVP decision"
"151","POTION","109","迴避药水","13","1","","","true","false","random slot","Functional potion removed by the single-healing-potion MVP decision"
"152","STAT","100","攻击力","3","10","","","true","true","random slot","Direct combat stat is implemented"
"153","STAT","101","生命值上限","3","10","","","true","true","random slot","Direct combat stat is implemented"
"154","STAT","102","命中","5","5","","","true","true","random slot","Direct combat stat is implemented"
"155","STAT","103","防禦力","3","10","","","true","true","random slot","Direct combat stat is implemented"
"156","STAT","104","迴避","5","5","","","true","true","random slot","Direct combat stat is implemented"
"157","STAT","105","每秒恢復","8","3","","","true","true","random slot","Direct combat stat is implemented"
"158","STAT","106","整体攻击","9","3","","","true","true","random slot","Direct combat stat is implemented"
"159","STAT","107","固定伤害","8","3","","","true","true","random slot","Direct combat stat is implemented"
"160","STAT","108","击杀后恢復","7","3","","","true","true","random slot","Direct combat stat is implemented"
"161","STAT","109","反击","5","5","","","true","true","random slot","Direct combat stat is implemented"
"162","STAT","110","攻击速度","8","3","","","true","true","random slot","Direct combat stat is implemented"
"163","STAT","111","暴击率","7","3","","","true","true","random slot","Direct combat stat is implemented"
"164","STAT","112","吸血","8","3","","","true","true","random slot","Direct combat stat is implemented"
"165","FIXED","","药水持有量Lv.{0}","10","1","potionCount","0","true","true","fixed slot","Original potion count/heal/refill chain is retained"
"166","FIXED","","药水持有量Lv.{0}","15","1","potionCount","1","true","true","fixed slot","Original potion count/heal/refill chain is retained"
"167","FIXED","","药水持有量Lv.{0}","21","1","potionCount","2","true","true","fixed slot","Original potion count/heal/refill chain is retained"
"168","FIXED","","药水持有量Lv.{0}","28","1","potionCount","3","true","true","fixed slot","Original potion count/heal/refill chain is retained"
"169","FIXED","","药水持有量Lv.{0}","36","1","potionCount","4","true","true","fixed slot","Original potion count/heal/refill chain is retained"
"170","FIXED","","药水持有量Lv.{0}","45","1","potionCount","5","true","true","fixed slot","Original potion count/heal/refill chain is retained"
"171","FIXED","","药水持有量Lv.{0}","55","1","potionCount","6","true","true","fixed slot","Original potion count/heal/refill chain is retained"
"172","FIXED","","药水持有量Lv.{0}","66","1","potionCount","7","true","true","fixed slot","Original potion count/heal/refill chain is retained"
"173","FIXED","","药水持有量Lv.{0}","78","1","potionCount","8","true","true","fixed slot","Original potion count/heal/refill chain is retained"
"174","FIXED","","药水恢復量Lv.{0}","7","1","potionHeal","0","true","true","fixed slot","Original potion count/heal/refill chain is retained"
"175","FIXED","","药水恢復量Lv.{0}","11","1","potionHeal","1","true","true","fixed slot","Original potion count/heal/refill chain is retained"
"176","FIXED","","药水恢復量Lv.{0}","15","1","potionHeal","2","true","true","fixed slot","Original potion count/heal/refill chain is retained"
"177","FIXED","","药水恢復量Lv.{0}","20","1","potionHeal","3","true","true","fixed slot","Original potion count/heal/refill chain is retained"
"178","FIXED","","药水恢復量Lv.{0}","25","1","potionHeal","4","true","true","fixed slot","Original potion count/heal/refill chain is retained"
"179","FIXED","","药水恢復量Lv.{0}","30","1","potionHeal","5","true","true","fixed slot","Original potion count/heal/refill chain is retained"
"180","FIXED","","药水恢復量Lv.{0}","35","1","potionHeal","6","true","true","fixed slot","Original potion count/heal/refill chain is retained"
"181","FIXED","","药水恢復量Lv.{0}","40","1","potionHeal","7","true","true","fixed slot","Original potion count/heal/refill chain is retained"
"182","FIXED","","药水恢復量Lv.{0}","45","1","potionHeal","8","true","true","fixed slot","Original potion count/heal/refill chain is retained"
"183","FIXED","","药水恢復量Lv.{0}","50","1","potionHeal","9","true","true","fixed slot","Original potion count/heal/refill chain is retained"
"184","FIXED","","药水恢復量Lv.{0}","55","1","potionHeal","10","true","true","fixed slot","Original potion count/heal/refill chain is retained"
"185","FIXED","","药水恢復量Lv.{0}","60","1","potionHeal","11","true","true","fixed slot","Original potion count/heal/refill chain is retained"
"186","FIXED","","药水恢復量Lv.{0}","65","1","potionHeal","12","true","true","fixed slot","Original potion count/heal/refill chain is retained"
"187","FIXED","","药水恢復量Lv.{0}","70","1","potionHeal","13","true","true","fixed slot","Original potion count/heal/refill chain is retained"
"188","FIXED","","药水恢復量Lv.{0}","75","1","potionHeal","14","true","true","fixed slot","Original potion count/heal/refill chain is retained"
"189","FIXED","","药水恢復量Lv.{0}","80","1","potionHeal","15","true","true","fixed slot","Original potion count/heal/refill chain is retained"
"190","FIXED","","药水恢復量Lv.{0}","85","1","potionHeal","16","true","true","fixed slot","Original potion count/heal/refill chain is retained"
"191","FIXED","","药水恢復量Lv.{0}","90","1","potionHeal","17","true","true","fixed slot","Original potion count/heal/refill chain is retained"
"192","FIXED","","药水恢復量Lv.{0}","95","1","potionHeal","18","true","true","fixed slot","Original potion count/heal/refill chain is retained"
"193","FIXED","","药水恢復量Lv.{0}","100","1","potionHeal","19","true","true","fixed slot","Original potion count/heal/refill chain is retained"
"194","FIXED","","补充药水","5","-1","potionAdd","0","true","true","fixed slot","Original potion count/heal/refill chain is retained"
"195","LOTTO","","彩券","5","1","","","true","false","random slot","Lottery event is outside the frozen first-version scope"
1 offer_id item_type item_id name_zh_cn price buy_limit fixed_key fixed_sort source_catalog_loaded mvp_enabled pool reason
2 100 TILE 137 铁匠铺 6 1 true true random slot Tile event is in the first-version event whitelist
3 101 TILE 138 恢復 9 1 true false random slot Tile event is outside the frozen first-version deck
4 102 TILE 139 来点节奏 7 1 true false random slot Tile event is outside the frozen first-version deck
5 103 TILE 140 勇士遗骸 4 1 true false random slot Tile event is outside the frozen first-version deck
6 104 TILE 141 宝箱 5 1 true true random slot Tile event is in the first-version event whitelist
7 105 TILE 142 抽取 5 1 true false random slot Tile event is outside the frozen first-version deck
8 106 TILE 143 骰子对决 4 1 true true random slot Tile event is in the first-version event whitelist
9 107 TILE 144 增幅星星 7 1 true false random slot Tile event is outside the frozen first-version deck
10 108 TILE 151 夹娃娃机 7 1 true true random slot Tile event is in the first-version event whitelist
11 109 TILE 152 黄金马车 7 1 true false random slot Tile event is outside the frozen first-version deck
12 110 TILE 164 惊心骰子 5 1 true true random slot Tile event is in the first-version event whitelist
13 111 TILE 166 史莱姆神射手 8 1 true false random slot Tile event is outside the frozen first-version deck
14 112 AUGMENT 100 守护一击 17 1 true true random slot Blessing is in the first-version blessing whitelist
15 113 AUGMENT 102 吸血 14 1 true true random slot Blessing is in the first-version blessing whitelist
16 114 AUGMENT 103 攻击弱点 10 1 true true random slot Blessing is in the first-version blessing whitelist
17 115 AUGMENT 106 奇蹟骰子 27 1 true false random slot Disabled system: revive or burn chain
18 116 AUGMENT 108 起始一击 12 1 true true random slot Blessing is in the first-version blessing whitelist
19 117 AUGMENT 109 攻击力加速 15 1 true true random slot Blessing is in the first-version blessing whitelist
20 118 AUGMENT 110 攻击速度加速 15 1 true true random slot Blessing is in the first-version blessing whitelist
21 119 AUGMENT 111 恢復骰子 23 1 true true random slot Blessing is in the first-version blessing whitelist
22 120 AUGMENT 112 战斗狂 16 1 true true random slot Blessing is in the first-version blessing whitelist
23 121 AUGMENT 113 祝福的开始 14 1 true true random slot Blessing is in the first-version blessing whitelist
24 122 AUGMENT 114 快速迴避 15 1 true true random slot Blessing is in the first-version blessing whitelist
25 123 AUGMENT 115 幸运骰子 14 1 true true random slot Blessing is in the first-version blessing whitelist
26 124 AUGMENT 116 守护骰子 20 1 true true random slot Blessing is in the first-version blessing whitelist
27 125 AUGMENT 117 吸收灵魂 17 1 true true random slot Blessing is in the first-version blessing whitelist
28 126 AUGMENT 118 腐蚀一击 16 1 true true random slot Blessing is in the first-version blessing whitelist
29 127 AUGMENT 121 多多益善 10 1 true true random slot Blessing is in the first-version blessing whitelist
30 128 AUGMENT 122 奇数骰子 13 1 true true random slot Blessing is in the first-version blessing whitelist
31 129 AUGMENT 124 掠夺者 19 1 true true random slot Blessing is in the first-version blessing whitelist
32 130 AUGMENT 125 顽强生命 18 1 true true random slot Blessing is in the first-version blessing whitelist
33 131 AUGMENT 126 呼唤闪电 16 1 true true random slot Blessing is in the first-version blessing whitelist
34 132 AUGMENT 132 质重于量 17 1 true true random slot Blessing is in the first-version blessing whitelist
35 133 AUGMENT 147 调整数量 15 1 true true random slot Blessing is in the first-version blessing whitelist
36 134 AUGMENT 148 支援金 10 1 true true random slot Blessing is in the first-version blessing whitelist
37 135 AUGMENT 149 补充骰子 17 1 true true random slot Blessing is in the first-version blessing whitelist
38 136 AUGMENT 150 掠夺药水 19 1 true true random slot Blessing is in the first-version blessing whitelist
39 137 AUGMENT 151 领袖气质 8 1 true true random slot Blessing is in the first-version blessing whitelist
40 138 AUGMENT 152 都市计画 11 1 true true random slot Blessing is in the first-version blessing whitelist
41 139 AUGMENT 153 刺激 15 1 true true random slot Blessing is in the first-version blessing whitelist
42 140 AUGMENT 154 战后休息 24 1 true true random slot Blessing is in the first-version blessing whitelist
43 141 AUGMENT 156 残火 16 1 true false random slot Disabled system: revive or burn chain
44 142 AUGMENT 157 点燃 18 1 true false random slot Disabled system: revive or burn chain
45 143 POTION 100 立即恢復药水 16 1 true true random slot Only the healing potion family is retained
46 144 POTION 101 持续恢復药水 15 1 true false random slot Functional potion removed by the single-healing-potion MVP decision
47 145 POTION 103 攻击药水 15 1 true false random slot Functional potion removed by the single-healing-potion MVP decision
48 146 POTION 104 命中药水 13 1 true false random slot Functional potion removed by the single-healing-potion MVP decision
49 147 POTION 105 暴击药水 14 1 true false random slot Functional potion removed by the single-healing-potion MVP decision
50 148 POTION 106 吸血药水 16 1 true false random slot Functional potion removed by the single-healing-potion MVP decision
51 149 POTION 107 防禦药水 20 1 true false random slot Functional potion removed by the single-healing-potion MVP decision
52 150 POTION 108 反击药水 19 1 true false random slot Functional potion removed by the single-healing-potion MVP decision
53 151 POTION 109 迴避药水 13 1 true false random slot Functional potion removed by the single-healing-potion MVP decision
54 152 STAT 100 攻击力 3 10 true true random slot Direct combat stat is implemented
55 153 STAT 101 生命值上限 3 10 true true random slot Direct combat stat is implemented
56 154 STAT 102 命中 5 5 true true random slot Direct combat stat is implemented
57 155 STAT 103 防禦力 3 10 true true random slot Direct combat stat is implemented
58 156 STAT 104 迴避 5 5 true true random slot Direct combat stat is implemented
59 157 STAT 105 每秒恢復 8 3 true true random slot Direct combat stat is implemented
60 158 STAT 106 整体攻击 9 3 true true random slot Direct combat stat is implemented
61 159 STAT 107 固定伤害 8 3 true true random slot Direct combat stat is implemented
62 160 STAT 108 击杀后恢復 7 3 true true random slot Direct combat stat is implemented
63 161 STAT 109 反击 5 5 true true random slot Direct combat stat is implemented
64 162 STAT 110 攻击速度 8 3 true true random slot Direct combat stat is implemented
65 163 STAT 111 暴击率 7 3 true true random slot Direct combat stat is implemented
66 164 STAT 112 吸血 8 3 true true random slot Direct combat stat is implemented
67 165 FIXED 药水持有量Lv.{0} 10 1 potionCount 0 true true fixed slot Original potion count/heal/refill chain is retained
68 166 FIXED 药水持有量Lv.{0} 15 1 potionCount 1 true true fixed slot Original potion count/heal/refill chain is retained
69 167 FIXED 药水持有量Lv.{0} 21 1 potionCount 2 true true fixed slot Original potion count/heal/refill chain is retained
70 168 FIXED 药水持有量Lv.{0} 28 1 potionCount 3 true true fixed slot Original potion count/heal/refill chain is retained
71 169 FIXED 药水持有量Lv.{0} 36 1 potionCount 4 true true fixed slot Original potion count/heal/refill chain is retained
72 170 FIXED 药水持有量Lv.{0} 45 1 potionCount 5 true true fixed slot Original potion count/heal/refill chain is retained
73 171 FIXED 药水持有量Lv.{0} 55 1 potionCount 6 true true fixed slot Original potion count/heal/refill chain is retained
74 172 FIXED 药水持有量Lv.{0} 66 1 potionCount 7 true true fixed slot Original potion count/heal/refill chain is retained
75 173 FIXED 药水持有量Lv.{0} 78 1 potionCount 8 true true fixed slot Original potion count/heal/refill chain is retained
76 174 FIXED 药水恢復量Lv.{0} 7 1 potionHeal 0 true true fixed slot Original potion count/heal/refill chain is retained
77 175 FIXED 药水恢復量Lv.{0} 11 1 potionHeal 1 true true fixed slot Original potion count/heal/refill chain is retained
78 176 FIXED 药水恢復量Lv.{0} 15 1 potionHeal 2 true true fixed slot Original potion count/heal/refill chain is retained
79 177 FIXED 药水恢復量Lv.{0} 20 1 potionHeal 3 true true fixed slot Original potion count/heal/refill chain is retained
80 178 FIXED 药水恢復量Lv.{0} 25 1 potionHeal 4 true true fixed slot Original potion count/heal/refill chain is retained
81 179 FIXED 药水恢復量Lv.{0} 30 1 potionHeal 5 true true fixed slot Original potion count/heal/refill chain is retained
82 180 FIXED 药水恢復量Lv.{0} 35 1 potionHeal 6 true true fixed slot Original potion count/heal/refill chain is retained
83 181 FIXED 药水恢復量Lv.{0} 40 1 potionHeal 7 true true fixed slot Original potion count/heal/refill chain is retained
84 182 FIXED 药水恢復量Lv.{0} 45 1 potionHeal 8 true true fixed slot Original potion count/heal/refill chain is retained
85 183 FIXED 药水恢復量Lv.{0} 50 1 potionHeal 9 true true fixed slot Original potion count/heal/refill chain is retained
86 184 FIXED 药水恢復量Lv.{0} 55 1 potionHeal 10 true true fixed slot Original potion count/heal/refill chain is retained
87 185 FIXED 药水恢復量Lv.{0} 60 1 potionHeal 11 true true fixed slot Original potion count/heal/refill chain is retained
88 186 FIXED 药水恢復量Lv.{0} 65 1 potionHeal 12 true true fixed slot Original potion count/heal/refill chain is retained
89 187 FIXED 药水恢復量Lv.{0} 70 1 potionHeal 13 true true fixed slot Original potion count/heal/refill chain is retained
90 188 FIXED 药水恢復量Lv.{0} 75 1 potionHeal 14 true true fixed slot Original potion count/heal/refill chain is retained
91 189 FIXED 药水恢復量Lv.{0} 80 1 potionHeal 15 true true fixed slot Original potion count/heal/refill chain is retained
92 190 FIXED 药水恢復量Lv.{0} 85 1 potionHeal 16 true true fixed slot Original potion count/heal/refill chain is retained
93 191 FIXED 药水恢復量Lv.{0} 90 1 potionHeal 17 true true fixed slot Original potion count/heal/refill chain is retained
94 192 FIXED 药水恢復量Lv.{0} 95 1 potionHeal 18 true true fixed slot Original potion count/heal/refill chain is retained
95 193 FIXED 药水恢復量Lv.{0} 100 1 potionHeal 19 true true fixed slot Original potion count/heal/refill chain is retained
96 194 FIXED 补充药水 5 -1 potionAdd 0 true true fixed slot Original potion count/heal/refill chain is retained
97 195 LOTTO 彩券 5 1 true false random slot Lottery event is outside the frozen first-version scope
@@ -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"
1 key original_status mvp_default type range rationale source label
2 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
3 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
4 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
5 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
6 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
7 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
8 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
9 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
10 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
11 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
12 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
13 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
14 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
15 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
16 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
17 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
18 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
19 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
20 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
21 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
22 originalRewardFloatRounding stage multiplier rows confirmed; rounding unknown floor after multiplication rounding nonnegative integer single deterministic policy ingamereward.csv residual DEMO default
23 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
24 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
25 luckyScratchRevealThreshold gesture completion threshold not recovered 65% revealed area percent 50..90 prevents pixel-perfect scratching GoodEventSpito UI residual DEMO default
26 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
27 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,29 @@
"system","original_rule","evidence","mvp_active_deviation","demo_default","status"
"base player stats","ATK20, HP500, AIM1.5, DEF10, EVA1, COUNTER10, ASP100, CRIT10","battleplayerdefaultstat.csv","HP100, DEF5, AIM100%, EVA0%, CRIT5%, ASP multiplier1.0; ATK20 and COUNTER10 retained","frozen values in v0.2.7","intentional deviation"
"battle cadence","real-time automatic cooldown/attack-speed system; each living actor schedules independently; interval=100/finalAttackSpeed","BattleController/native combat reverse","none; v0.2.8 adopts the original real-time cooldown scheduler and removes strict alternating turns","no global 0.25-second clamp","source-aligned"
"damage and lifesteal rounding","source keeps floating damage through HP subtraction and lifesteal uses ceil(finalDamage*rate/100)","combat native reverse report","none in calculation; UI may round only for display","positive lifesteal result has minimum heal 1","source-aligned"
"counterattack","independent >= RandomInt(1,101) check; triggered DamageMeta can miss or crit and uses defense; no lifesteal","combat native reverse report","none in calculation","base counter rate10","source-aligned"
"revive","Revive blessing exists and original product also contains revive/ad paths","augment.csv ID106 + native metadata","all revive disabled","run ends at HP<=0","intentional deviation"
"potions","9 shop potion offers","ingameshoplist.csv offers143..151","single healing potion only","10% maxHP, base capacity1","intentional deviation"
"board lifetime","one persistent 44-position board mutates across loops","BoardController native refresh path","none","4 large + 40 small","source-aligned"
"new-run generation","SpawnInitialTiles -> SpawnAllCornerTiles -> AddRandomGoodTiles(8)","InitNewGame native state machine","Good metadata deck is reduced to implemented events","8 attempts, not 8 guaranteed placements","mixed"
"Start normal refresh order","source call order differs from the product transaction order","Start MoveNext calls 0x5541AC0, 0x5544C94, 0x554661C, 0x5546828, 0x55472D8","shop interaction -> final Boss judgment -> Floor reward -> non-final loop and purchased Tile commit -> Good -> Enemy -> heal -> resume","30% maxHP heal","intentional transaction-order deviation"
"next-loop tile injection","AddRandomGoodTiles(loop+2), then AddRandomEnemyTile(enemyTilesPerLoop,false)","BoardController.AddNextLoopTiles native","none in structure","enemyTilesPerLoop=3 until serialized value is recovered","partial/default"
"Good event deck","new-account deck has 8 OutGameTile metadata: 100,103,106,109,112,124,133,136","outgametile.csv/outgametileskill.csv","runtime deck: tile IDs137,141,143,151,164,169 plus fixed AUGMENT124","169 gate overridden only for validation","intentional deviation"
"Corner set","8 enabled Corner tile rows:125,126,127,128,129,131,167,175 with gates","newtile.csv","only 125,127,128,129,131","consumed Corner locally refreshes to another legal Corner","intentional deviation + edge default"
"building / exterior houses","Housing Support 129 rolls two independent D6; A+B is the base construction-attempt count; actual construction is capped by eligible spaces in the upcoming row; exact reward conversion is unresolved","CornerDiceBuilding runtime path + corner-rules.csv","enable one exterior house slot per ordinary small tile; place without replacement on the next clockwise board side; houses persist independently of underlying tile mutation until final Boss conversion; Urban Planning 152 adds 2 attempts","1 spirit stone per actual house; no eligible slot resolves as zero; final Boss conversion clears all houses","source structure + MVP executable edges"
"blessing catalog","31 enabled main-mode blessings, equal base prob weight10","augment.csv + runtime observation for DoubleHeal","28 active; disable IDs106,156,157; show exactly 3 distinct candidates; all definitions return to pool after choice; stackable values add","DoubleHeal adds 8% max-HP healing per acquired copy on Natural Double; Urban Planning 152 is unique and adds 2 construction attempts","intentional scope and stacking rule"
"shop catalog","96 offers: TILE12/AUGMENT31/POTION9/STAT13/FIXED30/LOTTO1","ingameshoplist.csv","load all, enable 77 offers in runtime pools","see 03-shop-product-whitelist.csv","intentional scope filter"
"shop slots","3 fixed + 3 random","shop native/config reverse","none in count; random slots are equal-weight without replacement, cannot duplicate on one screen, and sold-out items stay excluded for the current visit","next shop activation clears the sold-out visit set; owned stackable blessings may recur","source-aligned + MVP draw edge rules"
"shop reroll","price=3+2*k, k starts0; free reroll does not advance k","gameconfig.csv ID119 + native shop reverse","none","no hard cap","source-aligned"
"ordinary repeat purchase","price does not automatically rise; buyCount limits stock","ingameshoplist.csv","none","fixed price","source-aligned"
"fixed potion upgrades","separate rows encode price ladder, not dynamic markup","offers165..194","mapped onto the single potion","count 10..78, heal 7..100, refill5","source structure + MVP mapping"
"black market","base + trunc(base*surchargePercent/100); percent unresolved","CornerBlackMarket native reverse","none in formula","50% surcharge","partial/default"
"equipment quality","six weights 210:60:28:4:1:4","weapondrop.csv","none","no pity","source-aligned"
"equipment level","Floor/Floor+1/Floor+2 relative weights90:5:1","gameconfig.csv ID100 + native reverse","none","weighted normalized draw","source-aligned"
"equipment salvage","exact in-run conversion values not closed","consumer unresolved","quality values1/2/4/8/12/16","fixed per quality","demo economy"
"enemy death reward","death-time generation path confirmed; no unified probabilities recovered","combat/drop reverse","95/4/1 normal and fixed+5:2 elite","see defaults table","demo economy"
"boss mid-fight gear","one mid-fight gear appearance observed; condition unknown","runtime observation","trigger at first <=50% crossing","once per boss","demo threshold"
"DiceGauge pressure","source hidden gauge 0->50->100, then 4-roll counter, then 4 distinct non-AUGMENT pressure tiles","stage config + IL2CPP + runtime","enter at50; +25 per player action; at100 count down4 rolls; pressure action resets to0; shortage does not downgrade and delays conversion","resolved pressure tile becomes Empty","intentional cycle deviation + frozen edge rules"
"final Boss conversion movement","source overflow edge not fully observed","Start/Boss branch partial + gameplay decision","preserve remainingSteps after 44-tile conversion; if zero require one more Roll and new landing","current standing tile is not a new landing","MVP frozen"
"Floor point reward","original loop reward resources and stage multipliers differ","ingamereward.csv","10+5*Floor in-run points","integer","intentional economy replacement"
1 system original_rule evidence mvp_active_deviation demo_default status
2 base player stats ATK20, HP500, AIM1.5, DEF10, EVA1, COUNTER10, ASP100, CRIT10 battleplayerdefaultstat.csv HP100, DEF5, AIM100%, EVA0%, CRIT5%, ASP multiplier1.0; ATK20 and COUNTER10 retained frozen values in v0.2.7 intentional deviation
3 battle cadence real-time automatic cooldown/attack-speed system; each living actor schedules independently; interval=100/finalAttackSpeed BattleController/native combat reverse none; v0.2.8 adopts the original real-time cooldown scheduler and removes strict alternating turns no global 0.25-second clamp source-aligned
4 damage and lifesteal rounding source keeps floating damage through HP subtraction and lifesteal uses ceil(finalDamage*rate/100) combat native reverse report none in calculation; UI may round only for display positive lifesteal result has minimum heal 1 source-aligned
5 counterattack independent >= RandomInt(1,101) check; triggered DamageMeta can miss or crit and uses defense; no lifesteal combat native reverse report none in calculation base counter rate10 source-aligned
6 revive Revive blessing exists and original product also contains revive/ad paths augment.csv ID106 + native metadata all revive disabled run ends at HP<=0 intentional deviation
7 potions 9 shop potion offers ingameshoplist.csv offers143..151 single healing potion only 10% maxHP, base capacity1 intentional deviation
8 board lifetime one persistent 44-position board mutates across loops BoardController native refresh path none 4 large + 40 small source-aligned
9 new-run generation SpawnInitialTiles -> SpawnAllCornerTiles -> AddRandomGoodTiles(8) InitNewGame native state machine Good metadata deck is reduced to implemented events 8 attempts, not 8 guaranteed placements mixed
10 Start normal refresh order source call order differs from the product transaction order Start MoveNext calls 0x5541AC0, 0x5544C94, 0x554661C, 0x5546828, 0x55472D8 shop interaction -> final Boss judgment -> Floor reward -> non-final loop and purchased Tile commit -> Good -> Enemy -> heal -> resume 30% maxHP heal intentional transaction-order deviation
11 next-loop tile injection AddRandomGoodTiles(loop+2), then AddRandomEnemyTile(enemyTilesPerLoop,false) BoardController.AddNextLoopTiles native none in structure enemyTilesPerLoop=3 until serialized value is recovered partial/default
12 Good event deck new-account deck has 8 OutGameTile metadata: 100,103,106,109,112,124,133,136 outgametile.csv/outgametileskill.csv runtime deck: tile IDs137,141,143,151,164,169 plus fixed AUGMENT124 169 gate overridden only for validation intentional deviation
13 Corner set 8 enabled Corner tile rows:125,126,127,128,129,131,167,175 with gates newtile.csv only 125,127,128,129,131 consumed Corner locally refreshes to another legal Corner intentional deviation + edge default
14 building / exterior houses Housing Support 129 rolls two independent D6; A+B is the base construction-attempt count; actual construction is capped by eligible spaces in the upcoming row; exact reward conversion is unresolved CornerDiceBuilding runtime path + corner-rules.csv enable one exterior house slot per ordinary small tile; place without replacement on the next clockwise board side; houses persist independently of underlying tile mutation until final Boss conversion; Urban Planning 152 adds 2 attempts 1 spirit stone per actual house; no eligible slot resolves as zero; final Boss conversion clears all houses source structure + MVP executable edges
15 blessing catalog 31 enabled main-mode blessings, equal base prob weight10 augment.csv + runtime observation for DoubleHeal 28 active; disable IDs106,156,157; show exactly 3 distinct candidates; all definitions return to pool after choice; stackable values add DoubleHeal adds 8% max-HP healing per acquired copy on Natural Double; Urban Planning 152 is unique and adds 2 construction attempts intentional scope and stacking rule
16 shop catalog 96 offers: TILE12/AUGMENT31/POTION9/STAT13/FIXED30/LOTTO1 ingameshoplist.csv load all, enable 77 offers in runtime pools see 03-shop-product-whitelist.csv intentional scope filter
17 shop slots 3 fixed + 3 random shop native/config reverse none in count; random slots are equal-weight without replacement, cannot duplicate on one screen, and sold-out items stay excluded for the current visit next shop activation clears the sold-out visit set; owned stackable blessings may recur source-aligned + MVP draw edge rules
18 shop reroll price=3+2*k, k starts0; free reroll does not advance k gameconfig.csv ID119 + native shop reverse none no hard cap source-aligned
19 ordinary repeat purchase price does not automatically rise; buyCount limits stock ingameshoplist.csv none fixed price source-aligned
20 fixed potion upgrades separate rows encode price ladder, not dynamic markup offers165..194 mapped onto the single potion count 10..78, heal 7..100, refill5 source structure + MVP mapping
21 black market base + trunc(base*surchargePercent/100); percent unresolved CornerBlackMarket native reverse none in formula 50% surcharge partial/default
22 equipment quality six weights 210:60:28:4:1:4 weapondrop.csv none no pity source-aligned
23 equipment level Floor/Floor+1/Floor+2 relative weights90:5:1 gameconfig.csv ID100 + native reverse none weighted normalized draw source-aligned
24 equipment salvage exact in-run conversion values not closed consumer unresolved quality values1/2/4/8/12/16 fixed per quality demo economy
25 enemy death reward death-time generation path confirmed; no unified probabilities recovered combat/drop reverse 95/4/1 normal and fixed+5:2 elite see defaults table demo economy
26 boss mid-fight gear one mid-fight gear appearance observed; condition unknown runtime observation trigger at first <=50% crossing once per boss demo threshold
27 DiceGauge pressure source hidden gauge 0->50->100, then 4-roll counter, then 4 distinct non-AUGMENT pressure tiles stage config + IL2CPP + runtime enter at50; +25 per player action; at100 count down4 rolls; pressure action resets to0; shortage does not downgrade and delays conversion resolved pressure tile becomes Empty intentional cycle deviation + frozen edge rules
28 final Boss conversion movement source overflow edge not fully observed Start/Boss branch partial + gameplay decision preserve remainingSteps after 44-tile conversion; if zero require one more Roll and new landing current standing tile is not a new landing MVP frozen
29 Floor point reward original loop reward resources and stage multipliers differ ingamereward.csv 10+5*Floor in-run points integer intentional economy replacement
@@ -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"
1 key value execution_rule source_status source
2 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
3 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
4 housingSupportTileId 129 Landing on Housing Support opens the construction event and performs one two-die construction roll source-aligned newtile.csv + CornerDiceBuilding reverse
5 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
6 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
7 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
8 actualBuiltCount min(totalAttempts, eligibleSlotCount) Every selected eligible slot succeeds; unused attempts are discarded source-aligned cap + MVP edge CornerDiceBuilding reverse + v0.2.8
9 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
10 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
11 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
12 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
13 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
14 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,14 @@
# 10-配置与白名单
Start时序、内容白名单、未知参数默认值及原作/MVP对照。
## 文件
- [01-start-settlement-timeline.csv](./01-start-settlement-timeline.csv) — contract;来源:`analysis/mvp-rules-closure/01-start-settlement-timeline.csv`
- [02-tile-corner-blessing-whitelist.csv](./02-tile-corner-blessing-whitelist.csv) — contract;来源:`analysis/mvp-rules-closure/02-tile-corner-blessing-whitelist.csv`
- [03-shop-product-whitelist.csv](./03-shop-product-whitelist.csv) — contract;来源:`analysis/mvp-rules-closure/03-shop-product-whitelist.csv`
- [04-unknown-parameter-mvp-defaults.csv](./04-unknown-parameter-mvp-defaults.csv) — contract;来源:`analysis/mvp-rules-closure/04-unknown-parameter-mvp-defaults.csv`
- [05-original-vs-mvp-vs-demo.csv](./05-original-vs-mvp-vs-demo.csv) — contract;来源:`analysis/mvp-rules-closure/05-original-vs-mvp-vs-demo.csv`
- [06-building-rules.csv](./06-building-rules.csv) — contract;来源:`analysis/mvp-rules-closure/06-building-rules.csv`
模块内Markdown与CSV均来自同一v0.2.8规则域;跨模块综合报告会在相关模块中保留副本。