parent
							
								
									79adb82aa9
								
							
						
					
					
						commit
						7c692ba915
					
				|  | @ -159,6 +159,12 @@ public class CookingResult : MonoBehaviour | ||||||
|             Rarity = rarity, |             Rarity = rarity, | ||||||
|         }, stockCount)); |         }, stockCount)); | ||||||
|         remain -= stockCount; |         remain -= stockCount; | ||||||
|  |         // ShopStockに補充された場合、DisplayFlavors更新 | ||||||
|  |         if (stockCount > 0) | ||||||
|  |         { | ||||||
|  |             Market.Instance.RefillDisplayFlavors(gameData.ShopStock); | ||||||
|  |             Market.Instance.CheckStock(gameData.ShopStock); | ||||||
|  |         } | ||||||
| 
 | 
 | ||||||
|         // 空タンク並び替え |         // 空タンク並び替え | ||||||
|         gameData.StorageTanks = gameData.StorageTanks.OrderBy(tank => tank.IsEmpty).ToList(); |         gameData.StorageTanks = gameData.StorageTanks.OrderBy(tank => tank.IsEmpty).ToList(); | ||||||
|  |  | ||||||
|  | @ -182,7 +182,20 @@ public class Market : SingletonMonoBehaviour<Market> | ||||||
|                       $"orders:{orders.Count}  {string.Join(",", orders)}"); |                       $"orders:{orders.Count}  {string.Join(",", orders)}"); | ||||||
| #endif | #endif | ||||||
|             // 表示データ更新 |             // 表示データ更新 | ||||||
|             var isReorder = RefillDisplayFlavors(gameData.ShopStock, orders, shuffledOrder.Count); |             var isReorder = false; | ||||||
|  |             var refillList = new List<int>(); | ||||||
|  |             if (gameData.ShopStock.Count > shuffledOrder.Count) | ||||||
|  |             { | ||||||
|  |                 refillList = RefillDisplayFlavors(gameData.ShopStock); | ||||||
|  |             } | ||||||
|  |             else | ||||||
|  |             { | ||||||
|  |                 isReorder = CheckRemaining(gameData.ShopStock.Count); | ||||||
|  |                 if (isReorder) | ||||||
|  |                 { | ||||||
|  |                     ReShuffle(gameData.ShopStock); | ||||||
|  |                 } | ||||||
|  |             } | ||||||
| 
 | 
 | ||||||
|             this.CallWaitForSeconds(1.5f, () => |             this.CallWaitForSeconds(1.5f, () => | ||||||
|             { |             { | ||||||
|  | @ -446,34 +459,47 @@ public class Market : SingletonMonoBehaviour<Market> | ||||||
|         GameDataManager.SaveGameData(); |         GameDataManager.SaveGameData(); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     private bool RefillDisplayFlavors(List<ProductStockData> shopStock, List<int> orders, int remain) |     public List<int> RefillDisplayFlavors(List<ProductStockData> shopStock) | ||||||
|     { |     { | ||||||
|         // 補充された場合店頭のフレーバー入れ替え |         // 補充された場合店頭のフレーバー入れ替え | ||||||
|         if (shopStock.Count == ShopStockCount) |         var refillCount = shopStock.Count - shuffledOrder.Count; | ||||||
|  |         if (refillCount <= 0) | ||||||
|         { |         { | ||||||
|             shuffledOrder.AddRange(orders); |             return new List<int>(); | ||||||
|             var refillList = shopStock.GetRange(remain, orders.Count); |  | ||||||
|             for (int i = 0; i < orders.Count; i++) |  | ||||||
|             { |  | ||||||
|                 displayFlavors[orders[i]] = refillList[i]; |  | ||||||
|         } |         } | ||||||
|         } |         // 補充候補リスト | ||||||
|         else if (shopStock.Count <= 13 && shuffledOrder.Exists(x => x > 13)) |         var orders = Enumerable.Range(0, shopStock.Count).Except(shuffledOrder).ToList(); | ||||||
|         { |         var refillList = orders.OrderBy(_ => Random.value).ToList(); | ||||||
|  |         shuffledOrder.AddRange(refillList); | ||||||
|         displayFlavors = shopStock.ToList(); |         displayFlavors = shopStock.ToList(); | ||||||
|             shuffledOrder = ShuffleOrder(displayFlavors.Count); |         return refillList; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     private bool CheckRemaining(int currentShopStockCount) | ||||||
|  |     { | ||||||
|  |         if (currentShopStockCount <= 13 && shuffledOrder.Exists(x => x > 13)) | ||||||
|  |         { | ||||||
|             return true; |             return true; | ||||||
|         } |         } | ||||||
|         else if (shopStock.Count <= 7 && shuffledOrder.Exists(x => x > 7)) |         if (currentShopStockCount <= 7 && shuffledOrder.Exists(x => x > 7)) | ||||||
|         { |         { | ||||||
|             displayFlavors = shopStock.ToList(); |  | ||||||
|             shuffledOrder = ShuffleOrder(displayFlavors.Count); |  | ||||||
|             return true; |             return true; | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|         return false; |         return false; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  |     private void ReShuffle(List<ProductStockData> shopStock) | ||||||
|  |     { | ||||||
|  |         displayFlavors = shopStock.ToList(); | ||||||
|  |         shuffledOrder = ShuffleOrder(displayFlavors.Count); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public void CheckStock(List<ProductStockData> shopStock) | ||||||
|  |     { | ||||||
|  |         shopState.Value = shopStock.Count == 0 ? ShopState.Close : ShopState.Open; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|     public void AdClickAction() |     public void AdClickAction() | ||||||
|     { |     { | ||||||
|         customerFlow.StartAdWalker(); |         customerFlow.StartAdWalker(); | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue