69 lines
2.0 KiB
C#
69 lines
2.0 KiB
C#
using GeometryTD.CustomComponent;
|
|
using GeometryTD.CustomUtility;
|
|
using GeometryTD.Definition;
|
|
using UnityEngine;
|
|
|
|
namespace GeometryTD.UI
|
|
{
|
|
public class CombatFinishFormUseCase : IUIUseCase
|
|
{
|
|
private CombatScheduler _combatScheduler;
|
|
private int _defeatedEnemyCount;
|
|
private int _gainedGold;
|
|
private BackpackInventoryData _rewardInventory;
|
|
private bool _isSummaryPrepared;
|
|
|
|
public CombatFinishFormRawData CreateInitialModel()
|
|
{
|
|
return BuildModel();
|
|
}
|
|
|
|
public CombatFinishFormRawData TryRefresh()
|
|
{
|
|
return BuildModel();
|
|
}
|
|
|
|
public void SetSummary(int defeatedEnemyCount, int gainedGold, BackpackInventoryData rewardInventory = null)
|
|
{
|
|
_defeatedEnemyCount = Mathf.Max(0, defeatedEnemyCount);
|
|
_gainedGold = Mathf.Max(0, gainedGold);
|
|
_rewardInventory = rewardInventory;
|
|
_isSummaryPrepared = true;
|
|
}
|
|
|
|
public CombatFinishFormUseCase(CombatScheduler combatScheduler)
|
|
{
|
|
this._combatScheduler = combatScheduler;
|
|
}
|
|
|
|
public bool TryReturnToMenu()
|
|
{
|
|
return _combatScheduler.OnCombatFinishReturnRequested();
|
|
}
|
|
|
|
private CombatFinishFormRawData BuildModel()
|
|
{
|
|
if (!_isSummaryPrepared)
|
|
{
|
|
_defeatedEnemyCount = 0;
|
|
_gainedGold = 0;
|
|
_rewardInventory = null;
|
|
}
|
|
|
|
BackpackInventoryData rewardInventory = _rewardInventory;
|
|
if (rewardInventory == null)
|
|
{
|
|
rewardInventory = InventorySeedUtility.CreateSampleInventory();
|
|
}
|
|
|
|
return new CombatFinishFormRawData
|
|
{
|
|
DefeatedEnemyCount = _defeatedEnemyCount,
|
|
GainedGold = _gainedGold,
|
|
RewardInventory = rewardInventory,
|
|
CanReturn = true
|
|
};
|
|
}
|
|
}
|
|
}
|