diff --git a/Assets/Scripts/Objectives/EntityObjective.cs b/Assets/Scripts/Objectives/EntityObjective.cs new file mode 100644 index 0000000..72e8e93 --- /dev/null +++ b/Assets/Scripts/Objectives/EntityObjective.cs @@ -0,0 +1,35 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class EntityObjective : Objective{ + List entityList; + List spawnPointList; + + // Constructor + public EntityObjective(Room objectiveCaller, List entityList) : base(objectiveCaller) + { + this.entityList = entityList; + this.spawnPointList = spawnPointList; + spawnPointList = objectiveCaller.GetSpawnpoints (); + } + + // Activates the objective to start progresstracking + public void Activate() + { + Random newRand = new Random (); + + foreach(Entity i : entityList) + i.Spawn(spawnPointList[Random.Range(0, spawnPointList.Count)]); + + objectiveCaller.Lock(); + } + + // Removes the entity from the list and completes the objective, if the list is empty + public void Remove(Entity inputEntity) + { + entityList.Remove (inputEntity); + if (entityList.Count == 0) + objectiveCaller.Unlock (); + } +} \ No newline at end of file diff --git a/Assets/Scripts/Objectives/EntityObjective.cs.meta b/Assets/Scripts/Objectives/EntityObjective.cs.meta new file mode 100644 index 0000000..b536125 --- /dev/null +++ b/Assets/Scripts/Objectives/EntityObjective.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 566ba096ee42e114a9c0343e24a71992 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Objectives/Objective.cs b/Assets/Scripts/Objectives/Objective.cs index 0efe07d..2fa469d 100644 --- a/Assets/Scripts/Objectives/Objective.cs +++ b/Assets/Scripts/Objectives/Objective.cs @@ -2,15 +2,15 @@ using System.Collections.Generic; using UnityEngine; -public class Objective : MonoBehaviour { +public abstract class Objective { + protected Room objectiveCaller; - // Use this for initialization - void Start () { - - } - - // Update is called once per frame - void Update () { - + // Constructor + public Objective(Room objectiveCaller) + { + this.objectiveCaller = objectiveCaller; } + + // Activates the objective to start progresstracking + public virtual void Activate(){} }