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); } } }