From 2ac4eb8cef7eb6f49e5d7a1cdca56f14800c9096 Mon Sep 17 00:00:00 2001 From: kimura Date: Mon, 15 Nov 2021 14:00:54 +0900 Subject: [PATCH] =?UTF-8?q?=E6=99=82=E7=9F=AD=E3=83=9C=E3=82=BF=E3=83=B3?= =?UTF-8?q?=E3=81=AE=E8=B3=BC=E8=AA=AD=E5=A0=B4=E6=89=80=E5=A4=89=E6=9B=B4?= =?UTF-8?q?/=20=E3=83=AA=E3=83=95=E3=82=A1=E3=82=AF=E3=82=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Scenes/CornField/Scripts/CornField.cs | 103 +++++++++--------- 1 file changed, 52 insertions(+), 51 deletions(-) diff --git a/popcorn/Assets/MyGame/Scenes/CornField/Scripts/CornField.cs b/popcorn/Assets/MyGame/Scenes/CornField/Scripts/CornField.cs index b73ff46c..e921bcd1 100644 --- a/popcorn/Assets/MyGame/Scenes/CornField/Scripts/CornField.cs +++ b/popcorn/Assets/MyGame/Scenes/CornField/Scripts/CornField.cs @@ -102,11 +102,39 @@ public class CornField : MonoBehaviour SetCornField(); + // 強化ボタン upgradeButton.OnClickAsObservable().ThrottleFirst(TimeSpan.FromSeconds(.3f)).Subscribe(_ => { CornFieldReinforcement.ShowDialog(() => SetCornField()); }).AddTo(this); + // 時短ボタン + promoteGrowthButton.OnClickAsObservable().Subscribe(_ => + { + VibrationManager.Instance.PlayVibrationOnce(); + foreach (var plantLine in plantLines) + { + if (!(gameData.PlantLineDataList.FirstOrDefault(data => data.Type == plantLine.LineName) is PlantLineData plantLineData)) + { + continue; + } + for (int i = 0; i < plantLine.Seedlings.Count; i++) + { + if (Random.Range(0, 2) == 0) + { + continue; + } + var progressData = gameData.SeedlingDataList.First(data => data.type == plantLineData.Type).Seedlings[i]; + progressData.FirstTime = progressData.FirstTime.AddSeconds(-1); + plantLine.Seedlings[i].PromoteGrowth(progressData.FirstTime); + } + } + + // 設定のセーブ + GameDataManager.SaveGameData(); + }).AddTo(this); + + // 肥料ボタン fertilizerButtonView.RewardButton.ThrottleFirst(TimeSpan.FromSeconds(.3f)).Subscribe(_ => { GetRewardDialog.ShowCornFieldDialog(() => @@ -132,24 +160,23 @@ public class CornField : MonoBehaviour // 既存の株は成長済みにする foreach (var plantLine in plantLines) { - if (gameData.PlantLineDataList.FirstOrDefault(data => data.Type == plantLine.LineName) is PlantLineData plantLineData) + if (!(gameData.PlantLineDataList.FirstOrDefault(data => data.Type == plantLine.LineName) is PlantLineData plantLineData)) { - for (int i = 0; i < plantLine.Seedlings.Count; i++) - { - var progressData = gameData.SeedlingDataList.First(data => data.type == plantLineData.Type).Seedlings[i]; - var seedling = plantLine.Seedlings[i]; - progressData.FirstTime = progressData.FirstTime.AddSeconds(-maxPeriod); - seedling.PromoteGrowth(progressData.FirstTime); - // エフェクト出すだけ - // push.Subscribe(unit => - // { - // if (Random.value < .5f) - // { - // seedling.PromoteGrowth(progressData.FirstTime); - // } - // }).AddTo(this); - - } + continue; + } + for (int i = 0; i < plantLine.Seedlings.Count; i++) + { + var progressData = gameData.SeedlingDataList.First(data => data.type == plantLineData.Type).Seedlings[i]; + progressData.FirstTime = progressData.FirstTime.AddSeconds(-maxPeriod); + plantLine.Seedlings[i].PromoteGrowth(progressData.FirstTime); + // エフェクト出すだけ + // push.Subscribe(unit => + // { + // if (Random.value < .5f) + // { + // seedling.PromoteGrowth(progressData.FirstTime); + // } + // }).AddTo(this); } } Observable.Timer(TimeSpan.FromSeconds(1f), TimeSpan.FromSeconds(1f)) @@ -256,7 +283,7 @@ public class CornField : MonoBehaviour }).AddTo(this); } - public void SetCornField(bool useFertilizer = false) + private void SetCornField(bool useFertilizer = false) { compositeDisposable.Clear(); var gameData = GameDataManager.GameData; @@ -369,22 +396,22 @@ public class CornField : MonoBehaviour // 新しい苗 var newGene = GenerateSeedlingGene(plantLineData.Level); -#if DEVELOPMENT_BUILD || UNITY_EDITOR - if (UsayaStorageManager.LoadOrDefault(UsayaStorageFilename.Settings_Data, "DebugFastGrowing", false)) - { - newGene.Period = newGene.Period / 3; - } -#endif if (useFertilizer) { newGene.Period = Random.Range(2, 4); } - seedling.SetSeedlingGene(newGene.FirstTime, newGene.Period, newGene.Level); progressData.Level = newGene.Level; progressData.Period = newGene.Period; progressData.FirstTime = newGene.FirstTime; GameDataManager.SaveGameData(); + seedling.SetSeedlingGene(newGene.FirstTime, newGene.Period, newGene.Level); +#if DEVELOPMENT_BUILD || UNITY_EDITOR + if (UsayaStorageManager.LoadOrDefault(UsayaStorageFilename.Settings_Data, "DebugFastGrowing", false)) + { + seedling.SetSeedlingGene(newGene.FirstTime, newGene.Period / 3, newGene.Level); + } +#endif // チュートリアル時新しい苗を隠す if (gameData.isFirstPlay) { @@ -394,32 +421,6 @@ public class CornField : MonoBehaviour } } - // 時短ボタン - promoteGrowthButton.OnClickAsObservable().Subscribe(_ => - { - VibrationManager.Instance.PlayVibrationOnce(); - foreach (var plantLine in plantLines) - { - if (gameData.PlantLineDataList.FirstOrDefault(data => data.Type == plantLine.LineName) is PlantLineData plantLineData) - { - for (int i = 0; i < plantLine.Seedlings.Count; i++) - { - if (Random.Range(0, 2) == 0) - { - continue; - } - var progressData = gameData.SeedlingDataList.First(data => data.type == plantLineData.Type).Seedlings[i]; - var seedling = plantLine.Seedlings[i]; - progressData.FirstTime = progressData.FirstTime.AddSeconds(-1); - seedling.PromoteGrowth(progressData.FirstTime); - } - } - } - - // 設定のセーブ - GameDataManager.SaveGameData(); - }).AddTo(compositeDisposable); - // 強化ボタン通知 var upgradePrice = int.MaxValue; if (fieldData.FirstOrDefault(x => x.Type == CornFieldUpgradeType.Machine && x.level == gameData.MachineLevel + 1)?.price is int nextMachinePrice)