fix(deckbuilder): «Распылить лишнее» больше не исчезает
CI / test (push) Successful in 2m12s
Details
CI / test (push) Successful in 2m12s
Details
- Кнопка всегда видна; при отсутствии лишних копий неактивна. При наличии показывает количество: «Распылить лишнее (N)». - Редкость для расчёта берётся из каталога по printingId, а не из ответа коллекции (исключает расхождение формата и пустой план). - EditMode 71/71, standalone собран.
This commit is contained in:
parent
9bd03cd6bc
commit
7885709d14
|
|
@ -211,7 +211,6 @@ namespace Vanguard.UI
|
||||||
15);
|
15);
|
||||||
SetFixedSize(_dismantleAllButton, 200f, 38f);
|
SetFixedSize(_dismantleAllButton, 200f, 38f);
|
||||||
SetButtonColor(_dismantleAllButton, new Color(0.30f, 0.16f, 0.08f, 0.95f));
|
SetButtonColor(_dismantleAllButton, new Color(0.30f, 0.16f, 0.08f, 0.95f));
|
||||||
_dismantleAllButton.gameObject.SetActive(false);
|
|
||||||
|
|
||||||
var scroll = UiKit.CreateGridScrollView(
|
var scroll = UiKit.CreateGridScrollView(
|
||||||
collectionArea,
|
collectionArea,
|
||||||
|
|
@ -1474,7 +1473,7 @@ namespace Vanguard.UI
|
||||||
|
|
||||||
private void ConfirmDismantleExtras()
|
private void ConfirmDismantleExtras()
|
||||||
{
|
{
|
||||||
var plan = DeckListModel.PlanExtras(_collection);
|
var plan = DeckListModel.PlanExtras(_collection, _catalog);
|
||||||
if (plan.IsEmpty || _busy)
|
if (plan.IsEmpty || _busy)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
|
@ -1545,9 +1544,14 @@ namespace Vanguard.UI
|
||||||
if (_dismantleAllButton == null)
|
if (_dismantleAllButton == null)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
var plan = DeckListModel.PlanExtras(_collection);
|
var plan = DeckListModel.PlanExtras(_collection, _catalog);
|
||||||
_dismantleAllButton.gameObject.SetActive(!plan.IsEmpty);
|
_dismantleAllButton.gameObject.SetActive(true);
|
||||||
_dismantleAllButton.interactable = !plan.IsEmpty && !_busy;
|
_dismantleAllButton.interactable = !plan.IsEmpty && !_busy;
|
||||||
|
SetButtonLabel(
|
||||||
|
_dismantleAllButton,
|
||||||
|
plan.IsEmpty
|
||||||
|
? "Распылить лишнее"
|
||||||
|
: "Распылить лишнее (" + plan.CardCount + ")");
|
||||||
}
|
}
|
||||||
|
|
||||||
// ------------------------------------------------------------ карточка
|
// ------------------------------------------------------------ карточка
|
||||||
|
|
|
||||||
|
|
@ -209,7 +209,9 @@ namespace Vanguard.UI
|
||||||
/// План распыления лишних копий: всё сверх 4 на конкретный принт
|
/// План распыления лишних копий: всё сверх 4 на конкретный принт
|
||||||
/// (номер карты). SP/TD не распыляются, поэтому пропускаются.
|
/// (номер карты). SP/TD не распыляются, поэтому пропускаются.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public static DismantlePlan PlanExtras(IEnumerable<CollectionItemDto> collection)
|
public static DismantlePlan PlanExtras(
|
||||||
|
IEnumerable<CollectionItemDto> collection,
|
||||||
|
IReadOnlyDictionary<string, CardCatalogItemDto> catalog = null)
|
||||||
{
|
{
|
||||||
var plan = new DismantlePlan();
|
var plan = new DismantlePlan();
|
||||||
if (collection == null)
|
if (collection == null)
|
||||||
|
|
@ -218,8 +220,18 @@ namespace Vanguard.UI
|
||||||
foreach (var item in collection)
|
foreach (var item in collection)
|
||||||
{
|
{
|
||||||
var extra = item.Count - 4;
|
var extra = item.Count - 4;
|
||||||
var dust = DustFor(item.Rarity);
|
if (extra <= 0)
|
||||||
if (extra <= 0 || dust <= 0)
|
continue;
|
||||||
|
|
||||||
|
var rarity = item.Rarity;
|
||||||
|
if (catalog != null && catalog.TryGetValue(item.PrintingId, out var meta)
|
||||||
|
&& !string.IsNullOrEmpty(meta.Rarity))
|
||||||
|
{
|
||||||
|
rarity = meta.Rarity;
|
||||||
|
}
|
||||||
|
|
||||||
|
var dust = DustFor(rarity);
|
||||||
|
if (dust <= 0)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
plan.Add(item.PrintingId, extra, extra * dust);
|
plan.Add(item.PrintingId, extra, extra * dust);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue