projectile revamp + scorpion (#14)

Reviewed-on: #14
Reviewed-by: EliaGingras1 <william-gin1@hotmail.com>
This commit is contained in:
Adam Salah 2025-07-29 21:39:18 +00:00
parent efafc2bddc
commit 39bffa8c59
21 changed files with 690 additions and 277 deletions

View File

@ -1,5 +1,77 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &298534009199319999
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 2287864536556935619}
- component: {fileID: 246610560728595982}
- component: {fileID: 634419449123047291}
m_Layer: 0
m_Name: collider
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &2287864536556935619
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 298534009199319999}
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 &246610560728595982
BoxCollider2D:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 298534009199319999}
m_Enabled: 1
m_Density: 1
m_Material: {fileID: 0}
m_IsTrigger: 1
m_UsedByEffector: 0
m_UsedByComposite: 0
m_Offset: {x: 0.16277367, y: 0.016521543}
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.3744527, y: 0.17825907}
m_EdgeRadius: 0
--- !u!114 &634419449123047291
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 298534009199319999}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 531d7966d86bd0c4d83baf58bcb56cd5, type: 3}
m_Name:
m_EditorClassIdentifier:
_entityLinked: {fileID: 0}
--- !u!1 &6962989255644195630
GameObject:
m_ObjectHideFlags: 0
@ -10,7 +82,7 @@ GameObject:
m_Component:
- component: {fileID: 6962989255644195631}
- component: {fileID: -1491803373025033585}
- component: {fileID: 8133954670424616578}
- component: {fileID: 621676283081164958}
m_Layer: 0
m_Name: CastleProjectile
m_TagString: Untagged
@ -31,7 +103,7 @@ Transform:
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 6962989256011107500}
- {fileID: 6802302589573039538}
- {fileID: 2287864536556935619}
m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
@ -56,7 +128,7 @@ Rigidbody2D:
m_SleepingMode: 1
m_CollisionDetection: 0
m_Constraints: 4
--- !u!114 &8133954670424616578
--- !u!114 &621676283081164958
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
@ -65,13 +137,12 @@ MonoBehaviour:
m_GameObject: {fileID: 6962989255644195630}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 01782bd631a6e1446956ed140a24c530, type: 3}
m_Script: {fileID: 11500000, guid: 93457b8199dbf2f48b89f680687dbd6e, type: 3}
m_Name:
m_EditorClassIdentifier:
_detectionLinked: {fileID: 4130391605812397686}
straightProjectile: 1
_speed: 5
_direction: 0
_angle: 10
_speed: 1
--- !u!1 &6962989256011107503
GameObject:
m_ObjectHideFlags: 0
@ -83,7 +154,7 @@ GameObject:
- component: {fileID: 6962989256011107500}
- component: {fileID: 6962989256011107501}
m_Layer: 0
m_Name: exmeple
m_Name: sprite
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
@ -156,75 +227,3 @@ SpriteRenderer:
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: 4130391605812397686}
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.16277367, y: 0.016521543}
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.3744527, y: 0.17825907}
m_EdgeRadius: 0
--- !u!114 &4130391605812397686
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: 0}

View File

