using System.Collections.Generic; using GeometryTD.Definition; namespace GeometryTD.UI { public class RepoFormUseCase : IUIUseCase { public RepoFormRawData CreateInitialModel() { BackpackInventoryData sample = BuildSampleInventory(); return new RepoFormRawData { Inventory = sample }; } private static BackpackInventoryData BuildSampleInventory() { BackpackInventoryData inventory = new BackpackInventoryData { Gold = 500 }; MuzzleCompItemData muzzle = new MuzzleCompItemData { InstanceId = 10001, ConfigId = 1, Name = "元素枪口", Rarity = RarityType.Green, Endurance = 90f, AttackDamage = new[] { 20, 30, 40, 50, 80 }, DamageRandomRate = 0.05f, AttackMethodType = AttackMethodType.NormalBullet, Constraint = string.Empty, Tags = new[] { TagType.Fire } }; inventory.MuzzleComponents.Add(muzzle); BearingCompItemData bearing = new BearingCompItemData { InstanceId = 20001, ConfigId = 1, Name = "元素轴承", Rarity = RarityType.Green, Endurance = 95f, RotateSpeed = new[] { 10f, 12f, 13f, 14f, 15f }, AttackRange = new[] { 2f, 2f, 2f, 2f, 2f }, Constraint = string.Empty, Tags = new[] { TagType.Fire } }; inventory.BearingComponents.Add(bearing); BaseCompItemData baseComp = new BaseCompItemData { InstanceId = 30001, ConfigId = 1, Name = "元素底座", Rarity = RarityType.Green, Endurance = 88f, AttackSpeed = new[] { 2f, 1.5f, 1f, 0.8f, 0.7f }, AttackPropertyType = AttackPropertyType.Fire, Constraint = string.Empty, Tags = new[] { TagType.Fire } }; inventory.BaseComponents.Add(baseComp); DefenseTowerItemData tower = new DefenseTowerItemData { InstanceId = 90001, Name = "测试防御塔-A", Rarity = RarityType.Green, Endurance = 92f, MuzzleComponentInstanceId = muzzle.InstanceId, BearingComponentInstanceId = bearing.InstanceId, BaseComponentInstanceId = baseComp.InstanceId, Stats = new DefenseTowerStatsData { AttackDamage = 30, DamageRandomRate = 0.05f, RotateSpeed = 12f, AttackRange = 2f, AttackSpeed = 1.5f, AttackMethodType = AttackMethodType.NormalBullet, AttackPropertyType = AttackPropertyType.Fire, Tags = new[] { TagType.Fire, TagType.BurnSpread } } }; inventory.Towers.Add(tower); inventory.Towers.Add(new DefenseTowerItemData { InstanceId = 90002, Name = "测试防御塔-B", Rarity = RarityType.Blue, Endurance = 100f, MuzzleComponentInstanceId = 0, BearingComponentInstanceId = 0, BaseComponentInstanceId = 0, Stats = new DefenseTowerStatsData { AttackDamage = 50, DamageRandomRate = 0.03f, RotateSpeed = 20f, AttackRange = 4f, AttackSpeed = 1f, AttackMethodType = AttackMethodType.NormalBullet, AttackPropertyType = AttackPropertyType.Physics, Tags = new[] { TagType.Pierce } } }); return inventory; } } }