除了充盈都做完了

This commit is contained in:
SoulliesOfficial
2025-10-31 10:02:30 -04:00
parent 5d09ef7b53
commit ee1d3d9c0a
179 changed files with 3239 additions and 200 deletions

View File

@@ -17,11 +17,14 @@ namespace Continentis.MainGame.Commands
private readonly List<CardInstance> cardsToDiscard;
private readonly float interval;
private readonly float singleCardAnimationDuration = 0.5f; // 单张卡牌的动画时长
private readonly bool isInitiative;
public Cmd_DiscardCards(DeckSubmodule deck, List<CardInstance> cards, float interval)
public Cmd_DiscardCards(DeckSubmodule deck, List<CardInstance> cards, bool isInitiative, float interval)
{
this.deck = deck;
this.cardsToDiscard = cards;
this.isInitiative = isInitiative;
this.interval = interval;
}
@@ -67,9 +70,19 @@ namespace Continentis.MainGame.Commands
private IObservable<Unit> DiscardCard(CardInstance card)
{
deck.TransferCard(deck.Pile(card.cardLocation.pileName), deck.DiscardPile, card);
card.cardLogic.eventSubmodule.onDiscard.Invoke();
if (isInitiative)
{
if (card.cardLogic.eventSubmodule.onInitiativeDiscard.GetChecks().Any()) // 如果主动弃牌后,有触发条件,则打断弃牌,直接触发效果
{
CommandQueueManager.Instance.AddCommand(new Cmd_Function(() =>
{
card.cardLogic.eventSubmodule.onInitiativeDiscard.GetEffects().ForEach(effect => effect.Invoke());
}));
return Observable.Return(Unit.Default);
}
}
deck.TransferCard(deck.Pile(card.cardLocation.pileName), deck.DiscardPile, card);
card.handCardView.TransferCardView(CombatUIManager.Instance.combatMainPage.discardPile);
RectTransform cardTransform = card.handCardView.cardTransform;

View File

@@ -68,7 +68,7 @@ namespace Continentis.MainGame.Commands
private IObservable<Unit> DiscardCard(CardInstance card)
{
deck.TransferCard(deck.Pile(card.cardLocation.pileName), deck.DrawPile, card);
card.cardLogic.eventSubmodule.onDiscard.Invoke();
//card.cardLogic.eventSubmodule.onInitiativeDiscard.Invoke();
card.handCardView.TransferCardView(CombatUIManager.Instance.combatMainPage.drawPile);

View File

@@ -39,7 +39,7 @@ namespace Continentis.MainGame.Commands
private IObservable<Unit> MoveCardToDrawPile(CardInstance card)
{
deck.TransferCard(deck.DiscardPile, deck.DrawPile, card);
card.cardLogic.eventSubmodule.onDiscard.Invoke();
//card.cardLogic.eventSubmodule.onInitiativeDiscard.Invoke();
card.handCardView.TransferCardView(CombatUIManager.Instance.combatMainPage.drawPile);