61 lines
1.8 KiB
C#

/*
* @Author: 白哉
* @Description:
* @Date: 2025年11月15日 星期五
* @Modify:
*/
using System;
using System.Collections.Generic;
using MemoryPack;
using RuntimeData;
using TH1_Logic.Core;
namespace Logic.Skill
{
public partial class AyaBuffSkill : SkillBase
{
public AyaBuffSkill()
{
IsPermanent = true;
TurnsLimit = 0;
Score = 2;
}
public override SkillType GetSkillType()
{
return SkillType.AYABUFF;
}
public override void OnAfterTurnStart(IdentifierBase identifier, MapData mapData)
{
var self = identifier as UnitData;
if (self == null) return;
if (!self.IsAlive()) return;
if (!self.Grid(mapData, out var grid)) return;
if (!self.Player(mapData, out var player)) return;
var aroundBuf = RentAroundBuf();
mapData.GridMap.GetAroundGridData(1, 1, grid, aroundBuf);
foreach(var targetGrid in aroundBuf)
//周围1格内的盟友
if(targetGrid.VisibleUnit(mapData,player,out var targetUnit) && targetUnit.Player(mapData,out var targetPlayer) && mapData.SameUnion(targetPlayer.Id,player.Id))
{
targetUnit.AddSkill_Legacy(SkillType.MOVERANGEUP,mapData,false,0,false,-1,false,SpecialAddSkillType.AddTurnLimit,0);
/*if (targetUnit.GetSkill(SkillType.MOVERANGEUP, out var moveSkill))
{
moveSkill.SetTurnsLimit(0);
}*/
}
ReturnAroundBuf();
}
public override bool ReservedOnTransform(UnitData self, UnitFullType fullType)
{
return true;
}
}
}