Commit 15bccc0f authored by SherryChaos's avatar SherryChaos

special win animation & card rendering language setting

parent 8d29331c
......@@ -6436,7 +6436,7 @@ MonoBehaviour:
m_HorizontalOverflow: 0
m_VerticalOverflow: 0
m_LineSpacing: 0
m_Text: "\u9752\u773C\u767D\u9F99"
m_Text:
--- !u!222 &124899931
CanvasRenderer:
m_ObjectHideFlags: 0
......@@ -6730,7 +6730,7 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0.5}
m_AnchorMax: {x: 1, y: 0.5}
m_AnchoredPosition: {x: -399.99988, y: 0}
m_AnchoredPosition: {x: -399.99985, y: 0}
m_SizeDelta: {x: -1350, y: 80}
m_Pivot: {x: 1, y: 0}
--- !u!114 &129642814
......@@ -7653,7 +7653,7 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0.5}
m_AnchorMax: {x: 0, y: 0.5}
m_AnchoredPosition: {x: -490.00037, y: 0}
m_AnchoredPosition: {x: -490.00034, y: 0}
m_SizeDelta: {x: 490, y: 2000}
m_Pivot: {x: 0, y: 0.5}
--- !u!114 &153416284
......@@ -12916,7 +12916,7 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 247.49988, y: -540}
m_AnchoredPosition: {x: 247.49985, y: -540}
m_SizeDelta: {x: -565, y: 1080}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &250597853
......@@ -13217,6 +13217,7 @@ RectTransform:
- {fileID: 1284572561}
- {fileID: 1149457841}
- {fileID: 1802412320}
- {fileID: 1437610478}
- {fileID: 1914298059}
m_Father: {fileID: 835420698}
m_RootOrder: 0
......@@ -13224,7 +13225,7 @@ RectTransform:
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 2250}
m_SizeDelta: {x: 0, y: 2400}
m_Pivot: {x: 0, y: 1}
--- !u!1 &256757514
GameObject:
......@@ -15808,7 +15809,7 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 247.49988, y: -540}
m_AnchoredPosition: {x: 247.49985, y: -540}
m_SizeDelta: {x: -565, y: 1080}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &296823158
......@@ -17924,7 +17925,7 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0.5}
m_AnchorMax: {x: 1, y: 0.5}
m_AnchoredPosition: {x: -399.99988, y: 300}
m_AnchoredPosition: {x: -399.99985, y: 300}
m_SizeDelta: {x: -1350, y: 80}
m_Pivot: {x: 1, y: 0}
--- !u!114 &365844423
......@@ -22297,7 +22298,7 @@ MonoBehaviour:
m_HandleRect: {fileID: 902627732}
m_Direction: 2
m_Value: 1
m_Size: 0.48
m_Size: 0.44999996
m_NumberOfSteps: 0
m_OnValueChanged:
m_PersistentCalls:
......@@ -26532,6 +26533,85 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 517009798}
m_CullTransparentMesh: 1
--- !u!1 &518636960
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 518636961}
- component: {fileID: 518636963}
- component: {fileID: 518636962}
m_Layer: 5
m_Name: '#Text_Ex'
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &518636961
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 518636960}
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: 1442862352}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0.5}
m_AnchorMax: {x: 1, y: 0.5}
m_AnchoredPosition: {x: 25, y: -26}
m_SizeDelta: {x: -50, y: 40}
m_Pivot: {x: 0, y: 0.5}
--- !u!114 &518636962
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 518636960}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, 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_FontData:
m_Font: {fileID: 12800000, guid: cdf4c81f8bf6eb248a105d8a5edf19fd, type: 3}
m_FontSize: 23
m_FontStyle: 0
m_BestFit: 0
m_MinSize: 2
m_MaxSize: 59
m_Alignment: 3
m_AlignByGeometry: 0
m_RichText: 1
m_HorizontalOverflow: 0
m_VerticalOverflow: 0
m_LineSpacing: 1
m_Text: "\u8BBE\u7F6E\u5361\u56FE\u4E2D\u7684\u8BED\u8A00"
--- !u!222 &518636963
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 518636960}
m_CullTransparentMesh: 1
--- !u!1 &519101194
GameObject:
m_ObjectHideFlags: 0
......@@ -34688,6 +34768,8 @@ MonoBehaviour:
autoRPSValue: {fileID: 447766551}
uiScale: {fileID: 878213415}
uiScaleValue: {fileID: 827639876}
cardLanguage: {fileID: 1442862357}
cardLanguageValue: {fileID: 1593847972}
language: {fileID: 2138794183}
languageValue: {fileID: 494374500}
duelAppearance: {fileID: 586408462}
......@@ -34891,7 +34973,7 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 247.49988, y: -540}
m_AnchoredPosition: {x: 247.49985, y: -540}
m_SizeDelta: {x: -565, y: 1080}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &681567863
......@@ -35648,7 +35730,7 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0.000030517578}
m_AnchoredPosition: {x: 0, y: -0.000030517578}
m_SizeDelta: {x: 0, y: 300}
m_Pivot: {x: 0.5, y: 1}
--- !u!114 &702608002
......@@ -37543,7 +37625,7 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: -419.99988, y: -60}
m_AnchoredPosition: {x: -419.99985, y: -60}
m_SizeDelta: {x: 400, y: 760}
m_Pivot: {x: 0, y: 1}
--- !u!114 &736958434
......@@ -38977,7 +39059,7 @@ MonoBehaviour:
m_HandleRect: {fileID: 476827028}
m_Direction: 2
m_Value: 1
m_Size: 0.62751776
m_Size: 0.63850546
m_NumberOfSteps: 0
m_OnValueChanged:
m_PersistentCalls:
......@@ -51055,7 +51137,7 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 247.49988, y: -540}
m_AnchoredPosition: {x: 247.49985, y: -540}
m_SizeDelta: {x: -565, y: 1080}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &1005556390
......@@ -55564,7 +55646,7 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0.000030517578}
m_SizeDelta: {x: 0, y: 300}
m_Pivot: {x: 0.5, y: 1}
--- !u!1 &1117266860
......@@ -60392,7 +60474,7 @@ MonoBehaviour:
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_text: "Ave M\xE1xima del Valle Brumoso"
m_text:
m_isRightToLeft: 0
m_fontAsset: {fileID: 11400000, guid: 61da779331669ef43956c281aebd9006, type: 2}
m_sharedMaterial: {fileID: -1319644866169810436, guid: 61da779331669ef43956c281aebd9006, type: 2}
......@@ -68789,7 +68871,7 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 247.49988, y: -540}
m_AnchoredPosition: {x: 247.49985, y: -540}
m_SizeDelta: {x: -565, y: 1080}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &1371617110
......@@ -68941,7 +69023,7 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0.5}
m_AnchorMax: {x: 1, y: 0.5}
m_AnchoredPosition: {x: -399.99988, y: 150}
m_AnchoredPosition: {x: -399.99985, y: 150}
m_SizeDelta: {x: -1350, y: 80}
m_Pivot: {x: 1, y: 0}
--- !u!114 &1374530642
......@@ -72754,6 +72836,82 @@ RectTransform:
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 1500}
m_Pivot: {x: 0, y: 1}
--- !u!1 &1437610477
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1437610478}
- component: {fileID: 1437610480}
- component: {fileID: 1437610479}
m_Layer: 5
m_Name: CardLanguage
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &1437610478
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1437610477}
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:
- {fileID: 1442862352}
m_Father: {fileID: 255926432}
m_RootOrder: 14
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 10, y: -2080}
m_SizeDelta: {x: -50, y: 140}
m_Pivot: {x: 0, y: 1}
--- !u!114 &1437610479
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1437610477}
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: 21300000, guid: c60170ace8b98804da6966754b4bf67e, type: 3}
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 &1437610480
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1437610477}
m_CullTransparentMesh: 1
--- !u!1 &1440028868
GameObject:
m_ObjectHideFlags: 0
......@@ -72954,6 +73112,170 @@ Transform:
m_Father: {fileID: 365283973}
m_RootOrder: 3
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &1442862351
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1442862352}
- component: {fileID: 1442862356}
- component: {fileID: 1442862355}
- component: {fileID: 1442862357}
- component: {fileID: 1442862354}
- component: {fileID: 1442862353}
m_Layer: 5
m_Name: Button
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &1442862352
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1442862351}
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:
- {fileID: 1525256698}
- {fileID: 518636961}
- {fileID: 1593847970}
- {fileID: 1921542594}
m_Father: {fileID: 1437610478}
m_RootOrder: 0
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!95 &1442862353
Animator:
serializedVersion: 5
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1442862351}
m_Enabled: 1
m_Avatar: {fileID: 0}
m_Controller: {fileID: 9100000, guid: a331e0b501f943a4ebf8f266a43ae8f7, type: 2}
m_CullingMode: 0
m_UpdateMode: 0
m_ApplyRootMotion: 0
m_LinearVelocityBlending: 0
m_StabilizeFeet: 0
m_WarningMessage:
m_HasTransformHierarchy: 1
m_AllowConstantClipSamplingOptimization: 1
m_KeepAnimatorStateOnDisable: 0
m_WriteDefaultValuesOnDisable: 0
--- !u!114 &1442862354
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1442862351}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: c48b628189305e649b63ee28987f282f, type: 3}
m_Name:
m_EditorClassIdentifier:
previewClip: {fileID: 0}
enterAudio:
clickAudio: SE_MENU_SELECT_01
exitAudio:
audioType: 0
--- !u!114 &1442862355
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1442862351}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 2100000, guid: 9126a6c7014175e4b91a80f607d03903, type: 2}
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: 21300000, guid: cd51bb57b5d16b14b82579d3a9d130fc, type: 3}
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 &1442862356
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1442862351}
m_CullTransparentMesh: 1
--- !u!114 &1442862357
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1442862351}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Navigation:
m_Mode: 0
m_WrapAround: 0
m_SelectOnUp: {fileID: 0}
m_SelectOnDown: {fileID: 0}
m_SelectOnLeft: {fileID: 0}
m_SelectOnRight: {fileID: 0}
m_Transition: 3
m_Colors:
m_NormalColor: {r: 1, g: 1, b: 1, a: 0}
m_HighlightedColor: {r: 1, g: 1, b: 1, a: 1}
m_PressedColor: {r: 0.6, g: 0.6, b: 0.6, 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: 1442862355}
m_OnClick:
m_PersistentCalls:
m_Calls: []
--- !u!1 &1443061674
GameObject:
m_ObjectHideFlags: 0
......@@ -77940,6 +78262,85 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1524753703}
m_CullTransparentMesh: 1
--- !u!1 &1525256697
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1525256698}
- component: {fileID: 1525256700}
- component: {fileID: 1525256699}
m_Layer: 5
m_Name: '#Text_Title'
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &1525256698
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1525256697}
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: 1442862352}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 25, y: -30}
m_SizeDelta: {x: -75, y: 40}
m_Pivot: {x: 0, y: 0.5}
--- !u!114 &1525256699
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1525256697}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, 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_FontData:
m_Font: {fileID: 12800000, guid: cdf4c81f8bf6eb248a105d8a5edf19fd, type: 3}
m_FontSize: 25
m_FontStyle: 0
m_BestFit: 0
m_MinSize: 2
m_MaxSize: 59
m_Alignment: 3
m_AlignByGeometry: 0
m_RichText: 1
m_HorizontalOverflow: 0
m_VerticalOverflow: 0
m_LineSpacing: 1
m_Text: "\u5361\u56FE\u8BED\u8A00"
--- !u!222 &1525256700
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1525256697}
m_CullTransparentMesh: 1
--- !u!1 &1527418541
GameObject:
m_ObjectHideFlags: 0
......@@ -81051,6 +81452,85 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1593276268}
m_CullTransparentMesh: 1
--- !u!1 &1593847969
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1593847970}
- component: {fileID: 1593847971}
- component: {fileID: 1593847972}
m_Layer: 5
m_Name: Text_SettingValue
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &1593847970
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1593847969}
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: 1442862352}
m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 1, y: 1}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: -100, y: -15}
m_SizeDelta: {x: 600, y: 40}
m_Pivot: {x: 1, y: 1}
--- !u!222 &1593847971
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1593847969}
m_CullTransparentMesh: 1
--- !u!114 &1593847972
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1593847969}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 0.8, g: 1, b: 0, 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_FontData:
m_Font: {fileID: 12800000, guid: cdf4c81f8bf6eb248a105d8a5edf19fd, type: 3}
m_FontSize: 25
m_FontStyle: 0
m_BestFit: 0
m_MinSize: 2
m_MaxSize: 40
m_Alignment: 5
m_AlignByGeometry: 0
m_RichText: 1
m_HorizontalOverflow: 0
m_VerticalOverflow: 0
m_LineSpacing: 1
m_Text: "\u7B80\u4F53\u4E2D\u6587"
--- !u!1 &1594175424
GameObject:
m_ObjectHideFlags: 0
......@@ -92740,7 +93220,7 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0.5}
m_AnchorMax: {x: 1, y: 0.5}
m_AnchoredPosition: {x: -399.99988, y: -150}
m_AnchoredPosition: {x: -399.99985, y: -150}
m_SizeDelta: {x: -1350, y: 80}
m_Pivot: {x: 1, y: 0}
--- !u!114 &1800729521
......@@ -97653,7 +98133,7 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 247.49988, y: -540}
m_AnchoredPosition: {x: 247.49985, y: -540}
m_SizeDelta: {x: -565, y: 1080}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &1895460095
......@@ -98890,11 +99370,11 @@ RectTransform:
m_Children:
- {fileID: 2138794180}
m_Father: {fileID: 255926432}
m_RootOrder: 14
m_RootOrder: 15
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 10, y: -2080}
m_AnchoredPosition: {x: 10, y: -2230}
m_SizeDelta: {x: -50, y: 140}
m_Pivot: {x: 0, y: 1}
--- !u!114 &1914298060
......@@ -99098,6 +99578,81 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1918493725}
m_CullTransparentMesh: 1
--- !u!1 &1921542593
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1921542594}
- component: {fileID: 1921542596}
- component: {fileID: 1921542595}
m_Layer: 5
m_Name: Arrow
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &1921542594
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1921542593}
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: 1442862352}
m_RootOrder: 3
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 1, y: 1}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: -20, y: -35}
m_SizeDelta: {x: 20.8, y: 32}
m_Pivot: {x: 1, y: 0.5}
--- !u!114 &1921542595
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1921542593}
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: 21300000, guid: 579c4968ae1425a4594bdd981b3d8ee6, type: 3}
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 &1921542596
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1921542593}
m_CullTransparentMesh: 1
--- !u!1 &1922474490
GameObject:
m_ObjectHideFlags: 0
......@@ -48,7 +48,7 @@ namespace MDPro3
//cardDescription
cardName.fontSize = 50;
cardName.GetComponent<RectTransform>().sizeDelta = new Vector2(200, 80);
var language = Config.Get("Language", "zh-CN");
var language = Config.Get("CardLanguage", "zh-CN");
if (language == "zh-CN")
{
var handle = Addressables.LoadAssetAsync<Font>("RenderFontChineseSimplified");
......@@ -107,13 +107,13 @@ namespace MDPro3
public void RenderName(int code)
{
var data = CardsManager.Get(code);
var data = CardsManager.GetRenderCard(code);
if (data.Id == 0)
return;
cardName.GetComponent<RectTransform>().localScale = Vector3.one;
cardNameTMP.GetComponent<RectTransform>().localScale = Vector3.one;
if (Config.Get("Language", "zh-CN") == "en-US"
|| Config.Get("Language", "zh-CN") == "es-ES")
if (Config.Get("CardLanguage", "zh-CN") == "en-US"
|| Config.Get("CardLanguage", "zh-CN") == "es-ES")
{
cardName.text = string.Empty;
cardNameTMP.text = data.Name;
......@@ -184,14 +184,14 @@ namespace MDPro3
public void RenderCard(int code, Texture2D art)
{
var data = CardsManager.Get(code);
Card data = CardsManager.GetRenderCard(code);
if (data.Id == 0)
return;
cardName.GetComponent<RectTransform>().localScale = Vector3.one;
cardNameTMP.GetComponent<RectTransform>().localScale = Vector3.one;
if (Config.Get("Language", "zh-CN") == "en-US"
|| Config.Get("Language", "zh-CN") == "es-ES")
if (Config.Get("CardLanguage", "zh-CN") == "en-US"
|| Config.Get("CardLanguage", "zh-CN") == "es-ES")
{
cardName.text = string.Empty;
cardNameTMP.text = data.Name;
......@@ -259,7 +259,7 @@ namespace MDPro3
cardArtPendulum.texture = art;
}
var pendulumDescription = CardDescription.GetCardDescriptionSplit(data.Desc);
cardDescription.text = StringHelper.GetType(data).Replace(Program.slash, bigSlash) + "\r\n" + TextForRender(pendulumDescription[1]);
cardDescription.text = StringHelper.GetType(data, true).Replace(Program.slash, bigSlash) + "\r\n" + TextForRender(pendulumDescription[1]);
cardDescriptionPendulum.text = TextForRender(pendulumDescription[0]);
lScale.text = data.LScale.ToString();
rScale.text = data.RScale.ToString();
......@@ -282,7 +282,7 @@ namespace MDPro3
cardArt.texture = art;
var description = "";
if ((data.Type & (uint)CardType.Monster) > 0)
description = StringHelper.GetType(data).Replace(Program.slash, bigSlash) + "\r\n";
description = StringHelper.GetType(data, true).Replace(Program.slash, bigSlash) + "\r\n";
description += TextForRender(data.Desc);
cardDescription.text = description;
......@@ -320,7 +320,7 @@ namespace MDPro3
var bracketRight = "】";
var spaces = " ";
spellTypeIcon.GetComponent<RectTransform>().anchoredPosition = new Vector2(-79f, 364);
switch (Config.Get("Language", "zh-CN"))
switch (Config.Get("CardLanguage", "zh-CN"))
{
case "en-US":
bracketLeft = "[";
......@@ -350,7 +350,7 @@ namespace MDPro3
if ((data.Type & (uint)CardType.Spell) > 0)
{
cardFrame.sprite = TextureManager.container.cardFrameSpellOF;
var type = bracketLeft + InterString.Get("魔法卡") + spaces + bracketRight;
var type = bracketLeft + InterString.Get("魔法卡", true) + spaces + bracketRight;
if ((data.Type & (uint)CardType.Field) > 0)
spellTypeIcon.sprite = TextureManager.container.typeField;
else if ((data.Type & (uint)CardType.Equip) > 0)
......@@ -368,7 +368,7 @@ namespace MDPro3
else
{
cardFrame.sprite = TextureManager.container.cardFrameTrapOF;
var type = bracketLeft + InterString.Get("陷阱卡") + spaces + bracketRight;
var type = bracketLeft + InterString.Get("陷阱卡", true) + spaces + bracketRight;
if ((data.Type & (uint)CardType.Counter) > 0)
spellTypeIcon.sprite = TextureManager.container.typeCounter;
else if ((data.Type & (uint)CardType.Continuous) > 0)
......@@ -490,7 +490,7 @@ namespace MDPro3
{
if (string.IsNullOrEmpty(description))
return string.Empty;
var language = Config.Get("Language", "zh-CN");
var language = Config.Get("CardLanguage", "zh-CN");
if (language == "ja-JP")
{
......
......@@ -11,7 +11,6 @@ using MDPro3.UI;
using MDPro3.YGOSharp;
using MDPro3.YGOSharp.OCGWrapper.Enums;
namespace MDPro3
{
public class GPS
......@@ -1736,6 +1735,7 @@ namespace MDPro3
sequence.Append(offset.DOLocalMove(new Vector3(0, 2, 3), 0.1f).OnStart(() =>
{
AudioManager.PlaySE("SE_CARDVIEW_02");
Program.I().ocgcore.description.Show(this, null);
}));
sequence.Join(turn.DOLocalRotate(Vector3.zero, 0.1f).OnComplete(() =>
{
......
......@@ -120,40 +120,39 @@ namespace MDPro3.YGOSharp
internal Card(IDataRecord reader)
{
this.Str = new string[16];
this.Id = (int)reader.GetInt64(0);
this.Ot = reader.GetInt32(1);
this.Alias = (int)reader.GetInt64(2);
this.Setcode = reader.GetInt64(3);
this.Type = (int)reader.GetInt64(4);
this.Attack = reader.GetInt32(5);
this.Defense = reader.GetInt32(6);
this.rAttack = this.Attack;
this.rDefense = this.Defense;
Str = new string[16];
Id = (int)reader.GetInt64(0);
Ot = reader.GetInt32(1);
Alias = (int)reader.GetInt64(2);
Setcode = reader.GetInt64(3);
Type = (int)reader.GetInt64(4);
Attack = reader.GetInt32(5);
Defense = reader.GetInt32(6);
rAttack = this.Attack;
rDefense = this.Defense;
long Level_raw = reader.GetInt64(7);
this.Level = (int)Level_raw & 0xff;
this.LScale = (int)((Level_raw >> 0x18) & 0xff);
this.RScale = (int)((Level_raw >> 0x10) & 0xff);
this.LinkMarker = this.Defense;
this.Race = reader.GetInt32(8);
this.Attribute = reader.GetInt32(9);
this.Category = reader.GetInt64(10);
this.Name = reader.GetString(12);
this.Desc = reader.GetString(13);
Level = (int)Level_raw & 0xff;
LScale = (int)((Level_raw >> 0x18) & 0xff);
RScale = (int)((Level_raw >> 0x10) & 0xff);
LinkMarker = this.Defense;
Race = reader.GetInt32(8);
Attribute = reader.GetInt32(9);
Category = reader.GetInt64(10);
Name = reader.GetString(12);
Desc = reader.GetString(13);
for (int ii = 0; ii < 0x10; ii++)
{
this.Str[ii] = reader.GetString(14 + ii);
Str[ii] = reader.GetString(14 + ii);
}
}
public Card()
{
this.Id = 0;
this.Str = new string[16];
this.Name = CardsManager.nullName;
this.Desc = CardsManager.nullString;
Id = 0;
Str = new string[16];
Name = CardsManager.nullName;
Desc = CardsManager.nullString;
}
}
}
\ No newline at end of file
......@@ -6,7 +6,6 @@ using Mono.Data.Sqlite;
using MDPro3.YGOSharp.OCGWrapper.Enums;
using System.IO;
using static MDPro3.EditDeck;
using System.Text;
using Ionic.Zip;
namespace MDPro3.YGOSharp
......@@ -14,7 +13,7 @@ namespace MDPro3.YGOSharp
internal static class CardsManager
{
public static IDictionary<int, Card> _cards = new Dictionary<int, Card>();
public static IDictionary<int, Card> _cardsForRender = new Dictionary<int, Card>();
public static string nullName = "";
public static string nullString = "";
......@@ -52,9 +51,36 @@ namespace MDPro3.YGOSharp
}
UpdateSetNames();
PacksManager.Initialize();
_cardsForRender.Clear();
var cardLanguage = Config.Get("CardLanguage", "zh-CN");
databaseFullPath = Program.localesPath + Program.slash + cardLanguage + "/cards.cdb";
if (!File.Exists(databaseFullPath))
databaseFullPath = Program.localesPath + Program.slash + "zh-CN/cards.cdb";
LoadCDB(databaseFullPath, true);
foreach (var cdb in Directory.GetFiles("Expansions", "*.cdb"))
LoadCDB(cdb, true);
foreach (var zip in ZipHelper.zips)
{
if (zip.Name.ToLower().EndsWith("script.zip"))
continue;
foreach (var file in zip.EntryFileNames)
{
if (file.ToLower().EndsWith(".cdb"))
{
var e = zip[file];
if (!Directory.Exists(Program.tempFolder))
Directory.CreateDirectory(Program.tempFolder);
var tempFile = Path.Combine(Path.GetFullPath(Program.tempFolder), file);
e.Extract(Path.GetFullPath(Program.tempFolder), ExtractExistingFileAction.OverwriteSilently);
LoadCDB(tempFile, true);
File.Delete(tempFile);
}
}
}
}
internal static void LoadCDB(string databaseFullPath)
internal static void LoadCDB(string databaseFullPath, bool render = false)
{
using (SqliteConnection connection = new SqliteConnection("Data Source=" + databaseFullPath))
{
......@@ -67,7 +93,7 @@ namespace MDPro3.YGOSharp
{
while (reader.Read())
{
LoadCard(reader);
LoadCard(reader, render);
}
}
}
......@@ -89,7 +115,12 @@ namespace MDPro3.YGOSharp
return _cards[id].Clone();
return null;
}
internal static Card GetRenderCard(int id)
{
if (_cardsForRender.ContainsKey(id))
return _cardsForRender[id].Clone();
return null;
}
internal static Card GetCardRaw(int id)
{
if (_cards.ContainsKey(id))
......@@ -120,12 +151,18 @@ namespace MDPro3.YGOSharp
return returnValue;
}
private static void LoadCard(IDataRecord reader)
private static void LoadCard(IDataRecord reader, bool render = false)
{
Card card = new Card(reader);
if (!_cards.ContainsKey(card.Id))
if (!render)
{
if (!_cards.ContainsKey(card.Id))
_cards.Add(card.Id, card);
}
else
{
_cards.Add(card.Id, card);
if (!_cardsForRender.ContainsKey(card.Id))
_cardsForRender.Add(card.Id, card);
}
}
......
......@@ -8,18 +8,19 @@ namespace MDPro3
public static class InterString
{
private static readonly Dictionary<string, string> translations = new Dictionary<string, string>();
private static string path;
private static readonly Dictionary<string, string> translationsForRender = new Dictionary<string, string>();
private static string path;
private static string pathForRender;
public static void Initialize()
{
string language = Config.Get("Language", "zh-CN");
path = Program.localesPath + Program.slash + language + "/translation.conf";
translations.Clear();
path = Program.localesPath + Program.slash + Config.Get("Language", "zh-CN") + "/translation.conf";
if (!File.Exists(path))
File.Create(path).Close();
var txtString = File.ReadAllText(path);
var lines = txtString.Replace("\r", "").Split('\n');
translations.Clear();
for (var i = 0; i < lines.Length; i++)
{
var mats = Regex.Split(lines[i], "->");
......@@ -27,34 +28,49 @@ namespace MDPro3
if (!translations.ContainsKey(mats[0]))
translations.Add(mats[0], mats[1]);
}
translationsForRender.Clear();
pathForRender = Program.localesPath + Program.slash + Config.Get("CardLanguage", "zh-CN") + "/translation.conf";
if (!File.Exists(pathForRender))
File.Create(pathForRender).Close();
txtString = File.ReadAllText(pathForRender);
lines = txtString.Replace("\r", "").Split('\n');
for (var i = 0; i < lines.Length; i++)
{
var mats = Regex.Split(lines[i], "->");
if (mats.Length == 2)
if (!translationsForRender.ContainsKey(mats[0]))
translationsForRender.Add(mats[0], mats[1]);
}
}
public static string Get(string original)
public static string Get(string original, bool render = false)
{
var returnValue = original;
if (translations.TryGetValue(original, out returnValue))
var targetTranslations = render ? translationsForRender : translations;
if (targetTranslations.TryGetValue(original, out returnValue))
return returnValue.Replace("@n", "\r\n").Replace("@ui", "");
if (original != "")
{
try
{
File.AppendAllText(path, original + "->" + original + "\r\n");
File.AppendAllText(render ? pathForRender : path, original + "->" + original + "\r\n");
}
catch
{
Program.noAccess = true;
}
translations.Add(original, original);
targetTranslations.Add(original, original);
return original.Replace("@n", "\r\n").Replace("@ui", "");
}
return original;
}
public static string Get(string original, string replace)
public static string Get(string original, string replace, bool render = false)
{
return Get(original).Replace("[?]", replace);
return Get(original, render).Replace("[?]", replace);
}
public static string GetOriginal(string value)
{
......@@ -69,6 +85,5 @@ namespace MDPro3
}
return returnValue;
}
}
}
......@@ -11,7 +11,7 @@ namespace MDPro3
public static class StringHelper
{
public static List<HashedString> hashedStrings = new List<HashedString>();
public static List<HashedString> hashedStringsForRender = new List<HashedString>();
public static List<HashedString> setNames = new List<HashedString>();
public static int StringToInt(string str)
......@@ -53,10 +53,31 @@ namespace MDPro3
}
}
}
InitializeContent(text);
language = Config.Get("CardLanguage", "zh-CN");
path = Program.localesPath + Program.slash + language + "/strings.conf";
string textForRender = File.ReadAllText(path);
foreach (var conf in Directory.GetFiles("Expansions", "*.conf"))
textForRender += "\r\n" + File.ReadAllText(conf);
foreach (var zip in ZipHelper.zips)
{
if (zip.Name.ToLower().EndsWith("script.zip"))
continue;
foreach (var file in zip.EntryFileNames)
{
if (file.ToLower().EndsWith(".conf"))
{
var ms = new MemoryStream();
var e = zip[file];
e.Extract(ms);
textForRender += "\r\n" + Encoding.UTF8.GetString(ms.ToArray());
}
}
}
InitializeContent(text, textForRender);
}
public static void InitializeContent(string text)
public static void InitializeContent(string text, string textForRender)
{
var st = text.Replace("\r", "");
var lines = st.Split(new[] { "\n" }, StringSplitOptions.RemoveEmptyEntries);
......@@ -89,12 +110,40 @@ namespace MDPro3
}
}
}
hashedStringsForRender.Clear();
st = textForRender.Replace("\r", "");
lines = st.Split(new[] { "\n" }, StringSplitOptions.RemoveEmptyEntries);
foreach (var line in lines)
if (line.Length > 1 && line.Substring(0, 1) == "!")
{
var mats = line.Substring(1, line.Length - 1).Split(new[] { " " }, StringSplitOptions.RemoveEmptyEntries);
if (mats.Length > 2)
{
var a = new HashedString();
a.region = mats[0];
try
{
a.hashCode = StringToInt(mats[1]);
}
catch (Exception e)
{
MessageManager.Cast(e.ToString());
}
a.content = "";
for (var i = 2; i < mats.Length; i++)
a.content += mats[i] + " ";
a.content = a.content.Substring(0, a.content.Length - 1);
if (Get(a.region, a.hashCode, true) == "")
hashedStringsForRender.Add(a);
}
}
}
public static string Get(string region, int hashCode)
public static string Get(string region, int hashCode, bool render = false)
{
var re = "";
foreach (var s in hashedStrings)
foreach (var s in render ? hashedStringsForRender : hashedStrings)
if (s.region == region && s.hashCode == hashCode)
{
re = s.content;
......@@ -103,10 +152,10 @@ namespace MDPro3
return re;
}
internal static string GetUnsafe(int hashCode)
internal static string GetUnsafe(int hashCode, bool render = false)
{
var re = "";
foreach (var s in hashedStrings)
foreach (var s in render ? hashedStringsForRender : hashedStrings)
if (s.region == "system" && s.hashCode == hashCode)
{
re = s.content;
......@@ -115,7 +164,6 @@ namespace MDPro3
return re;
}
internal static string Get(int description)
{
var a = "";
......@@ -185,7 +233,7 @@ namespace MDPro3
}
return r;
}
public static string Race(long race)
public static string Race(long race, bool render = false)
{
var r = "";
var passFirst = false;
......@@ -193,7 +241,7 @@ namespace MDPro3
if ((race & (1 << i)) > 0)
{
if (passFirst) r += Program.slash;
r += GetUnsafe(1020 + i);
r += GetUnsafe(1020 + i, render);
passFirst = true;
}
return r;
......@@ -254,7 +302,7 @@ namespace MDPro3
}
public static string MainType(long a)
public static string MainType(long a, bool render = false)
{
var r = "";
var passFirst = false;
......@@ -262,13 +310,13 @@ namespace MDPro3
if ((a & (1 << i)) > 0)
{
if (passFirst) r += Program.slash;
r += GetUnsafe(1050 + i);
r += GetUnsafe(1050 + i, render);
passFirst = true;
}
return r;
}
public static string SecondType(long a)
public static string SecondType(long a, bool render = false)
{
var start = "";
var end = "";
......@@ -277,14 +325,14 @@ namespace MDPro3
for (var i = 4; i < 27; i++)
if (((a & 0x68020C0) & (1 << i)) > 0)
{
start += Program.slash + GetUnsafe(1050 + i);
start += Program.slash + GetUnsafe(1050 + i, render);
break;
}
a -= a & 0x68020C0;
}
if ((a & (long)CardType.Pendulum) > 0)
{
start += Program.slash + GetUnsafe(1074);
start += Program.slash + GetUnsafe(1074, render);
a -= (long)CardType.Pendulum;
}
if ((a & 0x30) > 0)
......@@ -292,29 +340,29 @@ namespace MDPro3
for (var i = 4; i < 6; i++)
if ((a & (1 << i)) > 0)
{
end += Program.slash + GetUnsafe(1050 + i);
end += Program.slash + GetUnsafe(1050 + i, render);
break;
}
a -= a & 0x30;
}
for (var i = 4; i < 27; i++)
if ((a & (1 << i)) > 0)
start += Program.slash + GetUnsafe(1050 + i);
start += Program.slash + GetUnsafe(1050 + i, render);
var returnValue = start + end;
if (returnValue == "")
returnValue = GetUnsafe(1054);
returnValue = GetUnsafe(1054, render);
else
returnValue = returnValue.Substring(1, returnValue.Length - 1);
return returnValue;
}
public static string GetType(Card data)
public static string GetType(Card data, bool render = false)
{
var re = "";
if (data.Id == 0)
return re;
var origin = CardsManager.Get(data.Id);
var origin = render ? CardsManager.GetRenderCard(data.Id) : CardsManager.Get(data.Id);
try
{
if (CardDescription.WhetherCardIsMonster(data))
......@@ -322,7 +370,7 @@ namespace MDPro3
if (data.Race != origin.Race)
re = "¡¾" + "<color=#FD3E08>" + InterString.Get("[?]×å", Race(data.Race)) + "</color>" + Program.slash + SecondType(data.Type) + "¡¿";
else
re = "" + InterString.Get("[?]", Race(data.Race)) + Program.slash + SecondType(data.Type) + "";
re = "¡¾" + InterString.Get("[?]×å", Race(data.Race, render), render) + Program.slash + SecondType(data.Type, render) + "¡¿";
}
else
re = "¡¾" + MainType(data.Type) + "¡¿";
......@@ -331,6 +379,7 @@ namespace MDPro3
{ Debug.LogError(e); }
return re;
}
public static string GetSetName(long Setcode, bool raw = false)
{
var setcodes = new int[4];
......
......@@ -124,6 +124,20 @@ namespace MDPro3
manager.gameObject.SetActive(true);
}
public IEnumerator LoadDummyCardLoadingPic(ElementObjectManager manager, int code, bool active = false)
{
if (active)
manager.gameObject.SetActive(false);
var ie = LoadCardAsync(code, true);
while (ie.MoveNext())
yield return null;
manager.GetElement<Renderer>("DummyCardModel_side").material = cardMatSide;
manager.GetElement<Renderer>("DummyCardModel_front").material.SetTexture("_LoadingTex", ie.Current);
manager.GetElement<Renderer>("DummyCardModel_front").material.SetFloat("_LoadingBlend", 1);
if (active)
manager.gameObject.SetActive(true);
}
public static IEnumerator<Texture2D> LoadFromFileAsync(string path)
{
if (!File.Exists(path))
......
......@@ -19,6 +19,8 @@ using MDPro3.YGOSharp;
using MDPro3.YGOSharp.OCGWrapper.Enums;
using static YgomGame.Bg.BgEffectSettingInner;
using MDPro3.UI;
using YgomGame.Duel;
using UnityEngine.AI;
namespace MDPro3
{
......@@ -1223,7 +1225,7 @@ namespace MDPro3
//Program.I().room.duelEnded: For match End;
bool needDamageResponseInstant;
public Action endingAction;
public void CoreReset()
{
if (cards.Count > 0)
......@@ -1252,17 +1254,12 @@ namespace MDPro3
surrended = false;
deckReserved = false;
cantCheckGrave = false;
cookie_matchKill = 0;
needDamageResponseInstant = false;
if (condition == Condition.Replay)
{
replayButtons.SetActive(true);
//buttonForceSaveReplay.SetActive(false);
}
else
{
//buttonForceSaveReplay.SetActive(true);
replayButtons.SetActive(false);
}
buttonStop.SetActive(true);
buttonPlay.SetActive(false);
buttonAcc.SetActive(true);
......@@ -1292,6 +1289,7 @@ namespace MDPro3
opSpSummonCount = 0;
Program.I().room.duelEnded = false;
Program.I().room.joinWithReconnect = false;
endingAction = null;
}
public void AddPackage(Package p)
......@@ -1631,6 +1629,7 @@ namespace MDPro3
duelEnded = true;
description.Hide();
ClearResponse();
if (currentPopup != null)
{
currentPopup.whenQuitDo = null;
......@@ -1642,6 +1641,7 @@ namespace MDPro3
keys.Insert(0, currentMessageIndex);
AudioManager.StopBGM();
GameObject duelText;
string endingReason = string.Empty;
if (player == 2)
{
result = DuelResult.Draw;
......@@ -1654,23 +1654,13 @@ namespace MDPro3
if (cookie_matchKill > 0)
{
winReason = CardsManager.Get(cookie_matchKill).Name;
PrintDuelLog(InterString.Get("比赛胜利,卡片:[?]", winReason));
endingReason = InterString.Get("比赛胜利,卡片:[?]", winReason);
}
else
{
winReason = StringHelper.Get("victory", winType);
PrintDuelLog(InterString.Get("游戏胜利,原因:[?]", winReason));
endingReason = InterString.Get("游戏胜利,原因:[?]", winReason);
}
bgPhase1 = 4;
var seLabel = "SE_FIELD_MAT" + field0Manager.name.Substring(4, 3) + "_PHASE4_R";
field1Manager.PlayAnimatorTrigger(TriggerLabelDefine.DamagePhase4ToEnd, seLabel);
grave1Manager.PlayAnimatorTrigger(TriggerLabelDefine.DamagePhase4ToEnd);
if (stand1Manager != null)
stand1Manager.PlayAnimatorTrigger(TriggerLabelDefine.DamagePhase4ToEnd);
if (mate0 != null)
mate0.Play(Mate.MateAction.Victory);
if (mate1 != null)
mate1.Play(Mate.MateAction.Defeat);
}
else
{
......@@ -1679,33 +1669,14 @@ namespace MDPro3
if (cookie_matchKill > 0)
{
winReason = CardsManager.Get(cookie_matchKill).Name;
PrintDuelLog(InterString.Get("比赛败北,卡片:[?]", winReason));
endingReason = InterString.Get("比赛败北,卡片:[?]", winReason);
}
else
{
winReason = StringHelper.Get("victory", winType);
PrintDuelLog(InterString.Get("游戏败北,原因:[?]", winReason));
endingReason = InterString.Get("游戏败北,原因:[?]", winReason);
}
bgPhase0 = 4;
var seLabel = "SE_FIELD_MAT" + field0Manager.name.Substring(4, 3) + "_PHASE4_P";
field0Manager.PlayAnimatorTrigger(TriggerLabelDefine.DamagePhase4ToEnd, seLabel);
grave0Manager.PlayAnimatorTrigger(TriggerLabelDefine.DamagePhase4ToEnd);
if (stand0Manager != null)
stand0Manager.PlayAnimatorTrigger(TriggerLabelDefine.DamagePhase4ToEnd);
if (mate0 != null)
mate0.Play(Mate.MateAction.Defeat);
if (mate1 != null)
mate1.Play(Mate.MateAction.Victory);
}
var mono = duelText.AddComponent<DoWhenPlayableDirectorStop>();
mono.action = () =>
{
if (condition != Condition.Replay)
{
ShowSaveReplay();
Destroy(mono.gameObject);
}
};
}
if (timerHandler != null)
timerHandler.DuelEnd();
if (playableGuide0 != null && playableGuide1 != null)
......@@ -1715,6 +1686,107 @@ namespace MDPro3
}
//防止对方在更换副卡组时拔螺丝
UIManager.UIBlackOut(transitionTime);
duelText.SetActive(false);
endingAction = () =>
{
duelText.SetActive(true);
var mono = duelText.AddComponent<DoWhenPlayableDirectorStop>();
mono.action = () =>
{
PrintDuelLog(endingReason);
if (condition != Condition.Replay)
{
ShowSaveReplay();
Destroy(mono.gameObject);
}
};
if(result == DuelResult.Win)
{
bgPhase1 = 4;
var seLabel = "SE_FIELD_MAT" + field0Manager.name.Substring(4, 3) + "_PHASE4_R";
field1Manager.PlayAnimatorTrigger(TriggerLabelDefine.DamagePhase1ToPhase2);
field1Manager.PlayAnimatorTrigger(TriggerLabelDefine.DamagePhase2ToPhase3);
field1Manager.PlayAnimatorTrigger(TriggerLabelDefine.DamagePhase3ToPhase4);
field1Manager.PlayAnimatorTrigger(TriggerLabelDefine.DamagePhase4ToEnd, seLabel);
if (stand1Manager != null)
stand1Manager.PlayAnimatorTrigger(TriggerLabelDefine.DamagePhase4ToEnd);
if (mate0 != null)
mate0.Play(Mate.MateAction.Victory);
if (mate1 != null)
mate1.Play(Mate.MateAction.Defeat);
}
else if(result == DuelResult.Lose)
{
bgPhase0 = 4;
var seLabel = "SE_FIELD_MAT" + field0Manager.name.Substring(4, 3) + "_PHASE4_P";
field0Manager.PlayAnimatorTrigger(TriggerLabelDefine.DamagePhase1ToPhase2);
field0Manager.PlayAnimatorTrigger(TriggerLabelDefine.DamagePhase2ToPhase3);
field0Manager.PlayAnimatorTrigger(TriggerLabelDefine.DamagePhase3ToPhase4);
field0Manager.PlayAnimatorTrigger(TriggerLabelDefine.DamagePhase4ToEnd, seLabel);
if (stand0Manager != null)
stand0Manager.PlayAnimatorTrigger(TriggerLabelDefine.DamagePhase4ToEnd);
if (mate0 != null)
mate0.Play(Mate.MateAction.Defeat);
if (mate1 != null)
mate1.Play(Mate.MateAction.Victory);
}
};
if (cookie_matchKill > 0)
{
PlayCommonSpecialWin(new int[] { cookie_matchKill });
}
else if(winType >= 0x10)
{
if(winType == 0x10)//被封印的艾克佐迪亚
{
ElementObjectManager mner = PlaySpecialWin("SummonSpecialWin4027");
StartCoroutine(Program.I().texture_.LoadDummyCard(mner.GetElement<ElementObjectManager>("DummyCard"), 33396948, true));
StartCoroutine(Program.I().texture_.LoadDummyCard(mner.GetElement<ElementObjectManager>("DummyCard2"), 7902349, true));
StartCoroutine(Program.I().texture_.LoadDummyCard(mner.GetElement<ElementObjectManager>("DummyCard3"), 70903634, true));
StartCoroutine(Program.I().texture_.LoadDummyCard(mner.GetElement<ElementObjectManager>("DummyCard4"), 44519536, true));
StartCoroutine(Program.I().texture_.LoadDummyCard(mner.GetElement<ElementObjectManager>("DummyCard5"), 8124921, true));
}
else if( winType == 0x11)//终焉的倒计时
PlayCommonSpecialWin(new int[] { 95308449 });
else if (winType == 0x12)//毒蛇神 维诺米纳迦
PlayCommonSpecialWin(new int[] { 8062132 });
else if (winType == 0x13)//光之创造神 哈拉克提
PlayCommonSpecialWin(new int[] { 10000040 });
else if (winType == 0x14)//究极封印神 艾克佐迪奥斯
PlayCommonSpecialWin(new int[] { 13893596 });
else if (winType == 0x15)//通灵盘
PlaySpecialWin("SummonSpecialWin14585");
else if (winType == 0x16)//最终一战!
PlayCommonSpecialWin(new int[] { 28566710 });
else if (winType == 0x17)//No.88 机关傀儡-命运狮子
PlayCommonSpecialWin(new int[] { 48995978 });
else if (winType == 0x18)//混沌No.88 机关傀儡-灾厄狮子
PlayCommonSpecialWin(new int[] { 6165656 });
else if (winType == 0x19)//头奖壶7
PlayCommonSpecialWin(new int[] { 81171949, 81171949, 81171949 });
else if (winType == 0x1A)//魂之接力
PlayCommonSpecialWin(new int[] { 42776960 });
else if (winType == 0x1B)//鬼计惰天使
PlaySpecialWin("SummonSpecialWin11422");
else if (winType == 0x1C)//幻煌龙的天涡
PlayCommonSpecialWin(new int[] { 97795930 });
else if (winType == 0x1D)//方程式运动员胜利团队
PlayCommonSpecialWin(new int[] { 69553552 });
else if (winType == 0x1E)//飞行象
PlayCommonSpecialWin(new int[] { 66765023 });
else if (winType == 0x1F)//守护神 艾克佐迪亚
PlayCommonSpecialWin(new int[] { 5008836 });
else if (winType == 0x20)//真艾克佐迪亚
PlayCommonSpecialWin(new int[] { 37984331 });
else if (winType == 0x21)//混沌虚数No.1000 梦幻虚光神 原数天灵·原数天地
PlayCommonSpecialWin(new int[] { 15862758 });
else if (winType == 0x22)//席取-六双丸
PlaySpecialWin("SummonSpecialWin17158");
}
else
endingAction.Invoke();
break;
case GameMessage.Start:
CoreReset();
......@@ -1740,7 +1812,6 @@ namespace MDPro3
player0Name.text = name_0_tag;
}
SetFace();
cookie_matchKill = 0;
GCS_CreateBundle(r.ReadInt16(), LocalPlayer(0), CardLocation.Deck);
GCS_CreateBundle(r.ReadInt16(), LocalPlayer(0), CardLocation.Extra);
GCS_CreateBundle(r.ReadInt16(), LocalPlayer(1), CardLocation.Deck);
......@@ -1912,7 +1983,7 @@ namespace MDPro3
opExtra.gameObject.SetActive(true);
cg.alpha = 0;
cg.interactable = false;
mono = myDeck.gameObject.AddComponent<DoWhenPlayableDirectorStop>();
var mono = myDeck.gameObject.AddComponent<DoWhenPlayableDirectorStop>();
mono.action = () =>
{
cg.alpha = 1;
......@@ -2329,8 +2400,9 @@ namespace MDPro3
card.negated = true;
card.AnimationNegate();
Sleep(100);
messagePass = true;
return;
}
if (condition == Condition.Duel
&& Config.Get("DuelEffect", "1") == "0")
needPlay = false;
......@@ -2897,6 +2969,7 @@ namespace MDPro3
Sequence quence = DOTween.Sequence();
if (attackCard.GetData().Attack < 2000)
{
faceAngle.z = faceAngle.y >= 0 && faceAngle.y < 180 ? -20f : 20f;
quence.Append(attackTransform.DOMove(attackPosition + new Vector3(0f, 10f, 0f) - v * 0.3f, 0.3f).SetEase(Ease.InOutCubic).OnComplete(() =>
{
tailObj.SetActive(true);
......@@ -2905,6 +2978,8 @@ namespace MDPro3
}));
quence.Join(attackTransform.DORotate(faceAngle, 0.3f).SetEase(Ease.InOutCubic));
quence.Append(attackTransform.DOMove(attackPosition + (attackedPosition - attackPosition) * 0.8f + new Vector3(0f, 0f, 0f), 0.1f).SetEase(Ease.InSine));
faceAngle.z = 0;
quence.Join(attackTransform.DORotate(faceAngle, 0.1f).SetEase(Ease.InSine));
quence.Join(Program.I().camera_.cameraMain.transform.DOMove(new Vector3(0, 95, -37 + directAttack * 5), 0.1f));
quence.AppendCallback(() =>
{
......@@ -2927,6 +3002,7 @@ namespace MDPro3
}
else
{
faceAngle.z = faceAngle.y >= 0 && faceAngle.y < 180 ? -30f : 30f;
quence.Append(attackTransform.DOMove(attackPosition + new Vector3(0f, 10f, 0f) - v * 0.4f, 0.5f).SetEase(Ease.InOutCubic));
quence.Join(attackTransform.DORotate(faceAngle + new Vector3(45f, 0f, 0f), 0.5f).SetEase(Ease.InOutCubic));
quence.InsertCallback(0.4f, () =>
......@@ -2937,6 +3013,7 @@ namespace MDPro3
});
quence.Append(attackTransform.DOMove(attackPosition + (attackedPosition - attackPosition) * 0.8f + new Vector3(0f, 0f, 0f), 0.15f).SetEase(Ease.InSine));
faceAngle.z = 0;
quence.Join(attackTransform.DORotate(faceAngle, 0.15f));
quence.Join(Program.I().camera_.cameraMain.transform.DOMove(new Vector3(0, 95, -37 + directAttack * 5), 0.15f));
quence.AppendCallback(() =>
......@@ -3500,7 +3577,6 @@ namespace MDPro3
if (card != null)
{
card.SetCode(code);
description.Show(card, null);
card.AnimationConfirm(i);
}
}
......@@ -4755,6 +4831,68 @@ namespace MDPro3
ES_selectHint = string.Empty;
}
void PlayCommonSpecialWin(int[] code)
{
var count = code.Length;
var go = ABLoader.LoadFromFolder("Timeline/SpecialWin/SpecialWinCommonCard0" + count);
ElementObjectManager mner = null;
for (int i = 0; i < go.transform.childCount; i++)
{
mner = go.transform.GetChild(i).GetComponent<ElementObjectManager>();
if (mner == null)
Destroy(go.transform.GetChild(i).gameObject);
}
foreach (var child in mner.transform.GetComponentsInChildren<Transform>(true))
if (child.name == "White")
{
var newWhite = Instantiate(child.gameObject);
newWhite.transform.SetParent(child.transform, false);
newWhite.transform.localScale = Vector3.one;
newWhite.GetComponent<SpriteRenderer>().color = Color.clear;
}
StartCoroutine(Program.I().texture_.LoadDummyCardLoadingPic(mner.GetElement<ElementObjectManager>("DummyCard01"), code[0], true));
mner.GetElement<ElementObjectManager>("DummyCard01").GetElement<Renderer>("DummyCardModel_front").material.renderQueue = 4000;
if(count > 1)
{
StartCoroutine(Program.I().texture_.LoadDummyCardLoadingPic(mner.GetElement<ElementObjectManager>("DummyCard02"), code[1], true));
mner.GetElement<ElementObjectManager>("DummyCard02").GetElement<Renderer>("DummyCardModel_front").material.renderQueue = 4000;
}
if (count > 2)
{
StartCoroutine(Program.I().texture_.LoadDummyCardLoadingPic(mner.GetElement<ElementObjectManager>("DummyCard03"), code[2], true));
mner.GetElement<ElementObjectManager>("DummyCard03").GetElement<Renderer>("DummyCardModel_front").material.renderQueue = 4000;
}
if (count > 3)
{
StartCoroutine(Program.I().texture_.LoadDummyCardLoadingPic(mner.GetElement<ElementObjectManager>("DummyCard04"), code[3], true));
mner.GetElement<ElementObjectManager>("DummyCard04").GetElement<Renderer>("DummyCardModel_front").material.renderQueue = 4000;
}
if (count > 4)
{
StartCoroutine(Program.I().texture_.LoadDummyCardLoadingPic(mner.GetElement<ElementObjectManager>("DummyCard05"), code[4], true));
mner.GetElement<ElementObjectManager>("DummyCard05").GetElement<Renderer>("DummyCardModel_front").material.renderQueue = 4000;
}
mner.GetComponent<PlayableDirector>().Play();
var mono = mner.gameObject.AddComponent<DoWhenPlayableDirectorStop>();
mono.action = () =>
{
Destroy(go);
};
}
ElementObjectManager PlaySpecialWin(string path)
{
var go = ABLoader.LoadFromFolder("Timeline/SpecialWin/" + path);
ElementObjectManager manager = null;
for (int i = 0; i < go.transform.childCount; i++)
{
manager = go.transform.GetChild(i).GetComponent<ElementObjectManager>();
if (manager == null)
Destroy(go.transform.GetChild(i).gameObject);
}
var mono = manager.gameObject.AddComponent<DoWhenPlayableDirectorStop>();
mono.action = () => { Destroy(go); };
return manager;
}
#endregion
#region PracticalizeTools
......
......@@ -48,6 +48,8 @@ namespace MDPro3
public Text autoRPSValue;
public Slider uiScale;
public Text uiScaleValue;
public Button cardLanguage;
public Text cardLanguageValue;
public Button language;
public Text languageValue;
[Header("Duel")]
......@@ -163,6 +165,7 @@ namespace MDPro3
showFPS.onClick.AddListener(OnShowFPSClicked);
screen.onClick.AddListener(OnScreenModeChange);
resolution.onClick.AddListener(OnResolutionChange);
cardLanguage.onClick.AddListener(OnCardLanguageChange);
language.onClick.AddListener(OnLanguageChange);
confirm.onClick.AddListener(OnConfirmClicked);
autoRPS.onClick.AddListener(OnAutoRPS);
......@@ -230,6 +233,7 @@ namespace MDPro3
InitializeScreenMode();
InitializeResolution();
InitializeConfirm();
InitializeCardLanguage();
InitializeLanguage();
InitializeSwitches();
}
......@@ -278,6 +282,7 @@ namespace MDPro3
Config.Set("ShowFPS", SaveBool(showFPSValue.text));
Config.Set("ScreenMode", SaveScreenMode(screenValue.text));
Config.Set("Resolution", resolutionValue.text);
Config.Set("CardLanguage", InterString.GetOriginal(cardLanguageValue.text));
Config.Set("Language", InterString.GetOriginal(languageValue.text));
Config.Set("Confirm", SaveBool(confirmValue.text));
......@@ -660,6 +665,36 @@ namespace MDPro3
Screen.SetResolution(int.Parse(Regex.Split(selected, " x ")[0]), int.Parse(Regex.Split(selected, " x ")[1]), Screen.fullScreen);
resolutionValue.text = selected;
}
public void InitializeCardLanguage()
{
string lan = Config.Get("CardLanguage", "zh-CN");
cardLanguageValue.text = InterString.Get(lan);
}
public void OnCardLanguageChange()
{
if (Program.I().ocgcore.isShowed)
{
MessageManager.Cast(InterString.Get("决斗中不能更改此选项。"));
return;
}
List<string> selections = new List<string>
{
InterString.Get("卡图语言")
};
DirectoryInfo[] infos = new DirectoryInfo(Program.localesPath).GetDirectories();
foreach (DirectoryInfo info in infos)
selections.Add(InterString.Get(info.Name));
UIManager.ShowPopupSelection(selections, OnCardLanguageSelection);
}
public void OnCardLanguageSelection()
{
string selected = UnityEngine.EventSystems.EventSystem.current.
currentSelectedGameObject.transform.GetChild(0).GetComponent<Text>().text;
cardLanguageValue.text = selected;
Config.Set("CardLanguage", InterString.GetOriginal(selected));
UIManager.ChangeLanguage();
}
public void InitializeLanguage()
{
string lan = Config.Get("Language", "zh-CN");
......@@ -690,6 +725,7 @@ namespace MDPro3
Config.Set("Language", InterString.GetOriginal(selected));
UIManager.ChangeLanguage();
}
public void InitializeConfirm()
{
string value = Config.Get("Confirm", "1");
......
......@@ -146,33 +146,41 @@ namespace YgomSystem.Effect
{
var widthScale = transform.localScale.x;
var heightScale = transform.localScale.y;
if(fitMode == FitMode.FitWidth)
var z = transform.localScale.z;
if (fitMode == FitMode.FitWidth)
{
var x = widthScale * (Screen.width * 9f / (Screen.height * 16f));
transform.localScale = new Vector2(x, heightScale);
transform.localScale = new Vector3(x, heightScale, z);
}
else if(fitMode == FitMode.FitHeight)
{
var y = heightScale * (Screen.height * 16f / (Screen.width * 9f));
transform.localScale=new Vector2(widthScale, y);
transform.localScale=new Vector3(widthScale, y, z);
}
else if (fitMode == FitMode.FitWidthMaintainAspectRatio)
{
var x = widthScale * (Screen.width * 9f / (Screen.height * 16f));
transform.localScale = new Vector2(x, heightScale * x / widthScale);
if(name == "SpliteDummy" || name == "White")
{
var x = widthScale * (Screen.width * 9f / (Screen.height * 16f));
transform.localScale = new Vector3(x, heightScale * x / widthScale, z);
}
else if(name == "Black")
{
widthScale = 15f * (Screen.width * 9f / (Screen.height * 16f));
transform.localScale = new Vector3(widthScale, widthScale, z);
}
}
else if (fitMode == FitMode.FitHeightMaintainAspectRatio)
{
var y = heightScale * (Screen.height * 16f / (Screen.width * 9f));
transform.localScale = new Vector2(widthScale * y / heightScale, y);
heightScale = 6f;
transform.localScale = new Vector3(heightScale, heightScale, z);
}
else if (fitMode == FitMode.FitWidthHeight)
{
var x = heightScale * Screen.width / Screen.height;
transform.localScale = new Vector2(x * 1.1f, heightScale);
if (transform.parent.name.StartsWith("Ef04678"))
transform.localScale = new Vector2(x * 2f, heightScale * 2f);
transform.localScale = new Vector3(x * 1.1f, heightScale, z);
if (transform.parent != null && transform.parent.name.StartsWith("Ef04678"))
transform.localScale = new Vector3(x * 2f, heightScale * 2f, z);
}
}
......
......@@ -26,7 +26,16 @@ namespace YgomSystem.Timeline
var playable = ScriptPlayable<EventPlayableBehaviour>.Create(graph);
var behaviour = playable.GetBehaviour();
behaviour.label = label;
behaviour.eventList = new List<EventPlayableBehaviour.EventInfo>();
foreach(var info in eventList)
{
behaviour.eventList.Add(new EventPlayableBehaviour.EventInfo()
{
label = info.label,
time = info.time,
isDone = false
});
}
return playable;
}
}
......
......@@ -31,9 +31,20 @@ namespace YgomSystem.Timeline
public override void OnBehaviourPlay(Playable playable, FrameData info)
{
PlayContent();
foreach (var e in eventList)
{
if (e.label == "WinStart" && !e.isDone)
{
e.isDone = true;
DOTween.To(v => { }, 0, 0, (float)e.time).OnComplete(() =>
{
Program.I().ocgcore.endingAction?.Invoke();
});
}
}
}
public override void ProcessFrame(Playable playable, FrameData info, object playerData)
public override void ProcessFrame(Playable playable, FrameData info, object playerData)
{
if(playable.GetPlayState() == PlayState.Playing)
PlayContent();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment