順番待ちを修正/再陳列時の表示を改善/お客さんのタップを改善

This commit is contained in:
kimura 2021-09-03 15:27:19 +09:00
parent 1919152687
commit 38ebc2010c
2 changed files with 38 additions and 8 deletions

View File

@ -150,7 +150,7 @@ public class Market : MonoBehaviour
}).AddTo(customerController); }).AddTo(customerController);
}).AddTo(this); }).AddTo(this);
requestSubject.BatchFrame(30, FrameCountType.Update).Subscribe(customers => requestSubject.BatchFrame().Subscribe(customers =>
{ {
if (gameData.ShopStock.Count == 0) if (gameData.ShopStock.Count == 0)
{ {
@ -161,7 +161,6 @@ public class Market : MonoBehaviour
var dontBuyCustomerList = new List<CustomerController>(); var dontBuyCustomerList = new List<CustomerController>();
foreach (var controller in customers) foreach (var controller in customers)
{ {
Debug.Log(shuffledOrder.Aggregate("", (s, i) => $"{s},{i}"));
// 売り切れ // 売り切れ
if (shuffledOrder.Count == 0) if (shuffledOrder.Count == 0)
{ {
@ -192,6 +191,10 @@ public class Market : MonoBehaviour
// 購入 // 購入
var flavors = orders.Select(x => (displayFlavors[x], 0)).ToList(); var flavors = orders.Select(x => (displayFlavors[x], 0)).ToList();
#if UNITY_EDITOR
Debug.Log($"bb order: {orders.Count} {orders.Aggregate("", (s, i) => $"{s},{i}")}");
Debug.Log($"bb shuffledOrder:{shuffledOrder.Count} {shuffledOrder.Aggregate("", (s, i) => $"{s},{i}")}");
#endif
coin += SellPopcorn(flavors); coin += SellPopcorn(flavors);
var remainStockCount = gameData.ShopStock.Count; var remainStockCount = gameData.ShopStock.Count;
@ -204,7 +207,6 @@ public class Market : MonoBehaviour
if (gameData.ShopStock.Count == ShopStockCount) if (gameData.ShopStock.Count == ShopStockCount)
{ {
shuffledOrder.AddRange(orders); shuffledOrder.AddRange(orders);
Debug.Log($"remain {remainStockCount}, order {orders.Count}");
var stock = gameData.ShopStock.GetRange(remainStockCount, orders.Count).ToArray(); var stock = gameData.ShopStock.GetRange(remainStockCount, orders.Count).ToArray();
for (int i = 0; i < orders.Count; i++) for (int i = 0; i < orders.Count; i++)
{ {
@ -230,6 +232,7 @@ public class Market : MonoBehaviour
{ {
cartView.SellStock(order); cartView.SellStock(order);
} }
blueView.SellAction(); blueView.SellAction();
// コイン獲得 // コイン獲得
CoinManager.Instance.AddCoinWithEffect(coin, () => { }); CoinManager.Instance.AddCoinWithEffect(coin, () => { });
@ -261,7 +264,26 @@ public class Market : MonoBehaviour
} }
else if (setStockFlag) else if (setStockFlag)
{ {
cartView.SetStock(displayFlavors); #if UNITY_EDITOR
Debug.Log($"bb setStockFlag {displayFlavors.Count} {shuffledOrder.Count}");
#endif
// 陳列
cartView.ResetDisplay();
for (int i = 0; i < displayFlavors.Count; i++)
{
var index = i;
this.CallWaitForSeconds(.05f * i, () =>
{
if (!shuffledOrder.Contains(index))
{
#if UNITY_EDITOR
Debug.Log($"bb no refill");
#endif
return;
}
cartView.Refill(index, displayFlavors[index]);
});
}
} }
}); });
}); });
@ -340,19 +362,28 @@ public class Market : MonoBehaviour
} }
}).AddTo(customerController); }).AddTo(customerController);
var customerObject = customer.transform.GetChild(0).gameObject;
if (x.isCustomer) if (x.isCustomer)
{ {
// 購入客リスト追加 // 購入客リスト追加
customerList.Add(customerController); customerList.Add(customerController);
if (customerObject.TryGetComponent(typeof(Collider2D), out var target))
{
Destroy(target);
}
} }
else else
{ {
// 歩行者はタップ後購入客 // 歩行者はタップ後購入客
customerController.ChangeCustomerState(CustomerState.Walk); customerController.ChangeCustomerState(CustomerState.Walk);
var eventTrigger = customer.transform.GetChild(0).gameObject.AddComponent<ObservableEventTrigger>(); var eventTrigger = customerObject.AddComponent<ObservableEventTrigger>();
eventTrigger.OnPointerClickAsObservable().Take(1).Subscribe(_ => eventTrigger.OnPointerClickAsObservable().Take(1).Subscribe(_ =>
{ {
customerList.Add(customerController); customerList.Add(customerController);
if (customerObject.TryGetComponent(typeof(Collider2D), out var target))
{
Destroy(target);
}
}).AddTo(customerController); }).AddTo(customerController);
} }
}).AddTo(this); }).AddTo(this);
@ -366,8 +397,7 @@ public class Market : MonoBehaviour
{ {
return 0; return 0;
} }
Debug.Log($"sellCount:{flavors.Count} {shuffledOrder.Count}");
// フレーバーを売る // フレーバーを売る
var coin = 0; var coin = 0;
foreach (var flavorData in flavors) foreach (var flavorData in flavors)

View File

@ -6,7 +6,7 @@ public class MarketCartView : MonoBehaviour
{ {
[SerializeField] private List<MarketPopcornView> popcornPositions; [SerializeField] private List<MarketPopcornView> popcornPositions;
private void ResetDisplay() public void ResetDisplay()
{ {
foreach (var popcorn in popcornPositions) foreach (var popcorn in popcornPositions)
{ {