Exemplo n.º 1
0
    public override bool PageSwitchEventEnableBefore(bool bBack = false)
    {
        bool bEnable = base.PageSwitchEventEnableBefore();

        // アセットバンドルの読み込み
        if (!m_bStartLoadImg)
        {
            m_bStartLoadImg = true;
            uint   currentHeroID = MasterDataUtil.GetCurrentHeroID();
            string assetname     = string.Format("tex_hero_perform_l_{0:D4}", currentHeroID);
            AssetBundler.Create().Set(string.Format("hero_{0:D4}", currentHeroID), assetname, (o) =>
            {
                Texture2D texture = o.GetTexture2D(assetname, TextureWrapMode.Clamp);
                if (texture != null)
                {
                    m_HeroImage      = Sprite.Create(texture, new Rect(0, 0, texture.width, texture.height), Vector2.zero);
                    m_HeroImage_mask = o.GetTexture(assetname + "_mask", TextureWrapMode.Clamp);
                }
                if (m_HomeMenu != null)
                {
                    m_HomeMenu.HeroImage      = m_HeroImage;
                    m_HomeMenu.HeroImage_mask = m_HeroImage_mask;
                }
                m_bEndLoadImg = true;
            }, (s) =>
            {
                m_bEndLoadImg = true;
            }).Load();
        }

#if false//トピック情報を表示するボタンは削除されたので情報取得APIもコメントアウトする。
        if (!m_bStartApi)
        {
            ServerDataUtilSend.SendPacketAPI_GetTopicInfo()
            .setSuccessAction(_data =>
            {
                m_RecvData = _data.GetResult <RecvGetTopicInfo>().result.Clone <RecvGetTopicInfoValue>();
                m_bEndApi  = true;
            })
            .SendStart();
            m_bStartApi = true;
        }
        bEnable = !m_bEndApi && !m_bEndLoadImg;
#else
        bEnable = !m_bEndLoadImg;
#endif
        return(bEnable);
    }
Exemplo n.º 2
0
    public static void cacheBattleUnitTexture()
    {
        if (BattleParam.m_PlayerParty != null)
        {
            CharaOnce[] player_party_members = BattleParam.m_PlayerParty.getPartyMembers(CharaParty.CharaCondition.EXIST);
            for (int idx = 0; idx < player_party_members.Length; idx++)
            {
                CharaOnce player_party_member = player_party_members[idx];
                BattleUnitTextureCache.Instance.loadTexture((int)player_party_member.m_CharaMasterDataParam.fix_id, false);
                if (player_party_member.m_LinkParam != null &&
                    player_party_member.m_LinkParam.m_cCharaMasterDataParam != null
                    )
                {
                    BattleUnitTextureCache.Instance.loadTexture((int)player_party_member.m_LinkParam.m_cCharaMasterDataParam.fix_id, false);
                }
            }
        }

        if (BattleParam.m_EnemyParam != null)
        {
            for (int idx = 0; idx < BattleParam.m_EnemyParam.Length; idx++)
            {
                BattleEnemy battle_enemy = BattleParam.m_EnemyParam[idx];
                if (battle_enemy != null)
                {
                    MasterDataParamChara enemy_chara = battle_enemy.getMasterDataParamChara();
                    if (enemy_chara != null)
                    {
                        BattleUnitTextureCache.Instance.loadTexture((int)enemy_chara.fix_id, false);
                    }
                }
            }
        }

        // 主人公の画像をキャッシュ
        int current_hero_id = (int)MasterDataUtil.GetCurrentHeroID();

        BattleUnitTextureCache.Instance.loadTexture(-current_hero_id, false);
    }
