Axel Nordh 3 лет назад
Родитель
Сommit
c99f1bd89f
63 измененных файлов с 2943 добавлено и 399 удалено
  1. 3 3
      Assets/Images/TileSets/GroundGreenRuleTile.asset
  2. 1 1
      Assets/Images/TileSets/GroundSandRuleTile.asset
  3. 1 1
      Assets/Images/TileSets/GroundWaterRuleSet.asset
  4. 213 0
      Assets/Images/TileSets/HighlightPalette.prefab
  5. 7 0
      Assets/Images/TileSets/HighlightPalette.prefab.meta
  6. 8 0
      Assets/Prefabs/Dialogs.meta
  7. 737 0
      Assets/Prefabs/Dialogs/YesNoDialogue.prefab
  8. 7 0
      Assets/Prefabs/Dialogs/YesNoDialogue.prefab.meta
  9. 136 0
      Assets/Prefabs/Panels/LogRow.prefab
  10. 7 0
      Assets/Prefabs/Panels/LogRow.prefab.meta
  11. 0 16
      Assets/Prefabs/Tile.prefab
  12. 8 0
      Assets/Prefabs/Tiles.meta
  13. 45 0
      Assets/Prefabs/Tiles/DesertTileGO.prefab
  14. 7 0
      Assets/Prefabs/Tiles/DesertTileGO.prefab.meta
  15. 50 0
      Assets/Prefabs/Tiles/GrassTileGO.prefab
  16. 7 0
      Assets/Prefabs/Tiles/GrassTileGO.prefab.meta
  17. 36 0
      Assets/Prefabs/Tiles/HighlightSquare.asset
  18. 8 0
      Assets/Prefabs/Tiles/HighlightSquare.asset.meta
  19. BIN
      Assets/Prefabs/Tiles/SquareSprite.png
  20. 160 0
      Assets/Prefabs/Tiles/SquareSprite.png.meta
  21. 45 0
      Assets/Prefabs/Tiles/WaterTileGO.prefab
  22. 7 0
      Assets/Prefabs/Tiles/WaterTileGO.prefab.meta
  23. 847 302
      Assets/Scenes/SampleScene.unity
  24. 4 0
      Assets/Scripts/CameraManager.cs
  25. 26 5
      Assets/Scripts/Creatures/Actions/AttackAction.cs
  26. 3 0
      Assets/Scripts/Creatures/Actions/IAction.cs
  27. 49 10
      Assets/Scripts/Creatures/Actions/MoveAction.cs
  28. 5 0
      Assets/Scripts/Creatures/Actions/SpellAction.cs
  29. 41 9
      Assets/Scripts/Creatures/Creature.cs
  30. 14 0
      Assets/Scripts/Creatures/CreatureInterface.cs
  31. 1 1
      Assets/Scripts/Creatures/CreatureInterface.cs.meta
  32. 0 25
      Assets/Scripts/Creatures/GenerateSkeletonScript.cs
  33. 8 0
      Assets/Scripts/Creatures/SpecificCreature.meta
  34. 16 0
      Assets/Scripts/Creatures/SpecificCreature/Human.cs
  35. 1 1
      Assets/Scripts/Creatures/SpecificCreature/Human.cs.meta
  36. 17 4
      Assets/Scripts/Creatures/SpecificCreature/Skeleton.cs
  37. 1 1
      Assets/Scripts/Creatures/SpecificCreature/Skeleton.cs.meta
  38. 7 5
      Assets/Scripts/Die.cs
  39. 19 0
      Assets/Scripts/GameManagerScript.cs
  40. 1 1
      Assets/Scripts/GameManagerScript.cs.meta
  41. 8 0
      Assets/Scripts/Grid.meta
  42. 35 0
      Assets/Scripts/Grid/GridController.cs
  43. 11 0
      Assets/Scripts/Grid/GridController.cs.meta
  44. 8 0
      Assets/Scripts/Grid/Tiles.meta
  45. 12 0
      Assets/Scripts/Grid/Tiles/DesertTileScript.cs
  46. 11 0
      Assets/Scripts/Grid/Tiles/DesertTileScript.cs.meta
  47. 15 0
      Assets/Scripts/Grid/Tiles/GrassTileScript.cs
  48. 11 0
      Assets/Scripts/Grid/Tiles/GrassTileScript.cs.meta
  49. 8 0
      Assets/Scripts/Grid/Tiles/ITile.cs
  50. 11 0
      Assets/Scripts/Grid/Tiles/ITile.cs.meta
  51. 12 0
      Assets/Scripts/Grid/Tiles/WaterTileScript.cs
  52. 11 0
      Assets/Scripts/Grid/Tiles/WaterTileScript.cs.meta
  53. 8 0
      Assets/Scripts/Panels/Dialogs.meta
  54. 40 0
      Assets/Scripts/Panels/Dialogs/YesNoDilougueUI.cs
  55. 11 0
      Assets/Scripts/Panels/Dialogs/YesNoDilougueUI.cs.meta
  56. 39 0
      Assets/Scripts/Panels/LogPanelScript.cs
  57. 11 0
      Assets/Scripts/Panels/LogPanelScript.cs.meta
  58. 51 14
      Assets/Scripts/RoundManager.cs
  59. 8 0
      Assets/Scripts/Weapons.meta
  60. 19 0
      Assets/Scripts/Weapons/IWeapon.cs
  61. 11 0
      Assets/Scripts/Weapons/IWeapon.cs.meta
  62. 28 0
      Assets/Scripts/Weapons/ShortSword.cs
  63. 11 0
      Assets/Scripts/Weapons/ShortSword.cs.meta

+ 3 - 3
Assets/Images/TileSets/GroundGreenRuleTile.asset

@@ -13,13 +13,13 @@ MonoBehaviour:
   m_Name: GroundGreenRuleTile
   m_EditorClassIdentifier: 
   m_DefaultSprite: {fileID: 6583565629995163404, guid: 19571b43769a9484a87ec04e37c8dff9, type: 3}
-  m_DefaultGameObject: {fileID: 0}
+  m_DefaultGameObject: {fileID: 726810167755630028, guid: a0816e694aadb244eba5ae43e7ffa7da, type: 3}
   m_DefaultColliderType: 1
   m_TilingRules:
   - m_Id: 0
     m_Sprites:
     - {fileID: -484966942241632645, guid: 19571b43769a9484a87ec04e37c8dff9, type: 3}
-    m_GameObject: {fileID: 0}
+    m_GameObject: {fileID: 726810167755630028, guid: a0816e694aadb244eba5ae43e7ffa7da, type: 3}
     m_MinAnimationSpeed: 1
     m_MaxAnimationSpeed: 1
     m_PerlinScale: 0.5
@@ -131,7 +131,7 @@ MonoBehaviour:
   - m_Id: 7
     m_Sprites:
     - {fileID: 6583565629995163404, guid: 19571b43769a9484a87ec04e37c8dff9, type: 3}
-    m_GameObject: {fileID: 0}
+    m_GameObject: {fileID: 726810167755630028, guid: a0816e694aadb244eba5ae43e7ffa7da, type: 3}
     m_MinAnimationSpeed: 1
     m_MaxAnimationSpeed: 1
     m_PerlinScale: 0.5

+ 1 - 1
Assets/Images/TileSets/GroundSandRuleTile.asset

@@ -13,7 +13,7 @@ MonoBehaviour:
   m_Name: GroundSandRuleTile
   m_EditorClassIdentifier: 
   m_DefaultSprite: {fileID: 8791563513433778591, guid: 19571b43769a9484a87ec04e37c8dff9, type: 3}
-  m_DefaultGameObject: {fileID: 0}
+  m_DefaultGameObject: {fileID: 2265219206838464121, guid: 0e039087f443cff459dfa5a379ac4300, type: 3}
   m_DefaultColliderType: 1
   m_TilingRules:
   - m_Id: 0

+ 1 - 1
Assets/Images/TileSets/GroundWaterRuleSet.asset

@@ -13,7 +13,7 @@ MonoBehaviour:
   m_Name: GroundWaterRuleSet
   m_EditorClassIdentifier: 
   m_DefaultSprite: {fileID: -4855834320508401745, guid: 19571b43769a9484a87ec04e37c8dff9, type: 3}
-  m_DefaultGameObject: {fileID: 0}
+  m_DefaultGameObject: {fileID: 6269416748489664432, guid: 1bb714d335ea9c34a809f66541dd7cf1, type: 3}
   m_DefaultColliderType: 1
   m_TilingRules:
   - m_Id: 0

+ 213 - 0
Assets/Images/TileSets/HighlightPalette.prefab

