// Copyright (c) Pixel Crushers. All rights reserved. using UnityEngine; namespace PixelCrushers.QuestMachine { /// /// Controls a spawner. /// public class ControlSpawnerQuestAction : QuestAction { public enum ControlState { Start, Stop, Despawn } [Tooltip("Name of spawner to control.")] [SerializeField] private StringField m_spawnerName; [Tooltip("New state.")] [SerializeField] private ControlState m_state = ControlState.Start; /// /// Name of spawner to control /// public StringField spawnerName { get { return m_spawnerName; } set { m_spawnerName = value; } } /// /// New state. /// public ControlState state { get { return m_state; } set { m_state = value; } } public override string GetEditorName() { if (StringField.IsNullOrEmpty(spawnerName)) return "Control Spawner"; return "Control Spawner: " + state + " " + spawnerName; } public override void Execute() { switch (state) { case ControlState.Start: QuestMachineMessages.StartSpawner(spawnerName); break; case ControlState.Stop: QuestMachineMessages.StopSpawner(spawnerName); break; case ControlState.Despawn: QuestMachineMessages.DespawnSpawner(spawnerName); break; } } } }