From 961059ce1602ac0b0aeab1534bc0ab4a51b06bc9 Mon Sep 17 00:00:00 2001 From: Baptiste Date: Fri, 12 May 2023 19:29:21 -0400 Subject: [PATCH] v1 attack ally and enemy --- Assets/LevelEditor/LevelEditorScene.unity | 80 +++++- Assets/LevelEditor/Levels/Level0.asset | 21 ++ Assets/LevelEditor/Levels/Level0.asset.meta | 8 + Assets/LevelEditor/Levels/Level1.asset | 15 + Assets/LevelEditor/Levels/Level1.asset.meta | 8 + Assets/Prefabs/baseMonster.prefab | 296 ++++++++++++++++++++ Assets/Prefabs/baseMonster.prefab.meta | 7 + Assets/Prefabs/baseStick.prefab | 180 +++++++++++- Assets/Scripts/Ally.cs | 34 +++ Assets/Scripts/Ally.cs.meta | 11 + Assets/Scripts/Detection.cs | 32 +++ Assets/Scripts/Detection.cs.meta | 11 + Assets/Scripts/Entity.cs | 78 ++++++ Assets/Scripts/Entity.cs.meta | 11 + Assets/Scripts/Opponent.cs | 48 ++++ Assets/Scripts/Opponent.cs.meta | 11 + ProjectSettings/TagManager.asset | 4 +- 17 files changed, 852 insertions(+), 3 deletions(-) create mode 100644 Assets/LevelEditor/Levels/Level0.asset create mode 100644 Assets/LevelEditor/Levels/Level0.asset.meta create mode 100644 Assets/LevelEditor/Levels/Level1.asset create mode 100644 Assets/LevelEditor/Levels/Level1.asset.meta create mode 100644 Assets/Prefabs/baseMonster.prefab create mode 100644 Assets/Prefabs/baseMonster.prefab.meta create mode 100644 Assets/Scripts/Ally.cs create mode 100644 Assets/Scripts/Ally.cs.meta create mode 100644 Assets/Scripts/Detection.cs create mode 100644 Assets/Scripts/Detection.cs.meta create mode 100644 Assets/Scripts/Entity.cs create mode 100644 Assets/Scripts/Entity.cs.meta create mode 100644 Assets/Scripts/Opponent.cs create mode 100644 Assets/Scripts/Opponent.cs.meta diff --git a/Assets/LevelEditor/LevelEditorScene.unity b/Assets/LevelEditor/LevelEditorScene.unity index 6978587..f4fc466 100644 --- a/Assets/LevelEditor/LevelEditorScene.unity +++ b/Assets/LevelEditor/LevelEditorScene.unity @@ -1308,6 +1308,7 @@ GameObject: - component: {fileID: 388196585} - component: {fileID: 388196587} - component: {fileID: 388196586} + - component: {fileID: 388196588} m_Layer: 6 m_Name: Spawners m_TagString: Untagged @@ -1483,6 +1484,22 @@ Tilemap: e31: 0 e32: 0 e33: 1 +--- !u!19719996 &388196588 +TilemapCollider2D: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 388196584} + m_Enabled: 1 + m_Density: 1 + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_UsedByEffector: 0 + m_UsedByComposite: 0 + m_Offset: {x: 0, y: 0} + m_MaximumTileChangeCount: 1000 + m_ExtrusionFactor: 0 --- !u!1 &456843627 GameObject: m_ObjectHideFlags: 0 @@ -1909,6 +1926,67 @@ Tilemap: e31: 0 e32: 0 e33: 1 +--- !u!1001 &1431912647 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: -1491803373025033585, guid: 377c7275c0001cc47a6b8926ac57d573, type: 3} + propertyPath: m_Mass + value: 0.0001 + objectReference: {fileID: 0} + - target: {fileID: 6962989255644195630, guid: 377c7275c0001cc47a6b8926ac57d573, type: 3} + propertyPath: m_Name + value: baseMonster + objectReference: {fileID: 0} + - target: {fileID: 6962989255644195631, guid: 377c7275c0001cc47a6b8926ac57d573, type: 3} + propertyPath: m_RootOrder + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6962989255644195631, guid: 377c7275c0001cc47a6b8926ac57d573, type: 3} + propertyPath: m_LocalPosition.x + value: -3.5575664 + objectReference: {fileID: 0} + - target: {fileID: 6962989255644195631, guid: 377c7275c0001cc47a6b8926ac57d573, type: 3} + propertyPath: m_LocalPosition.y + value: 1.5121906 + objectReference: {fileID: 0} + - target: {fileID: 6962989255644195631, guid: 377c7275c0001cc47a6b8926ac57d573, type: 3} + propertyPath: m_LocalPosition.z + value: 1.8112363 + objectReference: {fileID: 0} + - target: {fileID: 6962989255644195631, guid: 377c7275c0001cc47a6b8926ac57d573, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6962989255644195631, guid: 377c7275c0001cc47a6b8926ac57d573, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6962989255644195631, guid: 377c7275c0001cc47a6b8926ac57d573, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6962989255644195631, guid: 377c7275c0001cc47a6b8926ac57d573, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6962989255644195631, guid: 377c7275c0001cc47a6b8926ac57d573, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6962989255644195631, guid: 377c7275c0001cc47a6b8926ac57d573, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6962989255644195631, guid: 377c7275c0001cc47a6b8926ac57d573, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 377c7275c0001cc47a6b8926ac57d573, type: 3} --- !u!1 &1827197197 GameObject: m_ObjectHideFlags: 0 @@ -1955,7 +2033,7 @@ Transform: - {fileID: 456843628} - {fileID: 388196585} m_Father: {fileID: 0} - m_RootOrder: 1 + m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!114 &1827197200 MonoBehaviour: diff --git a/Assets/LevelEditor/Levels/Level0.asset b/Assets/LevelEditor/Levels/Level0.asset new file mode 100644 index 0000000..371815b --- /dev/null +++ b/Assets/LevelEditor/Levels/Level0.asset @@ -0,0 +1,21 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2b25d284985e65e48b50826c522a5ec3, type: 3} + m_Name: Level0 + m_EditorClassIdentifier: + _data: + - _key: Background + tiles: [] + - _key: Entities + tiles: [] + - _key: Spawners + tiles: [] diff --git a/Assets/LevelEditor/Levels/Level0.asset.meta b/Assets/LevelEditor/Levels/Level0.asset.meta new file mode 100644 index 0000000..01f86c6 --- /dev/null +++ b/Assets/LevelEditor/Levels/Level0.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a6e34739c9325da4cac4fbaea30d052c +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/LevelEditor/Levels/Level1.asset b/Assets/LevelEditor/Levels/Level1.asset new file mode 100644 index 0000000..da7fce9 --- /dev/null +++ b/Assets/LevelEditor/Levels/Level1.asset @@ -0,0 +1,15 @@ +%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: 2b25d284985e65e48b50826c522a5ec3, type: 3} + m_Name: Level1 + m_EditorClassIdentifier: + _data: [] diff --git a/Assets/LevelEditor/Levels/Level1.asset.meta b/Assets/LevelEditor/Levels/Level1.asset.meta new file mode 100644 index 0000000..2b96809 --- /dev/null +++ b/Assets/LevelEditor/Levels/Level1.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d37561e153d6a6448a03839488fdec5e +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Prefabs/baseMonster.prefab b/Assets/Prefabs/baseMonster.prefab new file mode 100644 index 0000000..256b532 --- /dev/null +++ b/Assets/Prefabs/baseMonster.prefab @@ -0,0 +1,296 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &6962989255644195630 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6962989255644195631} + - component: {fileID: 6072713849781841816} + - component: {fileID: -1491803373025033585} + - component: {fileID: -7538281095464317747} + - component: {fileID: 7342363932249177917} + m_Layer: 0 + m_Name: baseMonster + m_TagString: Opponent + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &6962989255644195631 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6962989255644195630} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -6.61, y: -0.638, z: 1.8112363} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 6962989256011107500} + - {fileID: 6802302589573039538} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1839735485 &6072713849781841816 +Tilemap: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6962989255644195630} + m_Enabled: 0 + m_Tiles: {} + m_AnimatedTiles: {} + m_TileAssetArray: [] + m_TileSpriteArray: [] + m_TileMatrixArray: [] + m_TileColorArray: [] + m_TileObjectToInstantiateArray: [] + m_AnimationFrameRate: 1 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Origin: {x: 0, y: 0, z: 0} + m_Size: {x: 0, y: 0, 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!50 &-1491803373025033585 +Rigidbody2D: + serializedVersion: 4 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6962989255644195630} + m_BodyType: 0 + m_Simulated: 1 + m_UseFullKinematicContacts: 0 + m_UseAutoMass: 0 + m_Mass: 1 + m_LinearDrag: 0 + m_AngularDrag: 0.05 + m_GravityScale: 0 + m_Material: {fileID: 0} + m_Interpolate: 0 + m_SleepingMode: 1 + m_CollisionDetection: 0 + m_Constraints: 4 +--- !u!61 &-7538281095464317747 +BoxCollider2D: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6962989255644195630} + m_Enabled: 1 + m_Density: 1 + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_UsedByEffector: 0 + m_UsedByComposite: 0 + m_Offset: {x: 0, y: 0} + m_SpriteTilingProperty: + border: {x: 0, y: 0, z: 0, w: 0} + pivot: {x: 0, y: 0} + oldSize: {x: 0, y: 0} + newSize: {x: 0, y: 0} + adaptiveTilingThreshold: 0 + drawMode: 0 + adaptiveTiling: 0 + m_AutoTiling: 0 + serializedVersion: 2 + m_Size: {x: 1, y: 1} + m_EdgeRadius: 0 +--- !u!114 &7342363932249177917 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6962989255644195630} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5c6a370a8a12ae547a4509f3b98339cf, type: 3} + m_Name: + m_EditorClassIdentifier: + _hp: 1000 + _speed: 0.5 + _attack_damage: 2 + _attack_speed: 3 +--- !u!1 &6962989256011107503 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6962989256011107500} + - component: {fileID: 6962989256011107501} + m_Layer: 0 + m_Name: exmeple + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &6962989256011107500 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6962989256011107503} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0.0259, y: 0.01, z: 0} + m_LocalScale: {x: 0.5394133, y: 0.56488746, z: 0.9686} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 6962989255644195631} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!212 &6962989256011107501 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6962989256011107503} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: a97c105638bdf8b4a8650670310a4cd3, 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: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 3 + m_Sprite: {fileID: 21300000, guid: 5abf039e8de5d03488e6b435ea7f1753, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 1.06, y: 1.69} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!1 &8726647054546243319 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6802302589573039538} + - component: {fileID: 7006189111012443782} + - component: {fileID: 3172728477976940186} + m_Layer: 0 + m_Name: detection + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &6802302589573039538 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8726647054546243319} + 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_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 6962989255644195631} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!61 &7006189111012443782 +BoxCollider2D: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8726647054546243319} + m_Enabled: 1 + m_Density: 1 + m_Material: {fileID: 0} + m_IsTrigger: 1 + m_UsedByEffector: 0 + m_UsedByComposite: 0 + m_Offset: {x: -0.5, y: 0} + m_SpriteTilingProperty: + border: {x: 0, y: 0, z: 0, w: 0} + pivot: {x: 0, y: 0} + oldSize: {x: 0, y: 0} + newSize: {x: 0, y: 0} + adaptiveTilingThreshold: 0 + drawMode: 0 + adaptiveTiling: 0 + m_AutoTiling: 0 + serializedVersion: 2 + m_Size: {x: 0.5, y: 0.5} + m_EdgeRadius: 0 +--- !u!114 &3172728477976940186 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8726647054546243319} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 531d7966d86bd0c4d83baf58bcb56cd5, type: 3} + m_Name: + m_EditorClassIdentifier: + _entityLinked: {fileID: 7342363932249177917} diff --git a/Assets/Prefabs/baseMonster.prefab.meta b/Assets/Prefabs/baseMonster.prefab.meta new file mode 100644 index 0000000..a59d46d --- /dev/null +++ b/Assets/Prefabs/baseMonster.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 377c7275c0001cc47a6b8926ac57d573 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Prefabs/baseStick.prefab b/Assets/Prefabs/baseStick.prefab index 0c66118..742cd31 100644 --- a/Assets/Prefabs/baseStick.prefab +++ b/Assets/Prefabs/baseStick.prefab @@ -1,5 +1,77 @@ %YAML 1.1 %TAG !u! tag:unity3d.com,2011: +--- !u!1 &270769315063318434 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 71124047072817123} + - component: {fileID: 2608989659328117942} + - component: {fileID: 3358069652062874313} + m_Layer: 0 + m_Name: detection + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &71124047072817123 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 270769315063318434} + 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_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 6962989255644195631} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!61 &2608989659328117942 +BoxCollider2D: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 270769315063318434} + m_Enabled: 1 + m_Density: 1 + m_Material: {fileID: 0} + m_IsTrigger: 1 + m_UsedByEffector: 0 + m_UsedByComposite: 0 + m_Offset: {x: 0.5, y: 0} + m_SpriteTilingProperty: + border: {x: 0, y: 0, z: 0, w: 0} + pivot: {x: 0, y: 0} + oldSize: {x: 0, y: 0} + newSize: {x: 0, y: 0} + adaptiveTilingThreshold: 0 + drawMode: 0 + adaptiveTiling: 0 + m_AutoTiling: 0 + serializedVersion: 2 + m_Size: {x: 0.5, y: 0.5} + m_EdgeRadius: 0 +--- !u!114 &3358069652062874313 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 270769315063318434} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 531d7966d86bd0c4d83baf58bcb56cd5, type: 3} + m_Name: + m_EditorClassIdentifier: + _entityLinked: {fileID: 8585520847943034727} --- !u!1 &6962989255035248094 GameObject: m_ObjectHideFlags: 0 @@ -325,9 +397,13 @@ GameObject: serializedVersion: 6 m_Component: - component: {fileID: 6962989255644195631} + - component: {fileID: 8585520847943034727} + - component: {fileID: 6072713849781841816} + - component: {fileID: -1491803373025033585} + - component: {fileID: -7538281095464317747} m_Layer: 0 m_Name: baseStick - m_TagString: Untagged + m_TagString: Ally m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 @@ -346,9 +422,111 @@ Transform: m_Children: - {fileID: 6962989256011107500} - {fileID: 6962989255883535387} + - {fileID: 71124047072817123} m_Father: {fileID: 0} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &8585520847943034727 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6962989255644195630} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 27e69fa6018bf654196267d829031f1a, type: 3} + m_Name: + m_EditorClassIdentifier: + _hp: 100 + _speed: 0 + _attack_damage: 1 + _attack_speed: 1.2 +--- !u!1839735485 &6072713849781841816 +Tilemap: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6962989255644195630} + m_Enabled: 0 + m_Tiles: {} + m_AnimatedTiles: {} + m_TileAssetArray: [] + m_TileSpriteArray: [] + m_TileMatrixArray: [] + m_TileColorArray: [] + m_TileObjectToInstantiateArray: [] + m_AnimationFrameRate: 1 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Origin: {x: 0, y: 0, z: 0} + m_Size: {x: 0, y: 0, 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!50 &-1491803373025033585 +Rigidbody2D: + serializedVersion: 4 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6962989255644195630} + m_BodyType: 0 + m_Simulated: 1 + m_UseFullKinematicContacts: 0 + m_UseAutoMass: 0 + m_Mass: 1000000 + m_LinearDrag: 0 + m_AngularDrag: 0.05 + m_GravityScale: 0 + m_Material: {fileID: 0} + m_Interpolate: 0 + m_SleepingMode: 1 + m_CollisionDetection: 0 + m_Constraints: 4 +--- !u!61 &-7538281095464317747 +BoxCollider2D: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6962989255644195630} + m_Enabled: 1 + m_Density: 1 + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_UsedByEffector: 0 + m_UsedByComposite: 0 + m_Offset: {x: 0, y: 0} + m_SpriteTilingProperty: + border: {x: 0, y: 0, z: 0, w: 0} + pivot: {x: 0, y: 0} + oldSize: {x: 0, y: 0} + newSize: {x: 0, y: 0} + adaptiveTilingThreshold: 0 + drawMode: 0 + adaptiveTiling: 0 + m_AutoTiling: 0 + serializedVersion: 2 + m_Size: {x: 1, y: 1} + m_EdgeRadius: 0 --- !u!1 &6962989255710846697 GameObject: m_ObjectHideFlags: 0 diff --git a/Assets/Scripts/Ally.cs b/Assets/Scripts/Ally.cs new file mode 100644 index 0000000..55fa7b9 --- /dev/null +++ b/Assets/Scripts/Ally.cs @@ -0,0 +1,34 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class Ally : Entity +{ + + void Update() { + + if(IsEnemyDetected) { + AttackEnemy(); + } + + } + + void AttackEnemy() { + //Attack Cooldown + if(AttackSpeed < AttackSpeedWait) { + + Enemy.Hp-=AttackDamage; + Debug.Log("Opponent Hp = " + Enemy.Hp); + + //Kill if no hp + if(Enemy.Hp <= 0) { + Destroy(Enemy); + } + + AttackSpeedWait = 0f; + } + + AttackSpeedWait += Time.deltaTime; + } + +} diff --git a/Assets/Scripts/Ally.cs.meta b/Assets/Scripts/Ally.cs.meta new file mode 100644 index 0000000..bb8070f --- /dev/null +++ b/Assets/Scripts/Ally.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 27e69fa6018bf654196267d829031f1a +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Detection.cs b/Assets/Scripts/Detection.cs new file mode 100644 index 0000000..a6490e4 --- /dev/null +++ b/Assets/Scripts/Detection.cs @@ -0,0 +1,32 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class Detection : MonoBehaviour +{ + + [SerializeField] + private Entity _entityLinked; + + void OnTriggerEnter2D(Collider2D other) + { + //Detect the enemy and inform the Entity + if (other.gameObject.tag == "Opponent" && _entityLinked.GetType() == typeof(Ally)) { + _entityLinked.IsEnemyDetected = true; + _entityLinked.Enemy = other.gameObject.GetComponent(); + } + + //Detect the enemy and inform the Entity + if (other.gameObject.tag == "Ally" && _entityLinked.GetType() == typeof(Opponent)) { + _entityLinked.IsEnemyDetected = true; + _entityLinked.Enemy = other.gameObject.GetComponent(); + } + + } + + void OnTriggerExit2D(Collider2D other) + { + _entityLinked.IsEnemyDetected = false; + } + +} diff --git a/Assets/Scripts/Detection.cs.meta b/Assets/Scripts/Detection.cs.meta new file mode 100644 index 0000000..b0a3fca --- /dev/null +++ b/Assets/Scripts/Detection.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 531d7966d86bd0c4d83baf58bcb56cd5 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Entity.cs b/Assets/Scripts/Entity.cs new file mode 100644 index 0000000..8627f84 --- /dev/null +++ b/Assets/Scripts/Entity.cs @@ -0,0 +1,78 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class Entity : MonoBehaviour +{ + + //Attribut + [SerializeField] + private int _hp; + [SerializeField] + private float _speed; + [SerializeField] + private int _attack_damage; + [SerializeField] + private float _attack_speed; + private float _attack_speed_wait = 0f; + + //Enemy Spotted + private bool _isEnemyDetected = false; + private Entity _enemy; + + //GETTERS AND SETTERS + + public int Hp + { + get { return _hp; } + set { _hp = value; } + } + + public float Speed + { + get { return _speed; } + set { _speed = value; } + } + + public int AttackDamage + { + get { return _attack_damage; } + set { _attack_damage = value; } + } + + public float AttackSpeed + { + get { return _attack_speed; } + set { _attack_speed = value; } + } + + public float AttackSpeedWait +{ + get { return _attack_speed_wait; } + set { _attack_speed_wait = value; } +} + + public bool IsEnemyDetected + { + get { return _isEnemyDetected; } + set { _isEnemyDetected = value; } + } + + public Entity Enemy + { + get { return _enemy; } + set { _enemy = value; } + } + + + /* + void Start() + { + + } + + void Update() + { + + }*/ +} diff --git a/Assets/Scripts/Entity.cs.meta b/Assets/Scripts/Entity.cs.meta new file mode 100644 index 0000000..de70011 --- /dev/null +++ b/Assets/Scripts/Entity.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: d2c97fa69fd00f2419a42544b2e8a306 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Opponent.cs b/Assets/Scripts/Opponent.cs new file mode 100644 index 0000000..67f242a --- /dev/null +++ b/Assets/Scripts/Opponent.cs @@ -0,0 +1,48 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class Opponent : Entity +{ + + private Vector2 _movementVector = Vector2.zero; + private Rigidbody2D _rigidbody; + + void Start() + { + _rigidbody = GetComponent(); + } + + void Update() { + + _movementVector.x = -Time.deltaTime * Speed; + + _movementVector.Normalize(); + + _rigidbody.velocity = _movementVector * Speed; + + if(IsEnemyDetected) { + AttackEnemy(); + } + + } + + void AttackEnemy() { + //Attack Cooldown + if(AttackSpeed < AttackSpeedWait) { + + Enemy.Hp-=AttackDamage; + Debug.Log("Ally Hp = " + Enemy.Hp); + + //Kill if no hp + if(Enemy.Hp <= 0) { + Destroy(Enemy); + } + + AttackSpeedWait = 0f; + } + + AttackSpeedWait += Time.deltaTime; + } + +} diff --git a/Assets/Scripts/Opponent.cs.meta b/Assets/Scripts/Opponent.cs.meta new file mode 100644 index 0000000..b2d95e4 --- /dev/null +++ b/Assets/Scripts/Opponent.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 5c6a370a8a12ae547a4509f3b98339cf +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ProjectSettings/TagManager.asset b/ProjectSettings/TagManager.asset index 5371405..f63a055 100644 --- a/ProjectSettings/TagManager.asset +++ b/ProjectSettings/TagManager.asset @@ -3,7 +3,9 @@ --- !u!78 &1 TagManager: serializedVersion: 2 - tags: [] + tags: + - Opponent + - Ally layers: - Default - TransparentFX