using System.Collections.Generic;
using Continentis.MainGame.Character;
using Continentis.Mods.Basic.Cards;
using UnityEngine;
namespace Continentis.MainGame.Card
{
public class CardLogicComponent_Attack : CardLogicComponentBase
{
protected override void TargetingEffect(CharacterBase target)
{
card.SetAttribute("Display_Damage", mainLogic.GetTargetedFinalDamage(target));
}
protected override void UntargetingEffect()
{
card.SetAttribute("Display_Damage", mainLogic.GetNoTargetFinalDamage());
}
///
/// 设置伤害值
///
/// 要写入的属性名,默认为 "Damage"
/// 伤害增量
/// 是否为叠加,true为叠加,false为覆盖
/// 原始伤害值,仅在additive为true时有效
public void SetDamage(int damageOffset, string damageAttributeName = "Damage", bool additive = false, int originalDamage = 0)
{
card.SetVariableAttribute(damageAttributeName, damageOffset, additive, originalDamage);
}
///
/// 默认伤害计算,仅使用卡牌基础伤害(无任何属性加成)
///
public void SetDamage_Default(string damageAttributeName = "Damage")
{
SetDamage(0, damageAttributeName);
}
///
/// 物理伤害计算,伤害=基础伤害+物理伤害加成
///
public void SetDamage_Physics(string damageAttributeName = "Damage", bool additive = false, int originalDamage = 0)
{
int damageOffset = user.GetAttribute("PhysicsDamageDealtOffset");
SetDamage(damageOffset, damageAttributeName, additive, originalDamage);
}
///
/// 魔法伤害计算,伤害=基础伤害+魔法伤害加成
///
public void SetDamage_Magic(string damageAttributeName = "Damage", bool additive = false, int originalDamage = 0)
{
int damageOffset = user.GetAttribute("MagicDamageDealtOffset");
SetDamage(damageOffset, damageAttributeName, additive, originalDamage);
}
}
}