/* * @Author: 白哉 * @Description: * @Date: 2025年04月23日 星期三 21:04:18 * @Modify: */ using RuntimeData; using System; namespace Logic.Skill { [Serializable] public class FortifySkill : SkillBase { public FortifySkill() { IsPermanent = true; TurnsLimit = 0; Score = 2; } public override SkillType GetSkillType() { return SkillType.FORTIFY; } public override float GetExtraDefense(UnitData self, MapData mapData) { if (!mapData.GetGridDataByUnitId(self.Id, out var grid) || !mapData.GetCityDataByGid(grid.Id, out var city)) return 1f; if (!mapData.GetPlayerDataByCityId(city.Id, out var cityPlayer) || !mapData.GetPlayerDataByUnitId(self.Id, out var unitPlayer)) return 1f; if (cityPlayer != unitPlayer) return 1f; return city.CityWall ? 4f : 1.5f; } } }