summaryrefslogtreecommitdiff
path: root/GameCode/SpawnableObject.cs
diff options
context:
space:
mode:
Diffstat (limited to 'GameCode/SpawnableObject.cs')
-rw-r--r--GameCode/SpawnableObject.cs54
1 files changed, 54 insertions, 0 deletions
diff --git a/GameCode/SpawnableObject.cs b/GameCode/SpawnableObject.cs
new file mode 100644
index 0000000..fd7b169
--- /dev/null
+++ b/GameCode/SpawnableObject.cs
@@ -0,0 +1,54 @@
+using UnityEngine;
+
+public class SpawnableObject : MonoBehaviour, IBuildable
+{
+ [SerializeField]
+ private GameObject artStuff;
+
+ [SerializeField]
+ private bool randomRotation = true;
+
+ [SerializeField]
+ private float spawnChance;
+
+ [SerializeField]
+ private Vector2 spawnLevels;
+
+ [SerializeField]
+ protected GameObject UIObject;
+
+ protected bool spawned;
+
+ protected virtual void Start()
+ {
+ if ((float)SpawnManager.instance.level >= spawnLevels.x && (float)SpawnManager.instance.level <= spawnLevels.y && Random.Range(1f, 100f) < 100f * spawnChance)
+ {
+ if (randomRotation)
+ {
+ artStuff.transform.eulerAngles = new Vector3(0f, Random.Range(0, 4) * 90, 0f);
+ }
+ artStuff.SetActive(value: true);
+ spawned = true;
+ }
+ else
+ {
+ Object.Destroy(base.gameObject);
+ }
+ }
+
+ public void SetStats()
+ {
+ }
+
+ public virtual void SpawnUI()
+ {
+ if (UIObject != null)
+ {
+ Object.Instantiate(UIObject, base.transform.position, Quaternion.identity);
+ }
+ }
+
+ public void Demolish()
+ {
+ }
+}