{"action":"created","comment":{"url":"https://api.github.com/repos/tgstation/tgstation/pulls/comments/73792474","id":73792474,"diff_hunk":"@@ -0,0 +1,805 @@\n+// This is the base type that does all the hardware stuff.\n+// Other types expand it - tablets use a direct subtypes, and\n+// consoles and laptops use \"procssor\" item that is held inside machinery piece\n+/obj/item/modular_computer\n+\tname = \"Modular Microcomputer\"\n+\tdesc = \"A small portable microcomputer.\"\n+\n+\tvar/enabled = 0\t\t\t\t\t\t\t\t\t\t\t// Whether the computer is turned on.\n+\tvar/screen_on = 1\t\t\t\t\t\t\t\t\t\t// Whether the computer is active/opened/it's screen is on.\n+\tvar/datum/computer_file/program/active_program = null\t// A currently active program running on the computer.\n+\tvar/hardware_flag = 0\t\t\t\t\t\t\t\t\t// A flag that describes this device type\n+\tvar/last_power_usage = 0\n+\tvar/last_battery_percent = 0\t\t\t\t\t\t\t// Used for deciding if battery percentage has chandged\n+\tvar/last_world_time = \"00:00\"\n+\tvar/list/last_header_icons\n+\tvar/computer_emagged = 0\t\t\t\t\t\t\t\t// Whether the computer is emagged.\n+\n+\tvar/base_active_power_usage = 50\t\t\t\t\t\t// Power usage when the computer is open (screen is active) and can be interacted with. Remember hardware can use power too.\n+\tvar/base_idle_power_usage = 5\t\t\t\t\t\t\t// Power usage when the computer is idle and screen is off (currently only applies to laptops)\n+\n+\t// Modular computers can run on various devices. Each DEVICE (Laptop, Console, Tablet,..)\n+\t// must have it's own DMI file. Icon states must be called exactly the same in all files, but may look differently\n+\t// If you create a program which is limited to Laptops and Consoles you don't have to add it's icon_state overlay for Tablets too, for example.\n+\n+\ticon = 'icons/obj/computer.dmi'\n+\ticon_state = \"laptop-open\"\n+\tvar/icon_state_unpowered = null\t\t\t\t\t\t\t// Icon state when the computer is turned off\n+\tvar/icon_state_menu = \"menu\"\t\t\t\t\t\t\t// Icon state overlay when the computer is turned on, but no program is loaded that would override the screen.\n+\tvar/max_hardware_size = 0\t\t\t\t\t\t\t\t// Maximal hardware size. Currently, tablets have 1, laptops 2 and consoles 3. Limits what hardware types can be installed.\n+\tvar/steel_sheet_cost = 5\t\t\t\t\t\t\t\t// Amount of steel sheets refunded when disassembling an empty frame of this computer.\n+\n+\t// Damage of the chassis. If the chassis takes too much damage it will break apart.\n+\tvar/damage = 0\t\t\t\t// Current damage level\n+\tvar/broken_damage = 50\t\t// Damage level at which the computer ceases to operate\n+\tvar/max_damage = 100\t\t// Damage level at which the computer breaks apart.\n+\n+\t// Important hardware (must be installed for computer to work)\n+\tvar/obj/item/weapon/computer_hardware/processor_unit/processor_unit\t\t\t\t// CPU. Without it the computer won't run. Better CPUs can run more programs at once.\n+\tvar/obj/item/weapon/computer_hardware/network_card/network_card\t\t\t\t\t// Network Card component of this computer. Allows connection to NTNet\n+\tvar/obj/item/weapon/computer_hardware/hard_drive/hard_drive\t\t\t\t\t\t// Hard Drive component of this computer. Stores programs and files.\n+\tvar/obj/item/weapon/computer_hardware/battery_module/battery_module\t\t\t\t// An internal power source for this computer. Can be recharged.\n+\t// Optional hardware (improves functionality, but is not critical for computer to work)\n+\tvar/obj/item/weapon/computer_hardware/card_slot/card_slot\t\t\t\t\t\t// ID Card slot component of this computer. Mostly for HoP modification console that needs ID slot for modification.\n+\tvar/obj/item/weapon/computer_hardware/nano_printer/nano_printer\t\t\t\t\t// Nano Printer component of this computer, for your everyday paperwork needs.\n+\tvar/obj/item/weapon/computer_hardware/hard_drive/portable/portable_drive\t\t// Portable data storage\n+\n+\tvar/list/idle_threads = list()\t\t\t\t\t\t\t// Idle programs on background. They still receive process calls but can't be interacted with.\n+\tvar/activetemplate = \"computer_main\"\n+\tvar/obj/physical = null\n+\n+\n+\n+// Eject ID card from computer, if it has ID slot with card inside.\n+/obj/item/modular_computer/verb/eject_id()\n+\tset name = \"Eject ID\"\n+\tset category = \"Object\"\n+\tset src in view(1)\n+\n+\tif(usr.incapacitated() || !istype(usr, /mob/living))\n+\t\tusr << \"<span class='warning'>You can't do that.</span>\"\n+\t\treturn\n+\n+\tif(!Adjacent(usr))\n+\t\tusr << \"<span class='warning'>You can't reach it.</span>\"\n+\t\treturn\n+\n+\tproc_eject_id(usr)\n+\n+// Eject ID card from computer, if it has ID slot with card inside.\n+/obj/item/modular_computer/verb/eject_usb()\n+\tset name = \"Eject Portable Device\"\n+\tset category = \"Object\"\n+\tset src in view(1)\n+\n+\tif(usr.incapacitated() || !istype(usr, /mob/living))\n+\t\tusr << \"<span class='warning'>You can't do that.</span>\"\n+\t\treturn\n+\n+\tif(!Adjacent(usr))\n+\t\tusr << \"<span class='warning'>You can't reach it.</span>\"\n+\t\treturn\n+\n+\tproc_eject_usb(usr)\n+\n+/obj/item/modular_computer/proc/proc_eject_id(mob/user)\n+\tif(!user)\n+\t\tuser = usr\n+\n+\tif(!card_slot)\n+\t\tuser << \"\\The [src] does not have an ID card slot\"\n+\t\treturn\n+\n+\tif(!card_slot.stored_card)\n+\t\tuser << \"There is no card in \\the [src]\"\n+\t\treturn\n+\n+\tif(active_program)\n+\t\tactive_program.event_idremoved(0)\n+\n+\tfor(var/datum/computer_file/program/P in idle_threads)\n+\t\tP.event_idremoved(1)\n+\n+\tcard_slot.stored_card.forceMove(get_turf(src))\n+\tcard_slot.stored_card = null\n+//\tupdate_uis()\n+\tuser << \"You remove the card from \\the [src]\"\n+\n+/obj/item/modular_computer/proc/proc_eject_usb(mob/user)\n+\tif(!user)\n+\t\tuser = usr\n+\n+\tif(!portable_drive)\n+\t\tuser << \"There is no portable device connected to \\the [src].\"\n+\t\treturn\n+\n+\tuninstall_component(user, portable_drive)\n+//\tupdate_uis()\n+\n+/obj/item/modular_computer/attack_ghost(mob/dead/observer/user)\n+\tif(enabled)\n+\t\tui_interact(user)\n+\telse if(check_rights_for(user.client, R_ADMIN))\n+\t\tvar/response = alert(user, \"This computer is turned off. Would you like to turn it on?\", \"Admin Override\", \"Yes\", \"No\")\n+\t\tif(response == \"Yes\")\n+\t\t\tturn_on(user)\n+\n+/obj/item/modular_computer/emag_act(mob/user)\n+\tif(computer_emagged)\n+\t\tuser << \"\\The [src] was already emagged.\"\n+\t\treturn 0\n+\telse\n+\t\tcomputer_emagged = 1\n+\t\tuser << \"You emag \\the [src]. It's screen briefly shows a \\\"OVERRIDE ACCEPTED: New software downloads available.\\\" message.\"\n+\t\treturn 1\n+\n+/obj/item/modular_computer/examine(mob/user)\n+\t..()\n+\tif(damage > broken_damage)\n+\t\tuser << \"<span class='danger'>It is heavily damaged!</span>\"\n+\telse if(damage)\n+\t\tuser << \"It is damaged.\"\n+\n+/obj/item/modular_computer/New()\n+\tmachines += src\n+\tSTART_PROCESSING(SSmachine, src)\n+\tupdate_icon()\n+\tif(!physical)\n+\t\tphysical = src\n+\t..()\n+\n+/obj/item/modular_computer/Destroy()\n+\tkill_program(1)\n+\tmachines.Remove(src)\n+\tSTOP_PROCESSING(SSmachine, src)\n+\tfor(var/obj/item/weapon/computer_hardware/CH in src.get_all_components())\n+\t\tuninstall_component(null, CH)\n+\t\tqdel(CH)\n+\treturn ..()\n+\n+/obj/item/modular_computer/update_icon()\n+\ticon_state = icon_state_unpowered\n+\n+\toverlays.Cut()\n+\tif(!enabled)\n+\t\t//set_light(0)\n+\t\treturn\n+\t//set_light(light_strength)\n+\tif(active_program)\n+\t\toverlays.Add(active_program.program_icon_state ? active_program.program_icon_state : icon_state_menu)\n+\telse\n+\t\toverlays.Add(icon_state_menu)\n+\n+// Used by child types if they have other power source than battery\n+/obj/item/modular_computer/proc/check_power_override()\n+\treturn 0\n+\n+// Operates NanoUI\n+/obj/item/modular_computer/ui_interact(mob/user, ui_key = \"main\", datum/tgui/ui = null, force_open = 0, datum/tgui/master_ui = null, datum/ui_state/state = default_state)\n+\n+\n+\tif(!screen_on || !enabled)\n+\t\tif(ui)\n+\t\t\tui.close()\n+\t\treturn 0\n+//\tif((!battery_module || !battery_module.battery.charge) && !check_power_override())\n+//\t\tif(ui)\n+//\t\t\tui.close()\n+//\t\treturn 0\n+\n+\t// If we have an active program switch to it now.\n+\tif(active_program)\n+\t\tif(ui) // This is the main laptop screen. Since we are switching to program's UI close it for now.\n+\t\t\tui.close()\n+\t\tactive_program.ui_interact(user)\n+\t\treturn\n+\n+\t// We are still here, that means there is no program loaded. Load the BIOS/ROM/OS/whatever you want to call it.\n+\t// This screen simply lists available programs and user may select them.\n+\tif(!hard_drive || !hard_drive.stored_files || !hard_drive.stored_files.len)\n+\t\tphysical.visible_message(\"\\The [src] beeps three times, it's screen displaying \\\"DISK ERROR\\\" warning.\")\n+\t\treturn // No HDD, No HDD files list or no stored files. Something is very broken.\n+\n+\tui = SStgui.try_update_ui(user, src, ui_key, ui, force_open)\n+\tif (!ui)\n+//\t\tui = new(user, src, ui_key, \"laptop_mainscreen\", \"NTOS Main Menu\", 400, 500)\n+\t\tui = new(user, src, ui_key, activetemplate, \"Main menu\", 400, 500, master_ui, state)\n+//\t\tui.set_initial_data(data)\n+\t\tui.open()\n+\t\tui.set_autoupdate(state = 1)\n+\n+\n+/obj/item/modular_computer/ui_data(mob/user)\n+//\tvar/list/data = list()\n+//\tdata[\"active_program_template\"] = active_program\n+\n+//\treturn data\n+\n+\tvar/list/data = get_header_data()\n+\tdata[\"programs\"] = list()\n+//\tvar/list/programs = list()\n+\tfor(var/datum/computer_file/program/P in hard_drive.stored_files)\n+\t\tvar/running = 0\n+\t\tif(P in idle_threads)\n+\t\t\trunning = 1\n+\n+\t\tdata[\"programs\"] += list(list(\"name\" = P.filename, \"desc\" = P.filedesc, \"running\" = running))\n+\n+//\t\tvar/list/program = list()\n+\n+//\t\tprogram[\"name\"] = P.filename\n+//\t\tprogram[\"desc\"] = P.filedesc\n+//\t\tif(P in idle_threads)\n+//\t\t\tprogram[\"running\"] = 1\n+//\t\tprograms.Add(list(program))\n+\treturn data\n+\n+\n+// On-click handling. Turns on the computer if it's off and opens the GUI.\n+/obj/item/modular_computer/attack_self(mob/user)\n+\tif(enabled)\n+\t\tui_interact(user)\n+\telse\n+\t\tturn_on(user)\n+\n+/obj/item/modular_computer/proc/break_apart()\n+\tphysical.visible_message(\"\\The [src] breaks apart!\")\n+\tvar/turf/newloc = get_turf(src)\n+\tnew /obj/item/stack/sheet/metal(newloc, round(steel_sheet_cost/2))\n+\tfor(var/obj/item/weapon/computer_hardware/H in get_all_components())\n+\t\tuninstall_component(null, H)\n+\t\tH.forceMove(newloc)\n+\t\tif(prob(25))\n+\t\t\tH.take_damage(rand(10,30))\n+\trelay_qdel()\n+\tqdel()\n+\n+/obj/item/modular_computer/proc/turn_on(mob/user)\n+\tvar/issynth = issilicon(user) // Robots and AIs get different activation messages.\n+\tif(damage > broken_damage)\n+\t\tif(issynth)\n+\t\t\tuser << \"You send an activation signal to \\the [src], but it responds with an error code. It must be damaged.\"","path":"code/modules/modular_computers/computers/item/modular_computer.dm","position":261,"original_position":261,"commit_id":"3628d1b9df78e1d2a3ef78a6eced96e99d55626f","original_commit_id":"3628d1b9df78e1d2a3ef78a6eced96e99d55626f","user":{"login":"Jalleo","id":4549053,"avatar_url":"https://avatars.githubusercontent.com/u/4549053?v=3","gravatar_id":"","url":"https://api.github.com/users/Jalleo","html_url":"https://github.com/Jalleo","followers_url":"https://api.github.com/users/Jalleo/followers","following_url":"https://api.github.com/users/Jalleo/following{/other_user}","gists_url":"https://api.github.com/users/Jalleo/gists{/gist_id}","starred_url":"https://api.github.com/users/Jalleo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Jalleo/subscriptions","organizations_url":"https://api.github.com/users/Jalleo/orgs","repos_url":"https://api.github.com/users/Jalleo/repos","events_url":"https://api.github.com/users/Jalleo/events{/privacy}","received_events_url":"https://api.github.com/users/Jalleo/received_events","type":"User","site_admin":false},"body":"Fair few duplicate words here.","created_at":"2016-08-06T21:50:02Z","updated_at":"2016-08-06T21:50:02Z","html_url":"https://github.com/tgstation/tgstation/pull/19729#discussion_r73792474","pull_request_url":"https://api.github.com/repos/tgstation/tgstation/pulls/19729","_links":{"self":{"href":"https://api.github.com/repos/tgstation/tgstation/pulls/comments/73792474"},"html":{"href":"https://github.com/tgstation/tgstation/pull/19729#discussion_r73792474"},"pull_request":{"href":"https://api.github.com/repos/tgstation/tgstation/pulls/19729"}}},"pull_request":{"url":"https://api.github.com/repos/tgstation/tgstation/pulls/19729","id":80332527,"html_url":"https://github.com/tgstation/tgstation/pull/19729","diff_url":"https://github.com/tgstation/tgstation/pull/19729.diff","patch_url":"https://github.com/tgstation/tgstation/pull/19729.patch","issue_url":"https://api.github.com/repos/tgstation/tgstation/issues/19729","number":19729,"state":"open","locked":false,"title":"[WIP] Ports baystation's modular computers","user":{"login":"Shadowlight213","id":9410002,"avatar_url":"https://avatars.githubusercontent.com/u/9410002?v=3","gravatar_id":"","url":"https://api.github.com/users/Shadowlight213","html_url":"https://github.com/Shadowlight213","followers_url":"https://api.github.com/users/Shadowlight213/followers","following_url":"https://api.github.com/users/Shadowlight213/following{/other_user}","gists_url":"https://api.github.com/users/Shadowlight213/gists{/gist_id}","starred_url":"https://api.github.com/users/Shadowlight213/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Shadowlight213/subscriptions","organizations_url":"https://api.github.com/users/Shadowlight213/orgs","repos_url":"https://api.github.com/users/Shadowlight213/repos","events_url":"https://api.github.com/users/Shadowlight213/events{/privacy}","received_events_url":"https://api.github.com/users/Shadowlight213/received_events","type":"User","site_admin":false},"body":"Ported from baystation12. Credit for the sprites and original code goes to them.\r\n\r\nMostly done, just need to finish the id card program, and do general code cleanup and finalizing.\r\n\r\nPictures soon, once i finish that.\r\nMajor thanks to @RemieRichards  for teaching me how to tgui and @MrStonedOne  for helping me get gulp working.\r\n\r\nPort contains\r\nNTNET\r\nNTIRC\r\nnew access for network admin\r\nDos and revelation syndie programs\r\nNT monitor program\r\nFile manager and peer to peer file transfer\r\nTablets/consoles/laptops\r\nThe various parts of those things.\r\nPower monitor and general alarm consoles have been ported to programs\r\n\r\n\r\ntodo:\r\nID card program\r\nNTIRC logging\r\nGive power cell compatibility with chargers\r\nmapping\r\ngive some way to make the console frames and get parts\r\nmake a circuitboard for the ntnet relay.\r\nfigure out how to fix the margins so it doesn't look like shit for some of the programs.\r\n\r\n:cl:\r\nadd: Adds modular computers\r\n/:cl:\r\n\r\nI'm not integrating them into the already existing computer construction stuff because they don't use circuitboards, and work completely differently.","created_at":"2016-08-06T06:31:42Z","updated_at":"2016-08-06T21:50:02Z","closed_at":null,"merged_at":null,"merge_commit_sha":"1c563295e0f24726cf2565d90718d2a5e31d3087","assignee":null,"assignees":[],"milestone":null,"commits_url":"https://api.github.com/repos/tgstation/tgstation/pulls/19729/commits","review_comments_url":"https://api.github.com/repos/tgstation/tgstation/pulls/19729/comments","review_comment_url":"https://api.github.com/repos/tgstation/tgstation/pulls/comments{/number}","comments_url":"https://api.github.com/repos/tgstation/tgstation/issues/19729/comments","statuses_url":"https://api.github.com/repos/tgstation/tgstation/statuses/3628d1b9df78e1d2a3ef78a6eced96e99d55626f","head":{"label":"Shadowlight213:bayputers","ref":"bayputers","sha":"3628d1b9df78e1d2a3ef78a6eced96e99d55626f","user":{"login":"Shadowlight213","id":9410002,"avatar_url":"https://avatars.githubusercontent.com/u/9410002?v=3","gravatar_id":"","url":"https://api.github.com/users/Shadowlight213","html_url":"https://github.com/Shadowlight213","followers_url":"https://api.github.com/users/Shadowlight213/followers","following_url":"https://api.github.com/users/Shadowlight213/following{/other_user}","gists_url":"https://api.github.com/users/Shadowlight213/gists{/gist_id}","starred_url":"https://api.github.com/users/Shadowlight213/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Shadowlight213/subscriptions","organizations_url":"https://api.github.com/users/Shadowlight213/orgs","repos_url":"https://api.github.com/users/Shadowlight213/repos","events_url":"https://api.github.com/users/Shadowlight213/events{/privacy}","received_events_url":"https://api.github.com/users/Shadowlight213/received_events","type":"User","site_admin":false},"repo":{"id":32113084,"name":"-tg-station","full_name":"Shadowlight213/-tg-station","owner":{"login":"Shadowlight213","id":9410002,"avatar_url":"https://avatars.githubusercontent.com/u/9410002?v=3","gravatar_id":"","url":"https://api.github.com/users/Shadowlight213","html_url":"https://github.com/Shadowlight213","followers_url":"https://api.github.com/users/Shadowlight213/followers","following_url":"https://api.github.com/users/Shadowlight213/following{/other_user}","gists_url":"https://api.github.com/users/Shadowlight213/gists{/gist_id}","starred_url":"https://api.github.com/users/Shadowlight213/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Shadowlight213/subscriptions","organizations_url":"https://api.github.com/users/Shadowlight213/orgs","repos_url":"https://api.github.com/users/Shadowlight213/repos","events_url":"https://api.github.com/users/Shadowlight213/events{/privacy}","received_events_url":"https://api.github.com/users/Shadowlight213/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/Shadowlight213/-tg-station","description":"/tg/'s SS13 branch","fork":true,"url":"https://api.github.com/repos/Shadowlight213/-tg-station","forks_url":"https://api.github.com/repos/Shadowlight213/-tg-station/forks","keys_url":"https://api.github.com/repos/Shadowlight213/-tg-station/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Shadowlight213/-tg-station/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Shadowlight213/-tg-station/teams","hooks_url":"https://api.github.com/repos/Shadowlight213/-tg-station/hooks","issue_events_url":"https://api.github.com/repos/Shadowlight213/-tg-station/issues/events{/number}","events_url":"https://api.github.com/repos/Shadowlight213/-tg-station/events","assignees_url":"https://api.github.com/repos/Shadowlight213/-tg-station/assignees{/user}","branches_url":"https://api.github.com/repos/Shadowlight213/-tg-station/branches{/branch}","tags_url":"https://api.github.com/repos/Shadowlight213/-tg-station/tags","blobs_url":"https://api.github.com/repos/Shadowlight213/-tg-station/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Shadowlight213/-tg-station/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Shadowlight213/-tg-station/git/refs{/sha}","trees_url":"https://api.github.com/repos/Shadowlight213/-tg-station/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Shadowlight213/-tg-station/statuses/{sha}","languages_url":"https://api.github.com/repos/Shadowlight213/-tg-station/languages","stargazers_url":"https://api.github.com/repos/Shadowlight213/-tg-station/stargazers","contributors_url":"https://api.github.com/repos/Shadowlight213/-tg-station/contributors","subscribers_url":"https://api.github.com/repos/Shadowlight213/-tg-station/subscribers","subscription_url":"https://api.github.com/repos/Shadowlight213/-tg-station/subscription","commits_url":"https://api.github.com/repos/Shadowlight213/-tg-station/commits{/sha}","git_commits_url":"https://api.github.com/repos/Shadowlight213/-tg-station/git/commits{/sha}","comments_url":"https://api.github.com/repos/Shadowlight213/-tg-station/comments{/number}","issue_comment_url":"https://api.github.com/repos/Shadowlight213/-tg-station/issues/comments{/number}","contents_url":"https://api.github.com/repos/Shadowlight213/-tg-station/contents/{+path}","compare_url":"https://api.github.com/repos/Shadowlight213/-tg-station/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Shadowlight213/-tg-station/merges","archive_url":"https://api.github.com/repos/Shadowlight213/-tg-station/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Shadowlight213/-tg-station/downloads","issues_url":"https://api.github.com/repos/Shadowlight213/-tg-station/issues{/number}","pulls_url":"https://api.github.com/repos/Shadowlight213/-tg-station/pulls{/number}","milestones_url":"https://api.github.com/repos/Shadowlight213/-tg-station/milestones{/number}","notifications_url":"https://api.github.com/repos/Shadowlight213/-tg-station/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Shadowlight213/-tg-station/labels{/name}","releases_url":"https://api.github.com/repos/Shadowlight213/-tg-station/releases{/id}","deployments_url":"https://api.github.com/repos/Shadowlight213/-tg-station/deployments","created_at":"2015-03-13T01:10:41Z","updated_at":"2016-01-12T00:23:32Z","pushed_at":"2016-08-06T06:16:14Z","git_url":"git://github.com/Shadowlight213/-tg-station.git","ssh_url":"git@github.com:Shadowlight213/-tg-station.git","clone_url":"https://github.com/Shadowlight213/-tg-station.git","svn_url":"https://github.com/Shadowlight213/-tg-station","homepage":"http://www.tgstation13.org/","size":635221,"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":"tgstation:master","ref":"master","sha":"777276f31f0baad0149f8775887eb36ab3a118dc","user":{"login":"tgstation","id":1363778,"avatar_url":"https://avatars.githubusercontent.com/u/1363778?v=3","gravatar_id":"","url":"https://api.github.com/users/tgstation","html_url":"https://github.com/tgstation","followers_url":"https://api.github.com/users/tgstation/followers","following_url":"https://api.github.com/users/tgstation/following{/other_user}","gists_url":"https://api.github.com/users/tgstation/gists{/gist_id}","starred_url":"https://api.github.com/users/tgstation/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tgstation/subscriptions","organizations_url":"https://api.github.com/users/tgstation/orgs","repos_url":"https://api.github.com/users/tgstation/repos","events_url":"https://api.github.com/users/tgstation/events{/privacy}","received_events_url":"https://api.github.com/users/tgstation/received_events","type":"Organization","site_admin":false},"repo":{"id":3234987,"name":"tgstation","full_name":"tgstation/tgstation","owner":{"login":"tgstation","id":1363778,"avatar_url":"https://avatars.githubusercontent.com/u/1363778?v=3","gravatar_id":"","url":"https://api.github.com/users/tgstation","html_url":"https://github.com/tgstation","followers_url":"https://api.github.com/users/tgstation/followers","following_url":"https://api.github.com/users/tgstation/following{/other_user}","gists_url":"https://api.github.com/users/tgstation/gists{/gist_id}","starred_url":"https://api.github.com/users/tgstation/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tgstation/subscriptions","organizations_url":"https://api.github.com/users/tgstation/orgs","repos_url":"https://api.github.com/users/tgstation/repos","events_url":"https://api.github.com/users/tgstation/events{/privacy}","received_events_url":"https://api.github.com/users/tgstation/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/tgstation/tgstation","description":"the /tg/station branch of SS13","fork":false,"url":"https://api.github.com/repos/tgstation/tgstation","forks_url":"https://api.github.com/repos/tgstation/tgstation/forks","keys_url":"https://api.github.com/repos/tgstation/tgstation/keys{/key_id}","collaborators_url":"https://api.github.com/repos/tgstation/tgstation/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/tgstation/tgstation/teams","hooks_url":"https://api.github.com/repos/tgstation/tgstation/hooks","issue_events_url":"https://api.github.com/repos/tgstation/tgstation/issues/events{/number}","events_url":"https://api.github.com/repos/tgstation/tgstation/events","assignees_url":"https://api.github.com/repos/tgstation/tgstation/assignees{/user}","branches_url":"https://api.github.com/repos/tgstation/tgstation/branches{/branch}","tags_url":"https://api.github.com/repos/tgstation/tgstation/tags","blobs_url":"https://api.github.com/repos/tgstation/tgstation/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/tgstation/tgstation/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/tgstation/tgstation/git/refs{/sha}","trees_url":"https://api.github.com/repos/tgstation/tgstation/git/trees{/sha}","statuses_url":"https://api.github.com/repos/tgstation/tgstation/statuses/{sha}","languages_url":"https://api.github.com/repos/tgstation/tgstation/languages","stargazers_url":"https://api.github.com/repos/tgstation/tgstation/stargazers","contributors_url":"https://api.github.com/repos/tgstation/tgstation/contributors","subscribers_url":"https://api.github.com/repos/tgstation/tgstation/subscribers","subscription_url":"https://api.github.com/repos/tgstation/tgstation/subscription","commits_url":"https://api.github.com/repos/tgstation/tgstation/commits{/sha}","git_commits_url":"https://api.github.com/repos/tgstation/tgstation/git/commits{/sha}","comments_url":"https://api.github.com/repos/tgstation/tgstation/comments{/number}","issue_comment_url":"https://api.github.com/repos/tgstation/tgstation/issues/comments{/number}","contents_url":"https://api.github.com/repos/tgstation/tgstation/contents/{+path}","compare_url":"https://api.github.com/repos/tgstation/tgstation/compare/{base}...{head}","merges_url":"https://api.github.com/repos/tgstation/tgstation/merges","archive_url":"https://api.github.com/repos/tgstation/tgstation/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/tgstation/tgstation/downloads","issues_url":"https://api.github.com/repos/tgstation/tgstation/issues{/number}","pulls_url":"https://api.github.com/repos/tgstation/tgstation/pulls{/number}","milestones_url":"https://api.github.com/repos/tgstation/tgstation/milestones{/number}","notifications_url":"https://api.github.com/repos/tgstation/tgstation/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/tgstation/tgstation/labels{/name}","releases_url":"https://api.github.com/repos/tgstation/tgstation/releases{/id}","deployments_url":"https://api.github.com/repos/tgstation/tgstation/deployments","created_at":"2012-01-21T17:32:47Z","updated_at":"2016-08-02T22:44:31Z","pushed_at":"2016-08-06T21:18:28Z","git_url":"git://github.com/tgstation/tgstation.git","ssh_url":"git@github.com:tgstation/tgstation.git","clone_url":"https://github.com/tgstation/tgstation.git","svn_url":"https://github.com/tgstation/tgstation","homepage":"http://www.tgstation13.org/","size":1520703,"stargazers_count":309,"watchers_count":309,"language":"DM","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":1111,"mirror_url":null,"open_issues_count":819,"forks":1111,"open_issues":819,"watchers":309,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/tgstation/tgstation/pulls/19729"},"html":{"href":"https://github.com/tgstation/tgstation/pull/19729"},"issue":{"href":"https://api.github.com/repos/tgstation/tgstation/issues/19729"},"comments":{"href":"https://api.github.com/repos/tgstation/tgstation/issues/19729/comments"},"review_comments":{"href":"https://api.github.com/repos/tgstation/tgstation/pulls/19729/comments"},"review_comment":{"href":"https://api.github.com/repos/tgstation/tgstation/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/tgstation/tgstation/pulls/19729/commits"},"statuses":{"href":"https://api.github.com/repos/tgstation/tgstation/statuses/3628d1b9df78e1d2a3ef78a6eced96e99d55626f"}}}}
{"actor":{"display_login":"Jalleo"}}