diff --git a/Unity/Assets/Scripts/TH1_Logic/Skill/AllSkill/KoishiRespawnSkill.cs b/Unity/Assets/Scripts/TH1_Logic/Skill/AllSkill/KoishiRespawnSkill.cs index be26d8dad..2c38e3bb7 100644 --- a/Unity/Assets/Scripts/TH1_Logic/Skill/AllSkill/KoishiRespawnSkill.cs +++ b/Unity/Assets/Scripts/TH1_Logic/Skill/AllSkill/KoishiRespawnSkill.cs @@ -10,6 +10,7 @@ using System; using System.Collections.Generic; using System.Linq; using MemoryPack; +using TH1Renderer; using UnityEngine; namespace Logic.Skill @@ -27,6 +28,28 @@ namespace Logic.Skill { return SkillType.KoishiRespawn; } + + // 移动后,为周围1格内所有单位赋予1层KomeijiFear + public override void OnMove(UnitData self, GridData grid, MapData mapData, MoveType moveType, List path = null) + { + if (self == null || grid == null || mapData == null) return; + + var arounds = mapData.GridMap.GetAroundGridData(1, 1, grid); + foreach (var around in arounds) + { + if (!around.RealUnit(mapData, out var target)) continue; + if (target.Id == self.Id) continue; + if (target.GetSkill(SkillType.KomeijiFearImmune, out _)) continue; + + target.AddOrOverrideSkill(SkillType.KomeijiFear, mapData, self.Id); + + if (MapRenderer.Instance != null && + MapRenderer.Instance.ROUnitMap.TryGetValue(target.Id, out var unitRenderer)) + { + unitRenderer.RenderUpdateUnitImage(); + } + } + } } }