public void AcceptQuest(PlayerShip player, Quest quest) { Debug.Assert(quests.Any(a => a.Quest == quest && !a.Player), "quest should not already be assigned"); var assignment = quests.Where(a => a.Quest == quest).First(); assignment.Player = player; quest.OnAccepted(); }