2025-10-24 19:00:01 +08:00

45 lines
1.2 KiB
C#

/*
* @Author: 白哉
* @Description:
* @Date: 2025年04月23日 星期三 21:04:18
* @Modify:
*/
using System;
using RuntimeData;
using MemoryPack;
using TH1Renderer;
namespace Logic.Skill
{
public partial class VampireSkill : SkillBase
{
public VampireSkill()
{
IsPermanent = true;
TurnsLimit = 0;
Score = 4;
}
public override SkillType GetSkillType()
{
return SkillType.VAMPIRE;
}
public override void OnDamageOther(MapData mapData, SettlementInfo info)
{
if (info == null) return;
if (info.DamageOrigin == null || info.DamageTarget == null) return;
info.DamageOrigin.Health += (int)Math.Round(info.DamageValue * 0.25f);
if (info.DamageOrigin.Health > info.DamageOrigin.GetMaxHealth())
info.DamageOrigin.Health = info.DamageOrigin.GetMaxHealth();
if (mapData.GetGridDataByUnitId(info.DamageOrigin.Id, out var grid))
grid.Renderer(mapData)?.PlayVFX(new GridVFXParams(GridVFXType.Heal));
info.DamageOrigin.Renderer(mapData)?.InstantUpdateUnit(false);
}
}
}