商品が無い場合、宣伝ボタンを非表示にする処理を追加

This commit is contained in:
kimura 2021-11-22 13:56:24 +09:00
parent a614121390
commit 4d787b7c8e
1 changed files with 57 additions and 47 deletions

View File

@ -25,9 +25,11 @@ public class MarketManager : MonoBehaviour
List<ProductData> productDataList;
private readonly Subject<int> resetRefreshTimer = new Subject<int>();
private readonly CompositeDisposable ShopClosedCompositeDisposable = new CompositeDisposable();
private void Start()
{
ShopClosedCompositeDisposable.AddTo(this);
resetRefreshTimer.AddTo(this);
market = Market.Instance;
@ -46,26 +48,25 @@ public class MarketManager : MonoBehaviour
var controller = market.SetTutorialCustomer();
walkerMask.SetTargetArrow(controller.transform);
controller.State
.Where(x => x == CustomerState.Wait)
.Take(1)
.Subscribe(state => { }, () =>
.FirstOrDefault(x => x == CustomerState.Wait)
.Subscribe(_ => { }, () =>
{
walkerMask.SetArrowActive(false);
}).AddTo(controller).AddTo(this);
walkerMask.SetTargetArrow(controller.transform);
controller.State
.Where(x => x == CustomerState.EatingLeave)
.FirstOrDefault(x => x == CustomerState.EatingLeave)
.Delay(TimeSpan.FromSeconds(3f))
.Take(1)
.Subscribe(_ =>
.Subscribe(_ => { }, () =>
{
// チュートリアル終了
gameData.FinishTutorial();
GameDataManager.SaveGameData();
walkerMask.gameObject.SetActive(false);
resetRefreshTimer.OnNext((int) DateTime.FromBinary(gameData.increaseCustomerTime).Subtract(DateTime.UtcNow).TotalSeconds);
rewardButtonView.gameObject.SetActive(true);
TutorialManager.Instance.ShowTutorialConversation(12);
TutorialManager.Instance.ShowTutorialConversation(12, () =>
{
SetShopView(market.CurrentShopState.Value);
});
}).AddTo(controller).AddTo(this);
});
}
@ -218,20 +219,30 @@ public class MarketManager : MonoBehaviour
}).AddTo(this);
// 開閉店
CompositeDisposable shopStateCompositeDisposable = new CompositeDisposable();
shopStateCompositeDisposable.AddTo(this);
market.CurrentShopState.Subscribe(state =>
market.CurrentShopState
.Where(_ => !gameData.isFirstPlay)
.Subscribe(state =>
{
shopStateCompositeDisposable.Clear();
SetShopView(state);
}).AddTo(this);
}
private void SetShopView(ShopState state)
{
ShopClosedCompositeDisposable.Clear();
switch (state)
{
case ShopState.Open:
// 宣伝ボタン表示
rewardButtonView.gameObject.SetActive(true);
BrotherPinkView.Instance.SetNormal();
closeSign.SetActive(false);
break;
case ShopState.Busy:
break;
case ShopState.Close:
// 宣伝ボタン非表示
rewardButtonView.gameObject.SetActive(false);
if (market.CustomerList.Count(x => x.State.Value == CustomerState.Order) == 0)
{
BrotherPinkView.Instance.SetSleepy();
@ -250,13 +261,12 @@ public class MarketManager : MonoBehaviour
{
BrotherPinkView.Instance.SetSleepy();
closeSign.SetActive(true);
}).AddTo(shopStateCompositeDisposable);
}).AddTo(ShopClosedCompositeDisposable);
}
break;
default:
throw new ArgumentOutOfRangeException(nameof(state), state, null);
}
}).AddTo(this);
}
private void CoinEffect(int count)