到IronWall
This commit is contained in:
@@ -22,6 +22,7 @@ namespace Continentis.MainGame.Character
|
||||
piles.Add("Draw", new List<CardInstance>());
|
||||
piles.Add("Discard", new List<CardInstance>());
|
||||
piles.Add("Exhaust", new List<CardInstance>());
|
||||
piles.Add("Grave", new List<CardInstance>());
|
||||
piles.Add("Pool", new List<CardInstance>());
|
||||
piles.Add("Intention", new List<CardInstance>());
|
||||
}
|
||||
@@ -84,35 +85,98 @@ namespace Continentis.MainGame.Character
|
||||
{
|
||||
card.cardLogic.Play(targetList, owner);
|
||||
}
|
||||
|
||||
public void DiscardCard(CardInstance card, float interval = 0.1f)
|
||||
{
|
||||
CommandQueueManager.Instance.AddCommand(new Cmd_DiscardCards(card.deck, new List<CardInstance> { card }, interval));
|
||||
}
|
||||
|
||||
public void DiscardCards(List<CardInstance> cards, float interval = 0.1f)
|
||||
public CommandGroup DiscardCard(CardInstance card, float interval = 0.1f)
|
||||
{
|
||||
CommandContext context = new CommandContext();
|
||||
CommandGroup discardCardGroup = new CommandGroup(ExecutionMode.Sequential, context,
|
||||
new Cmd_DiscardCards(card.deck, new List<CardInstance>() { card }, interval),
|
||||
new Cmd_Function(0, () =>
|
||||
{
|
||||
//Debug.Log((context.sharedInfo["DrawnCards"] as List<CardInstance>).Count); //TODO: 弃牌后的处理
|
||||
}));
|
||||
|
||||
return discardCardGroup;
|
||||
}
|
||||
|
||||
public CommandGroup DiscardCards(List<CardInstance> cards, float interval = 0.1f)
|
||||
{
|
||||
Dictionary<DeckSubmodule, List<CardInstance>> groupedCards = cards.GroupBy(card => card.deck)
|
||||
.ToDictionary(group => group.Key, group => group.ToList());
|
||||
CommandContext context = new CommandContext();
|
||||
CommandGroup discardCardGroup = new CommandGroup(ExecutionMode.Sequential, context);
|
||||
foreach (var kvp in groupedCards)
|
||||
{
|
||||
CommandQueueManager.Instance.AddCommand(new Cmd_DiscardCards(kvp.Key, kvp.Value, interval));
|
||||
discardCardGroup.AddCommand(new Cmd_DiscardCards(kvp.Key, kvp.Value, interval));
|
||||
}
|
||||
discardCardGroup.AddCommand(new Cmd_Function(0, () =>
|
||||
{
|
||||
//Debug.Log((context.sharedInfo["DrawnCards"] as List<CardInstance>).Count); //TODO: 弃牌后的处理
|
||||
}));
|
||||
|
||||
return discardCardGroup;
|
||||
}
|
||||
|
||||
public void ExhaustCard(CardInstance card, float interval = 0.1f)
|
||||
public CommandGroup ExhaustCard(CardInstance card, float interval = 0.1f)
|
||||
{
|
||||
CommandQueueManager.Instance.AddCommand(new Cmd_ExhaustCards(owner is PlayerHero, card.deck, new List<CardInstance> { card }, interval));
|
||||
CommandContext context = new CommandContext();
|
||||
CommandGroup discardCardGroup = new CommandGroup(ExecutionMode.Sequential, context,
|
||||
new Cmd_ExhaustCards(owner is PlayerHero, card.deck, new List<CardInstance>() { card }, interval),
|
||||
new Cmd_Function(0, () =>
|
||||
{
|
||||
//Debug.Log((context.sharedInfo["DrawnCards"] as List<CardInstance>).Count); //TODO: 消耗牌后的处理
|
||||
}));
|
||||
|
||||
return discardCardGroup;
|
||||
}
|
||||
|
||||
public void ExhaustCards(List<CardInstance> cards, float interval = 0.1f)
|
||||
public CommandGroup ExhaustCards(List<CardInstance> cards, float interval = 0.1f)
|
||||
{
|
||||
Dictionary<DeckSubmodule, List<CardInstance>> groupedCards = cards.GroupBy(card => card.deck)
|
||||
.ToDictionary(group => group.Key, group => group.ToList());
|
||||
CommandContext context = new CommandContext();
|
||||
CommandGroup discardCardGroup = new CommandGroup(ExecutionMode.Sequential, context);
|
||||
foreach (var kvp in groupedCards)
|
||||
{
|
||||
CommandQueueManager.Instance.AddCommand(new Cmd_ExhaustCards(owner is PlayerHero, kvp.Key, kvp.Value, interval));
|
||||
discardCardGroup.AddCommand(new Cmd_ExhaustCards(owner is PlayerHero, kvp.Key, kvp.Value, interval));
|
||||
}
|
||||
discardCardGroup.AddCommand(new Cmd_Function(0, () =>
|
||||
{
|
||||
//Debug.Log((context.sharedInfo["DrawnCards"] as List<CardInstance>).Count); //TODO: 弃牌后的处理
|
||||
}));
|
||||
|
||||
return discardCardGroup;
|
||||
}
|
||||
|
||||
public CommandGroup UsePowerCard(CardInstance card, float interval = 0.1f)
|
||||
{
|
||||
CommandContext context = new CommandContext();
|
||||
CommandGroup discardCardGroup = new CommandGroup(ExecutionMode.Sequential, context,
|
||||
new Cmd_UsePowerCards(owner is PlayerHero, card.deck, new List<CardInstance>() { card }, interval),
|
||||
new Cmd_Function(0, () =>
|
||||
{
|
||||
//Debug.Log((context.sharedInfo["DrawnCards"] as List<CardInstance>).Count); //TODO: 消耗牌后的处理
|
||||
}));
|
||||
|
||||
return discardCardGroup;
|
||||
}
|
||||
|
||||
public CommandGroup UsePowerCards(List<CardInstance> cards, float interval = 0.1f)
|
||||
{
|
||||
Dictionary<DeckSubmodule, List<CardInstance>> groupedCards = cards.GroupBy(card => card.deck)
|
||||
.ToDictionary(group => group.Key, group => group.ToList());
|
||||
CommandContext context = new CommandContext();
|
||||
CommandGroup discardCardGroup = new CommandGroup(ExecutionMode.Sequential, context);
|
||||
foreach (var kvp in groupedCards)
|
||||
{
|
||||
discardCardGroup.AddCommand(new Cmd_UsePowerCards(owner is PlayerHero, kvp.Key, kvp.Value, interval));
|
||||
}
|
||||
discardCardGroup.AddCommand(new Cmd_Function(0, () =>
|
||||
{
|
||||
//Debug.Log((context.sharedInfo["DrawnCards"] as List<CardInstance>).Count); //TODO: 弃牌后的处理
|
||||
}));
|
||||
|
||||
return discardCardGroup;
|
||||
}
|
||||
|
||||
public void ReshuffleDeck(float interval = 0.1f)
|
||||
@@ -189,6 +253,7 @@ namespace Continentis.MainGame.Character
|
||||
public List<CardInstance> DrawPile => Pile("Draw");
|
||||
public List<CardInstance> DiscardPile => Pile("Discard");
|
||||
public List<CardInstance> ExhaustPile => Pile("Exhaust");
|
||||
public List<CardInstance> GravePile => Pile("Grave");
|
||||
public List<CardInstance> PoolPile => Pile("Pool");
|
||||
public List<CardInstance> IntentionPile => Pile("Intention");
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user