畑の強化通知を追加

This commit is contained in:
kimura 2021-11-12 14:30:30 +09:00
parent 1a15c70654
commit 3108138fc5
3 changed files with 42 additions and 5 deletions

View File

@ -2386,6 +2386,7 @@ MonoBehaviour:
sideButtons: {fileID: 1735316554} sideButtons: {fileID: 1735316554}
promoteGrowthButton: {fileID: 730756546} promoteGrowthButton: {fileID: 730756546}
upgradeButton: {fileID: 974444277} upgradeButton: {fileID: 974444277}
upgradeButtonBadge: {fileID: 737572416}
harvestEffectPrefab: {fileID: 3900911687800301846, guid: e9a7e2b2f003d44fab5926ca6ec6d728, harvestEffectPrefab: {fileID: 3900911687800301846, guid: e9a7e2b2f003d44fab5926ca6ec6d728,
type: 3} type: 3}
harvestPrefab: {fileID: 8524901521850801684, guid: e642499b3643dab4ba05b02e8c6bde1c, harvestPrefab: {fileID: 8524901521850801684, guid: e642499b3643dab4ba05b02e8c6bde1c,
@ -2593,6 +2594,12 @@ RectTransform:
type: 3} type: 3}
m_PrefabInstance: {fileID: 737572414} m_PrefabInstance: {fileID: 737572414}
m_PrefabAsset: {fileID: 0} 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 --- !u!1 &769574933
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0

View File

@ -26,6 +26,7 @@ public class CornField : MonoBehaviour
[SerializeField] private GameObject sideButtons; [SerializeField] private GameObject sideButtons;
[SerializeField] private Button promoteGrowthButton; [SerializeField] private Button promoteGrowthButton;
[SerializeField] private Button upgradeButton; [SerializeField] private Button upgradeButton;
[SerializeField] private GameObject upgradeButtonBadge;
[SerializeField] private GameObject harvestEffectPrefab; [SerializeField] private GameObject harvestEffectPrefab;
[SerializeField] private GameObject harvestPrefab; [SerializeField] private GameObject harvestPrefab;
[SerializeField] private Transform harvestSpawnTarget; [SerializeField] private Transform harvestSpawnTarget;
@ -103,8 +104,7 @@ public class CornField : MonoBehaviour
upgradeButton.OnClickAsObservable().ThrottleFirst(TimeSpan.FromSeconds(.3f)).Subscribe(_ => upgradeButton.OnClickAsObservable().ThrottleFirst(TimeSpan.FromSeconds(.3f)).Subscribe(_ =>
{ {
LocalCacheManager.Save(CornFieldReinforcement.CornFieldResetCallbackTag, new Action(() => SetCornField())); CornFieldReinforcement.ShowDialog(() => SetCornField());
TransitionManager.Instance.LoadSceneAdditive(GameScenes.Reinforcement);
}).AddTo(this); }).AddTo(this);
fertilizerButtonView.RewardButton.ThrottleFirst(TimeSpan.FromSeconds(.3f)).Subscribe(_ => fertilizerButtonView.RewardButton.ThrottleFirst(TimeSpan.FromSeconds(.3f)).Subscribe(_ =>
@ -309,7 +309,6 @@ public class CornField : MonoBehaviour
} }
GameDataManager.SaveGameData(); GameDataManager.SaveGameData();
// セーブデータから畑を復元 // セーブデータから畑を復元
foreach (var plantLine in plantLines) foreach (var plantLine in plantLines)
{ {
@ -420,6 +419,31 @@ public class CornField : MonoBehaviour
// 設定のセーブ // 設定のセーブ
GameDataManager.SaveGameData(); GameDataManager.SaveGameData();
}).AddTo(compositeDisposable); }).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) private IDisposable SetFertilizerTimer(int time)

View File

@ -9,12 +9,12 @@ public class CornFieldReinforcement : MonoBehaviour
{ {
public static readonly string CornFieldReinforcementDataTypeTag = "CornFieldReinforcementDataType"; public static readonly string CornFieldReinforcementDataTypeTag = "CornFieldReinforcementDataType";
public static readonly string CornFieldReinforcementDataTag = "CornFieldReinforcementData"; public static readonly string CornFieldReinforcementDataTag = "CornFieldReinforcementData";
public static readonly string CornFieldResetCallbackTag = "CornFieldResetCallback"; private static readonly string CornFieldResetCallbackTag = "CornFieldResetCallback";
[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 readonly CompositeDisposable compositeDisposable = new CompositeDisposable();
private void Start() private void Start()
{ {
@ -147,4 +147,10 @@ public class CornFieldReinforcement : MonoBehaviour
throw new ArgumentOutOfRangeException(nameof(rank), rank, null); throw new ArgumentOutOfRangeException(nameof(rank), rank, null);
} }
} }
public static void ShowDialog(Action onClose = null)
{
LocalCacheManager.Save(CornFieldResetCallbackTag, onClose);
TransitionManager.Instance.LoadSceneAdditive(GameScenes.Reinforcement);
}
} }