Merge branch 'develop' into feature/embed-stone

This commit is contained in:
NguyenVanDat
2026-01-29 09:35:30 +07:00
41 changed files with 18270 additions and 8 deletions
+46 -1
View File
@@ -611,7 +611,7 @@ RectTransform:
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: 2.3, y: -33.9}
m_AnchoredPosition: {x: 2.300003, y: -33.9}
m_SizeDelta: {x: 199, y: 11}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &4576936668814888857
@@ -799,6 +799,7 @@ GameObject:
- component: {fileID: 6806681442789174374}
- component: {fileID: 3549955056024652669}
- component: {fileID: 5615975604488516553}
- component: {fileID: 4820812356310843501}
m_Layer: 5
m_Name: HUD
m_TagString: Untagged
@@ -868,6 +869,50 @@ MonoBehaviour:
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!114 &4820812356310843501
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4823752405346273106}
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: 5615975604488516553}
m_OnClick:
m_PersistentCalls:
m_Calls: []
--- !u!1 &4933898273451627870
GameObject:
m_ObjectHideFlags: 0
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 6620f766cee7c8f4cb00dd457ac77675
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -10422,6 +10422,7 @@ MonoBehaviour:
healthImage: {fileID: 438005734506374002}
manaImage: {fileID: 4333904855430892836}
expImage: {fileID: 6435048883359665301}
m_btnOpenCharacter: {fileID: 0}
neededExp: 0
--- !u!114 &4333904855430892836 stripped
MonoBehaviour:
@@ -33,3 +33,5 @@ MonoBehaviour:
prefab: {fileID: 5910006447059157136, guid: 22d3972b131ebdb4288f9cbdf996d691, type: 3}
- id: Win_Enchase
prefab: {fileID: 5636724581774400035, guid: de6ac6f2630425044a55299c703670f1, type: 3}
- id: Win_Character
prefab: {fileID: 6310702841431484757, guid: 6620f766cee7c8f4cb00dd457ac77675, type: 3}
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: b73d3bcf7af48614d83352ff38677562
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 MiB

@@ -0,0 +1,130 @@
fileFormatVersion: 2
guid: 17e402c0c7862cf4b9f5e46fb6959d1d
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 13
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 0
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 0
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 4
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Android
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
customData:
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
spriteCustomMetadata:
entries: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:
Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

@@ -0,0 +1,130 @@
fileFormatVersion: 2
guid: 644d603639e0f694fb175a01c785befb
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 13
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 0
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 0
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 4
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Android
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
customData:
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
spriteCustomMetadata:
entries: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:
Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

@@ -0,0 +1,130 @@
fileFormatVersion: 2
guid: 28f5c415e1fb67c468a8e9ab189afc64
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 13
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 0
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 0
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 4
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Android
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
customData:
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
spriteCustomMetadata:
entries: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:
Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

@@ -0,0 +1,130 @@
fileFormatVersion: 2
guid: 1d9cac8a967cec041833a94bf8664511
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 13
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 0
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 0
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 4
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Android
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
customData:
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
spriteCustomMetadata:
entries: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:
Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

@@ -0,0 +1,130 @@
fileFormatVersion: 2
guid: f4f93025e2fb2e444a408fbb4ff66164
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 13
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 0
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 0
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 4
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Android
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
customData:
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
spriteCustomMetadata:
entries: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:
Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 KiB

@@ -0,0 +1,130 @@
fileFormatVersion: 2
guid: cfea9e76bd5ae49418c53d06217ce344
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 13
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 0
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 0
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 4
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Android
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
customData:
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
spriteCustomMetadata:
entries: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:
Binary file not shown.

After

Width:  |  Height:  |  Size: 5.9 KiB

@@ -0,0 +1,130 @@
fileFormatVersion: 2
guid: 2903ec456fb24dc4087d314650226d46
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 13
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 0
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 0
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 4
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Android
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
customData:
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
spriteCustomMetadata:
entries: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:
Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

@@ -0,0 +1,130 @@
fileFormatVersion: 2
guid: 92da9939d75a3c247a86c43363fbacd8
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 13
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 0
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 0
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 4
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Android
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
customData:
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
spriteCustomMetadata:
entries: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:
Binary file not shown.

After

Width:  |  Height:  |  Size: 339 B

@@ -0,0 +1,153 @@
fileFormatVersion: 2
guid: c216814d0c4f49c4b824cd83ad395719
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 13
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 0
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 0
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 2
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 4
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Android
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites:
- serializedVersion: 2
name: k2_0
rect:
serializedVersion: 2
x: 0
y: 0
width: 32
height: 32
alignment: 0
pivot: {x: 0, y: 0}
border: {x: 6, y: 6, z: 6, w: 6}
customData:
outline: []
physicsShape: []
tessellationDetail: 0
bones: []
spriteID: fa671714873a84942a957d2da9aee664
internalID: -237910717
vertices: []
indices:
edges: []
weights: []
outline: []
customData:
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
spriteCustomMetadata:
entries: []
nameFileIdTable:
k2_0: -237910717
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:
Binary file not shown.

After

Width:  |  Height:  |  Size: 314 B

@@ -0,0 +1,153 @@
fileFormatVersion: 2
guid: 068aff4b7af527745aca099de55292ef
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 13
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 0
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 0
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 2
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 4
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Android
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites:
- serializedVersion: 2
name: k3_0
rect:
serializedVersion: 2
x: 0
y: 0
width: 32
height: 32
alignment: 0
pivot: {x: 0, y: 0}
border: {x: 6, y: 6, z: 6, w: 6}
customData:
outline: []
physicsShape: []
tessellationDetail: 0
bones: []
spriteID: 55e36f932250f9d40a9900037ca33666
internalID: -1880016052
vertices: []
indices:
edges: []
weights: []
outline: []
customData:
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
spriteCustomMetadata:
entries: []
nameFileIdTable:
k3_0: -1880016052
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:
Binary file not shown.

After

Width:  |  Height:  |  Size: 582 KiB

@@ -0,0 +1,130 @@
fileFormatVersion: 2
guid: 783461a4a720d9f4cb4636827558ad8d
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 13
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 0
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 0
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 4
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Android
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
customData:
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
spriteCustomMetadata:
entries: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:
Binary file not shown.

After

Width:  |  Height:  |  Size: 8.0 KiB

@@ -0,0 +1,130 @@
fileFormatVersion: 2
guid: d50300f970462044ea222f7345e543e5
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 13
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 0
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 0
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 4
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Android
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
customData:
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
spriteCustomMetadata:
entries: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:
Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

@@ -0,0 +1,130 @@
fileFormatVersion: 2
guid: cf3db40b81ee39b42ac9e352b2b72d91
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 13
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 0
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 0
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 4
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Android
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
customData:
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
spriteCustomMetadata:
entries: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:
@@ -1583,6 +1583,15 @@ namespace CSNetwork.S2CCommand
public byte byPackage;
public int bySlot;
}
[StructLayout(LayoutKind.Sequential, Pack = 1)]
public struct cmd_set_status_pt
{
public int vitality;
public int energy;
public int strength;
public int agility;
}
}
// Player and NPC state
@@ -917,5 +917,17 @@ namespace CSNetwork.C2SCommand
pCmd.bySlot = bySlot;
return SerializeCommand(CommandID.QUERY_MAFIA_PVP_INFO, pCmd);
}
public static Octets CreateSetStatusPtCmd(int vitality, int energy, int strength, int agility)
{
var pCmd = new cmd_set_status_pt
{
vitality = vitality,
energy = energy,
strength = strength,
agility = agility
};
return SerializeCommand(CommandID.SET_STATUS_POINT, pCmd);
}
}
}
@@ -1,4 +1,4 @@
using BrewMonster;
using BrewMonster;
using BrewMonster.Common;
using BrewMonster.Managers;
using BrewMonster.Network;
@@ -1764,5 +1764,12 @@ namespace CSNetwork
gamedatasend.Data = C2SCommandFactory.CreateGetItemInfoCmd(byPackage, bySlot);
SendProtocol(gamedatasend);
}
public void c2s_SendCmdSetStatusPts(int vitality, int energy, int strength, int agility)
{
gamedatasend gamedatasend = new gamedatasend();
gamedatasend.Data = C2SCommandFactory.CreateSetStatusPtCmd(vitality, energy, strength, agility);
SendProtocol(gamedatasend);
}
}
}
@@ -438,6 +438,12 @@ namespace BrewMonster.Network
Instance._gameSession.CmdCache.SendCmdExtProps();
}
/// <summary>Send C2S::SET_STATUS_POINT (attribute point allocation).</summary>
public static void c2s_CmdSetStatusPts(int vitality, int energy, int strength, int agility)
{
Instance._gameSession.c2s_SendCmdSetStatusPts(vitality, energy, strength, agility);
}
public static void c2s_SendCmdGivePresent(int roleid, int mail_id, int goods_id, int goods_index, int goods_slot)
{
Instance._gameSession.c2s_SendCmdGivePresent(roleid, mail_id, goods_id, goods_index, goods_slot);
@@ -26,11 +26,14 @@ namespace BrewMonster.UI
}
public bool SetName(string pszName)
{
m_szName = pszName;
if (m_pAUIManager == null)
return false; // Will be registered when SetAUIManager is called
if (m_pAUIManager.m_DlgName.ContainsKey(pszName))
return false;
//m_pAUIManager.m_DlgName.Remove(m_szName);
m_szName = pszName;
m_pAUIManager.m_DlgName[m_szName] = this;
return true;
@@ -94,6 +97,11 @@ namespace BrewMonster.UI
public void SetAUIManager(AUIManager pAUIManager)
{
m_pAUIManager = pAUIManager;
// Register dialog name if it was set before manager was assigned
if (m_pAUIManager != null && !string.IsNullOrEmpty(m_szName) && !m_pAUIManager.m_DlgName.ContainsKey(m_szName))
{
m_pAUIManager.m_DlgName[m_szName] = this;
}
}
public virtual void OnEnable()
@@ -129,5 +137,8 @@ namespace BrewMonster.UI
{
return false;
}
/// <summary>Override in dialogs that support attribute-point reset (e.g. DlgCharacter). No-op by default.</summary>
public virtual void ResetPoints() { }
}
}
@@ -0,0 +1,550 @@
// Port of C++ CDlgCharacter (DlgCharacter.cpp / DlgCharacter.h)
// Character information panel: stats, attributes, equipment bonuses, attribute point allocation.
using System;
using System.Collections.Generic;
using System.Text;
using BrewMonster.Network;
using BrewMonster.Scripts;
using BrewMonster.Scripts.Managers;
using PerfectWorld.Scripts.Managers;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.EventSystems;
using TMPro;
namespace BrewMonster.UI
{
public class DlgCharacter : AUIDialog
{
private const int INTERAL_LONG = 618;
private const int INTERAL_SHORT = 100;
#region UI References (same names as C++)
[Header("Basic Info")]
[SerializeField] private TextMeshProUGUI m_pTxt_CharName;
[SerializeField] private TextMeshProUGUI m_pTxt_CharLevel;
[SerializeField] private TextMeshProUGUI m_pTxt_Profession;
[SerializeField] private TextMeshProUGUI m_pTxt_Faction;
[SerializeField] private TextMeshProUGUI m_pTxt_Partner;
[SerializeField] private TextMeshProUGUI m_pTxt_ExpCurrent;
[SerializeField] private TextMeshProUGUI m_pTxt_ExpRequire;
[SerializeField] private TextMeshProUGUI m_pTxt_Distinction;
[SerializeField] private TextMeshProUGUI m_pTxt_xz;
[Header("Resources")]
[SerializeField] private TextMeshProUGUI m_pTxt_HP;
[SerializeField] private TextMeshProUGUI m_pTxt_MP;
[SerializeField] private TextMeshProUGUI m_pTxt_SP;
[SerializeField] private TextMeshProUGUI m_pTxt_Point;
[Header("Attributes")]
[SerializeField] private TextMeshProUGUI m_pTxt_Str;
[SerializeField] private TextMeshProUGUI m_pTxt_Agi;
[SerializeField] private TextMeshProUGUI m_pTxt_Vit;
[SerializeField] private TextMeshProUGUI m_pTxt_Int;
[Header("Combat Stats")]
[SerializeField] private TextMeshProUGUI m_pTxt_Attack;
[SerializeField] private TextMeshProUGUI m_pTxt_AtkSpeed;
[SerializeField] private TextMeshProUGUI m_pTxt_Definition;
[SerializeField] private TextMeshProUGUI m_pTxt_Evade;
[SerializeField] private TextMeshProUGUI m_pTxt_MoveSpeed;
[SerializeField] private TextMeshProUGUI m_pTxt_MgcAttack;
[SerializeField] private TextMeshProUGUI m_pTxt_Critical;
[SerializeField] private TextMeshProUGUI m_pTxt_PhyDefense;
[SerializeField] private TextMeshProUGUI m_pTxt_MgcDefense;
[SerializeField] private TextMeshProUGUI m_pTxt_AttackLevel;
[SerializeField] private TextMeshProUGUI m_pTxt_DefenseLevel;
[SerializeField] private TextMeshProUGUI m_pTxt_CrtPower;
[SerializeField] private TextMeshProUGUI m_pTxt_SoulPower;
[Header("Hints / Additional")]
[SerializeField] private TextMeshProUGUI m_pNew_PhyDefense;
[SerializeField] private TextMeshProUGUI m_pNew_MgcDefense;
[SerializeField] private TextMeshProUGUI m_pNew_AttackLevel;
[SerializeField] private TextMeshProUGUI m_pNew_DefenseLevel;
[SerializeField] private TextMeshProUGUI m_pTxt_Force;
[SerializeField] private TextMeshProUGUI m_pTxt_Title;
[SerializeField] private TextMeshProUGUI m_pTxt_Realm;
[SerializeField] private TextMeshProUGUI m_pTxt_Vigour;
[SerializeField] private TextMeshProUGUI m_pTxt_Stealth;
[SerializeField] private TextMeshProUGUI m_pTxt_Antistealth;
[SerializeField] private TextMeshProUGUI m_pTxt_Penetration;
[SerializeField] private TextMeshProUGUI m_pTxt_Resilience;
[SerializeField] private TextMeshProUGUI m_pNew_Vigour;
[SerializeField] private TextMeshProUGUI m_pNew_SoulPower;
[SerializeField] private TextMeshProUGUI m_pNew_Penetration;
[SerializeField] private TextMeshProUGUI m_pNew_Resilience;
[Header("Character Portrait")]
[SerializeField] private RawImage m_pImg_Char;
[Tooltip("Optional. Pivot transform to rotate (Y) when dragging on portrait. E.g. character model or camera rig.")]
[SerializeField] private Transform m_pPortraitPivot;
[Header("Realm Progress")]
[SerializeField] private Slider m_pPro_RealmExp;
[Header("Buttons")]
[SerializeField] private Button m_pBtn_AddStr;
[SerializeField] private Button m_pBtn_AddAgi;
[SerializeField] private Button m_pBtn_AddVit;
[SerializeField] private Button m_pBtn_AddInt;
[SerializeField] private Button m_pBtn_MinusStr;
[SerializeField] private Button m_pBtn_MinusAgi;
[SerializeField] private Button m_pBtn_MinusVit;
[SerializeField] private Button m_pBtn_MinusInt;
[SerializeField] private Button m_pBtn_Confirm;
[SerializeField] private Button m_pBtn_Reset;
[SerializeField] private Button m_pBtn_Cancel;
[SerializeField] private Button m_pBtn_Force;
[SerializeField] private Button m_pBtn_TitleList;
[SerializeField] private Button m_pBtn_Book;
#endregion
#region State (same as C++)
private int m_nStatusPtUsed;
private ROLEEXTPROP_BASE m_repBase;
private int m_nMouseLastX;
private int m_nMouseOffset;
private int m_nMouseOffsetThis;
private float m_dwStartTime;
private float m_dwLastTime;
private int m_iIntervalTime;
private Button m_pButtonPress;
private bool m_bAdd;
private static readonly Color ColorBonus = new Color(0f, 1f, 0f);
private static readonly Color ColorNormal = Color.white;
private string m_cachedHostName = "";
#endregion
public override void OnEnable()
{
base.OnEnable();
EventBus.Subscribe<CECHostPlayer.InfoHostPlayer>(OnInfoHostPlayer);
}
public override void OnDisable()
{
EventBus.Unsubscribe<CECHostPlayer.InfoHostPlayer>(OnInfoHostPlayer);
base.OnDisable();
}
private void OnInfoHostPlayer(CECHostPlayer.InfoHostPlayer e)
{
m_cachedHostName = e.NameHostPlayer ?? "";
}
public override void Awake()
{
base.Awake();
SetName("Win_Character");
m_nMouseOffset = 0;
m_nMouseOffsetThis = 0;
m_iIntervalTime = INTERAL_LONG;
m_dwLastTime = 0;
m_pButtonPress = null;
ResetPoints();
}
public override void Start()
{
base.Start();
WireButtons();
WirePortraitDrag();
}
private void WirePortraitDrag()
{
if (m_pImg_Char == null) return;
var go = m_pImg_Char.gameObject;
var receiver = go.GetComponent<DlgCharacterPortraitDragReceiver>();
if (receiver == null) receiver = go.AddComponent<DlgCharacterPortraitDragReceiver>();
receiver.Init(this);
}
/// <summary>Called by portrait drag receiver. deltaX in screen space; rotation clamped to [-70,70] degrees.</summary>
public void OnPortraitDragDelta(float deltaX)
{
m_nMouseOffset += (int)deltaX;
m_nMouseOffset = Mathf.Clamp(m_nMouseOffset, -70, 70);
m_nMouseOffsetThis = m_nMouseOffset;
if (m_pPortraitPivot != null)
m_pPortraitPivot.localRotation = Quaternion.Euler(0f, m_nMouseOffset, 0f);
}
public override void Show(bool value)
{
m_bShow = value;
base.Show(value);
}
private void WireButtons()
{
if (m_pBtn_AddStr != null) m_pBtn_AddStr.onClick.AddListener(() => OnAddAttr(m_pBtn_AddStr, 0)); // Str
if (m_pBtn_AddAgi != null) m_pBtn_AddAgi.onClick.AddListener(() => OnAddAttr(m_pBtn_AddAgi, 1));
if (m_pBtn_AddVit != null) m_pBtn_AddVit.onClick.AddListener(() => OnAddAttr(m_pBtn_AddVit, 2)); // Vit maps to 3 in C++ iFourPro
if (m_pBtn_AddInt != null) m_pBtn_AddInt.onClick.AddListener(() => OnAddAttr(m_pBtn_AddInt, 3)); // Int/Energy
if (m_pBtn_MinusStr != null) m_pBtn_MinusStr.onClick.AddListener(OnMinusStr);
if (m_pBtn_MinusAgi != null) m_pBtn_MinusAgi.onClick.AddListener(OnMinusAgi);
if (m_pBtn_MinusVit != null) m_pBtn_MinusVit.onClick.AddListener(OnMinusVit);
if (m_pBtn_MinusInt != null) m_pBtn_MinusInt.onClick.AddListener(OnMinusInt);
if (m_pBtn_Confirm != null) m_pBtn_Confirm.onClick.AddListener(OnCommand_confirm);
if (m_pBtn_Reset != null) m_pBtn_Reset.onClick.AddListener(OnCommand_reset);
if (m_pBtn_Cancel != null) m_pBtn_Cancel.onClick.AddListener(OnCommand_CANCEL);
if (m_pBtn_Force != null) m_pBtn_Force.onClick.AddListener(OnCommand_force);
if (m_pBtn_TitleList != null) m_pBtn_TitleList.onClick.AddListener(OnCommand_Title);
if (m_pBtn_Book != null) m_pBtn_Book.onClick.AddListener(OnCommand_ReincarnationBook);
}
public override bool Render()
{
RefreshHostDetails();
return base.Render();
}
public override void Update()
{
OnTick();
base.Update();
}
private void OnTick()
{
if (m_pButtonPress == null) return;
if (!m_pButtonPress.gameObject.activeInHierarchy) { m_pButtonPress = null; return; }
float now = Time.realtimeSinceStartup * 1000f;
if (now - m_dwLastTime >= m_iIntervalTime)
{
if (m_bAdd)
PropertyAdd(m_pButtonPress);
else
PropertyMinus(m_pButtonPress);
m_dwLastTime += m_iIntervalTime;
if (m_iIntervalTime == INTERAL_LONG)
m_iIntervalTime = INTERAL_SHORT;
}
}
private void OnAddAttr(Button btn, int kind)
{
PropertyAdd(btn);
// Don't start continuous loop - only increment once per click
m_pButtonPress = null;
}
private void OnMinusStr() { PropertyMinus(m_pBtn_MinusStr); }
private void OnMinusAgi() { PropertyMinus(m_pBtn_MinusAgi); }
private void OnMinusVit() { PropertyMinus(m_pBtn_MinusVit); }
private void OnMinusInt() { PropertyMinus(m_pBtn_MinusInt); }
public override void ResetPoints()
{
m_nStatusPtUsed = 0;
m_repBase = new ROLEEXTPROP_BASE(false);
m_repBase.vitality = 0;
m_repBase.energy = 0;
m_repBase.strength = 0;
m_repBase.agility = 0;
}
private void PropertyAdd(Button btn)
{
CECHostPlayer host = GetHostPlayer();
if (host == null) return;
ROLEBASICPROP rbp = host.GetBasicProps();
if (m_nStatusPtUsed >= rbp.iStatusPt) return;
if (btn == m_pBtn_AddStr) { m_repBase.strength++; m_nStatusPtUsed++; }
else if (btn == m_pBtn_AddAgi) { m_repBase.agility++; m_nStatusPtUsed++; }
else if (btn == m_pBtn_AddVit) { m_repBase.vitality++; m_nStatusPtUsed++; }
else if (btn == m_pBtn_AddInt) { m_repBase.energy++; m_nStatusPtUsed++; }
}
private void PropertyMinus(Button btn)
{
if (btn == m_pBtn_MinusStr && m_repBase.strength > 0) { m_repBase.strength--; m_nStatusPtUsed--; }
else if (btn == m_pBtn_MinusAgi && m_repBase.agility > 0) { m_repBase.agility--; m_nStatusPtUsed--; }
else if (btn == m_pBtn_MinusVit && m_repBase.vitality > 0) { m_repBase.vitality--; m_nStatusPtUsed--; }
else if (btn == m_pBtn_MinusInt && m_repBase.energy > 0) { m_repBase.energy--; m_nStatusPtUsed--; }
}
private void OnCommand_confirm()
{
UnityGameSession.c2s_CmdSetStatusPts(
m_repBase.vitality, m_repBase.energy,
m_repBase.strength, m_repBase.agility);
ResetPoints();
// Request fresh ext props so host player gets updated values from server; UI will refresh when response arrives
UnityGameSession.c2s_SendCmdGetExtProps();
}
private void OnCommand_reset()
{
ResetPoints();
}
private void OnCommand_CANCEL()
{
Show(false);
}
private void OnCommand_force()
{
var pForce = m_pAUIManager?.GetDialog("Win_Force");
if (pForce != null) pForce.Show(!pForce.IsShow());
}
private void OnCommand_Title()
{
var pDlg = GetGameUIMan()?.GetDialog("Win_TitleList");
if (pDlg != null) pDlg.Show(!pDlg.IsShow());
}
private void OnCommand_ReincarnationBook()
{
CECHostPlayer host = GetHostPlayer();
if (host == null) return;
var pDlg = m_pAUIManager?.GetDialog("Win_ReincarnationBook");
if (pDlg != null && host.GetReincarnationCount() > 0) pDlg.Show(!pDlg.IsShow());
}
private void RefreshHostDetails()
{
if (!gameObject.activeSelf) return;
CECHostPlayer host = GetHostPlayer();
if (host == null) return;
ROLEBASICPROP rbp = host.GetBasicProps();
ROLEEXTPROP rep = host.GetExtendProps();
var gameRun = EC_Game.GetGameRun();
if (gameRun == null) return;
string charName = host.GetName();
if (string.IsNullOrEmpty(charName)) charName = m_cachedHostName;
if (string.IsNullOrEmpty(charName))
{
var ri = UnityGameSession.Instance?.GetRoleInfo();
if (ri?.name != null && ri.name.ByteArray != null && ri.name.ByteArray.Length > 0)
charName = Encoding.Unicode.GetString(ri.name.ByteArray);
}
SetText(m_pTxt_CharName, charName ?? "");
SetText(m_pTxt_CharLevel, rbp.iLevel.ToString());
SetText(m_pTxt_Profession, gameRun.GetProfName(host.GetProfession()));
int idFaction = host.GetFactionID();
string factionName = idFaction <= 0 ? GetStringFromTable(251) : "";
var factionMan = EC_Game.GetFactionMan();
if (idFaction > 0 && factionMan != null)
{
var fi = factionMan.GetFaction((uint)idFaction, false);
if (fi != null) factionName = fi.m_szName ?? "";
}
SetText(m_pTxt_Faction, factionName);
int spouse = 0; // TODO: host.GetSpouse() when exposed; use gameRun.GetPlayerName(spouse, false) when that API exists
if (spouse != 0)
{
string spouseName = ""; // TODO: gameRun.GetPlayerName(spouse, false)
SetText(m_pTxt_Partner, spouseName ?? "");
}
else
SetText(m_pTxt_Partner, GetStringFromTable(786));
int[] iFourPro = CalcEquipmentBonus(host);
SetText(m_pTxt_ExpCurrent, rbp.iExp.ToString());
SetText(m_pTxt_ExpRequire, host.GetLevelUpExp(rbp.iLevel).ToString());
int reputation = 0; // TODO: host.GetReputation() when exposed
SetText(m_pTxt_Distinction, reputation.ToString());
SetText(m_pTxt_xz, GetGameUIMan()?.GetStringFromTable(1001 + rbp.iLevel2) ?? "");
SetText(m_pTxt_HP, $"{rbp.iCurHP}/{rep.bs.max_hp}");
SetText(m_pTxt_MP, $"{rbp.iCurMP}/{rep.bs.max_mp}");
SetText(m_pTxt_SP, rbp.iSP.ToString());
SetText(m_pTxt_Point, (rbp.iStatusPt - m_nStatusPtUsed).ToString());
int strVal = rep.bs.strength + m_repBase.strength;
SetText(m_pTxt_Str, strVal.ToString());
SetColor(m_pTxt_Str, iFourPro[0] != 0 ? ColorBonus : ColorNormal);
int agiVal = rep.bs.agility + m_repBase.agility;
SetText(m_pTxt_Agi, agiVal.ToString());
SetColor(m_pTxt_Agi, iFourPro[1] != 0 ? ColorBonus : ColorNormal);
int vitVal = rep.bs.vitality + m_repBase.vitality;
SetText(m_pTxt_Vit, vitVal.ToString());
SetColor(m_pTxt_Vit, iFourPro[3] != 0 ? ColorBonus : ColorNormal);
int energyVal = rep.bs.energy + m_repBase.energy;
SetText(m_pTxt_Int, energyVal.ToString());
SetColor(m_pTxt_Int, iFourPro[2] != 0 ? ColorBonus : ColorNormal);
SetText(m_pTxt_Attack, $"{rep.ak.DamageLow}-{rep.ak.DamageHigh}");
string atkSpeedUnit = GetGameUIMan()?.GetStringFromTable(279) ?? "/s";
float atkSpeed = rep.ak.AttackSpeed != 0 ? 1f / (rep.ak.AttackSpeed * 0.05f) : 0f;
SetText(m_pTxt_AtkSpeed, $"{atkSpeed:F2} {atkSpeedUnit}");
SetText(m_pTxt_Definition, rep.ak.Attack.ToString());
SetText(m_pTxt_Evade, rep.df.armor.ToString());
string moveUnit = GetGameUIMan()?.GetStringFromTable(280) ?? "m/s";
SetText(m_pTxt_MoveSpeed, $"{rep.mv.run_speed:F1} {moveUnit}");
SetText(m_pTxt_MgcAttack, $"{rep.ak.DamageMagicLow}-{rep.ak.DamageMagicHigh}");
SetText(m_pTxt_Critical, $"{rbp.iCritRate}%");
int nLevel = rbp.iLevel;
float fReduce = DefenceToPercent(rep.df.defense, nLevel);
SetText(m_pTxt_PhyDefense, rep.df.defense.ToString());
SetText(m_pNew_PhyDefense, string.Format(GetGameUIMan()?.GetStringFromTable(490) ?? "{0} {1}", nLevel, fReduce));
if (m_pTxt_MgcDefense != null || m_pNew_MgcDefense != null)
{
int nSum = 0;
var parts = new System.Collections.Generic.List<string>();
for (int i = 0; i < GameConstants.NUM_MAGICCLASS; i++)
{
nSum += rep.df.resistance[i];
float r = DefenceToPercent(rep.df.resistance[i], nLevel);
parts.Add(string.Format(GetGameUIMan()?.GetStringFromTable(491 + i) ?? "", rep.df.resistance[i], nLevel, r));
}
if (m_pTxt_MgcDefense != null) SetText(m_pTxt_MgcDefense, (nSum / GameConstants.NUM_MAGICCLASS).ToString());
if (m_pNew_MgcDefense != null) SetText(m_pNew_MgcDefense, string.Join("\n", parts));
}
SetText(m_pTxt_AttackLevel, rbp.iAtkDegree.ToString());
SetText(m_pTxt_DefenseLevel, rbp.iDefDegree.ToString());
SetText(m_pTxt_CrtPower, $"{rbp.iCritDamageBonus + 200}%");
int soulPower = 0; // TODO: host.GetSoulPower() when exposed
SetText(m_pTxt_SoulPower, soulPower >= 0 ? soulPower.ToString() : "-");
string soulHint = GetStringFromTable(8135);
if (soulPower > 0 && host.GetProfession() == (int)PROFESSION.PROF_MONK)
{
soulHint = GetStringFromTable(8136) + "\n"
+ string.Format(GetStringFromTable(8130), soulPower) + "\n"
+ string.Format(GetStringFromTable(8131), (int)Mathf.Floor(soulPower * 0.08f * (1 + 0.01f * rbp.iAtkDegree))) + "\n"
+ string.Format(GetStringFromTable(8132), (int)Mathf.Floor(soulPower * 0.0002f + 1)) + "\n"
+ string.Format(GetStringFromTable(8133), soulPower * 0.0006f) + "\n"
+ string.Format(GetStringFromTable(8134), (int)Mathf.Floor(soulPower * 0.5f));
}
SetText(m_pNew_SoulPower, soulHint);
SetText(m_pTxt_Stealth, rbp.iInvisibleDegree.ToString());
SetText(m_pTxt_Antistealth, rbp.iAntiInvisibleDegree.ToString());
SetText(m_pTxt_Penetration, rbp.iPenetration.ToString());
SetText(m_pNew_Penetration, string.Format(GetStringFromTable(9380), (int)(100 * rbp.iPenetration * 3 / (float)(rbp.iPenetration + 300))));
SetText(m_pTxt_Resilience, rbp.iResilience.ToString());
SetText(m_pNew_Resilience, string.Format(GetStringFromTable(9381), nLevel, (int)(100 * rbp.iResilience / (float)(rbp.iResilience + nLevel))));
int vigourRealm = 0;
int realmLevel = host.GetRealmLevel();
if (m_pTxt_Realm != null) m_pTxt_Realm.gameObject.SetActive(realmLevel > 0);
if (m_pPro_RealmExp != null) m_pPro_RealmExp.gameObject.SetActive(realmLevel > 0);
if (realmLevel > 0)
{
SetText(m_pTxt_Realm, GetRealmDisplayName(realmLevel));
if (m_pPro_RealmExp != null)
{
int requireExp = 0; // TODO: host.GetRealmRequireExp() when exposed
if (requireExp > 0)
{
int realmExp = 0; // TODO: host.GetRealmExp() when exposed
m_pPro_RealmExp.value = Mathf.Clamp01((float)Math.Max(realmExp, 0) / requireExp);
SetText(m_pNew_Vigour, string.Format(GetGameUIMan()?.GetStringFromTable(11164) ?? "", realmExp, requireExp));
}
else
{
m_pPro_RealmExp.value = 1f;
}
}
}
SetText(m_pTxt_Vigour, rbp.iVigour.ToString());
SetText(m_pNew_Vigour, string.Format(GetStringFromTable(11146), vigourRealm));
int forceId = host.GetForce();
if (m_pBtn_Force != null) m_pBtn_Force.interactable = forceId > 0;
if (m_pTxt_Force != null)
SetText(m_pTxt_Force, ""); // TODO: force name when GetForceMgr/GetForceData exposed
if (m_pTxt_Title != null)
SetText(m_pTxt_Title, ""); // TODO: title when GetCurrentTitle/GetTitleConfig exposed
if (m_pBtn_Book != null) m_pBtn_Book.interactable = host.GetReincarnationCount() > 0;
}
private static void SetText(TextMeshProUGUI t, string s)
{
if (t != null) t.text = s ?? "";
}
private static void SetColor(TextMeshProUGUI t, Color c)
{
if (t != null) t.color = c;
}
private static float DefenceToPercent(int def, int nLevel)
{
float f = 100f * def / (def + 40f * nLevel - 25f);
return Mathf.Min(f, 95f);
}
private string GetRealmDisplayName(int realmLevel)
{
if (realmLevel <= 0) return "";
string s = GetGameUIMan()?.GetStringFromTable(11000 + realmLevel);
return s ?? "";
}
private int[] CalcEquipmentBonus(CECHostPlayer host)
{
int[] iFourPro = { 0, 0, 0, 0 };
var inv = host?.GetEquipment();
if (inv == null) return iFourPro;
int equipSlots = InventoryConst.SIZE_ALL_EQUIPIVTR;
for (int i = 0; i < equipSlots; i++)
{
var item = inv.GetItem(i);
if (item is EC_IvtrEquip equ && equ.Props != null)
{
int n = equ.Props.Count;
for (int j = 0; j < n; j++)
{
var pro = equ.Props[j];
int byPropType = pro.Type; // use Type as prop type; map via GetItemExtPropType if needed
int val = (pro.Params != null && pro.Params.Length > 0) ? pro.Params[0] : 0;
if (byPropType >= 41 && byPropType <= 44)
iFourPro[byPropType - 41] += val;
else if (byPropType >= 106 && byPropType <= 108)
iFourPro[byPropType - 106] += val;
else if (byPropType >= 95 && byPropType <= 98)
iFourPro[byPropType - 95] += val;
else if (byPropType >= 128 && byPropType <= 131)
{
int[] order = { 3, 0, 1, 2 };
iFourPro[order[byPropType - 128]] += val;
}
}
}
}
return iFourPro;
}
}
/// <summary>Forwards drag on the portrait RawImage to DlgCharacter for rotation.</summary>
public class DlgCharacterPortraitDragReceiver : MonoBehaviour, IBeginDragHandler, IDragHandler
{
private DlgCharacter m_dlg;
public void Init(DlgCharacter dlg) { m_dlg = dlg; }
public void OnBeginDrag(PointerEventData eventData) { }
public void OnDrag(PointerEventData eventData)
{
if (m_dlg != null)
m_dlg.OnPortraitDragDelta(eventData.delta.x);
}
}
}
@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 72e0e1668d68ee24284bf5db688c27a0
@@ -1,4 +1,4 @@
using BrewMonster.Assets.PerfectWorld.Scripts.UI.GamePlay;
using BrewMonster.Assets.PerfectWorld.Scripts.UI.GamePlay;
using BrewMonster.Network;
using BrewMonster.Scripts;
using BrewMonster.Scripts.Skills;
@@ -43,6 +43,9 @@ namespace BrewMonster
var a_pszPanel = new List<string>();
GetQuickBarNameAndSC(pHost, a_pszPanel, a_pSCS, nCurPanel9, nCurPanel8);
if (a_pSCS == null || a_pSCS.Count < 2)
return false;
for (int i = 0; i <= 1/*(int)a_pSCS.Count*/; i++)
{
if (a_pSCS[i] == null)
@@ -50,10 +53,10 @@ namespace BrewMonster
/*CDlgQuickBar* pQuickBar = dynamic_cast<CDlgQuickBar*>(GetGameUIMan()->GetDialog(a_pszPanel[i]));
if (!pQuickBar || !pQuickBar->IsShow()) continue;*/
int slotIndex = 0;
for (int j = 0; j < a_pSCS.Count; j++)
int nSlots = Mathf.Min(a_pSCS[i].GetShortcutNum(), AUIImagePictureList.Count);
for (int j = 0; j < nSlots; j++)
{
pCell = AUIImagePictureList[slotIndex];
pCell = AUIImagePictureList[j];
pSC = a_pSCS[i].GetShortcut(j);
pClock = pCell.GetClockIcon();
pClock.SetProgressRange(0, 1);
@@ -207,7 +210,6 @@ namespace BrewMonster
{
if (pSkill != null)
{
slotIndex++;
//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);
@@ -1,4 +1,6 @@
using System;
using BrewMonster.Network;
using BrewMonster.UI;
using CSNetwork.GPDataType;
using TMPro;
using UnityEngine;
@@ -17,12 +19,17 @@ namespace BrewMonster
public Image manaImage;
public Image expImage;
[Tooltip("Optional. Assign to make this area open the character dialog on click. If unset, nothing opens.")]
[SerializeField] private Button m_btnOpenCharacter;
public float neededExp;
private void Awake()
{
EventBus.Subscribe<cmd_self_info_00>(UpdateHostPlayerInfoUI);
EventBus.Subscribe<CECHostPlayer.InfoHostPlayer>(UpdateNameHostPlayer);
EventBus.Subscribe<CECHostPlayer.EXPToUpLevel>(UpdateNeededExp);
if (m_btnOpenCharacter != null)
m_btnOpenCharacter.onClick.AddListener(OnOpenCharacterClick);
}
private void OnDestroy()
@@ -52,5 +59,19 @@ namespace BrewMonster
manaImage.fillAmount = (float)obj.iMP / (float)obj.iMaxMP;
expImage.fillAmount = (float)obj.iExp / (float)neededExp;
}
private void OnOpenCharacterClick()
{
var gameUIMan = EC_Game.GetGameRun()?.GetUIManager()?.GetInGameUIMan();
if (gameUIMan == null) return;
var dlg = gameUIMan.GetDialog("Win_Character");
if (dlg == null) return;
if (!dlg.IsShow())
{
UnityGameSession.c2s_SendCmdGetExtProps();
dlg.ResetPoints();
}
dlg.Show(!dlg.IsShow());
}
}
}