Sunteți pe pagina 1din 4

public class BuildManager : MonoBehaviour {

public static BuildManager instance;

void Awake()
{
if (instance != null)
{
Debug.LogError("More than one BuildManager in Scene");
return;
}
instance = this;

public GameObject standartTurretPrefab;


public GameObject anotherTurretPrefab;

private TurretBluePrint turretToBuild;

public bool CanBuild { get { return turretToBuild != null; } }

public void BuildTurretOn(Node node)


{
if (PlayerStats.Money < turretToBuild.cost )
{
Debug.Log("Sem dinheiro par�a");
return;

PlayerStats.Money -= turretToBuild.cost;

GameObject turret = (GameObject) Instantiate(turretToBuild.prefab,


node.transform.position + node.GetBuildPosition(), Quaternion.identity);
node.turret = turret;
Debug.Log("Turret construida! Sobrando:" + PlayerStats.Money);
}
public void SelectTurretToBuild(TurretBluePrint turret)
{
turretToBuild = turret;
}

public class Shop : MonoBehaviour {

public TurretBluePrint standardTurret;


public TurretBluePrint missileLauncher;

BuildManager buildManager;
void Start ()

buildManager = BuildManager.instance;

public void SelectStandardTurret()

{
Debug.Log ("Standart Turred Selected");
buildManager.SelectTurretToBuild (standardTurret);
}
public void SelectAnotherTurret()
{
Debug.Log ("Another Turred Selected");
buildManager.SelectTurretToBuild(missileLauncher);
}
}

[System.Serializable]
public class TurretBluePrint {

public GameObject prefab;


public int cost;
}

public class Node : MonoBehaviour {

public Color clickColor;


public Vector3 positionOffset;

[Header("Optional")]
public GameObject turret;

private Renderer rend;


private Color startColor;

BuildManager buildManager;
void Start () {
rend = GetComponent<Renderer>();
startColor = rend.material.color;

buildManager = BuildManager.instance;

public Vector3 GetBuildPosition() {

return transform.position + positionOffset;


}
void OnMouseDown()
{
if (EventSystem.current.IsPointerOverGameObject ())
return;

if (buildManager.CanBuild)
return;

if (turret != null)
{
Debug.Log("Nem pegando que vc vai construir aqui");
}

// buildManager.BuildTurretOn(this);
}

void OnMouseEnter()
{
if (EventSystem.current.IsPointerOverGameObject ())
return;

if (buildManager.CanBuild)
return;

rend.material.color = clickColor;
}
void OnMouseExit()
{
rend.material.color = startColor;
}
}

public class PlayerStats : MonoBehaviour {

public static int Money;


public int startMoney = 400;
void Start()
{
Money = startMoney;
}

S-ar putea să vă placă și