From 3108138fc502797cd89868ccbe99e6fd1866d6df Mon Sep 17 00:00:00 2001 From: kimura Date: Fri, 12 Nov 2021 14:30:30 +0900 Subject: [PATCH] =?UTF-8?q?=E7=95=91=E3=81=AE=E5=BC=B7=E5=8C=96=E9=80=9A?= =?UTF-8?q?=E7=9F=A5=E3=82=92=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../MyGame/Scenes/CornField/CornField.unity | 7 +++++ .../Scenes/CornField/Scripts/CornField.cs | 30 +++++++++++++++++-- .../Scripts/CornFieldReinforcement.cs | 10 +++++-- 3 files changed, 42 insertions(+), 5 deletions(-) diff --git a/popcorn/Assets/MyGame/Scenes/CornField/CornField.unity b/popcorn/Assets/MyGame/Scenes/CornField/CornField.unity index 12934868..29ec9da7 100644 --- a/popcorn/Assets/MyGame/Scenes/CornField/CornField.unity +++ b/popcorn/Assets/MyGame/Scenes/CornField/CornField.unity @@ -2386,6 +2386,7 @@ MonoBehaviour: sideButtons: {fileID: 1735316554} promoteGrowthButton: {fileID: 730756546} upgradeButton: {fileID: 974444277} + upgradeButtonBadge: {fileID: 737572416} harvestEffectPrefab: {fileID: 3900911687800301846, guid: e9a7e2b2f003d44fab5926ca6ec6d728, type: 3} harvestPrefab: {fileID: 8524901521850801684, guid: e642499b3643dab4ba05b02e8c6bde1c, @@ -2593,6 +2594,12 @@ RectTransform: type: 3} m_PrefabInstance: {fileID: 737572414} m_PrefabAsset: {fileID: 0} +--- !u!1 &737572416 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 9056949049436837036, guid: f8587bb162250fa48947d648e934781e, + type: 3} + m_PrefabInstance: {fileID: 737572414} + m_PrefabAsset: {fileID: 0} --- !u!1 &769574933 GameObject: m_ObjectHideFlags: 0 diff --git a/popcorn/Assets/MyGame/Scenes/CornField/Scripts/CornField.cs b/popcorn/Assets/MyGame/Scenes/CornField/Scripts/CornField.cs index 76aa4df8..b73ff46c 100644 --- a/popcorn/Assets/MyGame/Scenes/CornField/Scripts/CornField.cs +++ b/popcorn/Assets/MyGame/Scenes/CornField/Scripts/CornField.cs @@ -26,6 +26,7 @@ public class CornField : MonoBehaviour [SerializeField] private GameObject sideButtons; [SerializeField] private Button promoteGrowthButton; [SerializeField] private Button upgradeButton; + [SerializeField] private GameObject upgradeButtonBadge; [SerializeField] private GameObject harvestEffectPrefab; [SerializeField] private GameObject harvestPrefab; [SerializeField] private Transform harvestSpawnTarget; @@ -103,8 +104,7 @@ public class CornField : MonoBehaviour upgradeButton.OnClickAsObservable().ThrottleFirst(TimeSpan.FromSeconds(.3f)).Subscribe(_ => { - LocalCacheManager.Save(CornFieldReinforcement.CornFieldResetCallbackTag, new Action(() => SetCornField())); - TransitionManager.Instance.LoadSceneAdditive(GameScenes.Reinforcement); + CornFieldReinforcement.ShowDialog(() => SetCornField()); }).AddTo(this); fertilizerButtonView.RewardButton.ThrottleFirst(TimeSpan.FromSeconds(.3f)).Subscribe(_ => @@ -309,7 +309,6 @@ public class CornField : MonoBehaviour } GameDataManager.SaveGameData(); - // セーブデータから畑を復元 foreach (var plantLine in plantLines) { @@ -420,6 +419,31 @@ public class CornField : MonoBehaviour // 設定のセーブ 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) + { + upgradePrice = Mathf.Min(upgradePrice, nextMachinePrice); + } + foreach (var plantLine in plantLines) + { + var upgradeType = FieldUpgradeData.PlantTypeToUpgradeType(plantLine.LineName); + var nextRank = CornFieldRank.Rank1; + if (gameData.PlantLineDataList.FirstOrDefault(data => data.Type == plantLine.LineName) is PlantLineData plantLineData) + { + if (plantLineData.Level == CornFieldRank.Rank3) + { + continue; + } + nextRank = CornFieldReinforcement.GetNextRank(plantLineData.Level); + } + if (fieldData.FirstOrDefault(x => x.Type == upgradeType && x.level == (int) nextRank)?.price is int nextPrice) + { + upgradePrice = Mathf.Min(upgradePrice, nextPrice); + } + } + upgradeButtonBadge.SetActive(upgradePrice <= CoinManager.Instance.OwnCoin); } private IDisposable SetFertilizerTimer(int time) diff --git a/popcorn/Assets/MyGame/Scenes/CornField/Scripts/CornFieldReinforcement.cs b/popcorn/Assets/MyGame/Scenes/CornField/Scripts/CornFieldReinforcement.cs index ab682ed6..c91f4da7 100644 --- a/popcorn/Assets/MyGame/Scenes/CornField/Scripts/CornFieldReinforcement.cs +++ b/popcorn/Assets/MyGame/Scenes/CornField/Scripts/CornFieldReinforcement.cs @@ -9,12 +9,12 @@ public class CornFieldReinforcement : MonoBehaviour { public static readonly string CornFieldReinforcementDataTypeTag = "CornFieldReinforcementDataType"; public static readonly string CornFieldReinforcementDataTag = "CornFieldReinforcementData"; - public static readonly string CornFieldResetCallbackTag = "CornFieldResetCallback"; + private static readonly string CornFieldResetCallbackTag = "CornFieldResetCallback"; [SerializeField] private List reinforcementViews; [SerializeField] private MachineUpgradeView machineUpgradeView; [SerializeField] private Button closeButton; - private CompositeDisposable compositeDisposable = new CompositeDisposable(); + private readonly CompositeDisposable compositeDisposable = new CompositeDisposable(); private void Start() { @@ -147,4 +147,10 @@ public class CornFieldReinforcement : MonoBehaviour throw new ArgumentOutOfRangeException(nameof(rank), rank, null); } } + + public static void ShowDialog(Action onClose = null) + { + LocalCacheManager.Save(CornFieldResetCallbackTag, onClose); + TransitionManager.Instance.LoadSceneAdditive(GameScenes.Reinforcement); + } } \ No newline at end of file