@@ -0,0 +1,213 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &3653376578974909092
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 4419788925870613317}
+  - component: {fileID: 5014457128827439364}
+  m_Layer: 31
+  m_Name: HighlightPalette
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!4 &4419788925870613317
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 3653376578974909092}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children:
+  - {fileID: 4220467493924111852}
+  m_Father: {fileID: 0}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!156049354 &5014457128827439364
+Grid:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 3653376578974909092}
+  m_Enabled: 1
+  m_CellSize: {x: 1, y: 1, z: 0}
+  m_CellGap: {x: 0, y: 0, z: 0}
+  m_CellLayout: 0
+  m_CellSwizzle: 0
+--- !u!1 &7854604733645294733
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 4220467493924111852}
+  - component: {fileID: 4990123161889011026}
+  - component: {fileID: 1984138275536315591}
+  m_Layer: 0
+  m_Name: Layer1
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!4 &4220467493924111852
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 7854604733645294733}
+  m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children: []
+  m_Father: {fileID: 4419788925870613317}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1839735485 &4990123161889011026
+Tilemap:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 7854604733645294733}
+  m_Enabled: 1
+  m_Tiles:
+  - first: {x: -2, y: -1, z: 0}
+    second:
+      serializedVersion: 2
+      m_TileIndex: 0
+      m_TileSpriteIndex: 0
+      m_TileMatrixIndex: 0
+      m_TileColorIndex: 0
+      m_TileObjectToInstantiateIndex: 65535
+      dummyAlignment: 0
+      m_AllTileFlags: 1073741825
+  m_AnimatedTiles: {}
+  m_TileAssetArray:
+  - m_RefCount: 1
+    m_Data: {fileID: 11400000, guid: b47bf3005a56c9d47817b5372cd53c84, type: 2}
+  m_TileSpriteArray:
+  - m_RefCount: 1
+    m_Data: {fileID: 7482667652216324306, guid: a3ea9db81590f1b4ea6da84e72ae1808, type: 3}
+  m_TileMatrixArray:
+  - m_RefCount: 1
+    m_Data:
+      e00: 1
+      e01: 0
+      e02: 0
+      e03: 0
+      e10: 0
+      e11: 1
+      e12: 0
+      e13: 0
+      e20: 0
+      e21: 0
+      e22: 1
+      e23: 0
+      e30: 0
+      e31: 0
+      e32: 0
+      e33: 1
+  m_TileColorArray:
+  - m_RefCount: 1
+    m_Data: {r: 1, g: 1, b: 1, a: 0.39215687}
+  m_TileObjectToInstantiateArray: []
+  m_AnimationFrameRate: 1
+  m_Color: {r: 1, g: 1, b: 1, a: 1}
+  m_Origin: {x: -2, y: -1, z: 0}
+  m_Size: {x: 2, y: 1, z: 1}
+  m_TileAnchor: {x: 0.5, y: 0.5, z: 0}
+  m_TileOrientation: 0
+  m_TileOrientationMatrix:
+    e00: 1
+    e01: 0
+    e02: 0
+    e03: 0
+    e10: 0
+    e11: 1
+    e12: 0
+    e13: 0
+    e20: 0
+    e21: 0
+    e22: 1
+    e23: 0
+    e30: 0
+    e31: 0
+    e32: 0
+    e33: 1
+--- !u!483693784 &1984138275536315591
+TilemapRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 7854604733645294733}
+  m_Enabled: 1
+  m_CastShadows: 0
+  m_ReceiveShadows: 0
+  m_DynamicOccludee: 0
+  m_MotionVectors: 1
+  m_LightProbeUsage: 0
+  m_ReflectionProbeUsage: 0
+  m_RayTracingMode: 0
+  m_RayTraceProcedural: 0
+  m_RenderingLayerMask: 1
+  m_RendererPriority: 0
+  m_Materials:
+  - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0}
+  m_StaticBatchInfo:
+    firstSubMesh: 0
+    subMeshCount: 0
+  m_StaticBatchRoot: {fileID: 0}
+  m_ProbeAnchor: {fileID: 0}
+  m_LightProbeVolumeOverride: {fileID: 0}
+  m_ScaleInLightmap: 1
+  m_ReceiveGI: 1
+  m_PreserveUVs: 0
+  m_IgnoreNormalsForChartDetection: 0
+  m_ImportantGI: 0
+  m_StitchLightmapSeams: 1
+  m_SelectedEditorRenderState: 0
+  m_MinimumChartSize: 4
+  m_AutoUVMaxDistance: 0.5
+  m_AutoUVMaxAngle: 89
+  m_LightmapParameters: {fileID: 0}
+  m_SortingLayerID: 0
+  m_SortingLayer: 0
+  m_SortingOrder: 0
+  m_ChunkSize: {x: 32, y: 32, z: 32}
+  m_ChunkCullingBounds: {x: 0, y: 0, z: 0}
+  m_MaxChunkCount: 16
+  m_MaxFrameAge: 16
+  m_SortOrder: 0
+  m_Mode: 0
+  m_DetectChunkCullingBounds: 0
+  m_MaskInteraction: 0
+--- !u!114 &5793477934169273861
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 0}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 12395, guid: 0000000000000000e000000000000000, type: 0}
+  m_Name: Palette Settings
+  m_EditorClassIdentifier: 
+  cellSizing: 0
+  m_TransparencySortMode: 0
+  m_TransparencySortAxis: {x: 0, y: 0, z: 1}

+ 7 - 0
Assets/Images/TileSets/HighlightPalette.prefab.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 23f74f13dedd82549a316d85b34cabed
+PrefabImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
Assets/Prefabs/Dialogs.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 514e0593a66e00f499a92c099e9b98f3
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 737 - 0
Assets/Prefabs/Dialogs/YesNoDialogue.prefab

