{"action":"created","issue":{"url":"https://api.github.com/repos/sinkillerj/ProjectE/issues/1039","labels_url":"https://api.github.com/repos/sinkillerj/ProjectE/issues/1039/labels{/name}","comments_url":"https://api.github.com/repos/sinkillerj/ProjectE/issues/1039/comments","events_url":"https://api.github.com/repos/sinkillerj/ProjectE/issues/1039/events","html_url":"https://github.com/sinkillerj/ProjectE/pull/1039","id":109709157,"number":1039,"title":"Allow unlearning from full knowledge","user":{"login":"Lilylicious","id":5985728,"avatar_url":"https://avatars.githubusercontent.com/u/5985728?v=3","gravatar_id":"","url":"https://api.github.com/users/Lilylicious","html_url":"https://github.com/Lilylicious","followers_url":"https://api.github.com/users/Lilylicious/followers","following_url":"https://api.github.com/users/Lilylicious/following{/other_user}","gists_url":"https://api.github.com/users/Lilylicious/gists{/gist_id}","starred_url":"https://api.github.com/users/Lilylicious/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Lilylicious/subscriptions","organizations_url":"https://api.github.com/users/Lilylicious/orgs","repos_url":"https://api.github.com/users/Lilylicious/repos","events_url":"https://api.github.com/users/Lilylicious/events{/privacy}","received_events_url":"https://api.github.com/users/Lilylicious/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":7,"created_at":"2015-10-04T22:30:50Z","updated_at":"2015-10-05T15:08:57Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/sinkillerj/ProjectE/pulls/1039","html_url":"https://github.com/sinkillerj/ProjectE/pull/1039","diff_url":"https://github.com/sinkillerj/ProjectE/pull/1039.diff","patch_url":"https://github.com/sinkillerj/ProjectE/pull/1039.patch"},"body":"I decided to check to see how the performance was impacted by getting rid of the full knowledge cache and replacing it with addKnowledge for each item not currently known. As it turns out, the difference is noticeable but not inhibitingly so. There's a tiny moment of lag right as you learn the tome. After that, what you're left with is a map from which you can remove items, allowing players to unlearn items even with a full set of knowledge.\r\n\r\nThe only reason I can think of that could be an argument against this is the performance impact, which like I mentioned is minimal.\r\n\r\nWould close #970 "},"comment":{"url":"https://api.github.com/repos/sinkillerj/ProjectE/issues/comments/145563501","html_url":"https://github.com/sinkillerj/ProjectE/pull/1039#issuecomment-145563501","issue_url":"https://api.github.com/repos/sinkillerj/ProjectE/issues/1039","id":145563501,"user":{"login":"MaPePeR","id":527679,"avatar_url":"https://avatars.githubusercontent.com/u/527679?v=3","gravatar_id":"","url":"https://api.github.com/users/MaPePeR","html_url":"https://github.com/MaPePeR","followers_url":"https://api.github.com/users/MaPePeR/followers","following_url":"https://api.github.com/users/MaPePeR/following{/other_user}","gists_url":"https://api.github.com/users/MaPePeR/gists{/gist_id}","starred_url":"https://api.github.com/users/MaPePeR/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/MaPePeR/subscriptions","organizations_url":"https://api.github.com/users/MaPePeR/orgs","repos_url":"https://api.github.com/users/MaPePeR/repos","events_url":"https://api.github.com/users/MaPePeR/events{/privacy}","received_events_url":"https://api.github.com/users/MaPePeR/received_events","type":"User","site_admin":false},"created_at":"2015-10-05T15:08:57Z","updated_at":"2015-10-05T15:08:57Z","body":"List = AnotherList would copy the reference, so the lists become the same list.\r\n\r\nSo after `a=b` `a.add(something)` would also add `something` to `b`. Because both variables reference the same list.\r\n\r\nI think we can get rid of `hasFullKnowledge`. Its not really needed anymore and with the change it has a horrible complexity."}}