畑強化にDetail表示/購入処理追加

This commit is contained in:
kimura 2021-09-29 13:02:51 +09:00
parent 2a95ed4bb6
commit a61d9dc051
8 changed files with 329 additions and 35 deletions

View File

@ -440,6 +440,7 @@ GameObject:
serializedVersion: 6 serializedVersion: 6
m_Component: m_Component:
- component: {fileID: 3910593344630799909} - component: {fileID: 3910593344630799909}
- component: {fileID: 4805744652131432394}
m_Layer: 5 m_Layer: 5
m_Name: Seedling_change m_Name: Seedling_change
m_TagString: Untagged m_TagString: Untagged
@ -472,6 +473,21 @@ RectTransform:
m_AnchoredPosition: {x: -160, y: 41} m_AnchoredPosition: {x: -160, y: 41}
m_SizeDelta: {x: 200, y: 220} m_SizeDelta: {x: 200, y: 220}
m_Pivot: {x: 0.5, y: 0.5} 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 --- !u!1 &5208769480954757392
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0

View File

@ -151,7 +151,7 @@ RectTransform:
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: [] m_Children: []
m_Father: {fileID: 884928058} m_Father: {fileID: 884928058}
m_RootOrder: 1 m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5}
@ -377,7 +377,7 @@ RectTransform:
- {fileID: 944967793} - {fileID: 944967793}
- {fileID: 653404266} - {fileID: 653404266}
m_Father: {fileID: 884928058} m_Father: {fileID: 884928058}
m_RootOrder: 2 m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0} m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1} m_AnchorMax: {x: 1, y: 1}
@ -472,6 +472,62 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 745458275} m_GameObject: {fileID: 745458275}
m_CullTransparentMesh: 0 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 --- !u!1 &826335513
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -498,11 +554,11 @@ RectTransform:
m_PrefabInstance: {fileID: 0} m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 826335513} 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_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: [] m_Children: []
m_Father: {fileID: 884928058} m_Father: {fileID: 2144327477}
m_RootOrder: 0 m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMin: {x: 0.5, y: 0.5}
@ -712,11 +768,10 @@ RectTransform:
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: m_Children:
- {fileID: 826335514}
- {fileID: 308891213} - {fileID: 308891213}
- {fileID: 698470367} - {fileID: 698470367}
m_Father: {fileID: 2144327477} m_Father: {fileID: 2144327477}
m_RootOrder: 0 m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5}
@ -1627,6 +1682,30 @@ RectTransform:
type: 3} type: 3}
m_PrefabInstance: {fileID: 1480555403} m_PrefabInstance: {fileID: 1480555403}
m_PrefabAsset: {fileID: 0} 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 --- !u!1 &1546700151
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -2147,6 +2226,7 @@ RectTransform:
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 0, y: 0, z: 0} m_LocalScale: {x: 0, y: 0, z: 0}
m_Children: m_Children:
- {fileID: 826335514}
- {fileID: 884928058} - {fileID: 884928058}
m_Father: {fileID: 0} m_Father: {fileID: 0}
m_RootOrder: 0 m_RootOrder: 0
@ -2273,5 +2353,34 @@ PrefabInstance:
propertyPath: m_Name propertyPath: m_Name
value: Seedling value: Seedling
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 3910593344630799910, guid: 355bec1b0368b6a46bb3d3e15151d133,
type: 3}
propertyPath: m_IsActive
value: 1
objectReference: {fileID: 0}
m_RemovedComponents: [] m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 355bec1b0368b6a46bb3d3e15151d133, type: 3} 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:

View File

