Esempio n. 1
0
    public void directFlightButtonClicked()
    {
        driveButton.GetComponent <Button>().interactable         = false;
        directFlightButton.GetComponent <Button>().interactable  = false;
        charterFlightButton.GetComponent <Button>().interactable = false;
        shuttleFlightButton.GetComponent <Button>().interactable = false;
        currentPlayer = game.getCurrentPlayer();
        City currentCity        = playerToMove.getPlayerPawn().getCity();
        List <PlayerCard> cards = currentPlayer.getHand();

        foreach (PlayerCard card in cards)
        {
            if (card.getType() == CardType.CityCard)
            {
                CityCard aCard = (CityCard)card;
                City     city  = aCard.getCity();
                if (city != currentCity)
                {
                    city.displayButton();
                }
            }
        }

        moveStatus = Status.DIRECTFLIGHT;
    }
Esempio n. 2
0
    public void initializePlayerDeck()
    {
        aPlayerDeck.Clear();
        List <GameObject> CityMap = GameObject.Find("CityHub").GetComponent <CityHub> ().CityNodeList;

        for (int i = 0; i < CityMap.Count; i++)
        {
            aPlayerDeck.Add(CityCard.get(CityMap [i]));
        }

        //TODO Add EventCards

        //Shuffling
        for (int i = 0; i < aPlayerDeck.Count; i++)
        {
            GameObject temp        = aPlayerDeck[i];
            int        randomIndex = Random.Range(i, aPlayerDeck.Count);
            aPlayerDeck[i]           = aPlayerDeck[randomIndex];
            aPlayerDeck[randomIndex] = temp;
        }

        //Add Epidemic Card
        int x = aPlayerDeck.Count / EpidemicCard.numberOfEC();

        for (int i = 0; i < EpidemicCard.numberOfEC(); i++)
        {
            int y = Random.Range(i * x, (i + 1) * x);
            aPlayerDeck.Insert(y + i, EpidemicCard.get(i));
        }
    }
Esempio n. 3
0
 void SignalReceiveKnowledge(int senderNumber, int receiverNumber, CityCard cc)
 {
     Debug.Log("Receiving the notification: " + LevelManager.instance.players[receiverNumber].aPlayerName);
     if (PhotonNetwork.player.ID - 1 == receiverNumber)
     {
         GameEngine clientBoard = GameObject.FindGameObjectWithTag("GameEngine").GetComponent <GameEngine>();
         clientBoard.uiManager.receiveKnowledgePlayerPanel.waiting.gameObject.SetActive(false);
         clientBoard.uiManager.receiveKnowledgePlayerPanel.OpenRespond(clientBoard.players[senderNumber], cc);
     }
 }
Esempio n. 4
0
 public IEnumerator onCharterFlight(int senderPlayer, CityNode dest, CityCard cc)
 {
     CityCard[] ccs = new CityCard[1];
     ccs[0] = cc;
     GetComponent <PhotonView>().RPC("discardFromPlayerHand", PhotonTargets.All, new object[] { senderPlayer, ccs });
     GetComponent <PhotonView>().RPC("MoveSelfPawn", PhotonTargets.All, new object[] { senderPlayer, dest });
     currentActionsRemaining -= 1;
     while (EventTransferManager.instance.waitingForPlayer)
     {
         yield return(new WaitForEndOfFrame());
     }
 }
Esempio n. 5
0
    public IEnumerator onBuildResearchStation(int senderPlayer, CityCard cc)
    {
        GameObject c = cc.getCityNode();

        GetComponent <PhotonView>().RPC("discardFromPlayerHand", PhotonTargets.All, new object[] { senderPlayer, cc });
        GetComponent <PhotonView>().RPC("BuildResearchStation", PhotonTargets.All, new object[] { c });
        currentActionsRemaining -= 1;
        numResearchStations     += 1;
        while (EventTransferManager.instance.waitingForPlayer)
        {
            yield return(new WaitForEndOfFrame());
        }
    }
Esempio n. 6
0
 public CityCard getCard(City c)
 {
     foreach (PlayerCard card in handCard)
     {
         if (card.getType() == CardType.CityCard)
         {
             CityCard aCard = (CityCard)card;
             if (aCard.getCity() == c)
             {
                 return(aCard);
             }
         }
     }
     return(null);
 }
