From 27d329df7170a12e850d11355ccd33118a94fb7e Mon Sep 17 00:00:00 2001 From: Felix Boucher Date: Thu, 25 Jan 2024 14:45:50 -0500 Subject: [PATCH] fix unit cost not working anymore turns out it was an inheritance problem --- Assets/Scripts/Drag&Drop/ObjectPlaceholder.cs | 1 + Assets/Scripts/Drag&Drop/PlacementButton.cs | 6 +++--- Assets/Scripts/Drag&Drop/TilePlaceholder.cs | 3 ++- Assets/Scripts/Drag&Drop/UnitPlaceholder.cs | 1 + Assets/Scripts/Drag&Drop/UnitPlacementButton.cs | 9 ++++++--- 5 files changed, 13 insertions(+), 7 deletions(-) diff --git a/Assets/Scripts/Drag&Drop/ObjectPlaceholder.cs b/Assets/Scripts/Drag&Drop/ObjectPlaceholder.cs index a049554..514c660 100644 --- a/Assets/Scripts/Drag&Drop/ObjectPlaceholder.cs +++ b/Assets/Scripts/Drag&Drop/ObjectPlaceholder.cs @@ -5,6 +5,7 @@ public class ObjectPlaceholder : UnitPlaceholder public GameObject Prefab { get; set; } public override void Place() { + base.Place(); Prefab.Create(transform.position, parent : LevelManager.Instance.LevelTransform); } public override bool CanBePlacedHere() diff --git a/Assets/Scripts/Drag&Drop/PlacementButton.cs b/Assets/Scripts/Drag&Drop/PlacementButton.cs index 0d78ee4..0c121e4 100644 --- a/Assets/Scripts/Drag&Drop/PlacementButton.cs +++ b/Assets/Scripts/Drag&Drop/PlacementButton.cs @@ -8,13 +8,13 @@ public abstract class PlacementButton : MonoBehaviour, IPointerDownHandler { private bool _canUse = false; private Button _button; - private DraggablePlaceholder placeholder; + private DraggablePlaceholder _placeholder; [SerializeField] private Material _outlineMaterial; public bool CanUse => _canUse; public Button Button => _button; - public DraggablePlaceholder Placeholder => placeholder; + public DraggablePlaceholder Placeholder => _placeholder; public Material OutlineMaterial => _outlineMaterial; protected virtual void Start() { @@ -43,7 +43,7 @@ public abstract class PlacementButton : MonoBehaviour, IPointerDownHandler public virtual void OnPointerDown(PointerEventData eventData) { if (!_button.interactable) return; - placeholder = Place(); + _placeholder = Place(); } protected abstract DraggablePlaceholder Place(); protected virtual bool CanPlace() diff --git a/Assets/Scripts/Drag&Drop/TilePlaceholder.cs b/Assets/Scripts/Drag&Drop/TilePlaceholder.cs index a848ad7..3c5a0be 100644 --- a/Assets/Scripts/Drag&Drop/TilePlaceholder.cs +++ b/Assets/Scripts/Drag&Drop/TilePlaceholder.cs @@ -1,10 +1,11 @@ using UnityEngine; -public class TilePlaceholder : DraggablePlaceholder +public class TilePlaceholder : UnitPlaceholder { public LevelTile Tile { get; set; } public override void Place() { + base.Place(); LevelManager.Instance.DynamicTilemap.SetTile(Vector3Int.RoundToInt(transform.position), Tile); } } \ No newline at end of file diff --git a/Assets/Scripts/Drag&Drop/UnitPlaceholder.cs b/Assets/Scripts/Drag&Drop/UnitPlaceholder.cs index fa649a6..2b786c4 100644 --- a/Assets/Scripts/Drag&Drop/UnitPlaceholder.cs +++ b/Assets/Scripts/Drag&Drop/UnitPlaceholder.cs @@ -1,3 +1,4 @@ +using UnityEngine; public abstract class UnitPlaceholder : DraggablePlaceholder { public int Food { get; set; } diff --git a/Assets/Scripts/Drag&Drop/UnitPlacementButton.cs b/Assets/Scripts/Drag&Drop/UnitPlacementButton.cs index d77761d..d497f5e 100644 --- a/Assets/Scripts/Drag&Drop/UnitPlacementButton.cs +++ b/Assets/Scripts/Drag&Drop/UnitPlacementButton.cs @@ -39,8 +39,11 @@ public abstract class UnitPlacementButton : PlacementButton public override void OnPointerDown(PointerEventData eventData) { base.OnPointerDown(eventData); - (Placeholder as UnitPlaceholder).Rock = _rock; - (Placeholder as UnitPlaceholder).Wood = _wood; - (Placeholder as UnitPlaceholder).Food = _food; + if (Placeholder is UnitPlaceholder placeHolder) + { + placeHolder.Rock = _rock; + placeHolder.Wood = _wood; + placeHolder.Food = _food; + } } }