// 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;
}
}
}
}