P0-02 补齐数据表:组件、敌人、波次、节点、事件、商店商品
- 组件:
- 底座:Assets\GameMain\DataTables\BaseComp.txt
- 轴承:Assets\GameMain\DataTables\BearingComp.txt
- 枪口:Assets\GameMain\DataTables\MuzzleComp.txt
- 敌人:Assets\GameMain\DataTables\Enemy.txt
- 波次:
- 关卡:Assets\GameMain\DataTables\Level.txt
- 关卡阶段(波次):Assets\GameMain\DataTables\LevelPhase.txt
- 波次条目(波次出怪规则):Assets\GameMain\DataTables\LevelSpawnEntry.txt
- 事件:Assets\GameMain\DataTables\Event.txt
- 商店:Assets\GameMain\DataTables\ShopPrice.txt
This commit is contained in:
@@ -0,0 +1,18 @@
|
||||
namespace GeometryTD.Definition
|
||||
{
|
||||
public class EventItem
|
||||
{
|
||||
public EventItem(int id, string title, string description, EventOption[] options)
|
||||
{
|
||||
Id = id;
|
||||
Title = title;
|
||||
Description = description;
|
||||
Options = options ?? System.Array.Empty<EventOption>();
|
||||
}
|
||||
|
||||
public int Id { get; private set; }
|
||||
public string Title { get; private set; }
|
||||
public string Description { get; private set; }
|
||||
public EventOption[] Options { get; private set; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c2a6dce0183e4efdbada20c25be949c0
|
||||
timeCreated: 1772097196
|
||||
@@ -0,0 +1,25 @@
|
||||
namespace GeometryTD.Definition
|
||||
{
|
||||
public class EventOption
|
||||
{
|
||||
public string OptionText { get; private set; }
|
||||
public EventRequirementBase[] Requirements { get; private set; }
|
||||
public EventEffectBase[] CostEffects { get; private set; }
|
||||
public EventEffectBase[] RewardEffects { get; private set; }
|
||||
public float Probability { get; private set; }
|
||||
|
||||
public EventOption(
|
||||
string optionText,
|
||||
EventRequirementBase[] requirements,
|
||||
EventEffectBase[] costEffects,
|
||||
EventEffectBase[] rewardEffects,
|
||||
float probability = 1f)
|
||||
{
|
||||
OptionText = optionText;
|
||||
Requirements = requirements ?? System.Array.Empty<EventRequirementBase>();
|
||||
CostEffects = costEffects ?? System.Array.Empty<EventEffectBase>();
|
||||
RewardEffects = rewardEffects ?? System.Array.Empty<EventEffectBase>();
|
||||
Probability = probability;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: bcb612057a454fcf97f41fdf5c6d9b22
|
||||
timeCreated: 1772097742
|
||||
@@ -3,7 +3,7 @@ namespace GeometryTD.Definition
|
||||
public enum AttackPropertyType : byte
|
||||
{
|
||||
None = 0,
|
||||
Physical = 1,
|
||||
Physics = 1,
|
||||
Fire = 2,
|
||||
Water = 3,
|
||||
Earth = 4,
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
namespace GeometryTD.Definition
|
||||
{
|
||||
/// <summary>
|
||||
/// 出怪条目类型
|
||||
/// </summary>
|
||||
public enum EntryType : byte
|
||||
{
|
||||
None = 0,
|
||||
Stream = 1,
|
||||
Burst = 2,
|
||||
Boss = 3
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 14433e1048844c5d942c885c2f50ffe0
|
||||
timeCreated: 1772090003
|
||||
@@ -0,0 +1,21 @@
|
||||
namespace GeometryTD.Definition
|
||||
{
|
||||
public enum EventEffectType
|
||||
{
|
||||
None,
|
||||
|
||||
AddGold,
|
||||
RemoveGold,
|
||||
|
||||
AddRandomComps,
|
||||
RemoveRandomComps,
|
||||
|
||||
AddRandomCompsEndurance,
|
||||
RemoveRandomCompsEndurance,
|
||||
|
||||
AddRandomTowersEndurance,
|
||||
DamageRandomTowersEndurance,
|
||||
|
||||
TransformComponents,
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 6f11ba35aa8f491f942964435b32cba6
|
||||
timeCreated: 1772095333
|
||||
@@ -0,0 +1,11 @@
|
||||
namespace GeometryTD.Definition
|
||||
{
|
||||
public enum EventRequirementType
|
||||
{
|
||||
None,
|
||||
GoldAtLeast,
|
||||
CompCountAtLeast,
|
||||
TowerCountAtLeast,
|
||||
HasRelic,
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: f9da1af87a4f4115b9a5da706b4e1092
|
||||
timeCreated: 1772095290
|
||||
@@ -0,0 +1,10 @@
|
||||
namespace GeometryTD.Definition
|
||||
{
|
||||
public enum LevelThemeType
|
||||
{
|
||||
None,
|
||||
Plain,
|
||||
Volcano,
|
||||
Mountain
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 06ec7c0ec8924c7988e521abdd97bffe
|
||||
timeCreated: 1772089321
|
||||
@@ -0,0 +1,10 @@
|
||||
namespace GeometryTD.Definition
|
||||
{
|
||||
public enum LevelVictoryType
|
||||
{
|
||||
None,
|
||||
PhasesCleared,
|
||||
BossDead,
|
||||
TimeElapsed
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: ea9b7c078511464fa572923f66cc200e
|
||||
timeCreated: 1772089447
|
||||
@@ -0,0 +1,13 @@
|
||||
namespace GeometryTD.Definition
|
||||
{
|
||||
/// <summary>
|
||||
/// 关卡阶段结束类型
|
||||
/// </summary>
|
||||
public enum PhaseEndType : byte
|
||||
{
|
||||
None = 0,
|
||||
TimeElapsed = 1,
|
||||
EnemiesCleared = 2,
|
||||
BossDead = 3
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: eed7685430c24cdaac639581331393f3
|
||||
timeCreated: 1772090002
|
||||
@@ -26,5 +26,10 @@
|
||||
/// 关于。
|
||||
/// </summary>
|
||||
AboutForm = 102,
|
||||
|
||||
/// <summary>
|
||||
/// 事件节点界面。
|
||||
/// </summary>
|
||||
EventForm = 200,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 8a291a17879242cc8c7cec678aa5aaf1
|
||||
timeCreated: 1772101365
|
||||
@@ -0,0 +1,25 @@
|
||||
namespace GeometryTD.Definition
|
||||
{
|
||||
public class AddGoldEffect : EventEffectBase
|
||||
{
|
||||
public override EventEffectType EffectType => EventEffectType.AddGold;
|
||||
public override EventEffectParam Param => _param;
|
||||
private AddGoldParam _param;
|
||||
|
||||
public AddGoldEffect(AddGoldParam param, float? probability = null)
|
||||
{
|
||||
_param = param;
|
||||
Probability = probability;
|
||||
}
|
||||
}
|
||||
|
||||
public class AddGoldParam : EventEffectParam
|
||||
{
|
||||
public int Count;
|
||||
|
||||
public AddGoldParam(int count)
|
||||
{
|
||||
Count = count;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 75cacc997d8f414ca73f381cad303b5b
|
||||
timeCreated: 1772101474
|
||||
@@ -0,0 +1,28 @@
|
||||
namespace GeometryTD.Definition
|
||||
{
|
||||
public class AddRandomCompsEffect : EventEffectBase
|
||||
{
|
||||
public override EventEffectType EffectType => EventEffectType.AddRandomComps;
|
||||
public override EventEffectParam Param => _param;
|
||||
private AddRandomCompsParam _param;
|
||||
|
||||
public AddRandomCompsEffect(AddRandomCompsParam param, float? probability = null)
|
||||
{
|
||||
_param = param;
|
||||
Probability = probability;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public class AddRandomCompsParam : EventEffectParam
|
||||
{
|
||||
public int Count;
|
||||
public RarityType Rarity;
|
||||
|
||||
public AddRandomCompsParam(int count, RarityType rarity)
|
||||
{
|
||||
Count = count;
|
||||
Rarity = rarity;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 35656d42c28448268d0547c19938b2d8
|
||||
timeCreated: 1772101530
|
||||
@@ -0,0 +1,34 @@
|
||||
namespace GeometryTD.Definition
|
||||
{
|
||||
public class DamageRandomTowerEnduranceEffect : EventEffectBase
|
||||
{
|
||||
public override EventEffectType EffectType => EventEffectType.DamageRandomTowersEndurance;
|
||||
public override EventEffectParam Param => _param;
|
||||
private DamageRandomTowerEnduranceParam _param;
|
||||
|
||||
public DamageRandomTowerEnduranceEffect(DamageRandomTowerEnduranceParam param, float? probability = null)
|
||||
{
|
||||
_param = param;
|
||||
Probability = probability;
|
||||
}
|
||||
}
|
||||
|
||||
public class DamageRandomTowerEnduranceParam : EventEffectParam
|
||||
{
|
||||
/// <summary>
|
||||
/// 减少耐久的防御塔数量
|
||||
/// </summary>
|
||||
public int Count;
|
||||
|
||||
/// <summary>
|
||||
/// 防御塔耐久减少的量
|
||||
/// </summary>
|
||||
public int Amount;
|
||||
|
||||
public DamageRandomTowerEnduranceParam(int count, int amount)
|
||||
{
|
||||
Count = count;
|
||||
Amount = amount;
|
||||
}
|
||||
}
|
||||
}
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: a1b06f274c054844ad68b1db02d3737a
|
||||
timeCreated: 1772101563
|
||||
@@ -0,0 +1,14 @@
|
||||
namespace GeometryTD.Definition
|
||||
{
|
||||
public abstract class EventEffectBase
|
||||
{
|
||||
public abstract EventEffectType EffectType { get; }
|
||||
public abstract EventEffectParam Param { get; }
|
||||
public float? Probability;
|
||||
}
|
||||
|
||||
public class EventEffectParam
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 2be5a7ff782240f79bde2dd0310d11ea
|
||||
timeCreated: 1772101392
|
||||
@@ -0,0 +1,27 @@
|
||||
namespace GeometryTD.Definition
|
||||
{
|
||||
public class RemoveRandomCompsEffect : EventEffectBase
|
||||
{
|
||||
public override EventEffectType EffectType => EventEffectType.RemoveRandomComps;
|
||||
public override EventEffectParam Param => _param;
|
||||
private RemoveRandomCompsParam _param;
|
||||
|
||||
public RemoveRandomCompsEffect(RemoveRandomCompsParam param, float? probability = null)
|
||||
{
|
||||
_param = param;
|
||||
Probability = probability;
|
||||
}
|
||||
}
|
||||
|
||||
public class RemoveRandomCompsParam : EventEffectParam
|
||||
{
|
||||
public int Count;
|
||||
public RarityType Rarity;
|
||||
|
||||
public RemoveRandomCompsParam(int Count, RarityType Rarity)
|
||||
{
|
||||
this.Count = Count;
|
||||
this.Rarity = Rarity;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 77f8e0d1879b48108e6ad5faca07d7f7
|
||||
timeCreated: 1772101548
|
||||
@@ -0,0 +1,76 @@
|
||||
using GeometryTD.CustomUtility;
|
||||
using Newtonsoft.Json.Linq;
|
||||
using UnityGameFramework.Runtime;
|
||||
|
||||
namespace GeometryTD.Definition
|
||||
{
|
||||
public static class EventEffectFactory
|
||||
{
|
||||
public static EventEffectBase Create(string rawType, JObject param, float? probability = null)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(rawType))
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
EventEffectType type = EnumUtility<EventEffectType>.Get(rawType);
|
||||
switch (type)
|
||||
{
|
||||
case EventEffectType.AddGold:
|
||||
{
|
||||
int count = GetInt(param, "Count");
|
||||
return new AddGoldEffect(new AddGoldParam(count), probability);
|
||||
}
|
||||
case EventEffectType.RemoveRandomComps:
|
||||
{
|
||||
int count = GetInt(param, "Count");
|
||||
RarityType rarity = EnumUtility<RarityType>.Get(GetString(param, "Rarity"));
|
||||
return new RemoveRandomCompsEffect(new RemoveRandomCompsParam(count, rarity), probability);
|
||||
}
|
||||
case EventEffectType.AddRandomComps:
|
||||
{
|
||||
int count = GetInt(param, "Count");
|
||||
RarityType rarity = EnumUtility<RarityType>.Get(GetString(param, "Rarity"));
|
||||
return new AddRandomCompsEffect(new AddRandomCompsParam(count, rarity), probability);
|
||||
}
|
||||
case EventEffectType.DamageRandomTowersEndurance:
|
||||
{
|
||||
int count = GetInt(param, "Count");
|
||||
int amount = GetInt(param, "Amount");
|
||||
return new DamageRandomTowerEnduranceEffect(new DamageRandomTowerEnduranceParam(count, amount), probability);
|
||||
}
|
||||
default:
|
||||
Log.Warning("Unsupported EventEffectType '{0}'.", rawType);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
private static int GetInt(JObject param, params string[] keys)
|
||||
{
|
||||
if (param == null)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
foreach (string key in keys)
|
||||
{
|
||||
if (param.TryGetValue(key, out JToken token) && token.Type != JTokenType.Null)
|
||||
{
|
||||
return token.Value<int>();
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
private static string GetString(JObject param, string key)
|
||||
{
|
||||
if (param == null || !param.TryGetValue(key, out JToken token) || token.Type == JTokenType.Null)
|
||||
{
|
||||
return string.Empty;
|
||||
}
|
||||
|
||||
return token.Value<string>();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: fae04d7a401d4c7fbe2de385c3f23580
|
||||
timeCreated: 1772102401
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: cee1f415e08743a9914efd2ecbc6273e
|
||||
timeCreated: 1772100925
|
||||
@@ -0,0 +1,26 @@
|
||||
namespace GeometryTD.Definition
|
||||
{
|
||||
public class CompCountAtLeastRequirement : EventRequirementBase
|
||||
{
|
||||
public override EventRequirementType RequirementType => EventRequirementType.CompCountAtLeast;
|
||||
public override EventRequirementParam Param => _param;
|
||||
private CompCountAtLeastParam _param;
|
||||
|
||||
public CompCountAtLeastRequirement(CompCountAtLeastParam param)
|
||||
{
|
||||
_param = param;
|
||||
}
|
||||
}
|
||||
|
||||
public class CompCountAtLeastParam : EventRequirementParam
|
||||
{
|
||||
public int Count;
|
||||
public RarityType Rarity;
|
||||
|
||||
public CompCountAtLeastParam(int count, RarityType rarity)
|
||||
{
|
||||
Count = count;
|
||||
Rarity = rarity;
|
||||
}
|
||||
}
|
||||
}
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: b845abef81934b75b266a738597bb890
|
||||
timeCreated: 1772101103
|
||||
@@ -0,0 +1,12 @@
|
||||
namespace GeometryTD.Definition
|
||||
{
|
||||
public abstract class EventRequirementBase
|
||||
{
|
||||
public abstract EventRequirementType RequirementType { get; }
|
||||
public abstract EventRequirementParam Param { get; }
|
||||
}
|
||||
|
||||
public class EventRequirementParam
|
||||
{
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: eaa757b9c4cd4bcca38d73a30ab06285
|
||||
timeCreated: 1772100961
|
||||
@@ -0,0 +1,24 @@
|
||||
namespace GeometryTD.Definition
|
||||
{
|
||||
public class GoldAtLeastRequirement : EventRequirementBase
|
||||
{
|
||||
public override EventRequirementType RequirementType => EventRequirementType.GoldAtLeast;
|
||||
public override EventRequirementParam Param => _param;
|
||||
private GoldAtLeastParam _param;
|
||||
|
||||
public GoldAtLeastRequirement(GoldAtLeastParam param)
|
||||
{
|
||||
_param = param;
|
||||
}
|
||||
}
|
||||
|
||||
public class GoldAtLeastParam : EventRequirementParam
|
||||
{
|
||||
public int Gold;
|
||||
|
||||
public GoldAtLeastParam(int gold)
|
||||
{
|
||||
Gold = gold;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 5a2de86ff2b442dd9f7d6af64f518bb8
|
||||
timeCreated: 1772101058
|
||||
@@ -0,0 +1,24 @@
|
||||
namespace GeometryTD.Definition
|
||||
{
|
||||
public class HasRelicRequirement : EventRequirementBase
|
||||
{
|
||||
public override EventRequirementType RequirementType => EventRequirementType.HasRelic;
|
||||
public override EventRequirementParam Param => _param;
|
||||
private HasRelicParam _param;
|
||||
|
||||
public HasRelicRequirement(HasRelicParam param)
|
||||
{
|
||||
_param = param;
|
||||
}
|
||||
}
|
||||
|
||||
public class HasRelicParam : EventRequirementParam
|
||||
{
|
||||
public int RelicId;
|
||||
|
||||
public HasRelicParam(int relicId)
|
||||
{
|
||||
RelicId = relicId;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: b06e03ee597d4345b95c524c7a6a27d4
|
||||
timeCreated: 1772101234
|
||||
@@ -0,0 +1,24 @@
|
||||
namespace GeometryTD.Definition
|
||||
{
|
||||
public class TowerCountAtLeastRequirement : EventRequirementBase
|
||||
{
|
||||
public override EventRequirementType RequirementType => EventRequirementType.TowerCountAtLeast;
|
||||
public override EventRequirementParam Param => _param;
|
||||
private TowerCountAtLeastParam _param;
|
||||
|
||||
public TowerCountAtLeastRequirement(TowerCountAtLeastParam param)
|
||||
{
|
||||
_param = param;
|
||||
}
|
||||
}
|
||||
|
||||
public class TowerCountAtLeastParam : EventRequirementParam
|
||||
{
|
||||
public int Count;
|
||||
|
||||
public TowerCountAtLeastParam(int count)
|
||||
{
|
||||
Count = count;
|
||||
}
|
||||
}
|
||||
}
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 81a1102b3c0e4a53ae74ebb779ea7c19
|
||||
timeCreated: 1772101156
|
||||
@@ -0,0 +1,74 @@
|
||||
using GeometryTD.CustomUtility;
|
||||
using Newtonsoft.Json.Linq;
|
||||
using UnityGameFramework.Runtime;
|
||||
|
||||
namespace GeometryTD.Definition
|
||||
{
|
||||
public static class EventRequirementFactory
|
||||
{
|
||||
public static EventRequirementBase Create(string rawType, JObject param)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(rawType))
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
EventRequirementType type = EnumUtility<EventRequirementType>.Get(rawType);
|
||||
switch (type)
|
||||
{
|
||||
case EventRequirementType.GoldAtLeast:
|
||||
{
|
||||
int count = GetInt(param, "Count", "Gold");
|
||||
return new GoldAtLeastRequirement(new GoldAtLeastParam(count));
|
||||
}
|
||||
case EventRequirementType.CompCountAtLeast:
|
||||
{
|
||||
int count = GetInt(param, "Count");
|
||||
RarityType rarity = EnumUtility<RarityType>.Get(GetString(param, "Rarity"));
|
||||
return new CompCountAtLeastRequirement(new CompCountAtLeastParam(count, rarity));
|
||||
}
|
||||
case EventRequirementType.TowerCountAtLeast:
|
||||
{
|
||||
int count = GetInt(param, "Count");
|
||||
return new TowerCountAtLeastRequirement(new TowerCountAtLeastParam(count));
|
||||
}
|
||||
case EventRequirementType.HasRelic:
|
||||
{
|
||||
int relicId = GetInt(param, "RelicId", "Id");
|
||||
return new HasRelicRequirement(new HasRelicParam(relicId));
|
||||
}
|
||||
default:
|
||||
Log.Warning("Unsupported EventRequirementType '{0}'.", rawType);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
private static int GetInt(JObject param, params string[] keys)
|
||||
{
|
||||
if (param == null)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
foreach (string key in keys)
|
||||
{
|
||||
if (param.TryGetValue(key, out JToken token) && token.Type != JTokenType.Null)
|
||||
{
|
||||
return token.Value<int>();
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
private static string GetString(JObject param, string key)
|
||||
{
|
||||
if (param == null || !param.TryGetValue(key, out JToken token) || token.Type == JTokenType.Null)
|
||||
{
|
||||
return string.Empty;
|
||||
}
|
||||
|
||||
return token.Value<string>();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: e3b92d366cac404394c9e6aa1aa4062b
|
||||
timeCreated: 1772102400
|
||||
Reference in New Issue
Block a user