diff --git a/Assets/AddressableAssetsData/AssetGroups/Settings.asset b/Assets/AddressableAssetsData/AssetGroups/Settings.asset
index 97d7a5e4..06f456b8 100644
--- a/Assets/AddressableAssetsData/AssetGroups/Settings.asset
+++ b/Assets/AddressableAssetsData/AssetGroups/Settings.asset
@@ -25,6 +25,11 @@ MonoBehaviour:
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
+ - m_GUID: 44f8b357e56ef9d4784ec1b1df1a13a8
+ m_Address: Settings/Developer/DebugSettings
+ m_ReadOnly: 0
+ m_SerializedLabels: []
+ FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 8f5195fb013895049a19488fd4d8f2a1
m_Address: Settings/InteractionSettings
m_ReadOnly: 0
diff --git a/Assets/Art/Sprites/Cards.meta b/Assets/Art/Sprites/Cards.meta
new file mode 100644
index 00000000..1e5ca1c1
--- /dev/null
+++ b/Assets/Art/Sprites/Cards.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 2d6e815822cccaf40b10ce3951beed36
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Art/Sprites/Cards/basic_background.png b/Assets/Art/Sprites/Cards/basic_background.png
new file mode 100644
index 00000000..37f1dffa
Binary files /dev/null and b/Assets/Art/Sprites/Cards/basic_background.png differ
diff --git a/Assets/Art/Sprites/Cards/basic_background.png.meta b/Assets/Art/Sprites/Cards/basic_background.png.meta
new file mode 100644
index 00000000..f3fda3d6
--- /dev/null
+++ b/Assets/Art/Sprites/Cards/basic_background.png.meta
@@ -0,0 +1,195 @@
+fileFormatVersion: 2
+guid: 6dd6a8569dd5cef408d97594bb5e9d49
+TextureImporter:
+ internalIDToNameTable:
+ - first:
+ 213: -3713692513169282065
+ second: basic_background_0
+ 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: 1
+ aniso: 1
+ mipBias: 0
+ wrapU: 1
+ wrapV: 1
+ wrapW: 1
+ 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: iOS
+ 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
+ - 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: WebGL
+ 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: WindowsStoreApps
+ 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: basic_background_0
+ rect:
+ serializedVersion: 2
+ x: 0
+ y: 0
+ width: 662
+ height: 876
+ alignment: 0
+ pivot: {x: 0.5, y: 0.5}
+ border: {x: 120, y: 120, z: 120, w: 120}
+ customData:
+ outline: []
+ physicsShape: []
+ tessellationDetail: -1
+ bones: []
+ spriteID: feb6483d550567cc0800000000000000
+ internalID: -3713692513169282065
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ outline: []
+ customData:
+ physicsShape: []
+ bones: []
+ spriteID: 11dbb82cfbe469a478659c7ea91b560e
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ spriteCustomMetadata:
+ entries: []
+ nameFileIdTable:
+ basic_background_0: -3713692513169282065
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Art/Sprites/Cards/basic_frame.png b/Assets/Art/Sprites/Cards/basic_frame.png
new file mode 100644
index 00000000..ebe3d729
Binary files /dev/null and b/Assets/Art/Sprites/Cards/basic_frame.png differ
diff --git a/Assets/Art/Sprites/Cards/basic_frame.png.meta b/Assets/Art/Sprites/Cards/basic_frame.png.meta
new file mode 100644
index 00000000..a286d141
--- /dev/null
+++ b/Assets/Art/Sprites/Cards/basic_frame.png.meta
@@ -0,0 +1,195 @@
+fileFormatVersion: 2
+guid: bd7528147fbfb4e40b0c06c68e99e217
+TextureImporter:
+ internalIDToNameTable:
+ - first:
+ 213: 855352274089539417
+ second: basic_frame_0
+ 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: 1
+ aniso: 1
+ mipBias: 0
+ wrapU: 1
+ wrapV: 1
+ wrapW: 1
+ 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: iOS
+ 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
+ - 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: WebGL
+ 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: WindowsStoreApps
+ 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: basic_frame_0
+ rect:
+ serializedVersion: 2
+ x: 0
+ y: 0
+ width: 662
+ height: 876
+ alignment: 0
+ pivot: {x: 0.5, y: 0.5}
+ border: {x: 111, y: 143, z: 113, w: 131}
+ customData:
+ outline: []
+ physicsShape: []
+ tessellationDetail: -1
+ bones: []
+ spriteID: 957fde68c52dedb00800000000000000
+ internalID: 855352274089539417
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ outline: []
+ customData:
+ physicsShape: []
+ bones: []
+ spriteID: 39ae7a6c6a40db644a51724672b938e1
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ spriteCustomMetadata:
+ entries: []
+ nameFileIdTable:
+ basic_frame_0: 855352274089539417
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Art/Sprites/Cards/basic_shapes.png b/Assets/Art/Sprites/Cards/basic_shapes.png
new file mode 100644
index 00000000..f8b9175c
Binary files /dev/null and b/Assets/Art/Sprites/Cards/basic_shapes.png differ
diff --git a/Assets/Art/Sprites/Cards/basic_shapes.png.meta b/Assets/Art/Sprites/Cards/basic_shapes.png.meta
new file mode 100644
index 00000000..a759cbb7
--- /dev/null
+++ b/Assets/Art/Sprites/Cards/basic_shapes.png.meta
@@ -0,0 +1,247 @@
+fileFormatVersion: 2
+guid: 84a9632f9bdc1ee4bab91cf4b764b5f7
+TextureImporter:
+ internalIDToNameTable:
+ - first:
+ 213: 8542402908941169558
+ second: basic_shapes_0
+ - first:
+ 213: -1529071355430692878
+ second: basic_shapes_1
+ - first:
+ 213: 1152548570994208632
+ second: basic_shapes_2
+ 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: 1
+ aniso: 1
+ mipBias: 0
+ wrapU: 1
+ wrapV: 1
+ wrapW: 1
+ 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: iOS
+ 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
+ - 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: WebGL
+ 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: WindowsStoreApps
+ 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: basic_shapes_0
+ rect:
+ serializedVersion: 2
+ x: 89
+ y: 212
+ width: 253
+ height: 220
+ alignment: 0
+ pivot: {x: 0, y: 0}
+ border: {x: 0, y: 0, z: 0, w: 0}
+ customData:
+ outline: []
+ physicsShape: []
+ tessellationDetail: -1
+ bones: []
+ spriteID: 693b3b3af26bc8670800000000000000
+ internalID: 8542402908941169558
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ - serializedVersion: 2
+ name: basic_shapes_1
+ rect:
+ serializedVersion: 2
+ x: 0
+ y: 0
+ width: 200
+ height: 201
+ alignment: 0
+ pivot: {x: 0, y: 0}
+ border: {x: 0, y: 0, z: 0, w: 0}
+ customData:
+ outline: []
+ physicsShape: []
+ tessellationDetail: -1
+ bones: []
+ spriteID: 2f7145f14b5a7cae0800000000000000
+ internalID: -1529071355430692878
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ - serializedVersion: 2
+ name: basic_shapes_2
+ rect:
+ serializedVersion: 2
+ x: 216
+ y: 0
+ width: 201
+ height: 201
+ alignment: 0
+ pivot: {x: 0, y: 0}
+ border: {x: 0, y: 0, z: 0, w: 0}
+ customData:
+ outline: []
+ physicsShape: []
+ tessellationDetail: -1
+ bones: []
+ spriteID: 87f6e70a1dcaeff00800000000000000
+ internalID: 1152548570994208632
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ outline: []
+ customData:
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ spriteCustomMetadata:
+ entries: []
+ nameFileIdTable:
+ basic_shapes_0: 8542402908941169558
+ basic_shapes_1: -1529071355430692878
+ basic_shapes_2: 1152548570994208632
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Art/Sprites/Cards/name_plaque.png b/Assets/Art/Sprites/Cards/name_plaque.png
new file mode 100644
index 00000000..a78f37e2
Binary files /dev/null and b/Assets/Art/Sprites/Cards/name_plaque.png differ
diff --git a/Assets/Art/Sprites/Cards/name_plaque.png.meta b/Assets/Art/Sprites/Cards/name_plaque.png.meta
new file mode 100644
index 00000000..49198822
--- /dev/null
+++ b/Assets/Art/Sprites/Cards/name_plaque.png.meta
@@ -0,0 +1,195 @@
+fileFormatVersion: 2
+guid: bf14f631f4b34e74d83c20a1dd671422
+TextureImporter:
+ internalIDToNameTable:
+ - first:
+ 213: -3310850967021205615
+ second: name_plaque_0
+ 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: 1
+ aniso: 1
+ mipBias: 0
+ wrapU: 1
+ wrapV: 1
+ wrapW: 1
+ 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: iOS
+ 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
+ - 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: WebGL
+ 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: WindowsStoreApps
+ 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: name_plaque_0
+ rect:
+ serializedVersion: 2
+ x: 0
+ y: 0
+ width: 521
+ height: 161
+ alignment: 0
+ pivot: {x: 0, y: 0}
+ border: {x: 0, y: 0, z: 0, w: 0}
+ customData:
+ outline: []
+ physicsShape: []
+ tessellationDetail: -1
+ bones: []
+ spriteID: 197417e469e7d02d0800000000000000
+ internalID: -3310850967021205615
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ outline: []
+ customData:
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ spriteCustomMetadata:
+ entries: []
+ nameFileIdTable:
+ name_plaque_0: -3310850967021205615
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Art/Sprites/UI.meta b/Assets/Art/Sprites/UI.meta
new file mode 100644
index 00000000..06d39237
--- /dev/null
+++ b/Assets/Art/Sprites/UI.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 162c13cb471747a40b1fc47e6c0ae164
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Art/Sprites/UI/CameraCrosshair.png b/Assets/Art/Sprites/UI/CameraCrosshair.png
new file mode 100644
index 00000000..65004ec7
Binary files /dev/null and b/Assets/Art/Sprites/UI/CameraCrosshair.png differ
diff --git a/Assets/Art/Sprites/UI/CameraCrosshair.png.meta b/Assets/Art/Sprites/UI/CameraCrosshair.png.meta
new file mode 100644
index 00000000..0692d66c
--- /dev/null
+++ b/Assets/Art/Sprites/UI/CameraCrosshair.png.meta
@@ -0,0 +1,195 @@
+fileFormatVersion: 2
+guid: c9d2fdec6416f7840a7eb9f6542b3c01
+TextureImporter:
+ internalIDToNameTable:
+ - first:
+ 213: -4229316332011032055
+ second: CameraCrosshair_0
+ 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: 1
+ aniso: 1
+ mipBias: 0
+ wrapU: 1
+ wrapV: 1
+ wrapW: 1
+ 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: iOS
+ 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
+ - 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: WebGL
+ 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: WindowsStoreApps
+ 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: CameraCrosshair_0
+ rect:
+ serializedVersion: 2
+ x: 6
+ y: 6
+ width: 245
+ height: 245
+ alignment: 0
+ pivot: {x: 0, y: 0}
+ border: {x: 0, y: 0, z: 0, w: 0}
+ customData:
+ outline: []
+ physicsShape: []
+ tessellationDetail: -1
+ bones: []
+ spriteID: 90279b334337e45c0800000000000000
+ internalID: -4229316332011032055
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ outline: []
+ customData:
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ spriteCustomMetadata:
+ entries: []
+ nameFileIdTable:
+ CameraCrosshair_0: -4229316332011032055
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Art/Sprites/UI/CameraGrid.png b/Assets/Art/Sprites/UI/CameraGrid.png
new file mode 100644
index 00000000..5db239dc
Binary files /dev/null and b/Assets/Art/Sprites/UI/CameraGrid.png differ
diff --git a/Assets/Art/Sprites/UI/CameraGrid.png.meta b/Assets/Art/Sprites/UI/CameraGrid.png.meta
new file mode 100644
index 00000000..10a61850
--- /dev/null
+++ b/Assets/Art/Sprites/UI/CameraGrid.png.meta
@@ -0,0 +1,207 @@
+fileFormatVersion: 2
+guid: 0db492dd1eea9514db54af61f1a4d79e
+TextureImporter:
+ internalIDToNameTable:
+ - first:
+ 213: -2291430160556362638
+ second: CameraGrid_0
+ - first:
+ 213: -7433212772583906915
+ second: CameraGrid_1
+ - first:
+ 213: -6331681754600744794
+ second: CameraGrid_2
+ - first:
+ 213: 9186846772083346892
+ second: CameraGrid_3
+ 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: 1
+ aniso: 1
+ mipBias: 0
+ wrapU: 1
+ wrapV: 1
+ wrapW: 1
+ 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: iOS
+ 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
+ - 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: WebGL
+ 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: WindowsStoreApps
+ 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: CameraGrid_0
+ rect:
+ serializedVersion: 2
+ x: 0
+ y: 0
+ width: 1080
+ height: 1080
+ alignment: 0
+ pivot: {x: 0.5, y: 0.5}
+ border: {x: 319, y: 319, z: 321, w: 321}
+ customData:
+ outline: []
+ physicsShape: []
+ tessellationDetail: -1
+ bones: []
+ spriteID: 274fb64d8643330e0800000000000000
+ internalID: -2291430160556362638
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ outline: []
+ customData:
+ physicsShape: []
+ bones: []
+ spriteID: 621374f63d453a746b2a05f897083f21
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ spriteCustomMetadata:
+ entries: []
+ nameFileIdTable:
+ CameraGrid_0: -2291430160556362638
+ CameraGrid_1: -7433212772583906915
+ CameraGrid_2: -6331681754600744794
+ CameraGrid_3: 9186846772083346892
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Art/Sprites/UI/DashedCircle.png b/Assets/Art/Sprites/UI/DashedCircle.png
new file mode 100644
index 00000000..92f0f12d
Binary files /dev/null and b/Assets/Art/Sprites/UI/DashedCircle.png differ
diff --git a/Assets/Art/Sprites/UI/DashedCircle.png.meta b/Assets/Art/Sprites/UI/DashedCircle.png.meta
new file mode 100644
index 00000000..f6f0b0e4
--- /dev/null
+++ b/Assets/Art/Sprites/UI/DashedCircle.png.meta
@@ -0,0 +1,410 @@
+fileFormatVersion: 2
+guid: 0bbb26ed6c3670b4293fca36266cacd6
+TextureImporter:
+ internalIDToNameTable:
+ - first:
+ 213: -1042073035024568290
+ second: DashedCircle_0
+ - first:
+ 213: 1198012375559701613
+ second: DashedCircle_1
+ - first:
+ 213: 3575682463495918587
+ second: DashedCircle_2
+ - first:
+ 213: -3720864688460320768
+ second: DashedCircle_3
+ - first:
+ 213: 680239502275791533
+ second: DashedCircle_4
+ - first:
+ 213: 1736819210918236808
+ second: DashedCircle_5
+ - first:
+ 213: 1056949738484492957
+ second: DashedCircle_6
+ - first:
+ 213: 1431131774511067332
+ second: DashedCircle_7
+ - first:
+ 213: -167254740965665211
+ second: DashedCircle_8
+ - first:
+ 213: -3910096327737939745
+ second: DashedCircle_9
+ - first:
+ 213: -5302975873317320706
+ second: DashedCircle_10
+ - first:
+ 213: -2109135628057173682
+ second: DashedCircle_11
+ - first:
+ 213: 5466542998642919973
+ second: DashedCircle_12
+ - first:
+ 213: 6092693048300773932
+ second: DashedCircle_13
+ - first:
+ 213: -2965461848591405491
+ second: DashedCircle_14
+ - first:
+ 213: 4512459140711343436
+ second: DashedCircle_15
+ - first:
+ 213: 2881723598896683060
+ second: DashedCircle_16
+ - first:
+ 213: 193170154187064169
+ second: DashedCircle_17
+ - first:
+ 213: 4443682387266619127
+ second: DashedCircle_18
+ - first:
+ 213: -7897697084676391889
+ second: DashedCircle_19
+ - first:
+ 213: -288567154801312313
+ second: DashedCircle_20
+ - first:
+ 213: 2797897369853195603
+ second: DashedCircle_21
+ - first:
+ 213: -6690315256748342625
+ second: DashedCircle_22
+ - first:
+ 213: -8562532787892489207
+ second: DashedCircle_23
+ - first:
+ 213: 4014038365856674002
+ second: DashedCircle_24
+ - first:
+ 213: -4786183874250423663
+ second: DashedCircle_25
+ - first:
+ 213: -3632435244273727750
+ second: DashedCircle_26
+ - first:
+ 213: -24000256950301646
+ second: DashedCircle_27
+ - first:
+ 213: 6429170275310342203
+ second: DashedCircle_28
+ - first:
+ 213: -6573703860567998153
+ second: DashedCircle_29
+ - first:
+ 213: -220249821621487743
+ second: DashedCircle_30
+ - first:
+ 213: 5662653624411841387
+ second: DashedCircle_31
+ - first:
+ 213: 1649369697970804789
+ second: DashedCircle_32
+ - first:
+ 213: 8579455917647979248
+ second: DashedCircle_33
+ - first:
+ 213: 7924434688719549588
+ second: DashedCircle_34
+ - first:
+ 213: 3792837440245620024
+ second: DashedCircle_35
+ - first:
+ 213: 4679242095454240323
+ second: DashedCircle_36
+ - first:
+ 213: -9046064784838744603
+ second: DashedCircle_37
+ - first:
+ 213: -2100802971890440573
+ second: DashedCircle_38
+ - first:
+ 213: 4433386870443865299
+ second: DashedCircle_39
+ - first:
+ 213: 291372625661053975
+ second: DashedCircle_40
+ - first:
+ 213: 6163558657729589689
+ second: DashedCircle_41
+ - first:
+ 213: -6167089269325768898
+ second: DashedCircle_42
+ - first:
+ 213: -7374075482581896232
+ second: DashedCircle_43
+ - first:
+ 213: -2574481143699225037
+ second: DashedCircle_44
+ - first:
+ 213: -4400616549326023814
+ second: DashedCircle_45
+ - first:
+ 213: -2565976320392877806
+ second: DashedCircle_46
+ - first:
+ 213: 6967808848227107928
+ second: DashedCircle_47
+ - first:
+ 213: -7092969014401834029
+ second: DashedCircle_48
+ - first:
+ 213: -5549159261358251902
+ second: DashedCircle_49
+ - first:
+ 213: -3057923684788338049
+ second: DashedCircle_50
+ - first:
+ 213: -2042200000063096557
+ second: DashedCircle_51
+ - first:
+ 213: -2986097484319979018
+ second: DashedCircle_52
+ - first:
+ 213: 8796018875121672966
+ second: DashedCircle_53
+ - first:
+ 213: -6161271026730342519
+ second: DashedCircle_54
+ - first:
+ 213: -5183153657707916280
+ second: DashedCircle_55
+ - first:
+ 213: -2285831903291485180
+ second: DashedCircle_56
+ - first:
+ 213: 6120294655806491703
+ second: DashedCircle_57
+ - first:
+ 213: 3169255490993108987
+ second: DashedCircle_58
+ - first:
+ 213: -4382947593213467410
+ second: DashedCircle_59
+ - first:
+ 213: 82460703863433667
+ second: DashedCircle_60
+ - first:
+ 213: -2682841992920941999
+ second: DashedCircle_61
+ - first:
+ 213: 8495901985148463557
+ second: DashedCircle_62
+ - first:
+ 213: 3839875421836278576
+ second: DashedCircle_63
+ - first:
+ 213: -5509755570484174961
+ second: DashedCircle_64
+ - first:
+ 213: 5627319682533994315
+ second: DashedCircle_65
+ - first:
+ 213: -1379420503456066803
+ second: DashedCircle_66
+ - first:
+ 213: -6958861691495982227
+ second: DashedCircle_67
+ - first:
+ 213: 4704030842322679582
+ second: DashedCircle_68
+ - first:
+ 213: 8201440963701657049
+ second: DashedCircle_69
+ - first:
+ 213: 6193005162756480905
+ second: DashedCircle_70
+ - first:
+ 213: -4075948179454758634
+ second: DashedCircle_71
+ 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: 1
+ aniso: 1
+ mipBias: 0
+ wrapU: 1
+ wrapV: 1
+ wrapW: 1
+ 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: iOS
+ 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
+ - 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: WebGL
+ 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: WindowsStoreApps
+ 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: DashedCircle_0
+ rect:
+ serializedVersion: 2
+ x: 757
+ y: 749
+ width: 4497
+ height: 4492
+ alignment: 0
+ pivot: {x: 0.5, y: 0.5}
+ border: {x: 0, y: 0, z: 0, w: 0}
+ customData:
+ outline: []
+ physicsShape: []
+ tessellationDetail: -1
+ bones: []
+ spriteID: e10f8558810d981f0800000000000000
+ internalID: -1042073035024568290
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ outline: []
+ customData:
+ physicsShape: []
+ bones: []
+ spriteID: 77146c70d8538a841854591dc0ba1184
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ spriteCustomMetadata:
+ entries:
+ - key: SpriteEditor.SliceSettings
+ value: '{"sliceOnImport":false,"gridCellCount":{"x":1.0,"y":1.0},"gridSpriteSize":{"x":6000.0,"y":6000.0},"gridSpriteOffset":{"x":0.0,"y":0.0},"gridSpritePadding":{"x":0.0,"y":0.0},"pivot":{"x":0.5,"y":0.5},"pivotPixels":{"x":0.0,"y":0.0},"autoSlicingMethod":0,"spriteAlignment":0,"pivotUnitMode":0,"slicingType":2,"keepEmptyRects":false,"isAlternate":false}'
+ nameFileIdTable:
+ DashedCircle_0: -1042073035024568290
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Data/Cards.meta b/Assets/Data/Cards.meta
new file mode 100644
index 00000000..cf5d8cc1
--- /dev/null
+++ b/Assets/Data/Cards.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 9ff52efcb2e505f498abb98b6c6ee31d
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Data/Cards/CardVisualConfig.asset b/Assets/Data/Cards/CardVisualConfig.asset
new file mode 100644
index 00000000..81ff7c03
--- /dev/null
+++ b/Assets/Data/Cards/CardVisualConfig.asset
@@ -0,0 +1,41 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &11400000
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ 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: a82f88f485b4410e9eb7c383b44557cf, type: 3}
+ m_Name: CardVisualConfig
+ m_EditorClassIdentifier: AppleHillsScripts::AppleHills.Data.CardSystem.CardVisualConfig
+ rarityColors:
+ - rarity: 0
+ color: {r: 0.7132075, g: 0.4388013, b: 0, a: 1}
+ - rarity: 1
+ color: {r: 0, g: 0.6603774, b: 0.10775841, a: 1}
+ - rarity: 2
+ color: {r: 0, g: 0.19755316, b: 1, a: 1}
+ - rarity: 3
+ color: {r: 0.5849056, g: 0, b: 0.4619053, a: 1}
+ - rarity: 4
+ color: {r: 0.96563864, g: 1, b: 0.0056602955, a: 1}
+ zoneVisuals:
+ - zone: 0
+ color: {r: 0.8, g: 0.9, b: 0.8, a: 1}
+ backgroundShape: {fileID: 8542402908941169558, guid: 84a9632f9bdc1ee4bab91cf4b764b5f7, type: 3}
+ - zone: 1
+ color: {r: 0.85, g: 0.8, b: 0.7, a: 1}
+ backgroundShape: {fileID: -1529071355430692878, guid: 84a9632f9bdc1ee4bab91cf4b764b5f7, type: 3}
+ - zone: 2
+ color: {r: 0.6, g: 0.8, b: 0.6, a: 1}
+ backgroundShape: {fileID: 1152548570994208632, guid: 84a9632f9bdc1ee4bab91cf4b764b5f7, type: 3}
+ - zone: 3
+ color: {r: 0.7, g: 0.7, b: 0.9, a: 1}
+ backgroundShape: {fileID: 8542402908941169558, guid: 84a9632f9bdc1ee4bab91cf4b764b5f7, type: 3}
+ - zone: 4
+ color: {r: 0.9, g: 0.85, b: 0.7, a: 1}
+ backgroundShape: {fileID: -1529071355430692878, guid: 84a9632f9bdc1ee4bab91cf4b764b5f7, type: 3}
diff --git a/Assets/Data/Cards/CardVisualConfig.asset.meta b/Assets/Data/Cards/CardVisualConfig.asset.meta
new file mode 100644
index 00000000..d2fac6db
--- /dev/null
+++ b/Assets/Data/Cards/CardVisualConfig.asset.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 473a9bc98f6f6684e8023126fc557a88
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 11400000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Data/Cards/Card_New Card 1.asset b/Assets/Data/Cards/Card_New Card 1.asset
new file mode 100644
index 00000000..7a0ff941
--- /dev/null
+++ b/Assets/Data/Cards/Card_New Card 1.asset
@@ -0,0 +1,21 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &11400000
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ 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: 2a80cc88c9884512b8b633110d838780, type: 3}
+ m_Name: Card_New Card 1
+ m_EditorClassIdentifier: AppleHillsScripts::AppleHills.Data.CardSystem.CardDefinition
+ Id: f3faeebd-41fd-4a5c-b021-366ed5170f0c
+ Name: New awesome card
+ Description: Description goes here
+ Rarity: 4
+ Zone: 2
+ CardImage: {fileID: -4209461767521648114, guid: 95abe5ab485a1c64b977f3dd2aff5256, type: 3}
+ CollectionIndex: 6
diff --git a/Assets/Data/Cards/Card_New Card 1.asset.meta b/Assets/Data/Cards/Card_New Card 1.asset.meta
new file mode 100644
index 00000000..b3b1dc4e
--- /dev/null
+++ b/Assets/Data/Cards/Card_New Card 1.asset.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 5d8121cdf52bfe9488b40ed22d649209
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 11400000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Data/Cards/Card_New Card.asset b/Assets/Data/Cards/Card_New Card.asset
new file mode 100644
index 00000000..db7489a9
--- /dev/null
+++ b/Assets/Data/Cards/Card_New Card.asset
@@ -0,0 +1,21 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &11400000
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ 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: 2a80cc88c9884512b8b633110d838780, type: 3}
+ m_Name: Card_New Card
+ m_EditorClassIdentifier: AppleHillsScripts::AppleHills.Data.CardSystem.CardDefinition
+ Id: c392baeb-f816-4482-8b9c-2e2b81e36527
+ Name: Test example card
+ Description: Some example description
+ Rarity: 4
+ Zone: 4
+ CardImage: {fileID: 2204075899874250563, guid: 0f7eeae107549d943b762c87ab0dc144, type: 3}
+ CollectionIndex: 0
diff --git a/Assets/Data/Cards/Card_New Card.asset.meta b/Assets/Data/Cards/Card_New Card.asset.meta
new file mode 100644
index 00000000..adf20b77
--- /dev/null
+++ b/Assets/Data/Cards/Card_New Card.asset.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 91031de62f795884e8e2ccbaebeebf9b
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 11400000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Data/Cards/Card_Test example card (Copy) 1.asset b/Assets/Data/Cards/Card_Test example card (Copy) 1.asset
new file mode 100644
index 00000000..aa26d282
--- /dev/null
+++ b/Assets/Data/Cards/Card_Test example card (Copy) 1.asset
@@ -0,0 +1,21 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &11400000
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ 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: 2a80cc88c9884512b8b633110d838780, type: 3}
+ m_Name: Card_Test example card (Copy) 1
+ m_EditorClassIdentifier: AppleHillsScripts::AppleHills.Data.CardSystem.CardDefinition
+ Id: 629423af-af60-495b-8c89-36709e063acd
+ Name: Test example card (Copy)
+ Description: Some example description
+ Rarity: 0
+ Zone: 0
+ CardImage: {fileID: 2204075899874250563, guid: 0f7eeae107549d943b762c87ab0dc144, type: 3}
+ CollectionIndex: 0
diff --git a/Assets/Data/Cards/Card_Test example card (Copy) 1.asset.meta b/Assets/Data/Cards/Card_Test example card (Copy) 1.asset.meta
new file mode 100644
index 00000000..24ec7332
--- /dev/null
+++ b/Assets/Data/Cards/Card_Test example card (Copy) 1.asset.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 8fdeae7881d130f408e0f31c101ab41f
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 11400000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Data/Cards/Card_Test example card (Copy).asset b/Assets/Data/Cards/Card_Test example card (Copy).asset
new file mode 100644
index 00000000..a998a949
--- /dev/null
+++ b/Assets/Data/Cards/Card_Test example card (Copy).asset
@@ -0,0 +1,21 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &11400000
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ 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: 2a80cc88c9884512b8b633110d838780, type: 3}
+ m_Name: Card_Test example card (Copy)
+ m_EditorClassIdentifier: AppleHillsScripts::AppleHills.Data.CardSystem.CardDefinition
+ Id: 6aa0d454-47f5-4617-ae30-50614fd2fa94
+ Name: Test example card 2
+ Description: Some example description
+ Rarity: 1
+ Zone: 0
+ CardImage: {fileID: -765527507412255412, guid: f70246e6148769846aaea223ec0c2a55, type: 3}
+ CollectionIndex: 0
diff --git a/Assets/Data/Cards/Card_Test example card (Copy).asset.meta b/Assets/Data/Cards/Card_Test example card (Copy).asset.meta
new file mode 100644
index 00000000..11307de5
--- /dev/null
+++ b/Assets/Data/Cards/Card_Test example card (Copy).asset.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 8f02c3699de87014bac8c03b96772a4b
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 11400000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Data/Cards/Card_Test example card 2 (Copy) 1.asset b/Assets/Data/Cards/Card_Test example card 2 (Copy) 1.asset
new file mode 100644
index 00000000..2428db58
--- /dev/null
+++ b/Assets/Data/Cards/Card_Test example card 2 (Copy) 1.asset
@@ -0,0 +1,21 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &11400000
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ 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: 2a80cc88c9884512b8b633110d838780, type: 3}
+ m_Name: Card_Test example card 2 (Copy) 1
+ m_EditorClassIdentifier: AppleHillsScripts::AppleHills.Data.CardSystem.CardDefinition
+ Id: ee76a6fc-d86d-469f-9b0f-c19286228357
+ Name: Test example card 2 (Copy)
+ Description: Some example description
+ Rarity: 1
+ Zone: 3
+ CardImage: {fileID: -765527507412255412, guid: f70246e6148769846aaea223ec0c2a55, type: 3}
+ CollectionIndex: 0
diff --git a/Assets/Data/Cards/Card_Test example card 2 (Copy) 1.asset.meta b/Assets/Data/Cards/Card_Test example card 2 (Copy) 1.asset.meta
new file mode 100644
index 00000000..72e531a5
--- /dev/null
+++ b/Assets/Data/Cards/Card_Test example card 2 (Copy) 1.asset.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: dec49537f6ae6d241acf8275eaa6c653
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 11400000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Data/Cards/Card_Test example card 2 (Copy).asset b/Assets/Data/Cards/Card_Test example card 2 (Copy).asset
new file mode 100644
index 00000000..ca74c2f0
--- /dev/null
+++ b/Assets/Data/Cards/Card_Test example card 2 (Copy).asset
@@ -0,0 +1,21 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &11400000
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ 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: 2a80cc88c9884512b8b633110d838780, type: 3}
+ m_Name: Card_Test example card 2 (Copy)
+ m_EditorClassIdentifier: AppleHillsScripts::AppleHills.Data.CardSystem.CardDefinition
+ Id: ee1e2aec-bdb6-4c68-8d7a-061c7f5e8583
+ Name: Test example card 3
+ Description: Some example description
+ Rarity: 2
+ Zone: 0
+ CardImage: {fileID: -9213056636207805707, guid: 00354ded9d8f8d643acc14837a229544, type: 3}
+ CollectionIndex: 0
diff --git a/Assets/Data/Cards/Card_Test example card 2 (Copy).asset.meta b/Assets/Data/Cards/Card_Test example card 2 (Copy).asset.meta
new file mode 100644
index 00000000..e21a013b
--- /dev/null
+++ b/Assets/Data/Cards/Card_Test example card 2 (Copy).asset.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 28dbfbd7a6b2cd84b8274bd1126b220b
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 11400000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Data/Cards/Card_Test example card 3 (Copy).asset b/Assets/Data/Cards/Card_Test example card 3 (Copy).asset
new file mode 100644
index 00000000..319e0230
--- /dev/null
+++ b/Assets/Data/Cards/Card_Test example card 3 (Copy).asset
@@ -0,0 +1,21 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &11400000
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ 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: 2a80cc88c9884512b8b633110d838780, type: 3}
+ m_Name: Card_Test example card 3 (Copy)
+ m_EditorClassIdentifier: AppleHillsScripts::AppleHills.Data.CardSystem.CardDefinition
+ Id: 1afdfea7-ca85-45ae-bd2c-3814729e628d
+ Name: Test example card 3 (Copy)
+ Description: Some example description
+ Rarity: 2
+ Zone: 4
+ CardImage: {fileID: -9213056636207805707, guid: 00354ded9d8f8d643acc14837a229544, type: 3}
+ CollectionIndex: 0
diff --git a/Assets/Data/Cards/Card_Test example card 3 (Copy).asset.meta b/Assets/Data/Cards/Card_Test example card 3 (Copy).asset.meta
new file mode 100644
index 00000000..c76502a1
--- /dev/null
+++ b/Assets/Data/Cards/Card_Test example card 3 (Copy).asset.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 6afed7a67f64404418f905e7808bf5cb
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 11400000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Editor/CardSystem.meta b/Assets/Editor/CardSystem.meta
new file mode 100644
index 00000000..08ed7af1
--- /dev/null
+++ b/Assets/Editor/CardSystem.meta
@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: 51dfa0a923ad4d0f8aa89ac702a57530
+timeCreated: 1759925706
\ No newline at end of file
diff --git a/Assets/Editor/CardSystem/CardEditorWindow.cs b/Assets/Editor/CardSystem/CardEditorWindow.cs
new file mode 100644
index 00000000..d94fc5d9
--- /dev/null
+++ b/Assets/Editor/CardSystem/CardEditorWindow.cs
@@ -0,0 +1,1093 @@
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+using AppleHills.Data.CardSystem;
+using AppleHills.UI.CardSystem;
+using UnityEditor;
+using UnityEngine;
+using UnityEngine.UI;
+
+namespace AppleHills.Editor.CardSystem
+{
+ ///
+ /// Editor utility for managing card definitions without directly editing scriptable objects.
+ /// Provides a searchable list and visual preview of cards.
+ ///
+ public class CardEditorWindow : EditorWindow
+ {
+ // Paths
+ private const string CardDefinitionsPath = "Assets/Data/Cards";
+ private const string MenuPath = "AppleHills/Card Editor";
+ private const string CardUIPrefabPath = "Assets/Prefabs/UI/Cards/CardUI.prefab";
+ private const string CardVisualConfigPath = CardDefinitionsPath + "/CardVisualConfig.asset";
+
+ // Editor state
+ private List _cards = new List();
+ private CardDefinition _selectedCard;
+ private CardDefinition _editingCard; // Clone of selected card for editing
+ private Vector2 _cardListScrollPosition;
+ private Vector2 _cardEditScrollPosition;
+ private string _searchQuery = "";
+ private bool _showPreview = true;
+ private bool _isDirty = false;
+
+ // UI state for card preview
+ private GameObject _previewCardObject;
+ private CardUIElement _previewCardElement;
+ private CardData _previewCardData;
+ private Rect _previewRect;
+ private GameObject _cardUIPrefab;
+ private CardVisualConfig _cardVisualConfig;
+ private UnityEditor.Editor _cardPreviewEditor;
+ private Texture2D _staticPreviewTexture;
+ private bool _previewNeedsUpdate = true;
+
+ // Preview settings
+ private float _previewZoom = 1.0f;
+ private Vector2 _previewOffset = Vector2.zero;
+ private bool _debugMode = false;
+ private float _zoomMultiplier = 1.5f; // Default multiplier (no zoom)
+ private const float DEFAULT_ZOOM = 1.5f; // Store default zoom as a constant
+ private const float BASE_ORTHO_SIZE = 400.0f; // Increased from 0.8f to 8.0f for a much wider view
+
+ // PreviewRenderUtility for rendering the card in a hidden scene
+ private PreviewRenderUtility _previewUtility;
+ private float _orbitRotation = 0f;
+ private float _autoRotateSpeed = 0f;
+ private bool _autoRotate = false;
+ private GameObject _previewInstance;
+
+ [MenuItem(MenuPath)]
+ public static void ShowWindow()
+ {
+ var window = GetWindow("Card Editor");
+ window.minSize = new Vector2(800, 600);
+ window.Show();
+ }
+
+ private void OnEnable()
+ {
+ // Load all card definitions
+ LoadCardDefinitions();
+
+ // Initialize preview
+ InitializePreview();
+
+ // Register for undo/redo
+ Undo.undoRedoPerformed += OnUndoRedo;
+
+ // Set up a repaint on script compilation
+ EditorApplication.update += OnEditorUpdate;
+ EditorApplication.playModeStateChanged += OnPlayModeStateChanged;
+ }
+
+ private void OnDisable()
+ {
+ // Clean up preview
+ CleanupPreview();
+
+ // Unregister from undo/redo
+ Undo.undoRedoPerformed -= OnUndoRedo;
+
+ // Unregister from update
+ EditorApplication.update -= OnEditorUpdate;
+ EditorApplication.playModeStateChanged -= OnPlayModeStateChanged;
+ }
+
+ private void OnEditorUpdate()
+ {
+ if (_showPreview && _previewNeedsUpdate)
+ {
+ Repaint();
+ }
+
+ // Auto-rotate the preview if enabled
+ if (_autoRotate && _previewUtility != null)
+ {
+ _orbitRotation += _autoRotateSpeed * Time.deltaTime;
+ Repaint();
+ }
+ }
+
+ private void OnUndoRedo()
+ {
+ // Reload card definitions and refresh
+ LoadCardDefinitions();
+ Repaint();
+ }
+
+ private void OnPlayModeStateChanged(PlayModeStateChange stateChange)
+ {
+ if (stateChange == PlayModeStateChange.EnteredEditMode)
+ {
+ LoadCardDefinitions();
+ InitializePreview();
+ }
+ else if (stateChange == PlayModeStateChange.ExitingEditMode)
+ {
+ CleanupPreview();
+ }
+ }
+
+ private void LoadCardDefinitions()
+ {
+ _cards.Clear();
+
+ // Create the directory structure if it doesn't exist
+ string dataDirectory = Path.GetDirectoryName(CardDefinitionsPath); // Gets the "Assets/Data" part
+ if (!Directory.Exists(dataDirectory))
+ {
+ Directory.CreateDirectory(dataDirectory);
+ }
+
+ if (!Directory.Exists(CardDefinitionsPath))
+ {
+ Directory.CreateDirectory(CardDefinitionsPath);
+ AssetDatabase.Refresh();
+ }
+
+ // Find all card definition assets
+ string[] guids = AssetDatabase.FindAssets("t:CardDefinition", new[] { CardDefinitionsPath });
+ foreach (string guid in guids)
+ {
+ string path = AssetDatabase.GUIDToAssetPath(guid);
+ CardDefinition card = AssetDatabase.LoadAssetAtPath(path);
+ if (card != null)
+ {
+ _cards.Add(card);
+ }
+ }
+
+ // Sort by name
+ _cards = _cards.OrderBy(c => c.Name).ToList();
+
+ // If we had a selected card, try to find it again
+ if (_selectedCard != null)
+ {
+ _selectedCard = _cards.FirstOrDefault(c => c.Id == _selectedCard.Id);
+ if (_selectedCard != null)
+ {
+ _editingCard = CloneCard(_selectedCard);
+ UpdatePreview();
+ }
+ }
+ }
+
+ private void InitializePreview()
+ {
+ // Initialize PreviewRenderUtility for 3D preview
+ if (_previewUtility == null)
+ {
+ _previewUtility = new PreviewRenderUtility();
+
+ // Configure camera for 2D UI rendering
+ var cam = _previewUtility.camera;
+ cam.clearFlags = CameraClearFlags.Color;
+ cam.backgroundColor = Color.gray; // Background color when nothing is rendered
+ cam.orthographic = true; // Orthographic is better for 2D UI
+ cam.orthographicSize = 1f;
+ cam.nearClipPlane = 0.01f;
+ cam.farClipPlane = 100f;
+ cam.cullingMask = ~0; // Render everything
+ cam.transform.position = new Vector3(0, 0, -6);
+ cam.transform.rotation = Quaternion.identity;
+
+ // Configure lights for better UI visibility
+ // Key light
+ _previewUtility.lights[0].intensity = 1.2f;
+ _previewUtility.lights[0].color = Color.white;
+ _previewUtility.lights[0].transform.rotation = Quaternion.Euler(30f, 30f, 0f);
+
+ // Fill light
+ _previewUtility.lights[1].intensity = 0.7f;
+ _previewUtility.lights[1].color = new Color(0.7f, 0.7f, 0.8f);
+ _previewUtility.lights[1].transform.rotation = Quaternion.Euler(-30f, -30f, 0f);
+ }
+
+ // Load the prefab
+ _cardUIPrefab = AssetDatabase.LoadAssetAtPath(CardUIPrefabPath);
+ if (_cardUIPrefab == null)
+ {
+ Debug.LogError($"[CardEditorWindow] Could not find card UI prefab at {CardUIPrefabPath}");
+ return;
+ }
+
+ // Try to load the visual config
+ _cardVisualConfig = AssetDatabase.LoadAssetAtPath(CardVisualConfigPath);
+ if (_cardVisualConfig == null)
+ {
+ Debug.LogWarning($"[CardEditorWindow] Could not find card visual config at {CardVisualConfigPath}");
+ }
+
+ // Create preview card object
+ CreatePreviewCardObject();
+ }
+
+ private void CreatePreviewCardObject()
+ {
+ // Clean up any existing preview objects
+ CleanupPreviewInstance();
+
+ if (_cardUIPrefab == null)
+ {
+ Debug.LogError("[CardEditorWindow] Card UI prefab not loaded");
+ return;
+ }
+
+ try
+ {
+ // Create the preview instance in the PreviewRenderUtility's scene
+ if (_previewUtility != null)
+ {
+ // 1. First create a root GameObject in the preview scene
+ _previewInstance = new GameObject("PreviewRoot");
+ _previewInstance.hideFlags = HideFlags.HideAndDontSave;
+
+ // 2. Create a Canvas to hold our card UI
+ GameObject canvasGO = new GameObject("PreviewCanvas");
+ canvasGO.transform.SetParent(_previewInstance.transform, false);
+
+ // 3. Add Canvas component and configure it
+ Canvas canvas = canvasGO.AddComponent