@@ -0,0 +1,737 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &4058989788789655693
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 4058989788789655692}
+  - component: {fileID: 4058989788789655681}
+  - component: {fileID: 4058989788789655694}
+  - component: {fileID: 361845814675007179}
+  m_Layer: 5
+  m_Name: YesNoDialogue
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &4058989788789655692
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 4058989788789655693}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children:
+  - {fileID: 4058989789789415505}
+  - {fileID: 4058989789945134981}
+  - {fileID: 4058989789360916023}
+  m_Father: {fileID: 0}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0.5, y: 0.5}
+  m_AnchorMax: {x: 0.5, y: 0.5}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 300, y: 200}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &4058989788789655681
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 4058989788789655693}
+  m_CullTransparentMesh: 1
+--- !u!114 &4058989788789655694
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 4058989788789655693}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 0.8679245, g: 0.8679245, b: 0.8679245, a: 0.8156863}
+  m_RaycastTarget: 1
+  m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0}
+  m_Type: 1
+  m_PreserveAspect: 0
+  m_FillCenter: 1
+  m_FillMethod: 4
+  m_FillAmount: 1
+  m_FillClockwise: 1
+  m_FillOrigin: 0
+  m_UseSpriteMesh: 0
+  m_PixelsPerUnitMultiplier: 1
+--- !u!114 &361845814675007179
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 4058989788789655693}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 543f9f300b37cc3429378c5d7f0e5f1a, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+--- !u!1 &4058989789059189068
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 4058989789059189071}
+  - component: {fileID: 4058989789059189057}
+  - component: {fileID: 4058989789059189070}
+  m_Layer: 5
+  m_Name: Text (TMP)
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &4058989789059189071
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 4058989789059189068}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children: []
+  m_Father: {fileID: 4058989789360916023}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0, y: 0}
+  m_AnchorMax: {x: 1, y: 1}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: -10, y: 0}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &4058989789059189057
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 4058989789059189068}
+  m_CullTransparentMesh: 1
+--- !u!114 &4058989789059189070
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 4058989789059189068}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 1, g: 1, b: 1, a: 1}
+  m_RaycastTarget: 1
+  m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_text: No - Text
+  m_isRightToLeft: 0
+  m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
+  m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
+  m_fontSharedMaterials: []
+  m_fontMaterial: {fileID: 0}
+  m_fontMaterials: []
+  m_fontColor32:
+    serializedVersion: 2
+    rgba: 4281479730
+  m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
+  m_enableVertexGradient: 0
+  m_colorMode: 3
+  m_fontColorGradient:
+    topLeft: {r: 1, g: 1, b: 1, a: 1}
+    topRight: {r: 1, g: 1, b: 1, a: 1}
+    bottomLeft: {r: 1, g: 1, b: 1, a: 1}
+    bottomRight: {r: 1, g: 1, b: 1, a: 1}
+  m_fontColorGradientPreset: {fileID: 0}
+  m_spriteAsset: {fileID: 0}
+  m_tintAllSprites: 0
+  m_StyleSheet: {fileID: 0}
+  m_TextStyleHashCode: -1183493901
+  m_overrideHtmlColors: 0
+  m_faceColor:
+    serializedVersion: 2
+    rgba: 4294967295
+  m_fontSize: 22.55
+  m_fontSizeBase: 24
+  m_fontWeight: 400
+  m_enableAutoSizing: 1
+  m_fontSizeMin: 18
+  m_fontSizeMax: 72
+  m_fontStyle: 0
+  m_HorizontalAlignment: 2
+  m_VerticalAlignment: 512
+  m_textAlignment: 65535
+  m_characterSpacing: 0
+  m_wordSpacing: 0
+  m_lineSpacing: 0
+  m_lineSpacingMax: 0
+  m_paragraphSpacing: 0
+  m_charWidthMaxAdj: 0
+  m_enableWordWrapping: 1
+  m_wordWrappingRatios: 0.4
+  m_overflowMode: 0
+  m_linkedTextComponent: {fileID: 0}
+  parentLinkedComponent: {fileID: 0}
+  m_enableKerning: 1
+  m_enableExtraPadding: 0
+  checkPaddingRequired: 0
+  m_isRichText: 1
+  m_parseCtrlCharacters: 1
+  m_isOrthographic: 1
+  m_isCullingEnabled: 0
+  m_horizontalMapping: 0
+  m_verticalMapping: 0
+  m_uvLineOffset: 0
+  m_geometrySortingOrder: 0
+  m_IsTextObjectScaleStatic: 0
+  m_VertexBufferAutoSizeReduction: 0
+  m_useMaxVisibleDescender: 1
+  m_pageToDisplay: 1
+  m_margin: {x: 0, y: 0, z: 0, w: 0}
+  m_isUsingLegacyAnimationComponent: 0
+  m_isVolumetricText: 0
+  m_hasFontAssetChanged: 0
+  m_baseMaterial: {fileID: 0}
+  m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
+--- !u!1 &4058989789360916020
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 4058989789360916023}
+  - component: {fileID: 4058989789360916424}
+  - component: {fileID: 4058989789360916425}
+  - component: {fileID: 4058989789360916022}
+  m_Layer: 5
+  m_Name: DeclineButton
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &4058989789360916023
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 4058989789360916020}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children:
+  - {fileID: 4058989789059189071}
+  m_Father: {fileID: 4058989788789655692}
+  m_RootOrder: 2
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 1, y: 0}
+  m_AnchorMax: {x: 1, y: 0}
+  m_AnchoredPosition: {x: -25, y: 5}
+  m_SizeDelta: {x: 100, y: 30}
+  m_Pivot: {x: 1, y: 0}
+--- !u!222 &4058989789360916424
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 4058989789360916020}
+  m_CullTransparentMesh: 1
+--- !u!114 &4058989789360916425
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 4058989789360916020}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 1, g: 1, b: 1, a: 1}
+  m_RaycastTarget: 1
+  m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
+  m_Type: 1
+  m_PreserveAspect: 0
+  m_FillCenter: 1
+  m_FillMethod: 4
+  m_FillAmount: 1
+  m_FillClockwise: 1
+  m_FillOrigin: 0
+  m_UseSpriteMesh: 0
+  m_PixelsPerUnitMultiplier: 1
+--- !u!114 &4058989789360916022
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 4058989789360916020}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Navigation:
+    m_Mode: 3
+    m_WrapAround: 0
+    m_SelectOnUp: {fileID: 0}
+    m_SelectOnDown: {fileID: 0}
+    m_SelectOnLeft: {fileID: 0}
+    m_SelectOnRight: {fileID: 0}
+  m_Transition: 1
+  m_Colors:
+    m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
+    m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
+    m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
+    m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
+    m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
+    m_ColorMultiplier: 1
+    m_FadeDuration: 0.1
+  m_SpriteState:
+    m_HighlightedSprite: {fileID: 0}
+    m_PressedSprite: {fileID: 0}
+    m_SelectedSprite: {fileID: 0}
+    m_DisabledSprite: {fileID: 0}
+  m_AnimationTriggers:
+    m_NormalTrigger: Normal
+    m_HighlightedTrigger: Highlighted
+    m_PressedTrigger: Pressed
+    m_SelectedTrigger: Selected
+    m_DisabledTrigger: Disabled
+  m_Interactable: 1
+  m_TargetGraphic: {fileID: 4058989789360916425}
+  m_OnClick:
+    m_PersistentCalls:
+      m_Calls: []
+--- !u!1 &4058989789442705922
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 4058989789442705925}
+  - component: {fileID: 4058989789442705927}
+  - component: {fileID: 4058989789442705924}
+  m_Layer: 5
+  m_Name: Text (TMP)
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &4058989789442705925
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 4058989789442705922}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children: []
+  m_Father: {fileID: 4058989789945134981}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0, y: 0}
+  m_AnchorMax: {x: 1, y: 1}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: -10, y: 0}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &4058989789442705927
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 4058989789442705922}
+  m_CullTransparentMesh: 1
+--- !u!114 &4058989789442705924
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 4058989789442705922}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 1, g: 1, b: 1, a: 1}
+  m_RaycastTarget: 1
+  m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_text: Yes - text
+  m_isRightToLeft: 0
+  m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
+  m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
+  m_fontSharedMaterials: []
+  m_fontMaterial: {fileID: 0}
+  m_fontMaterials: []
+  m_fontColor32:
+    serializedVersion: 2
+    rgba: 4281479730
+  m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
+  m_enableVertexGradient: 0
+  m_colorMode: 3
+  m_fontColorGradient:
+    topLeft: {r: 1, g: 1, b: 1, a: 1}
+    topRight: {r: 1, g: 1, b: 1, a: 1}
+    bottomLeft: {r: 1, g: 1, b: 1, a: 1}
+    bottomRight: {r: 1, g: 1, b: 1, a: 1}
+  m_fontColorGradientPreset: {fileID: 0}
+  m_spriteAsset: {fileID: 0}
+  m_tintAllSprites: 0
+  m_StyleSheet: {fileID: 0}
+  m_TextStyleHashCode: -1183493901
+  m_overrideHtmlColors: 0
+  m_faceColor:
+    serializedVersion: 2
+    rgba: 4294967295
+  m_fontSize: 21.75
+  m_fontSizeBase: 24
+  m_fontWeight: 400
+  m_enableAutoSizing: 1
+  m_fontSizeMin: 18
+  m_fontSizeMax: 72
+  m_fontStyle: 0
+  m_HorizontalAlignment: 2
+  m_VerticalAlignment: 512
+  m_textAlignment: 65535
+  m_characterSpacing: 0
+  m_wordSpacing: 0
+  m_lineSpacing: 0
+  m_lineSpacingMax: 0
+  m_paragraphSpacing: 0
+  m_charWidthMaxAdj: 0
+  m_enableWordWrapping: 1
+  m_wordWrappingRatios: 0.4
+  m_overflowMode: 0
+  m_linkedTextComponent: {fileID: 0}
+  parentLinkedComponent: {fileID: 0}
+  m_enableKerning: 1
+  m_enableExtraPadding: 0
+  checkPaddingRequired: 0
+  m_isRichText: 1
+  m_parseCtrlCharacters: 1
+  m_isOrthographic: 1
+  m_isCullingEnabled: 0
+  m_horizontalMapping: 0
+  m_verticalMapping: 0
+  m_uvLineOffset: 0
+  m_geometrySortingOrder: 0
+  m_IsTextObjectScaleStatic: 0
+  m_VertexBufferAutoSizeReduction: 0
+  m_useMaxVisibleDescender: 1
+  m_pageToDisplay: 1
+  m_margin: {x: 0, y: 0, z: 0, w: 0}
+  m_isUsingLegacyAnimationComponent: 0
+  m_isVolumetricText: 0
+  m_hasFontAssetChanged: 0
+  m_baseMaterial: {fileID: 0}
+  m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
+--- !u!1 &4058989789789415518
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 4058989789789415505}
+  - component: {fileID: 4058989789789415507}
+  - component: {fileID: 4058989789789415504}
+  m_Layer: 5
+  m_Name: QuestionText
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &4058989789789415505
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 4058989789789415518}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children: []
+  m_Father: {fileID: 4058989788789655692}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0, y: 0}
+  m_AnchorMax: {x: 1, y: 1}
+  m_AnchoredPosition: {x: 0, y: 17.5}
+  m_SizeDelta: {x: -10, y: -45}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &4058989789789415507
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 4058989789789415518}
+  m_CullTransparentMesh: 1
+--- !u!114 &4058989789789415504
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 4058989789789415518}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 1, g: 1, b: 1, a: 1}
+  m_RaycastTarget: 1
+  m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_text: QuestionText - Should never be shown, replace!
+  m_isRightToLeft: 0
+  m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
+  m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
+  m_fontSharedMaterials: []
+  m_fontMaterial: {fileID: 0}
+  m_fontMaterials: []
+  m_fontColor32:
+    serializedVersion: 2
+    rgba: 4278190080
+  m_fontColor: {r: 0, g: 0, b: 0, a: 1}
+  m_enableVertexGradient: 0
+  m_colorMode: 3
+  m_fontColorGradient:
+    topLeft: {r: 1, g: 1, b: 1, a: 1}
+    topRight: {r: 1, g: 1, b: 1, a: 1}
+    bottomLeft: {r: 1, g: 1, b: 1, a: 1}
+    bottomRight: {r: 1, g: 1, b: 1, a: 1}
+  m_fontColorGradientPreset: {fileID: 0}
+  m_spriteAsset: {fileID: 0}
+  m_tintAllSprites: 0
+  m_StyleSheet: {fileID: 0}
+  m_TextStyleHashCode: -1183493901
+  m_overrideHtmlColors: 0
+  m_faceColor:
+    serializedVersion: 2
+    rgba: 4294967295
+  m_fontSize: 28
+  m_fontSizeBase: 28
+  m_fontWeight: 400
+  m_enableAutoSizing: 0
+  m_fontSizeMin: 18
+  m_fontSizeMax: 72
+  m_fontStyle: 0
+  m_HorizontalAlignment: 1
+  m_VerticalAlignment: 256
+  m_textAlignment: 65535
+  m_characterSpacing: 0
+  m_wordSpacing: 0
+  m_lineSpacing: 0
+  m_lineSpacingMax: 0
+  m_paragraphSpacing: 0
+  m_charWidthMaxAdj: 0
+  m_enableWordWrapping: 1
+  m_wordWrappingRatios: 0.4
+  m_overflowMode: 0
+  m_linkedTextComponent: {fileID: 0}
+  parentLinkedComponent: {fileID: 0}
+  m_enableKerning: 1
+  m_enableExtraPadding: 0
+  checkPaddingRequired: 0
+  m_isRichText: 1
+  m_parseCtrlCharacters: 1
+  m_isOrthographic: 1
+  m_isCullingEnabled: 0
+  m_horizontalMapping: 0
+  m_verticalMapping: 0
+  m_uvLineOffset: 0
+  m_geometrySortingOrder: 0
+  m_IsTextObjectScaleStatic: 0
+  m_VertexBufferAutoSizeReduction: 0
+  m_useMaxVisibleDescender: 1
+  m_pageToDisplay: 1
+  m_margin: {x: 0, y: 0, z: 0, w: 0}
+  m_isUsingLegacyAnimationComponent: 0
+  m_isVolumetricText: 0
+  m_hasFontAssetChanged: 0
+  m_baseMaterial: {fileID: 0}
+  m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
+--- !u!1 &4058989789945134978
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 4058989789945134981}
+  - component: {fileID: 4058989789945134982}
+  - component: {fileID: 4058989789945134983}
+  - component: {fileID: 4058989789945134980}
+  m_Layer: 5
+  m_Name: ConfirmButton
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &4058989789945134981
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 4058989789945134978}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children:
+  - {fileID: 4058989789442705925}
+  m_Father: {fileID: 4058989788789655692}
+  m_RootOrder: 1
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0, y: 0}
+  m_AnchorMax: {x: 0, y: 0}
+  m_AnchoredPosition: {x: 25, y: 5}
+  m_SizeDelta: {x: 100, y: 30}
+  m_Pivot: {x: 0, y: 0}
+--- !u!222 &4058989789945134982
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 4058989789945134978}
+  m_CullTransparentMesh: 1
+--- !u!114 &4058989789945134983
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 4058989789945134978}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 1, g: 1, b: 1, a: 1}
+  m_RaycastTarget: 1
+  m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
+  m_Type: 1
+  m_PreserveAspect: 0
+  m_FillCenter: 1
+  m_FillMethod: 4
+  m_FillAmount: 1
+  m_FillClockwise: 1
+  m_FillOrigin: 0
+  m_UseSpriteMesh: 0
+  m_PixelsPerUnitMultiplier: 1
+--- !u!114 &4058989789945134980
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 4058989789945134978}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Navigation:
+    m_Mode: 3
+    m_WrapAround: 0
+    m_SelectOnUp: {fileID: 0}
+    m_SelectOnDown: {fileID: 0}
+    m_SelectOnLeft: {fileID: 0}
+    m_SelectOnRight: {fileID: 0}
+  m_Transition: 1
+  m_Colors:
+    m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
+    m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
+    m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
+    m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
+    m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
+    m_ColorMultiplier: 1
+    m_FadeDuration: 0.1
+  m_SpriteState:
+    m_HighlightedSprite: {fileID: 0}
+    m_PressedSprite: {fileID: 0}
+    m_SelectedSprite: {fileID: 0}
+    m_DisabledSprite: {fileID: 0}
+  m_AnimationTriggers:
+    m_NormalTrigger: Normal
+    m_HighlightedTrigger: Highlighted
+    m_PressedTrigger: Pressed
+    m_SelectedTrigger: Selected
+    m_DisabledTrigger: Disabled
+  m_Interactable: 1
+  m_TargetGraphic: {fileID: 4058989789945134983}
+  m_OnClick:
+    m_PersistentCalls:
+      m_Calls: []

