public GamePlayerData setPlayerData(bool isPlayerSide, P_Hero heroData, Dictionary <string, string> units, Dictionary <string, string> skills)
    {
        if (heroData == null)
        {
            return(null);
        }

        string[] u = new string[5];
        u[0] = units[UnitSlot.U1];
        u[1] = units[UnitSlot.U2];
        u[2] = units[UnitSlot.U3];
        u[3] = units[UnitSlot.U4];
        u[4] = units[UnitSlot.U5];

        string[] s = new string[3];
        s[0] = skills[SkillSlot.S1];
        s[1] = skills[SkillSlot.S2];
        s[2] = skills[SkillSlot.S3];

        GamePlayerData gpd = new GamePlayerData(heroData.name);

        DebugManager.instance.setPlayerData(gpd, isPlayerSide, heroData.name,
                                            heroData.selEqts[HeroParts.HEAD],
                                            heroData.selEqts[HeroParts.BODY],
                                            heroData.selEqts[HeroParts.WEAPON],
                                            heroData.selEqts[HeroParts.VEHICLE],
                                            u, s, DebugManager.instance.pvpAi);

        return(gpd);
    }
    private void refreshSlots()
    {
        if (string.IsNullOrEmpty(nowHero) || GameDataManager.instance.serverHeroData.ContainsKey(nowHero) == false)
        {
            Debug.LogError("Error!");
            return;
        }

        P_Hero heroData = GameDataManager.instance.serverHeroData[nowHero];

        partsSlots[0].setStringData(heroData.selEqts[HeroParts.HEAD], false);
        partsSlots[1].setStringData(heroData.selEqts[HeroParts.BODY], false);
        partsSlots[2].setStringData(heroData.selEqts[HeroParts.WEAPON], false);
        partsSlots[3].setStringData(heroData.selEqts[HeroParts.VEHICLE], false);

        foreach (UIHeroInventorySlot ps in partsSlots)
        {
            ps.slotType = BaseSlot.InventorySlotType.HeroInfoSlot;
        }

        int i = 0;

        foreach (string u in GameDataManager.instance.getSelectUnitRunes(nowHero))
        {
            if (string.IsNullOrEmpty(u))
            {
                summonSlots[i].setData(null);
            }
            else
            {
                GameIDData gd = new GameIDData();
                gd.parse(u, GameIDData.Type.Unit);
                summonSlots[i].setData(gd);
                summonSlots[i].slotType = BaseSlot.InventorySlotType.HeroInfoSlot;
            }

            ++i;
        }

        i = 0;
        foreach (string s in GameDataManager.instance.getSelectSkillRunes(nowHero))
        {
            if (string.IsNullOrEmpty(s))
            {
                skillSlots[i].setData(null);
            }
            else
            {
                GameIDData gd = new GameIDData();
                gd.parse(s, GameIDData.Type.Skill);
                skillSlots[i].setData(gd);
                skillSlots[i].slotType = BaseSlot.InventorySlotType.HeroInfoSlot;
            }
            ++i;
        }
    }
    void setData(P_Hero mainHero, P_Hero subHero,
                 Dictionary <string, string> mainUnit, Dictionary <string, string> mainSkill,
                 Dictionary <string, string> subUnit, Dictionary <string, string> subSkill)
    {
        _mainHero = mainHero;
        _subHero  = subHero;

        _leoUnits    = null;
        _leoSkills   = null;
        _chloeUnits  = null;
        _chloeSkills = null;
        _kileyUnits  = null;
        _kileySkills = null;

        switch (mainHero.name)
        {
        case Character.LEO:
            _leoUnits  = mainUnit;
            _leoSkills = mainSkill;
            break;

        case Character.CHLOE:
            _chloeUnits  = mainUnit;
            _chloeSkills = mainSkill;
            break;

        case Character.KILEY:
            _kileyUnits  = mainUnit;
            _kileySkills = mainSkill;
            break;
        }


        if (subHero != null)
        {
            switch (subHero.name)
            {
            case Character.LEO:
                _leoUnits  = subUnit;
                _leoSkills = subSkill;
                break;

            case Character.CHLOE:
                _chloeUnits  = subUnit;
                _chloeSkills = subSkill;
                break;

            case Character.KILEY:
                _kileyUnits  = subUnit;
                _kileySkills = subSkill;
                break;
            }
        }
    }
    public void myData()
    {
        show();

        _mainHero = GameDataManager.instance.serverHeroData[GameDataManager.instance.selectHeroId];

        _leoUnits  = GameDataManager.instance.selectUnitRunes[Character.LEO];
        _leoSkills = GameDataManager.instance.selectSkillRunes[Character.LEO];

        if (GameDataManager.instance.selectUnitRunes.TryGetValue(Character.KILEY, out _kileyUnits) == false)
        {
            _kileyUnits = null;
        }

        if (GameDataManager.instance.selectSkillRunes.TryGetValue(Character.KILEY, out _kileySkills) == false)
        {
            _kileySkills = null;
        }

        if (GameDataManager.instance.selectUnitRunes.TryGetValue(Character.CHLOE, out _chloeUnits) == false)
        {
            _chloeUnits = null;
        }

        if (GameDataManager.instance.selectSkillRunes.TryGetValue(Character.CHLOE, out _chloeSkills) == false)
        {
            _chloeSkills = null;
        }

        if (GameDataManager.instance.selectSubHeroId != null)
        {
            if (GameDataManager.instance.serverHeroData.TryGetValue(GameDataManager.instance.selectSubHeroId, out _subHero) == false)
            {
                _subHero = null;
            }
        }
        else
        {
            _subHero = null;
        }



        draw(GameDataManager.instance.maxAct,
             GameDataManager.instance.name,
             GameDataManager.instance.champLeague);

        btnVisit.gameObject.SetActive(false);
    }
    void setData(P_Hero mainHero, P_Hero subHero,
                 Dictionary <string, string> leoUnit, Dictionary <string, string> leoSkill,
                 Dictionary <string, string> kileyUnit, Dictionary <string, string> kileySkill,
                 Dictionary <string, string> chloeUnit, Dictionary <string, string> chloeSkill)
    {
        _mainHero = mainHero;
        _subHero  = subHero;

        _leoUnits    = leoUnit;
        _leoSkills   = leoSkill;
        _kileyUnits  = kileyUnit;
        _kileySkills = kileySkill;
        _chloeUnits  = chloeUnit;
        _chloeSkills = chloeSkill;
    }
    void parseSelectHero(P_Hero p)
    {
        if (p == null)
        {
            return;
        }
        if (heroes.ContainsKey(p.name) == false)
        {
            heroes.Add(p.name, new GamePlayerData(p.name));
        }

        heroes[p.name].level = level;

        heroes[p.name].setHead(p.selEqts[HeroParts.HEAD]);
        heroes[p.name].setBody(p.selEqts[HeroParts.BODY]);
        heroes[p.name].setWeapon(p.selEqts[HeroParts.WEAPON]);
        heroes[p.name].setVehicle(p.selEqts[HeroParts.VEHICLE]);

        serverHeroData[p.name] = p;
    }
    public void onCompleteReceivePlaySigong()
    {
        P_Sigong p = GameManager.me.uiManager.popupInstantDungeon.selectSigongData;

        if (p.roundId.StartsWith("PVP"))
        {
            DebugManager.instance.pvpPlayerData  = TestModeData.getTestModePlayerData(selectSigongData.roundId.Substring(4), false, "AI_PVP6");
            DebugManager.instance.pvpPlayerData2 = null;

            UIPlay.pvpleagueGrade = 6;

            UIPlay.pvpImageUrl    = DebugManager.instance.pvpPlayerData.id;
            UIPlay.playerImageUrl = PandoraManager.instance.localUser.image_url;

            GameManager.me.stageManager.setNowRound(GameManager.info.roundData["PVP"], GameType.Mode.Sigong);
        }
        else
        {
            GameManager.me.stageManager.setNowRound(GameManager.info.roundData[GameManager.me.uiManager.popupInstantDungeon.selectSigongData.roundId], GameType.Mode.Sigong);
        }

        GameManager.me.stageManager.sigongData = p;

        hide();

        GameManager.me.uiManager.showLoading();

        GamePlayerData gpd = null;

        if (string.IsNullOrEmpty(p.forcedDeck) == false)
        {
            if (p.forcedDeck == "HERO_SELECT")
            {
                gpd = selectHeroData;
            }
            else
            {
                gpd = TestModeData.getTestModePlayerData(p.forcedDeck, true, DebugManager.instance.ai, p.handicap);
            }
        }

        if (gpd == null)
        {
            if (string.IsNullOrEmpty(p.handicap) == false)
            {
                string heroId = GameDataManager.instance.selectHeroId;

                gpd = new GamePlayerData(heroId);

                P_Hero heroData = GameDataManager.instance.serverHeroData[GameDataManager.instance.selectHeroId];

                string[] u = new string[5];
                string[] s = new string[3];

                if (p.handicap == WSDefine.HANDICAP_TYPE_UNIT || p.handicap == WSDefine.HANDICAP_TYPE_BOTH)
                {
                    u[0] = string.Empty;
                    u[1] = string.Empty;
                    u[2] = string.Empty;
                    u[3] = string.Empty;
                    u[4] = string.Empty;
                }
                else
                {
                    u = GameDataManager.instance.getSelectUnitRunes(null);
                }

                if (p.handicap == WSDefine.HANDICAP_TYPE_SKILL || p.handicap == WSDefine.HANDICAP_TYPE_BOTH)
                {
                    s[0] = string.Empty;
                    s[1] = string.Empty;
                    s[2] = string.Empty;
                }
                else
                {
                    s = GameDataManager.instance.getSelectSkillRunes(null);
                }

                DebugManager.instance.setPlayerData(gpd, true,
                                                    heroData.name,
                                                    heroData.selEqts[HeroParts.HEAD],
                                                    heroData.selEqts[HeroParts.BODY],
                                                    heroData.selEqts[HeroParts.WEAPON],
                                                    heroData.selEqts[HeroParts.VEHICLE],
                                                    u,
                                                    s);
            }
        }

        GameManager.me.startGame(0.5f, gpd);
    }