fix unit cost not working anymore

turns out it was an inheritance problem
This commit is contained in:
Felix Boucher 2024-01-25 14:45:50 -05:00
parent 42fbffd306
commit 27d329df71
5 changed files with 13 additions and 7 deletions

View File

@ -5,6 +5,7 @@ public class ObjectPlaceholder : UnitPlaceholder
public GameObject Prefab { get; set; } public GameObject Prefab { get; set; }
public override void Place() public override void Place()
{ {
base.Place();
Prefab.Create(transform.position, parent : LevelManager.Instance.LevelTransform); Prefab.Create(transform.position, parent : LevelManager.Instance.LevelTransform);
} }
public override bool CanBePlacedHere() public override bool CanBePlacedHere()

View File

@ -8,13 +8,13 @@ public abstract class PlacementButton : MonoBehaviour, IPointerDownHandler
{ {
private bool _canUse = false; private bool _canUse = false;
private Button _button; private Button _button;
private DraggablePlaceholder placeholder; private DraggablePlaceholder _placeholder;
[SerializeField] [SerializeField]
private Material _outlineMaterial; private Material _outlineMaterial;
public bool CanUse => _canUse; public bool CanUse => _canUse;
public Button Button => _button; public Button Button => _button;
public DraggablePlaceholder Placeholder => placeholder; public DraggablePlaceholder Placeholder => _placeholder;
public Material OutlineMaterial => _outlineMaterial; public Material OutlineMaterial => _outlineMaterial;
protected virtual void Start() protected virtual void Start()
{ {
@ -43,7 +43,7 @@ public abstract class PlacementButton : MonoBehaviour, IPointerDownHandler
public virtual void OnPointerDown(PointerEventData eventData) public virtual void OnPointerDown(PointerEventData eventData)
{ {
if (!_button.interactable) return; if (!_button.interactable) return;
placeholder = Place(); _placeholder = Place();
} }
protected abstract DraggablePlaceholder Place(); protected abstract DraggablePlaceholder Place();
protected virtual bool CanPlace() protected virtual bool CanPlace()

View File

@ -1,10 +1,11 @@
using UnityEngine; using UnityEngine;
public class TilePlaceholder : DraggablePlaceholder public class TilePlaceholder : UnitPlaceholder
{ {
public LevelTile Tile { get; set; } public LevelTile Tile { get; set; }
public override void Place() public override void Place()
{ {
base.Place();
LevelManager.Instance.DynamicTilemap.SetTile(Vector3Int.RoundToInt(transform.position), Tile); LevelManager.Instance.DynamicTilemap.SetTile(Vector3Int.RoundToInt(transform.position), Tile);
} }
} }

View File

@ -1,3 +1,4 @@
using UnityEngine;
public abstract class UnitPlaceholder : DraggablePlaceholder public abstract class UnitPlaceholder : DraggablePlaceholder
{ {
public int Food { get; set; } public int Food { get; set; }

View File

@ -39,8 +39,11 @@ public abstract class UnitPlacementButton : PlacementButton
public override void OnPointerDown(PointerEventData eventData) public override void OnPointerDown(PointerEventData eventData)
{ {
base.OnPointerDown(eventData); base.OnPointerDown(eventData);
(Placeholder as UnitPlaceholder).Rock = _rock; if (Placeholder is UnitPlaceholder placeHolder)
(Placeholder as UnitPlaceholder).Wood = _wood; {
(Placeholder as UnitPlaceholder).Food = _food; placeHolder.Rock = _rock;
placeHolder.Wood = _wood;
placeHolder.Food = _food;
}
} }
} }