Merge branch 'feture/update_ver1.1.0' of bitbucket.org:usaya/popcorn into feture/update_ver1.1.0
This commit is contained in:
commit
3cb8c5a763
|
|
@ -45,6 +45,40 @@ public class CookingResult : MonoBehaviour
|
||||||
result.Value = resultData;
|
result.Value = resultData;
|
||||||
SetData(productData, rarityData, viewType);
|
SetData(productData, rarityData, viewType);
|
||||||
|
|
||||||
|
// 材料消費&仮獲得
|
||||||
|
RecipeDetailView.ConsumeMaterial(productData);
|
||||||
|
if (viewType == ProductViewType.Default)
|
||||||
|
{
|
||||||
|
result.Subscribe(cornResult =>
|
||||||
|
{
|
||||||
|
// 仮獲得データ登録
|
||||||
|
GameDataManager.GameData.WaitAddStock.FlavorId = productData.id;
|
||||||
|
GameDataManager.GameData.WaitAddStock.Stock = cornResult == CornResult.Failure ? 0 : productData.volume;
|
||||||
|
GameDataManager.GameData.WaitAddStock.Rarity = cornResult == CornResult.Perfect ? rarityData.Rarity : ProductRarity.Normal;
|
||||||
|
GameDataManager.SaveGameData();
|
||||||
|
}).AddTo(this);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// 大量注文時処理
|
||||||
|
var materialNumber = LocalCacheManager.Load<int>(BulkOrder.MaterialNumberTag);
|
||||||
|
result.Where(x => x != CornResult.Failure ).Subscribe(cornResult =>
|
||||||
|
{
|
||||||
|
if (!(GameDataManager.GameData.CompletedProductList.FirstOrDefault(data => data.Number == materialNumber) is BulkOrderResultData bulkOrderResultData))
|
||||||
|
{
|
||||||
|
bulkOrderResultData = new BulkOrderResultData
|
||||||
|
{
|
||||||
|
Number = materialNumber
|
||||||
|
};
|
||||||
|
GameDataManager.GameData.CompletedProductList.Add(bulkOrderResultData);
|
||||||
|
}
|
||||||
|
// レア上書き
|
||||||
|
bulkOrderResultData.Rarity = cornResult == CornResult.Perfect ? rarityData.Rarity : ProductRarity.Normal;
|
||||||
|
GameDataManager.SaveGameData();
|
||||||
|
}).AddTo(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
// チュートリアル時
|
||||||
if (!GameDataManager.GameData.FinishedFlags.HasFlag(TutorialFlag.FirstPlay))
|
if (!GameDataManager.GameData.FinishedFlags.HasFlag(TutorialFlag.FirstPlay))
|
||||||
{
|
{
|
||||||
// ボタン非表示
|
// ボタン非表示
|
||||||
|
|
@ -64,55 +98,31 @@ public class CookingResult : MonoBehaviour
|
||||||
}).AddTo(this);
|
}).AddTo(this);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ボタン表示
|
||||||
successAction?.Invoke();
|
successAction?.Invoke();
|
||||||
okButton.gameObject.SetActive(true);
|
okButton.gameObject.SetActive(true);
|
||||||
okButton.OnClickAsObservable().Take(1).Subscribe(_ =>
|
okButton.OnClickAsObservable().Take(1).Subscribe(_ =>
|
||||||
{
|
{
|
||||||
// 獲得、遷移
|
// 獲得、遷移
|
||||||
AddStock(productData, resultData == CornResult.Perfect ? rarityData.Rarity : ProductRarity.Normal);
|
MoveStock(GameDataManager.GameData.WaitAddStock);
|
||||||
|
GameDataManager.SaveGameData();
|
||||||
TransitionManager.Instance.LoadScene(GameScenes.Main);
|
TransitionManager.Instance.LoadScene(GameScenes.Main);
|
||||||
}).AddTo(this);
|
}).AddTo(this);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
result.Subscribe(r =>
|
// UI用
|
||||||
|
result.Subscribe(cornResult =>
|
||||||
{
|
{
|
||||||
SetUI(r, viewType, CheckMakeOne(r, productData));
|
SetUI(cornResult, viewType, CheckMakeOne(cornResult, productData));
|
||||||
if (r != CornResult.Failure)
|
if (cornResult != CornResult.Failure)
|
||||||
{
|
{
|
||||||
successAction?.Invoke();
|
successAction?.Invoke();
|
||||||
}
|
}
|
||||||
}).AddTo(this);
|
}).AddTo(this);
|
||||||
|
|
||||||
// 各種ボタン押下後、獲得処理
|
// 大成功にする
|
||||||
if (viewType == ProductViewType.Default)
|
|
||||||
{
|
|
||||||
Market.Instance.IsPause.Value = true;
|
|
||||||
okButton.OnClickAsObservable().Take(1).Subscribe(_ =>
|
|
||||||
{
|
|
||||||
// 獲得、遷移
|
|
||||||
AddStock(productData, result.Value == CornResult.Perfect ? rarityData.Rarity : ProductRarity.Normal);
|
|
||||||
Market.Instance.IsPause.Value = false;
|
|
||||||
TransitionManager.Instance.LoadScene(GameScenes.Main);
|
|
||||||
}).AddTo(this);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
// 大量注文時処理
|
|
||||||
var materialNumber = LocalCacheManager.Load<int>(BulkOrder.MaterialNumberTag);
|
|
||||||
okButton.OnClickAsObservable().Take(1).Subscribe(_ =>
|
|
||||||
{
|
|
||||||
// 獲得、遷移
|
|
||||||
if (!GameDataManager.GameData.CompletedProductList.Exists(data => data.Number == materialNumber))
|
|
||||||
{
|
|
||||||
var rarity = result.Value == CornResult.Perfect ? rarityData.Rarity : ProductRarity.Normal;
|
|
||||||
GameDataManager.GameData.CompletedProductList.Add(new BulkOrderResultData(){Number = materialNumber, Rarity = rarity});
|
|
||||||
GameDataManager.SaveGameData();
|
|
||||||
}
|
|
||||||
TransitionManager.Instance.LoadScene(GameScenes.Main);
|
|
||||||
}).AddTo(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
perfectButton.OnClickAsObservable().ThrottleFirst(TimeSpan.FromSeconds(.3f)).Subscribe(_ =>
|
perfectButton.OnClickAsObservable().ThrottleFirst(TimeSpan.FromSeconds(.3f)).Subscribe(_ =>
|
||||||
{
|
{
|
||||||
// 広告視聴後、結果上書き
|
// 広告視聴後、結果上書き
|
||||||
|
|
@ -121,22 +131,47 @@ public class CookingResult : MonoBehaviour
|
||||||
result.Value = CornResult.Perfect;
|
result.Value = CornResult.Perfect;
|
||||||
});
|
});
|
||||||
}).AddTo(this);
|
}).AddTo(this);
|
||||||
destructionButton.OnClickAsObservable().Take(1).Subscribe(_ =>
|
|
||||||
|
// 獲得する
|
||||||
|
if (viewType == ProductViewType.Default)
|
||||||
{
|
{
|
||||||
// 遷移
|
Market.Instance.IsPause.Value = true;
|
||||||
|
okButton.OnClickAsObservable().Take(1).Subscribe(_ =>
|
||||||
|
{
|
||||||
|
// 獲得、遷移
|
||||||
|
MoveStock(GameDataManager.GameData.WaitAddStock);
|
||||||
|
GameDataManager.SaveGameData();
|
||||||
|
Market.Instance.IsPause.Value = false;
|
||||||
TransitionManager.Instance.LoadScene(GameScenes.Main);
|
TransitionManager.Instance.LoadScene(GameScenes.Main);
|
||||||
}).AddTo(this);
|
}).AddTo(this);
|
||||||
|
|
||||||
|
// もう一度作る
|
||||||
makeOneButton.OnClickAsObservable().Take(1).Subscribe(_ =>
|
makeOneButton.OnClickAsObservable().Take(1).Subscribe(_ =>
|
||||||
{
|
{
|
||||||
// 獲得、遷移
|
// 獲得、遷移
|
||||||
AddStock(productData, result.Value == CornResult.Perfect ? rarityData.Rarity : ProductRarity.Normal);
|
MoveStock(GameDataManager.GameData.WaitAddStock);
|
||||||
RecipeDetailView.ConsumeMaterial(productData);
|
GameDataManager.SaveGameData();
|
||||||
Market.Instance.IsPause.Value = false;
|
Market.Instance.IsPause.Value = false;
|
||||||
SoundManager.Instance.ChangeVolumeUniqueBGM(1f);
|
SoundManager.Instance.ChangeVolumeUniqueBGM(1f);
|
||||||
TransitionManager.Instance.UnloadScene(GameScenes.CookingResults);
|
TransitionManager.Instance.UnloadScene(GameScenes.CookingResults);
|
||||||
LocalCacheManager.Load<Action>(PopcornGameManager.RestartCallbackTag, null)?.Invoke();
|
LocalCacheManager.Load<Action>(PopcornGameManager.RestartCallbackTag, null)?.Invoke();
|
||||||
}).AddTo(this);
|
}).AddTo(this);
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// 大量注文時処理
|
||||||
|
okButton.OnClickAsObservable().Take(1).Subscribe(_ =>
|
||||||
|
{
|
||||||
|
TransitionManager.Instance.LoadScene(GameScenes.Main);
|
||||||
|
}).AddTo(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 破棄する
|
||||||
|
destructionButton.OnClickAsObservable().Take(1).Subscribe(_ =>
|
||||||
|
{
|
||||||
|
TransitionManager.Instance.LoadScene(GameScenes.Main);
|
||||||
|
}).AddTo(this);
|
||||||
|
}
|
||||||
|
|
||||||
private void SetData(ProductData recipe, RarityData rarity, ProductViewType viewType)
|
private void SetData(ProductData recipe, RarityData rarity, ProductViewType viewType)
|
||||||
{
|
{
|
||||||
|
|
@ -210,17 +245,33 @@ public class CookingResult : MonoBehaviour
|
||||||
return hasSpace && hasMaterials;
|
return hasSpace && hasMaterials;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void MoveStock(ProductStockData productStockData)
|
||||||
|
{
|
||||||
|
AddStock(productStockData);
|
||||||
|
productStockData.Stock = 0;
|
||||||
|
}
|
||||||
|
|
||||||
public static void AddStock(ProductData productData, ProductRarity rarity = ProductRarity.Normal)
|
public static void AddStock(ProductData productData, ProductRarity rarity = ProductRarity.Normal)
|
||||||
{
|
{
|
||||||
|
AddStock(new ProductStockData{FlavorId = productData.id, Stock = productData.volume, Rarity = rarity});
|
||||||
|
GameDataManager.SaveGameData();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void AddStock(ProductStockData productStockData)
|
||||||
|
{
|
||||||
|
if (productStockData.Stock == 0)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
var gameData = GameDataManager.GameData;
|
var gameData = GameDataManager.GameData;
|
||||||
// 店頭の空きに追加
|
// 店頭の空きに追加
|
||||||
var remain = productData.volume;
|
var remain = productStockData.Stock;
|
||||||
var shopSpace = Market.ShopStockCount - gameData.ShopStock.Count;
|
var shopSpace = Market.ShopStockCount - gameData.ShopStock.Count;
|
||||||
var stockCount = Mathf.Min(shopSpace, remain);
|
var stockCount = Mathf.Min(shopSpace, remain);
|
||||||
gameData.ShopStock.AddRange(Enumerable.Repeat(new ProductStockData
|
gameData.ShopStock.AddRange(Enumerable.Repeat(new ProductStockData
|
||||||
{
|
{
|
||||||
FlavorId = productData.id,
|
FlavorId = productStockData.FlavorId,
|
||||||
Rarity = rarity,
|
Rarity = productStockData.Rarity,
|
||||||
}, stockCount));
|
}, stockCount));
|
||||||
remain -= stockCount;
|
remain -= stockCount;
|
||||||
// ShopStockに補充された場合、DisplayFlavors更新
|
// ShopStockに補充された場合、DisplayFlavors更新
|
||||||
|
|
@ -235,7 +286,7 @@ public class CookingResult : MonoBehaviour
|
||||||
// 空きのタンクを確認
|
// 空きのタンクを確認
|
||||||
gameData.StorageTanks
|
gameData.StorageTanks
|
||||||
.Select((tank, i) => (tank, i))
|
.Select((tank, i) => (tank, i))
|
||||||
.Where(x => x.tank.IsEmpty || x.tank.FlavorId == productData.id && !x.tank.IsFull)
|
.Where(x => x.tank.IsEmpty || x.tank.FlavorId == productStockData.FlavorId && !x.tank.IsFull)
|
||||||
.Select(x => (x.i, space: x.tank.Capacity - x.tank.Stock))
|
.Select(x => (x.i, space: x.tank.Capacity - x.tank.Stock))
|
||||||
.OrderBy(x => x.space)
|
.OrderBy(x => x.space)
|
||||||
.ToList()
|
.ToList()
|
||||||
|
|
@ -248,14 +299,13 @@ public class CookingResult : MonoBehaviour
|
||||||
// タンクが空ならフレーバー設定
|
// タンクが空ならフレーバー設定
|
||||||
if (gameData.StorageTanks[x.i].IsEmpty)
|
if (gameData.StorageTanks[x.i].IsEmpty)
|
||||||
{
|
{
|
||||||
gameData.StorageTanks[x.i].FlavorId = productData.id;
|
gameData.StorageTanks[x.i].FlavorId = productStockData.FlavorId;
|
||||||
}
|
}
|
||||||
// タンクに追加
|
// タンクに追加
|
||||||
stockCount = Mathf.Min(x.space, remain);
|
stockCount = Mathf.Min(x.space, remain);
|
||||||
gameData.StorageTanks[x.i].AddStock(rarity, stockCount);
|
gameData.StorageTanks[x.i].AddStock(productStockData.Rarity, stockCount);
|
||||||
remain -= stockCount;
|
remain -= stockCount;
|
||||||
});
|
});
|
||||||
GameDataManager.SaveGameData();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -83,9 +83,11 @@ public class KitchenManager : MonoBehaviour
|
||||||
gameData.Material.Add(materialData);
|
gameData.Material.Add(materialData);
|
||||||
}
|
}
|
||||||
materialData.Amount++;
|
materialData.Amount++;
|
||||||
|
gameData.StorageTanks.Clear();
|
||||||
|
gameData.ShopStock.Clear();
|
||||||
// ミッションカウンターリセット
|
// ミッションカウンターリセット
|
||||||
GameDataManager.GameData.ResetNormalTotalCount();
|
gameData.ResetNormalTotalCount();
|
||||||
GameDataManager.GameData.ResetDailyTotalCount();
|
gameData.ResetDailyTotalCount();
|
||||||
|
|
||||||
// 店舗レベル1達成表示
|
// 店舗レベル1達成表示
|
||||||
ShopLevelUp.ShowDialog(1, () =>
|
ShopLevelUp.ShowDialog(1, () =>
|
||||||
|
|
|
||||||
|
|
@ -36,8 +36,6 @@ public class ShopLevelUp : MonoBehaviour
|
||||||
achievementText.text = shopLevelList.FirstOrDefault(data => data.shopLevel == shopLevel)?.Achievement ?? "";
|
achievementText.text = shopLevelList.FirstOrDefault(data => data.shopLevel == shopLevel)?.Achievement ?? "";
|
||||||
recipeNameText.text = productData?.Name ?? "";
|
recipeNameText.text = productData?.Name ?? "";
|
||||||
|
|
||||||
closeButton.OnClickAsObservable().Take(1).Subscribe(_ =>
|
|
||||||
{
|
|
||||||
GameDataManager.GameData.ViewedShopLevel = shopLevel;
|
GameDataManager.GameData.ViewedShopLevel = shopLevel;
|
||||||
GameDataManager.GameData.OrderConditionCount = 0;
|
GameDataManager.GameData.OrderConditionCount = 0;
|
||||||
// レシピ開放
|
// レシピ開放
|
||||||
|
|
@ -47,7 +45,10 @@ public class ShopLevelUp : MonoBehaviour
|
||||||
GameDataManager.GameData.DailyRecipeGetCount++;
|
GameDataManager.GameData.DailyRecipeGetCount++;
|
||||||
}
|
}
|
||||||
GameDataManager.SaveGameData();
|
GameDataManager.SaveGameData();
|
||||||
|
HeartMeter.Instance.SetShopLevel(GameDataManager.GameData.ViewedShopLevel, true);
|
||||||
|
|
||||||
|
closeButton.OnClickAsObservable().Take(1).Subscribe(_ =>
|
||||||
|
{
|
||||||
transform.SetLocalScale(0);
|
transform.SetLocalScale(0);
|
||||||
backgroundAnimator.SetTrigger(CloseTrigger);
|
backgroundAnimator.SetTrigger(CloseTrigger);
|
||||||
this.CallWaitForSeconds(.25f, () =>
|
this.CallWaitForSeconds(.25f, () =>
|
||||||
|
|
@ -83,14 +84,12 @@ public class ShopLevelUp : MonoBehaviour
|
||||||
{
|
{
|
||||||
UpdateDialog.ShowDialog(() =>
|
UpdateDialog.ShowDialog(() =>
|
||||||
{
|
{
|
||||||
HeartMeter.Instance.SetShopLevel(GameDataManager.GameData.ViewedShopLevel, true);
|
|
||||||
LocalCacheManager.Load<Action>(CallbackTag, null)?.Invoke();
|
LocalCacheManager.Load<Action>(CallbackTag, null)?.Invoke();
|
||||||
LocalCacheManager.Remove(CallbackTag);
|
LocalCacheManager.Remove(CallbackTag);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
HeartMeter.Instance.SetShopLevel(GameDataManager.GameData.ViewedShopLevel, true);
|
|
||||||
LocalCacheManager.Load<Action>(CallbackTag, null)?.Invoke();
|
LocalCacheManager.Load<Action>(CallbackTag, null)?.Invoke();
|
||||||
LocalCacheManager.Remove(CallbackTag);
|
LocalCacheManager.Remove(CallbackTag);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -67,8 +67,6 @@ public class RecipeDetailView : MonoBehaviour
|
||||||
nextButton.OnClickAsObservable().Take(1).Subscribe(_ =>
|
nextButton.OnClickAsObservable().Take(1).Subscribe(_ =>
|
||||||
{
|
{
|
||||||
LocalCacheManager.Save(PopcornGameManager.PanDataTag, panSelector.SelectedPanData.Value);
|
LocalCacheManager.Save(PopcornGameManager.PanDataTag, panSelector.SelectedPanData.Value);
|
||||||
// 消費
|
|
||||||
ConsumeMaterial(data);
|
|
||||||
TransitionManager.Instance.LoadScene(GameScenes.Cooking);
|
TransitionManager.Instance.LoadScene(GameScenes.Cooking);
|
||||||
}).AddTo(this);
|
}).AddTo(this);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -142,6 +142,8 @@ public sealed class GameData {
|
||||||
public int WaitAddCoin;
|
public int WaitAddCoin;
|
||||||
[DataMember(Name = "Data41")]
|
[DataMember(Name = "Data41")]
|
||||||
public int WaitAddHeart;
|
public int WaitAddHeart;
|
||||||
|
[DataMember(Name = "Data42")]
|
||||||
|
public ProductStockData WaitAddStock;
|
||||||
|
|
||||||
// mission
|
// mission
|
||||||
[DataMember(Name = "Data1001")]
|
[DataMember(Name = "Data1001")]
|
||||||
|
|
@ -387,6 +389,7 @@ public sealed class GameData {
|
||||||
dailyMissionIdArray = dailyMissionIdArray ?? new int[0];
|
dailyMissionIdArray = dailyMissionIdArray ?? new int[0];
|
||||||
dailyMissionAchievedIdArray = dailyMissionAchievedIdArray ?? new int[0];
|
dailyMissionAchievedIdArray = dailyMissionAchievedIdArray ?? new int[0];
|
||||||
DailyTotalSalesList = DailyTotalSalesList ?? new List<ProductStockData>();
|
DailyTotalSalesList = DailyTotalSalesList ?? new List<ProductStockData>();
|
||||||
|
WaitAddStock = WaitAddStock ?? new ProductStockData{Rarity = ProductRarity.Normal};
|
||||||
}
|
}
|
||||||
private Dictionary<int, int> ArrayToDictionary(KeyValueOfintint[] array){
|
private Dictionary<int, int> ArrayToDictionary(KeyValueOfintint[] array){
|
||||||
var dictionary = new Dictionary<int, int>();
|
var dictionary = new Dictionary<int, int>();
|
||||||
|
|
|
||||||
|
|
@ -30,6 +30,8 @@ public sealed class InitializeUnitySettings : MonoBehaviour {
|
||||||
|
|
||||||
// 遅延させていたパラメータを追加
|
// 遅延させていたパラメータを追加
|
||||||
GameDataManager.GameData.MoveAllWaitValue();
|
GameDataManager.GameData.MoveAllWaitValue();
|
||||||
|
// 調理後リザルトでの仮獲得データを反映(タスクキル対策)
|
||||||
|
CookingResult.MoveStock(GameDataManager.GameData.WaitAddStock);
|
||||||
GameDataManager.SaveGameData();
|
GameDataManager.SaveGameData();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue