商品が無い場合、宣伝ボタンを非表示にする処理を追加
This commit is contained in:
parent
a614121390
commit
4d787b7c8e
|
|
@ -25,9 +25,11 @@ public class MarketManager : MonoBehaviour
|
||||||
List<ProductData> productDataList;
|
List<ProductData> productDataList;
|
||||||
|
|
||||||
private readonly Subject<int> resetRefreshTimer = new Subject<int>();
|
private readonly Subject<int> resetRefreshTimer = new Subject<int>();
|
||||||
|
private readonly CompositeDisposable ShopClosedCompositeDisposable = new CompositeDisposable();
|
||||||
|
|
||||||
private void Start()
|
private void Start()
|
||||||
{
|
{
|
||||||
|
ShopClosedCompositeDisposable.AddTo(this);
|
||||||
resetRefreshTimer.AddTo(this);
|
resetRefreshTimer.AddTo(this);
|
||||||
market = Market.Instance;
|
market = Market.Instance;
|
||||||
|
|
||||||
|
|
@ -46,26 +48,25 @@ public class MarketManager : MonoBehaviour
|
||||||
var controller = market.SetTutorialCustomer();
|
var controller = market.SetTutorialCustomer();
|
||||||
walkerMask.SetTargetArrow(controller.transform);
|
walkerMask.SetTargetArrow(controller.transform);
|
||||||
controller.State
|
controller.State
|
||||||
.Where(x => x == CustomerState.Wait)
|
.FirstOrDefault(x => x == CustomerState.Wait)
|
||||||
.Take(1)
|
.Subscribe(_ => { }, () =>
|
||||||
.Subscribe(state => { }, () =>
|
|
||||||
{
|
{
|
||||||
walkerMask.SetArrowActive(false);
|
walkerMask.SetArrowActive(false);
|
||||||
}).AddTo(controller).AddTo(this);
|
}).AddTo(controller).AddTo(this);
|
||||||
walkerMask.SetTargetArrow(controller.transform);
|
|
||||||
controller.State
|
controller.State
|
||||||
.Where(x => x == CustomerState.EatingLeave)
|
.FirstOrDefault(x => x == CustomerState.EatingLeave)
|
||||||
.Delay(TimeSpan.FromSeconds(3f))
|
.Delay(TimeSpan.FromSeconds(3f))
|
||||||
.Take(1)
|
.Subscribe(_ => { }, () =>
|
||||||
.Subscribe(_ =>
|
|
||||||
{
|
{
|
||||||
// チュートリアル終了
|
// チュートリアル終了
|
||||||
gameData.FinishTutorial();
|
gameData.FinishTutorial();
|
||||||
GameDataManager.SaveGameData();
|
GameDataManager.SaveGameData();
|
||||||
walkerMask.gameObject.SetActive(false);
|
walkerMask.gameObject.SetActive(false);
|
||||||
resetRefreshTimer.OnNext((int) DateTime.FromBinary(gameData.increaseCustomerTime).Subtract(DateTime.UtcNow).TotalSeconds);
|
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);
|
}).AddTo(controller).AddTo(this);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -218,45 +219,54 @@ public class MarketManager : MonoBehaviour
|
||||||
}).AddTo(this);
|
}).AddTo(this);
|
||||||
|
|
||||||
// 開閉店
|
// 開閉店
|
||||||
CompositeDisposable shopStateCompositeDisposable = new CompositeDisposable();
|
market.CurrentShopState
|
||||||
shopStateCompositeDisposable.AddTo(this);
|
.Where(_ => !gameData.isFirstPlay)
|
||||||
market.CurrentShopState.Subscribe(state =>
|
.Subscribe(state =>
|
||||||
{
|
|
||||||
shopStateCompositeDisposable.Clear();
|
|
||||||
switch (state)
|
|
||||||
{
|
{
|
||||||
case ShopState.Open:
|
SetShopView(state);
|
||||||
BrotherPinkView.Instance.SetNormal();
|
}).AddTo(this);
|
||||||
closeSign.SetActive(false);
|
}
|
||||||
break;
|
|
||||||
case ShopState.Busy:
|
private void SetShopView(ShopState state)
|
||||||
break;
|
{
|
||||||
case ShopState.Close:
|
ShopClosedCompositeDisposable.Clear();
|
||||||
if (market.CustomerList.Count(x => x.State.Value == CustomerState.Order) == 0)
|
switch (state)
|
||||||
{
|
{
|
||||||
BrotherPinkView.Instance.SetSleepy();
|
case ShopState.Open:
|
||||||
closeSign.SetActive(true);
|
// 宣伝ボタン表示
|
||||||
}
|
rewardButtonView.gameObject.SetActive(true);
|
||||||
else
|
BrotherPinkView.Instance.SetNormal();
|
||||||
{
|
closeSign.SetActive(false);
|
||||||
// お客さんがいなくなったあと、閉店の看板を出す
|
break;
|
||||||
Observable.CombineLatest(
|
case ShopState.Busy:
|
||||||
market.CustomerList
|
break;
|
||||||
.Select(x => x.State)
|
case ShopState.Close:
|
||||||
.Where(x => x.Value == CustomerState.Order))
|
// 宣伝ボタン非表示
|
||||||
.FirstOrDefault(states => states.Count(x => x == CustomerState.Order) == 0)
|
rewardButtonView.gameObject.SetActive(false);
|
||||||
.Delay(TimeSpan.FromSeconds(2f))
|
if (market.CustomerList.Count(x => x.State.Value == CustomerState.Order) == 0)
|
||||||
.Subscribe(_ =>
|
{
|
||||||
{
|
BrotherPinkView.Instance.SetSleepy();
|
||||||
BrotherPinkView.Instance.SetSleepy();
|
closeSign.SetActive(true);
|
||||||
closeSign.SetActive(true);
|
}
|
||||||
}).AddTo(shopStateCompositeDisposable);
|
else
|
||||||
}
|
{
|
||||||
break;
|
// お客さんがいなくなったあと、閉店の看板を出す
|
||||||
default:
|
Observable.CombineLatest(
|
||||||
throw new ArgumentOutOfRangeException(nameof(state), state, null);
|
market.CustomerList
|
||||||
}
|
.Select(x => x.State)
|
||||||
}).AddTo(this);
|
.Where(x => x.Value == CustomerState.Order))
|
||||||
|
.FirstOrDefault(states => states.Count(x => x == CustomerState.Order) == 0)
|
||||||
|
.Delay(TimeSpan.FromSeconds(2f))
|
||||||
|
.Subscribe(_ =>
|
||||||
|
{
|
||||||
|
BrotherPinkView.Instance.SetSleepy();
|
||||||
|
closeSign.SetActive(true);
|
||||||
|
}).AddTo(ShopClosedCompositeDisposable);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
throw new ArgumentOutOfRangeException(nameof(state), state, null);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void CoinEffect(int count)
|
private void CoinEffect(int count)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue