販売通知と補充通知を分けた/それに伴った変更
This commit is contained in:
parent
7c692ba915
commit
75e97396d3
|
|
@ -41,8 +41,10 @@ public class Market : SingletonMonoBehaviour<Market>
|
|||
|
||||
public Subject<int> SellObservable => sellObservable;
|
||||
private readonly Subject<int> sellObservable = new Subject<int>();
|
||||
public Subject<(bool isReorder, List<int> orders)> SellOrderSubject => sellOrderSubject;
|
||||
private readonly Subject<(bool isReorder, List<int> orders)> sellOrderSubject = new Subject<(bool, List<int>)>();
|
||||
public Subject<List<int>> SellOrderSubject => sellOrderSubject;
|
||||
private readonly Subject<List<int>> sellOrderSubject = new Subject<List<int>>();
|
||||
public Subject<(bool isReorder, List<int> refillList)> RefillSubject => refillSubject;
|
||||
private readonly Subject<(bool isReorder, List<int> refillList)> refillSubject = new Subject<(bool, List<int>)>();
|
||||
|
||||
private int orderIndex;
|
||||
private int oneByOneIndex = 0;
|
||||
|
|
@ -63,25 +65,23 @@ public class Market : SingletonMonoBehaviour<Market>
|
|||
StockFlavorLog();
|
||||
#endif
|
||||
|
||||
// 陳列
|
||||
displayFlavors = gameData.ShopStock.ToList();
|
||||
|
||||
// 売り順決定
|
||||
shuffledOrder = ShuffleOrder(displayFlavors.Count);
|
||||
// 陳列/売り順決定
|
||||
ReShuffle(gameData.ShopStock);
|
||||
|
||||
Observable.Interval(TimeSpan.FromSeconds(1f))
|
||||
.Where(_ => shuffledOrder.Count == 0)
|
||||
.Where(_ => gameData.ShopStock.Count > 0)
|
||||
.Subscribe(_ =>
|
||||
{
|
||||
#if UNITY_EDITOR || DEVELOPMENT_BUILD
|
||||
Debug.Log("displayFlavors updated");
|
||||
displayFlavors = gameData.ShopStock.ToList();
|
||||
shuffledOrder = ShuffleOrder(displayFlavors.Count);
|
||||
#endif
|
||||
ReShuffle(gameData.ShopStock);
|
||||
shopState.Value = ShopState.Open;
|
||||
});
|
||||
|
||||
// お店の状態設定
|
||||
shopState.Value = gameData.ShopStock.Count == 0 ? ShopState.Close : ShopState.Open;
|
||||
CheckStock(gameData.ShopStock);
|
||||
|
||||
// 購入リクエスト
|
||||
var maxOrder = orderPosisionObject.transform.childCount;
|
||||
|
|
@ -200,11 +200,12 @@ public class Market : SingletonMonoBehaviour<Market>
|
|||
this.CallWaitForSeconds(1.5f, () =>
|
||||
{
|
||||
sellObservable.OnNext(coin);
|
||||
sellOrderSubject.OnNext((isReorder, orders));
|
||||
shopState.Value = gameData.ShopStock.Count == 0 ? ShopState.Close : ShopState.Open;
|
||||
sellOrderSubject.OnNext(orders);
|
||||
CheckStock(gameData.ShopStock);
|
||||
|
||||
this.CallWaitForSeconds(1f, () =>
|
||||
{
|
||||
refillSubject.OnNext((isReorder, refillList));
|
||||
foreach (var controller in customers)
|
||||
{
|
||||
controller.SetPurchased();
|
||||
|
|
@ -331,7 +332,6 @@ public class Market : SingletonMonoBehaviour<Market>
|
|||
var count = CustomerList.Count(c => c.State.Value == CustomerState.Wait || c.State.Value == CustomerState.Order);
|
||||
if (count < BrotherPinkView.Instance.FewerBorder)
|
||||
{
|
||||
Debug.Log($"market set walk");
|
||||
BrotherPinkView.Instance.SetWalk();
|
||||
}
|
||||
}).AddTo(this);
|
||||
|
|
|
|||
|
|
@ -53,33 +53,32 @@ public class MarketManager : MonoBehaviour
|
|||
blueView.SellAction();
|
||||
}).AddTo(this);
|
||||
|
||||
market.SellOrderSubject.Subscribe(x =>
|
||||
market.SellOrderSubject.Subscribe(orders =>
|
||||
{
|
||||
// 販売アニメーション
|
||||
foreach (var order in x.orders)
|
||||
foreach (var order in orders)
|
||||
{
|
||||
cartView.SellStock(order);
|
||||
};
|
||||
}
|
||||
}).AddTo(this);
|
||||
|
||||
// 時間を開けて補充アニメーション
|
||||
this.CallWaitForSeconds(1f, () =>
|
||||
market.RefillSubject.Subscribe(x =>
|
||||
{
|
||||
stockView.SetStock(gameData.StorageTanks);
|
||||
if (x.isReorder)
|
||||
{
|
||||
stockView.SetStock(gameData.StorageTanks);
|
||||
if (gameData.ShopStock.Count == Market.ShopStockCount)
|
||||
// 陳列表示更新(陳列13=650ms,7=350ms)
|
||||
var stocks = market.ShuffledOrder.Select(i => (i, market.DisplayFlavors[i])).ToList();
|
||||
cartView.SetStock(stocks, true);
|
||||
}
|
||||
else
|
||||
{
|
||||
// 補充したフレーバーのスキンを設定
|
||||
foreach (var order in x.refillList)
|
||||
{
|
||||
// 補充したフレーバーのスキンを設定
|
||||
foreach (var order in x.orders)
|
||||
{
|
||||
cartView.Refill(order, market.DisplayFlavors[order]);
|
||||
}
|
||||
cartView.Refill(order, market.DisplayFlavors[order]);
|
||||
}
|
||||
else if (x.isReorder)
|
||||
{
|
||||
// 陳列表示更新(陳列13=650ms,7=350ms)
|
||||
var stocks = market.ShuffledOrder.Select(i => (i, market.DisplayFlavors[i])).ToList();
|
||||
cartView.SetStock(stocks, true);
|
||||
}
|
||||
});
|
||||
}
|
||||
}).AddTo(this);
|
||||
|
||||
// 開閉店
|
||||
|
|
|
|||
|
|
@ -12,7 +12,6 @@ public class ShopStockView : MonoBehaviour
|
|||
{
|
||||
var totalCapacity = tanks.Sum(x => x.Capacity);
|
||||
var totalStock = tanks.Sum(x => x.Stock);
|
||||
Debug.Log($"Tank:{totalStock}/{totalCapacity}");
|
||||
var newPos = popcornImage.transform.localPosition;
|
||||
newPos.y = Mathf.Lerp(minPosision, maxPosision, (float) totalStock / totalCapacity);
|
||||
popcornImage.transform.localPosition = newPos;
|
||||
|
|
|
|||
Loading…
Reference in New Issue