Exemplo n.º 1
0
    private void SendTurnResultsToClients(AcePlayer attacker, AcePlayer defender, TurnResultMessage message)
    {
        //Send stuff back to clients
        var players = lobbyManager.GetParticipatingPlayers();

        for (int i = 0; i < players.Count; i++)
        {
            var currPlayer = players[i];
            if (currPlayer.playerName == attacker.playerName || currPlayer.playerName == defender.playerName)
            {
                NetworkServer.SendToClient(currPlayer.connectionID, AceMsgTypes.BattlePhase_TurnResult, message);
            }
        }

        message.attackerCard = -1;
        //If it's 0, leave it at 0 to make it clear to clients that there was no card
        if (message.defenderCard != 0)
        {
            message.defenderCard = -1;
        }

        for (int j = 0; j < players.Count; j++)
        {
            var currPlayer = players[j];
            if (currPlayer.playerName != attacker.playerName && currPlayer.playerName != defender.playerName)
            {
                NetworkServer.SendToClient(currPlayer.connectionID, AceMsgTypes.BattlePhase_TurnResult, message);
            }
        }
    }
Exemplo n.º 2
0
        public void AcePlayer_Ctor()
        {
            const string playerId = "aPlayerId";
            const string ctrlType = AcePlayer.AiCtrl;
            const string peerId   = "aPeerId";
            const string name     = "aName";

            AcePlayer pl = new AcePlayer(playerId, ctrlType, name, peerId);

            Assert.That(pl, Is.Not.Null);
            Assert.That(pl.PeerId, Is.EqualTo(peerId));
            Assert.That(pl.CtrlType, Is.EqualTo(ctrlType));
            Assert.That(pl.Name, Is.EqualTo(name));
            Assert.That(pl.Team, Is.EqualTo(PlaneColor.kNone));
        }
Exemplo n.º 3
0
    private int GetCardAtPosition(AcePlayer player, int cardPosition, bool attacker)
    {
        if (cardPosition < 0)
        {
            return(-7);
        }

        if (attacker)
        {
            return(player.attackField[cardPosition]);
        }
        else
        {
            return(player.defenseField[cardPosition]);
        }
    }
Exemplo n.º 4
0
        public void AcePlayer_Serialize()
        {
            const string playerId     = "aPlayerId";
            const string ctrlType     = AcePlayer.AiCtrl;
            const string peerId       = "aPeerId";
            const string name         = "aName";
            const bool   isMissing    = false;
            string       isMissingStr = JsonConvert.SerializeObject(isMissing); // (string)isMissing results in "False" which is not what we want

            string expected = "[\"" + playerId + "\",\"" + ctrlType + "\",\"" + name + "\",\"" + peerId + "\"," + (int)PlaneColor.kNone + "," + isMissingStr + "]";

            AcePlayer pl     = new AcePlayer(playerId, ctrlType, name, peerId);
            string    result = pl.ApianSerialized();

            Assert.That(result, Is.EqualTo(expected));
        }
Exemplo n.º 5
0
        public void AcePlayer_Deserialize()
        {
            const string playerId     = "aPlayerId";
            const string ctrlType     = AcePlayer.LocalPlayerCtrl;
            const string peerId       = "aPeerId";
            const string name         = "aName";
            const bool   isMissing    = false;
            string       isMissingStr = JsonConvert.SerializeObject(isMissing); // (string)isMissing results in "False" which is not what we want

            string json = "[\"" + playerId + "\",\"" + ctrlType + "\",\"" + name + "\",\"" + peerId + "\"," + (int)PlaneColor.kRed + "," + isMissingStr + "]";

            AcePlayer pl = AcePlayer.FromApianJson(json);

            Assert.That(pl.PlayerId, Is.EqualTo(playerId));
            Assert.That(pl.PeerId, Is.EqualTo(peerId));
            Assert.That(pl.Name, Is.EqualTo(name));
            Assert.That(pl.Team, Is.EqualTo(PlaneColor.kRed));
        }
Exemplo n.º 6
0
    public List <AcePlayer> GetParticipatingPlayers()
    {
        if (participatingPlayers != null)
        {
            return(participatingPlayers);
        }

        List <AcePlayer> players = new List <AcePlayer>();

        foreach (ConnectedPlayer player in connectedClients)
        {
            if (player.isPlayer)
            {
                var acePlayer = new AcePlayer(player.id, player.name);
                players.Add(acePlayer);
            }
        }
        participatingPlayers = players;

        return(participatingPlayers);
    }
Exemplo n.º 7
0
    public List <AcePlayer> GetParticipatingPlayers()
    {
        if (participatingPlayers != null)
        {
            return(participatingPlayers);
        }

        List <AcePlayer> players = new List <AcePlayer>();

        /*int playerCount = 0;
         * connectedClients.ForEach(x => { if (x.isPlayer) playerCount++; });
         *
         * //Create dummies
         * for (int i = 0; i < playerCount; i++) {
         *      players.Add(new AcePlayer(-1, ""));
         * }
         *
         *
         * for (int i = 0; i < playerCount; i++) {
         *      if (connectedClients[i].isPlayer) {
         *
         *      }
         *
         * }*/

        foreach (ConnectedPlayer player in connectedClients)
        {
            if (player.isPlayer)
            {
                var acePlayer = new AcePlayer(player.id, player.name);
                players.Add(acePlayer);
            }
        }
        participatingPlayers = players;

        return(participatingPlayers);
    }
Exemplo n.º 8
0
    /// <summary>
    /// Gets the cards total strength, including any active bonus effects on the field.
    /// </summary>
    private int GetCardStrength(AcePlayer player, int cardID, bool attacker)
    {
        int bonus = player.GetBonusEffects(attacker);

        return(GetCardAtPosition(player, cardID, attacker) + bonus);
    }
Exemplo n.º 9
0
    private IEnumerator RefreshFields(GameObject field, AcePlayer player)
    {
        var state = true;

        while (state)
        {
            yield return(new WaitForSeconds(0.2f));

            if (!player.hasAce)
            {
                if (field.transform.GetChild(4).transform.childCount > 0)
                {
                    Destroy(field.transform.GetChild(4).transform.GetChild(0).gameObject);
                    NukeField(field);
                }
                state = false;
                yield return(null);
            }

            var name = field.transform.GetChild(0).GetComponent <TMPro.TextMeshProUGUI>();
            name.text = player.playerName;

            for (int i = 0; i < player.CardsAttackCount(); i++)
            {
                var attack = field.transform.GetChild(1).transform;
                var card   = Instantiate(cardPrefab, attack).GetComponent <CardDisplay>();
                card.ForceFlipCard();
            }

            for (int j = 0; j < player.CardsDefenseCount(); j++)
            {
                var defense = field.transform.GetChild(2).transform;
                var card    = Instantiate(cardPrefab, defense).GetComponent <CardDisplay>();
                card.transform.rotation = Quaternion.Euler(0, 0, 90);
                card.ForceFlipCard();
            }

            for (int k = 0; k < player.CardsBonusCount(); k++)
            {
                var attack = field.transform.GetChild(3).transform;
                var card   = Instantiate(cardPrefab, attack).GetComponent <CardDisplay>();
                if (player.bonusField[k, 1] == 0)
                {
                    card.SetCard(player.bonusField[k, 0]);
                }
                else
                {
                    card.ForceFlipCard();
                }
            }

            //Debug.Log("aaaaaaaa2 " + player.hand.Count);
            for (int c = 0; c < player.hand.Count; c++)
            {
                var card = Instantiate(cardPrefab, field.transform.GetChild(5).transform).GetComponent <CardDisplay>();
                card.ForceFlipCard();
            }

            state = false;
            yield return(null);
        }

        yield return(null);
    }
Exemplo n.º 10
0
 private void UpdateFields(GameObject field, AcePlayer player)
 {
     NukeField(field);
     StartCoroutine(RefreshFields(field, player));
 }