仓库组件 + 防御塔升级
- `PlayerInventoryComponent`:玩家库存组件,收集金币/组件/防御塔等道具 - 补全防御塔的升级逻辑,最高 5 级
This commit is contained in:
@@ -98,10 +98,12 @@ namespace GeometryTD.UI
|
||||
switch (userData.ClickObjectType)
|
||||
{
|
||||
case CombatSelectClickObjectType.Foundation:
|
||||
_useCase.SetUpgradeVisible(true);
|
||||
_useCase.ShowForFoundation(userData.ContentPosition);
|
||||
break;
|
||||
case CombatSelectClickObjectType.Tower:
|
||||
_useCase.SetUpgradePrice(userData.UpgradeCost);
|
||||
_useCase.SetUpgradeVisible(!userData.IsTowerAtMaxLevel);
|
||||
_useCase.SetDestroyGain(userData.DestroyGain);
|
||||
_useCase.ShowForTower(userData.ContentPosition);
|
||||
break;
|
||||
@@ -133,6 +135,7 @@ namespace GeometryTD.UI
|
||||
return null;
|
||||
}
|
||||
|
||||
_useCase.SetUpgradeVisible(true);
|
||||
_useCase.ShowForFoundation(contentPosition);
|
||||
return OpenUI(_useCase.TryRefresh());
|
||||
}
|
||||
@@ -146,6 +149,7 @@ namespace GeometryTD.UI
|
||||
}
|
||||
|
||||
_useCase.SetUpgradePrice(upgradeCost);
|
||||
_useCase.SetUpgradeVisible(true);
|
||||
_useCase.SetDestroyGain(destroyGain);
|
||||
_useCase.ShowForTower(contentPosition);
|
||||
return OpenUI(_useCase.TryRefresh());
|
||||
|
||||
@@ -9,6 +9,7 @@ namespace GeometryTD.UI
|
||||
public Vector3 WorldPosition;
|
||||
public Vector3Int CellPosition;
|
||||
public int TowerEntityId;
|
||||
public bool IsTowerAtMaxLevel;
|
||||
public int UpgradeCost;
|
||||
public int DestroyGain;
|
||||
}
|
||||
|
||||
@@ -6,7 +6,6 @@ namespace GeometryTD.UI
|
||||
{
|
||||
public class CombatFinishFormUseCase : IUIUseCase
|
||||
{
|
||||
private readonly RepoFormUseCase _repoFormUseCase = new RepoFormUseCase();
|
||||
private CombatScheduler _combatScheduler;
|
||||
private int _defeatedEnemyCount;
|
||||
private int _gainedGold;
|
||||
@@ -57,8 +56,7 @@ namespace GeometryTD.UI
|
||||
BackpackInventoryData rewardInventory = _rewardInventory;
|
||||
if (rewardInventory == null)
|
||||
{
|
||||
RepoFormRawData repoRawData = _repoFormUseCase.CreateInitialModel();
|
||||
rewardInventory = repoRawData != null ? repoRawData.Inventory : null;
|
||||
rewardInventory = RepoFormUseCase.SampleInventory();
|
||||
}
|
||||
|
||||
return new CombatFinishFormRawData
|
||||
|
||||
@@ -134,6 +134,11 @@ namespace GeometryTD.UI
|
||||
_upgradeOption.Price = Mathf.Max(0, cost);
|
||||
}
|
||||
|
||||
public void SetUpgradeVisible(bool visible)
|
||||
{
|
||||
_upgradeOption.IsVisible = visible;
|
||||
}
|
||||
|
||||
public void SetDestroyGain(int gain)
|
||||
{
|
||||
_destroyOption.Price = Mathf.Max(0, gain);
|
||||
|
||||
Reference in New Issue
Block a user