gather-and-defend/Assets/Scripts/Drag&Drop/ObjectPlaceholder.cs
Felix Boucher 27d329df71 fix unit cost not working anymore
turns out it was an inheritance problem
2024-01-25 14:45:50 -05:00

23 lines
918 B
C#

using UnityEngine;
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()
{
var objsOnPosition = LevelManager.Instance.GetAll<ILevelObject>(obj => obj.Position.IsContainedIn(transform.position));
var positionIsCollidable = objsOnPosition.Exists(obj => obj.IsCollidable);
var defaultUnitCost = GlobalConfig.Instance.Current.populationCostPerUnit;
return !positionIsCollidable
&& LevelBoundCache.Contains(transform.position)
&& ResourceManager.Instance.EnoughFor(Rock, Wood, Food)
&& (Prefab.GetComponent<Building>()
|| ResourceManager.Instance.EnoughPopulationFor(defaultUnitCost));
}
}