MapData + Event 解耦已完成一轮收口
- `MapData` 已收口为纯初始化快照,不再承载 coin 写接口委托 - 已新增 `MapEntityLoadContext` - 用于把 `MapData` 快照与 coin 命令通道拆开传给地图加载 - `CombatLoadingState` 现在会组装: - `MapData` - `MapEntityLoadContext` - `CombatLoadSession` / `EntityExtension.ShowMap(...)` 已切到 `MapEntityLoadContext` - `MapEntity` 当前通过: - `MapEntityLoadContext` 获取初始快照与 coin 命令通道 - `CombatCoinChangedEventArgs` 同步后续 coin 变化 - 已新增 `MapCombatRuntimeBridge` - 收口地图侧 coin 当前值、命令调用与事件订阅 - `MapEntity` 不再自己维护 `_currentCoin` 和 coin 事件订阅样板
This commit is contained in:
@@ -7,7 +7,7 @@ namespace GeometryTD.UI
|
||||
{
|
||||
public class CombatFinishFormUseCase : IUIUseCase
|
||||
{
|
||||
private CombatScheduler _combatScheduler;
|
||||
private ICombatSchedulerHost _combatSchedulerHost;
|
||||
private CombatSettlementContext _settlementContext;
|
||||
private bool _isSummaryPrepared;
|
||||
|
||||
@@ -27,14 +27,14 @@ namespace GeometryTD.UI
|
||||
_isSummaryPrepared = true;
|
||||
}
|
||||
|
||||
public CombatFinishFormUseCase(CombatScheduler combatScheduler)
|
||||
internal CombatFinishFormUseCase(ICombatSchedulerHost combatSchedulerHost)
|
||||
{
|
||||
this._combatScheduler = combatScheduler;
|
||||
_combatSchedulerHost = combatSchedulerHost;
|
||||
}
|
||||
|
||||
public bool TryReturnToMenu()
|
||||
{
|
||||
return _combatScheduler.OnCombatFinishReturnRequested();
|
||||
return _combatSchedulerHost != null && _combatSchedulerHost.OnCombatFinishReturnRequested();
|
||||
}
|
||||
|
||||
private CombatFinishFormRawData BuildModel()
|
||||
@@ -44,7 +44,7 @@ namespace GeometryTD.UI
|
||||
_settlementContext = null;
|
||||
}
|
||||
|
||||
BackpackInventoryData rewardInventory = _settlementContext?.RewardInventory;
|
||||
BackpackInventoryData rewardInventory = _settlementContext?.Summary.RewardInventory;
|
||||
if (rewardInventory == null)
|
||||
{
|
||||
rewardInventory = InventorySeedUtility.CreateSampleInventory();
|
||||
@@ -52,8 +52,8 @@ namespace GeometryTD.UI
|
||||
|
||||
return new CombatFinishFormRawData
|
||||
{
|
||||
DefeatedEnemyCount = Mathf.Max(0, _settlementContext?.DefeatedEnemyCount ?? 0),
|
||||
GainedGold = Mathf.Max(0, _settlementContext?.GainedGold ?? 0),
|
||||
DefeatedEnemyCount = Mathf.Max(0, _settlementContext?.Summary.DefeatedEnemyCount ?? 0),
|
||||
GainedGold = Mathf.Max(0, _settlementContext?.Summary.GainedGold ?? 0),
|
||||
RewardInventory = rewardInventory,
|
||||
CanReturn = true
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user