Esempio n. 1
0
    public void Init(PlayerInfo[] allPlayerArr, List <CardInfo> allStoreCardList, PlayCardManager playCardManager)
    {
        // PlayerInfoHolder
        GUIHelper.Instance.DestroyChildImmediatly <PlayerInfoHolder> (layout_PlayerInfoParent);

        // Player
        string playerHolderName = "PlayerHolder";

        if (transform.FindChild(playerHolderName))
        {
            DestroyImmediate(transform.FindChild(playerHolderName).gameObject);
        }

        Transform playerHolder = new GameObject(playerHolderName).transform;

        playerHolder.parent = transform;

        for (int i = 0; i < allPlayerArr.Length; i++)
        {
            //new card list;
            List <CardInfo> newCardInfoList = new List <CardInfo> ();
            newCardInfoList.AddRange(allStoreCardList);

            //new player
            GameObject newPlayerGObj = Instantiate(playerPrefab.gameObject) as GameObject;
            newPlayerGObj.name             = allPlayerArr [i].playerName;
            newPlayerGObj.transform.parent = playerHolder;

            //new playerInfoHolder
            GameObject newPlayerInfoHolderGObj = Instantiate(playerInfoHolderPrefab.gameObject) as GameObject;
            newPlayerInfoHolderGObj.name = allPlayerArr [i].playerName;
            newPlayerInfoHolderGObj.transform.SetParent(layout_PlayerInfoParent, false);
            PlayerInfoHolder newPlayerInfoHolder = newPlayerInfoHolderGObj.GetComponent <PlayerInfoHolder> ();
            newPlayerInfoHolder.Init(allPlayerArr [i]);

            //new train position
            TrainConnection newStartTrainConnection = GameManager.Instance.gamePlayManager.trainCommander.GetRandomPlayerStartTrainConnection();
            //new item
            ItemInfo   newItemInfo   = GameManager.Instance.gamePlayManager.BasicItemInfoArr [3];
            ItemHolder newItemHolder = Instantiate(itemHolderPrefab);
            newItemHolder.SetItemInfo(newItemInfo);

            PlayerManager newPlayerManager = newPlayerGObj.GetComponent <PlayerManager> ();
            newPlayerManager.Init(i, allPlayerArr [i], newPlayerInfoHolder, newCardInfoList, playCardManager
                                  , newStartTrainConnection, newItemHolder);

            allPlayerDict.Add(i, newPlayerManager);
        }
    }