/* * Set up event triggers for available cities for Take Direct Flight * To be used whenever takeDirectFlight is called */ private void setupEventsForTakeDirectFlight() { // Remove all existing Event Triggers on cities GameScript gameScript = currentGame.GetComponent <GameScript> (); // Get the hand of the current Player List <PlayerCardScript> currentHand = this.getHand(); /* For each City Card in the Player's Hand, get the corresponding City * Attach an event trigger to each City */ foreach (PlayerCardScript cardScript in currentHand) { if (cardScript.GetType() is PlayerCityCardScript) { PlayerCityCardScript cityCardScript = (PlayerCityCardScript)cardScript; GameObject city = cityCardScript.getCity(); EventTrigger trigger = city.GetComponent <EventTrigger> (); EventTrigger.Entry entry = new EventTrigger.Entry(); entry.eventID = EventTriggerType.PointerClick; //entry.callback.AddListener ( (c) => {this.takeDirectFlight(city);} ); EventTrigger.Entry newTurnEntry = new EventTrigger.Entry(); newTurnEntry.eventID = EventTriggerType.PointerClick; newTurnEntry.callback.AddListener((c) => { gameScript.nextTurn(); }); trigger.triggers.Add(entry); trigger.triggers.Add(newTurnEntry); } } }
// Use this for initialization void Start() { // Maybe should move this to another method for initialization cities = GameObject.FindGameObjectsWithTag("City"); // Add every role in roleGame so we can choose from them when initializing a player foreach (Role role in PandemicEnum.Role.GetValues(typeof(Role))) { RoleScript newRole = new RoleScript(); newRole.setRole(role); gameRole.Add(newRole); } // Add every cityCard in player deck playerDeck = new Deck(); for (int i = 0; i < cities.Length; i++) { PlayerCityCardScript cityCard = new PlayerCityCardScript(); int population = cities[i].GetComponent <CityScript>().getPopulation(); cityCard.init(cities[i], population); playerDeck.insert(cityCard); } foreach (PhotonPlayer player in PhotonNetwork.otherPlayers) //fill in player list { playersInGame.Add(player.NickName); } roomname = PhotonNetwork.room.Name; //get room name //setupBaseGame (); }