/// A standard Unity awake function. By default, initializes variables and triggers.
protected virtual void Awake();
/// Resets the puzzle to the initial state and calls 'UnTrigger' on Triggers, so the player can interact with it again.
public virtual void Reset();
/// Accepts the solution for the puzzle.
protected virtual void AcceptSolution();
/// The method that will be passed through the delegates to all of the triggers.
/// It will be invoked whenever the triggers are triggered.
/// The id of the respective trigger will be passed.
protected virtual void TriggerPuzzle(int id);