Alexei #5

Merged
dddushesss merged 8 commits from Alexei into Prod 2022-01-05 14:48:36 +00:00
105 changed files with 143599 additions and 151973 deletions

View File

@ -33,6 +33,7 @@ RectTransform:
m_Children:
- {fileID: 5903238893732464861}
- {fileID: 5903238893920995269}
- {fileID: 5909765210375931188}
m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
@ -116,6 +117,7 @@ MonoBehaviour:
m_EditorClassIdentifier:
moveJoystick: {fileID: 5903238893732464856}
attackJoystick: {fileID: 5903238893920995264}
placeJoystick: {fileID: 5909765210375931185}
--- !u!1001 &2346010270301780417
PrefabInstance:
m_ObjectHideFlags: 0
@ -171,7 +173,7 @@ PrefabInstance:
- target: {fileID: 8170153791668043268, guid: 0d230cc8be529a542a08cb878ab14b18,
type: 3}
propertyPath: m_SizeDelta.y
value: -200
value: -600
objectReference: {fileID: 0}
- target: {fileID: 8170153791668043268, guid: 0d230cc8be529a542a08cb878ab14b18,
type: 3}
@ -226,7 +228,7 @@ PrefabInstance:
- target: {fileID: 8170153791668043268, guid: 0d230cc8be529a542a08cb878ab14b18,
type: 3}
propertyPath: m_AnchoredPosition.y
value: 0
value: 400
objectReference: {fileID: 0}
- target: {fileID: 8170153791668043268, guid: 0d230cc8be529a542a08cb878ab14b18,
type: 3}
@ -365,7 +367,7 @@ PrefabInstance:
- target: {fileID: 8170153791668043268, guid: 0d230cc8be529a542a08cb878ab14b18,
type: 3}
propertyPath: m_SizeDelta.y
value: -200
value: -600
objectReference: {fileID: 0}
- target: {fileID: 8170153791668043268, guid: 0d230cc8be529a542a08cb878ab14b18,
type: 3}
@ -410,7 +412,7 @@ PrefabInstance:
- target: {fileID: 8170153791668043268, guid: 0d230cc8be529a542a08cb878ab14b18,
type: 3}
propertyPath: m_AnchoredPosition.y
value: 0
value: 400
objectReference: {fileID: 0}
- target: {fileID: 8170153791668043268, guid: 0d230cc8be529a542a08cb878ab14b18,
type: 3}
@ -477,3 +479,197 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 7a47f546fc70ec8428172694e78e4288, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!1001 &2549463672493996848
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
m_TransformParent: {fileID: 2346010271288414180}
m_Modifications:
- target: {fileID: 8170153791668043265, guid: 0d230cc8be529a542a08cb878ab14b18,
type: 3}
propertyPath: deadZone
value: 0.2
objectReference: {fileID: 0}
- target: {fileID: 8170153791668043268, guid: 0d230cc8be529a542a08cb878ab14b18,
type: 3}
propertyPath: m_Pivot.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8170153791668043268, guid: 0d230cc8be529a542a08cb878ab14b18,
type: 3}
propertyPath: m_Pivot.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8170153791668043268, guid: 0d230cc8be529a542a08cb878ab14b18,
type: 3}
propertyPath: m_RootOrder
value: 2
objectReference: {fileID: 0}
- target: {fileID: 8170153791668043268, guid: 0d230cc8be529a542a08cb878ab14b18,
type: 3}
propertyPath: m_AnchorMax.x
value: 1
objectReference: {fileID: 0}
- target: {fileID: 8170153791668043268, guid: 0d230cc8be529a542a08cb878ab14b18,
type: 3}
propertyPath: m_AnchorMax.y
value: 1
objectReference: {fileID: 0}
- target: {fileID: 8170153791668043268, guid: 0d230cc8be529a542a08cb878ab14b18,
type: 3}
propertyPath: m_AnchorMin.x
value: 1
objectReference: {fileID: 0}
- target: {fileID: 8170153791668043268, guid: 0d230cc8be529a542a08cb878ab14b18,
type: 3}
propertyPath: m_AnchorMin.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8170153791668043268, guid: 0d230cc8be529a542a08cb878ab14b18,
type: 3}
propertyPath: m_SizeDelta.x
value: 400
objectReference: {fileID: 0}
- target: {fileID: 8170153791668043268, guid: 0d230cc8be529a542a08cb878ab14b18,
type: 3}
propertyPath: m_SizeDelta.y
value: -600
objectReference: {fileID: 0}
- target: {fileID: 8170153791668043268, guid: 0d230cc8be529a542a08cb878ab14b18,
type: 3}
propertyPath: m_LocalScale.x
value: 1
objectReference: {fileID: 0}
- target: {fileID: 8170153791668043268, guid: 0d230cc8be529a542a08cb878ab14b18,
type: 3}
propertyPath: m_LocalScale.y
value: 1
objectReference: {fileID: 0}
- target: {fileID: 8170153791668043268, guid: 0d230cc8be529a542a08cb878ab14b18,
type: 3}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8170153791668043268, guid: 0d230cc8be529a542a08cb878ab14b18,
type: 3}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8170153791668043268, guid: 0d230cc8be529a542a08cb878ab14b18,
type: 3}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8170153791668043268, guid: 0d230cc8be529a542a08cb878ab14b18,
type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 8170153791668043268, guid: 0d230cc8be529a542a08cb878ab14b18,
type: 3}
propertyPath: m_LocalRotation.x
value: -0
objectReference: {fileID: 0}
- target: {fileID: 8170153791668043268, guid: 0d230cc8be529a542a08cb878ab14b18,
type: 3}
propertyPath: m_LocalRotation.y
value: -0
objectReference: {fileID: 0}
- target: {fileID: 8170153791668043268, guid: 0d230cc8be529a542a08cb878ab14b18,
type: 3}
propertyPath: m_LocalRotation.z
value: -0
objectReference: {fileID: 0}
- target: {fileID: 8170153791668043268, guid: 0d230cc8be529a542a08cb878ab14b18,
type: 3}
propertyPath: m_AnchoredPosition.x
value: -400
objectReference: {fileID: 0}
- target: {fileID: 8170153791668043268, guid: 0d230cc8be529a542a08cb878ab14b18,
type: 3}
propertyPath: m_AnchoredPosition.y
value: 400
objectReference: {fileID: 0}
- target: {fileID: 8170153791668043268, guid: 0d230cc8be529a542a08cb878ab14b18,
type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8170153791668043268, guid: 0d230cc8be529a542a08cb878ab14b18,
type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8170153791668043268, guid: 0d230cc8be529a542a08cb878ab14b18,
type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8170153791668043269, guid: 0d230cc8be529a542a08cb878ab14b18,
type: 3}
propertyPath: m_Name
value: PlaceJoystic
objectReference: {fileID: 0}
- target: {fileID: 8170153791961219456, guid: 0d230cc8be529a542a08cb878ab14b18,
type: 3}
propertyPath: m_SizeDelta.x
value: 180
objectReference: {fileID: 0}
- target: {fileID: 8170153791961219456, guid: 0d230cc8be529a542a08cb878ab14b18,
type: 3}
propertyPath: m_SizeDelta.y
value: 180
objectReference: {fileID: 0}
- target: {fileID: 8170153791961219459, guid: 0d230cc8be529a542a08cb878ab14b18,
type: 3}
propertyPath: m_Sprite
value:
objectReference: {fileID: 21300000, guid: 271a63d73be51f64dbf31b6b20b0fcb2,
type: 3}
- target: {fileID: 8170153792821263252, guid: 0d230cc8be529a542a08cb878ab14b18,
type: 3}
propertyPath: m_Sprite
value:
objectReference: {fileID: 21300000, guid: 2f51e0c9d4b837c419aab13bd3a5a8c9,
type: 3}
- target: {fileID: 8170153792821263258, guid: 0d230cc8be529a542a08cb878ab14b18,
type: 3}
propertyPath: m_SizeDelta.x
value: 512
objectReference: {fileID: 0}
- target: {fileID: 8170153792821263258, guid: 0d230cc8be529a542a08cb878ab14b18,
type: 3}
propertyPath: m_SizeDelta.y
value: 512
objectReference: {fileID: 0}
- target: {fileID: 8170153792821263258, guid: 0d230cc8be529a542a08cb878ab14b18,
type: 3}
propertyPath: m_AnchoredPosition.x
value: 222
objectReference: {fileID: 0}
- target: {fileID: 8170153792821263258, guid: 0d230cc8be529a542a08cb878ab14b18,
type: 3}
propertyPath: m_AnchoredPosition.y
value: 140
objectReference: {fileID: 0}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 0d230cc8be529a542a08cb878ab14b18, type: 3}
--- !u!224 &5909765210375931188 stripped
RectTransform:
m_CorrespondingSourceObject: {fileID: 8170153791668043268, guid: 0d230cc8be529a542a08cb878ab14b18,
type: 3}
m_PrefabInstance: {fileID: 2549463672493996848}
m_PrefabAsset: {fileID: 0}
--- !u!114 &5909765210375931185 stripped
MonoBehaviour:
m_CorrespondingSourceObject: {fileID: 8170153791668043265, guid: 0d230cc8be529a542a08cb878ab14b18,
type: 3}
m_PrefabInstance: {fileID: 2549463672493996848}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 7a47f546fc70ec8428172694e78e4288, type: 3}
m_Name:
m_EditorClassIdentifier:

View File

@ -0,0 +1,179 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &1967491301176557388
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 5757677100394197073}
- component: {fileID: 5200306858852700959}
- component: {fileID: 5828887965330480077}
- component: {fileID: 5815360006936303551}
- component: {fileID: 1527356263590969195}
m_Layer: 5
m_Name: InventoryCanas
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &5757677100394197073
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1967491301176557388}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 0, y: 0, z: 0}
m_Children:
- {fileID: 2902167093541798520}
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: 0, y: 0}
m_Pivot: {x: 0, y: 0}
--- !u!223 &5200306858852700959
Canvas:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1967491301176557388}
m_Enabled: 1
serializedVersion: 3
m_RenderMode: 0
m_Camera: {fileID: 0}
m_PlaneDistance: 100
m_PixelPerfect: 0
m_ReceivesEvents: 1
m_OverrideSorting: 0
m_OverridePixelPerfect: 0
m_SortingBucketNormalizedSize: 0
m_AdditionalShaderChannelsFlag: 0
m_SortingLayerID: 0
m_SortingOrder: 0
m_TargetDisplay: 0
--- !u!114 &5828887965330480077
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1967491301176557388}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3}
m_Name:
m_EditorClassIdentifier:
m_UiScaleMode: 1
m_ReferencePixelsPerUnit: 100
m_ScaleFactor: 1
m_ReferenceResolution: {x: 1080, y: 1920}
m_ScreenMatchMode: 0
m_MatchWidthOrHeight: 0
m_PhysicalUnit: 3
m_FallbackScreenDPI: 96
m_DefaultSpriteDPI: 96
m_DynamicPixelsPerUnit: 1
m_PresetInfoIsWorld: 0
--- !u!114 &5815360006936303551
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1967491301176557388}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3}
m_Name:
m_EditorClassIdentifier:
m_IgnoreReversedGraphics: 1
m_BlockingObjects: 0
m_BlockingMask:
serializedVersion: 2
m_Bits: 4294967295
--- !u!114 &1527356263590969195
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1967491301176557388}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: e0b3f756d0c46044ca44448fe3582300, type: 3}
m_Name:
m_EditorClassIdentifier:
item: {fileID: 4221355843481402267, guid: da3203b630d1ce446b635338ac488223, type: 3}
grid: {fileID: 2902167093541798523}
--- !u!1 &2902167093541798523
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 2902167093541798520}
- component: {fileID: 2902167093541798521}
m_Layer: 5
m_Name: ItemGroup
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &2902167093541798520
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2902167093541798523}
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: 5757677100394197073}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 0}
m_AnchoredPosition: {x: 0, y: 231}
m_SizeDelta: {x: 0, y: 228.46094}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &2902167093541798521
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2902167093541798523}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Padding:
m_Left: 0
m_Right: 0
m_Top: 0
m_Bottom: 0
m_ChildAlignment: 4
m_Spacing: -180
m_ChildForceExpandWidth: 1
m_ChildForceExpandHeight: 1
m_ChildControlWidth: 0
m_ChildControlHeight: 0
m_ChildScaleWidth: 0
m_ChildScaleHeight: 0
m_ReverseArrangement: 0

View File

@ -1,6 +1,6 @@
fileFormatVersion: 2
guid: 9d1635b49ffb40046b1a26c6b196047e
DefaultImporter:
guid: ff3bc3b17ddefd14eb798b22cf0a854f
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:

View File

@ -0,0 +1,198 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &4221355843481402267
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 4221355843481402266}
- component: {fileID: 4221355843481402340}
- component: {fileID: 4221355843481402341}
m_Layer: 5
m_Name: ItemView
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &4221355843481402266
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4221355843481402267}
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: 4221355844459984379}
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: 405, y: 422}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &4221355843481402340
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4221355843481402267}
m_CullTransparentMesh: 1
--- !u!114 &4221355843481402341
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4221355843481402267}
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: 21300000, guid: c965160d8643b4ceb8a96e344d4fe2ff, type: 3}
m_Type: 0
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!1 &4221355844459984376
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 4221355844459984379}
- component: {fileID: 4221355844459984324}
- component: {fileID: 4221355844459984325}
- component: {fileID: 4221355844459984378}
m_Layer: 5
m_Name: Item
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &4221355844459984379
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4221355844459984376}
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: 4221355843481402266}
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: 208, y: 208}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &4221355844459984324
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4221355844459984376}
m_CullTransparentMesh: 1
--- !u!114 &4221355844459984325
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4221355844459984376}
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: 21300000, guid: caf8bc0311dd2fc4ca1528a82a063754, type: 3}
m_Type: 0
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 &4221355844459984378
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4221355844459984376}
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: 4221355844459984325}
m_OnClick:
m_PersistentCalls:
m_Calls: []

View File

@ -1,6 +1,6 @@
fileFormatVersion: 2
guid: 1923084fad99ff6459f09921ae54c76a
DefaultImporter:
guid: da3203b630d1ce446b635338ac488223
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 84d861162f8d1ad49a87400ae042a3c6
guid: 89412f229cb2738409fadd58645601f8
folderAsset: yes
DefaultImporter:
externalObjects: {}

View File

@ -0,0 +1,126 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &4774919592469818776
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 5262522953580885794}
- component: {fileID: 9126517344989362311}
- component: {fileID: 6432002706622696525}
- component: {fileID: 8015579614070857994}
- component: {fileID: 5879628246065515362}
m_Layer: 0
m_Name: Tower
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &5262522953580885794
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4774919592469818776}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: -0, y: 0, z: 0}
m_LocalScale: {x: 0.3, y: 0.3, z: 0.3}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!33 &9126517344989362311
MeshFilter:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4774919592469818776}
m_Mesh: {fileID: 688505742851261164, guid: a6c1d0254e365a4489cf81b74d608b43, type: 3}
--- !u!23 &6432002706622696525
MeshRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4774919592469818776}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_RayTracingMode: 2
m_RayTraceProcedural: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- {fileID: 2100000, guid: 8720b7cac4364f14f961a3b6968c9beb, type: 2}
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: 3
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
m_AdditionalVertexStreams: {fileID: 0}
--- !u!114 &8015579614070857994
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4774919592469818776}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 5db196e1099b97246bde07a348189567, type: 3}
m_Name:
m_EditorClassIdentifier:
_weapon:
name: Tower
icon: {fileID: 4774919592469818776}
objectToThrow: {fileID: 4746165193704193263, guid: 4e7523811a052fd46acf941fc69c8c98,
type: 3}
VFXGameObject: {fileID: 2957420090356197408, guid: 5d1244f7b80cadd428a70173a01ce889,
type: 3}
manaCost: 0
damage: 10
speed: 10
disnatce: 10
reloadTime: 3
shots: 3
shotSound: {fileID: 8300000, guid: 9ea918c6c23577f4e885a8490d2f2046, type: 3}
hitSound: {fileID: 8300000, guid: 6c42231c18643dc4d9d8f8d15bc4735b, type: 3}
--- !u!136 &5879628246065515362
CapsuleCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4774919592469818776}
m_Material: {fileID: 0}
m_IsTrigger: 0
m_Enabled: 1
m_Radius: 31.906784
m_Height: 63.813572
m_Direction: 1
m_Center: {x: 0, y: 0, z: 0}

View File

@ -1,7 +1,6 @@
fileFormatVersion: 2
guid: 02c5b57c6632922478f72d4aefe978d7
folderAsset: yes
DefaultImporter:
guid: 0dbed8f974ba44a42af9d8fcae504ce0
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:

View File

@ -121,6 +121,81 @@ MonoBehaviour:
m_OnClick:
m_PersistentCalls:
m_Calls: []
--- !u!1 &494039357925796623
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 5782008322300722714}
- component: {fileID: 1469258782187354179}
- component: {fileID: 5578408981454814256}
m_Layer: 5
m_Name: Back
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &5782008322300722714
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 494039357925796623}
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: 7535381195931813741}
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: -300, y: -1900}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &1469258782187354179
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 494039357925796623}
m_CullTransparentMesh: 1
--- !u!114 &5578408981454814256
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 494039357925796623}
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: 21300000, guid: d60ccf0feab112a4baa66853572c90ad, type: 3}
m_Type: 0
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!1 &4091650501197087819
GameObject:
m_ObjectHideFlags: 0
@ -1011,81 +1086,6 @@ MonoBehaviour:
m_hasFontAssetChanged: 0
m_baseMaterial: {fileID: 0}
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
--- !u!1 &5443873379656075396
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 5855551985023584753}
- component: {fileID: 3505714345849204007}
- component: {fileID: 6130419704230661871}
m_Layer: 5
m_Name: Back
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &5855551985023584753
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5443873379656075396}
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: 7535381195931813741}
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: 0, y: 1670}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &3505714345849204007
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5443873379656075396}
m_CullTransparentMesh: 1
--- !u!114 &6130419704230661871
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5443873379656075396}
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, g: 0, b: 0, a: 0.14117648}
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: 0}
m_Type: 0
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!1 &6038652171774885714
GameObject:
m_ObjectHideFlags: 0
@ -1115,7 +1115,7 @@ RectTransform:
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children:
- {fileID: 5855551985023584753}
- {fileID: 5782008322300722714}
- {fileID: 5093098141183363274}
- {fileID: 5296751824509684347}
- {fileID: 5296751824694007057}
@ -1123,10 +1123,10 @@ RectTransform:
m_Father: {fileID: 5296751824488078437}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0.5}
m_AnchorMax: {x: 1, y: 0.5}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 250}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &4147596718370382769
CanvasRenderer:
@ -1149,14 +1149,14 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_Color: {r: 0, g: 0, b: 0, a: 0.14901961}
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: 21300000, guid: d60ccf0feab112a4baa66853572c90ad, type: 3}
m_Sprite: {fileID: 0}
m_Type: 0
m_PreserveAspect: 0
m_FillCenter: 1

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:37ff580b2ac54350270f8fdd11d105d68b35b02b990899ad64863f566bed2e4d
size 182837

View File

@ -0,0 +1,102 @@
fileFormatVersion: 2
guid: a6c1d0254e365a4489cf81b74d608b43
ModelImporter:
serializedVersion: 20200
internalIDToNameTable: []
externalObjects: {}
materials:
materialImportMode: 2
materialName: 0
materialSearch: 1
materialLocation: 1
animations:
legacyGenerateAnimations: 4
bakeSimulation: 0
resampleCurves: 1
optimizeGameObjects: 0
motionNodeName:
rigImportErrors:
rigImportWarnings:
animationImportErrors:
animationImportWarnings:
animationRetargetingWarnings:
animationDoRetargetingWarnings: 0
importAnimatedCustomProperties: 0
importConstraints: 0
animationCompression: 1
animationRotationError: 0.5
animationPositionError: 0.5
animationScaleError: 0.5
animationWrapMode: 0
extraExposedTransformPaths: []
extraUserProperties: []
clipAnimations: []
isReadable: 0
meshes:
lODScreenPercentages: []
globalScale: 1
meshCompression: 0
addColliders: 0
useSRGBMaterialColor: 1
sortHierarchyByName: 1
importVisibility: 1
importBlendShapes: 1
importCameras: 1
importLights: 1
fileIdsGeneration: 2
swapUVChannels: 0
generateSecondaryUV: 0
useFileUnits: 1
keepQuads: 0
weldVertices: 1
bakeAxisConversion: 0
preserveHierarchy: 0
skinWeightsMode: 0
maxBonesPerVertex: 4
minBoneWeight: 0.001
meshOptimizationFlags: -1
indexFormat: 0
secondaryUVAngleDistortion: 8
secondaryUVAreaDistortion: 15.000001
secondaryUVHardAngle: 88
secondaryUVMarginMethod: 1
secondaryUVMinLightmapResolution: 40
secondaryUVMinObjectScale: 1
secondaryUVPackMargin: 4
useFileScale: 1
tangentSpace:
normalSmoothAngle: 60
normalImportMode: 0
tangentImportMode: 3
normalCalculationMode: 4
legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0
blendShapeNormalImportMode: 1
normalSmoothingSource: 0
referencedClips: []
importAnimation: 1
humanDescription:
serializedVersion: 3
human: []
skeleton: []
armTwist: 0.5
foreArmTwist: 0.5
upperLegTwist: 0.5
legTwist: 0.5
armStretch: 0.05
legStretch: 0.05
feetSpacing: 0
globalScale: 1
rootMotionBoneName:
hasTranslationDoF: 0
hasExtraRoot: 0
skeletonHasParents: 1
lastHumanDescriptionAvatarSource: {instanceID: 0}
autoGenerateAvatarMappingIfUnspecified: 1
animationType: 2
humanoidOversampling: 1
avatarSetup: 0
addHumanoidExtraRootOnlyWhenUsingAvatar: 1
additionalBone: 0
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 130 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.1 KiB

After

Width:  |  Height:  |  Size: 129 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 130 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 130 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 129 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 39 KiB

After

Width:  |  Height:  |  Size: 130 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 235 KiB

After

Width:  |  Height:  |  Size: 131 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.6 KiB

After

Width:  |  Height:  |  Size: 129 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 232 KiB

After

Width:  |  Height:  |  Size: 131 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.2 KiB

After

Width:  |  Height:  |  Size: 129 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.3 KiB

After

Width:  |  Height:  |  Size: 129 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.6 KiB

After

Width:  |  Height:  |  Size: 129 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.5 KiB

After

Width:  |  Height:  |  Size: 129 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.0 KiB

After

Width:  |  Height:  |  Size: 129 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.8 KiB

After

Width:  |  Height:  |  Size: 129 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.2 KiB

After

Width:  |  Height:  |  Size: 129 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.1 KiB

After

Width:  |  Height:  |  Size: 129 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.3 KiB

After

Width:  |  Height:  |  Size: 129 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 27 KiB

After

Width:  |  Height:  |  Size: 130 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.6 KiB

After

Width:  |  Height:  |  Size: 129 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.3 KiB

After

Width:  |  Height:  |  Size: 129 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.9 KiB

After

Width:  |  Height:  |  Size: 129 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.6 KiB

After

Width:  |  Height:  |  Size: 129 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 39 KiB

After

Width:  |  Height:  |  Size: 130 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 130 B

View File

@ -12,5 +12,5 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 83b1020f31bf45569f5af6c77fc77d4e, type: 3}
m_Name: CameraData
m_EditorClassIdentifier:
offset: {x: 0, y: 25, z: -10}
offset: {x: 0, y: 20, z: -10}
smoothSpeed: 2

View File

@ -18,4 +18,5 @@ MonoBehaviour:
weaponDataPath: WeaponsData
uiDataPath: UIData
musicDataPath: MusicData
itemDataPath: ItemData
chosenWeaponDataPath: ChosenWeapon.json

View File

@ -14,8 +14,6 @@ MonoBehaviour:
m_EditorClassIdentifier:
width: 25
height: 50
defaultColor: {r: 1, g: 1, b: 1, a: 1}
touchedColor: {r: 1, g: 0, b: 1, a: 1}
hexCaptureManaCost: 10
cellPrefab: {fileID: 1661242500252451528, guid: bcea5b4a96735bd4b936f8f3fefcc688,
type: 3}
@ -23,24 +21,28 @@ MonoBehaviour:
type: 3}
CoordinatesCanvas: {fileID: 4726489279989878083, guid: f31e0880dd078104bb31dc0fd7ef9f19,
type: 3}
DefaultTexture: {fileID: 2800000, guid: 983242f4b4db7a841af48234cf0021b8, type: 3}
colors:
- _unitColor: 2
_texture: {fileID: 2800000, guid: 983242f4b4db7a841af48234cf0021b8, type: 3}
_vfxPrefab: {fileID: 0}
_buildinTexture: {fileID: 0}
- _unitColor: 0
_texture: {fileID: 2800000, guid: 0298dfcb0756f534a9a125d510461c7a, type: 3}
_vfxPrefab: {fileID: 8021195855904498788, guid: 2f6d0540c8fd7bb46b356ff86962379c,
type: 3}
_buildinTexture: {fileID: 2800000, guid: 0298dfcb0756f534a9a125d510461c7a, type: 3}
- _unitColor: 1
_texture: {fileID: 2800000, guid: 3b75368df991b164583e8cede390e24e, type: 3}
_vfxPrefab: {fileID: 442387583353148024, guid: 53959bc898e9a644daad0282881d596a,
type: 3}
_buildinTexture: {fileID: 2800000, guid: 3b75368df991b164583e8cede390e24e, type: 3}
- _unitColor: 3
_texture: {fileID: 2800000, guid: 1a76a79d5a83143479c76f4f37c4b896, type: 3}
_vfxPrefab: {fileID: 5732852186060375560, guid: 54d847a18c62f57479c53469d4398ceb,
type: 3}
_buildinTexture: {fileID: 2800000, guid: 1a76a79d5a83143479c76f4f37c4b896, type: 3}
- _unitColor: 4
_texture: {fileID: 2800000, guid: 779719648deedb4478ddebb3b81751ef, type: 3}
_vfxPrefab: {fileID: 1651852338557341938, guid: fa6c1fc3da7c8d24c85a88b00cf598d4,
type: 3}
_buildinTexture: {fileID: 2800000, guid: 779719648deedb4478ddebb3b81751ef, type: 3}

View File

@ -0,0 +1,38 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: effbc11b6ae8444c8d20e929ce28183e, type: 3}
m_Name: ItemData
m_EditorClassIdentifier:
itemInfos:
- prefab: {fileID: 919132149155446097, guid: 4166c606d638610418dc9ead794d697b, type: 3}
isInstantUse: 0
type: Tower
icon: {fileID: 21300000, guid: 543c4732bd2d47a41bdbbf2156eb358c, type: 3}
spawnablePrefab: {fileID: 4774919592469818776, guid: 0dbed8f974ba44a42af9d8fcae504ce0,
type: 3}
values:
- prefab: {fileID: 3197816592181874056, guid: 2704c4f795b0d7748a3e3fa53be4d893,
type: 3}
isInstantUse: 1
type: AttackBonus
icon: {fileID: 21300000, guid: caf8bc0311dd2fc4ca1528a82a063754, type: 3}
spawnablePrefab: {fileID: 0}
values: 030000000f000000
- prefab: {fileID: 8639522512577941448, guid: 7b6a7f64e52da514d88aa97ad8f863df,
type: 3}
isInstantUse: 1
type: DefenceBonus
icon: {fileID: 21300000, guid: 35be128594dcdce48b5d8e5317b38ed9, type: 3}
spawnablePrefab: {fileID: 0}
values: 0a0000001e000000
fromTimeSpawn: 3
toTimeSpawn: 10

View File

@ -1,8 +1,8 @@
fileFormatVersion: 2
guid: d025c6b2800003849830ede3e207eb4a
folderAsset: yes
DefaultImporter:
guid: 61b36bbea9deaf3429a93f65e1bdb53e
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@ -15,5 +15,3 @@ MonoBehaviour:
levels:
- sceneName: Level 1
levelSprite: {fileID: 21300000, guid: 8bc240b354e7722408178bdcb1bf7b56, type: 3}
- sceneName: Level 2
levelSprite: {fileID: 21300000, guid: 426478b073313244bbe84d3ec1cafa64, type: 3}

View File

@ -17,3 +17,5 @@ MonoBehaviour:
- {fileID: 5296751824488078361, guid: 7305318dc10267546b643a42c7c21af3, type: 3}
joystickView: {fileID: 4385872142190176059, guid: 4df6913b39f4979429158c344680d83f,
type: 3}
inventoryView: {fileID: 1527356263590969195, guid: ff3bc3b17ddefd14eb798b22cf0a854f,
type: 3}

View File

