40 lines
1.4 KiB
C#
40 lines
1.4 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 FightingInspiration : CardLogicBase
|
|
{
|
|
protected override void SetUpLogicComponents()
|
|
{
|
|
AddLogicComponent<CardLogicComponent_GenerateCards>().SetFilter(CardFilter);
|
|
}
|
|
|
|
protected override List<CommandBase> PlayEffect(List<CharacterBase> targetList)
|
|
{
|
|
base.PlayEffect(targetList);
|
|
|
|
CommandGroup mainGroup = new CommandGroup(ExecutionMode.Sequential);
|
|
mainGroup.AddCommand(new Cmd_PlayAnimation(user.characterView, "Skill"));
|
|
mainGroup.AddCommand(new Cmd_Function(() =>
|
|
{
|
|
List<CardData> filtered = LogicComponent<CardLogicComponent_GenerateCards>().GetFilteredGlobalCardData();
|
|
if(filtered.TryGetRandom(out CardData cardData))
|
|
{
|
|
CardInstance.GenerateCardInstance(cardData, user, "Hand").GenerateHandCardView("Hand");
|
|
}
|
|
}));
|
|
|
|
return new List<CommandBase> { mainGroup };
|
|
}
|
|
|
|
private bool CardFilter(CardData cardData)
|
|
{
|
|
return cardData.cardType == CardType.Attack && cardData.HasKeyword("Physics");
|
|
}
|
|
}
|
|
} |