更新KomeijiFear的特效逻辑

This commit is contained in:
kawagiri 2026-04-19 16:02:59 +08:00
parent dae18f2888
commit ee568f1d6a
11 changed files with 2838 additions and 2563 deletions

2
.gitignore vendored
View File

@ -64,3 +64,5 @@ Publish/
!**/graphify-out/graph.json
!**/graphify-out/manifest.json
!**/graphify-out/cost.json
Unity/TH1.pub
Unity/TH1

View File

@ -1644,7 +1644,11 @@ namespace Logic.Action
{
// 存活添加恐惧并刷新UI
if (!target.GetSkill(SkillType.KomeijiFearImmune, out _))
{
target.AddOrOverrideSkill(SkillType.KomeijiFear, map, unit.Id);
// 播放恐惧VFX
around.Renderer(map)?.PlayVFXInSight(new GridVFXParams(GridVFXType.KomeijiFear));
}
if (map == Main.MapData)
{

View File

@ -38,7 +38,7 @@ namespace Logic.Skill
info.DamageTarget.AddOrOverrideSkill(SkillType.KomeijiFear, mapData, info.DamageOrigin.Id);
// 视觉更新刷新目标单位显示显示debuff图标
// 视觉更新刷新目标单位显示显示debuff图标+ 播放KomeijiFear VFX
if (mapData != Main.MapData) return;
if (!info.DamageTarget.IsAlive()) return;
@ -52,11 +52,16 @@ namespace Logic.Skill
if (MapRenderer.Instance != null &&
MapRenderer.Instance.ROUnitMap.TryGetValue(info.DamageTarget.Id, out var unitRenderer))
{
var targetGrid = info.DamageTarget.Grid(mapData);
scope.Add(new FragmentStep
{
Phase = phase,
Duration = 0.1f,
Execute = () => { unitRenderer.InstantUpdateUnit(false); }
Execute = () =>
{
unitRenderer.InstantUpdateUnit(false);
targetGrid?.Renderer(mapData)?.PlayVFXInSight(new GridVFXParams(GridVFXType.KomeijiFear));
}
});
}
}
@ -66,6 +71,8 @@ namespace Logic.Skill
MapRenderer.Instance.ROUnitMap.TryGetValue(info.DamageTarget.Id, out var unitRenderer))
{
unitRenderer.RenderUpdateUnitImage();
var targetGrid = info.DamageTarget.Grid(mapData);
targetGrid?.Renderer(mapData)?.PlayVFXInSight(new GridVFXParams(GridVFXType.KomeijiFear));
}
}
}

View File

@ -49,6 +49,7 @@ namespace Logic.Skill
MapRenderer.Instance.ROUnitMap.TryGetValue(target.Id, out var unitRenderer))
{
unitRenderer.RenderUpdateUnitImage();
around.Renderer(mapData)?.PlayVFXInSight(new GridVFXParams(GridVFXType.KomeijiFear));
}
}
ReturnAroundBuf();

View File

@ -10,6 +10,7 @@ using System;
using System.Collections.Generic;
using System.Linq;
using MemoryPack;
using TH1Renderer;
using UnityEngine;
namespace Logic.Skill
@ -45,6 +46,8 @@ namespace Logic.Skill
return;
}
target.AddOrOverrideSkill(SkillType.KomeijiFear, mapData, self.Id);
// 播放恐惧VFX
around.Renderer(mapData)?.PlayVFXInSight(new GridVFXParams(GridVFXType.KomeijiFear));
}
ReturnAroundBuf();
}

View File

@ -132,6 +132,8 @@ namespace Logic.Skill
if (canSpread)
{
target.AddOrOverrideSkill(SkillType.KomeijiFear, map, self.Id);
// 播放恐惧VFX
aroundRenderer?.PlayVFXInSight(new GridVFXParams(GridVFXType.KomeijiFear));
}
unitsToRefresh.Add(target.Id);
}
@ -189,6 +191,9 @@ namespace Logic.Skill
if (target.Id != self.Id && !target.GetSkill(SkillType.KomeijiFearImmune, out _))
{
target.AddOrOverrideSkill(SkillType.KomeijiFear, map, self.Id);
// 播放恐惧VFX
var aroundRenderer = isMainMap ? around.Renderer(map) : null;
aroundRenderer?.PlayVFXInSight(new GridVFXParams(GridVFXType.KomeijiFear));
unitsToRefresh.Add(target.Id);
}
}

View File

@ -56,9 +56,12 @@ namespace Logic.Skill
if (isMainMap && MapRenderer.Instance != null &&
MapRenderer.Instance.ROUnitMap.TryGetValue(unit.Id, out var unitRenderer))
{
var gridRenderer = grid.Renderer(mapData);
visualSteps.Add(new SkillVisualStep
{
UnitRenderer = unitRenderer,
GridRenderer = gridRenderer,
VFXList = new List<GridVFXParams> { new GridVFXParams(GridVFXType.KomeijiFear) },
RefreshUnit = true,
});
}

View File

@ -54,11 +54,16 @@ namespace Logic.Skill
if (MapRenderer.Instance != null &&
MapRenderer.Instance.ROUnitMap.TryGetValue(info.DamageTarget.Id, out var unitRenderer))
{
var targetGrid = info.DamageTarget.Grid(mapData);
scope.Add(new FragmentStep
{
Phase = phase,
Duration = 0.1f,
Execute = () => { unitRenderer.InstantUpdateUnit(false); }
Execute = () =>
{
unitRenderer.InstantUpdateUnit(false);
targetGrid?.Renderer(mapData)?.PlayVFXInSight(new GridVFXParams(GridVFXType.KomeijiFear));
}
});
}
}
@ -69,6 +74,8 @@ namespace Logic.Skill
MapRenderer.Instance.ROUnitMap.TryGetValue(info.DamageTarget.Id, out var unitRenderer))
{
unitRenderer.RenderUpdateUnitImage();
var targetGrid = info.DamageTarget.Grid(mapData);
targetGrid?.Renderer(mapData)?.PlayVFXInSight(new GridVFXParams(GridVFXType.KomeijiFear));
}
}
}

View File

@ -63,11 +63,16 @@ namespace Logic.Skill
if (MapRenderer.Instance != null &&
MapRenderer.Instance.ROUnitMap.TryGetValue(info.DamageOrigin.Id, out var unitRenderer))
{
var targetGrid = info.DamageOrigin.Grid(mapData);
scope.Add(new FragmentStep
{
Phase = phase,
Duration = 0.1f,
Execute = () => { unitRenderer.InstantUpdateUnit(false); }
Execute = () =>
{
unitRenderer.InstantUpdateUnit(false);
targetGrid?.Renderer(mapData)?.PlayVFXInSight(new GridVFXParams(GridVFXType.KomeijiFear));
}
});
}
}
@ -77,6 +82,8 @@ namespace Logic.Skill
MapRenderer.Instance.ROUnitMap.TryGetValue(info.DamageOrigin.Id, out var unitRenderer))
{
unitRenderer.RenderUpdateUnitImage();
var targetGrid = info.DamageOrigin.Grid(mapData);
targetGrid?.Renderer(mapData)?.PlayVFXInSight(new GridVFXParams(GridVFXType.KomeijiFear));
}
}
}

File diff suppressed because it is too large Load Diff

Binary file not shown.