2025-07-17 18:26:28 +08:00

60 lines
1.4 KiB
C#

/*
* @Author: 白哉
* @Description:
* @Date: 2025年04月23日 星期三 21:04:18
* @Modify:
*/
using RuntimeData;
using System;
using UnityEngine;
namespace Logic.Skill
{
[Serializable]
public class EternitySkill : SkillBase
{
[SerializeField] private int _recordDmg;
public EternitySkill()
{
IsPermanent = false;
TurnsLimit = 1;
Score = 2;
}
public override void GetSkillCopy(SkillBase skill)
{
base.GetSkillCopy(skill);
if (skill is EternitySkill eternitySkill)
{
eternitySkill._recordDmg = _recordDmg;
}
}
public override void DeepCopy(SkillBase copySkill)
{
base.DeepCopy(copySkill);
if (copySkill is not EternitySkill eternitySkill) return;
_recordDmg = eternitySkill._recordDmg;
}
public override SkillType GetSkillType()
{
return SkillType.ETERNITY;
}
public override bool IsCanBeDamaged(UnitData self, MapData mapData, int dmg)
{
_recordDmg += dmg;
return false;
}
public override void OnTurnEnd(UnitData self, MapData mapData)
{
Main.UnitLogic.DamageSettlement(mapData, self, self, _recordDmg, DamageType.True);
}
}
}