Exemplo n.º 3
0
    /// <summary>
    /// パーティ詳細情報の変更
    /// </summary>
    void CreatePartyParam()
    {
        PacketStructUnit[][] partys = UserDataAdmin.Instance.m_StructPartyAssign;
        m_PartyParamPanel.m_CurrentIndex = m_UnitPartyCurrent;
        m_PartyParamPanel.PartyParams.Clear();
        m_PartyParamPanel.OnChangedPartyParamAction = OnChangedPartyParam;
        List <MasterDataParamChara> charaMasterList = MasterFinder <MasterDataParamChara> .Instance.FindAll();

        m_partyPanels.Clear();

        for (int i = 0; i < partys.Length; ++i)
        {
            int index           = i;
            var partyPanelModel = new PartyParamListItemModel((uint)index);

            PartyParamListItemContext   paertParam = new PartyParamListItemContext(partyPanelModel);
            PartySelectGroupUnitContext party      = m_PartySelectGroup.GetParty(i);


            m_partyPanels.Add(partyPanelModel);

            //--------------------------------------------
            // パーティ情報
            //--------------------------------------------
            if (m_PartyParamPanel != null)
            {
                CharaUtil.setupCharaParty(ref paertParam.PartyInfo, party.PartyData); // パーティ情報の設定
                paertParam.NameText = string.Format(GameTextUtil.GetText("questlast_text7"), party.Index + 1);
                paertParam.CostText = string.Format(GameTextUtil.GetText("questlast_text5"), paertParam.PartyInfo.m_PartyTotalCost
                                                    , UserDataAdmin.Instance.m_StructPlayer.total_party);                              // Cost
                paertParam.CharmText = string.Format(GameTextUtil.GetText("questlast_text6"), paertParam.PartyInfo.m_PartyTotalCharm); // CHARM
            }

            //-------------------------
            // ユニット設定
            //-------------------------
            List <PartyMemberUnitContext> unitList = new List <PartyMemberUnitContext>();
            int unitDataIndex = 0;
            for (int pt_count = 0; pt_count < party.PartyData.Length; ++pt_count)
            {
                PacketStructUnit unitData = party.PartyData[pt_count];
                PacketStructUnit linkData = party.PartyLinkData[pt_count];

                var unitDataModel           = new PartyMemberUnitListItemModel((uint)unitDataIndex++);
                PartyMemberUnitContext unit = new PartyMemberUnitContext(unitDataModel);
                unit.IsActiveStatus    = true;
                unit.IsActiveParamText = true;
                if (unitData != null)
                {
                    unit.CharaMaster = charaMasterList.Find((v) => v.fix_id == unitData.id);
                    UnitIconImageProvider.Instance.Get(
                        unitData.id,
                        sprite =>
                    {
                        unit.UnitImage = sprite;
                    });
                    unit.UnitData = unitData;
                    unitDataModel.OnLongPressed += () =>
                    {
                        OnLongPressParamUnit(unit);
                    };
                }
                else
                {
                    unit.OutSideCircleImage = ResourceManager.Instance.Load("icon_circle_deco", ResourceType.Common);
                    unit.UnitImage          = ResourceManager.Instance.Load("icon_empty2", ResourceType.Menu);
                    unit.IsEnalbeSelect     = true;
                }

                if (linkData != null && linkData.id > 0)
                {
                    unit.LinkCharaMaster = charaMasterList.Find((v) => v.fix_id == linkData.id);
                    UnitIconImageProvider.Instance.Get(
                        linkData.id,
                        sprite =>
                    {
                        unit.LinkUnitImage = sprite;
                    });
                    unit.IsEmptyLinkUnit = false;
                }
                else
                {
                    unit.LinkOutSideCircleImage = ResourceManager.Instance.Load("icon_circle_deco", ResourceType.Common);
                    unit.LinkUnitImage          = ResourceManager.Instance.Load("icon_empty2", ResourceType.Menu);
                    unit.IsEmptyLinkUnit        = true;
                }

                // indexがm_UnitPartyCurrentとその前後の時にアイコンとステータスを更新する.
                if ((index == m_UnitPartyCurrent) ||
                    (index == m_UnitPartyCurrent - 1) ||
                    (index == m_UnitPartyCurrent + 1))
                {
                    MainMenuUtil.SetPartySelectUnitData(ref unit, unitData, linkData, party.PartyData);
                }
                else if (unit.OutSideCircleImage == null)
                {
                    unit.OutSideCircleImage = ResourceManager.Instance.Load("icon_circle_deco", ResourceType.Common);
                }

                unitDataModel.OnClicked += () =>
                {
                    OnSelectParamUnit(unit);
                };
                unitList.Add(unit);

                partyPanelModel.AddUnit(unitDataModel);
            }

            unitList[0].PartyCharaIndex = GlobalDefine.PartyCharaIndex.LEADER;
            unitList[1].PartyCharaIndex = GlobalDefine.PartyCharaIndex.MOB_1;
            unitList[2].PartyCharaIndex = GlobalDefine.PartyCharaIndex.MOB_2;
            unitList[3].PartyCharaIndex = GlobalDefine.PartyCharaIndex.MOB_3;

            paertParam.Units = unitList;

            //-------------------------
            // スキル
            //-------------------------
            int skillDataIndex = 0;
            if (unitList[0].UnitData.id > 0)
            {
                List <UnitSkillAtPartyContext> skillList = new List <UnitSkillAtPartyContext>();

                var skillDataModel = new ListItemModel((uint)skillDataIndex++);

                UnitSkillAtPartyContext leaderSkill = new UnitSkillAtPartyContext(skillDataModel);
                leaderSkill.setupLeaderSkill(unitList[0].CharaMaster.skill_leader);
                skillList.Add(leaderSkill);

                paertParam.Skills = skillList;

                partyPanelModel.AddSkill(skillDataModel);

#if BUILD_TYPE_DEBUG
                Debug.Log("*************** UnitSkillAtPartyContext *********************");
#endif
            }

            paertParam.SelectLinkAction = OnSelectLink;
            m_PartyParamPanel.PartyParams.Add(paertParam);
        }

        //--------------------------------------
        // 主人公
        //--------------------------------------
        // アセットバンドルの読み込み
        uint currentHeroID = MasterDataUtil.GetCurrentHeroID();
        AssetBundler.Create().
        Set(string.Format("hero_{0:D4}", currentHeroID),
            (o) =>
        {
            Texture2D texture      = o.GetTexture2D(string.Format("tex_hero_perform_l_{0:D4}", currentHeroID), TextureWrapMode.Clamp);
            Texture2D texture_mask = o.GetTexture2D(string.Format("tex_hero_perform_l_{0:D4}_mask", currentHeroID), TextureWrapMode.Clamp);
            foreach (var paertParam in m_PartyParamPanel.PartyParams)
            {
                paertParam.HeroImage      = texture;
                paertParam.HeroImage_mask = texture_mask;
            }
        }).Load();
    }