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