Esempio n. 7
0
 public bool containsSpecificCityCard(City c)
 {
     foreach (PlayerCard card in handCard)
     {
         if (card.getType() == CardType.CityCard)
         {
             CityCard aCityCard = (CityCard)card;
             if (aCityCard.getCity() == c)
             {
                 return(true);
             }
         }
     }
     return(false);
 }
Esempio n. 8
0
    //初始化玩家牌堆
    public void InitplayerCardList()
    {
        //初始化48张城市卡到playercardlist里
        GameObject[]      citys         = GameObject.FindGameObjectsWithTag("City");
        List <GameObject> cityCardsList = new List <GameObject>(citys);

        toolHelper.Shuffle(cityCardsList);
        int i = 0;

        for (i = 0; i < 48; i++)
        {
            CityCard cityCard = new CityCard(cityCardsList[i].GetComponent <City>().name.text);
            playerCardList.Add(cityCard);
        }
        //初始化x张事件卡到playercardlist里根据是否玩otb版本
        //普通版的5张
        GameObject[]      eventCards     = GameObject.FindGameObjectsWithTag("EventCard");
        List <GameObject> eventCardsList = new List <GameObject>(eventCards);

        if (GameSetting.instance.chanllenges == Chanllenge.NULL)
        {
            for (int j = 0; j < 5; j++)
            {
                EventCard eventCard = new EventCard(eventCards[j].name);
                playerCardList.Add(eventCard);
            }
        }
        //OTB规定事件 实际事件卡数量为玩家数*2
        else
        {
            int               NoPlayers         = GameSetting.instance.noPlayers;
            GameObject[]      eventCardsOTBarr  = GameObject.FindGameObjectsWithTag("EventCardOTB"); //获取八张OTB事件卡array
            List <GameObject> eventCardsOTBlist = new List <GameObject>(eventCardsOTBarr);           //获取八张OTB事件卡list
            eventCardsOTBlist.AddRange(eventCardsList);                                              //获取共13张
            toolHelper.Shuffle(eventCardsOTBlist);                                                   //洗牌
            for (int j = 0; j < NoPlayers * 2; j++)
            {
                EventCard eventCardOTB = new EventCard(eventCardsOTBlist[j].name);
                // Debug.Log(eventCardOTB.eventCardName);
                playerCardList.Add(eventCardOTB);
            }
        }
        //初始化流行病卡
        if (GameSetting.instance.chanllenges == Chanllenge.NULL)
        {
        }
    }
Esempio n. 9
0
 public IEnumerator receiveOffer(int senderNumber, int receiverNumber, CityCard cc)
 {
     Debug.Log("Sending offer to: " + LevelManager.instance.players[receiverNumber].aPlayerName);
     GetComponent <PhotonView>().RPC("SignalReceiveKnowledge", PhotonTargets.All, new object[] { senderNumber, receiverNumber, cc });
     int[] waitingForPlayer = new int[1];
     waitingForPlayer[0] = receiverNumber;
     onWaitForPlayers(waitingForPlayer);
     for (int i = 0; i < playerChecks.Length; i++)
     {
         Debug.Log("playerChecks[" + i + "] = " + playerChecks[i]);
     }
     while (EventTransferManager.instance.waitingForPlayers)
     {
         Debug.Log("Waiting...");
         CheckIfPlayersReady();
         yield return(new WaitForEndOfFrame());
     }
 }
Esempio n. 10
0
 public void onReexaminedResearch(Player target, CityCard cc)   //NOT OK
 {
 }
Esempio n. 11
0
 public void dummyGet()
 {
     CityCard.get(CityNodeList [4]);
 }
Esempio n. 12
0
 public void dummyInitialize()
 {
     CityCard.initialize(CityNodeList);
     InfectionCard.initialize(CityNodeList);
     EpidemicCard.initialize(3);
 }
