void OnPlayCard(Player player, CBPlayCard msg) { if (m_whosTurn != player) { Logger.LogError("{0}\t出牌,但不是他的回合,已禁止!", player.name); return; } if (m_isThisTrunPlayedCard) { return; } m_isThisTrunPlayedCard = true; var card = GetCard(msg.CardID); player.RemoveCard(card); var target = GetPlayer(msg.TargetID); if (msg.Extend > 0) { if (target != null) { Logger.Log("{0}\t出牌\t{1}\t指向\t{2}\tExt\t{3}", player.name, card.table.effect, target.name, msg.Extend); } else { Logger.Log("{0}\t出牌\t{1}\tExt\t{2}", player.name, card.table.effect, msg.Extend); } } else { if (target != null) { Logger.Log("{0}\t出牌\t{1}\t指向\t{2}", player.name, card.table.effect, target.name); } else { Logger.Log("{0}\t出牌\t{1}", player.name, card.table.effect); } } CBPlayCardSync sync = new CBPlayCardSync(); sync.FromID = player.id; sync.TargetID = msg.TargetID; sync.CardID = card.id; sync.Extend = msg.Extend; SendToAll(sync); float waitFor = CardEffectLogic(player, target, card, msg.Extend); Task.WaitFor(waitFor, () => { TurnNextAndSendCard(); }); }
void OnPlayCardSync(CBPlayCardSync msg) { var card = room.GetCard(msg.CardID); var player = room.GetPlayer(msg.FromID); player.RemoveCard(card); SendEvent(EventDef.SOS.PlayCard, msg); }