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);
|
||||
SetFixedSize(_dismantleAllButton, 200f, 38f);
|
||||
SetButtonColor(_dismantleAllButton, new Color(0.30f, 0.16f, 0.08f, 0.95f));
|
||||
_dismantleAllButton.gameObject.SetActive(false);
|
||||
|
||||
var scroll = UiKit.CreateGridScrollView(
|
||||
collectionArea,
|
||||
|
|
@ -1474,7 +1473,7 @@ namespace Vanguard.UI
|
|||
|
||||
private void ConfirmDismantleExtras()
|
||||
{
|
||||
var plan = DeckListModel.PlanExtras(_collection);
|
||||
var plan = DeckListModel.PlanExtras(_collection, _catalog);
|
||||
if (plan.IsEmpty || _busy)
|
||||
return;
|
||||
|
||||
|
|
@ -1545,9 +1544,14 @@ namespace Vanguard.UI
|
|||
if (_dismantleAllButton == null)
|
||||
return;
|
||||
|
||||
var plan = DeckListModel.PlanExtras(_collection);
|
||||
_dismantleAllButton.gameObject.SetActive(!plan.IsEmpty);
|
||||
var plan = DeckListModel.PlanExtras(_collection, _catalog);
|
||||
_dismantleAllButton.gameObject.SetActive(true);
|
||||
_dismantleAllButton.interactable = !plan.IsEmpty && !_busy;
|
||||
SetButtonLabel(
|
||||
_dismantleAllButton,
|
||||
plan.IsEmpty
|
||||
? "Распылить лишнее"
|
||||
: "Распылить лишнее (" + plan.CardCount + ")");
|
||||
}
|
||||
|
||||
// ------------------------------------------------------------ карточка
|
||||
|
|
|
|||
|
|
@ -209,7 +209,9 @@ namespace Vanguard.UI
|
|||
/// План распыления лишних копий: всё сверх 4 на конкретный принт
|
||||
/// (номер карты). SP/TD не распыляются, поэтому пропускаются.
|
||||
/// </summary>
|
||||
public static DismantlePlan PlanExtras(IEnumerable<CollectionItemDto> collection)
|
||||
public static DismantlePlan PlanExtras(
|
||||
IEnumerable<CollectionItemDto> collection,
|
||||
IReadOnlyDictionary<string, CardCatalogItemDto> catalog = null)
|
||||
{
|
||||
var plan = new DismantlePlan();
|
||||
if (collection == null)
|
||||
|
|
@ -218,8 +220,18 @@ namespace Vanguard.UI
|
|||
foreach (var item in collection)
|
||||
{
|
||||
var extra = item.Count - 4;
|
||||
var dust = DustFor(item.Rarity);
|
||||
if (extra <= 0 || dust <= 0)
|
||||
if (extra <= 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;
|
||||
|
||||
plan.Add(item.PrintingId, extra, extra * dust);
|
||||
|
|
|
|||
Loading…
Reference in New Issue