Esempio n. 13
0
 public void onReceiveKnowledgeOffer(CityCard cc, int senderNumber, int receiverNumber)
 {
     Debug.Log(LevelManager.instance.players[receiverNumber].aPlayerName + " want to receive the " + cc.name + " card from " + LevelManager.instance.players[senderNumber].aPlayerName);
     StartCoroutine(receiveOffer(senderNumber, receiverNumber, cc));
 }
 public ShareKnowledgeItem(Player giver, Player taker, CityCard cityCard)
 {
     Giver = giver;
     Taker = taker;
     CityCard = cityCard;
 }
 public ResearchStationConstructionItem(CityCard cityCard, Node constructionNode, Node deconstructionNode)
 {
     DeconstructionNode = deconstructionNode;
     ConstructionNode = constructionNode;
     CityCard = cityCard;
 }
    public GameData(Game game)
    {
        challenge             = game.getChallenge();
        currentGamePhase      = game.getCurrentPhase();
        currentPlayerRoleKind = game.getCurrentPlayer().getRoleKind();
        infectionRateIndex    = game.getInfectionIndex();
        outBreakRate          = game.getOutbreakRate();
        remainingResearch     = game.getRemainingResearch();
        seed = game.seed;
        BioTerroristVolunteer = game.BioTerroristVolunteer;
        currentPlayerIndex    = game.currentPlayerIndex;

        difficulity = game.nEpidemicCard;

        playerCardDeck       = game.getPlayerCardDeckString();
        playerDiscardPile    = game.getPlayerDiscardPileString();
        infectionCardDeck    = game.getInfectionDeckString();
        infectionDiscardPile = game.getInfectionDiscardPileString();
        allHandCards         = game.getAllHandCards();
        EpidemicCardIntList  = EpidemicCard.getEpidemicCard().getIntList();
        foreach (City city in game.getCities())
        {
            CityInfo cityInfo = new CityInfo(city);
            CityInfoList.Add(cityInfo);
        }

        foreach (KeyValuePair <Color, Disease> entry in game.getDiseases())
        {
            diseaseInfoList.Add(new DiseaseInfo(entry.Value));
        }

        foreach (Player player in game.getPlayers())
        {
            PlayerCardList playerHand = new PlayerCardList();
            mobileHospitalActivated.Add(player.getMobileHospitalActivated());
            if (player.getRoleKind() == RoleKind.ContingencyPlanner && player.getEventCardOnTopOfRoleCard() != null)
            {
                eventCardOnTopOfRoleCard = player.getEventCardOnTopOfRoleCard().getName();
            }
            if (player.getRoleKind() == RoleKind.FieldOperative)
            {
                FOcubes = player.getAllCubes();
            }
            hasCommercialTravelBanInfrontOfPlayer.Add(player.hasEventCardInFront());
            //CommercialTravelBanTurn.Add (player.getCommercialTravelBanTurn());
            roleKindList.Add(player.getRoleKind());
            foreach (PlayerCard pc in player.getHand())
            {
                if (pc.getType().Equals(CardType.CityCard))
                {
                    CityCard cityCard = (CityCard)pc;
                    playerHand.playerHand.Add(cityCard.getName());
                    //Debug.Log ("City Card: " + cityCard.getName());
                }
                else if (pc.getType().Equals(CardType.EventCard))
                {
                    EventCard eventCard = (EventCard)pc;
                    playerHand.playerHand.Add(eventCard.getName());
                    //Debug.Log ("Event Card: " + eventCard.getEventKind());
                }
                else
                {
                    InfectionCard infectionCard = (InfectionCard)pc;
                    playerHand.playerHand.Add((infectionCard.getName()));
                    //Debug.Log ("Event Card: " + infectionCard.getName());
                }
            }
            playerCardList.Add(playerHand);
        }
    }
Esempio n. 17
0
 public void onResilientPopulation(CityCard cc)
 {
 }
Esempio n. 18
0
 public void onEpidemiologistReceiveKnowledge(CityCard cc, Player sender)
 {
 }
 public CharterFlightItem(CityCard cityCard, Node node)
 {
     CityCard = cityCard;
     Node = node;
 }
Esempio n. 20
0
 public void takeCard(Player p1, Player p2, CityCard card)
 {
     displayRecord(p1.getRoleKind().ToString() + " took the City Card: " + card.getCity().getCityName().ToString() + " from " + p2.getRoleKind().ToString());
 }
 public DirectFlightItem(CityCard cityCard)
 {
     CityCard = cityCard;
 }
Esempio n. 22
0
 public void giveCard(Player p1, Player p2, CityCard card)
 {
     displayRecord(p1.getRoleKind().ToString() + " gave the City Card: " + card.getCity().getCityName().ToString() + " to " + p2.getRoleKind().ToString());
 }