Files
Continentis/Assets/Mods/Basic/Cards/Scripts/ObsoleteGeneral/WindBlade.cs
SoulliesOfficial 5fe665d0ce Card爆改!
2025-11-15 12:17:34 -05:00

48 lines
1.8 KiB
C#

using System.Collections.Generic;
using Continentis.MainGame.Card;
using Continentis.MainGame.Character;
using Continentis.MainGame.Commands;
using SLSFramework.General;
using UnityEngine;
namespace Continentis.Mods.Basic.Cards
{
public class WindBlade : CardLogicBase
{
public override void SetUpLogicComponents()
{
AddLogicComponent<CardLogicComponent_Attack>();
}
public override List<CommandBase> PlayEffect(List<CharacterBase> targetList)
{
base.PlayEffect(targetList);
CommandGroup mainGroup = TargetListCommandGroup(targetList,
new Cmd_PlayAnimation(user.characterView, "Attack"),
new Cmd_ParamFunction<CharacterBase>(0.2f, target => user.Attack(target, GetTargetedFinalDamage(target))));
return new List<CommandBase> { mainGroup };
}
public override void ApplyAttributeChangesByCard()
{
LogicComponent<CardLogicComponent_Attack>().SetDamage_Arcane();
}
public override int GetTargetedFinalDamage(CharacterBase target, List<string> elementalTags = null)
{
float baseDamageFromSuppress = 0;
if (target is CombatNPC npc && user.IsOpponent(npc))
{
baseDamageFromSuppress = npc.actionCountThisRound == 0 ? 4f : 0f;
}
base.GetFinalDamage(target, elementalTags, out float baseDamageAfterOffset, out float elementalAmplifier, out float magicAmplifier, out float finalAmplifier);
float finalDamage = (baseDamageAfterOffset + baseDamageFromSuppress) * elementalAmplifier * magicAmplifier * finalAmplifier;
return Mathf.RoundToInt(finalDamage);
}
}
}