{"action":"created","issue":{"url":"https://api.github.com/repos/OpenRA/OpenRA/issues/7948","labels_url":"https://api.github.com/repos/OpenRA/OpenRA/issues/7948/labels{/name}","comments_url":"https://api.github.com/repos/OpenRA/OpenRA/issues/7948/comments","events_url":"https://api.github.com/repos/OpenRA/OpenRA/issues/7948/events","html_url":"https://github.com/OpenRA/OpenRA/pull/7948","id":68215182,"number":7948,"title":"Fix carryalls unreserving issue","user":{"login":"penev92","id":7137365,"avatar_url":"https://avatars.githubusercontent.com/u/7137365?v=3","gravatar_id":"","url":"https://api.github.com/users/penev92","html_url":"https://github.com/penev92","followers_url":"https://api.github.com/users/penev92/followers","following_url":"https://api.github.com/users/penev92/following{/other_user}","gists_url":"https://api.github.com/users/penev92/gists{/gist_id}","starred_url":"https://api.github.com/users/penev92/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/penev92/subscriptions","organizations_url":"https://api.github.com/users/penev92/orgs","repos_url":"https://api.github.com/users/penev92/repos","events_url":"https://api.github.com/users/penev92/events{/privacy}","received_events_url":"https://api.github.com/users/penev92/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":{"url":"https://api.github.com/repos/OpenRA/OpenRA/milestones/12","html_url":"https://github.com/OpenRA/OpenRA/milestones/Next%20release","labels_url":"https://api.github.com/repos/OpenRA/OpenRA/milestones/12/labels","id":844833,"number":12,"title":"Next release","description":"","creator":{"login":"obrakmann","id":4331210,"avatar_url":"https://avatars.githubusercontent.com/u/4331210?v=3","gravatar_id":"","url":"https://api.github.com/users/obrakmann","html_url":"https://github.com/obrakmann","followers_url":"https://api.github.com/users/obrakmann/followers","following_url":"https://api.github.com/users/obrakmann/following{/other_user}","gists_url":"https://api.github.com/users/obrakmann/gists{/gist_id}","starred_url":"https://api.github.com/users/obrakmann/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/obrakmann/subscriptions","organizations_url":"https://api.github.com/users/obrakmann/orgs","repos_url":"https://api.github.com/users/obrakmann/repos","events_url":"https://api.github.com/users/obrakmann/events{/privacy}","received_events_url":"https://api.github.com/users/obrakmann/received_events","type":"User","site_admin":false},"open_issues":2,"closed_issues":96,"state":"open","created_at":"2014-10-29T09:04:03Z","updated_at":"2015-04-14T13:20:39Z","due_on":null,"closed_at":null},"comments":1,"created_at":"2015-04-13T23:07:18Z","updated_at":"2015-04-14T16:20:40Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/OpenRA/OpenRA/pulls/7948","html_url":"https://github.com/OpenRA/OpenRA/pull/7948","diff_url":"https://github.com/OpenRA/OpenRA/pull/7948.diff","patch_url":"https://github.com/OpenRA/OpenRA/pull/7948.patch"},"body":"Fixes #7945.\r\nI'm going to explain the problem very simple to facilitate reviewing:\r\nWe have CarryallA, CarryallB, CarryallC and Harvester. (CarryallA should be the one delivering a new harvester to the refinery to reproduce easily; timing is still very important)\r\n- CarryallA dropps off Harvester, and Harvester immediately requests transport to somewhere else.\r\n- CarryallB is called in and reserves Harvester, so another carryall won't bother with it.\r\n- CarryallA has ticked his `Wait(10)` (removed in the diff below) and unreserves Harvester.\r\n- CarryallC, just becoming Idle (what luck, eh?), sees that Harvester wants transport but is not reserved and comes to the rescue to pick him up.\r\n\r\nFix is to unreserve the carryable immediatelly after dropping it off and not waiting for 10 ticks before doing it. This makes `State.Done` unneeded.\r\n\r\n`IsBusy = false;` is added because with the current set of changes, the carryall does not ascend to CruiseAltitude otherwise, because of [this check](https://github.com/OpenRA/OpenRA/blob/10ff0be4671140945d461c4da96e3ab8612cf0cc/OpenRA.Mods.D2k/Traits/Carryall.cs#L60).\r\n\r\nThis will hopefully bring us (somewhat) back on track with the release."},"comment":{"url":"https://api.github.com/repos/OpenRA/OpenRA/issues/comments/92948515","html_url":"https://github.com/OpenRA/OpenRA/pull/7948#issuecomment-92948515","issue_url":"https://api.github.com/repos/OpenRA/OpenRA/issues/7948","id":92948515,"user":{"login":"pchote","id":167819,"avatar_url":"https://avatars.githubusercontent.com/u/167819?v=3","gravatar_id":"","url":"https://api.github.com/users/pchote","html_url":"https://github.com/pchote","followers_url":"https://api.github.com/users/pchote/followers","following_url":"https://api.github.com/users/pchote/following{/other_user}","gists_url":"https://api.github.com/users/pchote/gists{/gist_id}","starred_url":"https://api.github.com/users/pchote/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pchote/subscriptions","organizations_url":"https://api.github.com/users/pchote/orgs","repos_url":"https://api.github.com/users/pchote/repos","events_url":"https://api.github.com/users/pchote/events{/privacy}","received_events_url":"https://api.github.com/users/pchote/received_events","type":"User","site_admin":false},"created_at":"2015-04-14T16:20:40Z","updated_at":"2015-04-14T16:20:40Z","body":"You should also fix `Carryable.Reserve`, which will quite happily let N carryalls reserve the same actor (and is probably the root cause of all this)."}}