@ -1,5 +1,63 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &2082922348827363435
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 4569873279010216557}
- component: {fileID: 3167830415449792895}
m_Layer: 0
m_Name: collider
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &4569873279010216557
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2082922348827363435}
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 &3167830415449792895
BoxCollider2D:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2082922348827363435}
m_Enabled: 1
m_Density: 1
m_Material: {fileID: 0}
m_IsTrigger: 1
m_UsedByEffector: 0
m_UsedByComposite: 0
m_Offset: {x: -0.1, 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.2, y: 0.1}
m_EdgeRadius: 0
--- !u!1 &6962989255644195630
GameObject:
m_ObjectHideFlags: 0
@ -10,7 +68,7 @@ GameObject:
m_Component:
- component: {fileID: 6962989255644195631}
- component: {fileID: -1491803373025033585}
- component: {fileID: 8133954670424616578}
- component: {fileID: 6762493969386267100}
m_Layer: 0
m_Name: baseProjectile
m_TagString: Untagged
@ -31,7 +89,7 @@ Transform:
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 6962989256011107500}
- {fileID: 6802302589573039538}
- {fileID: 4569873279010216557}
m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
@ -43,7 +101,7 @@ Rigidbody2D:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6962989255644195630}
m_BodyType: 0
m_BodyType: 1
m_Simulated: 1
m_UseFullKinematicContacts: 0
m_UseAutoMass: 0
@ -56,7 +114,7 @@ Rigidbody2D:
m_SleepingMode: 1
m_CollisionDetection: 0
m_Constraints: 4
--- !u!114 &8133954670424616578
--- !u!114 &6762493969386267100
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
@ -65,12 +123,12 @@ MonoBehaviour:
m_GameObject: {fileID: 6962989255644195630}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 01782bd631a6e1446956ed140a24c530, type: 3}
m_Script: {fileID: 11500000, guid: 93457b8199dbf2f48b89f680687dbd6e, type: 3}
m_Name:
m_EditorClassIdentifier:
_detectionLinked: {fileID: 4130391605812397686}
_angle: 10
_speed: 1
_speed: 5
_direction: 0
_angle: 30
--- !u!1 &6962989256011107503
GameObject:
m_ObjectHideFlags: 0
@ -82,7 +140,7 @@ GameObject:
- component: {fileID: 6962989256011107500}
- component: {fileID: 6962989256011107501}
m_Layer: 0
m_Name: exmeple
m_Name: sprite
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
@ -155,75 +213,3 @@ SpriteRenderer:
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: 4130391605812397686}
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.16277367, y: 0.016521543}
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.3744527, y: 0.17825907}
m_EdgeRadius: 0
--- !u!114 &4130391605812397686
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: 0}

View File

@ -68,10 +68,9 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: af32629f84318134799756134098abf9, type: 3}
m_Name:
m_EditorClassIdentifier:
_detectionLinked: {fileID: 4130391605812397686}
straightProjectile: 1
_angle: 0
_speed: 2
_speed: 5
_direction: 0
_maxHitEntities: 1
_slowIntensity: 0.25
_slowDuration: 5
--- !u!1 &6962989256011107503
@ -168,9 +167,8 @@ GameObject:
m_Component:
- component: {fileID: 6802302589573039538}
- component: {fileID: 7006189111012443782}
- component: {fileID: 4130391605812397686}
m_Layer: 0
m_Name: detection
m_Name: collider
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
@ -204,7 +202,7 @@ BoxCollider2D:
m_IsTrigger: 1
m_UsedByEffector: 0
m_UsedByComposite: 0
m_Offset: {x: 0.16277367, y: 0.016521543}
m_Offset: {x: -0.1, y: 0}
m_SpriteTilingProperty:
border: {x: 0, y: 0, z: 0, w: 0}
pivot: {x: 0, y: 0}
@ -215,18 +213,5 @@ BoxCollider2D:
adaptiveTiling: 0
m_AutoTiling: 0
serializedVersion: 2
m_Size: {x: 0.3744527, y: 0.17825907}
m_Size: {x: 0.2, y: 0.1}
m_EdgeRadius: 0
--- !u!114 &4130391605812397686
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: 0}

View File

@ -0,0 +1,230 @@
%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: -1491803373025033585}
- component: {fileID: 8133954670424616578}
m_Layer: 0
m_Name: oldBaseProjectile
m_TagString: Untagged
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!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!114 &8133954670424616578
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: 01782bd631a6e1446956ed140a24c530, type: 3}
m_Name:
m_EditorClassIdentifier:
_detectionLinked: {fileID: 4130391605812397686}
straightProjectile: 0
_angle: 10
_speed: 1
--- !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.7071068, w: -0.7071068}
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: 270}
--- !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: 364159097
m_SortingLayer: 1
m_SortingOrder: 4
m_Sprite: {fileID: 21300000, guid: b28a7c5aeb45b224983f69339965c55d, 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: 4130391605812397686}
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.16277367, y: 0.016521543}
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.3744527, y: 0.17825907}
m_EdgeRadius: 0
--- !u!114 &4130391605812397686
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: 0}

View File

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

View File