+ 7 - 0
Assets/Prefabs/Dialogs/YesNoDialogue.prefab.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: b7dafe21ab6bc474186a94ed0f90aed3
+PrefabImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 136 - 0
Assets/Prefabs/Panels/LogRow.prefab

@@ -0,0 +1,136 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &2190717994908433921
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 2190717994908433926}
+  - component: {fileID: 2190717994908433924}
+  - component: {fileID: 2190717994908433927}
+  m_Layer: 5
+  m_Name: LogRow
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &2190717994908433926
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 2190717994908433921}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children: []
+  m_Father: {fileID: 0}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0, y: 0}
+  m_AnchorMax: {x: 0, y: 0}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 280, y: 20}
+  m_Pivot: {x: 0, y: 1}
+--- !u!222 &2190717994908433924
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 2190717994908433921}
+  m_CullTransparentMesh: 1
+--- !u!114 &2190717994908433927
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 2190717994908433921}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 1, g: 1, b: 1, a: 1}
+  m_RaycastTarget: 1
+  m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_text: 'EXAMPLE TEXT what happpens when the text '
+  m_isRightToLeft: 0
+  m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
+  m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
+  m_fontSharedMaterials: []
+  m_fontMaterial: {fileID: 0}
+  m_fontMaterials: []
+  m_fontColor32:
+    serializedVersion: 2
+    rgba: 4294967295
+  m_fontColor: {r: 1, g: 1, b: 1, a: 1}
+  m_enableVertexGradient: 0
+  m_colorMode: 3
+  m_fontColorGradient:
+    topLeft: {r: 1, g: 1, b: 1, a: 1}
+    topRight: {r: 1, g: 1, b: 1, a: 1}
+    bottomLeft: {r: 1, g: 1, b: 1, a: 1}
+    bottomRight: {r: 1, g: 1, b: 1, a: 1}
+  m_fontColorGradientPreset: {fileID: 0}
+  m_spriteAsset: {fileID: 0}
+  m_tintAllSprites: 0
+  m_StyleSheet: {fileID: 0}
+  m_TextStyleHashCode: -1183493901
+  m_overrideHtmlColors: 0
+  m_faceColor:
+    serializedVersion: 2
+    rgba: 4294967295
+  m_fontSize: 12
+  m_fontSizeBase: 12
+  m_fontWeight: 400
+  m_enableAutoSizing: 0
+  m_fontSizeMin: 18
+  m_fontSizeMax: 72
+  m_fontStyle: 0
+  m_HorizontalAlignment: 1
+  m_VerticalAlignment: 512
+  m_textAlignment: 65535
+  m_characterSpacing: 0
+  m_wordSpacing: 0
+  m_lineSpacing: 0
+  m_lineSpacingMax: 0
+  m_paragraphSpacing: 0
+  m_charWidthMaxAdj: 0
+  m_enableWordWrapping: 1
+  m_wordWrappingRatios: 0.4
+  m_overflowMode: 0
+  m_linkedTextComponent: {fileID: 0}
+  parentLinkedComponent: {fileID: 0}
+  m_enableKerning: 1
+  m_enableExtraPadding: 0
+  checkPaddingRequired: 0
+  m_isRichText: 1
+  m_parseCtrlCharacters: 1
+  m_isOrthographic: 1
+  m_isCullingEnabled: 0
+  m_horizontalMapping: 0
+  m_verticalMapping: 0
+  m_uvLineOffset: 0
+  m_geometrySortingOrder: 0
+  m_IsTextObjectScaleStatic: 0
+  m_VertexBufferAutoSizeReduction: 0
+  m_useMaxVisibleDescender: 1
+  m_pageToDisplay: 1
+  m_margin: {x: 5, y: 1, z: 1.0000305, w: 1}
+  m_isUsingLegacyAnimationComponent: 0
+  m_isVolumetricText: 0
+  m_hasFontAssetChanged: 0
+  m_baseMaterial: {fileID: 0}
+  m_maskOffset: {x: 0, y: 0, z: 0, w: 0}

+ 7 - 0
Assets/Prefabs/Panels/LogRow.prefab.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 19931d1a7aaa3c64a978568cd637bea3
+PrefabImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 0 - 16
Assets/Prefabs/Tile.prefab

@@ -92,7 +92,6 @@ GameObject:
   m_Component:
   - component: {fileID: 8504508549353289610}
   - component: {fileID: 5696383906210418595}
-  - component: {fileID: 5766969286874909982}
   - component: {fileID: 1396413074927224326}
   - component: {fileID: 3021036268765755704}
   - component: {fileID: 4405106417940737564}
@@ -175,21 +174,6 @@ SpriteRenderer:
   m_WasSpriteAssigned: 1
   m_MaskInteraction: 0
   m_SpriteSortPoint: 0
---- !u!114 &5766969286874909982
-MonoBehaviour:
-  m_ObjectHideFlags: 0
-  m_CorrespondingSourceObject: {fileID: 0}
-  m_PrefabInstance: {fileID: 0}
-  m_PrefabAsset: {fileID: 0}
-  m_GameObject: {fileID: 6472601461377791300}
-  m_Enabled: 1
-  m_EditorHideFlags: 0
-  m_Script: {fileID: 11500000, guid: 535e1418ee7382d489d10c618df4539f, type: 3}
-  m_Name: 
-  m_EditorClassIdentifier: 
-  baseColor: {r: 0.2162411, g: 0.49803922, b: 0.15690637, a: 1}
-  offsetColor: {r: 0.016820924, g: 0.3962264, b: 0.18655494, a: 1}
-  hilight: {fileID: 2187018629513800598}
 --- !u!61 &1396413074927224326
 BoxCollider2D:
   m_ObjectHideFlags: 0

+ 8 - 0
Assets/Prefabs/Tiles.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: fa7a9f79be51033439e56ac43f7833d5
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 45 - 0
Assets/Prefabs/Tiles/DesertTileGO.prefab

@@ -0,0 +1,45 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &2265219206838464121
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 1210352106131958389}
+  - component: {fileID: 706918391143698862}
+  m_Layer: 0
+  m_Name: DesertTileGO
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!4 &1210352106131958389
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 2265219206838464121}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 5.5119953, y: -10.374621, z: -1.1444402}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children: []
+  m_Father: {fileID: 0}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!114 &706918391143698862
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 2265219206838464121}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: fbfca5363ba55344ba04c91f2530cc75, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 

+ 7 - 0
Assets/Prefabs/Tiles/DesertTileGO.prefab.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 0e039087f443cff459dfa5a379ac4300
+PrefabImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 50 - 0
Assets/Prefabs/Tiles/GrassTileGO.prefab

@@ -0,0 +1,50 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &726810167755630028
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 2649571102469592727}
+  - component: {fileID: 83945767540371671}
+  m_Layer: 6
+  m_Name: GrassTileGO
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &2649571102469592727
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 726810167755630028}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children: []
+  m_Father: {fileID: 0}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0.5, y: 0.5}
+  m_AnchorMax: {x: 0.5, y: 0.5}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 1, y: 1}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &83945767540371671
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 726810167755630028}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 576d77565015b044b81f778ed4e7b085, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 

+ 7 - 0
Assets/Prefabs/Tiles/GrassTileGO.prefab.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: a0816e694aadb244eba5ae43e7ffa7da
+PrefabImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 36 - 0
Assets/Prefabs/Tiles/HighlightSquare.asset

