Ejemplo n.º 1
0
    public void AddUnit(PartyMemberUnitListItemModel unit)
    {
        unit.OnShowedNext += () =>
        {
            if (unit.index >= m_units.Count - 1)
            {
                return;
            }

            m_units[(int)unit.index + 1].Appear();
        };

        unit.OnAppeared += () =>
        {
            if (unit.index < m_units.Count - 1)
            {
                return;
            }

            foreach (var unitModel in m_units)
            {
                unitModel.ShowStatus();
            }

            if (_onUnitsAppeared != null)
            {
                _onUnitsAppeared();
            }
        };

        m_units.Add(unit);
    }
Ejemplo n.º 2
0
    public void CreatePartyParam(int party_id, MainMenuTutorialHeroSelect heroSelect)
    {
        MasterDataDefaultParty masterParty = MasterFinder <MasterDataDefaultParty> .Instance.Find(party_id);

        //-------------------------
        // ユニット設定
        //-------------------------
        List <PartyMemberUnitContext> unitList = new List <PartyMemberUnitContext>();
        int unitDataIndex = 0;

        for (int n = 0; n < 4; ++n)
        {
            uint unit_id    = 0;
            uint unit_level = 0;
            switch (n)
            {
            case 0:
                unit_id    = masterParty.party_chara0_id;
                unit_level = masterParty.party_chara0_level;
                break;

            case 1:
                unit_id    = masterParty.party_chara1_id;
                unit_level = masterParty.party_chara1_level;
                break;

            case 2:
                unit_id    = masterParty.party_chara2_id;
                unit_level = masterParty.party_chara2_level;
                break;

            case 3:
                unit_id    = masterParty.party_chara3_id;
                unit_level = masterParty.party_chara3_level;
                break;

            default:
                break;
            }

            var unitDataModel           = new PartyMemberUnitListItemModel((uint)unitDataIndex++);
            PartyMemberUnitContext unit = new PartyMemberUnitContext(unitDataModel);

            unit.IsActiveStatus = true;
            if (unit_id != 0)
            {
                PacketStructUnit unitData = new PacketStructUnit();
                unitData.id    = unit_id;
                unitData.level = unit_level;

                if (unitData != null)
                {
                    UnitIconImageProvider.Instance.Get(
                        unitData.id,
                        sprite =>
                    {
                        unit.UnitImage = sprite;
                    });
                }
                else
                {
                    unit.OutSideCircleImage = ResourceManager.Instance.Load("icon_circle_deco", ResourceType.Common);
                    unit.UnitImage          = ResourceManager.Instance.Load("icon_empty", ResourceType.Menu);
                }

                unit.UnitData = unitData;
                SetUnitData(ref unit, unitData);

                unitDataModel.OnLongPressed += () =>
                {
                    OnLongPressParamUnit(unit, heroSelect);
                };
            }
            else
            {
                unit.UnitImage = ResourceManager.Instance.Load("icon_empty", ResourceType.Menu);
            }

            unitDataModel.OnShowedNext += () =>
            {
                unitDataModel.ShowStatus();
            };

            unitList.Add(unit);
        }

        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;

        Units = unitList;
    }
Ejemplo n.º 3
0
    /// <summary>
    /// パーティメンバー一覧の作成
    /// </summary>
    void CreatePartyMemberUnitGroup()
    {
        PacketStructUnit[][] partys = UserDataAdmin.Instance.m_StructPartyAssign;
        PacketStructUnit[]   party  = new PacketStructUnit[(int)GlobalDefine.PartyCharaIndex.MAX - 1];
        Array.Copy(partys[m_CurrentSelectPartyIndex], party, party.Length); // ユニット情報をコピー

        List <PartyMemberUnitContext> unitList = new List <PartyMemberUnitContext>();

        foreach (PacketStructUnit unitData in party)
        {
            int index = unitList.Count;
            var model = new PartyMemberUnitListItemModel((uint)index);

            PartyMemberUnitContext unit = new PartyMemberUnitContext(model);
            unit.UnitData = unitData;
            if (unitData != null)
            {
                // ユニット画像
                UnitIconImageProvider.Instance.Get(
                    unitData.id,
                    sprite =>
                {
                    unit.UnitImage = sprite;
                },
                    true);
                unit.LinkIcon       = MainMenuUtil.GetLinkMark(unitData);
                unit.IsEnalbeSelect = true;
                MasterDataParamChara _master = MasterFinder <MasterDataParamChara> .Instance.Find((int)unitData.id);

                unit.IconSelect = MainMenuUtil.GetElementCircleSprite(_master.element);
                unit.IsElement  = true;
            }
            else
            {
                unit.UnitImage      = ResourceManager.Instance.Load("icon_empty2");
                unit.IsEnalbeSelect = false;
                unit.IsElement      = false;
            }

            SetupLinkChara(unit);

            unit.DidSelectItem    = OnSelectPartyMemberUnit;
            unit.DidLongPressItem = OnSelectUnitLongPress;
            unitList.Add(unit);
        }

        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;

        m_PartyMemberUnitGroup.Units = unitList;
        m_PartyMemberUnitGroup.OnClickReleaseAction = OnUnitRelease;
        m_PartyMemberUnitGroup.OnClickDetailAction  = OnDetailWindow;
        m_PartyMemberUnitGroup.OnClickLinkAction    = OnSelectLink;

        CharaUtil.setupCharaParty(ref m_PartyMemberUnitGroup.PartyInfo, party); // パーティ情報の設定

        //DG0-4124 対応
        if (TutorialManager.HasInstance)
        {
            UnitIconImageProvider.Instance.Tick();
        }
    }
Ejemplo n.º 4
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();
    }
Ejemplo n.º 5
0
 public PartyMemberUnitContext(PartyMemberUnitListItemModel listItemModel)
 {
     m_model = listItemModel;
 }
Ejemplo n.º 6
0
    public override void OnInitialized()
    {
        base.OnInitialized();

        m_PartyMemberStatusPanel = GetComponentInChildren <PartyMemberStatusPanel>();

        // マスターデータ
        List <MasterDataParamChara> charaMasterDatas = MasterFinder <MasterDataParamChara> .Instance.FindAll();


        // パーティ
        for (int i = 0; i < m_PartyCount; ++i)
        {
            var model = new PartySelectGroupUnitListItemModel((uint)i);

            PartySelectGroupUnitContext party = new PartySelectGroupUnitContext(model);
            UnitIconImageProvider.Instance.Get(
                charaMasterDatas[Random.Range(0, 1800)].fix_id,
                sprite => { party.UnitImage = sprite; });
            party.NameText = string.Format(GameTextUtil.GetText("questlast_tub"), i + 1);
            m_PartySelectGroup.AddData(party);
            model.OnClicked += () => {
                m_PartySelectGroup.ChangePartyItemSelect(party.Index); // パーティ選択状態を変更
            };
        }

        // パーティメンバー
        for (int i = 0; i < 4; ++i)
        {
            var unitDataModel = new PartyMemberUnitListItemModel((uint)i);

            PartyMemberUnitContext unit = new PartyMemberUnitContext(unitDataModel);
            UnitIconImageProvider.Instance.Get(
                charaMasterDatas[Random.Range(0, 1800)].fix_id,
                sprite => { unit.UnitImage = sprite; });
            m_PartyMemberUnitGroup.Units.Add(unit);
            unitDataModel.OnClicked += () => {
                unit.DidSelectItem(unit); // TODO : DidSelectItem()の内容と差し替え
            };
            unitDataModel.OnLongPressed += () => {
                unit.DidLongPressItem(unit); // TODO : DidLongPressItem()の内容と差し替え
            };
        }

        // クエストパーティメンバー
        for (int i = 0; i < 5; ++i)
        {
            var unitDataModel = new PartyMemberUnitListItemModel((uint)i);

            PartyMemberUnitContext unit = new PartyMemberUnitContext(unitDataModel);
            UnitIconImageProvider.Instance.Get(
                charaMasterDatas[Random.Range(0, 1800)].fix_id,
                sprite => { unit.UnitImage = sprite; });
            //m_PartyParamQuestPartyPanel.Units.Add(unit);
            unitDataModel.OnClicked += () => {
                unit.DidSelectItem(unit); // TODO : DidSelectItem()の内容と差し替え
            };
            unitDataModel.OnLongPressed += () => {
                unit.DidLongPressItem(unit); // TODO : DidLongPressItem()の内容と差し替え
            };
        }

        for (int i = 0; i < 4; ++i)
        {
            PartyMemberStatusListItemContext status = new PartyMemberStatusListItemContext();
            m_PartyMemberStatusPanel.UnitStatusParams.Add(status);
        }
    }