diff --git a/Ecosystem/Assets/Resources/Prefabs/Animals/EcoBear.prefab b/Ecosystem/Assets/Resources/Prefabs/Animals/EcoBear.prefab index cc12af60..e694ea4c 100644 --- a/Ecosystem/Assets/Resources/Prefabs/Animals/EcoBear.prefab +++ b/Ecosystem/Assets/Resources/Prefabs/Animals/EcoBear.prefab @@ -216,7 +216,7 @@ Transform: m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 544792022124337019} - m_RootOrder: 3 + m_RootOrder: 4 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!114 &7401787944804568421 MonoBehaviour: @@ -873,6 +873,68 @@ Transform: m_Father: {fileID: 4843140740582838852} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0.00000023362128, y: -0.0000006520363, z: -29.483406} +--- !u!1 &4143898090840446108 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1989219069708907523} + - component: {fileID: 6099936823869748466} + - component: {fileID: 5332121943505842391} + m_Layer: 15 + m_Name: CollisionBody + m_TagString: Bear + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1989219069708907523 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4143898090840446108} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 1, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 544792022124337019} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!54 &6099936823869748466 +Rigidbody: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4143898090840446108} + serializedVersion: 2 + m_Mass: 1 + m_Drag: 0 + m_AngularDrag: 0.05 + m_UseGravity: 0 + m_IsKinematic: 1 + m_Interpolate: 0 + m_Constraints: 0 + m_CollisionDetection: 0 +--- !u!136 &5332121943505842391 +CapsuleCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4143898090840446108} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + m_Radius: 0.5 + m_Height: 1 + m_Direction: 1 + m_Center: {x: 0, y: 0, z: 0} --- !u!1 &4817363271471425423 GameObject: m_ObjectHideFlags: 0 @@ -1454,6 +1516,7 @@ Transform: m_Children: - {fileID: 6202726201221624531} - {fileID: 6806383843864788235} + - {fileID: 1989219069708907523} - {fileID: 4209797981683069471} - {fileID: 5745841613518323677} - {fileID: 9072426238585536074} @@ -1560,6 +1623,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: b65414bb43209374c86329675bc191ee, type: 3} m_Name: m_EditorClassIdentifier: + key: --- !u!1 &7509506793630284121 GameObject: m_ObjectHideFlags: 0 @@ -1651,7 +1715,7 @@ Transform: m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 544792022124337019} - m_RootOrder: 2 + m_RootOrder: 3 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!135 &6405190242370463797 SphereCollider: @@ -1962,7 +2026,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 7770376172294729736, guid: b11869fe3d5ecbf4b912f33fa4a312db, type: 3} propertyPath: m_RootOrder - value: 4 + value: 5 objectReference: {fileID: 0} - target: {fileID: 7770376172294729736, guid: b11869fe3d5ecbf4b912f33fa4a312db, type: 3} propertyPath: m_LocalPosition.x @@ -2047,6 +2111,17 @@ Transform: m_CorrespondingSourceObject: {fileID: 7770376172294729736, guid: b11869fe3d5ecbf4b912f33fa4a312db, type: 3} m_PrefabInstance: {fileID: 1599429246770187842} m_PrefabAsset: {fileID: 0} +--- !u!114 &3410853300184415869 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 4136443473164136511, guid: b11869fe3d5ecbf4b912f33fa4a312db, type: 3} + m_PrefabInstance: {fileID: 1599429246770187842} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0f33f2c7a1419e740be5570d71daa2bf, type: 3} + m_Name: + m_EditorClassIdentifier: --- !u!114 &8610027635385015251 stripped MonoBehaviour: m_CorrespondingSourceObject: {fileID: 7011725190466901393, guid: b11869fe3d5ecbf4b912f33fa4a312db, type: 3} @@ -2091,14 +2166,3 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 920e87bfe7fe9274dbe2c10fc8c06029, type: 3} m_Name: m_EditorClassIdentifier: ---- !u!114 &3410853300184415869 stripped -MonoBehaviour: - m_CorrespondingSourceObject: {fileID: 4136443473164136511, guid: b11869fe3d5ecbf4b912f33fa4a312db, type: 3} - m_PrefabInstance: {fileID: 1599429246770187842} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 0f33f2c7a1419e740be5570d71daa2bf, type: 3} - m_Name: - m_EditorClassIdentifier: diff --git a/Ecosystem/Assets/Resources/Prefabs/Animals/EcoDeer.prefab b/Ecosystem/Assets/Resources/Prefabs/Animals/EcoDeer.prefab index 3b77b1f7..b3c645b6 100644 --- a/Ecosystem/Assets/Resources/Prefabs/Animals/EcoDeer.prefab +++ b/Ecosystem/Assets/Resources/Prefabs/Animals/EcoDeer.prefab @@ -1785,7 +1785,7 @@ Transform: m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 3350421026760717125} - m_RootOrder: 4 + m_RootOrder: 5 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!114 &1611194173291749041 MonoBehaviour: @@ -4830,7 +4830,7 @@ Transform: m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 3350421026760717125} - m_RootOrder: 3 + m_RootOrder: 4 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!135 &6776153342693034266 SphereCollider: @@ -5587,6 +5587,68 @@ Transform: m_Father: {fileID: 7297888203524714111} m_RootOrder: 3 m_LocalEulerAnglesHint: {x: -12.396441, y: 15.353037, z: -1.154628} +--- !u!1 &5587942226253188095 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2482981478392024048} + - component: {fileID: 6163810713771259581} + - component: {fileID: 2450439116839188765} + m_Layer: 16 + m_Name: CollisionBody + m_TagString: Deer + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2482981478392024048 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5587942226253188095} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 1, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 3350421026760717125} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!54 &6163810713771259581 +Rigidbody: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5587942226253188095} + serializedVersion: 2 + m_Mass: 1 + m_Drag: 0 + m_AngularDrag: 0.05 + m_UseGravity: 0 + m_IsKinematic: 1 + m_Interpolate: 0 + m_Constraints: 0 + m_CollisionDetection: 0 +--- !u!136 &2450439116839188765 +CapsuleCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5587942226253188095} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + m_Radius: 0.5 + m_Height: 1 + m_Direction: 1 + m_Center: {x: 0, y: 0, z: 0} --- !u!1 &5652333481777833550 GameObject: m_ObjectHideFlags: 0 @@ -7323,6 +7385,7 @@ Transform: - {fileID: 4704647009540235580} - {fileID: 4898058360673817619} - {fileID: 2612359751320925015} + - {fileID: 2482981478392024048} - {fileID: 1583206724766175299} - {fileID: 4284669953163483551} - {fileID: 497818961259405540} @@ -7429,6 +7492,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 9414ef04b79fdc7498427d2db88290e7, type: 3} m_Name: m_EditorClassIdentifier: + key: --- !u!1 &7167050597269155267 GameObject: m_ObjectHideFlags: 0 @@ -9983,7 +10047,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 7770376172294729736, guid: b11869fe3d5ecbf4b912f33fa4a312db, type: 3} propertyPath: m_RootOrder - value: 5 + value: 6 objectReference: {fileID: 0} - target: {fileID: 7770376172294729736, guid: b11869fe3d5ecbf4b912f33fa4a312db, type: 3} propertyPath: m_LocalPosition.x diff --git a/Ecosystem/Assets/Resources/Prefabs/Animals/EcoRabbit.prefab b/Ecosystem/Assets/Resources/Prefabs/Animals/EcoRabbit.prefab index c85e1e77..c9eeba55 100644 --- a/Ecosystem/Assets/Resources/Prefabs/Animals/EcoRabbit.prefab +++ b/Ecosystem/Assets/Resources/Prefabs/Animals/EcoRabbit.prefab @@ -575,7 +575,7 @@ Transform: m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 831424744415161892} - m_RootOrder: 3 + m_RootOrder: 4 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!114 &5874587009778383877 MonoBehaviour: @@ -924,6 +924,7 @@ Transform: m_Children: - {fileID: 6466567423500765419} - {fileID: 1601967919905564320} + - {fileID: 301250397837998360} - {fileID: 6132990314379234639} - {fileID: 7268078574618211150} - {fileID: 2093779445486166218} @@ -1002,6 +1003,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 722870adf75749399b54d4edf4c101cf, type: 3} m_Name: m_EditorClassIdentifier: + key: --- !u!114 &2656864231929346077 MonoBehaviour: m_ObjectHideFlags: 0 @@ -1418,6 +1420,68 @@ Transform: m_Father: {fileID: 8709122171180440129} m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &4604134742077945277 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 301250397837998360} + - component: {fileID: 6294318335166490769} + - component: {fileID: 4441774290197562035} + m_Layer: 17 + m_Name: CollisionBody + m_TagString: Rabbit + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &301250397837998360 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4604134742077945277} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 1, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 831424744415161892} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!54 &6294318335166490769 +Rigidbody: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4604134742077945277} + serializedVersion: 2 + m_Mass: 1 + m_Drag: 0 + m_AngularDrag: 0.05 + m_UseGravity: 0 + m_IsKinematic: 1 + m_Interpolate: 0 + m_Constraints: 0 + m_CollisionDetection: 0 +--- !u!136 &4441774290197562035 +CapsuleCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4604134742077945277} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + m_Radius: 0.5 + m_Height: 1 + m_Direction: 1 + m_Center: {x: 0, y: 0, z: 0} --- !u!1 &4673196777752908634 GameObject: m_ObjectHideFlags: 0 @@ -2097,7 +2161,7 @@ Transform: m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 831424744415161892} - m_RootOrder: 2 + m_RootOrder: 3 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!135 &7194725648983189641 SphereCollider: @@ -2361,7 +2425,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 7770376172294729736, guid: b11869fe3d5ecbf4b912f33fa4a312db, type: 3} propertyPath: m_RootOrder - value: 4 + value: 5 objectReference: {fileID: 0} - target: {fileID: 7770376172294729736, guid: b11869fe3d5ecbf4b912f33fa4a312db, type: 3} propertyPath: m_LocalPosition.x @@ -2441,6 +2505,11 @@ PrefabInstance: objectReference: {fileID: 0} m_RemovedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: b11869fe3d5ecbf4b912f33fa4a312db, type: 3} +--- !u!4 &2093779445486166218 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 7770376172294729736, guid: b11869fe3d5ecbf4b912f33fa4a312db, type: 3} + m_PrefabInstance: {fileID: 8564565261024153794} + m_PrefabAsset: {fileID: 0} --- !u!114 &5745726529469456637 stripped MonoBehaviour: m_CorrespondingSourceObject: {fileID: 4136443473164136511, guid: b11869fe3d5ecbf4b912f33fa4a312db, type: 3} @@ -2496,8 +2565,3 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 920e87bfe7fe9274dbe2c10fc8c06029, type: 3} m_Name: m_EditorClassIdentifier: ---- !u!4 &2093779445486166218 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 7770376172294729736, guid: b11869fe3d5ecbf4b912f33fa4a312db, type: 3} - m_PrefabInstance: {fileID: 8564565261024153794} - m_PrefabAsset: {fileID: 0} diff --git a/Ecosystem/Assets/Resources/Prefabs/Animals/EcoWolf.prefab b/Ecosystem/Assets/Resources/Prefabs/Animals/EcoWolf.prefab index b44625b8..cc6131f0 100644 --- a/Ecosystem/Assets/Resources/Prefabs/Animals/EcoWolf.prefab +++ b/Ecosystem/Assets/Resources/Prefabs/Animals/EcoWolf.prefab @@ -2903,6 +2903,68 @@ Transform: m_Father: {fileID: 4702239310896407785} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: -1.17438924e-14, y: -1.6057316e-15, z: -66.26496} +--- !u!1 &3090158502404602965 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6116394236084000837} + - component: {fileID: 3732657203391127940} + - component: {fileID: 4097823576295962205} + m_Layer: 18 + m_Name: CollisionBody + m_TagString: Wolf + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &6116394236084000837 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3090158502404602965} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 1, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 3855438275871624271} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!54 &3732657203391127940 +Rigidbody: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3090158502404602965} + serializedVersion: 2 + m_Mass: 1 + m_Drag: 0 + m_AngularDrag: 0.05 + m_UseGravity: 0 + m_IsKinematic: 1 + m_Interpolate: 0 + m_Constraints: 0 + m_CollisionDetection: 0 +--- !u!136 &4097823576295962205 +CapsuleCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3090158502404602965} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + m_Radius: 0.5 + m_Height: 1 + m_Direction: 1 + m_Center: {x: 0, y: 0, z: 0} --- !u!1 &3106327846118201247 GameObject: m_ObjectHideFlags: 0 @@ -4482,6 +4544,7 @@ Transform: - {fileID: 328407980031258035} - {fileID: 309100394943074087} - {fileID: 3535137427197502617} + - {fileID: 6116394236084000837} - {fileID: 1794369525927108614} - {fileID: 7604608410832787383} - {fileID: 6683081320051062481} @@ -7449,7 +7512,7 @@ Transform: m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 3855438275871624271} - m_RootOrder: 3 + m_RootOrder: 4 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!135 &651377425655632140 SphereCollider: @@ -8545,7 +8608,7 @@ Transform: m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 3855438275871624271} - m_RootOrder: 4 + m_RootOrder: 5 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!114 &6378755894846735859 MonoBehaviour: @@ -10057,7 +10120,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 7770376172294729736, guid: b11869fe3d5ecbf4b912f33fa4a312db, type: 3} propertyPath: m_RootOrder - value: 5 + value: 6 objectReference: {fileID: 0} - target: {fileID: 7770376172294729736, guid: b11869fe3d5ecbf4b912f33fa4a312db, type: 3} propertyPath: m_LocalPosition.x diff --git a/Ecosystem/Assets/Scripts/AnimalBehaviour/Predators/Bear/BearChasingPreyState.cs b/Ecosystem/Assets/Scripts/AnimalBehaviour/Predators/Bear/BearChasingPreyState.cs index 1d8641f8..8a9f80dd 100644 --- a/Ecosystem/Assets/Scripts/AnimalBehaviour/Predators/Bear/BearChasingPreyState.cs +++ b/Ecosystem/Assets/Scripts/AnimalBehaviour/Predators/Bear/BearChasingPreyState.cs @@ -13,6 +13,7 @@ public override void Begin(GameObject target) { Target = target; MovementController.SetDestination(Target.transform.position); + Consumer.CheckLastCollision(); } public override AnimalState Tick() diff --git a/Ecosystem/Assets/Scripts/AnimalBehaviour/Predators/Bear/BearRunningTowardsFoodState.cs b/Ecosystem/Assets/Scripts/AnimalBehaviour/Predators/Bear/BearRunningTowardsFoodState.cs index 3b4c92ee..1de1fb76 100644 --- a/Ecosystem/Assets/Scripts/AnimalBehaviour/Predators/Bear/BearRunningTowardsFoodState.cs +++ b/Ecosystem/Assets/Scripts/AnimalBehaviour/Predators/Bear/BearRunningTowardsFoodState.cs @@ -13,6 +13,7 @@ public override void Begin(GameObject target) AnimationController.EnterMoveAnimation(); Target = target; MovementController.SetDestination(Target.transform.position); + Consumer.CheckLastCollision(); } public override AnimalState Tick() diff --git a/Ecosystem/Assets/Scripts/AnimalBehaviour/Predators/Wolf/WolfChasingPreyState.cs b/Ecosystem/Assets/Scripts/AnimalBehaviour/Predators/Wolf/WolfChasingPreyState.cs index 9b7d3308..911089e7 100644 --- a/Ecosystem/Assets/Scripts/AnimalBehaviour/Predators/Wolf/WolfChasingPreyState.cs +++ b/Ecosystem/Assets/Scripts/AnimalBehaviour/Predators/Wolf/WolfChasingPreyState.cs @@ -13,6 +13,7 @@ public override void Begin(GameObject target) { Target = target; MovementController.SetDestination(Target.transform.position); + Consumer.CheckLastCollision(); } public override AnimalState Tick() diff --git a/Ecosystem/Assets/Scripts/AnimalBehaviour/Predators/Wolf/WolfRunningTowardsFoodState.cs b/Ecosystem/Assets/Scripts/AnimalBehaviour/Predators/Wolf/WolfRunningTowardsFoodState.cs index f842e3a3..a273cfd4 100644 --- a/Ecosystem/Assets/Scripts/AnimalBehaviour/Predators/Wolf/WolfRunningTowardsFoodState.cs +++ b/Ecosystem/Assets/Scripts/AnimalBehaviour/Predators/Wolf/WolfRunningTowardsFoodState.cs @@ -13,6 +13,7 @@ public override void Begin(GameObject target) AnimationController.EnterMoveAnimation(); Target = target; MovementController.SetDestination(Target.transform.position); + Consumer.CheckLastCollision(); } public override AnimalState Tick() diff --git a/Ecosystem/Assets/Scripts/AnimalBehaviour/Prey/Rabbit/RabbitLookingForMateState.cs b/Ecosystem/Assets/Scripts/AnimalBehaviour/Prey/Rabbit/RabbitLookingForMateState.cs index 6e1ac71a..5f834312 100644 --- a/Ecosystem/Assets/Scripts/AnimalBehaviour/Prey/Rabbit/RabbitLookingForMateState.cs +++ b/Ecosystem/Assets/Scripts/AnimalBehaviour/Prey/Rabbit/RabbitLookingForMateState.cs @@ -70,7 +70,7 @@ public override void OnSphereEnter(Collider other) { MemoryController.SaveToMemory(otherObject); } - else if (Reproducer.CompatibleAsParents(otherObject) || Tags.IsPredator(otherObject)) + else if (Reproducer.CompatibleAsParents(other.transform.parent.gameObject) || Tags.IsPredator(otherObject)) { Target = otherObject; } diff --git a/Ecosystem/Assets/Scripts/Consumer/BearConsumer.cs b/Ecosystem/Assets/Scripts/Consumer/BearConsumer.cs index 2370eb30..f249809b 100644 --- a/Ecosystem/Assets/Scripts/Consumer/BearConsumer.cs +++ b/Ecosystem/Assets/Scripts/Consumer/BearConsumer.cs @@ -21,6 +21,8 @@ public sealed class BearConsumer : MonoBehaviour, IConsumer [SerializeField] private Reproducer reproducer; [SerializeField] private float maxHunger = 100; + private Collider _lastCollision; + private bool _isDead; private const int Scaler = 4; @@ -79,6 +81,7 @@ private void OnTriggerEnter(Collider other) { if (!ColliderActive || IsConsuming) { + _lastCollision = other; return; } @@ -108,21 +111,53 @@ private void OnTriggerEnter(Collider other) EatingFromGameObject = otherObject; } } - + + public void CheckLastCollision() + { + if (!_lastCollision) + { + return; + } + var temp = Vector3.Distance(_lastCollision.transform.position, gameObject.transform.position); + if (temp > 5) + { + Debug.Log(temp + " distance away"); + return; + } + OnTriggerEnter(_lastCollision); + } + + /* private void OnTriggerStay(Collider other) { var otherObject = other.gameObject; - if (ColliderActive) + if (!ColliderActive || IsConsuming) + { + Debug.Log("bear redundant"); + return; + } + if (Tags.IsPrey(otherObject)) { - if (Tags.IsMeat(otherObject)) + var otherDeathHandler = otherObject.GetComponentInParent(); + if (!otherDeathHandler.isDead) + { + IsConsuming = true; + + var nutritionController = otherDeathHandler.Die(CauseOfDeath.Eaten); + Hunger -= nutritionController.Consume(Hunger); + + OnPreyConsumed?.Invoke(); + } + } + else if (Tags.IsMeat(otherObject)) + { + if (otherObject.TryGetComponent(out NutritionController otherNutritionController)) { - if (otherObject.TryGetComponent(out NutritionController otherNutritionController)) - { - Hunger -= otherNutritionController.Consume(Hunger); - } + Hunger -= otherNutritionController.Consume(Hunger); } } } + */ private void OnTriggerExit(Collider other) { @@ -132,6 +167,7 @@ private void OnTriggerExit(Collider other) } } + public bool IsHungry() { return Hunger > genome.GetHungerThreshold().Value; diff --git a/Ecosystem/Assets/Scripts/Consumer/DeerConsumer.cs b/Ecosystem/Assets/Scripts/Consumer/DeerConsumer.cs index f793898f..a798c418 100644 --- a/Ecosystem/Assets/Scripts/Consumer/DeerConsumer.cs +++ b/Ecosystem/Assets/Scripts/Consumer/DeerConsumer.cs @@ -90,5 +90,10 @@ public void SetSaturation(float value) _isDead = false; resourceBar.SetSaturationValue(value); } + + public void CheckLastCollision() + { + throw new System.NotImplementedException(); + } } } \ No newline at end of file diff --git a/Ecosystem/Assets/Scripts/Consumer/IConsumer.cs b/Ecosystem/Assets/Scripts/Consumer/IConsumer.cs index 7bde97d1..15a29462 100644 --- a/Ecosystem/Assets/Scripts/Consumer/IConsumer.cs +++ b/Ecosystem/Assets/Scripts/Consumer/IConsumer.cs @@ -18,5 +18,7 @@ public interface IConsumer bool IsHungry(); void SetSaturation(float value); + + void CheckLastCollision(); } } \ No newline at end of file diff --git a/Ecosystem/Assets/Scripts/Consumer/RabbitConsumer.cs b/Ecosystem/Assets/Scripts/Consumer/RabbitConsumer.cs index d4509da7..1f0bce68 100644 --- a/Ecosystem/Assets/Scripts/Consumer/RabbitConsumer.cs +++ b/Ecosystem/Assets/Scripts/Consumer/RabbitConsumer.cs @@ -115,5 +115,10 @@ public void SetSaturation(float value) _isDead = false; resourceBar.SetSaturationValue(value); } + + public void CheckLastCollision() + { + throw new System.NotImplementedException(); + } } } \ No newline at end of file diff --git a/Ecosystem/Assets/Scripts/Consumer/WolfConsumer.cs b/Ecosystem/Assets/Scripts/Consumer/WolfConsumer.cs index 99edfb10..815f4835 100644 --- a/Ecosystem/Assets/Scripts/Consumer/WolfConsumer.cs +++ b/Ecosystem/Assets/Scripts/Consumer/WolfConsumer.cs @@ -19,6 +19,8 @@ public sealed class WolfConsumer : MonoBehaviour, IConsumer [SerializeField] private Reproducer reproducer; [SerializeField] private float maxHunger = 100; + private Collider _lastCollision; + private bool _isDead; public float Hunger { get; private set; } @@ -62,6 +64,7 @@ private void OnTriggerEnter(Collider other) { if (!ColliderActive || IsConsuming) { + _lastCollision = other; return; } @@ -88,20 +91,52 @@ private void OnTriggerEnter(Collider other) } } + public void CheckLastCollision() + { + if (!_lastCollision) + { + return; + } + var temp = Vector3.Distance(_lastCollision.transform.position, gameObject.transform.position); + if (temp > 5) + { + Debug.Log(temp + " distance away"); + return; + } + OnTriggerEnter(_lastCollision); + } + + /* private void OnTriggerStay(Collider other) { var otherObject = other.gameObject; - if (ColliderActive) + if (!ColliderActive || IsConsuming) { - if (Tags.IsMeat(otherObject)) + Debug.Log("wolf redundant"); + return; + } + if (Tags.IsPrey(otherObject)) + { + var otherDeathHandler = otherObject.GetComponentInParent(); + if (!otherDeathHandler.isDead) + { + IsConsuming = true; + + var nutritionController = otherDeathHandler.Die(CauseOfDeath.Eaten); + Hunger -= nutritionController.Consume(Hunger); + + OnPreyConsumed?.Invoke(); + } + } + else if (Tags.IsMeat(otherObject)) + { + if (otherObject.TryGetComponent(out NutritionController otherNutritionController)) { - if (otherObject.TryGetComponent(out NutritionController otherNutritionController)) - { - Hunger -= otherNutritionController.Consume(Hunger); - } + Hunger -= otherNutritionController.Consume(Hunger); } } } + */ public bool IsHungry() { diff --git a/Ecosystem/Assets/Scripts/Genes/RabbitGenome.cs b/Ecosystem/Assets/Scripts/Genes/RabbitGenome.cs index d58504c0..b814223f 100644 --- a/Ecosystem/Assets/Scripts/Genes/RabbitGenome.cs +++ b/Ecosystem/Assets/Scripts/Genes/RabbitGenome.cs @@ -27,7 +27,7 @@ public sealed class RabbitGenome : AbstractGenome {GeneType.ThirstThreshold, new Preset(25, 40, new[] {30f})}, {GeneType.Vision, new Preset(5, 10, new[] {7.5f})}, {GeneType.Speed, new Preset(2, 4, new[] {3f})}, - {GeneType.GestationPeriod, new Preset(10, 120, new[] {12f})}, + {GeneType.GestationPeriod, new Preset(10, 120, new[] {30f})}, {GeneType.SexualMaturityTime, new Preset(10, 150, new[] {20f})} }; diff --git a/Ecosystem/Assets/Scripts/Reproducer.cs b/Ecosystem/Assets/Scripts/Reproducer.cs index 054947ae..f66489c8 100644 --- a/Ecosystem/Assets/Scripts/Reproducer.cs +++ b/Ecosystem/Assets/Scripts/Reproducer.cs @@ -80,8 +80,8 @@ private void Update() if (IsPregnant) { - _childSaturation += genome.Metabolism * AbstractGenome.ChildFoodConsumptionFactor * Time.deltaTime; - _childHydration += genome.GetThirstRate().Value * Time.deltaTime; + _childSaturation += genome.Metabolism * AbstractGenome.ChildFoodConsumptionFactor * Time.deltaTime * 4; + _childHydration += genome.GetThirstRate().Value * Time.deltaTime * 4; _pregnancyElapsedTime += Time.deltaTime; if (_pregnancyElapsedTime >= _gestationPeriod) { @@ -94,8 +94,8 @@ private void Update() public bool CompatibleAsParents(GameObject other) { - return other.TryGetComponent(out Reproducer otherReproducer) && - otherReproducer.CanMate && + var otherReproducer = other.GetComponentInChildren(); + return otherReproducer.CanMate && Genomes.CompatibleAsParents(genome, otherReproducer.genome); } diff --git a/Ecosystem/ProjectSettings/DynamicsManager.asset b/Ecosystem/ProjectSettings/DynamicsManager.asset index 45122385..49636c81 100644 --- a/Ecosystem/ProjectSettings/DynamicsManager.asset +++ b/Ecosystem/ProjectSettings/DynamicsManager.asset @@ -18,7 +18,7 @@ PhysicsManager: m_ClothInterCollisionDistance: 0 m_ClothInterCollisionStiffness: 0 m_ContactsGeneration: 1 - m_LayerCollisionMatrix: 7f2af8ff7f2af8ff7f2af8ff7f2af8ffffbfffff7f2af8ff7f2bfaff9031ff1fd0c5fe1f7f2af8ff10f5fb1f7f2af8ff9094fd1fffaefcff0085fa1f1075f81f9014f81fd045f81f9031f81fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f2af8ff7f2af8ff7f2af8ff + m_LayerCollisionMatrix: 7f2af8ff7f2af8ff7f2af8ff7f2af8ffffbfffff7f2af8ff7f2bfaff9031f81fd045f81f7f2af8ff1075f81f7f2af8ff9014f81fffaefcff0085fa1f10e0fb1f1080fd1f50c0fe1f1020ff1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f2af8ff7f2af8ff7f2af8ff m_AutoSimulation: 1 m_AutoSyncTransforms: 0 m_ReuseCollisionCallbacks: 1