Files
Continentis/Assets/Scripts/MainGame/Card/LogicComponents/CardLogicComponent_Defense.cs

112 lines
4.3 KiB
C#
Raw Normal View History

2025-10-23 00:49:44 -04:00
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"));
}
2026-04-01 12:23:27 -04:00
else if(card.HasAttribute("TemporaryHealth"))
2025-10-23 00:49:44 -04:00
{
2026-04-01 12:23:27 -04:00
card.SetAttribute("DisplayTemporaryHealth", card.GetAttribute("TemporaryHealth"));
2025-10-23 00:49:44 -04:00
}
}
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"));
}
2026-04-01 12:23:27 -04:00
else if(card.HasAttribute("TemporaryHealth"))
2025-10-23 00:49:44 -04:00
{
2026-04-01 12:23:27 -04:00
card.SetAttribute("DisplayTemporaryHealth", card.GetAttribute("TemporaryHealth"));
2025-10-23 00:49:44 -04:00
}
}
/// <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>
2026-04-01 12:23:27 -04:00
/// 设置临时生命值,默认无加成
2025-10-23 00:49:44 -04:00
/// </summary>
public void SetShield(bool additive = false, int originalShield = 0)
{
2026-04-01 12:23:27 -04:00
card.SetVariableAttribute("TemporaryHealth", 0, additive, originalShield);
2025-10-23 00:49:44 -04:00
}
}
}