卡牌更新
This commit is contained in:
@@ -9,12 +9,16 @@ using SLSFramework.General;
|
||||
namespace Continentis.Mods.Basic.Cards
|
||||
{
|
||||
/// <summary>
|
||||
/// 沙暴:对全体敌人造成多段伤害,并附加致盲 Buff。
|
||||
/// 沙暴:对全体敌人造成多段土属性伤害,并施加目盲 Buff。
|
||||
/// AOE 范围由卡牌数据的目标配置决定,动画只播放一次。
|
||||
/// </summary>
|
||||
public class SandStorm : CardLogicBase
|
||||
{
|
||||
private AttackContext EarthCtx => AttackContext.Default(card).WithDamageKeywords("Earth");
|
||||
private const string ATTACK_COUNT = "Attack_Count";
|
||||
private const string BUFF_BLIND_COUNT = "Buff_Blind_Count";
|
||||
|
||||
private AttackContext EarthCtx => AttackContext.Default(card)
|
||||
.WithDamageKeywords(CardKeywords.Earth);
|
||||
|
||||
public override void SetUpLogicComponents()
|
||||
{
|
||||
@@ -23,39 +27,38 @@ namespace Continentis.Mods.Basic.Cards
|
||||
|
||||
public override CommandGroup PlayEffect(List<CharacterBase> targetList)
|
||||
{
|
||||
int hitCount = GetAttribute("HitCount");
|
||||
|
||||
int hitCount = GetAttribute(ATTACK_COUNT);
|
||||
|
||||
CommandGroup hitsGroup = Cmd.Sequential();
|
||||
for (int i = 0; i < hitCount; i++)
|
||||
{
|
||||
hitsGroup.AddCommand(Cmd.After(0.5f, () =>
|
||||
{
|
||||
AttackContext ctx = EarthCtx;
|
||||
foreach (CharacterBase target in targetList)
|
||||
{
|
||||
AttackTarget(target, GetTargetedFinalDamage(target), EarthCtx);
|
||||
AttackTarget(target, GetTargetedFinalDamage(target, ctx), ctx);
|
||||
}
|
||||
}));
|
||||
}
|
||||
|
||||
int blindCount = GetAttribute("Buff_Blind_Count");
|
||||
CommandGroup debuffGroup = Cmd.Sequential(Cmd.Do(() =>
|
||||
{
|
||||
foreach (CharacterBase target in targetList)
|
||||
{
|
||||
CreateCharacterBuff<Blind>(blindCount).Apply(target, user);
|
||||
}
|
||||
}));
|
||||
|
||||
return Cmd.Sequential(
|
||||
new Cmd_PlayAnimation(user.characterView, "Attack"),
|
||||
hitsGroup,
|
||||
debuffGroup
|
||||
Cmd.Do(() =>
|
||||
{
|
||||
int blindCount = GetAttribute(BUFF_BLIND_COUNT);
|
||||
foreach (CharacterBase target in targetList)
|
||||
{
|
||||
CreateCharacterBuff<Blind>(blindCount).Apply(target, user, this);
|
||||
}
|
||||
})
|
||||
);
|
||||
}
|
||||
|
||||
public override void ApplyAttributeChangesByCard()
|
||||
{
|
||||
LogicComponent<CardLogicComponent_Attack>().SetDamage_Arcane();
|
||||
LogicComponent<CardLogicComponent_Attack>().SetDamage_Magic();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user