rabukasim / docs /plans /debug_flags_audit_report.md
trioskosmos's picture
chore: remove large files for HF Space
9bd4ce5

Debug Flags Content Audit Report

概要

id="debug-flags-content" で表示されている flags と conditions を、data/metadata.json とバックエンドの Rust 構造体と比較して、欠けているフィールドを特定しました。


data/metadata.json で定義されている Enums

1. Conditions (条件チェック) - 55種類

Condition Value フロントエンド表示状態
TURN_1 200 ❌ 未表示
HAS_MEMBER 201 ❌ 未表示
HAS_COLOR 202 ❌ 未表示
COUNT_STAGE 203 ❌ 未表示
COUNT_HAND 204 ❌ 未表示
COUNT_DISCARD 205 ❌ 未表示
IS_CENTER 206 ❌ 未表示
LIFE_LEAD 207 ❌ 未表示
COUNT_GROUP 208 ❌ 未表示
GROUP_FILTER 209 ❌ 未表示
OPPONENT_HAS 210 ❌ 未表示
SELF_IS_GROUP 211 ❌ 未表示
MODAL_ANSWER 212 ❌ 未表示
COUNT_ENERGY 213 ❌ 未表示
HAS_LIVE_CARD 214 ❌ 未表示
COST_CHECK 215 ❌ 未表示
RARITY_CHECK 216 ❌ 未表示
HAND_HAS_NO_LIVE 217 ❌ 未表示
COUNT_SUCCESS_LIVE 218 ❌ 未表示
OPPONENT_HAND_DIFF 219 ❌ 未表示
SCORE_COMPARE 220 ❌ 未表示
HAS_CHOICE 221 ❌ 未表示
OPPONENT_CHOICE 222 ❌ 未表示
COUNT_HEARTS 223 ❌ 未表示
COUNT_BLADES 224 ❌ 未表示
OPPONENT_ENERGY_DIFF 225 ❌ 未表示
HAS_KEYWORD 226 ❌ 未表示
DECK_REFRESHED 227 ❌ 未表示
HAS_MOVED 228 ❌ 未表示
HAND_INCREASED 229 ❌ 未表示
COUNT_LIVE_ZONE 230 ❌ 未表示
BATON 231 ❌ 未表示
TYPE_CHECK 232 ❌ 未表示
IS_IN_DISCARD 233 ❌ 未表示
AREA_CHECK 234 ❌ 未表示
COST_LEAD 235 ❌ 未表示
SCORE_LEAD 236 ❌ 未表示
HEART_LEAD 237 ❌ 未表示
HAS_EXCESS_HEART 238 ❌ 未表示
NOT_HAS_EXCESS_HEART 239 ❌ 未表示
TOTAL_BLADES 240 ❌ 未表示
COST_COMPARE 241 ❌ 未表示
BLADE_COMPARE 242 ❌ 未表示
HEART_COMPARE 243 ❌ 未表示
OPPONENT_HAS_WAIT 244 ❌ 未表示
IS_TAPPED 245 ❌ 未表示
IS_ACTIVE 246 ❌ 未表示
LIVE_PERFORMED 247 ❌ 未表示
IS_PLAYER 248 ❌ 未表示
IS_OPPONENT 249 ❌ 未表示
COUNT_UNIQUE_COLORS 250 ❌ 未表示
COUNT_ENERGY_EXACT 301 ❌ 未表示
COUNT_BLADE_HEART_TYPES 302 ❌ 未表示
OPPONENT_HAS_EXCESS_HEART 303 ❌ 未表示
SCORE_TOTAL_CHECK 304 ❌ 未表示
MAIN_PHASE 305 ❌ 未表示
SELECT_MEMBER 306 ❌ 未表示
SUCCESS_PILE_COUNT 307 ❌ 未表示
IS_SELF_MOVE 308 ❌ 未表示
DISCARDED_CARDS 309 ❌ 未表示
YELL_REVEALED_UNIQUE_COLORS 310 ❌ 未表示
SYNC_COST 311 ❌ 未表示
SUM_VALUE 312 ❌ 未表示
IS_WAIT 313 ❌ 未表示

