Files
SVSimServer/SVSim.BattleEngine/Engine/Wizard/BossRushInfo.cs
gamer147 0d9d8acae0 feat(battle-engine): M1 auto-copy closure (782 battle-logic files)
Compile-driven bulk-copy loop (tools/engine-port/m1_copy_loop.py) pulled the precise reference closure of the battle-core roots, stopping at the classify god-object/View-VFX-UI boundary. 782 files; no re-explosion (M0 had estimated ~order 1000). Residual frontier = 52 shim-classified + 80 external (Unity/BCL) types to author next.
2026-06-05 16:57:20 -04:00

55 lines
1.6 KiB
C#

using System;
using LitJson;
namespace Wizard;
public class BossRushInfo
{
public bool BossRushInfoExist { get; private set; }
public bool IsBossRushUnlocked { get; private set; }
public int BossRushProgress { get; private set; }
public bool IsReceivedBossrushReward { get; private set; }
public bool IsFirstChallenge { get; private set; }
public bool IsAllChallengeFinished { get; private set; }
public bool IsDeckRegistered { get; private set; }
public bool IsBossRushInProgress { get; private set; }
public bool IsTopButton { get; private set; }
public int? ShortestClearTurn { get; private set; }
public int? ShortestClearClass { get; private set; }
public BossRushInfo(JsonData data)
{
if (data.TryGetValue("bossrush_info", out var value))
{
BossRushInfoExist = true;
IsBossRushUnlocked = value["is_finished_quest_battle"].ToBoolean();
BossRushProgress = value["bossrush_progress"].ToInt();
IsReceivedBossrushReward = value["is_received_bossrush_reward"].ToBoolean();
IsFirstChallenge = value["is_first_challenge"].ToBoolean();
IsAllChallengeFinished = value["is_max_challenge"].ToBoolean();
IsDeckRegistered = value["is_deck_registered"].ToBoolean();
if (value["shortest_clear_turns"] != null)
{
ShortestClearTurn = Math.Min(value["shortest_clear_turns"].ToInt(), 9999);
ShortestClearClass = value["shortest_clear_class"].ToInt();
}
IsBossRushInProgress = IsBossRushUnlocked && !IsAllChallengeFinished;
IsTopButton = IsBossRushInProgress || !IsBossRushUnlocked;
}
else
{
BossRushInfoExist = false;
}
}
}