@ -23,6 +23,7 @@ MonoBehaviour:
manaRegen: 5
maxMana: 100
maxHP: 100
inventoryCapacity: 4
- isPlayer: 0
spawnPos:
x: 3
@ -33,6 +34,7 @@ MonoBehaviour:
manaRegen: 10
maxMana: 100
maxHP: 100
inventoryCapacity: 4
- isPlayer: 0
spawnPos:
x: 3
@ -43,3 +45,4 @@ MonoBehaviour:
manaRegen: 10
maxMana: 100
maxHP: 100
inventoryCapacity: 4

View File

@ -267,8 +267,8 @@ Camera:
near clip plane: 0.3
far clip plane: 1000
field of view: 60
orthographic: 0
orthographic size: 5
orthographic: 1
orthographic size: 12
m_Depth: -1
m_CullingMask:
serializedVersion: 2
@ -365,7 +365,7 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: ac42f823a8de86b4d8175e8025500660, type: 3}
m_Name:
m_EditorClassIdentifier:
duration: 3
duration: 1
--- !u!114 &1475618471
MonoBehaviour:
m_ObjectHideFlags: 0

View File

@ -1,301 +0,0 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!29 &1
OcclusionCullingSettings:
m_ObjectHideFlags: 0
serializedVersion: 2
m_OcclusionBakeSettings:
smallestOccluder: 5
smallestHole: 0.25
backfaceThreshold: 100
m_SceneGUID: 00000000000000000000000000000000
m_OcclusionCullingData: {fileID: 0}
--- !u!104 &2
RenderSettings:
m_ObjectHideFlags: 0
serializedVersion: 9
m_Fog: 0
m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
m_FogMode: 3
m_FogDensity: 0.01
m_LinearFogStart: 0
m_LinearFogEnd: 300
m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1}
m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1}
m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1}
m_AmbientIntensity: 1
m_AmbientMode: 0
m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1}
m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0}
m_HaloStrength: 0.5
m_FlareStrength: 1
m_FlareFadeSpeed: 3
m_HaloTexture: {fileID: 0}
m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0}
m_DefaultReflectionMode: 0
m_DefaultReflectionResolution: 128
m_ReflectionBounces: 1
m_ReflectionIntensity: 1
m_CustomReflection: {fileID: 0}
m_Sun: {fileID: 0}
m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1}
m_UseRadianceAmbientProbe: 0
--- !u!157 &3
LightmapSettings:
m_ObjectHideFlags: 0
serializedVersion: 12
m_GIWorkflowMode: 1
m_GISettings:
serializedVersion: 2
m_BounceScale: 1
m_IndirectOutputScale: 1
m_AlbedoBoost: 1
m_EnvironmentLightingMode: 0
m_EnableBakedLightmaps: 1
m_EnableRealtimeLightmaps: 0
m_LightmapEditorSettings:
serializedVersion: 12
m_Resolution: 2
m_BakeResolution: 40
m_AtlasSize: 1024
m_AO: 0
m_AOMaxDistance: 1
m_CompAOExponent: 1
m_CompAOExponentDirect: 0
m_ExtractAmbientOcclusion: 0
m_Padding: 2
m_LightmapParameters: {fileID: 0}
m_LightmapsBakeMode: 1
m_TextureCompression: 1
m_FinalGather: 0
m_FinalGatherFiltering: 1
m_FinalGatherRayCount: 256
m_ReflectionCompression: 2
m_MixedBakeMode: 2
m_BakeBackend: 1
m_PVRSampling: 1
m_PVRDirectSampleCount: 32
m_PVRSampleCount: 512
m_PVRBounces: 2
m_PVREnvironmentSampleCount: 256
m_PVREnvironmentReferencePointCount: 2048
m_PVRFilteringMode: 1
m_PVRDenoiserTypeDirect: 1
m_PVRDenoiserTypeIndirect: 1
m_PVRDenoiserTypeAO: 1
m_PVRFilterTypeDirect: 0
m_PVRFilterTypeIndirect: 0
m_PVRFilterTypeAO: 0
m_PVREnvironmentMIS: 1
m_PVRCulling: 1
m_PVRFilteringGaussRadiusDirect: 1
m_PVRFilteringGaussRadiusIndirect: 5
m_PVRFilteringGaussRadiusAO: 2
m_PVRFilteringAtrousPositionSigmaDirect: 0.5
m_PVRFilteringAtrousPositionSigmaIndirect: 2
m_PVRFilteringAtrousPositionSigmaAO: 1
m_ExportTrainingData: 0
m_TrainingDataDestination: TrainingData
m_LightProbeSampleCountMultiplier: 4
m_LightingDataAsset: {fileID: 0}
m_LightingSettings: {fileID: 0}
--- !u!196 &4
NavMeshSettings:
serializedVersion: 2
m_ObjectHideFlags: 0
m_BuildSettings:
serializedVersion: 2
agentTypeID: 0
agentRadius: 0.5
agentHeight: 2
agentSlope: 45
agentClimb: 0.4
ledgeDropHeight: 0
maxJumpAcrossDistance: 0
minRegionArea: 2
manualCellSize: 0
cellSize: 0.16666667
manualTileSize: 0
tileSize: 256
accuratePlacement: 0
maxJobWorkers: 0
preserveTilesOutsideBounds: 0
debug:
m_Flags: 0
m_NavMeshData: {fileID: 0}
--- !u!1 &10396146
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 10396148}
- component: {fileID: 10396147}
m_Layer: 0
m_Name: Directional Light
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!108 &10396147
Light:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 10396146}
m_Enabled: 1
serializedVersion: 10
m_Type: 1
m_Shape: 0
m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1}
m_Intensity: 1
m_Range: 10
m_SpotAngle: 30
m_InnerSpotAngle: 21.80208
m_CookieSize: 10
m_Shadows:
m_Type: 2
m_Resolution: -1
m_CustomResolution: -1
m_Strength: 1
m_Bias: 0.05
m_NormalBias: 0.4
m_NearPlane: 0.2
m_CullingMatrixOverride:
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_UseCullingMatrixOverride: 0
m_Cookie: {fileID: 0}
m_DrawHalo: 0
m_Flare: {fileID: 0}
m_RenderMode: 0
m_CullingMask:
serializedVersion: 2
m_Bits: 4294967295
m_RenderingLayerMask: 1
m_Lightmapping: 4
m_LightShadowCasterMode: 0
m_AreaSize: {x: 1, y: 1}
m_BounceIntensity: 1
m_ColorTemperature: 6570
m_UseColorTemperature: 0
m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0}
m_UseBoundingSphereOverride: 0
m_UseViewFrustumForShadowCasterCull: 1
m_ShadowRadius: 0
m_ShadowAngle: 0
--- !u!4 &10396148
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 10396146}
m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261}
m_LocalPosition: {x: 0, y: 3, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0}
--- !u!1 &830688629
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 830688632}
- component: {fileID: 830688631}
- component: {fileID: 830688630}
m_Layer: 0
m_Name: Main Camera
m_TagString: MainCamera
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!81 &830688630
AudioListener:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 830688629}
m_Enabled: 1
--- !u!20 &830688631
Camera:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 830688629}
m_Enabled: 1
serializedVersion: 2
m_ClearFlags: 1
m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0}
m_projectionMatrixMode: 1
m_GateFitMode: 2
m_FOVAxisMode: 0
m_SensorSize: {x: 36, y: 24}
m_LensShift: {x: 0, y: 0}
m_FocalLength: 50
m_NormalizedViewPortRect:
serializedVersion: 2
x: 0
y: 0
width: 1
height: 1
near clip plane: 0.3
far clip plane: 1000
field of view: 60
orthographic: 0
orthographic size: 5
m_Depth: -1
m_CullingMask:
serializedVersion: 2
m_Bits: 4294967295
m_RenderingPath: -1
m_TargetTexture: {fileID: 0}
m_TargetDisplay: 0
m_TargetEye: 3
m_HDR: 1
m_AllowMSAA: 1
m_AllowDynamicResolution: 0
m_ForceIntoRT: 0
m_OcclusionCulling: 1
m_StereoConvergence: 10
m_StereoSeparation: 0.022
--- !u!4 &830688632
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 830688629}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 1, z: -10}
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}

File diff suppressed because it is too large Load Diff

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: b2a550cf451c138468d4a907dfdd270e
guid: 9d1635b49ffb40046b1a26c6b196047e
DefaultImporter:
externalObjects: {}
userData:

File diff suppressed because it is too large Load Diff

View File

@ -1,13 +1,17 @@
using System.Collections.Generic;
using System;
using System.Collections.Generic;
using System.Timers;
using CamControl;
using Chars;
using Data;
using DefaultNamespace;
using GameUI;
using HexFiled;
using Items;
using Units;
using UnityEngine;
using Weapons;
using Object = UnityEngine.Object;
using Random = UnityEngine.Random;
namespace Controller
{
@ -15,14 +19,20 @@ namespace Controller
{
public GameInit(Controllers controllers, Data.Data data)
{
new GameObject("Timer").AddComponent<TimerHelper>();
var hexGrid = new HexGrid(data.FieldData);
new MusicController();
MusicController.Instance.SetMusicData(data.MusicData);
controllers.Add(hexGrid);
UIController uiController = new UIController(data.UIData);
uiController.Spawn(); //TODO при паузе
ItemFabric itemFabric = new ItemFabric(data.ItemsData, SetUpItems());
controllers.Add(itemFabric);
UIController uiController = new UIController(data.UIData);
uiController.Spawn(); //TODO при паузе Dotween ругается
Unit player;
List<Unit> units = new List<Unit>();
data.UnitData.Units.ForEach(unit =>
@ -30,7 +40,8 @@ namespace Controller
if (unit.isPlayer)
{
player = new Unit(unit, JsonUtility.FromJson<Weapon>(data.ChosenWeapon), hexGrid);
PlayerControl playerControl = new PlayerControl(player, uiController.PlayerControlView);
PlayerControl playerControl = new PlayerControl(player, uiController.PlayerControlView,
uiController.PlayerInventoryView);
controllers.Add(playerControl);
CameraControl cameraControl =
new CameraControl(Camera.main, data.CameraData);
@ -41,7 +52,8 @@ namespace Controller
}
else
{
var enemy = new Unit(unit, data.WeaponsData.WeaponsList[Random.Range(0,data.WeaponsData.WeaponsList.Count - 1)], hexGrid);
var enemy = new Unit(unit,
data.WeaponsData.WeaponsList[Random.Range(0, data.WeaponsData.WeaponsList.Count - 1)], hexGrid);
var enemyController = new EnemyController(unit, enemy);
controllers.Add(enemyController);
units.Add(enemy);
@ -56,8 +68,12 @@ namespace Controller
hexGrid.OnHexPainted += paintedController.SetHexColors;
hexGrid.OnHexPainted += itemFabric.UpdateCellToOpenList;
}
private List<Type> SetUpItems()
{
return new List<Type>() { typeof(Tower), typeof(AttackBonus), typeof(DefenceBonus) };
}
}
}

View File

@ -20,10 +20,25 @@ namespace Data
private UIData _uiData;
[SerializeField] private string musicDataPath;
private MusicData _musicData;
[SerializeField] private string itemDataPath;
private ItemsData _itemsData;
[SerializeField] private string chosenWeaponDataPath;
public string ChosenWeapon => File.ReadAllText(Application.persistentDataPath + "/" + chosenWeaponDataPath);
public ItemsData ItemsData
{
get
{
if (_itemsData == null)
{
_itemsData = Load<ItemsData>("Data/" + itemDataPath);
}
return _itemsData;
}
}
public MusicData MusicData
{
get

View File

@ -0,0 +1,43 @@
using System;
using System.Collections.Generic;
using System.IO;
using Items;
using UnityEngine;
namespace Data
{
[CreateAssetMenu(fileName = "ItemData", menuName = "Data/ItemData", order = 0)]
public class ItemsData : ScriptableObject
{
[SerializeField]
private List<ItemInfo> itemInfos;
[SerializeField] private float fromTimeSpawn;
[SerializeField] private float toTimeSpawn;
public List<ItemInfo> ItemInfos => itemInfos;
public (float from, float to) SpawnTime => (fromTimeSpawn, toTimeSpawn);
}
[Serializable]
public struct ItemInfo
{
[SerializeField] private GameObject prefab;
[SerializeField] private bool isInstantUse;
[SerializeField] private string type;
[SerializeField] private Sprite icon;
[SerializeField] private GameObject spawnablePrefab;
[SerializeField] private int[] values;
[SerializeField][Range(0,1)] private float spawnChance;
public GameObject Prefab => prefab;
public string Type => type;
public Sprite Icon => icon;
public GameObject SpawnablePrefab => spawnablePrefab;
public bool IsInstanceUse => isInstantUse;
public int[] Values => values;
public float SpawnChance => spawnChance;
}
}

View File

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: effbc11b6ae8444c8d20e929ce28183e
timeCreated: 1641238823

View File

@ -9,9 +9,10 @@ namespace Data
{
[SerializeField] private List<GameObject> _objectsToSpawn;
[SerializeField] private PlayerControlView joystickView;
[SerializeField] private PlayerInventoryView inventoryView;
public List<GameObject> ObjectsToSpawn => _objectsToSpawn;
public PlayerControlView PlayerControlView => joystickView;
public PlayerInventoryView InventoryView => inventoryView;
}
}

View File

@ -24,5 +24,6 @@ namespace Data
public int manaRegen;
public int maxMana;
public int maxHP;
public int inventoryCapacity;
}
}

View File

@ -0,0 +1,50 @@
using System;
using HexFiled;
using UnityEngine;
namespace DefaultNamespace
{
public static class DirectionHelper
{
public static Vector3 DirectionTo(Vector3 a, Vector3 b)
{
return (b - a).normalized;
}
public static HexDirection VectorToDirection(Vector2 dir)
{
if (dir.x >= 0 && dir.y <= 1 && dir.x <= 1 && dir.y >= 0.5)
{
return HexDirection.NE;
}
if (Math.Abs(dir.x - 1f) < 0.2 && dir.y <= 0.5 && dir.y >= -0.5)
{
return HexDirection.E;
}
if (dir.x <= 1 && dir.y <= -0.5 && dir.x >= 0 && dir.y >= -1)
{
return HexDirection.SE;
}
if (dir.x <= 0 && dir.y >= -1 && dir.x >= -1 && dir.y <= -0.5)
{
return HexDirection.SW;
}
if (Math.Abs(dir.x - (-1f)) < 0.2 && dir.y >= -0.5 && dir.y <= 0.5)
{
return HexDirection.W;
}
if (dir.x >= -1 && dir.y >= 0.5 && dir.x <= 0 && dir.y <= 1)
{
return HexDirection.NW;
}
return HexDirection.W;
}
}
}

View File

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: fc19bb5576de42c89aa7aae62e2c3552
timeCreated: 1641323470

View File

@ -32,12 +32,14 @@ public class GameMenuView : MonoBehaviour
private void ShowMenu()
{
DOTween.PauseAll();
menu.SetActive(true);
Time.timeScale = 0f;
}
private void HideMenu()
{
DOTween.PlayAll();
Time.timeScale = 1f;
menu.SetActive(false);
}

View File

@ -0,0 +1,68 @@
using System;
using System.Collections;
using System.Collections.Generic;
using Items;
using UnityEngine;
using UnityEngine.UI;
public class PlayerInventoryView : MonoBehaviour
{
[SerializeField] private GameObject item;
[SerializeField] private GameObject grid;
public Action<Item> OnItemInvoked;
private List<Button> _buttons;
private Queue<Button> _freeButtons;
private Dictionary<Item, Button> _dictionary;
public void SetUpUI(int inventoryCapacity)
{
_buttons = new List<Button>();
_dictionary = new Dictionary<Item, Button>();
_freeButtons = new Queue<Button>();
for (int i = 0; i < inventoryCapacity; i++)
{
var itemGo = Instantiate(item, grid.transform);
var button = itemGo.GetComponentInChildren<Button>();
_buttons.Add(button);
button.gameObject.SetActive(false);
}
_buttons.ForEach(button => _freeButtons.Enqueue(button));
}
private void SwitchButton(Item item)
{
var button = _dictionary[item];
_dictionary.Remove(item);
button.gameObject.SetActive(false);
_freeButtons.Enqueue(button);
}
public void PickUpItem(Item item)
{
var button = _freeButtons.Dequeue();
_dictionary.Add(item, button);
button.gameObject.SetActive(true);
button.image.sprite = item.Icon;
button.onClick.AddListener(() =>
{
if (item.IsInstantUse)
{
item.InstanceInvoke();
_freeButtons.Enqueue(button);
button.gameObject.SetActive(false);
}
else
{
item.Invoke(SwitchButton);
OnItemInvoked?.Invoke(item);
}
});
}
}

View File

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

View File

@ -9,8 +9,10 @@ namespace GameUI
{
private readonly UIData _uiData;
private PlayerControlView _playerControlView;
private PlayerInventoryView _inventoryView;
public PlayerControlView PlayerControlView => _playerControlView;
public PlayerInventoryView PlayerInventoryView => _inventoryView;
public UIController(UIData uiData)
{
@ -22,8 +24,9 @@ namespace GameUI
var canvasGroup = new GameObject("CanvasGroup");
canvasGroup.AddComponent<CanvasGroup>();
_playerControlView = Object.Instantiate(_uiData.PlayerControlView, canvasGroup.transform);
_inventoryView = Object.Instantiate(_uiData.InventoryView, canvasGroup.transform);
_uiData.ObjectsToSpawn.ForEach(x => Object.Instantiate(x, canvasGroup.transform));
_uiData.ObjectsToSpawn.ForEach(x => Object.Instantiate(x, canvasGroup.transform));
}
}
}

View File

@ -9,10 +9,14 @@ namespace HexFiled
[SerializeField] private UnitColor _unitColor;
[SerializeField] private Texture _texture;
[SerializeField] private GameObject _vfxPrefab;
[SerializeField] private Texture _buildinTexture;
public UnitColor UnitColor => _unitColor;
public Texture Texture => _texture;
public Texture BuildingTexture => _buildinTexture;
public GameObject VFXPrefab => _vfxPrefab;
public bool Equals(CellColor obj)
{

View File

@ -1,6 +1,7 @@
using System;
using System.Collections.Generic;
using System.Linq;
using Items;
using UnityEngine;
using Random = UnityEngine.Random;
@ -12,12 +13,14 @@ namespace HexFiled
public Action<HexCell> onHexPainted;
[SerializeField] private HexCell[] neighbors;
private Item _item;
private UnitColor _color;
private MeshRenderer _renderer;
private Dictionary<UnitColor, CellColor> _cellColor;
public UnitColor Color => _color;
public Item Item => _item;
private void Awake()
{
_renderer = GetComponent<MeshRenderer>();
@ -25,14 +28,17 @@ namespace HexFiled
_color = UnitColor.GREY;
}
public void SetItem(Item item)
{
_item = item == _item ? null : item;
}
public List<HexCell> GetListNeighbours()
{
return neighbors.ToList();
}
public void SetDictionary(Dictionary<UnitColor, CellColor> colors)
{
_cellColor = colors;
}
public HexCell GetNeighbor(HexDirection direction)
{
@ -50,17 +56,16 @@ namespace HexFiled
if (color == _color) return;
if (color == UnitColor.GREY)
{
_renderer.material.mainTexture = _cellColor[color].Texture;
_renderer.material.mainTexture = HexGrid.Colors[color].Texture;
_color = color;
return;
}
_renderer.material.mainTexture = _cellColor[color].Texture;
_color = color;
Instantiate(_cellColor[color].VFXPrefab, transform);
onHexPainted?.Invoke(this);
_renderer.material.mainTexture = HexGrid.Colors[color].Texture;
_color = color;
Instantiate(HexGrid.Colors[color].VFXPrefab, transform);
onHexPainted?.Invoke(this);
}
}
}