結論: metadata.json で定義されている 55種類の conditions は、すべて未表示です。


2. Extra Constants (Flags) - 70+ 種類

Ability Flags (効果タイプフラグ)

Flag Value フロントエンド表示状態
FLAG_DRAW 1 ❌ 未表示
FLAG_SEARCH 2 ❌ 未表示
FLAG_RECOVER 4 ❌ 未表示
FLAG_BUFF 8 ❌ 未表示
FLAG_CHARGE 16 ❌ 未表示
FLAG_TEMPO 32 ❌ 未表示
FLAG_REDUCE 64 ❌ 未表示
FLAG_BOOST 128 ❌ 未表示
FLAG_TRANSFORM 256 ❌ 未表示
FLAG_WIN_COND 512 ❌ 未表示
FLAG_MOVE 1024 ❌ 未表示
FLAG_TAP 2048 ❌ 未表示

Cost Flags

Flag Value フロントエンド表示状態
COST_FLAG_DISCARD 1 ❌ 未表示
COST_FLAG_TAP 2 ❌ 未表示

Choice Flags

Flag Value フロントエンド表示状態
CHOICE_FLAG_LOOK 1 ❌ 未表示
CHOICE_FLAG_DISCARD 2 ❌ 未表示
CHOICE_FLAG_MODE 4 ❌ 未表示
CHOICE_FLAG_COLOR 8 ❌ 未表示
CHOICE_FLAG_ORDER 16 ❌ 未表示

Synergy Flags

Flag Value フロントエンド表示状態
SYN_FLAG_GROUP 1 ❌ 未表示
SYN_FLAG_COLOR 2 ❌ 未表示
SYN_FLAG_BATON 4 ❌ 未表示
SYN_FLAG_CENTER 8 ❌ 未表示
SYN_FLAG_LIFE_LEAD 16 ❌ 未表示

Filter Flags (一部抜粋)

Flag Value フロントエンド表示状態
FILTER_TYPE_MEMBER 4 ❌ 未表示
FILTER_TYPE_LIVE 8 ❌ 未表示
FILTER_GROUP_ENABLE 16 ❌ 未表示
FILTER_TAPPED 4096 ❌ 未表示
FILTER_HAS_BLADE_HEART 8192 ❌ 未表示
FILTER_NOT_HAS_BLADE_HEART 16384 ❌ 未表示
FILTER_UNIQUE_NAMES 32768 ❌ 未表示
FILTER_UNIT_ENABLE 65536 ❌ 未表示
FILTER_ZONE_STAGE 9007199254740992 ❌ 未表示
FILTER_ZONE_DISCARD 18014398509481984 ❌ 未表示
FILTER_ZONE_HAND 36028797018963968 ❌ 未表示
FILTER_SETSUNA 576460752303423488 ❌ 未表示
FILTER_IS_OPTIONAL 2305843009213693952 ❌ 未表示

Keyword Flags

Flag Value フロントエンド表示状態
KEYWORD_ACTIVATED_ENERGY_BY_GROUP 4611686018427387904 ❌ 未表示
KEYWORD_ACTIVATED_MEMBER_BY_GROUP 9223372036854775808 ❌ 未表示
KEYWORD_PLAYED_THIS_TURN 17592186044416 ❌ 未表示
KEYWORD_YELL_COUNT 35184372088832 ❌ 未表示
KEYWORD_HAS_LIVE_SET 70368744177664 ❌ 未表示

Target/Behavior Flags

Flag Value フロントエンド表示状態
FLAG_TARGET_OPPONENT 16777216 ❌ 未表示
FLAG_CAPTURE_VALUE 33554432 ❌ 未表示
FLAG_EMPTY_SLOT_ONLY 67108864 ❌ 未表示
FLAG_IS_WAIT 134217728 ❌ 未表示
FLAG_REVEAL_UNTIL_IS_LIVE 33554432 ❌ 未表示
DYNAMIC_VALUE 1152921504606846976 ❌ 未表示

Area/Zone Constants

Constant Value フロントエンド表示状態
AREA_LEFT 1 ❌ 未表示
AREA_CENTER 2 ❌ 未表示
AREA_RIGHT 3 ❌ 未表示
ZONE_MASK_STAGE 4 ❌ 未表示
ZONE_MASK_HAND 6 ❌ 未表示
ZONE_MASK_DISCARD 7 ❌ 未表示
ZONE_LOOKED_CARDS 90 ❌ 未表示

フロントエンドで現在表示されている項目 (DebugModal.js)

システムレベル (GameState)

項目名 バックエンドフィールド 状態
Phase phase ✅ 表示中
Turn turn ✅ 表示中
Active current_player ✅ 表示中
Queue trigger_queue.len() ✅ 表示中 (推定)
RPS rps_choices ✅ 表示中
Winner winner ✅ 表示中
FirstPl first_player ✅ 表示中
TrigDepth trigger_depth ✅ 表示中
InteractDepth interaction_stack.len() ✅ 表示中 (推定)
LiveResPend live_result_selection_pending ✅ 表示中
NeedsDeck needs_deck ⚠️ 未確認
Spectators spectators ⚠️ 未確認

プレイヤーレベル (PlayerState)

項目名 バックエンドフィールド 状態
Energy energy_zone.len() / energy_count ✅ 表示中
Hand hand.len() ✅ 表示中
Deck deck.len() ✅ 表示中
Discard discard.len() ✅ 表示中
EnergyDeck energy_deck.len() ✅ 表示中
SuccessLives success_lives.len() ✅ 表示中
LiveZone live_zone (非 -1 カウント) ✅ 表示中
YellCards yell_cards.len() ✅ 表示中
Exile exile.len() ✅ 表示中
LiveDeck live_deck.len() ✅ 表示中
CostReduction cost_reduction ✅ 表示中
BatonCount baton_touch_count / baton_touch_limit ✅ 表示中
PrevActivate prevent_activate ✅ 表示中
PrevBaton prevent_baton_touch ✅ 表示中
PrevSuccess prevent_success_pile_set ✅ 表示中
PrevPlaySlotMask prevent_play_to_slot_mask ✅ 表示中
SkipNextAct skip_next_activate ✅ 表示中
LiveScoreBonus live_score_bonus ✅ 表示中
YellReduction yell_count_reduction ✅ 表示中
CheerMod cheer_mod_count ✅ 表示中
PlayCount play_count_this_turn ✅ 表示中
HandIncrTurn hand_increased_this_turn ✅ 表示中
DiscardedTurn discarded_this_turn ✅ 表示中
TurnVolume current_turn_notes ✅ 表示中
ExcessHearts excess_hearts ✅ 表示中
FlagsBits flags ✅ 表示中 (16進数のみ)
PlayedGrpMask played_group_mask ✅ 表示中
ActEnergyGrp activated_energy_group_mask ✅ 表示中
ActMemberGrp activated_member_group_mask ✅ 表示中
ColorXforms color_transforms.len() ✅ 表示中
NegatedTrigs negated_triggers.len() ✅ 表示中
GrantedAbs granted_abilities.len() ✅ 表示中
UsedAbs used_abilities.len() ✅ 表示中
Restrictions restrictions ✅ 表示中
MullSelection mulligan_selection ✅ 表示中
ObtSuccess obtained_success_live ✅ 表示中
LvRevealed live_zone_revealed ✅ 表示中
BladeBuffs blade_buffs[slot] ✅ 表示中
HeartBuffs heart_buffs[slot] ✅ 表示中
CostMod slot_cost_modifiers[slot] ✅ 表示中
StgEnergy stage_energy_count[slot] ✅ 表示中
Reductions heart_req_reductions ✅ 条件付き表示
Additions heart_req_additions ✅ 条件付き表示

欠けているフィールド(未表示)

🔴 CRITICAL: metadata.json Conditions (55種類)