@ -7,21 +7,36 @@ using UnityEngine.UI;
public class CornFieldReinforcement : MonoBehaviour public class CornFieldReinforcement : MonoBehaviour
{ {
public static readonly string CornFieldReinforcementDataTypeTag = "CornFieldReinforcementDataType";
public static readonly string CornFieldReinforcementDataTag = "CornFieldReinforcementData";
[SerializeField] private List<CornFieldReinforcementView> reinforcementViews; [SerializeField] private List<CornFieldReinforcementView> reinforcementViews;
[SerializeField] private MachineUpgradeView machineUpgradeView; [SerializeField] private MachineUpgradeView machineUpgradeView;
[SerializeField] private Button closeButton; [SerializeField] private Button closeButton;
private CompositeDisposable compositeDisposable = new CompositeDisposable();
private void Start() private void Start()
{ {
compositeDisposable.AddTo(this);
closeButton.OnClickAsObservable().Subscribe(_ => closeButton.OnClickAsObservable().Subscribe(_ =>
{ {
TransitionManager.Instance.UnloadScene(GameScenes.Reinforcement); TransitionManager.Instance.UnloadScene(GameScenes.Reinforcement);
LocalCacheManager.Remove(CornFieldReinforcementDataTypeTag);
LocalCacheManager.Remove(CornFieldReinforcementDataTag);
}).AddTo(this); }).AddTo(this);
SetView();
}
private void SetView()
{
compositeDisposable.Clear();
var gameData = GameDataManager.GameData; var gameData = GameDataManager.GameData;
var fieldData = SpreadsheetDataManager.Instance.GetBaseDataList<FieldUpgradeData>(Const.FieldUpgradeDataSheet); var fieldData = SpreadsheetDataManager.Instance.GetBaseDataList<FieldUpgradeData>(Const.FieldUpgradeDataSheet);
// 畑
foreach (var view in reinforcementViews) foreach (var view in reinforcementViews)
{ {
var upgradeType = FieldUpgradeData.PlantTypeToUpgradeType(view.LineType);
if (gameData.PlantLineDataList.FirstOrDefault(x => x.Type == view.LineType) is PlantLineData lineData) if (gameData.PlantLineDataList.FirstOrDefault(x => x.Type == view.LineType) is PlantLineData lineData)
{ {
// Max // Max
@ -31,18 +46,41 @@ public class CornFieldReinforcement : MonoBehaviour
} }
else else
{ {
var nextHarvestPrice = fieldData.FirstOrDefault(x => x.Type == x.PlantTypeToUpgradeType(lineData.Type) && x.level == (int)GetNextRank(lineData.Level))?.price ?? 1; var nextRank = GetNextRank(lineData.Level);
view.SetButtonActive(nextHarvestPrice <= CoinManager.Instance.OwnCoin); var price = fieldData.FirstOrDefault(x => x.Type == upgradeType && x.level == (int)nextRank)?.price ?? 1;
view.SetReinforcement(lineData, nextHarvestPrice); 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 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.SetButtonActive(price <= CoinManager.Instance.OwnCoin);
view.SetRelease(price); 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 // Max
var maxLevel = fieldData.Where(x => x.Type == CornFieldUpgradeType.Machine).Max(x => x.level); var maxLevel = fieldData.Where(x => x.Type == CornFieldUpgradeType.Machine).Max(x => x.level);
if (gameData.MachineLevel == maxLevel) if (gameData.MachineLevel == maxLevel)
@ -51,12 +89,47 @@ public class CornFieldReinforcement : MonoBehaviour
} }
else else
{ {
var nextMachinePrice = fieldData.FirstOrDefault(x => x.Type == CornFieldUpgradeType.Machine && x.level == gameData.MachineLevel + 1)?.price ?? 1; var price = fieldData.FirstOrDefault(x => x.Type == CornFieldUpgradeType.Machine && x.level == gameData.MachineLevel + 1)?.price ?? 1;
machineUpgradeView.SetButtonActive(nextMachinePrice <= CoinManager.Instance.OwnCoin); machineUpgradeView.SetButtonActive(price <= CoinManager.Instance.OwnCoin);
machineUpgradeView.SetData(gameData.MachineLevel, nextMachinePrice); 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) public static CornFieldRank GetNextRank(CornFieldRank rank)
{ {
switch (rank) switch (rank)

View File

@ -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<CornFieldUpgradeType>(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<FieldUpgradeData>(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);
}
}

View File

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 7ea6a373109a42b3871edbabeb578799
timeCreated: 1632815406

View File

@ -27,24 +27,17 @@ public class CornFieldReinforcementView : MonoBehaviour
[SerializeField] private Text reinforcePriceText; [SerializeField] private Text reinforcePriceText;
[SerializeField] private Text releasePriceText; [SerializeField] private Text releasePriceText;
private void Start() public IObservable<Unit> ButtonClickObserve => dialogButton.OnClickAsObservable().Merge(dialogButton2.OnClickAsObservable()).TakeUntilDestroy(this);
{
dialogButton.OnClickAsObservable()
.Merge(dialogButton2.OnClickAsObservable())
.Subscribe(_ =>
{
TransitionManager.Instance.LoadSceneAdditive(GameScenes.ReinforcementDetail);
}).AddTo(this);
}
public void SetReinforcement(PlantLineData data, int price) public void SetReinforcement(PlantLineData data, int price)
{ {
reinforcementWindow.SetActive(true); reinforcementWindow.SetActive(true);
releaseWindow.SetActive(false); releaseWindow.SetActive(false);
var nextRank = CornFieldReinforcement.GetNextRank(data.Level); var nextRank = CornFieldReinforcement.GetNextRank(data.Level);
var upgradeType = FieldUpgradeData.PlantTypeToUpgradeType(data.Type);
var fieldData = SpreadsheetDataManager.Instance.GetBaseDataList<FieldUpgradeData>(Const.FieldUpgradeDataSheet); var fieldData = SpreadsheetDataManager.Instance.GetBaseDataList<FieldUpgradeData>(Const.FieldUpgradeDataSheet);
var currentHarvestCount = fieldData.FirstOrDefault(x => x.Type == x.PlantTypeToUpgradeType(data.Type) && x.level == (int)data.Level)?.harvested ?? 1; var currentHarvestCount = fieldData.FirstOrDefault(x => x.Type == upgradeType && 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 nextHarvestCount = fieldData.FirstOrDefault(x => x.Type == upgradeType && x.level == (int)nextRank)?.harvested ?? 1;
reinforcePriceText.text = price.ToString(); reinforcePriceText.text = price.ToString();
currentSeedling.SetSeedling(data.Level); currentSeedling.SetSeedling(data.Level);
currentSignBoard.text = string.Format(SigbBoardFormat, currentHarvestCount); currentSignBoard.text = string.Format(SigbBoardFormat, currentHarvestCount);

View File

@ -13,14 +13,7 @@ public class MachineUpgradeView : MonoBehaviour
[SerializeField] private Button dialogButton; [SerializeField] private Button dialogButton;
[SerializeField] private GameObject disableButton; [SerializeField] private GameObject disableButton;
private void Start() public IObservable<Unit> ButtonClickObserve => dialogButton.OnClickAsObservable().TakeUntilDestroy(this);
{
dialogButton.OnClickAsObservable()
.Subscribe(_ =>
{
TransitionManager.Instance.LoadSceneAdditive(GameScenes.ReinforcementDetail);
}).AddTo(this);
}
public void SetData(int level, int price) public void SetData(int level, int price)
{ {

View File

@ -62,7 +62,7 @@ public sealed class FieldUpgradeData
public int price; public int price;
public int harvested; public int harvested;
public CornFieldUpgradeType Type => (CornFieldUpgradeType) type; public CornFieldUpgradeType Type => (CornFieldUpgradeType) type;
public CornFieldUpgradeType PlantTypeToUpgradeType(PlantLineType lineType) public static CornFieldUpgradeType PlantTypeToUpgradeType(PlantLineType lineType)
{ {
switch (lineType) switch (lineType)
{ {
@ -73,7 +73,7 @@ public sealed class FieldUpgradeData
case PlantLineType.Bottom: case PlantLineType.Bottom:
return CornFieldUpgradeType.FieldBottom; return CornFieldUpgradeType.FieldBottom;
default: default:
throw new ArgumentOutOfRangeException(nameof(type), type, null); throw new ArgumentOutOfRangeException(nameof(lineType), lineType, null);
} }
} }
} }