From 884d4a9ee6fb0bb68dccebb797b4617dc4cac1da Mon Sep 17 00:00:00 2001 From: MaximilienBlanchardBizien1 Date: Tue, 3 Sep 2024 15:43:38 -0400 Subject: [PATCH] Fixed issue where farmer can be placed on a non-resource tile. --- Assets/Scripts/Drag&Drop/ObjectPlaceholder.cs | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/Assets/Scripts/Drag&Drop/ObjectPlaceholder.cs b/Assets/Scripts/Drag&Drop/ObjectPlaceholder.cs index 514c660..781c2fe 100644 --- a/Assets/Scripts/Drag&Drop/ObjectPlaceholder.cs +++ b/Assets/Scripts/Drag&Drop/ObjectPlaceholder.cs @@ -18,6 +18,23 @@ public class ObjectPlaceholder : UnitPlaceholder && LevelBoundCache.Contains(transform.position) && ResourceManager.Instance.EnoughFor(Rock, Wood, Food) && (Prefab.GetComponent() - || ResourceManager.Instance.EnoughPopulationFor(defaultUnitCost)); + || ResourceManager.Instance.EnoughPopulationFor(defaultUnitCost)) + && IsFarmerAndAllowed(); + } + + private bool IsFarmerAndAllowed() + { + Ally unit = Prefab.GetComponent(); + + //Obtiens info correctement. + LevelTile pointedTile = LevelManager.Instance.Get(obj => obj.Position.IsContainedIn(transform.position)); + + return unit is not Harvester || (unit is Harvester && IsAllowedTile(pointedTile)); + //return true; + } + + private bool IsAllowedTile(LevelTile pointedTile) + { + return pointedTile is ResourceTile; } } \ No newline at end of file