(client)feat:实现子弹定义以及生成,实现初始化动画,实现血条 #43

Merged
TheRedApricot merged 7 commits from zzdxxz/Gen_Hack-and-Slash-Roguelite-zzdxxz:temp811 into main 2025-08-19 20:22:12 +08:00
78 changed files with 2738 additions and 2290 deletions
Showing only changes of commit dea6cd5fa3 - Show all commits

View File

@ -20,6 +20,9 @@ namespace Managers
public EntityPrefab defaultEntityPrefab; public EntityPrefab defaultEntityPrefab;
private List<Tuple<string,EntityPrefab>> pendingAdditions;
public LinkedList<EntityPrefab> FindEntitiesByFaction(string factionKey) public LinkedList<EntityPrefab> FindEntitiesByFaction(string factionKey)
{ {
if (factionEntities.TryGetValue(factionKey, out var entities)) if (factionEntities.TryGetValue(factionKey, out var entities))
@ -56,6 +59,20 @@ namespace Managers
Destroy(entityToRemove.gameObject); Destroy(entityToRemove.gameObject);
} }
} }
if (pendingAdditions.Any())
{
foreach (var entity in pendingAdditions)
{
if (!factionEntities.ContainsKey(entity.Item1))
{
factionEntities[entity.Item1] = new LinkedList<EntityPrefab>();
}
factionEntities[entity.Item1].AddLast(entity.Item2);
}
pendingAdditions.Clear();
}
} }
/// <summary> /// <summary>
@ -96,12 +113,14 @@ namespace Managers
// 管理派系列表 // 管理派系列表
var factionKey = def.attributes.label ?? "default"; var factionKey = def.attributes.label ?? "default";
if (!factionEntities.ContainsKey(factionKey)) pendingAdditions.Add(Tuple.Create(factionKey, entityComponent));
{
factionEntities[factionKey] = new LinkedList<EntityPrefab>();
}
factionEntities[factionKey].AddLast(entityComponent); // if (!factionEntities.ContainsKey(factionKey))
// {
// factionEntities[factionKey] = new LinkedList<EntityPrefab>();
// }
// factionEntities[factionKey].AddLast(entityComponent);
return entityComponent; return entityComponent;
} }
@ -219,13 +238,14 @@ namespace Managers
var entityComponent = entity.GetComponent<EntityPrefab>(); var entityComponent = entity.GetComponent<EntityPrefab>();
const string factionKey = "default"; const string factionKey = "default";
if (!factionEntities.ContainsKey(factionKey)) pendingAdditions.Add(Tuple.Create(factionKey, entityComponent));
{ // if (!factionEntities.ContainsKey(factionKey))
factionEntities[factionKey] = new LinkedList<EntityPrefab>(); // {
} // factionEntities[factionKey] = new LinkedList<EntityPrefab>();
// }
entityComponent.DefaultInit(); // entityComponent.DefaultInit();
factionEntities[factionKey].AddLast(entityComponent); // factionEntities[factionKey].AddLast(entityComponent);
} }
protected override void OnStart() protected override void OnStart()