public void Update() { if (_currentQuest == null) { PickAQuest(); } if (_currentCommand == null) { _currentCommand = _currentQuest.GetCommand(this); } _currentCommand.invokeOn(this); if (_currentCommand.IsCompleted()) { _currentCommand = null; if (_currentQuest.IsCompleted()) { _currentQuest.Finalize(this); GameLogger.Log(name + " finished quest for " + _currentQuest.GetType().Name); _currentQuest = null; } } OnMouseDown(); }