diff --git a/Assets/Art/Sprites/icon_card_archer.png b/Assets/Art/Sprites/icon_card_archer.png new file mode 100644 index 0000000..0b8be09 Binary files /dev/null and b/Assets/Art/Sprites/icon_card_archer.png differ diff --git a/Assets/Art/Sprites/icon_card_archer.png.meta b/Assets/Art/Sprites/icon_card_archer.png.meta new file mode 100644 index 0000000..953f662 --- /dev/null +++ b/Assets/Art/Sprites/icon_card_archer.png.meta @@ -0,0 +1,147 @@ +fileFormatVersion: 2 +guid: 178d3231a9182834aa1a4394bd40b644 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + 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 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMasterTextureLimit: 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: 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 + cookieLightType: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: WebGL + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/KeepLevelAnchored.cs b/Assets/KeepLevelAnchored.cs new file mode 100644 index 0000000..047b613 --- /dev/null +++ b/Assets/KeepLevelAnchored.cs @@ -0,0 +1,53 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class KeepLevelAnchored : MonoBehaviour +{ + Camera _camera; + Rect _levelBound; + // Start is called before the first frame update + void Start() + { + LevelManager.Instance.LevelLoaded += CalculateBound; + CalculateBound(LevelManager.Instance.CurrentLevel); + _camera = Camera.main; + } + + private void CalculateBound(GatherAndDefend.LevelEditor.Level level) + { + _levelBound = level.CalculateBounds(); + } + + void OnDestroy() + { + LevelManager.Instance.LevelLoaded -= CalculateBound; + } + + // Update is called once per frame + void Update() + { + //move right + var xMax = _levelBound.xMax; + var width = _camera.ScreenToWorldPoint(Vector2.one * _camera.pixelWidth).x; + var rightDiff = width - xMax; + var camPos = _camera.transform.position; + + camPos.x -= rightDiff; + + _camera.transform.position = camPos; + + + //resize + var xMin = _levelBound.xMin; + var left = _camera.ScreenToWorldPoint(Vector2.zero).x; + var center = _camera.ScreenToWorldPoint(Vector2.one * _camera.pixelWidth / 3).x; + + var leftDiff = xMax - xMin; + var centerDiff = xMax - center; + + var ratio = centerDiff / leftDiff; + + _camera.orthographicSize /= ratio; + } +} diff --git a/Assets/KeepLevelAnchored.cs.meta b/Assets/KeepLevelAnchored.cs.meta new file mode 100644 index 0000000..7310fbd --- /dev/null +++ b/Assets/KeepLevelAnchored.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 64f379c3b297ed249be5c01c7947a5fe +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/KeepLevelAnchored.cs b/Assets/Scripts/KeepLevelAnchored.cs new file mode 100644 index 0000000..1c826a3 --- /dev/null +++ b/Assets/Scripts/KeepLevelAnchored.cs @@ -0,0 +1,55 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class KeepLevelAnchored : MonoBehaviour +{ + Camera _camera; + Rect _levelBound; + // Start is called before the first frame update + void Start() + { + LevelManager.Instance.LevelLoaded += CalculateBound; + CalculateBound(LevelManager.Instance.CurrentLevel); + _camera = Camera.main; + } + + private void CalculateBound(GatherAndDefend.LevelEditor.Level level) + { + _levelBound = level.CalculateBounds(); + } + + void OnDestroy() + { + LevelManager.Instance.LevelLoaded -= CalculateBound; + } + + // Update is called once per frame + void Update() + { + //move right + var xMax = _levelBound.xMax; + var width = _camera.ScreenToWorldPoint(Vector2.one * _camera.pixelWidth).x; + var rightDiff = width - xMax; + var camPos = _camera.transform.position; + + camPos.x -= rightDiff; + + _camera.transform.position = camPos; + + + //resize + var xMin = _levelBound.xMin; + var left = _camera.ScreenToWorldPoint(Vector2.zero).x; + var center = _camera.ScreenToWorldPoint(Vector2.one * _camera.pixelWidth / 3).x; + + var leftDiff = xMax - xMin; + var centerDiff = xMax - center; + + var ratio = centerDiff / leftDiff; + + _camera.orthographicSize /= ratio; + return; + + } +} diff --git a/Assets/Scripts/KeepLevelAnchored.cs.meta b/Assets/Scripts/KeepLevelAnchored.cs.meta new file mode 100644 index 0000000..a605248 --- /dev/null +++ b/Assets/Scripts/KeepLevelAnchored.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: e1e75c8792eeaf44a8afc3d3fa678c74 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Tiles/ObstacleTile.cs b/Assets/Scripts/Tiles/ObstacleTile.cs new file mode 100644 index 0000000..c4ba8d0 --- /dev/null +++ b/Assets/Scripts/Tiles/ObstacleTile.cs @@ -0,0 +1,6 @@ +using UnityEngine; + +[CreateAssetMenu(menuName = project_name + "/" + nameof(ObstacleTile))] +public class ObstacleTile : LevelTile +{ +} \ No newline at end of file diff --git a/Assets/Scripts/Tiles/ObstacleTile.cs.meta b/Assets/Scripts/Tiles/ObstacleTile.cs.meta new file mode 100644 index 0000000..68d885f --- /dev/null +++ b/Assets/Scripts/Tiles/ObstacleTile.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 9ff04aa2e904a19458fd5b144c230054 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Tiles/RockNode.asset b/Assets/Tiles/RockNode.asset new file mode 100644 index 0000000..e9a861d --- /dev/null +++ b/Assets/Tiles/RockNode.asset @@ -0,0 +1,19 @@ +%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: 84b05f2a26f63da46a1028488482d079, type: 3} + m_Name: RockNode + m_EditorClassIdentifier: + _sprite: {fileID: 21300000, guid: f67e7f54162405141b42d32ef8df76ad, type: 3} + _isCollidable: 0 + _yieldPrefab: {fileID: 6962989255644195630, guid: 484f0eca1c74ae34694692de56a36739, type: 3} + _yieldSpeed: 0.1 + _randomPositionConfig: 0.5 diff --git a/Assets/Tiles/RockNode.asset.meta b/Assets/Tiles/RockNode.asset.meta new file mode 100644 index 0000000..1ee5766 --- /dev/null +++ b/Assets/Tiles/RockNode.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e0d57b3c128ba1447920637cdb289530 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: