{"action":"created","comment":{"url":"https://api.github.com/repos/ParadiseSS13/Paradise/pulls/comments/64659176","id":64659176,"diff_hunk":"@@ -0,0 +1,447 @@\n+\n+/mob/living/simple_animal/hostile/poison/terror_spider/proc/DoShowOrders(var/usecache = 0, var/thequeen = null, var/theempress = null)\n+\tif (ckey)\n+\t\tto_chat(src, \"------------------------\")\n+\t\tif (ai_type == 0)\n+\t\t\tto_chat(src, \"Your Orders: <span class='danger'>kill all humanoids on sight! </span>\")\n+\t\telse if (ai_type == 1)\n+\t\t\tto_chat(src, \"Your Orders: <span class='notice'>defend yourself & the hive, without being aggressive </span> \")\n+\t\telse if (ai_type == 2)\n+\t\t\tto_chat(src, \"Your Orders: <span class='danger'>do not attack anyone, not even in self-defense!</span> \")\n+\t\tto_chat(src, \"------------------------\")\n+\n+/mob/living/simple_animal/hostile/poison/terror_spider/proc/BroadcastOrders()\n+\tvar/cache_thequeen = null\n+\tvar/cache_theempress = null\n+\tfor(var/mob/living/simple_animal/hostile/poison/terror_spider/queen/Q in mob_list)\n+\t\tif (Q.ckey || !Q.spider_awaymission)\n+\t\t\tcache_thequeen = Q\n+\t\t\tbreak\n+\tfor(var/mob/living/simple_animal/hostile/poison/terror_spider/empress/E in mob_list)\n+\t\tif (E.ckey || !E.spider_awaymission)\n+\t\t\tcache_theempress = E\n+\t\t\tbreak\n+\tfor(var/mob/living/simple_animal/hostile/poison/terror_spider/S in mob_list)\n+\t\tS.DoShowOrders(1,cache_thequeen,cache_theempress)\n+\n+/mob/living/simple_animal/hostile/poison/terror_spider/proc/IsInfected(var/mob/B)\n+\tif (iscarbon(B))\n+\t\tvar/mob/living/carbon/C = B\n+\t\tif(C.get_int_organ(/obj/item/organ/internal/body_egg))\n+\t\t\treturn 1\n+\treturn 0\n+\n+\n+/mob/living/simple_animal/hostile/poison/terror_spider/proc/Retaliate()\n+\tvar/list/around = view(src, 7)\n+\tfor(var/atom/movable/A in around)\n+\t\tif(A == src)\n+\t\t\tcontinue\n+\t\tif (A in enemies)\n+\t\t\t// they are already our enemy\n+\t\t\tcontinue\n+\t\tif (istype(A, /mob/living/simple_animal/hostile/poison/terror_spider))\n+\t\t\t// we can't make enemies of other spiders. Regardless of faction checks (they are unreliable, sometimes spiders get created with no faction!)\n+\t\t\tcontinue\n+\t\tif(isliving(A))\n+\t\t\tvar/mob/living/M = A\n+\t\t\tvar/faction_check = 0\n+\t\t\tfor(var/F in faction)\n+\t\t\t\tif(F in M.faction)\n+\t\t\t\t\tfaction_check = 1\n+\t\t\t\t\tbreak\n+\t\t\tif(faction_check && attack_same || !faction_check)\n+\t\t\t\tenemies |= M\n+\t\t\t\tvisible_message(\"<span class='danger'>\\icon[src] [src] glares at [M]! </span>\")\n+\t\t\t\t// should probably exempt people who are dead...\n+\t\telse if(istype(A, /obj/mecha))\n+\t\t\tvar/obj/mecha/M = A\n+\t\t\tif(M.occupant)\n+\t\t\t\tenemies |= M\n+\t\t\t\tenemies |= M.occupant\n+\t\telse if(istype(A, /obj/spacepod))\n+\t\t\tvar/obj/spacepod/M = A\n+\t\t\tif(M.occupant || M.occupant2)\n+\t\t\t\tenemies |= M\n+\t\t\t\tenemies |= M.occupant\n+\tfor(var/mob/living/simple_animal/hostile/poison/terror_spider/H in around)\n+\t\tvar/retaliate_faction_check = 0\n+\t\tfor(var/F in faction)\n+\t\t\tif(F in H.faction)\n+\t\t\t\tretaliate_faction_check = 1\n+\t\t\t\tbreak\n+\t\tif(retaliate_faction_check && !attack_same && !H.attack_same)\n+\t\t\tH.enemies |= enemies\n+\tif (istype(src, /mob/living/simple_animal/hostile/poison/terror_spider/queen) || istype(src, /mob/living/simple_animal/hostile/poison/terror_spider/empress)  )\n+\t\tfor (var/mob/living/simple_animal/hostile/poison/terror_spider/T in mob_list)\n+\t\t\tT.enemies |= enemies\n+\treturn 0\n+\n+\n+/mob/living/simple_animal/hostile/poison/terror_spider/proc/msg_terrorspiders(var/msgtext)\n+\tfor(var/mob/living/simple_animal/hostile/poison/terror_spider/T in mob_list)\n+\t\tif (T.health > 0)\n+\t\t\tto_chat(T, \"<span class='alien'>TerrorSense: \" + msgtext + \"</span>\")\n+\n+\n+/mob/living/simple_animal/hostile/poison/terror_spider/proc/CountSpiders()\n+\tvar/numspiders = 0\n+\tfor(var/mob/living/simple_animal/hostile/poison/terror_spider/T in mob_list)\n+\t\tif (T.health > 0 && !T.spider_placed && spider_awaymission == T.spider_awaymission)\n+\t\t\tnumspiders += 1\n+\treturn numspiders\n+\n+/mob/living/simple_animal/hostile/poison/terror_spider/proc/CountAllSpiders()\n+\tvar/numspiders = 0\n+\tfor(var/mob/living/simple_animal/hostile/poison/terror_spider/T in mob_list)\n+\t\tnumspiders += 1\n+\treturn numspiders\n+\n+\n+/mob/living/simple_animal/hostile/poison/terror_spider/proc/CreatePath(var/mygoal)\n+\tvar/m2 = get_turf(src)\n+\tif (m2 == mylocation)\n+\t\tchasecycles++\n+\t\tClearObstacle(get_turf(mygoal))\n+\t\tif (chasecycles >= 3)\n+\t\t\tchasecycles = 0\n+\t\t\tif (spider_opens_doors)\n+\t\t\t\tvar/tgt_dir = get_dir(src,mygoal)\n+\t\t\t\tfor(var/obj/machinery/door/airlock/A in view(1,src))\n+\t\t\t\t\tif (A.density)\n+\t\t\t\t\t\ttry_open_airlock(A)\n+\t\t\t\tfor(var/obj/machinery/door/firedoor/F in view(1,src))\n+\t\t\t\t\tif (tgt_dir == get_dir(src,F) && F.density && !F.blocked)\n+\t\t\t\t\t\tvisible_message(\"<span class='danger'>\\The [src] pries open the firedoor!</span>\")\n+\t\t\t\t\t\tF.open()\n+\n+\telse\n+\t\tmylocation = m2\n+\t\tchasecycles = 0\n+\n+/mob/living/simple_animal/hostile/poison/terror_spider/proc/ClearObstacle(var/turf/target_turf)\n+\t//Old, easy code.\n+\t//DestroySurroundings()\n+\n+\t// *****BUG***** This does not allow spiders to smash windoors (e.g: UO71 bar windoor) for some reason.\n+\t// New, adapted from DestroySurroundings, let's see if it works.\n+\n+\tvar/list/valid_obstacles = list(/obj/structure/window, /obj/structure/closet, /obj/structure/table, /obj/structure/grille, /obj/structure/rack, /obj/machinery/door/window)\n+\n+\tfor(var/dir in cardinal) // North, South, East, West\n+\t\tvar/obj/structure/obstacle = locate(/obj/structure, get_step(src, dir))\n+\t\tif(is_type_in_list(obstacle, valid_obstacles))\n+\t\t\tobstacle.attack_animal(src)\n+\n+\n+\n+/mob/living/simple_animal/hostile/poison/terror_spider/proc/UnlockBlastDoors(var/target_id_tag, var/msg_to_send)\n+\tvar/unlocked_something = 0\n+\tfor (var/obj/machinery/door/poddoor/P in world)\n+\t\tif (P.density && P.id_tag == target_id_tag && P.z == z)\n+\t\t\tP.open()\n+\t\t\tunlocked_something = 1\n+\tif (unlocked_something)\n+\t\tfor(var/mob/living/carbon/human/H in player_list)\n+\t\t\tif (H.z != z)\n+\t\t\t\tcontinue\n+\t\t\tto_chat(H,\"<span class='notice'>----------</span>\")\n+\t\t\tto_chat(H,\"<span class='notice'>[msg_to_send]</span>\")\n+\t\t\tto_chat(H,\"<span class='notice'>----------</span>\")\n+\n+/mob/living/simple_animal/hostile/poison/terror_spider/proc/DoHiveSense()\n+\tvar/hsline = \"\"\n+\tto_chat(src, \"Your Brood: \")\n+\tfor(var/mob/living/simple_animal/hostile/poison/terror_spider/T in mob_list)\n+\t\thsline = \"* [T] in [get_area(T)], \"\n+\t\tif (T.health >0)\n+\t\t\thsline += \"health [T.health] / [T.maxHealth], \"\n+\t\t\tif (T.ckey)\n+\t\t\t\thsline += \" *Player Controlled* \"\n+\t\t\telse\n+\t\t\t\thsline += \" AI: \"\n+\t\t\t\tif (T.ai_type == 0)\n+\t\t\t\t\thsline += \"aggressive\"\n+\t\t\t\telse if (T.ai_type == 1)\n+\t\t\t\t\thsline += \"defensive\"\n+\t\t\t\telse if (T.ai_type == 2)\n+\t\t\t\t\thsline += \"passive\"\n+\t\telse\n+\t\t\thsline += \"DEAD\"\n+\t\tto_chat(src,hsline)\n+\n+\n+/mob/living/simple_animal/hostile/poison/terror_spider/proc/DialogHiveCommand()\n+\tvar/dstance = input(\"How aggressive should your brood be?\") as null|anything in list(\"Aggressive\",\"Defensive\",\"Passive\")\n+\n+\tvar/new_ai = -1\n+\tif (dstance == \"Aggressive\")\n+\t\tnew_ai = 0\n+\telse if (dstance == \"Defensive\")\n+\t\tnew_ai = 1\n+\telse if (dstance == \"Passive\")\n+\t\tnew_ai = 2\n+\telse\n+\t\tto_chat(src, \"That choice was not recognized.\")\n+\t\treturn\n+\n+\tvar/dai = input(\"How often should they use vents?\") as null|anything in list(\"Constantly\",\"Sometimes\",\"Rarely\", \"Never\")\n+\n+\tvar/new_ventcrawl = 0\n+\tif (dai == \"Constantly\")\n+\t\tnew_ventcrawl = 15\n+\telse if (dai == \"Sometimes\")\n+\t\tnew_ventcrawl = 5\n+\telse if (dai == \"Rarely\")\n+\t\tnew_ventcrawl = 2\n+\telse if (dai == \"Never\")\n+\t\tnew_ventcrawl = 0\n+\telse\n+\t\tto_chat(src, \"That choice was not recognized.\")\n+\t\treturn\n+\n+\tvar/dpc = input(\"Allow ghosts to inhabit spider bodies?\") as null|anything in list(\"Yes\",\"No\")\n+\n+\tvar/new_pc = 0\n+\tif (dpc == \"Yes\")\n+\t\tnew_pc = 1\n+\telse if (dpc == \"No\")\n+\t\tnew_pc = 0\n+\telse\n+\t\tto_chat(src, \"That choice was not recognized.\")\n+\t\treturn\n+\n+\tmsg_terrorspiders(\"[src] has ordered their hive to be [dstance].\")\n+\tvar/commanded = SetHiveCommand(new_ai,new_ventcrawl,new_pc)\n+\n+\tto_chat(src, \"<B><span class='notice'> [commanded] spiders recieved your orders.</span></B>\")\n+\n+\n+/mob/living/simple_animal/hostile/poison/terror_spider/proc/SetHiveCommand(var/set_ai, var/set_ventcrawl, var/set_pc)\n+\tvar/numspiders = 0\n+\t//var/orderschanged = 0\n+\tfor(var/mob/living/simple_animal/hostile/poison/terror_spider/T in mob_list)\n+\t\tif (spider_awaymission && !T.spider_awaymission)\n+\t\t\tcontinue\n+\t\telse if (!spider_awaymission && T.spider_awaymission)\n+\t\t\tcontinue\n+\t\tnumspiders += 1\n+\t\t//orderschanged = 0\n+\t\tif (spider_tier >= T.spider_tier)\n+\t\t\tif (T.ai_type != set_ai)\n+\t\t\t\tT.ai_type = set_ai\n+\t\t\t\t//orderschanged = 1\n+\t\t\t\tT.ShowOrders()\n+\t\t\tif (T.idle_ventcrawl_chance != set_ventcrawl)\n+\t\t\t\tT.idle_ventcrawl_chance = set_ventcrawl\n+\t\t\tif (T.ai_playercontrol_allowingeneral != set_pc)\n+\t\t\t\tif (set_pc == 1 && !spider_awaymission)\n+\t\t\t\t\tnotify_ghosts(\"[T.name] in [get_area(T)] can be controlled! <a href=?src=\\ref[T];activate=1>(Click to play)</a>\")\n+\t\t\t\tT.ai_playercontrol_allowingeneral = set_pc\n+\tfor(var/obj/effect/spider/terror_eggcluster/T in world)\n+\t\tif (T.ai_playercontrol_allowingeneral != set_pc)\n+\t\t\tT.ai_playercontrol_allowingeneral = set_pc\n+\tfor(var/obj/effect/spider/terror_spiderling/T in world)\n+\t\tif (T.ai_playercontrol_allowingeneral != set_pc)\n+\t\t\tT.ai_playercontrol_allowingeneral = set_pc\n+\treturn numspiders\n+\n+/mob/living/simple_animal/hostile/poison/terror_spider/proc/try_open_airlock(var/obj/machinery/door/airlock/D)\n+\tif (!D.density)\n+\t\tto_chat(src, \"Closing doors does not help us.\")\n+\telse if (D.welded)\n+\t\tto_chat(src, \"The door is welded shut.\")\n+\telse if (D.locked)\n+\t\tto_chat(src, \"The door is bolted shut.\")\n+\telse if (D.operating)\n+\telse if ( (!istype(D.req_access) || !D.req_access.len) && (!istype(D.req_one_access) || !D.req_one_access.len) && (D.req_access_txt == \"0\") && (D.req_one_access_txt == \"0\") )\n+\t\t//visible_message(\"<span class='danger'>\\the [src] opens the public-access door [D]!</span>\")\n+\t\tD.open(1)\n+\telse if (D.arePowerSystemsOn() && (spider_opens_doors != 2))\n+\t\tto_chat(src, \"The door's motors resist your efforts to force it.\")\n+\telse if (!spider_opens_doors)\n+\t\tto_chat(src, \"Your type of spider is not strong enough to force open doors.\")\n+\telse\n+\t\tvisible_message(\"<span class='danger'>\\the [src] pries open the door!</span>\")\n+\t\tplaysound(src.loc, \"sparks\", 100, 1)\n+\t\tD.open(1)\n+\n+/mob/living/simple_animal/hostile/poison/terror_spider/proc/TSVentCrawlRandom(/var/entry_vent)\n+\tif(entry_vent)\n+\t\tif(get_dist(src, entry_vent) <= 2)\n+\t\t\tvar/list/vents = list()\n+\t\t\tfor(var/obj/machinery/atmospherics/unary/vent_pump/temp_vent in entry_vent.parent.other_atmosmch)\n+\t\t\t\tvents.Add(temp_vent)\n+\t\t\tif(!vents.len)\n+\t\t\t\tentry_vent = null\n+\t\t\t\treturn\n+\t\t\tvar/obj/machinery/atmospherics/unary/vent_pump/exit_vent = pick(vents)\n+\t\t\tvisible_message(\"<B>[src] scrambles into the ventillation ducts!</B>\", \"<span class='notice'>You hear something squeezing through the ventilation ducts.</span>\")\n+\t\t\tspawn(rand(20,60))\n+\t\t\t\tvar/original_location = loc\n+\t\t\t\tloc = exit_vent\n+\t\t\t\tvar/travel_time = round(get_dist(loc, exit_vent.loc) / 2)\n+\t\t\t\tspawn(travel_time)\n+\t\t\t\t\tif(!exit_vent || exit_vent.welded)\n+\t\t\t\t\t\tloc = original_location\n+\t\t\t\t\t\tentry_vent = null\n+\t\t\t\t\t\treturn\n+\t\t\t\t\tif(prob(99))\n+\t\t\t\t\t\taudible_message(\"<span class='notice'>You hear something squeezing through the ventilation ducts.</span>\")\n+\t\t\t\t\tspawn(travel_time)\n+\t\t\t\t\t\tif(!exit_vent || exit_vent.welded)\n+\t\t\t\t\t\t\tloc = original_location\n+\t\t\t\t\t\t\tentry_vent = null\n+\t\t\t\t\t\t\treturn\n+\t\t\t\t\t\tloc = exit_vent.loc\n+\t\t\t\t\t\tentry_vent = null\n+\t\t\t\t\t\tvar/area/new_area = get_area(loc)\n+\t\t\t\t\t\tif(new_area)\n+\t\t\t\t\t\t\tnew_area.Entered(src)\n+\t\t\t\t\t\tif (!istype(src, /mob/living/simple_animal/hostile/poison/terror_spider/gray))\n+\t\t\t\t\t\t\tvisible_message(\"<B>[src] emerges from the vent!</B>\")\n+\n+\n+\n+/mob/living/simple_animal/hostile/poison/terror_spider/proc/humanize_spider(mob/user)\n+\tif(key)//Someone is in it\n+\t\treturn\n+\tvar/error_on_humanize = \"\"\n+\tvar/humanize_prompt = \"Take direct control of \" + src.name + \"? \"\n+\tif (ai_type == 0)\n+\t\thumanize_prompt += \"Orders: AGGRESSIVE. \"\n+\telse if (ai_type == 1)\n+\t\thumanize_prompt += \"Orders: DEFENSIVE. \"\n+\telse if (ai_type == 2)\n+\t\thumanize_prompt += \"Orders: PASSIVE/TAME. \"\n+\thumanize_prompt += \"Role: \" + spider_role_summary\n+\tif (user.ckey in ts_ckey_blacklist)\n+\t\terror_on_humanize = \"You are not able to control any terror spider this round.\"\n+\telse if (!ai_playercontrol_allowingeneral)\n+\t\terror_on_humanize = \"Terror spiders cannot currently be player-controlled.\"\n+\telse if (spider_awaymission)\n+\t\terror_on_humanize = \"Terror spiders that are part of an away mission cannot be controlled by ghosts.\"\n+\telse if (!ai_playercontrol_allowtype)\n+\t\terror_on_humanize = \"This specific type of terror spider is not player-controllable.\"\n+\telse if (degenerate)\n+\t\terror_on_humanize = \"Dying spiders are not player-controllable.\"\n+\telse if (health == 0)\n+\t\terror_on_humanize = \"Dead spiders are not player-controllable.\"\n+\tif (jobban_isbanned(user, \"Syndicate\") || jobban_isbanned(user, \"alien\"))","path":"code/modules/mob/living/simple_animal/hostile/terror_spiders/procs.dm","position":330,"original_position":330,"commit_id":"17a32ad11c840a916e0bda2778b6ec2aa3abedc1","original_commit_id":"17a32ad11c840a916e0bda2778b6ec2aa3abedc1","user":{"login":"Fox-McCloud","id":5785200,"avatar_url":"https://avatars.githubusercontent.com/u/5785200?v=3","gravatar_id":"","url":"https://api.github.com/users/Fox-McCloud","html_url":"https://github.com/Fox-McCloud","followers_url":"https://api.github.com/users/Fox-McCloud/followers","following_url":"https://api.github.com/users/Fox-McCloud/following{/other_user}","gists_url":"https://api.github.com/users/Fox-McCloud/gists{/gist_id}","starred_url":"https://api.github.com/users/Fox-McCloud/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Fox-McCloud/subscriptions","organizations_url":"https://api.github.com/users/Fox-McCloud/orgs","repos_url":"https://api.github.com/users/Fox-McCloud/repos","events_url":"https://api.github.com/users/Fox-McCloud/events{/privacy}","received_events_url":"https://api.github.com/users/Fox-McCloud/received_events","type":"User","site_admin":false},"body":"why go by an alien job ban?","created_at":"2016-05-25T21:46:21Z","updated_at":"2016-05-25T21:46:21Z","html_url":"https://github.com/ParadiseSS13/Paradise/pull/4229#discussion_r64659176","pull_request_url":"https://api.github.com/repos/ParadiseSS13/Paradise/pulls/4229","_links":{"self":{"href":"https://api.github.com/repos/ParadiseSS13/Paradise/pulls/comments/64659176"},"html":{"href":"https://github.com/ParadiseSS13/Paradise/pull/4229#discussion_r64659176"},"pull_request":{"href":"https://api.github.com/repos/ParadiseSS13/Paradise/pulls/4229"}}},"pull_request":{"url":"https://api.github.com/repos/ParadiseSS13/Paradise/pulls/4229","id":66774361,"html_url":"https://github.com/ParadiseSS13/Paradise/pull/4229","diff_url":"https://github.com/ParadiseSS13/Paradise/pull/4229.diff","patch_url":"https://github.com/ParadiseSS13/Paradise/pull/4229.patch","issue_url":"https://api.github.com/repos/ParadiseSS13/Paradise/issues/4229","number":4229,"state":"open","locked":false,"title":"Terror Spiders","user":{"login":"Kyep","id":16434066,"avatar_url":"https://avatars.githubusercontent.com/u/16434066?v=3","gravatar_id":"","url":"https://api.github.com/users/Kyep","html_url":"https://github.com/Kyep","followers_url":"https://api.github.com/users/Kyep/followers","following_url":"https://api.github.com/users/Kyep/following{/other_user}","gists_url":"https://api.github.com/users/Kyep/gists{/gist_id}","starred_url":"https://api.github.com/users/Kyep/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Kyep/subscriptions","organizations_url":"https://api.github.com/users/Kyep/orgs","repos_url":"https://api.github.com/users/Kyep/repos","events_url":"https://api.github.com/users/Kyep/events{/privacy}","received_events_url":"https://api.github.com/users/Kyep/received_events","type":"User","site_admin":false},"body":"This PR adds:\r\n- Terror Spiders, a race of sentient spiders inspired by giant spiders, xenos and lovecraft.\r\n- UO71, a new awaymission featuring the TS. (AKA: a tutorial on how to fight them effectively)\r\n- New kinds of AI for the spiders, which make them far more challenging than existing NPCs.\r\n- Plenty of excuses for arachnophobia.\r\n\r\nExample Graphic: http://i.imgur.com/Ww7X7cq.png\r\nExample Video: https://www.youtube.com/watch?v=cIbnIGy04YY\r\n\r\nThere are two sources for these spiders:\r\n- Major event: New event that can happen late in rounds. Similar to blob, xenos, etc in timing and threat level. One of several different types of terror spider infestation will be started.\r\n- Awaymission: Awaymission/UO71 spiders cannot be player-controlled, and cannot otherwise get spiders onto the main station. However, you can go there to fight them - if you dare.\r\n\r\nFor more info about Terror Spiders, see:\r\n- Forum thread: http://nanotrasen.se/forum/viewtopic.php?f=12&t=6967&start=20\r\n- Awaymission thread: http://nanotrasen.se/phpBB3/viewtopic.php?f=2&t=7449\r\n- Sprites thread:  http://nanotrasen.se/phpBB3/viewtopic.php?f=17&t=7169&start=10\r\n- Wiki Guide Page: http://nanotrasen.se/wiki/index.php/User:Tzo (I will move this to the right URL after merge)\r\n\r\n:cl: Kyep\r\nrscadd: Adds Terror Spiders, a race of sentient spiders inspired by giant spiders, xenos and lovecraft.\r\nrscadd: Adds UO71, a new awaymission featuring the TS. (AKA: a tutorial on how to fight them effectively)\r\nrscadd: Adds new kinds of AI for the spiders, which make them far more challenging than existing NPCs.\r\nrscadd: Adds excuses for arachnophobia.\r\n/:cl:\r\n\r\n","created_at":"2016-04-17T17:17:00Z","updated_at":"2016-05-25T21:46:21Z","closed_at":null,"merged_at":null,"merge_commit_sha":"4380f1f4c63e1e269f47d5be7cd9819664d36838","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/ParadiseSS13/Paradise/pulls/4229/commits","review_comments_url":"https://api.github.com/repos/ParadiseSS13/Paradise/pulls/4229/comments","review_comment_url":"https://api.github.com/repos/ParadiseSS13/Paradise/pulls/comments{/number}","comments_url":"https://api.github.com/repos/ParadiseSS13/Paradise/issues/4229/comments","statuses_url":"https://api.github.com/repos/ParadiseSS13/Paradise/statuses/17a32ad11c840a916e0bda2778b6ec2aa3abedc1","head":{"label":"Kyep:spiders","ref":"spiders","sha":"17a32ad11c840a916e0bda2778b6ec2aa3abedc1","user":{"login":"Kyep","id":16434066,"avatar_url":"https://avatars.githubusercontent.com/u/16434066?v=3","gravatar_id":"","url":"https://api.github.com/users/Kyep","html_url":"https://github.com/Kyep","followers_url":"https://api.github.com/users/Kyep/followers","following_url":"https://api.github.com/users/Kyep/following{/other_user}","gists_url":"https://api.github.com/users/Kyep/gists{/gist_id}","starred_url":"https://api.github.com/users/Kyep/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Kyep/subscriptions","organizations_url":"https://api.github.com/users/Kyep/orgs","repos_url":"https://api.github.com/users/Kyep/repos","events_url":"https://api.github.com/users/Kyep/events{/privacy}","received_events_url":"https://api.github.com/users/Kyep/received_events","type":"User","site_admin":false},"repo":{"id":49868854,"name":"Paradise","full_name":"Kyep/Paradise","owner":{"login":"Kyep","id":16434066,"avatar_url":"https://avatars.githubusercontent.com/u/16434066?v=3","gravatar_id":"","url":"https://api.github.com/users/Kyep","html_url":"https://github.com/Kyep","followers_url":"https://api.github.com/users/Kyep/followers","following_url":"https://api.github.com/users/Kyep/following{/other_user}","gists_url":"https://api.github.com/users/Kyep/gists{/gist_id}","starred_url":"https://api.github.com/users/Kyep/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Kyep/subscriptions","organizations_url":"https://api.github.com/users/Kyep/orgs","repos_url":"https://api.github.com/users/Kyep/repos","events_url":"https://api.github.com/users/Kyep/events{/privacy}","received_events_url":"https://api.github.com/users/Kyep/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/Kyep/Paradise","description":"Paradise fork for submitting PRs","fork":true,"url":"https://api.github.com/repos/Kyep/Paradise","forks_url":"https://api.github.com/repos/Kyep/Paradise/forks","keys_url":"https://api.github.com/repos/Kyep/Paradise/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Kyep/Paradise/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Kyep/Paradise/teams","hooks_url":"https://api.github.com/repos/Kyep/Paradise/hooks","issue_events_url":"https://api.github.com/repos/Kyep/Paradise/issues/events{/number}","events_url":"https://api.github.com/repos/Kyep/Paradise/events","assignees_url":"https://api.github.com/repos/Kyep/Paradise/assignees{/user}","branches_url":"https://api.github.com/repos/Kyep/Paradise/branches{/branch}","tags_url":"https://api.github.com/repos/Kyep/Paradise/tags","blobs_url":"https://api.github.com/repos/Kyep/Paradise/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Kyep/Paradise/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Kyep/Paradise/git/refs{/sha}","trees_url":"https://api.github.com/repos/Kyep/Paradise/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Kyep/Paradise/statuses/{sha}","languages_url":"https://api.github.com/repos/Kyep/Paradise/languages","stargazers_url":"https://api.github.com/repos/Kyep/Paradise/stargazers","contributors_url":"https://api.github.com/repos/Kyep/Paradise/contributors","subscribers_url":"https://api.github.com/repos/Kyep/Paradise/subscribers","subscription_url":"https://api.github.com/repos/Kyep/Paradise/subscription","commits_url":"https://api.github.com/repos/Kyep/Paradise/commits{/sha}","git_commits_url":"https://api.github.com/repos/Kyep/Paradise/git/commits{/sha}","comments_url":"https://api.github.com/repos/Kyep/Paradise/comments{/number}","issue_comment_url":"https://api.github.com/repos/Kyep/Paradise/issues/comments{/number}","contents_url":"https://api.github.com/repos/Kyep/Paradise/contents/{+path}","compare_url":"https://api.github.com/repos/Kyep/Paradise/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Kyep/Paradise/merges","archive_url":"https://api.github.com/repos/Kyep/Paradise/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Kyep/Paradise/downloads","issues_url":"https://api.github.com/repos/Kyep/Paradise/issues{/number}","pulls_url":"https://api.github.com/repos/Kyep/Paradise/pulls{/number}","milestones_url":"https://api.github.com/repos/Kyep/Paradise/milestones{/number}","notifications_url":"https://api.github.com/repos/Kyep/Paradise/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Kyep/Paradise/labels{/name}","releases_url":"https://api.github.com/repos/Kyep/Paradise/releases{/id}","deployments_url":"https://api.github.com/repos/Kyep/Paradise/deployments","created_at":"2016-01-18T10:15:30Z","updated_at":"2016-01-31T04:47:08Z","pushed_at":"2016-05-25T08:21:51Z","git_url":"git://github.com/Kyep/Paradise.git","ssh_url":"git@github.com:Kyep/Paradise.git","clone_url":"https://github.com/Kyep/Paradise.git","svn_url":"https://github.com/Kyep/Paradise","homepage":"http://nanotrasen.se/phpBB3/index.php","size":852604,"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":"3ad1aa22d5addc0f19c5247931334ca2e37ddcbf","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}","deployments_url":"https://api.github.com/repos/ParadiseSS13/Paradise/deployments","created_at":"2014-11-29T00:16:54Z","updated_at":"2016-05-24T20:18:34Z","pushed_at":"2016-05-25T21:09:23Z","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":898590,"stargazers_count":58,"watchers_count":58,"language":"DM","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":161,"mirror_url":null,"open_issues_count":247,"forks":161,"open_issues":247,"watchers":58,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/ParadiseSS13/Paradise/pulls/4229"},"html":{"href":"https://github.com/ParadiseSS13/Paradise/pull/4229"},"issue":{"href":"https://api.github.com/repos/ParadiseSS13/Paradise/issues/4229"},"comments":{"href":"https://api.github.com/repos/ParadiseSS13/Paradise/issues/4229/comments"},"review_comments":{"href":"https://api.github.com/repos/ParadiseSS13/Paradise/pulls/4229/comments"},"review_comment":{"href":"https://api.github.com/repos/ParadiseSS13/Paradise/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/ParadiseSS13/Paradise/pulls/4229/commits"},"statuses":{"href":"https://api.github.com/repos/ParadiseSS13/Paradise/statuses/17a32ad11c840a916e0bda2778b6ec2aa3abedc1"}}}}
{"actor":{"display_login":"Fox-McCloud"}}