57 lines
1.6 KiB
C#
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();
|
|
}
|
|
}
|
|
}
|
|
|