using System.Collections.Generic; using Continentis.MainGame; using Continentis.MainGame.Card; using Continentis.MainGame.Character; using Continentis.MainGame.Commands; using SLSFramework.General; namespace Continentis.Mods.Basic.Cards.Assassin { public class ExtremePain : CardLogicBase { public override void SetUpLogicComponents() { AddLogicComponent(); } public override CommandGroup PlayEffect(List targetList) { return ForEachTarget(targetList, target => Cmd.Parallel( new Cmd_PlayAnimation(user.characterView, "Attack"), new Cmd_PlaySFX("SFX_Basic_SwordStrike"), new Cmd_SpawnVFX("VFX_Basic_RedImpact"), Cmd.Do(() => AttackTarget(target, GetTargetedFinalDamage(target))) )); } public override int GetTargetedFinalDamage(CharacterBase target, AttackContext ctx = null) { var baseDamage = base.GetTargetedFinalDamage(target, ctx); var extraDamage = 0; if (target.combatBuffSubmodule.HasBuff()) { extraDamage = target.combatBuffSubmodule.GetBuff().unitedStackSubmodule.stackAmount; } return baseDamage + extraDamage; } public override void ApplyAttributeChangesByCard() { LogicComponent().SetDamage_Default(); } } }