internal async Task DrawEventCard(Game game) { EventCard card = game.EventDeck[0]; game.EventDeck.Remove(card); AddEventCard(card); await game.EventSystem.Call(EventEnum.DrawEventCard, game.ActivePlayerSeat(), this, card); }
private async Task SetEventCard(Game game, ChooseDirectionResponse response) { if (SaveEvent != null) { await SaveEvent.Use(game, response); } SaveEvent = EventCards[0]; EventCards.RemoveAt(0); }
/// <summary> /// 失去一张事件卡 /// 注意没有进弃牌堆 /// </summary> /// <param name="game"></param> /// <param name="card"></param> /// <returns></returns> internal async Task DropEventCard(Game game, EventCard card) { if (card == SaveEvent) { //game.UsedEventDeck.Add(card); SaveEvent = null; } else { //game.UsedEventDeck.Add(card); EventCards.Remove(card); } card.Owner = null; }
internal Task UseEventCard(Game game, ChooseDirectionResponse response) { if (response.IfSet) { return(SetEventCard(game, response)); } else { //默认玩家手上一定是一张事件卡,有其他情况再改 EventCard card = EventCards.Find(c => c.Id == response.CardId); if (card != null) { return(card.Use(game, response)); } else { Log.Error("未找到卡片(" + response.CardId + ")"); return(Task.CompletedTask); } } }
void AddEventCard(EventCard card) { EventCards.Add(card); card.Owner = this; }