すべて未表示 - アビリティ条件評価のデバッグに必須:

  • TURN_1, HAS_MEMBER, HAS_COLOR, COUNT_STAGE, COUNT_HAND, etc.
  • IS_TAPPED, IS_ACTIVE, IS_WAIT, LIVE_PERFORMED
  • SCORE_COMPARE, COST_COMPARE, BLADE_COMPARE, HEART_COMPARE
  • DECK_REFRESHED, HAS_MOVED, HAND_INCREASED

🔴 HIGH Priority(デバッグに重要)

PlayerState Fields

フィールド 説明
tapped_energy_mask u64 Energy Zone のタップ状態(ビットマスク)
cost_modifiers Vec<(Condition, i32)> コスト修正の詳細条件
stage_energy [SmallVec<[i32; 4]>; 3] ステージスロット下のエネルギーカード

GameState Fields

フィールド 説明
score_req_list Vec<u8> スコア要求リスト
score_req_player i8 スコア要求プレイヤー

🟡 MEDIUM Priority

PlayerState Fields

フィールド 説明
used_abilities SmallVec<[u32; 16]> 使用済みアビリティの詳細リスト
live_score_bonus_logs SmallVec<[(i32, i32); 4]> スコアボーナスログ
blade_buff_logs SmallVec<[(i32, i16, u8); 4]> ブレードバフログ
heart_buff_logs SmallVec<[(i32, i32, u8, u8); 4]> ハートバフログ
color_transforms SmallVec<[(i32, u8, u8); 4]> カラー変換の詳細
perf_triggered_abilities Vec<(i32, i16, TriggerType)> パフォーマンス中に発動したアビリティ

GameState Fields

フィールド 説明
prev_phase Phase 前のフェーズ
prev_card_id i32 前に使用されたカードID
live_set_pending_draws [u8; 2] Live Set 待機ドロー
live_result_triggers_done bool Live Result トリガー完了
live_start_triggers_done bool Live Start トリガー完了

🟢 LOW Priority

  • 各種処理済みマスク (*_processed_mask)
  • 各種ログフィールド (*_logs)
  • turn_history, hand_added_turn, looked_cards

Flags ビットフィールド (flags: u32) の詳細

バックエンドコメントによると:

pub flags: u32, // [cannot_live:1, deck_refreshed:1, immunity:1, tapped_m_0..3:3, moved_m_0..3:3, live_revealed_0..3:3]

フロントエンドでは現在 FlagsBits として16進数で表示のみ。 個別ビットの展開表示を追加することを推奨:

ビット 名前 説明
0 cannot_live Live不可フラグ
1 deck_refreshed デッキリフレッシュ済み
2 immunity 免疫状態
3-5 tapped_m_0/1/2 メンバータップ状態
6-8 moved_m_0/1/2 メンバー移動状態
9-11 live_revealed_0/1/2 Live公開状態

推奨追加項目(優先順)

Phase 1: CRITICAL (即座に追加すべき)

  1. metadata.json の conditions 一覧表示 - 現在評価中の条件を確認できるように
  2. tapped_energy_mask - Energy Zone のタップ状態を可視化
  3. cost_modifiers - コスト修正の詳細
  4. stage_energy - ステージ下のエネルギーカード

Phase 2: HIGH Priority

  1. score_req_list / score_req_player - スコア要求システム
  2. flags ビット展開 - 個別ビットの表示

Phase 3: MEDIUM Priority

  1. used_abilities - どのアビリティが使用済みか
  2. *_logs 系 - バフ/ボーナスの履歴
  3. prev_phase, prev_card_id - 前の状態

実装ノート

追加時の参考: フロントエンドの DebugModal.js_flag ヘルパー関数を使用:

${F('FieldName', p.field_name ?? default_value)}

複雑なデータ構造(配列や Vec)は JSON.stringify() を使用:

${F('CostModifiers', JSON.stringify(p.cost_modifiers || []))}

Source: data/metadata.json, engine_rust_src/src/core/logic/player.rs, engine_rust_src/src/core/logic/state.rs Generated by Architect mode audit