diff --git a/Assets/01.Scenes/_A.LMG.unity b/Assets/01.Scenes/_A.LMG.unity index ed3fbb14f..c66f2b06f 100644 --- a/Assets/01.Scenes/_A.LMG.unity +++ b/Assets/01.Scenes/_A.LMG.unity @@ -1979,6 +1979,142 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 116030347} m_CullTransparentMesh: 1 +--- !u!1 &117931159 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 117931160} + - component: {fileID: 117931162} + - component: {fileID: 117931161} + m_Layer: 5 + m_Name: Text (TMP) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &117931160 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 117931159} + 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_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1799409800} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &117931161 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 117931159} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: ' Close' + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: dabfdeb80b25d44b4ace56414d0eb4ad, type: 2} + m_sharedMaterial: {fileID: 5657039867100983486, guid: dabfdeb80b25d44b4ace56414d0eb4ad, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4281479730 + m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 24 + m_fontSizeBase: 24 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_TextWrappingMode: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 0 + m_ActiveFontFeatures: 6e72656b + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_EmojiFallbackSupport: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!222 &117931162 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 117931159} + m_CullTransparentMesh: 1 --- !u!1 &128638923 GameObject: m_ObjectHideFlags: 0 @@ -2154,7 +2290,7 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: -62.499756, y: -25} + m_AnchoredPosition: {x: -62.499756, y: -25.000015} m_SizeDelta: {x: -95, y: -130} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &139042448 @@ -3791,6 +3927,81 @@ MonoBehaviour: m_PersistentCalls: m_Calls: [] m_IsOn: 1 +--- !u!1 &276084742 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 276084743} + - component: {fileID: 276084745} + - component: {fileID: 276084744} + m_Layer: 5 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &276084743 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 276084742} + 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_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 397137873} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &276084744 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 276084742} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 0.78431374} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &276084745 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 276084742} + m_CullTransparentMesh: 1 --- !u!1001 &278514937 PrefabInstance: m_ObjectHideFlags: 0 @@ -5079,6 +5290,43 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 393212792} m_CullTransparentMesh: 1 +--- !u!1 &397137872 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 397137873} + m_Layer: 5 + m_Name: Panel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &397137873 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 397137872} + 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_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 276084743} + - {fileID: 1799409800} + m_Father: {fileID: 1067781269} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} --- !u!1 &410235866 GameObject: m_ObjectHideFlags: 0 @@ -13884,6 +14132,7 @@ RectTransform: - {fileID: 487445514} - {fileID: 1974283342} - {fileID: 2055805161} + - {fileID: 1067781269} m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} @@ -14068,6 +14317,56 @@ Transform: m_CorrespondingSourceObject: {fileID: 6480298956491796680, guid: 9a394d3c65c71084d8345c36df67c89c, type: 3} m_PrefabInstance: {fileID: 1336734153} m_PrefabAsset: {fileID: 0} +--- !u!1 &1067781268 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1067781269} + - component: {fileID: 1067781270} + m_Layer: 5 + m_Name: EpicBoxUi + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1067781269 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1067781268} + 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_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 397137873} + m_Father: {fileID: 1049919592} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1067781270 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1067781268} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e0fdcba69fdf6824fbb5890828125dcf, type: 3} + m_Name: + m_EditorClassIdentifier: + cardPerfab: {fileID: 5785355462301107295, guid: 2116ffd228314c745b8615652b11d19e, type: 3} --- !u!1 &1070845212 GameObject: m_ObjectHideFlags: 0 @@ -27397,6 +27696,139 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1795712517} m_CullTransparentMesh: 1 +--- !u!1 &1799409799 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1799409800} + - component: {fileID: 1799409803} + - component: {fileID: 1799409802} + - component: {fileID: 1799409801} + m_Layer: 5 + m_Name: GameStartButton + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1799409800 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1799409799} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -0.00004459893} + m_LocalScale: {x: 1.0007789, y: 1.0007789, z: 1.0007789} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 117931160} + m_Father: {fileID: 397137873} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: -370.00003} + m_SizeDelta: {x: 300, y: 50} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1799409801 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1799409799} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 1799409802} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1067781270} + m_TargetAssemblyTypeName: BlueWater.Uis.TycoonEpicBoxUi, Assembly-CSharp + m_MethodName: Close + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 +--- !u!114 &1799409802 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1799409799} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1799409803 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1799409799} + m_CullTransparentMesh: 1 --- !u!1 &1810813669 GameObject: m_ObjectHideFlags: 0 diff --git a/Assets/02.Scripts/Ui/Tycoon/TycoonEpicBoxUi.cs b/Assets/02.Scripts/Ui/Tycoon/TycoonEpicBoxUi.cs new file mode 100644 index 000000000..6683dd840 --- /dev/null +++ b/Assets/02.Scripts/Ui/Tycoon/TycoonEpicBoxUi.cs @@ -0,0 +1,414 @@ +using BlueWater.Tycoons; +using UnityEngine; +using Sirenix.OdinInspector; + +namespace BlueWater.Uis +{ + public class TycoonEpicBoxUi : PopupUi + { + [field: SerializeField, CLabel("카드 프리펫")] + private GameObject cardPerfab; + + private GameObject _panel; + + private GameObject _currentCard01; + private GameObject _currentCard02; + private GameObject _currentCard03; + private GameObject _currentCard04; + private GameObject _currentCard05; + + private TycoonCard _tycoonCard01Componet; + private TycoonCard _tycoonCard02Componet; + private TycoonCard _tycoonCard03Componet; + private TycoonCard _tycoonCard04Componet; + private TycoonCard _tycoonCard05Componet; + + private LevelData _lvData; + private TycoonManager _tycoonManager; + private TycoonStatus _tycoonStatus; + + private void Awake() + { + EventManager.OnOpenedNormalRewardBox += CreateCard; + + _panel = transform.Find("Panel").gameObject; + HideUi(); + } + + void Start() + { + _tycoonManager = TycoonManager.Instance; + _tycoonStatus = _tycoonManager.TycoonStatus; + } + + private void OnDestroy() + { + EventManager.OnOpenedNormalRewardBox -= CreateCard; + } + + public override void Open() + { + VisualFeedbackManager.Instance.SetBaseTimeScale(0.0f); + PlayerInputKeyManager.Instance.DisableAction("Manual"); + PopupUiController.RegisterPopup(this); + ShowUi(); + IsOpened = true; + } + + public override void Close() + { + HideUi(); + PlayerInputKeyManager.Instance.EnableAction("Manual"); + PopupUiController.UnregisterPopup(this); + IsOpened = false; + + if (!PopupUiController.IsPopupListEmpty()) return; + + VisualFeedbackManager.Instance.ResetTimeScale(); + } + + [Button("에픽상자 열기")] + private void CreateCard() + { + /* + * 해당 기능에 대해서는 TycoonSelectCard와 유사한 기능이 많기에... 따로 분리시켜서 효율적으로 관리하도록하자... + * SelectedCard(...) 에 대해서도 이하동문 + */ + + _lvData = TycoonManager.Instance.GetCurrentLevelData(); + + if (!Application.isPlaying) return; + + + + + // 기존 카드가 있으면 삭제 + if (_currentCard01 != null) { Destroy(_currentCard01); } + if (_currentCard02 != null) { Destroy(_currentCard02); } + if (_currentCard03 != null) { Destroy(_currentCard03); } + if (_currentCard04 != null) { Destroy(_currentCard04); } + if (_currentCard05 != null) { Destroy(_currentCard05); } + + + int rand = Random.Range(2, 6); + + + + _currentCard01 = Instantiate(cardPerfab, _panel.transform); + _currentCard01.name = "Card01"; + + _currentCard02 = Instantiate(cardPerfab, _panel.transform); + _currentCard02.name = "Card02"; + + if (rand >= 3) + { + _currentCard03 = Instantiate(cardPerfab, _panel.transform); + _currentCard03.name = "Card03"; + } + + if (rand >= 4) + { + _currentCard04 = Instantiate(cardPerfab, _panel.transform); + _currentCard04.name = "Card04"; + } + + if (rand >= 5) + { + _currentCard05 = Instantiate(cardPerfab, _panel.transform); + _currentCard05.name = "Card05"; + } + + + var scale = new Vector3(0.65f, 0.65f, 1f); + + + if (rand >= 5) + { + _currentCard01.transform.localPosition = new Vector3(-700, 30, 0); + _currentCard01.transform.localScale = scale; + _currentCard02.transform.localPosition = new Vector3(-350, 30, 0); + _currentCard02.transform.localScale = scale; + _currentCard03.transform.localPosition = new Vector3(0, 30, 0); + _currentCard03.transform.localScale = scale; + _currentCard04.transform.localPosition = new Vector3(350, 30, 0); + _currentCard04.transform.localScale = scale; + _currentCard05.transform.localPosition = new Vector3(700, 30, 0); + _currentCard05.transform.localScale = scale; + } + else if (rand >= 4) + { + _currentCard01.transform.localPosition = new Vector3(-525, 30, 0); + _currentCard01.transform.localScale = scale; + _currentCard02.transform.localPosition = new Vector3(-175, 30, 0); + _currentCard02.transform.localScale = scale; + _currentCard03.transform.localPosition = new Vector3(175, 30, 0); + _currentCard03.transform.localScale = scale; + _currentCard04.transform.localPosition = new Vector3(525, 30, 0); + _currentCard04.transform.localScale = scale; + } + else if (rand >= 3) + { + _currentCard01.transform.localPosition = new Vector3(-350, 30, 0); + _currentCard01.transform.localScale = scale; + _currentCard02.transform.localPosition = new Vector3(0, 30, 0); + _currentCard02.transform.localScale = scale; + _currentCard03.transform.localPosition = new Vector3(350, 30, 0); + _currentCard03.transform.localScale = scale; + } + else if (rand >= 2) + { + _currentCard01.transform.localPosition = new Vector3(-175, 30, 0); + _currentCard01.transform.localScale = scale; + _currentCard02.transform.localPosition = new Vector3(175, 30, 0); + _currentCard02.transform.localScale = scale; + } + + _tycoonCard01Componet = _currentCard01.GetComponent(); + _tycoonCard02Componet = _currentCard02.GetComponent(); + if (rand >= 3) _tycoonCard03Componet = _currentCard03.GetComponent(); + if (rand >= 4) _tycoonCard04Componet = _currentCard04.GetComponent(); + if (rand >= 5) _tycoonCard05Componet = _currentCard05.GetComponent(); + + + Open(); + + //----카드 값 지정 및 초기화---- + + CardData card; + + var card01Key = "NULL VAL"; + do + { + card = _tycoonManager.CardDataSo.GetRandCardData(); + card = _tycoonManager.CardDataSo.SubstitutionLiquid(card, _lvData); + + if (card != null) + { + card01Key = card.Idx; + } + + } while (card == null || _tycoonManager.CardDataSo.CardMaxCheck(card) //Max 검사 + || card.Type == CardType.Passive);//패시브 검사 + _tycoonCard01Componet.SetCard(card01Key); + + + + var card02Key = "NULL VAL"; + do + { + card = _tycoonManager.CardDataSo.GetRandCardData(); + card = _tycoonManager.CardDataSo.SubstitutionLiquid(card, _lvData); + if (card != null) + { + card02Key = card.Idx; + } + + } while (card == null || _tycoonManager.CardDataSo.CardMaxCheck(card) //Max 검사 + || card02Key.Equals(card01Key) //중복검사 + || card.Shop != ShopType.Active //숍 등장 검사 + || card.Type == CardType.Passive);//패시브 검사 + _tycoonCard02Componet.SetCard(card02Key); + + var card03Key = "NULL VAL"; + if (rand >= 3) + { + do + { + card = _tycoonManager.CardDataSo.GetRandCardData(); + card = _tycoonManager.CardDataSo.SubstitutionLiquid(card, _lvData); + + if (card != null) + { + card03Key = card.Idx; + } + + } while (card == null || _tycoonManager.CardDataSo.CardMaxCheck(card) //Max 검사 + || card03Key.Equals(card01Key) || card03Key.Equals(card02Key) //중복검사 + || card.Shop != ShopType.Active //숍 등장 검사 + || card.Type == CardType.Passive); //패시브 검사 + _tycoonCard03Componet.SetCard(card03Key); + } + + var card04Key = "NULL VAL"; + if (rand >= 4) + { + do + { + card = _tycoonManager.CardDataSo.GetRandCardData(); + card = _tycoonManager.CardDataSo.SubstitutionLiquid(card, _lvData); + + if (card != null) + { + card04Key = card.Idx; + } + + } while (card == null || _tycoonManager.CardDataSo.CardMaxCheck(card) //Max 검사 + || card04Key.Equals(card01Key) || card04Key.Equals(card02Key) //중복검사 + || card04Key.Equals(card03Key) //중복검사 + || card.Shop != ShopType.Active //숍 등장 검사 + || card.Type == CardType.Passive); //패시브 검사 + + _tycoonCard04Componet.SetCard(card04Key); + } + + if (rand >= 5) + { + var card05Key = "NULL VAL"; + do + { + card = _tycoonManager.CardDataSo.GetRandCardData(); + card = _tycoonManager.CardDataSo.SubstitutionLiquid(card, _lvData); + + if (card != null) + { + card05Key = card.Idx; + } + + } while (card == null || _tycoonManager.CardDataSo.CardMaxCheck(card) //Max 검사 + || card05Key.Equals(card01Key) || card05Key.Equals(card02Key) //중복검사 + || card05Key.Equals(card03Key) || card05Key.Equals(card04Key) //중복검사 + || card.Shop != ShopType.Active //숍 등장 검사 + || card.Type == CardType.Passive); //패시브 검사 + + _tycoonCard05Componet.SetCard(card05Key); + } + + //------------- + + //여기에 선택했을때 호출할 함수를 등록하자! + + _tycoonCard01Componet.Rotation_Start(); + _tycoonCard02Componet.Rotation_Start(); + if (rand >= 3) _tycoonCard03Componet.Rotation_Start(); + if (rand >= 4) _tycoonCard04Componet.Rotation_Start(); + if (rand >= 5) _tycoonCard05Componet.Rotation_Start(); + + GetCard(_tycoonCard01Componet); + GetCard(_tycoonCard02Componet); + if (rand >= 3) GetCard(_tycoonCard03Componet); + if (rand >= 4) GetCard(_tycoonCard04Componet); + if (rand >= 5) GetCard(_tycoonCard05Componet); + } + + public void GetCard(TycoonCard currTycoonCard) + { + switch (currTycoonCard.CardDataForIdx.Idx) //탐색 후 행동... + { + case "HeartSlotPlus": + _tycoonStatus.MaxPlayerHealth += 2; + break; + case "HeartRecovery": + _tycoonStatus.CurrentPlayerHealth += 2; + break; + case "FullHeartRecovery": + _tycoonStatus.CurrentPlayerHealth = _tycoonStatus.MaxPlayerHealth; + break; + case "AddLiquidB": + _tycoonStatus.CurrentLiquidAmountB += 4000; + break; + case "AddLiquidC": + _tycoonStatus.CurrentLiquidAmountC += 4000; + break; + case "AddLiquidD": + _tycoonStatus.CurrentLiquidAmountD += 4000; + break; + case "AddLiquidE": + _tycoonStatus.CurrentLiquidAmountE += 4000; + break; + case "AddGarnish1": + _tycoonStatus.CurrentGarnishAmount1 += 4000; + break; + case "AddGarnish2": + _tycoonStatus.CurrentGarnishAmount2 += 4000; + break; + case "AllLiquidAdd": + EventManager.InvokeAddBarrels(1000); + break; + case "ServerNpcAdd": + EventManager.InvokeCreateServerCrew(); + break; + case "CleanerNpcAdd": + EventManager.InvokeCreateCleanerCrew(); + break; + case "BartenderNpcAdd": + EventManager.InvokeCreateBartenderCrew(); + break; + case "SpeedBoost": + _tycoonStatus.PlayerMoveSpeedMultiplier += 0.1f; + break; + case "ExpBoost": + _tycoonStatus.ExpMultiplier += 0.2f; + break; + case "GoldBoost": + _tycoonStatus.GoldMultiplier += 0.2f; + break; + case "AllCleanUp": + EventManager.InvokeCleaningAll(); + break; + case "GaugeReset": + EventManager.InvokeGaugeResetCustomers(); + break; + case "DashCooldownReduction": + _tycoonStatus.PlayerDashCooldownReduction += 1; + break; + case "TipBoost": + _tycoonStatus.TipMultiplier += 0.2f; + break; + case "EndGoldBoost": + _tycoonStatus.EndGoldMultiplier += 0.1f; + break; + case "AllCustomerPurification": + EventManager.InvokePurifiedCustomerAll(); + break; + case "GaugeTimeUp": + _tycoonStatus.CustomerHurryTimeIncrease += 3; + break; + case "BarrelAutoSupply": + if (_tycoonManager.CardDataSo.CardFirstCheck("BarrelAutoSupply")) + { + EventManager.InvokeAutoSupplyBarrels(); + } + _tycoonStatus.BarrelAutoIncrease += 2; + break; + case "ServerNpcUpgrade": + _tycoonStatus.ServerTipMultiplier += 0.1f; + break; + case "CleanerNpcUpgrade": + _tycoonStatus.CleanerCleaningReduction += 1; + break; + case "BartenderNpcUpgrade": + _tycoonStatus.BartenderMakingReduction += 1; + break; + case "PassiveDoubleServing": + _tycoonStatus.CurrentPassiveCard = PassiveCard.DoubleServing; + break; + case "PassiveRandomChange": + _tycoonStatus.CurrentPassiveCard = PassiveCard.RandomChange; + EventManager.InvokeChangedRandomBox(); + break; + case "PassiveGoldAutoGain": + _tycoonStatus.CurrentPassiveCard = PassiveCard.GoldAutoGain; + EventManager.InvokeGainAutoMoneyCounter(_tycoonManager.TycoonStageController.StageDataSo.AutoGainWaitTime); + break; + case "PassiveMakingBonus": + _tycoonStatus.CurrentPassiveCard = PassiveCard.MakingBonus; + break; + case "PassiveServingBonus": + _tycoonStatus.CurrentPassiveCard = PassiveCard.ServingBonus; + break; + case "PassiveCleaningBonus": + _tycoonStatus.CurrentPassiveCard = PassiveCard.CleaningBonus; + break; + default: Debug.Log("Not Found Card : IDX" + currTycoonCard.CardDataForIdx.Idx); return; + } + + TycoonManager.Instance.CardDataSo.AddToSelectedCard(currTycoonCard.CardDataForIdx); + + } + + + + public void ShowUi() => _panel.SetActive(true); + public void HideUi() => _panel.SetActive(false); + } +} \ No newline at end of file diff --git a/Assets/02.Scripts/Ui/Tycoon/TycoonEpicBoxUi.cs.meta b/Assets/02.Scripts/Ui/Tycoon/TycoonEpicBoxUi.cs.meta new file mode 100644 index 000000000..79f730d0c --- /dev/null +++ b/Assets/02.Scripts/Ui/Tycoon/TycoonEpicBoxUi.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: e0fdcba69fdf6824fbb5890828125dcf \ No newline at end of file diff --git a/Assets/02.Scripts/Ui/Tycoon/TycoonShopUi.cs b/Assets/02.Scripts/Ui/Tycoon/TycoonShopUi.cs index 0d0b718b8..237ce09f1 100644 --- a/Assets/02.Scripts/Ui/Tycoon/TycoonShopUi.cs +++ b/Assets/02.Scripts/Ui/Tycoon/TycoonShopUi.cs @@ -95,9 +95,6 @@ namespace BlueWater.Uis if (!Application.isPlaying) return; - - - // 기존 카드가 있으면 삭제 if (_currentCard01 != null) { Destroy(_currentCard01); } if (_currentCard02 != null) { Destroy(_currentCard02); }