51 lines
1.4 KiB
C#
51 lines
1.4 KiB
C#
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
|
|
};
|
|
}
|
|
}
|
|
}
|