// Use this for initialization void Start() { me = NetworkManager.Instance.InstantiateCardGamePlayer() as CardGamePlayer; Camera.main.transform.parent = me.transform; Camera.main.transform.localPosition = Vector3.zero; Camera.main.transform.localRotation = Quaternion.identity; }
internal void AddPlayer(CardGamePlayer cardGamePlayer) { if (networkObject.IsServer) { players.Add(cardGamePlayer); string namesString = ""; foreach (var player in players) { namesString += player.name + NAMES_SEPARATOR + player.networkObject.NetworkId + NAMES_SEPARATOR; } networkObject.SendRpc(RPC_CONNECT_RESULT, Receivers.Others, namesString); for (int i = 0; i < players.Count; i++) { var player = players[i]; player.transform.Rotate(0, 0, -player.transform.rotation.z); player.transform.Rotate(0, 0, i * 360 / players.Count); } } cardGamePlayer.nextChanged += Next; RefreshPlayerList(); }
public override async Task Play(CardGamePlayer initiatePlayer, CancellationToken token) { var player = (SimpleGamePlayer)initiatePlayer; var options = player.Cards.Cast <SimpleGameCard>().Where(item => item != null) .Select(item => Option.Create(item, item.Name, item.Description, item is ElementAttachmentCard == false || item.AvailablesWithElement(player) == false)) .ToArray(); var card = (ElementAttachmentCard)await initiatePlayer.PlayerHost.Console.Choose("请选择要使用的卡牌:", options, null, token); if (card == null) { throw new TimeoutException(); } card.WithElement(Element); try { await player.PlayCard(card, token); } catch (TimeoutException) { card.WithElement(null); throw; } }
public override async Task Play(CardGamePlayer initiatePlayer, CancellationToken token) { var player = (SimpleGamePlayer)initiatePlayer; var target = await CherryTarget(player, token); await UseCard(player, (SimpleGamePlayer)target, token); }
public abstract Action <CardGamePlayer>[] GetAvailableActions(CardGamePlayer player) { }