diff --git a/app/src/main/java/com/yizhuan/erban/treasurefairy/FairyViewModel.kt b/app/src/main/java/com/yizhuan/erban/treasurefairy/FairyViewModel.kt index 246d2baa5..f965dc177 100644 --- a/app/src/main/java/com/yizhuan/erban/treasurefairy/FairyViewModel.kt +++ b/app/src/main/java/com/yizhuan/erban/treasurefairy/FairyViewModel.kt @@ -4,7 +4,6 @@ import android.util.SparseArray import androidx.core.util.forEach import androidx.lifecycle.LiveData import androidx.lifecycle.MutableLiveData -import com.mob.moblink.beans.ServerData.Res import com.yizhuan.erban.base.BaseViewModel import com.yizhuan.erban.base.Event import com.yizhuan.erban.treasurefairy.event.UpdateDataEvent @@ -55,7 +54,8 @@ class FairyViewModel : BaseViewModel() { val sendFairyRecordLiveData: LiveData> = _sendFairyRecordLiveData private val _compoundFairyInfosLiveData = MutableLiveData?>() - val compoundFairyInfosLiveData: MutableLiveData?> = _compoundFairyInfosLiveData + val compoundFairyInfosLiveData: MutableLiveData?> = + _compoundFairyInfosLiveData private val _testResultLiveData = MutableLiveData?>() val testResultLiveData: MutableLiveData?> = _testResultLiveData @@ -63,17 +63,22 @@ class FairyViewModel : BaseViewModel() { private val _testLegendResultLiveData = MutableLiveData?>() val testLegendResultLiveData: MutableLiveData?> = _testLegendResultLiveData + private val _resolveResultLiveData = MutableLiveData?>() + val resolveResultLiveData: MutableLiveData?> = _resolveResultLiveData + private val _testRecordLiveData = MutableLiveData>() val testRecordLiveData: LiveData> = _testRecordLiveData private val _exchangeGiftListLiveData = MutableLiveData?>() - val exchangeGiftListLiveData: MutableLiveData?> = _exchangeGiftListLiveData + val exchangeGiftListLiveData: MutableLiveData?> = + _exchangeGiftListLiveData private val _exchangeGiftLiveData = MutableLiveData>() val exchangeGiftLiveData: LiveData> = _exchangeGiftLiveData private val _debrisExchangeListLiveData = MutableLiveData?>() - val debrisExchangeListLiveData: MutableLiveData?> = _debrisExchangeListLiveData + val debrisExchangeListLiveData: MutableLiveData?> = + _debrisExchangeListLiveData private val _debrisExchangeLiveData = MutableLiveData>() val debrisExchangeLiveData: LiveData> = _debrisExchangeLiveData @@ -262,20 +267,21 @@ class FairyViewModel : BaseViewModel() { _compoundFairyInfosLiveData.value = null _testLegendResultLiveData.value = null _testResultLiveData.value = null + _resolveResultLiveData.value = null val myFairyInfo = _myFairyInfoLiveData.value myFairyInfo?.lowElves?.forEach { it.selectedNum = 0 } - myFairyInfo?.middleElves?.forEach { + myFairyInfo?.highElves?.forEach { it.selectedNum = 0 } _myFairyInfoLiveData.value = myFairyInfo } - fun addTestFairy(fairyInfo: FairyInfo) { + fun addTestFairy(fairyInfo: FairyInfo, size: Int) { val array = _compoundFairyInfosLiveData.value ?: SparseArray() - if (array.size() >= 3) { + if (array.size() >= size) { "試煉爐已滿!".toast() } else { if (fairyInfo.elfNum == 0) { @@ -317,9 +323,9 @@ class FairyViewModel : BaseViewModel() { } } - fun oneKeyAdd(fairyInfos: List) { + fun oneKeyAdd(fairyInfos: List, size: Int) { val compoundFairyInfos = _compoundFairyInfosLiveData.value ?: SparseArray() - var needNum = 3 - compoundFairyInfos.size() + var needNum = size - compoundFairyInfos.size() if (needNum == 0) { "試煉爐已滿!".toast() return @@ -331,7 +337,7 @@ class FairyViewModel : BaseViewModel() { compoundFairyInfos.put(nextIndex(compoundFairyInfos), it) } } - if (needNum <= 3 && needNum != 0) { + if (needNum <= size && needNum != 0) { "精靈數量不足".toast() return } @@ -346,21 +352,27 @@ class FairyViewModel : BaseViewModel() { fairyInfos.get(1) == null -> { 1 } - else -> { + fairyInfos.get(2) == null -> { 2 } + fairyInfos.get(3) == null -> { + 3 + } + else -> { + 4 + } } } fun testFairy(level: Int): Boolean { val fairyInfos = _compoundFairyInfosLiveData.value ?: SparseArray() - if (fairyInfos.size() != 3) { + if (fairyInfos.size() != 5) { "精靈數量不足".toast() return false } safeLaunch( onError = { - if (level == MyFairyItemView.EPIC) { + if (level == MyFairyItemView.LEGEND) { _testLegendResultLiveData.value = null } else { _testResultLiveData.value = null @@ -375,7 +387,7 @@ class FairyViewModel : BaseViewModel() { } fairyTestParam.level = level val result = TreasureFairyModel.testFairy(fairyTestParam) - (if (level == MyFairyItemView.EPIC) { + (if (level == MyFairyItemView.LEGEND) { _testLegendResultLiveData } else { _testResultLiveData @@ -386,6 +398,30 @@ class FairyViewModel : BaseViewModel() { return true } + fun resolveFairy(): Boolean { + val fairyInfos = _compoundFairyInfosLiveData.value ?: SparseArray() + if (fairyInfos.size() != 1) { + "精靈數量不足".toast() + return false + } + safeLaunch( + onError = { + _resolveResultLiveData.value = null + it.message.toast() + }, + block = { + val fairyTestParam = FairyResolveParam() + fairyInfos.forEach { _, value -> + fairyTestParam.expendList.add(Compound(value.elfId, 1)) + } + val result = TreasureFairyModel.resolveFairy(fairyTestParam) + _resolveResultLiveData.value = result?.let { Event(it[0]) } + getMyFairyInfo() + } + ) + return true + } + fun getTestFairyRecordList( page: Int, pageSize: Int diff --git a/app/src/main/java/com/yizhuan/erban/treasurefairy/adapter/ResolveFairyAdapter.kt b/app/src/main/java/com/yizhuan/erban/treasurefairy/adapter/ResolveFairyAdapter.kt new file mode 100644 index 000000000..c08b718ae --- /dev/null +++ b/app/src/main/java/com/yizhuan/erban/treasurefairy/adapter/ResolveFairyAdapter.kt @@ -0,0 +1,25 @@ +package com.yizhuan.erban.treasurefairy.adapter + +import android.widget.ImageView +import com.chad.library.adapter.base.BaseQuickAdapter +import com.chad.library.adapter.base.BaseViewHolder +import com.yizhuan.erban.R +import com.yizhuan.erban.ui.utils.load +import com.yizhuan.xchat_android_core.treasurefairy.FairyInfo +import java.util.* + +class ResolveFairyAdapter : + BaseQuickAdapter(R.layout.treasure_fairy_item_resolve_fairy) { + + + override fun convert(helper: BaseViewHolder, item: FairyInfo) { + helper.getView(R.id.iv_fairy_icon).load(item.elfPicUrl) + helper.setText(R.id.tv_fairy_num, "${item.selectedNum}/${item.elfNum}") + helper.setText(R.id.tv_fairy_name, item.elfName) + helper.setBackgroundRes( + R.id.ll_root, + if (item.selectedNum > 0) R.drawable.treasure_fairy_bg_test_fairy_item_select else 0 + ) + } + +} \ No newline at end of file diff --git a/app/src/main/java/com/yizhuan/erban/treasurefairy/adapter/ResolveFairyResultAdapter.kt b/app/src/main/java/com/yizhuan/erban/treasurefairy/adapter/ResolveFairyResultAdapter.kt new file mode 100644 index 000000000..2d6c9fd98 --- /dev/null +++ b/app/src/main/java/com/yizhuan/erban/treasurefairy/adapter/ResolveFairyResultAdapter.kt @@ -0,0 +1,15 @@ +package com.yizhuan.erban.treasurefairy.adapter + +import com.chad.library.adapter.base.BaseQuickAdapter +import com.chad.library.adapter.base.BaseViewHolder +import com.yizhuan.erban.R +import com.yizhuan.xchat_android_core.treasurefairy.ResolveInfo + +class ResolveFairyResultAdapter : + BaseQuickAdapter(R.layout.treasure_fairy_item_forest_prize_single_resolve) { + + override fun convert(helper: BaseViewHolder, item: ResolveInfo) { + helper.setText(R.id.tv_prize_name, "x${item.pieceNum}") + } + +} \ No newline at end of file diff --git a/app/src/main/java/com/yizhuan/erban/treasurefairy/dialog/ResolveFairyResultDialog.kt b/app/src/main/java/com/yizhuan/erban/treasurefairy/dialog/ResolveFairyResultDialog.kt new file mode 100644 index 000000000..0d99da85c --- /dev/null +++ b/app/src/main/java/com/yizhuan/erban/treasurefairy/dialog/ResolveFairyResultDialog.kt @@ -0,0 +1,58 @@ +package com.yizhuan.erban.treasurefairy.dialog + +import android.annotation.SuppressLint +import android.os.Bundle +import android.view.Gravity +import android.view.WindowManager +import androidx.fragment.app.activityViewModels +import androidx.recyclerview.widget.LinearLayoutManager +import com.yizhuan.erban.base.BaseDialog +import com.yizhuan.erban.databinding.TreasureFairyDialogResolveFairyResultBinding +import com.yizhuan.erban.databinding.TreasureFairyDialogTestFairyResultBinding +import com.yizhuan.erban.treasurefairy.FairyViewModel +import com.yizhuan.erban.treasurefairy.adapter.ResolveFairyResultAdapter +import com.yizhuan.erban.treasurefairy.adapter.TestFairyResultAdapter +import com.yizhuan.erban.ui.utils.RVDelegate +import com.yizhuan.xchat_android_core.treasurefairy.FairyInfo +import com.yizhuan.xchat_android_core.treasurefairy.ResolveInfo + +class ResolveFairyResultDialog : BaseDialog() { + + private lateinit var rvDelegate: RVDelegate + private lateinit var prizeAdapter: ResolveFairyResultAdapter + + override var width = WindowManager.LayoutParams.MATCH_PARENT + override var height = WindowManager.LayoutParams.WRAP_CONTENT + override var gravity = Gravity.CENTER + private val viewModel: FairyViewModel by activityViewModels() + + companion object { + fun newInstance(resolveInfo: ResolveInfo): ResolveFairyResultDialog { + val args = Bundle() + args.putSerializable("resolveInfo",resolveInfo) + val fragment = ResolveFairyResultDialog() + fragment.arguments = args + return fragment + } + } + + private val resolveInfo by lazy { requireArguments().getSerializable("resolveInfo") as ResolveInfo } + @SuppressLint("CheckResult") + override fun init() { + binding?.tvClose?.setOnClickListener { + dismissAllowingStateLoss() + } + prizeAdapter = ResolveFairyResultAdapter() + rvDelegate = RVDelegate.Builder() + .setAdapter(prizeAdapter) + .setRecyclerView(binding?.recyclerView) + .setLayoutManager( + LinearLayoutManager(context) + ) + .build() + + rvDelegate.setNewData(arrayListOf(resolveInfo)) + viewModel.cleanTestParam() + } + +} \ No newline at end of file diff --git a/app/src/main/java/com/yizhuan/erban/treasurefairy/dialog/TestFairyDialog.kt b/app/src/main/java/com/yizhuan/erban/treasurefairy/dialog/TestFairyDialog.kt index cc13fa307..2fbbe00cb 100644 --- a/app/src/main/java/com/yizhuan/erban/treasurefairy/dialog/TestFairyDialog.kt +++ b/app/src/main/java/com/yizhuan/erban/treasurefairy/dialog/TestFairyDialog.kt @@ -58,7 +58,7 @@ class TestFairyDialog : BaseDialog() { childFragmentManager, listOf( TestFairyFragment.newInstance(MyFairyItemView.BASE), - TestFairyFragment.newInstance(MyFairyItemView.EPIC) + TestFairyFragment.newInstance(MyFairyItemView.LEGEND) ) ) viewModel.getMyFairyInfo() diff --git a/app/src/main/java/com/yizhuan/erban/treasurefairy/fragment/TestFairyFragment.kt b/app/src/main/java/com/yizhuan/erban/treasurefairy/fragment/TestFairyFragment.kt index 8504c441a..4928303dc 100644 --- a/app/src/main/java/com/yizhuan/erban/treasurefairy/fragment/TestFairyFragment.kt +++ b/app/src/main/java/com/yizhuan/erban/treasurefairy/fragment/TestFairyFragment.kt @@ -10,7 +10,9 @@ import com.yizhuan.erban.base.BaseViewBindingFragment import com.yizhuan.erban.common.EmptyViewHelper import com.yizhuan.erban.databinding.TreasureFairyFragmentTestFairyBinding import com.yizhuan.erban.treasurefairy.FairyViewModel +import com.yizhuan.erban.treasurefairy.adapter.ResolveFairyAdapter import com.yizhuan.erban.treasurefairy.adapter.TestFairyAdapter +import com.yizhuan.erban.treasurefairy.dialog.ResolveFairyResultDialog import com.yizhuan.erban.treasurefairy.dialog.TestFairyResultDialog import com.yizhuan.erban.treasurefairy.view.MyFairyItemView import com.yizhuan.erban.ui.utils.RVDelegate @@ -19,7 +21,6 @@ import com.yizhuan.xchat_android_core.treasurefairy.FairyInfo class TestFairyFragment : BaseViewBindingFragment() { - companion object { fun newInstance(fairyType: Int): TestFairyFragment { val args = Bundle() @@ -34,6 +35,7 @@ class TestFairyFragment : BaseViewBindingFragment private lateinit var testFairyAdapter: TestFairyAdapter + private lateinit var resolveFairyAdapter: ResolveFairyAdapter private val showResultRunnable = Runnable { if (canShowResult) { @@ -51,44 +53,78 @@ class TestFairyFragment : BaseViewBindingFragment() - .setAdapter(testFairyAdapter) - .setEmptyView(EmptyViewHelper.createEmptyTextViewNoImage( - context, - getString(R.string.fairy_no_further_data_is_available) - )) + .setAdapter(if(fairyType == MyFairyItemView.BASE) resolveFairyAdapter else testFairyAdapter) + .setEmptyView( + EmptyViewHelper.createEmptyTextViewNoImage( + context, + getString(R.string.fairy_no_further_data_is_available) + ) + ) .setRecyclerView(binding.recyclerView) - .setLayoutManager(GridLayoutManager(context, 3, LinearLayoutManager.VERTICAL, false)) + .setLayoutManager(GridLayoutManager(context, if(fairyType == MyFairyItemView.BASE) 6 else 3 , LinearLayoutManager.VERTICAL, false)) .build() viewModel.myFairyInfoLiveData.observe(viewLifecycleOwner) { val fairyInfos = it?.let { when (fairyType) { - MyFairyItemView.EPIC -> { - it.middleElves + MyFairyItemView.LEGEND -> { + it.highElves } else -> { it.lowElves } } } - rvDelegate.setNewData(fairyInfos?.take(3)) + if(fairyType == MyFairyItemView.BASE) { + val list = mutableListOf() + it?.lowElves?.take(3)?.let { it1 -> list.addAll(it1) } + it?.highElves?.take(3)?.let { it2 -> list.addAll(it2) } + rvDelegate.setNewData(list) + } else { + rvDelegate.setNewData(fairyInfos?.take(3)) + } } - if (fairyType == MyFairyItemView.EPIC) { - binding.tvTips.text = "點擊投入試煉傳說精靈" + resolveFairyAdapter.setOnItemClickListener { _, _, position -> + resolveFairyAdapter.getItem(position)?.let { + viewModel.addTestFairy(it, 1) + } } testFairyAdapter.setOnItemClickListener { _, _, position -> testFairyAdapter.getItem(position)?.let { - viewModel.addTestFairy(it) + viewModel.addTestFairy(it, 5) } } @@ -97,20 +133,46 @@ class TestFairyFragment : BaseViewBindingFragment + imageView.setOnClickListener { + viewModel.minusTestFairy(index) + } + } binding.tvReset.setOnClickListener { viewModel.cleanTestParam() } binding.tvOneKeyAdd.setOnClickListener { - viewModel.oneKeyAdd(testFairyAdapter.data) + if (fairyType == MyFairyItemView.BASE) { + viewModel.oneKeyAdd(resolveFairyAdapter.data, 1) + } else { + viewModel.oneKeyAdd(testFairyAdapter.data, 5) + } } if (fairyType == MyFairyItemView.BASE) { binding.viewBgAnim.setBackgroundResource(R.drawable.treasure_fairy_bg_test_fairy_anim_legend) binding.viewBgTop.setBackgroundResource(R.drawable.treasure_fairy_bg_test_fairy_legend) + binding.ivBegin.setBackgroundResource(R.drawable.treasure_fairy_bg_resolve_fairy_begin) + binding.tvTips.text = "點擊投入需要分解的精靈" + } else { + binding.viewBgAnim.setBackgroundResource(R.drawable.treasure_fairy_bg_test_fairy_anim_epic) + binding.viewBgTop.setBackgroundResource(R.drawable.treasure_fairy_bg_test_fairy) + binding.ivBegin.setBackgroundResource(R.drawable.treasure_fairy_bg_test_fairy_begin) + binding.tvTips.text = "點擊投入試煉傳說精靈" } binding.ivBegin.setOnClickListener { - if (viewModel.testFairy(fairyType)) { + if (fairyType == MyFairyItemView.BASE) { + if (viewModel.resolveFairy()) { + binding.animView.startPlay( + requireContext().assets, + "vap/test_fairy_anim_epic.mp4" + ) + binding.ivBegin.isEnabled = false + canShowResult = false + binding.ivBegin.postDelayed(showResolveResultRunnable, 1800) + } + } else if (viewModel.testFairy(fairyType)) { binding.animView.startPlay( requireContext().assets, if (fairyType == MyFairyItemView.BASE) { @@ -146,15 +208,39 @@ class TestFairyFragment : BaseViewBindingFragment - it?.get(index)?.elfPicUrl?.let { elfPicUrl -> - imageView.load(elfPicUrl) - } ?: run { - imageView.setImageDrawable(null) + + //分解碎片 + viewModel.resolveResultLiveData.observe(viewLifecycleOwner) { + it?.getContentIfNotHandled()?.let { + canShowResult = true + if (resultNotShowed) { + showResultRunnable.run() } + } ?: run { + binding.ivBegin.isEnabled = true + } + } + + viewModel.compoundFairyInfosLiveData.observe(viewLifecycleOwner) { + if (fairyType == MyFairyItemView.BASE) { + fairyResolveViews.forEachIndexed { index, imageView -> + it?.get(index)?.elfPicUrl?.let { elfPicUrl -> + imageView.load(elfPicUrl) + } ?: run { + imageView.setImageDrawable(null) + } + } + resolveFairyAdapter.notifyDataSetChanged() + } else { + fairyViews.forEachIndexed { index, imageView -> + it?.get(index)?.elfPicUrl?.let { elfPicUrl -> + imageView.load(elfPicUrl) + } ?: run { + imageView.setImageDrawable(null) + } + } + testFairyAdapter.notifyDataSetChanged() } - testFairyAdapter.notifyDataSetChanged() } } diff --git a/app/src/main/res/drawable-xhdpi/ic_debris_default.png b/app/src/main/res/drawable-xhdpi/ic_debris_default.png new file mode 100644 index 000000000..c69acf697 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/ic_debris_default.png differ diff --git a/app/src/main/res/drawable-xhdpi/ic_new_user.png b/app/src/main/res/drawable-xhdpi/ic_new_user.png index 10c70a57f..cd7f04186 100644 Binary files a/app/src/main/res/drawable-xhdpi/ic_new_user.png and b/app/src/main/res/drawable-xhdpi/ic_new_user.png differ diff --git a/app/src/main/res/drawable-xhdpi/treasure_fairy_bg_resolve_fairy_begin.png b/app/src/main/res/drawable-xhdpi/treasure_fairy_bg_resolve_fairy_begin.png new file mode 100644 index 000000000..988ec41bb Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/treasure_fairy_bg_resolve_fairy_begin.png differ diff --git a/app/src/main/res/drawable-xhdpi/treasure_fairy_bg_test_fairy.webp b/app/src/main/res/drawable-xhdpi/treasure_fairy_bg_test_fairy.webp index 0a767113b..2eb15d27d 100644 Binary files a/app/src/main/res/drawable-xhdpi/treasure_fairy_bg_test_fairy.webp and b/app/src/main/res/drawable-xhdpi/treasure_fairy_bg_test_fairy.webp differ diff --git a/app/src/main/res/drawable-xhdpi/treasure_fairy_bg_test_fairy_anim_legend.png b/app/src/main/res/drawable-xhdpi/treasure_fairy_bg_test_fairy_anim_legend.png index 1758f2a67..911bf4751 100644 Binary files a/app/src/main/res/drawable-xhdpi/treasure_fairy_bg_test_fairy_anim_legend.png and b/app/src/main/res/drawable-xhdpi/treasure_fairy_bg_test_fairy_anim_legend.png differ diff --git a/app/src/main/res/layout/treasure_fairy_dialog_resolve_fairy_result.xml b/app/src/main/res/layout/treasure_fairy_dialog_resolve_fairy_result.xml new file mode 100644 index 000000000..a251e6962 --- /dev/null +++ b/app/src/main/res/layout/treasure_fairy_dialog_resolve_fairy_result.xml @@ -0,0 +1,64 @@ + + + + + + + + + + + + + diff --git a/app/src/main/res/layout/treasure_fairy_fragment_test_fairy.xml b/app/src/main/res/layout/treasure_fairy_fragment_test_fairy.xml index 1b3252067..16a2293a6 100644 --- a/app/src/main/res/layout/treasure_fairy_fragment_test_fairy.xml +++ b/app/src/main/res/layout/treasure_fairy_fragment_test_fairy.xml @@ -10,7 +10,7 @@ android:layout_width="0dp" android:layout_height="0dp" android:background="@drawable/treasure_fairy_bg_test_fairy" - app:layout_constraintDimensionRatio="750:585" + app:layout_constraintDimensionRatio="750:555" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> @@ -21,11 +21,11 @@ android:layout_height="0dp" android:layout_marginTop="25dp" android:background="@drawable/treasure_fairy_bg_test_fairy_anim_epic" - app:layout_constraintDimensionRatio="684:490" + app:layout_constraintDimensionRatio="684:452" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="@id/view_bg_top" - app:layout_constraintWidth_percent="0.91" /> + app:layout_constraintWidth_percent="0.912" /> + app:layout_constraintVertical_bias="0.18" /> + app:layout_constraintVertical_bias="0.18" /> + app:layout_constraintVertical_bias="0.82" /> + + + + diff --git a/app/src/main/res/layout/treasure_fairy_item_forest_prize_single_resolve.xml b/app/src/main/res/layout/treasure_fairy_item_forest_prize_single_resolve.xml new file mode 100644 index 000000000..fa9822d5d --- /dev/null +++ b/app/src/main/res/layout/treasure_fairy_item_forest_prize_single_resolve.xml @@ -0,0 +1,33 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/treasure_fairy_item_resolve_fairy.xml b/app/src/main/res/layout/treasure_fairy_item_resolve_fairy.xml new file mode 100644 index 000000000..7c0cd1cd2 --- /dev/null +++ b/app/src/main/res/layout/treasure_fairy_item_resolve_fairy.xml @@ -0,0 +1,71 @@ + + + + + + + + + + + + + diff --git a/app/src/main/res/layout/treasure_fairy_item_test_fairy.xml b/app/src/main/res/layout/treasure_fairy_item_test_fairy.xml index c5024d336..c03a8aa65 100644 --- a/app/src/main/res/layout/treasure_fairy_item_test_fairy.xml +++ b/app/src/main/res/layout/treasure_fairy_item_test_fairy.xml @@ -4,9 +4,9 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="66dp" android:layout_height="wrap_content" - android:layout_marginStart="2dp" + android:layout_marginStart="10dp" android:layout_marginTop="5dp" - android:layout_marginEnd="2dp" + android:layout_marginEnd="10dp" android:layout_marginBottom="5dp" android:background="@drawable/treasure_fairy_bg_test_fairy_item_unselect" tools:layout_width="65dp"> diff --git a/core/src/diff_src_erban/java/com/yizhuan/xchat_android_core/treasurefairy/FairyResolveParam.kt b/core/src/diff_src_erban/java/com/yizhuan/xchat_android_core/treasurefairy/FairyResolveParam.kt new file mode 100644 index 000000000..346f26a7b --- /dev/null +++ b/core/src/diff_src_erban/java/com/yizhuan/xchat_android_core/treasurefairy/FairyResolveParam.kt @@ -0,0 +1,5 @@ +package com.yizhuan.xchat_android_core.treasurefairy + +data class FairyResolveParam( + val expendList: MutableList = arrayListOf() +) \ No newline at end of file diff --git a/core/src/diff_src_erban/java/com/yizhuan/xchat_android_core/treasurefairy/MyFairyInfo.kt b/core/src/diff_src_erban/java/com/yizhuan/xchat_android_core/treasurefairy/MyFairyInfo.kt index 870854599..7b03a9636 100644 --- a/core/src/diff_src_erban/java/com/yizhuan/xchat_android_core/treasurefairy/MyFairyInfo.kt +++ b/core/src/diff_src_erban/java/com/yizhuan/xchat_android_core/treasurefairy/MyFairyInfo.kt @@ -2,8 +2,8 @@ package com.yizhuan.xchat_android_core.treasurefairy data class MyFairyInfo( val highElves: ArrayList? = null, - val lowElves: ArrayList? = null, val middleElves: ArrayList? = null, + val lowElves: ArrayList? = null, val avatar: String = "", val nick: String = "", val chipNum: Int diff --git a/core/src/diff_src_erban/java/com/yizhuan/xchat_android_core/treasurefairy/ResolveInfo.kt b/core/src/diff_src_erban/java/com/yizhuan/xchat_android_core/treasurefairy/ResolveInfo.kt new file mode 100644 index 000000000..5981d7dce --- /dev/null +++ b/core/src/diff_src_erban/java/com/yizhuan/xchat_android_core/treasurefairy/ResolveInfo.kt @@ -0,0 +1,8 @@ +package com.yizhuan.xchat_android_core.treasurefairy + +import java.io.Serializable + +data class ResolveInfo( + val elfLevel: Int = 0, + val pieceNum: Int = 0 +) : Serializable \ No newline at end of file diff --git a/core/src/diff_src_erban/java/com/yizhuan/xchat_android_core/treasurefairy/TreasureFairyModel.kt b/core/src/diff_src_erban/java/com/yizhuan/xchat_android_core/treasurefairy/TreasureFairyModel.kt index 1e0698811..6090b99fe 100644 --- a/core/src/diff_src_erban/java/com/yizhuan/xchat_android_core/treasurefairy/TreasureFairyModel.kt +++ b/core/src/diff_src_erban/java/com/yizhuan/xchat_android_core/treasurefairy/TreasureFairyModel.kt @@ -69,6 +69,10 @@ object TreasureFairyModel { api.testFairy(fairyTestParam) } + suspend fun resolveFairy(resolveParam: FairyResolveParam): List? = launchRequest { + api.resolveFairy(resolveParam) + } + suspend fun getTestFairyRecordList( page: Int, pageSize: Int @@ -216,6 +220,12 @@ object TreasureFairyModel { @POST("act/seize-treasure/elf/compound") suspend fun testFairy(@Body fairyTestParam: FairyTestParam): ServiceResult + /** + * 分解礼物 + */ + @POST("act/seize-treasure/elf/salvage") + suspend fun resolveFairy(@Body resolveParam: FairyResolveParam): ServiceResult> + /** * 合成礼物记录 *