using GeometryTD.Definition; namespace GeometryTD.UI { public class CombatInfoFormUseCase : IUIUseCase { public CombatInfoFormRawData CreateInitialModel() { return BuildModel(); } public CombatInfoFormRawData TryRefresh() { return BuildModel(); } public bool TryEndCombat() { if (GameEntry.CombatNode == null || !GameEntry.CombatNode.CanEndCombat) { return false; } return GameEntry.CombatNode.TryEndCombatByPlayer(); } private static CombatInfoFormRawData BuildModel() { if (GameEntry.CombatNode == null) { return null; } var level = GameEntry.CombatNode.CurrentLevel; LevelThemeType themeType = level != null ? level.LevelThemeType : GameEntry.CombatNode.CurrentThemeType; int levelId = level != null ? level.Id : 0; return new CombatInfoFormRawData { LevelThemeType = themeType, LevelId = levelId, CurrentPhaseIndex = GameEntry.CombatNode.CurrentPhaseIndex, TotalPhaseCount = GameEntry.CombatNode.CurrentLevelPhaseCount, Coin = GameEntry.CombatNode.CurrentCoin, CanPause = true, CanEnd = GameEntry.CombatNode.CanEndCombat }; } } }