カスタマイズ機能アイテム選択修正

This commit is contained in:
kimura 2022-05-13 13:34:27 +09:00
parent daa26f4cc3
commit 3deee94349
1 changed files with 19 additions and 17 deletions

View File

@ -38,38 +38,33 @@ namespace MyGame.Scenes.marketing.Scripts
ShopCustomizeItem selectedItem = null; ShopCustomizeItem selectedItem = null;
foreach (var customizeData in list) foreach (var customizeData in list)
{ {
var selectSubject = new Subject<Unit>().AddTo(this);
var item = customizeSelector.GenerateItem(category); var item = customizeSelector.GenerateItem(category);
item.SetData(customizeData); item.SetData(customizeData);
// 現在設定しているのアイテムを選択 if (gameData.ShopCustomizeMyItems.Contains(customizeData.id))
if (customizeData.id == selectedId)
{
selectedItem = item;
item.SetState(ShopCustomizeItemState.Selected);
}
else if (gameData.ShopCustomizeMyItems.Contains(customizeData.id))
{ {
item.SetState(ShopCustomizeItemState.Purchased); item.SetState(ShopCustomizeItemState.Purchased);
} }
else if (gameData.ShopCustomizeLevel > customizeData.level) else if (gameData.ShopCustomizeLevel >= customizeData.level)
{
item.SetState(ShopCustomizeItemState.Lock);
}
else
{ {
item.SetState(ShopCustomizeItemState.Unlock); item.SetState(ShopCustomizeItemState.Unlock);
} }
else
{
item.SetState(ShopCustomizeItemState.Lock);
}
item.SelectObservable.Subscribe(_ => item.SelectObservable.Merge(selectSubject).Subscribe(_ =>
{ {
if (item != selectedItem) if (item != selectedItem)
{ {
selectedItem.SetState(ShopCustomizeItemState.Purchased); selectedItem.SetState(ShopCustomizeItemState.Purchased);
selectedItem = item;
} }
selectedItem = item;
item.SetState(ShopCustomizeItemState.Selected); item.SetState(ShopCustomizeItemState.Selected);
gameData.ShopCustomizeSettings.SetSetting(customizeData); gameData.ShopCustomizeSettings.SetSetting(customizeData);
// marketView.SetItem(customizeData); marketView.SetItem(customizeData);
}).AddTo(this); }).AddTo(this);
item.DetailObservable.Subscribe(_ => item.DetailObservable.Subscribe(_ =>
{ {
@ -81,9 +76,16 @@ namespace MyGame.Scenes.marketing.Scripts
ShopCustomizePurchaseDialog.ShowDialog(customizeData, false, () => ShopCustomizePurchaseDialog.ShowDialog(customizeData, false, () =>
{ {
PurchaseItem(customizeData); PurchaseItem(customizeData);
item.SetState(ShopCustomizeItemState.Selected); selectSubject.OnNext(Unit.Default);
}); });
}).AddTo(this); }).AddTo(this);
// 現在設定しているのアイテムを選択
if (customizeData.id == selectedId)
{
selectedItem = item;
selectSubject.OnNext(Unit.Default);
}
} }
} }
} }