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); } } }
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)); }
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]); } }
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)); }
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)); }
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); }
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); }
/// <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); }
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); }
private void UpdateFields(GameObject field, AcePlayer player) { NukeField(field); StartCoroutine(RefreshFields(field, player)); }