Merge branch 'develop' into fixbug/npc-dialog

This commit is contained in:
HungDK
2026-04-15 15:10:54 +07:00
69 changed files with 42845 additions and 4560 deletions
@@ -15,7 +15,7 @@ MonoBehaviour:
m_DefaultGroup: 712e3991f28e549e7a56ee582a977810
m_currentHash:
serializedVersion: 2
Hash: 00000000000000000000000000000000
Hash: b25883b8e3382431c6dfcc3aaedd1aaf
m_OptimizeCatalogSize: 0
m_BuildRemoteCatalog: 0
m_CatalogRequestsTimeout: 0
@@ -15,6 +15,16 @@ MonoBehaviour:
m_GroupName: Default Local Group
m_GUID: 712e3991f28e549e7a56ee582a977810
m_SerializeEntries:
- m_GUID: 0a2f50f2fe381024996b30c94befd165
m_Address: "InGame/\u5143\u795E.tga"
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 11d9820773784714ba7ed00226308680
m_Address: "InGame/\u672A\u547D\u4E2D.tga"
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 1b653230886be4009808803501ad7d7f
m_Address: Assets/PerfectWorld/SO/TaskTemplContainerSO.asset
m_ReadOnly: 0
@@ -30,16 +40,96 @@ MonoBehaviour:
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 2cea0a36514b40f4cbb2d93eb50fe97b
m_Address: "InGame/\u7ECF\u9A8C.tga"
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 66d520355c8214d8ba4d37422bd27571
m_Address: "InGame/GM\u6807\u5FD7.dds"
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 766835429f2a89f408d4786a3aa06363
m_Address: "InGame/\u514D\u75AB.tga"
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 7b66d105afe110341a51b5043be89f45
m_Address: "InGame/\u590D\u4EC7\u60E9\u6212.tga"
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 82bf5409dc0e9f34a9c114853cd8ee8d
m_Address: InGame/mp_warn.tga
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 8743a82a27870e5489e3bfca82cc3f0f
m_Address: "InGame/\u91D1\u94B1.tga"
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 88e840e5dac12ed4383d994c7fadfef1
m_Address: "\u7A0B\u5E8F\u8054\u5165/\u51FB\u4E2D/\u62F3\u5957\u51FB\u4E2D"
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 89a51fc0532e7c244bd25d996a480d1e
m_Address: "InGame/\u72B6\u6001\u95EA\u907F.tga"
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: a7cdab13e3d9e6a4da14a7bb02481f35
m_Address: "InGame/PK\u72B6\u6001\u6807\u8BB0.tga"
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: a81dab17b00ef4b4494a71ee88b10cc0
m_Address: "\u7A0B\u5E8F\u8054\u5165/\u89D2\u8272\u5347\u7EA7\u4EBA\u7C7B.gfx"
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: b0860cc78fedf454c8ebf35729998d70
m_Address: "InGame/\u5931\u8D25.tga"
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: bd6cbd6a9c2ce8444a50a177bdfe77fd
m_Address: "InGame/\u7206\u51FB.tga"
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: c1761dbd7108bf740a9fd5ee90d5e3de
m_Address: "InGame/\u53CD\u9707.tga"
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: ed347377914b065488cf5b42d4e8b5ab
m_Address: "InGame/\u5347\u7EA7\u4E86.tga"
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: f55f5d3b9021e5d4daced587dbd48d9f
m_Address: "InGame/\u6210\u529F.tga"
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: f635ebcab3287284bb9e206ea8e13d51
m_Address: "InGame/\u590D\u4EC7\u955C\u50CF.tga"
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: fa244579aed36fa4187a0667d52ab84b
m_Address: "InGame/\u5438\u8840.tga"
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: fcbc44b68ce86c047bd67ea7a74d40c2
m_Address: InGame/hp_warn.tga
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
m_ReadOnly: 0
m_Settings: {fileID: 11400000, guid: 070edb522e6e54c14a99055900003890, type: 2}
m_SchemaSet:
@@ -3017,6 +3017,13 @@ MonoBehaviour:
- equipment
- models
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 1c1225ddbb2fb1d4cb740842783be148
m_Address: "models/npcs/\u602A\u7269/\u602A\u7269\u9677\u9631/\u4E03\u5915\u591C\u7A7A/\u84DD\u5149.ecm"
m_ReadOnly: 0
m_SerializedLabels:
- models
- npc
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 1c2c9e17f61a64672bc58328285e91ba
m_Address: "models/weapons/\u4EBA\u7269/\u5200\u5251/\u5355\u624B\u5355\u5251/\u9752\u950B\u5251/\u9752\u950B\u5251\u7070.ecm"
m_ReadOnly: 0
@@ -24629,6 +24636,13 @@ MonoBehaviour:
- models
- npc
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: ed8d6c69774a9d74a99940328119816c
m_Address: "models/npcs/\u602A\u7269/2013/\u82B1\u8C79/\u82B1\u8C79.ecm"
m_ReadOnly: 0
m_SerializedLabels:
- models
- npc
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: ed93b6e27c988457c9e282d803ca4501
m_Address: "models/weapons/\u4EBA\u7269/\u5F13\u5F29/\u5F29/\u795E\u673A\u5F29/\u795E\u673A\u5F29\u6781\u54C1.ecm"
m_ReadOnly: 0
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 5d6bbf43ada699840a1702b7791c6533
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,209 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!21 &2100000
Material:
serializedVersion: 8
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: smoke002
m_Shader: {fileID: 4800000, guid: 0a016a83287664641b867743f19faf14, type: 3}
m_Parent: {fileID: 0}
m_ModifiedSerializedProperties: 0
m_ValidKeywords:
- _DISSOLVETEXUVS_NORMAL
- _DISTORTTEXUVS_NORMAL
- _MAINTEXUVS_NORMAL
- _MASKTEXUVS_NORMAL
m_InvalidKeywords:
- _DISSOLVETEXAR_ON
- _DISTORTTEXAR_ON
- _MASKTEXAR_ON
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
stringTagMap: {}
disabledShaderPasses:
- MOTIONVECTORS
m_LockedProperties:
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _BaseMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _BumpMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailAlbedoMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailMask:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailNormalMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DissolveTex:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DistortTex:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _EmissionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MainTex:
m_Texture: {fileID: 2800000, guid: c986b56a4d7517546a08869c93e7fa29, type: 3}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0.12, y: 0}
- _MaskTex:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MetallicGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _OcclusionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _ParallaxMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _SpecGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- unity_Lightmaps:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- unity_LightmapsInd:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- unity_ShadowMasks:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Ints: []
m_Floats:
- _AddPrecomputedVelocity: 0
- _AlphaClip: 0
- _AlphaCutoff: 0.5
- _AlphaToMask: 0
- _Blend: 0
- _BlendMode: 1
- _BlendModePreserveSpecular: 1
- _BumpScale: 1
- _ClearCoatMask: 0
- _ClearCoatSmoothness: 0
- _Cull: 2
- _CullMode: 0
- _CustomDissolve: 0
- _CustomMainTex: 0
- _Cutoff: 0.5
- _DepthFade: 1
- _DetailAlbedoMapScale: 1
- _DetailNormalMapScale: 1
- _DissolveFactor: 0
- _DissolveSoft: 0.1
- _DissolveTexAR: 1
- _DissolveTexClampU: 0
- _DissolveTexClampV: 0
- _DissolveTexRotate: 0
- _DissolveTexUSpeed: 0
- _DissolveTexUVS: 0
- _DissolveTexVSpeed: 0
- _DissolveWide: 0.05
- _DistortDissolveTex: 0
- _DistortFactor: 0
- _DistortMainTex: 0
- _DistortMaskTex: 0
- _DistortTexAR: 1
- _DistortTexClampU: 0
- _DistortTexClampV: 0
- _DistortTexRotate: 0
- _DistortTexUSpeed: 0
- _DistortTexUVS: 0
- _DistortTexVSpeed: 0
- _Dst: 1
- _DstBlend: 0
- _DstBlendAlpha: 0
- _EnvironmentReflections: 1
- _FDepth: 0
- _FDissolveTex: 0
- _FDistortTex: 0
- _FFnl: 0
- _FMaskTex: 0
- _FnlPower: 1
- _FnlScale: 0
- _GlossMapScale: 0
- _Glossiness: 0
- _GlossyReflections: 0
- _MainAlpha: 1
- _MainTexAR: 0
- _MainTexClampU: 0
- _MainTexClampV: 0
- _MainTexRotate: 0
- _MainTexUSpeed: 0
- _MainTexUVS: 0
- _MainTexVSpeed: 0
- _MaskTexAR: 1
- _MaskTexClampU: 0
- _MaskTexClampV: 0
- _MaskTexRotate: 0
- _MaskTexUSpeed: 0
- _MaskTexUVS: 0
- _MaskTexVSpeed: 0
- _Metallic: 0
- _OcclusionStrength: 1
- _Parallax: 0.005
- _QueueOffset: 0
- _ReFnl: 0
- _ReceiveShadows: 1
- _Scr: 1
- _Smoothness: 0.5
- _SmoothnessTextureChannel: 0
- _SpecularHighlights: 1
- _SrcBlend: 1
- _SrcBlendAlpha: 1
- _Surface: 0
- _WorkflowMode: 1
- _ZWrite: 1
m_Colors:
- _BaseColor: {r: 1, g: 1, b: 1, a: 1}
- _Color: {r: 1, g: 1, b: 1, a: 1}
- _DissolveColor: {r: 1, g: 1, b: 1, a: 1}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
- _FnlColor: {r: 1, g: 1, b: 1, a: 1}
- _MainColor: {r: 4, g: 4, b: 4, a: 1}
- _SpecColor: {r: 0.2, g: 0.2, b: 0.2, a: 1}
m_BuildTextureStacks: []
m_AllowLocking: 1
--- !u!114 &8741123340869993700
MonoBehaviour:
m_ObjectHideFlags: 11
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
m_Name:
m_EditorClassIdentifier:
version: 9
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 835e6e7ffdecd6144b5ebd02014dce66
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 7bbb339927d9df04f8e99088ab62b82e
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,41 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!21 &2100000
Material:
serializedVersion: 8
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: smoke002_2
m_Shader: {fileID: 4800000, guid: 0a016a83287664641b867743f19faf14, type: 3}
m_Parent: {fileID: 2100000, guid: 835e6e7ffdecd6144b5ebd02014dce66, type: 2}
m_ModifiedSerializedProperties: 0
m_ValidKeywords:
- _DISSOLVETEXUVS_NORMAL
- _DISTORTTEXUVS_NORMAL
- _MAINTEXUVS_NORMAL
- _MASKTEXUVS_NORMAL
m_InvalidKeywords:
- _DISSOLVETEXAR_ON
- _DISTORTTEXAR_ON
- _MASKTEXAR_ON
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
stringTagMap: {}
disabledShaderPasses: []
m_LockedProperties:
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _MainTex:
m_Texture: {fileID: 2800000, guid: c986b56a4d7517546a08869c93e7fa29, type: 3}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Ints: []
m_Floats: []
m_Colors: []
m_BuildTextureStacks: []
m_AllowLocking: 1
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 9b3173917cd05634daca496fa75a7ee0
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000
userData:
assetBundleName:
assetBundleVariant:
+21 -1
View File
@@ -11,7 +11,11 @@ Material:
m_Shader: {fileID: 4800000, guid: 0a016a83287664641b867743f19faf14, type: 3}
m_Parent: {fileID: 0}
m_ModifiedSerializedProperties: 0
m_ValidKeywords: []
m_ValidKeywords:
- _DISSOLVETEXUVS_NORMAL
- _DISTORTTEXUVS_NORMAL
- _MAINTEXUVS_NORMAL
- _MASKTEXUVS_NORMAL
m_InvalidKeywords:
- _DISSOLVETEXAR_ON
- _DISTORTTEXAR_ON
@@ -118,7 +122,11 @@ Material:
- _DissolveFactor: 0
- _DissolveSoft: 0.1
- _DissolveTexAR: 1
- _DissolveTexClampU: 0
- _DissolveTexClampV: 0
- _DissolveTexRotate: 0
- _DissolveTexUSpeed: 0
- _DissolveTexUVS: 0
- _DissolveTexVSpeed: 0
- _DissolveWide: 0.05
- _DistortDissolveTex: 0
@@ -126,7 +134,11 @@ Material:
- _DistortMainTex: 0
- _DistortMaskTex: 0
- _DistortTexAR: 1
- _DistortTexClampU: 0
- _DistortTexClampV: 0
- _DistortTexRotate: 0
- _DistortTexUSpeed: 0
- _DistortTexUVS: 0
- _DistortTexVSpeed: 0
- _Dst: 1
- _DstBlend: 0
@@ -144,10 +156,18 @@ Material:
- _GlossyReflections: 0
- _MainAlpha: 1
- _MainTexAR: 0
- _MainTexClampU: 0
- _MainTexClampV: 0
- _MainTexRotate: 0
- _MainTexUSpeed: 0
- _MainTexUVS: 0
- _MainTexVSpeed: 0
- _MaskTexAR: 1
- _MaskTexClampU: 0
- _MaskTexClampV: 0
- _MaskTexRotate: 0
- _MaskTexUSpeed: 0
- _MaskTexUVS: 0
- _MaskTexVSpeed: 0
- _Metallic: 0
- _OcclusionStrength: 1
@@ -11,7 +11,11 @@ Material:
m_Shader: {fileID: 4800000, guid: 0a016a83287664641b867743f19faf14, type: 3}
m_Parent: {fileID: 0}
m_ModifiedSerializedProperties: 0
m_ValidKeywords: []
m_ValidKeywords:
- _DISSOLVETEXUVS_NORMAL
- _DISTORTTEXUVS_NORMAL
- _MAINTEXUVS_NORMAL
- _MASKTEXUVS_NORMAL
m_InvalidKeywords:
- _DISSOLVETEXAR_ON
- _DISTORTTEXAR_ON
@@ -118,7 +122,11 @@ Material:
- _DissolveFactor: 0
- _DissolveSoft: 0.1
- _DissolveTexAR: 1
- _DissolveTexClampU: 0
- _DissolveTexClampV: 0
- _DissolveTexRotate: 0
- _DissolveTexUSpeed: 0
- _DissolveTexUVS: 0
- _DissolveTexVSpeed: 0
- _DissolveWide: 0.05
- _DistortDissolveTex: 0
@@ -126,7 +134,11 @@ Material:
- _DistortMainTex: 0
- _DistortMaskTex: 0
- _DistortTexAR: 1
- _DistortTexClampU: 0
- _DistortTexClampV: 0
- _DistortTexRotate: 0
- _DistortTexUSpeed: 0
- _DistortTexUVS: 0
- _DistortTexVSpeed: 0
- _Dst: 1
- _DstBlend: 0
@@ -144,10 +156,18 @@ Material:
- _GlossyReflections: 0
- _MainAlpha: 1
- _MainTexAR: 0
- _MainTexClampU: 0
- _MainTexClampV: 0
- _MainTexRotate: 0
- _MainTexUSpeed: 0
- _MainTexUVS: 0
- _MainTexVSpeed: 0
- _MaskTexAR: 1
- _MaskTexClampU: 0
- _MaskTexClampV: 0
- _MaskTexRotate: 0
- _MaskTexUSpeed: 0
- _MaskTexUVS: 0
- _MaskTexVSpeed: 0
- _Metallic: 0
- _OcclusionStrength: 1
@@ -11,7 +11,11 @@ Material:
m_Shader: {fileID: 4800000, guid: 0a016a83287664641b867743f19faf14, type: 3}
m_Parent: {fileID: 0}
m_ModifiedSerializedProperties: 0
m_ValidKeywords: []
m_ValidKeywords:
- _DISSOLVETEXUVS_NORMAL
- _DISTORTTEXUVS_NORMAL
- _MAINTEXUVS_NORMAL
- _MASKTEXUVS_NORMAL
m_InvalidKeywords:
- _DISSOLVETEXAR_ON
- _DISTORTTEXAR_ON
@@ -118,7 +122,11 @@ Material:
- _DissolveFactor: 0
- _DissolveSoft: 0.1
- _DissolveTexAR: 1
- _DissolveTexClampU: 0
- _DissolveTexClampV: 0
- _DissolveTexRotate: 0
- _DissolveTexUSpeed: 0
- _DissolveTexUVS: 0
- _DissolveTexVSpeed: 0
- _DissolveWide: 0.05
- _DistortDissolveTex: 0
@@ -126,7 +134,11 @@ Material:
- _DistortMainTex: 0
- _DistortMaskTex: 0
- _DistortTexAR: 1
- _DistortTexClampU: 0
- _DistortTexClampV: 0
- _DistortTexRotate: 0
- _DistortTexUSpeed: 0
- _DistortTexUVS: 0
- _DistortTexVSpeed: 0
- _Dst: 1
- _DstBlend: 0
@@ -144,10 +156,18 @@ Material:
- _GlossyReflections: 0
- _MainAlpha: 1
- _MainTexAR: 0
- _MainTexClampU: 0
- _MainTexClampV: 0
- _MainTexRotate: 0
- _MainTexUSpeed: 0
- _MainTexUVS: 0
- _MainTexVSpeed: 0
- _MaskTexAR: 1
- _MaskTexClampU: 0
- _MaskTexClampV: 0
- _MaskTexRotate: 0
- _MaskTexUSpeed: 0
- _MaskTexUVS: 0
- _MaskTexVSpeed: 0
- _Metallic: 0
- _OcclusionStrength: 1
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: c51d1ef518b53a945b4d5f31980b5fb7
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,21 @@
fileFormatVersion: 2
guid: c986b56a4d7517546a08869c93e7fa29
IHVImageFormatImporter:
externalObjects: {}
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 0
wrapV: 0
wrapW: 0
isReadable: 0
sRGBTexture: 1
streamingMipmaps: 0
streamingMipmapsPriority: 0
ignoreMipmapLimit: 0
mipmapLimitGroupName:
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: b38a9d32528eb6f45a038c492f53f101
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 7d448b406dfe0334e89732baba65b0af
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: c451031ead54941afa5d10ce108ed6a1
guid: ed8d6c69774a9d74a99940328119816c
PrefabImporter:
externalObjects: {}
userData:
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 9b1732abfbd792941a6d0bccd289a650
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: dcd79785de3031b4ab9f5e8e61eee638
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,96 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &1490516436114087537
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 5415631175394603708}
m_Layer: 0
m_Name: "\u84DD\u5149"
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &5415631175394603708
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1490516436114087537}
serializedVersion: 2
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: 3381364126698667035}
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1001 &3795294254854348150
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
serializedVersion: 3
m_TransformParent: {fileID: 5415631175394603708}
m_Modifications:
- target: {fileID: 1893373068558197101, guid: 7d448b406dfe0334e89732baba65b0af, type: 3}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1893373068558197101, guid: 7d448b406dfe0334e89732baba65b0af, type: 3}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1893373068558197101, guid: 7d448b406dfe0334e89732baba65b0af, type: 3}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1893373068558197101, guid: 7d448b406dfe0334e89732baba65b0af, type: 3}
propertyPath: m_LocalRotation.w
value: 0.7071068
objectReference: {fileID: 0}
- target: {fileID: 1893373068558197101, guid: 7d448b406dfe0334e89732baba65b0af, type: 3}
propertyPath: m_LocalRotation.x
value: -0.7071068
objectReference: {fileID: 0}
- target: {fileID: 1893373068558197101, guid: 7d448b406dfe0334e89732baba65b0af, type: 3}
propertyPath: m_LocalRotation.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1893373068558197101, guid: 7d448b406dfe0334e89732baba65b0af, type: 3}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1893373068558197101, guid: 7d448b406dfe0334e89732baba65b0af, type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: -90
objectReference: {fileID: 0}
- target: {fileID: 1893373068558197101, guid: 7d448b406dfe0334e89732baba65b0af, type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1893373068558197101, guid: 7d448b406dfe0334e89732baba65b0af, type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5248276706278190903, guid: 7d448b406dfe0334e89732baba65b0af, type: 3}
propertyPath: m_Name
value: "\u7075\u9B422"
objectReference: {fileID: 0}
m_RemovedComponents: []
m_RemovedGameObjects: []
m_AddedGameObjects: []
m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 7d448b406dfe0334e89732baba65b0af, type: 3}
--- !u!4 &3381364126698667035 stripped
Transform:
m_CorrespondingSourceObject: {fileID: 1893373068558197101, guid: 7d448b406dfe0334e89732baba65b0af, type: 3}
m_PrefabInstance: {fileID: 3795294254854348150}
m_PrefabAsset: {fileID: 0}
@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 1c1225ddbb2fb1d4cb740842783be148
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,214 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &7603787680569752128
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 6792122022612880715}
- component: {fileID: 4768347629584287356}
- component: {fileID: 6408434526299139736}
m_Layer: 5
m_Name: ImageSkill
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 0
--- !u!224 &6792122022612880715
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7603787680569752128}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 0.9, y: 0.9, z: 0.9}
m_ConstrainProportionsScale: 1
m_Children: []
m_Father: {fileID: 5618441062421414725}
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!222 &4768347629584287356
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7603787680569752128}
m_CullTransparentMesh: 1
--- !u!114 &6408434526299139736
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7603787680569752128}
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: 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!1 &8802854235594701269
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 5618441062421414725}
- component: {fileID: 1735902942626427301}
- component: {fileID: 3218941713859996464}
- component: {fileID: 719606890521121321}
- component: {fileID: 4433771094803413100}
m_Layer: 5
m_Name: SkillSlotWidget
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &5618441062421414725
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8802854235594701269}
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: 6792122022612880715}
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &1735902942626427301
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8802854235594701269}
m_CullTransparentMesh: 1
--- !u!114 &3218941713859996464
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8802854235594701269}
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: 450cd00c015f91145b3302f1097984dd, 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!114 &719606890521121321
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8802854235594701269}
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: 3218941713859996464}
m_OnClick:
m_PersistentCalls:
m_Calls: []
--- !u!114 &4433771094803413100
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8802854235594701269}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 5735efc21e623924587de92aa6a5d969, type: 3}
m_Name:
m_EditorClassIdentifier:
slotIndex: -1
disPlayImage: {fileID: 6408434526299139736}
_button: {fileID: 719606890521121321}
@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: c87e99793e788464faba9858e0add35c
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -1531,6 +1531,50 @@ public static class generate_item_temp
return 0;
}
public static int generate_revivescroll<RAND_CLASS>(uint id, ID_SPACE idspace, out byte[] data, out uint size, RAND_CLASS cls)
{
data = new byte[0];
size = 0;
DATA_TYPE datatype = DATA_TYPE.DT_INVALID;
object obj = itemdataman._edm.get_data_ptr(id, idspace, ref datatype);
if(obj == null || datatype != DATA_TYPE.DT_REVIVESCROLL_ESSENCE)
return -1;
REVIVESCROLL_ESSENCE ess = (REVIVESCROLL_ESSENCE)obj;
size = (uint)(Marshal.SizeOf(typeof(item_data)) + Marshal.SizeOf(typeof(REVIVESCROLL_ESSENCE)));
// allocate the buffer with exact length
data = new byte[size];
int offset = 0;
WriteUInt(data, ref offset, id); //ƷģID
WriteUInt(data, ref offset, 1); //Ʒ
WriteUInt(data, ref offset, (uint)ess.pile_num_max); //ƷĶѵ
WriteInt(data, ref offset, 0); //ƷĿװ־
WriteInt(data, ref offset, (int)ess.proc_type); //ƷĴʽ
WriteInt(data, ref offset, (int)DATA_TYPE.DT_REVIVESCROLL_ESSENCE); //ƷӦID
if(ess.has_guid == 1){
int g1,g2;
itemdataman.get_item_guid(id,out g1,out g2);
WriteInt(data, ref offset, g1);
WriteInt(data, ref offset, g2);
}
else{
WriteInt(data, ref offset, 0);
WriteInt(data, ref offset, 0);
}
WriteInt(data, ref offset, ess.price);
WriteInt(data, ref offset, 0);
int content_length = 0;
int content_length_ptr = offset;
WriteInt(data, ref offset, 0);
int item_content = offset;
WriteInt(data, ref offset, 0);
content_length = (int)(size - offset);
WriteInt(data, ref content_length_ptr, content_length);
WriteInt(data, ref item_content, offset);
itemdataman.set_to_classid(DATA_TYPE.DT_REVIVESCROLL_ESSENCE, data, -1);
return 0;
}
#region Write Functions
private static void WriteUInt(byte[] buf, ref int offset, uint value)
{
@@ -500,6 +500,9 @@ namespace BrewMonster
case DATA_TYPE.DT_TOWNSCROLL_ESSENCE:
ret = generate_item_temp.generate_townscroll(id, ID_SPACE.ID_SPACE_ESSENCE, out item, out size, SPECIFIC.SPECIFIC_RAND);
break;
case DATA_TYPE.DT_REVIVESCROLL_ESSENCE:
ret = generate_item_temp.generate_revivescroll(id, ID_SPACE.ID_SPACE_ESSENCE, out item, out size, SPECIFIC.SPECIFIC_RAND);
break;
default:
ret = -1;
@@ -62,7 +62,7 @@ namespace BrewMonster
public string FileHitGfx => ByteToStringUtils.ByteArrayToCP936String(file_hitgfx);
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 128)]
public byte[] file_hitsfx; // Hit sound effect file pathpublic string FileHitSfx => ByteToStringUtils.ByteArrayToCP936String(file_hitsfx);
public byte[] file_hitsfx; // Hit sound effect file path
public string FileHitSfx => ByteToStringUtils.ByteArrayToCP936String(file_hitsfx);
public float probability_fastest; // Attack frequency probability: Fastest -0.1
public float probability_fast; // Attack frequency probability: Fast -0.05
@@ -1673,13 +1673,13 @@ namespace BrewMonster
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 32)]
public ushort[] name; // Name, max 15 characters
public string Name => ByteToStringUtils.UshortArrayToUnicodeString(name);
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 128)]
public byte[] file_matter; // Material file path
public string FileMatter => ByteToStringUtils.ByteArrayToCP936String(file_matter);
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 128)]
public byte[] file_icon; // Icon file path
public string FileIcon => ByteToStringUtils.ByteArrayToCP936String(file_icon);
public float use_time; // Use time (seconds)
public int cool_time; // Cooldown time (milliseconds)
@@ -980,7 +980,6 @@ namespace BrewMonster.Scripts
/// </summary>
public override int GetScaledPrice()
{
Debug.Log($"GetScaledPrice: m_iScaleType: {m_iScaleType}");
if (m_iScaleType != (int)EC_IvtrItem.ScaleType.SCALE_SELL)
return base.GetScaledPrice();
@@ -988,13 +987,11 @@ namespace BrewMonster.Scripts
if (MaxEndurance == CurEndurance || MaxEndurance == 0)
{
Debug.Log($"GetScaledPrice: price: {price}, MaxEndurance: {m_fPriceScale}");
return (int)(price * m_fPriceScale + 0.5f);
}
else
{
Debug.Log($"GetScaledPrice: price: {price}, PriceScale: {m_fPriceScale}, CurEndurance: {CurEndurance}, MaxEndurance: {MaxEndurance}, factor: {CurEndurance / (float)MaxEndurance}");
return (int)(price * m_fPriceScale * CurEndurance / (float)MaxEndurance + 0.5f);
}
}
@@ -705,7 +705,8 @@ namespace BrewMonster.Scripts
public bool m_bLocalDetailData; // true, data from GetDetailDataFromLocal
public EC_Inventory m_pDescIvtr; // Inventory only used to get item description
public SKILLMATTER_ESSENCE m_pDBEssence;
private ushort m_dwData;
private string m_strDataName;
@@ -140,8 +140,6 @@ namespace BrewMonster.Scripts
if (m_pDBEssence.hp_add_total > 0)
{
BMLogger.Log("EC_IvtrMedicine: BuildEffectDesc: m_pDBEssence.hp_add_total: " + m_pDBEssence.hp_add_total);
BMLogger.Log("EC_IvtrMedicine: BuildEffectDesc: m_pDBEssence.hp_add_time: " + m_pDBEssence.hp_add_time);
if (m_pDBEssence.hp_add_time > 0)
AddDescText(white, true, pDescTab.GetWideString((int)DescriptipionMsg.ITEMDESC_ADDHPINTIME), m_pDBEssence.hp_add_time, m_pDBEssence.hp_add_total);
else
@@ -1,8 +1,13 @@
using BrewMonster;
using BrewMonster.Scripts.Managers;
using ModelRenderer.Scripts.GameData;
using CSNetwork.GPDataType;
using BrewMonster.Network;
namespace BrewMonster.Scripts
{
public class EC_IvtrRevScroll : EC_IvtrItem
{
public REVIVESCROLL_ESSENCE m_pDBEssence;
/// <summary>
/// Not create logic yet (add summary later)
/// </summary>
@@ -10,11 +15,83 @@ namespace BrewMonster.Scripts
/// <param name="expire_date">Expire date</param>
public EC_IvtrRevScroll(int tid, int expire_date) : base(tid, expire_date)
{
elementdataman pDB = ElementDataManProvider.GetElementDataMan();
DATA_TYPE DataType = default;
m_pDBEssence = (REVIVESCROLL_ESSENCE)pDB.get_data_ptr((uint)tid, ID_SPACE.ID_SPACE_ESSENCE,ref DataType);
m_iPileLimit = m_pDBEssence.pile_num_max;
m_iPrice = m_pDBEssence.price;
m_iShopPrice = m_pDBEssence.shop_price;
m_iProcType = (int)m_pDBEssence.proc_type;
m_i64EquipMask = 0;
m_bUseable = true;
m_bNeedUpdate = false;
}
public EC_IvtrRevScroll(EC_IvtrRevScroll other) : base(other)
{
m_pDBEssence = other.m_pDBEssence;
}
public override bool SetItemInfo(byte[] pInfoData, int iDataLen)
{
base.SetItemInfo(pInfoData, iDataLen);
return true;
}
// Get item icon file name
public override string GetIconFile()
{
return m_pDBEssence.FileIcon;
}
// Get item name
public override string GetName()
{
return m_pDBEssence.Name;
}
public override int GetCoolTime(out int piMax/* NULL */)
{
piMax = 0;
CECHostPlayer pHost = CECGameRun.Instance.GetHostPlayer();
return pHost ? pHost.GetCoolTime((int)CoolTimeIndex.GP_CT_SOUL_STONE, out piMax) : 0;
}
// Get item description text
protected override string GetNormalDesc(bool bRepair)
{
m_strDesc = "";
// Try to build item description
CECStringTab pDescTab = EC_Game.GetItemDesc();
int white = (int) DescriptipionMsg.ITEMDESC_COL_WHITE;
int namecol = DecideNameCol();
if (m_iCount > 1)
AddDescText(namecol, true, pDescTab.GetWideString((int)DescriptipionMsg.ITEMDESC_NAMENUMBER), GetName(), m_iCount);
else
AddDescText(namecol, true, pDescTab.GetWideString((int)DescriptipionMsg.ITEMDESC_NAME), GetName());
AddIDDescText();
AddExpireTimeDesc();
// Price
AddPriceDesc(white, bRepair);
// Extend description
AddExtDescText();
return m_strDesc;
}
// Get drop model for shown
public override string GetDropModel()
{
return m_pDBEssence.FileMatter;
}
}
}
@@ -1,4 +1,9 @@
using BrewMonster.Network;
using BrewMonster.Scripts.Managers;
using CSNetwork.GPDataType;
using ModelRenderer.Scripts.Common;
using ModelRenderer.Scripts.GameData;
using System;
namespace BrewMonster.Scripts
{
public class EC_IvtrSkillMat : EC_IvtrItem
@@ -10,10 +15,118 @@ namespace BrewMonster.Scripts
/// <param name="expire_date">Expire date</param>
public EC_IvtrSkillMat(int tid, int expire_date) : base(tid, expire_date)
{
m_iCID = (int)InventoryClassId.ICID_SKILLMATTER;
elementdataman pDB = ElementDataManProvider.GetElementDataMan();
DATA_TYPE dataType = DATA_TYPE.DT_INVALID;
m_pDBEssence = (SKILLMATTER_ESSENCE)pDB.get_data_ptr((uint)tid, ID_SPACE.ID_SPACE_ESSENCE, ref dataType);
m_iPileLimit = m_pDBEssence.pile_num_max;
m_iPrice = m_pDBEssence.price;
m_iShopPrice = m_pDBEssence.shop_price;
m_iProcType = (int)m_pDBEssence.proc_type;
m_i64EquipMask = 0;
m_bUseable = true;
m_bNeedUpdate = false;
}
public EC_IvtrSkillMat(EC_IvtrSkillMat other) : base(other)
{
m_pDBEssence = other.m_pDBEssence;
}
public override bool SetItemInfo(byte[] pInfoData, int iDataLen)
{
base.SetItemInfo(pInfoData, iDataLen);
return true;
}
public override string GetIconFile()
{
base.GetIconFile();
return Convert.ToBase64String(m_pDBEssence.file_icon);
}
public override string GetName()
{
if(m_pDBEssence.name != null && m_pDBEssence.name.Length > 0)
{
string s = ByteToStringUtils.UshortArrayToUnicodeString(m_pDBEssence.name);
if(!string.IsNullOrEmpty(s) && !string.IsNullOrWhiteSpace(s))
{
return s;
}
s = ByteToStringUtils.UshortArrayToCP936String(m_pDBEssence.name);
if(!string.IsNullOrEmpty(s))
return s;
}
return base.GetName();
}
public override int GetCoolTime(out int piMax)
{
piMax = 0;
CECHostPlayer pHost = EC_Game.GetGameRun().GetHostPlayer();
return pHost != null ? pHost.GetCoolTime((int)CoolTimeIndex.GP_CT_SKILLMATTER, out piMax) : 0;
}
protected override string GetNormalDesc(bool bRepair)
{
m_strDesc = string.Empty;
CECStringTab pDescTab = EC_Game.GetItemDesc();
int red = (int)DescriptipionMsg.ITEMDESC_COL_RED;
int white = (int)DescriptipionMsg.ITEMDESC_COL_WHITE;
int namecol = DecideNameCol();
if (m_iCount > 1)
{
AddDescText(namecol, true, pDescTab.GetWideString((int)DescriptipionMsg.ITEMDESC_NAMENUMBER), GetName(), m_iCount);
}
else
{
AddDescText(namecol, true, pDescTab.GetWideString((int)DescriptipionMsg.ITEMDESC_NAME), GetName());
}
AddExpireTimeDesc();
if (m_pDBEssence.level_required > 0)
{
CECHostPlayer pHost = EC_Game.GetGameRun().GetHostPlayer();
int hostLevel = pHost != null ? pHost.GetMaxLevelSofar() : 0;
int col = hostLevel >= m_pDBEssence.level_required ? white : red;
AddDescText(col, true, pDescTab.GetWideString((int)DescriptipionMsg.ITEMDESC_LEVELREQ), m_pDBEssence.level_required);
}
AddExtDescText();
return m_strDesc;
}
public override bool CheckUseCondition()
{
if(m_pDBEssence.id == 0)
{
return false;
}
CECHostPlayer pHost = EC_Game.GetGameRun().GetHostPlayer();
if(pHost == null)
{
return false;
}
if(pHost.GetMaxLevelSofar() < m_pDBEssence.level_required)
{
return false;
}
return true;
}
public override string GetDropModel()
{
base.GetDropModel();
return Convert.ToBase64String(m_pDBEssence.file_matter);
}
}
}
@@ -52,8 +52,9 @@ namespace BrewMonster.Scripts
return m_pDBEssence.FileIcon;
}
// Get item cool time
public int GetCoolTime(ref int piMax)
public override int GetCoolTime(out int piMax)
{
piMax =0;
CECHostPlayer pHost = EC_Game.GetGameRun().GetHostPlayer();
return pHost ? pHost.GetCoolTime((int)CoolTimeIndex.GP_CT_TOWNSCROLL, out piMax) : 0;
}
+12 -3
View File
@@ -1831,9 +1831,18 @@ namespace BrewMonster.Scripts.Task.UI
public static string FormatTime(int nSec, string desc, int timeLimit)
{
var ts = System.TimeSpan.FromSeconds(System.Math.Max(0, nSec));
string label = string.IsNullOrEmpty(desc) ? string.Empty : desc;
return $"{label}{ts:hh\\:mm\\:ss}\n";
int total = System.Math.Max(0, nSec);
int h = total / 3600;
int m = (total % 3600) / 60;
int s = total % 60;
// Matches table printf "%d:%02d:%02d" (hours, zero-padded min/sec); works for durations over 24h.
string timeStr = string.Format(System.Globalization.CultureInfo.InvariantCulture, "{0}:{1:D2}:{2:D2}", h, m, s);
if (string.IsNullOrEmpty(desc))
return timeStr;
const string kPrintfTime = "%d:%02d:%02d";
if (desc.IndexOf(kPrintfTime, System.StringComparison.Ordinal) >= 0)
return desc.Replace(kPrintfTime, timeStr);
return desc + timeStr;
}
// private static string GetStringFromTable(int id)
@@ -46,15 +46,13 @@ namespace BrewMonster
[Header("Item Info Panel")]
public Transform itemInfoRoot;
public TextMeshProUGUI infoNameText;
public TextMeshProUGUI infoDescText;
public TextMeshProUGUI infoExtraText;
[Header("Wepon Info Equippment Panel")]
[SerializeField] private Transform weponInfoRoot;
[SerializeField] private TextMeshProUGUI weponNameInfoText;
[SerializeField] private TextMeshProUGUI weponDescInfoText;
[SerializeField] private TextMeshProUGUI weponExtraInfoText;
//[Header("Wepon Info Equippment Panel")]
//[SerializeField] private Transform weponInfoRoot;
//[SerializeField] private TextMeshProUGUI weponNameInfoText;
//[SerializeField] private TextMeshProUGUI weponDescInfoText;
//[SerializeField] private TextMeshProUGUI weponExtraInfoText;
[Header("Default")]
[SerializeField] private Sprite khung_item;
@@ -650,17 +648,9 @@ namespace BrewMonster
itemInfoRoot.gameObject.SetActive(true);
//if (infoNameText != null)
// infoNameText.text = EC_Utility.ProcessColorCodes(new StringBuilder (item.GetName()));
if (infoDescText != null)
infoDescText.text = EC_Utility.ProcessColorCodes(new StringBuilder (item.GetDesc()?.Replace("\\r", "\n") ?? ""));
if (infoExtraText != null)
{
infoExtraText.text = $"Item ID: {itemId}";
}
ShowResultItemInfo(item, itemId);
}
@@ -669,8 +659,8 @@ namespace BrewMonster
if (itemInfoRoot != null)
itemInfoRoot.gameObject.SetActive(false);
if(weponInfoRoot != null)
weponInfoRoot.gameObject.SetActive(false);
//if(weponInfoRoot != null)
// weponInfoRoot.gameObject.SetActive(false);
}
private void UpdateQuantityText(int quantity)
@@ -793,23 +783,15 @@ namespace BrewMonster
{
currentInfoMode = ItemInfoMode.None;
if (infoNameText != null)
infoNameText.text = string.Empty;
if (infoDescText != null)
infoDescText.text = string.Empty;
if (infoExtraText != null)
infoExtraText.text = string.Empty;
HideItemInfo();
}
void ForceRefreshItemInfoLayout()
{
infoNameText?.ForceMeshUpdate();
infoDescText?.ForceMeshUpdate();
infoExtraText?.ForceMeshUpdate();
var rt = itemInfoRoot.GetComponent<RectTransform>();
if (rt != null)
@@ -828,10 +810,8 @@ namespace BrewMonster
new StringBuilder(item.GetDesc()?.Replace("\\r", "\n") ?? "")
);
infoExtraText.text = $"Item ID: {itemId}";
ForceRefreshItemInfoLayout();
ShowEquippmentWeponInfo();
//ShowEquippmentWeponInfo();
}
void ShowMaterialItemInfo(EC_IvtrItem item, uint itemId)
@@ -841,12 +821,8 @@ namespace BrewMonster
itemInfoRoot.gameObject.SetActive(true);
infoNameText.text = item.GetName();
infoDescText.text = item.GetDesc();
infoExtraText.text = $"Material ID: {itemId}";
ForceRefreshItemInfoLayout();
}
@@ -870,31 +846,31 @@ namespace BrewMonster
}
return null;
}
private void ShowEquippmentWeponInfo()
{
if (weponInfoRoot == null)
return;
var weponItem = GetquippedWepon();
//private void ShowEquippmentWeponInfo()
//{
// if (weponInfoRoot == null)
// return;
// var weponItem = GetquippedWepon();
if (weponItem != null)
{
weponInfoRoot.gameObject.SetActive(true);
//weponNameInfoText.text = weponItem.GetName();
Debug.Log("[DlgProduce] Showing weapon info: " + weponItem);
// if (weponItem != null)
// {
// weponInfoRoot.gameObject.SetActive(true);
// //weponNameInfoText.text = weponItem.GetName();
// Debug.Log("[DlgProduce] Showing weapon info: " + weponItem);
weponDescInfoText.text = "<color=#00FF00>[Được trang bị]</color> \n" + EC_Utility.ProcessColorCodes(new StringBuilder(weponItem.GetDesc().Replace("\\r", "\n")));
//weponExtraInfoText.text = $"Item ID: {weponItem.m_tid}";
// weponDescInfoText.text = "<color=#00FF00>[Được trang bị]</color> \n" + EC_Utility.ProcessColorCodes(new StringBuilder(weponItem.GetDesc().Replace("\\r", "\n")));
// //weponExtraInfoText.text = $"Item ID: {weponItem.m_tid}";
var rt = weponInfoRoot.GetComponent<RectTransform>();
if (rt != null)
LayoutRebuilder.ForceRebuildLayoutImmediate(rt);
}
else
{
weponInfoRoot.gameObject.SetActive(false);
}
// var rt = weponInfoRoot.GetComponent<RectTransform>();
// if (rt != null)
// LayoutRebuilder.ForceRebuildLayoutImmediate(rt);
// }
// else
// {
// weponInfoRoot.gameObject.SetActive(false);
// }
}
//}
private void ResetOnTop()
{
@@ -25,6 +25,11 @@ namespace BrewMonster.Scripts.UI
public void SetImage(Sprite sprite)
{
if (img == null)
{
return;
}
img.enabled = sprite != null;
img.sprite = sprite;
}
@@ -36,7 +41,11 @@ namespace BrewMonster.Scripts.UI
public void SetColor(Color color)
{
// TODO : Set color to relevant UI components
if (img == null)
{
return;
}
img.color = color;
}
public void SetHint(string text)
@@ -44,9 +53,24 @@ namespace BrewMonster.Scripts.UI
txtHint = text;
}
/// <summary>
/// Reset slot when this cell has no award (e.g. dialog reopened with fewer items).
/// 清空格子:再次打开奖励界面时清除上一轮的图标与点击逻辑。
/// </summary>
public void ClearCover()
{
// TODO : Implement cover clearing functionality
if (img != null)
{
img.sprite = null;
img.enabled = false;
img.color = Color.white;
}
if (btn != null)
{
btn.onClick.RemoveAllListeners();
}
txtHint = string.Empty;
isOn = false;
}
public void Show(bool show)
@@ -59,6 +59,14 @@ namespace BrewMonster.Scripts.UI
{
toggle.isOn = false;
}
if (itemInfoPanel != null)
{
itemInfoPanel.SetActive(false);
}
if (descriptionOutlet != null)
{
descriptionOutlet.Set(string.Empty);
}
_btnClose.onClick.AddListener(OnCloseDlgAward);
}
@@ -214,7 +222,7 @@ namespace BrewMonster.Scripts.UI
// sprintf(out szName, "Item_%02d01", i);
// pImage = (PAUIIMAGEPICTURE)GetDlgItem(szName);
// if (!pImage) break; // All done.
pImage = GetAwardItemAt(i, i);
pImage = GetAwardItemAt(i, 1);
if (!pImage) break;
// sprintf(out szName, "Rdo_Award%d", i);
@@ -23,6 +23,9 @@ namespace BrewMonster.Assets.PerfectWorld.Scripts.UI.GamePlay
private Color m_color = Color.white;
private bool m_bUpdateRenderTarget;
private bool m_bForceDynamicRender;
private int _skillID;
public int SkillId => _skillID;
private AUIDialog m_pParent;
public override void Awake()
@@ -35,6 +38,7 @@ namespace BrewMonster.Assets.PerfectWorld.Scripts.UI.GamePlay
skillbutton.onClick.RemoveAllListeners();
skillbutton.onClick.AddListener(Execute);
m_pParent = GetComponentInParent<AUIDialog>();
_skillID = int.Parse(this.name.Split('_')[1]);
}
public void SetInteract(bool isInteract)
@@ -66,7 +70,7 @@ namespace BrewMonster.Assets.PerfectWorld.Scripts.UI.GamePlay
{
EventBus.Publish(new OpenAssignSkillUIEvent());
}
// Show tooltip if hint exists
if (!string.IsNullOrEmpty(m_hintText))
{
@@ -74,8 +78,8 @@ namespace BrewMonster.Assets.PerfectWorld.Scripts.UI.GamePlay
if (uiManager != null)
{
var rectTransform = GetComponent<RectTransform>();
int skillID = int.Parse(this.name.Split('_')[1]);
uiManager.ShowSkillTooltip(m_hintText, rectTransform, () => EventBus.Publish(new AssignSkillSelectionChangedEvent(skillID, true)));
// int skillID = int.Parse(this.name.Split('_')[1]);
uiManager.ShowSkillTooltip(m_hintText, rectTransform, () => EventBus.Publish(new AssignSkillSelectionChangedEvent(_skillID, true)));
}
}
}
@@ -127,6 +131,11 @@ namespace BrewMonster.Assets.PerfectWorld.Scripts.UI.GamePlay
m_ClockCounter.SetProgressPos(1);
}
}
public void SetSkillId(int skillId)
{
_skillID = skillId;
}
}
public struct OpenSkillUIEvent
{
@@ -13,6 +13,7 @@ namespace BrewMonster.Assets.PerfectWorld.Scripts.UI.GamePlay
// Hint/tooltip data storage
protected string m_hintText = string.Empty;
public int GetSlotIndex => slotIndex;
public virtual void Awake()
{
@@ -90,15 +90,15 @@ namespace BrewMonster
int nCurPanel9 = GetCurPanel1();
int nCurPanel8 = GetCurPanel2();
CECHostPlayer pHost = EC_Game.GetGameRun().GetHostPlayer();
if (pHost == null)
if (pHost == null)
return false;
var a_pSCS = new List<CECShortcutSet>();
var a_pszPanel = new List<string>();
GetQuickBarNameAndSC(pHost, a_pszPanel, a_pSCS, nCurPanel9, nCurPanel8);
if (a_pSCS == null || a_pSCS.Count < 2)
return false;
if(currentListIndex >= a_pSCS.Count )
{
currentListIndex = 0;
@@ -119,7 +119,7 @@ namespace BrewMonster
}
int nSlots = Mathf.Min(shortcutNum, AUIImagePictureList.Count);
for (int j = 0; j < nSlots; j++)
{
{
pCell = AUIImagePictureList[j];
pCell.SetSlotIndex(j);
if (pCell == null || !pCell.gameObject.activeInHierarchy) continue;
@@ -286,7 +286,7 @@ namespace BrewMonster
pClock.SetColor(new Color32(0, 0, 0, 128));
}
}
//if (pSCItem.GetInventory == InventoryConst.IVTRTYPE_EQUIPPACK)
//{
// pCell.SetColor(new Color(128, 128, 255, 128));
@@ -316,7 +316,7 @@ namespace BrewMonster
else
{
pCell.SetColor(new Color(255, 255, 255, 255));
}
}
else
@@ -440,7 +440,11 @@ namespace BrewMonster
pCell.gameObject.SetActive(true);
//BMLogger.Log("HoangDev: QuickBar Set Skill Icon: " + (uint)pSkill.GetSkillID() + " : " + ElementSkill.GetIcon((uint)pSkill.GetSkillID()));
var nameskill = ElementSkill.GetIcon((uint)pSkill.GetSkillID());
GetGameUIMan().SetCover(pCell, nameskill, EC_GAMEUI_ICONS.ICONS_SKILL);
var slot = GetGameUIMan().SetCover(pCell, nameskill, EC_GAMEUI_ICONS.ICONS_SKILL);
if (slot is AUIImagePicture picture)
{
picture.SetSkillId(pSkill.GetSkillID());
}
}
/* af_GetFileTitle(pSC->GetIconFile(), strFile);
strFile.MakeLower();
@@ -733,8 +737,8 @@ namespace BrewMonster
pszPanel.Add(dlgName);
}*/
}
public int GetCurPanel1()
{
return m_nCurPanel1;
@@ -33,6 +33,7 @@ namespace BrewMonster.UI
private const string ACTION_ICONLIST_NAME = "ActionIcon/iconlist_action_multisprite";
private const string INVENTORY_ICONLIST_NAME = "UI/IconSprites/iconlist_ivtrm_multisprite";
private const string STATE_ICONLIST_NAME = "iconlist_state";
private const string SKILL_GROUP_ICON_NAME = "SkillGroupIcon/iconlist_skillgrp_multisprite";
public CDlgMiniMap m_pDlgMiniMap;
@@ -431,16 +432,17 @@ namespace BrewMonster.UI
m_IconMap[(byte)EC_GAMEUI_ICONS.ICONS_ACTION] = (ACTION_ICONLIST_NAME, Resources.LoadAll<Sprite>(ACTION_ICONLIST_NAME));
m_IconMap[(byte)EC_GAMEUI_ICONS.ICONS_INVENTORY] = (INVENTORY_ICONLIST_NAME, Resources.LoadAll<Sprite>(INVENTORY_ICONLIST_NAME));
m_IconMap[(byte)EC_GAMEUI_ICONS.ICONS_STATE] = (STATE_ICONLIST_NAME, Resources.LoadAll<Sprite>(STATE_ICONLIST_NAME));
m_IconMap[(byte)EC_GAMEUI_ICONS.ICONS_SKILLGRP] = (SKILL_GROUP_ICON_NAME, Resources.LoadAll<Sprite>(SKILL_GROUP_ICON_NAME));
}
public void SetCover(AUIImagePictureBase pImgPic, string nameImage, EC_GAMEUI_ICONS iCONS_TYPE)
public AUIImagePictureBase SetCover(AUIImagePictureBase pImgPic, string nameImage, EC_GAMEUI_ICONS iCONS_TYPE)
{
if (pImgPic == null)
return;
return pImgPic;
if (m_IconMap == null || !m_IconMap.TryGetValue((byte)iCONS_TYPE, out var tuple) || tuple.Item2 == null)
{
pImgPic.Clear();
return;
return pImgPic;
}
var sprite = tuple.Item2.FirstOrDefault(s => s != null && s.name == nameImage);
@@ -448,6 +450,16 @@ namespace BrewMonster.UI
pImgPic.SetImage(sprite);
else
pImgPic.Clear();
return pImgPic;
}
public Sprite GetIcon(string nameImage, EC_GAMEUI_ICONS iCONS_TYPE)
{
if (m_IconMap == null || !m_IconMap.TryGetValue((byte)iCONS_TYPE, out var tuple) || tuple.Item2 == null)
{
return null;
}
return tuple.Item2.FirstOrDefault(s => s != null && s.name == nameImage);
}
/// <summary>Refresh team UI (Arrange Team dialog). Called after team join/leave/member data.</summary>
@@ -1,3 +1,4 @@
using System;
using BrewMonster.Assets.PerfectWorld.Scripts.UI.GamePlay;
using UnityEngine;
using UnityEngine.UI;
@@ -10,6 +11,7 @@ namespace BrewMonster
[SerializeField] Button learnedSkillbutton;
[SerializeField] private DoubleTapButton wButton;
public event Action<AUIImagePicture> OnClickedSkill;
private void Awake()
{
if(learnedSkillbutton == null)
@@ -22,7 +24,8 @@ namespace BrewMonster
}
private void AddShortCutSkill()
{
OnClickedSkill?.Invoke(this);
Debug.LogError("clicked");
}
private void OpenSetShortCutSkillUI()
{
@@ -151,7 +151,11 @@ namespace BrewMonster
enumSkillLearnedState learnedState = model.GetSkillLearnedState(m_skillID);
var spriteName = model.GetSkillIcon(skillID);
CECUIManager.Instance.GetInGameUIMan().SetCover(m_skillIconImgPic, spriteName, EC_GAMEUI_ICONS.ICONS_SKILL);
var slot = CECUIManager.Instance.GetInGameUIMan().SetCover(m_skillIconImgPic, spriteName, EC_GAMEUI_ICONS.ICONS_SKILL);
if (slot is AUIImagePicture picture)
{
picture.SetSkillId(skillID);
}
/* var sprites = Resources.LoadAll<Sprite>("iconlist_skill_multisprite");
if (sprites == null || sprites.Length == 0)
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 2efd1534fa65b7d4b9e504f071a9f85f
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,65 @@
using System;
using BrewMonster.Assets.PerfectWorld.Scripts.UI.GamePlay;
using UnityEngine;
using UnityEngine.UI;
namespace BrewMonster
{
public enum SkillSlotType
{
Normal= 0,
AddSkill
}
public class SkillSlotWidget : AUIImagePictureBase
{
[SerializeField] private SkillSlotType _skillSlotType;
[SerializeField] private Image _backgroundImage;
[SerializeField] private Button _button;
[SerializeField] private Sprite[] _slotBackgrounds;
[SerializeField] private GameObject _focusFrame;
private int _skillId;
public int SkillId => _skillId;
public event Action<SkillSlotWidget> OnClickedSkillSlot;
private void OnValidate()
{
var index = (int)_skillSlotType;
if (index < 0 || index >= _slotBackgrounds.Length)
{
BMLogger.LogError("Invalid skill slot type");
}
else
{
if(_backgroundImage == null) return;
_backgroundImage.sprite = _slotBackgrounds[index];
}
}
private void OnEnable()
{
_button.onClick.AddListener(OnClickedButton);
}
private void OnDisable()
{
_button.onClick.RemoveListener(OnClickedButton);
}
private void OnClickedButton()
{
OnClickedSkillSlot?.Invoke(this);
}
public void SetSkillId(int skillId)
{
_skillId = skillId;
}
public void SetFocusFrame(bool isFocus)
{
_focusFrame.SetActive(isFocus);
}
}
}
@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 5735efc21e623924587de92aa6a5d969
@@ -100,11 +100,26 @@ public class NPCShopDetailPanel : MonoBehaviour
"\n",
RegexOptions.CultureInvariant);
desc = Regex.Replace(
desc,
@"\^[0-9A-Fa-f]{6}",
string.Empty,
RegexOptions.CultureInvariant);
var colorRegex = new Regex(@"\^([0-9A-Fa-f]{6})", RegexOptions.CultureInvariant);
if (colorRegex.IsMatch(desc))
{
var sbColors = new System.Text.StringBuilder();
int lastIndex = 0;
bool opened = false;
foreach (Match m in colorRegex.Matches(desc))
{
sbColors.Append(desc, lastIndex, m.Index - lastIndex);
if (opened)
sbColors.Append("</color>");
sbColors.Append("<color=#").Append(m.Groups[1].Value).Append(">");
opened = true;
lastIndex = m.Index + m.Length;
}
sbColors.Append(desc, lastIndex, desc.Length - lastIndex);
if (opened)
sbColors.Append("</color>");
desc = sbColors.ToString();
}
string[] lines = desc.Split('\n');
var sb = new System.Text.StringBuilder();
@@ -138,6 +153,7 @@ public class NPCShopDetailPanel : MonoBehaviour
return sb.ToString().Trim();
}
void LoadItemIcon(Image iconImage, int itemId)
{
if (itemId <= 0 || iconImage == null)
@@ -4,15 +4,15 @@
using BrewMonster;
using BrewMonster.Network;
using BrewMonster.Scripts.Managers;
using BrewMonster.Scripts;
using BrewMonster.Scripts.Managers;
using BrewMonster.UI;
using CSNetwork.C2SCommand;
using ModelRenderer.Scripts.Common;
using System;
using System.Collections.Generic;
using TMPro;
using Unity.VisualScripting;
using UnityEngine;
using UnityEngine.UI;
using static CSNetwork.Common.ExpTypes;
@@ -471,8 +471,243 @@ public class NPCShopUIManager : AUIDialog
itemName = ByteToStringUtils.UshortArrayToUnicodeString(projectileEssence.name);
shopPrice = projectileEssence.shop_price;
break;
case DATA_TYPE.DT_REVIVESCROLL_ESSENCE:
var revivescrollEssence = (REVIVESCROLL_ESSENCE)itemData;
itemName = ByteToStringUtils.UshortArrayToUnicodeString(revivescrollEssence.name);
shopPrice = revivescrollEssence.shop_price;
break;
case DATA_TYPE.DT_TASKNORMALMATTER_ESSENCE:
var tasknormalmatterEssence = (TASKNORMALMATTER_ESSENCE)itemData;
itemName = ByteToStringUtils.UshortArrayToUnicodeString(tasknormalmatterEssence.name);
shopPrice = tasknormalmatterEssence.shop_price;
break;
case DATA_TYPE.DT_DAMAGERUNE_ESSENCE:
var damageruneEssence = (DAMAGERUNE_ESSENCE)itemData;
itemName = ByteToStringUtils.UshortArrayToUnicodeString(damageruneEssence.name);
shopPrice = damageruneEssence.shop_price;
break;
case DATA_TYPE.DT_ARMORRUNE_ESSENCE:
var armorruneEssence = (ARMORRUNE_ESSENCE)itemData;
itemName = ByteToStringUtils.UshortArrayToUnicodeString(armorruneEssence.name);
shopPrice = armorruneEssence.shop_price;
break;
case DATA_TYPE.DT_SKILLTOME_ESSENCE:
var skilltomeEssence = (SKILLTOME_ESSENCE)itemData;
itemName = ByteToStringUtils.UshortArrayToUnicodeString(skilltomeEssence.name);
shopPrice = skilltomeEssence.shop_price;
break;
case DATA_TYPE.DT_FLYSWORD_ESSENCE:
var flyswordEssence = (FLYSWORD_ESSENCE)itemData;
itemName = flyswordEssence.Name;
shopPrice = flyswordEssence.shop_price;
break;
case DATA_TYPE.DT_WINGMANWING_ESSENCE:
var wingmanwingEssence = (WINGMANWING_ESSENCE)itemData;
itemName = wingmanwingEssence.Name;
shopPrice = wingmanwingEssence.shop_price;
break;
case DATA_TYPE.DT_TOWNSCROLL_ESSENCE:
var townscrollEssence = (TOWNSCROLL_ESSENCE)itemData;
itemName = ByteToStringUtils.UshortArrayToUnicodeString(townscrollEssence.name);
shopPrice = townscrollEssence.shop_price;
break;
case DATA_TYPE.DT_UNIONSCROLL_ESSENCE:
var unionscrollEssence = (UNIONSCROLL_ESSENCE)itemData;
itemName = ByteToStringUtils.UshortArrayToUnicodeString(unionscrollEssence.name);
shopPrice = unionscrollEssence.shop_price;
break;
case DATA_TYPE.DT_ELEMENT_ESSENCE:
var elementEssence = (ELEMENT_ESSENCE)itemData;
itemName = ByteToStringUtils.UshortArrayToUnicodeString(elementEssence.name);
shopPrice = elementEssence.shop_price;
break;
case DATA_TYPE.DT_TOSSMATTER_ESSENCE:
var tossmatterEssence = (TOSSMATTER_ESSENCE)itemData;
itemName = ByteToStringUtils.UshortArrayToUnicodeString(tossmatterEssence.name);
shopPrice = tossmatterEssence.shop_price;
break;
case DATA_TYPE.DT_FASHION_ESSENCE:
var fashionEssence = (FASHION_ESSENCE)itemData;
itemName = fashionEssence.Name;
shopPrice = fashionEssence.shop_price;
break;
case DATA_TYPE.DT_FACETICKET_ESSENCE:
var faceticketEssence = (FACETICKET_ESSENCE)itemData;
itemName = ByteToStringUtils.UshortArrayToUnicodeString(faceticketEssence.name);
shopPrice = faceticketEssence.shop_price;
break;
case DATA_TYPE.DT_FACEPILL_ESSENCE:
var facepillEssence = (FACEPILL_ESSENCE)itemData;
itemName = ByteToStringUtils.UshortArrayToUnicodeString(facepillEssence.name);
shopPrice = facepillEssence.shop_price;
break;
case DATA_TYPE.DT_PET_FACETICKET_ESSENCE:
var petFaceticketEssence = (PET_FACETICKET_ESSENCE)itemData;
itemName = ByteToStringUtils.UshortArrayToUnicodeString(petFaceticketEssence.name);
shopPrice = petFaceticketEssence.shop_price;
break;
case DATA_TYPE.DT_FIREWORKS_ESSENCE:
var fireworksEssence = (FIREWORKS_ESSENCE)itemData;
itemName = ByteToStringUtils.UshortArrayToUnicodeString(fireworksEssence.name);
shopPrice = fireworksEssence.shop_price;
break;
case DATA_TYPE.DT_WAR_TANKCALLIN_ESSENCE:
var warTankcallinEssence = (WAR_TANKCALLIN_ESSENCE)itemData;
itemName = ByteToStringUtils.UshortArrayToUnicodeString(warTankcallinEssence.name);
shopPrice = warTankcallinEssence.shop_price;
break;
case DATA_TYPE.DT_SKILLMATTER_ESSENCE:
var skillmatterEssence = (SKILLMATTER_ESSENCE)itemData;
itemName = ByteToStringUtils.UshortArrayToUnicodeString(skillmatterEssence.name);
shopPrice = skillmatterEssence.shop_price;
break;
case DATA_TYPE.DT_REFINE_TICKET_ESSENCE:
var refineTicketEssence = (REFINE_TICKET_ESSENCE)itemData;
itemName = ByteToStringUtils.UshortArrayToUnicodeString(refineTicketEssence.name);
shopPrice = refineTicketEssence.shop_price;
break;
case DATA_TYPE.DT_DESTROYING_ESSENCE:
var destroyingEssence = (DESTROYING_ESSENCE)itemData;
itemName = ByteToStringUtils.UshortArrayToUnicodeString(destroyingEssence.name);
shopPrice = destroyingEssence.shop_price;
break;
case DATA_TYPE.DT_BIBLE_ESSENCE:
var bibleEssence = (BIBLE_ESSENCE)itemData;
itemName = ByteToStringUtils.UshortArrayToUnicodeString(bibleEssence.name);
shopPrice = bibleEssence.shop_price;
break;
case DATA_TYPE.DT_SPEAKER_ESSENCE:
var speakerEssence = (SPEAKER_ESSENCE)itemData;
itemName = ByteToStringUtils.UshortArrayToUnicodeString(speakerEssence.name);
shopPrice = speakerEssence.shop_price;
break;
case DATA_TYPE.DT_AUTOHP_ESSENCE:
var autohpEssence = (AUTOHP_ESSENCE)itemData;
itemName = autohpEssence.Name;
shopPrice = autohpEssence.shop_price;
break;
case DATA_TYPE.DT_AUTOMP_ESSENCE:
var autompEssence = (AUTOMP_ESSENCE)itemData;
itemName = autompEssence.Name;
shopPrice = autompEssence.shop_price;
break;
case DATA_TYPE.DT_DOUBLE_EXP_ESSENCE:
var doubleExpEssence = (DOUBLE_EXP_ESSENCE)itemData;
itemName = ByteToStringUtils.UshortArrayToUnicodeString(doubleExpEssence.name);
shopPrice = doubleExpEssence.shop_price;
break;
case DATA_TYPE.DT_TRANSMITSCROLL_ESSENCE:
var transmitscrollEssence = (TRANSMITSCROLL_ESSENCE)itemData;
itemName = ByteToStringUtils.UshortArrayToUnicodeString(transmitscrollEssence.name);
shopPrice = transmitscrollEssence.shop_price;
break;
case DATA_TYPE.DT_DYE_TICKET_ESSENCE:
var dyeTicketEssence = (DYE_TICKET_ESSENCE)itemData;
itemName = ByteToStringUtils.UshortArrayToUnicodeString(dyeTicketEssence.name);
shopPrice = dyeTicketEssence.shop_price;
break;
case DATA_TYPE.DT_GOBLIN_ESSENCE:
var goblinEssence = (GOBLIN_ESSENCE)itemData;
itemName = goblinEssence.Name;
shopPrice = goblinEssence.shop_price;
break;
case DATA_TYPE.DT_GOBLIN_EQUIP_ESSENCE:
var goblinEquipEssence = (GOBLIN_EQUIP_ESSENCE)itemData;
itemName = ByteToStringUtils.UshortArrayToUnicodeString(goblinEquipEssence.name);
shopPrice = goblinEquipEssence.shop_price;
break;
case DATA_TYPE.DT_GOBLIN_EXPPILL_ESSENCE:
var goblinExppillEssence = (GOBLIN_EXPPILL_ESSENCE)itemData;
itemName = ByteToStringUtils.UshortArrayToUnicodeString(goblinExppillEssence.name);
shopPrice = goblinExppillEssence.shop_price;
break;
case DATA_TYPE.DT_SELL_CERTIFICATE_ESSENCE:
var sellCertificateEssence = (SELL_CERTIFICATE_ESSENCE)itemData;
itemName = ByteToStringUtils.UshortArrayToUnicodeString(sellCertificateEssence.name);
shopPrice = sellCertificateEssence.shop_price;
break;
case DATA_TYPE.DT_TARGET_ITEM_ESSENCE:
var targetItemEssence = (TARGET_ITEM_ESSENCE)itemData;
itemName = ByteToStringUtils.UshortArrayToUnicodeString(targetItemEssence.name);
shopPrice = targetItemEssence.shop_price;
break;
case DATA_TYPE.DT_LOOK_INFO_ESSENCE:
var lookInfoEssence = (LOOK_INFO_ESSENCE)itemData;
itemName = ByteToStringUtils.UshortArrayToUnicodeString(lookInfoEssence.name);
shopPrice = lookInfoEssence.shop_price;
break;
case DATA_TYPE.DT_INC_SKILL_ABILITY_ESSENCE:
var incSkillAbilityEssence = (INC_SKILL_ABILITY_ESSENCE)itemData;
itemName = ByteToStringUtils.UshortArrayToUnicodeString(incSkillAbilityEssence.name);
shopPrice = incSkillAbilityEssence.shop_price;
break;
case DATA_TYPE.DT_WEDDING_BOOKCARD_ESSENCE:
var weddingBookcardEssence = (WEDDING_BOOKCARD_ESSENCE)itemData;
itemName = ByteToStringUtils.UshortArrayToUnicodeString(weddingBookcardEssence.name);
shopPrice = weddingBookcardEssence.shop_price;
break;
case DATA_TYPE.DT_WEDDING_INVITECARD_ESSENCE:
var weddingInvitecardEssence = (WEDDING_INVITECARD_ESSENCE)itemData;
itemName = ByteToStringUtils.UshortArrayToUnicodeString(weddingInvitecardEssence.name);
shopPrice = weddingInvitecardEssence.shop_price;
break;
case DATA_TYPE.DT_SHARPENER_ESSENCE:
var sharpenerEssence = (SHARPENER_ESSENCE)itemData;
itemName = ByteToStringUtils.UshortArrayToUnicodeString(sharpenerEssence.name);
shopPrice = sharpenerEssence.shop_price;
break;
case DATA_TYPE.DT_FACTION_MATERIAL_ESSENCE:
var factionMaterialEssence = (FACTION_MATERIAL_ESSENCE)itemData;
itemName = ByteToStringUtils.UshortArrayToUnicodeString(factionMaterialEssence.name);
shopPrice = factionMaterialEssence.shop_price;
break;
case DATA_TYPE.DT_CONGREGATE_ESSENCE:
var congregateEssence = (CONGREGATE_ESSENCE)itemData;
itemName = ByteToStringUtils.UshortArrayToUnicodeString(congregateEssence.name);
shopPrice = congregateEssence.shop_price;
break;
case DATA_TYPE.DT_FORCE_TOKEN_ESSENCE:
var forceTokenEssence = (FORCE_TOKEN_ESSENCE)itemData;
itemName = ByteToStringUtils.UshortArrayToUnicodeString(forceTokenEssence.name);
shopPrice = forceTokenEssence.shop_price;
break;
case DATA_TYPE.DT_DYNSKILLEQUIP_ESSENCE:
var dynskillequipEssence = (DYNSKILLEQUIP_ESSENCE)itemData;
itemName = ByteToStringUtils.UshortArrayToUnicodeString(dynskillequipEssence.name);
shopPrice = dynskillequipEssence.shop_price;
break;
case DATA_TYPE.DT_MONEY_CONVERTIBLE_ESSENCE:
var moneyConvertibleEssence = (MONEY_CONVERTIBLE_ESSENCE)itemData;
itemName = ByteToStringUtils.UshortArrayToUnicodeString(moneyConvertibleEssence.name);
shopPrice = moneyConvertibleEssence.shop_price;
break;
case DATA_TYPE.DT_MONSTER_SPIRIT_ESSENCE:
var monsterSpiritEssence = (MONSTER_SPIRIT_ESSENCE)itemData;
itemName = ByteToStringUtils.UshortArrayToUnicodeString(monsterSpiritEssence.name);
shopPrice = monsterSpiritEssence.shop_price;
break;
case DATA_TYPE.DT_POKER_DICE_ESSENCE:
var pokerDiceEssence = (POKER_DICE_ESSENCE)itemData;
itemName = ByteToStringUtils.UshortArrayToUnicodeString(pokerDiceEssence.name);
shopPrice = pokerDiceEssence.shop_price;
break;
case DATA_TYPE.DT_POKER_ESSENCE:
var pokerEssence = (POKER_ESSENCE)itemData;
itemName = ByteToStringUtils.UshortArrayToUnicodeString(pokerEssence.name);
shopPrice = pokerEssence.shop_price;
break;
case DATA_TYPE.DT_SHOP_TOKEN_ESSENCE:
var shopTokenEssence = (SHOP_TOKEN_ESSENCE)itemData;
itemName = ByteToStringUtils.UshortArrayToUnicodeString(shopTokenEssence.name);
shopPrice = shopTokenEssence.shop_price;
break;
case DATA_TYPE.DT_UNIVERSAL_TOKEN_ESSENCE:
var universalTokenEssence = (UNIVERSAL_TOKEN_ESSENCE)itemData;
itemName = ByteToStringUtils.UshortArrayToUnicodeString(universalTokenEssence.name);
shopPrice = universalTokenEssence.shop_price;
break;
default:
itemName = $"Item_{good.id}";
itemName = $"Item_{good.id}_{itemDataType}";
break;
}
@@ -486,7 +721,7 @@ public class NPCShopUIManager : AUIDialog
fPriceScale = (1.0f + pServer.GetTaxRate()) * pServer.GetPriceScale();
}
shopItem.name = itemName;
shopPrice = (int)(shopPrice * fPriceScale);
shopPrice = (int)Math.Round(shopPrice * fPriceScale, MidpointRounding.AwayFromZero);
if(shopPrice > 1000)
{
shopPrice = (shopPrice +99) /100 * 100;
@@ -512,7 +747,7 @@ public class NPCShopUIManager : AUIDialog
shopItem.buy[0].type = -1; // -1 = invalid
shopItem.buy[0].price = 0;
}
return shopItem;
}
@@ -625,6 +860,8 @@ public class NPCShopUIManager : AUIDialog
contentMidBuy.SetActive(true);
contentRight.SetActive(true);
contentMidSell.SetActive(false);
m_btn_tab_buy.image.color = colorActive;
m_btn_tab_sell.image.color = colorUnActive;
EC_Game.GetGameRun().GetUIManager().GetInGameUIMan().EndNPCService();
}
@@ -2,6 +2,7 @@ using BrewMonster.Assets.PerfectWorld.Scripts.UI.GamePlay;
using BrewMonster.UI;
using System;
using System.Collections.Generic;
using BrewMonster.Network;
using UnityEngine;
using UnityEngine.UI;
@@ -14,10 +15,50 @@ namespace BrewMonster
[SerializeField] private Transform psSkillContainer;
[SerializeField] private List<AUIImagePicture> psSkillSlotList;
[SerializeField] private List<AUIImagePicture> ptSkillSlotList;
[SerializeField] private SkillSetUpComboWidget _skillSetUpComboWidget;
private void Awake()
private AUIImagePicture _currentSelectSkill;
private SkillSlotWidget _currentSelectComboSlot;
public override void Awake()
{
base.Awake();
SetUp();
foreach (var skill in ptSkillSlotList)
{
if (skill is LearnedSkillUI skillUI)
{
skillUI.OnClickedSkill += OnClickedSkill;
}
}
}
public override void OnEnable()
{
UpdateView();
_skillSetUpComboWidget.ShowSetUpContent(false);
_skillSetUpComboWidget.OnClickedSkillSlot += OnClickedSkillSlot;
_skillSetUpComboWidget.OnClickedAssignSkill += OnClickedAssignSkill;
_skillSetUpComboWidget.OnClickedConfirmCombo += OnClickedConfirmCombo;
}
public override void OnDisable()
{
base.OnDisable();
_skillSetUpComboWidget.OnClickedSkillSlot -= OnClickedSkillSlot;
_skillSetUpComboWidget.OnClickedAssignSkill -= OnClickedAssignSkill;
_skillSetUpComboWidget.OnClickedConfirmCombo -= OnClickedConfirmCombo;
}
private void OnDestroy()
{
foreach (var skill in ptSkillSlotList)
{
if (skill is LearnedSkillUI skillUI)
{
skillUI.OnClickedSkill -= OnClickedSkill;
}
}
}
private void SetUp()
@@ -36,21 +77,19 @@ namespace BrewMonster
}
}
}
public override void OnEnable()
private void OnClickedSkill(AUIImagePicture imagePicture)
{
UpdateView();
_currentSelectSkill = imagePicture;
}
private void UpdateView()
{
m_skills.Clear();
CECHostPlayer pHost = GetHostPlayer();
int i = 0;
int activeImgPicIndex = 1;
int passiveImgPicIndex = 1;
int positiveSkillNum = pHost.GetPositiveSkillNum();
int equipSkillNum = pHost.GetEquipSkillNum();
int passiveSkillNum = pHost.GetPassiveSkillNum();
for (i = 0; i < positiveSkillNum; i++)
{
@@ -81,7 +120,43 @@ namespace BrewMonster
return;
}
BMLogger.Log($"CDlgSkillSubPool::SetImage SkillID={cECSkill.GetSkillID()} SkillName={cECSkill.GetName()} IconFile={cECSkill.GetIconFile()}");
GetGameUIMan().SetCover(learnedSkillUI, cECSkill.GetIconFile(), EC_GAMEUI_ICONS.ICONS_SKILL);
var slot = GetGameUIMan().SetCover(learnedSkillUI, cECSkill.GetIconFile(), EC_GAMEUI_ICONS.ICONS_SKILL);
if (slot is AUIImagePicture picture)
{
picture.SetSkillId(cECSkill.GetSkillID());
}
}
private void OnClickedSkillSlot(SkillSlotWidget skillSlot)
{
_currentSelectComboSlot = skillSlot;
// _skillSetUpComboWidget.ShowSetUpContent(true);
// allow show edit to create
if (_skillSetUpComboWidget.IsEmptyComboSlot(skillSlot.GetSlotIndex))
{
_skillSetUpComboWidget.ShowSetUpContent(true);
}
}
private void OnClickedConfirmCombo()
{
if (_currentSelectComboSlot != null &&
_skillSetUpComboWidget.CurrentComboSetting.comboSkill[_currentSelectComboSlot.GetSlotIndex].idSkill == null)
{
BMLogger.LogError("Null to set combo skill");
return;
}
EC_Game.GetConfigs().SetVideoSettings(_skillSetUpComboWidget.CurrentComboSetting);
CECUIManager.Instance.m_pDlgSkillSubOther.UpdateComboSkill();
EC_Game.GetGameRun().SaveConfigsToServer();
}
//assign skill from list in the left ui
private void OnClickedAssignSkill(SkillSlotWidget slotWidget)
{
if(_currentSelectSkill != null && _currentSelectSkill is LearnedSkillUI skillUI)
{
_skillSetUpComboWidget.SetSkillToCurrentCombo(slotWidget.GetSlotIndex, (short)skillUI.SkillId);
}
}
}
}
@@ -366,7 +366,11 @@ namespace BrewMonster
pCell.gameObject.SetActive(true);
//BMLogger.Log("HoangDev: QuickBar Set Skill Icon: " + (uint)pSkill.GetSkillID() + " : " + ElementSkill.GetIcon((uint)pSkill.GetSkillID()));
var nameskill = ElementSkill.GetIcon((uint)pSkill.GetSkillID());
GetGameUIMan().SetCover(pCell, nameskill, EC_GAMEUI_ICONS.ICONS_SKILL);
var slot = GetGameUIMan().SetCover(pCell, nameskill, EC_GAMEUI_ICONS.ICONS_SKILL);
if (slot is AUIImagePicture picture)
{
picture.SetSkillId(pSkill.GetSkillID());
}
}
/* af_GetFileTitle(pSC->GetIconFile(), strFile);
strFile.MakeLower();
@@ -438,7 +442,7 @@ namespace BrewMonster
{
return m_nCurPanel2;
}
public void OnAssignSkillSelectionChanged(AssignSkillSelectionChangedEvent obj)
{
if (obj.selected)
@@ -484,7 +488,11 @@ namespace BrewMonster
if (host == null) return;
var processSkill = host.GetPositiveSkillByID(e.skillID);
if (processSkill == null) return;
EC_Game.GetGameRun().GetUIManager().GetInGameUIMan().SetCover(slot, processSkill.GetIconFile(), EC_GAMEUI_ICONS.ICONS_SKILL);
var slotSkill = EC_Game.GetGameRun().GetUIManager().GetInGameUIMan().SetCover(slot, processSkill.GetIconFile(), EC_GAMEUI_ICONS.ICONS_SKILL);
if (slotSkill is AUIImagePicture picture)
{
picture.SetSkillId(e.skillID);
}
slot.UncheckAfterAssign();
return;
}
@@ -4,7 +4,7 @@ using System;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
namespace BrewMonster
{
public class DlgAssignSub : AUIDialog
@@ -104,7 +104,7 @@ namespace BrewMonster
return;
}
}
private void UpdateView()
{
m_skills.Clear();
@@ -149,7 +149,11 @@ namespace BrewMonster
BMLogger.LogError("CDlgSkillSubPool::SetImage cECSkill is null");
return;
}
GetGameUIMan().SetCover(learnedSkillUI, cECSkill.GetIconFile(), EC_GAMEUI_ICONS.ICONS_SKILL);
var slot = GetGameUIMan().SetCover(learnedSkillUI, cECSkill.GetIconFile(), EC_GAMEUI_ICONS.ICONS_SKILL);
if (slot is AUIImagePicture picture)
{
picture.SetSkillId(cECSkill.GetSkillID());
}
}
}
}
@@ -0,0 +1,279 @@
using System;
using System.Collections.Generic;
using BrewMonster.Assets.PerfectWorld.Scripts.UI.GamePlay;
using BrewMonster.Network;
using BrewMonster.Scripts.Skills;
using BrewMonster.UI;
using UnityEngine;
using UnityEngine.UI;
namespace BrewMonster
{
public class SkillSetUpComboWidget : MonoBehaviour
{
public const int NormalAttackId = -1;
public const int LoopAttackId = -2;
public const string DefaultComboIcon = "爱你";
[SerializeField] private List<SkillSlotWidget> _combosList;
[SerializeField] private Button _btnEditCombo;
[SerializeField] private Button _btnDeleteCombo;
[SerializeField] private SkillSlotWidget _btnNormalAttack;
[SerializeField] private SkillSlotWidget _btnLoopAttack;
[Header("SetUpCombo")]
[SerializeField] private GameObject _contentSetUpCombo;
[SerializeField] private Image _imgCurrentCombo;
[SerializeField] private List<SkillSlotWidget> _detailCombosList;
[SerializeField] private Button _btnConfirmCombo;
private SkillSlotWidget _currentComboSlotWidget;
private SkillSlotWidget _currentSkillToAssign;
private EC_VIDEO_SETTING _currentComboSetting;
private EC_VIDEO_SETTING Setting => EC_Game.GetConfigs().GetVideoSettings();
public EC_VIDEO_SETTING CurrentComboSetting => _currentComboSetting;
public event Action<SkillSlotWidget> OnClickedSkillSlot;
public event Action OnClickedEditCombo;
public event Action<SkillSlotWidget> OnClickedAssignSkill; // click to asign skill to combo
public event Action OnClickedConfirmCombo;
public CECGameUIMan GetGameUIMan()
{
return EC_Game.GetGameRun().GetUIManager().GetInGameUIMan();
}
private void OnEnable()
{
_currentSkillToAssign = null;
ShowCurrentCombos();
for (var index = 0; index < _combosList.Count; index++)
{
var slotWidget = _combosList[index];
slotWidget.SetSlotIndex(index);
slotWidget.OnClickedSkillSlot += OnClickedSkillSlotBtn;
slotWidget.SetFocusFrame(false);
}
for (var index = 0; index < _detailCombosList.Count; index++)
{
var slotWidget = _detailCombosList[index];
slotWidget.SetSlotIndex(index);
slotWidget.OnClickedSkillSlot += OnClickedAssignSkillBtn;
}
_btnEditCombo.onClick.AddListener(OnClickedEditComboBtn);
_btnConfirmCombo.onClick.AddListener(OnClickedConfirmComboBtn);
_btnDeleteCombo.onClick.AddListener(OnClickedDeleteComboBtn);
_btnEditCombo.interactable = false;
_btnDeleteCombo.interactable = false;
GetGameUIMan().SetCover(_btnNormalAttack ,$"{Mathf.Abs(NormalAttackId)}", EC_GAMEUI_ICONS.ICONS_SKILLGRP);
GetGameUIMan().SetCover(_btnLoopAttack ,$"{Mathf.Abs(LoopAttackId)}", EC_GAMEUI_ICONS.ICONS_SKILLGRP);
_btnNormalAttack.OnClickedSkillSlot += OnSelectedSkillToAsign;
_btnLoopAttack.OnClickedSkillSlot += OnSelectedSkillToAsign;
_btnNormalAttack.SetSkillId(NormalAttackId);
_btnLoopAttack.SetSkillId(LoopAttackId);
}
private void OnDisable()
{
foreach (var slotWidget in _combosList)
{
slotWidget.OnClickedSkillSlot -= OnClickedSkillSlotBtn;
}
foreach (var slotWidget in _detailCombosList)
{
slotWidget.OnClickedSkillSlot -= OnClickedAssignSkillBtn;
}
_btnEditCombo.onClick.RemoveListener(OnClickedEditComboBtn);
_btnConfirmCombo.onClick.RemoveListener(OnClickedConfirmComboBtn);
_btnDeleteCombo.onClick.RemoveListener(OnClickedDeleteComboBtn);
if (_currentComboSlotWidget != null)
{
_currentComboSlotWidget.SetFocusFrame(false);
}
_currentComboSlotWidget = null;
if (_currentSkillToAssign != null)
{
_currentSkillToAssign.SetFocusFrame(false);
}
_currentSkillToAssign = null;
_btnNormalAttack.OnClickedSkillSlot -= OnSelectedSkillToAsign;
_btnLoopAttack.OnClickedSkillSlot -= OnSelectedSkillToAsign;
}
private void ShowCurrentCombos()
{
// setting.comboSkill[GetData() - 1].nIcon = (byte)m_nIcon;
if (Setting.comboSkill == null || _combosList.Count != Setting.comboSkill.Length)
{
BMLogger.LogError("Combo list size mismatch");
return;
}
for (int i = 0; i < Setting.comboSkill.Length; i++)
{
// m_IconMap[(byte)iCONS_TYPE].Item2.FirstOrDefault(s => s.name == nameImage)
if (Setting.comboSkill[i].idSkill.Length > 0)
{
if (!IsAnEmptyCombo(Setting.comboSkill[i].idSkill))
{
_combosList[i].SetImage(GetGameUIMan().GetIcon(DefaultComboIcon, EC_GAMEUI_ICONS.ICONS_SKILLGRP));
}
else
{
_combosList[i].Clear();
}
}
}
}
private void ShowComboInDetail(short[] idSkills)
{
_imgCurrentCombo.sprite =GetGameUIMan().GetIcon(DefaultComboIcon, EC_GAMEUI_ICONS.ICONS_SKILLGRP);
for (int i = 0; i < idSkills.Length; i++)
{
if (idSkills[i] == 0)
{
_detailCombosList[i].Clear();
continue;
}
var nameskill = ElementSkill.GetIcon((uint)idSkills[i]);
AUIImagePictureBase slot;
if (idSkills[i] == NormalAttackId || idSkills[i] == LoopAttackId)
{
slot = GetGameUIMan().SetCover(_detailCombosList[i] ,$"{Mathf.Abs(idSkills[i])}", EC_GAMEUI_ICONS.ICONS_SKILLGRP);
}
else
{
slot = GetGameUIMan().SetCover(_detailCombosList[i] ,nameskill, EC_GAMEUI_ICONS.ICONS_SKILL);
}
if (slot is AUIImagePicture picture)
{
picture.SetSkillId(idSkills[i]);
}
}
}
public bool IsEmptyComboSlot(int comboIndex)
{
if (Setting.comboSkill==null || comboIndex >= Setting.comboSkill.Length)
{
BMLogger.LogError("Combo list size mismatch");
return false;
}
return IsAnEmptyCombo(Setting.comboSkill[comboIndex].idSkill);
}
private bool IsAnEmptyCombo(short[] idSkills)
{
foreach (var id in idSkills)
{
if (id !=0)
{
return false;
}
}
return true;
}
private void OnClickedSkillSlotBtn(SkillSlotWidget slotWidget)
{
OnClickedSkillSlot?.Invoke(slotWidget);
if (_currentComboSlotWidget != null && _currentComboSlotWidget != slotWidget)
{
_currentComboSlotWidget.SetFocusFrame(false);
}
_currentComboSlotWidget = slotWidget;
_currentComboSlotWidget.SetFocusFrame(true);
var isEmptySlot = IsEmptyComboSlot(_currentComboSlotWidget.GetSlotIndex);
ShowSetUpContent(isEmptySlot);
_btnDeleteCombo.interactable = !isEmptySlot;
_btnEditCombo.interactable = !isEmptySlot;
if (IsEmptyComboSlot(slotWidget.GetSlotIndex))
{
ShowComboInDetail(Setting.comboSkill[_currentComboSlotWidget.GetSlotIndex].idSkill);
}
}
public void ShowSetUpContent(bool setActive)
{
_contentSetUpCombo.SetActive(setActive);
if (!setActive)
{
if (_currentSkillToAssign != null)
{
_currentSkillToAssign.SetFocusFrame(false);
}
_currentSkillToAssign = null;
}
}
private void OnClickedEditComboBtn()
{
OnClickedEditCombo?.Invoke();
if(_currentComboSlotWidget == null || Setting.comboSkill == null) return;
ShowSetUpContent(true);
ShowComboInDetail(Setting.comboSkill[_currentComboSlotWidget.GetSlotIndex].idSkill);
}
private void OnClickedDeleteComboBtn()
{
if (_currentComboSlotWidget == null)
{
BMLogger.LogError("_currentComboSlotWidget null");
return;
}
EC_VIDEO_SETTING setting = EC_Game.GetConfigs().GetVideoSettings();
setting.comboSkill[_currentComboSlotWidget.GetSlotIndex].nIcon = 0;
for (var index = 0;
index < setting.comboSkill[_currentComboSlotWidget.GetSlotIndex].idSkill.Length;
index++)
{
setting.comboSkill[_currentComboSlotWidget.GetSlotIndex].idSkill[index] = 0;
}
_currentComboSetting = setting;
EC_Game.GetConfigs().SetVideoSettings(_currentComboSetting);
//Show(false);
CECUIManager.Instance.m_pDlgSkillSubOther.UpdateComboSkill();
EC_Game.GetGameRun().SaveConfigsToServer();
ShowSetUpContent(false);
ShowCurrentCombos();
}
private void OnClickedConfirmComboBtn()
{
OnClickedConfirmCombo?.Invoke();
}
private void OnClickedAssignSkillBtn(SkillSlotWidget slotWidget)
{
OnClickedAssignSkill?.Invoke(slotWidget);
if(_currentSkillToAssign!=null)
{
SetSkillToCurrentCombo(slotWidget.GetSlotIndex, (short)_currentSkillToAssign.SkillId);
EC_Game.GetConfigs().SetVideoSettings(_currentComboSetting);
//Show(false);
CECUIManager.Instance.m_pDlgSkillSubOther.UpdateComboSkill();
EC_Game.GetGameRun().SaveConfigsToServer();
}
}
public bool SetSkillToCurrentCombo(int slotIndex, short skillId)
{
if(_currentComboSlotWidget == null) return false;
EC_VIDEO_SETTING setting = EC_Game.GetConfigs().GetVideoSettings();
setting.comboSkill[_currentComboSlotWidget.GetSlotIndex].nIcon = 1;
setting.comboSkill[_currentComboSlotWidget.GetSlotIndex].idSkill[slotIndex] = skillId;
ShowComboInDetail(setting.comboSkill[_currentComboSlotWidget.GetSlotIndex].idSkill);
_currentComboSetting = setting;
return true;
}
private void OnSelectedSkillToAsign(SkillSlotWidget skillSlotWidget)
{
if (_currentSkillToAssign != null && _currentSkillToAssign != skillSlotWidget)
{
_currentSkillToAssign.SetFocusFrame(false);
}
_currentSkillToAssign = skillSlotWidget;
_currentSkillToAssign.SetFocusFrame(true);
}
}
}
@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 6f7a35c62f222df4480df3450489e5b7
+8
View File
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 64577227aa29ea747867b8d05a9d87bd
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 75446e4d13f218b4898c349c3c753cad
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
+2 -2
View File
@@ -12266,7 +12266,7 @@ MonoBehaviour:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastTarget: 0
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
@@ -16757,7 +16757,7 @@ MonoBehaviour:
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_text: 36
m_text: 0
m_isRightToLeft: 0
m_fontAsset: {fileID: 11400000, guid: 369c2e14814cc9a4b8e3ad4e37769134, type: 2}
m_sharedMaterial: {fileID: 9092487103257209053, guid: 369c2e14814cc9a4b8e3ad4e37769134, type: 2}
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,296 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &2318569237748334256
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 7667296614254387831}
- component: {fileID: 137337044162810722}
- component: {fileID: 3769169980019734340}
m_Layer: 5
m_Name: FocusFrame
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 0
--- !u!224 &7667296614254387831
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2318569237748334256}
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: 7730964945270842893}
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.0000017881393, y: 0.0000009536743}
m_SizeDelta: {x: 90.975, y: 90.975}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &137337044162810722
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2318569237748334256}
m_CullTransparentMesh: 1
--- !u!114 &3769169980019734340
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2318569237748334256}
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: cc0b56a3332764c4189bd141023055fa, 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!1 &6859972278238108684
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 7730964945270842893}
- component: {fileID: 1335340669543050701}
- component: {fileID: 2767606574811216613}
- component: {fileID: 3205796970065559152}
- component: {fileID: 8708871892276122358}
m_Layer: 5
m_Name: SkillSlot
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &7730964945270842893
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6859972278238108684}
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: 4595083161655252598}
- {fileID: 7667296614254387831}
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &1335340669543050701
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6859972278238108684}
m_CullTransparentMesh: 1
--- !u!114 &2767606574811216613
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6859972278238108684}
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: 450cd00c015f91145b3302f1097984dd, 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!114 &3205796970065559152
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6859972278238108684}
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: 2767606574811216613}
m_OnClick:
m_PersistentCalls:
m_Calls: []
--- !u!114 &8708871892276122358
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6859972278238108684}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 5735efc21e623924587de92aa6a5d969, type: 3}
m_Name:
m_EditorClassIdentifier:
slotIndex: -1
disPlayImage: {fileID: 187270081802886601}
_skillSlotType: 1
_backgroundImage: {fileID: 2767606574811216613}
_button: {fileID: 3205796970065559152}
_slotBackgrounds:
- {fileID: 21300000, guid: 0e66f0ff2fd622d4594eb7f4c68437e4, type: 3}
- {fileID: 21300000, guid: 450cd00c015f91145b3302f1097984dd, type: 3}
_focusFrame: {fileID: 2318569237748334256}
--- !u!1 &7245690340817629374
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 4595083161655252598}
- component: {fileID: 3869087274638730759}
- component: {fileID: 187270081802886601}
m_Layer: 5
m_Name: ImageSkill
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 0
--- !u!224 &4595083161655252598
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7245690340817629374}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 0.9, y: 0.9, z: 0.9}
m_ConstrainProportionsScale: 1
m_Children: []
m_Father: {fileID: 7730964945270842893}
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!222 &3869087274638730759
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7245690340817629374}
m_CullTransparentMesh: 1
--- !u!114 &187270081802886601
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7245690340817629374}
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: 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
@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 8e633e7f512ae4746beccd857a4543d3
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
+8
View File
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: fae6ba1fe8169124daa635f32c729f88
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
Binary file not shown.

After

Width:  |  Height:  |  Size: 74 KiB

File diff suppressed because it is too large Load Diff
Binary file not shown.
@@ -0,0 +1,21 @@
fileFormatVersion: 2
guid: 79c89e0db9858bd4298bfa3be8b0d68a
IHVImageFormatImporter:
externalObjects: {}
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 0
wrapV: 0
wrapW: 0
isReadable: 0
sRGBTexture: 1
streamingMipmaps: 0
streamingMipmapsPriority: 0
ignoreMipmapLimit: 0
mipmapLimitGroupName:
userData:
assetBundleName:
assetBundleVariant:
+48
View File
@@ -0,0 +1,48 @@
32
32
6
8
1.dds
2.dds
爱你.dds
八卦石.dds
白萼梅.dds
白沙毒鳞蛇牙.dds
白雪莲.dds
百辟腰饰.dds
碧玉珠.dds
冰雪护符.dds
彩鹫之羽.dds
蚕丝.dds
地之圣印.dds
顶针.dds
恶魔图腾.dds
凤凰羽.dds
鬼阴火枪.dds
海盗喽罗的心脏.dds
海蓝之石.dds
合欢坠子.dds
虎魄.dds
虎珠唾液.dds
护甲符.dds
化解灵符.dds
幻胧披风.dds
幻舞隐月剑.dds
黄沉之石.dds
火岩项链.dds
火岩腰佩.dds
金线芍.dds
九鬼裂风.dds
九鬼破天.dds
狂刃符.dds
鲲鹏战铠.dds
炼狱之火.dds
裂天之斧.dds
六合石.dds
颅骨.dds
魔煞腰佩.dds
木制头颅.dds
情丝节鞭.dds
韬光披风.dds
剔透的碧空项链.dds
剔透的忘忧坠子.dds
@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 660881ad7a538af4a85af5d158cbcba6
TextScriptImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant: