diff --git a/popcorn/Assets/MyGame/Scenes/CornField/Prefabs/Seedling_change.prefab b/popcorn/Assets/MyGame/Scenes/CornField/Prefabs/Seedling_change.prefab index 9f3152e0..cf55eab1 100644 --- a/popcorn/Assets/MyGame/Scenes/CornField/Prefabs/Seedling_change.prefab +++ b/popcorn/Assets/MyGame/Scenes/CornField/Prefabs/Seedling_change.prefab @@ -440,6 +440,7 @@ GameObject: serializedVersion: 6 m_Component: - component: {fileID: 3910593344630799909} + - component: {fileID: 4805744652131432394} m_Layer: 5 m_Name: Seedling_change m_TagString: Untagged @@ -472,6 +473,21 @@ RectTransform: m_AnchoredPosition: {x: -160, y: 41} m_SizeDelta: {x: 200, y: 220} m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &4805744652131432394 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3910593344630799910} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7e220d0668504fe99a65270586553f5a, type: 3} + m_Name: + m_EditorClassIdentifier: + rank1Seedling: {fileID: 2760069770662828715} + rank2Seedling: {fileID: 8792014694231266041} + rank3Seedling: {fileID: 1680596136379924953} --- !u!1 &5208769480954757392 GameObject: m_ObjectHideFlags: 0 diff --git a/popcorn/Assets/MyGame/Scenes/CornField/ReinforcementDetail.unity b/popcorn/Assets/MyGame/Scenes/CornField/ReinforcementDetail.unity index 5b19de2a..3d9a70a8 100644 --- a/popcorn/Assets/MyGame/Scenes/CornField/ReinforcementDetail.unity +++ b/popcorn/Assets/MyGame/Scenes/CornField/ReinforcementDetail.unity @@ -151,7 +151,7 @@ RectTransform: m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 884928058} - m_RootOrder: 1 + m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} @@ -377,7 +377,7 @@ RectTransform: - {fileID: 944967793} - {fileID: 653404266} m_Father: {fileID: 884928058} - m_RootOrder: 2 + m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 1, y: 1} @@ -472,6 +472,62 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 745458275} m_CullTransparentMesh: 0 +--- !u!1 &791576057 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 791576059} + - component: {fileID: 791576058} + m_Layer: 0 + m_Name: Manager + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &791576058 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 791576057} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7ea6a373109a42b3871edbabeb578799, type: 3} + m_Name: + m_EditorClassIdentifier: + backgroundAnimator: {fileID: 826335515} + purchaseButton: {fileID: 1192264083} + releaseButton: {fileID: 865761136} + closeButton: {fileID: 1130921226} + ReinforceObject: {fileID: 1937871401} + ReleaseObject: {fileID: 944967792} + currentSeedling: {fileID: 3910593343511446857} + nextSeedling: {fileID: 1480555406} + currentSignBoard: {fileID: 3910593343511446856} + nextSignBoard: {fileID: 1480555405} + messageText: {fileID: 1977897798} + reinforcePriceText: {fileID: 1565131239} + releasePriceText: {fileID: 1133773169} +--- !u!4 &791576059 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 791576057} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 917.4497, y: 1390.5071, z: -105.66776} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &826335513 GameObject: m_ObjectHideFlags: 0 @@ -498,11 +554,11 @@ RectTransform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 826335513} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] - m_Father: {fileID: 884928058} + m_Father: {fileID: 2144327477} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 0.5} @@ -712,11 +768,10 @@ RectTransform: m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: - - {fileID: 826335514} - {fileID: 308891213} - {fileID: 698470367} m_Father: {fileID: 2144327477} - m_RootOrder: 0 + m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} @@ -1627,6 +1682,30 @@ RectTransform: type: 3} m_PrefabInstance: {fileID: 1480555403} m_PrefabAsset: {fileID: 0} +--- !u!114 &1480555405 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 3910593342547943749, guid: 355bec1b0368b6a46bb3d3e15151d133, + type: 3} + m_PrefabInstance: {fileID: 1480555403} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &1480555406 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 4805744652131432394, guid: 355bec1b0368b6a46bb3d3e15151d133, + type: 3} + m_PrefabInstance: {fileID: 1480555403} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7e220d0668504fe99a65270586553f5a, type: 3} + m_Name: + m_EditorClassIdentifier: --- !u!1 &1546700151 GameObject: m_ObjectHideFlags: 0 @@ -2147,6 +2226,7 @@ RectTransform: m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 0, y: 0, z: 0} m_Children: + - {fileID: 826335514} - {fileID: 884928058} m_Father: {fileID: 0} m_RootOrder: 0 @@ -2273,5 +2353,34 @@ PrefabInstance: propertyPath: m_Name value: Seedling objectReference: {fileID: 0} + - target: {fileID: 3910593344630799910, guid: 355bec1b0368b6a46bb3d3e15151d133, + type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} m_RemovedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 355bec1b0368b6a46bb3d3e15151d133, type: 3} +--- !u!114 &3910593343511446856 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 3910593342547943749, guid: 355bec1b0368b6a46bb3d3e15151d133, + type: 3} + m_PrefabInstance: {fileID: 3910593343511446855} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &3910593343511446857 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 4805744652131432394, guid: 355bec1b0368b6a46bb3d3e15151d133, + type: 3} + m_PrefabInstance: {fileID: 3910593343511446855} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7e220d0668504fe99a65270586553f5a, type: 3} + m_Name: + m_EditorClassIdentifier: diff --git a/popcorn/Assets/MyGame/Scenes/CornField/Scripts/CornFieldReinforcement.cs b/popcorn/Assets/MyGame/Scenes/CornField/Scripts/CornFieldReinforcement.cs index 626aaf7b..59ff3479 100644 --- a/popcorn/Assets/MyGame/Scenes/CornField/Scripts/CornFieldReinforcement.cs +++ b/popcorn/Assets/MyGame/Scenes/CornField/Scripts/CornFieldReinforcement.cs @@ -7,21 +7,36 @@ using UnityEngine.UI; public class CornFieldReinforcement : MonoBehaviour { + public static readonly string CornFieldReinforcementDataTypeTag = "CornFieldReinforcementDataType"; + public static readonly string CornFieldReinforcementDataTag = "CornFieldReinforcementData"; [SerializeField] private List reinforcementViews; [SerializeField] private MachineUpgradeView machineUpgradeView; [SerializeField] private Button closeButton; + + private CompositeDisposable compositeDisposable = new CompositeDisposable(); private void Start() { + compositeDisposable.AddTo(this); closeButton.OnClickAsObservable().Subscribe(_ => { TransitionManager.Instance.UnloadScene(GameScenes.Reinforcement); + LocalCacheManager.Remove(CornFieldReinforcementDataTypeTag); + LocalCacheManager.Remove(CornFieldReinforcementDataTag); }).AddTo(this); + SetView(); + } + + private void SetView() + { + compositeDisposable.Clear(); var gameData = GameDataManager.GameData; var fieldData = SpreadsheetDataManager.Instance.GetBaseDataList(Const.FieldUpgradeDataSheet); + // 畑 foreach (var view in reinforcementViews) { + var upgradeType = FieldUpgradeData.PlantTypeToUpgradeType(view.LineType); if (gameData.PlantLineDataList.FirstOrDefault(x => x.Type == view.LineType) is PlantLineData lineData) { // Max @@ -31,18 +46,41 @@ public class CornFieldReinforcement : MonoBehaviour } else { - var nextHarvestPrice = fieldData.FirstOrDefault(x => x.Type == x.PlantTypeToUpgradeType(lineData.Type) && x.level == (int)GetNextRank(lineData.Level))?.price ?? 1; - view.SetButtonActive(nextHarvestPrice <= CoinManager.Instance.OwnCoin); - view.SetReinforcement(lineData, nextHarvestPrice); + var nextRank = GetNextRank(lineData.Level); + var price = fieldData.FirstOrDefault(x => x.Type == upgradeType && x.level == (int)nextRank)?.price ?? 1; + view.SetButtonActive(price <= CoinManager.Instance.OwnCoin); + view.SetReinforcement(lineData, price); + // 購入ボタン + view.ButtonClickObserve.Subscribe(_ => + { + LocalCacheManager.Save(CornFieldReinforcementDataTypeTag, upgradeType); + LocalCacheManager.Save(CornFieldReinforcementDataTag, (lineData, price, new Action(() => { + PurchaseField(price, view.LineType, nextRank); + SetView(); + }))); + TransitionManager.Instance.LoadSceneAdditive(GameScenes.ReinforcementDetail); + }).AddTo(compositeDisposable); } } else { - var price = fieldData.FirstOrDefault(x => x.Type == x.PlantTypeToUpgradeType(view.LineType) && x.level == (int)CornFieldRank.Rank1)?.price ?? 1; + var price = fieldData.FirstOrDefault(x => x.Type == upgradeType && x.level == (int)CornFieldRank.Rank1)?.price ?? 1; view.SetButtonActive(price <= CoinManager.Instance.OwnCoin); view.SetRelease(price); + // 購入ボタン + view.ButtonClickObserve.Subscribe(_ => + { + LocalCacheManager.Save(CornFieldReinforcementDataTypeTag, upgradeType); + LocalCacheManager.Save(CornFieldReinforcementDataTag, (lineData = null, price, new Action(() => { + PurchaseField(price, view.LineType, CornFieldRank.Rank1); + SetView(); + }))); + TransitionManager.Instance.LoadSceneAdditive(GameScenes.ReinforcementDetail); + }).AddTo(compositeDisposable); } } + + // 収穫機 // Max var maxLevel = fieldData.Where(x => x.Type == CornFieldUpgradeType.Machine).Max(x => x.level); if (gameData.MachineLevel == maxLevel) @@ -51,11 +89,46 @@ public class CornFieldReinforcement : MonoBehaviour } else { - var nextMachinePrice = fieldData.FirstOrDefault(x => x.Type == CornFieldUpgradeType.Machine && x.level == gameData.MachineLevel + 1)?.price ?? 1; - machineUpgradeView.SetButtonActive(nextMachinePrice <= CoinManager.Instance.OwnCoin); - machineUpgradeView.SetData(gameData.MachineLevel, nextMachinePrice); + var price = fieldData.FirstOrDefault(x => x.Type == CornFieldUpgradeType.Machine && x.level == gameData.MachineLevel + 1)?.price ?? 1; + machineUpgradeView.SetButtonActive(price <= CoinManager.Instance.OwnCoin); + machineUpgradeView.SetData(gameData.MachineLevel, price); + // 購入ボタン + machineUpgradeView.ButtonClickObserve.Subscribe(_ => + { + LocalCacheManager.Save(CornFieldReinforcementDataTypeTag, CornFieldUpgradeType.Machine); + LocalCacheManager.Save(CornFieldReinforcementDataTag, (gameData.MachineLevel, price, new Action(() => { + PurchaseMachine(price); + SetView(); + }))); + TransitionManager.Instance.LoadSceneAdditive(GameScenes.ReinforcementDetail); + }).AddTo(compositeDisposable); } } + + private void PurchaseField(int price, PlantLineType type, CornFieldRank nextRank) + { + var gameData = GameDataManager.GameData; + if (gameData.PlantLineDataList.FirstOrDefault(x => x.Type == type) is PlantLineData lineData) + { + lineData.Level = nextRank; + } + else + { + gameData.PlantLineDataList.Add(new PlantLineData(type, CornFieldRank.Rank1)); + } + CoinManager.Instance.SubCoin(price); + gameData.coin = CoinManager.Instance.OwnCoin; + GameDataManager.SaveGameData(); + } + + private void PurchaseMachine(int price) + { + var gameData = GameDataManager.GameData; + gameData.MachineLevel++; + CoinManager.Instance.SubCoin(price); + gameData.coin = CoinManager.Instance.OwnCoin; + GameDataManager.SaveGameData(); + } public static CornFieldRank GetNextRank(CornFieldRank rank) { diff --git a/popcorn/Assets/MyGame/Scenes/CornField/Scripts/CornFieldReinforcementDetailView.cs b/popcorn/Assets/MyGame/Scenes/CornField/Scripts/CornFieldReinforcementDetailView.cs new file mode 100644 index 00000000..4f433112 --- /dev/null +++ b/popcorn/Assets/MyGame/Scenes/CornField/Scripts/CornFieldReinforcementDetailView.cs @@ -0,0 +1,107 @@ +using System; +using System.Linq; +using TMPro; +using UniRx; +using UnityEngine; +using UnityEngine.UI; + +public class CornFieldReinforcementDetailView : MonoBehaviour +{ + private static readonly string ReinforceFormat = "強化しますか?"; + private static readonly string ReleaseFormat = "開放しますか?"; + private static readonly string SigbBoardFormat = "x{0}"; + private static readonly int OpenTrigger = Animator.StringToHash("OpenTrigger"); + private static readonly int CloseTrigger = Animator.StringToHash("CloseTrigger"); + + [SerializeField] private Animator backgroundAnimator; + [SerializeField] private Button purchaseButton; + [SerializeField] private Button releaseButton; + [SerializeField] private Button closeButton; + [SerializeField] private GameObject ReinforceObject; + [SerializeField] private GameObject ReleaseObject; + [SerializeField] private ReinforcementSeedlingView currentSeedling; + [SerializeField] private ReinforcementSeedlingView nextSeedling; + [SerializeField] private TextMeshProUGUI currentSignBoard; + [SerializeField] private TextMeshProUGUI nextSignBoard; + [SerializeField] private Text messageText; + [SerializeField] private Text reinforcePriceText; + [SerializeField] private Text releasePriceText; + + private void Start() + { + Action callback; + var upgradeType = LocalCacheManager.Load(CornFieldReinforcement.CornFieldReinforcementDataTypeTag); + Debug.Log(upgradeType); + switch (upgradeType) + { + case CornFieldUpgradeType.FieldTop: + case CornFieldUpgradeType.FieldCenter: + case CornFieldUpgradeType.FieldBottom: + var (data, price, fieldCallback) = LocalCacheManager.Load<(PlantLineData, int, Action)>(CornFieldReinforcement.CornFieldReinforcementDataTag); + callback = fieldCallback; + SetFieldData(data, price); + break; + case CornFieldUpgradeType.Machine: + var (machineLevel, machinePrice, machineCallback) = LocalCacheManager.Load<(int, int, Action)>(CornFieldReinforcement.CornFieldReinforcementDataTag); + SetMachineData(machineLevel, machinePrice); + callback = machineCallback; + break; + default: + throw new ArgumentOutOfRangeException(); + } + closeButton.OnClickAsObservable().Subscribe(_ => + { + transform.SetLocalScale(0); + backgroundAnimator.SetTrigger(CloseTrigger); + this.CallWaitForSeconds(.25f, () => + { + TransitionManager.Instance.UnloadScene(GameScenes.ReinforcementDetail); + }); + }).AddTo(this); + purchaseButton.OnClickAsObservable() + .Merge(releaseButton.OnClickAsObservable()) + .Subscribe(_ => + { + // 購入処理 + callback?.Invoke(); + transform.SetLocalScale(0); + backgroundAnimator.SetTrigger(CloseTrigger); + this.CallWaitForSeconds(.25f, () => + { + TransitionManager.Instance.UnloadScene(GameScenes.ReinforcementDetail); + }); + }).AddTo(this); + } + + private void SetFieldData(PlantLineData data, int price) + { + if (data is null) + { + ReinforceObject.SetActive(false); + ReleaseObject.SetActive(true); + releasePriceText.text = price.ToString(); + messageText.text = ReleaseFormat; + } + else + { + ReinforceObject.SetActive(true); + ReleaseObject.SetActive(false); + reinforcePriceText.text = price.ToString(); + var nextRank = CornFieldReinforcement.GetNextRank(data.Level); + var upgradeType = FieldUpgradeData.PlantTypeToUpgradeType(data.Type); + var fieldData = SpreadsheetDataManager.Instance.GetBaseDataList(Const.FieldUpgradeDataSheet); + var currentHarvestCount = fieldData.FirstOrDefault(x => x.Type == upgradeType && x.level == (int)data.Level)?.harvested ?? 1; + var nextHarvestCount = fieldData.FirstOrDefault(x => x.Type == upgradeType && x.level == (int)nextRank)?.harvested ?? 1; + currentSeedling.SetSeedling(data.Level); + currentSignBoard.text = string.Format(SigbBoardFormat, currentHarvestCount); + nextSeedling.SetSeedling(nextRank); + nextSignBoard.text = string.Format(SigbBoardFormat, nextHarvestCount); + messageText.text = ReinforceFormat; + } + } + private void SetMachineData(int machineLevel, int price) + { + ReinforceObject.SetActive(false); + ReleaseObject.SetActive(false); + } +} diff --git a/popcorn/Assets/MyGame/Scenes/CornField/Scripts/CornFieldReinforcementDetailView.cs.meta b/popcorn/Assets/MyGame/Scenes/CornField/Scripts/CornFieldReinforcementDetailView.cs.meta new file mode 100644 index 00000000..b3474981 --- /dev/null +++ b/popcorn/Assets/MyGame/Scenes/CornField/Scripts/CornFieldReinforcementDetailView.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 7ea6a373109a42b3871edbabeb578799 +timeCreated: 1632815406 \ No newline at end of file diff --git a/popcorn/Assets/MyGame/Scenes/CornField/Scripts/CornFieldReinforcementView.cs b/popcorn/Assets/MyGame/Scenes/CornField/Scripts/CornFieldReinforcementView.cs index 7a474f2b..9a3944b7 100644 --- a/popcorn/Assets/MyGame/Scenes/CornField/Scripts/CornFieldReinforcementView.cs +++ b/popcorn/Assets/MyGame/Scenes/CornField/Scripts/CornFieldReinforcementView.cs @@ -27,24 +27,17 @@ public class CornFieldReinforcementView : MonoBehaviour [SerializeField] private Text reinforcePriceText; [SerializeField] private Text releasePriceText; - private void Start() - { - dialogButton.OnClickAsObservable() - .Merge(dialogButton2.OnClickAsObservable()) - .Subscribe(_ => - { - TransitionManager.Instance.LoadSceneAdditive(GameScenes.ReinforcementDetail); - }).AddTo(this); - } + public IObservable ButtonClickObserve => dialogButton.OnClickAsObservable().Merge(dialogButton2.OnClickAsObservable()).TakeUntilDestroy(this); public void SetReinforcement(PlantLineData data, int price) { reinforcementWindow.SetActive(true); releaseWindow.SetActive(false); var nextRank = CornFieldReinforcement.GetNextRank(data.Level); + var upgradeType = FieldUpgradeData.PlantTypeToUpgradeType(data.Type); var fieldData = SpreadsheetDataManager.Instance.GetBaseDataList(Const.FieldUpgradeDataSheet); - var currentHarvestCount = fieldData.FirstOrDefault(x => x.Type == x.PlantTypeToUpgradeType(data.Type) && x.level == (int)data.Level)?.harvested ?? 1; - var nextHarvestCount = fieldData.FirstOrDefault(x => x.Type == x.PlantTypeToUpgradeType(data.Type) && x.level == (int)nextRank)?.harvested ?? 1; + var currentHarvestCount = fieldData.FirstOrDefault(x => x.Type == upgradeType && x.level == (int)data.Level)?.harvested ?? 1; + var nextHarvestCount = fieldData.FirstOrDefault(x => x.Type == upgradeType && x.level == (int)nextRank)?.harvested ?? 1; reinforcePriceText.text = price.ToString(); currentSeedling.SetSeedling(data.Level); currentSignBoard.text = string.Format(SigbBoardFormat, currentHarvestCount); diff --git a/popcorn/Assets/MyGame/Scenes/CornField/Scripts/MachineUpgradeView.cs b/popcorn/Assets/MyGame/Scenes/CornField/Scripts/MachineUpgradeView.cs index 46d63c54..7dc733d2 100644 --- a/popcorn/Assets/MyGame/Scenes/CornField/Scripts/MachineUpgradeView.cs +++ b/popcorn/Assets/MyGame/Scenes/CornField/Scripts/MachineUpgradeView.cs @@ -12,15 +12,8 @@ public class MachineUpgradeView : MonoBehaviour [SerializeField] private Text nextHarvestedText; [SerializeField] private Button dialogButton; [SerializeField] private GameObject disableButton; - - private void Start() - { - dialogButton.OnClickAsObservable() - .Subscribe(_ => - { - TransitionManager.Instance.LoadSceneAdditive(GameScenes.ReinforcementDetail); - }).AddTo(this); - } + + public IObservable ButtonClickObserve => dialogButton.OnClickAsObservable().TakeUntilDestroy(this); public void SetData(int level, int price) { diff --git a/popcorn/Assets/MyGame/Scripts/SpreadsheetData.cs b/popcorn/Assets/MyGame/Scripts/SpreadsheetData.cs index bbece051..e7e2c39d 100644 --- a/popcorn/Assets/MyGame/Scripts/SpreadsheetData.cs +++ b/popcorn/Assets/MyGame/Scripts/SpreadsheetData.cs @@ -62,7 +62,7 @@ public sealed class FieldUpgradeData public int price; public int harvested; public CornFieldUpgradeType Type => (CornFieldUpgradeType) type; - public CornFieldUpgradeType PlantTypeToUpgradeType(PlantLineType lineType) + public static CornFieldUpgradeType PlantTypeToUpgradeType(PlantLineType lineType) { switch (lineType) { @@ -73,7 +73,7 @@ public sealed class FieldUpgradeData case PlantLineType.Bottom: return CornFieldUpgradeType.FieldBottom; default: - throw new ArgumentOutOfRangeException(nameof(type), type, null); + throw new ArgumentOutOfRangeException(nameof(lineType), lineType, null); } } }