Initial import of HEROLL source and design documents
This commit is contained in:
@@ -0,0 +1,29 @@
|
||||
# HEROLL 玩法验证配置索引
|
||||
|
||||
本目录与 `../Heroll_Gameplay_Validation_GDD.md` 共同构成玩法验证版唯一规范。编码 UTF-8;数组在 CSV 中使用竖线 `|` 分隔;布尔值使用 `true/false`;空值表示字段不适用,不表示待定。`potions.csv` 中 `HEAL_LEVEL.value` 是固定 HP,商店每级增加 30 HP;最大生命百分比恢复属于独立丹药强化。
|
||||
|
||||
关卡楼层、刷新与 Boss 压力以 [专项逆向报告](../../../analysis/stage-floor-rules/2026-08-31_逆向-HEROLL关卡楼层分布与刷新规则-report.md) 及其 `tables/` 为覆盖规范;旧版“每层固定两个有益地块”“六类事件保证袋”和“stage 0 启用 DiceGauge”均已失效。
|
||||
|
||||
| 文件 | 主键 | 用途 | 目标数量 |
|
||||
|---|---|---|---:|
|
||||
| `evidence-map.csv` | `evidence_id` | Evidence → Finding → Design 追溯 | ≥16 |
|
||||
| `floor-balance.csv` | `floor` | 10 层敌方基础值与 Boss 基准 | 10 |
|
||||
| `formula-fit.csv` | `gate_id` | 战斗/DDA 拟合门禁与补录矩阵 | ≥12 |
|
||||
| `gear-catalog.csv` | `catalog_id` | 40 件局内装备外观目录 | 40 |
|
||||
| `gear-status.csv` | `status_id` | 13 个装备属性生成规则 | 13 |
|
||||
| `blessings.csv` | `blessing_id` | 31 源码祝福 + 第三骰 | 32 |
|
||||
| `potions.csv` | `record_id` | 容量、治疗曲线与强化 | 40 |
|
||||
| `shop-offers.csv` | `offer_id` | 96 源码商品 + 第三骰商品 | 97 |
|
||||
| `events.csv` | `event_id` | 商人、核心六类和 12 地块 | 13 |
|
||||
| `reward-boosts.csv` | `placement_id` | 8 事件增强 + 复活 | 9 |
|
||||
| `data-contracts.csv` | `contract` | TypeScript/CSV 映射 | ≥12 |
|
||||
| `ui-screens.csv` | `screen_id` | 页面、控件与状态 | ≥20 |
|
||||
| `assets.csv` | `asset_id` | HEROLL 原型资产映射 | ≥20 |
|
||||
| `animation-vfx.csv` | `event` | 动作、特效、音频时序 | ≥20 |
|
||||
| `qa-cases.csv` | `case_id` | 自动化、调试台与现场验收 | ≥45 |
|
||||
|
||||
专项外部表:`analysis/stage-floor-rules/tables/stage-boss-rules.csv`、`stage0-loop-enemy-stats.csv`、`enabled-tile-eligibility.csv`、`default-good-tile-deck.csv`。
|
||||
|
||||
`../diagrams/` 保存与主文档三个 Mermaid 代码块一致的独立可编辑源码:`run-state.mmd`、`reward-transaction.mmd`、`checkpoint-recovery.mmd`。结构验收结果见 `../VALIDATION_REPORT.md`。
|
||||
|
||||
来源标签:`SOURCE_CONFIRMED`、`RUNTIME_OBSERVED`、`BLACKBOX_FITTED`、`VALIDATION_ADDED`。`formula-fit.csv` 中的 `BLOCKED_CLEAN_CAPTURE` 是显式发布门禁,不得改写为 `PASS`,除非保存了对应的无局外加成样本和误差报告。
|
||||
@@ -0,0 +1,29 @@
|
||||
event,total_duration_ms,anticipation_ms,active_ms,recovery_ms,hit_stop_ms,logic_marker,vfx_layer,audio_cue,performance_budget,acceptance,source_tag
|
||||
UIPrimaryPress,180,0,70,110,0,onPointerDown,HUD,sfx_ui_confirm,0 particles,feedback begins within 50ms,VALIDATION_ADDED
|
||||
DiceRoll,1267,120,650,247,0,diceResultCommitted,WorldUI,sfx_dice_roll|sfx_dice_settle,1 trail + 1 result halo,result still readable >=250ms,RUNTIME_OBSERVED
|
||||
DiceThirdChoice,300,60,100,140,0,thirdChoiceCommitted,ModalFront,sfx_ui_select,1 replacement streak,A B C values remain visible through choice,VALIDATION_ADDED
|
||||
MoveOneTile,160,20,100,40,0,tileStepAdvanced,World,sfx_step,1 dust burst,actor settles on integer pixels,VALIDATION_ADDED
|
||||
FloorTransition,900,150,300,450,0,floorStateCommitted,WorldUI,sfx_floor_up,2 tile glows + heal burst,HP and layer update only once,VALIDATION_ADDED
|
||||
BossCountdownTick,300,40,160,100,0,bossCounterCommitted,HUD,sfx_boss_warn,1 meter pulse,number and rail color visibly update before tile resolution,VALIDATION_ADDED
|
||||
BossConvertFourTiles,2240,520,1360,360,0,bossTilesCommitted,WorldUI,sfx_boss_warn|sfx_boss_hit,4 sequential tile flashes,each selected tile visibly changes once and blessing tile never changes,VALIDATION_ADDED
|
||||
BattleEnter,700,0,420,280,0,battleSnapshotCreated,Camera|HUD,sfx_battle_enter,no heavy particles,repeat entrance completes <=700ms,RUNTIME_OBSERVED
|
||||
EnemySpawn,350,100,100,150,0,entitySpawned,CharacterUnderlay,sfx_spawn,<=24 particles per entity,collider active only after spawn marker,VALIDATION_ADDED
|
||||
NormalAttack,240,60,90,90,70,damageResolved,CharacterFront,sfx_sword_hit,<=80 live particles,weapon crosses target during active window,RUNTIME_OBSERVED
|
||||
StraightShot,420,80,220,120,40,projectileImpact,ProjectileFront,sfx_arrow,1 projectile + <=16 impact particles,origin and target line unambiguous,VALIDATION_ADDED
|
||||
CurvedShot,800,350,250,200,50,projectileImpact,GroundTell|ProjectileFront,sfx_arc_launch|sfx_arc_hit,1 decal + 1 projectile,landing tell visible >=300ms,VALIDATION_ADDED
|
||||
RushAttack,850,500,180,170,90,rushCollision,GroundTell|CharacterFront,sfx_rush_prepare|sfx_rush_hit,1 strip + <=32 particles,warning strip equals collision path,VALIDATION_ADDED
|
||||
CriticalAttack,1000,250,120,630,120,criticalDamageResolved,VFXFront,sfx_critical,<=120 particles + 1 flash,no white frame >33ms,VALIDATION_ADDED
|
||||
BossSkill0,1100,550,200,350,150,bossSkillDamage,GroundTell|VFXFront,sfx_boss_warn|sfx_boss_hit,<=200 live particles,tell and damage area mismatch <=4 logical px,SOURCE_CONFIRMED
|
||||
DamageNumber,667,0,80,587,0,damageResolved,HUDFront,sfx_none,<=24 visible numbers,merge same source hits within150ms,RUNTIME_OBSERVED
|
||||
HealEffect,650,80,250,320,0,healCommitted,CharacterFront,sfx_heal,<=60 particles,green cyan-white core visible on Grass,VALIDATION_ADDED
|
||||
ShieldEffect,300,80,120,100,0,shieldCommitted,CharacterUnderlay,sfx_shield,<=32 persistent particles,persistent opacity <=45%,VALIDATION_ADDED
|
||||
BattleVictory,750,0,250,500,100,postBattleCommitted,HUDFront,sfx_victory,1 banner burst,reward values appear after commit,RUNTIME_OBSERVED
|
||||
GearRevealCommon,250,40,120,90,0,gearOfferCreated,ModalFront,sfx_gear_reveal,1 rim light,item icon readable by180ms,RUNTIME_OBSERVED
|
||||
GearRevealLegend,633,120,250,263,0,gearOfferCreated,ModalFront,sfx_gear_legend,<=80 particles,legend reveal longer but skippable after marker,RUNTIME_OBSERVED
|
||||
GearEquip,500,80,180,240,0,equipCommitted,HUDFront,sfx_equip,1 fly trail + slot flash,old gear exits before salvage number,VALIDATION_ADDED
|
||||
GearSalvage,400,60,120,220,0,salvageCommitted,HUDFront,sfx_salvage,<=32 shard particles,point delta matches transaction once,VALIDATION_ADDED
|
||||
BlessingReveal,450,80,180,190,0,blessingOfferCreated,ModalFront,sfx_blessing,<=48 particles,title readable by250ms,VALIDATION_ADDED
|
||||
BoostCommit,360,40,100,220,0,rewardBoostCommitted,ModalFront,sfx_boost,play icon pulse + one reward burst,legacy animation only; no current UI trigger,DEFERRED_NOT_EXPOSED
|
||||
Revive,900,250,250,400,0,sourceReviveBlessingResolved,CharacterFront,sfx_revive,<=100 particles,source blessing only; no ad revive UI,SOURCE_CONFIRMED
|
||||
BossDeath,1183,150,350,683,180,bossVictoryCommitted,VFXFront,sfx_boss_death,<=240 particles,reward modal waits for silhouette settle,RUNTIME_OBSERVED
|
||||
Toast,1740,180,1400,160,0,toastQueued,HUD,sfx_toast,0 particles,does not cover Roll potion or boss tell,VALIDATION_ADDED
|
||||
|
@@ -0,0 +1,31 @@
|
||||
asset_id,category,logical_use,source_asset_or_key,prototype_path,import_rule,rights_boundary,source_tag
|
||||
AS-001,scene,Grass back layer,chapter_select_back_grass,analysis/visual-study/unity-samples/scene/sharedassets4__chapter_select_back_grass.png,"Point filter|no mipmap|pixelsPerUnit source-native|integer scale",internal-only HEROLL asset,RUNTIME_OBSERVED
|
||||
AS-002,scene,Grass front layer,chapter_select_front_grass,analysis/visual-study/unity-samples/scene/sharedassets4__chapter_select_front_grass.png,"Point filter|no mipmap|separate parallax layer",internal-only HEROLL asset,RUNTIME_OBSERVED
|
||||
AS-003,ui,common 9-slice panel,ingame_common_bg,analysis/visual-study/unity-samples/ui/sharedassets3__ingame_common_bg.png,"Point filter|9-slice borders from source|integer scale",internal-only HEROLL asset,RUNTIME_OBSERVED
|
||||
AS-004,ui,normal board tile,tile_normal,analysis/visual-study/unity-samples/ui/sharedassets3__tile_normal.png,"Point filter|pivot center|no rotation interpolation",internal-only HEROLL asset,RUNTIME_OBSERVED
|
||||
AS-005,ui,good event tile,tile_goodEvent,analysis/visual-study/unity-samples/ui/sharedassets3__tile_goodEvent.png,"Point filter|green semantic frame retained",internal-only HEROLL asset,RUNTIME_OBSERVED
|
||||
AS-006,ui,dice primary button,dice_btn_2,analysis/visual-study/unity-samples/ui/sharedassets3__dice_btn_2.png,"Point filter|pressed frame separate|minimum hit 180x96 at 750 canvas",internal-only HEROLL asset,RUNTIME_OBSERVED
|
||||
AS-007,ui,equipment status frame,weapon_status_bg,analysis/visual-study/unity-samples/ui/sharedassets3__weapon_status_bg.png,"Point filter|quality border overlays separate",internal-only HEROLL asset,RUNTIME_OBSERVED
|
||||
AS-008,ui,tutorial bubble,tutorial_bubble_bg,analysis/visual-study/unity-samples/ui/sharedassets3__tutorial_bubble_bg.png,"Point filter|9-slice|pointer separate",internal-only HEROLL asset,RUNTIME_OBSERVED
|
||||
AS-009,ui,boss icon,ingame_boss_icon,analysis/visual-study/unity-samples/ui/sharedassets3__ingame_boss_icon.png,"Point filter|render >=2x integer",internal-only HEROLL asset,RUNTIME_OBSERVED
|
||||
AS-010,ui,blessing card motif,joker_card_hero,analysis/visual-study/unity-samples/ui/sharedassets3__joker_card_hero.png,"Point filter|preserve HEROLL source colors",internal-only HEROLL asset,RUNTIME_OBSERVED
|
||||
AS-011,vfx,tile glow,Fx_T_TileGlow02,analysis/visual-study/unity-samples/vfx/sharedassets3__Fx_T_TileGlow02.png,"Point filter|additive only for core|<=48 live particles",internal-only HEROLL asset,RUNTIME_OBSERVED
|
||||
AS-012,vfx,sword slash,Fx_T_Sword01,analysis/visual-study/unity-samples/vfx/sharedassets3__Fx_T_Sword01.png,"Point filter|sprite sheet|direction mirrors with actor",internal-only HEROLL asset,RUNTIME_OBSERVED
|
||||
AS-013,vfx,slash sequence,fx_T_slashSeq02,analysis/visual-study/unity-samples/vfx/sharedassets3__fx_T_slashSeq02.png,"Point filter|alpha then additive|one instance per hit",internal-only HEROLL asset,RUNTIME_OBSERVED
|
||||
AS-014,vfx,dice machine burst,game_machine_dice_VFX_3,analysis/visual-study/unity-samples/vfx/sharedassets4__game_machine_dice_VFX_3.png,"Point filter|reuse only for dice-machine result",internal-only HEROLL asset,RUNTIME_OBSERVED
|
||||
AS-015,player,player sword battle set,HEROLL current sword hero prefab,SliceDice/analysis/heroll/assets-inventory/objects.csv,"extract sprite/anim clips from owning Unity bundle|Point filter|preserve pivots",internal-only HEROLL asset,RUNTIME_OBSERVED
|
||||
AS-016,enemy,melee family,enemy_sword_0|enemy_sword_1|enemy_sword_2|enemy_sword_3|enemy_sword_4,SliceDice/analysis/heroll/assets-inventory/objects.csv,"map idle move attack hit death by prefab key",internal-only HEROLL asset,SOURCE_CONFIRMED
|
||||
AS-017,enemy,straight family,enemy_straight_0|enemy_straight_1,SliceDice/analysis/heroll/assets-inventory/objects.csv,"map projectile origin anchor explicitly",internal-only HEROLL asset,SOURCE_CONFIRMED
|
||||
AS-018,enemy,curved family,enemy_curved_0|enemy_curved_1,SliceDice/analysis/heroll/assets-inventory/objects.csv,"separate projectile and ground-target sprites",internal-only HEROLL asset,SOURCE_CONFIRMED
|
||||
AS-019,enemy,rush family,enemy_rush_0|enemy_rush_1,SliceDice/analysis/heroll/assets-inventory/objects.csv,"separate prepare rush collision recovery clips",internal-only HEROLL asset,SOURCE_CONFIRMED
|
||||
AS-020,boss,boss prefab,boss_0|Board_Boss001,SliceDice/analysis/heroll/assets-inventory/objects.csv,"preserve source scale ratios|separate skill_0 timeline",internal-only HEROLL asset,SOURCE_CONFIRMED
|
||||
AS-021,boss,boss start sprite,boss_start,analysis/visual-study/unity-samples/character_boss/sharedassets3__boss_start.png,"Point filter|one-shot entrance",internal-only HEROLL asset,RUNTIME_OBSERVED
|
||||
AS-022,boss,boss idle reference,014_boss_idle_1|001_boss_idle_2,analysis/visual-study/unity-samples/character_boss,"Point filter|preserve frame duration",internal-only HEROLL asset,RUNTIME_OBSERVED
|
||||
AS-023,boss,boss attack reference,019_boss_attack_8|001_boss_attack_2,analysis/visual-study/unity-samples/character_boss,"Point filter|damage tick authored separately",internal-only HEROLL asset,RUNTIME_OBSERVED
|
||||
AS-024,event,smithy installation icon,Installtile_smithy,SliceDice/analysis/heroll/assets-inventory/objects.csv,"Point filter|green good-event frame",internal-only HEROLL asset,SOURCE_CONFIRMED
|
||||
AS-025,event,recovery installation icon,Installtile_healing,SliceDice/analysis/heroll/assets-inventory/objects.csv,"Point filter|green good-event frame",internal-only HEROLL asset,SOURCE_CONFIRMED
|
||||
AS-026,event,legend installation icon,Installtile_legend,SliceDice/analysis/heroll/assets-inventory/objects.csv,"Point filter|gold inner cue plus shape",internal-only HEROLL asset,SOURCE_CONFIRMED
|
||||
AS-027,event,dig installation icon,Installtile_corpse,SliceDice/analysis/heroll/assets-inventory/objects.csv,"Point filter|do not gore-enhance",internal-only HEROLL asset,SOURCE_CONFIRMED
|
||||
AS-028,event,chest installation icon,Installtile_treasure_chest,SliceDice/analysis/heroll/assets-inventory/objects.csv,"Point filter|closed/open frames",internal-only HEROLL asset,SOURCE_CONFIRMED
|
||||
AS-029,event,minigame icons,Installtile_lotto|Installtile_blackjack|Installtile_clwa|Installtile_goldCarriage|Installtile_dice_machine|Installtile_bubble_shooter,SliceDice/analysis/heroll/assets-inventory/objects.csv,"Point filter|each retains unique silhouette",internal-only HEROLL asset,SOURCE_CONFIRMED
|
||||
AS-030,audio,functional SFX set,HEROLL extracted FMOD/audio entries,SliceDice/analysis/heroll/assets-inventory,"decode for local prototype only|no BGM banks|mono short clips preferred",internal-only HEROLL asset,RUNTIME_OBSERVED
|
||||
|
@@ -0,0 +1,33 @@
|
||||
blessing_id,source_id,string_id,enabled,grade_rule,prob_weight,stackable,linear_value,values,after_plus_value,time_value,max_count,stat_value,need_ids,icon,effect_contract,source_tag
|
||||
AUG-100,100,AttackShield,true,SCALABLE,10,false,6,6,,-1,1,,,a_0,on each successful basic attack grant shield 6,SOURCE_CONFIRMED
|
||||
AUG-102,102,CritHeal,true,SCALABLE,10,true,15,15|20|25|30,1,-1,999,,,a_2,on critical hit heal selected value percent of dealt damage,VALIDATION_ADDED
|
||||
AUG-103,103,CritDamageUp,true,SCALABLE,10,true,30,30|35|40,2,-1,999,,,a_3,add selected value percentage points to critical damage multiplier,VALIDATION_ADDED
|
||||
AUG-106,106,Revive,true,SCALABLE,10,false,4,4,,-1,100,,,a_6,on lethal damage revive once and restore 4 percent max health,VALIDATION_ADDED
|
||||
AUG-108,108,FirstAttackDMGUp,true,SCALABLE,10,true,70,70|80|90,1,-1,999,,,a_8,first player hit in battle deals selected percent bonus damage,VALIDATION_ADDED
|
||||
AUG-109,109,DMGUpAfterSecond,true,SCALABLE,10,true,30,30,2,3,999,,,a_9,after 2 seconds add 30 percent total damage for 3 seconds,VALIDATION_ADDED
|
||||
AUG-110,110,ASPUpAfterSecond,true,SCALABLE,10,true,30,30,2,3,999,,,a_10,after 2 seconds add 30 percent attack speed for 3 seconds,VALIDATION_ADDED
|
||||
AUG-111,111,DoubleHeal,true,SCALABLE,10,true,8,8,2,-1,999,,,a_11,healing events have 8 percent chance to resolve twice,VALIDATION_ADDED
|
||||
AUG-112,112,LowHPASPUp,true,SCALABLE,10,true,3,3,1,-1,999,,,a_12,while hp at or below 30 percent gain 30 percent attack speed,VALIDATION_ADDED
|
||||
AUG-113,113,BattleStartHeal,true,SCALABLE,10,false,10,10,1,-1,6,,,a_13,at PreBattle heal 10 percent max health,SOURCE_CONFIRMED
|
||||
AUG-114,114,LuckyHit,true,SCALABLE,10,false,4,4,1,-1,5,,,a_14,every fourth successful hit is guaranteed critical,VALIDATION_ADDED
|
||||
AUG-115,115,DiceSumDMGUp,true,SCALABLE,10,true,30,30|40|50,1,-1,999,,,a_15,if latest dice sum at least 9 add selected total damage percent for next battle,VALIDATION_ADDED
|
||||
AUG-116,116,DiceSumShield,true,SCALABLE,10,false,1,1,,-1,1,,,a_16,at PreBattle gain shield equal to latest dice sum,SOURCE_CONFIRMED
|
||||
AUG-117,117,KillHPUp,true,SCALABLE,10,true,10,5,1,-1,1,,,a_17,on enemy kill increase max health by 5 and heal same amount,VALIDATION_ADDED
|
||||
AUG-118,118,ReduceEnemyDEF,true,SCALABLE,10,true,30,10|20|30,1,-1,999,,,a_18,reduce all spawned enemy defense by selected percent,SOURCE_CONFIRMED
|
||||
AUG-121,121,EnemyCountStatUp,true,SCALABLE,10,true,8,8,1,-1,5,ALL,,a_20,for each enemy above one add 8 percent to attack health defense aim and evasion,VALIDATION_ADDED
|
||||
AUG-122,122,OddDiceCritUp,true,SCALABLE,10,true,20,20,2,-1,11,,,a_21,if latest move sum is odd add 20 critical rate for next battle,SOURCE_CONFIRMED
|
||||
AUG-124,124,KillInTimeGetGear,true,SCALABLE,10,false,0,0,,2.5,999,,,a_23,if battle ends within 2.5 seconds add one gear view opportunity,SOURCE_CONFIRMED
|
||||
AUG-125,125,HealAfterSecond,true,SCALABLE,10,true,20,20,2,5,6,,,a_24,every 5 seconds heal 20 flat health,SOURCE_CONFIRMED
|
||||
AUG-126,126,LightingEverySec,true,SCALABLE,10,true,10,10,1,1,21,,,a_25,every second deal 10 percent attack as true damage to all enemies,VALIDATION_ADDED
|
||||
AUG-132,132,KillForHeroGear,true,SCALABLE,10,false,10,10,1,-1,999,,,a_29,each kill adds 10 percent chance for one EPIC gear after battle,SOURCE_CONFIRMED
|
||||
AUG-147,147,KillAllEmeny,true,SCALABLE,10,false,,0,,-1,999,,,a_44,on acquire defeat all non-boss enemies in current battle; otherwise arm for next normal battle,VALIDATION_ADDED
|
||||
AUG-148,148,PointSupply,true,SCALABLE,10,false,20,20,,-1,999,,,a_45,on acquire grant 20 points,SOURCE_CONFIRMED
|
||||
AUG-149,149,DicePotionGet,true,SCALABLE,10,false,,0,,-1,5,,,a_46,on rolling doubles restore one potion charge up to max,VALIDATION_ADDED
|
||||
AUG-150,150,KillPotionGet,true,SCALABLE,10,true,10,10,1,-1,1,,,a_47,on enemy kill 10 percent chance restore one potion charge,SOURCE_CONFIRMED
|
||||
AUG-151,151,ShopFreeReroll,true,SCALABLE,10,true,1,1,1,-1,10,,,a_48,grant one free merchant reroll token,SOURCE_CONFIRMED
|
||||
AUG-152,152,EmptyTripleBuild,true,SCALABLE,10,false,2,2,,-1,999,,,a_49,when three empty tiles are passed consecutively install one random core good tile,VALIDATION_ADDED
|
||||
AUG-153,153,EvaHeal,true,SCALABLE,10,true,3,1|2|3,1,-1,10,,,a_50,on successful evade heal selected flat value,SOURCE_CONFIRMED
|
||||
AUG-154,154,BattleEndHeal,true,SCALABLE,10,true,10,10,1,-1,11,,,a_51,on normal battle victory heal 10 percent max health,SOURCE_CONFIRMED
|
||||
AUG-156,156,BurnEnemyDead,true,SCALABLE,10,true,150,150,5,-1,15,,FirstEnemyAllBurn,a_53,when a burning enemy dies deal 150 percent attack burn damage to all remaining enemies,VALIDATION_ADDED
|
||||
AUG-157,157,FirstEnemyAllBurn,true,SCALABLE,10,false,10,10,1,-1,10,,,a_54,first enemy hit applies burn 10 percent attack per second for 3 seconds,VALIDATION_ADDED
|
||||
AUG-THIRD-DIE,,ThirdDieReplace,true,LEGENDARY,1,false,1,1,,-1,1,,,a_third_die,after A and B roll generate C then replace A replace B or discard,VALIDATION_ADDED
|
||||
|
@@ -0,0 +1,18 @@
|
||||
contract,typescript_field,csv_file,csv_column,parse_rule,validation,error_policy,source_tag
|
||||
RunState,floor,floor-balance.csv,floor,"int 1..10","1<=floor<=10",reject_checkpoint,VALIDATION_ADDED
|
||||
RunState,points,shop-offers.csv,price,"signed int transaction result","points>=0",rollback_command,VALIDATION_ADDED
|
||||
RngStreamState,algorithm,none,none,"literal xoshiro128ss","state has 4 uint32",reject_checkpoint,VALIDATION_ADDED
|
||||
RngStreamState,index,technical_log,rngIndex,"uint64 serialized as decimal string","monotonic per stream",reject_checkpoint,VALIDATION_ADDED
|
||||
DdaState,sourceConditions,gameconfig.csv,dynamicDifficultyCondition,"int[3] 5|8|12","exact source array",force_tier0,SOURCE_CONFIRMED
|
||||
DdaState,sourceValues,gameconfig.csv,dynamicDifficultyValue,"int[6] 10|15|20|5|5|5","exact source array",force_tier0,SOURCE_CONFIRMED
|
||||
DiceRoll,dieA|dieB,none,none,"diceRng int inclusive 1..6","36 ordered outcomes equal",abort_roll,VALIDATION_ADDED
|
||||
BattleSnapshot,enemies,floor-balance.csv|monsterinfo.csv,combat columns,"base × prefab × dda","finite nonnegative stats",abort_battle,SOURCE_CONFIRMED
|
||||
GearInstance,catalogId,gear-catalog.csv,catalog_id,int foreign key,"exactly 40 valid ids",reject_reward,SOURCE_CONFIRMED
|
||||
GearInstance,statusId|value,gear-status.csv,status_id|base_min|base_max|plus_value,"uniform base + plus×rank","finite and display precision",reject_reward,VALIDATION_ADDED
|
||||
BlessingInstance,blessingId,blessings.csv,blessing_id,string foreign key,"exactly 32 ids",reject_reward,SOURCE_CONFIRMED
|
||||
PotionState,countLevel|healLevel|healAmount,potions.csv,level|value,"lookup HEAL_LEVEL value as flat HP","count 1..10 healAmount 50..650",reject_purchase,SOURCE_CONFIRMED
|
||||
BossGaugeState,enabled|runtimeGauge|mode|playerRolls|countdownRemaining,stage-boss-rules.csv,bossSpawnRule|bossSpawnRuleValue,"enabled only for DiceGauge; gauge clamp 0..100; BUILDUP 0..2 then COUNTDOWN 4..0","stage0 enabled=false; DiceGauge increment=50 and 2+4 observed cycle",reject_checkpoint,RUNTIME_OBSERVED
|
||||
ShopState,fixedOfferIds|randomOfferIds,shop-offers.csv,offer_id,"eligible filtered sample","3 fixed + <=3 random unique",rollback_reroll,SOURCE_CONFIRMED
|
||||
EventInstance,tileId,events.csv,tile_id,"int or MERCHANT","known event and legal tile",rollback_install,SOURCE_CONFIRMED
|
||||
RewardBoostTransaction,placementId,reward-boosts.csv,placement_id,string foreign key,"event placement matches",reject_transaction,VALIDATION_ADDED
|
||||
Checkpoint,checksum,none,none,"SHA-256 canonical JSON without checksum","64 lowercase hex",load_backup,VALIDATION_ADDED
|
||||
|
@@ -0,0 +1,15 @@
|
||||
event_id,tile_id,string_id,natural_core,purchasable,min_floor,base_rule,source_values,source_tables,boost_placement,instance_reset,source_tag
|
||||
EV-MERCHANT,MERCHANT,Merchant,true,false,3,"show 3 fixed upgrade offers and 3 random offers; floors 3|6|9; reroll cost 3+2*n",3|6|9,ingameshoplist.csv|gameconfig.csv,BOOST_MERCHANT_POINTS,new merchant per generated tile,VALIDATION_ADDED
|
||||
EV-137,137,GoodEventSmithy,true,true,1,"choose equipped gear; direct claim or upgrade; success by quality 80|50|30|10; failure destroys and salvages",80|50|30|10,newtile.csv,BOOST_SMITHY_RATE,new visit creates new event instance,SOURCE_CONFIRMED
|
||||
EV-138,138,GoodEventRecovery,true,true,1,"heal 30 percent max health capped at max",30,newtile.csv,BOOST_CAMPFIRE_HEAL_TILE,new visit creates new event instance,VALIDATION_ADDED
|
||||
EV-139,139,GoodEventLegendGear,false,true,1,"create one LEGENDARY rank3 gear view opportunity",3,newtile.csv,,new visit creates new event instance,SOURCE_CONFIRMED
|
||||
EV-140,140,GoodEventHeroBody,true,true,1,"5x5 digging board; seed-select source shapes; base 5 digs; reveal all cells in selected stamp and grant revealed rewards",5|5|5,newtile.csv|herobodyminigame.csv,BOOST_DIG_EXTRA,new visit creates new board,VALIDATION_ADDED
|
||||
EV-141,141,GoodEventChest,true,true,1,"open chest and atomically generate three gear view opportunities using normal loot generator",3,newtile.csv|GoodEventChest native|owner screenshot,BOOST_CHEST_REROLL,new visit creates new chest,SOURCE_CONFIRMED
|
||||
EV-142,142,GoodEventLotto,false,true,4,"pay 5 points for one draw; outcomes NONE|POINT5|POINT10|RANDOM_GEAR with weights 50|30|15|5",5|50|30|15|5,newtile.csv|ingameshoplist.csv,,one draw per visit,VALIDATION_ADDED
|
||||
EV-143,143,GoodEventBlackJack,false,true,4,"start with 3 D6; player may hit or stand to approach 21; first win is 10 points; collect or rematch with streak multipliers 2.5|5|10; loss forfeits unclaimed streak reward",3|10|2.5|5|10,newtile.csv|BlackJackView native|Tiles wiki,,new dice stream per hand; streak persists only through rematch,SOURCE_CONFIRMED_PARTIAL_TIE
|
||||
EV-144,144,GoodEventPowerStar,true,true,4,"draw one blessing card from 31 source plus ThirdDieReplace pool; accept or one forced replacement",0,newtile.csv|augment.csv,BOOST_BLESSING_REROLL,new visit creates new blessing offer,SOURCE_CONFIRMED
|
||||
EV-151,151,GoodEventClawGrab,false,true,1,"spawn 20 capsules with one guaranteed Legendary capsule at bottom and weighted normal pool; base 1 attempt; 15 second input window; reward only when capsule reaches collection trigger",1|15,newtile.csv|clawcraneminigame.csv|PhysicsClawGame native,BOOST_CLAW_ATTEMPT,new cabinet per visit,SOURCE_CONFIRMED
|
||||
EV-152,152,GoodEventGoldCarriage,false,true,1,"show 4 closed carts; choose one; reward tier selected by hp ratio thresholds 75|30|0 and source point potion gear caps",4,newtile.csv|goldcarriage.csv,,new four-cart layout per visit,VALIDATION_ADDED
|
||||
EV-164,164,GoodEventDiceMachine,false,true,4,"roll three fair D6 displayed as zero-based match keys; exact pair/triple patterns grant point gear free-roll blessing tile or potion per source table; unmatched grants none",,newtile.csv|dicemachine.csv,,one roll per visit,SOURCE_CONFIRMED
|
||||
EV-166,166,GoodEventBubbleShooter,false,true,4,"seed-select one of 6 source maps; base 3 projectiles; 18 second round; match 3 colors; clear thresholds grant 3|5|10 points",3|18|0|3|5|10,newtile.csv|bubbleshooterminigame.csv,BOOST_BUBBLE_SHOT,new board per visit,VALIDATION_ADDED
|
||||
EV-169,169,GoodEventSpito,false,true,4,"preselect point prize with weights 10|50|40; scratch cover until reveal threshold; grant exactly one prize 30|10|1",30|10|1|10|50|40,newtile.csv|SpitoEventView|ScratchPainter|owner screenshot,,new card per visit,SOURCE_CONFIRMED
|
||||
|
@@ -0,0 +1,21 @@
|
||||
evidence_id,title,source_type,source_ref,sha256,repro,raw_excerpt,finding_id,finding,design_id,design_ref,confidence
|
||||
E-001,第1关阶段配置,file,SliceDice/analysis/heroll/resource-tables/extracted/csv/stageinfo.csv,C71617B18829B5F07838BD725C946317932811E6C28A57BA86B159BCFEDC41DA,"读取stage=0且EPlayMode=Normal行","Grass|Default|10|boss_0|skill_0|7",F-001,第1关为Grass主题10层并使用boss_0,D-001,GDD §3.1,high
|
||||
E-002,第1关十层敌方基础值,file,SliceDice/analysis/heroll/resource-tables/extracted/csv/board.csv,5AFB1F02C1508B6EE5B83EC03B40785EA817563323265EB606DC0105C4CDB026,"筛选Stage=0且loop=0..9","attack 3..60|health 30..159|defense 0..13.5",F-002,十层基础属性可逐行还原,D-002,floor-balance.csv,high
|
||||
E-003,玩家裸装属性,file,SliceDice/analysis/heroll/resource-tables/extracted/csv/playerdefaultstat.csv,0172D9DE8C26657507C000667C1CEC2A951489D905D9CA5C6476A192F911ABEA,"读取全部9行","range5|move40|attack10|attackSpeed100|health150",F-003,验证版可以从裸装固定属性开始,D-003,GDD §5.1,high
|
||||
E-004,怪物组和攻击角色,file,SliceDice/analysis/heroll/resource-tables/extracted/csv/monstergroup.csv,C6259715E9EC02A19C99E00950DFA7D036F5CA460BAC752965630FA76B572904,"读取group_10与boss_0","SWORD,SWORD,STRAIGHT,STRAIGHT|boss_0",F-004,源码确认普通组和Boss入口,D-004,GDD §5.2,high
|
||||
E-005,敌人与Boss倍率,file,SliceDice/analysis/heroll/resource-tables/extracted/csv/monsterinfo.csv,EBC3D2F4CFE57E76277DAD786E150436CE9203E1AD1A4C92EC16622487CC9E40,"筛选enemy_sword/straight/curved/rush与boss_0","boss attack×2|health×4|attackSpeed×1",F-005,四种攻击角色有独立prefab倍率,D-005,GDD §5.2,high
|
||||
E-006,启用祝福,file,SliceDice/analysis/heroll/resource-tables/extracted/csv/augment.csv,E0B14AF4709E3F0D548973E124F679EF091589D7C99B0E35DE78C628A73D032A,"筛选isEnabled=True","31 rows",F-006,源码祝福池为31个启用项,D-006,blessings.csv,high
|
||||
E-007,局内装备目录,file,SliceDice/analysis/heroll/resource-tables/extracted/csv/weapondrop.csv,AF8C97D022A83C1FF898D33FC541F157CAD1DC6C5732FF57D61A502E82914809,"按EMonoWeapon分组","4 slots × 10",F-007,完整局内装备目录为40件,D-007,gear-catalog.csv,high
|
||||
E-008,装备属性表,file,SliceDice/analysis/heroll/resource-tables/extracted/csv/weaponstatus.csv,1F40ED34DD80B1E1674C7E03266E488141491B22527215C3D5C2671CC119A0B6,"读取全部13行","13 status definitions",F-008,装备词条有13类基础区间,D-008,gear-status.csv,high
|
||||
E-009,局内商店表,file,SliceDice/analysis/heroll/resource-tables/extracted/csv/ingameshoplist.csv,7D32A03BC4D82177999027A5B2A7171888C4C2B3831B8FC1B2F141F02D74ABC8,"过滤数值Id并按itemType计数","96 rows:12 tile|31 augment|9 potion|13 stat|30 fixed|1 lotto",F-009,源码局内商品恰好96条,D-009,shop-offers.csv,high
|
||||
E-010,药水等级曲线,file,SliceDice/analysis/heroll/resource-tables/extracted/csv/potion.csv,8049B5B835636F6A6FFE73B14D7CDB75FB8B48C18F4DF4D53DB0C8B3D18EFA99,"按type读取","count 1..10|heal 50..650",F-010,药水容量和治疗可直接配置,D-010,potions.csv,high
|
||||
E-011,药水强化,file,SliceDice/analysis/heroll/resource-tables/extracted/csv/potionaugment.csv,A8585434956E68A5C2E273809BD010DFC57531C642A83B75B2B5A1FA79987095,"筛选isEnabled=True","9 enabled|GuaranteedDouble disabled",F-011,验证版药水强化池为9,D-011,potions.csv,high
|
||||
E-012,全局玩法参数,file,SliceDice/analysis/heroll/resource-tables/extracted/csv/gameconfig.csv,A57510DEDE13DAF1A597DE1EE73E47B0ABD830D96719DAD24B2CA7370E8DFE3D,"读取BaseCritical EnemyDamgeRange starsPerAugment augmentRatio shopReroll DDA","150|15|stars|50,30,20,5|3,2|DDA arrays",F-012,关键权重和DDA原始数组已确认但语义方法体不足,D-012,GDD §5.4-5.5,high
|
||||
E-013,用户流程录像,file,参考资料/功能浏览与关卡流程.mp4,382875D92932E77091DE698476310F14B017575BFE3C7F0CAB95889E0F3F1D97,"本地播放并按时间轴观察","UI and run flow reference",F-013,视频可辅助界面与流程但不证明隐藏公式,D-013,ui-screens.csv,medium
|
||||
E-014,用户抽卡录像,file,参考资料/抽卡.mp4,F7789EB239D1B4D19CCED8D48B462B8377BB350248CB57AA58356726F0096507,"本地播放并按时间轴观察","out-of-scope gacha reference",F-014,抽卡属于本验证版排除项,D-014,GDD §2.4,high
|
||||
E-015,截图说明,file,参考资料/截图说明.jpg,F3C468A2D91E5D4145EC91BDA07855827635371F36BA8E7021C790F4ED0CBA08,"打开原图读取标注","user annotations",F-015,标注用于解释HEROLL界面且不覆盖源码数值,D-015,ui-screens.csv,medium
|
||||
E-016,IL2CPP元数据,file,SliceDice/analysis/heroll/metadata/assembly-csharp.json,BA6D3F4BD91B0D3977EB1229AB46FE563118CC55793346796F93816BA7FEF526,"搜索BoardController BattleController DDA和formula相关字段","types and method names without recovered bodies",F-016,调用边界可确认但最终战斗和DDA方法体不可据此恢复,D-016,formula-fit.csv,high
|
||||
E-017,系统摘要,file,SliceDice/analysis/heroll/metadata-analysis/system-summary.json,C29F1ED5039C1CCC88F5FA20B98CCE840FA78957ED8A7D7F60AFB03161269236,"读取玩法系统类型与入口摘要","Board/Battle/Shop/Event boundaries",F-017,可按领域拆分Cocos模块,D-017,GDD §12.1,high
|
||||
E-018,提取资产清单,file,analysis/visual-study/unity-samples/manifest.csv,2CECF139A96DE0389B9D9772F9DFD365145B18E3450A439CCB87464365107C6A,"读取exported条目","Grass scene|boss|UI|VFX samples",F-018,HEROLL内部原型资产可支撑玩法验证表现,D-018,assets.csv,high
|
||||
E-019,桌面试玩棋盘与事件,runtime,Heroll : Dice Roguelike desktop session,n/a,"启动桌面快捷方式并进入关卡","point0→chest→smithy80%→board roll→auto battle victory",F-019,实机确认宝箱铁匠铺点数与自动战斗表现但账号HP329含局外加成,D-019,formula-fit.csv,high
|
||||
E-020,运行时启动日志,log,analysis/gameplay-monetization/evidence/runtime-session-2026-08-13.md,n/a,"按文档复现启动并检索Board与boss","Normal|boss_0|Board init|Ingame Save",F-020,棋盘场景与boss_0运行链存在,D-020,GDD §3,high
|
||||
|
@@ -0,0 +1,11 @@
|
||||
floor,source_loop,monster_group,attack_power,health,defense,attack_speed,evasion,aim,life_steal,heal_on_entry_pct,good_tiles_injected,merchant_present,boss_after_floor,source_tag
|
||||
1,0,10,3,30,0,1,12,0,0,0,0,false,false,SOURCE_CONFIRMED
|
||||
2,1,10,6,38,1.5,1,23,7,0,30,2,false,false,SOURCE_CONFIRMED
|
||||
3,2,10,8,43,3,1,34,14,0,30,2,true,false,SOURCE_CONFIRMED
|
||||
4,3,10,12,58,4.5,1,45,21,0,30,2,false,false,SOURCE_CONFIRMED
|
||||
5,4,10,17,67,6,1,56,28,0,30,2,false,false,SOURCE_CONFIRMED
|
||||
6,5,10,22,80,7.5,1,67,35,0,30,2,true,false,SOURCE_CONFIRMED
|
||||
7,6,10,30,109,9,1,78,42,0,30,2,false,false,SOURCE_CONFIRMED
|
||||
8,7,10,39,125,10.5,1,89,49,0,30,2,false,false,SOURCE_CONFIRMED
|
||||
9,8,10,46,141,12,1,100,56,0,30,2,true,false,SOURCE_CONFIRMED
|
||||
10,9,10,60,159,13.5,1,111,63,0,30,2,false,true,SOURCE_CONFIRMED
|
||||
|
@@ -0,0 +1,15 @@
|
||||
gate_id,system,parameter_or_function,validation_baseline,source_evidence,capture_protocol,min_samples,acceptance,current_status,release_effect
|
||||
FIT-001,damage,player_normal_damage,"max(1,round(atk*100/(100+def)*U[0.85,1.15]))",E-003|E-008|E-012,"裸装stage0;录属性页与至少30次非暴击命中;画面需同时包含敌人层号和伤害数字",30,median_APE<=5%,BLOCKED_CLEAN_CAPTURE,prototype_allowed_release_claim_blocked
|
||||
FIT-002,damage,enemy_normal_damage,"same formula using floor/prefab attack",E-002|E-005|E-012,"无局外减伤;floor1/floor5/floor10各录30次敌人非暴击命中与玩家掉血前后",90,median_APE<=5%,BLOCKED_CLEAN_CAPTURE,prototype_allowed_release_claim_blocked
|
||||
FIT-003,defense,mitigation,"100/(100+defense)",E-008|E-016,"同层同敌人;分别使用0防御和一件已知防御装备;各30次命中",60,paired_median_APE<=5%,BLOCKED_CLEAN_CAPTURE,prototype_allowed_release_claim_blocked
|
||||
FIT-004,hit,hit_chance,"clamp(0.05,0.95,(100+aim-evasion)/100)",E-002|E-003|E-008,"固定敌人;记录裸装和已知Aim装备各200次攻击的命中/闪避",400,prediction_inside_Wilson95,BLOCKED_CLEAN_CAPTURE,prototype_allowed_release_claim_blocked
|
||||
FIT-005,evasion,evasion_interaction,"same hit function with defender evasion",E-002|E-008,"固定玩家命中;0闪避和已知闪避值各200次敌人攻击",400,prediction_inside_Wilson95,BLOCKED_CLEAN_CAPTURE,prototype_allowed_release_claim_blocked
|
||||
FIT-006,critical,critical_multiplier,1.50,E-012,"装备已知暴击率;记录至少30组相同攻击/防御下普通与暴击伤害",30,median_ratio_APE<=5%,BLOCKED_CLEAN_CAPTURE,prototype_allowed_release_claim_blocked
|
||||
FIT-007,life_steal,heal_from_damage,"floor(finalDamage*lifeStealPct/100)",E-003|E-008,"降低玩家生命并装备已知吸血;记录30次伤害与同步回血",30,median_APE<=5%,BLOCKED_CLEAN_CAPTURE,prototype_allowed_release_claim_blocked
|
||||
FIT-008,attack_speed,player_attack_interval,"max(0.15,1/(attackSpeed/100))",E-003|E-008,"1x速度;裸装与已知攻速装备各录连续20次攻击时间戳",40,median_interval_APE<=5%,BLOCKED_CLEAN_CAPTURE,prototype_allowed_release_claim_blocked
|
||||
FIT-009,attack_speed,enemy_attack_interval,"board.attackSpeed*prefab.multiplier",E-002|E-005,"同一敌人连续20次攻击;包含完整前摇和命中帧",20,median_interval_APE<=5%,BLOCKED_CLEAN_CAPTURE,prototype_allowed_release_claim_blocked
|
||||
FIT-010,battle_duration,normal_battle,"deterministic simulation",E-002|E-003|E-005,"裸装或完整记录装备/祝福;floor1/floor5/floor10各10场;从Fight首帧到PostBattle",30,median_APE<=10%,BLOCKED_CLEAN_CAPTURE,release_candidate_false
|
||||
FIT-011,battle_duration,boss_0,"stage0 floor10 + boss multipliers",E-001|E-002|E-005,"完整记录进Boss前属性/装备/祝福与10场Boss战;不手动用药或标记用药tick",10,median_APE<=10%,BLOCKED_CLEAN_CAPTURE,release_candidate_false
|
||||
FIT-012,DDA,condition_and_value_mapping,"tier0 multipliers=1 until fitted",E-012|E-016,"用同一seed连续制造<=5s 5-8s 8-12s >12s战斗;每次录下一战敌方属性和技术日志",24,exact_transition_match,BLOCKED_CLEAN_CAPTURE,dda_forced_tier0
|
||||
FIT-013,potion,potion_heal_and_augments,"potions.csv validation semantics",E-010|E-011,"每个强化单独启用;录使用前后HP/护盾/次数和后续一次攻击或战斗结束",9,exact_state_delta_match,BLOCKED_CLEAN_CAPTURE,prototype_uses_validation_semantics
|
||||
FIT-014,points,point_sources_and_salvage,"grade salvage=1|2|4|8|16",E-007|E-009|E-019,"分别分解五品质装备并录余额前后;再录移动 战斗 宝箱各一次",8,exact_delta_match,BLOCKED_CLEAN_CAPTURE,prototype_uses_validation_values
|
||||
|
@@ -0,0 +1,41 @@
|
||||
catalog_id,string_id,slot,icon_name,title_key,index_in_slot,source_tag
|
||||
100,ingame_weapon_01,WEAPON,ingame_weapon_icon_01,ingame_weapon_01_title,1,SOURCE_CONFIRMED
|
||||
101,ingame_weapon_02,WEAPON,ingame_weapon_icon_02,ingame_weapon_02_title,2,SOURCE_CONFIRMED
|
||||
102,ingame_weapon_03,WEAPON,ingame_weapon_icon_03,ingame_weapon_03_title,3,SOURCE_CONFIRMED
|
||||
103,ingame_weapon_04,WEAPON,ingame_weapon_icon_04,ingame_weapon_04_title,4,SOURCE_CONFIRMED
|
||||
104,ingame_weapon_05,WEAPON,ingame_weapon_icon_05,ingame_weapon_05_title,5,SOURCE_CONFIRMED
|
||||
105,ingame_weapon_06,WEAPON,ingame_weapon_icon_06,ingame_weapon_06_title,6,SOURCE_CONFIRMED
|
||||
106,ingame_weapon_07,WEAPON,ingame_weapon_icon_07,ingame_weapon_07_title,7,SOURCE_CONFIRMED
|
||||
107,ingame_weapon_08,WEAPON,ingame_weapon_icon_08,ingame_weapon_08_title,8,SOURCE_CONFIRMED
|
||||
108,ingame_weapon_09,WEAPON,ingame_weapon_icon_09,ingame_weapon_09_title,9,SOURCE_CONFIRMED
|
||||
109,ingame_weapon_10,WEAPON,ingame_weapon_icon_10,ingame_weapon_10_title,10,SOURCE_CONFIRMED
|
||||
113,ingame_ring_01,RING,ingame_ring_icon_01,ingame_ring_01_title,1,SOURCE_CONFIRMED
|
||||
114,ingame_ring_02,RING,ingame_ring_icon_02,ingame_ring_02_title,2,SOURCE_CONFIRMED
|
||||
115,ingame_ring_03,RING,ingame_ring_icon_03,ingame_ring_03_title,3,SOURCE_CONFIRMED
|
||||
116,ingame_ring_04,RING,ingame_ring_icon_04,ingame_ring_04_title,4,SOURCE_CONFIRMED
|
||||
117,ingame_ring_05,RING,ingame_ring_icon_05,ingame_ring_05_title,5,SOURCE_CONFIRMED
|
||||
118,ingame_ring_06,RING,ingame_ring_icon_06,ingame_ring_06_title,6,SOURCE_CONFIRMED
|
||||
119,ingame_ring_07,RING,ingame_ring_icon_07,ingame_ring_07_title,7,SOURCE_CONFIRMED
|
||||
120,ingame_ring_08,RING,ingame_ring_icon_08,ingame_ring_08_title,8,SOURCE_CONFIRMED
|
||||
121,ingame_ring_09,RING,ingame_ring_icon_09,ingame_ring_09_title,9,SOURCE_CONFIRMED
|
||||
122,ingame_ring_10,RING,ingame_ring_icon_10,ingame_ring_10_title,10,SOURCE_CONFIRMED
|
||||
129,ingame_gauntlet_01,GAUNTLET,ingame_gauntlet_icon_01,ingame_gauntlet_01_title,1,SOURCE_CONFIRMED
|
||||
130,ingame_gauntlet_02,GAUNTLET,ingame_gauntlet_icon_02,ingame_gauntlet_02_title,2,SOURCE_CONFIRMED
|
||||
131,ingame_gauntlet_03,GAUNTLET,ingame_gauntlet_icon_03,ingame_gauntlet_03_title,3,SOURCE_CONFIRMED
|
||||
132,ingame_gauntlet_04,GAUNTLET,ingame_gauntlet_icon_04,ingame_gauntlet_04_title,4,SOURCE_CONFIRMED
|
||||
133,ingame_gauntlet_05,GAUNTLET,ingame_gauntlet_icon_05,ingame_gauntlet_05_title,5,SOURCE_CONFIRMED
|
||||
134,ingame_gauntlet_06,GAUNTLET,ingame_gauntlet_icon_06,ingame_gauntlet_06_title,6,SOURCE_CONFIRMED
|
||||
135,ingame_gauntlet_07,GAUNTLET,ingame_gauntlet_icon_07,ingame_gauntlet_07_title,7,SOURCE_CONFIRMED
|
||||
136,ingame_gauntlet_08,GAUNTLET,ingame_gauntlet_icon_08,ingame_gauntlet_08_title,8,SOURCE_CONFIRMED
|
||||
137,ingame_gauntlet_09,GAUNTLET,ingame_gauntlet_icon_09,ingame_gauntlet_09_title,9,SOURCE_CONFIRMED
|
||||
138,ingame_gauntlet_10,GAUNTLET,ingame_gauntlet_icon_10,ingame_gauntlet_10_title,10,SOURCE_CONFIRMED
|
||||
145,ingame_boots_01,BOOTS,ingame_boots_icon_01,ingame_boots_01_title,1,SOURCE_CONFIRMED
|
||||
146,ingame_boots_02,BOOTS,ingame_boots_icon_02,ingame_boots_02_title,2,SOURCE_CONFIRMED
|
||||
147,ingame_boots_03,BOOTS,ingame_boots_icon_03,ingame_boots_03_title,3,SOURCE_CONFIRMED
|
||||
148,ingame_boots_04,BOOTS,ingame_boots_icon_04,ingame_boots_04_title,4,SOURCE_CONFIRMED
|
||||
149,ingame_boots_05,BOOTS,ingame_boots_icon_05,ingame_boots_05_title,5,SOURCE_CONFIRMED
|
||||
150,ingame_boots_06,BOOTS,ingame_boots_icon_06,ingame_boots_06_title,6,SOURCE_CONFIRMED
|
||||
151,ingame_boots_07,BOOTS,ingame_boots_icon_07,ingame_boots_07_title,7,SOURCE_CONFIRMED
|
||||
152,ingame_boots_08,BOOTS,ingame_boots_icon_08,ingame_boots_08_title,8,SOURCE_CONFIRMED
|
||||
153,ingame_boots_09,BOOTS,ingame_boots_icon_09,ingame_boots_09_title,9,SOURCE_CONFIRMED
|
||||
154,ingame_boots_10,BOOTS,ingame_boots_icon_10,ingame_boots_10_title,10,SOURCE_CONFIRMED
|
||||
|
@@ -0,0 +1,14 @@
|
||||
status_id,string_id,stat_type,ref_status,base_min,base_max,plus_value,is_percent,decimals,combat_power_multiplier,effect_contract,source_tag
|
||||
100,ATTACK_POWER,NORMAL,,3,7,5,false,0,4,add attackPower,SOURCE_CONFIRMED
|
||||
101,HEALTH,NORMAL,,20,40,50,false,0,1,add maxHealth and currentHealth by same delta,SOURCE_CONFIRMED
|
||||
102,AIM,NORMAL,,5,15,10,false,0,1.5,add aim,SOURCE_CONFIRMED
|
||||
103,DEFENSE,NORMAL,,1.5,2.5,1.5,false,1,2,add defense,SOURCE_CONFIRMED
|
||||
104,EVASION,UTIL,,14,20,7,false,0,1,add evasion,SOURCE_CONFIRMED
|
||||
105,REGEN_PER_SECOND,HEAL,HEALTH,1,2,2.4,false,1,3,heal value each logic second during Fight,SOURCE_CONFIRMED
|
||||
106,TOTAL_DAMAGE,ATTACK,ATTACK_POWER,1,2,1,false,1,5,add totalDamagePct despite source IsPercent false; validation semantic,VALIDATION_ADDED
|
||||
107,TRUE_DAMAGE,ATTACK,ATTACK_POWER,1,2.5,1.7,false,1,2,add flat trueDamage,SOURCE_CONFIRMED
|
||||
108,KILL_HEAL,HEAL,HEALTH,6,9,2.5,false,1,3,heal flat value on enemy death,SOURCE_CONFIRMED
|
||||
109,COUNTER_ATTACK,UTIL,,7,9,1.5,true,1,1,on hit received roll percent then immediate basic counter,SOURCE_CONFIRMED
|
||||
110,ATTACK_SPEED,UTIL,,7,9,1.4,true,1,2,add attackSpeed percent,SOURCE_CONFIRMED
|
||||
111,CRITICAL_RATE,ATTACK,,10,12,1.5,true,1,2,add criticalRate percent,SOURCE_CONFIRMED
|
||||
112,LIFE_STEAL,HEAL,,4.5,7.5,1.5,true,1,2,add lifeSteal percent,SOURCE_CONFIRMED
|
||||
|
@@ -0,0 +1,41 @@
|
||||
record_id,record_type,source_id,string_id,level,value,value_a,value_b,enabled,effect_contract,source_tag
|
||||
COUNT-0,COUNT_LEVEL,100,Potion_CountLevel_0,0,1,,,true,max charges 1,SOURCE_CONFIRMED
|
||||
COUNT-1,COUNT_LEVEL,101,Potion_CountLevel_1,1,2,,,true,max charges 2,SOURCE_CONFIRMED
|
||||
COUNT-2,COUNT_LEVEL,102,Potion_CountLevel_2,2,3,,,true,max charges 3,SOURCE_CONFIRMED
|
||||
COUNT-3,COUNT_LEVEL,103,Potion_CountLevel_3,3,4,,,true,max charges 4,SOURCE_CONFIRMED
|
||||
COUNT-4,COUNT_LEVEL,104,Potion_CountLevel_4,4,5,,,true,max charges 5,SOURCE_CONFIRMED
|
||||
COUNT-5,COUNT_LEVEL,105,Potion_CountLevel_5,5,6,,,true,max charges 6,SOURCE_CONFIRMED
|
||||
COUNT-6,COUNT_LEVEL,106,Potion_CountLevel_6,6,7,,,true,max charges 7,SOURCE_CONFIRMED
|
||||
COUNT-7,COUNT_LEVEL,107,Potion_CountLevel_7,7,8,,,true,max charges 8,SOURCE_CONFIRMED
|
||||
COUNT-8,COUNT_LEVEL,108,Potion_CountLevel_8,8,9,,,true,max charges 9,SOURCE_CONFIRMED
|
||||
COUNT-9,COUNT_LEVEL,109,Potion_CountLevel_9,9,10,,,true,max charges 10,SOURCE_CONFIRMED
|
||||
HEAL-0,HEAL_LEVEL,110,Potion_HealLevel_0,0,50,,,true,restore 50 flat HP,SOURCE_CONFIRMED
|
||||
HEAL-1,HEAL_LEVEL,111,Potion_HealLevel_1,1,80,,,true,restore 80 flat HP,SOURCE_CONFIRMED
|
||||
HEAL-2,HEAL_LEVEL,112,Potion_HealLevel_2,2,110,,,true,restore 110 flat HP,SOURCE_CONFIRMED
|
||||
HEAL-3,HEAL_LEVEL,113,Potion_HealLevel_3,3,140,,,true,restore 140 flat HP,SOURCE_CONFIRMED
|
||||
HEAL-4,HEAL_LEVEL,114,Potion_HealLevel_4,4,170,,,true,restore 170 flat HP,SOURCE_CONFIRMED
|
||||
HEAL-5,HEAL_LEVEL,115,Potion_HealLevel_5,5,200,,,true,restore 200 flat HP,SOURCE_CONFIRMED
|
||||
HEAL-6,HEAL_LEVEL,116,Potion_HealLevel_6,6,230,,,true,restore 230 flat HP,SOURCE_CONFIRMED
|
||||
HEAL-7,HEAL_LEVEL,117,Potion_HealLevel_7,7,260,,,true,restore 260 flat HP,SOURCE_CONFIRMED
|
||||
HEAL-8,HEAL_LEVEL,118,Potion_HealLevel_8,8,290,,,true,restore 290 flat HP,SOURCE_CONFIRMED
|
||||
HEAL-9,HEAL_LEVEL,119,Potion_HealLevel_9,9,320,,,true,restore 320 flat HP,SOURCE_CONFIRMED
|
||||
HEAL-10,HEAL_LEVEL,120,Potion_HealLevel_10,10,350,,,true,restore 350 flat HP,SOURCE_CONFIRMED
|
||||
HEAL-11,HEAL_LEVEL,121,Potion_HealLevel_11,11,380,,,true,restore 380 flat HP,SOURCE_CONFIRMED
|
||||
HEAL-12,HEAL_LEVEL,122,Potion_HealLevel_12,12,410,,,true,restore 410 flat HP,SOURCE_CONFIRMED
|
||||
HEAL-13,HEAL_LEVEL,123,Potion_HealLevel_13,13,440,,,true,restore 440 flat HP,SOURCE_CONFIRMED
|
||||
HEAL-14,HEAL_LEVEL,124,Potion_HealLevel_14,14,470,,,true,restore 470 flat HP,SOURCE_CONFIRMED
|
||||
HEAL-15,HEAL_LEVEL,125,Potion_HealLevel_15,15,500,,,true,restore 500 flat HP,SOURCE_CONFIRMED
|
||||
HEAL-16,HEAL_LEVEL,126,Potion_HealLevel_16,16,530,,,true,restore 530 flat HP,SOURCE_CONFIRMED
|
||||
HEAL-17,HEAL_LEVEL,127,Potion_HealLevel_17,17,560,,,true,restore 560 flat HP,SOURCE_CONFIRMED
|
||||
HEAL-18,HEAL_LEVEL,128,Potion_HealLevel_18,18,590,,,true,restore 590 flat HP,SOURCE_CONFIRMED
|
||||
HEAL-19,HEAL_LEVEL,129,Potion_HealLevel_19,19,620,,,true,restore 620 flat HP,SOURCE_CONFIRMED
|
||||
HEAL-20,HEAL_LEVEL,130,Potion_HealLevel_20,20,650,,,true,restore 650 flat HP,SOURCE_CONFIRMED
|
||||
AUG-100,AUGMENT,100,Potion_AttackBoost,,,300,1,true,next successful player attack deals plus 300 percent damage; one hit,VALIDATION_ADDED
|
||||
AUG-101,AUGMENT,101,Potion_AutoCharge,,,1,-1,true,after winning a battle restore 1 potion charge up to max,VALIDATION_ADDED
|
||||
AUG-103,AUGMENT,103,Potion_LightningAttack,,,-1,-1,true,on potion use deal 100 percent attack true damage to all enemies,VALIDATION_ADDED
|
||||
AUG-104,AUGMENT,104,Potion_ExtraShield,,,1,-1,true,on potion use grant shield equal to actual heal amount,VALIDATION_ADDED
|
||||
AUG-105,AUGMENT,105,Potion_LowStockBoost,,,20,-1,true,if charge before use is 1 increase all potion healing by 20 percent,VALIDATION_ADDED
|
||||
AUG-106,AUGMENT,106,Potion_AdaptiveHealing,,,50,-1,true,if hp before use is at or below 50 percent increase healing by 50 percent,VALIDATION_ADDED
|
||||
AUG-107,AUGMENT,107,Potion_MaxHealthGain,,,5,-1,true,on use increase max health by 5 percent then heal,VALIDATION_ADDED
|
||||
AUG-108,AUGMENT,108,Potion_PercentHeal,,,10,-1,true,on use additionally heal 10 percent max health,VALIDATION_ADDED
|
||||
AUG-109,AUGMENT,109,Potion_GachaHeal,,,20,200,true,on use 20 percent chance add 200 flat healing,VALIDATION_ADDED
|
||||
|
@@ -0,0 +1,83 @@
|
||||
case_id,priority,area,setup,action,expected,automation,gate,source_tag
|
||||
QA-001,P0,scope,production-like local build,scan scenes scripts configs and packages,no account meta energy gacha IAP network real ad SDK story or BGM entry,static scan,release,VALIDATION_ADDED
|
||||
QA-002,P0,dice,fixed seed and fresh streams,simulate 1000000 rolls,36 ordered outcomes pass chi-square p>=0.01,node test,release,VALIDATION_ADDED
|
||||
QA-003,P0,dice,fixed seed,run 100 rolls twice,dieA dieB and RNG indices byte-identical,node test,release,VALIDATION_ADDED
|
||||
QA-004,P0,dice,all blessings and DDA tiers,compare base dice sequence to clean run,base A/B sequence unchanged,node test,release,VALIDATION_ADDED
|
||||
QA-005,P0,dice,ThirdDieReplace active,exercise replaceA replaceB discard,move sums correct and A/B log preserved,node test,release,VALIDATION_ADDED
|
||||
QA-006,P1,dice,normal roll,force doubles,no universal reward or reroll appears,node test,release,VALIDATION_ADDED
|
||||
QA-007,P0,board,position Tile39 and roll crosses Start,resolve move,exactly one floor transition and no second landing resolve,node test,release,VALIDATION_ADDED
|
||||
QA-008,P0,board,each floor 1..10,finish lap,floor increments and heal round(maxHp*0.30) capped,node test,release,VALIDATION_ADDED
|
||||
QA-009,P0,board,each floor transition with recorded zero-based loopIndex,inspect good-tile draw and install attempts,request count equals loopIndex plus2 and success count never exceeds request count,node test,release,SOURCE_CONFIRMED
|
||||
QA-010,P0,board,fresh account default eight-meta deck and fixed seed,initialize run and inspect first eight draws,all eight default metas appear once before reshuffle,node simulation,release,SOURCE_CONFIRMED
|
||||
QA-011,P0,board,seed suite 10000 runs,inspect merchant generation,merchant only and always on floors3 6 9,node simulation,release,VALIDATION_ADDED
|
||||
QA-012,P0,boss,complete floor10,resolve transition,boss_0 with skill_0 and cooldown7 starts,node test,release,SOURCE_CONFIRMED
|
||||
QA-013,P0,combat,naked run,create player snapshot,stats equal 5|40|10|100|150|0|0|0|5,node test,release,SOURCE_CONFIRMED
|
||||
QA-014,P0,combat,floor1..10,spawn base enemies,base stats match floor-balance.csv exactly,node test,release,SOURCE_CONFIRMED
|
||||
QA-015,P0,combat,floor10 boss spawn,inspect snapshot,multipliers attack2 hp4 defense1 speed1 evasion1 aim1 lifeSteal0,node test,release,SOURCE_CONFIRMED
|
||||
QA-016,P0,combat,controlled attack and defense,run deterministic hit,validation baseline formula matches exact integer result,node test,prototype,VALIDATION_ADDED
|
||||
QA-017,P0,combat,clean capture matrix,run fit report,player and enemy damage median APE<=5%,analysis script,release,VALIDATION_ADDED
|
||||
QA-018,P0,combat,clean capture matrix,run duration fit,floor bands and boss median APE<=10%,analysis script,release,VALIDATION_ADDED
|
||||
QA-019,P0,combat,hit and evasion capture,run Wilson check,predictions inside 95 percent intervals,analysis script,release,VALIDATION_ADDED
|
||||
QA-020,P0,combat,critical and lifeSteal capture,run fit,crit ratio and healing median APE<=5%,analysis script,release,VALIDATION_ADDED
|
||||
QA-021,P0,combat,attack speed capture,run interval fit,player and enemy median interval APE<=5%,analysis script,release,VALIDATION_ADDED
|
||||
QA-022,P0,DDA,tier0 normal run,roll dice and loot sequences,DDA does not alter dice shop loot or events,node test,release,VALIDATION_ADDED
|
||||
QA-023,P0,DDA,known state transitions,save reload,state arrays multipliers recentBattleMs and reason preserved,node test,release,VALIDATION_ADDED
|
||||
QA-024,P0,DDA,clean DDA captures,run transition matcher,exact transition and multiplier match,analysis script,release,VALIDATION_ADDED
|
||||
QA-025,P0,potion,Fight and one charge,double click same tick,only one use and one heal,node test,release,VALIDATION_ADDED
|
||||
QA-026,P0,potion,each count and heal level,load lookup,10 capacity and 21 heal records exact,node test,release,SOURCE_CONFIRMED
|
||||
QA-027,P0,potion,each of 9 augments,run isolated scripted scenario,state delta equals potions.csv contract,node test,release,VALIDATION_ADDED
|
||||
QA-028,P1,potion,GuaranteedDouble source row,scan pools and shop,disabled augment never appears,static scan,release,SOURCE_CONFIRMED
|
||||
QA-029,P0,gear,catalog load,count and group,exactly 40 with 10 per slot,node test,release,SOURCE_CONFIRMED
|
||||
QA-030,P0,gear,loot simulation 1000000,inspect quality counts,weights fit 210|60|28|4|1 within statistical tolerance,node simulation,release,SOURCE_CONFIRMED
|
||||
QA-031,P0,gear,100000 simulated runs,count view opportunities,P50 between6 and8,node simulation,release,VALIDATION_ADDED
|
||||
QA-032,P0,gear,slot empty and occupied,equip new gear,new flies in old leaves and old salvage points once,integration,release,VALIDATION_ADDED
|
||||
QA-033,P0,gear,batch with 3 unhandled,close modal,all 3 salvage in source order with no duplicate,integration,release,VALIDATION_ADDED
|
||||
QA-034,P0,gear,all 13 statuses,generate each,min max plus rank and display precision match,node test,release,SOURCE_CONFIRMED
|
||||
QA-035,P0,smithy,quality ranks0..3,run 100000 trials each,base success rates fit80|50|30|10,node simulation,release,SOURCE_CONFIRMED
|
||||
QA-036,P0,smithy,boost used ranks0..3,run 100000 trials each,boost rates fit100|80|50|30,node simulation,release,VALIDATION_ADDED
|
||||
QA-037,P0,smithy,force failure,resolve,equipment removed and pre-failure quality salvage once,node test,release,VALIDATION_ADDED
|
||||
QA-038,P0,blessing,load pool,count enabled,31 source plus ThirdDieReplace equals32,node test,release,SOURCE_CONFIRMED
|
||||
QA-039,P0,blessing,reveal card,use boost,replacement differs and only Accept remains,node test,release,VALIDATION_ADDED
|
||||
QA-040,P0,blessing,pool edge only same eligible,use boost,original accepted and transaction commits without loop,node test,release,VALIDATION_ADDED
|
||||
QA-041,P0,blessing,levels0..40,lookup star cost,index clamps to29 and sequence matches source,node test,release,SOURCE_CONFIRMED
|
||||
QA-042,P0,shop,load offers,count and group,97 total with source distribution plus one augment,node test,release,VALIDATION_ADDED
|
||||
QA-043,P0,shop,open merchant,inspect slots,3 fixed and 3 unique random eligible offers,integration,release,VALIDATION_ADDED
|
||||
QA-044,P0,shop,reroll count0..5,inspect quote,cost equals3+2*n,node test,release,SOURCE_CONFIRMED
|
||||
QA-045,P0,shop,insufficient points,attempt purchase,no negative balance no RNG consumption no offer mutation,node test,release,VALIDATION_ADDED
|
||||
QA-046,P0,shop,purchase limit reached,reroll and reopen,offer remains ineligible,node test,release,SOURCE_CONFIRMED
|
||||
QA-047,P0,shop,purchase tile and cancel install,reopen,pending install preserved and no refund or loss,integration,release,VALIDATION_ADDED
|
||||
QA-048,P0,event,EV-140 forced,perform base digs,5x5 board and exactly5 actions before boost,integration,release,VALIDATION_ADDED
|
||||
QA-049,P0,event,EV-151 forced,inspect cabinet,20 capsules and1 base attempt,integration,release,SOURCE_CONFIRMED
|
||||
QA-050,P0,event,EV-166 forced,inspect all seeds,one of6 source maps and3 base shots,integration,release,SOURCE_CONFIRMED
|
||||
QA-051,P0,event,each tile137 138 139 140 141 142 143 144 151 152 164 166,force via debug,input presentation settlement save and exit all pass,manual debug checklist,release,SOURCE_CONFIRMED
|
||||
QA-052,P2,legacy boost,load old transaction fixture,restore,no UI control rendered and no new transaction created,node migration,archive,DEFERRED_NOT_EXPOSED
|
||||
QA-053,P2,legacy boost,old PENDING fixture,restore,compatibility recovery does not expose button,node migration,archive,DEFERRED_NOT_EXPOSED
|
||||
QA-054,P2,legacy boost,old COMMITTED fixture,restore,render does not apply balance or reward delta again,node migration,archive,DEFERRED_NOT_EXPOSED
|
||||
QA-055,P2,legacy boost,normal event instance,inspect controls,no boost transaction can be initiated from UI,node test,archive,DEFERRED_NOT_EXPOSED
|
||||
QA-056,P0,revive,lethal with source Revive available,resolve,source blessing resolves once before failure decision,node test,release,SOURCE_CONFIRMED
|
||||
QA-057,P0,revive,lethal with no source Revive,resolve,full DEFEAT animation then direct failed state with no ad controls,node integration,release,VALIDATION_ADDED
|
||||
QA-058,P0,revive,source Revive resolves but hp remains zero,resolve,run fails with no ad or second revive choice,node test,release,VALIDATION_ADDED
|
||||
QA-059,P0,revive,transition to next floor then lethal without blessing,resolve,run fails directly and no floor-based ad eligibility exists,node test,release,VALIDATION_ADDED
|
||||
QA-060,P0,checkpoint,each modal battle purchase equip blessing event boundary,refresh before and after commit,no half settlement duplicate RNG or duplicate reward,node integration,release,VALIDATION_ADDED
|
||||
QA-061,P0,checkpoint,corrupt main checksum,load,backup slot loads and committed transaction set preserved,node test,release,VALIDATION_ADDED
|
||||
QA-062,P0,checkpoint,corrupt both slots,load,user sees corrupt save prompt and can start clean run,node integration,release,VALIDATION_ADDED
|
||||
QA-063,P0,checkpoint,same seed DDA and command transcript,replay,board loot combat shop and checkpoints byte-identical,node replay,release,VALIDATION_ADDED
|
||||
QA-064,P0,UI,750x1334 and808x1440,visit all screens,no crop overlap or inaccessible control,visual regression,release,VALIDATION_ADDED
|
||||
QA-065,P1,UI,first-time flags clear,trigger five guides,each appears once points at correct control and never stacks,integration,release,VALIDATION_ADDED
|
||||
QA-066,P0,UI,normal build,inspect board and combat,no auto-roll combat speed debug or real ad playback screen,static and manual,release,VALIDATION_ADDED
|
||||
QA-067,P0,art,all sprite nodes at rest,capture transform,world pixel coordinates and scales are integers,node test,release,VALIDATION_ADDED
|
||||
QA-068,P0,VFX,all boss and curved/rush attacks,compare tell and hit mask,mismatch<=4 logical pixels,integration capture,release,VALIDATION_ADDED
|
||||
QA-069,P1,VFX,stress battle and boss death,profile particles,live particles stay within animation-vfx budgets,profiler,release,VALIDATION_ADDED
|
||||
QA-070,P0,audio,production build,scan loaded banks and clips,no background music and all looping SFX stop on exit,static and integration,release,VALIDATION_ADDED
|
||||
QA-071,P0,debug,force all commands,inspect logs,commands use Domain API and every record has debug=true,integration,release,VALIDATION_ADDED
|
||||
QA-072,P0,logs,normal 10-floor run,export JSON,only technical allowlist fields and no user profile or cross-run stats,static schema test,release,VALIDATION_ADDED
|
||||
QA-073,P0,onsite,10 live runs,cover attack attackSpeedCrit survival zeroRevive oneRevive,lead signs overall gameplay and roughly10-12min,onsite signoff,release,VALIDATION_ADDED
|
||||
QA-074,P0,boss cycle,DiceGauge debug stage and six completed ROLL actions,observe runtimeGauge counter and board,first2 reach gauge100 and enter countdown4; next4 reach0 then exactly4 unique nonblessing tiles convert and runtimeGauge clears,node integration and visual regression,release,RUNTIME_OBSERVED
|
||||
QA-075,P0,potion,150 maxHP 1 currentHP and heal level80,use one potion,currentHP becomes81 and charge decreases once; healing caps at maxHP,node test,release,SOURCE_CONFIRMED
|
||||
QA-076,P0,board,ROLL any legal 2D6 result from Start,compare visible sum animation steps and final tile index,visible total equals exact number of clockwise one-tile moves and final index equals sum,browser visual regression,release,RUNTIME_OBSERVED
|
||||
QA-077,P0,board,render battle merchant mini-boss infected-boss and all installable event tiles,inspect labels image URLs and load status,1-4 skull battle tiles and both boss tiles use distinct original assets and every event remains identifiable,browser integration,release,SOURCE_CONFIRMED
|
||||
QA-078,P0,ads,open every normal screen event and lethal flow,scan controls and DOM,zero ad boost reroll extra-attempt extra-shot or ad-revive buttons; lethal flow reaches DEFEAT,browser integration,release,VALIDATION_ADDED
|
||||
QA-079,P0,balance,new run with initial stats and no potion ads or debug buff,resolve first three normal battle groups,player survives and defeats all three groups,node test,release,VALIDATION_ADDED
|
||||
QA-080,P0,tile lifecycle,resolve battle mini-boss and event then advance a floor,inspect source cells,each resolved source becomes EMPTY wasteland and stays wasteland unless a legal new tile covers it,node integration,release,VALIDATION_ADDED
|
||||
QA-081,P0,infected boss,leave infected boss alive and cross Start three times,inspect all existing normal battle cells,each crossing adds one enemy per normal battle capped at4 and source stops after three pollution triggers,node integration,release,VALIDATION_ADDED
|
||||
QA-082,P0,boss rule,stage0 Default run from initialization through floor10,inspect state HUD and checkpoints,no runtimeBossGauge or BossDiceCounter pressure state is created; boss_0 begins only after the tenth floor,node integration and visual regression,release,SOURCE_CONFIRMED
|
||||
|
@@ -0,0 +1,10 @@
|
||||
placement_id,event_id,button_label,reward,scope_limit,eligibility,transaction_key,idempotency_rule,failure_rule,source_tag
|
||||
BOOST_DIG_EXTRA,EV-140,立即增加5次,add 5 dig actions,once per event instance,event phase READY and boostUsed false,eventInstanceId+placementId,"COMMITTED returns prior result without applying again",no state change and no usage consumed,DEFERRED_NOT_EXPOSED
|
||||
BOOST_CHEST_REROLL,EV-141,重抽1件装备,discard current unaccepted gear and generate one non-identical catalog-quality-status tuple,once per event instance,gear offer exists and boostUsed false,eventInstanceId+placementId,"COMMITTED restores rerolled gear instance",no state change and no usage consumed,DEFERRED_NOT_EXPOSED
|
||||
BOOST_MERCHANT_POINTS,EV-MERCHANT,立即获得20点,add 20 points,once per merchant instance,shop open and boostUsed false,eventInstanceId+placementId,"COMMITTED restores balance delta once",no state change and no usage consumed,DEFERRED_NOT_EXPOSED
|
||||
BOOST_CAMPFIRE_HEAL_TILE,EV-138,额外恢复10%并生成1个有益地块,heal 10 percent max hp then enqueue one core good tile install,once per event instance,recovery event unresolved and boostUsed false,eventInstanceId+placementId,"COMMITTED restores hp and exact installed tile once",if no legal tile enqueue next-floor install,DEFERRED_NOT_EXPOSED
|
||||
BOOST_SMITHY_RATE,EV-137,提升本次强化概率,set current attempt rates to 100|80|50|30,once per event instance,gear selected before random resolution and boostUsed false,eventInstanceId+placementId,"COMMITTED restores boosted rate flag; random result uses stored roll",after forge resolved placement becomes ineligible,DEFERRED_NOT_EXPOSED
|
||||
BOOST_BLESSING_REROLL,EV-144,强制换成新祝福,replace current card with non-identical card and force accept,once per event instance,original card revealed and boostUsed false,eventInstanceId+placementId,"COMMITTED restores replacement card and cannot redraw",if pool has only same card grant original and mark committed,DEFERRED_NOT_EXPOSED
|
||||
BOOST_CLAW_ATTEMPT,EV-151,增加1次抓取,add 1 claw attempt,once per event instance,claw round not ended and boostUsed false,eventInstanceId+placementId,"COMMITTED restores attempt count once",no state change and no usage consumed,DEFERRED_NOT_EXPOSED
|
||||
BOOST_BUBBLE_SHOT,EV-166,增加1发,add 1 bubble projectile,once per event instance,bubble round not ended and boostUsed false,eventInstanceId+placementId,"COMMITTED restores projectile count once",no state change and no usage consumed,DEFERRED_NOT_EXPOSED
|
||||
BOOST_REVIVE,BATTLE,恢复50%最大生命并继续,ceil maxHp times 0.50 and resume exact BattleSnapshot,once per floor,source Revive blessing resolved and player still dead and reviveUsedThisFloor false,runId+floor+placementId,"COMMITTED restores exact post-revive snapshot without healing twice",second death same floor fails run,DEFERRED_NOT_EXPOSED
|
||||
|
@@ -0,0 +1,98 @@
|
||||
offer_id,string_id,item_type,item_id,fixed_key,fixed_sort,fixed_slot,price,buy_count,is_sub_text,source_tag
|
||||
100,TILE_137,TILE,137,,,-1,6,1,false,SOURCE_CONFIRMED
|
||||
101,TILE_138,TILE,138,,,-1,9,1,false,SOURCE_CONFIRMED
|
||||
102,TILE_139,TILE,139,,,-1,7,1,false,SOURCE_CONFIRMED
|
||||
103,TILE_140,TILE,140,,,-1,4,1,false,SOURCE_CONFIRMED
|
||||
104,TILE_141,TILE,141,,,-1,5,1,false,SOURCE_CONFIRMED
|
||||
105,TILE_142,TILE,142,,,-1,5,1,false,SOURCE_CONFIRMED
|
||||
106,TILE_143,TILE,143,,,-1,4,1,false,SOURCE_CONFIRMED
|
||||
107,TILE_144,TILE,144,,,-1,7,1,false,SOURCE_CONFIRMED
|
||||
108,TILE_151,TILE,151,,,-1,7,1,false,SOURCE_CONFIRMED
|
||||
109,TILE_152,TILE,152,,,-1,7,1,false,SOURCE_CONFIRMED
|
||||
110,TILE_164,TILE,164,,,-1,5,1,false,SOURCE_CONFIRMED
|
||||
111,TILE_166,TILE,166,,,-1,8,1,false,SOURCE_CONFIRMED
|
||||
112,AUGMENT_100,AUGMENT,100,,,-1,17,1,false,SOURCE_CONFIRMED
|
||||
113,AUGMENT_102,AUGMENT,102,,,-1,14,1,false,SOURCE_CONFIRMED
|
||||
114,AUGMENT_103,AUGMENT,103,,,-1,10,1,false,SOURCE_CONFIRMED
|
||||
115,AUGMENT_106,AUGMENT,106,,,-1,27,1,false,SOURCE_CONFIRMED
|
||||
116,AUGMENT_108,AUGMENT,108,,,-1,12,1,false,SOURCE_CONFIRMED
|
||||
117,AUGMENT_109,AUGMENT,109,,,-1,15,1,false,SOURCE_CONFIRMED
|
||||
118,AUGMENT_110,AUGMENT,110,,,-1,15,1,false,SOURCE_CONFIRMED
|
||||
119,AUGMENT_111,AUGMENT,111,,,-1,23,1,false,SOURCE_CONFIRMED
|
||||
120,AUGMENT_112,AUGMENT,112,,,-1,16,1,false,SOURCE_CONFIRMED
|
||||
121,AUGMENT_113,AUGMENT,113,,,-1,14,1,false,SOURCE_CONFIRMED
|
||||
122,AUGMENT_114,AUGMENT,114,,,-1,15,1,false,SOURCE_CONFIRMED
|
||||
123,AUGMENT_115,AUGMENT,115,,,-1,14,1,false,SOURCE_CONFIRMED
|
||||
124,AUGMENT_116,AUGMENT,116,,,-1,20,1,false,SOURCE_CONFIRMED
|
||||
125,AUGMENT_117,AUGMENT,117,,,-1,17,1,false,SOURCE_CONFIRMED
|
||||
126,AUGMENT_118,AUGMENT,118,,,-1,16,1,false,SOURCE_CONFIRMED
|
||||
127,AUGMENT_121,AUGMENT,121,,,-1,10,1,false,SOURCE_CONFIRMED
|
||||
128,AUGMENT_122,AUGMENT,122,,,-1,13,1,false,SOURCE_CONFIRMED
|
||||
129,AUGMENT_124,AUGMENT,124,,,-1,19,1,false,SOURCE_CONFIRMED
|
||||
130,AUGMENT_125,AUGMENT,125,,,-1,18,1,false,SOURCE_CONFIRMED
|
||||
131,AUGMENT_126,AUGMENT,126,,,-1,16,1,false,SOURCE_CONFIRMED
|
||||
132,AUGMENT_132,AUGMENT,132,,,-1,17,1,false,SOURCE_CONFIRMED
|
||||
133,AUGMENT_147,AUGMENT,147,,,-1,15,1,false,SOURCE_CONFIRMED
|
||||
134,AUGMENT_148,AUGMENT,148,,,-1,10,1,false,SOURCE_CONFIRMED
|
||||
135,AUGMENT_149,AUGMENT,149,,,-1,17,1,false,SOURCE_CONFIRMED
|
||||
136,AUGMENT_150,AUGMENT,150,,,-1,19,1,false,SOURCE_CONFIRMED
|
||||
137,AUGMENT_151,AUGMENT,151,,,-1,8,1,false,SOURCE_CONFIRMED
|
||||
138,AUGMENT_152,AUGMENT,152,,,-1,11,1,false,SOURCE_CONFIRMED
|
||||
139,AUGMENT_153,AUGMENT,153,,,-1,15,1,false,SOURCE_CONFIRMED
|
||||
140,AUGMENT_154,AUGMENT,154,,,-1,24,1,false,SOURCE_CONFIRMED
|
||||
141,AUGMENT_156,AUGMENT,156,,,-1,16,1,false,SOURCE_CONFIRMED
|
||||
142,AUGMENT_157,AUGMENT,157,,,-1,18,1,false,SOURCE_CONFIRMED
|
||||
143,POTION_100,POTION,100,,,-1,16,1,false,SOURCE_CONFIRMED
|
||||
144,POTION_101,POTION,101,,,-1,15,1,false,SOURCE_CONFIRMED
|
||||
145,POTION_103,POTION,103,,,-1,15,1,false,SOURCE_CONFIRMED
|
||||
146,POTION_104,POTION,104,,,-1,13,1,false,SOURCE_CONFIRMED
|
||||
147,POTION_105,POTION,105,,,-1,14,1,false,SOURCE_CONFIRMED
|
||||
148,POTION_106,POTION,106,,,-1,16,1,false,SOURCE_CONFIRMED
|
||||
149,POTION_107,POTION,107,,,-1,20,1,false,SOURCE_CONFIRMED
|
||||
150,POTION_108,POTION,108,,,-1,19,1,false,SOURCE_CONFIRMED
|
||||
151,POTION_109,POTION,109,,,-1,13,1,false,SOURCE_CONFIRMED
|
||||
152,STAT_100,STAT,100,,,-1,3,10,false,SOURCE_CONFIRMED
|
||||
153,STAT_101,STAT,101,,,-1,3,10,false,SOURCE_CONFIRMED
|
||||
154,STAT_102,STAT,102,,,-1,5,5,false,SOURCE_CONFIRMED
|
||||
155,STAT_103,STAT,103,,,-1,3,10,false,SOURCE_CONFIRMED
|
||||
156,STAT_104,STAT,104,,,-1,5,5,false,SOURCE_CONFIRMED
|
||||
157,STAT_105,STAT,105,,,-1,8,3,false,SOURCE_CONFIRMED
|
||||
158,STAT_106,STAT,106,,,-1,9,3,false,SOURCE_CONFIRMED
|
||||
159,STAT_107,STAT,107,,,-1,8,3,false,SOURCE_CONFIRMED
|
||||
160,STAT_108,STAT,108,,,-1,7,3,false,SOURCE_CONFIRMED
|
||||
161,STAT_109,STAT,109,,,-1,5,5,false,SOURCE_CONFIRMED
|
||||
162,STAT_110,STAT,110,,,-1,8,3,false,SOURCE_CONFIRMED
|
||||
163,STAT_111,STAT,111,,,-1,7,3,false,SOURCE_CONFIRMED
|
||||
164,STAT_112,STAT,112,,,-1,8,3,false,SOURCE_CONFIRMED
|
||||
165,FIXED_potionCount_0,FIXED,,potionCount,0,1,10,1,true,SOURCE_CONFIRMED
|
||||
166,FIXED_potionCount_1,FIXED,,potionCount,1,1,15,1,true,SOURCE_CONFIRMED
|
||||
167,FIXED_potionCount_2,FIXED,,potionCount,2,1,21,1,true,SOURCE_CONFIRMED
|
||||
168,FIXED_potionCount_3,FIXED,,potionCount,3,1,28,1,true,SOURCE_CONFIRMED
|
||||
169,FIXED_potionCount_4,FIXED,,potionCount,4,1,36,1,true,SOURCE_CONFIRMED
|
||||
170,FIXED_potionCount_5,FIXED,,potionCount,5,1,45,1,true,SOURCE_CONFIRMED
|
||||
171,FIXED_potionCount_6,FIXED,,potionCount,6,1,55,1,true,SOURCE_CONFIRMED
|
||||
172,FIXED_potionCount_7,FIXED,,potionCount,7,1,66,1,true,SOURCE_CONFIRMED
|
||||
173,FIXED_potionCount_8,FIXED,,potionCount,8,1,78,1,true,SOURCE_CONFIRMED
|
||||
174,FIXED_potionHeal_0,FIXED,,potionHeal,0,2,7,1,true,SOURCE_CONFIRMED
|
||||
175,FIXED_potionHeal_1,FIXED,,potionHeal,1,2,11,1,true,SOURCE_CONFIRMED
|
||||
176,FIXED_potionHeal_2,FIXED,,potionHeal,2,2,15,1,true,SOURCE_CONFIRMED
|
||||
177,FIXED_potionHeal_3,FIXED,,potionHeal,3,2,20,1,true,SOURCE_CONFIRMED
|
||||
178,FIXED_potionHeal_4,FIXED,,potionHeal,4,2,25,1,true,SOURCE_CONFIRMED
|
||||
179,FIXED_potionHeal_5,FIXED,,potionHeal,5,2,30,1,true,SOURCE_CONFIRMED
|
||||
180,FIXED_potionHeal_6,FIXED,,potionHeal,6,2,35,1,true,SOURCE_CONFIRMED
|
||||
181,FIXED_potionHeal_7,FIXED,,potionHeal,7,2,40,1,true,SOURCE_CONFIRMED
|
||||
182,FIXED_potionHeal_8,FIXED,,potionHeal,8,2,45,1,true,SOURCE_CONFIRMED
|
||||
183,FIXED_potionHeal_9,FIXED,,potionHeal,9,2,50,1,true,SOURCE_CONFIRMED
|
||||
184,FIXED_potionHeal_10,FIXED,,potionHeal,10,2,55,1,true,SOURCE_CONFIRMED
|
||||
185,FIXED_potionHeal_11,FIXED,,potionHeal,11,2,60,1,true,SOURCE_CONFIRMED
|
||||
186,FIXED_potionHeal_12,FIXED,,potionHeal,12,2,65,1,true,SOURCE_CONFIRMED
|
||||
187,FIXED_potionHeal_13,FIXED,,potionHeal,13,2,70,1,true,SOURCE_CONFIRMED
|
||||
188,FIXED_potionHeal_14,FIXED,,potionHeal,14,2,75,1,true,SOURCE_CONFIRMED
|
||||
189,FIXED_potionHeal_15,FIXED,,potionHeal,15,2,80,1,true,SOURCE_CONFIRMED
|
||||
190,FIXED_potionHeal_16,FIXED,,potionHeal,16,2,85,1,true,SOURCE_CONFIRMED
|
||||
191,FIXED_potionHeal_17,FIXED,,potionHeal,17,2,90,1,true,SOURCE_CONFIRMED
|
||||
192,FIXED_potionHeal_18,FIXED,,potionHeal,18,2,95,1,true,SOURCE_CONFIRMED
|
||||
193,FIXED_potionHeal_19,FIXED,,potionHeal,19,2,100,1,true,SOURCE_CONFIRMED
|
||||
194,FIXED_potionAdd_0,FIXED,,potionAdd,0,0,5,-1,true,SOURCE_CONFIRMED
|
||||
195,Lotto,LOTTO,,,,-1,5,1,false,SOURCE_CONFIRMED
|
||||
196,AUGMENT_THIRD_DIE,AUGMENT,ThirdDieReplace,,,-1,27,1,false,VALIDATION_ADDED
|
||||
|
@@ -0,0 +1,27 @@
|
||||
screen_id,screen_name,entry,primary_controls,required_states,exit,checkpoint_boundary,acceptance,source_tag
|
||||
UI-001,本地开始页,app boot,"开始新局|继续|清除本局|设置","noSave|hasSave|corruptSave","进入棋盘|设置",before new run,无账号 体力 商店 抽卡或联网入口,VALIDATION_ADDED
|
||||
UI-002,棋盘HUD,FloorSetup,"40个实际地块|点数|层数|条件式Boss压力|HP|四装备槽|Roll|丹药|暂停","awaitRoll|moving|bossCountdown|bossActing|inputLocked|tileResolving",tile event or pause,after prior atomic resolution,1点严格移动1个实际地块;stage0不显示Boss压力;DiceGauge调试关显示0/2或4..0且演出不可跳过,RUNTIME_OBSERVED
|
||||
UI-003,骰子结果,DiceResolve,"dieA|dieB|点数和","rolling|settled",Moving,roll result committed,结果静止可读至少250ms且无重掷入口,RUNTIME_OBSERVED
|
||||
UI-004,第三骰选择,ThirdDieChoice,"A|B|C|替换A|替换B|放弃","choiceReady|committing",Moving,choice committed,三种选择明确且放弃不回滚RNG,VALIDATION_ADDED
|
||||
UI-005,自动战斗HUD,Battle Fight,"玩家/敌人血条|1-4敌人数|小Boss标识|状态|伤害数字|药水","prepare|spawn|fight|paused|victory|death",PostBattle or revive,battle result committed,1-4骷髅严格生成1-4只怪物;小Boss入口可辨;普通入口无加速按钮且唯一主动输入为药水,RUNTIME_OBSERVED
|
||||
UI-006,装备掉落比较,RewardChoice,"新旧装备|属性差|装备|分解|关闭","slotEmpty|upgrade|downgrade|batch",Checkpoint,reward choice committed,关闭自动分解全部未处理装备,RUNTIME_OBSERVED
|
||||
UI-007,商店,Merchant event,"3固定槽|3随机槽|余额|刷新|退出","available|soldOut|insufficient|rerolled",Board,each purchase or reroll,恰好6槽且无广告赠点按钮;商品均使用局内点数,SOURCE_CONFIRMED
|
||||
UI-008,地块安装,purchased TILE,"棋盘合法格|确认|取消","selecting|invalid|pending",Shop or Board,install committed,只能选择合法普通格且取消保留待安装商品,VALIDATION_ADDED
|
||||
UI-009,宝箱,EV-141,"宝箱|装备卡|装备|分解|退出","closed|opened|resolved",Board,event committed,无广告重抽按钮;装备结果只提交一次,RUNTIME_OBSERVED
|
||||
UI-010,营火,EV-138,"恢复预览|领取","ready|resolved",Board,event committed,只显示基础治疗且不溢出最大生命,VALIDATION_ADDED
|
||||
UI-011,铁匠铺,EV-137,"装备|成功率|直接领取|挑战","noGear|ready|success|destroyed",Board,forge result committed,失败销毁和分解点数同屏可见且无概率增强按钮,RUNTIME_OBSERVED
|
||||
UI-012,祝福点,EV-144,"单卡|接受","revealed|accepted",Board,blessing committed,无广告换卡或重抽按钮,SOURCE_CONFIRMED
|
||||
UI-013,挖掘,EV-140,"5x5格|剩余次数|形状预览|退出","ready|digging|complete",Board,dig result committed,基础5次;每次按完整形状原子揭示并发奖,VALIDATION_ADDED
|
||||
UI-014,传奇装备,EV-139,"传奇装备卡|装备|分解","revealed|resolved",Board,reward committed,品质固定传奇且走标准装备比较,VALIDATION_ADDED
|
||||
UI-015,彩票,EV-142,"费用5|抽取|结果|退出","insufficient|ready|rolling|resolved",Board,event committed,概率结果由eventRng确定且刷新不重抽,VALIDATION_ADDED
|
||||
UI-016,21点,EV-143,"下注3|手牌|庄家牌|要牌|停牌|结果","insufficient|playerTurn|dealerTurn|win|lose|push",Board,event committed,Ace固定1避免额外规则且庄家17停牌,VALIDATION_ADDED
|
||||
UI-017,抓娃娃,EV-151,"20胶囊|摇杆/抓取|次数|结果","ready|aiming|grabbing|complete",Board,event committed,基础次数且无广告补次数;胶囊碰撞和奖励在确定逻辑tick结算,SOURCE_CONFIRMED
|
||||
UI-018,黄金马车,EV-152,"4辆遮盖车|选择|奖励","ready|revealed|resolved",Board,event committed,只能选一次且HP阈值快照在进入时锁定,VALIDATION_ADDED
|
||||
UI-019,骰子机,EV-164,"三骰|启动|匹配表|奖励","ready|rolling|matched|none",Board,event committed,显示原始三骰并按源码匹配表发奖,SOURCE_CONFIRMED
|
||||
UI-020,泡泡龙,EV-166,"棋盘|瞄准线|剩余发数|计时|奖励","ready|aiming|flying|complete",Board,event committed,基础3发且无广告补发;碰撞不依赖渲染帧,SOURCE_CONFIRMED
|
||||
UI-021,源码祝福复活,lethal damage with Revive,"祝福图标|恢复结果","resolving|success|stillDead",Battle,revive blessing result committed,只结算一次;失败则直接进入DEFEAT,SOURCE_CONFIRMED
|
||||
UI-022,广告复活(不暴露),disabled,none,notExposed,Fail,none,普通UI与调试台均不可达;无恢复和放弃广告按钮,DEFERRED_NOT_EXPOSED
|
||||
UI-023,Boss胜利,boss PostBattle,"胜利|构筑摘要|结束本局","enter|summary|confirmed",Start,result acknowledged,不含倍增广告 付费或剧情,VALIDATION_ADDED
|
||||
UI-024,失败结算,no revive,"失败|层数|构筑摘要|结束本局","enter|summary|confirmed",Start,result acknowledged,无促销弹窗且不可在失败页增强,VALIDATION_ADDED
|
||||
UI-025,暂停,board or battle,"继续|设置|退出本局","boardPause|battlePause|confirmExit",prior screen or Start,no new checkpoint,暂停冻结逻辑时钟且退出需二次确认,VALIDATION_ADDED
|
||||
UI-026,隐藏调试台,7 taps or CtrlShiftD,"seed|floor|DDA|强制事件/掉落/死亡|4x|恢复|导出","closed|open|commandResult|error",prior screen,debug command committed,调试命令走Domain API并标记debug true,VALIDATION_ADDED
|
||||
|
Reference in New Issue
Block a user