{"action":"created","comment":{"url":"https://api.github.com/repos/OpenRA/OpenRA/pulls/comments/34666888","id":34666888,"diff_hunk":"@@ -141,52 +200,106 @@ public void Tick(World world)\n \t\t\tif (anim != null)\n \t\t\t\tanim.Tick();\n \n-\t\t\t// Missile tracks target\n+\t\t\tvar cell = world.Map.CellContaining(pos);\n+\t\t\tvar terrainHeight = world.Map.MapHeight.Value[world.Map.CellContaining(pos)] * 512;\n+\n+\t\t\t// Switch from freefall mode to homing mode\n+\t\t\tif (ticks == info.ActivationDelay + 1)\n+\t\t\t{\n+\t\t\t\tactivated = true;\n+\t\t\t\thFacing = OpenRA.Traits.Util.GetFacing(velocity, hFacing);\n+\t\t\t}\n+\n+\t\t\t// Switch from homing mode to freefall mode\n+\t\t\tif (info.RangeLimit != 0 && ticks == info.RangeLimit + 1)\n+\t\t\t{\n+\t\t\t\tactivated = false;\n+\t\t\t\tvelocity = new WVec(WDist.Zero, -info.Speed, WDist.Zero)\n+\t\t\t\t\t.Rotate(new WRot(WAngle.FromFacing(vFacing), WAngle.Zero, WAngle.Zero))\n+\t\t\t\t\t.Rotate(new WRot(WAngle.Zero, WAngle.Zero, WAngle.FromFacing(hFacing)));\n+\t\t\t}\n+\n+\t\t\t// Check if target position should be updated (actor visible & locked on)\n \t\t\tif (args.GuidedTarget.IsValidFor(args.SourceActor) && lockOn)\n \t\t\t\ttargetPosition = args.GuidedTarget.CenterPosition;\n \n+\t\t\t// Compute current distance from target position\n \t\t\tvar dist = targetPosition + offset - pos;\n-\t\t\tvar desiredFacing = OpenRA.Traits.Util.GetFacing(dist, facing);\n-\t\t\tvar desiredAltitude = targetPosition.Z;\n-\t\t\tvar jammed = info.Jammable && world.ActorsWithTrait<JamsMissiles>().Any(JammedBy);\n \n-\t\t\tif (jammed)\n+\t\t\tWVec move;\n+\t\t\tif (activated)\n \t\t\t{\n-\t\t\t\tdesiredFacing = facing + world.SharedRandom.Next(-20, 21);\n-\t\t\t\tdesiredAltitude = world.SharedRandom.Next(-43, 86);\n+\t\t\t\t// If target is not within range and cruise altitudes are used,\n+\t\t\t\t// aim at the same target but at cruise altitude above current terrain height.\n+\n+\t\t\t\t// Target is considered in range if it would take the missile more time to\n+\t\t\t\t// travel the distance dist.HorizontalLength at speed info.Speed than to\n+\t\t\t\t// reach ground using maximum vertical turning downwards starting with the\n+\t\t\t\t// current vertical facing.\n+\n+\t\t\t\t// Basically vDist is the representation in the x-y plane\n+\t\t\t\t// of the projection of dist in the z-hDist plane,\n+\t\t\t\t// where hDist is the projection of dist in the x-y plane.\n+\n+\t\t\t\t// This allows applying vertical rate of turn in the same way as the\n+\t\t\t\t// horizontal rate of turn is applied.\n+\t\t\t\tWVec vDist;\n+\t\t\t\tif (info.CruiseAltitude.Length > 0 && dist.HorizontalLength * info.VerticalRateOfTurn > info.Speed.Length * ((vFacing + 0x40) & 0xFF))\n+\t\t\t\t\tvDist = new WVec(-(dist.Z - targetPosition.Z + info.CruiseAltitude.Length + terrainHeight), -dist.HorizontalLength, 0);\n+\t\t\t\telse\n+\t\t\t\t\tvDist = new WVec(-dist.Z, -dist.HorizontalLength, 0);\n+\n+\t\t\t\t// Compute which direction the projectile should be facing\n+\t\t\t\tvar desiredHFacing = OpenRA.Traits.Util.GetFacing(dist, hFacing);\n+\t\t\t\tvar desiredVFacing = OpenRA.Traits.Util.GetFacing(vDist, vFacing);\n+\n+\t\t\t\t// Check whether the homing mechanism is jammed\n+\t\t\t\tvar jammed = info.Jammable && world.ActorsWithTrait<JamsMissiles>().Any(JammedBy);\n+\t\t\t\tif (jammed)\n+\t\t\t\t{\n+\t\t\t\t\tdesiredHFacing = hFacing + world.SharedRandom.Next(-20, 21);\n+\t\t\t\t\tdesiredVFacing = vFacing + world.SharedRandom.Next(-20, 21);\n+\t\t\t\t}\n+\t\t\t\telse if (!args.GuidedTarget.IsValidFor(args.SourceActor))\n+\t\t\t\t\tdesiredHFacing = hFacing;\n+\n+\t\t\t\t// Compute new direction the projectile will be facing\n+\t\t\t\thFacing = OpenRA.Traits.Util.TickFacing(hFacing, desiredHFacing, info.RateOfTurn);\n+\t\t\t\tvFacing = OpenRA.Traits.Util.TickFacing(vFacing, desiredVFacing, info.VerticalRateOfTurn);\n+\n+\t\t\t\t// Compute the projectile's guided displacement\n+\t\t\t\tmove = new WVec(0, -1024, 0)\n+\t\t\t\t\t.Rotate(new WRot(WAngle.FromFacing(vFacing), WAngle.Zero, WAngle.Zero))\n+\t\t\t\t\t.Rotate(new WRot(WAngle.Zero, WAngle.Zero, WAngle.FromFacing(hFacing)))\n+\t\t\t\t\t* info.Speed.Length / 1024;\n \t\t\t}\n-\t\t\telse if (!args.GuidedTarget.IsValidFor(args.SourceActor))\n-\t\t\t\tdesiredFacing = facing;\n-\n-\t\t\tfacing = OpenRA.Traits.Util.TickFacing(facing, desiredFacing, info.RateOfTurn);\n-\t\t\tvar move = new WVec(0, -1024, 0).Rotate(WRot.FromFacing(facing)) * info.Speed.Length / 1024;\n-\n-\t\t\tif (pos.Z != desiredAltitude)\n+\t\t\telse\n \t\t\t{\n-\t\t\t\tvar delta = move.HorizontalLength * info.MaximumPitch.Tan() / 1024;\n-\t\t\t\tvar dz = (targetPosition.Z - pos.Z).Clamp(-delta, delta);\n-\t\t\t\tmove += new WVec(0, 0, dz);\n+\t\t\t\t// Compute the projectile's freefall displacement\n+\t\t\t\tmove = velocity + gravity / 2;\n+\t\t\t\tvelocity += gravity;\n \t\t\t}\n \n+\t\t\t// Move the projectile\n \t\t\tpos += move;\n \n-\t\t\tif (!string.IsNullOrEmpty(info.Trail) && --ticksToNextSmoke < 0)\n+\t\t\t// Create the smoke trail effect\n+\t\t\tif (!string.IsNullOrEmpty(info.Trail) && --ticksToNextSmoke < 0 && (activated || info.SmokeWhenDeactivated))\n \t\t\t{\n-\t\t\t\tworld.AddFrameEndTask(w => w.Add(new Smoke(w, pos - 3 * move / 2, info.Trail, trailPalette, info.Sequence)));\n+\t\t\t\tworld.AddFrameEndTask(w => w.Add(new Smoke(w, pos - 3 * move / 2, info.Trail, smokePalette, info.SmokeSequence)));\n \t\t\t\tticksToNextSmoke = info.TrailInterval;\n \t\t\t}\n \n \t\t\tif (info.ContrailLength > 0)\n \t\t\t\tcontrail.Update(pos);\n \n-\t\t\tvar cell = world.Map.CellContaining(pos);\n-\n-\t\t\tvar shouldExplode = (pos.Z < 0) // Hit the ground\n+\t\t\tvar shouldExplode = (pos.Z <= terrainHeight) // Hit the ground","path":"OpenRA.Mods.Common/Effects/Missile.cs","position":282,"original_position":277,"commit_id":"99769533539c0bcb0501abc61e242df73d1cc1d1","original_commit_id":"d925a621c7c01b10d28f8128b59a94f6fd0e0966","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},"body":"It will be steppier than it needs to be right now because terrain height doesn't yet account for slopes (I have code that fixes this, but i'm waiting for the other heightmap stuff to be integrated first).  Don't worry *too* much about TS right now - as long as you don't do anything that we know is incompatible, then we can build on it in future prs.","created_at":"2015-07-15T10:50:05Z","updated_at":"2015-07-15T10:50:05Z","html_url":"https://github.com/OpenRA/OpenRA/pull/8717#discussion_r34666888","pull_request_url":"https://api.github.com/repos/OpenRA/OpenRA/pulls/8717","_links":{"self":{"href":"https://api.github.com/repos/OpenRA/OpenRA/pulls/comments/34666888"},"html":{"href":"https://github.com/OpenRA/OpenRA/pull/8717#discussion_r34666888"},"pull_request":{"href":"https://api.github.com/repos/OpenRA/OpenRA/pulls/8717"}}},"pull_request":{"url":"https://api.github.com/repos/OpenRA/OpenRA/pulls/8717","id":39978138,"html_url":"https://github.com/OpenRA/OpenRA/pull/8717","diff_url":"https://github.com/OpenRA/OpenRA/pull/8717.diff","patch_url":"https://github.com/OpenRA/OpenRA/pull/8717.patch","issue_url":"https://api.github.com/repos/OpenRA/OpenRA/issues/8717","number":8717,"state":"open","locked":false,"title":"Some work on the missile projectile","user":{"login":"matija-hustic","id":5747153,"avatar_url":"https://avatars.githubusercontent.com/u/5747153?v=3","gravatar_id":"","url":"https://api.github.com/users/matija-hustic","html_url":"https://github.com/matija-hustic","followers_url":"https://api.github.com/users/matija-hustic/followers","following_url":"https://api.github.com/users/matija-hustic/following{/other_user}","gists_url":"https://api.github.com/users/matija-hustic/gists{/gist_id}","starred_url":"https://api.github.com/users/matija-hustic/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/matija-hustic/subscriptions","organizations_url":"https://api.github.com/users/matija-hustic/orgs","repos_url":"https://api.github.com/users/matija-hustic/repos","events_url":"https://api.github.com/users/matija-hustic/events{/privacy}","received_events_url":"https://api.github.com/users/matija-hustic/received_events","type":"User","site_admin":false},"body":"An attempt at tackling #7509.\r\n\r\nIntroduces:\r\n* vertical rate of turn\r\n* customizable vertical launch angle\r\n* delayed activation of the homing mechanism / propulsion\r\n* freefall while propulsion deactivated\r\n* customizable explosion altitude (for airburst)\r\n* customizable cruise altitude (when target out of range)\r\n* height checks for terrain impact and shadow rendering\r\n\r\nNot sure about what was meant in #7509 by\r\n* proper 3D math\r\n* acceleration (instead of constant speed from launch to impact)\r\n\r\nStill missing and out of scope of this PR (at least currently)\r\n* support for voxel artwork","created_at":"2015-07-15T00:37:40Z","updated_at":"2015-07-15T10:50:06Z","closed_at":null,"merged_at":null,"merge_commit_sha":"7cac8d46fdb3fd7a027ca89cd8a31a5a668e9763","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/OpenRA/OpenRA/pulls/8717/commits","review_comments_url":"https://api.github.com/repos/OpenRA/OpenRA/pulls/8717/comments","review_comment_url":"https://api.github.com/repos/OpenRA/OpenRA/pulls/comments{/number}","comments_url":"https://api.github.com/repos/OpenRA/OpenRA/issues/8717/comments","statuses_url":"https://api.github.com/repos/OpenRA/OpenRA/statuses/99769533539c0bcb0501abc61e242df73d1cc1d1","head":{"label":"matija-hustic:missile","ref":"missile","sha":"99769533539c0bcb0501abc61e242df73d1cc1d1","user":{"login":"matija-hustic","id":5747153,"avatar_url":"https://avatars.githubusercontent.com/u/5747153?v=3","gravatar_id":"","url":"https://api.github.com/users/matija-hustic","html_url":"https://github.com/matija-hustic","followers_url":"https://api.github.com/users/matija-hustic/followers","following_url":"https://api.github.com/users/matija-hustic/following{/other_user}","gists_url":"https://api.github.com/users/matija-hustic/gists{/gist_id}","starred_url":"https://api.github.com/users/matija-hustic/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/matija-hustic/subscriptions","organizations_url":"https://api.github.com/users/matija-hustic/orgs","repos_url":"https://api.github.com/users/matija-hustic/repos","events_url":"https://api.github.com/users/matija-hustic/events{/privacy}","received_events_url":"https://api.github.com/users/matija-hustic/received_events","type":"User","site_admin":false},"repo":{"id":19147701,"name":"OpenRA","full_name":"matija-hustic/OpenRA","owner":{"login":"matija-hustic","id":5747153,"avatar_url":"https://avatars.githubusercontent.com/u/5747153?v=3","gravatar_id":"","url":"https://api.github.com/users/matija-hustic","html_url":"https://github.com/matija-hustic","followers_url":"https://api.github.com/users/matija-hustic/followers","following_url":"https://api.github.com/users/matija-hustic/following{/other_user}","gists_url":"https://api.github.com/users/matija-hustic/gists{/gist_id}","starred_url":"https://api.github.com/users/matija-hustic/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/matija-hustic/subscriptions","organizations_url":"https://api.github.com/users/matija-hustic/orgs","repos_url":"https://api.github.com/users/matija-hustic/repos","events_url":"https://api.github.com/users/matija-hustic/events{/privacy}","received_events_url":"https://api.github.com/users/matija-hustic/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/matija-hustic/OpenRA","description":"An open-source implementation of the Red Alert engine using .NET/mono and OpenGL. Runs on Windows, Linux and Mac OS X.","fork":true,"url":"https://api.github.com/repos/matija-hustic/OpenRA","forks_url":"https://api.github.com/repos/matija-hustic/OpenRA/forks","keys_url":"https://api.github.com/repos/matija-hustic/OpenRA/keys{/key_id}","collaborators_url":"https://api.github.com/repos/matija-hustic/OpenRA/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/matija-hustic/OpenRA/teams","hooks_url":"https://api.github.com/repos/matija-hustic/OpenRA/hooks","issue_events_url":"https://api.github.com/repos/matija-hustic/OpenRA/issues/events{/number}","events_url":"https://api.github.com/repos/matija-hustic/OpenRA/events","assignees_url":"https://api.github.com/repos/matija-hustic/OpenRA/assignees{/user}","branches_url":"https://api.github.com/repos/matija-hustic/OpenRA/branches{/branch}","tags_url":"https://api.github.com/repos/matija-hustic/OpenRA/tags","blobs_url":"https://api.github.com/repos/matija-hustic/OpenRA/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/matija-hustic/OpenRA/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/matija-hustic/OpenRA/git/refs{/sha}","trees_url":"https://api.github.com/repos/matija-hustic/OpenRA/git/trees{/sha}","statuses_url":"https://api.github.com/repos/matija-hustic/OpenRA/statuses/{sha}","languages_url":"https://api.github.com/repos/matija-hustic/OpenRA/languages","stargazers_url":"https://api.github.com/repos/matija-hustic/OpenRA/stargazers","contributors_url":"https://api.github.com/repos/matija-hustic/OpenRA/contributors","subscribers_url":"https://api.github.com/repos/matija-hustic/OpenRA/subscribers","subscription_url":"https://api.github.com/repos/matija-hustic/OpenRA/subscription","commits_url":"https://api.github.com/repos/matija-hustic/OpenRA/commits{/sha}","git_commits_url":"https://api.github.com/repos/matija-hustic/OpenRA/git/commits{/sha}","comments_url":"https://api.github.com/repos/matija-hustic/OpenRA/comments{/number}","issue_comment_url":"https://api.github.com/repos/matija-hustic/OpenRA/issues/comments{/number}","contents_url":"https://api.github.com/repos/matija-hustic/OpenRA/contents/{+path}","compare_url":"https://api.github.com/repos/matija-hustic/OpenRA/compare/{base}...{head}","merges_url":"https://api.github.com/repos/matija-hustic/OpenRA/merges","archive_url":"https://api.github.com/repos/matija-hustic/OpenRA/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/matija-hustic/OpenRA/downloads","issues_url":"https://api.github.com/repos/matija-hustic/OpenRA/issues{/number}","pulls_url":"https://api.github.com/repos/matija-hustic/OpenRA/pulls{/number}","milestones_url":"https://api.github.com/repos/matija-hustic/OpenRA/milestones{/number}","notifications_url":"https://api.github.com/repos/matija-hustic/OpenRA/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/matija-hustic/OpenRA/labels{/name}","releases_url":"https://api.github.com/repos/matija-hustic/OpenRA/releases{/id}","created_at":"2014-04-25T13:51:56Z","updated_at":"2015-04-28T22:34:07Z","pushed_at":"2015-07-15T10:35:56Z","git_url":"git://github.com/matija-hustic/OpenRA.git","ssh_url":"git@github.com:matija-hustic/OpenRA.git","clone_url":"https://github.com/matija-hustic/OpenRA.git","svn_url":"https://github.com/matija-hustic/OpenRA","homepage":"http://open-ra.org","size":91021,"stargazers_count":0,"watchers_count":0,"language":"C#","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":1,"forks":0,"open_issues":1,"watchers":0,"default_branch":"bleed"}},"base":{"label":"OpenRA:bleed","ref":"bleed","sha":"c50c9a2427ad4455f2414accbce235fe4562dd2e","user":{"login":"OpenRA","id":409046,"avatar_url":"https://avatars.githubusercontent.com/u/409046?v=3","gravatar_id":"","url":"https://api.github.com/users/OpenRA","html_url":"https://github.com/OpenRA","followers_url":"https://api.github.com/users/OpenRA/followers","following_url":"https://api.github.com/users/OpenRA/following{/other_user}","gists_url":"https://api.github.com/users/OpenRA/gists{/gist_id}","starred_url":"https://api.github.com/users/OpenRA/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/OpenRA/subscriptions","organizations_url":"https://api.github.com/users/OpenRA/orgs","repos_url":"https://api.github.com/users/OpenRA/repos","events_url":"https://api.github.com/users/OpenRA/events{/privacy}","received_events_url":"https://api.github.com/users/OpenRA/received_events","type":"Organization","site_admin":false},"repo":{"id":959908,"name":"OpenRA","full_name":"OpenRA/OpenRA","owner":{"login":"OpenRA","id":409046,"avatar_url":"https://avatars.githubusercontent.com/u/409046?v=3","gravatar_id":"","url":"https://api.github.com/users/OpenRA","html_url":"https://github.com/OpenRA","followers_url":"https://api.github.com/users/OpenRA/followers","following_url":"https://api.github.com/users/OpenRA/following{/other_user}","gists_url":"https://api.github.com/users/OpenRA/gists{/gist_id}","starred_url":"https://api.github.com/users/OpenRA/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/OpenRA/subscriptions","organizations_url":"https://api.github.com/users/OpenRA/orgs","repos_url":"https://api.github.com/users/OpenRA/repos","events_url":"https://api.github.com/users/OpenRA/events{/privacy}","received_events_url":"https://api.github.com/users/OpenRA/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/OpenRA/OpenRA","description":"Open Source real-time strategy game engine for early Westwood games such as Command & Conquer: Red Alert written in C# using SDL and OpenGL. Runs on Windows, Linux, *BSD and Mac OS X.","fork":false,"url":"https://api.github.com/repos/OpenRA/OpenRA","forks_url":"https://api.github.com/repos/OpenRA/OpenRA/forks","keys_url":"https://api.github.com/repos/OpenRA/OpenRA/keys{/key_id}","collaborators_url":"https://api.github.com/repos/OpenRA/OpenRA/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/OpenRA/OpenRA/teams","hooks_url":"https://api.github.com/repos/OpenRA/OpenRA/hooks","issue_events_url":"https://api.github.com/repos/OpenRA/OpenRA/issues/events{/number}","events_url":"https://api.github.com/repos/OpenRA/OpenRA/events","assignees_url":"https://api.github.com/repos/OpenRA/OpenRA/assignees{/user}","branches_url":"https://api.github.com/repos/OpenRA/OpenRA/branches{/branch}","tags_url":"https://api.github.com/repos/OpenRA/OpenRA/tags","blobs_url":"https://api.github.com/repos/OpenRA/OpenRA/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/OpenRA/OpenRA/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/OpenRA/OpenRA/git/refs{/sha}","trees_url":"https://api.github.com/repos/OpenRA/OpenRA/git/trees{/sha}","statuses_url":"https://api.github.com/repos/OpenRA/OpenRA/statuses/{sha}","languages_url":"https://api.github.com/repos/OpenRA/OpenRA/languages","stargazers_url":"https://api.github.com/repos/OpenRA/OpenRA/stargazers","contributors_url":"https://api.github.com/repos/OpenRA/OpenRA/contributors","subscribers_url":"https://api.github.com/repos/OpenRA/OpenRA/subscribers","subscription_url":"https://api.github.com/repos/OpenRA/OpenRA/subscription","commits_url":"https://api.github.com/repos/OpenRA/OpenRA/commits{/sha}","git_commits_url":"https://api.github.com/repos/OpenRA/OpenRA/git/commits{/sha}","comments_url":"https://api.github.com/repos/OpenRA/OpenRA/comments{/number}","issue_comment_url":"https://api.github.com/repos/OpenRA/OpenRA/issues/comments{/number}","contents_url":"https://api.github.com/repos/OpenRA/OpenRA/contents/{+path}","compare_url":"https://api.github.com/repos/OpenRA/OpenRA/compare/{base}...{head}","merges_url":"https://api.github.com/repos/OpenRA/OpenRA/merges","archive_url":"https://api.github.com/repos/OpenRA/OpenRA/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/OpenRA/OpenRA/downloads","issues_url":"https://api.github.com/repos/OpenRA/OpenRA/issues{/number}","pulls_url":"https://api.github.com/repos/OpenRA/OpenRA/pulls{/number}","milestones_url":"https://api.github.com/repos/OpenRA/OpenRA/milestones{/number}","notifications_url":"https://api.github.com/repos/OpenRA/OpenRA/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/OpenRA/OpenRA/labels{/name}","releases_url":"https://api.github.com/repos/OpenRA/OpenRA/releases{/id}","created_at":"2010-10-04T07:38:05Z","updated_at":"2015-07-14T10:08:48Z","pushed_at":"2015-07-15T10:35:58Z","git_url":"git://github.com/OpenRA/OpenRA.git","ssh_url":"git@github.com:OpenRA/OpenRA.git","clone_url":"https://github.com/OpenRA/OpenRA.git","svn_url":"https://github.com/OpenRA/OpenRA","homepage":"http://www.openra.net","size":181384,"stargazers_count":2018,"watchers_count":2018,"language":"C#","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":729,"mirror_url":null,"open_issues_count":789,"forks":729,"open_issues":789,"watchers":2018,"default_branch":"bleed"}},"_links":{"self":{"href":"https://api.github.com/repos/OpenRA/OpenRA/pulls/8717"},"html":{"href":"https://github.com/OpenRA/OpenRA/pull/8717"},"issue":{"href":"https://api.github.com/repos/OpenRA/OpenRA/issues/8717"},"comments":{"href":"https://api.github.com/repos/OpenRA/OpenRA/issues/8717/comments"},"review_comments":{"href":"https://api.github.com/repos/OpenRA/OpenRA/pulls/8717/comments"},"review_comment":{"href":"https://api.github.com/repos/OpenRA/OpenRA/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/OpenRA/OpenRA/pulls/8717/commits"},"statuses":{"href":"https://api.github.com/repos/OpenRA/OpenRA/statuses/99769533539c0bcb0501abc61e242df73d1cc1d1"}}}}