@ -1,5 +1,63 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &300123471756193662
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1663512243480751314}
- component: {fileID: 3915641876488228129}
m_Layer: 0
m_Name: collider
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &1663512243480751314
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 300123471756193662}
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 &3915641876488228129
BoxCollider2D:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 300123471756193662}
m_Enabled: 1
m_Density: 1
m_Material: {fileID: 0}
m_IsTrigger: 1
m_UsedByEffector: 0
m_UsedByComposite: 0
m_Offset: {x: -0.27199745, y: -0.0008074939}
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.5439949, y: 0.259885}
m_EdgeRadius: 0
--- !u!1 &6962989255644195630
GameObject:
m_ObjectHideFlags: 0
@ -10,7 +68,7 @@ GameObject:
m_Component:
- component: {fileID: 6962989255644195631}
- component: {fileID: -1491803373025033585}
- component: {fileID: 8133954670424616578}
- component: {fileID: -6001325168800467254}
m_Layer: 0
m_Name: scorpionProjectile
m_TagString: Untagged
@ -30,8 +88,8 @@ Transform:
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 6802302589573039538}
- {fileID: 3815555280328424213}
- {fileID: 1663512243480751314}
m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
@ -56,7 +114,7 @@ Rigidbody2D:
m_SleepingMode: 1
m_CollisionDetection: 0
m_Constraints: 4
--- !u!114 &8133954670424616578
--- !u!114 &-6001325168800467254
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
@ -65,85 +123,12 @@ MonoBehaviour:
m_GameObject: {fileID: 6962989255644195630}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 01782bd631a6e1446956ed140a24c530, type: 3}
m_Script: {fileID: 11500000, guid: 5ceb014877ce6be4fb369fcfd8234952, type: 3}
m_Name:
m_EditorClassIdentifier:
_detectionLinked: {fileID: 4130391605812397686}
straightProjectile: 1
_angle: 90
_speed: 14
--- !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: 4130391605812397686}
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: 0
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.2813213, y: 0.016521543}
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.61154795, y: 0.17825907}
m_EdgeRadius: 0
--- !u!114 &4130391605812397686
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: 0}
_speed: 5
_direction: 0
_maxHitEntities: 3
--- !u!1 &8978875623871672114
GameObject:
m_ObjectHideFlags: 0
@ -174,7 +159,7 @@ Transform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 6962989255644195631}
m_RootOrder: 1
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!212 &8544502696280423281
SpriteRenderer:

View File