@@ -0,0 +1,36 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &11400000
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 0}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 13312, guid: 0000000000000000e000000000000000, type: 0}
+  m_Name: HighlightSquare
+  m_EditorClassIdentifier: 
+  m_Sprite: {fileID: 7482667652216324306, guid: a3ea9db81590f1b4ea6da84e72ae1808, type: 3}
+  m_Color: {r: 1, g: 1, b: 1, a: 0.39215687}
+  m_Transform:
+    e00: 1
+    e01: 0
+    e02: 0
+    e03: 0
+    e10: 0
+    e11: 1
+    e12: 0
+    e13: 0
+    e20: 0
+    e21: 0
+    e22: 1
+    e23: 0
+    e30: 0
+    e31: 0
+    e32: 0
+    e33: 1
+  m_InstancedGameObject: {fileID: 0}
+  m_Flags: 1
+  m_ColliderType: 1

+ 8 - 0
Assets/Prefabs/Tiles/HighlightSquare.asset.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: b47bf3005a56c9d47817b5372cd53c84
+NativeFormatImporter:
+  externalObjects: {}
+  mainObjectFileID: 11400000
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
Assets/Prefabs/Tiles/SquareSprite.png


+ 160 - 0
Assets/Prefabs/Tiles/SquareSprite.png.meta

@@ -0,0 +1,160 @@
+fileFormatVersion: 2
+guid: a3ea9db81590f1b4ea6da84e72ae1808
+TextureImporter:
+  internalIDToNameTable:
+  - first:
+      213: 7482667652216324306
+    second: Square
+  externalObjects: {}
+  serializedVersion: 11
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 0
+    sRGBTexture: 1
+    linearTexture: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapsPreserveCoverage: 0
+    alphaTestReferenceValue: 0.5
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+  isReadable: 0
+  streamingMipmaps: 0
+  streamingMipmapsPriority: 0
+  vTOnly: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 6
+  cubemapConvolution: 0
+  seamlessCubemap: 0
+  textureFormat: 1
+  maxTextureSize: 2048
+  textureSettings:
+    serializedVersion: 2
+    filterMode: 1
+    aniso: -1
+    mipBias: -100
+    wrapU: 1
+    wrapV: 1
+    wrapW: 1
+  nPOTScale: 0
+  lightmap: 0
+  compressionQuality: 50
+  spriteMode: 2
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spritePixelsToUnits: 256
+  spriteBorder: {x: 4, y: 4, z: 4, w: 4}
+  spriteGenerateFallbackPhysicsShape: 1
+  alphaUsage: 1
+  alphaIsTransparency: 1
+  spriteTessellationDetail: 0
+  textureType: 8
+  textureShape: 1
+  singleChannelComponent: 0
+  flipbookRows: 1
+  flipbookColumns: 1
+  maxTextureSizeSet: 0
+  compressionQualitySet: 0
+  textureFormatSet: 0
+  ignorePngGamma: 0
+  applyGammaDecoding: 0
+  platformSettings:
+  - serializedVersion: 3
+    buildTarget: DefaultTexturePlatform
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Standalone
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: iPhone
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  - serializedVersion: 3
+    buildTarget: Android
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+    forceMaximumCompressionQuality_BC6H_BC7: 0
+  spriteSheet:
+    serializedVersion: 2
+    sprites:
+    - serializedVersion: 2
+      name: Square
+      rect:
+        serializedVersion: 2
+        x: 0
+        y: 0
+        width: 256
+        height: 256
+      alignment: 0
+      pivot: {x: 0.5, y: 0.5}
+      border: {x: 0, y: 0, z: 0, w: 0}
+      outline: []
+      physicsShape: []
+      tessellationDetail: 0
+      bones: []
+      spriteID: 2d009a6b596c7d760800000000000000
+      internalID: 7482667652216324306
+      vertices: []
+      indices: 
+      edges: []
+      weights: []
+    outline: []
+    physicsShape:
+    - - {x: -128, y: 128}
+      - {x: -128, y: -128}
+      - {x: 128, y: -128}
+      - {x: 128, y: 128}
+    bones: []
+    spriteID: 5e97eb03825dee720800000000000000
+    internalID: 0
+    vertices: []
+    indices: 
+    edges: []
+    weights: []
+    secondaryTextures: []
+  spritePackingTag: 
+  pSDRemoveMatte: 0
+  pSDShowRemoveMatteOption: 0
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 45 - 0
Assets/Prefabs/Tiles/WaterTileGO.prefab

@@ -0,0 +1,45 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &6269416748489664432
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 7633733319960551627}
+  - component: {fileID: 187059513855629223}
+  m_Layer: 0
+  m_Name: WaterTileGO
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!4 &7633733319960551627
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 6269416748489664432}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 5.5119953, y: -10.374621, z: -1.1444402}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children: []
+  m_Father: {fileID: 0}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!114 &187059513855629223
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 6269416748489664432}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: ab40ace4b4ead6947b5b554b5d19dfed, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 

+ 7 - 0
Assets/Prefabs/Tiles/WaterTileGO.prefab.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 1bb714d335ea9c34a809f66541dd7cf1
+PrefabImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

Разница между файлами не показана из-за своего большого размера
+ 847 - 302
Assets/Scenes/SampleScene.unity


+ 4 - 0
Assets/Scripts/CameraManager.cs

@@ -14,6 +14,10 @@ public class CameraManager : MonoBehaviour {
         instance = this;
     }
 
