diff --git a/popcorn/Assets/MyGame/Scenes/MiniGame/Scripts/ScrollGameWatchVideoDialog.cs b/popcorn/Assets/MyGame/Scenes/MiniGame/Scripts/ScrollGameWatchVideoDialog.cs new file mode 100644 index 00000000..3bf65041 --- /dev/null +++ b/popcorn/Assets/MyGame/Scenes/MiniGame/Scripts/ScrollGameWatchVideoDialog.cs @@ -0,0 +1,88 @@ +using System; +using System.Linq; +using I2.Loc; +using MyGame.Scripts; +using UniRx; +using UnityEngine; +using UnityEngine.UI; +using Random = UnityEngine.Random; + +namespace MyGame.Scenes.MiniGame.Scripts +{ + public class ScrollGameWatchVideoDialog : MonoBehaviour + { + private static readonly string SuccessCallbackTag = "ScrollGameDialogSuccessCallback"; + private static readonly string CloseCallbackTag = "ScrollGameDialogCloseCallback"; + private static readonly int OpenTrigger = Animator.StringToHash("OpenTrigger"); + private static readonly int CloseTrigger = Animator.StringToHash("CloseTrigger"); + + [SerializeField] private Animator backgroundAnimator; + [SerializeField] private Button closeButton; + [SerializeField] private Button closeButton2; + [SerializeField] private Button movieButton; + [SerializeField] private GameObject watchMovieObject; + [SerializeField] private GameObject waitObject; + + [SerializeField] private Text playCountText; + [SerializeField] private Text timeLimitText; + + private void Start() + { + var gameData = GameDataManager.GameData; + + + var count = Const.ScrollGameDailyPlayMaxCount - gameData.ScrollGameLastPlayTime; + var canWatch = count > 0; + watchMovieObject.SetActive(canWatch); + waitObject.SetActive(canWatch); + + playCountText.text = $"{count}"; + var limitTime = TimeSpan.Zero; + if (limitTime.TotalSeconds > 0) + { + timeLimitText.text = String.Format(ScriptLocalization.UI.MissionDailyTimeLimit, limitTime.Hours, limitTime.Minutes, limitTime.Seconds); + } + else + { + timeLimitText.text = String.Format(ScriptLocalization.UI.MissionDailyTimeLimit, 0, 0, 0); + } + + closeButton.OnClickAsObservable().Take(1).Subscribe(_ => + { + LocalCacheManager.Load(CloseCallbackTag, null)?.Invoke(); + LocalCacheManager.Remove(CloseCallbackTag); + transform.parent.SetLocalScale(0); + backgroundAnimator.SetTrigger(CloseTrigger); + this.CallWaitForSeconds(.25f, () => + { + TransitionManager.Instance.UnloadScene(GameScenes.WatchMovieMiniGame); + }); + }).AddTo(this); + closeButton2.OnClickAsObservable().Take(1).Subscribe(_ => + { + LocalCacheManager.Load(CloseCallbackTag, null)?.Invoke(); + LocalCacheManager.Remove(CloseCallbackTag); + transform.parent.SetLocalScale(0); + backgroundAnimator.SetTrigger(CloseTrigger); + this.CallWaitForSeconds(.25f, () => + { + TransitionManager.Instance.UnloadScene(GameScenes.WatchMovieMiniGame); + }); + }).AddTo(this); + movieButton.OnClickAsObservable().Take(1).Subscribe(_ => + { + GetRewardDialog.ShowRewardVideo(GameScenes.WatchMovieMiniGame, AdManager.AD_PLACEMENT_SCROLLGAME, () => + { + LocalCacheManager.Load(SuccessCallbackTag, null)?.Invoke(); + LocalCacheManager.Remove(SuccessCallbackTag); + }); + }).AddTo(this); + } + + public static void ShowDialog(Action onSuccess = null, Action onClose = null){ + LocalCacheManager.Save(SuccessCallbackTag, onSuccess); + LocalCacheManager.Save(CloseCallbackTag, onClose); + TransitionManager.Instance.LoadSceneAdditive(GameScenes.WatchMovieMiniGame); + } + } +} \ No newline at end of file diff --git a/popcorn/Assets/MyGame/Scenes/MiniGame/Scripts/ScrollGameWatchVideoDialog.cs.meta b/popcorn/Assets/MyGame/Scenes/MiniGame/Scripts/ScrollGameWatchVideoDialog.cs.meta new file mode 100644 index 00000000..ea9cbf3f --- /dev/null +++ b/popcorn/Assets/MyGame/Scenes/MiniGame/Scripts/ScrollGameWatchVideoDialog.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: b6a5d684a3564f668c71f59291f92fef +timeCreated: 1655963845 \ No newline at end of file diff --git a/popcorn/Assets/MyGame/Scenes/MiniGame/WatchMovieMiniGame.unity b/popcorn/Assets/MyGame/Scenes/MiniGame/WatchMovieMiniGame.unity index b1a7a36e..44ea10e4 100644 --- a/popcorn/Assets/MyGame/Scenes/MiniGame/WatchMovieMiniGame.unity +++ b/popcorn/Assets/MyGame/Scenes/MiniGame/WatchMovieMiniGame.unity @@ -1489,6 +1489,57 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 783292223} m_CullTransparentMesh: 0 +--- !u!1 &929930128 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 929930130} + - component: {fileID: 929930129} + m_Layer: 0 + m_Name: Manager + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &929930129 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 929930128} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: b6a5d684a3564f668c71f59291f92fef, type: 3} + m_Name: + m_EditorClassIdentifier: + backgroundAnimator: {fileID: 1298517019} + closeButton: {fileID: 4540746} + closeButton2: {fileID: 468766243} + movieButton: {fileID: 208413211} + watchMovieObject: {fileID: 94292405} + waitObject: {fileID: 1244116848} + playCountText: {fileID: 2013893995} + timeLimitText: {fileID: 62056726} +--- !u!4 &929930130 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 929930128} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!114 &1063352196 MonoBehaviour: m_ObjectHideFlags: 0 diff --git a/popcorn/Assets/MyGame/Scripts/AdManager.cs b/popcorn/Assets/MyGame/Scripts/AdManager.cs index eeff5521..95be4fd4 100644 --- a/popcorn/Assets/MyGame/Scripts/AdManager.cs +++ b/popcorn/Assets/MyGame/Scripts/AdManager.cs @@ -10,6 +10,7 @@ public sealed class AdManager : SingletonMonoBehaviour { public static readonly string AD_PLACEMENT_PERFECT = "perfect_popcorn"; public static readonly string AD_PLACEMENT_VIP = "vip_customer"; public static readonly string AD_PLACEMENT_AUTO = "auto_popcorn"; + public static readonly string AD_PLACEMENT_SCROLLGAME = "scroll_game"; //-- ironSource --// #if UNITY_IOS