From 4b28e6b46052946e42b69e357199c63d47df4a35 Mon Sep 17 00:00:00 2001 From: daixiawu Date: Fri, 10 Apr 2026 14:03:25 +0800 Subject: [PATCH] =?UTF-8?q?=E6=81=8B=E6=81=8B=E6=8A=80=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Skill/AllSkill/KoishiRespawnSkill.cs | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) 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(); + } + } + } } }