public static CharInfo GetCharInfo(WUnitData troopData)
    {
        var stats = new BattleObjStats(
            troopData.health, troopData.max_health, troopData.attack, troopData.shield, troopData.max_shield);

        CharInfo chInf = new CharInfo(
            troopData.moniker, stats, CharInfoHelper.GetCharacterSpells(troopData.moniker),
            troopData.dexterity, 0, troopData.level,
            troopData.id, troopData.cool_down_remaining_seconds, troopData.quantity,
            GetNextUpgradeStats(troopData.next_upgrade_stats), troopData.ownerMoniker);

        chInf.SetOtherStats(troopData.critical_ratio,
                            troopData.critical_chance,
                            troopData.miss_chance);

        //chInf.SetUnlockData(troopData.used_status, troopData.unlock_league, troopData.unlock_league_step_number);
        chInf.SetUnlockData(WCharExistenceType.unlock, troopData.unlock_league, troopData.unlock_league_step_number);

        return(chInf);
    }
    public static HeroInfo GetHeroInfo(WHeroData heroData)
    {
        var stats = new BattleObjStats(
            heroData.health, heroData.max_health, heroData.attack, heroData.shield, heroData.max_shield);

        HeroInfo hInfo = new HeroInfo(
            heroData.moniker, stats, CharInfoHelper.GetCharacterSpells(heroData.moniker),
            heroData.dexterity, 0, heroData.level, heroData.id, 0,
            heroData.quantity, GetNextUpgradeStats(heroData.next_upgrade_stats));

        hInfo.SetOtherStats(heroData.critical_ratio,
                            heroData.critical_chance,
                            heroData.miss_chance);

        hInfo.SetChakra(heroData.chakra, GetCharacterSpells(heroData.chakra.chakra_moniker));

        hInfo.SetIsSelectedHero(heroData.selected_hero);

        hInfo.SetHeroItems(heroData.items);

        return(hInfo);
    }