67 lines
2.3 KiB
C#
67 lines
2.3 KiB
C#
using Continentis.MainGame.Card;
|
|
using Continentis.MainGame.Character;
|
|
using UnityEngine;
|
|
|
|
namespace Continentis.MainGame.Card
|
|
{
|
|
public class CardLogicComponent_Defense : CardLogicComponentBase
|
|
{
|
|
protected override void TargetingEffect(CharacterBase target)
|
|
{
|
|
if (card.HasAttribute("Block"))
|
|
{
|
|
card.SetAttribute("Display_Block", card.GetAttribute("Block"));
|
|
}
|
|
else if(card.HasAttribute("Dodge"))
|
|
{
|
|
card.SetAttribute("Display_Dodge", card.GetAttribute("Dodge"));
|
|
}
|
|
else if(card.HasAttribute("TemporaryHealth"))
|
|
{
|
|
card.SetAttribute("Display_TemporaryHealth", card.GetAttribute("TemporaryHealth"));
|
|
}
|
|
}
|
|
|
|
protected override void UntargetingEffect()
|
|
{
|
|
if (card.HasAttribute("Block"))
|
|
{
|
|
card.SetAttribute("Display_Block", card.GetAttribute("Block"));
|
|
}
|
|
else if(card.HasAttribute("Dodge"))
|
|
{
|
|
card.SetAttribute("Display_Dodge", card.GetAttribute("Dodge"));
|
|
}
|
|
else if(card.HasAttribute("TemporaryHealth"))
|
|
{
|
|
card.SetAttribute("Display_TemporaryHealth", card.GetAttribute("TemporaryHealth"));
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 设置格挡值,加成来自 BlockGainOffset
|
|
/// </summary>
|
|
public void SetBlock(bool additive = false, int originalBlock = 0)
|
|
{
|
|
int blockOffset = user.GetAttribute("BlockGainOffset");
|
|
card.SetVariableAttribute("Block", blockOffset, additive, originalBlock);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 设置闪避值,加成来自 DodgeGainOffset
|
|
/// </summary>
|
|
public void SetDodge(bool additive = false, int originalDodge = 0)
|
|
{
|
|
int dodgeOffset = user.GetAttribute("DodgeGainOffset");
|
|
card.SetVariableAttribute("Dodge", dodgeOffset, additive, originalDodge);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 设置临时生命值,默认无加成
|
|
/// </summary>
|
|
public void SetShield(bool additive = false, int originalShield = 0)
|
|
{
|
|
card.SetVariableAttribute("TemporaryHealth", 0, additive, originalShield);
|
|
}
|
|
}
|
|
} |