112 lines
4.2 KiB
C#
112 lines
4.2 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("DisplayBlock", card.GetAttribute("Block"));
|
|
}
|
|
else if(card.HasAttribute("Dodge"))
|
|
{
|
|
card.SetAttribute("DisplayDodge", card.GetAttribute("Dodge"));
|
|
}
|
|
else if(card.HasAttribute("Shield"))
|
|
{
|
|
card.SetAttribute("DisplayShield", card.GetAttribute("Shield"));
|
|
}
|
|
}
|
|
|
|
protected override void UntargetingEffect()
|
|
{
|
|
if (card.HasAttribute("Block"))
|
|
{
|
|
card.SetAttribute("DisplayBlock", card.GetAttribute("Block"));
|
|
}
|
|
else if(card.HasAttribute("Dodge"))
|
|
{
|
|
card.SetAttribute("DisplayDodge", card.GetAttribute("Dodge"));
|
|
}
|
|
else if(card.HasAttribute("Shield"))
|
|
{
|
|
card.SetAttribute("DisplayShield", card.GetAttribute("Shield"));
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 设置格挡值,默认由体质加成
|
|
/// </summary>
|
|
public void SetBlock_Fortitude(bool additive = false, int originalBlock = 0)
|
|
{
|
|
int blockOffsetFromPhysique = user.GetAttribute("OffsetFromPhysique");
|
|
card.SetVariableAttribute("Block", blockOffsetFromPhysique, additive, originalBlock);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 设置格挡值,由智力加成
|
|
/// </summary>
|
|
public void SetBlock_Arcane(bool additive = false, int originalBlock = 0)
|
|
{
|
|
int blockOffsetFromIntelligence = user.GetAttribute("OffsetFromIntelligence");
|
|
card.SetVariableAttribute("Block", blockOffsetFromIntelligence, additive, originalBlock);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 设置格挡值,由魅力加成
|
|
/// </summary>
|
|
public void SetBlock_Sorcery(bool additive = false, int originalBlock = 0)
|
|
{
|
|
int blockOffsetFromCharisma = user.GetAttribute("OffsetFromCharisma");
|
|
card.SetVariableAttribute("Block", blockOffsetFromCharisma, additive, originalBlock);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 设置闪避值,由敏捷加成
|
|
/// </summary>
|
|
public void SetDodge_Swiftness(bool additive = false, int originalDodge = 0)
|
|
{
|
|
int dodgeOffsetFromAgility = user.GetAttribute("OffsetFromAgility");
|
|
card.SetVariableAttribute("Dodge", dodgeOffsetFromAgility, additive, originalDodge);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 设置闪避值,由智力加成
|
|
/// </summary>
|
|
public void SetDodge_Arcane(bool additive = false, int originalDodge = 0)
|
|
{
|
|
int dodgeOffsetFromIntelligence = user.GetAttribute("OffsetFromIntelligence");
|
|
card.SetVariableAttribute("Dodge", dodgeOffsetFromIntelligence, additive, originalDodge);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 设置闪避值,由魅力加成
|
|
/// </summary>
|
|
public void SetDodge_Sorcery(bool additive = false, int originalDodge = 0)
|
|
{
|
|
int dodgeOffsetFromCharisma = user.GetAttribute("OffsetFromCharisma");
|
|
card.SetVariableAttribute("Dodge", dodgeOffsetFromCharisma, additive, originalDodge);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 设置闪避值,由感知加成
|
|
/// </summary>
|
|
public void SetDodge_Prediction(bool additive = false, int originalDodge = 0)
|
|
{
|
|
int dodgeOffsetFromPrediction = user.GetAttribute("OffsetFromPerception");
|
|
card.SetVariableAttribute("Dodge", dodgeOffsetFromPrediction, additive, originalDodge);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 设置护盾值,默认无加成
|
|
/// </summary>
|
|
public void SetShield(bool additive = false, int originalShield = 0)
|
|
{
|
|
card.SetVariableAttribute("Shield", 0, additive, originalShield);
|
|
}
|
|
}
|
|
} |