Commit Graph

56 Commits

Author SHA1 Message Date
SkyratBot
17e4f6ad76 [MIRROR] Converts SFX keys into DEFINES [MDB IGNORE] (#11990)
* Converts SFX keys into DEFINES

* fixes and updates

Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
Co-authored-by: John Doe <gamingskeleton3@gmail.com>
2022-03-11 16:43:39 -07:00
SkyratBot
2508c3c818 [MIRROR] The Science Hub app for research is now available for science employees in addition to heads of staff. [MDB IGNORE] (#11912)
* The Science Hub app for research is now available for science employees in addition to heads of staff. (#65035)

* The Science Hub app for research is now available for science employees in addition to heads of staff.

Co-authored-by: zxaber <37497534+zxaber@users.noreply.github.com>
2022-03-06 11:38:45 -05:00
SkyratBot
a554c8a74c [MIRROR] Minor improvements and fixes to the access report paper from the Plexagon computer program [MDB IGNORE] (#10044)
* Minor improvements and fixes to the access report paper from the Plexagon computer program (#63262)

* Minor improvements and fixes to the access report paper from the Plexagon computer program

Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
2021-12-13 00:34:15 +00:00
SkyratBot
532ce4e9ef [MIRROR] Proper custom job name support [MDB IGNORE] (#9547)
* Proper custom job name support

* merge (#9552)

Co-authored-by: Tastyfish <crazychris32@gmail.com>
2021-11-20 22:52:42 +01:00
SkyratBot
a8270ae919 [MIRROR] Revert "Basic ID cards with job trims can now hold higher level accesses to their own departments." [MDB IGNORE] (#9086)
* Revert "Basic ID cards with job trims can now hold higher level accesses to their own departments."

* Fixing conflict

Co-authored-by: oranges <email@oranges.net.nz>
Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
2021-10-27 18:35:24 -04:00
SkyratBot
305ba1c142 [MIRROR] Basic ID cards with job trims can now hold higher level accesses to their own departments. [MDB IGNORE] (#9067)
* Basic ID cards with job trims can now hold higher level accesses to their own departments.

* Update jobs.dm

Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
Co-authored-by: KathrinBailey <53862927+KathrinBailey@users.noreply.github.com>
2021-10-27 17:20:05 +01:00
SkyratBot
124ddd7cca [MIRROR] tgui Preferences Menu + total rewrite of the preferences backend (#8153)
* tgui Preferences Menu + total rewrite of the preferences backend

* nah, we dont need to ping those people

* trying to remove the funny stuff

* unmodularizing this

* prefs reset

* this may need to be reverted, who knows

* okay, this part

* perhaps

* EEEEEEEEE

* unsanitary

* E

* Stage 1 + loadout system

* more fixes

* E

* I mean, it launches?

* More fixes and reorganisation

* E

* customisation code is spaget.

* disable ERP prefs

* Update erp_preferences.dm

* Update erp_preferences.dm

* E

* Slowly getting there

* It may be time for help :)

* tri...colors... help

* preferences now pass preferences

* Update dna.dm

* Fuck this man

* missing savefile return, set_species works, removed dumb stuff from updateappearance

* https://github.com/Skyrat-SS13/Skyrat-tg/pull/8199

* https://github.com/Skyrat-SS13/Skyrat-tg/pull/8224

* https://github.com/tgstation/tgstation/pull/61519

* https://github.com/Skyrat-SS13/Skyrat-tg/pull/8278

* e

* le butonAZARAK HELLO

* hhh

* Proper recognition where it's due, MrMelbert!

* EEEE

* examine block

* Better gen hit sounds from whitedream

* final loadout touches, more bug fixes im sure to come

* i said there would be bugfixes

* Update LoadoutManager.js

* Missing preferences in the html menu

* LIVE TESTING PHASE BABY

* Update LoadoutManager.js

* EEE

* LAUNCH TEST FIRE

* Update job.dm

* Update new_player.dm

* 50gb DAY ONE PATCH

* EEE

* Update preferences.dm

* buggle fixes

* Update examine.dm

* >LOOC starts on

Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
Co-authored-by: jjpark-kb <55967837+jjpark-kb@users.noreply.github.com>
Co-authored-by: Gandalf <jzo123@hotmail.com>
Co-authored-by: Azarak <azarak10@gmail.com>
2021-09-23 00:40:37 +01:00
FlamingLily
4601d90fcc Update card.dm (#7092) 2021-07-25 10:11:00 +12:00
SkyratBot
7d1d0e1fad [MIRROR] Refactors most spans into span procs (#6315)
* Refactors most spans into span procs

* AA

* a

* AAAAAAAAAAAAAAAAAAAAAA

* Update species.dm

Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com>
Co-authored-by: Gandalf <jzo123@hotmail.com>
2021-06-16 00:24:49 +01:00
SkyratBot
a51b300cc6 [MIRROR] Adds extended Centcom support for ID console app and misc fixes (#3961)
* Adds extended Centcom support for ID console app and misc fixes (#57420)

Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>

* Adds extended Centcom support for ID console app and misc fixes

Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
2021-03-07 00:36:38 +00:00
SkyratBot
f0f1810155 [MIRROR] Fix inability to demote certain subordinates with the ID card app. (#3818)
* Fix inability to demote certain subordinates with the ID card app. (#57317)

The trim system handles the interaction between heads and their air quotes "subordinates" differently. Instead of checking for head_subordinates - Which is a compiled list for who is and isn't a subordinate of who based on job datums - We instead check for the ability to apply a trim's access template to a card.

This means that if you're able to assign a trim's access as a template, you're able to demote that trim too.

This fixes some edge cases like being unable to demote Security Officer (Department) cards because technically Security Officer (Engineering) and Security Officer (Science) aren't real jobs (insert joke here) - They lack job datums and never get assigned as the HoS's subordinates.

This is a much more modular and intuitive way of handling demotions.

* Fix inability to demote certain subordinates with the ID card app.

Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
2021-03-03 22:34:09 +00:00
SkyratBot
a05f7e863a [MIRROR] Fully implements the ID Card design document (#3729)
* Fully implements the ID Card design document

* Oh fuck that hurt.

Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
Co-authored-by: Gandalf2k15 <jzo123@hotmail.com>
2021-03-03 01:54:25 +00:00
SkyratBot
cd2f7ed397 [MIRROR] fix modular id console telekinesis+ai (#3276)
* fix modular id console telekinesis+ai (#56787)

* fix modular id console telekinesis+ai

Co-authored-by: Fhaxaris <Chrisamcculler@gmail.com>
2021-02-11 00:05:49 +00:00
SkyratBot
de89c62c63 [MIRROR] NTDownloader UI revamp (#3246)
* NTDownloader UI revamp (#56704)

Revamp of the software downloader program for modular computers.

Changes:

- Programs are now sorted alphabetically with incompatible ones in the end of the list.
- Installed programs are now displayed in the list.
- Added program icons.
- Moved the error messages in place of the download button.
- Only the most important error message is displayed now. Priority: compatibility, access, free space.
- Syndicate programs are now displayed in the same list, but have a warning message from NT (There are no warning messages on syndicate OS).
- Added program categories to improve navigation. The default option "All" contains items from all categories.
- Download progress bar moved in place of the Disk usage bar. Disk usage is updated only after the download is complete, so the information was inaccurate during download. And the download bar now always visible regardless of selected category.
- The old download progress bar (next to the corresponding program) is replaced with "Downloading" indicator with a spinner.

Co-authored-by: Aleksej Komarov <stylemistake@ gmail.com>

* NTDownloader UI revamp

Co-authored-by: Andrew <mt.forspam@gmail.com>
Co-authored-by: Aleksej Komarov <stylemistake@ gmail.com>
2021-02-10 00:41:48 +00:00
SkyratBot
aa22eaee89 Replaced all id consoles with modular ones (#3212)
Co-authored-by: Fhaxaris <Chrisamcculler@gmail.com>
Co-authored-by: Gandalf2k15 <jzo123@hotmail.com>
2021-02-08 23:55:36 +00:00
SkyratBot
3c84eee13e [MIRROR] Improve ID console name and assignment input (#3173)
* Improve ID console name and assignment input (#56662)

reject_bad_name and reject_bad_text doesn't directly sanitize. It's
best not to rely on this proc to sanitize as that's not the point of
it, even though it can sanitize as part of its functioning. Instead,
we explicitly sanitize the input first, then we reject_bad_whatever
on the sanitized input.

It also offers improved feedback to the user instead of failing
silently, and allows numbers as some of our ID cards (For example,
prisoner IDs) have numbers in their registered_names and assignments.
I don't like creating the game world in a state that players cannot
also replicate themselves.

Also swings by the ancient HTML interfaces to bring them up to the
same standard through either sanitizing input or stripping input as
appropriate.

* Improve ID console name and assignment input

Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
2021-02-07 14:09:40 +00:00
SkyratBot
3c197e248f [MIRROR] [s] Sanitizes modular console ID edits (#3074)
* [s] Sanitizes modular console ID edits (#56657)

Co-authored-by: Mothblocks <35135081+Jared-Fogle@ users.noreply.github.com>

* [s] Sanitizes modular console ID edits

Co-authored-by: silicons <2003111+silicons@users.noreply.github.com>
Co-authored-by: Mothblocks <35135081+Jared-Fogle@ users.noreply.github.com>
2021-02-04 21:05:20 +00:00
SkyratBot
9628bd7b5a [MIRROR] ID Card access change logging, Part 2 (#2700)
* ID Card access change logging, Part 2 (#56155)

I've condensed the logging into a single define, to allow ID card logging to be easily tweaked and to clean up some messy copy-pasted code.

There is no longer admin messaging for Head of Staff accesses, but it's all still logged as it was before.

There is a new option for the Investigate verb.

Which has the complete logging history for ID card changes that are currently tracked, all in one place.

Which admins can ALSO access from Get Current Logs and Get Server Logs for past rounds via id_card_changes.html

* ID Card access change logging, Part 2

Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
2021-01-16 00:47:19 +01:00
SkyratBot
094a2e17e0 [MIRROR] Ads loging and admun notifucations too certain ID card access changes (#2580)
* Adds logging and admin notifications to certain ID card access changes (#56014)

* Loog

* Adjust modular computer loog

* Update access.dm

* Move ADMIN_VV in string

* To define or not to define, that is the question when logging everything

* More user loog

* Ads loging and admun notifucations too certain ID card access changes

Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
2021-01-08 22:58:22 +01:00
SkyratBot
b8d9874c27 [MIRROR] Converts all A && A.B into A?.B (#1292)
* Converts A && A.B into A?.B (#54342)

Implements the ?. operator, replacing code like A && A.B with A?.B

BYOND Ref:
When reading A?.B, it's equivalent to A && A.B except that A is only evaluated once, even if it's a complex expression like a proc call.

* Converts all A && A.B into A?.B

Co-authored-by: ZeWaka <zewakagamer@gmail.com>
2020-10-13 23:19:25 +02:00
SkyratBot
f8ce14a9a6 [MIRROR] Makes Modular PC icons not hardcoded in NtosMain.js, and fixes them not showing up (#1151)
* Unhardcodes Modular PC icons (#54158)

* Changes modPC program icons to not be hardcoded

* icons

* tgui.bundle.js, we meet again

* Makes Modular PC icons not hardcoded in NtosMain.js, and fixes them not showing up

Co-authored-by: zxaber <37497534+zxaber@users.noreply.github.com>
2020-10-04 15:25:44 +02:00
SkyratBot
98568e191a [MIRROR] Enforce preserving parent proc return values across ui_act call stacks (#999)
* Enforce preserving parent proc return values across ui_act call stacks (#53964)

All ui_act procs should call parent by default. All procs should preserve the value of the parent proc when it's TRUTHY and pass it down the call stack. No UI should be interactible when its flags or state indicate it should not be, except when explicity overriden by child procs intentionally disregarding parent return values to achieve a specific goal.

* Enforce preserving parent proc return values across ui_act call stacks

Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
2020-09-26 17:17:59 +02:00
SkyratBot
76b951a104 [MIRROR] Fixes a runtime for ModPCs running Plexagon Access Management without a secondary card slot (#750)
* Fixes a runtime for ModPCs running Plexagon Access Management without a secondary card slot (#53597)

As said by the title.

Also fixes an oversight where the Plexagon HR Core app (job management) was reading worn ID rather than inserted ID.

Also adds names to differentiate between primary and secondary card readers so both show on the screwdriver remove menu.

Also makes using IDs on a modPC actually call the InsertID proc, so that having the secondary ID come first in the list of parts doesn't give it priority.
Co-authored-by: Bobbahbrown <bobbahbrown@gmail.com>

* Fixes a runtime for ModPCs running Plexagon Access Management without a secondary card slot

Co-authored-by: zxaber <37497534+zxaber@users.noreply.github.com>
2020-09-11 23:18:07 +02:00
SkyratBot
df9714cba8 [MIRROR] Support for expansion-class modPC hardware, a modPC hardware item required for the atmos scanning app, and reworking ID card slots in a related fashion (#284)
* Support for expansion-class modPC hardware (#52644)

* Support for expansion-class modPC hardware

* end of the line

* As requested

Did anyone know that the tablet vendor was attaching the wrong ModPC printer? I bet no one knew that.

* update

* Support for expansion-class modPC hardware, a modPC hardware item required for the atmos scanning app, and reworking ID card slots in a related fashion

Co-authored-by: zxaber <37497534+zxaber@users.noreply.github.com>
2020-08-11 15:03:19 +02:00
SkyratBot
5e6fcd041b [MIRROR] Updates modular PC program names to have some flavor (#216)
* Updates modular PC program names to have some flavor (#52492)

* Better program names

* Forgot a few things.

* oops

* Updates modular PC program names to have some flavor

Co-authored-by: zxaber <37497534+zxaber@users.noreply.github.com>
2020-08-07 01:38:08 +01:00
Aleksej Komarov
0cf00a2645 tgui 4.0 (#52085)
* tgui 4.0 hyper squash

* Upgrade dependencies
2020-07-16 20:13:04 +02:00
actioninja
b5dfd8880d id to component name 2020-04-19 19:36:35 +03:00
Fikou
a59e4fb1b5 merges civilian and service departments (#50142)
* merges the service and civilian departments

* yee haw
2020-03-26 22:05:28 +08:00
nemvar
556e48b431 Heads can no longer grants all access. 2020-03-19 14:18:23 +01:00
ShizCalev
4316f79d32 Fixes some inconsistencies with CentCom & Nanotrasen capitalization, and a couple typos (#49469)
typo fixes, inconsistencies with Nanotrasen capitalization, ect
2020-02-22 22:35:53 +13:00
Rob Bailey
62d1a3941c tgui-next ntos card console (#48938)
About The Pull Request

A PR now several weeks in the making that spiraled ridiculously out of control for something not many even use.
What else is new in NTOS hell?
I spent several days doing nothing but playing escape from tarkov so this took longer than expected I valiantly spent all night and day working on this, and barely finished it before The Deadline
the card ntos program was split into three programs, manifest, job management, and id card modification. It didn't make much sense for them all to be the same program imo, and made the project a bit more managable.

Airlock electronics saw some improvements as well since it uses this new access control section as well.

Yet again some new functionality and improvements to core components. Buttons now have an "altSelected" feature where instead of changing the color it adds a small white marker, among some other things.

There were a couple of small changes in inconsequential ways in other places, and datacore was refactored a tiny bit. Probably some other stuff I don't remember.

I would replace the old card console with a modular computer right now, but I know a few people actually use this program and want a bit of time to iron out bugs and inconsistencies before replacing the main job console with it.
Changelog

🆑
add: tgui-next NTOS card console, job manager, and crew manifest
tweak: airlock electronics interface is a little fancier

/🆑
2020-02-01 20:47:36 +13:00
Alek2ander
4e26573f7b Job specific ID cards (#45112)
* Job based IDs attempt one

* This doesn't actually work

* Back to overlays

* The Comment Section

* Cached flat icons
2019-07-13 21:24:35 -07:00
XDTM
6f21758521 Handheld IDs are valid for authentication (#40456)
cl XDTM
tweak: Holding an ID in your hands uses it instead of your worn ID for authentication purposes.
tweak: If you don't have an ID in your id slot, the belt slot will be checked as well.
/cl

Fixes #40437

Makes sense if you want to use a specific access card without playing pocket tetris. The get_idcard has an argument for prioritizing worn id over held id, for stuff like identification.
2018-10-03 09:58:37 +13:00
kevinz000
8ebc63d2f2 Randomized Station Time + Night Shifts 2018-02-20 21:59:44 -08:00
Emmett Gaines
825ab4def4 [512] The great \ref purge (#31824)
* The great \ref purge

* cleanup
2017-10-28 17:20:04 -04:00
Jordan Brown
b6d349e1d4 Remove drop_item, drop_item_v, put_in_hands_or_del (#31386) 2017-10-07 13:36:33 -04:00
Jordan Brown
4178c209f1 Configuration datum refactor (#30763)
* Configuration datum refactor

* More WIP

* New easier on the eyes format

* More WIP

* Finished config.txt

* Fucktons more WIP

* The end of conversion draws near...

* Add all this shit

* Done converting entries finally

* Hunting down compile errors

* More WIP

* MORE CONVERSIONS

* More WIP

* More WIP

* Oh shit only 90 errors this time!

* IT COMPILES!!!

* Fixes world start runtimes
2017-09-29 15:36:51 +13:00
Jordan Brown
af4d9a85c9 Repaths /obj/item/weapon to /obj/item (#29929) 2017-08-16 10:38:51 -03:00
Leo
ca59ca6c23 Changes all access const to be a define (#29260) 2017-07-16 18:44:23 +02:00
ShizCalev
59ef81245b Changes some 1s and 0s to TRUE and FALSE (#29144) 2017-07-10 10:31:34 -04:00
Jordan Brown
faff732da1 Fixes roundstart ntnet runtime 2017-06-02 09:49:02 -04:00
kevinz000
019fa55775 Properly makes ID console jobslot open/close delays a config option (#27606) 2017-05-25 10:38:03 -03:00
c0
a5d6f6d8aa Refactor of modular PC UIs 2017-05-08 12:45:47 +03:00
Shadowlight213
4d2e526978 Changes card program to only require head of staff access to download 2017-04-24 20:51:46 -07:00
Cyberboss
9e1ef0ffe2 Global variable wrappers (#25325)
* Add the system for managed global variables

* Travis ban old globals

* So you CAN inline proccall, that's neat

* Fix that

* master.dm

* Remove the hack procs

* Move InitGlobals to the proper spot

* configuration.dm

* Fix the missing pre-slash

* clockcult.dm

* This is probably for the best

* Doy

* Fix shit

* Rest of the DEFINES tree

* Fix

* Use global. for access

* Update find_references_in_globals

Always hated that proc

Whoever made it must've bee a r e a l idiot...

* __HELPERS tree

* Move global initialization to master.

Fix the declaration

* database.dm

* Dat newline

* I said DECLARATIVE order!

* Here's something you can chew on @Iamgoofball

* game_modes.dm

* Fix this

* genetics.dm

* flavor_misc.dm

* More stuff

* Do it mso's way. Keep the controllers as global

* Make master actually see it

* Fix

* Finish _globalvars/lists

* Finish the rest of the _globalvars tree

* This is weird

* Migrate the controllers

* SLOTH -> GLOB

* Lighting globals

* round_start_time -> ticker

* PAI card list -> pai SS

* record_id_num -> static

* Diseases list -> SSdisease

* More disease globals to the SS

* More disease stuff

* Emote list

* Better and better

* Bluh

* So much stuff

* Ahh

* Wires

* dview

* station_areas

* Teleportlocs

* blood_splatter_icons

* Stuff and such

* More stuff

* RAD IO

* More stuff and such

* Blob shit

* Changeling stuff

* Add "Balance" to changelogs

* Balance for changelog compiler + Auto Tagging

* Update the PR template

* hivemind_bank

* Bip

* sacrificed

* Good shit

* Better define

* More cult shit

* Devil shit

* Gang shit

* > borers

Fix shit

* Rename the define

* Nuke

* Objectives

* Sandbox

* Multiverse sword

* Announce systems

* Stuff and such

* TC con

* Airlock

* doppllllerrrrrr

* holopads

* Shut up byond you inconsistent fuck

* Sneaky fuck

* Burp

* Bip

* Fixnshit

* Port without regard

* askdlfjs;

* asdfjasoidojfi

* Protected globals and more

* SO MANY

* ajsimkvahsaoisd

* akfdsiaopwimfeoiwafaw

* gsdfigjosidjfgiosdg

* AHHHHHHHHHHHHHHHHHHHHHHH!!!!!

* facerolll

* ASDFASDFASDF

* Removes the unused parts of dmm_suite

* WIP

* Fix quote

* asdfjauwfnkjs

* afwlunhskjfda

* asfjlaiwuefhaf

* SO CLOSE

* wwwweeeeeewwwww

* agdgmoewranwg

* HOLY MOTHER OF FUCK AND THATS JUST HALF THE JOB?!?

* Fix syntax errors

* 100 errors

* Another 100

* So many...

* Ugh

* More shit

* kilme

* Stuuuuuufffff

* ajrgmrlshio;djfa;sdkl

* jkbhkhjbmjvjmh

* soi soi soi

* butt

* TODAY WE LEARNED THAT GLOBAL AND STATIC ARE THE EXACT SAME FUCKING THING

* lllllllllllllllllllllllllllllllllllllllllll

* afsdijfiawhnflnjhnwsdfs

* yugykihlugk,kj

* time to go

* STUFFF!!!

* AAAAAAAAAAAAAAAAAHHHHHHHHHHHHHHHHHHHHHHHHHHH!!!!!!!!!!!!!!!!!!!!!!!

* ngoaijdjlfkamsdlkf

* Break time

* aufjsdklfalsjfi

* CONTROL KAY AND PRAY

* IT COMPILEELEELELAKLJFKLDAFJLKFDJLADKJHFLJKAJGAHIEJALDFJ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

* Goteem

* Fix testing mode

* This does not belong in this PR

* Convert it to a controller

* Eh, fuck this option

* Revert controllerization Ill do it some other time

* Fix

* Working controllerization

* FOR THE LOVE OF CHRIST PROTECT THE LOGS

* Protect admins and deadmins

* Use the inbuilt proc
2017-04-06 23:26:13 -06:00
Lzimann
5a618297ce Replaces the default output with the to_chat wrapper. 2017-03-10 01:32:05 -03:00
Shadowlight213
c931cd43df Fixes bugs with ID program (#22919) 2017-01-12 12:47:36 +01:00
Razharas
186d852bc5 Modular computers now use list of components (#20557)
* Bringing computers to the light side

Bringing computers to the light side

* Lighter and lighter

Lighter and lighter

* Missed some lists

Missed some lists

* Text to defines

Text to defines

* Last commit

Last commit

* How did this even get here

How did this even get here

* Removing bad stuff

Removing bad stuff

* Fixes verb adding and idle check

Fixes verb adding and idle check
2016-09-18 00:40:21 +02:00
Remie Richards
00738bd2a3 More than 2 hands!? WHAAAAAAT 2016-09-02 16:10:16 +01:00
Core0verload
91e5b35707 Modular PCs rewrite (#20003)
* Modular computers rework, part A

* tweaks&fixes

* Adds component-side compatibility checks

* Moves computers to SSobj

* Fixes stationary computers not using power usage vars

* Changes icon generation a bit, adds icons to broken computers

* Moves UI into it's own file

* Laptop refactor + sprite replacement

* Modular console's keyboard now lights up when powered

* minor fixes

* fixes

* bonus: wired connector, new type of recharger

* Modular computers are now devices

* code quality ocd
2016-08-25 10:28:33 +12:00