自動調理ワールド対応

This commit is contained in:
kimura 2022-10-14 15:02:01 +09:00
parent 58e99c2c06
commit 9ceacd9400
3 changed files with 18 additions and 17 deletions

View File

@ -23,7 +23,7 @@ namespace MyGame.Scenes.Main.Scripts
private void Start() private void Start()
{ {
var (earnList, discardList) = LocalCacheManager.Load<(IReadOnlyList<ProductData>, IReadOnlyList<ProductData>)>(AutoCookCompleteProductsTag); var (earnList, discardList) = LocalCacheManager.Load<(IReadOnlyList<ProductData>, IReadOnlyList<ProductData>)>(AutoCookCompleteProductsTag);
var gameData = GameDataManager.GameData; var cityGameData = GameDataManager.GetCurrentCityGameData();
var autoCookDataList = SpreadsheetDataManager.Instance.GetBaseDataList<AutoCookData>(Const.AutoCookDataSheet); var autoCookDataList = SpreadsheetDataManager.Instance.GetBaseDataList<AutoCookData>(Const.AutoCookDataSheet);
var autoCookData = autoCookDataList.First(data => data.level == gameData.AutoCookLevel); var autoCookData = autoCookDataList.First(data => data.level == gameData.AutoCookLevel);
@ -41,15 +41,15 @@ namespace MyGame.Scenes.Main.Scripts
} }
// 自動調理セーブ // 自動調理セーブ
gameData.AutoCookProducts = Array.Empty<int>(); cityGameData.AutoCookProducts = Array.Empty<int>();
var maxLevel = autoCookDataList.Last().level; var maxLevel = autoCookDataList.Last().level;
if (gameData.AutoCookLevel < maxLevel) if (cityGameData.AutoCookLevel < maxLevel)
{ {
gameData.AutoCookUsesCount++; cityGameData.AutoCookUsesCount++;
if (gameData.AutoCookUsesCount >= autoCookData.clearCount) if (cityGameData.AutoCookUsesCount >= autoCookData.clearCount)
{ {
gameData.AutoCookUsesCount = 0; cityGameData.AutoCookUsesCount = 0;
gameData.AutoCookLevel++; cityGameData.AutoCookLevel++;
} }
} }
GameDataManager.SaveGameData(); GameDataManager.SaveGameData();

View File

@ -27,9 +27,10 @@ namespace MyGame.Scenes.Main.Scripts
private void Start() private void Start()
{ {
var gameData = GameDataManager.GameData; var globalGameData = GameDataManager.GameData;
var cityGameData = GameDataManager.GetCurrentCityGameData();
var autoCookDataList = SpreadsheetDataManager.Instance.GetBaseDataList<AutoCookData>(Const.AutoCookDataSheet); var autoCookDataList = SpreadsheetDataManager.Instance.GetBaseDataList<AutoCookData>(Const.AutoCookDataSheet);
var autoCookData = autoCookDataList.First(data => data.level == gameData.AutoCookLevel); var autoCookData = autoCookDataList.First(data => data.level == cityGameData.AutoCookLevel);
var maxLevel = autoCookDataList.Last().level; var maxLevel = autoCookDataList.Last().level;
var isMaxLevel = autoCookData.level >= maxLevel; var isMaxLevel = autoCookData.level >= maxLevel;
@ -49,20 +50,20 @@ namespace MyGame.Scenes.Main.Scripts
GetRewardDialog.ShowRewardVideo(GameScenes.AutomaticCookingMovie, AdManager.AD_PLACEMENT_AUTO, () => GetRewardDialog.ShowRewardVideo(GameScenes.AutomaticCookingMovie, AdManager.AD_PLACEMENT_AUTO, () =>
{ {
// 自動調理開始 // 自動調理開始
gameData.AutoCookFinishTime = DateTime.UtcNow.AddHours(autoCookData.duration).ToBinary(); cityGameData.AutoCookFinishTime = DateTime.UtcNow.AddHours(autoCookData.duration).ToBinary();
// レシピをランダムに並び替えて保存 // レシピをランダムに並び替えて保存
gameData.AutoCookProducts = gameData.MyRecipes.OrderBy(x => Random.value).ToArray(); cityGameData.AutoCookProducts = globalGameData.MyRecipes.OrderBy(x => Random.value).ToArray();
gameData.AddUseAutoCook(); globalGameData.AddUseAutoCook();
GameDataManager.SaveGameData(); GameDataManager.SaveGameData();
LocalCacheManager.Load<Action>(SuccessCallbackTag, null)?.Invoke(); LocalCacheManager.Load<Action>(SuccessCallbackTag, null)?.Invoke();
LocalCacheManager.Remove(SuccessCallbackTag); LocalCacheManager.Remove(SuccessCallbackTag);
}); });
}).AddTo(this); }).AddTo(this);
cookerLevelText.text = isMaxLevel ? "MAX" : $"{gameData.AutoCookLevel}"; cookerLevelText.text = isMaxLevel ? "MAX" : $"{cityGameData.AutoCookLevel}";
earnCountText.text = $"{autoCookData.earnCount}{ScriptLocalization.Unit.Amount}"; earnCountText.text = $"{autoCookData.earnCount}{ScriptLocalization.Unit.Amount}";
durationText.text = $"{autoCookData.duration}{ScriptLocalization.Unit.Hours}"; durationText.text = $"{autoCookData.duration}{ScriptLocalization.Unit.Hours}";
usesCountText.text = isMaxLevel ? "--/--" : $"{gameData.AutoCookUsesCount}/{autoCookData.clearCount}"; usesCountText.text = isMaxLevel ? "--/--" : $"{cityGameData.AutoCookUsesCount}/{autoCookData.clearCount}";
} }
public static void ShowDialog(Action onSuccess = null, Action onClose = null){ public static void ShowDialog(Action onSuccess = null, Action onClose = null){

View File

@ -58,9 +58,9 @@ namespace MyGame.Scenes.Main.Scripts
public static bool CheckComplete() public static bool CheckComplete()
{ {
var gameData = GameDataManager.GameData; var cityGameData = GameDataManager.GetCurrentCityGameData();
var remainingTime = DateTime.FromBinary(gameData.AutoCookFinishTime).Subtract(DateTime.UtcNow); var remainingTime = DateTime.FromBinary(cityGameData.AutoCookFinishTime).Subtract(DateTime.UtcNow);
return gameData.AutoCookProducts.Length != 0 && remainingTime.TotalSeconds <= 0; return cityGameData.AutoCookProducts.Length != 0 && remainingTime.TotalSeconds <= 0;
} }
public void SetActive(bool active) public void SetActive(bool active)