57 lines
1.6 KiB
C#

/*
* @Author: 白哉
* @Description:
* @Date: 2025年11月15日 星期五
* @Modify:
*/
using System;
using System.Collections.Generic;
using MemoryPack;
using RuntimeData;
namespace Logic.Skill
{
public partial class MomijiBuffSkill : SkillBase
{
public MomijiBuffSkill()
{
IsPermanent = true;
TurnsLimit = 0;
Score = 2;
}
public override SkillType GetSkillType()
{
return SkillType.MOMIJIBUFF;
}
public override void OnAfterTurnStart(IdentifierBase identifier, MapData mapData)
{
var self = identifier as UnitData;
if (self == null) return;
if (!self.Player(mapData, out var player)) return;
var grid = self.Grid(mapData);
var aroundBuf = RentAroundBuf();
mapData.GridMap.GetAroundGridData(1, 1, grid, aroundBuf);
foreach (var around in aroundBuf)
{
if (around == grid) continue;
around.VisibleUnit(mapData,player,out var unit);
if (unit == null || !unit.IsAlive()) continue;
if (!unit.Player(mapData, out var targetPlayer)) continue;
if (!mapData.SameUnion(targetPlayer.Id, player.Id)) continue;
unit.AddSkill_Legacy(SkillType.MOMIJIHUNTER, mapData, false, 0, false, -1, false,
SpecialAddSkillType.AddTurnLimit, 0);
//unit.GetSkill(SkillType.MOMIJIHUNTER, out var skill);
//skill?.SetTurnsLimit(0);
}
ReturnAroundBuf();
}
}
}