@ -13,7 +13,7 @@ public class Archer : Ally
public override void Update()
{
base.Update();
if(IsEnemyDetected) {
if (IsEnemyDetected && Enemy.Hp > 0) {
AttackEnemy();
}

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 796c5970b01ebd249b04e1a0598abc7c
guid: e5b82afdc49c5c74dbc9bcc51c0ace0d
folderAsset: yes
DefaultImporter:
externalObjects: {}

View File

@ -0,0 +1,61 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class ArcProjectile : TargetedProjectile
{
[Header("Arc Projectile")]
[SerializeField, Range(0, 90)]
private float _angle = 45.0f;
protected override void ApplyMovement()
{
if (Target != null)
{
EndPos = Target.Position;
}
// position:
// k(ax^2 + x)
// k: angle comme ratio opposé / adjacent
// a: -1 / distance
// x: position x sur l'arc
// y: position y sur l'arc
float distance = (EndPos.x - StartPos.x);
float k = Mathf.Sign(distance) * Mathf.Tan(_angle * Mathf.Deg2Rad);
float a = -1.0f / distance;
float x = (transform.position.x - StartPos.x) + Speed * Time.deltaTime;
float y = k * (a * x * x + x);
Vector2 newPos = new Vector2(StartPos.x + x, StartPos.y + y);
transform.position = newPos;
// rotation:
// k(2ax + 1)
// (c'est la dérivée de la position)
float dDx = k * (2 * a * x + 1);
float rotationAngle = Mathf.Atan(dDx) * Mathf.Rad2Deg;
transform.eulerAngles = new Vector3(0, 0, rotationAngle);
if (y < 0)
{
Destroy(gameObject);
}
}
protected override void HandleCollision(Collider2D other)
{
if (Target == null) return;
if (other.gameObject != Target.gameObject) return;
if (other.TryGetComponent(out Entity target))
{
ApplyEffects(target);
target.Hit(Damage);
if (target.Hp <= 0)
{
target.Death();
}
Destroy(gameObject);
}
}
}

View File

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

View File

@ -2,18 +2,19 @@ using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class BolasProjectile : Projectile
public class BolasProjectile : StraightProjectile
{
[Header("Bolas Projectile")]
[SerializeField]
private float _slowIntensity = 0.25f;
[SerializeField]
private float _slowDuration = 5f;
protected override void ApplyEffects()
protected override void ApplyEffects(Entity target)
{
if (Target.StatusHandler)
if (target.StatusHandler)
{
Target.StatusHandler.ApplySlow(_slowIntensity, _slowDuration);
target.StatusHandler.ApplySlow(_slowIntensity, _slowDuration);
}
}
}

View File

@ -0,0 +1,58 @@
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public abstract class Projectile : MonoBehaviour
{
[Header("Projectile")]
[SerializeField]
private float _speed = 5.0f;
[SerializeField]
private DirectionEnum _direction;
private int _damage;
private Entity _origin;
private Vector2 _startPos;
protected virtual void Start()
{
if (Direction == DirectionEnum.Left)
{
_speed = -_speed;
}
_startPos = new Vector2(_origin.transform.position.x, _origin.transform.position.y);
}
private void Update()
{
ApplyMovement();
if (transform.position.x < -100.0f || transform.position.x > 100.0f)
{
Destroy(gameObject);
}
}
private void OnTriggerEnter2D(Collider2D other)
{
HandleCollision(other);
}
protected virtual void ApplyEffects(Entity target) { }
protected abstract void ApplyMovement();
protected abstract void HandleCollision(Collider2D other);
public float Speed { get => _speed; set => _speed = value; }
public int Damage { get => _damage; set => _damage = value; }
private DirectionEnum Direction { get => _direction; set => _direction = value; }
public Entity Origin { get => _origin; set => _origin = value; }
public Vector2 StartPos { get => _startPos; set => _startPos = value; }
protected enum DirectionEnum
{
Right,
Left
}
}

View File

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

View File

@ -3,7 +3,7 @@ using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Projectile : MonoBehaviour
public class ProjectileOld : MonoBehaviour
{
[SerializeField]

View File

@ -0,0 +1,43 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class StraightProjectile : Projectile
{
[Header("Straight Projectile")]
[SerializeField]
private int _maxHitEntities = 1;
private List<Entity> _hitEntities = new List<Entity>();
protected override void ApplyMovement()
{
transform.position += new Vector3(Speed * Time.deltaTime, 0.0f, 0.0f);
}
protected override void HandleCollision(Collider2D other)
{
if (other.CompareTag(Origin.tag)) return;
if (other.TryGetComponent(out Entity target) &&
!HitEntities.Contains(target) &&
HitEntities.Count < MaxHitEntities)
{
ApplyEffects(target);
target.Hit(Damage);
HitEntities.Add(target);
if (target.Hp <= 0)
{
target.Death();
}
}
if (HitEntities.Count >= MaxHitEntities)
{
Destroy(gameObject);
}
}
public List<Entity> HitEntities { get => _hitEntities; set => _hitEntities = value; }
public int MaxHitEntities { get => _maxHitEntities; set => _maxHitEntities = value; }
}

View File

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

View File

@ -0,0 +1,17 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public abstract class TargetedProjectile : Projectile
{
private Vector2 _endPos;
protected override void Start()
{
base.Start();
_endPos = Target.Position;
}
public Vector2 EndPos { get => _endPos; set => _endPos = value; }
public Entity Target { get => Origin.Enemy;}
}

View File

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

View File

@ -35,13 +35,10 @@ public class Root : MonoBehaviour
Vector3 spawnPos = (_projectileSpawn == null) ? _rigidbodyAlly.position : _projectileSpawn.position;
GameObject _newArrow = Instantiate(_projectile, spawnPos, Quaternion.identity);
//Warning : the Speed of the arrow is equal to the speed of this unit, if this unit need to move, use an other variable !
_newArrow.GetComponent<Projectile>().Damage = _entity.AttackDamage;
_newArrow.GetComponent<Projectile>().EnemySpeed = _entity.Enemy.Speed;
_newArrow.GetComponent<Projectile>().VectorStart = _rigidbodyAlly.position;
_newArrow.GetComponent<Projectile>().VectorEnd = _rigidbodyOpponent.position;
_newArrow.GetComponent<Projectile>().Target = _entity.Enemy;
var projectile = _newArrow.GetComponent<Projectile>();
projectile.Damage = _entity.AttackDamage;
projectile.Origin = _entity;
}
public void PlaySound(string soundName)