mirror of
http://47.107.252.169:3000/Roguelite-Game-Developing-Team/Gen_Hack-and-Slash-Roguelite.git
synced 2025-11-20 09:57:13 +08:00
(client) feat:实现技能树界面,实现地图生成器,实现维度指定,实现规则瓦片定义,实现逃跑逻辑,实现消息定义,实现武器动画,实现受击动画 fix: 修复单攻击子弹击中多个目标,修复人物属性计算错误 (#56)
Co-authored-by: m0_75251201 <m0_75251201@noreply.gitcode.com> Reviewed-on: http://47.107.252.169:3000/Roguelite-Game-Developing-Team/Gen_Hack-and-Slash-Roguelite/pulls/56
This commit is contained in:
@@ -80,35 +80,7 @@ namespace Entity
|
||||
// 确保阶段列表按开始时间排序,以便正确判断当前阶段。
|
||||
if (this.def.stages == null) this.def.stages = new List<HediffStageDef>();
|
||||
this.def.stages = this.def.stages.OrderBy(s => s.start).ToList();
|
||||
|
||||
// 实例化所有定义的组件。
|
||||
if (def.comps != null)
|
||||
{
|
||||
foreach (var compDef in def.comps)
|
||||
{
|
||||
if (compDef.compClass != null && typeof(HediffComp).IsAssignableFrom(compDef.compClass))
|
||||
{
|
||||
try
|
||||
{
|
||||
// 使用 Activator.CreateInstance 动态创建组件实例,并传入构造函数参数。
|
||||
// HediffComp 的构造函数需要接受 Hediff parentHediff 和 HediffCompDef def。
|
||||
var comp = (HediffComp)Activator.CreateInstance(compDef.compClass, this, compDef);
|
||||
Comps.Add(comp);
|
||||
comp.Initialize(); // 初始化组件
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Debug.LogError(
|
||||
$"实例化健康状态组件 '{compDef.compClass?.Name ?? "空"}' 失败,所属健康状态 '{def.defName ?? def.GetType().Name}':{ex.Message}");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
Debug.LogWarning(
|
||||
$"警告:健康状态组件定义 '{compDef.compClass?.Name ?? "空"}' 无效或未继承自 HediffComp,所属健康状态 '{def.defName ?? def.GetType().Name}'。");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// 初始化时确定第一个阶段,这会触发 SetDirty()。
|
||||
UpdateStageIndex();
|
||||
|
||||
Reference in New Issue
Block a user