仓库组件 + 防御塔升级

- `PlayerInventoryComponent`:玩家库存组件,收集金币/组件/防御塔等道具
- 补全防御塔的升级逻辑,最高 5 级
This commit is contained in:
SepComet
2026-03-02 19:50:12 +08:00
parent 5ba94828a8
commit daba9cbdf9
20 changed files with 753 additions and 138 deletions
@@ -7,14 +7,16 @@ namespace GeometryTD.UI
{
public RepoFormRawData CreateInitialModel()
{
BackpackInventoryData sample = BuildSampleInventory();
BackpackInventoryData sample = GameEntry.PlayerInventory != null
? GameEntry.PlayerInventory.GetInventorySnapshot()
: SampleInventory();
return new RepoFormRawData
{
Inventory = sample
};
}
private static BackpackInventoryData BuildSampleInventory()
public static BackpackInventoryData SampleInventory()
{
BackpackInventoryData inventory = new BackpackInventoryData
{
@@ -75,11 +77,11 @@ namespace GeometryTD.UI
BaseComponentInstanceId = baseComp.InstanceId,
Stats = new DefenseTowerStatsData
{
AttackDamage = 30,
DamageRandomRate = 0.05f,
RotateSpeed = 12f,
AttackRange = 2f,
AttackSpeed = 1.5f,
AttackDamage = new[] { 200, 220, 240, 260, 300 },
DamageRandomRate = new[] { 0f, 0f, 0f, 0f, 0f },
RotateSpeed = new[] { 200f, 210f, 220f, 230f, 240f },
AttackRange = new[] { 4.5f, 4.7f, 4.9f, 5.1f, 5.3f },
AttackSpeed = new[] { 1.5f, 1.2f, 1.1f, 1.0f, 0.8f },
AttackMethodType = AttackMethodType.NormalBullet,
AttackPropertyType = AttackPropertyType.Fire,
Tags = new[] { TagType.Fire, TagType.BurnSpread }
@@ -98,11 +100,11 @@ namespace GeometryTD.UI
BaseComponentInstanceId = 0,
Stats = new DefenseTowerStatsData
{
AttackDamage = 50,
DamageRandomRate = 0.03f,
RotateSpeed = 20f,
AttackRange = 4f,
AttackSpeed = 1f,
AttackDamage = new[] { 200, 220, 240, 260, 300 },
DamageRandomRate = new[] { 0f, 0f, 0f, 0f, 0f },
RotateSpeed = new[] { 200f, 210f, 220f, 230f, 240f },
AttackRange = new[] { 4.5f, 4.7f, 4.9f, 5.1f, 5.3f },
AttackSpeed = new[] { 1.5f, 1.2f, 1.1f, 1.0f, 0.8f },
AttackMethodType = AttackMethodType.NormalBullet,
AttackPropertyType = AttackPropertyType.Physics,
Tags = new[] { TagType.Pierce }