From 0c286fd8c8a7dd638dba313cd3be20d25de0517e Mon Sep 17 00:00:00 2001 From: kimura Date: Fri, 30 Sep 2022 12:13:42 +0900 Subject: [PATCH] =?UTF-8?q?=E3=83=90=E3=82=A4=E3=83=88=E5=A0=B1=E9=85=AC?= =?UTF-8?q?=E3=81=AE=E7=BE=BD=E3=81=AE=E4=BB=98=E4=B8=8E=E5=87=A6=E7=90=86?= =?UTF-8?q?=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Main/Scripts/EarningsReportDialog.cs | 4 +- .../Scenes/Main/Scripts/KitchenManager.cs | 1 + .../Assets/MyGame/Scripts/GameDataManager.cs | 1 + .../Assets/MyGame/Scripts/PartTimerManager.cs | 46 +++++++++++++++++++ 4 files changed, 50 insertions(+), 2 deletions(-) diff --git a/popcorn/Assets/MyGame/Scenes/Main/Scripts/EarningsReportDialog.cs b/popcorn/Assets/MyGame/Scenes/Main/Scripts/EarningsReportDialog.cs index 3dd80e9a..c37874c3 100644 --- a/popcorn/Assets/MyGame/Scenes/Main/Scripts/EarningsReportDialog.cs +++ b/popcorn/Assets/MyGame/Scenes/Main/Scripts/EarningsReportDialog.cs @@ -35,8 +35,8 @@ namespace MyGame.Scenes.Main.Scripts var (coin, heart) = PartTimerManager.CalcEarnings(partTimerData, cityGameData.PartTimerElapsed); coinText.text = coin.ToString(); heartText.text = heart.ToString(); - shopCustomizeCoinText.text = 0.ToString(); - shopCustomizeObject.SetActive(false); + shopCustomizeObject.SetActive(PartTimerManager.Instance.CheckEarningsCustomizeCoin(true)); + shopCustomizeCoinText.text = "1"; closeButton.OnClickAsObservable().Take(1).Subscribe(_ => { diff --git a/popcorn/Assets/MyGame/Scenes/Main/Scripts/KitchenManager.cs b/popcorn/Assets/MyGame/Scenes/Main/Scripts/KitchenManager.cs index f94df1aa..9c5394e1 100644 --- a/popcorn/Assets/MyGame/Scenes/Main/Scripts/KitchenManager.cs +++ b/popcorn/Assets/MyGame/Scenes/Main/Scripts/KitchenManager.cs @@ -88,6 +88,7 @@ public class KitchenManager : MonoBehaviour CoinManager.Instance.AddCoinForBulkOrder(coin, coinPos); cityGameData.Coin = CoinManager.Instance.OwnCoin; cityGameData.PartTimerElapsed -= partTimerElapsed; + globalGameData.ShopCustomizeCoin += PartTimerManager.Instance.GetCustomizeCoin(); GameDataManager.SaveGameData(); }); } diff --git a/popcorn/Assets/MyGame/Scripts/GameDataManager.cs b/popcorn/Assets/MyGame/Scripts/GameDataManager.cs index ae498594..da351cb8 100644 --- a/popcorn/Assets/MyGame/Scripts/GameDataManager.cs +++ b/popcorn/Assets/MyGame/Scripts/GameDataManager.cs @@ -200,6 +200,7 @@ public sealed class GameData { // バイト君 public int PartTimerLevel; public int PartTimerElapsed; // ゲーム起動中経過時間 + public int CustomizeCoinElapsed; // 羽の獲得用経過時間 // mission [DataMember(Name = "Data1001")] diff --git a/popcorn/Assets/MyGame/Scripts/PartTimerManager.cs b/popcorn/Assets/MyGame/Scripts/PartTimerManager.cs index 4214dc93..d4150ea2 100644 --- a/popcorn/Assets/MyGame/Scripts/PartTimerManager.cs +++ b/popcorn/Assets/MyGame/Scripts/PartTimerManager.cs @@ -4,6 +4,7 @@ using System.Linq; using UniRx; using UniRx.Triggers; using UnityEngine; +using Random = UnityEngine.Random; namespace MyGame.Scripts { @@ -11,6 +12,9 @@ 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() @@ -34,6 +38,8 @@ namespace MyGame.Scripts cityGameData.PartTimerElapsed += updateTiming; } + GameDataManager.GameData.CustomizeCoinElapsed += updateTiming; + saveElapsed += updateTiming; if (saveTiming < saveElapsed) { @@ -66,6 +72,46 @@ namespace MyGame.Scripts saveElapsed = 0f; } + /// + /// バイト報酬の羽を取得 + /// アプリ起動中の報酬受取回数によって付与を決める + /// + /// + public int GetCustomizeCoin() + { + if (CheckEarningsCustomizeCoin()) + { + checkCount = 0; + GameDataManager.GameData.CustomizeCoinElapsed -= shopCustomizeCoinTiming; + return 1; + } + return 0; + } + + /// + /// 受取可能チェック + /// 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 static (int coin, int heart) CalcEarnings(PartTimerData partTimerData, int elapsed) { var coin = (int)Mathf.Min((float)partTimerData.sales / 10 * elapsed, partTimerData.maxSales);