├── .gitignore ├── Assets ├── Materials.meta ├── Materials │ ├── AIHeroMaterial.mat │ ├── AIHeroMaterial.mat.meta │ ├── Board.mat │ ├── Board.mat.meta │ ├── CardBack.mat │ ├── CardBack.mat.meta │ ├── CardFront.mat │ ├── CardFront.mat.meta │ ├── CardImage.mat │ ├── CardImage.mat.meta │ ├── MyHeroMaterial.mat │ ├── MyHeroMaterial.mat.meta │ ├── Physic Material.physicMaterial │ └── Physic Material.physicMaterial.meta ├── Prefabs.meta ├── Prefabs │ ├── Card.prefab │ ├── Card.prefab.meta │ ├── Cardold.prefab │ └── Cardold.prefab.meta ├── Scenes.meta ├── Scenes │ ├── CardGame.unity │ ├── CardGame.unity.meta │ ├── TestScene.unity │ └── TestScene.unity.meta ├── Scripts.meta ├── Scripts │ ├── AIGameState.cs │ ├── AIGameState.cs.meta │ ├── BoardBehaviourScript.cs │ ├── BoardBehaviourScript.cs.meta │ ├── CardBehaviourScript.cs │ ├── CardBehaviourScript.cs.meta │ ├── CardGameBase.cs │ ├── CardGameBase.cs.meta │ ├── HeroBehaviourScript.cs │ └── HeroBehaviourScript.cs.meta ├── Sprites.meta └── Sprites │ ├── Attack_value_back.png │ ├── Attack_value_back.png.meta │ ├── Board.png │ ├── Board.png.meta │ ├── Gul'dan.png │ ├── Gul'dan.png.meta │ ├── Hero.png │ ├── Hero.png.meta │ ├── Lunar_Card_Back.png │ ├── Lunar_Card_Back.png.meta │ ├── MagicData.png │ ├── MagicData.png.meta │ ├── Malfurion.png │ ├── Malfurion.png.meta │ ├── Monster.png │ ├── Monster.png.meta │ ├── mana_crystal.png │ └── mana_crystal.png.meta ├── ProjectSettings ├── AudioManager.asset ├── ClusterInputManager.asset ├── DynamicsManager.asset ├── EditorBuildSettings.asset ├── EditorSettings.asset ├── GraphicsSettings.asset ├── InputManager.asset ├── NavMeshAreas.asset ├── NetworkManager.asset ├── Physics2DSettings.asset ├── ProjectSettings.asset ├── ProjectVersion.txt ├── QualitySettings.asset ├── TagManager.asset ├── TimeManager.asset ├── UnityAdsSettings.asset └── UnityConnectSettings.asset └── README.md /.gitignore: -------------------------------------------------------------------------------- 1 | /[Ll]ibrary/ 2 | /[Tt]emp/ 3 | /[Oo]bj/ 4 | /[Bb]uild/ 5 | /[Bb]uilds/ 6 | /Assets/AssetStoreTools* 7 | /[Ww]indowsphone 8 | /[Ww]indowsphone8.1 9 | # Autogenerated VS/MD solution and project files 10 | ExportedObj/ 11 | *.csproj 12 | *.unityproj 13 | *.sln 14 | *.suo 15 | *.tmp 16 | *.user 17 | *.userprefs 18 | *.pidb 19 | *.booproj 20 | *.svd 21 | 22 | 23 | # Unity3D generated meta files 24 | *.pidb.meta 25 | 26 | # Unity3D Generated File On Crash Reports 27 | sysinfo.txt 28 | 29 | # Builds 30 | *.apk 31 | *.unitypackage 32 | -------------------------------------------------------------------------------- /Assets/Materials.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3d6a6846b630c3d428f9676f79cbb71f 3 | folderAsset: yes 4 | timeCreated: 1465130158 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Materials/AIHeroMaterial.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 6 6 | m_ObjectHideFlags: 0 7 | m_PrefabParentObject: {fileID: 0} 8 | m_PrefabInternal: {fileID: 0} 9 | m_Name: AIHeroMaterial 10 | m_Shader: {fileID: 10751, guid: 0000000000000000f000000000000000, type: 0} 11 | m_ShaderKeywords: _ALPHATEST_ON 12 | m_LightmapFlags: 5 13 | m_CustomRenderQueue: 2450 14 | stringTagMap: 15 | RenderType: TransparentCutout 16 | m_SavedProperties: 17 | serializedVersion: 2 18 | m_TexEnvs: 19 | data: 20 | first: 21 | name: _MainTex 22 | second: 23 | m_Texture: {fileID: 2800000, guid: a0b72669ee486214dac555ca31d73ce3, type: 3} 24 | m_Scale: {x: 1, y: 1} 25 | m_Offset: {x: 0, y: 0} 26 | data: 27 | first: 28 | name: _BumpMap 29 | second: 30 | m_Texture: {fileID: 0} 31 | m_Scale: {x: 1, y: 1} 32 | m_Offset: {x: 0, y: 0} 33 | data: 34 | first: 35 | name: _DetailNormalMap 36 | second: 37 | m_Texture: {fileID: 0} 38 | m_Scale: {x: 1, y: 1} 39 | m_Offset: {x: 0, y: 0} 40 | data: 41 | first: 42 | name: _ParallaxMap 43 | second: 44 | m_Texture: {fileID: 0} 45 | m_Scale: {x: 1, y: 1} 46 | m_Offset: {x: 0, y: 0} 47 | data: 48 | first: 49 | name: _OcclusionMap 50 | second: 51 | m_Texture: {fileID: 0} 52 | m_Scale: {x: 1, y: 1} 53 | m_Offset: {x: 0, y: 0} 54 | data: 55 | first: 56 | name: _EmissionMap 57 | second: 58 | m_Texture: {fileID: 0} 59 | m_Scale: {x: 1, y: 1} 60 | m_Offset: {x: 0, y: 0} 61 | data: 62 | first: 63 | name: _DetailMask 64 | second: 65 | m_Texture: {fileID: 0} 66 | m_Scale: {x: 1, y: 1} 67 | m_Offset: {x: 0, y: 0} 68 | data: 69 | first: 70 | name: _DetailAlbedoMap 71 | second: 72 | m_Texture: {fileID: 0} 73 | m_Scale: {x: 1, y: 1} 74 | m_Offset: {x: 0, y: 0} 75 | data: 76 | first: 77 | name: _MetallicGlossMap 78 | second: 79 | m_Texture: {fileID: 0} 80 | m_Scale: {x: 1, y: 1} 81 | m_Offset: {x: 0, y: 0} 82 | m_Floats: 83 | data: 84 | first: 85 | name: _SrcBlend 86 | second: 1 87 | data: 88 | first: 89 | name: _DstBlend 90 | second: 0 91 | data: 92 | first: 93 | name: _Cutoff 94 | second: 0.5 95 | data: 96 | first: 97 | name: _Parallax 98 | second: 0.02 99 | data: 100 | first: 101 | name: _ZWrite 102 | second: 1 103 | data: 104 | first: 105 | name: _Glossiness 106 | second: 0.5 107 | data: 108 | first: 109 | name: _BumpScale 110 | second: 1 111 | data: 112 | first: 113 | name: _OcclusionStrength 114 | second: 1 115 | data: 116 | first: 117 | name: _DetailNormalMapScale 118 | second: 1 119 | data: 120 | first: 121 | name: _UVSec 122 | second: 0 123 | data: 124 | first: 125 | name: _Mode 126 | second: 1 127 | data: 128 | first: 129 | name: _Metallic 130 | second: 0 131 | m_Colors: 132 | data: 133 | first: 134 | name: _EmissionColor 135 | second: {r: 0, g: 0, b: 0, a: 1} 136 | data: 137 | first: 138 | name: _Color 139 | second: {r: 1, g: 1, b: 1, a: 1} 140 | -------------------------------------------------------------------------------- /Assets/Materials/AIHeroMaterial.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3097c4d2e1282e14794cdfa411510b5a 3 | timeCreated: 1465595334 4 | licenseType: Free 5 | NativeFormatImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Materials/Board.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 6 6 | m_ObjectHideFlags: 0 7 | m_PrefabParentObject: {fileID: 0} 8 | m_PrefabInternal: {fileID: 0} 9 | m_Name: Board 10 | m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} 11 | m_ShaderKeywords: 12 | m_LightmapFlags: 5 13 | m_CustomRenderQueue: -1 14 | stringTagMap: {} 15 | m_SavedProperties: 16 | serializedVersion: 2 17 | m_TexEnvs: 18 | data: 19 | first: 20 | name: _MainTex 21 | second: 22 | m_Texture: {fileID: 2800000, guid: fe017def247c28244b87af8ae30e086b, type: 3} 23 | m_Scale: {x: 1, y: 1} 24 | m_Offset: {x: 0, y: 0} 25 | data: 26 | first: 27 | name: _BumpMap 28 | second: 29 | m_Texture: {fileID: 0} 30 | m_Scale: {x: 1, y: 1} 31 | m_Offset: {x: 0, y: 0} 32 | data: 33 | first: 34 | name: _DetailNormalMap 35 | second: 36 | m_Texture: {fileID: 0} 37 | m_Scale: {x: 1, y: 1} 38 | m_Offset: {x: 0, y: 0} 39 | data: 40 | first: 41 | name: _ParallaxMap 42 | second: 43 | m_Texture: {fileID: 0} 44 | m_Scale: {x: 1, y: 1} 45 | m_Offset: {x: 0, y: 0} 46 | data: 47 | first: 48 | name: _OcclusionMap 49 | second: 50 | m_Texture: {fileID: 0} 51 | m_Scale: {x: 1, y: 1} 52 | m_Offset: {x: 0, y: 0} 53 | data: 54 | first: 55 | name: _EmissionMap 56 | second: 57 | m_Texture: {fileID: 0} 58 | m_Scale: {x: 1, y: 1} 59 | m_Offset: {x: 0, y: 0} 60 | data: 61 | first: 62 | name: _DetailMask 63 | second: 64 | m_Texture: {fileID: 0} 65 | m_Scale: {x: 1, y: 1} 66 | m_Offset: {x: 0, y: 0} 67 | data: 68 | first: 69 | name: _DetailAlbedoMap 70 | second: 71 | m_Texture: {fileID: 0} 72 | m_Scale: {x: 1, y: 1} 73 | m_Offset: {x: 0, y: 0} 74 | data: 75 | first: 76 | name: _MetallicGlossMap 77 | second: 78 | m_Texture: {fileID: 0} 79 | m_Scale: {x: 1, y: 1} 80 | m_Offset: {x: 0, y: 0} 81 | m_Floats: 82 | data: 83 | first: 84 | name: _SrcBlend 85 | second: 1 86 | data: 87 | first: 88 | name: _DstBlend 89 | second: 0 90 | data: 91 | first: 92 | name: _Cutoff 93 | second: 0.5 94 | data: 95 | first: 96 | name: PixelSnap 97 | second: 0 98 | data: 99 | first: 100 | name: _Parallax 101 | second: 0.02 102 | data: 103 | first: 104 | name: _ZWrite 105 | second: 1 106 | data: 107 | first: 108 | name: _Glossiness 109 | second: 0 110 | data: 111 | first: 112 | name: _BumpScale 113 | second: 1 114 | data: 115 | first: 116 | name: _OcclusionStrength 117 | second: 1 118 | data: 119 | first: 120 | name: _DetailNormalMapScale 121 | second: 1 122 | data: 123 | first: 124 | name: _UVSec 125 | second: 0 126 | data: 127 | first: 128 | name: _Mode 129 | second: 0 130 | data: 131 | first: 132 | name: _Metallic 133 | second: 0 134 | m_Colors: 135 | data: 136 | first: 137 | name: _EmissionColor 138 | second: {r: 0, g: 0, b: 0, a: 1} 139 | data: 140 | first: 141 | name: _Color 142 | second: {r: 1, g: 1, b: 1, a: 1} 143 | -------------------------------------------------------------------------------- /Assets/Materials/Board.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 572cf51ea4c87554bbf9cd1cec335b36 3 | timeCreated: 1465595752 4 | licenseType: Free 5 | NativeFormatImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Materials/CardBack.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 6 6 | m_ObjectHideFlags: 0 7 | m_PrefabParentObject: {fileID: 0} 8 | m_PrefabInternal: {fileID: 0} 9 | m_Name: CardBack 10 | m_Shader: {fileID: 10750, guid: 0000000000000000f000000000000000, type: 0} 11 | m_ShaderKeywords: _ALPHATEST_ON 12 | m_LightmapFlags: 5 13 | m_CustomRenderQueue: 3000 14 | stringTagMap: 15 | RenderType: TransparentCutout 16 | m_SavedProperties: 17 | serializedVersion: 2 18 | m_TexEnvs: 19 | data: 20 | first: 21 | name: _MainTex 22 | second: 23 | m_Texture: {fileID: 2800000, guid: a8c03dfa9ce2a5c409b9a6f96f224e8e, type: 3} 24 | m_Scale: {x: 1, y: 1} 25 | m_Offset: {x: 0, y: 0} 26 | data: 27 | first: 28 | name: _BumpMap 29 | second: 30 | m_Texture: {fileID: 0} 31 | m_Scale: {x: 1, y: 1} 32 | m_Offset: {x: 0, y: 0} 33 | data: 34 | first: 35 | name: _DetailNormalMap 36 | second: 37 | m_Texture: {fileID: 0} 38 | m_Scale: {x: 1, y: 1} 39 | m_Offset: {x: 0, y: 0} 40 | data: 41 | first: 42 | name: _ParallaxMap 43 | second: 44 | m_Texture: {fileID: 0} 45 | m_Scale: {x: 1, y: 1} 46 | m_Offset: {x: 0, y: 0} 47 | data: 48 | first: 49 | name: _OcclusionMap 50 | second: 51 | m_Texture: {fileID: 0} 52 | m_Scale: {x: 1, y: 1} 53 | m_Offset: {x: 0, y: 0} 54 | data: 55 | first: 56 | name: _EmissionMap 57 | second: 58 | m_Texture: {fileID: 0} 59 | m_Scale: {x: 1, y: 1} 60 | m_Offset: {x: 0, y: 0} 61 | data: 62 | first: 63 | name: _DetailMask 64 | second: 65 | m_Texture: {fileID: 0} 66 | m_Scale: {x: 1, y: 1} 67 | m_Offset: {x: 0, y: 0} 68 | data: 69 | first: 70 | name: _DetailAlbedoMap 71 | second: 72 | m_Texture: {fileID: 0} 73 | m_Scale: {x: 1, y: 1} 74 | m_Offset: {x: 0, y: 0} 75 | data: 76 | first: 77 | name: _MetallicGlossMap 78 | second: 79 | m_Texture: {fileID: 0} 80 | m_Scale: {x: 1, y: 1} 81 | m_Offset: {x: 0, y: 0} 82 | m_Floats: 83 | data: 84 | first: 85 | name: _SrcBlend 86 | second: 1 87 | data: 88 | first: 89 | name: _DstBlend 90 | second: 0 91 | data: 92 | first: 93 | name: _Cutoff 94 | second: 0.5 95 | data: 96 | first: 97 | name: _Parallax 98 | second: 0.02 99 | data: 100 | first: 101 | name: _ZWrite 102 | second: 1 103 | data: 104 | first: 105 | name: _Glossiness 106 | second: 0.5 107 | data: 108 | first: 109 | name: _BumpScale 110 | second: 1 111 | data: 112 | first: 113 | name: _OcclusionStrength 114 | second: 1 115 | data: 116 | first: 117 | name: _DetailNormalMapScale 118 | second: 1 119 | data: 120 | first: 121 | name: _UVSec 122 | second: 0 123 | data: 124 | first: 125 | name: _Mode 126 | second: 1 127 | data: 128 | first: 129 | name: _Metallic 130 | second: 0 131 | m_Colors: 132 | data: 133 | first: 134 | name: _EmissionColor 135 | second: {r: 0, g: 0, b: 0, a: 1} 136 | data: 137 | first: 138 | name: _Color 139 | second: {r: 1, g: 1, b: 1, a: 1} 140 | -------------------------------------------------------------------------------- /Assets/Materials/CardBack.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 76b2a854cc9cf064daeb6bf02731e9b9 3 | timeCreated: 1465592271 4 | licenseType: Free 5 | NativeFormatImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Materials/CardFront.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 6 6 | m_ObjectHideFlags: 0 7 | m_PrefabParentObject: {fileID: 0} 8 | m_PrefabInternal: {fileID: 0} 9 | m_Name: CardFront 10 | m_Shader: {fileID: 10750, guid: 0000000000000000f000000000000000, type: 0} 11 | m_ShaderKeywords: _ALPHATEST_ON 12 | m_LightmapFlags: 5 13 | m_CustomRenderQueue: 3000 14 | stringTagMap: 15 | RenderType: TransparentCutout 16 | m_SavedProperties: 17 | serializedVersion: 2 18 | m_TexEnvs: 19 | data: 20 | first: 21 | name: _MainTex 22 | second: 23 | m_Texture: {fileID: 2800000, guid: ad2dc99316c204e4a8f3ab2a7a6b80d6, type: 3} 24 | m_Scale: {x: 1, y: 1} 25 | m_Offset: {x: 0, y: 0} 26 | data: 27 | first: 28 | name: _BumpMap 29 | second: 30 | m_Texture: {fileID: 0} 31 | m_Scale: {x: 1, y: 1} 32 | m_Offset: {x: 0, y: 0} 33 | data: 34 | first: 35 | name: _DetailNormalMap 36 | second: 37 | m_Texture: {fileID: 0} 38 | m_Scale: {x: 1, y: 1} 39 | m_Offset: {x: 0, y: 0} 40 | data: 41 | first: 42 | name: _ParallaxMap 43 | second: 44 | m_Texture: {fileID: 0} 45 | m_Scale: {x: 1, y: 1} 46 | m_Offset: {x: 0, y: 0} 47 | data: 48 | first: 49 | name: _OcclusionMap 50 | second: 51 | m_Texture: {fileID: 0} 52 | m_Scale: {x: 1, y: 1} 53 | m_Offset: {x: 0, y: 0} 54 | data: 55 | first: 56 | name: _EmissionMap 57 | second: 58 | m_Texture: {fileID: 0} 59 | m_Scale: {x: 1, y: 1} 60 | m_Offset: {x: 0, y: 0} 61 | data: 62 | first: 63 | name: _DetailMask 64 | second: 65 | m_Texture: {fileID: 0} 66 | m_Scale: {x: 1, y: 1} 67 | m_Offset: {x: 0, y: 0} 68 | data: 69 | first: 70 | name: _DetailAlbedoMap 71 | second: 72 | m_Texture: {fileID: 0} 73 | m_Scale: {x: 1, y: 1} 74 | m_Offset: {x: 0, y: 0} 75 | data: 76 | first: 77 | name: _MetallicGlossMap 78 | second: 79 | m_Texture: {fileID: 0} 80 | m_Scale: {x: 1, y: 1} 81 | m_Offset: {x: 0, y: 0} 82 | m_Floats: 83 | data: 84 | first: 85 | name: _SrcBlend 86 | second: 1 87 | data: 88 | first: 89 | name: _DstBlend 90 | second: 0 91 | data: 92 | first: 93 | name: _Cutoff 94 | second: 0.5 95 | data: 96 | first: 97 | name: _Parallax 98 | second: 0.02 99 | data: 100 | first: 101 | name: _ZWrite 102 | second: 1 103 | data: 104 | first: 105 | name: _Glossiness 106 | second: 0.5 107 | data: 108 | first: 109 | name: _BumpScale 110 | second: 1 111 | data: 112 | first: 113 | name: _OcclusionStrength 114 | second: 1 115 | data: 116 | first: 117 | name: _DetailNormalMapScale 118 | second: 1 119 | data: 120 | first: 121 | name: _UVSec 122 | second: 0 123 | data: 124 | first: 125 | name: _Mode 126 | second: 1 127 | data: 128 | first: 129 | name: _Metallic 130 | second: 0 131 | m_Colors: 132 | data: 133 | first: 134 | name: _EmissionColor 135 | second: {r: 0, g: 0, b: 0, a: 1} 136 | data: 137 | first: 138 | name: _Color 139 | second: {r: 1, g: 1, b: 1, a: 1} 140 | -------------------------------------------------------------------------------- /Assets/Materials/CardFront.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4738b117aee971e48a4c2a6f873f09bc 3 | timeCreated: 1465130173 4 | licenseType: Free 5 | NativeFormatImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Materials/CardImage.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 6 6 | m_ObjectHideFlags: 0 7 | m_PrefabParentObject: {fileID: 0} 8 | m_PrefabInternal: {fileID: 0} 9 | m_Name: CardImage 10 | m_Shader: {fileID: 10750, guid: 0000000000000000f000000000000000, type: 0} 11 | m_ShaderKeywords: _ALPHATEST_ON 12 | m_LightmapFlags: 5 13 | m_CustomRenderQueue: 3000 14 | stringTagMap: 15 | RenderType: TransparentCutout 16 | m_SavedProperties: 17 | serializedVersion: 2 18 | m_TexEnvs: 19 | data: 20 | first: 21 | name: _MainTex 22 | second: 23 | m_Texture: {fileID: 2800000, guid: b176f8e21fac98948b2b7470b859ec99, type: 3} 24 | m_Scale: {x: 1, y: 1} 25 | m_Offset: {x: 0, y: 0} 26 | data: 27 | first: 28 | name: _BumpMap 29 | second: 30 | m_Texture: {fileID: 0} 31 | m_Scale: {x: 1, y: 1} 32 | m_Offset: {x: 0, y: 0} 33 | data: 34 | first: 35 | name: _DetailNormalMap 36 | second: 37 | m_Texture: {fileID: 0} 38 | m_Scale: {x: 1, y: 1} 39 | m_Offset: {x: 0, y: 0} 40 | data: 41 | first: 42 | name: _ParallaxMap 43 | second: 44 | m_Texture: {fileID: 0} 45 | m_Scale: {x: 1, y: 1} 46 | m_Offset: {x: 0, y: 0} 47 | data: 48 | first: 49 | name: _OcclusionMap 50 | second: 51 | m_Texture: {fileID: 0} 52 | m_Scale: {x: 1, y: 1} 53 | m_Offset: {x: 0, y: 0} 54 | data: 55 | first: 56 | name: _EmissionMap 57 | second: 58 | m_Texture: {fileID: 0} 59 | m_Scale: {x: 1, y: 1} 60 | m_Offset: {x: 0, y: 0} 61 | data: 62 | first: 63 | name: _DetailMask 64 | second: 65 | m_Texture: {fileID: 0} 66 | m_Scale: {x: 1, y: 1} 67 | m_Offset: {x: 0, y: 0} 68 | data: 69 | first: 70 | name: _DetailAlbedoMap 71 | second: 72 | m_Texture: {fileID: 0} 73 | m_Scale: {x: 1, y: 1} 74 | m_Offset: {x: 0, y: 0} 75 | data: 76 | first: 77 | name: _MetallicGlossMap 78 | second: 79 | m_Texture: {fileID: 0} 80 | m_Scale: {x: 1, y: 1} 81 | m_Offset: {x: 0, y: 0} 82 | m_Floats: 83 | data: 84 | first: 85 | name: _SrcBlend 86 | second: 1 87 | data: 88 | first: 89 | name: _DstBlend 90 | second: 0 91 | data: 92 | first: 93 | name: _Cutoff 94 | second: 0.5 95 | data: 96 | first: 97 | name: _Parallax 98 | second: 0.02 99 | data: 100 | first: 101 | name: _ZWrite 102 | second: 1 103 | data: 104 | first: 105 | name: _Glossiness 106 | second: 0.5 107 | data: 108 | first: 109 | name: _BumpScale 110 | second: 1 111 | data: 112 | first: 113 | name: _OcclusionStrength 114 | second: 1 115 | data: 116 | first: 117 | name: _DetailNormalMapScale 118 | second: 1 119 | data: 120 | first: 121 | name: _UVSec 122 | second: 0 123 | data: 124 | first: 125 | name: _Mode 126 | second: 1 127 | data: 128 | first: 129 | name: _Metallic 130 | second: 0 131 | m_Colors: 132 | data: 133 | first: 134 | name: _EmissionColor 135 | second: {r: 0, g: 0, b: 0, a: 1} 136 | data: 137 | first: 138 | name: _Color 139 | second: {r: 1, g: 1, b: 1, a: 1} 140 | -------------------------------------------------------------------------------- /Assets/Materials/CardImage.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8a4d893578d4ba84d9a4eca06c08e4e5 3 | timeCreated: 1465733536 4 | licenseType: Free 5 | NativeFormatImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Materials/MyHeroMaterial.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 6 6 | m_ObjectHideFlags: 0 7 | m_PrefabParentObject: {fileID: 0} 8 | m_PrefabInternal: {fileID: 0} 9 | m_Name: MyHeroMaterial 10 | m_Shader: {fileID: 10751, guid: 0000000000000000f000000000000000, type: 0} 11 | m_ShaderKeywords: _ALPHATEST_ON 12 | m_LightmapFlags: 5 13 | m_CustomRenderQueue: 2450 14 | stringTagMap: 15 | RenderType: TransparentCutout 16 | m_SavedProperties: 17 | serializedVersion: 2 18 | m_TexEnvs: 19 | data: 20 | first: 21 | name: _MainTex 22 | second: 23 | m_Texture: {fileID: 2800000, guid: 9f974a5e27ec393449d14b8cfcd4be86, type: 3} 24 | m_Scale: {x: 1, y: 1} 25 | m_Offset: {x: 0, y: 0} 26 | data: 27 | first: 28 | name: _BumpMap 29 | second: 30 | m_Texture: {fileID: 0} 31 | m_Scale: {x: 1, y: 1} 32 | m_Offset: {x: 0, y: 0} 33 | data: 34 | first: 35 | name: _DetailNormalMap 36 | second: 37 | m_Texture: {fileID: 0} 38 | m_Scale: {x: 1, y: 1} 39 | m_Offset: {x: 0, y: 0} 40 | data: 41 | first: 42 | name: _ParallaxMap 43 | second: 44 | m_Texture: {fileID: 0} 45 | m_Scale: {x: 1, y: 1} 46 | m_Offset: {x: 0, y: 0} 47 | data: 48 | first: 49 | name: _OcclusionMap 50 | second: 51 | m_Texture: {fileID: 0} 52 | m_Scale: {x: 1, y: 1} 53 | m_Offset: {x: 0, y: 0} 54 | data: 55 | first: 56 | name: _EmissionMap 57 | second: 58 | m_Texture: {fileID: 0} 59 | m_Scale: {x: 1, y: 1} 60 | m_Offset: {x: 0, y: 0} 61 | data: 62 | first: 63 | name: _DetailMask 64 | second: 65 | m_Texture: {fileID: 0} 66 | m_Scale: {x: 1, y: 1} 67 | m_Offset: {x: 0, y: 0} 68 | data: 69 | first: 70 | name: _DetailAlbedoMap 71 | second: 72 | m_Texture: {fileID: 0} 73 | m_Scale: {x: 1, y: 1} 74 | m_Offset: {x: 0, y: 0} 75 | data: 76 | first: 77 | name: _MetallicGlossMap 78 | second: 79 | m_Texture: {fileID: 0} 80 | m_Scale: {x: 1, y: 1} 81 | m_Offset: {x: 0, y: 0} 82 | m_Floats: 83 | data: 84 | first: 85 | name: _SrcBlend 86 | second: 1 87 | data: 88 | first: 89 | name: _DstBlend 90 | second: 0 91 | data: 92 | first: 93 | name: _Cutoff 94 | second: 0.5 95 | data: 96 | first: 97 | name: _Parallax 98 | second: 0.02 99 | data: 100 | first: 101 | name: _ZWrite 102 | second: 1 103 | data: 104 | first: 105 | name: _Glossiness 106 | second: 0.5 107 | data: 108 | first: 109 | name: _BumpScale 110 | second: 1 111 | data: 112 | first: 113 | name: _OcclusionStrength 114 | second: 1 115 | data: 116 | first: 117 | name: _DetailNormalMapScale 118 | second: 1 119 | data: 120 | first: 121 | name: _UVSec 122 | second: 0 123 | data: 124 | first: 125 | name: _Mode 126 | second: 1 127 | data: 128 | first: 129 | name: _Metallic 130 | second: 0 131 | m_Colors: 132 | data: 133 | first: 134 | name: _EmissionColor 135 | second: {r: 0, g: 0, b: 0, a: 1} 136 | data: 137 | first: 138 | name: _Color 139 | second: {r: 1, g: 1, b: 1, a: 1} 140 | -------------------------------------------------------------------------------- /Assets/Materials/MyHeroMaterial.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 96cf6dfd0617e7e4798d9b78d6ddb401 3 | timeCreated: 1465594108 4 | licenseType: Free 5 | NativeFormatImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Materials/Physic Material.physicMaterial: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!134 &13400000 4 | PhysicMaterial: 5 | m_ObjectHideFlags: 0 6 | m_PrefabParentObject: {fileID: 0} 7 | m_PrefabInternal: {fileID: 0} 8 | m_Name: Physic Material 9 | dynamicFriction: 0.6 10 | staticFriction: 0.6 11 | bounciness: 0.6 12 | frictionCombine: 0 13 | bounceCombine: 0 14 | -------------------------------------------------------------------------------- /Assets/Materials/Physic Material.physicMaterial.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4294a6fccca7a4645833d013691773c3 3 | timeCreated: 1465591419 4 | licenseType: Free 5 | NativeFormatImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Prefabs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 75be1acb5d12f464bbddf0004d71b4dd 3 | folderAsset: yes 4 | timeCreated: 1465130609 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Prefabs/Card.prefab: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1 &106142 4 | GameObject: 5 | m_ObjectHideFlags: 1 6 | m_PrefabParentObject: {fileID: 0} 7 | m_PrefabInternal: {fileID: 100100000} 8 | serializedVersion: 4 9 | m_Component: 10 | - 4: {fileID: 474602} 11 | - 33: {fileID: 3357818} 12 | - 23: {fileID: 2387164} 13 | m_Layer: 0 14 | m_Name: Front-Data 15 | m_TagString: Untagged 16 | m_Icon: {fileID: 0} 17 | m_NavMeshLayer: 0 18 | m_StaticEditorFlags: 0 19 | m_IsActive: 1 20 | --- !u!1 &124204 21 | GameObject: 22 | m_ObjectHideFlags: 0 23 | m_PrefabParentObject: {fileID: 0} 24 | m_PrefabInternal: {fileID: 100100000} 25 | serializedVersion: 4 26 | m_Component: 27 | - 4: {fileID: 483702} 28 | - 23: {fileID: 2363802} 29 | - 102: {fileID: 10274396} 30 | m_Layer: 0 31 | m_Name: description 32 | m_TagString: Untagged 33 | m_Icon: {fileID: 0} 34 | m_NavMeshLayer: 0 35 | m_StaticEditorFlags: 0 36 | m_IsActive: 1 37 | --- !u!1 &130132 38 | GameObject: 39 | m_ObjectHideFlags: 0 40 | m_PrefabParentObject: {fileID: 0} 41 | m_PrefabInternal: {fileID: 100100000} 42 | serializedVersion: 4 43 | m_Component: 44 | - 4: {fileID: 442874} 45 | - 23: {fileID: 2354742} 46 | - 102: {fileID: 10241890} 47 | m_Layer: 0 48 | m_Name: Name 49 | m_TagString: Untagged 50 | m_Icon: {fileID: 0} 51 | m_NavMeshLayer: 0 52 | m_StaticEditorFlags: 0 53 | m_IsActive: 1 54 | --- !u!1 &141532 55 | GameObject: 56 | m_ObjectHideFlags: 1 57 | m_PrefabParentObject: {fileID: 0} 58 | m_PrefabInternal: {fileID: 100100000} 59 | serializedVersion: 4 60 | m_Component: 61 | - 4: {fileID: 442608} 62 | - 33: {fileID: 3397042} 63 | - 64: {fileID: 6485782} 64 | - 23: {fileID: 2353864} 65 | m_Layer: 0 66 | m_Name: Image 67 | m_TagString: Untagged 68 | m_Icon: {fileID: 0} 69 | m_NavMeshLayer: 0 70 | m_StaticEditorFlags: 0 71 | m_IsActive: 1 72 | --- !u!1 &143300 73 | GameObject: 74 | m_ObjectHideFlags: 1 75 | m_PrefabParentObject: {fileID: 0} 76 | m_PrefabInternal: {fileID: 100100000} 77 | serializedVersion: 4 78 | m_Component: 79 | - 4: {fileID: 408222} 80 | - 33: {fileID: 3376462} 81 | - 23: {fileID: 2301574} 82 | m_Layer: 0 83 | m_Name: Back 84 | m_TagString: Untagged 85 | m_Icon: {fileID: 0} 86 | m_NavMeshLayer: 0 87 | m_StaticEditorFlags: 0 88 | m_IsActive: 1 89 | --- !u!1 &148974 90 | GameObject: 91 | m_ObjectHideFlags: 0 92 | m_PrefabParentObject: {fileID: 0} 93 | m_PrefabInternal: {fileID: 100100000} 94 | serializedVersion: 4 95 | m_Component: 96 | - 4: {fileID: 469624} 97 | - 65: {fileID: 6577442} 98 | - 54: {fileID: 5423604} 99 | - 114: {fileID: 11423862} 100 | m_Layer: 0 101 | m_Name: Card 102 | m_TagString: Card 103 | m_Icon: {fileID: 0} 104 | m_NavMeshLayer: 0 105 | m_StaticEditorFlags: 0 106 | m_IsActive: 1 107 | --- !u!1 &154520 108 | GameObject: 109 | m_ObjectHideFlags: 0 110 | m_PrefabParentObject: {fileID: 0} 111 | m_PrefabInternal: {fileID: 100100000} 112 | serializedVersion: 4 113 | m_Component: 114 | - 4: {fileID: 455054} 115 | m_Layer: 0 116 | m_Name: ART 117 | m_TagString: Untagged 118 | m_Icon: {fileID: 0} 119 | m_NavMeshLayer: 0 120 | m_StaticEditorFlags: 0 121 | m_IsActive: 1 122 | --- !u!1 &178322 123 | GameObject: 124 | m_ObjectHideFlags: 0 125 | m_PrefabParentObject: {fileID: 0} 126 | m_PrefabInternal: {fileID: 100100000} 127 | serializedVersion: 4 128 | m_Component: 129 | - 4: {fileID: 414952} 130 | - 23: {fileID: 2349044} 131 | - 102: {fileID: 10285778} 132 | m_Layer: 0 133 | m_Name: Debug 134 | m_TagString: Untagged 135 | m_Icon: {fileID: 0} 136 | m_NavMeshLayer: 0 137 | m_StaticEditorFlags: 0 138 | m_IsActive: 1 139 | --- !u!1 &179944 140 | GameObject: 141 | m_ObjectHideFlags: 0 142 | m_PrefabParentObject: {fileID: 0} 143 | m_PrefabInternal: {fileID: 100100000} 144 | serializedVersion: 4 145 | m_Component: 146 | - 4: {fileID: 402654} 147 | - 23: {fileID: 2340278} 148 | - 102: {fileID: 10282412} 149 | m_Layer: 0 150 | m_Name: Mana 151 | m_TagString: Untagged 152 | m_Icon: {fileID: 0} 153 | m_NavMeshLayer: 0 154 | m_StaticEditorFlags: 0 155 | m_IsActive: 1 156 | --- !u!1 &191496 157 | GameObject: 158 | m_ObjectHideFlags: 0 159 | m_PrefabParentObject: {fileID: 0} 160 | m_PrefabInternal: {fileID: 100100000} 161 | serializedVersion: 4 162 | m_Component: 163 | - 4: {fileID: 448466} 164 | - 23: {fileID: 2312634} 165 | - 102: {fileID: 10294676} 166 | m_Layer: 0 167 | m_Name: Attack 168 | m_TagString: Untagged 169 | m_Icon: {fileID: 0} 170 | m_NavMeshLayer: 0 171 | m_StaticEditorFlags: 0 172 | m_IsActive: 1 173 | --- !u!1 &198768 174 | GameObject: 175 | m_ObjectHideFlags: 0 176 | m_PrefabParentObject: {fileID: 0} 177 | m_PrefabInternal: {fileID: 100100000} 178 | serializedVersion: 4 179 | m_Component: 180 | - 4: {fileID: 456882} 181 | - 23: {fileID: 2357852} 182 | - 102: {fileID: 10206682} 183 | m_Layer: 0 184 | m_Name: Health 185 | m_TagString: Untagged 186 | m_Icon: {fileID: 0} 187 | m_NavMeshLayer: 0 188 | m_StaticEditorFlags: 0 189 | m_IsActive: 1 190 | --- !u!4 &402654 191 | Transform: 192 | m_ObjectHideFlags: 1 193 | m_PrefabParentObject: {fileID: 0} 194 | m_PrefabInternal: {fileID: 100100000} 195 | m_GameObject: {fileID: 179944} 196 | m_LocalRotation: {x: 0, y: -1, z: 0, w: -0.00000016292068} 197 | m_LocalPosition: {x: 0.499, y: 0.748, z: 0.1} 198 | m_LocalScale: {x: 1, y: 1, z: 1} 199 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 200 | m_Children: [] 201 | m_Father: {fileID: 469624} 202 | m_RootOrder: 5 203 | --- !u!4 &408222 204 | Transform: 205 | m_ObjectHideFlags: 1 206 | m_PrefabParentObject: {fileID: 0} 207 | m_PrefabInternal: {fileID: 100100000} 208 | m_GameObject: {fileID: 143300} 209 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 210 | m_LocalPosition: {x: 0, y: 0, z: 0} 211 | m_LocalScale: {x: 1.5, y: 2, z: 1} 212 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 213 | m_Children: [] 214 | m_Father: {fileID: 455054} 215 | m_RootOrder: 1 216 | --- !u!4 &414952 217 | Transform: 218 | m_ObjectHideFlags: 1 219 | m_PrefabParentObject: {fileID: 0} 220 | m_PrefabInternal: {fileID: 100100000} 221 | m_GameObject: {fileID: 178322} 222 | m_LocalRotation: {x: 0, y: -1, z: 0, w: -0.00000016292068} 223 | m_LocalPosition: {x: -0.04699997, y: -0.617, z: 0.09999989} 224 | m_LocalScale: {x: 1, y: 1, z: 1} 225 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 226 | m_Children: [] 227 | m_Father: {fileID: 469624} 228 | m_RootOrder: 6 229 | --- !u!4 &442608 230 | Transform: 231 | m_ObjectHideFlags: 1 232 | m_PrefabParentObject: {fileID: 0} 233 | m_PrefabInternal: {fileID: 100100000} 234 | m_GameObject: {fileID: 141532} 235 | m_LocalRotation: {x: 0, y: 1, z: 0, w: -0.00000016292068} 236 | m_LocalPosition: {x: -0.078, y: 0.364, z: -0.1} 237 | m_LocalScale: {x: 1, y: 1, z: 1} 238 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 239 | m_Children: [] 240 | m_Father: {fileID: 455054} 241 | m_RootOrder: 2 242 | --- !u!4 &442874 243 | Transform: 244 | m_ObjectHideFlags: 1 245 | m_PrefabParentObject: {fileID: 0} 246 | m_PrefabInternal: {fileID: 100100000} 247 | m_GameObject: {fileID: 130132} 248 | m_LocalRotation: {x: 0, y: -1, z: 0, w: -0.00000016292068} 249 | m_LocalPosition: {x: -0.047, y: -0.029, z: 0.1} 250 | m_LocalScale: {x: 1, y: 1, z: 1} 251 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 252 | m_Children: [] 253 | m_Father: {fileID: 469624} 254 | m_RootOrder: 1 255 | --- !u!4 &448466 256 | Transform: 257 | m_ObjectHideFlags: 1 258 | m_PrefabParentObject: {fileID: 0} 259 | m_PrefabInternal: {fileID: 100100000} 260 | m_GameObject: {fileID: 191496} 261 | m_LocalRotation: {x: 0, y: -1, z: 0, w: -0.00000016292068} 262 | m_LocalPosition: {x: 0.469, y: -0.767, z: 0.1} 263 | m_LocalScale: {x: 1, y: 1, z: 1} 264 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 265 | m_Children: [] 266 | m_Father: {fileID: 469624} 267 | m_RootOrder: 4 268 | --- !u!4 &455054 269 | Transform: 270 | m_ObjectHideFlags: 1 271 | m_PrefabParentObject: {fileID: 0} 272 | m_PrefabInternal: {fileID: 100100000} 273 | m_GameObject: {fileID: 154520} 274 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 275 | m_LocalPosition: {x: 0, y: 0, z: 0} 276 | m_LocalScale: {x: 1, y: 1, z: 1} 277 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 278 | m_Children: 279 | - {fileID: 474602} 280 | - {fileID: 408222} 281 | - {fileID: 442608} 282 | m_Father: {fileID: 469624} 283 | m_RootOrder: 0 284 | --- !u!4 &456882 285 | Transform: 286 | m_ObjectHideFlags: 1 287 | m_PrefabParentObject: {fileID: 0} 288 | m_PrefabInternal: {fileID: 100100000} 289 | m_GameObject: {fileID: 198768} 290 | m_LocalRotation: {x: 0, y: -1, z: 0, w: -0.00000016292068} 291 | m_LocalPosition: {x: -0.548, y: -0.767, z: 0.1} 292 | m_LocalScale: {x: 1, y: 1, z: 1} 293 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 294 | m_Children: [] 295 | m_Father: {fileID: 469624} 296 | m_RootOrder: 3 297 | --- !u!4 &469624 298 | Transform: 299 | m_ObjectHideFlags: 1 300 | m_PrefabParentObject: {fileID: 0} 301 | m_PrefabInternal: {fileID: 100100000} 302 | m_GameObject: {fileID: 148974} 303 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 304 | m_LocalPosition: {x: 0, y: 0, z: 0} 305 | m_LocalScale: {x: 1, y: 1, z: 1} 306 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 307 | m_Children: 308 | - {fileID: 455054} 309 | - {fileID: 442874} 310 | - {fileID: 483702} 311 | - {fileID: 456882} 312 | - {fileID: 448466} 313 | - {fileID: 402654} 314 | - {fileID: 414952} 315 | m_Father: {fileID: 0} 316 | m_RootOrder: 0 317 | --- !u!4 &474602 318 | Transform: 319 | m_ObjectHideFlags: 1 320 | m_PrefabParentObject: {fileID: 0} 321 | m_PrefabInternal: {fileID: 100100000} 322 | m_GameObject: {fileID: 106142} 323 | m_LocalRotation: {x: 0, y: -1, z: 0, w: 0.000002324581} 324 | m_LocalPosition: {x: 0, y: 0, z: 0} 325 | m_LocalScale: {x: 1.5, y: 2, z: 1} 326 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 327 | m_Children: [] 328 | m_Father: {fileID: 455054} 329 | m_RootOrder: 0 330 | --- !u!4 &483702 331 | Transform: 332 | m_ObjectHideFlags: 1 333 | m_PrefabParentObject: {fileID: 0} 334 | m_PrefabInternal: {fileID: 100100000} 335 | m_GameObject: {fileID: 124204} 336 | m_LocalRotation: {x: 0, y: -1, z: 0, w: -0.00000016292068} 337 | m_LocalPosition: {x: -0.04699997, y: -0.328, z: 0.09999989} 338 | m_LocalScale: {x: 1, y: 1, z: 1} 339 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 340 | m_Children: [] 341 | m_Father: {fileID: 469624} 342 | m_RootOrder: 2 343 | --- !u!23 &2301574 344 | MeshRenderer: 345 | m_ObjectHideFlags: 1 346 | m_PrefabParentObject: {fileID: 0} 347 | m_PrefabInternal: {fileID: 100100000} 348 | m_GameObject: {fileID: 143300} 349 | m_Enabled: 1 350 | m_CastShadows: 1 351 | m_ReceiveShadows: 1 352 | m_Materials: 353 | - {fileID: 2100000, guid: 76b2a854cc9cf064daeb6bf02731e9b9, type: 2} 354 | m_SubsetIndices: 355 | m_StaticBatchRoot: {fileID: 0} 356 | m_UseLightProbes: 1 357 | m_ReflectionProbeUsage: 1 358 | m_ProbeAnchor: {fileID: 0} 359 | m_ScaleInLightmap: 1 360 | m_PreserveUVs: 1 361 | m_IgnoreNormalsForChartDetection: 0 362 | m_ImportantGI: 0 363 | m_MinimumChartSize: 4 364 | m_AutoUVMaxDistance: 0.5 365 | m_AutoUVMaxAngle: 89 366 | m_LightmapParameters: {fileID: 0} 367 | m_SortingLayerID: 0 368 | m_SortingOrder: 0 369 | --- !u!23 &2312634 370 | MeshRenderer: 371 | m_ObjectHideFlags: 1 372 | m_PrefabParentObject: {fileID: 0} 373 | m_PrefabInternal: {fileID: 100100000} 374 | m_GameObject: {fileID: 191496} 375 | m_Enabled: 1 376 | m_CastShadows: 0 377 | m_ReceiveShadows: 0 378 | m_Materials: 379 | - {fileID: 10100, guid: 0000000000000000e000000000000000, type: 0} 380 | m_SubsetIndices: 381 | m_StaticBatchRoot: {fileID: 0} 382 | m_UseLightProbes: 1 383 | m_ReflectionProbeUsage: 1 384 | m_ProbeAnchor: {fileID: 0} 385 | m_ScaleInLightmap: 1 386 | m_PreserveUVs: 0 387 | m_IgnoreNormalsForChartDetection: 0 388 | m_ImportantGI: 0 389 | m_MinimumChartSize: 4 390 | m_AutoUVMaxDistance: 0.5 391 | m_AutoUVMaxAngle: 89 392 | m_LightmapParameters: {fileID: 0} 393 | m_SortingLayerID: 0 394 | m_SortingOrder: 0 395 | --- !u!23 &2340278 396 | MeshRenderer: 397 | m_ObjectHideFlags: 1 398 | m_PrefabParentObject: {fileID: 0} 399 | m_PrefabInternal: {fileID: 100100000} 400 | m_GameObject: {fileID: 179944} 401 | m_Enabled: 1 402 | m_CastShadows: 0 403 | m_ReceiveShadows: 0 404 | m_Materials: 405 | - {fileID: 10100, guid: 0000000000000000e000000000000000, type: 0} 406 | m_SubsetIndices: 407 | m_StaticBatchRoot: {fileID: 0} 408 | m_UseLightProbes: 1 409 | m_ReflectionProbeUsage: 1 410 | m_ProbeAnchor: {fileID: 0} 411 | m_ScaleInLightmap: 1 412 | m_PreserveUVs: 0 413 | m_IgnoreNormalsForChartDetection: 0 414 | m_ImportantGI: 0 415 | m_MinimumChartSize: 4 416 | m_AutoUVMaxDistance: 0.5 417 | m_AutoUVMaxAngle: 89 418 | m_LightmapParameters: {fileID: 0} 419 | m_SortingLayerID: 0 420 | m_SortingOrder: 0 421 | --- !u!23 &2349044 422 | MeshRenderer: 423 | m_ObjectHideFlags: 1 424 | m_PrefabParentObject: {fileID: 0} 425 | m_PrefabInternal: {fileID: 100100000} 426 | m_GameObject: {fileID: 178322} 427 | m_Enabled: 1 428 | m_CastShadows: 0 429 | m_ReceiveShadows: 0 430 | m_Materials: 431 | - {fileID: 10100, guid: 0000000000000000e000000000000000, type: 0} 432 | m_SubsetIndices: 433 | m_StaticBatchRoot: {fileID: 0} 434 | m_UseLightProbes: 1 435 | m_ReflectionProbeUsage: 1 436 | m_ProbeAnchor: {fileID: 0} 437 | m_ScaleInLightmap: 1 438 | m_PreserveUVs: 0 439 | m_IgnoreNormalsForChartDetection: 0 440 | m_ImportantGI: 0 441 | m_MinimumChartSize: 4 442 | m_AutoUVMaxDistance: 0.5 443 | m_AutoUVMaxAngle: 89 444 | m_LightmapParameters: {fileID: 0} 445 | m_SortingLayerID: 0 446 | m_SortingOrder: 0 447 | --- !u!23 &2353864 448 | MeshRenderer: 449 | m_ObjectHideFlags: 1 450 | m_PrefabParentObject: {fileID: 0} 451 | m_PrefabInternal: {fileID: 100100000} 452 | m_GameObject: {fileID: 141532} 453 | m_Enabled: 1 454 | m_CastShadows: 1 455 | m_ReceiveShadows: 1 456 | m_Materials: 457 | - {fileID: 2100000, guid: 8a4d893578d4ba84d9a4eca06c08e4e5, type: 2} 458 | m_SubsetIndices: 459 | m_StaticBatchRoot: {fileID: 0} 460 | m_UseLightProbes: 1 461 | m_ReflectionProbeUsage: 1 462 | m_ProbeAnchor: {fileID: 0} 463 | m_ScaleInLightmap: 1 464 | m_PreserveUVs: 1 465 | m_IgnoreNormalsForChartDetection: 0 466 | m_ImportantGI: 0 467 | m_MinimumChartSize: 4 468 | m_AutoUVMaxDistance: 0.5 469 | m_AutoUVMaxAngle: 89 470 | m_LightmapParameters: {fileID: 0} 471 | m_SortingLayerID: 0 472 | m_SortingOrder: 0 473 | --- !u!23 &2354742 474 | MeshRenderer: 475 | m_ObjectHideFlags: 1 476 | m_PrefabParentObject: {fileID: 0} 477 | m_PrefabInternal: {fileID: 100100000} 478 | m_GameObject: {fileID: 130132} 479 | m_Enabled: 1 480 | m_CastShadows: 0 481 | m_ReceiveShadows: 0 482 | m_Materials: 483 | - {fileID: 10100, guid: 0000000000000000e000000000000000, type: 0} 484 | m_SubsetIndices: 485 | m_StaticBatchRoot: {fileID: 0} 486 | m_UseLightProbes: 1 487 | m_ReflectionProbeUsage: 1 488 | m_ProbeAnchor: {fileID: 0} 489 | m_ScaleInLightmap: 1 490 | m_PreserveUVs: 0 491 | m_IgnoreNormalsForChartDetection: 0 492 | m_ImportantGI: 0 493 | m_MinimumChartSize: 4 494 | m_AutoUVMaxDistance: 0.5 495 | m_AutoUVMaxAngle: 89 496 | m_LightmapParameters: {fileID: 0} 497 | m_SortingLayerID: 0 498 | m_SortingOrder: 0 499 | --- !u!23 &2357852 500 | MeshRenderer: 501 | m_ObjectHideFlags: 1 502 | m_PrefabParentObject: {fileID: 0} 503 | m_PrefabInternal: {fileID: 100100000} 504 | m_GameObject: {fileID: 198768} 505 | m_Enabled: 1 506 | m_CastShadows: 0 507 | m_ReceiveShadows: 0 508 | m_Materials: 509 | - {fileID: 10100, guid: 0000000000000000e000000000000000, type: 0} 510 | m_SubsetIndices: 511 | m_StaticBatchRoot: {fileID: 0} 512 | m_UseLightProbes: 1 513 | m_ReflectionProbeUsage: 1 514 | m_ProbeAnchor: {fileID: 0} 515 | m_ScaleInLightmap: 1 516 | m_PreserveUVs: 0 517 | m_IgnoreNormalsForChartDetection: 0 518 | m_ImportantGI: 0 519 | m_MinimumChartSize: 4 520 | m_AutoUVMaxDistance: 0.5 521 | m_AutoUVMaxAngle: 89 522 | m_LightmapParameters: {fileID: 0} 523 | m_SortingLayerID: 0 524 | m_SortingOrder: 0 525 | --- !u!23 &2363802 526 | MeshRenderer: 527 | m_ObjectHideFlags: 1 528 | m_PrefabParentObject: {fileID: 0} 529 | m_PrefabInternal: {fileID: 100100000} 530 | m_GameObject: {fileID: 124204} 531 | m_Enabled: 1 532 | m_CastShadows: 0 533 | m_ReceiveShadows: 0 534 | m_Materials: 535 | - {fileID: 10100, guid: 0000000000000000e000000000000000, type: 0} 536 | m_SubsetIndices: 537 | m_StaticBatchRoot: {fileID: 0} 538 | m_UseLightProbes: 1 539 | m_ReflectionProbeUsage: 1 540 | m_ProbeAnchor: {fileID: 0} 541 | m_ScaleInLightmap: 1 542 | m_PreserveUVs: 0 543 | m_IgnoreNormalsForChartDetection: 0 544 | m_ImportantGI: 0 545 | m_MinimumChartSize: 4 546 | m_AutoUVMaxDistance: 0.5 547 | m_AutoUVMaxAngle: 89 548 | m_LightmapParameters: {fileID: 0} 549 | m_SortingLayerID: 0 550 | m_SortingOrder: 0 551 | --- !u!23 &2387164 552 | MeshRenderer: 553 | m_ObjectHideFlags: 1 554 | m_PrefabParentObject: {fileID: 0} 555 | m_PrefabInternal: {fileID: 100100000} 556 | m_GameObject: {fileID: 106142} 557 | m_Enabled: 1 558 | m_CastShadows: 1 559 | m_ReceiveShadows: 1 560 | m_Materials: 561 | - {fileID: 2100000, guid: 4738b117aee971e48a4c2a6f873f09bc, type: 2} 562 | m_SubsetIndices: 563 | m_StaticBatchRoot: {fileID: 0} 564 | m_UseLightProbes: 1 565 | m_ReflectionProbeUsage: 1 566 | m_ProbeAnchor: {fileID: 0} 567 | m_ScaleInLightmap: 1 568 | m_PreserveUVs: 1 569 | m_IgnoreNormalsForChartDetection: 0 570 | m_ImportantGI: 0 571 | m_MinimumChartSize: 4 572 | m_AutoUVMaxDistance: 0.5 573 | m_AutoUVMaxAngle: 89 574 | m_LightmapParameters: {fileID: 0} 575 | m_SortingLayerID: 0 576 | m_SortingOrder: 0 577 | --- !u!33 &3357818 578 | MeshFilter: 579 | m_ObjectHideFlags: 1 580 | m_PrefabParentObject: {fileID: 0} 581 | m_PrefabInternal: {fileID: 100100000} 582 | m_GameObject: {fileID: 106142} 583 | m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} 584 | --- !u!33 &3376462 585 | MeshFilter: 586 | m_ObjectHideFlags: 1 587 | m_PrefabParentObject: {fileID: 0} 588 | m_PrefabInternal: {fileID: 100100000} 589 | m_GameObject: {fileID: 143300} 590 | m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} 591 | --- !u!33 &3397042 592 | MeshFilter: 593 | m_ObjectHideFlags: 1 594 | m_PrefabParentObject: {fileID: 0} 595 | m_PrefabInternal: {fileID: 100100000} 596 | m_GameObject: {fileID: 141532} 597 | m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} 598 | --- !u!54 &5423604 599 | Rigidbody: 600 | m_ObjectHideFlags: 1 601 | m_PrefabParentObject: {fileID: 0} 602 | m_PrefabInternal: {fileID: 100100000} 603 | m_GameObject: {fileID: 148974} 604 | serializedVersion: 2 605 | m_Mass: 1 606 | m_Drag: 0 607 | m_AngularDrag: 0.05 608 | m_UseGravity: 1 609 | m_IsKinematic: 0 610 | m_Interpolate: 0 611 | m_Constraints: 0 612 | m_CollisionDetection: 2 613 | --- !u!64 &6485782 614 | MeshCollider: 615 | m_ObjectHideFlags: 1 616 | m_PrefabParentObject: {fileID: 0} 617 | m_PrefabInternal: {fileID: 100100000} 618 | m_GameObject: {fileID: 141532} 619 | m_Material: {fileID: 0} 620 | m_IsTrigger: 0 621 | m_Enabled: 1 622 | serializedVersion: 2 623 | m_Convex: 0 624 | m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} 625 | --- !u!65 &6577442 626 | BoxCollider: 627 | m_ObjectHideFlags: 1 628 | m_PrefabParentObject: {fileID: 0} 629 | m_PrefabInternal: {fileID: 100100000} 630 | m_GameObject: {fileID: 148974} 631 | m_Material: {fileID: 13400000, guid: 4294a6fccca7a4645833d013691773c3, type: 2} 632 | m_IsTrigger: 0 633 | m_Enabled: 1 634 | serializedVersion: 2 635 | m_Size: {x: 1.5, y: 2, z: 0.1} 636 | m_Center: {x: 0, y: 0, z: 0} 637 | --- !u!102 &10206682 638 | TextMesh: 639 | serializedVersion: 3 640 | m_ObjectHideFlags: 1 641 | m_PrefabParentObject: {fileID: 0} 642 | m_PrefabInternal: {fileID: 100100000} 643 | m_GameObject: {fileID: 198768} 644 | m_Text: H 645 | m_OffsetZ: 0 646 | m_CharacterSize: 0.006 647 | m_LineSpacing: 1 648 | m_Anchor: 4 649 | m_Alignment: 0 650 | m_TabSize: 4 651 | m_FontSize: 500 652 | m_FontStyle: 1 653 | m_RichText: 0 654 | m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} 655 | m_Color: 656 | serializedVersion: 2 657 | rgba: 4294967295 658 | --- !u!102 &10241890 659 | TextMesh: 660 | serializedVersion: 3 661 | m_ObjectHideFlags: 1 662 | m_PrefabParentObject: {fileID: 0} 663 | m_PrefabInternal: {fileID: 100100000} 664 | m_GameObject: {fileID: 130132} 665 | m_Text: Name 666 | m_OffsetZ: 0 667 | m_CharacterSize: 0.003 668 | m_LineSpacing: 1 669 | m_Anchor: 4 670 | m_Alignment: 0 671 | m_TabSize: 4 672 | m_FontSize: 500 673 | m_FontStyle: 1 674 | m_RichText: 0 675 | m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} 676 | m_Color: 677 | serializedVersion: 2 678 | rgba: 4294967295 679 | --- !u!102 &10274396 680 | TextMesh: 681 | serializedVersion: 3 682 | m_ObjectHideFlags: 1 683 | m_PrefabParentObject: {fileID: 0} 684 | m_PrefabInternal: {fileID: 100100000} 685 | m_GameObject: {fileID: 124204} 686 | m_Text: Description 687 | m_OffsetZ: 0 688 | m_CharacterSize: 0.003 689 | m_LineSpacing: 1 690 | m_Anchor: 4 691 | m_Alignment: 0 692 | m_TabSize: 4 693 | m_FontSize: 500 694 | m_FontStyle: 1 695 | m_RichText: 0 696 | m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} 697 | m_Color: 698 | serializedVersion: 2 699 | rgba: 4294967295 700 | --- !u!102 &10282412 701 | TextMesh: 702 | serializedVersion: 3 703 | m_ObjectHideFlags: 1 704 | m_PrefabParentObject: {fileID: 0} 705 | m_PrefabInternal: {fileID: 100100000} 706 | m_GameObject: {fileID: 179944} 707 | m_Text: M 708 | m_OffsetZ: 0 709 | m_CharacterSize: 0.006 710 | m_LineSpacing: 1 711 | m_Anchor: 4 712 | m_Alignment: 0 713 | m_TabSize: 4 714 | m_FontSize: 500 715 | m_FontStyle: 1 716 | m_RichText: 0 717 | m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} 718 | m_Color: 719 | serializedVersion: 2 720 | rgba: 4294967295 721 | --- !u!102 &10285778 722 | TextMesh: 723 | serializedVersion: 3 724 | m_ObjectHideFlags: 1 725 | m_PrefabParentObject: {fileID: 0} 726 | m_PrefabInternal: {fileID: 100100000} 727 | m_GameObject: {fileID: 178322} 728 | m_Text: Debug 729 | m_OffsetZ: 0 730 | m_CharacterSize: 0.003 731 | m_LineSpacing: 1 732 | m_Anchor: 4 733 | m_Alignment: 0 734 | m_TabSize: 4 735 | m_FontSize: 500 736 | m_FontStyle: 1 737 | m_RichText: 0 738 | m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} 739 | m_Color: 740 | serializedVersion: 2 741 | rgba: 4294967295 742 | --- !u!102 &10294676 743 | TextMesh: 744 | serializedVersion: 3 745 | m_ObjectHideFlags: 1 746 | m_PrefabParentObject: {fileID: 0} 747 | m_PrefabInternal: {fileID: 100100000} 748 | m_GameObject: {fileID: 191496} 749 | m_Text: A 750 | m_OffsetZ: 0 751 | m_CharacterSize: 0.006 752 | m_LineSpacing: 1 753 | m_Anchor: 4 754 | m_Alignment: 0 755 | m_TabSize: 4 756 | m_FontSize: 500 757 | m_FontStyle: 1 758 | m_RichText: 0 759 | m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} 760 | m_Color: 761 | serializedVersion: 2 762 | rgba: 4294967295 763 | --- !u!114 &11423862 764 | MonoBehaviour: 765 | m_ObjectHideFlags: 1 766 | m_PrefabParentObject: {fileID: 0} 767 | m_PrefabInternal: {fileID: 100100000} 768 | m_GameObject: {fileID: 148974} 769 | m_Enabled: 1 770 | m_EditorHideFlags: 0 771 | m_Script: {fileID: 11500000, guid: fb9aa04a033ce884ea20c1c60f31c534, type: 3} 772 | m_Name: 773 | m_EditorClassIdentifier: 774 | _name: 775 | description: Description 776 | image: {fileID: 0} 777 | health: 0 778 | _Attack: 0 779 | mana: 0 780 | nameText: {fileID: 10241890} 781 | healthText: {fileID: 10206682} 782 | AttackText: {fileID: 10294676} 783 | manaText: {fileID: 10282412} 784 | DescriptionText: {fileID: 10274396} 785 | DebugText: {fileID: 10285778} 786 | GenerateRandomeData: 0 787 | canPlay: 0 788 | cardStatus: 0 789 | cardtype: 0 790 | cardeffect: 0 791 | AddedHealth: 0 792 | AddedAttack: 0 793 | team: 0 794 | newPos: {x: 0, y: 0, z: 0} 795 | --- !u!1001 &100100000 796 | Prefab: 797 | m_ObjectHideFlags: 1 798 | serializedVersion: 2 799 | m_Modification: 800 | m_TransformParent: {fileID: 0} 801 | m_Modifications: [] 802 | m_RemovedComponents: [] 803 | m_ParentPrefab: {fileID: 0} 804 | m_RootGameObject: {fileID: 148974} 805 | m_IsPrefabParent: 1 806 | -------------------------------------------------------------------------------- /Assets/Prefabs/Card.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4d8240e70d8677442b152fa7ad35a9aa 3 | timeCreated: 1465732440 4 | licenseType: Free 5 | NativeFormatImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Prefabs/Cardold.prefab: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1 &107916 4 | GameObject: 5 | m_ObjectHideFlags: 1 6 | m_PrefabParentObject: {fileID: 0} 7 | m_PrefabInternal: {fileID: 100100000} 8 | serializedVersion: 4 9 | m_Component: 10 | - 4: {fileID: 442588} 11 | - 23: {fileID: 2379304} 12 | - 102: {fileID: 10281088} 13 | m_Layer: 0 14 | m_Name: Mana 15 | m_TagString: Untagged 16 | m_Icon: {fileID: 0} 17 | m_NavMeshLayer: 0 18 | m_StaticEditorFlags: 0 19 | m_IsActive: 1 20 | --- !u!1 &120418 21 | GameObject: 22 | m_ObjectHideFlags: 0 23 | m_PrefabParentObject: {fileID: 0} 24 | m_PrefabInternal: {fileID: 100100000} 25 | serializedVersion: 4 26 | m_Component: 27 | - 4: {fileID: 409268} 28 | - 33: {fileID: 3329148} 29 | - 23: {fileID: 2388316} 30 | m_Layer: 0 31 | m_Name: Back 32 | m_TagString: Untagged 33 | m_Icon: {fileID: 0} 34 | m_NavMeshLayer: 0 35 | m_StaticEditorFlags: 0 36 | m_IsActive: 1 37 | --- !u!1 &126580 38 | GameObject: 39 | m_ObjectHideFlags: 1 40 | m_PrefabParentObject: {fileID: 0} 41 | m_PrefabInternal: {fileID: 100100000} 42 | serializedVersion: 4 43 | m_Component: 44 | - 4: {fileID: 494324} 45 | - 23: {fileID: 2330986} 46 | - 102: {fileID: 10251022} 47 | m_Layer: 0 48 | m_Name: Debug 49 | m_TagString: Untagged 50 | m_Icon: {fileID: 0} 51 | m_NavMeshLayer: 0 52 | m_StaticEditorFlags: 0 53 | m_IsActive: 1 54 | --- !u!1 &129468 55 | GameObject: 56 | m_ObjectHideFlags: 1 57 | m_PrefabParentObject: {fileID: 0} 58 | m_PrefabInternal: {fileID: 100100000} 59 | serializedVersion: 4 60 | m_Component: 61 | - 4: {fileID: 469130} 62 | - 23: {fileID: 2380778} 63 | - 102: {fileID: 10235570} 64 | m_Layer: 0 65 | m_Name: Attack 66 | m_TagString: Untagged 67 | m_Icon: {fileID: 0} 68 | m_NavMeshLayer: 0 69 | m_StaticEditorFlags: 0 70 | m_IsActive: 1 71 | --- !u!1 &142362 72 | GameObject: 73 | m_ObjectHideFlags: 1 74 | m_PrefabParentObject: {fileID: 0} 75 | m_PrefabInternal: {fileID: 100100000} 76 | serializedVersion: 4 77 | m_Component: 78 | - 4: {fileID: 495120} 79 | - 23: {fileID: 2338340} 80 | - 102: {fileID: 10285990} 81 | m_Layer: 0 82 | m_Name: Name 83 | m_TagString: Untagged 84 | m_Icon: {fileID: 0} 85 | m_NavMeshLayer: 0 86 | m_StaticEditorFlags: 0 87 | m_IsActive: 1 88 | --- !u!1 &150378 89 | GameObject: 90 | m_ObjectHideFlags: 0 91 | m_PrefabParentObject: {fileID: 0} 92 | m_PrefabInternal: {fileID: 100100000} 93 | serializedVersion: 4 94 | m_Component: 95 | - 4: {fileID: 430654} 96 | - 114: {fileID: 11459210} 97 | - 65: {fileID: 6524232} 98 | m_Layer: 0 99 | m_Name: Cardold 100 | m_TagString: Card 101 | m_Icon: {fileID: 0} 102 | m_NavMeshLayer: 0 103 | m_StaticEditorFlags: 0 104 | m_IsActive: 1 105 | --- !u!1 &170324 106 | GameObject: 107 | m_ObjectHideFlags: 0 108 | m_PrefabParentObject: {fileID: 0} 109 | m_PrefabInternal: {fileID: 100100000} 110 | serializedVersion: 4 111 | m_Component: 112 | - 4: {fileID: 496852} 113 | m_Layer: 0 114 | m_Name: Data 115 | m_TagString: Untagged 116 | m_Icon: {fileID: 0} 117 | m_NavMeshLayer: 0 118 | m_StaticEditorFlags: 0 119 | m_IsActive: 1 120 | --- !u!1 &198804 121 | GameObject: 122 | m_ObjectHideFlags: 0 123 | m_PrefabParentObject: {fileID: 0} 124 | m_PrefabInternal: {fileID: 100100000} 125 | serializedVersion: 4 126 | m_Component: 127 | - 4: {fileID: 490514} 128 | - 33: {fileID: 3318034} 129 | - 23: {fileID: 2359836} 130 | m_Layer: 0 131 | m_Name: Front 132 | m_TagString: Untagged 133 | m_Icon: {fileID: 0} 134 | m_NavMeshLayer: 0 135 | m_StaticEditorFlags: 0 136 | m_IsActive: 1 137 | --- !u!1 &199144 138 | GameObject: 139 | m_ObjectHideFlags: 1 140 | m_PrefabParentObject: {fileID: 0} 141 | m_PrefabInternal: {fileID: 100100000} 142 | serializedVersion: 4 143 | m_Component: 144 | - 4: {fileID: 499910} 145 | - 23: {fileID: 2334270} 146 | - 102: {fileID: 10282158} 147 | m_Layer: 0 148 | m_Name: Health 149 | m_TagString: Untagged 150 | m_Icon: {fileID: 0} 151 | m_NavMeshLayer: 0 152 | m_StaticEditorFlags: 0 153 | m_IsActive: 1 154 | --- !u!4 &409268 155 | Transform: 156 | m_ObjectHideFlags: 1 157 | m_PrefabParentObject: {fileID: 0} 158 | m_PrefabInternal: {fileID: 100100000} 159 | m_GameObject: {fileID: 120418} 160 | m_LocalRotation: {x: 0.7071068, y: 0, z: 0, w: 0.7071067} 161 | m_LocalPosition: {x: 0, y: 0, z: 0} 162 | m_LocalScale: {x: 0.18917081, y: 0.39999998, z: 0.3247548} 163 | m_Children: [] 164 | m_Father: {fileID: 430654} 165 | m_RootOrder: 1 166 | --- !u!4 &430654 167 | Transform: 168 | m_ObjectHideFlags: 1 169 | m_PrefabParentObject: {fileID: 0} 170 | m_PrefabInternal: {fileID: 100100000} 171 | m_GameObject: {fileID: 150378} 172 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 173 | m_LocalPosition: {x: 10.339, y: 0.17314, z: 0} 174 | m_LocalScale: {x: 0.65106654, y: 0.6510664, z: 0.6510664} 175 | m_Children: 176 | - {fileID: 490514} 177 | - {fileID: 409268} 178 | - {fileID: 496852} 179 | m_Father: {fileID: 0} 180 | m_RootOrder: 0 181 | --- !u!4 &442588 182 | Transform: 183 | m_ObjectHideFlags: 1 184 | m_PrefabParentObject: {fileID: 0} 185 | m_PrefabInternal: {fileID: 100100000} 186 | m_GameObject: {fileID: 107916} 187 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 188 | m_LocalPosition: {x: -0.704, y: 1.538, z: 0} 189 | m_LocalScale: {x: 0.02, y: 0.02, z: 0.02} 190 | m_Children: [] 191 | m_Father: {fileID: 496852} 192 | m_RootOrder: 1 193 | --- !u!4 &469130 194 | Transform: 195 | m_ObjectHideFlags: 1 196 | m_PrefabParentObject: {fileID: 0} 197 | m_PrefabInternal: {fileID: 100100000} 198 | m_GameObject: {fileID: 129468} 199 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 200 | m_LocalPosition: {x: -0.646, y: -1.513, z: 0} 201 | m_LocalScale: {x: 0.02, y: 0.02, z: 0.02} 202 | m_Children: [] 203 | m_Father: {fileID: 496852} 204 | m_RootOrder: 3 205 | --- !u!4 &490514 206 | Transform: 207 | m_ObjectHideFlags: 1 208 | m_PrefabParentObject: {fileID: 0} 209 | m_PrefabInternal: {fileID: 100100000} 210 | m_GameObject: {fileID: 198804} 211 | m_LocalRotation: {x: -0.70710665, y: 0, z: 0, w: 0.70710695} 212 | m_LocalPosition: {x: 0, y: 0, z: 0} 213 | m_LocalScale: {x: 0.18917081, y: 0.39999998, z: 0.3247548} 214 | m_Children: [] 215 | m_Father: {fileID: 430654} 216 | m_RootOrder: 0 217 | --- !u!4 &494324 218 | Transform: 219 | m_ObjectHideFlags: 1 220 | m_PrefabParentObject: {fileID: 0} 221 | m_PrefabInternal: {fileID: 100100000} 222 | m_GameObject: {fileID: 126580} 223 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 224 | m_LocalPosition: {x: 0, y: -0.431, z: 0} 225 | m_LocalScale: {x: 0.02, y: 0.02, z: 0.02} 226 | m_Children: [] 227 | m_Father: {fileID: 496852} 228 | m_RootOrder: 4 229 | --- !u!4 &495120 230 | Transform: 231 | m_ObjectHideFlags: 1 232 | m_PrefabParentObject: {fileID: 0} 233 | m_PrefabInternal: {fileID: 100100000} 234 | m_GameObject: {fileID: 142362} 235 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 236 | m_LocalPosition: {x: 0, y: 1.382, z: 0} 237 | m_LocalScale: {x: 0.02, y: 0.02, z: 0.02} 238 | m_Children: [] 239 | m_Father: {fileID: 496852} 240 | m_RootOrder: 0 241 | --- !u!4 &496852 242 | Transform: 243 | m_ObjectHideFlags: 1 244 | m_PrefabParentObject: {fileID: 0} 245 | m_PrefabInternal: {fileID: 100100000} 246 | m_GameObject: {fileID: 170324} 247 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 248 | m_LocalPosition: {x: 0, y: 0, z: 0} 249 | m_LocalScale: {x: 1, y: 1, z: 1} 250 | m_Children: 251 | - {fileID: 495120} 252 | - {fileID: 442588} 253 | - {fileID: 499910} 254 | - {fileID: 469130} 255 | - {fileID: 494324} 256 | m_Father: {fileID: 430654} 257 | m_RootOrder: 2 258 | --- !u!4 &499910 259 | Transform: 260 | m_ObjectHideFlags: 1 261 | m_PrefabParentObject: {fileID: 0} 262 | m_PrefabInternal: {fileID: 100100000} 263 | m_GameObject: {fileID: 199144} 264 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 265 | m_LocalPosition: {x: 0.593, y: -1.52, z: 0} 266 | m_LocalScale: {x: 0.02, y: 0.02, z: 0.02} 267 | m_Children: [] 268 | m_Father: {fileID: 496852} 269 | m_RootOrder: 2 270 | --- !u!23 &2330986 271 | MeshRenderer: 272 | m_ObjectHideFlags: 1 273 | m_PrefabParentObject: {fileID: 0} 274 | m_PrefabInternal: {fileID: 100100000} 275 | m_GameObject: {fileID: 126580} 276 | m_Enabled: 1 277 | m_CastShadows: 1 278 | m_ReceiveShadows: 1 279 | m_Materials: 280 | - {fileID: 10100, guid: 0000000000000000e000000000000000, type: 0} 281 | m_SubsetIndices: 282 | m_StaticBatchRoot: {fileID: 0} 283 | m_UseLightProbes: 1 284 | m_ReflectionProbeUsage: 1 285 | m_ProbeAnchor: {fileID: 0} 286 | m_ScaleInLightmap: 1 287 | m_PreserveUVs: 0 288 | m_IgnoreNormalsForChartDetection: 0 289 | m_ImportantGI: 0 290 | m_MinimumChartSize: 4 291 | m_AutoUVMaxDistance: 0.5 292 | m_AutoUVMaxAngle: 89 293 | m_LightmapParameters: {fileID: 0} 294 | m_SortingLayerID: 0 295 | m_SortingOrder: 0 296 | --- !u!23 &2334270 297 | MeshRenderer: 298 | m_ObjectHideFlags: 1 299 | m_PrefabParentObject: {fileID: 0} 300 | m_PrefabInternal: {fileID: 100100000} 301 | m_GameObject: {fileID: 199144} 302 | m_Enabled: 1 303 | m_CastShadows: 1 304 | m_ReceiveShadows: 1 305 | m_Materials: 306 | - {fileID: 10100, guid: 0000000000000000e000000000000000, type: 0} 307 | m_SubsetIndices: 308 | m_StaticBatchRoot: {fileID: 0} 309 | m_UseLightProbes: 1 310 | m_ReflectionProbeUsage: 1 311 | m_ProbeAnchor: {fileID: 0} 312 | m_ScaleInLightmap: 1 313 | m_PreserveUVs: 0 314 | m_IgnoreNormalsForChartDetection: 0 315 | m_ImportantGI: 0 316 | m_MinimumChartSize: 4 317 | m_AutoUVMaxDistance: 0.5 318 | m_AutoUVMaxAngle: 89 319 | m_LightmapParameters: {fileID: 0} 320 | m_SortingLayerID: 0 321 | m_SortingOrder: 0 322 | --- !u!23 &2338340 323 | MeshRenderer: 324 | m_ObjectHideFlags: 1 325 | m_PrefabParentObject: {fileID: 0} 326 | m_PrefabInternal: {fileID: 100100000} 327 | m_GameObject: {fileID: 142362} 328 | m_Enabled: 1 329 | m_CastShadows: 1 330 | m_ReceiveShadows: 1 331 | m_Materials: 332 | - {fileID: 10100, guid: 0000000000000000e000000000000000, type: 0} 333 | m_SubsetIndices: 334 | m_StaticBatchRoot: {fileID: 0} 335 | m_UseLightProbes: 1 336 | m_ReflectionProbeUsage: 1 337 | m_ProbeAnchor: {fileID: 0} 338 | m_ScaleInLightmap: 1 339 | m_PreserveUVs: 0 340 | m_IgnoreNormalsForChartDetection: 0 341 | m_ImportantGI: 0 342 | m_MinimumChartSize: 4 343 | m_AutoUVMaxDistance: 0.5 344 | m_AutoUVMaxAngle: 89 345 | m_LightmapParameters: {fileID: 0} 346 | m_SortingLayerID: 0 347 | m_SortingOrder: 0 348 | --- !u!23 &2359836 349 | MeshRenderer: 350 | m_ObjectHideFlags: 1 351 | m_PrefabParentObject: {fileID: 0} 352 | m_PrefabInternal: {fileID: 100100000} 353 | m_GameObject: {fileID: 198804} 354 | m_Enabled: 1 355 | m_CastShadows: 1 356 | m_ReceiveShadows: 1 357 | m_Materials: 358 | - {fileID: 2100000, guid: 4738b117aee971e48a4c2a6f873f09bc, type: 2} 359 | m_SubsetIndices: 360 | m_StaticBatchRoot: {fileID: 0} 361 | m_UseLightProbes: 1 362 | m_ReflectionProbeUsage: 1 363 | m_ProbeAnchor: {fileID: 0} 364 | m_ScaleInLightmap: 1 365 | m_PreserveUVs: 1 366 | m_IgnoreNormalsForChartDetection: 0 367 | m_ImportantGI: 0 368 | m_MinimumChartSize: 4 369 | m_AutoUVMaxDistance: 0.5 370 | m_AutoUVMaxAngle: 89 371 | m_LightmapParameters: {fileID: 0} 372 | m_SortingLayerID: 0 373 | m_SortingOrder: 0 374 | --- !u!23 &2379304 375 | MeshRenderer: 376 | m_ObjectHideFlags: 1 377 | m_PrefabParentObject: {fileID: 0} 378 | m_PrefabInternal: {fileID: 100100000} 379 | m_GameObject: {fileID: 107916} 380 | m_Enabled: 1 381 | m_CastShadows: 1 382 | m_ReceiveShadows: 1 383 | m_Materials: 384 | - {fileID: 10100, guid: 0000000000000000e000000000000000, type: 0} 385 | m_SubsetIndices: 386 | m_StaticBatchRoot: {fileID: 0} 387 | m_UseLightProbes: 1 388 | m_ReflectionProbeUsage: 1 389 | m_ProbeAnchor: {fileID: 0} 390 | m_ScaleInLightmap: 1 391 | m_PreserveUVs: 0 392 | m_IgnoreNormalsForChartDetection: 0 393 | m_ImportantGI: 0 394 | m_MinimumChartSize: 4 395 | m_AutoUVMaxDistance: 0.5 396 | m_AutoUVMaxAngle: 89 397 | m_LightmapParameters: {fileID: 0} 398 | m_SortingLayerID: 0 399 | m_SortingOrder: 0 400 | --- !u!23 &2380778 401 | MeshRenderer: 402 | m_ObjectHideFlags: 1 403 | m_PrefabParentObject: {fileID: 0} 404 | m_PrefabInternal: {fileID: 100100000} 405 | m_GameObject: {fileID: 129468} 406 | m_Enabled: 1 407 | m_CastShadows: 1 408 | m_ReceiveShadows: 1 409 | m_Materials: 410 | - {fileID: 10100, guid: 0000000000000000e000000000000000, type: 0} 411 | m_SubsetIndices: 412 | m_StaticBatchRoot: {fileID: 0} 413 | m_UseLightProbes: 1 414 | m_ReflectionProbeUsage: 1 415 | m_ProbeAnchor: {fileID: 0} 416 | m_ScaleInLightmap: 1 417 | m_PreserveUVs: 0 418 | m_IgnoreNormalsForChartDetection: 0 419 | m_ImportantGI: 0 420 | m_MinimumChartSize: 4 421 | m_AutoUVMaxDistance: 0.5 422 | m_AutoUVMaxAngle: 89 423 | m_LightmapParameters: {fileID: 0} 424 | m_SortingLayerID: 0 425 | m_SortingOrder: 0 426 | --- !u!23 &2388316 427 | MeshRenderer: 428 | m_ObjectHideFlags: 1 429 | m_PrefabParentObject: {fileID: 0} 430 | m_PrefabInternal: {fileID: 100100000} 431 | m_GameObject: {fileID: 120418} 432 | m_Enabled: 1 433 | m_CastShadows: 1 434 | m_ReceiveShadows: 1 435 | m_Materials: 436 | - {fileID: 2100000, guid: 4738b117aee971e48a4c2a6f873f09bc, type: 2} 437 | m_SubsetIndices: 438 | m_StaticBatchRoot: {fileID: 0} 439 | m_UseLightProbes: 1 440 | m_ReflectionProbeUsage: 1 441 | m_ProbeAnchor: {fileID: 0} 442 | m_ScaleInLightmap: 1 443 | m_PreserveUVs: 1 444 | m_IgnoreNormalsForChartDetection: 0 445 | m_ImportantGI: 0 446 | m_MinimumChartSize: 4 447 | m_AutoUVMaxDistance: 0.5 448 | m_AutoUVMaxAngle: 89 449 | m_LightmapParameters: {fileID: 0} 450 | m_SortingLayerID: 0 451 | m_SortingOrder: 0 452 | --- !u!33 &3318034 453 | MeshFilter: 454 | m_ObjectHideFlags: 1 455 | m_PrefabParentObject: {fileID: 0} 456 | m_PrefabInternal: {fileID: 100100000} 457 | m_GameObject: {fileID: 198804} 458 | m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} 459 | --- !u!33 &3329148 460 | MeshFilter: 461 | m_ObjectHideFlags: 1 462 | m_PrefabParentObject: {fileID: 0} 463 | m_PrefabInternal: {fileID: 100100000} 464 | m_GameObject: {fileID: 120418} 465 | m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} 466 | --- !u!65 &6524232 467 | BoxCollider: 468 | m_ObjectHideFlags: 1 469 | m_PrefabParentObject: {fileID: 0} 470 | m_PrefabInternal: {fileID: 100100000} 471 | m_GameObject: {fileID: 150378} 472 | m_Material: {fileID: 0} 473 | m_IsTrigger: 0 474 | m_Enabled: 1 475 | serializedVersion: 2 476 | m_Size: {x: 1.9213095, y: 3.2409227, z: 0.044020645} 477 | m_Center: {x: 0.0029852376, y: -0.007727421, z: -0.0000070779015} 478 | --- !u!102 &10235570 479 | TextMesh: 480 | serializedVersion: 3 481 | m_ObjectHideFlags: 1 482 | m_PrefabParentObject: {fileID: 0} 483 | m_PrefabInternal: {fileID: 100100000} 484 | m_GameObject: {fileID: 129468} 485 | m_Text: Attack 486 | m_OffsetZ: 0 487 | m_CharacterSize: 1 488 | m_LineSpacing: 1 489 | m_Anchor: 4 490 | m_Alignment: 0 491 | m_TabSize: 4 492 | m_FontSize: 100 493 | m_FontStyle: 0 494 | m_RichText: 1 495 | m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} 496 | m_Color: 497 | serializedVersion: 2 498 | rgba: 4294967295 499 | --- !u!102 &10251022 500 | TextMesh: 501 | serializedVersion: 3 502 | m_ObjectHideFlags: 1 503 | m_PrefabParentObject: {fileID: 0} 504 | m_PrefabInternal: {fileID: 100100000} 505 | m_GameObject: {fileID: 126580} 506 | m_Text: Debug 507 | m_OffsetZ: 0 508 | m_CharacterSize: 1 509 | m_LineSpacing: 1 510 | m_Anchor: 4 511 | m_Alignment: 0 512 | m_TabSize: 4 513 | m_FontSize: 100 514 | m_FontStyle: 0 515 | m_RichText: 1 516 | m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} 517 | m_Color: 518 | serializedVersion: 2 519 | rgba: 4294967295 520 | --- !u!102 &10281088 521 | TextMesh: 522 | serializedVersion: 3 523 | m_ObjectHideFlags: 1 524 | m_PrefabParentObject: {fileID: 0} 525 | m_PrefabInternal: {fileID: 100100000} 526 | m_GameObject: {fileID: 107916} 527 | m_Text: Mana 528 | m_OffsetZ: 0 529 | m_CharacterSize: 1 530 | m_LineSpacing: 1 531 | m_Anchor: 4 532 | m_Alignment: 0 533 | m_TabSize: 4 534 | m_FontSize: 100 535 | m_FontStyle: 0 536 | m_RichText: 1 537 | m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} 538 | m_Color: 539 | serializedVersion: 2 540 | rgba: 4294967295 541 | --- !u!102 &10282158 542 | TextMesh: 543 | serializedVersion: 3 544 | m_ObjectHideFlags: 1 545 | m_PrefabParentObject: {fileID: 0} 546 | m_PrefabInternal: {fileID: 100100000} 547 | m_GameObject: {fileID: 199144} 548 | m_Text: Health 549 | m_OffsetZ: 0 550 | m_CharacterSize: 1 551 | m_LineSpacing: 1 552 | m_Anchor: 4 553 | m_Alignment: 0 554 | m_TabSize: 4 555 | m_FontSize: 100 556 | m_FontStyle: 0 557 | m_RichText: 1 558 | m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} 559 | m_Color: 560 | serializedVersion: 2 561 | rgba: 4294967295 562 | --- !u!102 &10285990 563 | TextMesh: 564 | serializedVersion: 3 565 | m_ObjectHideFlags: 1 566 | m_PrefabParentObject: {fileID: 0} 567 | m_PrefabInternal: {fileID: 100100000} 568 | m_GameObject: {fileID: 142362} 569 | m_Text: Name 570 | m_OffsetZ: 0 571 | m_CharacterSize: 1 572 | m_LineSpacing: 1 573 | m_Anchor: 4 574 | m_Alignment: 0 575 | m_TabSize: 4 576 | m_FontSize: 100 577 | m_FontStyle: 0 578 | m_RichText: 1 579 | m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} 580 | m_Color: 581 | serializedVersion: 2 582 | rgba: 4294967295 583 | --- !u!114 &11459210 584 | MonoBehaviour: 585 | m_ObjectHideFlags: 1 586 | m_PrefabParentObject: {fileID: 0} 587 | m_PrefabInternal: {fileID: 100100000} 588 | m_GameObject: {fileID: 150378} 589 | m_Enabled: 1 590 | m_EditorHideFlags: 0 591 | m_Script: {fileID: 11500000, guid: f85e1c03935a1264f88282ea9c07884d, type: 3} 592 | m_Name: 593 | m_EditorClassIdentifier: 594 | name: 595 | description: 4465736372697074696f6e 596 | image: {fileID: 0} 597 | health: 0 598 | damage: 0 599 | mana: 0 600 | canPlay: 0 601 | cardStatus: 0 602 | team: 0 603 | healthText: {fileID: 10282158} 604 | damageText: {fileID: 10235570} 605 | manaText: {fileID: 10281088} 606 | debugText: {fileID: 10251022} 607 | nameText: {fileID: 10285990} 608 | newPos: {x: 0, y: 0, z: 0} 609 | --- !u!1001 &100100000 610 | Prefab: 611 | m_ObjectHideFlags: 1 612 | serializedVersion: 2 613 | m_Modification: 614 | m_TransformParent: {fileID: 0} 615 | m_Modifications: [] 616 | m_RemovedComponents: [] 617 | m_ParentPrefab: {fileID: 0} 618 | m_RootGameObject: {fileID: 150378} 619 | m_IsPrefabParent: 1 620 | -------------------------------------------------------------------------------- /Assets/Prefabs/Cardold.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7444fdd739737ed4d834201fe0b6f2c6 3 | timeCreated: 1465130613 4 | licenseType: Free 5 | NativeFormatImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Scenes.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 39fee47eb94add2478a03bef2c86050b 3 | folderAsset: yes 4 | timeCreated: 1465225848 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Scenes/CardGame.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b4c4923c203c98b4f90bf53220c06aff 3 | timeCreated: 1465464087 4 | licenseType: Free 5 | DefaultImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Scenes/TestScene.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 11500bebe84848d41b04459381343481 3 | timeCreated: 1465209713 4 | licenseType: Free 5 | DefaultImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Scripts.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: bfd102692a209ae4fbfefc8b64c47497 3 | folderAsset: yes 4 | timeCreated: 1465128382 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Scripts/AIGameState.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using System.Collections; 3 | using System.Collections.Generic; 4 | using System.IO; 5 | using System.Runtime.Serialization.Formatters.Binary; 6 | using System; 7 | 8 | public class AIGameState 9 | { 10 | public static List AllStates = new List(); 11 | public static float TimePased; 12 | public AIGameState ParentState; 13 | public List ChildsStatus = new List(); 14 | public int Index; 15 | public HeroBehaviourScript PlayerHero; 16 | //public List PlayerHandCards;// = new List(); 17 | public List PlayerTableCards;// = new List(); 18 | 19 | public HeroBehaviourScript AIHero; 20 | public List AIHandCards;// = new List(); 21 | public List AITableCards;// = new List(); 22 | 23 | public int maxMana; 24 | public int PlayerMana; 25 | public int AIMana; 26 | 27 | public BoardBehaviourScript.Turn turn; 28 | 29 | public float State_Score = 0; 30 | float AI_Table_Score = 0; 31 | float Player_Table_Score = 0; 32 | float AI_Hand_Score = 0; 33 | float Player_Health_Score = 0; 34 | float AI_Health_Score = 0; 35 | 36 | float Attackweight = 1; 37 | float Healthweight = 1; 38 | float Manaweight = 0.1f; 39 | float HeroHealthweight = 0.1f; 40 | 41 | public struct Action 42 | { 43 | public string Card1; 44 | public string Card2; 45 | public string Hero; 46 | public int OpCode; 47 | } 48 | public Queue Actions = new Queue(); 49 | 50 | #region Constructors 51 | public AIGameState() { } 52 | public AIGameState( 53 | //List PlayerHand, 54 | List PlayerTable, 55 | List AIHand, 56 | List AITable, 57 | HeroBehaviourScript _PlayerHero, 58 | HeroBehaviourScript _AIHero, 59 | int _MaxMana, 60 | int _PlayerMana, 61 | int _AIMana, 62 | BoardBehaviourScript.Turn _Turn, 63 | AIGameState Parent 64 | ) 65 | { 66 | ParentState = Parent; 67 | if (ParentState == null) 68 | { 69 | Index = 0; 70 | } 71 | else 72 | { 73 | Index = ParentState.Index+1; 74 | Actions = new Queue( ParentState.Actions); 75 | } 76 | //PlayerHandCards = CardListCopier.DeepCopy(PlayerHand); 77 | PlayerTableCards = CardListCopier.DeepCopy(PlayerTable); 78 | PlayerHero = _PlayerHero.Clone() as HeroBehaviourScript; 79 | 80 | AIHandCards = CardListCopier.DeepCopy(AIHand); 81 | AITableCards = CardListCopier.DeepCopy(AITable); 82 | AIHero = _AIHero.Clone() as HeroBehaviourScript; 83 | maxMana = _MaxMana; 84 | PlayerMana = _PlayerMana; 85 | AIMana = _AIMana; 86 | turn = _Turn; 87 | Calculate_State_Score(); 88 | //if (Index <= BoardBehaviourScript.instance.AILEVEL) 89 | //{ 90 | // GetAllPlacingAction(); 91 | // GetAllAttackingActions(); 92 | //} 93 | AllStates.Add(this); 94 | } 95 | public AIGameState( 96 | //List PlayerHand, 97 | List PlayerTable, 98 | List AIHand, 99 | List AITable, 100 | HeroBehaviourScript _PlayerHero, 101 | HeroBehaviourScript _AIHero, 102 | int _MaxMana, 103 | int _PlayerMana, 104 | int _AIMana, 105 | BoardBehaviourScript.Turn _Turn, 106 | AIGameState Parent 107 | ) 108 | { 109 | ParentState = Parent; 110 | if (ParentState == null) 111 | { 112 | Index = 0; 113 | } 114 | else 115 | { 116 | Index = ParentState.Index+1; 117 | Actions = new Queue(ParentState.Actions); 118 | } 119 | //List _tempPlayerHand = new List(); 120 | //foreach (var item in PlayerHand)_tempPlayerHand.Add( item.GetComponent()); 121 | //PlayerHandCards = CardListCopier>.DeepCopy(_tempPlayerHand); 122 | 123 | List _tempPlayerTable = new List(); 124 | foreach (var item in PlayerTable) _tempPlayerTable.Add(item.GetComponent()); 125 | PlayerTableCards = CardListCopier.DeepCopy(_tempPlayerTable); 126 | 127 | PlayerHero = _PlayerHero.Clone() as HeroBehaviourScript; 128 | 129 | 130 | List _tempAIHand = new List(); 131 | foreach (var item in AIHand) _tempAIHand.Add(item.GetComponent()); 132 | AIHandCards = CardListCopier.DeepCopy(_tempAIHand); 133 | 134 | List _tempAITable = new List(); 135 | foreach (var item in AITable) _tempAITable.Add(item.GetComponent()); 136 | AITableCards = CardListCopier.DeepCopy(_tempAITable); 137 | 138 | AIHero = _AIHero.Clone() as HeroBehaviourScript; 139 | maxMana = _MaxMana; 140 | PlayerMana = _PlayerMana; 141 | AIMana = _AIMana; 142 | turn = _Turn; 143 | Calculate_State_Score(); 144 | //if (Index<=BoardBehaviourScript.instance.AILEVEL) 145 | //{ 146 | // GetAllPlacingAction(); 147 | // GetAllAttackingActions(); 148 | //} 149 | AllStates.Add(this); 150 | } 151 | #endregion 152 | //Evaluate State Score 153 | float Calculate_State_Score() 154 | { 155 | State_Score = 0; 156 | AI_Table_Score = 0; 157 | Player_Table_Score = 0; 158 | AI_Hand_Score = 0; 159 | Player_Health_Score = 0; 160 | AI_Health_Score = 0; 161 | 162 | foreach (CardBehaviourScript Card in AITableCards) 163 | { 164 | AI_Table_Score += Card._Attack * Attackweight + Card.health * Healthweight; 165 | if (Card.cardtype==CardBehaviourScript.CardType.Magic && PlayerTableCards.Count>0) 166 | { 167 | AI_Table_Score += 2; 168 | } 169 | } 170 | 171 | 172 | foreach (CardBehaviourScript Card in PlayerTableCards) 173 | { 174 | Player_Table_Score -= Card._Attack * Attackweight + Card.health * Healthweight; 175 | } 176 | 177 | //Depend On Mana 178 | foreach (CardBehaviourScript Card in AIHandCards) 179 | { 180 | AI_Hand_Score += Card.mana * Manaweight; 181 | } 182 | 183 | 184 | if (PlayerHero.health <= 0) Player_Table_Score = float.MaxValue; 185 | else 186 | Player_Health_Score -= PlayerHero.health * HeroHealthweight; 187 | 188 | 189 | 190 | if (AIHero.health <= 0) AI_Health_Score = float.MinValue; 191 | else 192 | AI_Health_Score += AIHero.health * HeroHealthweight; 193 | 194 | State_Score = AI_Table_Score + Player_Table_Score + AI_Hand_Score + Player_Health_Score + AI_Health_Score; 195 | return State_Score; 196 | } 197 | public void GetAllPlacingAction() 198 | { 199 | if (turn == BoardBehaviourScript.Turn.AITurn) 200 | { 201 | if (AIHandCards.Count == 0) 202 | { 203 | //EndTurn Nothing To Play 204 | } 205 | else 206 | { 207 | //Generate All Possible Placing 208 | List> temp = ProducePlacing(AIHandCards, AIMana); 209 | for (int i = 0; i < temp.Count; i++) 210 | { 211 | AIGameState State = new AIGameState(PlayerTableCards, AIHandCards, AITableCards, PlayerHero, AIHero, maxMana, PlayerMana, AIMana, turn,this); 212 | //if(temp[i].Count>0) 213 | for (int j = 0; j < temp[i].Count; j++) 214 | { 215 | 216 | State.PlaceCard(temp[i][j]); 217 | 218 | } 219 | State.Calculate_State_Score(); 220 | ChildsStatus.Add(State); 221 | } 222 | } 223 | } 224 | //Debug.Log("DonePlacing"); 225 | } 226 | public void GetAllAttackingActions(int AILEVEL) 227 | { 228 | _GetAllAttackingActions(); 229 | _GetAllAttackingHeroActions(); 230 | TimePased += Time.deltaTime; 231 | if (Index+1 < AILEVEL) 232 | { 233 | foreach (var item in ChildsStatus) 234 | { 235 | item.GetAllAttackingActions(AILEVEL); 236 | } 237 | 238 | 239 | }else 240 | { 241 | TimePased = 0; 242 | } 243 | } 244 | void _GetAllAttackingActions() 245 | { 246 | if (turn == BoardBehaviourScript.Turn.AITurn) 247 | { 248 | /* 249 | foreach (CardBehaviourScript AICard in AITableCards) 250 | { 251 | if (AICard.canPlay) 252 | { 253 | foreach (CardBehaviourScript PlayerCard in PlayerTableCards) 254 | { 255 | //AICard Attack PlayerCard 256 | AIGameState State = new AIGameState(PlayerTableCards, AIHandCards, AITableCards, PlayerHero, AIHero, maxMana, PlayerMana, AIMana, turn); 257 | State.CardAttackCard(AICard,PlayerCard); 258 | State.Calculate_State_Score(); 259 | ChildsStatus.Add(State); 260 | //Save State 261 | } 262 | } 263 | } 264 | */ 265 | //Generate All Possible Placing 266 | List> temp = ProduceAllAttackCombinations(AITableCards); 267 | foreach (var PlayerCard in PlayerTableCards) 268 | { 269 | for (int i = 0; i < temp.Count; i++) 270 | { 271 | AIGameState State = new AIGameState(PlayerTableCards, AIHandCards, AITableCards, PlayerHero, AIHero, maxMana, PlayerMana, AIMana, turn, this); 272 | for (int j = 0; j < temp[i].Count; j++) 273 | { 274 | if (temp[i][j].canPlay) 275 | { 276 | if (temp[i][j].cardtype==CardBehaviourScript.CardType.Monster) 277 | { 278 | State.CardAttackCard(temp[i][j], PlayerCard); 279 | } 280 | else if (temp[i][j].cardtype == CardBehaviourScript.CardType.Magic) 281 | { 282 | if (temp[i][j].cardeffect == CardBehaviourScript.CardEffect.ToSpecific) 283 | { 284 | State.CardMagicCard(temp[i][j], PlayerCard); 285 | } 286 | } 287 | } 288 | 289 | 290 | } 291 | State.Calculate_State_Score(); 292 | ChildsStatus.Add(State); 293 | } 294 | } 295 | 296 | } 297 | } 298 | void _GetAllAttackingHeroActions() 299 | { 300 | List> temp = ProduceAllAttackCombinations(AITableCards); 301 | for (int i = 0; i < temp.Count; i++) 302 | { 303 | AIGameState State = new AIGameState(PlayerTableCards, AIHandCards, AITableCards, PlayerHero, AIHero, maxMana, PlayerMana, AIMana, turn,this); 304 | for (int j = 0; j < temp[i].Count; j++) 305 | { 306 | if (temp[i][j].canPlay) 307 | State.CardAttackHero(temp[i][j], PlayerHero); 308 | 309 | } 310 | State.Calculate_State_Score(); 311 | ChildsStatus.Add(State); 312 | } 313 | } 314 | private void CardMagicCard(CardBehaviourScript _attacker, CardBehaviourScript _target) 315 | { 316 | CardBehaviourScript attacker = AITableCards.Find(item => item._name == _attacker._name); 317 | CardBehaviourScript target = PlayerTableCards.Find(item => item._name == _target._name); 318 | { 319 | Action a; 320 | a.Card1 = attacker._name; 321 | a.Card2 = target._name; 322 | a.Hero = ""; 323 | a.OpCode = 3; 324 | Actions.Enqueue(a); 325 | attacker.AddToMonster(attacker, target, false, delegate 326 | { 327 | attacker.Destroy(attacker); 328 | }); 329 | } 330 | } 331 | 332 | public void CardAttackCard(CardBehaviourScript _attacker, CardBehaviourScript _target) 333 | { 334 | CardBehaviourScript attacker = AITableCards.Find(item => item._name == _attacker._name); 335 | CardBehaviourScript target = PlayerTableCards.Find(item => item._name == _target._name); 336 | //if (attacker!=null&&target!=null) 337 | { 338 | Action a; 339 | a.Card1 = attacker._name; 340 | a.Card2 = target._name; 341 | a.Hero = ""; 342 | a.OpCode = 1; 343 | Actions.Enqueue(a); 344 | attacker.AttackCard(attacker, target, false, delegate 345 | { 346 | attacker.canPlay = false; 347 | }); 348 | } 349 | 350 | } 351 | public void CardAttackHero(CardBehaviourScript _attacker, HeroBehaviourScript _target) 352 | { 353 | CardBehaviourScript attacker = AITableCards.Find(item => item._name == _attacker._name); 354 | Action a; 355 | a.Card1 = attacker._name; 356 | a.Card2 = ""; 357 | a.Hero = _target._name; 358 | a.OpCode = 2; 359 | Actions.Enqueue(a); 360 | attacker.AttackHero(attacker, PlayerHero, false, delegate 361 | { 362 | attacker.canPlay = false; 363 | }); 364 | 365 | } 366 | public void PlaceCard(CardBehaviourScript temp) 367 | { 368 | // 369 | //Find That Card 370 | // 371 | CardBehaviourScript card = AIHandCards.Find(item => item._name == temp._name); 372 | if (card.team == CardBehaviourScript.Team.AI && AIMana - card.mana >= 0 && AITableCards.Count < 10) 373 | { 374 | AIHandCards.Remove(card); 375 | AITableCards.Add(card); 376 | Action a; 377 | a.Card1 = card._name; 378 | a.Card2 = ""; 379 | a.Hero = ""; 380 | a.OpCode = 0; 381 | Actions.Enqueue(a); 382 | card.SetCardStatus(CardBehaviourScript.CardStatus.OnTable); 383 | if (card.cardtype == CardBehaviourScript.CardType.Magic)///Apply Magic Effect 384 | { 385 | card.canPlay = true; 386 | if (card.cardeffect == CardBehaviourScript.CardEffect.ToAll) 387 | { 388 | card.AddToAll(card,false, delegate { card.Destroy(card); }); 389 | } 390 | else if (card.cardeffect == CardBehaviourScript.CardEffect.ToEnemies) 391 | { 392 | card.AddToEnemies(card, PlayerTableCards,false, delegate { card.Destroy(card); }); 393 | } 394 | } 395 | 396 | AIMana -= card.mana; 397 | } 398 | } 399 | public List> ProducePlacing(List allValues, int maxmana) 400 | { 401 | List> collection = new List>(); 402 | for (int counter = 0; counter < (1 << allValues.Count); ++counter) 403 | { 404 | List combination = new List(); 405 | for (int i = 0; i < allValues.Count; ++i) 406 | { 407 | if ((counter & (1 << i)) == 0) 408 | combination.Add(allValues[i]); 409 | } 410 | 411 | // do something with combination 412 | //int manatotal = 0; 413 | //foreach (CardBehaviourScript Card in combination) 414 | //{ 415 | // manatotal += Card.mana; 416 | 417 | //} 418 | //if (manatotal <= maxmana) 419 | collection.Add(combination); 420 | } 421 | return collection; 422 | } 423 | public List> ProduceAllAttackCombinations(List allValues) 424 | { 425 | List> collection = new List>(); 426 | for (int counter = 0; counter < (1 << allValues.Count); ++counter) 427 | { 428 | List combination = new List(); 429 | for (int i = 0; i < allValues.Count; ++i) 430 | { 431 | if ((counter & (1 << i)) == 0) 432 | combination.Add(allValues[i]); 433 | } 434 | 435 | // do something with combination 436 | collection.Add(combination); 437 | } 438 | return collection; 439 | } 440 | } 441 | public static class CardListCopier 442 | { 443 | public static List DeepCopy(List objectToCopy) 444 | { 445 | List temp = new List(); 446 | foreach (CardBehaviourScript Card in objectToCopy) 447 | { 448 | temp.Add(Card.Clone() as CardBehaviourScript); 449 | } 450 | 451 | return temp; 452 | } 453 | 454 | } 455 | 456 | -------------------------------------------------------------------------------- /Assets/Scripts/AIGameState.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 26ffb3996c8cd3a40a64fc5c0e07bf9f 3 | timeCreated: 1467287429 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Scripts/BoardBehaviourScript.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using System.Collections; 3 | using System.Collections.Generic; 4 | [System.Serializable] 5 | public class BoardBehaviourScript : MonoBehaviour 6 | { 7 | 8 | public static BoardBehaviourScript instance; 9 | public UnityEngine.UI.Text winnertext; 10 | public Transform MYDeckPos; 11 | public Transform MyHandPos; 12 | public Transform MyTablePos; 13 | 14 | public Transform AIDeckPos; 15 | public Transform AIHandPos; 16 | public Transform AITablePos; 17 | 18 | public List MyDeckCards = new List(); 19 | public List MyHandCards = new List(); 20 | public List MyTableCards = new List(); 21 | 22 | public List AIDeckCards = new List(); 23 | public List AIHandCards = new List(); 24 | public List AITableCards = new List(); 25 | 26 | public TextMesh MyManaText; 27 | public TextMesh AIManaText; 28 | 29 | public HeroBehaviourScript MyHero; 30 | public HeroBehaviourScript AIHero; 31 | 32 | public enum Turn { MyTurn, AITurn }; 33 | 34 | #region SetStartData 35 | public Turn turn = Turn.MyTurn; 36 | 37 | int maxMana = 1; 38 | int MyMana = 1; 39 | int AIMana = 1; 40 | 41 | public bool gameStarted = false; 42 | int turnNumber = 1; 43 | #endregion 44 | 45 | public CardBehaviourScript currentCard; 46 | public CardBehaviourScript targetCard; 47 | public HeroBehaviourScript currentHero; 48 | public HeroBehaviourScript targetHero; 49 | 50 | public List boardHistory = new List(); 51 | public int AILEVEL = 0; 52 | public LayerMask layer; 53 | public void AddHistory(CardGameBase a, CardGameBase b) 54 | { 55 | Hashtable hash = new Hashtable(); 56 | 57 | hash.Add(a, b); 58 | 59 | boardHistory.Add(hash); 60 | currentCard = null; 61 | targetCard = null; 62 | currentHero = null; 63 | targetHero = null; 64 | } 65 | void Awake() 66 | { 67 | instance = this; 68 | } 69 | void Start() 70 | { 71 | 72 | foreach (GameObject CardObject in GameObject.FindGameObjectsWithTag("Card")) 73 | { 74 | CardObject.GetComponent().isKinematic = true; 75 | CardBehaviourScript c = CardObject.GetComponent(); 76 | 77 | if (c.team == CardBehaviourScript.Team.My) 78 | MyDeckCards.Add(CardObject); 79 | else 80 | AIDeckCards.Add(CardObject); 81 | } 82 | //Update Deck Cards Position 83 | DecksPositionUpdate(); 84 | //Update Hand Cards Position 85 | HandPositionUpdate(); 86 | 87 | //Start Game 88 | StartGame(); 89 | } 90 | public void StartGame() 91 | { 92 | gameStarted = true; 93 | UpdateGame(); 94 | 95 | for (int i = 0; i < 3; i++) 96 | { 97 | DrawCardFromDeck(CardBehaviourScript.Team.My); 98 | DrawCardFromDeck(CardBehaviourScript.Team.AI); 99 | } 100 | } 101 | public void DrawCardFromDeck(CardBehaviourScript.Team team) 102 | { 103 | 104 | if (team == CardBehaviourScript.Team.My && MyDeckCards.Count != 0 && MyHandCards.Count < 10) 105 | { 106 | int random = Random.Range(0, MyDeckCards.Count); 107 | GameObject tempCard = MyDeckCards[random]; 108 | 109 | //tempCard.transform.position = MyHandPos.position; 110 | tempCard.GetComponent().newPos = MyHandPos.position; 111 | tempCard.GetComponent().SetCardStatus(CardBehaviourScript.CardStatus.InHand); 112 | 113 | MyDeckCards.Remove(tempCard); 114 | MyHandCards.Add(tempCard); 115 | } 116 | 117 | if (team == CardBehaviourScript.Team.AI && AIDeckCards.Count != 0 && AIHandCards.Count < 10) 118 | { 119 | int random = Random.Range(0, AIDeckCards.Count); 120 | GameObject tempCard = AIDeckCards[random]; 121 | 122 | tempCard.transform.position = AIHandPos.position; 123 | tempCard.GetComponent().SetCardStatus(CardBehaviourScript.CardStatus.InHand); 124 | 125 | AIDeckCards.Remove(tempCard); 126 | AIHandCards.Add(tempCard); 127 | } 128 | 129 | UpdateGame(); 130 | //Update Hand Cards Position 131 | HandPositionUpdate(); 132 | } 133 | 134 | void Update() 135 | { 136 | if (Input.GetMouseButtonDown(1)) 137 | { 138 | currentCard = null; 139 | targetCard = null; 140 | currentHero = null; 141 | targetHero = null; 142 | Debug.Log("Action Revet"); 143 | } 144 | //if(BoardBehaviourScript.instance.currentCard&&BoardBehaviourScript.instance.targetCard) 145 | { 146 | Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); 147 | RaycastHit hit; 148 | if (Physics.Raycast(ray, out hit, 250, layer)) 149 | { 150 | if (hit.transform.CompareTag("Board")) 151 | { 152 | //do whatever...... 153 | //Debug.Log(hit.point); 154 | if(BoardBehaviourScript.instance.currentHero) 155 | drawMyLine(BoardBehaviourScript.instance.currentHero.transform.position, hit.point, Color.blue, 0.1f); 156 | if (BoardBehaviourScript.instance.currentCard) 157 | drawMyLine(BoardBehaviourScript.instance.currentCard.transform.position, hit.point, Color.blue, 0.1f); 158 | } 159 | } 160 | } 161 | 162 | if (MyHero.health <= 0) 163 | EndGame(AIHero); 164 | if (AIHero.health <= 0) 165 | EndGame(MyHero); 166 | 167 | } 168 | void drawMyLine(Vector3 start, Vector3 end, Color color, float duration = 0.2f) 169 | { 170 | 171 | StartCoroutine(drawLine(start, end, color, duration)); 172 | 173 | } 174 | IEnumerator drawLine(Vector3 start, Vector3 end, Color color, float duration = 0.2f) 175 | { 176 | GameObject myLine = new GameObject(); 177 | myLine.transform.position = start; 178 | myLine.AddComponent(); 179 | LineRenderer lr = myLine.GetComponent(); 180 | lr.material = new Material(Shader.Find("Particles/Additive")); 181 | lr.SetColors(color, color); 182 | lr.SetWidth(0.1f, 0.1f); 183 | lr.SetVertexCount(3); 184 | lr.SetPosition(0, start); 185 | lr.SetPosition(1,(( (-start+ end)*0.5f+start))+new Vector3(0,0,-5.0f)); 186 | lr.SetPosition(2, end); 187 | yield return new WaitForSeconds(duration); 188 | GameObject.Destroy(myLine); 189 | } 190 | void UpdateGame() 191 | { 192 | MyManaText.text = MyMana.ToString() + "/" + maxMana; 193 | AIManaText.text = AIMana.ToString() + "/" + maxMana; 194 | 195 | if (MyHero.health <= 0) 196 | EndGame(AIHero); 197 | if (AIHero.health <= 0) 198 | EndGame(MyHero); 199 | 200 | //UpdateBoard(); 201 | } 202 | 203 | void DecksPositionUpdate() 204 | { 205 | foreach (GameObject CardObject in MyDeckCards) 206 | { 207 | CardBehaviourScript c = CardObject.GetComponent(); 208 | 209 | if (c.cardStatus == CardBehaviourScript.CardStatus.InDeck) 210 | { 211 | c.newPos = MYDeckPos.position + new Vector3(Random.value, Random.value, Random.value); 212 | } 213 | } 214 | 215 | foreach (GameObject CardObject in AIDeckCards) 216 | { 217 | CardBehaviourScript c = CardObject.GetComponent(); 218 | 219 | if (c.cardStatus == CardBehaviourScript.CardStatus.InDeck) 220 | { 221 | c.newPos = AIDeckPos.position + new Vector3(Random.value, Random.value, Random.value); 222 | } 223 | } 224 | } 225 | public void HandPositionUpdate() 226 | { 227 | float space = 0f; 228 | float space2 = 0f; 229 | float gap = 1.3f; 230 | 231 | foreach (GameObject card in MyHandCards) 232 | { 233 | int numberOfCards = MyHandCards.Count; 234 | card.GetComponent().newPos = MyHandPos.position + new Vector3(-numberOfCards / 2 + space, 0, 0); 235 | space += gap; 236 | } 237 | 238 | foreach (GameObject card in AIHandCards) 239 | { 240 | int numberOfCards = AIHandCards.Count; 241 | card.GetComponent().newPos = AIHandPos.position + new Vector3(-numberOfCards / 2 + space2, 0, 0); 242 | space2 += gap; 243 | } 244 | } 245 | public void TablePositionUpdate() 246 | { 247 | float space = 0f; 248 | float space2 = 0f; 249 | float gap = 3; 250 | 251 | foreach (GameObject card in MyTableCards) 252 | { 253 | int numberOfCards = MyTableCards.Count; 254 | //card.transform.position = myTablePos.position + new Vector3(-numberOfCards + space - 2,0,0); 255 | card.GetComponent().newPos = MyTablePos.position + new Vector3(-numberOfCards + space - 2, 0, 0); 256 | space += gap; 257 | } 258 | 259 | foreach (GameObject card in AITableCards) 260 | { 261 | int numberOfCards = AITableCards.Count; 262 | //card.transform.position = AITablePos.position + new Vector3(-numberOfCards + space2,0,0); 263 | card.GetComponent().newPos = AITablePos.position + new Vector3(-numberOfCards + space2, 0, 0); 264 | space2 += gap; 265 | } 266 | } 267 | 268 | public void PlaceCard(CardBehaviourScript card) 269 | { 270 | if (card.team == CardBehaviourScript.Team.My && MyMana - card.mana >= 0 && MyTableCards.Count < 10) 271 | { 272 | //card.gameObject.transform.position = MyTablePos.position; 273 | card.GetComponent().newPos = MyTablePos.position; 274 | 275 | MyHandCards.Remove(card.gameObject); 276 | MyTableCards.Add(card.gameObject); 277 | 278 | card.SetCardStatus(CardBehaviourScript.CardStatus.OnTable); 279 | //PlaySound(cardDrop); 280 | 281 | if (card.cardtype == CardBehaviourScript.CardType.Magic)///Apply Magic Effect 282 | { 283 | card.canPlay = true; 284 | if (card.cardeffect == CardBehaviourScript.CardEffect.ToAll) 285 | { 286 | card.AddToAll(card,true, delegate { card.Destroy(card); }); 287 | } 288 | else if (card.cardeffect == CardBehaviourScript.CardEffect.ToEnemies) 289 | { 290 | card.AddToEnemies(card,AITableCards,true, delegate { card.Destroy(card); }); 291 | } 292 | } 293 | 294 | MyMana -= card.mana; 295 | } 296 | 297 | if (card.team == CardBehaviourScript.Team.AI && AIMana - card.mana >= 0 && AITableCards.Count < 10) 298 | { 299 | //card.gameObject.transform.position = AITablePos.position; 300 | card.GetComponent().newPos = AITablePos.position; 301 | 302 | AIHandCards.Remove(card.gameObject); 303 | AITableCards.Add(card.gameObject); 304 | 305 | card.SetCardStatus(CardBehaviourScript.CardStatus.OnTable); 306 | //PlaySound(cardDrop); 307 | 308 | if (card.cardtype == CardBehaviourScript.CardType.Magic)///Apply Magic Effect 309 | { 310 | card.canPlay = true; 311 | if (card.cardeffect == CardBehaviourScript.CardEffect.ToAll) 312 | { 313 | card.AddToAll(card,true, delegate { card.Destroy(card); }); 314 | } 315 | else if (card.cardeffect == CardBehaviourScript.CardEffect.ToEnemies) 316 | { 317 | card.AddToEnemies(card,MyTableCards,true, delegate { card.Destroy(card); }); 318 | } 319 | } 320 | 321 | AIMana -= card.mana; 322 | } 323 | 324 | TablePositionUpdate(); 325 | HandPositionUpdate(); 326 | UpdateGame(); 327 | } 328 | public void PlaceRandomCard(CardBehaviourScript.Team team) 329 | { 330 | if (team == CardBehaviourScript.Team.My && MyHandCards.Count != 0) 331 | { 332 | int random = Random.Range(0, MyHandCards.Count); 333 | GameObject tempCard = MyHandCards[random]; 334 | 335 | PlaceCard(tempCard.GetComponent()); 336 | } 337 | 338 | if (team == CardBehaviourScript.Team.AI && AIHandCards.Count != 0) 339 | { 340 | int random = Random.Range(0, AIHandCards.Count); 341 | GameObject tempCard = AIHandCards[random]; 342 | 343 | PlaceCard(tempCard.GetComponent()); 344 | } 345 | 346 | UpdateGame(); 347 | EndTurn(); 348 | 349 | TablePositionUpdate(); 350 | HandPositionUpdate(); 351 | } 352 | public void EndGame(HeroBehaviourScript winner) 353 | { 354 | if (winner == MyHero) 355 | { 356 | Debug.Log("MyHero"); 357 | Time.timeScale = 0; 358 | winnertext.text = "You Won"; 359 | //Destroy(this); 360 | } 361 | 362 | if (winner == AIHero) 363 | { 364 | Time.timeScale = 0; 365 | Debug.Log("AIHero"); 366 | winnertext.text = "You Losse"; 367 | //Destroy(this); 368 | } 369 | } 370 | void OnGUI() 371 | { 372 | if (gameStarted) 373 | { 374 | if (turn == Turn.MyTurn) 375 | { 376 | if (GUI.Button(new Rect(Screen.width - 200, Screen.height / 2 - 50, 100, 50), "End Turn")) 377 | { 378 | EndTurn(); 379 | } 380 | } 381 | 382 | GUI.Label(new Rect(Screen.width-200, Screen.height / 2 - 100, 100, 50), "Turn: " + turn + " Turn Number: " + turnNumber.ToString()); 383 | 384 | foreach (Hashtable history in boardHistory) 385 | { 386 | foreach (DictionaryEntry entry in history) 387 | { 388 | CardGameBase card1 = entry.Key as CardGameBase; 389 | CardGameBase card2 = entry.Value as CardGameBase; 390 | 391 | GUILayout.Label(card1._name + " > " + card2._name); 392 | } 393 | } 394 | if (boardHistory.Count > 25) 395 | { 396 | Hashtable temp; 397 | temp = boardHistory[boardHistory.Count - 1]; 398 | boardHistory.Clear(); 399 | boardHistory.Add(temp); 400 | } 401 | } 402 | } 403 | void EndTurn() 404 | { 405 | maxMana += (turnNumber-1)%2; 406 | if (maxMana >= 10) maxMana = 10; 407 | MyMana = maxMana; 408 | AIMana = maxMana; 409 | turnNumber += 1; 410 | currentCard = new CardBehaviourScript() ; 411 | targetCard = new CardBehaviourScript(); 412 | currentHero = new HeroBehaviourScript(); 413 | targetHero = new HeroBehaviourScript(); 414 | foreach (GameObject card in MyTableCards) 415 | card.GetComponent().canPlay = true; 416 | 417 | foreach (GameObject card in AITableCards) 418 | card.GetComponent().canPlay = true; 419 | MyHero.CanAttack = true; 420 | AIHero.CanAttack = true; 421 | 422 | if (turn == Turn.AITurn) 423 | { 424 | DrawCardFromDeck(CardBehaviourScript.Team.My); 425 | turn = Turn.MyTurn; 426 | } 427 | else if (turn == Turn.MyTurn) 428 | { 429 | DrawCardFromDeck(CardBehaviourScript.Team.AI); 430 | turn = Turn.AITurn; 431 | } 432 | 433 | HandPositionUpdate(); 434 | TablePositionUpdate(); 435 | 436 | OnNewTurn(); 437 | } 438 | void OnNewTurn() 439 | { 440 | UpdateGame(); 441 | 442 | if (turn == Turn.AITurn) 443 | AI_Think(); 444 | //Invoke("AI_Think", 5.0f); 445 | } 446 | void AI_Think() 447 | { 448 | if (AILEVEL == 0) 449 | { 450 | if (turn == Turn.AITurn) 451 | { 452 | Invoke("RendomActions", 2.0f); 453 | } 454 | } 455 | else if (AILEVEL > 0) 456 | { 457 | if (turn == Turn.AITurn) 458 | { 459 | Invoke("AIthink", 2.0f); 460 | } 461 | } 462 | } 463 | void AIthink() 464 | { 465 | AIGameState.AllStates.Clear();// = new List(); 466 | AIGetPlacing(); 467 | AIGetAttacks(); 468 | EndTurn(); 469 | } 470 | void RendomActions() 471 | { 472 | #region placing cards 473 | //float chanceToPlace = Random.value; 474 | 475 | if (AIHandCards.Count == 0) 476 | { 477 | EndTurn(); 478 | } 479 | else 480 | { 481 | PlaceRandomCard(CardBehaviourScript.Team.AI); 482 | } 483 | #endregion 484 | #region attacking 485 | Hashtable attacks = new Hashtable(); 486 | foreach (GameObject Card in AITableCards) 487 | { 488 | CardBehaviourScript card = Card.GetComponent(); 489 | 490 | if (card.canPlay) 491 | { 492 | float changeToAttackhero = Random.value; 493 | 494 | if (changeToAttackhero < 0.50f) 495 | { 496 | card.AttackHero(card, MyHero, true, delegate 497 | { 498 | card.canPlay = false; 499 | }); 500 | } 501 | else if (MyTableCards.Count > 0) 502 | { 503 | int random = Random.Range(0, MyTableCards.Count); 504 | GameObject CardToAttack = MyTableCards[random]; 505 | 506 | attacks.Add(card, CardToAttack.GetComponent()); 507 | } 508 | } 509 | } 510 | 511 | foreach (DictionaryEntry row in attacks) 512 | { 513 | CardBehaviourScript tempCard = row.Key as CardBehaviourScript; 514 | CardBehaviourScript temp2 = row.Value as CardBehaviourScript; 515 | 516 | if (tempCard.cardtype == CardBehaviourScript.CardType.Monster) 517 | { 518 | tempCard.AttackCard(tempCard, temp2, true, delegate 519 | { 520 | tempCard.canPlay = false; 521 | }); 522 | } 523 | else if (tempCard.cardtype == CardBehaviourScript.CardType.Magic) 524 | { 525 | tempCard.AddToMonster(tempCard, temp2,true, delegate 526 | { 527 | tempCard.canPlay = false; 528 | tempCard.Destroy(tempCard); 529 | }); 530 | } 531 | 532 | } 533 | #endregion 534 | } 535 | void AIGetPlacing() 536 | { 537 | AIGameState InitialState = new AIGameState(/*MyHandCards,*/MyTableCards,AIHandCards,AITableCards,MyHero,AIHero,maxMana,MyMana,AIMana,turn,null); 538 | InitialState.GetAllPlacingAction(); 539 | //Find Best Score 540 | float MaxScore = float.MinValue; 541 | AIGameState BestState = new AIGameState(); 542 | foreach (AIGameState item in AIGameState.AllStates) 543 | { 544 | if (item.State_Score > MaxScore) 545 | { 546 | MaxScore = item.State_Score; 547 | BestState = item; 548 | } 549 | } 550 | int count = BestState.Actions.Count; 551 | //GetActions 552 | for (int i = 0; i < count; i++) 553 | { 554 | AIGameState.Action a; 555 | a = BestState.Actions.Dequeue(); 556 | if (a.OpCode == 0) 557 | { 558 | 559 | foreach (var item in AIHandCards) 560 | { 561 | if (item.GetComponent()._name == a.Card1) 562 | { 563 | PlaceCard(item.GetComponent()); 564 | break; 565 | } 566 | } 567 | } 568 | } 569 | AIGameState.AllStates.Clear(); 570 | } 571 | void AIGetAttacks() 572 | { 573 | AIGameState InitialState = new AIGameState(/*MyHandCards,*/MyTableCards, AIHandCards, AITableCards, MyHero, AIHero, maxMana, MyMana, AIMana, turn,null); 574 | InitialState.GetAllAttackingActions(AILEVEL); 575 | //Find Best Score 576 | float MaxScore = float.MinValue; 577 | AIGameState BestState = new AIGameState(); 578 | foreach (AIGameState item in AIGameState.AllStates) 579 | { 580 | if (item.State_Score > MaxScore) 581 | { 582 | MaxScore = item.State_Score; 583 | BestState = item; 584 | } 585 | } 586 | //Debug.Log("Best choice Index" + BestState.Index); 587 | int count = BestState.Actions.Count; 588 | //GetActions 589 | for (int i = 0; i < count; i++) 590 | { 591 | AIGameState.Action a; 592 | a = BestState.Actions.Dequeue(); 593 | if (a.OpCode == 1) 594 | { 595 | foreach (var item in AITableCards)//Find Card1 596 | { 597 | if (item.GetComponent()._name == a.Card1) 598 | { 599 | currentCard = item.GetComponent(); 600 | break; 601 | } 602 | } 603 | foreach (var item in MyTableCards)//Find Card2 604 | { 605 | if (item.GetComponent()._name == a.Card2) 606 | { 607 | targetCard = item.GetComponent(); 608 | break; 609 | } 610 | } 611 | if (currentCard != null && targetCard != null)//MakeAction 612 | { 613 | currentCard.AttackCard(currentCard, targetCard, true, delegate 614 | { 615 | currentCard.canPlay = false; 616 | }); 617 | } 618 | } 619 | else if (a.OpCode == 2) 620 | { 621 | foreach (var item in AITableCards)//Find Card1 622 | { 623 | if (item.GetComponent()._name == a.Card1) 624 | { 625 | currentCard = item.GetComponent(); 626 | break; 627 | } 628 | } 629 | if (a.Hero == "MyHero") 630 | { 631 | targetHero = MyHero; 632 | } 633 | if (currentCard != null && targetHero != null) 634 | { 635 | currentCard.AttackHero(currentCard, MyHero, true, delegate 636 | { 637 | currentCard.canPlay = false; 638 | }); 639 | } 640 | }else if (a.OpCode == 3) 641 | { 642 | foreach (var item in AITableCards)//Find Card1 643 | { 644 | if (item.GetComponent()._name == a.Card1) 645 | { 646 | currentCard = item.GetComponent(); 647 | break; 648 | } 649 | } 650 | foreach (var item in MyTableCards)//Find Card2 651 | { 652 | if (item.GetComponent()._name == a.Card2) 653 | { 654 | targetCard = item.GetComponent(); 655 | break; 656 | } 657 | } 658 | if (currentCard != null && targetCard != null)//MakeAction 659 | { 660 | currentCard.AddToMonster(currentCard, targetCard, true, delegate 661 | { 662 | currentCard.Destroy(currentCard); 663 | }); 664 | } 665 | } 666 | } 667 | //AIGameState.AllStates=new List< AIGameState > (); 668 | } 669 | void OnTriggerEnter(Collider Obj) 670 | { 671 | CardBehaviourScript card = Obj.GetComponent(); 672 | if (card) 673 | { 674 | card.PlaceCard(); 675 | } 676 | 677 | } 678 | } 679 | -------------------------------------------------------------------------------- /Assets/Scripts/BoardBehaviourScript.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 13f168b876f1f6b44a09ecfa030f11b7 3 | timeCreated: 1465597489 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Scripts/CardBehaviourScript.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using System.Collections; 3 | using System.Collections.Generic; 4 | using System.IO; 5 | using System.Runtime.Serialization.Formatters.Binary; 6 | 7 | [System.Serializable] 8 | public class CardBehaviourScript : CardGameBase, System.ICloneable 9 | { 10 | 11 | public string description = "Description"; 12 | public Texture2D image; 13 | public int health; 14 | public int _Attack; 15 | public int mana; 16 | 17 | public TextMesh nameText; 18 | public TextMesh healthText; 19 | public TextMesh AttackText; 20 | public TextMesh manaText; 21 | public TextMesh DescriptionText; 22 | public TextMesh DebugText; 23 | 24 | public bool GenerateRandomeData = false; 25 | public bool canPlay = false; 26 | public enum CardStatus { InDeck, InHand, OnTable, Destroyed }; 27 | public CardStatus cardStatus = CardStatus.InDeck; 28 | public enum CardType { Monster, Magic }; 29 | public CardType cardtype; 30 | public enum CardEffect { ToAll, ToEnemies, ToSpecific }; 31 | public CardEffect cardeffect; 32 | public int AddedHealth; 33 | public int AddedAttack; 34 | public enum Team { My, AI }; 35 | public Team team = Team.My; 36 | 37 | public Vector3 newPos; 38 | 39 | float distance_to_screen; 40 | bool Selected = false; 41 | public delegate void CustomAction(); 42 | void Start() 43 | { 44 | distance_to_screen = Camera.main.WorldToScreenPoint(gameObject.transform.position).z - 1; 45 | DescriptionText.text = description.ToString(); 46 | 47 | if (GenerateRandomeData) 48 | { 49 | 50 | 51 | cardtype = (CardType)Random.Range(0, 2); 52 | 53 | 54 | mana = Random.Range(1, 10); 55 | 56 | //Generate Randome Name 57 | string[] characters = { "a", "b", "c", "d", "e", "f" }; 58 | for (int i = 0; i < 5; i++) 59 | _name += characters[Random.Range(0, characters.Length)]; 60 | if (cardtype == CardType.Magic) 61 | { 62 | health = 0; 63 | _Attack = 0; 64 | AddedAttack = Random.Range(1, 8); 65 | AddedHealth = Random.Range(1, 8); 66 | cardeffect = (CardEffect)Random.Range(0, 3); 67 | if (cardeffect == CardEffect.ToSpecific) 68 | { 69 | DescriptionText.text = "Add " + AddedAttack + "/" + AddedHealth + "\n" + " To Any Selected Moster"; 70 | } 71 | else if (cardeffect == CardEffect.ToAll) 72 | { 73 | DescriptionText.text = "Add " + AddedAttack + "/" + AddedHealth + "\n" + " To ALL"; 74 | } 75 | else if (cardeffect == CardEffect.ToEnemies) 76 | { 77 | DescriptionText.text = "Add " + AddedAttack + "/" + AddedHealth + "\n" + " To ALL Enemies"; 78 | } 79 | 80 | } 81 | else 82 | { 83 | //Generate Randome Data 84 | health = Random.Range(1, 8); 85 | _Attack = Random.Range(1, 8); 86 | } 87 | } 88 | } 89 | void FixedUpdate() 90 | { 91 | if (!Selected) 92 | { 93 | transform.position = Vector3.Lerp(transform.position, newPos, Time.deltaTime * 3); 94 | if (cardStatus != CardStatus.InDeck) 95 | { 96 | transform.rotation = Quaternion.Lerp(transform.rotation, Quaternion.Euler(0.0f, 180.0f, 0.0f), Time.deltaTime*3); 97 | } 98 | } 99 | if (cardtype==CardType.Monster) 100 | { 101 | if (health <= 0) 102 | { 103 | Destroy(this); 104 | } 105 | } 106 | //Update Visuals 107 | nameText.text = _name.ToString(); 108 | healthText.text = health.ToString(); 109 | AttackText.text = _Attack.ToString(); 110 | manaText.text = mana.ToString(); 111 | DebugText.text = canPlay ? "Ready to attack" : "Nope"; 112 | } 113 | public void PlaceCard() 114 | { 115 | if (BoardBehaviourScript.instance.turn == BoardBehaviourScript.Turn.MyTurn && cardStatus == CardStatus.InHand && team == Team.My) 116 | { 117 | //Selected = false; 118 | BoardBehaviourScript.instance.PlaceCard(this); 119 | } 120 | } 121 | void OnMouseDown() 122 | { 123 | if (cardStatus == CardStatus.InHand) 124 | { 125 | Selected = true; 126 | } 127 | 128 | 129 | if (!BoardBehaviourScript.instance.currentCard && cardStatus==CardStatus.OnTable) 130 | { 131 | //clicked on friendly card on table to attack another table card 132 | BoardBehaviourScript.instance.currentCard = this; 133 | print("Selected card: " + _Attack + ":" + health); 134 | } 135 | else if (BoardBehaviourScript.instance.currentCard && BoardBehaviourScript.instance.currentCard.cardtype == CardType.Magic && BoardBehaviourScript.instance.turn == BoardBehaviourScript.Turn.MyTurn && cardStatus == CardStatus.OnTable) 136 | { 137 | if (BoardBehaviourScript.instance.currentCard.cardeffect == CardEffect.ToSpecific)//Magic VS Card 138 | {//What Magic Card Will Do To MonsterCard 139 | BoardBehaviourScript.instance.targetCard = this; 140 | print("Target card: " + _Attack + ":" + health); 141 | if (BoardBehaviourScript.instance.currentCard.canPlay) 142 | { 143 | AddToMonster(BoardBehaviourScript.instance.currentCard, BoardBehaviourScript.instance.targetCard,true, delegate 144 | { 145 | BoardBehaviourScript.instance.currentCard.Destroy(BoardBehaviourScript.instance.currentCard); 146 | }); 147 | } 148 | } 149 | 150 | } 151 | else if (BoardBehaviourScript.instance.currentCard && BoardBehaviourScript.instance.currentCard.cardtype == CardType.Monster && BoardBehaviourScript.instance.turn == BoardBehaviourScript.Turn.MyTurn && cardStatus == CardStatus.OnTable && BoardBehaviourScript.instance.currentCard!=this)//Card VS Card 152 | { 153 | //clicked opponent card on table on your turn 154 | if (BoardBehaviourScript.instance.currentCard != null && BoardBehaviourScript.instance.currentCard.canPlay) 155 | { 156 | BoardBehaviourScript.instance.targetCard = this; 157 | print("Target card: " + _Attack + ":" + health); 158 | if (BoardBehaviourScript.instance.currentCard.canPlay) 159 | { 160 | AttackCard(BoardBehaviourScript.instance.currentCard, BoardBehaviourScript.instance.targetCard,true, delegate 161 | { 162 | BoardBehaviourScript.instance.currentCard.canPlay = false; 163 | }); 164 | } 165 | else print("Card cannot attack"); 166 | } 167 | print("Cannot Attack this Target card: "); 168 | } 169 | else if ((BoardBehaviourScript.instance.turn == BoardBehaviourScript.Turn.MyTurn && BoardBehaviourScript.instance.currentHero && cardStatus == CardStatus.OnTable))//Hero VS Card 170 | { 171 | if (BoardBehaviourScript.instance.currentHero.CanAttack) 172 | { 173 | BoardBehaviourScript.instance.targetCard = this; 174 | print("Target card: " + _Attack + ":" + health); 175 | BoardBehaviourScript.instance.currentHero.AttackCard(BoardBehaviourScript.instance.currentHero, BoardBehaviourScript.instance.targetCard, delegate 176 | { 177 | BoardBehaviourScript.instance.currentHero.CanAttack = false; 178 | }); 179 | } 180 | } 181 | else 182 | { 183 | BoardBehaviourScript.instance.currentCard = null; 184 | BoardBehaviourScript.instance.currentHero = null; 185 | BoardBehaviourScript.instance.targetCard = null; 186 | BoardBehaviourScript.instance.targetHero = null; 187 | Debug.Log("Action Reset"); 188 | } 189 | 190 | } 191 | void OnMouseUp() 192 | { 193 | //Debug.Log("On Mouse Up Event"); 194 | Selected = false; 195 | } 196 | void OnMouseOver() 197 | { 198 | 199 | //Debug.Log("On Mouse Over Event"); 200 | } 201 | void OnMouseEnter() 202 | { 203 | //Debug.Log("On Mouse Enter Event"); 204 | //newPos += new Vector3(0,0.5f,0); 205 | } 206 | void OnMouseExit() 207 | { 208 | //Debug.Log("On Mouse Exit Event"); 209 | //newPos -= new Vector3(0,0.5f, 0); 210 | } 211 | void OnMouseDrag() 212 | { 213 | //Debug.Log("On Mouse Drag Event"); 214 | GetComponent().MovePosition(Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y, distance_to_screen))); 215 | } 216 | public void SetCardStatus(CardStatus status) 217 | { 218 | cardStatus = status; 219 | } 220 | public void AttackCard(CardBehaviourScript attacker, CardBehaviourScript target,bool addhistory, CustomAction action) 221 | { 222 | if (attacker.canPlay) 223 | { 224 | target.health -= attacker._Attack; 225 | attacker.health -= target._Attack; 226 | 227 | if (target.health <= 0) 228 | { 229 | Destroy(target); 230 | } 231 | 232 | if (attacker.health <= 0) 233 | { 234 | attacker.Destroy(attacker); 235 | } 236 | 237 | action(); 238 | if(addhistory) 239 | BoardBehaviourScript.instance.AddHistory(attacker, target); 240 | } 241 | }//Attack 242 | public void AttackHero(CardBehaviourScript attacker, HeroBehaviourScript target, bool addhistory, CustomAction action) 243 | { 244 | if (attacker.canPlay) 245 | { 246 | target.health -= attacker._Attack; 247 | attacker.health -= target._Attack; 248 | 249 | action(); 250 | if (addhistory) 251 | BoardBehaviourScript.instance.AddHistory(attacker, target); 252 | } 253 | }//Attack 254 | public void Destroy(CardBehaviourScript card) 255 | { 256 | if (card) 257 | { 258 | if (card.gameObject != null) 259 | { 260 | if (card.team == CardBehaviourScript.Team.My) 261 | BoardBehaviourScript.instance.MyTableCards.Remove(card.gameObject); 262 | else if (card.team == CardBehaviourScript.Team.AI) 263 | BoardBehaviourScript.instance.AITableCards.Remove(card.gameObject); 264 | 265 | 266 | //BoardBehaviourScript.instance.PlaySound(BoardBehaviourScript.instance.cardDestroy); 267 | Destroy(card.gameObject); 268 | 269 | BoardBehaviourScript.instance.TablePositionUpdate(); 270 | } 271 | 272 | }else 273 | { 274 | //card = null; 275 | } 276 | } 277 | public void AddToHero(CardBehaviourScript magic, HeroBehaviourScript target, CustomAction action) 278 | { 279 | if (magic.canPlay) 280 | { 281 | target._Attack += magic.AddedAttack; 282 | if (target.health + magic.AddedHealth <= 30) 283 | target.health += magic.AddedHealth; 284 | else 285 | target.health = 30; 286 | action(); 287 | BoardBehaviourScript.instance.AddHistory(magic, target); 288 | } 289 | }//Magic 290 | public void AddToMonster(CardBehaviourScript magic, CardBehaviourScript target,bool addhistory, CustomAction action) 291 | { 292 | if (magic.canPlay) 293 | { 294 | target._Attack += magic.AddedAttack; 295 | target.health += magic.AddedHealth; 296 | action(); 297 | if(addhistory) 298 | BoardBehaviourScript.instance.AddHistory(magic, target); 299 | } 300 | }//Magic 301 | public void AddToAll(CardBehaviourScript magic, bool addhistory, CustomAction action) 302 | { 303 | if (magic.canPlay) 304 | { 305 | foreach (var target in BoardBehaviourScript.instance.AITableCards) 306 | { 307 | AddToMonster(magic, target.GetComponent(), addhistory, delegate { }); 308 | } 309 | foreach (var target in BoardBehaviourScript.instance.MyTableCards) 310 | { 311 | AddToMonster(magic, target.GetComponent(), addhistory, delegate { }); 312 | } 313 | action(); 314 | } 315 | }//Magic 316 | public void AddToEnemies(CardBehaviourScript magic, List targets, bool addhistory, CustomAction action) 317 | { 318 | if (magic.canPlay) 319 | { 320 | foreach (var target in targets) 321 | { 322 | AddToMonster(magic, target.GetComponent(), addhistory, delegate { }); 323 | } 324 | action(); 325 | } 326 | }//Magic 327 | public void AddToEnemies(CardBehaviourScript magic, List targets, bool addhistory, CustomAction action) 328 | { 329 | if (magic.canPlay) 330 | { 331 | foreach (var target in targets) 332 | { 333 | AddToMonster(magic, target, addhistory, delegate { }); 334 | } 335 | action(); 336 | } 337 | }//Magic 338 | 339 | public object Clone() 340 | { 341 | CardBehaviourScript temp = new CardBehaviourScript(); 342 | temp._name = _name; 343 | temp.description = this.description; 344 | temp.health = this.health; 345 | temp._Attack = this._Attack; 346 | temp.mana = this.mana; 347 | temp.canPlay = this.canPlay; 348 | temp.cardStatus = this.cardStatus; 349 | temp.cardtype = this.cardtype; 350 | temp.cardeffect = this.cardeffect; 351 | temp.AddedHealth = this.AddedHealth; 352 | temp.AddedAttack = this.AddedAttack; 353 | temp.team = this.team; 354 | temp.newPos = this.newPos; 355 | temp.distance_to_screen = this.distance_to_screen; 356 | temp.Selected = this.Selected; 357 | return temp; 358 | } 359 | } 360 | -------------------------------------------------------------------------------- /Assets/Scripts/CardBehaviourScript.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: fb9aa04a033ce884ea20c1c60f31c534 3 | timeCreated: 1465580424 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Scripts/CardGameBase.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using System.Collections; 3 | 4 | [System.Serializable] 5 | public class CardGameBase : MonoBehaviour { 6 | public string _name = ""; 7 | public override string ToString() { 8 | return _name; 9 | } 10 | } 11 | 12 | -------------------------------------------------------------------------------- /Assets/Scripts/CardGameBase.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d579dbfa0ea0d14438825d45c5b29f66 3 | timeCreated: 1466196735 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Scripts/HeroBehaviourScript.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using System.Collections; 3 | using System; 4 | using System.IO; 5 | using System.Runtime.Serialization.Formatters.Binary; 6 | 7 | [Serializable] 8 | public class HeroBehaviourScript : CardGameBase ,ICloneable 9 | { 10 | 11 | public int health = 30; 12 | public bool CanAttack = true; 13 | public int _Attack = 0; 14 | 15 | public TextMesh healthText; 16 | public TextMesh AttackText; 17 | public TextMesh DebugText; 18 | 19 | public delegate void CustomAction(); 20 | public void OnMouseDown() 21 | { 22 | if (BoardBehaviourScript.instance.currentCard)//Card [Magic,Monster] VS Hero 23 | { 24 | if (BoardBehaviourScript.instance.currentCard.canPlay) 25 | { 26 | if (BoardBehaviourScript.instance.currentCard.cardtype==CardBehaviourScript.CardType.Monster && BoardBehaviourScript.instance.turn == BoardBehaviourScript.Turn.MyTurn) 27 | { 28 | BoardBehaviourScript.instance.currentCard.AttackHero(BoardBehaviourScript.instance.currentCard, this,true, delegate 29 | { 30 | BoardBehaviourScript.instance.currentCard.canPlay = false; 31 | }); 32 | } 33 | else if ((BoardBehaviourScript.instance.currentCard.cardtype == CardBehaviourScript.CardType.Magic)) 34 | { 35 | BoardBehaviourScript.instance.currentCard.AddToHero(BoardBehaviourScript.instance.currentCard, this, delegate 36 | { 37 | BoardBehaviourScript.instance.currentCard.Destroy(BoardBehaviourScript.instance.currentCard); 38 | }); 39 | } 40 | 41 | } 42 | } 43 | else if (BoardBehaviourScript.instance.turn == BoardBehaviourScript.Turn.MyTurn && !BoardBehaviourScript.instance.currentHero) 44 | { 45 | //if (BoardBehaviourScript.instance.currentHero._name == "MyHero") 46 | { 47 | BoardBehaviourScript.instance.currentHero = this; 48 | Debug.Log(name + " Hero Selected"); 49 | } 50 | } 51 | else if (BoardBehaviourScript.instance.turn == BoardBehaviourScript.Turn.MyTurn && BoardBehaviourScript.instance.currentHero && CanAttack)//Hero Vs Hero 52 | { 53 | BoardBehaviourScript.instance.targetHero = this; 54 | 55 | if (BoardBehaviourScript.instance.currentHero.CanAttack && BoardBehaviourScript.instance.targetHero!= BoardBehaviourScript.instance.currentHero) 56 | { 57 | AttackHero(BoardBehaviourScript.instance.currentHero, BoardBehaviourScript.instance.targetHero, delegate 58 | { 59 | BoardBehaviourScript.instance.currentHero.CanAttack = false; 60 | }); 61 | } 62 | else print("Hero cannot attack"); 63 | } 64 | } 65 | 66 | void FixedUpdate() 67 | { 68 | healthText.text = health.ToString(); 69 | AttackText.text = _Attack.ToString(); 70 | DebugText.text = CanAttack ? "Ready to attack" : "Can't Attack"; 71 | } 72 | public void AttackCard(HeroBehaviourScript attacker, CardBehaviourScript target, CustomAction action) 73 | { 74 | if (attacker.CanAttack) 75 | { 76 | target.health -= attacker._Attack; 77 | attacker.health -= target._Attack; 78 | 79 | if (target.health <= 0) 80 | { 81 | target.Destroy(target); 82 | } 83 | 84 | //if (attacker.health <= 0) 85 | //{ 86 | // BoardBehaviourScript.instance. 87 | //} 88 | 89 | action(); 90 | BoardBehaviourScript.instance.AddHistory(attacker, target); 91 | } 92 | } 93 | public void AttackHero(HeroBehaviourScript attacker, HeroBehaviourScript target, CustomAction action) 94 | { 95 | if (attacker.CanAttack) 96 | { 97 | target.health -= attacker._Attack; 98 | attacker.health -= target._Attack; 99 | 100 | if (target.health <= 0) 101 | { 102 | Destroy(target.gameObject); 103 | BoardBehaviourScript.instance.EndGame(attacker); 104 | } 105 | action(); 106 | BoardBehaviourScript.instance.AddHistory(attacker, target); 107 | } 108 | } 109 | 110 | public object Clone() 111 | { 112 | HeroBehaviourScript temp = new HeroBehaviourScript(); 113 | temp._name = _name; 114 | temp.health = health; 115 | temp.CanAttack = CanAttack; 116 | temp._Attack = _Attack; 117 | return temp; 118 | } 119 | } 120 | -------------------------------------------------------------------------------- /Assets/Scripts/HeroBehaviourScript.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 37770b25b8c41b942bda71364f005218 3 | timeCreated: 1465596372 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Sprites.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: abadbd9b2cd82284fbb90efaac3d3500 3 | folderAsset: yes 4 | timeCreated: 1465131376 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Sprites/Attack_value_back.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/islam0talha/UnityTradingCardGame/dd62b52dc8bb8b228177c0afa3e919d3c3626c32/Assets/Sprites/Attack_value_back.png -------------------------------------------------------------------------------- /Assets/Sprites/Attack_value_back.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7d1230bedea4a1e4da8ada73020750fe 3 | timeCreated: 1466076957 4 | licenseType: Free 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 2 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 1 11 | linearTexture: 0 12 | correctGamma: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapFadeDistanceStart: 1 16 | mipMapFadeDistanceEnd: 3 17 | bumpmap: 18 | convertToNormalMap: 0 19 | externalNormalMap: 0 20 | heightScale: 0.25 21 | normalMapFilter: 0 22 | isReadable: 0 23 | grayScaleToAlpha: 0 24 | generateCubemap: 0 25 | cubemapConvolution: 0 26 | cubemapConvolutionSteps: 7 27 | cubemapConvolutionExponent: 1.5 28 | seamlessCubemap: 0 29 | textureFormat: -1 30 | maxTextureSize: 2048 31 | textureSettings: 32 | filterMode: -1 33 | aniso: -1 34 | mipBias: -1 35 | wrapMode: 1 36 | nPOTScale: 0 37 | lightmap: 0 38 | rGBM: 0 39 | compressionQuality: 50 40 | allowsAlphaSplitting: 0 41 | spriteMode: 1 42 | spriteExtrude: 1 43 | spriteMeshType: 1 44 | alignment: 0 45 | spritePivot: {x: 0.5, y: 0.5} 46 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 47 | spritePixelsToUnits: 100 48 | alphaIsTransparency: 1 49 | textureType: 8 50 | buildTargetSettings: [] 51 | spriteSheet: 52 | sprites: [] 53 | outline: [] 54 | spritePackingTag: 55 | userData: 56 | assetBundleName: 57 | assetBundleVariant: 58 | -------------------------------------------------------------------------------- /Assets/Sprites/Board.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/islam0talha/UnityTradingCardGame/dd62b52dc8bb8b228177c0afa3e919d3c3626c32/Assets/Sprites/Board.png -------------------------------------------------------------------------------- /Assets/Sprites/Board.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: fe017def247c28244b87af8ae30e086b 3 | timeCreated: 1465595714 4 | licenseType: Free 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 2 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 1 11 | linearTexture: 0 12 | correctGamma: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapFadeDistanceStart: 1 16 | mipMapFadeDistanceEnd: 3 17 | bumpmap: 18 | convertToNormalMap: 0 19 | externalNormalMap: 0 20 | heightScale: 0.25 21 | normalMapFilter: 0 22 | isReadable: 0 23 | grayScaleToAlpha: 0 24 | generateCubemap: 0 25 | cubemapConvolution: 0 26 | cubemapConvolutionSteps: 7 27 | cubemapConvolutionExponent: 1.5 28 | seamlessCubemap: 0 29 | textureFormat: -1 30 | maxTextureSize: 2048 31 | textureSettings: 32 | filterMode: -1 33 | aniso: -1 34 | mipBias: -1 35 | wrapMode: 1 36 | nPOTScale: 0 37 | lightmap: 0 38 | rGBM: 0 39 | compressionQuality: 50 40 | allowsAlphaSplitting: 0 41 | spriteMode: 1 42 | spriteExtrude: 1 43 | spriteMeshType: 1 44 | alignment: 0 45 | spritePivot: {x: 0.5, y: 0.5} 46 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 47 | spritePixelsToUnits: 100 48 | alphaIsTransparency: 1 49 | textureType: 8 50 | buildTargetSettings: [] 51 | spriteSheet: 52 | sprites: [] 53 | outline: [] 54 | spritePackingTag: 55 | userData: 56 | assetBundleName: 57 | assetBundleVariant: 58 | -------------------------------------------------------------------------------- /Assets/Sprites/Gul'dan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/islam0talha/UnityTradingCardGame/dd62b52dc8bb8b228177c0afa3e919d3c3626c32/Assets/Sprites/Gul'dan.png -------------------------------------------------------------------------------- /Assets/Sprites/Gul'dan.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9f974a5e27ec393449d14b8cfcd4be86 3 | timeCreated: 1465595067 4 | licenseType: Free 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 2 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 1 11 | linearTexture: 0 12 | correctGamma: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapFadeDistanceStart: 1 16 | mipMapFadeDistanceEnd: 3 17 | bumpmap: 18 | convertToNormalMap: 0 19 | externalNormalMap: 0 20 | heightScale: 0.25 21 | normalMapFilter: 0 22 | isReadable: 0 23 | grayScaleToAlpha: 0 24 | generateCubemap: 0 25 | cubemapConvolution: 0 26 | cubemapConvolutionSteps: 7 27 | cubemapConvolutionExponent: 1.5 28 | seamlessCubemap: 0 29 | textureFormat: -1 30 | maxTextureSize: 2048 31 | textureSettings: 32 | filterMode: -1 33 | aniso: -1 34 | mipBias: -1 35 | wrapMode: 1 36 | nPOTScale: 0 37 | lightmap: 0 38 | rGBM: 0 39 | compressionQuality: 50 40 | allowsAlphaSplitting: 0 41 | spriteMode: 1 42 | spriteExtrude: 1 43 | spriteMeshType: 1 44 | alignment: 0 45 | spritePivot: {x: 0.5, y: 0.5} 46 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 47 | spritePixelsToUnits: 100 48 | alphaIsTransparency: 1 49 | textureType: 8 50 | buildTargetSettings: [] 51 | spriteSheet: 52 | sprites: [] 53 | outline: [] 54 | spritePackingTag: 55 | userData: 56 | assetBundleName: 57 | assetBundleVariant: 58 | -------------------------------------------------------------------------------- /Assets/Sprites/Hero.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/islam0talha/UnityTradingCardGame/dd62b52dc8bb8b228177c0afa3e919d3c3626c32/Assets/Sprites/Hero.png -------------------------------------------------------------------------------- /Assets/Sprites/Hero.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b176f8e21fac98948b2b7470b859ec99 3 | timeCreated: 1465131445 4 | licenseType: Free 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 2 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 1 11 | linearTexture: 0 12 | correctGamma: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapFadeDistanceStart: 1 16 | mipMapFadeDistanceEnd: 3 17 | bumpmap: 18 | convertToNormalMap: 0 19 | externalNormalMap: 0 20 | heightScale: 0.25 21 | normalMapFilter: 0 22 | isReadable: 0 23 | grayScaleToAlpha: 0 24 | generateCubemap: 0 25 | cubemapConvolution: 0 26 | cubemapConvolutionSteps: 7 27 | cubemapConvolutionExponent: 1.5 28 | seamlessCubemap: 0 29 | textureFormat: -1 30 | maxTextureSize: 2048 31 | textureSettings: 32 | filterMode: -1 33 | aniso: -1 34 | mipBias: -1 35 | wrapMode: 1 36 | nPOTScale: 0 37 | lightmap: 0 38 | rGBM: 0 39 | compressionQuality: 50 40 | allowsAlphaSplitting: 0 41 | spriteMode: 1 42 | spriteExtrude: 1 43 | spriteMeshType: 1 44 | alignment: 0 45 | spritePivot: {x: 0.5, y: 0.5} 46 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 47 | spritePixelsToUnits: 100 48 | alphaIsTransparency: 1 49 | textureType: 8 50 | buildTargetSettings: [] 51 | spriteSheet: 52 | sprites: [] 53 | outline: [] 54 | spritePackingTag: 55 | userData: 56 | assetBundleName: 57 | assetBundleVariant: 58 | -------------------------------------------------------------------------------- /Assets/Sprites/Lunar_Card_Back.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/islam0talha/UnityTradingCardGame/dd62b52dc8bb8b228177c0afa3e919d3c3626c32/Assets/Sprites/Lunar_Card_Back.png -------------------------------------------------------------------------------- /Assets/Sprites/Lunar_Card_Back.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a8c03dfa9ce2a5c409b9a6f96f224e8e 3 | timeCreated: 1465591932 4 | licenseType: Free 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 2 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 0 11 | linearTexture: 0 12 | correctGamma: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapFadeDistanceStart: 1 16 | mipMapFadeDistanceEnd: 3 17 | bumpmap: 18 | convertToNormalMap: 0 19 | externalNormalMap: 0 20 | heightScale: 0.25 21 | normalMapFilter: 0 22 | isReadable: 0 23 | grayScaleToAlpha: 0 24 | generateCubemap: 0 25 | cubemapConvolution: 0 26 | cubemapConvolutionSteps: 7 27 | cubemapConvolutionExponent: 1.5 28 | seamlessCubemap: 0 29 | textureFormat: -3 30 | maxTextureSize: 512 31 | textureSettings: 32 | filterMode: -1 33 | aniso: 16 34 | mipBias: -1 35 | wrapMode: 1 36 | nPOTScale: 0 37 | lightmap: 0 38 | rGBM: 0 39 | compressionQuality: 50 40 | allowsAlphaSplitting: 0 41 | spriteMode: 1 42 | spriteExtrude: 1 43 | spriteMeshType: 1 44 | alignment: 0 45 | spritePivot: {x: 0.5, y: 0.5} 46 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 47 | spritePixelsToUnits: 100 48 | alphaIsTransparency: 1 49 | textureType: 8 50 | buildTargetSettings: [] 51 | spriteSheet: 52 | sprites: [] 53 | outline: [] 54 | spritePackingTag: 55 | userData: 56 | assetBundleName: 57 | assetBundleVariant: 58 | -------------------------------------------------------------------------------- /Assets/Sprites/MagicData.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/islam0talha/UnityTradingCardGame/dd62b52dc8bb8b228177c0afa3e919d3c3626c32/Assets/Sprites/MagicData.png -------------------------------------------------------------------------------- /Assets/Sprites/MagicData.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 72182c25226e2f1468d0e535482664fa 3 | timeCreated: 1465592657 4 | licenseType: Free 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 2 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 0 11 | linearTexture: 0 12 | correctGamma: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapFadeDistanceStart: 1 16 | mipMapFadeDistanceEnd: 3 17 | bumpmap: 18 | convertToNormalMap: 0 19 | externalNormalMap: 0 20 | heightScale: 0.25 21 | normalMapFilter: 0 22 | isReadable: 0 23 | grayScaleToAlpha: 0 24 | generateCubemap: 0 25 | cubemapConvolution: 0 26 | cubemapConvolutionSteps: 7 27 | cubemapConvolutionExponent: 1.5 28 | seamlessCubemap: 0 29 | textureFormat: -3 30 | maxTextureSize: 512 31 | textureSettings: 32 | filterMode: -1 33 | aniso: 16 34 | mipBias: -1 35 | wrapMode: 1 36 | nPOTScale: 0 37 | lightmap: 0 38 | rGBM: 0 39 | compressionQuality: 50 40 | allowsAlphaSplitting: 0 41 | spriteMode: 1 42 | spriteExtrude: 1 43 | spriteMeshType: 1 44 | alignment: 0 45 | spritePivot: {x: 0.5, y: 0.5} 46 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 47 | spritePixelsToUnits: 100 48 | alphaIsTransparency: 1 49 | textureType: 8 50 | buildTargetSettings: [] 51 | spriteSheet: 52 | sprites: [] 53 | outline: [] 54 | spritePackingTag: 55 | userData: 56 | assetBundleName: 57 | assetBundleVariant: 58 | -------------------------------------------------------------------------------- /Assets/Sprites/Malfurion.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/islam0talha/UnityTradingCardGame/dd62b52dc8bb8b228177c0afa3e919d3c3626c32/Assets/Sprites/Malfurion.png -------------------------------------------------------------------------------- /Assets/Sprites/Malfurion.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a0b72669ee486214dac555ca31d73ce3 3 | timeCreated: 1465595068 4 | licenseType: Free 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 2 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 1 11 | linearTexture: 0 12 | correctGamma: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapFadeDistanceStart: 1 16 | mipMapFadeDistanceEnd: 3 17 | bumpmap: 18 | convertToNormalMap: 0 19 | externalNormalMap: 0 20 | heightScale: 0.25 21 | normalMapFilter: 0 22 | isReadable: 0 23 | grayScaleToAlpha: 0 24 | generateCubemap: 0 25 | cubemapConvolution: 0 26 | cubemapConvolutionSteps: 7 27 | cubemapConvolutionExponent: 1.5 28 | seamlessCubemap: 0 29 | textureFormat: -1 30 | maxTextureSize: 2048 31 | textureSettings: 32 | filterMode: -1 33 | aniso: -1 34 | mipBias: -1 35 | wrapMode: 1 36 | nPOTScale: 0 37 | lightmap: 0 38 | rGBM: 0 39 | compressionQuality: 50 40 | allowsAlphaSplitting: 0 41 | spriteMode: 1 42 | spriteExtrude: 1 43 | spriteMeshType: 1 44 | alignment: 0 45 | spritePivot: {x: 0.5, y: 0.5} 46 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 47 | spritePixelsToUnits: 100 48 | alphaIsTransparency: 1 49 | textureType: 8 50 | buildTargetSettings: [] 51 | spriteSheet: 52 | sprites: [] 53 | outline: [] 54 | spritePackingTag: 55 | userData: 56 | assetBundleName: 57 | assetBundleVariant: 58 | -------------------------------------------------------------------------------- /Assets/Sprites/Monster.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/islam0talha/UnityTradingCardGame/dd62b52dc8bb8b228177c0afa3e919d3c3626c32/Assets/Sprites/Monster.png -------------------------------------------------------------------------------- /Assets/Sprites/Monster.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ad2dc99316c204e4a8f3ab2a7a6b80d6 3 | timeCreated: 1465592657 4 | licenseType: Free 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 2 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 0 11 | linearTexture: 0 12 | correctGamma: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapFadeDistanceStart: 1 16 | mipMapFadeDistanceEnd: 3 17 | bumpmap: 18 | convertToNormalMap: 0 19 | externalNormalMap: 0 20 | heightScale: 0.25 21 | normalMapFilter: 0 22 | isReadable: 0 23 | grayScaleToAlpha: 0 24 | generateCubemap: 0 25 | cubemapConvolution: 0 26 | cubemapConvolutionSteps: 7 27 | cubemapConvolutionExponent: 1.5 28 | seamlessCubemap: 0 29 | textureFormat: -3 30 | maxTextureSize: 512 31 | textureSettings: 32 | filterMode: -1 33 | aniso: 16 34 | mipBias: -1 35 | wrapMode: 1 36 | nPOTScale: 0 37 | lightmap: 0 38 | rGBM: 0 39 | compressionQuality: 50 40 | allowsAlphaSplitting: 0 41 | spriteMode: 1 42 | spriteExtrude: 1 43 | spriteMeshType: 1 44 | alignment: 0 45 | spritePivot: {x: 0.5, y: 0.5} 46 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 47 | spritePixelsToUnits: 100 48 | alphaIsTransparency: 1 49 | textureType: 8 50 | buildTargetSettings: [] 51 | spriteSheet: 52 | sprites: [] 53 | outline: [] 54 | spritePackingTag: 55 | userData: 56 | assetBundleName: 57 | assetBundleVariant: 58 | -------------------------------------------------------------------------------- /Assets/Sprites/mana_crystal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/islam0talha/UnityTradingCardGame/dd62b52dc8bb8b228177c0afa3e919d3c3626c32/Assets/Sprites/mana_crystal.png -------------------------------------------------------------------------------- /Assets/Sprites/mana_crystal.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5b956a3b502b8924f969a0c0e99bca16 3 | timeCreated: 1466076957 4 | licenseType: Free 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 2 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 1 11 | linearTexture: 0 12 | correctGamma: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapFadeDistanceStart: 1 16 | mipMapFadeDistanceEnd: 3 17 | bumpmap: 18 | convertToNormalMap: 0 19 | externalNormalMap: 0 20 | heightScale: 0.25 21 | normalMapFilter: 0 22 | isReadable: 0 23 | grayScaleToAlpha: 0 24 | generateCubemap: 0 25 | cubemapConvolution: 0 26 | cubemapConvolutionSteps: 7 27 | cubemapConvolutionExponent: 1.5 28 | seamlessCubemap: 0 29 | textureFormat: -1 30 | maxTextureSize: 2048 31 | textureSettings: 32 | filterMode: -1 33 | aniso: -1 34 | mipBias: -1 35 | wrapMode: 1 36 | nPOTScale: 0 37 | lightmap: 0 38 | rGBM: 0 39 | compressionQuality: 50 40 | allowsAlphaSplitting: 0 41 | spriteMode: 1 42 | spriteExtrude: 1 43 | spriteMeshType: 1 44 | alignment: 0 45 | spritePivot: {x: 0.5, y: 0.5} 46 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 47 | spritePixelsToUnits: 100 48 | alphaIsTransparency: 1 49 | textureType: 8 50 | buildTargetSettings: [] 51 | spriteSheet: 52 | sprites: [] 53 | outline: [] 54 | spritePackingTag: 55 | userData: 56 | assetBundleName: 57 | assetBundleVariant: 58 | -------------------------------------------------------------------------------- /ProjectSettings/AudioManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!11 &1 4 | AudioManager: 5 | m_ObjectHideFlags: 0 6 | m_Volume: 1 7 | Rolloff Scale: 1 8 | Doppler Factor: 1 9 | Default Speaker Mode: 2 10 | m_SampleRate: 0 11 | m_DSPBufferSize: 0 12 | m_VirtualVoiceCount: 512 13 | m_RealVoiceCount: 32 14 | m_SpatializerPlugin: 15 | m_DisableAudio: 0 16 | -------------------------------------------------------------------------------- /ProjectSettings/ClusterInputManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!236 &1 4 | ClusterInputManager: 5 | m_ObjectHideFlags: 0 6 | m_Inputs: [] 7 | -------------------------------------------------------------------------------- /ProjectSettings/DynamicsManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!55 &1 4 | PhysicsManager: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | m_Gravity: {x: 0, y: 0, z: 10} 8 | m_DefaultMaterial: {fileID: 0} 9 | m_BounceThreshold: 2 10 | m_SleepThreshold: 0.005 11 | m_DefaultContactOffset: 0.01 12 | m_SolverIterationCount: 6 13 | m_QueriesHitTriggers: 1 14 | m_EnableAdaptiveForce: 0 15 | m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 16 | -------------------------------------------------------------------------------- /ProjectSettings/EditorBuildSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1045 &1 4 | EditorBuildSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | m_Scenes: [] 8 | -------------------------------------------------------------------------------- /ProjectSettings/EditorSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!159 &1 4 | EditorSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 3 7 | m_ExternalVersionControlSupport: Hidden Meta Files 8 | m_SerializationMode: 2 9 | m_WebSecurityEmulationEnabled: 0 10 | m_WebSecurityEmulationHostUrl: http://www.mydomain.com/mygame.unity3d 11 | m_DefaultBehaviorMode: 1 12 | m_SpritePackerMode: 2 13 | m_SpritePackerPaddingPower: 1 14 | m_ProjectGenerationIncludedExtensions: txt;xml;fnt;cd 15 | m_ProjectGenerationRootNamespace: 16 | -------------------------------------------------------------------------------- /ProjectSettings/GraphicsSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!30 &1 4 | GraphicsSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 5 7 | m_Deferred: 8 | m_Mode: 1 9 | m_Shader: {fileID: 69, guid: 0000000000000000f000000000000000, type: 0} 10 | m_DeferredReflections: 11 | m_Mode: 1 12 | m_Shader: {fileID: 74, guid: 0000000000000000f000000000000000, type: 0} 13 | m_LegacyDeferred: 14 | m_Mode: 1 15 | m_Shader: {fileID: 63, guid: 0000000000000000f000000000000000, type: 0} 16 | m_AlwaysIncludedShaders: 17 | - {fileID: 7, guid: 0000000000000000f000000000000000, type: 0} 18 | - {fileID: 15104, guid: 0000000000000000f000000000000000, type: 0} 19 | - {fileID: 15105, guid: 0000000000000000f000000000000000, type: 0} 20 | - {fileID: 15106, guid: 0000000000000000f000000000000000, type: 0} 21 | - {fileID: 10770, guid: 0000000000000000f000000000000000, type: 0} 22 | - {fileID: 10782, guid: 0000000000000000f000000000000000, type: 0} 23 | m_PreloadedShaders: [] 24 | m_ShaderSettings: 25 | useScreenSpaceShadows: 1 26 | m_BuildTargetShaderSettings: [] 27 | m_LightmapStripping: 0 28 | m_FogStripping: 0 29 | m_LightmapKeepPlain: 1 30 | m_LightmapKeepDirCombined: 1 31 | m_LightmapKeepDirSeparate: 1 32 | m_LightmapKeepDynamicPlain: 1 33 | m_LightmapKeepDynamicDirCombined: 1 34 | m_LightmapKeepDynamicDirSeparate: 1 35 | m_FogKeepLinear: 1 36 | m_FogKeepExp: 1 37 | m_FogKeepExp2: 1 38 | -------------------------------------------------------------------------------- /ProjectSettings/InputManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!13 &1 4 | InputManager: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | m_Axes: 8 | - serializedVersion: 3 9 | m_Name: Horizontal 10 | descriptiveName: 11 | descriptiveNegativeName: 12 | negativeButton: left 13 | positiveButton: right 14 | altNegativeButton: a 15 | altPositiveButton: d 16 | gravity: 3 17 | dead: 0.001 18 | sensitivity: 3 19 | snap: 1 20 | invert: 0 21 | type: 0 22 | axis: 0 23 | joyNum: 0 24 | - serializedVersion: 3 25 | m_Name: Vertical 26 | descriptiveName: 27 | descriptiveNegativeName: 28 | negativeButton: down 29 | positiveButton: up 30 | altNegativeButton: s 31 | altPositiveButton: w 32 | gravity: 3 33 | dead: 0.001 34 | sensitivity: 3 35 | snap: 1 36 | invert: 0 37 | type: 0 38 | axis: 0 39 | joyNum: 0 40 | - serializedVersion: 3 41 | m_Name: Fire1 42 | descriptiveName: 43 | descriptiveNegativeName: 44 | negativeButton: 45 | positiveButton: left ctrl 46 | altNegativeButton: 47 | altPositiveButton: mouse 0 48 | gravity: 1000 49 | dead: 0.001 50 | sensitivity: 1000 51 | snap: 0 52 | invert: 0 53 | type: 0 54 | axis: 0 55 | joyNum: 0 56 | - serializedVersion: 3 57 | m_Name: Fire2 58 | descriptiveName: 59 | descriptiveNegativeName: 60 | negativeButton: 61 | positiveButton: left alt 62 | altNegativeButton: 63 | altPositiveButton: mouse 1 64 | gravity: 1000 65 | dead: 0.001 66 | sensitivity: 1000 67 | snap: 0 68 | invert: 0 69 | type: 0 70 | axis: 0 71 | joyNum: 0 72 | - serializedVersion: 3 73 | m_Name: Fire3 74 | descriptiveName: 75 | descriptiveNegativeName: 76 | negativeButton: 77 | positiveButton: left shift 78 | altNegativeButton: 79 | altPositiveButton: mouse 2 80 | gravity: 1000 81 | dead: 0.001 82 | sensitivity: 1000 83 | snap: 0 84 | invert: 0 85 | type: 0 86 | axis: 0 87 | joyNum: 0 88 | - serializedVersion: 3 89 | m_Name: Jump 90 | descriptiveName: 91 | descriptiveNegativeName: 92 | negativeButton: 93 | positiveButton: space 94 | altNegativeButton: 95 | altPositiveButton: 96 | gravity: 1000 97 | dead: 0.001 98 | sensitivity: 1000 99 | snap: 0 100 | invert: 0 101 | type: 0 102 | axis: 0 103 | joyNum: 0 104 | - serializedVersion: 3 105 | m_Name: Mouse X 106 | descriptiveName: 107 | descriptiveNegativeName: 108 | negativeButton: 109 | positiveButton: 110 | altNegativeButton: 111 | altPositiveButton: 112 | gravity: 0 113 | dead: 0 114 | sensitivity: 0.1 115 | snap: 0 116 | invert: 0 117 | type: 1 118 | axis: 0 119 | joyNum: 0 120 | - serializedVersion: 3 121 | m_Name: Mouse Y 122 | descriptiveName: 123 | descriptiveNegativeName: 124 | negativeButton: 125 | positiveButton: 126 | altNegativeButton: 127 | altPositiveButton: 128 | gravity: 0 129 | dead: 0 130 | sensitivity: 0.1 131 | snap: 0 132 | invert: 0 133 | type: 1 134 | axis: 1 135 | joyNum: 0 136 | - serializedVersion: 3 137 | m_Name: Mouse ScrollWheel 138 | descriptiveName: 139 | descriptiveNegativeName: 140 | negativeButton: 141 | positiveButton: 142 | altNegativeButton: 143 | altPositiveButton: 144 | gravity: 0 145 | dead: 0 146 | sensitivity: 0.1 147 | snap: 0 148 | invert: 0 149 | type: 1 150 | axis: 2 151 | joyNum: 0 152 | - serializedVersion: 3 153 | m_Name: Horizontal 154 | descriptiveName: 155 | descriptiveNegativeName: 156 | negativeButton: 157 | positiveButton: 158 | altNegativeButton: 159 | altPositiveButton: 160 | gravity: 0 161 | dead: 0.19 162 | sensitivity: 1 163 | snap: 0 164 | invert: 0 165 | type: 2 166 | axis: 0 167 | joyNum: 0 168 | - serializedVersion: 3 169 | m_Name: Vertical 170 | descriptiveName: 171 | descriptiveNegativeName: 172 | negativeButton: 173 | positiveButton: 174 | altNegativeButton: 175 | altPositiveButton: 176 | gravity: 0 177 | dead: 0.19 178 | sensitivity: 1 179 | snap: 0 180 | invert: 1 181 | type: 2 182 | axis: 1 183 | joyNum: 0 184 | - serializedVersion: 3 185 | m_Name: Fire1 186 | descriptiveName: 187 | descriptiveNegativeName: 188 | negativeButton: 189 | positiveButton: joystick button 0 190 | altNegativeButton: 191 | altPositiveButton: 192 | gravity: 1000 193 | dead: 0.001 194 | sensitivity: 1000 195 | snap: 0 196 | invert: 0 197 | type: 0 198 | axis: 0 199 | joyNum: 0 200 | - serializedVersion: 3 201 | m_Name: Fire2 202 | descriptiveName: 203 | descriptiveNegativeName: 204 | negativeButton: 205 | positiveButton: joystick button 1 206 | altNegativeButton: 207 | altPositiveButton: 208 | gravity: 1000 209 | dead: 0.001 210 | sensitivity: 1000 211 | snap: 0 212 | invert: 0 213 | type: 0 214 | axis: 0 215 | joyNum: 0 216 | - serializedVersion: 3 217 | m_Name: Fire3 218 | descriptiveName: 219 | descriptiveNegativeName: 220 | negativeButton: 221 | positiveButton: joystick button 2 222 | altNegativeButton: 223 | altPositiveButton: 224 | gravity: 1000 225 | dead: 0.001 226 | sensitivity: 1000 227 | snap: 0 228 | invert: 0 229 | type: 0 230 | axis: 0 231 | joyNum: 0 232 | - serializedVersion: 3 233 | m_Name: Jump 234 | descriptiveName: 235 | descriptiveNegativeName: 236 | negativeButton: 237 | positiveButton: joystick button 3 238 | altNegativeButton: 239 | altPositiveButton: 240 | gravity: 1000 241 | dead: 0.001 242 | sensitivity: 1000 243 | snap: 0 244 | invert: 0 245 | type: 0 246 | axis: 0 247 | joyNum: 0 248 | - serializedVersion: 3 249 | m_Name: Submit 250 | descriptiveName: 251 | descriptiveNegativeName: 252 | negativeButton: 253 | positiveButton: return 254 | altNegativeButton: 255 | altPositiveButton: joystick button 0 256 | gravity: 1000 257 | dead: 0.001 258 | sensitivity: 1000 259 | snap: 0 260 | invert: 0 261 | type: 0 262 | axis: 0 263 | joyNum: 0 264 | - serializedVersion: 3 265 | m_Name: Submit 266 | descriptiveName: 267 | descriptiveNegativeName: 268 | negativeButton: 269 | positiveButton: enter 270 | altNegativeButton: 271 | altPositiveButton: space 272 | gravity: 1000 273 | dead: 0.001 274 | sensitivity: 1000 275 | snap: 0 276 | invert: 0 277 | type: 0 278 | axis: 0 279 | joyNum: 0 280 | - serializedVersion: 3 281 | m_Name: Cancel 282 | descriptiveName: 283 | descriptiveNegativeName: 284 | negativeButton: 285 | positiveButton: escape 286 | altNegativeButton: 287 | altPositiveButton: joystick button 1 288 | gravity: 1000 289 | dead: 0.001 290 | sensitivity: 1000 291 | snap: 0 292 | invert: 0 293 | type: 0 294 | axis: 0 295 | joyNum: 0 296 | -------------------------------------------------------------------------------- /ProjectSettings/NavMeshAreas.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!126 &1 4 | NavMeshAreas: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | areas: 8 | - name: Walkable 9 | cost: 1 10 | - name: Not Walkable 11 | cost: 1 12 | - name: Jump 13 | cost: 2 14 | - name: 15 | cost: 1 16 | - name: 17 | cost: 1 18 | - name: 19 | cost: 1 20 | - name: 21 | cost: 1 22 | - name: 23 | cost: 1 24 | - name: 25 | cost: 1 26 | - name: 27 | cost: 1 28 | - name: 29 | cost: 1 30 | - name: 31 | cost: 1 32 | - name: 33 | cost: 1 34 | - name: 35 | cost: 1 36 | - name: 37 | cost: 1 38 | - name: 39 | cost: 1 40 | - name: 41 | cost: 1 42 | - name: 43 | cost: 1 44 | - name: 45 | cost: 1 46 | - name: 47 | cost: 1 48 | - name: 49 | cost: 1 50 | - name: 51 | cost: 1 52 | - name: 53 | cost: 1 54 | - name: 55 | cost: 1 56 | - name: 57 | cost: 1 58 | - name: 59 | cost: 1 60 | - name: 61 | cost: 1 62 | - name: 63 | cost: 1 64 | - name: 65 | cost: 1 66 | - name: 67 | cost: 1 68 | - name: 69 | cost: 1 70 | - name: 71 | cost: 1 72 | -------------------------------------------------------------------------------- /ProjectSettings/NetworkManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!149 &1 4 | NetworkManager: 5 | m_ObjectHideFlags: 0 6 | m_DebugLevel: 0 7 | m_Sendrate: 15 8 | m_AssetToPrefab: {} 9 | -------------------------------------------------------------------------------- /ProjectSettings/Physics2DSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!19 &1 4 | Physics2DSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | m_Gravity: {x: 0, y: -9.81} 8 | m_DefaultMaterial: {fileID: 0} 9 | m_VelocityIterations: 8 10 | m_PositionIterations: 3 11 | m_VelocityThreshold: 1 12 | m_MaxLinearCorrection: 0.2 13 | m_MaxAngularCorrection: 8 14 | m_MaxTranslationSpeed: 100 15 | m_MaxRotationSpeed: 360 16 | m_MinPenetrationForPenalty: 0.01 17 | m_BaumgarteScale: 0.2 18 | m_BaumgarteTimeOfImpactScale: 0.75 19 | m_TimeToSleep: 0.5 20 | m_LinearSleepTolerance: 0.01 21 | m_AngularSleepTolerance: 2 22 | m_QueriesHitTriggers: 1 23 | m_QueriesStartInColliders: 1 24 | m_ChangeStopsCallbacks: 0 25 | m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 26 | -------------------------------------------------------------------------------- /ProjectSettings/ProjectSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!129 &1 4 | PlayerSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 8 7 | AndroidProfiler: 0 8 | defaultScreenOrientation: 4 9 | targetDevice: 2 10 | useOnDemandResources: 0 11 | accelerometerFrequency: 60 12 | companyName: DefaultCompany 13 | productName: CardGame 14 | defaultCursor: {fileID: 0} 15 | cursorHotspot: {x: 0, y: 0} 16 | m_ShowUnitySplashScreen: 1 17 | m_VirtualRealitySplashScreen: {fileID: 0} 18 | defaultScreenWidth: 1024 19 | defaultScreenHeight: 768 20 | defaultScreenWidthWeb: 960 21 | defaultScreenHeightWeb: 600 22 | m_RenderingPath: 1 23 | m_MobileRenderingPath: 1 24 | m_ActiveColorSpace: 0 25 | m_MTRendering: 1 26 | m_MobileMTRendering: 0 27 | m_Stereoscopic3D: 0 28 | iosShowActivityIndicatorOnLoading: -1 29 | androidShowActivityIndicatorOnLoading: -1 30 | iosAppInBackgroundBehavior: 0 31 | displayResolutionDialog: 1 32 | iosAllowHTTPDownload: 1 33 | allowedAutorotateToPortrait: 1 34 | allowedAutorotateToPortraitUpsideDown: 1 35 | allowedAutorotateToLandscapeRight: 1 36 | allowedAutorotateToLandscapeLeft: 1 37 | useOSAutorotation: 1 38 | use32BitDisplayBuffer: 1 39 | disableDepthAndStencilBuffers: 0 40 | defaultIsFullScreen: 1 41 | defaultIsNativeResolution: 1 42 | runInBackground: 0 43 | captureSingleScreen: 0 44 | Override IPod Music: 0 45 | Prepare IOS For Recording: 0 46 | submitAnalytics: 1 47 | usePlayerLog: 1 48 | bakeCollisionMeshes: 0 49 | forceSingleInstance: 0 50 | resizableWindow: 0 51 | useMacAppStoreValidation: 0 52 | gpuSkinning: 0 53 | xboxPIXTextureCapture: 0 54 | xboxEnableAvatar: 0 55 | xboxEnableKinect: 0 56 | xboxEnableKinectAutoTracking: 0 57 | xboxEnableFitness: 0 58 | visibleInBackground: 0 59 | allowFullscreenSwitch: 1 60 | macFullscreenMode: 2 61 | d3d9FullscreenMode: 1 62 | d3d11FullscreenMode: 1 63 | xboxSpeechDB: 0 64 | xboxEnableHeadOrientation: 0 65 | xboxEnableGuest: 0 66 | xboxEnablePIXSampling: 0 67 | n3dsDisableStereoscopicView: 0 68 | n3dsEnableSharedListOpt: 1 69 | n3dsEnableVSync: 0 70 | uiUse16BitDepthBuffer: 0 71 | ignoreAlphaClear: 0 72 | xboxOneResolution: 0 73 | ps3SplashScreen: {fileID: 0} 74 | videoMemoryForVertexBuffers: 0 75 | psp2PowerMode: 0 76 | psp2AcquireBGM: 1 77 | wiiUTVResolution: 0 78 | wiiUGamePadMSAA: 1 79 | wiiUSupportsNunchuk: 0 80 | wiiUSupportsClassicController: 0 81 | wiiUSupportsBalanceBoard: 0 82 | wiiUSupportsMotionPlus: 0 83 | wiiUSupportsProController: 0 84 | wiiUAllowScreenCapture: 1 85 | wiiUControllerCount: 0 86 | m_SupportedAspectRatios: 87 | 4:3: 1 88 | 5:4: 1 89 | 16:10: 1 90 | 16:9: 1 91 | Others: 1 92 | bundleIdentifier: com.Company.ProductName 93 | bundleVersion: 1.0 94 | preloadedAssets: [] 95 | metroEnableIndependentInputSource: 0 96 | metroEnableLowLatencyPresentationAPI: 0 97 | xboxOneDisableKinectGpuReservation: 0 98 | virtualRealitySupported: 0 99 | productGUID: ed8d1ea453efdf843be4e8f801c74579 100 | AndroidBundleVersionCode: 1 101 | AndroidMinSdkVersion: 9 102 | AndroidPreferredInstallLocation: 1 103 | aotOptions: 104 | apiCompatibilityLevel: 2 105 | stripEngineCode: 1 106 | iPhoneStrippingLevel: 0 107 | iPhoneScriptCallOptimization: 0 108 | iPhoneBuildNumber: 0 109 | ForceInternetPermission: 0 110 | ForceSDCardPermission: 0 111 | CreateWallpaper: 0 112 | APKExpansionFiles: 0 113 | preloadShaders: 0 114 | StripUnusedMeshComponents: 0 115 | VertexChannelCompressionMask: 116 | serializedVersion: 2 117 | m_Bits: 238 118 | iPhoneSdkVersion: 988 119 | iPhoneTargetOSVersion: 22 120 | tvOSSdkVersion: 0 121 | tvOSTargetOSVersion: 900 122 | uIPrerenderedIcon: 0 123 | uIRequiresPersistentWiFi: 0 124 | uIRequiresFullScreen: 1 125 | uIStatusBarHidden: 1 126 | uIExitOnSuspend: 0 127 | uIStatusBarStyle: 0 128 | iPhoneSplashScreen: {fileID: 0} 129 | iPhoneHighResSplashScreen: {fileID: 0} 130 | iPhoneTallHighResSplashScreen: {fileID: 0} 131 | iPhone47inSplashScreen: {fileID: 0} 132 | iPhone55inPortraitSplashScreen: {fileID: 0} 133 | iPhone55inLandscapeSplashScreen: {fileID: 0} 134 | iPadPortraitSplashScreen: {fileID: 0} 135 | iPadHighResPortraitSplashScreen: {fileID: 0} 136 | iPadLandscapeSplashScreen: {fileID: 0} 137 | iPadHighResLandscapeSplashScreen: {fileID: 0} 138 | appleTVSplashScreen: {fileID: 0} 139 | tvOSSmallIconLayers: [] 140 | tvOSLargeIconLayers: [] 141 | tvOSTopShelfImageLayers: [] 142 | iOSLaunchScreenType: 0 143 | iOSLaunchScreenPortrait: {fileID: 0} 144 | iOSLaunchScreenLandscape: {fileID: 0} 145 | iOSLaunchScreenBackgroundColor: 146 | serializedVersion: 2 147 | rgba: 0 148 | iOSLaunchScreenFillPct: 100 149 | iOSLaunchScreenSize: 100 150 | iOSLaunchScreenCustomXibPath: 151 | iOSLaunchScreeniPadType: 0 152 | iOSLaunchScreeniPadImage: {fileID: 0} 153 | iOSLaunchScreeniPadBackgroundColor: 154 | serializedVersion: 2 155 | rgba: 0 156 | iOSLaunchScreeniPadFillPct: 100 157 | iOSLaunchScreeniPadSize: 100 158 | iOSLaunchScreeniPadCustomXibPath: 159 | iOSDeviceRequirements: [] 160 | AndroidTargetDevice: 0 161 | AndroidSplashScreenScale: 0 162 | androidSplashScreen: {fileID: 0} 163 | AndroidKeystoreName: 164 | AndroidKeyaliasName: 165 | AndroidTVCompatibility: 1 166 | AndroidIsGame: 1 167 | androidEnableBanner: 1 168 | m_AndroidBanners: 169 | - width: 320 170 | height: 180 171 | banner: {fileID: 0} 172 | androidGamepadSupportLevel: 0 173 | resolutionDialogBanner: {fileID: 0} 174 | m_BuildTargetIcons: [] 175 | m_BuildTargetBatching: [] 176 | m_BuildTargetGraphicsAPIs: [] 177 | webPlayerTemplate: APPLICATION:Default 178 | m_TemplateCustomTags: {} 179 | wiiUTitleID: 0005000011000000 180 | wiiUGroupID: 00010000 181 | wiiUCommonSaveSize: 4096 182 | wiiUAccountSaveSize: 2048 183 | wiiUOlvAccessKey: 0 184 | wiiUTinCode: 0 185 | wiiUJoinGameId: 0 186 | wiiUJoinGameModeMask: 0000000000000000 187 | wiiUCommonBossSize: 0 188 | wiiUAccountBossSize: 0 189 | wiiUAddOnUniqueIDs: [] 190 | wiiUMainThreadStackSize: 3072 191 | wiiULoaderThreadStackSize: 1024 192 | wiiUSystemHeapSize: 128 193 | wiiUTVStartupScreen: {fileID: 0} 194 | wiiUGamePadStartupScreen: {fileID: 0} 195 | wiiUDrcBufferDisabled: 0 196 | wiiUProfilerLibPath: 197 | actionOnDotNetUnhandledException: 1 198 | enableInternalProfiler: 0 199 | logObjCUncaughtExceptions: 1 200 | enableCrashReportAPI: 0 201 | locationUsageDescription: 202 | XboxTitleId: 203 | XboxImageXexPath: 204 | XboxSpaPath: 205 | XboxGenerateSpa: 0 206 | XboxDeployKinectResources: 0 207 | XboxSplashScreen: {fileID: 0} 208 | xboxEnableSpeech: 0 209 | xboxAdditionalTitleMemorySize: 0 210 | xboxDeployKinectHeadOrientation: 0 211 | xboxDeployKinectHeadPosition: 0 212 | ps3TitleConfigPath: 213 | ps3DLCConfigPath: 214 | ps3ThumbnailPath: 215 | ps3BackgroundPath: 216 | ps3SoundPath: 217 | ps3NPAgeRating: 12 218 | ps3TrophyCommId: 219 | ps3NpCommunicationPassphrase: 220 | ps3TrophyPackagePath: 221 | ps3BootCheckMaxSaveGameSizeKB: 128 222 | ps3TrophyCommSig: 223 | ps3SaveGameSlots: 1 224 | ps3TrialMode: 0 225 | ps3VideoMemoryForAudio: 0 226 | ps3EnableVerboseMemoryStats: 0 227 | ps3UseSPUForUmbra: 0 228 | ps3EnableMoveSupport: 1 229 | ps3DisableDolbyEncoding: 0 230 | ps4NPAgeRating: 12 231 | ps4NPTitleSecret: 232 | ps4NPTrophyPackPath: 233 | ps4ParentalLevel: 1 234 | ps4ContentID: ED1633-NPXX51362_00-0000000000000000 235 | ps4Category: 0 236 | ps4MasterVersion: 01.00 237 | ps4AppVersion: 01.00 238 | ps4AppType: 0 239 | ps4ParamSfxPath: 240 | ps4VideoOutPixelFormat: 0 241 | ps4VideoOutResolution: 4 242 | ps4PronunciationXMLPath: 243 | ps4PronunciationSIGPath: 244 | ps4BackgroundImagePath: 245 | ps4StartupImagePath: 246 | ps4SaveDataImagePath: 247 | ps4SdkOverride: 248 | ps4BGMPath: 249 | ps4ShareFilePath: 250 | ps4ShareOverlayImagePath: 251 | ps4PrivacyGuardImagePath: 252 | ps4NPtitleDatPath: 253 | ps4RemotePlayKeyAssignment: -1 254 | ps4RemotePlayKeyMappingDir: 255 | ps4EnterButtonAssignment: 1 256 | ps4ApplicationParam1: 0 257 | ps4ApplicationParam2: 0 258 | ps4ApplicationParam3: 0 259 | ps4ApplicationParam4: 0 260 | ps4DownloadDataSize: 0 261 | ps4GarlicHeapSize: 2048 262 | ps4Passcode: frAQBc8Wsa1xVPfvJcrgRYwTiizs2trQ 263 | ps4UseDebugIl2cppLibs: 0 264 | ps4pnSessions: 1 265 | ps4pnPresence: 1 266 | ps4pnFriends: 1 267 | ps4pnGameCustomData: 1 268 | playerPrefsSupport: 0 269 | ps4ReprojectionSupport: 0 270 | ps4UseAudio3dBackend: 0 271 | ps4SocialScreenEnabled: 0 272 | ps4Audio3dVirtualSpeakerCount: 14 273 | ps4attribCpuUsage: 0 274 | ps4PatchPkgPath: 275 | ps4PatchLatestPkgPath: 276 | ps4PatchChangeinfoPath: 277 | ps4attribUserManagement: 0 278 | ps4attribMoveSupport: 0 279 | ps4attrib3DSupport: 0 280 | ps4attribShareSupport: 0 281 | ps4IncludedModules: [] 282 | monoEnv: 283 | psp2Splashimage: {fileID: 0} 284 | psp2NPTrophyPackPath: 285 | psp2NPSupportGBMorGJP: 0 286 | psp2NPAgeRating: 12 287 | psp2NPTitleDatPath: 288 | psp2NPCommsID: 289 | psp2NPCommunicationsID: 290 | psp2NPCommsPassphrase: 291 | psp2NPCommsSig: 292 | psp2ParamSfxPath: 293 | psp2ManualPath: 294 | psp2LiveAreaGatePath: 295 | psp2LiveAreaBackroundPath: 296 | psp2LiveAreaPath: 297 | psp2LiveAreaTrialPath: 298 | psp2PatchChangeInfoPath: 299 | psp2PatchOriginalPackage: 300 | psp2PackagePassword: F69AzBlax3CF3EDNhm3soLBPh71Yexui 301 | psp2KeystoneFile: 302 | psp2MemoryExpansionMode: 0 303 | psp2DRMType: 0 304 | psp2StorageType: 0 305 | psp2MediaCapacity: 0 306 | psp2DLCConfigPath: 307 | psp2ThumbnailPath: 308 | psp2BackgroundPath: 309 | psp2SoundPath: 310 | psp2TrophyCommId: 311 | psp2TrophyPackagePath: 312 | psp2PackagedResourcesPath: 313 | psp2SaveDataQuota: 10240 314 | psp2ParentalLevel: 1 315 | psp2ShortTitle: Not Set 316 | psp2ContentID: IV0000-ABCD12345_00-0123456789ABCDEF 317 | psp2Category: 0 318 | psp2MasterVersion: 01.00 319 | psp2AppVersion: 01.00 320 | psp2TVBootMode: 0 321 | psp2EnterButtonAssignment: 2 322 | psp2TVDisableEmu: 0 323 | psp2AllowTwitterDialog: 1 324 | psp2Upgradable: 0 325 | psp2HealthWarning: 0 326 | psp2UseLibLocation: 0 327 | psp2InfoBarOnStartup: 0 328 | psp2InfoBarColor: 0 329 | psp2UseDebugIl2cppLibs: 0 330 | psmSplashimage: {fileID: 0} 331 | spritePackerPolicy: 332 | scriptingDefineSymbols: {} 333 | metroPackageName: CardGame 334 | metroPackageVersion: 335 | metroCertificatePath: 336 | metroCertificatePassword: 337 | metroCertificateSubject: 338 | metroCertificateIssuer: 339 | metroCertificateNotAfter: 0000000000000000 340 | metroApplicationDescription: CardGame 341 | wsaImages: {} 342 | metroTileShortName: 343 | metroCommandLineArgsFile: 344 | metroTileShowName: 0 345 | metroMediumTileShowName: 0 346 | metroLargeTileShowName: 0 347 | metroWideTileShowName: 0 348 | metroDefaultTileSize: 1 349 | metroTileForegroundText: 1 350 | metroTileBackgroundColor: {r: 0.13333334, g: 0.17254902, b: 0.21568628, a: 0} 351 | metroSplashScreenBackgroundColor: {r: 0.13333334, g: 0.17254902, b: 0.21568628, 352 | a: 1} 353 | metroSplashScreenUseBackgroundColor: 1 354 | platformCapabilities: {} 355 | metroFTAName: 356 | metroFTAFileTypes: [] 357 | metroProtocolName: 358 | metroCompilationOverrides: 1 359 | blackberryDeviceAddress: 360 | blackberryDevicePassword: 361 | blackberryTokenPath: 362 | blackberryTokenExires: 363 | blackberryTokenAuthor: 364 | blackberryTokenAuthorId: 365 | blackberryCskPassword: 366 | blackberrySaveLogPath: 367 | blackberrySharedPermissions: 0 368 | blackberryCameraPermissions: 0 369 | blackberryGPSPermissions: 0 370 | blackberryDeviceIDPermissions: 0 371 | blackberryMicrophonePermissions: 0 372 | blackberryGamepadSupport: 0 373 | blackberryBuildId: 0 374 | blackberryLandscapeSplashScreen: {fileID: 0} 375 | blackberryPortraitSplashScreen: {fileID: 0} 376 | blackberrySquareSplashScreen: {fileID: 0} 377 | tizenProductDescription: 378 | tizenProductURL: 379 | tizenSigningProfileName: 380 | tizenGPSPermissions: 0 381 | tizenMicrophonePermissions: 0 382 | n3dsUseExtSaveData: 0 383 | n3dsCompressStaticMem: 1 384 | n3dsExtSaveDataNumber: 0x12345 385 | n3dsStackSize: 131072 386 | n3dsTargetPlatform: 2 387 | n3dsRegion: 7 388 | n3dsMediaSize: 0 389 | n3dsLogoStyle: 3 390 | n3dsTitle: GameName 391 | n3dsProductCode: 392 | n3dsApplicationId: 0xFF3FF 393 | stvDeviceAddress: 394 | stvProductDescription: 395 | stvProductAuthor: 396 | stvProductAuthorEmail: 397 | stvProductLink: 398 | stvProductCategory: 0 399 | XboxOneProductId: 400 | XboxOneUpdateKey: 401 | XboxOneSandboxId: 402 | XboxOneContentId: 403 | XboxOneTitleId: 404 | XboxOneSCId: 405 | XboxOneGameOsOverridePath: 406 | XboxOnePackagingOverridePath: 407 | XboxOneAppManifestOverridePath: 408 | XboxOnePackageEncryption: 0 409 | XboxOnePackageUpdateGranularity: 2 410 | XboxOneDescription: 411 | XboxOneIsContentPackage: 0 412 | XboxOneEnableGPUVariability: 0 413 | XboxOneSockets: {} 414 | XboxOneSplashScreen: {fileID: 0} 415 | XboxOneAllowedProductIds: [] 416 | XboxOnePersistentLocalStorageSize: 0 417 | intPropertyNames: 418 | - Android::ScriptingBackend 419 | - Metro::ScriptingBackend 420 | - Standalone::ScriptingBackend 421 | - WebPlayer::ScriptingBackend 422 | Android::ScriptingBackend: 0 423 | Metro::ScriptingBackend: 2 424 | Standalone::ScriptingBackend: 0 425 | WebPlayer::ScriptingBackend: 0 426 | boolPropertyNames: 427 | - XboxOne::enus 428 | XboxOne::enus: 1 429 | stringPropertyNames: [] 430 | cloudProjectId: 431 | projectName: 432 | organizationId: 433 | cloudEnabled: 0 434 | -------------------------------------------------------------------------------- /ProjectSettings/ProjectVersion.txt: -------------------------------------------------------------------------------- 1 | m_EditorVersion: 5.3.5f1 2 | m_StandardAssetsVersion: 0 3 | -------------------------------------------------------------------------------- /ProjectSettings/QualitySettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!47 &1 4 | QualitySettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 5 7 | m_CurrentQuality: 5 8 | m_QualitySettings: 9 | - serializedVersion: 2 10 | name: Fastest 11 | pixelLightCount: 0 12 | shadows: 0 13 | shadowResolution: 0 14 | shadowProjection: 1 15 | shadowCascades: 1 16 | shadowDistance: 15 17 | shadowNearPlaneOffset: 2 18 | shadowCascade2Split: 0.33333334 19 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 20 | blendWeights: 1 21 | textureQuality: 1 22 | anisotropicTextures: 0 23 | antiAliasing: 0 24 | softParticles: 0 25 | softVegetation: 0 26 | realtimeReflectionProbes: 0 27 | billboardsFaceCameraPosition: 0 28 | vSyncCount: 0 29 | lodBias: 0.3 30 | maximumLODLevel: 0 31 | particleRaycastBudget: 4 32 | asyncUploadTimeSlice: 2 33 | asyncUploadBufferSize: 4 34 | excludedTargetPlatforms: [] 35 | - serializedVersion: 2 36 | name: Fast 37 | pixelLightCount: 0 38 | shadows: 0 39 | shadowResolution: 0 40 | shadowProjection: 1 41 | shadowCascades: 1 42 | shadowDistance: 20 43 | shadowNearPlaneOffset: 2 44 | shadowCascade2Split: 0.33333334 45 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 46 | blendWeights: 2 47 | textureQuality: 0 48 | anisotropicTextures: 0 49 | antiAliasing: 0 50 | softParticles: 0 51 | softVegetation: 0 52 | realtimeReflectionProbes: 0 53 | billboardsFaceCameraPosition: 0 54 | vSyncCount: 0 55 | lodBias: 0.4 56 | maximumLODLevel: 0 57 | particleRaycastBudget: 16 58 | asyncUploadTimeSlice: 2 59 | asyncUploadBufferSize: 4 60 | excludedTargetPlatforms: [] 61 | - serializedVersion: 2 62 | name: Simple 63 | pixelLightCount: 1 64 | shadows: 1 65 | shadowResolution: 0 66 | shadowProjection: 1 67 | shadowCascades: 1 68 | shadowDistance: 20 69 | shadowNearPlaneOffset: 2 70 | shadowCascade2Split: 0.33333334 71 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 72 | blendWeights: 2 73 | textureQuality: 0 74 | anisotropicTextures: 1 75 | antiAliasing: 0 76 | softParticles: 0 77 | softVegetation: 0 78 | realtimeReflectionProbes: 0 79 | billboardsFaceCameraPosition: 0 80 | vSyncCount: 0 81 | lodBias: 0.7 82 | maximumLODLevel: 0 83 | particleRaycastBudget: 64 84 | asyncUploadTimeSlice: 2 85 | asyncUploadBufferSize: 4 86 | excludedTargetPlatforms: [] 87 | - serializedVersion: 2 88 | name: Good 89 | pixelLightCount: 2 90 | shadows: 2 91 | shadowResolution: 1 92 | shadowProjection: 1 93 | shadowCascades: 2 94 | shadowDistance: 40 95 | shadowNearPlaneOffset: 2 96 | shadowCascade2Split: 0.33333334 97 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 98 | blendWeights: 2 99 | textureQuality: 0 100 | anisotropicTextures: 1 101 | antiAliasing: 0 102 | softParticles: 0 103 | softVegetation: 1 104 | realtimeReflectionProbes: 1 105 | billboardsFaceCameraPosition: 1 106 | vSyncCount: 1 107 | lodBias: 1 108 | maximumLODLevel: 0 109 | particleRaycastBudget: 256 110 | asyncUploadTimeSlice: 2 111 | asyncUploadBufferSize: 4 112 | excludedTargetPlatforms: [] 113 | - serializedVersion: 2 114 | name: Beautiful 115 | pixelLightCount: 3 116 | shadows: 2 117 | shadowResolution: 2 118 | shadowProjection: 1 119 | shadowCascades: 2 120 | shadowDistance: 70 121 | shadowNearPlaneOffset: 2 122 | shadowCascade2Split: 0.33333334 123 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 124 | blendWeights: 4 125 | textureQuality: 0 126 | anisotropicTextures: 2 127 | antiAliasing: 2 128 | softParticles: 1 129 | softVegetation: 1 130 | realtimeReflectionProbes: 1 131 | billboardsFaceCameraPosition: 1 132 | vSyncCount: 1 133 | lodBias: 1.5 134 | maximumLODLevel: 0 135 | particleRaycastBudget: 1024 136 | asyncUploadTimeSlice: 2 137 | asyncUploadBufferSize: 4 138 | excludedTargetPlatforms: [] 139 | - serializedVersion: 2 140 | name: Fantastic 141 | pixelLightCount: 4 142 | shadows: 2 143 | shadowResolution: 2 144 | shadowProjection: 1 145 | shadowCascades: 4 146 | shadowDistance: 150 147 | shadowNearPlaneOffset: 2 148 | shadowCascade2Split: 0.33333334 149 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 150 | blendWeights: 4 151 | textureQuality: 0 152 | anisotropicTextures: 2 153 | antiAliasing: 2 154 | softParticles: 1 155 | softVegetation: 1 156 | realtimeReflectionProbes: 1 157 | billboardsFaceCameraPosition: 1 158 | vSyncCount: 1 159 | lodBias: 2 160 | maximumLODLevel: 0 161 | particleRaycastBudget: 4096 162 | asyncUploadTimeSlice: 2 163 | asyncUploadBufferSize: 4 164 | excludedTargetPlatforms: [] 165 | m_PerPlatformDefaultQuality: 166 | Android: 2 167 | BlackBerry: 2 168 | GLES Emulation: 5 169 | Nintendo 3DS: 5 170 | PS3: 5 171 | PS4: 5 172 | PSM: 5 173 | PSP2: 2 174 | Samsung TV: 2 175 | Standalone: 5 176 | Tizen: 2 177 | WP8: 5 178 | Web: 5 179 | WebGL: 3 180 | WiiU: 5 181 | Windows Store Apps: 5 182 | XBOX360: 5 183 | XboxOne: 5 184 | iPhone: 2 185 | tvOS: 5 186 | -------------------------------------------------------------------------------- /ProjectSettings/TagManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!78 &1 4 | TagManager: 5 | serializedVersion: 2 6 | tags: 7 | - Card 8 | - Hero 9 | - Board 10 | layers: 11 | - Default 12 | - TransparentFX 13 | - Ignore Raycast 14 | - 15 | - Water 16 | - UI 17 | - 18 | - 19 | - Board 20 | - 21 | - 22 | - 23 | - 24 | - 25 | - 26 | - 27 | - 28 | - 29 | - 30 | - 31 | - 32 | - 33 | - 34 | - 35 | - 36 | - 37 | - 38 | - 39 | - 40 | - 41 | - 42 | - 43 | m_SortingLayers: 44 | - name: Default 45 | uniqueID: 0 46 | locked: 0 47 | -------------------------------------------------------------------------------- /ProjectSettings/TimeManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!5 &1 4 | TimeManager: 5 | m_ObjectHideFlags: 0 6 | Fixed Timestep: 0.02 7 | Maximum Allowed Timestep: 0.33333334 8 | m_TimeScale: 1 9 | -------------------------------------------------------------------------------- /ProjectSettings/UnityAdsSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!292 &1 4 | UnityAdsSettings: 5 | m_ObjectHideFlags: 0 6 | m_Enabled: 0 7 | m_InitializeOnStartup: 1 8 | m_TestMode: 0 9 | m_EnabledPlatforms: 4294967295 10 | m_IosGameId: 11 | m_AndroidGameId: 12 | -------------------------------------------------------------------------------- /ProjectSettings/UnityConnectSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!310 &1 4 | UnityConnectSettings: 5 | m_ObjectHideFlags: 0 6 | UnityPurchasingSettings: 7 | m_Enabled: 0 8 | m_TestMode: 0 9 | UnityAnalyticsSettings: 10 | m_Enabled: 0 11 | m_InitializeOnStartup: 1 12 | m_TestMode: 0 13 | m_TestEventUrl: 14 | m_TestConfigUrl: 15 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | A Unity C# trading card game (similar to Hearthstone) 2 | 3 | You can run the game directly from unity. 4 | 5 | Find the Game Object "Board" you can specify the AI level 6 | 7 | Level 0: 8 | 9 | Random decision making 10 | 11 | Level 1: 12 | 13 | The AI will start to generate tree for depth 1 and select the best move. 14 | 15 | Level 2: 16 | 17 | The AI will start to generate tree for depth 2 and try to make some compos attacks and the time for thinking will be long as you level up the AI 18 | 19 | To play the game you will start with 1 mana and you must drag the card till the center of the Board. 20 | 21 | ### **Preparation** 22 | 23 | | **Rule** | 24 | | --- | 25 | | Each player starts the game with 30 _Health_ and 0 _Mana_ slots. | 26 | | Each player starts with a deck of 24 _Monster_ cards and 4 Magic cards | 27 | | From the deck each player receives 3 random cards has his initial hand. | 28 | | You are the _active player_. The _AI_ draws a 4th card from his deck to compensate him for not playing the first turn. | 29 | 30 | ### ** Basic Gameplay** 31 | 32 | | **Step** | **Rule** | 33 | | --- | --- | 34 | | 1. | The active player receives 1 Mana slot up to a maximum of 10 total slots. | 35 | | 2. | The active player's empty Mana slots are refilled. | 36 | | 3. | The active player draws a random card from his deck. | 37 | | 4. | The active player can play as many cards as he can afford. | 38 | | 5. | If the opponent player's Health drops to or below zero the active player wins the game. | 39 | | 6. | If the active player can't (by either having no cards left in his hand or lacking sufficient Mana to pay for any hand card) or simply doesn't want to play another card, the opponent player becomes active. | 40 | 41 | ### **Healing** 42 | 43 | | **Rule** | 44 | | --- | 45 | | When playing a Magic card Depend on it's effect the active player can choose to use it for causing damage or for _healing himself_ | 46 | | Players cannot heal up above 30 health. | 47 | 48 | ### **Monsters** 49 | 50 | | **Rule** | 51 | | --- | 52 | | Let players choose to play cards either as immediate damage _Attacks_ or as _Monsters_ that are put on the board instead | 53 | | Sleeping Monsters will defend themselves in the same way when attacked by another Monster. | 54 | | When a Monsters health drops to or below zero it is removed from the board. | 55 | --------------------------------------------------------------------------------