View File

@ -17,15 +17,17 @@ namespace HexFiled
private HexCell[] _cells;
private Canvas _gridCanvas;
private GameObject _baseGameObject;
private Dictionary<UnitColor, CellColor> _colors;
private float _hexDistance;
private static Dictionary<UnitColor, CellColor> _colors;
private static float _hexDistance;
private int _hexCaptureCost;
public float HexDistance => _hexDistance;
public static float HexDistance => _hexDistance;
public Action<HexCell> OnHexPainted;
public Action OnGridLoaded;
public int HexCaptureCost => _hexCaptureCost;
public static Dictionary<UnitColor, CellColor> Colors => _colors;
public HexGrid(FieldData fieldData)
{
_hexCaptureCost = fieldData.hexCaptureManaCost;
@ -63,7 +65,6 @@ namespace HexFiled
position.z = z * (HexMetrics.outerRadius * 1.5f);
var cellGO = Object.Instantiate(_cellPrefab);
HexCell cell = _cells[i] = cellGO.GetComponent<HexCell>();
cell.SetDictionary(_colors);
cell.PaintHex(UnitColor.GREY);
cell.transform.SetParent(_baseGameObject.transform, false);
cell.transform.localPosition = position;

View File

@ -1,4 +1,5 @@
using System.Collections.Generic;
using System.Linq;
using Data;
using UnityEngine;
@ -27,44 +28,28 @@ namespace HexFiled
var hexByColorDict = DifferentHexByColor(cells);
foreach (var item in hexByColorDict)
{
if (item.Value.Count > 0 && item.Key != UnitColor.GREY && item.Key != cell.Color)
{
foreach (var cellNeighbour in item.Value)
{
if (UnitCurrentCell.ContainsKey(item.Key))
{
var path = HasPath(cellNeighbour, UnitCurrentCell[item.Key].curent);
if (!path.hasPath)
{
path.field.ForEach(x => x.PaintHex(UnitColor.GREY));
}
}
}
}
if (item.Key == cell.Color && item.Value.Count >= 2 && item.Value.Count < 6 &&
UnitCurrentCell.ContainsKey(cell.Color))
UnitCurrentCell.ContainsKey(cell.Color))
{
HexDirection direction = new HexDirection();
HexDirection openDirection = new HexDirection();
HexDirection closeDirection = new HexDirection();
for (int i = 0; i < 6; i++)
{
var neighbour = UnitCurrentCell[cell.Color].previos.GetNeighbor((HexDirection)i);
if (neighbour == UnitCurrentCell[cell.Color].curent)
{
direction = (HexDirection)i;
}
}
openDirection = direction.PlusSixtyDeg();
closeDirection = direction.MinusSixtyDeg();
var path = HasPath(
var openDirection = direction.PlusSixtyDeg();
var closeDirection = direction.MinusSixtyDeg();
var path = Round(
UnitCurrentCell[cell.Color].previos.GetNeighbor(closeDirection),
UnitCurrentCell[cell.Color].previos.GetNeighbor(openDirection)
);
);
if (!path.hasPath)
{
@ -72,7 +57,7 @@ namespace HexFiled
}
else
{
path = HasPath(
path = Round(
UnitCurrentCell[cell.Color].previos.GetNeighbor(openDirection),
UnitCurrentCell[cell.Color].previos.GetNeighbor(closeDirection)
);
@ -82,9 +67,23 @@ namespace HexFiled
}
}
}
if (item.Value.Count > 0 && item.Key != UnitColor.GREY && item.Key != cell.Color)
{
foreach (var path in from cellNeighbour in item.Value
where UnitCurrentCell.ContainsKey(item.Key)
select HasPath(cellNeighbour, UnitCurrentCell[item.Key].curent)
into path
where !path.hasPath
select path)
{
path.field.ForEach(x => x.PaintHex(UnitColor.GREY));
}
}
}
}
private Dictionary<UnitColor, List<HexCell>> DifferentHexByColor(List<HexCell> cellsList)
{
Dictionary<UnitColor, List<HexCell>> resultDict = new Dictionary<UnitColor, List<HexCell>>();
@ -102,59 +101,40 @@ namespace HexFiled
return resultDict;
}
private ( bool hasPath, List<HexCell> field ) HasPath(HexCell start, HexCell end)
private (bool hasPath, List<HexCell> field) Round(HexCell start, HexCell end)
{
if (start.Color == _cell.Color || end.Color == _cell.Color)
{
return (true, null);
}
List<HexCell> closedList = new List<HexCell>();
HexCell currentCell = start;
Stack<HexCell> stackIteators = new Stack<HexCell>();
stackIteators.Push(currentCell);
Stack<HexCell> stackIterators = new Stack<HexCell>();
stackIterators.Push(currentCell);
closedList.Add(currentCell);
while (stackIteators.Count >= 0)
while (stackIterators.Count >= 0)
{
if (currentCell == end)
return (true, closedList);
List<HexCell> openList = new List<HexCell>();
if(end.Color != UnitColor.GREY)
foreach (var neighbour in currentCell.GetListNeighbours())
{
if (end.Color != start.Color)
if (neighbour == null)
{
return (true, null);
}
for (int i = 0; i < 6; i++)
{
HexCell neighbour = currentCell.GetNeighbor((HexDirection)i);
if (neighbour == null)
{
return (true, null);
}
if (!closedList.Contains(neighbour) && neighbour.Color == start.Color)
{
openList.Add(neighbour);
}
}
}
else
{
for (int i = 0; i < 6; i++)
if (closedList.Contains(neighbour) || neighbour.Color == _cell.Color) continue;
openList.Add(neighbour);
if (neighbour.GetListNeighbours().Contains(end))
{
HexCell neighbour = currentCell.GetNeighbor((HexDirection)i);
if (neighbour == null)
{
return (true, null);
}
if (!closedList.Contains(neighbour) &&
neighbour.Color != _cell.Color)
{
openList.Add(neighbour);
}
return (true, null);
}
}
@ -162,16 +142,81 @@ namespace HexFiled
{
currentCell = openList[Random.Range(0, openList.Count - 1)];
closedList.Add(currentCell);
stackIteators.Push(currentCell);
stackIterators.Push(currentCell);
}
else
{
if (stackIteators.Count == 0)
if (stackIterators.Count == 0)
{
return (false, closedList);
}
currentCell = stackIteators.Pop();
currentCell = stackIterators.Pop();
}
if (currentCell.GetListNeighbours().Contains(end))
{
return (true, null);
}
}
return (false, closedList);
}
private ( bool hasPath, List<HexCell> field ) HasPath(HexCell start, HexCell end)
{
if (start.Color == _cell.Color || end.Color == _cell.Color)
{
return (true, null);
}
List<HexCell> closedList = new List<HexCell>();
HexCell currentCell = start;
Stack<HexCell> stackIterators = new Stack<HexCell>();
stackIterators.Push(currentCell);
closedList.Add(currentCell);
while (stackIterators.Count >= 0)
{
if (currentCell == end)
return (true, null);
List<HexCell> openList = new List<HexCell>();
foreach (var neighbour in currentCell.GetListNeighbours())
{
if (neighbour == null)
{
return (true, null);
}
if (closedList.Contains(neighbour) || neighbour.Color != start.Color) continue;
openList.Add(neighbour);
if (neighbour.GetListNeighbours().Contains(end))
{
return (true, null);
}
}
if (openList.Count > 0)
{
currentCell = openList[Random.Range(0, openList.Count - 1)];
closedList.Add(currentCell);
stackIterators.Push(currentCell);
}
else
{
if (stackIterators.Count == 0)
{
return (false, closedList);
}
currentCell = stackIterators.Pop();
}
if (currentCell.GetListNeighbours().Contains(end))

View File

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 2ece86e08d3d4fbfb7c41139b60e7ae9
timeCreated: 1641238755

View File

@ -0,0 +1,28 @@
using System;
using Data;
using HexFiled;
namespace Items
{
public class AttackBonus : Item
{
public AttackBonus(ItemInfo data) : base(data)
{
}
public override void Invoke(Action<Item> item)
{
throw new NotImplementedException();
}
public override void InstanceInvoke()
{
Unit.SetAttackBonus(Data.Values[0], Data.Values[1]);
}
public override void PlaceItem(HexCell cell)
{
throw new NotImplementedException();
}
}
}

View File

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 2b016eba27de41629261b965b3e2be0c
timeCreated: 1641382290

View File

@ -0,0 +1,28 @@
using System;
using Data;
using HexFiled;
namespace Items
{
public class DefenceBonus : Item
{
public DefenceBonus(ItemInfo data) : base(data)
{
}
public override void Invoke(Action<Item> item)
{
throw new NotImplementedException();
}
public override void InstanceInvoke()
{
Unit.SetDefenceBonus(Data.Values[0], Data.Values[1]);
}
public override void PlaceItem(HexCell cell)
{
throw new NotImplementedException();
}
}
}

View File

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: c518da097b3645c491c6a4cc61b3d493
timeCreated: 1641382317

View File

@ -0,0 +1,40 @@
using System;
using Data;
using HexFiled;
using Units;
using UnityEngine;
using UnityEngine.UI;
using Object = UnityEngine.Object;
namespace Items
{
public abstract class Item
{
protected ItemInfo Data;
protected Unit Unit;
protected Action<Item> OnItemUsed;
public bool IsInstantUse => Data.IsInstanceUse;
public Sprite Icon => Data.Icon;
protected Item(ItemInfo data)
{
Data = data;
}
public void PickUp(Unit unit)
{
Unit = unit;
}
public GameObject Spawn(HexCell cell)
{
var item = Object.Instantiate(Data.Prefab, cell.transform.position + new Vector3(0, 1, 0),
Quaternion.identity);
return item;
}
public abstract void Invoke(Action<Item> item);
public abstract void InstanceInvoke();
public abstract void PlaceItem(HexCell cell);
}
}

View File

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 710a543252ea459bbc84897416de38c5
timeCreated: 1641238772

View File

@ -0,0 +1,90 @@
using System;
using System.Collections.Generic;
using System.Linq;
using Data;
using HexFiled;
using Runtime.Controller;
using UnityEngine;
using Object = UnityEngine.Object;
using Random = UnityEngine.Random;
namespace Items
{
public class ItemFabric : IExecute
{
private ItemsData _data;
private List<HexCell> _openList;
private List<Type> _itemTypes;
private Dictionary<string, ItemInfo> _itemInfos;
private float _spawnTime;
private float time;
public ItemFabric(ItemsData data, List<Type> dictionary)
{
_itemInfos = new Dictionary<string, ItemInfo>();
data.ItemInfos.ForEach(info => { _itemInfos.Add(info.Type, info); });
_itemTypes = dictionary;
_data = data;
_openList = new List<HexCell>();
_spawnTime = Random.Range(data.SpawnTime.from, data.SpawnTime.to);
}
public void UpdateCellToOpenList(HexCell cell)
{
if (cell.Color != UnitColor.GREY)
{
_openList.Add(cell);
}
else if (_openList.Contains(cell))
{
_openList.Remove(cell);
}
}
public void Execute()
{
if (Time.time - time >= _spawnTime)
{
List<HexCell> closedList = PaintedController.UnitCurrentCell.Select(unitCells => unitCells.Value.curent)
.ToList();
time = Time.time;
var cell = _openList[Random.Range(0, _openList.Count - 1)];
while (closedList.Contains(cell) || cell.Item != null)
{
return;
}
var type = GetWeightedType();
while (type == null)
{
return;
}
var info = _itemInfos[type.ToString().Replace("Items.", "")];
var obj = (Item)Activator.CreateInstance(type, info);
var go = obj.Spawn(cell);
go.AddComponent<CapsuleCollider>().isTrigger = true;
var itemView = go.AddComponent<ItemView>();
itemView.SetUp(obj);
cell.SetItem(obj);
_spawnTime = Random.Range(_data.SpawnTime.from, _data.SpawnTime.to);
}
}
private Type GetWeightedType()
{
float randomNum = Random.Range(1, 101)/100f;
List<Type> possibleTypes = new List<Type>();
_itemTypes.ForEach(type =>
{
if (_itemInfos[type.ToString().Replace("Items.", "")].SpawnChance >= randomNum)
{
possibleTypes.Add(type);
}
});
return possibleTypes.Count > 0 ? possibleTypes[Random.Range(0, possibleTypes.Count - 1)] : null;
}
}
}

View File

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: c1cf50c0d39346d5818f77f30c58e03b
timeCreated: 1641294547

View File

@ -0,0 +1,34 @@
using System;
using DG.Tweening;
using Units;
using UnityEngine;
namespace Items
{
public class ItemView : MonoBehaviour
{
private Item _item;
public void SetUp(Item item)
{
_item = item;
Rotate();
}
public Item PickUp(Unit unit)
{
transform.DOKill();
_item.PickUp(unit);
return _item;
}
private void Rotate()
{
transform.DORotate(transform.rotation.eulerAngles + new Vector3(0,10,0), 0.1f)
.SetEase(Ease.Linear)
.OnComplete(Rotate);
}
}
}

View File

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 58146f7e810741bcb70fe582391749bb
timeCreated: 1641295184

View File

@ -0,0 +1,36 @@
using System;
using Data;
using HexFiled;
using UnityEngine;
using UnityEngine.UI;
using Object = UnityEngine.Object;
namespace Items
{
public class Tower : Item
{
public Tower(ItemInfo data) : base(data)
{
}
public override void Invoke(Action<Item> action)
{
OnItemUsed += action;
}
public override void InstanceInvoke()
{
Unit.UseItem(this);
}
public override void PlaceItem(HexCell cell)
{
Unit.UseItem(this);
var obj = Object.Instantiate(Data.SpawnablePrefab, cell.transform.position, Quaternion.identity);
obj.AddComponent<TowerView>().SetUp(Unit.Color);
OnItemUsed?.Invoke(this);
}
}
}

View File

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: f23a091c5733400f8f0092a4c0f33c6e
timeCreated: 1641294934

View File

@ -0,0 +1,30 @@
using System;
using System.Collections;
using System.Collections.Generic;
using System.Globalization;
using System.IO;
using TMPro;
using UnityEngine;
using Weapons;
public class ChosenWeapon : MonoBehaviour
{
[SerializeField] private TMP_Text attackText;
[SerializeField] private TMP_Text reloadText;
[SerializeField] private string chosenWeaponDataPath;
private Weapon Weapon =>
JsonUtility.FromJson<Weapon>(File.ReadAllText(Application.persistentDataPath + "/" + chosenWeaponDataPath));
private void Start()
{
attackText.text = Weapon.damage.ToString();
reloadText.text = Weapon.reloadTime.ToString(CultureInfo.CurrentCulture);
}
public void ChangeChosenWeapon(Weapon weapon)
{
attackText.text = weapon.damage.ToString();
reloadText.text = weapon.reloadTime.ToString(CultureInfo.CurrentCulture);
}
}

View File

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

View File

@ -1,7 +1,9 @@
using System;
using System.Collections.Generic;
using System.IO;
using DefaultNamespace.Weapons;
using UnityEngine;
using UnityEngine.Events;
using UnityEngine.UI;
using Weapons;
@ -11,6 +13,8 @@ public class WeaponSelection : MonoBehaviour
[SerializeField] private WeaponIcon weaponIcon;
[SerializeField] private Transform grid;
[SerializeField] private string dataFilePath;
[SerializeField] private ChosenWeapon chosenWeapon;
private Action<Weapon> changeStats;
private List<Button> _buttons;
private void Awake()
@ -22,6 +26,8 @@ public class WeaponSelection : MonoBehaviour
using StreamWriter writer = new StreamWriter(stream);
writer.Write(JsonUtility.ToJson(data.WeaponsList[0]));
}
changeStats = chosenWeapon.ChangeChosenWeapon;
_buttons = new List<Button>();
data.WeaponsList.ForEach(x =>
{
@ -42,9 +48,9 @@ public class WeaponSelection : MonoBehaviour
private void ChoseWeapon(Weapon weapon)
{
_buttons.ForEach(x => x.image.color = Color.white);
FileStream stream = new FileStream(Application.persistentDataPath + "/" + dataFilePath, FileMode.Create);
using StreamWriter writer = new StreamWriter(stream);
writer.Write(JsonUtility.ToJson(weapon));
changeStats?.Invoke(weapon);
}
}

View File

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

View File

@ -0,0 +1,34 @@
using System;
using System.Collections;
using UnityEngine;
namespace DefaultNamespace
{
public class TimerHelper : MonoBehaviour
{
private static TimerHelper _instance;
public static TimerHelper Instance => _instance;
private void Start()
{
if (_instance == null)
_instance = this;
else
{
Destroy(this);
}
}
public void StartTimer(Action action, int time)
{
StartCoroutine(Timer(action, time));
}
IEnumerator Timer(Action action, int time)
{
yield return new WaitForSeconds(time);
action.Invoke();
}
}
}

View File

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 031d061e6f684c0d992624e679d1a311
timeCreated: 1641383305

View File

@ -1,8 +1,10 @@
using System;
using Controller;
using Data;
using DefaultNamespace;
using DG.Tweening;
using HexFiled;
using Items;
using Runtime.Controller;
using Units;
using UnityEngine;
@ -15,26 +17,64 @@ namespace Chars
private Unit _unit;
private FloatingJoystick _moveJoystick;
private FloatingJoystick _attackJoystick;
private FloatingJoystick _placeJoystick;
private Camera _camera;
private Vector2 _attackDircetion;
private HexDirection _placeDirection;
private PlayerInventoryView _inventoryView;
private Item _itemToPlace;
private HexCell _cellToPlace;
public PlayerControl(Unit unit, PlayerControlView joyView)
public PlayerControl(Unit unit, PlayerControlView joyView, PlayerInventoryView inventoryView)
{
_unit = unit;
_moveJoystick = joyView.MoveJoystick;
_attackJoystick = joyView.AttackJoystick;
_placeJoystick = joyView.PlaceJoystick;
_placeJoystick.gameObject.SetActive(false);
_camera = Camera.main;
_attackJoystick.OnTouchUp += DoAttack;
_attackJoystick.OnTouchDown += AimCanvas;
inventoryView.SetUpUI(unit.InventoryCapacity);
_unit.OnItemPickUp += PickUp;
_inventoryView = inventoryView;
inventoryView.OnItemInvoked += AimPlaceItem;
_placeJoystick.OnTouchDown += AimCanvas;
_placeJoystick.OnTouchUp += PlaceItem;
}
private void AimPlaceItem(Item item)
{
if (!_unit.IsBusy)
{
_placeJoystick.gameObject.SetActive(true);
_itemToPlace = item;
}
}
private void PlaceItem()
{
_unit.UnitView.AimCanvas.SetActive(false);
_itemToPlace.PlaceItem(_cellToPlace);
_placeJoystick.gameObject.SetActive(false);
}
private void PickUp(Item item)
{
_inventoryView.PickUpItem(item);
}
private void DoAttack()
{
_unit.UnitView.AimCanvas.SetActive(false);
_unit.StartAttack();
}
private void AimCanvas()
{
if (!_unit.IsBusy)
@ -46,8 +86,8 @@ namespace Chars
if (!_unit.IsBusy && _moveJoystick.Direction != Vector2.zero)
{
_unit.Move(VectorToDirection(_moveJoystick.Direction.normalized));
_placeJoystick.gameObject.SetActive(false);
_unit.Move(DirectionHelper.VectorToDirection(_moveJoystick.Direction.normalized));
}
if (!_unit.IsBusy && _attackJoystick.isPressed)
@ -55,43 +95,15 @@ namespace Chars
_attackDircetion = _attackJoystick.Direction.normalized;
_unit.Aim(_attackDircetion);
}
if (!_unit.IsBusy && _placeJoystick.isPressed)
{
_placeDirection = DirectionHelper.VectorToDirection(_placeJoystick.Direction.normalized);
_cellToPlace = _unit.PlaceItemAim(_placeDirection);
}
}
private static HexDirection VectorToDirection(Vector2 dir)
{
if (dir.x >= 0 && dir.y <= 1 && dir.x <= 1 && dir.y >= 0.5)
{
return HexDirection.NE;
}
if (Math.Abs(dir.x - 1f) < 0.2 && dir.y <= 0.5 && dir.y >= -0.5)
{
return HexDirection.E;
}
if (dir.x <= 1 && dir.y <= -0.5 && dir.x >= 0 && dir.y >= -1)
{
return HexDirection.SE;
}
if (dir.x <= 0 && dir.y >= -1 && dir.x >= -1 && dir.y <= -0.5)
{
return HexDirection.SW;
}
if (Math.Abs(dir.x - (-1f)) < 0.2 && dir.y >= -0.5 && dir.y <= 0.5)
{
return HexDirection.W;
}
if (dir.x >= -1 && dir.y >= 0.5 && dir.x <= 0 && dir.y <= 1)
{
return HexDirection.NW;
}
return HexDirection.W;
}
public void Execute()
{

View File

@ -1,8 +1,11 @@
using System;
using System.Collections.Generic;
using Chars;
using Data;
using DefaultNamespace;
using DG.Tweening;
using HexFiled;
using Items;
using UnityEngine;
using Weapons;
using Object = UnityEngine.Object;
@ -15,7 +18,7 @@ namespace Units
{
private bool _isAlive;
private GameObject _instance;
private List<Item> _inventory;
private AnimLength _animLength;
private HexCell _cell;
private HexGrid _hexGrid;
@ -31,12 +34,16 @@ namespace Units
private BarCanvas _barCanvas;
private bool _isHardToCapture;
private bool _isCapturing;
private int _attackBonus;
private int _defenceBonus;
public bool IsBusy => _isBusy;
public GameObject PlayerInstance => _instance;
public UnitView UnitView => _unitView;
public bool IsAlive => _isAlive;
public UnitColor Color => _data.color;
public int InventoryCapacity => _data.inventoryCapacity;
public Action<Item> OnItemPickUp;
public Unit(UnitInfo unitData, Weapon weapon, HexGrid hexGrid)
{
@ -49,10 +56,32 @@ namespace Units
_isCapturing = false;
}
public void SetAttackBonus(int duration, int value)
{
TimerHelper.Instance.StartTimer(StopAttackBonus, duration);
_weapon.SetModifiedDamage(value);
}
private void StopAttackBonus()
{
_weapon.SetModifiedDamage(0);
}
public void SetDefenceBonus(int duration, int value)
{
TimerHelper.Instance.StartTimer(StopDefenceBonus, duration);
_defenceBonus = value;
}
private void StopDefenceBonus()
{
_defenceBonus = 0;
}
public void Move(HexDirection direction)
{
if (!_cell.GetNeighbor(direction) || _isBusy) return;
_unitView.StopHardCature();
_unitView.StopHardCapture();
if (_cell.GetNeighbor(direction).Color == _data.color)
{
DoTransit(direction);
@ -117,6 +146,7 @@ namespace Units
{
_cell = _hexGrid.GetCellFromCoord(_data.spawnPos);
_cell.PaintHex(_data.color);
_inventory = new List<Item>();
for (int i = 0; i < 6; i++)
{
var neigh = _cell.GetNeighbor((HexDirection)i);
@ -139,7 +169,7 @@ namespace Units
_animator = _instance.GetComponent<Animator>();
_unitView = _instance.GetComponent<UnitView>();
_barCanvas = _unitView.BarCanvas.GetComponent<BarCanvas>();
_unitView.SetUp(_barCanvas.SpawnShotUI(_weapon.shots), _weapon, RegenMana, _data.manaRegen, CaptureHex);
_unitView.SetUp(_barCanvas.SpawnShotUI(_weapon.shots), _weapon, RegenMana, _data.manaRegen, CaptureHex, this);
SetAnimLength();
MusicController.Instance.AddAudioSource(_instance);
_mana = _data.maxMana;
@ -154,6 +184,23 @@ namespace Units
UpdateBarCanvas();
}
public bool PickUpItem(ItemView itemView)
{
if (_inventory.Count < _data.inventoryCapacity)
{
var item = itemView.PickUp(this);
_inventory.Add(item);
OnItemPickUp.Invoke(item);
return true;
}
return false;
}
public void UseItem(Item item)
{
_inventory.Remove(item);
}
private void MoveEnd()
{
_isBusy = false;
@ -200,7 +247,7 @@ namespace Units
ball.AddComponent<WeaponView>().SetWeapon(_weapon);
ball.transform.DOMove(
new Vector3(_direction.normalized.x,
0, _direction.normalized.y) * _weapon.disnatce * _hexGrid.HexDistance +
0, _direction.normalized.y) * _weapon.disnatce * HexGrid.HexDistance +
_instance.transform.position + new Vector3(0, 2, 0),
_weapon.speed)
.SetEase(Ease.Linear)
@ -268,14 +315,30 @@ namespace Units
_direction = direction;
}
public HexCell PlaceItemAim(HexDirection direction)
{
var cell = _cell.GetNeighbor(direction);
_unitView.AimCanvas.transform.LookAt(cell.transform);
return cell;
}
private void Damage(int dmg)
{
if (_hp - dmg <= 0f)
if (_defenceBonus == 0 && _hp - dmg <= 0f)
{
Death();
}
_hp -= dmg;
if (_defenceBonus > 0)
{
_defenceBonus -= dmg;
}
else
{
_hp -= dmg;
}
UpdateBarCanvas();
}
}

View File

@ -6,12 +6,12 @@ namespace Chars
{
[SerializeField] private FloatingJoystick moveJoystick;
[SerializeField] private FloatingJoystick attackJoystick;
[SerializeField] private FloatingJoystick placeJoystick;
public FloatingJoystick MoveJoystick => moveJoystick;
public FloatingJoystick AttackJoystick => attackJoystick;
public FloatingJoystick PlaceJoystick => placeJoystick;
}
}

View File

@ -4,7 +4,10 @@ using System.Collections.Generic;
using Data;
using DG.Tweening;
using HexFiled;
using Items;
using Units;
using UnityEngine;
using UnityEngine.Events;
using UnityEngine.UI;
using Weapons;
using Random = UnityEngine.Random;
@ -32,11 +35,14 @@ public class UnitView : MonoBehaviour
private Action _capureHex;
private Sequence _sequence;
private AudioSource _audioSource;
private Unit _unit;
public GameObject BarCanvas => barCanvas;
public GameObject AimCanvas => aimCanvas;
public UnitColor Color => _unit.Color;
public void SetUp(Stack<ShotUIView> shots, Weapon weapon, Action regenMana, int manaRegen, Action captureHex)
public void SetUp(Stack<ShotUIView> shots, Weapon weapon, Action regenMana, int manaRegen, Action captureHex,
Unit unit)
{
_shootUIStack = shots;
_weapon = weapon;
@ -44,6 +50,7 @@ public class UnitView : MonoBehaviour
_startRegen = regenMana;
_manaRegen = manaRegen;
_capureHex = captureHex;
_unit = unit;
}
public void HardCaptureHex(HexCell cell)
@ -59,9 +66,9 @@ public class UnitView : MonoBehaviour
cell.gameObject);
}));
}
public void StopHardCature()
public void StopHardCapture()
{
_sequence.Kill();
captureBar.DOFillAmount(0f, 0f).SetEase(Ease.Linear);
@ -120,10 +127,17 @@ public class UnitView : MonoBehaviour
WeaponView weaponView = other.GetComponent<WeaponView>();
if (weaponView != null)
{
OnHit?.Invoke(weaponView.Weapon.damage);
OnHit?.Invoke(weaponView.Weapon.modifiedDamage);
other.transform.DOKill();
Destroy(other.gameObject);
}
ItemView itemView = other.GetComponent<ItemView>();
if (itemView != null && _unit.PickUpItem(itemView))
{
Destroy(itemView.gameObject);
}
}
private IEnumerator Reload()

View File

@ -10,7 +10,7 @@ namespace Weapons
public GameObject icon;
public GameObject objectToThrow;
public GameObject VFXGameObject;
public int manaCost;
public int modifiedDamage;
public int damage;
public float speed;
public int disnatce;
@ -18,5 +18,10 @@ namespace Weapons
public int shots;
public AudioClip shotSound;
public AudioClip hitSound;
public void SetModifiedDamage(int bonus)
{
modifiedDamage = damage + bonus;
}
}
}

Some files were not shown because too many files have changed in this diff Show More