Beispiel #1
0
 // 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;
 }
Beispiel #2
0
    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();
    }
Beispiel #3
0
        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;
            }
        }
Beispiel #4
0
        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);
        }
Beispiel #5
0
 public abstract Action <CardGamePlayer>[] GetAvailableActions(CardGamePlayer player)
 {
 }