diff --git a/popcorn/Assets/MyGame/Scenes/Cooking/CookingResults.unity b/popcorn/Assets/MyGame/Scenes/Cooking/CookingResults.unity index 1a6f7f1b..bff9fd9e 100644 --- a/popcorn/Assets/MyGame/Scenes/Cooking/CookingResults.unity +++ b/popcorn/Assets/MyGame/Scenes/Cooking/CookingResults.unity @@ -1952,6 +1952,7 @@ GameObject: serializedVersion: 6 m_Component: - component: {fileID: 1086724005} + - component: {fileID: 1086724006} m_Layer: 5 m_Name: rare m_TagString: Untagged @@ -1983,6 +1984,24 @@ RectTransform: m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1086724006 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1086724004} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 01738374a494495b82539c6ff39c1a3a, type: 3} + m_Name: + m_EditorClassIdentifier: + normalObject: {fileID: 0} + yellowObject: {fileID: 555119198} + copperObject: {fileID: 1184589420} + silverObject: {fileID: 1752228444} + goldObject: {fileID: 1032044846} + rainbowObject: {fileID: 2072945699} --- !u!1 &1184589420 GameObject: m_ObjectHideFlags: 0 @@ -12471,10 +12490,19 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: smokeEffect: {fileID: 947177465739795019} + glitterEffect: {fileID: 1807287602921740329} centerOkButton: {fileID: 2137066051} perfectButton: {fileID: 1887559735} leftOkButton: {fileID: 312157412} destructionButton: {fileID: 781751670} + popcornImage: {fileID: 977215194} + popcornText: {fileID: 2078519775} + popcornTextPerfect: {fileID: 1906782496} + rarityText: {fileID: 1459407280} + rarityView: {fileID: 1086724006} + detailObject: {fileID: 1030818594} + explainObject: {fileID: 1360125025} + explainWithRarityObject: {fileID: 629729947} perfectResultObject: {fileID: 642263093} goodResultObject: {fileID: 1370567321} failureResultObject: {fileID: 460945446} diff --git a/popcorn/Assets/MyGame/Scenes/Cooking/Scripts/CookingResult.cs b/popcorn/Assets/MyGame/Scenes/Cooking/Scripts/CookingResult.cs index 2ca38732..1a74fdf7 100644 --- a/popcorn/Assets/MyGame/Scenes/Cooking/Scripts/CookingResult.cs +++ b/popcorn/Assets/MyGame/Scenes/Cooking/Scripts/CookingResult.cs @@ -1,41 +1,91 @@ using System; +using UniRx; using UnityEngine; using UnityEngine.UI; public class CookingResult : MonoBehaviour { - public static readonly string CookingResultTag = "CookingResult"; + private static readonly string RarityTextFormat = "売値 +{0}% UP"; [SerializeField] private GameObject smokeEffect; + [SerializeField] private GameObject glitterEffect; [SerializeField] private Button centerOkButton; [SerializeField] private Button perfectButton; [SerializeField] private Button leftOkButton; [SerializeField] private Button destructionButton; - + [SerializeField] private Image popcornImage; + [SerializeField] private Text popcornText; + [SerializeField] private Text popcornTextPerfect; + [SerializeField] private Text rarityText; + [SerializeField] private RarityView rarityView; + [SerializeField] private GameObject detailObject; + [SerializeField] private GameObject explainObject; + [SerializeField] private GameObject explainWithRarityObject; [SerializeField] private GameObject perfectResultObject; [SerializeField] private GameObject goodResultObject; [SerializeField] private GameObject failureResultObject; private void Start() { + var data = LocalCacheManager.Load(PopcornGameManager.CookingDataTag); + var result = CornResult.Good; + SetResult(result); + SetUI(result); + + // 各種ボタン押下後、獲得処理 + centerOkButton.OnClickAsObservable().Subscribe(_ => + { + // 獲得、遷移 + TransitionManager.Instance.LoadScene(GameScenes.Main); + }).AddTo(this); + perfectButton.OnClickAsObservable().Subscribe(_ => + { + // 広告視聴後、Perfect表示 + TransitionManager.Instance.UnloadScene(GameScenes.CookingResults, () => + { + // UIリセットでもええかも + TransitionManager.Instance.LoadSceneAdditive(GameScenes.CookingResults); + }); + }).AddTo(this); + leftOkButton.OnClickAsObservable().Subscribe(_ => + { + // 獲得、遷移 + TransitionManager.Instance.LoadScene(GameScenes.Main); + }).AddTo(this); + destructionButton.OnClickAsObservable().Subscribe(_ => + { + // 遷移 + TransitionManager.Instance.LoadScene(GameScenes.Main); + }).AddTo(this); } - + + private void SetData(RecipeData recipe, RarityData rarity) + { + // popcornImage + popcornText.text = recipe.Name; + popcornTextPerfect.text = recipe.Name; + rarityText.text = string.Format(RarityTextFormat, rarity.rate - 100); + rarityView.SetRarity(rarity.Rarity); + } + private void SetResult(CornResult result) { - switch (result) - { - case CornResult.Perfect: - perfectResultObject.SetActive(true); - break; - case CornResult.Good: - goodResultObject.SetActive(true); - break; - case CornResult.Failure: - failureResultObject.SetActive(true); - break; - default: - throw new ArgumentOutOfRangeException(nameof(result), result, null); - } + perfectResultObject.SetActive(result == CornResult.Perfect); + goodResultObject.SetActive(result == CornResult.Good); + failureResultObject.SetActive(result == CornResult.Failure); + } + + private void SetUI(CornResult result) + { + smokeEffect.SetActive(result == CornResult.Failure); + glitterEffect.SetActive(result == CornResult.Perfect); + centerOkButton.gameObject.SetActive(result == CornResult.Perfect); + perfectButton.gameObject.SetActive(result != CornResult.Perfect); + leftOkButton.gameObject.SetActive(result == CornResult.Good); + destructionButton.gameObject.SetActive(result == CornResult.Failure); + detailObject.SetActive(result != CornResult.Failure); + explainObject.SetActive(result == CornResult.Good); + explainWithRarityObject.SetActive(result == CornResult.Perfect); } } diff --git a/popcorn/Assets/MyGame/Scenes/Cooking/Scripts/PopcornGameManager.cs b/popcorn/Assets/MyGame/Scenes/Cooking/Scripts/PopcornGameManager.cs index c50f78ba..0c4491b9 100644 --- a/popcorn/Assets/MyGame/Scenes/Cooking/Scripts/PopcornGameManager.cs +++ b/popcorn/Assets/MyGame/Scenes/Cooking/Scripts/PopcornGameManager.cs @@ -15,6 +15,7 @@ public enum GameState public class PopcornGameManager : MonoBehaviour { + public static readonly string CookingDataTag = "CookingData"; // View [SerializeField] private PopcornGameView gameView; @@ -114,7 +115,7 @@ public class PopcornGameManager : MonoBehaviour // というか1つのシーンにしてしまうか if (x != CornResult.Failure) { - var recipe = LocalCacheManager.Load(RecipeDetailView.DetailRecipeTag); + var recipe = LocalCacheManager.Load(CookingDataTag); AddStock(recipe); } }); diff --git a/popcorn/Assets/MyGame/Scenes/Cooking/Scripts/RarityView.cs b/popcorn/Assets/MyGame/Scenes/Cooking/Scripts/RarityView.cs new file mode 100644 index 00000000..842cfa43 --- /dev/null +++ b/popcorn/Assets/MyGame/Scenes/Cooking/Scripts/RarityView.cs @@ -0,0 +1,21 @@ +using UnityEngine; + +public class RarityView : MonoBehaviour +{ + [SerializeField] private GameObject normalObject; + [SerializeField] private GameObject yellowObject; + [SerializeField] private GameObject copperObject; + [SerializeField] private GameObject silverObject; + [SerializeField] private GameObject goldObject; + [SerializeField] private GameObject rainbowObject; + + public void SetRarity(ProductRarity rarity) + { + normalObject?.SetActive(rarity == ProductRarity.Normal); + yellowObject?.SetActive(rarity == ProductRarity.Yellow); + copperObject?.SetActive(rarity == ProductRarity.Copper); + silverObject?.SetActive(rarity == ProductRarity.Silver); + goldObject?.SetActive(rarity == ProductRarity.Gold); + rainbowObject?.SetActive(rarity == ProductRarity.Rainbow); + } +} diff --git a/popcorn/Assets/MyGame/Scenes/Cooking/Scripts/RarityView.cs.meta b/popcorn/Assets/MyGame/Scenes/Cooking/Scripts/RarityView.cs.meta new file mode 100644 index 00000000..cc048a85 --- /dev/null +++ b/popcorn/Assets/MyGame/Scenes/Cooking/Scripts/RarityView.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 01738374a494495b82539c6ff39c1a3a +timeCreated: 1632196580 \ No newline at end of file diff --git a/popcorn/Assets/MyGame/Scenes/recipe/Scripts/RecipeDetailView.cs b/popcorn/Assets/MyGame/Scenes/recipe/Scripts/RecipeDetailView.cs index 4f10c08d..a39a37c5 100644 --- a/popcorn/Assets/MyGame/Scenes/recipe/Scripts/RecipeDetailView.cs +++ b/popcorn/Assets/MyGame/Scenes/recipe/Scripts/RecipeDetailView.cs @@ -6,7 +6,6 @@ using UnityEngine.UI; public class RecipeDetailView : MonoBehaviour { - public static readonly string DetailRecipeTag = "RecipeData"; private static readonly int OpenTrigger = Animator.StringToHash("OpenTrigger"); private static readonly int CloseTrigger = Animator.StringToHash("CloseTrigger"); @@ -28,7 +27,7 @@ public class RecipeDetailView : MonoBehaviour private void Start() { - var data = LocalCacheManager.Load(DetailRecipeTag); + var data = LocalCacheManager.Load(PopcornGameManager.CookingDataTag); cancelButton.OnClickAsObservable().Subscribe(_ => { diff --git a/popcorn/Assets/MyGame/Scenes/recipe/Scripts/RecipeSelectDialog.cs b/popcorn/Assets/MyGame/Scenes/recipe/Scripts/RecipeSelectDialog.cs index 49883323..7e105c48 100644 --- a/popcorn/Assets/MyGame/Scenes/recipe/Scripts/RecipeSelectDialog.cs +++ b/popcorn/Assets/MyGame/Scenes/recipe/Scripts/RecipeSelectDialog.cs @@ -30,7 +30,7 @@ public class RecipeSelectDialog : MonoBehaviour view.SetLockPanel(false); view.RecipeClickObservable.Subscribe(_ => { - LocalCacheManager.Save(RecipeDetailView.DetailRecipeTag, recipeData); + LocalCacheManager.Save(PopcornGameManager.CookingDataTag, recipeData); TransitionManager.Instance.LoadSceneAdditive(GameScenes.RecipeChoice); }).AddTo(this); }