void HandleOnGameInitialized(List<INWPlayer> players) { if (players[0].PlayerID > players[1].PlayerID) { _player1Controller.SetPlayer(players[0]); _player2Controller.SetPlayer(players[1]); } else { _player2Controller.SetPlayer(players[0]); _player1Controller.SetPlayer(players[1]); } for (int i=0 ; i< players.Count; i++) { INWPlayer player = players[i]; PlayerController playerController = PlayerControllerForPlayer(player); playerController.SetPlayer(player); playerController.SetActivePlayer(false); if (player.PlayerID == _currentPlayer.PlayerID) { _currentPlayer = (NWPlayer)player; playerController.SetActivePlayer(true); playerController.OnCanPlayCard += HandleOnCanPlayCard; playerController.OnPlayCard += HandlePlayCard; playerController.OnPutCardInResource += HandleOnPutCardInResource; playerController.OnCanPutInResource += HandleOnCanPutCardInResources; playerController.OnEndTurn += HandleEndTurn; } foreach (NWCard cardData in player.Library.Cards) { if (_cardsInGame.ContainsKey(cardData)) { CardController card = _cardsInGame[cardData]; playerController.AddCard(card); } else { Debug.LogError("Could not get card: " + cardData.CardUniqueID + " for player: " + player.PlayerID); } } } ZoneControllerAbstract[] zones = FindObjectsOfType<ZoneControllerAbstract>(); for (int i=0 ; i < zones.Length; i++) { if (zones[i].Zone != null) { _zonesIngames.Add(zones[i].Zone, zones[i]); Debug.Log("added zone: " + zones[i].Zone.Type + " id: " + zones[i].Zone.ZoneID); } } }
IEnumerator StartGame() { while (!PhotonNetwork.connected) { yield return null; } // init the network manager INWNetworking networkManager = this.gameObject.GetComponent<INWNetworking>(); Debug.Log("connected"); // create the local player _currentPlayer = new NWPlayer(); _currentPlayer.PlayerName = "Test Player"; _currentPlayer.PlayerID = (int)Random.Range(1,1000); _currentPlayer.DeckCards = new int[30]{1,1,1,2,2,2,3,3,3,4,1,1,1,2,2,2,3,3,3,4,1,1,1,2,2,2,3,3,3,4}; // set the player in the server networkManager.SetPlayer(_currentPlayer); // start the game engine _netherWarsEngine = new NetherWarsEngine(networkManager, _currentPlayer); _netherWarsEngine.OnCardCreated += HandleOnCardCreated; _netherWarsEngine.OnGameInitialized += HandleOnGameInitialized; NWEventDispatcher.Instance().OnCardChangeZone += HandleOnCardChangeZone; NWEventDispatcher.Instance().OnStartTurn += HandleOnStartTurn; }
public void SetPlayer(INWPlayer player) { _player = (NWPlayer)player; _battlefieldContainer.SetZone(_player.Battlefield, _player); _libraryContainer.SetZone(_player.Library, _player); _handContainer.SetZone(_player.Hand, _player); _resourceZoneContainer.SetZone(_player.ResourcePool, _player); _battlefieldContainer.CanSeeCardsInZone = true; _libraryContainer.CanSeeCardsInZone = false; _resourceZoneContainer.CanSeeCardsInZone = true; }
public void OnPhotonPlayerConnected(PhotonPlayer newPlayer) { if (OnOtherPlayerJoined != null) { NWPlayer otherPlayer = new NWPlayer(); otherPlayer.PopulateWithData(newPlayer.customProperties); OnOtherPlayerJoined(otherPlayer); } }
private void StartTurn(NWPlayer player) { if (OnStartTurn != null) { OnStartTurn(player); } }
private void PutCardInResources(NWPlayer player, NWCard card) { if (OnPutCardInResources != null) { OnPutCardInResources(player, card); } }
private void PlayCard(NWPlayer player, NWCard card) { if (OnPlayCard != null) { OnPlayCard(player, card); } }
private void CardDraw(NWPlayer player, NWCard card) { if (OnCardDraw != null) { OnCardDraw(player, card); } }
public static NWEvent PutCardInResources(NWPlayer player, NWCard card) { Hashtable data = new Hashtable(); data.Add((int)eEventField.Card , card.CardUniqueID); data.Add((int)eEventField.Player, player.PlayerID); NWEvent eventObject = new NWEvent(NWEventType.PutCardInResource, data); return eventObject; }