geometry-tower-defense/Assets/GameMain/Scripts/UI/Combat/UseCase/CombatInfoFormUseCase.cs

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
};
}
}
}