{"action":"created","comment":{"url":"https://api.github.com/repos/ParadiseSS13/Paradise/pulls/comments/49277741","id":49277741,"diff_hunk":"@@ -0,0 +1,436 @@\n+//an explosion reproducing a pretty \"realist\" impact with minimal load, very similar result to recursive, but without recursive function and also with only 1 pass on any tile (recursive would end up passing 2-3-4 times on most tiles covered by the explosion)\n+/client/proc/kaboom()\n+\tvar/power = input(src, \"power?\", \"power?\") as num\n+\tvar/turf/T = get_turf(src.mob)\n+\texplosion_iter(T, power)\n+\n+/atom/var/explosion_resistance = 0.01 //everything soaks a tiny bit of damage at least\n+\n+\n+\n+\n+proc/explosion_iter(turf/epicenter, devastation_range, heavy_impact_range, light_impact_range)\n+\tvar/datum/line_explosion_controller/explosion = new()\n+\texplosion.startExplosion(epicenter, devastation_range, heavy_impact_range, light_impact_range)\n+\n+\n+\n+\n+/obj/effect/debugging/marker/var/changedtimes = 0\n+/obj/effect/debugging/marker/var/powerexplosion = 0\n+/turf\n+\tvar/explosion_ratio = 1.0 //this affect the explosion spread, but by a % instead of direct value (should make walls a bit more meaningfull vs stronger bombs\n+\tvar/datum/side_explosion/side_explosion_data = 0\n+\n+/turf/space\n+\texplosion_resistance = 10\n+\n+/turf/simulated/floor\n+\texplosion_resistance = 1\n+\n+/turf/simulated/mineral\n+\texplosion_resistance = 2\n+\n+/turf/simulated/shuttle/floor\n+\texplosion_resistance = 1\n+\n+/turf/simulated/shuttle/floor4\n+\texplosion_resistance = 1\n+\n+/turf/simulated/shuttle/plating\n+\texplosion_resistance = 1\n+\n+/turf/simulated/shuttle/wall\n+\texplosion_resistance = 5\n+\texplosion_ratio = 0.80\n+/turf/simulated/wall\n+\texplosion_resistance = 5\n+\texplosion_ratio = 0.80\n+\n+/turf/simulated/wall/r_wall\n+\texplosion_resistance = 15\n+\texplosion_ratio = 0.60\n+\n+//Code-wise, a safe value for power is something up to ~25 or ~30.. This does quite a bit of damage to the station.\n+//direction is the direction that the spread took to come to this tile. So it is pointing in the main blast direction - meaning where this tile should spread most of it's force.\n+\n+/proc/dirtoangle(direction) //convert to angle starting from north\n+{","path":"code/game/objects/explosion_iterative.dm","position":58,"original_position":58,"commit_id":"ac7c1eb54d0a138893bd9d6910a5cbcefbaec878","original_commit_id":"ac7c1eb54d0a138893bd9d6910a5cbcefbaec878","user":{"login":"tigercat2000","id":10103534,"avatar_url":"https://avatars.githubusercontent.com/u/10103534?v=3","gravatar_id":"","url":"https://api.github.com/users/tigercat2000","html_url":"https://github.com/tigercat2000","followers_url":"https://api.github.com/users/tigercat2000/followers","following_url":"https://api.github.com/users/tigercat2000/following{/other_user}","gists_url":"https://api.github.com/users/tigercat2000/gists{/gist_id}","starred_url":"https://api.github.com/users/tigercat2000/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tigercat2000/subscriptions","organizations_url":"https://api.github.com/users/tigercat2000/orgs","repos_url":"https://api.github.com/users/tigercat2000/repos","events_url":"https://api.github.com/users/tigercat2000/events{/privacy}","received_events_url":"https://api.github.com/users/tigercat2000/received_events","type":"User","site_admin":false},"body":"This isn't even relative pathing and it has the square brackets.","created_at":"2016-01-10T16:18:07Z","updated_at":"2016-01-10T16:18:07Z","html_url":"https://github.com/ParadiseSS13/Paradise/pull/3182#discussion_r49277741","pull_request_url":"https://api.github.com/repos/ParadiseSS13/Paradise/pulls/3182","_links":{"self":{"href":"https://api.github.com/repos/ParadiseSS13/Paradise/pulls/comments/49277741"},"html":{"href":"https://github.com/ParadiseSS13/Paradise/pull/3182#discussion_r49277741"},"pull_request":{"href":"https://api.github.com/repos/ParadiseSS13/Paradise/pulls/3182"}}},"pull_request":{"url":"https://api.github.com/repos/ParadiseSS13/Paradise/pulls/3182","id":55561789,"html_url":"https://github.com/ParadiseSS13/Paradise/pull/3182","diff_url":"https://github.com/ParadiseSS13/Paradise/pull/3182.diff","patch_url":"https://github.com/ParadiseSS13/Paradise/pull/3182.patch","issue_url":"https://api.github.com/repos/ParadiseSS13/Paradise/issues/3182","number":3182,"state":"open","locked":false,"title":"- implement iterative explosions.","user":{"login":"Jey123456","id":7946216,"avatar_url":"https://avatars.githubusercontent.com/u/7946216?v=3","gravatar_id":"","url":"https://api.github.com/users/Jey123456","html_url":"https://github.com/Jey123456","followers_url":"https://api.github.com/users/Jey123456/followers","following_url":"https://api.github.com/users/Jey123456/following{/other_user}","gists_url":"https://api.github.com/users/Jey123456/gists{/gist_id}","starred_url":"https://api.github.com/users/Jey123456/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Jey123456/subscriptions","organizations_url":"https://api.github.com/users/Jey123456/orgs","repos_url":"https://api.github.com/users/Jey123456/repos","events_url":"https://api.github.com/users/Jey123456/events{/privacy}","received_events_url":"https://api.github.com/users/Jey123456/received_events","type":"User","site_admin":false},"body":"they are implemented to support near infinite explosion scale (altho i did not change the cap to explosions applied in the code)\r\n\r\nthe iterative explosions follow a more realistic approach to explosions, especially the type we have in ss13 (most of our bombs are pressure bomb), this mean most of the energy will follow the path of least resistances. Walls and objects will change the shape of the explosion in consequence. This also mean you can use walls to focus the explosion (and essentially make explosion cannon)\r\n\r\nthis is tweaked to be a similar amount of destruction than the current code, but it is hard to properly judge since this one will have a tendency to follow corridor instead of wasting all its energy hitting a wall.\r\n\r\n this did indirectly nerf the c4 placed in a wall, since the wall hole will act as a funnel and cause the explosion to happen in a straight line. But if we want to fix that, we simply have to increase the c4 explosive yield (currently its only 4 light damage range)\r\n\r\nin that patch there are also slight tweaks to add functionalities to the harmless smoke and explosion particle effects. Their default behavior is unchanged but they can now perform extra tasks.\r\n\r\nput \"use_iterative_explosions\" in config.txt to enable the iterative explosions. Without this config change there is no functional change to the code.","created_at":"2016-01-10T09:53:48Z","updated_at":"2016-01-10T16:18:07Z","closed_at":null,"merged_at":null,"merge_commit_sha":"85bdce880dc2f6deb66664fcb518401feab56944","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/ParadiseSS13/Paradise/pulls/3182/commits","review_comments_url":"https://api.github.com/repos/ParadiseSS13/Paradise/pulls/3182/comments","review_comment_url":"https://api.github.com/repos/ParadiseSS13/Paradise/pulls/comments{/number}","comments_url":"https://api.github.com/repos/ParadiseSS13/Paradise/issues/3182/comments","statuses_url":"https://api.github.com/repos/ParadiseSS13/Paradise/statuses/ac7c1eb54d0a138893bd9d6910a5cbcefbaec878","head":{"label":"Jey123456:master","ref":"master","sha":"ac7c1eb54d0a138893bd9d6910a5cbcefbaec878","user":{"login":"Jey123456","id":7946216,"avatar_url":"https://avatars.githubusercontent.com/u/7946216?v=3","gravatar_id":"","url":"https://api.github.com/users/Jey123456","html_url":"https://github.com/Jey123456","followers_url":"https://api.github.com/users/Jey123456/followers","following_url":"https://api.github.com/users/Jey123456/following{/other_user}","gists_url":"https://api.github.com/users/Jey123456/gists{/gist_id}","starred_url":"https://api.github.com/users/Jey123456/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Jey123456/subscriptions","organizations_url":"https://api.github.com/users/Jey123456/orgs","repos_url":"https://api.github.com/users/Jey123456/repos","events_url":"https://api.github.com/users/Jey123456/events{/privacy}","received_events_url":"https://api.github.com/users/Jey123456/received_events","type":"User","site_admin":false},"repo":{"id":49193322,"name":"Paradise","full_name":"Jey123456/Paradise","owner":{"login":"Jey123456","id":7946216,"avatar_url":"https://avatars.githubusercontent.com/u/7946216?v=3","gravatar_id":"","url":"https://api.github.com/users/Jey123456","html_url":"https://github.com/Jey123456","followers_url":"https://api.github.com/users/Jey123456/followers","following_url":"https://api.github.com/users/Jey123456/following{/other_user}","gists_url":"https://api.github.com/users/Jey123456/gists{/gist_id}","starred_url":"https://api.github.com/users/Jey123456/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Jey123456/subscriptions","organizations_url":"https://api.github.com/users/Jey123456/orgs","repos_url":"https://api.github.com/users/Jey123456/repos","events_url":"https://api.github.com/users/Jey123456/events{/privacy}","received_events_url":"https://api.github.com/users/Jey123456/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/Jey123456/Paradise","description":"Paradise Station's GitHub main repository.","fork":true,"url":"https://api.github.com/repos/Jey123456/Paradise","forks_url":"https://api.github.com/repos/Jey123456/Paradise/forks","keys_url":"https://api.github.com/repos/Jey123456/Paradise/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Jey123456/Paradise/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Jey123456/Paradise/teams","hooks_url":"https://api.github.com/repos/Jey123456/Paradise/hooks","issue_events_url":"https://api.github.com/repos/Jey123456/Paradise/issues/events{/number}","events_url":"https://api.github.com/repos/Jey123456/Paradise/events","assignees_url":"https://api.github.com/repos/Jey123456/Paradise/assignees{/user}","branches_url":"https://api.github.com/repos/Jey123456/Paradise/branches{/branch}","tags_url":"https://api.github.com/repos/Jey123456/Paradise/tags","blobs_url":"https://api.github.com/repos/Jey123456/Paradise/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Jey123456/Paradise/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Jey123456/Paradise/git/refs{/sha}","trees_url":"https://api.github.com/repos/Jey123456/Paradise/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Jey123456/Paradise/statuses/{sha}","languages_url":"https://api.github.com/repos/Jey123456/Paradise/languages","stargazers_url":"https://api.github.com/repos/Jey123456/Paradise/stargazers","contributors_url":"https://api.github.com/repos/Jey123456/Paradise/contributors","subscribers_url":"https://api.github.com/repos/Jey123456/Paradise/subscribers","subscription_url":"https://api.github.com/repos/Jey123456/Paradise/subscription","commits_url":"https://api.github.com/repos/Jey123456/Paradise/commits{/sha}","git_commits_url":"https://api.github.com/repos/Jey123456/Paradise/git/commits{/sha}","comments_url":"https://api.github.com/repos/Jey123456/Paradise/comments{/number}","issue_comment_url":"https://api.github.com/repos/Jey123456/Paradise/issues/comments{/number}","contents_url":"https://api.github.com/repos/Jey123456/Paradise/contents/{+path}","compare_url":"https://api.github.com/repos/Jey123456/Paradise/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Jey123456/Paradise/merges","archive_url":"https://api.github.com/repos/Jey123456/Paradise/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Jey123456/Paradise/downloads","issues_url":"https://api.github.com/repos/Jey123456/Paradise/issues{/number}","pulls_url":"https://api.github.com/repos/Jey123456/Paradise/pulls{/number}","milestones_url":"https://api.github.com/repos/Jey123456/Paradise/milestones{/number}","notifications_url":"https://api.github.com/repos/Jey123456/Paradise/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Jey123456/Paradise/labels{/name}","releases_url":"https://api.github.com/repos/Jey123456/Paradise/releases{/id}","created_at":"2016-01-07T08:57:17Z","updated_at":"2016-01-07T08:57:26Z","pushed_at":"2016-01-10T10:43:35Z","git_url":"git://github.com/Jey123456/Paradise.git","ssh_url":"git@github.com:Jey123456/Paradise.git","clone_url":"https://github.com/Jey123456/Paradise.git","svn_url":"https://github.com/Jey123456/Paradise","homepage":"http://nanotrasen.se/phpBB3/index.php","size":825066,"stargazers_count":0,"watchers_count":0,"language":"DM","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"ParadiseSS13:master","ref":"master","sha":"f36e636d4bde96fcf1080964975786eb66458786","user":{"login":"ParadiseSS13","id":9994901,"avatar_url":"https://avatars.githubusercontent.com/u/9994901?v=3","gravatar_id":"","url":"https://api.github.com/users/ParadiseSS13","html_url":"https://github.com/ParadiseSS13","followers_url":"https://api.github.com/users/ParadiseSS13/followers","following_url":"https://api.github.com/users/ParadiseSS13/following{/other_user}","gists_url":"https://api.github.com/users/ParadiseSS13/gists{/gist_id}","starred_url":"https://api.github.com/users/ParadiseSS13/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ParadiseSS13/subscriptions","organizations_url":"https://api.github.com/users/ParadiseSS13/orgs","repos_url":"https://api.github.com/users/ParadiseSS13/repos","events_url":"https://api.github.com/users/ParadiseSS13/events{/privacy}","received_events_url":"https://api.github.com/users/ParadiseSS13/received_events","type":"Organization","site_admin":false},"repo":{"id":27286452,"name":"Paradise","full_name":"ParadiseSS13/Paradise","owner":{"login":"ParadiseSS13","id":9994901,"avatar_url":"https://avatars.githubusercontent.com/u/9994901?v=3","gravatar_id":"","url":"https://api.github.com/users/ParadiseSS13","html_url":"https://github.com/ParadiseSS13","followers_url":"https://api.github.com/users/ParadiseSS13/followers","following_url":"https://api.github.com/users/ParadiseSS13/following{/other_user}","gists_url":"https://api.github.com/users/ParadiseSS13/gists{/gist_id}","starred_url":"https://api.github.com/users/ParadiseSS13/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ParadiseSS13/subscriptions","organizations_url":"https://api.github.com/users/ParadiseSS13/orgs","repos_url":"https://api.github.com/users/ParadiseSS13/repos","events_url":"https://api.github.com/users/ParadiseSS13/events{/privacy}","received_events_url":"https://api.github.com/users/ParadiseSS13/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/ParadiseSS13/Paradise","description":"Paradise Station's GitHub main repository.","fork":false,"url":"https://api.github.com/repos/ParadiseSS13/Paradise","forks_url":"https://api.github.com/repos/ParadiseSS13/Paradise/forks","keys_url":"https://api.github.com/repos/ParadiseSS13/Paradise/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ParadiseSS13/Paradise/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ParadiseSS13/Paradise/teams","hooks_url":"https://api.github.com/repos/ParadiseSS13/Paradise/hooks","issue_events_url":"https://api.github.com/repos/ParadiseSS13/Paradise/issues/events{/number}","events_url":"https://api.github.com/repos/ParadiseSS13/Paradise/events","assignees_url":"https://api.github.com/repos/ParadiseSS13/Paradise/assignees{/user}","branches_url":"https://api.github.com/repos/ParadiseSS13/Paradise/branches{/branch}","tags_url":"https://api.github.com/repos/ParadiseSS13/Paradise/tags","blobs_url":"https://api.github.com/repos/ParadiseSS13/Paradise/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ParadiseSS13/Paradise/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ParadiseSS13/Paradise/git/refs{/sha}","trees_url":"https://api.github.com/repos/ParadiseSS13/Paradise/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ParadiseSS13/Paradise/statuses/{sha}","languages_url":"https://api.github.com/repos/ParadiseSS13/Paradise/languages","stargazers_url":"https://api.github.com/repos/ParadiseSS13/Paradise/stargazers","contributors_url":"https://api.github.com/repos/ParadiseSS13/Paradise/contributors","subscribers_url":"https://api.github.com/repos/ParadiseSS13/Paradise/subscribers","subscription_url":"https://api.github.com/repos/ParadiseSS13/Paradise/subscription","commits_url":"https://api.github.com/repos/ParadiseSS13/Paradise/commits{/sha}","git_commits_url":"https://api.github.com/repos/ParadiseSS13/Paradise/git/commits{/sha}","comments_url":"https://api.github.com/repos/ParadiseSS13/Paradise/comments{/number}","issue_comment_url":"https://api.github.com/repos/ParadiseSS13/Paradise/issues/comments{/number}","contents_url":"https://api.github.com/repos/ParadiseSS13/Paradise/contents/{+path}","compare_url":"https://api.github.com/repos/ParadiseSS13/Paradise/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ParadiseSS13/Paradise/merges","archive_url":"https://api.github.com/repos/ParadiseSS13/Paradise/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ParadiseSS13/Paradise/downloads","issues_url":"https://api.github.com/repos/ParadiseSS13/Paradise/issues{/number}","pulls_url":"https://api.github.com/repos/ParadiseSS13/Paradise/pulls{/number}","milestones_url":"https://api.github.com/repos/ParadiseSS13/Paradise/milestones{/number}","notifications_url":"https://api.github.com/repos/ParadiseSS13/Paradise/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ParadiseSS13/Paradise/labels{/name}","releases_url":"https://api.github.com/repos/ParadiseSS13/Paradise/releases{/id}","created_at":"2014-11-29T00:16:54Z","updated_at":"2016-01-09T15:59:38Z","pushed_at":"2016-01-10T15:59:13Z","git_url":"git://github.com/ParadiseSS13/Paradise.git","ssh_url":"git@github.com:ParadiseSS13/Paradise.git","clone_url":"https://github.com/ParadiseSS13/Paradise.git","svn_url":"https://github.com/ParadiseSS13/Paradise","homepage":"http://nanotrasen.se/phpBB3/index.php","size":845756,"stargazers_count":40,"watchers_count":40,"language":"DM","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":118,"mirror_url":null,"open_issues_count":231,"forks":118,"open_issues":231,"watchers":40,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/ParadiseSS13/Paradise/pulls/3182"},"html":{"href":"https://github.com/ParadiseSS13/Paradise/pull/3182"},"issue":{"href":"https://api.github.com/repos/ParadiseSS13/Paradise/issues/3182"},"comments":{"href":"https://api.github.com/repos/ParadiseSS13/Paradise/issues/3182/comments"},"review_comments":{"href":"https://api.github.com/repos/ParadiseSS13/Paradise/pulls/3182/comments"},"review_comment":{"href":"https://api.github.com/repos/ParadiseSS13/Paradise/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/ParadiseSS13/Paradise/pulls/3182/commits"},"statuses":{"href":"https://api.github.com/repos/ParadiseSS13/Paradise/statuses/ac7c1eb54d0a138893bd9d6910a5cbcefbaec878"}}}}