diff --git a/popcorn/Assets/MyGame/Scenes/Main/Scripts/EarningsReportDialog.cs b/popcorn/Assets/MyGame/Scenes/Main/Scripts/EarningsReportDialog.cs index c37874c3..b4b517a6 100644 --- a/popcorn/Assets/MyGame/Scenes/Main/Scripts/EarningsReportDialog.cs +++ b/popcorn/Assets/MyGame/Scenes/Main/Scripts/EarningsReportDialog.cs @@ -35,8 +35,9 @@ namespace MyGame.Scenes.Main.Scripts var (coin, heart) = PartTimerManager.CalcEarnings(partTimerData, cityGameData.PartTimerElapsed); coinText.text = coin.ToString(); heartText.text = heart.ToString(); - shopCustomizeObject.SetActive(PartTimerManager.Instance.CheckEarningsCustomizeCoin(true)); - shopCustomizeCoinText.text = "1"; + var customizeCoin = PartTimerManager.Instance.CheckEarningsCustomizeCoin(); + shopCustomizeObject.SetActive(customizeCoin > 0); + shopCustomizeCoinText.text = customizeCoin.ToString(); closeButton.OnClickAsObservable().Take(1).Subscribe(_ => { diff --git a/popcorn/Assets/MyGame/Scripts/GameDataManager.cs b/popcorn/Assets/MyGame/Scripts/GameDataManager.cs index 232eff4b..f7b58710 100644 --- a/popcorn/Assets/MyGame/Scripts/GameDataManager.cs +++ b/popcorn/Assets/MyGame/Scripts/GameDataManager.cs @@ -200,7 +200,9 @@ public sealed class GameData { // バイト君 public int PartTimerLevel; public int PartTimerElapsed; // ゲーム起動中経過時間 - public int CustomizeCoinElapsed; // 羽の獲得用経過時間 + + private int[] usedItemCondition; + public List UsedItemCondition; // mission [DataMember(Name = "Data1001")] @@ -571,6 +573,7 @@ public sealed class GameData { ScrollGameStageScoreList = ScrollGameStageScoreList ?? new List(); CityGameDataDict ??= new CityGameDataDict(); FundingDict ??= new FundingDict(); + UsedItemCondition = usedItemCondition?.ToList() ?? new List(); } private Dictionary ArrayToDictionary(KeyValueOfintint[] array){ var dictionary = new Dictionary(); @@ -587,6 +590,7 @@ public sealed class GameData { // lastAdRewardTimeArray = lastAdRewardTimeList.ToArray(); achievedMission = AchievedMission.ToArray(); deliveredOrder = DeliveredOrder.ToArray(); + usedItemCondition = UsedItemCondition.ToArray(); // CityGameData foreach (var cityGameData in CityGameDataDict.Values) { diff --git a/popcorn/Assets/MyGame/Scripts/PartTimerManager.cs b/popcorn/Assets/MyGame/Scripts/PartTimerManager.cs index d4150ea2..12f88cc5 100644 --- a/popcorn/Assets/MyGame/Scripts/PartTimerManager.cs +++ b/popcorn/Assets/MyGame/Scripts/PartTimerManager.cs @@ -12,9 +12,6 @@ namespace MyGame.Scripts { [SerializeField] private int updateTiming = 2; [SerializeField] private int saveTiming = 10; - [SerializeField] private int shopCustomizeCoinTiming = 86400; // 1day - [SerializeField] private int targetCount = 3; - private int checkCount; private float saveElapsed; private List partTimerList; private void Start() @@ -38,8 +35,6 @@ namespace MyGame.Scripts cityGameData.PartTimerElapsed += updateTiming; } - GameDataManager.GameData.CustomizeCoinElapsed += updateTiming; - saveElapsed += updateTiming; if (saveTiming < saveElapsed) { @@ -79,13 +74,15 @@ namespace MyGame.Scripts /// public int GetCustomizeCoin() { - if (CheckEarningsCustomizeCoin()) + // 達成リスト + var list = ItemConditionUtils.GetGlobalList(ItemCondition.TotalHeart, GameDataUtils.GetTotalHeart(), RewardActionType.CustomizeCoin, true); + var rewardCount = 0; + list.ForEach(data => { - checkCount = 0; - GameDataManager.GameData.CustomizeCoinElapsed -= shopCustomizeCoinTiming; - return 1; - } - return 0; + rewardCount += data.value; + ItemConditionUtils.Use(data); + }); + return rewardCount; } /// @@ -93,24 +90,7 @@ namespace MyGame.Scripts /// checkCountがTargetCount以上になれば受取可能 /// /// - public bool CheckEarningsCustomizeCoin(bool withCount = false) - { -#if UNITY_EDITOR - Debug.Log($"CustomizeCoinElapsed:{GameDataManager.GameData.CustomizeCoinElapsed}/{shopCustomizeCoinTiming} checkCount:{checkCount}/{targetCount}"); -#endif - if (shopCustomizeCoinTiming <= GameDataManager.GameData.CustomizeCoinElapsed) - { - if (withCount) - { - checkCount++; - } - if (targetCount <= checkCount) - { - return true; - } - } - return false; - } + public int CheckEarningsCustomizeCoin() => ItemConditionUtils.GetGlobalList(ItemCondition.TotalHeart, GameDataUtils.GetTotalHeart(), RewardActionType.CustomizeCoin, true).Sum(data => data.value); public static (int coin, int heart) CalcEarnings(PartTimerData partTimerData, int elapsed) {