61 lines
1.8 KiB
C#
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;
|
|
}
|
|
}
|
|
}
|
|
|