畑ワールド対応
This commit is contained in:
parent
faa0f8c56e
commit
712208b9d6
|
@ -68,9 +68,10 @@ public class CornField : MonoBehaviour
|
||||||
|
|
||||||
SoundManager.Instance.PlayBGM("bgm_Main");
|
SoundManager.Instance.PlayBGM("bgm_Main");
|
||||||
// データ
|
// データ
|
||||||
var gameData = GameDataManager.GameData;
|
var globalGameData = GameDataManager.GameData;
|
||||||
|
var cityGameData = GameDataManager.GetCurrentCityGameData();
|
||||||
|
|
||||||
if (!gameData.FinishedFlags.HasFlag(TutorialFlag.CornField))
|
if (!globalGameData.FinishedFlags.HasFlag(TutorialFlag.CornField))
|
||||||
{
|
{
|
||||||
promoteGrowthButton.gameObject.SetActive(false);
|
promoteGrowthButton.gameObject.SetActive(false);
|
||||||
TutorialManager.Instance.ShowTutorialConversation(5, () =>
|
TutorialManager.Instance.ShowTutorialConversation(5, () =>
|
||||||
|
@ -84,8 +85,8 @@ public class CornField : MonoBehaviour
|
||||||
cornFieldMask.gameObject.SetActive(false);
|
cornFieldMask.gameObject.SetActive(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
CoinManager.Instance.ChangeCoin(gameData.Coin);
|
CoinManager.Instance.ChangeCoin(cityGameData.Coin);
|
||||||
HeartMeter.Instance.Initialize(gameData.ViewedShopLevel, gameData.Heart);
|
HeartMeter.Instance.Initialize(globalGameData.ViewedShopLevel, cityGameData.Heart);
|
||||||
|
|
||||||
// ハートゲージがフルかつダイアログが開いていない場合レベルアップ
|
// ハートゲージがフルかつダイアログが開いていない場合レベルアップ
|
||||||
HeartMeter.Instance.FulledHeart
|
HeartMeter.Instance.FulledHeart
|
||||||
|
@ -95,7 +96,7 @@ public class CornField : MonoBehaviour
|
||||||
.DelaySubscription(TimeSpan.FromSeconds(.4f))
|
.DelaySubscription(TimeSpan.FromSeconds(.4f))
|
||||||
.Subscribe(_ =>
|
.Subscribe(_ =>
|
||||||
{
|
{
|
||||||
ShopLevelUp.ShowDialog(gameData.ViewedShopLevel + 1);
|
ShopLevelUp.ShowDialog(globalGameData.ViewedShopLevel + 1);
|
||||||
}).AddTo(this);
|
}).AddTo(this);
|
||||||
|
|
||||||
GameDataObserver.Instance.HeartObserver
|
GameDataObserver.Instance.HeartObserver
|
||||||
|
@ -106,7 +107,7 @@ public class CornField : MonoBehaviour
|
||||||
HeartMeter.Instance.AddHeart(pair.Current - pair.Previous);
|
HeartMeter.Instance.AddHeart(pair.Current - pair.Previous);
|
||||||
}).AddTo(this);
|
}).AddTo(this);
|
||||||
|
|
||||||
counterView.Initialize(gameData.CornSeed);
|
counterView.Initialize(cityGameData.CornSeed);
|
||||||
additionView.Initialize(0);
|
additionView.Initialize(0);
|
||||||
SetData();
|
SetData();
|
||||||
|
|
||||||
|
@ -130,7 +131,7 @@ public class CornField : MonoBehaviour
|
||||||
VibrationManager.Instance.PlayVibrationOnce();
|
VibrationManager.Instance.PlayVibrationOnce();
|
||||||
foreach (var plantLine in plantLines)
|
foreach (var plantLine in plantLines)
|
||||||
{
|
{
|
||||||
if (!(gameData.PlantLineDataList.FirstOrDefault(data => data.Type == plantLine.LineName) is PlantLineData plantLineData))
|
if (!(cityGameData.PlantLineDataList.FirstOrDefault(data => data.Type == plantLine.LineName) is PlantLineData plantLineData))
|
||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
@ -140,7 +141,7 @@ public class CornField : MonoBehaviour
|
||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
var progressData = gameData.SeedlingDataList.First(data => data.type == plantLineData.Type).Seedlings[i];
|
var progressData = cityGameData.SeedlingDataList.First(data => data.type == plantLineData.Type).Seedlings[i];
|
||||||
progressData.FirstTime = progressData.FirstTime.AddSeconds(-1);
|
progressData.FirstTime = progressData.FirstTime.AddSeconds(-1);
|
||||||
plantLine.Seedlings[i].PromoteGrowth(progressData.FirstTime);
|
plantLine.Seedlings[i].PromoteGrowth(progressData.FirstTime);
|
||||||
}
|
}
|
||||||
|
@ -156,11 +157,11 @@ public class CornField : MonoBehaviour
|
||||||
GetRewardDialog.ShowCornFieldDialog(() =>
|
GetRewardDialog.ShowCornFieldDialog(() =>
|
||||||
{
|
{
|
||||||
isFertilizing.Value = true;
|
isFertilizing.Value = true;
|
||||||
gameData.fertilizerTime = DateTime.UtcNow.AddSeconds(fertilizerWaitTime + fertilizerDuration).ToBinary();
|
cityGameData.fertilizerTime = DateTime.UtcNow.AddSeconds(fertilizerWaitTime + fertilizerDuration).ToBinary();
|
||||||
#if UNITY_EDITOR
|
#if UNITY_EDITOR
|
||||||
gameData.fertilizerTime = DateTime.UtcNow.AddSeconds(10 + fertilizerDuration).ToBinary();
|
cityGameData.fertilizerTime = DateTime.UtcNow.AddSeconds(10 + fertilizerDuration).ToBinary();
|
||||||
#endif
|
#endif
|
||||||
gameData.AddUseFertiliser();
|
globalGameData.AddUseFertiliser();
|
||||||
GameDataManager.SaveGameData();
|
GameDataManager.SaveGameData();
|
||||||
|
|
||||||
additionView.IsStopDisapper = true;
|
additionView.IsStopDisapper = true;
|
||||||
|
@ -177,13 +178,13 @@ public class CornField : MonoBehaviour
|
||||||
// 既存の株は成長済みにする
|
// 既存の株は成長済みにする
|
||||||
foreach (var plantLine in plantLines)
|
foreach (var plantLine in plantLines)
|
||||||
{
|
{
|
||||||
if (!(gameData.PlantLineDataList.FirstOrDefault(data => data.Type == plantLine.LineName) is PlantLineData plantLineData))
|
if (!(cityGameData.PlantLineDataList.FirstOrDefault(data => data.Type == plantLine.LineName) is PlantLineData plantLineData))
|
||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
for (int i = 0; i < plantLine.Seedlings.Count; i++)
|
for (int i = 0; i < plantLine.Seedlings.Count; i++)
|
||||||
{
|
{
|
||||||
var progressData = gameData.SeedlingDataList.First(data => data.type == plantLineData.Type).Seedlings[i];
|
var progressData = cityGameData.SeedlingDataList.First(data => data.type == plantLineData.Type).Seedlings[i];
|
||||||
progressData.FirstTime = progressData.FirstTime.AddSeconds(-maxPeriod);
|
progressData.FirstTime = progressData.FirstTime.AddSeconds(-maxPeriod);
|
||||||
plantLine.Seedlings[i].PromoteGrowth(progressData.FirstTime);
|
plantLine.Seedlings[i].PromoteGrowth(progressData.FirstTime);
|
||||||
}
|
}
|
||||||
|
@ -197,7 +198,7 @@ public class CornField : MonoBehaviour
|
||||||
brotherFertilizerAnimation.EndAnimation();
|
brotherFertilizerAnimation.EndAnimation();
|
||||||
fertilizerEffectView.SetActive(false);
|
fertilizerEffectView.SetActive(false);
|
||||||
SetCornField();
|
SetCornField();
|
||||||
resetFertilizerTimer.OnNext((int)DateTime.FromBinary(gameData.fertilizerTime).Subtract(DateTime.UtcNow).TotalSeconds);
|
resetFertilizerTimer.OnNext((int)DateTime.FromBinary(cityGameData.fertilizerTime).Subtract(DateTime.UtcNow).TotalSeconds);
|
||||||
|
|
||||||
this.CallWaitForSeconds(fertilizerFinishWaitTime, () =>
|
this.CallWaitForSeconds(fertilizerFinishWaitTime, () =>
|
||||||
{
|
{
|
||||||
|
@ -221,14 +222,14 @@ public class CornField : MonoBehaviour
|
||||||
}).AddTo(this);
|
}).AddTo(this);
|
||||||
|
|
||||||
// 残り時間を取得
|
// 残り時間を取得
|
||||||
var remaining = (int)DateTime.FromBinary(gameData.fertilizerTime).Subtract(DateTime.UtcNow).TotalSeconds;
|
var remaining = (int)DateTime.FromBinary(cityGameData.fertilizerTime).Subtract(DateTime.UtcNow).TotalSeconds;
|
||||||
resetFertilizerTimer.OnNext(remaining);
|
resetFertilizerTimer.OnNext(remaining);
|
||||||
|
|
||||||
Observable.EveryApplicationPause()
|
Observable.EveryApplicationPause()
|
||||||
.Where(pause => !pause)
|
.Where(pause => !pause)
|
||||||
.Subscribe(_ =>
|
.Subscribe(_ =>
|
||||||
{
|
{
|
||||||
resetFertilizerTimer.OnNext((int) DateTime.FromBinary(gameData.fertilizerTime).Subtract(DateTime.UtcNow).TotalSeconds);
|
resetFertilizerTimer.OnNext((int) DateTime.FromBinary(cityGameData.fertilizerTime).Subtract(DateTime.UtcNow).TotalSeconds);
|
||||||
}).AddTo(this);
|
}).AddTo(this);
|
||||||
|
|
||||||
// 収穫カウンター+吸収演出
|
// 収穫カウンター+吸収演出
|
||||||
|
@ -277,7 +278,7 @@ public class CornField : MonoBehaviour
|
||||||
additionView.AddHarvestedCount(x.count);
|
additionView.AddHarvestedCount(x.count);
|
||||||
});
|
});
|
||||||
}).AddTo(this);
|
}).AddTo(this);
|
||||||
var counterTotalCorn = gameData.CornSeed;
|
var counterTotalCorn = cityGameData.CornSeed;
|
||||||
additionView.EndObservable.Subscribe(addCount =>
|
additionView.EndObservable.Subscribe(addCount =>
|
||||||
{
|
{
|
||||||
counterTotalCorn += addCount;
|
counterTotalCorn += addCount;
|
||||||
|
@ -289,32 +290,33 @@ public class CornField : MonoBehaviour
|
||||||
private void SetCornField(bool useFertilizer = false)
|
private void SetCornField(bool useFertilizer = false)
|
||||||
{
|
{
|
||||||
compositeDisposable.Clear();
|
compositeDisposable.Clear();
|
||||||
var gameData = GameDataManager.GameData;
|
var globalGameData = GameDataManager.GameData;
|
||||||
|
var cityGameData = GameDataManager.GetCurrentCityGameData();
|
||||||
var fieldData = SpreadsheetDataManager.Instance.GetBaseDataList<FieldUpgradeData>(Const.FieldUpgradeDataSheet);
|
var fieldData = SpreadsheetDataManager.Instance.GetBaseDataList<FieldUpgradeData>(Const.FieldUpgradeDataSheet);
|
||||||
var tmpFieldData = fieldData.Where(data => data.cityId == GameDataManager.GameData.CurrentCityId).ToList();
|
var tmpFieldData = fieldData.Where(data => data.cityId == GameDataManager.GameData.CurrentCityId).ToList();
|
||||||
fieldData = tmpFieldData.Count > 0 ? tmpFieldData : fieldData.Where(data => data.cityId == 0).ToList();
|
fieldData = tmpFieldData.Count > 0 ? tmpFieldData : fieldData.Where(data => data.cityId == 0).ToList();
|
||||||
var machineList = fieldData.Where(data => data.Type == CornFieldUpgradeType.Machine);
|
var machineList = fieldData.Where(data => data.Type == CornFieldUpgradeType.Machine);
|
||||||
cornHarvester.SetMachine(machineList.First(data => data.level == gameData.MachineLevel).GetPrefab());
|
cornHarvester.SetMachine(machineList.First(data => data.level == cityGameData.MachineLevel).GetPrefab());
|
||||||
|
|
||||||
// コーン株の進行度初回データ作成
|
// コーン株の進行度初回データ作成
|
||||||
foreach (var lineData in gameData.PlantLineDataList)
|
foreach (var lineData in cityGameData.PlantLineDataList)
|
||||||
{
|
{
|
||||||
if (gameData.SeedlingDataList.Exists(data => data.type == lineData.Type))
|
if (cityGameData.SeedlingDataList.Exists(data => data.type == lineData.Type))
|
||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
var plantLine = plantLines.First(line => line.LineName == lineData.Type);
|
var plantLine = plantLines.First(line => line.LineName == lineData.Type);
|
||||||
gameData.SeedlingDataList.Add(new SeedlingProgressData
|
cityGameData.SeedlingDataList.Add(new SeedlingProgressData
|
||||||
{
|
{
|
||||||
type = lineData.Type,
|
type = lineData.Type,
|
||||||
Seedlings = Enumerable.Range(0, plantLine.Seedlings.Count).Select(_ => GenerateSeedlingGene(lineData.Level)).ToList()
|
Seedlings = Enumerable.Range(0, plantLine.Seedlings.Count).Select(_ => GenerateSeedlingGene(lineData.Level)).ToList()
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!gameData.FinishedFlags.HasFlag(TutorialFlag.CornField))
|
if (!globalGameData.FinishedFlags.HasFlag(TutorialFlag.CornField))
|
||||||
{
|
{
|
||||||
// 既に収穫できる状態にする
|
// 既に収穫できる状態にする
|
||||||
var plantLine = gameData.SeedlingDataList.First(data => data.type == PlantLineType.Center);
|
var plantLine = cityGameData.SeedlingDataList.First(data => data.type == PlantLineType.Center);
|
||||||
foreach (var seedling in plantLine.Seedlings)
|
foreach (var seedling in plantLine.Seedlings)
|
||||||
{
|
{
|
||||||
seedling.FirstTime = DateTime.MinValue;
|
seedling.FirstTime = DateTime.MinValue;
|
||||||
|
@ -333,7 +335,7 @@ public class CornField : MonoBehaviour
|
||||||
TutorialManager.Instance.ShowTutorialConversation(6, () =>
|
TutorialManager.Instance.ShowTutorialConversation(6, () =>
|
||||||
{
|
{
|
||||||
promoteGrowthButton.gameObject.SetActive(true);
|
promoteGrowthButton.gameObject.SetActive(true);
|
||||||
gameData.FinishedFlags |= TutorialFlag.CornField;
|
globalGameData.FinishedFlags |= TutorialFlag.CornField;
|
||||||
GameDataManager.SaveGameData();
|
GameDataManager.SaveGameData();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
@ -344,7 +346,7 @@ public class CornField : MonoBehaviour
|
||||||
// セーブデータから畑を復元
|
// セーブデータから畑を復元
|
||||||
foreach (var plantLine in plantLines)
|
foreach (var plantLine in plantLines)
|
||||||
{
|
{
|
||||||
if (!(gameData.PlantLineDataList.FirstOrDefault(data => data.Type == plantLine.LineName) is PlantLineData plantLineData))
|
if (!(cityGameData.PlantLineDataList.FirstOrDefault(data => data.Type == plantLine.LineName) is PlantLineData plantLineData))
|
||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
@ -353,7 +355,7 @@ public class CornField : MonoBehaviour
|
||||||
|
|
||||||
for (int i = 0; i < plantLine.Seedlings.Count; i++)
|
for (int i = 0; i < plantLine.Seedlings.Count; i++)
|
||||||
{
|
{
|
||||||
var progressData = gameData.SeedlingDataList.First(data => data.type == plantLineData.Type).Seedlings[i];
|
var progressData = cityGameData.SeedlingDataList.First(data => data.type == plantLineData.Type).Seedlings[i];
|
||||||
var seedling = plantLine.Seedlings[i];
|
var seedling = plantLine.Seedlings[i];
|
||||||
seedling.SetSeedlingGene(progressData.FirstTime, progressData.Period, progressData.Level);
|
seedling.SetSeedlingGene(progressData.FirstTime, progressData.Period, progressData.Level);
|
||||||
#if DEVELOPMENT_BUILD || UNITY_EDITOR
|
#if DEVELOPMENT_BUILD || UNITY_EDITOR
|
||||||
|
@ -367,8 +369,8 @@ public class CornField : MonoBehaviour
|
||||||
{
|
{
|
||||||
VibrationManager.Instance.PlayVibrationOnce();
|
VibrationManager.Instance.PlayVibrationOnce();
|
||||||
var harvestCount = fieldData.FirstOrDefault(x => x.Type == CornFieldUpgradeType.FieldCenter && x.level == (int)progressData.Level)?.harvested ?? 1;
|
var harvestCount = fieldData.FirstOrDefault(x => x.Type == CornFieldUpgradeType.FieldCenter && x.level == (int)progressData.Level)?.harvested ?? 1;
|
||||||
var harvestedCorn = fieldData.FirstOrDefault(x => x.Type == CornFieldUpgradeType.Machine && x.level == gameData.MachineLevel)?.harvested ?? 20;
|
var harvestedCorn = fieldData.FirstOrDefault(x => x.Type == CornFieldUpgradeType.Machine && x.level == cityGameData.MachineLevel)?.harvested ?? 20;
|
||||||
gameData.CornSeed += harvestedCorn * harvestCount;
|
cityGameData.CornSeed += harvestedCorn * harvestCount;
|
||||||
var seedlingTransform = seedling.transform;
|
var seedlingTransform = seedling.transform;
|
||||||
|
|
||||||
var harvestEffect = Instantiate(harvestEffectPrefab, seedlingTransform);
|
var harvestEffect = Instantiate(harvestEffectPrefab, seedlingTransform);
|
||||||
|
@ -423,7 +425,7 @@ public class CornField : MonoBehaviour
|
||||||
|
|
||||||
// 強化ボタン通知
|
// 強化ボタン通知
|
||||||
var upgradePrice = int.MaxValue;
|
var upgradePrice = int.MaxValue;
|
||||||
if (fieldData.FirstOrDefault(x => x.Type == CornFieldUpgradeType.Machine && x.level == gameData.MachineLevel + 1)?.price is int nextMachinePrice)
|
if (fieldData.FirstOrDefault(x => x.Type == CornFieldUpgradeType.Machine && x.level == cityGameData.MachineLevel + 1)?.price is int nextMachinePrice)
|
||||||
{
|
{
|
||||||
upgradePrice = Mathf.Min(upgradePrice, nextMachinePrice);
|
upgradePrice = Mathf.Min(upgradePrice, nextMachinePrice);
|
||||||
}
|
}
|
||||||
|
@ -431,7 +433,7 @@ public class CornField : MonoBehaviour
|
||||||
{
|
{
|
||||||
var upgradeType = FieldUpgradeData.PlantTypeToUpgradeType(plantLine.LineName);
|
var upgradeType = FieldUpgradeData.PlantTypeToUpgradeType(plantLine.LineName);
|
||||||
var nextRank = CornFieldRank.Rank1;
|
var nextRank = CornFieldRank.Rank1;
|
||||||
if (gameData.PlantLineDataList.FirstOrDefault(data => data.Type == plantLine.LineName) is PlantLineData plantLineData)
|
if (cityGameData.PlantLineDataList.FirstOrDefault(data => data.Type == plantLine.LineName) is PlantLineData plantLineData)
|
||||||
{
|
{
|
||||||
if (plantLineData.Level == CornFieldRank.Rank3)
|
if (plantLineData.Level == CornFieldRank.Rank3)
|
||||||
{
|
{
|
||||||
|
@ -449,21 +451,21 @@ public class CornField : MonoBehaviour
|
||||||
|
|
||||||
private void SetData()
|
private void SetData()
|
||||||
{
|
{
|
||||||
var gameData = GameDataManager.GameData;
|
var cityGameData = GameDataManager.GetCurrentCityGameData();
|
||||||
if (gameData.PlantLineDataList == null || gameData.PlantLineDataList.Count == 0)
|
if (cityGameData.PlantLineDataList == null || cityGameData.PlantLineDataList.Count == 0)
|
||||||
{
|
{
|
||||||
gameData.PlantLineDataList = new List<PlantLineData>
|
cityGameData.PlantLineDataList = new List<PlantLineData>
|
||||||
{
|
{
|
||||||
new PlantLineData(PlantLineType.Center, CornFieldRank.Rank1),
|
new PlantLineData(PlantLineType.Center, CornFieldRank.Rank1),
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
if (gameData.SeedlingDataList == null || gameData.SeedlingDataList.Count == 0)
|
if (cityGameData.SeedlingDataList == null || cityGameData.SeedlingDataList.Count == 0)
|
||||||
{
|
{
|
||||||
gameData.SeedlingDataList = new List<SeedlingProgressData>();
|
cityGameData.SeedlingDataList = new List<SeedlingProgressData>();
|
||||||
}
|
}
|
||||||
if (gameData.MachineLevel == 0)
|
if (cityGameData.MachineLevel == 0)
|
||||||
{
|
{
|
||||||
gameData.MachineLevel = 1;
|
cityGameData.MachineLevel = 1;
|
||||||
}
|
}
|
||||||
GameDataManager.SaveGameData();
|
GameDataManager.SaveGameData();
|
||||||
}
|
}
|
||||||
|
|
|
@ -32,7 +32,7 @@ public class CornFieldReinforcement : MonoBehaviour
|
||||||
private void SetView()
|
private void SetView()
|
||||||
{
|
{
|
||||||
compositeDisposable.Clear();
|
compositeDisposable.Clear();
|
||||||
var gameData = GameDataManager.GameData;
|
var cityGameData = GameDataManager.GetCurrentCityGameData();
|
||||||
var fieldData = SpreadsheetDataManager.Instance.GetBaseDataList<FieldUpgradeData>(Const.FieldUpgradeDataSheet);
|
var fieldData = SpreadsheetDataManager.Instance.GetBaseDataList<FieldUpgradeData>(Const.FieldUpgradeDataSheet);
|
||||||
var tmpFieldData = fieldData.Where(data => data.cityId == GameDataManager.GameData.CurrentCityId).ToList();
|
var tmpFieldData = fieldData.Where(data => data.cityId == GameDataManager.GameData.CurrentCityId).ToList();
|
||||||
fieldData = tmpFieldData.Count > 0 ? tmpFieldData : fieldData.Where(data => data.cityId == 0).ToList();
|
fieldData = tmpFieldData.Count > 0 ? tmpFieldData : fieldData.Where(data => data.cityId == 0).ToList();
|
||||||
|
@ -41,7 +41,7 @@ public class CornFieldReinforcement : MonoBehaviour
|
||||||
foreach (var view in reinforcementViews)
|
foreach (var view in reinforcementViews)
|
||||||
{
|
{
|
||||||
var upgradeType = FieldUpgradeData.PlantTypeToUpgradeType(view.LineType);
|
var upgradeType = FieldUpgradeData.PlantTypeToUpgradeType(view.LineType);
|
||||||
if (gameData.PlantLineDataList.FirstOrDefault(x => x.Type == view.LineType) is PlantLineData lineData)
|
if (cityGameData.PlantLineDataList.FirstOrDefault(x => x.Type == view.LineType) is PlantLineData lineData)
|
||||||
{
|
{
|
||||||
// Max
|
// Max
|
||||||
if (lineData.Level == CornFieldRank.Rank3)
|
if (lineData.Level == CornFieldRank.Rank3)
|
||||||
|
@ -89,20 +89,20 @@ public class CornFieldReinforcement : MonoBehaviour
|
||||||
// 収穫機
|
// 収穫機
|
||||||
// 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 (cityGameData.MachineLevel == maxLevel)
|
||||||
{
|
{
|
||||||
machineUpgradeView.SetMax(maxLevel);
|
machineUpgradeView.SetMax(maxLevel);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
var price = 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 == cityGameData.MachineLevel + 1)?.price ?? 1;
|
||||||
machineUpgradeView.SetButtonActive(price <= CoinManager.Instance.OwnCoin);
|
machineUpgradeView.SetButtonActive(price <= CoinManager.Instance.OwnCoin);
|
||||||
machineUpgradeView.SetData(gameData.MachineLevel, price);
|
machineUpgradeView.SetData(cityGameData.MachineLevel, price);
|
||||||
// 購入ボタン
|
// 購入ボタン
|
||||||
machineUpgradeView.ButtonClickObserve.ThrottleFirst(TimeSpan.FromSeconds(.3f)).Subscribe(_ =>
|
machineUpgradeView.ButtonClickObserve.ThrottleFirst(TimeSpan.FromSeconds(.3f)).Subscribe(_ =>
|
||||||
{
|
{
|
||||||
LocalCacheManager.Save(CornFieldReinforcementDataTypeTag, CornFieldUpgradeType.Machine);
|
LocalCacheManager.Save(CornFieldReinforcementDataTypeTag, CornFieldUpgradeType.Machine);
|
||||||
LocalCacheManager.Save(CornFieldReinforcementDataTag, (gameData.MachineLevel, price, new Action(() => {
|
LocalCacheManager.Save(CornFieldReinforcementDataTag, (cityGameData.MachineLevel, price, new Action(() => {
|
||||||
PurchaseMachine(price);
|
PurchaseMachine(price);
|
||||||
SetView();
|
SetView();
|
||||||
LocalCacheManager.Load<Action>(CornFieldResetCallbackTag, null)?.Invoke();
|
LocalCacheManager.Load<Action>(CornFieldResetCallbackTag, null)?.Invoke();
|
||||||
|
@ -114,26 +114,26 @@ public class CornFieldReinforcement : MonoBehaviour
|
||||||
|
|
||||||
private void PurchaseField(int price, PlantLineType type, CornFieldRank nextRank)
|
private void PurchaseField(int price, PlantLineType type, CornFieldRank nextRank)
|
||||||
{
|
{
|
||||||
var gameData = GameDataManager.GameData;
|
var cityGameData = GameDataManager.GetCurrentCityGameData();
|
||||||
if (gameData.PlantLineDataList.FirstOrDefault(x => x.Type == type) is PlantLineData lineData)
|
if (cityGameData.PlantLineDataList.FirstOrDefault(x => x.Type == type) is PlantLineData lineData)
|
||||||
{
|
{
|
||||||
lineData.Level = nextRank;
|
lineData.Level = nextRank;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
gameData.PlantLineDataList.Add(new PlantLineData(type, CornFieldRank.Rank1));
|
cityGameData.PlantLineDataList.Add(new PlantLineData(type, CornFieldRank.Rank1));
|
||||||
}
|
}
|
||||||
CoinManager.Instance.SubCoin(price);
|
CoinManager.Instance.SubCoin(price);
|
||||||
gameData.Coin = CoinManager.Instance.OwnCoin;
|
cityGameData.Coin = CoinManager.Instance.OwnCoin;
|
||||||
GameDataManager.SaveGameData();
|
GameDataManager.SaveGameData();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void PurchaseMachine(int price)
|
private void PurchaseMachine(int price)
|
||||||
{
|
{
|
||||||
var gameData = GameDataManager.GameData;
|
var cityGameData = GameDataManager.GetCurrentCityGameData();
|
||||||
gameData.MachineLevel++;
|
cityGameData.MachineLevel++;
|
||||||
CoinManager.Instance.SubCoin(price);
|
CoinManager.Instance.SubCoin(price);
|
||||||
gameData.Coin = CoinManager.Instance.OwnCoin;
|
cityGameData.Coin = CoinManager.Instance.OwnCoin;
|
||||||
GameDataManager.SaveGameData();
|
GameDataManager.SaveGameData();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue