public void FinishQuest(Quest quest) { var owner = OwnerOf(quest); Debug.Assert(owner); Debug.Assert(quest.Status == QuestStatus.Completed, "Only call FinishQuest on quests that are definitely finished"); quest.OnFinish(); owner.AddMoney(quest.MoneyReward); owner.Ship.GrantCrewXP(quest.XPReward); DestroyQuest(quest); }