+    public CinemachineVirtualCamera GetActiveCam() {
+        return activeCam;
+    }
+
     private void Update() {
         if (Input.GetAxis("Mouse ScrollWheel") != 0f) {
             CinemachineComponentBase componentBase =

+ 26 - 5
Assets/Scripts/Creatures/Actions/AttackAction.cs

@@ -1,16 +1,37 @@
 using System.Collections;
 using System.Collections.Generic;
+using RPG_Fight_Test.Assets.Scripts.Weapons;
 using UnityEngine;
 
 public class AttackAction : IAction {
-    Creature target;
+    private Creature Target;
+    private Creature Attacker;
 
-    public AttackAction(Creature target) {
-        this.target = target;
+    public AttackAction(Creature attacker, Creature target) {
+        Target = target;
+        Attacker = attacker;
     }
 
+    private bool actionPerformed;
+    public bool ActionPerformed { get => actionPerformed; set => actionPerformed = value; }
+
     public IEnumerator PerformAction() {
-        yield return null;
-        //throw new System.NotImplementedException();
+
+        int chanseToHit = Attacker.PrimaryWeapon.AttackProficiency - Target.Evade;
+        int attackRoll = Random.Range(1, 100);
+
+        string message = Attacker.name + " attacked " + Target.name + " with a chanse to hit " + chanseToHit + " and attack roll " + attackRoll;
+        if (attackRoll < chanseToHit) {
+            // hit the attack roll damage;
+            int damage = Attacker.PrimaryWeapon.RollDamage();
+            message += " and hit for " + damage + " damage";
+            Target.TakeDamage(damage);
+        }
+        GameManagerScript.GetInstance().LogRow(message);
+        actionPerformed = true;
+        yield return new WaitForSeconds(3);
+    }
+    bool IAction.GetHilightEnabled() {
+        return true;
     }
 }

+ 3 - 0
Assets/Scripts/Creatures/Actions/IAction.cs

@@ -4,5 +4,8 @@ using UnityEngine;
 
 public interface IAction {
 
+    public bool ActionPerformed { get; set; }
     public IEnumerator PerformAction();
+
+    public abstract bool GetHilightEnabled();
 }

+ 49 - 10
Assets/Scripts/Creatures/Actions/MoveAction.cs

@@ -9,11 +9,16 @@ public class MoveAction : IAction {
     Vector3 targetPosition;
     private Creature toMove;
     private Creature targetCreature;
-    private bool shouldMove = false;
     private bool moveToPosition = false;
-
+    List<Vector3> highlightedTiles;
     private int movedSquares = 0;
 
+    private bool actionPerformed;
+
+    private LineRenderer LR;
+
+    public bool ActionPerformed { get => actionPerformed; set => actionPerformed = value; }
+
     public void SetStartPosition(Vector3 startPos) {
         startPosition = startPos;
     }
@@ -64,12 +69,22 @@ public class MoveAction : IAction {
                         distance.y += 1;
                     }
 
-                    checkIfOccupoied(movement);
-
-                    toMove.transform.position = movement;
-                    movedSquares++;
+                    Creature tileBlockedBy = TileOccupiedBy(movement);
+                    if (tileBlockedBy != null) {
+                        Debug.Log("Tile blocked by: " + tileBlockedBy.name);
+                        IAction actionWhenBlocked = toMove.ActionWhenBlocked(tileBlockedBy);
+                        if (actionWhenBlocked != null) {
+                            movedSquares += 2; // consume two move, and set and use second action to decision
+                            toMove.SetSecondAction(actionWhenBlocked);
+                            yield return actionWhenBlocked.PerformAction();
+                        }
+                    } else {
+                        toMove.transform.position = movement;
+                        movedSquares++;
+                    }
                     if (toMove.movementRate <= movedSquares * 5) { // this one have moved all that they can for one action
                         Debug.Log(toMove.name + " moved there entire " + toMove.movementRate + " distance, stopping");
+                        ActionPerformed = true;
                         break;
                     }
                     yield return new WaitForSeconds(1);
@@ -100,8 +115,18 @@ public class MoveAction : IAction {
                         movement.y -= 1;
                         distance.y += 1;
                     }
-                    toMove.transform.position = movement;
-                    movedSquares++;
+
+                    Creature tileBlockedBy = TileOccupiedBy(movement);
+                    if (tileBlockedBy != null) {
+                        Debug.Log(toMove.name + "s Tile blocked by: " + tileBlockedBy.name);
+                        IAction action = toMove.ActionWhenBlocked(tileBlockedBy);
+                        toMove.SetSecondAction(action);
+                        movedSquares += 2; // consume two move, and set and use second action to decision
+                        yield return toMove.GetSecondAction().PerformAction();
+                    } else {
+                        toMove.transform.position = movement;
+                        movedSquares++;
+                    }
                     if (toMove.movementRate <= movedSquares * 5) { // this one have moved all that they can for one action
                         Debug.Log(toMove.name + " moved there entire " + toMove.movementRate + " distance, stopping");
                         break;
@@ -116,11 +141,25 @@ public class MoveAction : IAction {
                 }
             }
         }
-
+        actionPerformed = true;
         yield return null;
     }
 
-    private void checkIfOccupoied(Vector3 movement) {
+    private Creature TileOccupiedBy(Vector3 nextSprite) {
+        List<Creature> creatures = GameManagerScript.GetInstance().GetCombatants();
+        Tilemap tileMap = GameManagerScript.GetInstance().TileMap;
+        Vector3Int cellToCheck = tileMap.WorldToCell(nextSprite);
+        Creature returnValue = null;
+        foreach (Creature creature in creatures) {
+            if (cellToCheck.Equals(tileMap.WorldToCell(creature.transform.position))) {
+                returnValue = creature;
+            }
+        }
+
+        return returnValue;
+    }
 
+    bool IAction.GetHilightEnabled() {
+        return true;
     }
 }

+ 5 - 0
Assets/Scripts/Creatures/Actions/SpellAction.cs

@@ -6,6 +6,8 @@ public class SpellAction : IAction {
 
     private GameObject target;
 
+    public bool ActionPerformed { get => throw new System.NotImplementedException(); set => throw new System.NotImplementedException(); }
+
     public IEnumerator PerformAction() {
         throw new System.NotImplementedException();
     }
@@ -21,4 +23,7 @@ public class SpellAction : IAction {
     void Update() {
 
     }
+    bool IAction.GetHilightEnabled() {
+        return true;
+    }
 }

+ 41 - 9
Assets/Scripts/Creatures/Creature.cs

@@ -1,11 +1,12 @@
 using System.Collections;
 using System.Collections.Generic;
 using System.Linq;
+using RPG_Fight_Test.Assets.Scripts.Weapons;
 using UnityEngine;
 using UnityEngine.EventSystems;
 using UnityEngine.UI;
 
-public class Creature : MonoBehaviour {
+public class Creature : MonoBehaviour, ICreatureInterface {
 
     [SerializeField] Sprite creatureImage;
     [SerializeField] bool humanControlled;
@@ -21,19 +22,21 @@ public class Creature : MonoBehaviour {
 
     Weapon weapon;
     int health;
-    private CanvasGroup canvasGroup;
-    private RectTransform rectTransform;
     private Vector3Int currentPos;
 
     internal IAction GetFirstAction() {
         return firstAction;
     }
+    internal IAction GetSecondAction() {
+        return secondAction;
+    }
 
     private IAction firstAction;
     private IAction secondAction;
     public GameObject InitPanelGameObject { set; get; }
 
     internal int movementRate;
+    private bool active;
 
     public int Dex { get => dex; set => dex = value; }
 
@@ -42,16 +45,37 @@ public class Creature : MonoBehaviour {
     public int CreatureHealth { get => creatureHealth; set => creatureHealth = value; }
     public bool IsCreatureAlive { get; set; }
     public Vector3Int CurrentPos { get => currentPos; set => currentPos = value; }
-
-    private void Start() {
-        canvasGroup = GetComponent<CanvasGroup>();
-        rectTransform = GetComponent<RectTransform>();
-    }
+    public virtual IWeapon PrimaryWeapon { get; set; }
+    public virtual int Evade { get; set; }
 
     public int GetInit() {
         return Init;
     }
 
+    public IEnumerator WaitForPlayerAction() {
+
+        active = true;
+        while (!HasFirstAction()) {
+            yield return null;
+        }
+
+        while (!HasSecondAction()) {
+            yield return null;
+        }
+
+        active = false;
+    }
+
+    private void OnMouseUp() {
+        Debug.Log("Mouse up on tile or Creature " + this.name);
+        SetFirstAction(new AttackAction(this, this));
+        SetSecondAction(new AttackAction(this, this));
+    }
+
+    internal void SetActive(bool v) {
+        active = v;
+    }
+
     internal bool HasSecondAction() {
         return secondAction != null;
     }
@@ -106,8 +130,8 @@ public class Creature : MonoBehaviour {
                 closestEnemy = e;
                 minDist = dist;
             }
+            Debug.Log("Closest enemy is " + closestEnemy.name);
         }
-        Debug.Log("Closest enemy is " + closestEnemy.name);
         return closestEnemy;
     }
 
@@ -125,4 +149,12 @@ public class Creature : MonoBehaviour {
         InitPanelGameObject.GetComponent<InitCreaturePanelScript>().UpdateHealthBar(MaxHealth / CurrentHealth);
     }
 
+    public virtual IAction ActionWhenBlocked(Creature blockingCreature) {
+        throw new System.Exception("The Creature must decide this, add it to the specific creature");
+    }
+
+    public virtual void DecideActions(List<Creature> combatants) {
+        throw new System.Exception("The Creature must decide this, add it to the specific creature");
+    }
+
 }

+ 14 - 0
Assets/Scripts/Creatures/CreatureInterface.cs

@@ -0,0 +1,14 @@
+using System.Collections.Generic;
+using RPG_Fight_Test.Assets.Scripts.Weapons;
+
+public interface ICreatureInterface {
+
+    public void TakeDamage(int damage);
+
+    public IAction ActionWhenBlocked(Creature blockingCreature);
+    public void DecideActions(List<Creature> combatants);
+
+    public IWeapon PrimaryWeapon { get; set; }
+
+    public int Evade { get; set; }
+}

+ 1 - 1
Assets/Scripts/Creatures/GenerateSkeletonScript.cs.meta → Assets/Scripts/Creatures/CreatureInterface.cs.meta

@@ -1,5 +1,5 @@
 fileFormatVersion: 2
-guid: 2794ffe7a26e13b40aebcc480437dc1f
+guid: dcd2cc9b00ccfcd48b213333e3cca596
 MonoImporter:
   externalObjects: {}
   serializedVersion: 2

+ 0 - 25
Assets/Scripts/Creatures/GenerateSkeletonScript.cs

@@ -1,25 +0,0 @@
-using System;
-using System.Collections;
-using System.Collections.Generic;
-using UnityEngine;
-using UnityEngine.UI;
-
-public class GenerateSkeletonScript : MonoBehaviour {
-
-    [SerializeField] GameObject skeletonPrefab;
-
-    void Start() {
-        Button button = GetComponentInChildren<Button>();
-        button.onClick.AddListener(SpawnSkeleton);
-    }
-
-    private void SpawnSkeleton() {
-        GameObject generatedSkelleton = GameObject.Instantiate(skeletonPrefab, new Vector3(), Quaternion.identity);
-
-        Vector3 mousePos = Camera.main.ScreenToViewportPoint(Input.mousePosition);
-        mousePos.z = Camera.main.transform.position.z + Camera.main.nearClipPlane;
-        generatedSkelleton.transform.position = mousePos;
-
-        generatedSkelleton.GetComponent<NewSkeletonSpriteScript>().IsDragged(true);
-    }
-}

+ 8 - 0
Assets/Scripts/Creatures/SpecificCreature.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 7d697b6f45e9dd543ab1ff9f07f307de
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 16 - 0
Assets/Scripts/Creatures/Human.cs → Assets/Scripts/Creatures/SpecificCreature/Human.cs

@@ -1,5 +1,6 @@
 using System.Collections;
 using System.Collections.Generic;
+using RPG_Fight_Test.Assets.Scripts.Weapons;
 using UnityEngine;
 
 public class Human : Creature {
@@ -12,10 +13,25 @@ public class Human : Creature {
         CurrentHealth = CreatureHealth;
         MaxHealth = CreatureHealth;
         IsCreatureAlive = true;
+
+        PrimaryWeapon = new ShortSword();
+        PrimaryWeapon.AttackProficiency = 45;
+
+        Evade = 20;
     }
 
     // Update is called once per frame
     void Update() {
 
     }
+
+    public override void DecideActions(List<Creature> combatants) {
+        SetFirstAction(new AttackAction(this, combatants[0]));
+        SetSecondAction(new AttackAction(this, combatants[0]));
+    }
+
+
+    public override IAction ActionWhenBlocked(Creature blockingCreature) {
+        return null;
+    }
 }

+ 1 - 1
Assets/Scripts/Creatures/Human.cs.meta → Assets/Scripts/Creatures/SpecificCreature/Human.cs.meta

@@ -1,5 +1,5 @@
 fileFormatVersion: 2
-guid: 67f84b489b3bb5f48b388c97399eace9
+guid: 9ebe8c4f95ed82945afceb788ea989a3
 MonoImporter:
   externalObjects: {}
   serializedVersion: 2

+ 17 - 4
Assets/Scripts/Creatures/Skeleton.cs → Assets/Scripts/Creatures/SpecificCreature/Skeleton.cs

@@ -1,4 +1,5 @@
 using System.Collections.Generic;
+using RPG_Fight_Test.Assets.Scripts.Weapons;
 using UnityEngine;
 using UnityEngine.EventSystems;
 
@@ -13,13 +14,17 @@ namespace RPG_Fight_Test.Assets.Scripts.Creatures {
             CurrentHealth = CreatureHealth;
             MaxHealth = CreatureHealth;
             IsCreatureAlive = true;
+
+            PrimaryWeapon = new ShortSword();
+            PrimaryWeapon.AttackProficiency = 50;
+            Evade = Random.Range(0, 10);
         }
 
         private void DecideFirstAction() {
             List<Creature> closeEnemies = EnemiesInSquareNextToCreature(this, combatants);
 
             if (closeEnemies.Count > 0) {
-                SetFirstAction(new AttackAction(closeEnemies[0]));
+                SetFirstAction(new AttackAction(this, closeEnemies[0])); // needs better logic, most damaged? biggest? smallest? random?
             } else {
                 // Move towards closest enemy
                 Creature closestEnemy = FindClosestEnemy(this, combatants);
@@ -36,7 +41,7 @@ namespace RPG_Fight_Test.Assets.Scripts.Creatures {
             List<Creature> closeEnemies = EnemiesInSquareNextToCreature(this, combatants);
 
             if (closeEnemies.Count > 0) {
-                SetSecondAction(new AttackAction(closeEnemies[0]));
+                SetSecondAction(new AttackAction(this, closeEnemies[0]));
             } else {
                 // Move towards closest enemy
                 Creature closestEnemy = FindClosestEnemy(this, combatants);
@@ -47,7 +52,8 @@ namespace RPG_Fight_Test.Assets.Scripts.Creatures {
                 SetSecondAction(action);
             }
         }
-        public void DecideActions(List<Creature> combatants) {
+
+        public override void DecideActions(List<Creature> combatants) {
             this.combatants = combatants;
             List<Creature> closeEnemies = EnemiesInSquareNextToCreature(this, combatants);
 
@@ -56,9 +62,16 @@ namespace RPG_Fight_Test.Assets.Scripts.Creatures {
             Debug.Log("Number of close enemies " + closeEnemies.Count);
         }
 
-
         public void ShowInfo() {
 
         }
+
+        public override IAction ActionWhenBlocked(Creature blockingCreature) {
+            IAction returnValue = null;
+            if (blockingCreature.IsHumanControlled() != this.IsHumanControlled()) {
+                returnValue = new AttackAction(this, blockingCreature);
+            }
+            return returnValue;
+        }
     }
 }

+ 1 - 1
Assets/Scripts/Creatures/Skeleton.cs.meta → Assets/Scripts/Creatures/SpecificCreature/Skeleton.cs.meta

@@ -1,5 +1,5 @@
 fileFormatVersion: 2
-guid: 7612bb62bfd62f748b3addd7e85bd4fb
+guid: f555f82a2df744344ba8e4c6474c2c2d
 MonoImporter:
   externalObjects: {}
   serializedVersion: 2

+ 7 - 5
Assets/Scripts/Die.cs

@@ -1,16 +1,18 @@
 using System;
 
-internal class Die {
+public class Die {
 
     int sides;
     Random rnd = new Random();
-    Die(int sides) {
+
+    private int modifier;
+    public int Modifier { get => modifier; set => modifier = value; }
+
+    public Die(int sides) {
         this.sides = sides;
     }
 
     public int RollDie() {
-        return rnd.Next(1, sides);
+        return rnd.Next(1, sides) + Modifier;
     }
-
-
 }

+ 19 - 0
Assets/Scripts/GameManagerScript.cs

@@ -18,11 +18,18 @@ public class GameManagerScript : MonoBehaviour {
     [SerializeField] GameObject initiativePanel;
     [SerializeField] GameObject initiativeCreaturePanel;
     [SerializeField] GameObject roundActionsPanel;
+    [SerializeField] GameObject logPanel;
+
+    [SerializeField] TileBase hilightTile;
 
     [SerializeField] Grid grid;
 
     [SerializeField] Tilemap tileMap;
+    [SerializeField] Tilemap hilightTileMap;
+    [SerializeField] LineRenderer lineRenderer;
     public Tilemap TileMap { get => tileMap; set => tileMap = value; }
+    public Tilemap HightlightTileMap { get => hilightTileMap; set => hilightTileMap = value; }
+    public TileBase HighlightTileBase { get => hilightTile; set => hilightTile = value; }
     public Grid Grid { get => grid; set => grid = value; }
 
     List<Creature> combatants = new List<Creature>();
@@ -33,6 +40,9 @@ public class GameManagerScript : MonoBehaviour {
         return instance;
     }
 
+    public LineRenderer GetLineRenderer() {
+        return lineRenderer;
+    }
     private void Start() {
         instance = this;
         combatants.AddRange(enemies.Select(e => e.GetComponent<Creature>()));
@@ -64,9 +74,14 @@ public class GameManagerScript : MonoBehaviour {
         ClearInitPanel();
         BuildInitPanel();
         ShowRoundActionsPanel(true);
+        ActivateLogPanel(true);
         roundManager.StartFirstRound(combatants);
     }
 
+    private void ActivateLogPanel(bool value) {
+        logPanel.SetActive(value);
+    }
+
     private void ShowRoundActionsPanel(bool show) {
         roundActionsPanel.SetActive(show);
     }
@@ -102,4 +117,8 @@ public class GameManagerScript : MonoBehaviour {
     public List<Creature> GetCombatants() {
         return combatants;
     }
+
+    public void LogRow(string text) {
+        logPanel.GetComponent<LogPanelScript>().AddText(text);
+    }
 }

+ 1 - 1
Assets/Scripts/GameManagerScript.cs.meta

@@ -4,7 +4,7 @@ MonoImporter:
   externalObjects: {}
   serializedVersion: 2
   defaultReferences: []
-  executionOrder: 0
+  executionOrder: 300
   icon: {instanceID: 0}
   userData: 
   assetBundleName: 

+ 8 - 0
Assets/Scripts/Grid.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 78bdd54da9479d141ad2ef3c14183e87
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 35 - 0
Assets/Scripts/Grid/GridController.cs

@@ -0,0 +1,35 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+using UnityEngine.Tilemaps;
+
+public class GridController : MonoBehaviour {
+
+
+    [SerializeField] Tilemap highlightMap = null;
+    [SerializeField] TileBase hilightTile = null;
+    private IAction hilightAction;
+
+    public IAction HilightAction { get => hilightAction; set => hilightAction = value; }
+
+    // Update is called once per frame
+    void Update() {
+        if (Input.GetMouseButtonDown(0) && hilightAction != null && hilightAction.GetHilightEnabled()) {
+            Vector3Int clickedPos = GetMousePosition();
+            highlightMap.SetTile(clickedPos, hilightTile);
+
+            // TODO needs better handling.. Should be in MoveAction???
+            YesNoDilougueUI.Instance.ShowDialog("Are you sure you want to move here?",
+                () => { Debug.Log("YES PRESSED"); /* Confirm the move and paint the path to take. */},
+                () => { Debug.Log("NO PRESSED"); highlightMap.SetTile(clickedPos, null); });
+        }
+    }
+
+    Vector3Int GetMousePosition() {
+        Vector3 mousePos = Input.mousePosition;
+        mousePos.z = -Camera.main.transform.position.z;
+        Vector3 worldPoint = Camera.main.ScreenToWorldPoint(mousePos);
+        return GameManagerScript.GetInstance().TileMap.WorldToCell(worldPoint);
+    }
+
+}

+ 11 - 0
Assets/Scripts/Grid/GridController.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 8048c66e2410e3549a5b1f0cd99c1296
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
Assets/Scripts/Grid/Tiles.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: c0fa72bfc9b80b54891cb06be28578ba
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 12 - 0
Assets/Scripts/Grid/Tiles/DesertTileScript.cs

@@ -0,0 +1,12 @@
+using System.Collections;
+using System.Collections.Generic;
+using RPG_Fight_Test.Assets.Scripts.Tiles;
+using UnityEngine;
+
+public class DesertTileScript : MonoBehaviour, ITile {
+
+    private int movementRate = 80;
+    private int visibility = 100;
+    public int MovementRate => movementRate;
+    public int Visibility => visibility;
+}

+ 11 - 0
Assets/Scripts/Grid/Tiles/DesertTileScript.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: fbfca5363ba55344ba04c91f2530cc75
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 15 - 0
Assets/Scripts/Grid/Tiles/GrassTileScript.cs

@@ -0,0 +1,15 @@
+using System.Collections;
+using System.Collections.Generic;
+using RPG_Fight_Test.Assets.Scripts.Tiles;
+using UnityEngine;
+using UnityEngine.Tilemaps;
+using UnityEngine.UI;
+
+public class GrassTileScript : MonoBehaviour, ITile {
+
+    private int movementRate = 100;
+    private int visibility = 100;
+    public int MovementRate { get => movementRate; }
+    public int Visibility { get => visibility; }
+
+}

+ 11 - 0
Assets/Scripts/Grid/Tiles/GrassTileScript.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 576d77565015b044b81f778ed4e7b085
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
Assets/Scripts/Grid/Tiles/ITile.cs

@@ -0,0 +1,8 @@
+namespace RPG_Fight_Test.Assets.Scripts.Tiles {
+    public interface ITile {
+        public int MovementRate { get; }
+        public int Visibility { get; }
+    }
+
+
+}

+ 11 - 0
Assets/Scripts/Grid/Tiles/ITile.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 37a08f691ff9b494c9b121808a877bac
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 12 - 0
Assets/Scripts/Grid/Tiles/WaterTileScript.cs

@@ -0,0 +1,12 @@
+using System.Collections;
+using System.Collections.Generic;
+using RPG_Fight_Test.Assets.Scripts.Tiles;
+using UnityEngine;
+
+public class WaterTileScript : MonoBehaviour, ITile {
+
+    private int movementRate = 25;
+    private int visibility = 25;
+    public int MovementRate => movementRate;
+    public int Visibility => visibility;
+}

+ 11 - 0
Assets/Scripts/Grid/Tiles/WaterTileScript.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: ab40ace4b4ead6947b5b554b5d19dfed
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
Assets/Scripts/Panels/Dialogs.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: d60d34ee2fdc266458cc8fb2bddb7e1c
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 40 - 0
Assets/Scripts/Panels/Dialogs/YesNoDilougueUI.cs

@@ -0,0 +1,40 @@
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using TMPro;
+using UnityEngine;
+using UnityEngine.UI;
+
+public class YesNoDilougueUI : MonoBehaviour {
+
+    public static YesNoDilougueUI Instance { get; private set; }
+    TMP_Text questionText;
+    Button confirmButton;
+    Button declineButton;
+
+    private void Awake() {
+        Instance = this;
+        confirmButton = transform.Find("ConfirmButton").GetComponent<Button>();
+        declineButton = transform.Find("DeclineButton").GetComponent<Button>();
+        questionText = transform.Find("QuestionText").GetComponent<TextMeshProUGUI>();
+
+        Hide();
+        transform.localPosition = Vector3.zero;
+    }
+
+    public void SetQuestionText(String text) {
+        questionText.text = text;
+    }
+
+    public void ShowDialog(string questionText, Action YesAction, Action NoAction) {
+        gameObject.SetActive(true);
+        SetQuestionText(questionText);
+        confirmButton.onClick.AddListener(() => { Hide(); YesAction(); });
+
+        declineButton.onClick.AddListener(() => { Hide(); NoAction(); });
+    }
+
+    private void Hide() {
+        gameObject.SetActive(false);
+    }
+}

+ 11 - 0
Assets/Scripts/Panels/Dialogs/YesNoDilougueUI.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 543f9f300b37cc3429378c5d7f0e5f1a
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 39 - 0
Assets/Scripts/Panels/LogPanelScript.cs

@@ -0,0 +1,39 @@
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+using UnityEngine.UI;
+
+public class LogPanelScript : MonoBehaviour {
+    [SerializeField] Button showHidePanel;
+    [SerializeField] GameObject logRowPrefab;
+    [SerializeField] RectTransform content;
+
+    private int baseRowHeight = 20;
+
+    void Start() {
+        showHidePanel.onClick.AddListener(ShowHidePanelToggle);
+    }
+
+    private void ShowHidePanelToggle() {
+        RectTransform rectTransform = this.GetComponent<RectTransform>();
+        if (rectTransform.sizeDelta.x > 50) { // minimize
+            rectTransform.sizeDelta = new Vector2(40, rectTransform.sizeDelta.y);
+        } else { // maximize
+            rectTransform.sizeDelta = new Vector2(300, rectTransform.sizeDelta.y);
+        }
+    }
+
+    public void AddText(string text) {
+        GameObject newLogRow = GameObject.Instantiate(logRowPrefab, new Vector3(0, 0, 0), Quaternion.identity);
+        TMPro.TMP_Text logText = newLogRow.GetComponent<TMPro.TMP_Text>();
+        RectTransform rectTransform = GetComponent<RectTransform>();
+        rectTransform.localScale = new Vector3(1, 1, 1);
+        newLogRow.transform.SetParent(content.transform);
+        logText.text = text;
+        int lineCount = logText.textInfo.lineCount;
+
+        rectTransform.sizeDelta = new Vector2(rectTransform.sizeDelta.x, baseRowHeight * lineCount);
+
+    }
+}

+ 11 - 0
Assets/Scripts/Panels/LogPanelScript.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: c729a7046d2f09f4d902f47cb7644382
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 51 - 14
Assets/Scripts/RoundManager.cs

@@ -2,7 +2,6 @@ using System;
 using System.Collections;
 using System.Collections.Generic;
 using System.Linq;
-using RPG_Fight_Test.Assets.Scripts.Creatures;
 using UnityEngine;
 using UnityEngine.UI;
 
@@ -13,9 +12,32 @@ public class RoundManager : MonoBehaviour {
     int round;
 
     private bool executing = false;
+    private Creature activeCreature;
+    [SerializeField] GameObject decitionButtonsPanel;
+    [SerializeField] Button moveActionButton;
+    [SerializeField] Button attackActionButton;
+    private bool movingAction;
+    private List<Vector3> highlightedTiles;
 
     private void Start() {
         executeRoundButton.onClick.AddListener(ExecuteRound);
+        moveActionButton.onClick.AddListener(CreateMoveAction);
+        attackActionButton.onClick.AddListener(CreateAttackAction);
+    }
+
+    private void CreateAttackAction() {
+    }
+
+    private void CreateMoveAction() {
+        movingAction = true;
+        MoveAction ma = new MoveAction();
+        ma.SetStartPosition(activeCreature.transform.position);
+        if (!activeCreature.HasFirstAction()) {
+            activeCreature.SetFirstAction(ma);
+        } else {
+            activeCreature.SetSecondAction(ma);
+        }
+        GameManagerScript.GetInstance().Grid.GetComponent<GridController>().HilightAction = ma;
     }
 
     private void ExecuteRound() {
@@ -33,6 +55,20 @@ public class RoundManager : MonoBehaviour {
                 c.CurrentPos = Vector3Int.RoundToInt(c.gameObject.transform.position);
             }
         }
+
+        if (movingAction) {
+            LineRenderer lineRenderer = GameManagerScript.GetInstance().GetLineRenderer();
+
+            lineRenderer.startWidth = 0.01f;
+            lineRenderer.endWidth = 0.01f;
+
+            Vector3 mousePos = Input.mousePosition;
+            mousePos.z = Camera.main.nearClipPlane;
+            Vector3 realMousePos = Camera.main.ScreenToWorldPoint(mousePos);
+
+            lineRenderer.SetPosition(0, activeCreature.transform.position);
+            lineRenderer.SetPosition(1, realMousePos);
+        }
     }
 
     internal void StartFirstRound(List<Creature> combatants) {
@@ -51,30 +87,31 @@ public class RoundManager : MonoBehaviour {
             if (creature.IsHumanControlled()) {
                 CameraManager.GetInstance().FocusOnGameObject(creature.gameObject);
 
-                // TODO REMOVE testing
-                if (creature.name.Equals("Human2")) {
-                    MoveAction ma = new MoveAction();
-                    ma.SetTargetPosition(new Vector3(2.5f, -27.5f, 0f));
-                    ma.SetStartPosition(creature.CurrentPos);
-                    ma.SetCreatureToMove(creature);
-                    creature.SetFirstAction(ma);
-                } else {
-                    creature.SetFirstAction(new AttackAction(combatants[0]));
-                }
-                creature.SetSecondAction(new AttackAction(combatants[0])); // TODO REMOVE testing
+                activeCreature = creature;
+                StartCoroutine(creature.WaitForPlayerAction());
                 // Wait for human decision
             } else {
-                ((Skeleton)creature).DecideActions(combatants); // FIXME Skeleton won't work.. need to be more general
+                creature.DecideActions(combatants);
                 // AI make decision
             }
         }
 
+
+    }
+
+    private void Update() {
         if (CheckIfAllCombatantsHaveTheirActions()) {
             executeRoundButton.interactable = true;
         }
+
+        if (activeCreature != null && activeCreature.IsHumanControlled()) {
+            decitionButtonsPanel.SetActive(true);
+        } else {
+            decitionButtonsPanel.SetActive(false);
+        }
     }
 
     private bool CheckIfAllCombatantsHaveTheirActions() {
-        return combatants.All(c => c.HasFirstAction() && c.HasSecondAction());
+        return combatants != null && combatants.All(c => c.HasFirstAction() && c.HasSecondAction());
     }
 }

+ 8 - 0
Assets/Scripts/Weapons.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: f18194bb2a2ac8a4f8e421eb70683644
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 19 - 0
Assets/Scripts/Weapons/IWeapon.cs

@@ -0,0 +1,19 @@
+using System.Collections.Generic;
+
+namespace RPG_Fight_Test.Assets.Scripts.Weapons {
+    public interface IWeapon {
+        public List<Die> Damage { get; set; }
+        public int Reach { get; }
+        public enum DAMAGE_TYPE {
+            PIERCING,
+            BLUNT,
+            SLASHING
+        }
+
+        public DAMAGE_TYPE DamageType { get; set; }
+
+        public int RollDamage();
+
+        public int AttackProficiency { get; set; }
+    }
+}

+ 11 - 0
Assets/Scripts/Weapons/IWeapon.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: ee9f909605d9fc94fb5f2dd2be85324e
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 28 - 0
Assets/Scripts/Weapons/ShortSword.cs

@@ -0,0 +1,28 @@
+using System.Collections.Generic;
+
+namespace RPG_Fight_Test.Assets.Scripts.Weapons {
+    public class ShortSword : IWeapon {
+
+        List<Die> damage = new List<Die>();
+        IWeapon.DAMAGE_TYPE damageType = IWeapon.DAMAGE_TYPE.SLASHING;
+        public ShortSword() {
+            Die d6 = new Die(6);
+            d6.Modifier = 1;
+            damage.Add(d6);
+            Damage = damage;
+        }
+
+        public List<Die> Damage { get => damage; set => damage = value; }
+
+        public int Reach => 1;
+
+        public IWeapon.DAMAGE_TYPE DamageType { get => damageType; set => damageType = value; }
+        public int AttackProficiency { get; set; }
+
+        public int RollDamage() {
+            int dmg = 0;
+            Damage.ForEach(d => dmg += d.RollDie());
+            return dmg;
+        }
+    }
+}

+ 11 - 0
Assets/Scripts/Weapons/ShortSword.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 8c1cc7bcf8c8eef44a7219e8bff3229b
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

Некоторые файлы не были показаны из-за большого количества измененных файлов