Ejemplo n.º 1
0
    /// <summary>
    /// API送信:ユニットパーティ編成設定
    /// </summary>
    void SendUnitPartyAssign(Action <bool> finishAction = null)
    {
        PacketStructUnit leader = m_PartyMemberUnitGroup.Units.Find(value => value.PartyCharaIndex == GlobalDefine.PartyCharaIndex.LEADER).UnitData;
        PacketStructUnit mob_1  = m_PartyMemberUnitGroup.Units.Find(value => value.PartyCharaIndex == GlobalDefine.PartyCharaIndex.MOB_1).UnitData;
        PacketStructUnit mob_2  = m_PartyMemberUnitGroup.Units.Find(value => value.PartyCharaIndex == GlobalDefine.PartyCharaIndex.MOB_2).UnitData;
        PacketStructUnit mob_3  = m_PartyMemberUnitGroup.Units.Find(value => value.PartyCharaIndex == GlobalDefine.PartyCharaIndex.MOB_3).UnitData;

        PacketStructUnit[][] partys = UserDataAdmin.Instance.m_StructPartyAssign;

        PacketStructPartyAssign[] partyAssigns = new PacketStructPartyAssign[partys.Length]; // パーティアサイン情報配列

        for (int i = 0; i < partys.Length; ++i)
        {
            partyAssigns[i] = new PacketStructPartyAssign();
            if (i == m_CurrentSelectPartyIndex)
            {
                partyAssigns[i].unit0_unique_id = leader != null ? leader.unique_id : 0;
                partyAssigns[i].unit1_unique_id = mob_1 != null ? mob_1.unique_id : 0;
                partyAssigns[i].unit2_unique_id = mob_2 != null ? mob_2.unique_id : 0;
                partyAssigns[i].unit3_unique_id = mob_3 != null ? mob_3.unique_id : 0;
            }
            else
            {
                partyAssigns[i].unit0_unique_id = partys[i][0] != null ? partys[i][0].unique_id : 0;
                partyAssigns[i].unit1_unique_id = partys[i][1] != null ? partys[i][1].unique_id : 0;
                partyAssigns[i].unit2_unique_id = partys[i][2] != null ? partys[i][2].unique_id : 0;
                partyAssigns[i].unit3_unique_id = partys[i][3] != null ? partys[i][3].unique_id : 0;
            }
        }

        ServerDataUtilSend.SendPacketAPI_UnitPartyAssign(partyAssigns, m_CurrentSelectPartyIndex)
        .setSuccessAction(_data =>
        {
            UserDataAdmin.Instance.m_StructPlayer = _data.UpdateStructPlayer <RecvUnitPartyAssign>((PacketStructPlayer)UserDataAdmin.Instance.m_StructPlayer);
            UserDataAdmin.Instance.ConvertPartyAssing();
            m_IsPartyMemberChange = false;

            // ダイアログの表示
            Dialog newDialog = Dialog.Create(DialogType.DialogOK);
            newDialog.SetDialogTextFromTextkey(DialogTextType.Title, "un72q_title");
            newDialog.SetDialogTextFromTextkey(DialogTextType.MainText, "un72q_content");
            newDialog.SetDialogTextFromTextkey(DialogTextType.OKText, "common_button1");
            newDialog.SetDialogEvent(DialogButtonEventType.OK, new System.Action(() =>
            {
                if (finishAction != null)
                {
                    finishAction(true);
                }
            }));
            newDialog.Show();
        })
        .setErrorAction(_data =>
        {
            m_IsPartyMemberChange = false;

            if (finishAction != null)
            {
                finishAction(false);
            }
        })
        .SendStart();
    }
Ejemplo n.º 2
0
    /// <summary>
    /// API送信:ユニットパーティ編成設定
    /// </summary>
    void SendUnitPartyAssign(Action finishedSendAction = null)
    {
        Action endAction = () =>
        {
            m_UnitPartyCurrent = DefaultUnitPartyCurrent;
        };

        if (UserDataAdmin.Instance.m_StructPlayer.unit_party_current != m_PartyParamPanel.m_CurrentIndex)
        {                                                                                                                            // 選択パーティが変わっている場合
            PacketStructPartyAssign[] partyAssigns = new PacketStructPartyAssign[UserDataAdmin.Instance.m_StructPartyAssign.Length]; // パーティアサイン情報配列

            // パーティアサイン情報設定
            for (int i = 0; i < UserDataAdmin.Instance.m_StructPartyAssign.Length; ++i)
            {
                PartySelectGroupUnitContext party = m_PartySelectGroup.GetParty(i);
                partyAssigns[i] = new PacketStructPartyAssign();
                if (party != null)
                {
                    partyAssigns[i].unit0_unique_id = party.PartyData[0] != null ? party.PartyData[0].unique_id : 0;
                    partyAssigns[i].unit1_unique_id = party.PartyData[1] != null ? party.PartyData[1].unique_id : 0;
                    partyAssigns[i].unit2_unique_id = party.PartyData[2] != null ? party.PartyData[2].unique_id : 0;
                    partyAssigns[i].unit3_unique_id = party.PartyData[3] != null ? party.PartyData[3].unique_id : 0;
                }
                else
                {
                    var partyAssign = UserDataAdmin.Instance.m_StructPartyAssign;
                    partyAssigns[i].unit0_unique_id = (partyAssign[i][0] != null) ? partyAssign[i][0].unique_id : 0;
                    partyAssigns[i].unit1_unique_id = (partyAssign[i][1] != null) ? partyAssign[i][1].unique_id : 0;
                    partyAssigns[i].unit2_unique_id = (partyAssign[i][2] != null) ? partyAssign[i][2].unique_id : 0;
                    partyAssigns[i].unit3_unique_id = (partyAssign[i][3] != null) ? partyAssign[i][3].unique_id : 0;
                }
            }

            // 送信開始
            ServerDataUtilSend.SendPacketAPI_UnitPartyAssign(partyAssigns, m_PartyParamPanel.m_CurrentIndex)
            .setSuccessAction(_data =>
            {
                UserDataAdmin.Instance.m_StructPlayer = _data.UpdateStructPlayer <RecvUnitPartyAssign>((PacketStructPlayer)UserDataAdmin.Instance.m_StructPlayer);
                UserDataAdmin.Instance.ConvertPartyAssing();
                m_IsSendApi = false;
                endAction();
                if (finishedSendAction != null)
                {
                    finishedSendAction();
                }
            })
            .setErrorAction(_data =>
            {
                m_IsSendApi = false;
                endAction();

                if (finishedSendAction != null)
                {
                    finishedSendAction();
                }
            })
            .SendStart();

            m_IsSendApi = true;
        }
        else
        {
            endAction();

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