From 02668100ba8d270daa9b3ca3b1ba9051711f8ff1 Mon Sep 17 00:00:00 2001 From: kimura Date: Tue, 27 Sep 2022 14:53:54 +0900 Subject: [PATCH] =?UTF-8?q?=E5=8F=8E=E7=9B=8A=E5=A0=B1=E5=91=8A=E3=83=80?= =?UTF-8?q?=E3=82=A4=E3=82=A2=E3=83=AD=E3=82=B0=E5=87=A6=E7=90=86=E8=BF=BD?= =?UTF-8?q?=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../MyGame/Scenes/Main/EarningsReport.unity | 18 ++++++ .../Main/Scripts/EarningsReportDialog.cs | 55 +++++++++++++++++++ .../Main/Scripts/EarningsReportDialog.cs.meta | 3 + .../Assets/MyGame/Scripts/PartTimerManager.cs | 7 +++ .../MyGame/Scripts/TransitionManager.cs | 1 + .../ProjectSettings/EditorBuildSettings.asset | 3 + 6 files changed, 87 insertions(+) create mode 100644 popcorn/Assets/MyGame/Scenes/Main/Scripts/EarningsReportDialog.cs create mode 100644 popcorn/Assets/MyGame/Scenes/Main/Scripts/EarningsReportDialog.cs.meta diff --git a/popcorn/Assets/MyGame/Scenes/Main/EarningsReport.unity b/popcorn/Assets/MyGame/Scenes/Main/EarningsReport.unity index 52352d9f..9baee412 100644 --- a/popcorn/Assets/MyGame/Scenes/Main/EarningsReport.unity +++ b/popcorn/Assets/MyGame/Scenes/Main/EarningsReport.unity @@ -1216,6 +1216,7 @@ GameObject: serializedVersion: 6 m_Component: - component: {fileID: 3565416526630057446} + - component: {fileID: 3565416526630057447} m_Layer: 5 m_Name: Window m_TagString: Untagged @@ -1245,6 +1246,23 @@ RectTransform: m_AnchoredPosition: {x: 0, y: 145} m_SizeDelta: {x: 764, y: 830} m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &3565416526630057447 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3565416526630057445} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 01ca388010e24120aa98f212127e2687, type: 3} + m_Name: + m_EditorClassIdentifier: + backgroundAnimator: {fileID: 3565416526696996281} + closeButton: {fileID: 3565416526814180894} + coinText: {fileID: 3565416525567727735} + heartText: {fileID: 3565416527223446235} + shopCustomizeCoinText: {fileID: 3565416527311284399} --- !u!1 &3565416526696996279 GameObject: m_ObjectHideFlags: 0 diff --git a/popcorn/Assets/MyGame/Scenes/Main/Scripts/EarningsReportDialog.cs b/popcorn/Assets/MyGame/Scenes/Main/Scripts/EarningsReportDialog.cs new file mode 100644 index 00000000..b60b0910 --- /dev/null +++ b/popcorn/Assets/MyGame/Scenes/Main/Scripts/EarningsReportDialog.cs @@ -0,0 +1,55 @@ +using System; +using System.Linq; +using I2.Loc; +using MyGame.Scripts; +using UniRx; +using UnityEngine; +using UnityEngine.UI; + +namespace MyGame.Scenes.Main.Scripts +{ + public class EarningsReportDialog : MonoBehaviour + { + private static readonly string CallbackTag = "UpdateDialogCallback"; + private static readonly int OpenTrigger = Animator.StringToHash("OpenTrigger"); + private static readonly int CloseTrigger = Animator.StringToHash("CloseTrigger"); + private static readonly GameScenes SceneName = GameScenes.EarningsReport; + + [SerializeField] private Animator backgroundAnimator; + [SerializeField] private Button closeButton; + [SerializeField] private Text coinText; + [SerializeField] private Text heartText; + [SerializeField] private Text shopCustomizeCoinText; + + private void Start() + { + var onClose = LocalCacheManager.Load(CallbackTag, default); + LocalCacheManager.Remove(CallbackTag); + + var cityGameData = GameDataManager.GetCurrentCityGameData(); + var partTimersList = SpreadsheetDataManager.Instance.GetBaseDataList(Const.PartTimerDataSheet); + var partTimerData = partTimersList.First(data => data.level == cityGameData.PartTimerLevel); + var (coin, heart) = PartTimerManager.CalcEarnings(partTimerData, cityGameData.PartTimerElapsed); + coinText.text = coin.ToString(); + heartText.text = heart.ToString(); + shopCustomizeCoinText.text = 0.ToString(); + + closeButton.OnClickAsObservable().Take(1).Subscribe(_ => + { + onClose?.Invoke(); + transform.parent.SetLocalScale(0); + backgroundAnimator.SetTrigger(CloseTrigger); + this.CallWaitForSeconds(.25f, () => + { + TransitionManager.Instance.UnloadScene(SceneName); + }); + }).AddTo(this); + } + + public static void ShowDialog(Action onClose = null) + { + LocalCacheManager.Save(CallbackTag, onClose); + TransitionManager.Instance.LoadSceneAdditive(SceneName); + } + } +} \ No newline at end of file diff --git a/popcorn/Assets/MyGame/Scenes/Main/Scripts/EarningsReportDialog.cs.meta b/popcorn/Assets/MyGame/Scenes/Main/Scripts/EarningsReportDialog.cs.meta new file mode 100644 index 00000000..20655071 --- /dev/null +++ b/popcorn/Assets/MyGame/Scenes/Main/Scripts/EarningsReportDialog.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 01ca388010e24120aa98f212127e2687 +timeCreated: 1664165347 \ No newline at end of file diff --git a/popcorn/Assets/MyGame/Scripts/PartTimerManager.cs b/popcorn/Assets/MyGame/Scripts/PartTimerManager.cs index f94dd7ea..7ba6bd84 100644 --- a/popcorn/Assets/MyGame/Scripts/PartTimerManager.cs +++ b/popcorn/Assets/MyGame/Scripts/PartTimerManager.cs @@ -63,5 +63,12 @@ namespace MyGame.Scripts { saveElapsed = 0f; } + + public static (int coin, int heart) CalcEarnings(PartTimerData partTimerData, int elapsed) + { + var coin = (int)Mathf.Min((float)partTimerData.sales / 10 * elapsed, partTimerData.maxSales); + var heart = (int)Mathf.Min((float)partTimerData.heart / 10 * elapsed, partTimerData.maxHeart); + return (coin, heart); + } } } \ No newline at end of file diff --git a/popcorn/Assets/MyGame/Scripts/TransitionManager.cs b/popcorn/Assets/MyGame/Scripts/TransitionManager.cs index 41ca520e..933cca75 100644 --- a/popcorn/Assets/MyGame/Scripts/TransitionManager.cs +++ b/popcorn/Assets/MyGame/Scripts/TransitionManager.cs @@ -56,6 +56,7 @@ public enum GameScenes WorldMapInvestment, WorldMap_FoodStand, EmploymentList, + EarningsReport } public enum SceneType diff --git a/popcorn/ProjectSettings/EditorBuildSettings.asset b/popcorn/ProjectSettings/EditorBuildSettings.asset index 683c8e98..e8f97449 100644 --- a/popcorn/ProjectSettings/EditorBuildSettings.asset +++ b/popcorn/ProjectSettings/EditorBuildSettings.asset @@ -158,4 +158,7 @@ EditorBuildSettings: - enabled: 1 path: Assets/MyGame/Scenes/Main/EmploymentList.unity guid: 314b9b13d02d4904b936faaa05256203 + - enabled: 1 + path: Assets/MyGame/Scenes/Main/EarningsReport.unity + guid: 3360f0f6c15d62f4f97b27f999b72baf m_configObjects: {}