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")); } } /// /// 设置格挡值,加成来自 BlockGainOffset /// public void SetBlock(bool additive = false, int originalBlock = 0) { int blockOffset = user.GetAttribute("BlockGainOffset"); card.SetVariableAttribute("Block", blockOffset, additive, originalBlock); } /// /// 设置闪避值,加成来自 DodgeGainOffset /// public void SetDodge(bool additive = false, int originalDodge = 0) { int dodgeOffset = user.GetAttribute("DodgeGainOffset"); card.SetVariableAttribute("Dodge", dodgeOffset, additive, originalDodge); } /// /// 设置临时生命值,默认无加成 /// public void SetShield(bool additive = false, int originalShield = 0) { card.SetVariableAttribute("TemporaryHealth", 0, additive, originalShield); } } }