S4 收尾

This commit is contained in:
2026-03-11 15:02:44 +08:00
parent 515fe95441
commit c019f9f527
103 changed files with 367 additions and 230 deletions
@@ -189,7 +189,7 @@ namespace GeometryTD.CustomUtility
private static TagType[] ResolveSeedTags(TagType[] possibleTags, RarityType rarity, long instanceId, int configId)
{
return InventoryTagRuleService.ResolveComponentTags(
return ComponentTagGenerationService.ResolveComponentTags(
possibleTags,
rarity,
InventoryTagSourceType.Seed,
@@ -1,175 +0,0 @@
using System;
using System.Collections.Generic;
using GeometryTD.DataTable;
using GeometryTD.Definition;
namespace GeometryTD.CustomUtility
{
public static class TagDisplayUtility
{
public static string ResolveTagName(TagType tagType)
{
if (tagType == TagType.None)
{
return string.Empty;
}
if (GameEntry.DataTable != null)
{
var tagTable = GameEntry.DataTable.GetDataTable<DRTag>();
if (tagTable != null)
{
DRTag tagRow = tagTable.GetDataRow((int)tagType);
if (tagRow != null && !string.IsNullOrWhiteSpace(tagRow.Name))
{
return tagRow.Name;
}
}
}
return tagType.ToString();
}
public static string[] BuildTagTexts(IReadOnlyList<TagType> tags)
{
if (tags == null || tags.Count <= 0)
{
return Array.Empty<string>();
}
List<string> results = new List<string>(tags.Count);
for (int i = 0; i < tags.Count; i++)
{
string tagName = ResolveTagName(tags[i]);
if (!string.IsNullOrWhiteSpace(tagName))
{
results.Add(tagName);
}
}
return results.ToArray();
}
public static string[] BuildTagTexts(IReadOnlyList<TagRuntimeData> tagRuntimes)
{
if (tagRuntimes == null || tagRuntimes.Count <= 0)
{
return Array.Empty<string>();
}
List<string> results = new List<string>(tagRuntimes.Count);
for (int i = 0; i < tagRuntimes.Count; i++)
{
TagRuntimeData tagRuntime = tagRuntimes[i];
if (tagRuntime == null || tagRuntime.TagType == TagType.None || tagRuntime.TotalStack <= 0)
{
continue;
}
string tagName = ResolveTagName(tagRuntime.TagType);
if (string.IsNullOrWhiteSpace(tagName))
{
continue;
}
results.Add(tagRuntime.TotalStack > 1 ? $"{tagName} x{tagRuntime.TotalStack}" : tagName);
}
return results.ToArray();
}
public static string[] BuildTowerTagTexts(TowerStatsData towerStats)
{
if (towerStats == null)
{
return Array.Empty<string>();
}
if (towerStats.TagRuntimes != null && towerStats.TagRuntimes.Length > 0)
{
return BuildTagTexts(towerStats.TagRuntimes);
}
return BuildTagTexts(towerStats.Tags);
}
public static string BuildTagDescriptionText(IReadOnlyList<TagType> tags)
{
if (tags == null || tags.Count <= 0)
{
return string.Empty;
}
List<string> results = new List<string>(tags.Count);
for (int i = 0; i < tags.Count; i++)
{
TagType tagType = tags[i];
if (tagType == TagType.None)
{
continue;
}
string tagName = ResolveTagName(tagType);
string tagDescription = ResolveTagDescription(tagType);
if (string.IsNullOrWhiteSpace(tagDescription))
{
continue;
}
results.Add(string.IsNullOrWhiteSpace(tagName) ? tagDescription : $"{tagName}: {tagDescription}");
}
return string.Join("\n", results);
}
public static string BuildTagDescriptionText(IReadOnlyList<TagRuntimeData> tagRuntimes)
{
if (tagRuntimes == null || tagRuntimes.Count <= 0)
{
return string.Empty;
}
List<string> results = new List<string>(tagRuntimes.Count);
for (int i = 0; i < tagRuntimes.Count; i++)
{
TagRuntimeData runtime = tagRuntimes[i];
if (runtime == null || runtime.TagType == TagType.None || runtime.TotalStack <= 0)
{
continue;
}
string tagName = ResolveTagName(runtime.TagType);
if (runtime.TotalStack > 1 && !string.IsNullOrWhiteSpace(tagName))
{
tagName = $"{tagName} x{runtime.TotalStack}";
}
string tagDescription = ResolveTagDescription(runtime.TagType);
if (string.IsNullOrWhiteSpace(tagDescription))
{
continue;
}
results.Add(string.IsNullOrWhiteSpace(tagName) ? tagDescription : $"{tagName}: {tagDescription}");
}
return string.Join("\n", results);
}
public static string ResolveTagDescription(TagType tagType)
{
if (tagType == TagType.None)
{
return string.Empty;
}
if (TagConfigRegistry.TryGetDefinition(tagType, out TagDefinitionData definition) &&
!string.IsNullOrWhiteSpace(definition.Description))
{
return definition.Description;
}
return string.Empty;
}
}
}
@@ -1,11 +0,0 @@
fileFormatVersion: 2
guid: 93b93ce08ff34afea2cdf0cfe8f417f6
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant: