mirror of
https://github.com/bitburner-official/bitburner-src.git
synced 2026-04-22 17:23:00 +02:00
Compare commits
974 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 50cf362b3b | |||
| 5ba7b2796d | |||
| 9cbb525da3 | |||
| 0ae8b72188 | |||
| 1e641468f7 | |||
| 3187bb990d | |||
| 4e8bb96f3f | |||
| 97c04a1037 | |||
| 62cd8ffcc6 | |||
| 0d9caac455 | |||
| f701cbffa7 | |||
| 73d0dd98f2 | |||
| c05be66c60 | |||
| b0e4a2a775 | |||
| 86ddc940aa | |||
| 510fcedf90 | |||
| 5cce1c255c | |||
| 854239ceb1 | |||
| 73834d03cd | |||
| cefd499ff6 | |||
| c5713fa6d8 | |||
| b0739f8942 | |||
| a6d7f93111 | |||
| 86678b6290 | |||
| 498a204c88 | |||
| d6584386ff | |||
| b5abbbc240 | |||
| 514b467e27 | |||
| 1fc2e6fd2a | |||
| b758807ba1 | |||
| 14e6dd0158 | |||
| ce578206eb | |||
| 3289f76cd0 | |||
| 3aacab504b | |||
| 6d179be018 | |||
| 86da356478 | |||
| c0e1706128 | |||
| 06f716c0fa | |||
| 07bc697477 | |||
| 60a91cd9f7 | |||
| 97624395c1 | |||
| d49fea4cbc | |||
| 125e9484f7 | |||
| ef17f0d617 | |||
| f7aa393a8f | |||
| 7fb2b8b590 | |||
| cba40c71b2 | |||
| 4254cc2807 | |||
| 8b15adda8a | |||
| b0f20c8c8f | |||
| 5c6c472b64 | |||
| 5170c0e004 | |||
| fe18c55173 | |||
| 69c9b20e68 | |||
| 2d45784102 | |||
| 65cb519801 | |||
| 76e6cb4ecc | |||
| 7b6f9293c7 | |||
| dc2bf871cf | |||
| 1d349c25f7 | |||
| 5484c64a95 | |||
| ec33fb411c | |||
| 2a966d0726 | |||
| 29143999a6 | |||
| a32b8eabe3 | |||
| 43723a3fbb | |||
| ad75fa5ebc | |||
| 4abc1df840 | |||
| da488e586b | |||
| 413333c919 | |||
| 4f219a3214 | |||
| 2e05f14c0d | |||
| 47f54a11c3 | |||
| b8faa9dc0b | |||
| 8fd6b2e7da | |||
| cdd9c174e7 | |||
| e6291a09a0 | |||
| 9ccfca3c72 | |||
| 346024af45 | |||
| 66a2adaeb4 | |||
| c1945ab12e | |||
| 3a7c64872a | |||
| 06edf5b70c | |||
| d2008e86b4 | |||
| 32d1affb50 | |||
| 558b671206 | |||
| a954259e25 | |||
| 64c7831c81 | |||
| 61dd393bb5 | |||
| 28aca06208 | |||
| c79fa240e1 | |||
| e1741778f9 | |||
| 80560ce9f6 | |||
| f9a4eadb71 | |||
| 96f0879230 | |||
| 9c40cf6f28 | |||
| 55901f0574 | |||
| 43f0746be7 | |||
| 8eeed583c2 | |||
| dc518e7032 | |||
| 0c932dd4d1 | |||
| c94ec2f170 | |||
| 6111c50eb1 | |||
| 8977f299e5 | |||
| 2a8b1c2116 | |||
| 9a6b185141 | |||
| 501ce70702 | |||
| 9b94692942 | |||
| 06880c68e1 | |||
| 637f88efcd | |||
| 57a5c8b0b4 | |||
| c3ac16f330 | |||
| c564de40b3 | |||
| 1b26d25a53 | |||
| 7aa2d00460 | |||
| ffa9600302 | |||
| db35fde42e | |||
| d73040fdc5 | |||
| a38df2e613 | |||
| b931ab5566 | |||
| 4e44e784c6 | |||
| aa4451b12d | |||
| 2a52f6fa2b | |||
| 8b7723338b | |||
| 9e62438b43 | |||
| 74906cc9e6 | |||
| 483590ef8b | |||
| 7cd821ef5e | |||
| 5e48530e14 | |||
| bb4de3f62c | |||
| bb546ef6e1 | |||
| 9552ae3ef1 | |||
| d1974a3e70 | |||
| e9b030c450 | |||
| dffc0c5858 | |||
| a9c57e23a5 | |||
| 8db57d7e81 | |||
| 34313e8100 | |||
| 91c7ae53ef | |||
| 44d6845883 | |||
| a3e624deba | |||
| 7355f4212b | |||
| fb37f6b94d | |||
| 4a3201cba3 | |||
| 48eb0df99f | |||
| a282d5d7fd | |||
| 3554da5a53 | |||
| d78309f3b0 | |||
| 9bc20526ff | |||
| 7a2dd16092 | |||
| 0a2dbe66e4 | |||
| dade51a26b | |||
| 505040137f | |||
| db31b70efc | |||
| ce3898367c | |||
| cd0aa192f5 | |||
| 374b81ffae | |||
| 652428b164 | |||
| 93706d31ee | |||
| 38408294cc | |||
| 023f2b8309 | |||
| 61e3959a25 | |||
| 4b6a6300f5 | |||
| e5abf014b2 | |||
| e087420519 | |||
| e1a22016b5 | |||
| bdfa4be71f | |||
| eb2a44e213 | |||
| 23e8bc2e71 | |||
| 48cfa14366 | |||
| aef4aac61a | |||
| f545726980 | |||
| 9471e8d4a0 | |||
| c85ebe9ee2 | |||
| b5d7b3c108 | |||
| be9b595590 | |||
| eacf15b463 | |||
| 425c998435 | |||
| 549c8b61db | |||
| 244e669b2b | |||
| 6f20b0bc30 | |||
| d1cb5b313a | |||
| 1996deaf0a | |||
| 907314e76b | |||
| f359fe661e | |||
| 45f2f85a30 | |||
| fd55155fea | |||
| 70205e06ee | |||
| 1344a17482 | |||
| affc79a499 | |||
| aa0008862c | |||
| 89ea9aaff5 | |||
| 1883bea906 | |||
| 4a3658ea13 | |||
| 812dec6cb2 | |||
| 19a73a2802 | |||
| 92ec4785a9 | |||
| acd51e8328 | |||
| 6013bacc60 | |||
| ff726afcd6 | |||
| cab823bcdf | |||
| 2cb762184f | |||
| 7837454f18 | |||
| 8e764a5524 | |||
| 757b38327f | |||
| 628572cf21 | |||
| 744f3bc067 | |||
| 195dff7c44 | |||
| 4bf3e5a2e4 | |||
| defaa2ccd6 | |||
| 6d70d9708f | |||
| b6924d6889 | |||
| 3fc46c8fc6 | |||
| d7a86ab8b9 | |||
| 407ed70ae3 | |||
| a21c0f4a0b | |||
| 3acf965dad | |||
| 0cf2e2469e | |||
| 7ba37397dd | |||
| 18f40a8d9f | |||
| 22648df857 | |||
| 07721e1cc5 | |||
| b682a442fe | |||
| 4a5fb04d41 | |||
| f628a18551 | |||
| 1890f1fd44 | |||
| 34dda1f252 | |||
| 8e1d31423f | |||
| 05718e00ea | |||
| aba97d2baa | |||
| f0f57150aa | |||
| 088657f162 | |||
| 302e105bdf | |||
| 867dd3ba91 | |||
| 5866f47151 | |||
| 5d9f9d2681 | |||
| 2922e42055 | |||
| 8097364242 | |||
| ac80be1b40 | |||
| bd26e2f9ca | |||
| 3f447b7fa1 | |||
| 206edd8df5 | |||
| e4e539c067 | |||
| ff2d238ea4 | |||
| 96dc1eb1f4 | |||
| f393baaa82 | |||
| 409cb53597 | |||
| 22bf958e2e | |||
| 11a345dd66 | |||
| 4ca54dbe00 | |||
| 63a4a30189 | |||
| 56680d5b17 | |||
| 4c15d4ef42 | |||
| 55769b5005 | |||
| 684a254ac8 | |||
| dc9b5c3341 | |||
| ed461ccca5 | |||
| f895da118d | |||
| 2833b881ea | |||
| 8a0f33daf0 | |||
| 2ba04a602e | |||
| cb3b5b10d7 | |||
| d9bdc5bf5f | |||
| 25c4f9047f | |||
| 7e2fd52ae2 | |||
| fd0b4f7b01 | |||
| 8ed9f8a64d | |||
| 89a85c73ec | |||
| 9adf69afbd | |||
| 2d463b60a0 | |||
| 05fd85002c | |||
| f8b9c50563 | |||
| 70cb4b215d | |||
| 8c2d6616e3 | |||
| ab29f249c1 | |||
| e345edb74f | |||
| a991dbf54f | |||
| fe065d23eb | |||
| 8e4e9dabd9 | |||
| ae15caf45a | |||
| 4ad5b06e19 | |||
| acc215cc61 | |||
| e52a2b19e8 | |||
| 8fba57fd24 | |||
| 8ec585e0b6 | |||
| 38cf4bd3cd | |||
| 4412a8e5b0 | |||
| 0ed93ec0a5 | |||
| dadd4fe03d | |||
| 83f785a791 | |||
| d515db0842 | |||
| 5f8de7e426 | |||
| 2f2923dd8b | |||
| b8b0948a1a | |||
| d84d93ad3b | |||
| 1b63f833be | |||
| 752a330735 | |||
| 4480423b7f | |||
| a9c80f0691 | |||
| 5b4bc0a68f | |||
| 1a5651ae8b | |||
| 3b314f5d1d | |||
| aeb0a7d3e3 | |||
| 75af7a096b | |||
| 7ac1d24d61 | |||
| e79ea4d3cb | |||
| b9dcffdf58 | |||
| 8d1adff2ae | |||
| 2c427b1116 | |||
| 42aa4ca23f | |||
| dd27158cf0 | |||
| 1593b0b3f3 | |||
| 705b154f13 | |||
| 1edcbe88ee | |||
| 609ba34804 | |||
| 99e82cd867 | |||
| bc33f67409 | |||
| 224463e6dd | |||
| 02fd09c5d3 | |||
| 33aeeb7977 | |||
| add19d353e | |||
| 4bedf05b1c | |||
| 5f64187a0f | |||
| 339d9a8d96 | |||
| b45ab657c5 | |||
| c9611cc824 | |||
| 4b051468ad | |||
| 9df926427b | |||
| 8460df99df | |||
| dc890a908b | |||
| e5dcb424a2 | |||
| e906a6331f | |||
| c4617e4b9a | |||
| 76404dd83a | |||
| be08161442 | |||
| f93ee45254 | |||
| 7e8e9e03fc | |||
| 715bc541ec | |||
| cb31954b08 | |||
| 7f1d39a298 | |||
| d5c9306395 | |||
| b0fcdb8363 | |||
| ab8937870c | |||
| 4e22b880bb | |||
| f77ab4e871 | |||
| 0a210555e9 | |||
| 3df298e91e | |||
| b7e07bc7f2 | |||
| 0bc9bfb0f2 | |||
| 5cd72860e3 | |||
| e44813b65d | |||
| 3473fc2ea6 | |||
| 0c0adf29d5 | |||
| c97fece747 | |||
| a2aaf6bd2e | |||
| 2a13db39c7 | |||
| bada8a5f39 | |||
| 6979082be7 | |||
| 1c9542d102 | |||
| 0d5a302580 | |||
| 7bc0764d5d | |||
| bc034bb417 | |||
| ea99166f7f | |||
| 82c3362adc | |||
| e7d77b7569 | |||
| c5af4f8177 | |||
| d0cb0e3f5b | |||
| f7adadd671 | |||
| faa6f75027 | |||
| 3b0cf6714a | |||
| cd43f25bf5 | |||
| 6e670e88e2 | |||
| 20062b11b9 | |||
| d0ca2d8c36 | |||
| 20e41e8006 | |||
| 7ef7fc1b26 | |||
| 6352704608 | |||
| 072f7693f4 | |||
| fbe70f51c2 | |||
| 27e2b2ea65 | |||
| 6320189717 | |||
| 17da325585 | |||
| 5873b5fe19 | |||
| 6d8b52c0d6 | |||
| 8faa7faf8a | |||
| 66a593e06b | |||
| 506122f5b8 | |||
| 91434b7972 | |||
| ba46262426 | |||
| aa91e8aecc | |||
| 2874112946 | |||
| 3f8aa2aa9e | |||
| b9acfde363 | |||
| b4c9655782 | |||
| f50b2a9d9f | |||
| a475e6297e | |||
| cfdf23cd11 | |||
| d6aa331310 | |||
| 306facc0d1 | |||
| 5e11e77282 | |||
| daafdbbddf | |||
| 8501c9bb1b | |||
| 05f3b1c390 | |||
| 7f15a19f12 | |||
| 4011542b97 | |||
| 858b1e7468 | |||
| cfbdae6def | |||
| 05a6f2a20e | |||
| 05bab22807 | |||
| a18bdd6afc | |||
| 3d7cdb4ef9 | |||
| eed915dbbd | |||
| 570e5b17a2 | |||
| 4a7fcda86f | |||
| a63178f30c | |||
| 2914bbb789 | |||
| 1e42f73e2a | |||
| 2d322e7a6a | |||
| 75d77410ea | |||
| 0ad05c7bad | |||
| 69ec6f6679 | |||
| c8dd17d573 | |||
| 1241cc5128 | |||
| e1c29f25e2 | |||
| c9efa977fb | |||
| 6e013e4e6a | |||
| 3a943e0e50 | |||
| f2edb42aca | |||
| e1cb0e529c | |||
| 008b233c9d | |||
| cc9a07c09f | |||
| 2866bfaa70 | |||
| 38880f69e1 | |||
| eb01051ad6 | |||
| 5dd6145d53 | |||
| a652140224 | |||
| aa929b1837 | |||
| 9b501e061a | |||
| 6f3db27373 | |||
| 454a792f0a | |||
| 8d17495e85 | |||
| d3aeda8ad5 | |||
| 65158e4db7 | |||
| fd85a00b8f | |||
| a239f0ad58 | |||
| d936f68c7a | |||
| feebdc8ee5 | |||
| 0eeb868e25 | |||
| d9c9c30fdd | |||
| 294640d27e | |||
| fe25460997 | |||
| f987ff9e2a | |||
| d65cbf07f4 | |||
| 2624e13c34 | |||
| 7c9c4d3f4d | |||
| a2379b21ec | |||
| 68885ceff5 | |||
| 1ae17677c0 | |||
| 67be13c6d6 | |||
| d4349e85b1 | |||
| a721c49e1d | |||
| 2d2c20bfc7 | |||
| ed035a2e89 | |||
| cf72d72bb0 | |||
| 3ba04220e1 | |||
| a72d1aa99f | |||
| 21008ba65a | |||
| a760ede129 | |||
| 717b32b0b4 | |||
| 4b6d049da2 | |||
| 8bb4e8b7cf | |||
| 0d30544a52 | |||
| 361ef31fe7 | |||
| 0de3deee3f | |||
| 94ad7ccf4b | |||
| 4b53d6ecf7 | |||
| 3d2aeb63a0 | |||
| b621359a9e | |||
| 07c0b708d7 | |||
| b372f23b6e | |||
| a8254e7144 | |||
| 02a21cf2d9 | |||
| bcb0606900 | |||
| 42704d8695 | |||
| e75197dee3 | |||
| 9e92df47a5 | |||
| c110c22efb | |||
| c9ab7908a7 | |||
| 3ab306f9d7 | |||
| f08aa8924c | |||
| c4914fa54f | |||
| fa5e2f4964 | |||
| 77eda1fd75 | |||
| c987c91a11 | |||
| feaa74ed34 | |||
| 701fba7ec7 | |||
| 51bd626e88 | |||
| ab4863e7df | |||
| 1a8bcf66cc | |||
| 7bfceb1690 | |||
| 27e22814a9 | |||
| ceb4e304fd | |||
| e2d74f9432 | |||
| 79345a49b4 | |||
| 7066a793a1 | |||
| 2a5cf62168 | |||
| 6495be5705 | |||
| 0d6d05db49 | |||
| 5d59620dce | |||
| 60d95a90d0 | |||
| 51debc60da | |||
| faf625b34d | |||
| 1a8b194341 | |||
| 386f8a11c5 | |||
| 4278191b0e | |||
| 6d2b8b4f6f | |||
| b148b2f0b5 | |||
| 4a9bac99d2 | |||
| 0b3c114cd0 | |||
| 49cc75a575 | |||
| e0d631f8b3 | |||
| 8289c9fc75 | |||
| d66e36b637 | |||
| 6cd7465b82 | |||
| c7125e2e46 | |||
| a564957092 | |||
| 4b8e63f342 | |||
| 480d47eece | |||
| 4de20f8cce | |||
| 4b38d296a8 | |||
| 9ac75d5bf5 | |||
| 6561413137 | |||
| 1fb5105d0a | |||
| b67c03ff8a | |||
| 7db3716256 | |||
| ee5a70901b | |||
| 63b2c77907 | |||
| aa3ad3164c | |||
| 474befa091 | |||
| cd1c1ce145 | |||
| 5aa24f22c4 | |||
| f02c6443cc | |||
| 4497143785 | |||
| 0b3c48827b | |||
| 86de11e794 | |||
| fb87385704 | |||
| b1caea796a | |||
| 2dfd19c9e0 | |||
| 0e24020796 | |||
| ed62a3ebc2 | |||
| 258716388e | |||
| 73ec97db87 | |||
| 567c5dc230 | |||
| 980665b77c | |||
| dcddc0c2d5 | |||
| 6e1100750e | |||
| fea25249a8 | |||
| df457a0c6e | |||
| 3826de72ef | |||
| ee3530d9b9 | |||
| 5098ef6232 | |||
| 1a1a43c1ce | |||
| d6b349b6ff | |||
| 5c92360310 | |||
| 1fbb971d6f | |||
| fa78b3f421 | |||
| 9af9bf58b6 | |||
| 99afb156fa | |||
| 8d550157bc | |||
| 4865563f26 | |||
| cc8de58cff | |||
| 58ada6d128 | |||
| ae6f95b59a | |||
| 99d4f17cdb | |||
| 33f0efd49c | |||
| 988ca37764 | |||
| 0e9d7450c9 | |||
| 27ee65f524 | |||
| 78cd319c21 | |||
| 1d0f193c34 | |||
| 7367167019 | |||
| 08908c87ea | |||
| 392f164f8e | |||
| 3957a517db | |||
| e4b2a6853d | |||
| 697a8119b0 | |||
| b31b3dc735 | |||
| 5848fa53b7 | |||
| 539b206cb5 | |||
| 0f92890f0c | |||
| 056f0213dd | |||
| 41871de26c | |||
| 5803ddc613 | |||
| 99263309ba | |||
| 8a78ee4cf6 | |||
| af46324c6d | |||
| 42aa6525a6 | |||
| 05b1b55e9a | |||
| febf0835c2 | |||
| 94ea0d253c | |||
| 31cf02e8e4 | |||
| 97fdf7cb7f | |||
| 2c7fbc03cf | |||
| 07cca48a17 | |||
| 43d0fcb9f9 | |||
| 99b8dfa0c1 | |||
| 4cdd65e96c | |||
| 9e345b1375 | |||
| 9466017906 | |||
| 9c24f1325f | |||
| 26401fbb93 | |||
| 69dfbb6673 | |||
| 5863797b03 | |||
| 25f546c691 | |||
| 21daab32c1 | |||
| 67e5e413e4 | |||
| 796d91835c | |||
| be8d56ced9 | |||
| 0671c48c86 | |||
| 5e2ed7a79e | |||
| 94388ba6af | |||
| d9e60ea124 | |||
| 306fe97ed8 | |||
| 2750eb293a | |||
| c9b47ac3a6 | |||
| 8c9f78394b | |||
| 643d2525c5 | |||
| cb6e7ef5e9 | |||
| f7f9065472 | |||
| 1e3af43ab3 | |||
| e18aa08eeb | |||
| 5a75581b38 | |||
| 0d3bc1ea1f | |||
| 547324a813 | |||
| fa64186120 | |||
| 9b593758c3 | |||
| a55fd5046b | |||
| 0e177841ac | |||
| 0cd17cd3b3 | |||
| 04c0c87242 | |||
| 43b09a2459 | |||
| 8731a02ef0 | |||
| 30abcec74a | |||
| ae15914efa | |||
| 1aa141b87e | |||
| 55d1ebd0e4 | |||
| 06ac63aece | |||
| f706fee3d1 | |||
| f554398a7f | |||
| abe204109e | |||
| 434dd2b58d | |||
| 4c8d0acbd9 | |||
| 96847b5d27 | |||
| 8facdd2b49 | |||
| 8e2b5cfccb | |||
| 2c7a4f4ce6 | |||
| 1ca52e2b77 | |||
| 2248c083c8 | |||
| 37ec5c733f | |||
| 321dca4993 | |||
| 19f51b684b | |||
| 39b4048603 | |||
| 2b1ec7d573 | |||
| 2b13b5329f | |||
| 6661473adc | |||
| d6a7471e0b | |||
| 9996232751 | |||
| cdd376f2ae | |||
| 00a5085cdf | |||
| 4cd17607e6 | |||
| 1b734be895 | |||
| 6a8aa79396 | |||
| 34b3843e18 | |||
| dd75c1b2d2 | |||
| 6d072d766d | |||
| 7875d1ba93 | |||
| 0e458a8142 | |||
| 8ab571d54d | |||
| d9da1a8568 | |||
| b946886295 | |||
| 3bb74ceebe | |||
| e24c5b3cce | |||
| 527455bada | |||
| efdd8482d7 | |||
| 4180ceae17 | |||
| 9e04aef8d2 | |||
| 0fc6f90863 | |||
| 0cb821b50d | |||
| 14af88c3fc | |||
| 61dded637d | |||
| 4623bb3a0b | |||
| 4f7fb1cd62 | |||
| 0b401ba83b | |||
| 40813d5c4f | |||
| 687a2f8852 | |||
| 150a3b03f4 | |||
| 42935a217d | |||
| 2c2548f856 | |||
| 141f2a8331 | |||
| 5b9d2e36c6 | |||
| 80125d1521 | |||
| ed041743c2 | |||
| f9ff45fbed | |||
| fc5e0ea6a0 | |||
| 66ff040e38 | |||
| 49cc25479e | |||
| 4bd1813b45 | |||
| 8259c1a5b9 | |||
| c793a076db | |||
| e320a8339a | |||
| 1427a0f1ae | |||
| 17315733a7 | |||
| 29d7134859 | |||
| 4ac91f5599 | |||
| a3496cdfa9 | |||
| b88990444b | |||
| e9eae40891 | |||
| 0ec05f3fe2 | |||
| 21611ec571 | |||
| e7fde38bf9 | |||
| c47990ef56 | |||
| 23cefed8d4 | |||
| d86fb0262a | |||
| aef0cc815e | |||
| e0436a4314 | |||
| 1ad0fbe2e1 | |||
| db21010fe4 | |||
| 0535a0c49b | |||
| 6314000bd0 | |||
| a05335d6e2 | |||
| 54114dc6d0 | |||
| 1b6058dd0a | |||
| 75227233f3 | |||
| 8d80ecffd4 | |||
| 57ab1d885b | |||
| 34c2c70a2b | |||
| 0ef09a1c73 | |||
| 264e0b2e1a | |||
| 5755db4979 | |||
| 84b49bb5e9 | |||
| fb89b824d9 | |||
| fee661b451 | |||
| a40d0bb6e0 | |||
| f7f22ac7ef | |||
| 8fba3c3fa4 | |||
| a72560bf25 | |||
| 21211e7d08 | |||
| d627890047 | |||
| a1e0d40963 | |||
| ca8fc54400 | |||
| cf67213c36 | |||
| 51b2175c35 | |||
| 531c0ce5c0 | |||
| ad9c01ac50 | |||
| 0f266eaa42 | |||
| 674ce17834 | |||
| e611ab7bc7 | |||
| 60d6d49c43 | |||
| 75b2806c93 | |||
| 04b57f07a9 | |||
| a2d924e1c6 | |||
| f14f65814a | |||
| 04921520d8 | |||
| 9d1e132d11 | |||
| eb84652e19 | |||
| 7fedd1f1f5 | |||
| ba4169268c | |||
| 5bf21c0ab2 | |||
| 670587a07d | |||
| 4dc206bb3e | |||
| a7389f63b8 | |||
| 8ba63f4951 | |||
| b28f607056 | |||
| 218a9dd250 | |||
| 7a1fdd6c28 | |||
| b69a262faf | |||
| 66c87b1f64 | |||
| 9bc1a4a895 | |||
| 7a0d0b3fec | |||
| dd077152f4 | |||
| 2347e0b1fd | |||
| 188dcbad89 | |||
| eb7004feaa | |||
| 062cd2dc38 | |||
| 2f3e5c79e7 | |||
| bd172434d1 | |||
| afc1347d3a | |||
| b9c292f7cf | |||
| 6df824613e | |||
| de113a7b92 | |||
| 4ec14460b6 | |||
| 3f63d91448 | |||
| 2ae9a3d2a7 | |||
| ae04b7357e | |||
| bf141c7eb0 | |||
| 1503d82e35 | |||
| a75efd9c62 | |||
| 299e964e2b | |||
| 69fbfe87c0 | |||
| 60a229030b | |||
| e27b19ffae | |||
| 5e2c40ea23 | |||
| 8411de8e42 | |||
| 525c0ada55 | |||
| 0e06565e27 | |||
| 5e517d1671 | |||
| 1b57c1f7e0 | |||
| 0cb2fd1a87 | |||
| 08b0c7710d | |||
| f8a085af7a | |||
| c95a926154 | |||
| 5af10c8406 | |||
| 0f2b7517b4 | |||
| ac8565d820 | |||
| 2adcf79264 | |||
| 2bd4892fa8 | |||
| 46862d30fd | |||
| fccf2b5cb4 | |||
| f6af61d15b | |||
| b35d8475e3 | |||
| 04e8bc944e | |||
| d96ad9fa6e | |||
| 5dd32ef4e4 | |||
| 6dde89f3c4 | |||
| 9a9d2e1f81 | |||
| d347bf568e | |||
| 62e2f0582a | |||
| 68eb68a89e | |||
| 13206a8c3e | |||
| cfd78e2d36 | |||
| 8b7f140115 | |||
| 16c8c78b54 | |||
| cbb47772db | |||
| 0642491402 | |||
| c7e34d4a56 | |||
| 8be63be17b | |||
| 08207ac79b | |||
| 6747a509ff | |||
| c7c86240db | |||
| ce0c3d71f4 | |||
| 5bb6a72c90 | |||
| 5a06c60c27 | |||
| 764c2533b4 | |||
| a9cee6f907 | |||
| a10100bf60 | |||
| cedac23dfa | |||
| f7c1d64033 | |||
| 7d6d0eac32 | |||
| 34768591b7 | |||
| 827c79f70c | |||
| 0415c7aa7c | |||
| 0c744d98b9 | |||
| 11cbda6974 | |||
| e284f49747 | |||
| 7777c400a5 | |||
| dae0448744 | |||
| 02a4e85353 | |||
| 3cbf225c98 | |||
| 8006e976a5 | |||
| 5613d371c9 | |||
| 7c9d6669f7 | |||
| c6f0551709 | |||
| f57eed4de1 | |||
| b99711788f | |||
| 08aac8e35d | |||
| e3579b7229 | |||
| 662d0dd5fb | |||
| 77c40b5d67 | |||
| ee759a8dd6 | |||
| ad9c7ec696 | |||
| c9b5aaa2f7 | |||
| b554328a77 | |||
| c421c57e56 | |||
| fb42d5cd79 | |||
| 6203d8d6f4 | |||
| d422028737 | |||
| 136d769d55 | |||
| daaab1d6f1 | |||
| 4f7befb639 | |||
| 9976ed136c | |||
| 8c2e661e08 | |||
| e6e598eeb4 | |||
| 4d9439a007 | |||
| 9951c8b18f | |||
| 800c673839 | |||
| 065544909b | |||
| 4eaf68c940 | |||
| a14a694df3 | |||
| 3ab61cbaf3 | |||
| f49aff05d7 | |||
| e2371a0ef6 | |||
| 6a2b3ee52e | |||
| 5a45e3584d | |||
| 56ce83cce5 | |||
| d126b6d8c5 | |||
| 7172ef6dae | |||
| a8d0b6e13d | |||
| d2d6453a78 | |||
| 89cdecb05f | |||
| 81fdff9068 | |||
| 34a20802c9 | |||
| 6d53ff109b | |||
| 8eab9f3b59 | |||
| f40faadcc4 | |||
| fb129198a6 | |||
| 3eecff1de6 | |||
| d745150c45 | |||
| abe0330dc3 | |||
| 3fad505096 | |||
| b2ac383b69 | |||
| 77cb63e36a | |||
| 7df4aac8e6 | |||
| 50b490ba8d | |||
| 15bd8a6233 | |||
| 20c593b236 | |||
| 52a80ad236 | |||
| b2aafea656 | |||
| 135df8703c | |||
| 4743801e86 | |||
| 4e5ebcfe6f | |||
| 80b703639e | |||
| 0afdba8f38 | |||
| 925e96345d | |||
| db2bf79e3b | |||
| 6f330efc44 | |||
| 708c73fa0f | |||
| c7febd5551 | |||
| ddbdf66d00 | |||
| e572c6dad8 | |||
| ff097db1e2 | |||
| ad12f0e551 | |||
| 93f8785ec6 | |||
| 69124e7146 | |||
| 8a42f6e49c | |||
| 2ac4cd41bb | |||
| 28584c8461 | |||
| 1eddddd14f | |||
| 42e9a368b4 | |||
| 40713a4112 | |||
| 8e79658e67 | |||
| 6efc3ec75e | |||
| 9840e1f4eb | |||
| 7cdca5e813 | |||
| d170693da4 | |||
| 31a9c041b4 | |||
| ce7c2c309c | |||
| 29abffd464 | |||
| ae4b8228f7 | |||
| 04bc2bebdd | |||
| 8f30e60d08 | |||
| e8aa1851c5 | |||
| 7232a786ed | |||
| 2507899762 | |||
| 26149d5a01 | |||
| 670394ca2f | |||
| e0745d7757 | |||
| dc79f7a940 | |||
| bf4d841f88 | |||
| 4c30f107e3 | |||
| c9fe8d9b65 | |||
| 29ea1281e0 | |||
| 3ec54bcdd8 | |||
| 4892f0bd79 | |||
| 62c571ef3a | |||
| 6c57d548ec | |||
| 6c0b5b3ed9 | |||
| f288d982db | |||
| 101834fcaf | |||
| 642c7a107a | |||
| 63da8d709a | |||
| 753a1f1193 | |||
| 726c36f276 | |||
| 640795dbe9 | |||
| 802f28082d |
@@ -0,0 +1,3 @@
|
|||||||
|
last 4 versions
|
||||||
|
not dead
|
||||||
|
not ie <= 11
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
node_modules/
|
||||||
|
|
||||||
|
.git
|
||||||
|
.gitattributes
|
||||||
|
.gitignore
|
||||||
|
.editorconfig
|
||||||
|
|
||||||
|
.dockerignore
|
||||||
|
Dockerfile
|
||||||
|
docker-compose.yml
|
||||||
|
|
||||||
|
*.md
|
||||||
|
Quotes.txt
|
||||||
|
netscript_tests/
|
||||||
@@ -2,3 +2,6 @@ node_modules/
|
|||||||
doc/build/
|
doc/build/
|
||||||
dist/
|
dist/
|
||||||
tests/*.bundle.*
|
tests/*.bundle.*
|
||||||
|
src/ThirdParty/*
|
||||||
|
src/JSInterpreter.js
|
||||||
|
main.bundle.js
|
||||||
+390
-848
File diff suppressed because it is too large
Load Diff
+10
@@ -1,3 +1,5 @@
|
|||||||
|
.DS_Store
|
||||||
|
.vscode
|
||||||
Changelog.txt
|
Changelog.txt
|
||||||
Netburner.txt
|
Netburner.txt
|
||||||
/doc/build
|
/doc/build
|
||||||
@@ -6,3 +8,11 @@ Netburner.txt
|
|||||||
/test/*.map
|
/test/*.map
|
||||||
/test/*.bundle.*
|
/test/*.bundle.*
|
||||||
/test/*.css
|
/test/*.css
|
||||||
|
.cypress
|
||||||
|
|
||||||
|
# tmp folder for electron
|
||||||
|
.package
|
||||||
|
.build
|
||||||
|
|
||||||
|
# editor files
|
||||||
|
.vscode
|
||||||
|
|||||||
@@ -0,0 +1,4 @@
|
|||||||
|
node_modules
|
||||||
|
package.json
|
||||||
|
dist
|
||||||
|
doc/build/
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
{
|
||||||
|
"trailingComma": "all",
|
||||||
|
"tabWidth": 2,
|
||||||
|
"printWidth": 120
|
||||||
|
}
|
||||||
+70
-60
@@ -1,24 +1,27 @@
|
|||||||
# Contributing to Bitburner
|
# Contributing to Bitburner
|
||||||
|
|
||||||
## In General
|
## In General
|
||||||
|
|
||||||
The game is made better because the community as a whole speaks up about
|
The game is made better because the community as a whole speaks up about
|
||||||
ways to improve the game. Here's some of the ways you can make your voice
|
ways to improve the game. Here's some of the ways you can make your voice
|
||||||
heard:
|
heard:
|
||||||
- [Discord](https://discordapp.com)
|
|
||||||
There is a dedicated Discord instance set up for more free-form chats
|
- [Discord](https://discordapp.com)
|
||||||
between all members of the community. Regular players, heavy scripters,
|
There is a dedicated Discord instance set up for more free-form chats
|
||||||
Bitburner contributors, and everyone in between can be found on the
|
between all members of the community. Regular players, heavy scripters,
|
||||||
server.
|
Bitburner contributors, and everyone in between can be found on the
|
||||||
- [Github Issues](https://github.com/danielyxie/bitburner/issues)
|
server.
|
||||||
Although the term "issues" can have a negative connotation, they are a
|
- [Github Issues](https://github.com/danielyxie/bitburner/issues)
|
||||||
means of communicating with the community. A new Issue can be a
|
Although the term "issues" can have a negative connotation, they are a
|
||||||
interesting new feature that you feel would improve the game. It could be
|
means of communicating with the community. A new Issue can be a
|
||||||
an unexpected behavior within the game. Or because the game is about
|
interesting new feature that you feel would improve the game. It could be
|
||||||
scripting perhaps there is something that is conflicting with the
|
an unexpected behavior within the game. Or because the game is about
|
||||||
browser's Javascript interaction. So please do not be afraid to open a
|
scripting perhaps there is something that is conflicting with the
|
||||||
[new issue](https://github.com/danielyxie/bitburner/issues/new).
|
browser's Javascript interaction. So please do not be afraid to open a
|
||||||
|
[new issue](https://github.com/danielyxie/bitburner/issues/new).
|
||||||
|
|
||||||
## Reporting Bugs
|
## Reporting Bugs
|
||||||
|
|
||||||
The recommended method for reporting a bug is by opening a
|
The recommended method for reporting a bug is by opening a
|
||||||
[Github Issue](https://github.com/danielyxie/bitburner/issues).
|
[Github Issue](https://github.com/danielyxie/bitburner/issues).
|
||||||
|
|
||||||
@@ -30,18 +33,19 @@ already been reported as an [Issue](https://github.com/danielyxie/bitburner/issu
|
|||||||
|
|
||||||
#### How to Submit a Good Bug Report
|
#### How to Submit a Good Bug Report
|
||||||
|
|
||||||
* **Use a clear and descriptive title** for the issue
|
- **Use a clear and descriptive title** for the issue
|
||||||
* **State your browser, your browser's version, and your computer's OS**
|
- **State your browser, your browser's version, and your computer's OS**
|
||||||
* **Attach your save file**, if you think it would help solve the issue
|
- **Attach your save file**, if you think it would help solve the issue
|
||||||
* **Provide instructions on how to reproduce the bug** in as much detail
|
- **Provide instructions on how to reproduce the bug** in as much detail
|
||||||
as possible. If you cannot reliably reproduce the bug, then just try
|
as possible. If you cannot reliably reproduce the bug, then just try
|
||||||
your best to explain what was happening when the bug occurred
|
your best to explain what was happening when the bug occurred
|
||||||
* **Provide any scripts** that triggered the bug if the issue is Netscript-related
|
- **Provide any scripts** that triggered the bug if the issue is Netscript-related
|
||||||
* **Open your browser's Dev Console and report any error-related output**
|
- **Open your browser's Dev Console and report any error-related output**
|
||||||
that may be printed there. The Dev Console can be opened on most modern
|
that may be printed there. The Dev Console can be opened on most modern
|
||||||
browsers by pressing F12
|
browsers by pressing F12
|
||||||
|
|
||||||
## As a Developer
|
## As a Developer
|
||||||
|
|
||||||
Anyone is welcome to contribute to Bitburner code. However, please read
|
Anyone is welcome to contribute to Bitburner code. However, please read
|
||||||
the [license](https://github.com/danielyxie/bitburner/blob/dev/license.txt)
|
the [license](https://github.com/danielyxie/bitburner/blob/dev/license.txt)
|
||||||
and the [readme](https://github.com/danielyxie/bitburner/blob/dev/README.md)
|
and the [readme](https://github.com/danielyxie/bitburner/blob/dev/README.md)
|
||||||
@@ -52,64 +56,70 @@ To contribute to Bitburner code, you will need to have
|
|||||||
called `npm` is installed as well.
|
called `npm` is installed as well.
|
||||||
|
|
||||||
#### What are you Allowed to Contribute?
|
#### What are you Allowed to Contribute?
|
||||||
|
|
||||||
Not all code contributions will be accepted. The safest way to ensure
|
Not all code contributions will be accepted. The safest way to ensure
|
||||||
that you don't waste time working on something that gets rejected is to
|
that you don't waste time working on something that gets rejected is to
|
||||||
run your idea(s)/plan(s) past [danielyxie](https://github.com/danielyxie) first.
|
run your idea(s)/plan(s) past [danielyxie](https://github.com/danielyxie) first.
|
||||||
You can contact him through:
|
You can contact him through:
|
||||||
|
|
||||||
* Github
|
- Github
|
||||||
* Discord
|
- Discord
|
||||||
* [Reddit](https://www.reddit.com/user/chapt3r/)
|
- [Reddit](https://www.reddit.com/user/chapt3r/)
|
||||||
|
|
||||||
Otherwise, here are some general guidelines for determining what types of
|
Otherwise, here are some general guidelines for determining what types of
|
||||||
changes are okay to contribute:
|
changes are okay to contribute:
|
||||||
|
|
||||||
##### Contributions that Will Most Likely Be Accepted
|
##### Contributions that Will Most Likely Be Accepted
|
||||||
* Bug Fixes
|
|
||||||
* Quality-of-Life Changes
|
- Bug Fixes
|
||||||
* Adding a new, commonly-requested Netscript function
|
- Quality-of-Life Changes
|
||||||
* Fixing or improving UI elements
|
- Adding a new, commonly-requested Netscript function
|
||||||
* Adding game settings/options
|
- Fixing or improving UI elements
|
||||||
* Adding a new Terminal command
|
- Adding game settings/options
|
||||||
* Code Refactors that conform to good/standard practices
|
- Adding a new Terminal command
|
||||||
|
- Code Refactors that conform to good/standard practices
|
||||||
|
|
||||||
##### Contributions that will not be Accepted without prior approval
|
##### Contributions that will not be Accepted without prior approval
|
||||||
* Changes that directly affect the game's balance
|
|
||||||
* New gameplay mechanics
|
- Changes that directly affect the game's balance
|
||||||
|
- New gameplay mechanics
|
||||||
|
|
||||||
#### Submitting a Pull Request
|
#### Submitting a Pull Request
|
||||||
|
|
||||||
When submitting a pull request with your code contributions, please abide by
|
When submitting a pull request with your code contributions, please abide by
|
||||||
the following rules:
|
the following rules:
|
||||||
|
|
||||||
- Work in a branch forked from `dev` to isolate the new code
|
- Work in a branch forked from `dev` to isolate the new code
|
||||||
- Ensure you have latest from the [game's main
|
- Ensure you have latest from the [game's main
|
||||||
repository](danielyxie/bitburner@dev)
|
repository](danielyxie/bitburner@dev)
|
||||||
- Rebase your branch if necessary
|
- Rebase your branch if necessary
|
||||||
- Run the game locally to test out your changes
|
- Run the game locally to test out your changes
|
||||||
- When submitting the pull request, make sure that the base fork is
|
- When submitting the pull request, make sure that the base fork is
|
||||||
_danielyxie/bitburner_ and the base is _dev_.
|
_danielyxie/bitburner_ and the base is _dev_.
|
||||||
- If your changes affect the game's UI, attach some screenshots or GIFs showing
|
- If your changes affect the game's UI, attach some screenshots or GIFs showing
|
||||||
the changes to the UI
|
the changes to the UI
|
||||||
- If your changes affect Netscript, provide some
|
- If your changes affect Netscript, provide some
|
||||||
scripts that can be used to test the Netscript changes.
|
scripts that can be used to test the Netscript changes.
|
||||||
- Ensure you have run `npm run lint` to make sure your changes conform to the
|
- Ensure you have run `npm run lint` to make sure your changes conform to the
|
||||||
rules enforced across the code base. The command will fail if any of the
|
rules enforced across the code base. The command will fail if any of the
|
||||||
linters find a violation.
|
linters find a violation.
|
||||||
- Do not check in any bundled files (`dist\*.bundle.js`) or the `index.html`
|
- Do not check in any bundled files (`dist\*.bundle.js`) or the `index.html`
|
||||||
in the root of the repository. These will be updated as part of official
|
in the root of the repository. These will be updated as part of official
|
||||||
releases.
|
releases.
|
||||||
|
|
||||||
## As a Documentor
|
## As a Documentor
|
||||||
|
|
||||||
To contribute to and view your changes to the BitBurner documentation, you will
|
To contribute to and view your changes to the BitBurner documentation, you will
|
||||||
need to have Python installed, along with [Sphinx](http://www.sphinx-doc.org).
|
need to have Python installed, along with [Sphinx](http://www.sphinx-doc.org).
|
||||||
|
|
||||||
Before submitting your code for a pull request, please try to follow these
|
Before submitting your code for a pull request, please try to follow these
|
||||||
rules:
|
rules:
|
||||||
- Work in a branch forked from `dev` to isolate the new code
|
|
||||||
- Ensure you have latest from the [game's main
|
- Work in a branch forked from `dev` to isolate the new code
|
||||||
repository](danielyxie/bitburner@dev)
|
- Ensure you have latest from the [game's main
|
||||||
- Rebase your branch if necessary
|
repository](danielyxie/bitburner@dev)
|
||||||
- When submitting the pull request, make sure that the base fork is
|
- Rebase your branch if necessary
|
||||||
_danielyxie/bitburner_ and the base is _dev_.
|
- When submitting the pull request, make sure that the base fork is
|
||||||
- Do not check in any generated files under `doc\`. The documentation is built
|
_danielyxie/bitburner_ and the base is _dev_.
|
||||||
automatically by ReadTheDocs.
|
- Do not check in any generated files under `doc\`. The documentation is built
|
||||||
|
automatically by ReadTheDocs.
|
||||||
|
|||||||
+35
@@ -0,0 +1,35 @@
|
|||||||
|
FROM node:15.14.0 AS base
|
||||||
|
|
||||||
|
WORKDIR /app
|
||||||
|
|
||||||
|
# Scripts used in the npm preinstall hook
|
||||||
|
COPY scripts/engines-check.js scripts/semver.js scripts/
|
||||||
|
|
||||||
|
# Adding our dependencies and install before adding the rest of the files
|
||||||
|
# This prevents reinstallation of npm packages for every subsequent code modification
|
||||||
|
ENV npm_config_update_notifier=false
|
||||||
|
COPY package.json package-lock.json ./
|
||||||
|
RUN npm ci --loglevel=error --no-audit --no-fund && npm rebuild node-sass
|
||||||
|
|
||||||
|
# Adding all the remaining source files
|
||||||
|
COPY . .
|
||||||
|
|
||||||
|
# We need more than the default 512MB otherwise webpack will throw 'heap out of memory' exceptions
|
||||||
|
# https://nodejs.org/api/cli.html#cli_max_old_space_size_size_in_megabytes
|
||||||
|
ENV NODE_OPTIONS=--max-old-space-size=1536
|
||||||
|
|
||||||
|
FROM base AS dev
|
||||||
|
# This is the main development build using the file watcher if you mount volumes
|
||||||
|
USER node
|
||||||
|
EXPOSE 8000
|
||||||
|
CMD npm run start:container
|
||||||
|
|
||||||
|
FROM base AS prod-dist
|
||||||
|
# We'll simply build the production dist files here to later reuse in a simple webserver
|
||||||
|
RUN npm run build
|
||||||
|
|
||||||
|
FROM nginx:1.20.0-alpine AS prod
|
||||||
|
WORKDIR /usr/share/nginx/html
|
||||||
|
COPY --from=prod-dist /app/dist ./dist
|
||||||
|
COPY --from=prod-dist /app/index.html /app/favicon.ico /app/license.txt ./
|
||||||
|
EXPOSE 80
|
||||||
+2
-2
@@ -1,13 +1,13 @@
|
|||||||
Collection of Quotes
|
Collection of Quotes
|
||||||
|
|
||||||
The past is relevant only as data
|
The past is relevant only as data.
|
||||||
|
|
||||||
Pull on the new flesh like borrowed gloves and burn your fingers once again.
|
Pull on the new flesh like borrowed gloves and burn your fingers once again.
|
||||||
|
|
||||||
A weapon is a tool. A tool for killing and destroying. And there will be times
|
A weapon is a tool. A tool for killing and destroying. And there will be times
|
||||||
when you must kill and destroy. Then you will choose and equip yourself with the tools
|
when you must kill and destroy. Then you will choose and equip yourself with the tools
|
||||||
that you need. But remember the weakness of weapons. They are an extension --
|
that you need. But remember the weakness of weapons. They are an extension --
|
||||||
You are the killer and destroyer. You are whole, with or without them.
|
you are the killer and destroyer. You are whole, with or without them.
|
||||||
|
|
||||||
For all that we have done, as a civilization, as individuals, the universe is
|
For all that we have done, as a civilization, as individuals, the universe is
|
||||||
not stable, and nor is any single thing within it. Stars consume themselves,
|
not stable, and nor is any single thing within it. Stars consume themselves,
|
||||||
|
|||||||
@@ -1,9 +1,11 @@
|
|||||||
# Bitburner
|
# Bitburner
|
||||||
|
|
||||||
Bitburner is a programming-based [incremental game](https://en.wikipedia.org/wiki/Incremental_game)
|
Bitburner is a programming-based [incremental game](https://en.wikipedia.org/wiki/Incremental_game)
|
||||||
that revolves around hacking and cyberpunk themes.
|
that revolves around hacking and cyberpunk themes.
|
||||||
The game can be played at https://danielyxie.github.io/bitburner.
|
The game can be played at https://danielyxie.github.io/bitburner.
|
||||||
|
|
||||||
# Documentation
|
# Documentation
|
||||||
|
|
||||||
The game's official documentation can be found on [Read The
|
The game's official documentation can be found on [Read The
|
||||||
Docs](http://bitburner.readthedocs.io/). Please note that this is still a
|
Docs](http://bitburner.readthedocs.io/). Please note that this is still a
|
||||||
work-in-progress.
|
work-in-progress.
|
||||||
@@ -16,6 +18,7 @@ For further guidance, please refer to the "As A Documentor" section of
|
|||||||
[CONTRIBUTING](CONTRIBUTING.md).
|
[CONTRIBUTING](CONTRIBUTING.md).
|
||||||
|
|
||||||
# Contribution
|
# Contribution
|
||||||
|
|
||||||
There are many ways to contribute to the game. It can be as simple as fixing
|
There are many ways to contribute to the game. It can be as simple as fixing
|
||||||
a typo, correcting a bug, or improving the UI. For guidance on doing so,
|
a typo, correcting a bug, or improving the UI. For guidance on doing so,
|
||||||
please refer to the [CONTRIBUTING](CONTRIBUTING.md) document.
|
please refer to the [CONTRIBUTING](CONTRIBUTING.md) document.
|
||||||
|
|||||||
@@ -0,0 +1,21 @@
|
|||||||
|
## Deploying a new version
|
||||||
|
|
||||||
|
Update the following
|
||||||
|
|
||||||
|
- `src/Constants.ts` `Version` and `LatestUpdate`
|
||||||
|
- `package.json` `version`
|
||||||
|
- `doc/source/conf.py` `version` and `release`
|
||||||
|
- `doc/source/changelog.rst`
|
||||||
|
- post to discord
|
||||||
|
- post to reddit.com/r/Bitburner
|
||||||
|
|
||||||
|
## Deploying `dev` to the Beta Branch
|
||||||
|
|
||||||
|
TODO
|
||||||
|
|
||||||
|
## Development Workflow Best Practices
|
||||||
|
|
||||||
|
- Work in a new branch forked from the `dev` branch to isolate your new code
|
||||||
|
- Keep code-changes on a branch as small as possible. This makes it easier for code review. Each branch should be its own independent feature.
|
||||||
|
- Regularly rebase your branch against `dev` to make sure you have the latest updates pulled.
|
||||||
|
- When merging, always merge your branch into `dev`. When releasing a new update, then merge `dev` into `master`
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
module.exports = {
|
||||||
|
presets: ["@babel/preset-react", "@babel/preset-env", "@babel/preset-typescript"],
|
||||||
|
};
|
||||||
@@ -1,61 +0,0 @@
|
|||||||
@mixin animation($property) {
|
|
||||||
-webkit-animation: $property;
|
|
||||||
-moz-animation: $property;
|
|
||||||
-ms-animation: $property;
|
|
||||||
-o-animation: $property;
|
|
||||||
animation: $property;
|
|
||||||
}
|
|
||||||
|
|
||||||
@mixin borderRadius($property) {
|
|
||||||
-webkit-border-radius: $property;
|
|
||||||
-moz-border-radius: $property;
|
|
||||||
border-radius: $property;
|
|
||||||
}
|
|
||||||
|
|
||||||
@mixin boxShadow($value) {
|
|
||||||
-webkit-box-shadow: $value;
|
|
||||||
-moz-box-shadow: $value;
|
|
||||||
box-shadow: $value;
|
|
||||||
}
|
|
||||||
|
|
||||||
@mixin keyframes($animationName) {
|
|
||||||
@-webkit-keyframes #{$animationName} {
|
|
||||||
$browser: '-webkit-' !global;
|
|
||||||
@content;
|
|
||||||
}
|
|
||||||
|
|
||||||
@-moz-keyframes #{$animationName} {
|
|
||||||
$browser: '-moz-' !global;
|
|
||||||
@content;
|
|
||||||
}
|
|
||||||
|
|
||||||
@-ms-keyframes #{$animationName} {
|
|
||||||
$browser: '-ms-' !global;
|
|
||||||
@content;
|
|
||||||
}
|
|
||||||
|
|
||||||
@-o-keyframes #{$animationName} {
|
|
||||||
$browser: '-o-' !global;
|
|
||||||
@content;
|
|
||||||
}
|
|
||||||
|
|
||||||
@keyframes #{$animationName} {
|
|
||||||
$browser: '' !global;
|
|
||||||
@content;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@mixin transform($property) {
|
|
||||||
-webkit-transform: $property;
|
|
||||||
-moz-transform: $property;
|
|
||||||
-ms-transform: $property;
|
|
||||||
-o-transform: $property;
|
|
||||||
transform: $property;
|
|
||||||
}
|
|
||||||
|
|
||||||
@mixin userSelect($value) {
|
|
||||||
-webkit-user-select: $value;
|
|
||||||
-moz-user-select: $value;
|
|
||||||
-ms-user-select: $value;
|
|
||||||
user-select: $value;
|
|
||||||
}
|
|
||||||
@@ -1,15 +0,0 @@
|
|||||||
@import "theme";
|
|
||||||
|
|
||||||
* {
|
|
||||||
font-size: $defaultFontSize;
|
|
||||||
font-family: $fontFamily;
|
|
||||||
}
|
|
||||||
|
|
||||||
*,
|
|
||||||
*:before,
|
|
||||||
*:after {
|
|
||||||
margin: 0;
|
|
||||||
padding: 0;
|
|
||||||
box-sizing: border-box;
|
|
||||||
vertical-align: top;
|
|
||||||
}
|
|
||||||
@@ -1,17 +0,0 @@
|
|||||||
$fontFamily: 'Lucida Console', 'Lucida Sans Unicode', 'Fira Mono', 'Consolas', 'Courier New', Courier, monospace, 'Times New Roman';
|
|
||||||
$defaultFontSize: 16px;
|
|
||||||
|
|
||||||
/* COLORS */
|
|
||||||
$hacker-green: #adff2f;
|
|
||||||
$success-green: #3adb76;
|
|
||||||
$alert-red: #ff2929;
|
|
||||||
$money-gold: #ffd700;
|
|
||||||
$light-yellow: #faffdf;
|
|
||||||
|
|
||||||
/* Attributes */
|
|
||||||
$my-stat-hp-color: #dd3434;
|
|
||||||
$my-stat-money-color: $money-gold;
|
|
||||||
$my-stat-hack-color: $hacker-green;
|
|
||||||
$my-stat-physical: $light-yellow;
|
|
||||||
$my-stat-cha-color: #a671d1;
|
|
||||||
$my-stat-int-color: #6495ed;
|
|
||||||
@@ -1,126 +0,0 @@
|
|||||||
@import "theme";
|
|
||||||
|
|
||||||
.active-scripts-list {
|
|
||||||
list-style-type: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
#active-scripts-container {
|
|
||||||
position: fixed;
|
|
||||||
padding-top: 10px;
|
|
||||||
|
|
||||||
> p {
|
|
||||||
width: 70%;
|
|
||||||
margin: 6px;
|
|
||||||
padding: 4px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.accordion-header {
|
|
||||||
> pre {
|
|
||||||
color: white;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.active-scripts-server-header {
|
|
||||||
background-color: #444;
|
|
||||||
font-size: $defaultFontSize * 1.25;
|
|
||||||
color: #fff;
|
|
||||||
margin: 6px 6px 0 6px;
|
|
||||||
padding: 6px;
|
|
||||||
cursor: pointer;
|
|
||||||
width: 60%;
|
|
||||||
text-align: left;
|
|
||||||
border: none;
|
|
||||||
outline: none;
|
|
||||||
|
|
||||||
&:after {
|
|
||||||
content: '\02795'; /* "plus" sign (+) */
|
|
||||||
font-size: $defaultFontSize * 0.8125;
|
|
||||||
color: #fff;
|
|
||||||
float: right;
|
|
||||||
margin-left: 5px;
|
|
||||||
}
|
|
||||||
|
|
||||||
&.active, &:hover {
|
|
||||||
background-color: #555;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.active-scripts-server-header.active {
|
|
||||||
&:after {
|
|
||||||
content: "\2796"; /* "minus" sign (-) */
|
|
||||||
font-size: $defaultFontSize * 0.8125;
|
|
||||||
color: #fff;
|
|
||||||
float: right;
|
|
||||||
margin-left: 5px;
|
|
||||||
}
|
|
||||||
|
|
||||||
&:hover {
|
|
||||||
background-color: #666;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.active-scripts-server-panel {
|
|
||||||
margin: 0 6px 6px 6px;
|
|
||||||
padding: 0 6px 6px 6px;
|
|
||||||
width: 55%;
|
|
||||||
margin-left: 5%;
|
|
||||||
display: none;
|
|
||||||
|
|
||||||
div, ul, ul > li {
|
|
||||||
background-color: #555;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.active-scripts-script-header {
|
|
||||||
background-color: #555;
|
|
||||||
border: none;
|
|
||||||
color: var(--my-font-color);
|
|
||||||
cursor: pointer;
|
|
||||||
display: block;
|
|
||||||
outline: none;
|
|
||||||
padding: 4px 25px 4px 10px;
|
|
||||||
position: relative;
|
|
||||||
text-align: left;
|
|
||||||
width: auto;
|
|
||||||
|
|
||||||
&:after {
|
|
||||||
content: '\02795'; /* "plus" sign (+) */
|
|
||||||
font-size: $defaultFontSize * 0.8125;
|
|
||||||
float: right;
|
|
||||||
margin-left: 5px;
|
|
||||||
color: transparent;
|
|
||||||
text-shadow: 0 0 0 var(--my-font-color);
|
|
||||||
position: absolute;
|
|
||||||
bottom: 4px;
|
|
||||||
}
|
|
||||||
|
|
||||||
&.active:after {
|
|
||||||
content: "\2796"; /* "minus" sign (-) */
|
|
||||||
}
|
|
||||||
|
|
||||||
&:hover,
|
|
||||||
&.active:hover {
|
|
||||||
background-color: #666;
|
|
||||||
}
|
|
||||||
|
|
||||||
&.active {
|
|
||||||
background-color: #555;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.active-scripts-script-panel {
|
|
||||||
background-color: #555;
|
|
||||||
display: none;
|
|
||||||
font-size: 14px;
|
|
||||||
margin-bottom: 6px;
|
|
||||||
padding: 0 18px;
|
|
||||||
width: auto;
|
|
||||||
|
|
||||||
pre, h2, ul, li {
|
|
||||||
background-color: #555;
|
|
||||||
width: auto;
|
|
||||||
color: #fff;
|
|
||||||
margin-left: 5%;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,31 +0,0 @@
|
|||||||
/**
|
|
||||||
* Styling for the Augmentations UI. This is the page that displays all of the
|
|
||||||
* player's owned and purchased Augmentations and Source-Files. It also allows
|
|
||||||
* the player to install Augmentations
|
|
||||||
*/
|
|
||||||
@import "theme";
|
|
||||||
|
|
||||||
#augmentations-container {
|
|
||||||
position: fixed;
|
|
||||||
padding-top: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#augmentations-content {
|
|
||||||
> p {
|
|
||||||
font-size: $defaultFontSize * 0.875;
|
|
||||||
width: 70%;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.augmentations-list {
|
|
||||||
button,
|
|
||||||
div {
|
|
||||||
color: var(--my-font-color);
|
|
||||||
text-decoration: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
button {
|
|
||||||
padding: 4px;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,135 +0,0 @@
|
|||||||
@import "theme";
|
|
||||||
|
|
||||||
#bladeburner-container {
|
|
||||||
a,
|
|
||||||
div,
|
|
||||||
p,
|
|
||||||
pre,
|
|
||||||
td {
|
|
||||||
font-size: $defaultFontSize * 0.8125;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.bladeburner-action {
|
|
||||||
border: 1px solid #fff;
|
|
||||||
margin: 7px;
|
|
||||||
padding: 7px;
|
|
||||||
white-space: pre-wrap;
|
|
||||||
|
|
||||||
pre {
|
|
||||||
white-space: pre-wrap;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Whatever action is currently active */
|
|
||||||
.bladeburner-active-action {
|
|
||||||
border: 4px solid #fff;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Action & Skills panel navigation button */
|
|
||||||
%bladeburner-nav-button {
|
|
||||||
border: 1px solid #fff;
|
|
||||||
margin: 2px;
|
|
||||||
padding: 2px;
|
|
||||||
color: #fff;
|
|
||||||
}
|
|
||||||
|
|
||||||
.bladeburner-nav-button {
|
|
||||||
@extend %bladeburner-nav-button;
|
|
||||||
|
|
||||||
&:hover {
|
|
||||||
background-color: #3d4044;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.bladeburner-nav-button-inactive {
|
|
||||||
@extend %bladeburner-nav-button;
|
|
||||||
|
|
||||||
text-decoration: none;
|
|
||||||
background-color: #555;
|
|
||||||
cursor: default;
|
|
||||||
pointer-events: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Checkbox for (de)selecting autoleveling */
|
|
||||||
.bbcheckbox {
|
|
||||||
position: relative;
|
|
||||||
display: inline;
|
|
||||||
label {
|
|
||||||
width: 20px;
|
|
||||||
height: 20px;
|
|
||||||
cursor: pointer;
|
|
||||||
position: absolute;
|
|
||||||
top: 0;
|
|
||||||
left: 0;
|
|
||||||
background: black;
|
|
||||||
border-width: 1px;
|
|
||||||
border-color: white;
|
|
||||||
border-style: solid;
|
|
||||||
&:after {
|
|
||||||
content: '';
|
|
||||||
width: 9px;
|
|
||||||
height: 5px;
|
|
||||||
position: absolute;
|
|
||||||
top: 5px;
|
|
||||||
left: 5px;
|
|
||||||
border: 3px solid white;
|
|
||||||
border-top: none;
|
|
||||||
border-right: none;
|
|
||||||
opacity: 0;
|
|
||||||
transform: rotate(-45deg);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
input[type=checkbox] {
|
|
||||||
margin: 3px;
|
|
||||||
visibility: hidden;
|
|
||||||
&:checked + label:after {
|
|
||||||
opacity: 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Bladeburner Console */
|
|
||||||
.bladeburner-console-div {
|
|
||||||
display: inline-block;
|
|
||||||
width: 40%;
|
|
||||||
border: 1px solid #fff;
|
|
||||||
overflow: auto;
|
|
||||||
height: 100%;
|
|
||||||
position: absolute;
|
|
||||||
}
|
|
||||||
|
|
||||||
.bladeburner-console-table {
|
|
||||||
height: auto;
|
|
||||||
overflow: auto;
|
|
||||||
table-layout: fixed;
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.bladeburner-console-input-row {
|
|
||||||
transition: height 1s;
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.bladeburner-console-input-cell {
|
|
||||||
display: flex;
|
|
||||||
}
|
|
||||||
|
|
||||||
.bladeburner-console-input {
|
|
||||||
display: inline-block;
|
|
||||||
padding: 0 !important;
|
|
||||||
margin: 0 !important;
|
|
||||||
border: 0;
|
|
||||||
background-color: var(--my-background-color);
|
|
||||||
font-size: $defaultFontSize * 0.8125;
|
|
||||||
outline: none;
|
|
||||||
color: var(--my-font-color);
|
|
||||||
flex: 1 1 auto;
|
|
||||||
}
|
|
||||||
|
|
||||||
.bladeburner-console-line {
|
|
||||||
word-wrap: break-word;
|
|
||||||
hyphens: auto;
|
|
||||||
-webkit-hyphens: auto;
|
|
||||||
-moz-hyphens: auto;
|
|
||||||
}
|
|
||||||
@@ -1,114 +0,0 @@
|
|||||||
@import "mixins";
|
|
||||||
@import "theme";
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Styling for all buttons
|
|
||||||
*
|
|
||||||
* Includes <button> elements as well as classes that are used
|
|
||||||
* for formatting buttons
|
|
||||||
*/
|
|
||||||
|
|
||||||
/* Remove default <button> styling */
|
|
||||||
button {
|
|
||||||
border: none;
|
|
||||||
background-color: transparent;
|
|
||||||
}
|
|
||||||
|
|
||||||
.a-link-button,
|
|
||||||
.std-button {
|
|
||||||
text-decoration: none;
|
|
||||||
background-color: #555;
|
|
||||||
color: #fff;
|
|
||||||
padding: 3px 5px;
|
|
||||||
margin: 5px;
|
|
||||||
border: 1px solid #333;
|
|
||||||
|
|
||||||
-moz-user-select: none;
|
|
||||||
-ms-user-select: none;
|
|
||||||
-khtml-user-select: none;
|
|
||||||
-webkit-user-select: none;
|
|
||||||
|
|
||||||
&:hover {
|
|
||||||
background-color: #666;
|
|
||||||
}
|
|
||||||
|
|
||||||
&:active {
|
|
||||||
@include boxShadow(inset 0 1px 4px rgba(0, 0, 0, 0.6));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.a-link-button-inactive,
|
|
||||||
.std-button-disabled,
|
|
||||||
.std-button:disabled {
|
|
||||||
text-decoration: none;
|
|
||||||
background-color: #333;
|
|
||||||
color: #fff;
|
|
||||||
padding: 3px 5px;
|
|
||||||
margin: 5px;
|
|
||||||
border: 1px solid #333;
|
|
||||||
cursor: default;
|
|
||||||
|
|
||||||
-moz-user-select: none;
|
|
||||||
-ms-user-select: none;
|
|
||||||
-khtml-user-select: none;
|
|
||||||
-webkit-user-select: none;
|
|
||||||
|
|
||||||
&:hover {
|
|
||||||
.tooltiptext,
|
|
||||||
.tooltiptexthigh,
|
|
||||||
.tooltiptextleft {
|
|
||||||
visibility: visible;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
&:active {
|
|
||||||
pointer-events: none;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.a-link-button-bought,
|
|
||||||
.std-button-bought {
|
|
||||||
text-decoration: none;
|
|
||||||
background-color: #0a0;
|
|
||||||
color: #fff;
|
|
||||||
padding: 3px 5px;
|
|
||||||
margin: 5px;
|
|
||||||
border: 1px solid #0a0;
|
|
||||||
cursor: default;
|
|
||||||
|
|
||||||
&:hover {
|
|
||||||
.tooltiptext,
|
|
||||||
.tooltiptexthigh,
|
|
||||||
.tooltiptextleft {
|
|
||||||
visibility: visible;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
&:active {
|
|
||||||
pointer-events: none;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This is a button that is meant to be used on accordions (accordion-header and accordion-panel classes)
|
|
||||||
* It has a black background so it does not clash with the default accordion coloring
|
|
||||||
*/
|
|
||||||
.accordion-button {
|
|
||||||
@include borderRadius(12px);
|
|
||||||
@include boxShadow(1px 1px 3px #000);
|
|
||||||
|
|
||||||
color: #aaa;
|
|
||||||
font-size: $defaultFontSize;
|
|
||||||
font-weight: bold;
|
|
||||||
margin: 4px;
|
|
||||||
padding: 4px;
|
|
||||||
background-color: #000;
|
|
||||||
|
|
||||||
&:hover,
|
|
||||||
&:active {
|
|
||||||
color: #fff;
|
|
||||||
text-decoration: none;
|
|
||||||
cursor: pointer;
|
|
||||||
}
|
|
||||||
/* TODO focus selector? */
|
|
||||||
}
|
|
||||||
@@ -1,95 +0,0 @@
|
|||||||
@import "mixins";
|
|
||||||
@import "theme";
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Styling for the Character Overview Panel (top-right panel)
|
|
||||||
*/
|
|
||||||
|
|
||||||
#character-overview-wrapper {
|
|
||||||
position: relative;
|
|
||||||
}
|
|
||||||
|
|
||||||
#character-overview-container {
|
|
||||||
display: none;
|
|
||||||
position: absolute; /* Stay in place */
|
|
||||||
right: 0;
|
|
||||||
top: 0;
|
|
||||||
height: auto; /* Full height */
|
|
||||||
padding: 10px 2px;
|
|
||||||
border: 2px solid var(--my-highlight-color);
|
|
||||||
width: auto;
|
|
||||||
max-width: 280px;
|
|
||||||
overflow: auto; /* Enable scroll if needed */
|
|
||||||
background-color: rgba(57, 54, 54, 0.9); /* Fallback color */
|
|
||||||
z-index: 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
#character-overview-text {
|
|
||||||
color: $my-stat-physical;
|
|
||||||
|
|
||||||
table {
|
|
||||||
border-collapse: collapse;
|
|
||||||
margin: auto;
|
|
||||||
}
|
|
||||||
|
|
||||||
td {
|
|
||||||
padding: 2px;
|
|
||||||
vertical-align: middle;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.character-stat-text {
|
|
||||||
color: #fff;
|
|
||||||
background-color: #444;
|
|
||||||
}
|
|
||||||
|
|
||||||
.character-stat-cell {
|
|
||||||
text-align: right;
|
|
||||||
}
|
|
||||||
|
|
||||||
#character-hack-wrapper td,
|
|
||||||
#character-agi-wrapper td {
|
|
||||||
border-bottom: 1px #aaa solid;
|
|
||||||
padding-bottom: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#character-str-wrapper td,
|
|
||||||
#character-cha-wrapper td {
|
|
||||||
padding-top: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#character-hp-wrapper { color: $my-stat-hp-color; }
|
|
||||||
.character-hp-cell { color: $my-stat-hp-color; }
|
|
||||||
#character-money-wrapper { color: $my-stat-money-color; }
|
|
||||||
.character-money-cell { color: $my-stat-money-color; }
|
|
||||||
#character-hack-wrapper { color: $my-stat-hack-color; }
|
|
||||||
.character-hack-cell { color: $my-stat-hack-color; }
|
|
||||||
#character-cha-wrapper { color: $my-stat-cha-color; }
|
|
||||||
.character-cha-cell { color: $my-stat-cha-color; }
|
|
||||||
#character-int-wrapper { color: $my-stat-int-color; }
|
|
||||||
.character-int-cell { color: $my-stat-int-color; }
|
|
||||||
.character-combat-cell { color: $my-stat-physical; }
|
|
||||||
|
|
||||||
.character-overview-btn {
|
|
||||||
@include borderRadius(12px);
|
|
||||||
@include boxShadow(1px 1px 3px #000);
|
|
||||||
color: #cecece;
|
|
||||||
display: inline-block;
|
|
||||||
font-size: $defaultFontSize * 0.875;
|
|
||||||
font-weight: bold;
|
|
||||||
height: 25px;
|
|
||||||
background-color: #000;
|
|
||||||
padding: 5px 8px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.character-quick-options {
|
|
||||||
margin-top: 10px;
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
.character-overview-btn:hover,
|
|
||||||
.character-overview-btn:focus {
|
|
||||||
color: #fff;
|
|
||||||
text-decoration: none;
|
|
||||||
cursor: pointer;
|
|
||||||
}
|
|
||||||
@@ -1,49 +0,0 @@
|
|||||||
@import "theme";
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Customized styling for the Code Mirror editor
|
|
||||||
*/
|
|
||||||
|
|
||||||
#codemirror-form-wrapper {
|
|
||||||
height: 80%;
|
|
||||||
margin: 10px 0px 0px 6px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.CodeMirror {
|
|
||||||
height: 100%;
|
|
||||||
width: 100%;
|
|
||||||
border: 2px solid var(--my-highlight-color);
|
|
||||||
z-index: 1;
|
|
||||||
font-family: $fontFamily;
|
|
||||||
font-size: $defaultFontSize;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Highlight matches
|
|
||||||
*/
|
|
||||||
.cm-matchhighlight {
|
|
||||||
background-color: #8F908A;
|
|
||||||
}
|
|
||||||
|
|
||||||
.CodeMirror-selection-highlight-scrollbar {
|
|
||||||
background-color: #8F908A;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Show Invisibles
|
|
||||||
*/
|
|
||||||
.cm-whitespace::before {
|
|
||||||
position: absolute;
|
|
||||||
pointer-events: none;
|
|
||||||
color: #404F7D;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Vim command display
|
|
||||||
*/
|
|
||||||
#codemirror-vim-command-display-wrapper {
|
|
||||||
background-color: white;
|
|
||||||
font-size: 13px;
|
|
||||||
height: 30px;
|
|
||||||
margin-left: 6px;
|
|
||||||
}
|
|
||||||
@@ -1,165 +0,0 @@
|
|||||||
@import "mixins";
|
|
||||||
@import "theme";
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Styling for Corporations
|
|
||||||
* The names/labels refer to "Company Management", which was the old name
|
|
||||||
* for the mechanic before it got changed to avoid confusion with normal
|
|
||||||
* companies
|
|
||||||
*/
|
|
||||||
|
|
||||||
#cmpy-mgmt-container p,
|
|
||||||
#cmpy-mgmt-container a,
|
|
||||||
#cmpy-mgmt-container div,
|
|
||||||
#cmpy-mgmt-container br {
|
|
||||||
font-size: $defaultFontSize * 0.8125;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Header tabs */
|
|
||||||
.cmpy-mgmt-header-tab {
|
|
||||||
display: inline-block;
|
|
||||||
color: #fff;
|
|
||||||
background-color: #555;
|
|
||||||
border: 1px solid #fff;
|
|
||||||
padding: 4px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.cmpy-mgmt-header-tab:hover {
|
|
||||||
background-color: #666;
|
|
||||||
}
|
|
||||||
|
|
||||||
.cmpy-mgmt-header-tab.current {
|
|
||||||
background-color: #777;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Switch between Cities */
|
|
||||||
.cmpy-mgmt-city-tab {
|
|
||||||
display: inline-block;
|
|
||||||
color: #fff;
|
|
||||||
background-color: #555;
|
|
||||||
border: 1px solid #fff;
|
|
||||||
padding: 4px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.cmpy-mgmt-city-tab:hover {
|
|
||||||
background-color: #666;
|
|
||||||
}
|
|
||||||
|
|
||||||
.cmpy-mgmt-city-tab.current {
|
|
||||||
background-color: #777;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Panels */
|
|
||||||
#cmpy-mgmt-panel {
|
|
||||||
height: 90%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.cmpy-mgmt-industry-left-panel,
|
|
||||||
.cmpy-mgmt-industry-right-panel {
|
|
||||||
display: inline-block;
|
|
||||||
height: 100%;
|
|
||||||
overflow-y: auto;
|
|
||||||
overflow-x: auto;
|
|
||||||
overflow: visible;
|
|
||||||
top: 10px;
|
|
||||||
width: 45%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.cmpy-mgmt-industry-overview-panel {
|
|
||||||
border: 1px solid #fff;
|
|
||||||
color: var(--my-font-color);
|
|
||||||
display: inline-block;
|
|
||||||
padding: 3px;
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.cmpy-mgmt-employee-panel {
|
|
||||||
border: 1px solid #fff;
|
|
||||||
display: block;
|
|
||||||
padding: 3px;
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.cmpy-mgmt-warehouse-panel {
|
|
||||||
border: 1px solid #fff;
|
|
||||||
display: inline-block;
|
|
||||||
padding: 3px;
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Hiring new employees */
|
|
||||||
.cmpy-mgmt-find-employee-option {
|
|
||||||
border: 1px solid #fff;
|
|
||||||
margin: 6px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.cmpy-mgmt-find-employee-option:hover {
|
|
||||||
background-color: #3d4044;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Warehouse */
|
|
||||||
.cmpy-mgmt-warehouse-material-div {
|
|
||||||
padding: 2px;
|
|
||||||
border: 1px solid #fff;
|
|
||||||
}
|
|
||||||
|
|
||||||
.cmpy-mgmt-warehouse-product-div {
|
|
||||||
padding: 2px;
|
|
||||||
border: 1px solid #fff;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Exporting materials/products */
|
|
||||||
.cmpy-mgmt-existing-export {
|
|
||||||
border: 1px solid #fff;
|
|
||||||
border-radius: 25px;
|
|
||||||
margin: 4px;
|
|
||||||
padding: 4px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.cmpy-mgmt-existing-export:hover {
|
|
||||||
background-color: #333;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Corporation Upgrades */
|
|
||||||
.cmpy-mgmt-upgrade-container {
|
|
||||||
border: 1px solid #fff;
|
|
||||||
width: 60%;
|
|
||||||
margin: 4px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.cmpy-mgmt-upgrade-header {
|
|
||||||
margin: 6px;
|
|
||||||
padding: 6px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.cmpy-mgmt-upgrade-div {
|
|
||||||
display: inline-block;
|
|
||||||
border: 1px solid #fff;
|
|
||||||
margin: 2px;
|
|
||||||
padding: 6px;
|
|
||||||
border-radius: 25px;
|
|
||||||
font-size: $defaultFontSize * 0.75;
|
|
||||||
color: var(--my-font-color);
|
|
||||||
}
|
|
||||||
|
|
||||||
.cmpy-mgmt-upgrade-div:hover {
|
|
||||||
background-color: #333;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Industry Upgrades */
|
|
||||||
.industry-purchases-and-upgrades-header {
|
|
||||||
font-size: 14px;
|
|
||||||
margin: 2px;
|
|
||||||
padding: 2px;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Advertising */
|
|
||||||
.cmpy-mgmt-advertising-info {
|
|
||||||
font-size: $defaultFontSize * 0.75;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Research */
|
|
||||||
#corporation-research-popup-box-content {
|
|
||||||
overflow-x: auto !important;
|
|
||||||
overflow-y: auto !important;
|
|
||||||
}
|
|
||||||
@@ -1,36 +0,0 @@
|
|||||||
.add-exp-button {
|
|
||||||
margin-right: 0px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.remove-exp-button {
|
|
||||||
margin-left:0px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.exp-input {
|
|
||||||
margin-right: 0px;
|
|
||||||
margin-left:0px;
|
|
||||||
|
|
||||||
margin-top: 5px;
|
|
||||||
margin-bottom: 5px;
|
|
||||||
|
|
||||||
padding: 2px 5px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.text-center {
|
|
||||||
margin: auto;
|
|
||||||
text-align: center;
|
|
||||||
vertical-align: middle;
|
|
||||||
}
|
|
||||||
|
|
||||||
.touch-right {
|
|
||||||
margin-right: 0px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.touch-left {
|
|
||||||
margin-left: 0px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.touch-sides {
|
|
||||||
margin-left: 0px;
|
|
||||||
margin-right: 0px;
|
|
||||||
}
|
|
||||||
@@ -1,19 +0,0 @@
|
|||||||
/* Styling for the game options/settings
|
|
||||||
*
|
|
||||||
* Styling for the actual Game Options popup box can be found in popupboxes.scss
|
|
||||||
* This stylesheet is for everything inside the Game Options pop-up box
|
|
||||||
*/
|
|
||||||
|
|
||||||
@import "theme";
|
|
||||||
|
|
||||||
#game-options-right-panel {
|
|
||||||
a {
|
|
||||||
display: block;
|
|
||||||
width: 46%;
|
|
||||||
}
|
|
||||||
|
|
||||||
button {
|
|
||||||
display: inline-block;
|
|
||||||
width: 46%;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,48 +0,0 @@
|
|||||||
@import "mixins";
|
|
||||||
@import "theme";
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Styling for the Gang mechanic UI (BitNode-2)
|
|
||||||
*/
|
|
||||||
|
|
||||||
#gang-container {
|
|
||||||
position: fixed;
|
|
||||||
padding: 6px;
|
|
||||||
|
|
||||||
p, pre {
|
|
||||||
font-size: $defaultFontSize * 0.9375;
|
|
||||||
}
|
|
||||||
|
|
||||||
select {
|
|
||||||
background-color: black;
|
|
||||||
color: white;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#gang-management-subpage > p {
|
|
||||||
padding: 4px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.gang-member-info-div {
|
|
||||||
background-color: #555;
|
|
||||||
display: inline;
|
|
||||||
float: left;
|
|
||||||
width: 30%;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Showing owned upgrades in the Equipment Box
|
|
||||||
*/
|
|
||||||
|
|
||||||
.gang-owned-upgrades-div {
|
|
||||||
display: inline-block;
|
|
||||||
margin-left: 6px;
|
|
||||||
width: 75%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.gang-owned-upgrade {
|
|
||||||
border: 1px solid white;
|
|
||||||
font-size: 12px;
|
|
||||||
margin: 1px;
|
|
||||||
padding: 1px;
|
|
||||||
}
|
|
||||||
Vendored
-6
File diff suppressed because one or more lines are too long
@@ -1,75 +0,0 @@
|
|||||||
@import "mixins";
|
|
||||||
@import "theme";
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Styling for the Hacknet Nodes UI Page
|
|
||||||
*/
|
|
||||||
|
|
||||||
#hacknet-nodes-container {
|
|
||||||
position: fixed;
|
|
||||||
padding: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.hacknet-general-info {
|
|
||||||
margin: 10px;
|
|
||||||
width: 70vw;
|
|
||||||
}
|
|
||||||
|
|
||||||
#hacknet-nodes-container li {
|
|
||||||
float: left;
|
|
||||||
overflow: hidden;
|
|
||||||
white-space: nowrap;
|
|
||||||
|
|
||||||
&.hacknet-node {
|
|
||||||
$boxShadowArgs: inset 0 0 8px rgba(0, 0, 0, 0.1), 0 0 16px rgba(0, 0, 0, 0.1);
|
|
||||||
@include boxShadow($boxShadowArgs);
|
|
||||||
|
|
||||||
margin: 6px;
|
|
||||||
padding: 7px;
|
|
||||||
width: 35vw;
|
|
||||||
border: 2px solid var(--my-highlight-color);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#hacknet-nodes-list {
|
|
||||||
list-style: none;
|
|
||||||
width: 82vw;
|
|
||||||
}
|
|
||||||
|
|
||||||
#hacknet-nodes-money {
|
|
||||||
margin: 10px;
|
|
||||||
float: left;
|
|
||||||
}
|
|
||||||
|
|
||||||
#hacknet-nodes-money-multipliers-div {
|
|
||||||
display: inline-block;
|
|
||||||
width: 70vw;
|
|
||||||
}
|
|
||||||
|
|
||||||
#hacknet-nodes-multipliers {
|
|
||||||
float: right;
|
|
||||||
}
|
|
||||||
|
|
||||||
#hacknet-nodes-purchase-button {
|
|
||||||
display: inline-block;
|
|
||||||
}
|
|
||||||
|
|
||||||
.hacknet-node-container {
|
|
||||||
display: inline-table;
|
|
||||||
|
|
||||||
.row {
|
|
||||||
display: table-row;
|
|
||||||
height: 30px;
|
|
||||||
|
|
||||||
p {
|
|
||||||
display: table-cell;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.upgradable-info {
|
|
||||||
display: inline-block;
|
|
||||||
margin: 0 4px; /* Don't want the vertical margin/padding, just left & right */
|
|
||||||
padding: 0 4px;
|
|
||||||
width: $defaultFontSize * 4;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,71 +0,0 @@
|
|||||||
@import "mixins";
|
|
||||||
@import "theme";
|
|
||||||
|
|
||||||
/* interactivetutorial.css */
|
|
||||||
#interactive-tutorial-wrapper {
|
|
||||||
position: relative;
|
|
||||||
}
|
|
||||||
|
|
||||||
#interactive-tutorial-container {
|
|
||||||
display: none;
|
|
||||||
position: absolute; /* Stay in place */
|
|
||||||
right: 0;
|
|
||||||
top: 0;
|
|
||||||
height: 450px;
|
|
||||||
padding: 10px;
|
|
||||||
border: 5px solid #fff;
|
|
||||||
width: 23%;
|
|
||||||
overflow: hidden;
|
|
||||||
background-color: #444; /* Fallback color */
|
|
||||||
color: #fff;
|
|
||||||
|
|
||||||
> strong {
|
|
||||||
background-color: #444;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#interactive-tutorial-text {
|
|
||||||
padding: 4px;
|
|
||||||
margin: 4px;
|
|
||||||
color: #fff;
|
|
||||||
background-color: #444;
|
|
||||||
font-size: $defaultFontSize * 0.875;
|
|
||||||
max-height: 350px;
|
|
||||||
overflow-y: auto;
|
|
||||||
}
|
|
||||||
|
|
||||||
#interactive-tutorial-exit,
|
|
||||||
#interactive-tutorial-next,
|
|
||||||
#interactive-tutorial-back {
|
|
||||||
@include borderRadius(12px);
|
|
||||||
@include boxShadow(1px 1px 3px #000);
|
|
||||||
|
|
||||||
color: #aaa;
|
|
||||||
font-size: $defaultFontSize * 1.125;
|
|
||||||
font-weight: bold;
|
|
||||||
background-color: #000;
|
|
||||||
|
|
||||||
&:hover,
|
|
||||||
&:focus {
|
|
||||||
color: #fff;
|
|
||||||
text-decoration: none;
|
|
||||||
cursor: pointer;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#interactive-tutorial-exit {
|
|
||||||
position: absolute;
|
|
||||||
bottom: 0;
|
|
||||||
left: 0;
|
|
||||||
padding: 4px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#interactive-tutorial-back {
|
|
||||||
float: left;
|
|
||||||
padding: 4px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#interactive-tutorial-next {
|
|
||||||
float: right;
|
|
||||||
padding: 4px;
|
|
||||||
}
|
|
||||||
-111
@@ -1,111 +0,0 @@
|
|||||||
@import "mixins";
|
|
||||||
@import "reset";
|
|
||||||
@import "theme";
|
|
||||||
|
|
||||||
@include keyframes(LOADERSPINNER) {
|
|
||||||
0% {
|
|
||||||
#{$browser}transform: translate(-50%, -50%) rotate(0deg);
|
|
||||||
}
|
|
||||||
100% {
|
|
||||||
#{$browser}transform: translate(-50%, -50%) rotate(360deg);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@include keyframes(LOADERLABEL) {
|
|
||||||
0% {
|
|
||||||
opacity: 1.0;
|
|
||||||
#{$browser}transform: translate(-50%, -50%) scale(1.0);
|
|
||||||
}
|
|
||||||
5% {
|
|
||||||
opacity: 0.5;
|
|
||||||
#{$browser}transform: translate(-50%, -50%) scale(0.5);
|
|
||||||
}
|
|
||||||
95% {
|
|
||||||
opacity: 0.5;
|
|
||||||
#{$browser}transform: translate(-50%, -50%) scale(0.5);
|
|
||||||
}
|
|
||||||
100% {
|
|
||||||
opacity: 1.0;
|
|
||||||
#{$browser}transform: translate(-50%, -50%) scale(1.0);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.loaderoverlay {
|
|
||||||
$spinnerBoxSize: 200px;
|
|
||||||
$themeColor: #6f3;
|
|
||||||
|
|
||||||
position: absolute;
|
|
||||||
width: 100%;
|
|
||||||
height: 100%;
|
|
||||||
background: #000;
|
|
||||||
color: $themeColor;
|
|
||||||
|
|
||||||
%spinnerBox {
|
|
||||||
border: 20px solid rgba(0, 0, 0, 0);
|
|
||||||
border-top-color: $themeColor;
|
|
||||||
border-bottom-color: $themeColor;
|
|
||||||
border-radius: 1000px;
|
|
||||||
position: absolute;
|
|
||||||
top: 50%;
|
|
||||||
left: 50%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.loaderspinner:before,
|
|
||||||
.loaderspinner:after {
|
|
||||||
content: "";
|
|
||||||
}
|
|
||||||
|
|
||||||
.loaderspinner {
|
|
||||||
@extend %spinnerBox;
|
|
||||||
@include animation(LOADERSPINNER 5s linear infinite);
|
|
||||||
|
|
||||||
width: $spinnerBoxSize;
|
|
||||||
height: $spinnerBoxSize;
|
|
||||||
}
|
|
||||||
|
|
||||||
.loaderspinner:before {
|
|
||||||
@extend %spinnerBox;
|
|
||||||
@include animation(LOADERSPINNER 10s linear infinite);
|
|
||||||
|
|
||||||
width: $spinnerBoxSize * 0.8;
|
|
||||||
height: $spinnerBoxSize * 0.8;
|
|
||||||
}
|
|
||||||
|
|
||||||
.loaderspinner:after {
|
|
||||||
@extend %spinnerBox;
|
|
||||||
@include animation(LOADERSPINNER 5s linear infinite);
|
|
||||||
|
|
||||||
width: $spinnerBoxSize * 0.6;
|
|
||||||
height: $spinnerBoxSize * 0.6;
|
|
||||||
}
|
|
||||||
|
|
||||||
.loaderlabel {
|
|
||||||
@include animation(LOADERLABEL 5s linear infinite);
|
|
||||||
|
|
||||||
text-transform: uppercase;
|
|
||||||
font-family: sans-serif;
|
|
||||||
font-size: $defaultFontSize * 1.375;
|
|
||||||
font-weight: 700;
|
|
||||||
letter-spacing: 2px;
|
|
||||||
position: absolute;
|
|
||||||
top: 50%;
|
|
||||||
left: 50%;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.killAllMessage {
|
|
||||||
position: absolute;
|
|
||||||
top: 95%;
|
|
||||||
left: 50%;
|
|
||||||
-webkit-transform: translateX(-50%);
|
|
||||||
-moz-transform: translateX(-50%);
|
|
||||||
-ms-transform: translateX(-50%);
|
|
||||||
-o-transform: translateX(-50%);
|
|
||||||
transform: translateX(-50%);
|
|
||||||
}
|
|
||||||
.killAllMessageWrapperHidden {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
.killAllMessageWrapperShow {
|
|
||||||
display: block;
|
|
||||||
}
|
|
||||||
@@ -1,135 +0,0 @@
|
|||||||
@import "mixins";
|
|
||||||
@import "theme";
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Styling for the main navigation menu on the left-hand-side
|
|
||||||
*/
|
|
||||||
|
|
||||||
.mainmenu {
|
|
||||||
list-style-type: none;
|
|
||||||
margin: 0;
|
|
||||||
padding: 0;
|
|
||||||
width: 10%;
|
|
||||||
position: fixed;
|
|
||||||
height: 100%;
|
|
||||||
overflow: auto;
|
|
||||||
|
|
||||||
border: 0;
|
|
||||||
border-bottom: 1px solid #000;
|
|
||||||
border-radius: 0;
|
|
||||||
background-color: #333;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Default buttons */
|
|
||||||
.mainmenu > li a,
|
|
||||||
.mainmenu > li button {
|
|
||||||
display: block;
|
|
||||||
color: #e6e6e6;
|
|
||||||
background-color: #555;
|
|
||||||
padding: 12px 8px;
|
|
||||||
|
|
||||||
text-decoration: none;
|
|
||||||
cursor: pointer;
|
|
||||||
width: 100%;
|
|
||||||
text-align: left;
|
|
||||||
}
|
|
||||||
|
|
||||||
.mainmenu.classic > li a,
|
|
||||||
.mainmenu.classic > li button {
|
|
||||||
padding: 16px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.mainmenu.compact > li a,
|
|
||||||
.mainmenu.compact > li button {
|
|
||||||
display: block;
|
|
||||||
color: #e6e6e6;
|
|
||||||
background-color: #555;
|
|
||||||
|
|
||||||
text-decoration: none;
|
|
||||||
cursor: pointer;
|
|
||||||
width: 100%;
|
|
||||||
text-align: left;
|
|
||||||
padding: 4px;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Hovering makes them lighter */
|
|
||||||
.mainmenu > li a:hover,
|
|
||||||
.mainmenu > li a:hover:not(.active),
|
|
||||||
.mainmenu > li a:focus {
|
|
||||||
background-color: #777;
|
|
||||||
color: #fff;
|
|
||||||
}
|
|
||||||
|
|
||||||
.mainmenu > li button:hover,
|
|
||||||
.mainmenu > li button:hover:not(.active) {
|
|
||||||
background-color: #777;
|
|
||||||
color: #fff;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Panel headers can become active, and they are "lighter" than the rest */
|
|
||||||
.mainmenu > li a.active,
|
|
||||||
.mainmenu > li button.active {
|
|
||||||
background-color: #777;
|
|
||||||
color: #fff;
|
|
||||||
}
|
|
||||||
|
|
||||||
.mainmenu > li a.active:hover,
|
|
||||||
.mainmenu > li button.active:hover {
|
|
||||||
background-color: #aaa;
|
|
||||||
}
|
|
||||||
|
|
||||||
#hacking-menu-header-li,
|
|
||||||
#character-menu-header-li,
|
|
||||||
#world-menu-header-li,
|
|
||||||
#help-menu-header-li {
|
|
||||||
position: relative;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Accordion Outline */
|
|
||||||
.mainmenu-accordion-header,
|
|
||||||
.mainmenu-accordion-header-compact {
|
|
||||||
outline: 2px solid #fff !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.mainmenu-accordion-header-classic {
|
|
||||||
border: 2px solid #fff;
|
|
||||||
padding: 16px !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Plus and minus signs */
|
|
||||||
.mainmenu-accordion-header:after,
|
|
||||||
.mainmenu-accordion-header-compact:after {
|
|
||||||
content: '\02795';
|
|
||||||
float: right;
|
|
||||||
font-size: $defaultFontSize * 0.8125;
|
|
||||||
position: absolute;
|
|
||||||
bottom: 25%;
|
|
||||||
right: 3px;
|
|
||||||
color: transparent;
|
|
||||||
text-shadow: 0 0 0 #fff;
|
|
||||||
}
|
|
||||||
|
|
||||||
.mainmenu-accordion-header-classic:after {
|
|
||||||
content: '\02795';
|
|
||||||
float: right;
|
|
||||||
font-size: $defaultFontSize * 0.8125;
|
|
||||||
color: #fff;
|
|
||||||
margin-left: 5px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.mainmenu-accordion-header.opened,
|
|
||||||
.mainmenu-accordion-header-classic.opened,
|
|
||||||
.mainmenu-accordion-header-compact.opened {
|
|
||||||
background-color: #222 !important;
|
|
||||||
|
|
||||||
&:after {
|
|
||||||
content: "\2796";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Slide down transition */
|
|
||||||
.mainmenu-accordion-panel {
|
|
||||||
max-height: 0;
|
|
||||||
opacity: 1;
|
|
||||||
transition: max-height 0.2s ease-out;
|
|
||||||
}
|
|
||||||
@@ -1,188 +0,0 @@
|
|||||||
@import "mixins";
|
|
||||||
@import "theme";
|
|
||||||
|
|
||||||
/* CSS for different main menu pages, such as character info, script editor, etc (but excluding
|
|
||||||
terminal which has its own page) */
|
|
||||||
|
|
||||||
.generic-menupage-container {
|
|
||||||
height: 100%;
|
|
||||||
padding-left: 10px;
|
|
||||||
margin-left: 10%;
|
|
||||||
width: 99%;
|
|
||||||
overflow-y: scroll;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Character Info */
|
|
||||||
#character-container {
|
|
||||||
padding-top: 10px;
|
|
||||||
position: fixed;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* World */
|
|
||||||
#world-container {
|
|
||||||
position: fixed;
|
|
||||||
padding-top: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#world-city-name,
|
|
||||||
#world-city-desc {
|
|
||||||
padding: 4px;
|
|
||||||
margin: 4px;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Create program */
|
|
||||||
#create-program-container {
|
|
||||||
position: fixed;
|
|
||||||
padding-top: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#create-program-page-text,
|
|
||||||
#create-program-list {
|
|
||||||
width: 70%;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Factions and Faction (Single Faction page) */
|
|
||||||
#factions-container {
|
|
||||||
position: fixed;
|
|
||||||
padding-top: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#faction-container {
|
|
||||||
position: fixed;
|
|
||||||
padding-top: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.faction-work-div {
|
|
||||||
width: 70%;
|
|
||||||
height: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.faction-work-div-wrapper {
|
|
||||||
overflow: hidden;
|
|
||||||
border: 2px solid #333;
|
|
||||||
padding: 6px;
|
|
||||||
margin: 6px;
|
|
||||||
width: 70%;
|
|
||||||
}
|
|
||||||
|
|
||||||
#faction-container p,
|
|
||||||
#faction-container pre {
|
|
||||||
padding: 4px 6px;
|
|
||||||
margin: 4px 6px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#faction-container pre {
|
|
||||||
width: 70%;
|
|
||||||
white-space: pre-wrap; /* Since CSS 2.1 */
|
|
||||||
white-space: -moz-pre-wrap; /* Mozilla, since 1999 */
|
|
||||||
white-space: -pre-wrap; /* Opera 4-6 */
|
|
||||||
white-space: -o-pre-wrap; /* Opera 7 */
|
|
||||||
word-wrap: break-word; /* Internet Explorer 5.5+ */
|
|
||||||
}
|
|
||||||
|
|
||||||
/* World */
|
|
||||||
#world-container li {
|
|
||||||
margin: 0 0 15px 0;
|
|
||||||
list-style-type: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Tutorial */
|
|
||||||
#tutorial-container {
|
|
||||||
position: fixed;
|
|
||||||
padding-top: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#tutorial-text {
|
|
||||||
width: 70%;
|
|
||||||
margin: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#tutorial-container a {
|
|
||||||
width: 50%;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Dev menu */
|
|
||||||
#dev-menu-container {
|
|
||||||
position: fixed;
|
|
||||||
padding-top: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#dev-menu-text {
|
|
||||||
width: 70%;
|
|
||||||
margin: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#dev-menu-container a {
|
|
||||||
width: 50%;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Location */
|
|
||||||
#location-container {
|
|
||||||
position: fixed;
|
|
||||||
padding: 6px;
|
|
||||||
overflow-x: hidden;
|
|
||||||
}
|
|
||||||
|
|
||||||
#location-container a {
|
|
||||||
display: inline-block;
|
|
||||||
width: 30%;
|
|
||||||
}
|
|
||||||
|
|
||||||
#location-slums-description {
|
|
||||||
width: 70%;
|
|
||||||
margin: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#location-return-to-world-button {
|
|
||||||
margin: 10px;
|
|
||||||
padding: 6px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#location-container > * {
|
|
||||||
margin: 10px 5px 10px 5px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#location-job-reputation,
|
|
||||||
#location-company-favor {
|
|
||||||
display: inline;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Infiltration */
|
|
||||||
#infiltration-container {
|
|
||||||
position: fixed;
|
|
||||||
padding: 6px;
|
|
||||||
|
|
||||||
span {
|
|
||||||
margin: 0;
|
|
||||||
padding: 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#infiltration-left-panel,
|
|
||||||
#infiltration-right-panel {
|
|
||||||
display: inline-block;
|
|
||||||
border: 1px solid #fff;
|
|
||||||
width: 35%;
|
|
||||||
height: 75%;
|
|
||||||
top: 10px;
|
|
||||||
overflow-y: auto;
|
|
||||||
overflow-x: auto;
|
|
||||||
}
|
|
||||||
|
|
||||||
#infiltration-faction-select {
|
|
||||||
color: #fff;
|
|
||||||
}
|
|
||||||
|
|
||||||
#infiltration-left-panel p,
|
|
||||||
#infiltration-right-panel p {
|
|
||||||
margin: 4px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#infiltration-buttons {
|
|
||||||
margin-top: 20px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#infiltration-buttons .a-link-button {
|
|
||||||
display: inline;
|
|
||||||
width: 25%;
|
|
||||||
}
|
|
||||||
@@ -1,119 +0,0 @@
|
|||||||
@import "mixins";
|
|
||||||
@import "theme";
|
|
||||||
|
|
||||||
/* css for Missions */
|
|
||||||
|
|
||||||
/* Hacking missions */
|
|
||||||
#mission-container {
|
|
||||||
overflow: hidden;
|
|
||||||
}
|
|
||||||
|
|
||||||
.hack-mission-grid {
|
|
||||||
display: grid;
|
|
||||||
grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr;
|
|
||||||
grid-template-rows: 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr;
|
|
||||||
grid-gap: 2.5%;
|
|
||||||
height: 90%;
|
|
||||||
position: absolute;
|
|
||||||
width: 100%;
|
|
||||||
overflow-y: auto;
|
|
||||||
padding-right: 10px;
|
|
||||||
|
|
||||||
&::-webkit-scrollbar {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.hack-mission-node {
|
|
||||||
z-index: 5;
|
|
||||||
background-color: #808080;
|
|
||||||
align-self: center;
|
|
||||||
justify-self: center;
|
|
||||||
display: inline-block;
|
|
||||||
|
|
||||||
p {
|
|
||||||
@include userSelect(none);
|
|
||||||
|
|
||||||
margin-top: 8px;
|
|
||||||
color: #fff;
|
|
||||||
font-size: $defaultFontSize * 0.75;
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.hack-mission-player-node {
|
|
||||||
color: #fff;
|
|
||||||
background-color: #00f;
|
|
||||||
}
|
|
||||||
|
|
||||||
.hack-mission-player-node-active {
|
|
||||||
border: 2px solid #fff;
|
|
||||||
background-color: #66f;
|
|
||||||
}
|
|
||||||
|
|
||||||
.hack-mission-enemy-node {
|
|
||||||
color: #fff;
|
|
||||||
background-color: #f00;
|
|
||||||
}
|
|
||||||
|
|
||||||
.hack-mission-cpu-node {
|
|
||||||
@include borderRadius(50%);
|
|
||||||
width: 100%;
|
|
||||||
height: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.hack-mission-firewall-node {
|
|
||||||
width: 90%;
|
|
||||||
height: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.hack-mission-database-node {
|
|
||||||
@include transform(skew(20deg));
|
|
||||||
|
|
||||||
width: 100%;
|
|
||||||
height: 90%;
|
|
||||||
|
|
||||||
p {
|
|
||||||
@include transform(skew(-20deg));
|
|
||||||
@include userSelect(none);
|
|
||||||
|
|
||||||
color: #fff;
|
|
||||||
font-size: $defaultFontSize * 0.75;
|
|
||||||
margin-top: 8px;
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.hack-mission-transfer-node {
|
|
||||||
@include transform(skew(-20deg));
|
|
||||||
|
|
||||||
width: 100%;
|
|
||||||
height: 90%;
|
|
||||||
|
|
||||||
p {
|
|
||||||
@include transform(skew(20deg));
|
|
||||||
@include userSelect(none);
|
|
||||||
|
|
||||||
color: #fff;
|
|
||||||
font-size: $defaultFontSize * 0.75;
|
|
||||||
margin-top: 8px;
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.hack-mission-spam-node,
|
|
||||||
.hack-mission-shield-node {
|
|
||||||
height: 100%;
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Non-map related DOM elements */
|
|
||||||
|
|
||||||
/* Element at the top of the Hacking Mission page (intro page, start button, guide buttons, etc.) */
|
|
||||||
.hack-mission-header-element {
|
|
||||||
margin: 6px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.hack-mission-action-buttons-container {
|
|
||||||
border: 2px solid #fff;
|
|
||||||
}
|
|
||||||
@@ -1,197 +0,0 @@
|
|||||||
@import "mixins";
|
|
||||||
@import "theme";
|
|
||||||
|
|
||||||
/* Pop-up boxes */
|
|
||||||
.popup-box-container {
|
|
||||||
display: none; /* Initially hidden */
|
|
||||||
position: fixed; /* Stay in place */
|
|
||||||
z-index: 10; /* Sit on top */
|
|
||||||
left: 0;
|
|
||||||
top: 0;
|
|
||||||
align-items: center;
|
|
||||||
justify-content: center;
|
|
||||||
width: 100%;
|
|
||||||
height: 100%;
|
|
||||||
overflow: auto;
|
|
||||||
background-color: rbga(var(--my-background-color), 0.4);
|
|
||||||
}
|
|
||||||
|
|
||||||
.popup-box-content {
|
|
||||||
background-color: var(--my-background-color);
|
|
||||||
padding: 12px;
|
|
||||||
border: 5px solid var(--my-highlight-color);
|
|
||||||
width: 70%;
|
|
||||||
max-height: 80%;
|
|
||||||
overflow-y: auto;
|
|
||||||
color: var(--my-font-color);
|
|
||||||
}
|
|
||||||
|
|
||||||
.popup-box-button,
|
|
||||||
.popup-box-button-inactive {
|
|
||||||
color: #aaa;
|
|
||||||
float: right;
|
|
||||||
font-size: $defaultFontSize;
|
|
||||||
font-weight: bold;
|
|
||||||
padding: 2px;
|
|
||||||
margin: 6px;
|
|
||||||
border: 1px solid #fff;
|
|
||||||
background-color: #000;
|
|
||||||
}
|
|
||||||
|
|
||||||
.popup-box-button:hover,
|
|
||||||
.popup-box-button:focus {
|
|
||||||
color: var(--my-font-color);
|
|
||||||
text-decoration: none;
|
|
||||||
cursor: pointer;
|
|
||||||
}
|
|
||||||
|
|
||||||
.popupbox-button-inactive {
|
|
||||||
pointer-events: none;
|
|
||||||
cursor: default;
|
|
||||||
}
|
|
||||||
|
|
||||||
#yes-no-text-input-box-input {
|
|
||||||
color: var(--my-font-color);
|
|
||||||
border: 1px solid #fff;
|
|
||||||
background-color: #000;
|
|
||||||
}
|
|
||||||
|
|
||||||
.dialog-box-container,
|
|
||||||
#log-box-container {
|
|
||||||
display: block;
|
|
||||||
position: absolute;
|
|
||||||
z-index: 10;
|
|
||||||
width: 50%;
|
|
||||||
height: auto;
|
|
||||||
max-height: 50%;
|
|
||||||
top: 40%;
|
|
||||||
left: 50%;
|
|
||||||
margin: -10% 0 0 -25%;
|
|
||||||
overflow: auto;
|
|
||||||
background-color: var(--my-background-color);
|
|
||||||
border: 5px solid var(--my-highlight-color);
|
|
||||||
}
|
|
||||||
|
|
||||||
.dialog-box-content,
|
|
||||||
#log-box-content {
|
|
||||||
z-index: 2;
|
|
||||||
background-color: var(--my-background-color);
|
|
||||||
padding: 10px;
|
|
||||||
|
|
||||||
p span {
|
|
||||||
padding: 0;
|
|
||||||
margin: 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.dialog-box-close-button {
|
|
||||||
@include borderRadius(12px);
|
|
||||||
@include boxShadow(1px 1px 3px #000);
|
|
||||||
|
|
||||||
float: right;
|
|
||||||
color: #aaa;
|
|
||||||
font-size: $defaultFontSize * 1.25;
|
|
||||||
font-weight: bold;
|
|
||||||
}
|
|
||||||
|
|
||||||
#log-box-close {
|
|
||||||
position: fixed;
|
|
||||||
right: 27%;
|
|
||||||
}
|
|
||||||
|
|
||||||
#log-box-kill-script {
|
|
||||||
right: 11%;
|
|
||||||
position: relative;
|
|
||||||
}
|
|
||||||
|
|
||||||
#log-box-close, #log-box-kill-script {
|
|
||||||
float: right;
|
|
||||||
display: inline-block;
|
|
||||||
}
|
|
||||||
|
|
||||||
.dialog-box-close-button:hover,
|
|
||||||
.dialog-box-close-button:focus,{
|
|
||||||
color: #fff;
|
|
||||||
text-decoration: none;
|
|
||||||
cursor: pointer;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Faction invitation box */
|
|
||||||
#faction-invitation-box-container {
|
|
||||||
transition: opacity 400ms ease-in;
|
|
||||||
}
|
|
||||||
#faction-invitation-box-warning {
|
|
||||||
margin: 4px;
|
|
||||||
padding: 4px;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Infiltration-box */
|
|
||||||
#infiltration-box-sell,
|
|
||||||
#infiltration-box-faction {
|
|
||||||
display: block;
|
|
||||||
padding: 8px;
|
|
||||||
margin: 8px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#infiltration-box-content span {
|
|
||||||
padding: 0;
|
|
||||||
margin: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
#infiltration-faction-select {
|
|
||||||
background-color: #000;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Generic Yes No Box */
|
|
||||||
#yes-no-text-input-box-input {
|
|
||||||
color: #fff;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Game Options */
|
|
||||||
#game-options-container {
|
|
||||||
transition: opacity 400ms ease-in;
|
|
||||||
}
|
|
||||||
|
|
||||||
#game-options-content {
|
|
||||||
background-color: var(--my-background-color);
|
|
||||||
padding: 10px;
|
|
||||||
border: 5px solid var(--my-highlight-color);
|
|
||||||
color: var(--my-font-color);
|
|
||||||
width: 80%;
|
|
||||||
max-height: 80%;
|
|
||||||
overflow-y: auto;
|
|
||||||
}
|
|
||||||
|
|
||||||
#game-options-left-panel,
|
|
||||||
#game-options-right-panel {
|
|
||||||
display: inline-block;
|
|
||||||
width: 49%;
|
|
||||||
}
|
|
||||||
|
|
||||||
#game-options-close-button {
|
|
||||||
@include borderRadius(12px);
|
|
||||||
@include boxShadow(1px 1px 3px #000);
|
|
||||||
|
|
||||||
color: #aaa;
|
|
||||||
float: right;
|
|
||||||
margin: 4px;
|
|
||||||
padding: 4px;
|
|
||||||
font-size: $defaultFontSize * 1.25;
|
|
||||||
font-weight: bold;
|
|
||||||
}
|
|
||||||
|
|
||||||
#game-options-close-button:hover,
|
|
||||||
#game-options-close-button:focus {
|
|
||||||
color: #fff;
|
|
||||||
text-decoration: none;
|
|
||||||
cursor: pointer;
|
|
||||||
}
|
|
||||||
|
|
||||||
#game-options-left-panel fieldset {
|
|
||||||
padding: 2px;
|
|
||||||
margin: 2px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#import-game-file-selector {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
@@ -1,34 +0,0 @@
|
|||||||
@import "theme";
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Styling for the Red Pill screen (the BitNode selection UI)
|
|
||||||
*/
|
|
||||||
#red-pill-container {
|
|
||||||
position: fixed;
|
|
||||||
}
|
|
||||||
|
|
||||||
.bitnode {
|
|
||||||
&.level-0 {
|
|
||||||
color: red;
|
|
||||||
}
|
|
||||||
|
|
||||||
&.level-1 {
|
|
||||||
color: yellow;
|
|
||||||
}
|
|
||||||
|
|
||||||
&.level-2 {
|
|
||||||
color: #48D1CC;
|
|
||||||
}
|
|
||||||
|
|
||||||
&.level-3 {
|
|
||||||
color: blue;
|
|
||||||
}
|
|
||||||
|
|
||||||
&.unimplemented {
|
|
||||||
color: gray;
|
|
||||||
}
|
|
||||||
|
|
||||||
&:hover {
|
|
||||||
color: #fff;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,28 +0,0 @@
|
|||||||
/**
|
|
||||||
* Styling for the Re-Sleeving Page
|
|
||||||
*/
|
|
||||||
@import "theme";
|
|
||||||
|
|
||||||
.resleeve-container {
|
|
||||||
border: 1px solid white;
|
|
||||||
margin: 4px;
|
|
||||||
width: 75%;
|
|
||||||
|
|
||||||
p {
|
|
||||||
font-size: $defaultFontSize * 0.8125;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.resleeve-panel {
|
|
||||||
display: inline-block;
|
|
||||||
margin: 0px;
|
|
||||||
padding: 2px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.resleeve-aug-selector {
|
|
||||||
font-size: $defaultFontSize * 0.8125;
|
|
||||||
|
|
||||||
option {
|
|
||||||
font-size: $defaultFontSize * 0.8125;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,124 +0,0 @@
|
|||||||
@import "mixins";
|
|
||||||
@import "theme";
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Styling for Script Editor (both Ace and CodeMirror)
|
|
||||||
*/
|
|
||||||
|
|
||||||
#script-editor-container {
|
|
||||||
background-color: transparent;
|
|
||||||
}
|
|
||||||
|
|
||||||
#ace-editor {
|
|
||||||
margin: 10px;
|
|
||||||
height: 80%;
|
|
||||||
width: 100%;
|
|
||||||
margin-left: 6px;
|
|
||||||
padding-left: 6px;
|
|
||||||
padding-top: 6px;
|
|
||||||
padding-bottom: 6px;
|
|
||||||
border: 2px solid var(--my-highlight-color);
|
|
||||||
z-index: 1;
|
|
||||||
font-family: $fontFamily;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* This temp element is used for auto adjusting filename field */
|
|
||||||
.tmp-element {
|
|
||||||
visibility: hidden;
|
|
||||||
white-space: pre;
|
|
||||||
}
|
|
||||||
|
|
||||||
#script-editor-container {
|
|
||||||
position: fixed;
|
|
||||||
padding-top: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#script-editor-buttons-wrapper {
|
|
||||||
width: 100%;
|
|
||||||
padding-right: 0;
|
|
||||||
margin-right: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
#script-editor-wrapper {
|
|
||||||
height: 100%;
|
|
||||||
width: 70%;
|
|
||||||
background: transparent;
|
|
||||||
}
|
|
||||||
|
|
||||||
#script-editor-filename-wrapper {
|
|
||||||
background-color: #555;
|
|
||||||
margin-left: 6px;
|
|
||||||
margin-right: 0;
|
|
||||||
padding-left: 6px;
|
|
||||||
width: 100%;
|
|
||||||
border: 2px solid var(--my-highlight-color);
|
|
||||||
}
|
|
||||||
|
|
||||||
#script-editor-filename-tag {
|
|
||||||
display: inline-block;
|
|
||||||
padding-top: 10px;
|
|
||||||
padding-bottom: 0;
|
|
||||||
float: center;
|
|
||||||
background-color: #555;
|
|
||||||
color: #fff;
|
|
||||||
}
|
|
||||||
|
|
||||||
#script-editor-filename {
|
|
||||||
$boxShadowArgs: inset 0 0 8px rgba(0, 0, 0, 0.1), 0 0 16px rgba(0, 0, 0, 0.1);
|
|
||||||
@include boxShadow($boxShadowArgs);
|
|
||||||
|
|
||||||
background-color: #555;
|
|
||||||
border: 2px solid var(--my-highlight-color);
|
|
||||||
color: #fff;
|
|
||||||
display: inline-block;
|
|
||||||
float: center;
|
|
||||||
margin: 4px;
|
|
||||||
padding: 2px;
|
|
||||||
resize: none;
|
|
||||||
width: 60%;
|
|
||||||
}
|
|
||||||
|
|
||||||
#script-editor-status {
|
|
||||||
float: left;
|
|
||||||
color: #fff;
|
|
||||||
}
|
|
||||||
|
|
||||||
#script-editor-options-panel {
|
|
||||||
position: absolute;
|
|
||||||
right: 9%;
|
|
||||||
bottom: 15%;
|
|
||||||
border: 2px solid #fff;
|
|
||||||
width: 19%;
|
|
||||||
background-color: #444;
|
|
||||||
padding: 2px;
|
|
||||||
overflow: auto;
|
|
||||||
z-index: 1;
|
|
||||||
color: #fff;
|
|
||||||
max-height: 50%;
|
|
||||||
}
|
|
||||||
|
|
||||||
#script-editor-options-panel fieldset {
|
|
||||||
margin-top: 8px;
|
|
||||||
margin-bottom: 8px;
|
|
||||||
padding: 2px;
|
|
||||||
font-size: $defaultFontSize * 0.75;
|
|
||||||
|
|
||||||
input {
|
|
||||||
margin: 2px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Specific overrides for Ace Editor */
|
|
||||||
.ace_line,
|
|
||||||
.ace_line * {
|
|
||||||
background-color: transparent;
|
|
||||||
margin: 0;
|
|
||||||
padding: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.ace_text-input {
|
|
||||||
font-size: $defaultFontSize;
|
|
||||||
background-color: transparent;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Specified overrides for Code mirror Editor are defined in codemirror-override.scss */
|
|
||||||
@@ -1,29 +0,0 @@
|
|||||||
/**
|
|
||||||
* Styling for the Sleeves Management page
|
|
||||||
*/
|
|
||||||
@import "theme";
|
|
||||||
|
|
||||||
.sleeve-container {
|
|
||||||
border: 1px solid white;
|
|
||||||
margin: 4px;
|
|
||||||
width: 75%;
|
|
||||||
|
|
||||||
p {
|
|
||||||
font-size: $defaultFontSize * 0.875;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.sleeves-page-info {
|
|
||||||
display: "block";
|
|
||||||
width: 75%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.sleeve-panel {
|
|
||||||
display: inline-block;
|
|
||||||
margin: 0px;
|
|
||||||
padding: 2px;
|
|
||||||
|
|
||||||
select {
|
|
||||||
display: block;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,98 +0,0 @@
|
|||||||
@import "theme";
|
|
||||||
|
|
||||||
#stock-market-container {
|
|
||||||
position: fixed;
|
|
||||||
padding: 6px;
|
|
||||||
|
|
||||||
p {
|
|
||||||
font-size: $defaultFontSize * 0.8125;
|
|
||||||
}
|
|
||||||
|
|
||||||
a {
|
|
||||||
font-size: $defaultFontSize * 0.875;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.stock-market-info-and-purchases {
|
|
||||||
> h2 {
|
|
||||||
display: block;
|
|
||||||
margin-top: 10px;
|
|
||||||
margin-left: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
> p {
|
|
||||||
display: block;
|
|
||||||
margin-left: 10px;
|
|
||||||
width: 70%;
|
|
||||||
}
|
|
||||||
|
|
||||||
> a, > button {
|
|
||||||
margin: 10px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#stock-market-list {
|
|
||||||
list-style: none;
|
|
||||||
|
|
||||||
li {
|
|
||||||
button {
|
|
||||||
font-size: $defaultFontSize;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#stock-market-watchlist-filter {
|
|
||||||
display: block;
|
|
||||||
margin: 5px 5px 5px 10px;
|
|
||||||
padding: 4px;
|
|
||||||
width: 50%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.stock-market-input {
|
|
||||||
display: inline-block;
|
|
||||||
padding: 4px;
|
|
||||||
margin: 2px;
|
|
||||||
background-color: #000;
|
|
||||||
border: 1px solid #fff;
|
|
||||||
color: var(--my-font-color);
|
|
||||||
}
|
|
||||||
|
|
||||||
.stock-market-price-movement-warning {
|
|
||||||
border: 1px solid white;
|
|
||||||
color: red;
|
|
||||||
margin: 2px;
|
|
||||||
padding: 2px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.stock-market-position-text {
|
|
||||||
color: #fff;
|
|
||||||
display: block;
|
|
||||||
|
|
||||||
p {
|
|
||||||
color: #fff;
|
|
||||||
display: inline-block;
|
|
||||||
margin: 4px;
|
|
||||||
}
|
|
||||||
|
|
||||||
h3 {
|
|
||||||
margin: 4px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.stock-market-order-list {
|
|
||||||
overflow-y: auto;
|
|
||||||
max-height: 100px;
|
|
||||||
|
|
||||||
li {
|
|
||||||
color: #fff;
|
|
||||||
padding: 4px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.stock-market-order-cancel-btn {
|
|
||||||
background-color: #000;
|
|
||||||
border: 1px solid #fff;
|
|
||||||
color: var(--my-font-color);
|
|
||||||
margin: 2px;
|
|
||||||
padding: 0;
|
|
||||||
}
|
|
||||||
-398
@@ -1,398 +0,0 @@
|
|||||||
@import "mixins";
|
|
||||||
@import "theme";
|
|
||||||
|
|
||||||
@import "reset";
|
|
||||||
|
|
||||||
:root {
|
|
||||||
--my-font-color: #6f3;
|
|
||||||
--my-background-color: #000;
|
|
||||||
--my-highlight-color: #fff;
|
|
||||||
--my-prompt-color: #f92672;
|
|
||||||
}
|
|
||||||
|
|
||||||
body {
|
|
||||||
background-color: var(--my-background-color);
|
|
||||||
}
|
|
||||||
|
|
||||||
p,
|
|
||||||
pre,
|
|
||||||
h2,
|
|
||||||
.text,
|
|
||||||
td {
|
|
||||||
color: var(--my-font-color);
|
|
||||||
}
|
|
||||||
|
|
||||||
h1 {
|
|
||||||
font-size: $defaultFontSize * 1.375;
|
|
||||||
color: var(--my-font-color);
|
|
||||||
}
|
|
||||||
|
|
||||||
ul {
|
|
||||||
padding: 2px;
|
|
||||||
list-style-type: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
li {
|
|
||||||
list-style-type: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
#entire-game-container {
|
|
||||||
background-color: transparent;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Disable border highlight on elements */
|
|
||||||
input:focus,
|
|
||||||
textarea:focus,
|
|
||||||
button:focus,
|
|
||||||
td:focus,
|
|
||||||
tr:focus {
|
|
||||||
outline: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Make html links ("a" elements) nice looking buttons with this class */
|
|
||||||
a:link,
|
|
||||||
a:visited {
|
|
||||||
color: #fff;
|
|
||||||
}
|
|
||||||
|
|
||||||
.dropdown {
|
|
||||||
color: #fff;
|
|
||||||
background-color: #000;
|
|
||||||
}
|
|
||||||
|
|
||||||
.text-input {
|
|
||||||
color: #fff;
|
|
||||||
background-color: #000;
|
|
||||||
border-style: solid;
|
|
||||||
border-width: 1px;
|
|
||||||
border-color: white;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Notification icon (for create program right now only) */
|
|
||||||
#create-program-tab {
|
|
||||||
position: relative;
|
|
||||||
}
|
|
||||||
|
|
||||||
#create-program-notification {
|
|
||||||
font-size: $defaultFontSize * 0.625;
|
|
||||||
position: absolute; /* Position the badge within the relatively positioned button */
|
|
||||||
top: 0;
|
|
||||||
right: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
#factions-tab {
|
|
||||||
position: relative;
|
|
||||||
}
|
|
||||||
|
|
||||||
#factions-notification {
|
|
||||||
font-size: $defaultFontSize * 0.625;
|
|
||||||
position: absolute; /* Position the badge within the relatively positioned button */
|
|
||||||
top: 0;
|
|
||||||
right: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
#augmentations-tab {
|
|
||||||
position: relative;
|
|
||||||
}
|
|
||||||
|
|
||||||
#augmentations-notification {
|
|
||||||
font-size: $defaultFontSize * 0.625;
|
|
||||||
position: absolute; /* Position the badge within the relatively positioned button */
|
|
||||||
top: 0;
|
|
||||||
right: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.notification-on {
|
|
||||||
background-color: #fa3e3e;
|
|
||||||
color: #fff;
|
|
||||||
border-radius: 2px;
|
|
||||||
padding: 1px 3px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.notification-off {
|
|
||||||
background-color: #333;
|
|
||||||
color: #333;
|
|
||||||
border-radius: 0;
|
|
||||||
padding: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* help tip. Question mark that opens popup with info/details */
|
|
||||||
.help-tip {
|
|
||||||
background-color: black;
|
|
||||||
border: 1px solid #fff;
|
|
||||||
border-radius: 5px;
|
|
||||||
color: #fff;
|
|
||||||
content: '?';
|
|
||||||
display: inline-block;
|
|
||||||
margin-left: 3px;
|
|
||||||
padding: 1px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.help-tip-big {
|
|
||||||
content: '?';
|
|
||||||
padding: 3px;
|
|
||||||
margin-left: 3px;
|
|
||||||
color: #fff;
|
|
||||||
border: 1px solid #fff;
|
|
||||||
border-radius: 8px;
|
|
||||||
display: inline-block;
|
|
||||||
}
|
|
||||||
|
|
||||||
.help-tip:hover,
|
|
||||||
.help-tip-big:hover {
|
|
||||||
background-color: #888;
|
|
||||||
}
|
|
||||||
|
|
||||||
.help-tip:active,
|
|
||||||
.help-tip-big:active {
|
|
||||||
@include boxShadow(inset 0 1px 4px rgba(0, 0, 0, 0.6));
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Flashing button (Red) */
|
|
||||||
@-webkit-keyframes glowing {
|
|
||||||
0% { background-color: #b20000; -webkit-box-shadow: 0 0 3px #b20000; }
|
|
||||||
50% { background-color: #f00; -webkit-box-shadow: 0 0 40px #f00; }
|
|
||||||
100% { background-color: #b20000; -webkit-box-shadow: 0 0 3px #b20000; }
|
|
||||||
}
|
|
||||||
|
|
||||||
@-moz-keyframes glowing {
|
|
||||||
0% { background-color: #b20000; -moz-box-shadow: 0 0 3px #b20000; }
|
|
||||||
50% { background-color: #f00; -moz-box-shadow: 0 0 40px #f00; }
|
|
||||||
100% { background-color: #b20000; -moz-box-shadow: 0 0 3px #b20000; }
|
|
||||||
}
|
|
||||||
|
|
||||||
@-o-keyframes glowing {
|
|
||||||
0% { background-color: #b20000; box-shadow: 0 0 3px #b20000; }
|
|
||||||
50% { background-color: #f00; box-shadow: 0 0 40px #f00; }
|
|
||||||
100% { background-color: #b20000; box-shadow: 0 0 3px #b20000; }
|
|
||||||
}
|
|
||||||
|
|
||||||
@keyframes glowing {
|
|
||||||
0% { background-color: #b20000; box-shadow: 0 0 3px #b20000; }
|
|
||||||
50% { background-color: #f00; box-shadow: 0 0 40px #f00; }
|
|
||||||
100% { background-color: #b20000; box-shadow: 0 0 3px #b20000; }
|
|
||||||
}
|
|
||||||
|
|
||||||
.flashing-button {
|
|
||||||
-webkit-animation: glowing 1500ms infinite;
|
|
||||||
-moz-animation: glowing 1500ms infinite;
|
|
||||||
-o-animation: glowing 1500ms infinite;
|
|
||||||
animation: glowing 1500ms infinite;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Blinking Cursor */
|
|
||||||
/* ----- blinking cursor animation ----- */
|
|
||||||
.typed-cursor {
|
|
||||||
opacity: 1;
|
|
||||||
-webkit-animation: blink 0.95s infinite;
|
|
||||||
-moz-animation: blink 0.95s infinite;
|
|
||||||
-ms-animation: blink 0.95s infinite;
|
|
||||||
-o-animation: blink 0.95s infinite;
|
|
||||||
animation: blink 0.95s infinite;
|
|
||||||
}
|
|
||||||
|
|
||||||
@-keyframes blink{
|
|
||||||
0% { opacity: 1; }
|
|
||||||
50% { opacity: 0; }
|
|
||||||
100% { opacity: 1; }
|
|
||||||
}
|
|
||||||
@-webkit-keyframes blink{
|
|
||||||
0% { opacity: 1; }
|
|
||||||
50% { opacity: 0; }
|
|
||||||
100% { opacity: 1; }
|
|
||||||
}
|
|
||||||
@-moz-keyframes blink{
|
|
||||||
0% { opacity: 1; }
|
|
||||||
50% { opacity: 0; }
|
|
||||||
100% { opacity: 1; }
|
|
||||||
}
|
|
||||||
@-ms-keyframes blink{
|
|
||||||
0% { opacity: 1; }
|
|
||||||
50% { opacity: 0; }
|
|
||||||
100% { opacity: 1; }
|
|
||||||
}
|
|
||||||
@-o-keyframes blink{
|
|
||||||
0% { opacity: 1; }
|
|
||||||
50% { opacity: 0; }
|
|
||||||
100% { opacity: 1; }
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Status text */
|
|
||||||
@-webkit-keyframes status-text {
|
|
||||||
from {
|
|
||||||
opacity: 1;
|
|
||||||
}
|
|
||||||
to {
|
|
||||||
opacity: 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.status-text {
|
|
||||||
display: inline-block;
|
|
||||||
position: fixed;
|
|
||||||
z-index: 2;
|
|
||||||
-webkit-animation: status-text 3s 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
#status-text-container {
|
|
||||||
background-color: transparent;
|
|
||||||
}
|
|
||||||
|
|
||||||
#status-text {
|
|
||||||
background-color: transparent;
|
|
||||||
bottom: 0;
|
|
||||||
color: #fff;
|
|
||||||
display: none;
|
|
||||||
font-size: $defaultFontSize * 1.25;
|
|
||||||
margin-right: 14px;
|
|
||||||
opacity: 0;
|
|
||||||
padding: 4px;
|
|
||||||
right: 0;
|
|
||||||
top: 0;
|
|
||||||
width: auto;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Scan analyze links from AutoLink */
|
|
||||||
.scan-analyze-link {
|
|
||||||
cursor: pointer;
|
|
||||||
color: #fff;
|
|
||||||
text-decoration: underline;
|
|
||||||
|
|
||||||
&:hover {
|
|
||||||
text-decoration: none;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Accordion menus (Header with collapsible panel) */
|
|
||||||
.accordion-header {
|
|
||||||
background-color: #444;
|
|
||||||
color: #fff;
|
|
||||||
font-size: $defaultFontSize * 1.25;
|
|
||||||
margin: 6px 6px 0 6px;
|
|
||||||
padding: 4px 6px;
|
|
||||||
cursor: pointer;
|
|
||||||
width: 80%;
|
|
||||||
text-align: left;
|
|
||||||
border: none;
|
|
||||||
outline: none;
|
|
||||||
position: relative;
|
|
||||||
|
|
||||||
&.active,
|
|
||||||
&:hover {
|
|
||||||
background-color: #555;
|
|
||||||
}
|
|
||||||
|
|
||||||
&.active:hover {
|
|
||||||
background-color: #666;
|
|
||||||
}
|
|
||||||
|
|
||||||
&:after {
|
|
||||||
content: '\02795'; /* "plus" sign (+) */
|
|
||||||
font-size: $defaultFontSize * 0.875;
|
|
||||||
float: right;
|
|
||||||
color: transparent;
|
|
||||||
text-shadow: 0 0 0 #fff;
|
|
||||||
position: absolute;
|
|
||||||
bottom: 5px;
|
|
||||||
right: 6px;
|
|
||||||
}
|
|
||||||
|
|
||||||
&.active:after {
|
|
||||||
content: "\2796"; /* "minus" sign (-) */
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.accordion-panel {
|
|
||||||
margin: 0 6px 6px 6px;
|
|
||||||
padding: 0 6px 6px 6px;
|
|
||||||
width: 75%;
|
|
||||||
margin-left: 5%;
|
|
||||||
display: none;
|
|
||||||
background-color: #555;
|
|
||||||
overflow-y: auto;
|
|
||||||
overflow-x: none;
|
|
||||||
|
|
||||||
div, ul, p, ul > li {
|
|
||||||
background-color: #555;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* override the global <span> styling */
|
|
||||||
#active-scripts-total-production-active,
|
|
||||||
#active-scripts-total-prod-aug-total,
|
|
||||||
#active-scripts-total-prod-aug-avg {
|
|
||||||
margin: 0;
|
|
||||||
padding: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Helper Classes */
|
|
||||||
.hacker-green {
|
|
||||||
color: $hacker-green;
|
|
||||||
}
|
|
||||||
|
|
||||||
.money-gold {
|
|
||||||
color: $money-gold;
|
|
||||||
}
|
|
||||||
|
|
||||||
.light-yellow {
|
|
||||||
color: $light-yellow;
|
|
||||||
}
|
|
||||||
|
|
||||||
.failure {
|
|
||||||
color: $alert-red;
|
|
||||||
text-shadow: 0 0 0 $alert-red;
|
|
||||||
}
|
|
||||||
|
|
||||||
.success {
|
|
||||||
color: $success-green;
|
|
||||||
text-shadow: 0 0 0 $success-green;
|
|
||||||
}
|
|
||||||
|
|
||||||
.physical-yellow {
|
|
||||||
color: $my-stat-physical;
|
|
||||||
}
|
|
||||||
|
|
||||||
.charisma-purple {
|
|
||||||
color: $my-stat-cha-color;
|
|
||||||
}
|
|
||||||
|
|
||||||
.smallfont {
|
|
||||||
font-size: $defaultFontSize * 0.8125;
|
|
||||||
}
|
|
||||||
|
|
||||||
input[type=checkbox] {
|
|
||||||
filter: invert(1) sepia(1) hue-rotate(41deg) brightness(100%) saturate(10);
|
|
||||||
}
|
|
||||||
|
|
||||||
.optionCheckbox {
|
|
||||||
margin: 5px;
|
|
||||||
float: right;
|
|
||||||
}
|
|
||||||
|
|
||||||
.optionRange {
|
|
||||||
-webkit-appearance: none;
|
|
||||||
background: #777;
|
|
||||||
outline: none;
|
|
||||||
opacity: 0.7;
|
|
||||||
height: 10px;
|
|
||||||
-webkit-transition: .2s;
|
|
||||||
transition: opacity .2s;
|
|
||||||
margin: 3px;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
.optionRange::-webkit-slider-thumb {
|
|
||||||
-webkit-appearance: none;
|
|
||||||
appearance: none;
|
|
||||||
width: 10px;
|
|
||||||
height: 10px;
|
|
||||||
background: var(--my-font-color);
|
|
||||||
cursor: pointer;
|
|
||||||
}
|
|
||||||
|
|
||||||
.optionRange::-moz-range-thumb {
|
|
||||||
width: 10px;
|
|
||||||
height: 10px;
|
|
||||||
background: var(--my-font-color);
|
|
||||||
cursor: pointer;
|
|
||||||
}
|
|
||||||
@@ -1,72 +0,0 @@
|
|||||||
@import "theme";
|
|
||||||
|
|
||||||
#terminal-container {
|
|
||||||
position: fixed;
|
|
||||||
margin-left: 10%;
|
|
||||||
height: 100%;
|
|
||||||
width: 99%;
|
|
||||||
overflow: auto;
|
|
||||||
overflow-y: scroll;
|
|
||||||
}
|
|
||||||
|
|
||||||
#terminal {
|
|
||||||
padding-top: 10px;
|
|
||||||
padding-left: 10px;
|
|
||||||
height: auto;
|
|
||||||
width: 70%;
|
|
||||||
font-size: $defaultFontSize;
|
|
||||||
overflow: auto;
|
|
||||||
overflow-y: scroll;
|
|
||||||
background-color: var(--my-background-color);
|
|
||||||
table-layout: fixed;
|
|
||||||
|
|
||||||
.prompt {
|
|
||||||
color: var(--my-prompt-color);
|
|
||||||
margin: 0;
|
|
||||||
padding: 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#terminal-input {
|
|
||||||
background-color: var(--my-background-color);
|
|
||||||
color: var(--my-font-color);
|
|
||||||
transition: height 1s;
|
|
||||||
}
|
|
||||||
|
|
||||||
.terminal-input {
|
|
||||||
display: inline-block;
|
|
||||||
padding: 0 !important;
|
|
||||||
margin: 0 !important;
|
|
||||||
border: 0;
|
|
||||||
background-color: var(--my-background-color);
|
|
||||||
font-size: $defaultFontSize;
|
|
||||||
outline: none;
|
|
||||||
color: var(--my-font-color);
|
|
||||||
}
|
|
||||||
|
|
||||||
.terminal-line {
|
|
||||||
width: 70%;
|
|
||||||
word-wrap: break-word;
|
|
||||||
hyphens: auto;
|
|
||||||
-webkit-hyphens: auto;
|
|
||||||
-moz-hyphens: auto;
|
|
||||||
}
|
|
||||||
|
|
||||||
#terminal-input-td {
|
|
||||||
display: flex;
|
|
||||||
}
|
|
||||||
|
|
||||||
#terminal-input-td textarea {
|
|
||||||
overflow: hidden;
|
|
||||||
resize: none;
|
|
||||||
height: auto;
|
|
||||||
}
|
|
||||||
|
|
||||||
#terminal-input-header {
|
|
||||||
white-space: pre;
|
|
||||||
}
|
|
||||||
|
|
||||||
#terminal-input-text-box {
|
|
||||||
margin-left: 2px;
|
|
||||||
flex: 1 1 auto;
|
|
||||||
}
|
|
||||||
@@ -1,87 +0,0 @@
|
|||||||
@import "theme";
|
|
||||||
|
|
||||||
/* Styling for tooltip-style elements */
|
|
||||||
|
|
||||||
/* Tool tips (when hovering over an element */
|
|
||||||
.tooltip {
|
|
||||||
display: inline-block;
|
|
||||||
position: relative;
|
|
||||||
|
|
||||||
.tooltiptext {
|
|
||||||
visibility: hidden;
|
|
||||||
width: 300px;
|
|
||||||
background-color: var(--my-background-color);
|
|
||||||
border: 2px solid var(--my-highlight-color);
|
|
||||||
color: #fff;
|
|
||||||
text-align: center;
|
|
||||||
padding: 4px;
|
|
||||||
left: 101%;
|
|
||||||
|
|
||||||
pointer-events: none;
|
|
||||||
position: absolute;
|
|
||||||
z-index: 99;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Positioned to left of element rather than right */
|
|
||||||
.tooltiptextleft {
|
|
||||||
visibility: hidden;
|
|
||||||
width: 300px;
|
|
||||||
background-color: var(--my-background-color);
|
|
||||||
border: 2px solid var(--my-highlight-color);
|
|
||||||
color: #fff;
|
|
||||||
text-align: center;
|
|
||||||
padding: 4px;
|
|
||||||
top: 50%;
|
|
||||||
left: 50%;
|
|
||||||
transform: translate(-100%, -100%);
|
|
||||||
|
|
||||||
/* Backwards compatibility */
|
|
||||||
-webkit-transform: translate(-100%, -100%);
|
|
||||||
-moz-transform: translate(-100%, -100%);
|
|
||||||
-o-transform: translate(-100%, -100%);
|
|
||||||
-ms-transform: translate(-100%, -100%);
|
|
||||||
|
|
||||||
position: absolute;
|
|
||||||
z-index: 99;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Tooltip goes below cursor instead of above */
|
|
||||||
.tooltiptextlow {
|
|
||||||
visibility: hidden;
|
|
||||||
width: 300px;
|
|
||||||
background-color: var(--my-background-color);
|
|
||||||
border: 2px solid var(--my-highlight-color);
|
|
||||||
color: #fff;
|
|
||||||
text-align: center;
|
|
||||||
padding: 4px;
|
|
||||||
left: 101%;
|
|
||||||
|
|
||||||
pointer-events: none;
|
|
||||||
position: absolute;
|
|
||||||
z-index: 99;
|
|
||||||
bottom: 25%;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Same thing as a normal tooltip except its a bit higher */
|
|
||||||
.tooltip .tooltiptexthigh {
|
|
||||||
visibility: hidden;
|
|
||||||
width: 300px;
|
|
||||||
background-color: var(--my-background-color);
|
|
||||||
border: 2px solid var(--my-highlight-color);
|
|
||||||
color: #fff;
|
|
||||||
text-align: center;
|
|
||||||
padding: 4px;
|
|
||||||
left: 101%;
|
|
||||||
bottom: -25%;
|
|
||||||
|
|
||||||
position: absolute;
|
|
||||||
z-index: 99;
|
|
||||||
}
|
|
||||||
|
|
||||||
.tooltip:hover .tooltiptext,
|
|
||||||
.tooltip:hover .tooltiptexthigh,
|
|
||||||
.tooltip:hover .tooltiptextleft,
|
|
||||||
.tooltip:hover .tooltiptextlow {
|
|
||||||
visibility: visible;
|
|
||||||
}
|
|
||||||
@@ -1,39 +0,0 @@
|
|||||||
/* required LIB STYLES */
|
|
||||||
/* .Treant se automatski dodaje na svaki chart conatiner */
|
|
||||||
.Treant { position: relative; overflow: hidden; padding: 0 !important; }
|
|
||||||
.Treant > .node,
|
|
||||||
.Treant > .pseudo { position: absolute; display: block; visibility: hidden; }
|
|
||||||
.Treant.Treant-loaded .node,
|
|
||||||
.Treant.Treant-loaded .pseudo { visibility: visible; }
|
|
||||||
.Treant > .pseudo { width: 0; height: 0; border: none; padding: 0; }
|
|
||||||
.Treant .collapse-switch { width: 3px; height: 3px; display: block; border: 1px solid black; position: absolute; top: 1px; right: 1px; cursor: pointer; }
|
|
||||||
.Treant .collapsed .collapse-switch { background-color: #868DEE; }
|
|
||||||
.Treant > .node img { border: none; float: left; }
|
|
||||||
.Treant > .node {
|
|
||||||
cursor: pointer;
|
|
||||||
padding: 4px;
|
|
||||||
min-width: 60px;
|
|
||||||
text-align: center;
|
|
||||||
border: 2px solid #E8E8E3;
|
|
||||||
border-radius: 2px;
|
|
||||||
box-shadow: 1px 1px 1px rgba(0,0,0,.5);
|
|
||||||
font-size: 12px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.Treant > .researched {
|
|
||||||
background-color: #666;
|
|
||||||
font-size: 16px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.Treant > .locked > div {
|
|
||||||
color: red;
|
|
||||||
pointer-events: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.Treant > .node > div {
|
|
||||||
font-size: 12px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.Treant > .unlocked:hover {
|
|
||||||
background-color: #666;
|
|
||||||
}
|
|
||||||
@@ -1,51 +0,0 @@
|
|||||||
@import "mixins";
|
|
||||||
@import "theme";
|
|
||||||
|
|
||||||
/* Both Work in progress and BitNode stuff */
|
|
||||||
.generic-fullscreen-container {
|
|
||||||
color: var(--my-font-color);
|
|
||||||
width: 99%;
|
|
||||||
height: 100%;
|
|
||||||
overflow-y: hidden;
|
|
||||||
}
|
|
||||||
|
|
||||||
.generic-fullscreen-container-scroll {
|
|
||||||
height: 100%;
|
|
||||||
width: 100%;
|
|
||||||
overflow: auto;
|
|
||||||
padding-right: 20px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#work-in-progress-container {
|
|
||||||
position: fixed;
|
|
||||||
}
|
|
||||||
|
|
||||||
#work-in-progress-text {
|
|
||||||
color: var(--my-font-color);
|
|
||||||
width: 70%;
|
|
||||||
margin: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#work-in-progress-cancel-button {
|
|
||||||
@include borderRadius(12px);
|
|
||||||
@include boxShadow(1px 1px 3px #000);
|
|
||||||
|
|
||||||
color: #aaa;
|
|
||||||
float: left;
|
|
||||||
font-size: $defaultFontSize * 1.25;
|
|
||||||
font-weight: bold;
|
|
||||||
margin: 10px;
|
|
||||||
padding: 5px;
|
|
||||||
border: 3px solid #fff;
|
|
||||||
}
|
|
||||||
|
|
||||||
#work-in-progress-cancel-button:hover,
|
|
||||||
#work-in-progress-cancel-button:focus {
|
|
||||||
color: #fff;
|
|
||||||
text-decoration: none;
|
|
||||||
cursor: pointer;
|
|
||||||
}
|
|
||||||
|
|
||||||
#cinematic-text-container {
|
|
||||||
position: fixed;
|
|
||||||
}
|
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
{
|
||||||
|
"baseUrl": "http://localhost:8000",
|
||||||
|
"fixturesFolder": false,
|
||||||
|
"trashAssetsBeforeRuns": true,
|
||||||
|
"screenshotsFolder": ".cypress/screenshots",
|
||||||
|
"videosFolder": ".cypress/videos",
|
||||||
|
"videoUploadOnPasses": false,
|
||||||
|
"viewportWidth": 1980,
|
||||||
|
"viewportHeight": 1080
|
||||||
|
}
|
||||||
@@ -0,0 +1,73 @@
|
|||||||
|
export {};
|
||||||
|
|
||||||
|
describe("netscript", () => {
|
||||||
|
it("Do naviguation", () => {
|
||||||
|
cy.findByRole("button", { name: "SKIP TUTORIAL" }).click();
|
||||||
|
cy.findByText("Got it!").click();
|
||||||
|
|
||||||
|
cy.findByText("Dev").click();
|
||||||
|
cy.findByText(/Source-Files/i).click();
|
||||||
|
cy.findByLabelText(/all-sf-3/i).click();
|
||||||
|
cy.findByText(/Experience/i).click();
|
||||||
|
cy.findByText(/Tons of exp/i).click();
|
||||||
|
cy.findByText(/General/i).click();
|
||||||
|
cy.findByText(/Hack w0/i).click();
|
||||||
|
cy.findByText(/SEMPOOL INVALID/i);
|
||||||
|
cy.findByText(/Many decades/i, { timeout: 15000 });
|
||||||
|
cy.findByLabelText("enter-bitnode-1").click();
|
||||||
|
cy.findByText(/Enter BN1.2/i).click();
|
||||||
|
|
||||||
|
cy.get("body").type("{esc}");
|
||||||
|
|
||||||
|
cy.findByText("Dev").click();
|
||||||
|
cy.findByText(/Experience/i).click();
|
||||||
|
cy.findByText(/Tons of exp/i).click();
|
||||||
|
|
||||||
|
cy.findByText("Create Script").click();
|
||||||
|
cy.findByText(/Script name:/i);
|
||||||
|
|
||||||
|
cy.findByText("Active Scripts").click();
|
||||||
|
cy.findByText(/Total online production of/i);
|
||||||
|
|
||||||
|
cy.findByText("Create Program").click();
|
||||||
|
cy.findByText(/This page displays/i);
|
||||||
|
|
||||||
|
cy.findByText("Stats").click();
|
||||||
|
cy.findByText(/Current City:/i);
|
||||||
|
|
||||||
|
cy.findByText("Factions").click();
|
||||||
|
cy.findByText(/Lists all/i);
|
||||||
|
|
||||||
|
cy.findByText("Augmentations").click();
|
||||||
|
cy.findByText(/Purchased Augmentations/i);
|
||||||
|
|
||||||
|
cy.findByText("Hacknet").click();
|
||||||
|
cy.findByText(/The Hacknet is a global/i);
|
||||||
|
|
||||||
|
cy.findByText("Sleeves").click();
|
||||||
|
cy.findByText(/Duplicate Sleeves are MK/i);
|
||||||
|
|
||||||
|
cy.findByText("City").click();
|
||||||
|
cy.findByText(/Sector-12/i);
|
||||||
|
cy.findByLabelText("The Slums").click();
|
||||||
|
cy.findByText("City").click();
|
||||||
|
cy.findByLabelText("Powerhouse Gym").click();
|
||||||
|
cy.findByText("City").click();
|
||||||
|
cy.findByLabelText("MegaCorp").click();
|
||||||
|
|
||||||
|
cy.findByText("Travel").click();
|
||||||
|
cy.findByText(/Travel Agency/i);
|
||||||
|
|
||||||
|
cy.findByText("Stock Market").click();
|
||||||
|
cy.findByText(/ECorp/i);
|
||||||
|
|
||||||
|
cy.findByText("Milestones").click();
|
||||||
|
cy.findByText(/don't reward you for/i);
|
||||||
|
|
||||||
|
cy.findByText("Tutorial").click();
|
||||||
|
cy.findByText(/AKA Links to/i);
|
||||||
|
|
||||||
|
cy.findByText("Options").click();
|
||||||
|
cy.findByText(/Netscript exec time/i);
|
||||||
|
});
|
||||||
|
});
|
||||||
@@ -0,0 +1,51 @@
|
|||||||
|
export {};
|
||||||
|
|
||||||
|
describe("netscript", () => {
|
||||||
|
it("creates and runs a NetScript 2.0 script", () => {
|
||||||
|
cy.findByRole("button", { name: "SKIP TUTORIAL" }).click();
|
||||||
|
cy.findByText("Got it!").click();
|
||||||
|
|
||||||
|
cy.findByRole("textbox").type("connect n00dles{enter}");
|
||||||
|
cy.findByText(/connected to n00dles/i);
|
||||||
|
|
||||||
|
cy.findByRole("textbox").type("run NUKE.exe{enter}");
|
||||||
|
cy.findByText(/gained root access/i);
|
||||||
|
|
||||||
|
cy.findByRole("textbox").type("home{enter}");
|
||||||
|
cy.findByText(/connected to home/i);
|
||||||
|
|
||||||
|
cy.findByRole("textbox").type("nano script.js{enter}");
|
||||||
|
|
||||||
|
// monaco can take a bit
|
||||||
|
cy.findByRole("code", { timeout: 15_000 }).type("{selectall}{del}").type(`export const main = async (ns) => {{}
|
||||||
|
while(true) {{}
|
||||||
|
await ns.hack("n00dles");`);
|
||||||
|
|
||||||
|
cy.findByText("RAM: 1.70GB");
|
||||||
|
cy.findByRole("button", { name: /Save & Close/i }).click();
|
||||||
|
|
||||||
|
cy.findByRole("textbox").type("run script.js{enter}");
|
||||||
|
cy.findByText(/Running script with 1 thread/);
|
||||||
|
|
||||||
|
cy.findByRole("textbox").type("ps{enter}");
|
||||||
|
cy.findByText(/\(PID - 1\) script.js/);
|
||||||
|
});
|
||||||
|
|
||||||
|
it("errors and shows a dialog box when static RAM !== dynamic RAM", () => {
|
||||||
|
cy.findByRole("button", { name: "SKIP TUTORIAL" }).click();
|
||||||
|
cy.findByText("Got it!").click();
|
||||||
|
|
||||||
|
cy.findByRole("textbox").type("nano script.js{enter}");
|
||||||
|
|
||||||
|
// monaco can take a bit
|
||||||
|
cy.findByRole("code", { timeout: 15_000 }).type("{selectall}{del}").type(`export const main = async (ns) => {{}
|
||||||
|
const command = "hack";
|
||||||
|
ns[command]("n00dles");`);
|
||||||
|
|
||||||
|
cy.findByText("RAM: 1.60GB");
|
||||||
|
cy.findByRole("button", { name: /Save & Close/i }).click();
|
||||||
|
|
||||||
|
cy.findByRole("textbox").type("run script.js{enter}");
|
||||||
|
cy.findByText(/Dynamic RAM usage calculated to be greater than initial RAM usage on fn: hack./i);
|
||||||
|
});
|
||||||
|
});
|
||||||
@@ -0,0 +1,96 @@
|
|||||||
|
export {};
|
||||||
|
|
||||||
|
describe("tutorial", () => {
|
||||||
|
it("completes the tutorial", () => {
|
||||||
|
cy.findByText(/dark, dystopian future/);
|
||||||
|
cy.findByRole("button", { name: "next" }).click();
|
||||||
|
|
||||||
|
cy.findByText(/heading to the Stats page/);
|
||||||
|
cy.findByRole("button", { name: "Stats" }).click();
|
||||||
|
|
||||||
|
cy.findByText(/lot of important information/);
|
||||||
|
cy.findByRole("button", { name: "next" }).click();
|
||||||
|
|
||||||
|
cy.findByText(/head to your computer's terminal/);
|
||||||
|
cy.findByRole("button", { name: "Terminal" }).click();
|
||||||
|
|
||||||
|
cy.findByText(/is used to interface/);
|
||||||
|
cy.findByRole("button", { name: "next" }).click();
|
||||||
|
|
||||||
|
cy.findByText(/Let's try it out/i);
|
||||||
|
cy.findByRole("textbox").type("help{enter}");
|
||||||
|
|
||||||
|
cy.findByText(/displays a list of all available/i);
|
||||||
|
cy.findByRole("textbox").type("ls{enter}");
|
||||||
|
|
||||||
|
cy.findByText(/is a basic command that shows files/i);
|
||||||
|
cy.findByRole("textbox").type("scan{enter}");
|
||||||
|
|
||||||
|
cy.findByText(/that's great and all/i);
|
||||||
|
cy.findByRole("textbox").type("scan-analyze{enter}");
|
||||||
|
|
||||||
|
cy.findByText(/shows more detailed information/i);
|
||||||
|
cy.findByRole("textbox").type("scan-analyze 2{enter}");
|
||||||
|
|
||||||
|
cy.findByText(/now you can see information/i);
|
||||||
|
cy.findByRole("textbox").type("connect n00dles{enter}");
|
||||||
|
|
||||||
|
cy.findByText(/currency has become digital/i);
|
||||||
|
cy.findByRole("textbox").type("analyze{enter}");
|
||||||
|
|
||||||
|
cy.findByText(/For this server, the required hacking skill/i);
|
||||||
|
cy.findByText(/Required number of open ports for NUKE/i);
|
||||||
|
cy.findByRole("textbox").type("run NUKE.exe{enter}");
|
||||||
|
|
||||||
|
cy.findByText(/gained root access to n00dles/i);
|
||||||
|
cy.findByRole("textbox").type("hack{enter}");
|
||||||
|
|
||||||
|
cy.findByText(/now attempting to hack the server/i);
|
||||||
|
cy.findByRole("button", { name: "next" }).click();
|
||||||
|
|
||||||
|
cy.findByRole("textbox", { timeout: 15_000 }).should("not.be.disabled").type("home{enter}");
|
||||||
|
|
||||||
|
cy.findByRole("textbox").type("nano n00dles.script{enter}");
|
||||||
|
|
||||||
|
// monaco can take a bit
|
||||||
|
cy.findByRole("code", { timeout: 15_000 }).type("{selectall}{del}").type("while(true) {{}{enter}hack('n00dles');");
|
||||||
|
|
||||||
|
cy.findByRole("button", { name: /Save & Close/i }).click();
|
||||||
|
|
||||||
|
cy.findByText(/now we'll run the script/i);
|
||||||
|
cy.findByRole("textbox").type("free{enter}");
|
||||||
|
|
||||||
|
cy.findByText(/We have 8GB of free RAM on this machine/i);
|
||||||
|
cy.findByRole("textbox").type("run n00dles.script{enter}");
|
||||||
|
|
||||||
|
cy.findByText(/Your script is now running/i);
|
||||||
|
cy.findByRole("button", { name: "Active Scripts" }).click();
|
||||||
|
|
||||||
|
cy.findByText(/This page displays information about all of your scripts/i);
|
||||||
|
cy.findByRole("button", { name: "Terminal" }).click();
|
||||||
|
|
||||||
|
cy.findByText(/each active script contains logs/i);
|
||||||
|
cy.findByRole("textbox").type("tail n00dles.script{enter}");
|
||||||
|
|
||||||
|
cy.findByText(/The log for this script won't show much/i);
|
||||||
|
cy.findByRole("button", { name: "next" }).click();
|
||||||
|
|
||||||
|
cy.findByText(/Hacking is not the only way to earn money/i);
|
||||||
|
cy.findByRole("button", { name: "Hacknet" }).click();
|
||||||
|
|
||||||
|
cy.findByText(/Here you can purchase new Hacknet Nodes/i);
|
||||||
|
cy.findByRole("button", { name: /Purchase Hacknet Node/ }).click();
|
||||||
|
|
||||||
|
cy.findByText(/You just purchased a Hacknet Node!/i);
|
||||||
|
cy.findByRole("button", { name: "City" }).click();
|
||||||
|
|
||||||
|
cy.findByText(/This page lists all of the different locations/i);
|
||||||
|
cy.findByRole("button", { name: "Tutorial" }).click();
|
||||||
|
|
||||||
|
cy.findByText(/a lot of different documentation about the game/i);
|
||||||
|
cy.findByRole("button", { name: "FINISH TUTORIAL" }).click();
|
||||||
|
cy.findByText("Got it!").click();
|
||||||
|
|
||||||
|
cy.findByText(/Tutorial \(AKA Links to Documentation\)/i);
|
||||||
|
});
|
||||||
|
});
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
/// <reference types="cypress" />
|
||||||
|
// ***********************************************************
|
||||||
|
// This example plugins/index.js can be used to load plugins
|
||||||
|
//
|
||||||
|
// You can change the location of this file or turn off loading
|
||||||
|
// the plugins file with the 'pluginsFile' configuration option.
|
||||||
|
//
|
||||||
|
// You can read more here:
|
||||||
|
// https://on.cypress.io/plugins-guide
|
||||||
|
// ***********************************************************
|
||||||
|
|
||||||
|
// This function is called when a project is opened or re-opened (e.g. due to
|
||||||
|
// the project's config changing)
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @type {Cypress.PluginConfig}
|
||||||
|
*/
|
||||||
|
// eslint-disable-next-line no-unused-vars
|
||||||
|
module.exports = (on, config) => {
|
||||||
|
// `on` is used to hook into various events Cypress emits
|
||||||
|
// `config` is the resolved Cypress config
|
||||||
|
};
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
import "@testing-library/cypress/add-commands";
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
export {};
|
||||||
|
|
||||||
|
beforeEach(() => {
|
||||||
|
cy.visit("/");
|
||||||
|
cy.clearLocalStorage();
|
||||||
|
cy.window().then((win) => {
|
||||||
|
win.indexedDB.deleteDatabase("bitburnerSave");
|
||||||
|
});
|
||||||
|
});
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
// ***********************************************************
|
||||||
|
// This example support/index.js is processed and
|
||||||
|
// loaded automatically before your test files.
|
||||||
|
//
|
||||||
|
// This is a great place to put global configuration and
|
||||||
|
// behavior that modifies Cypress.
|
||||||
|
//
|
||||||
|
// You can change the location of this file or turn off
|
||||||
|
// automatically serving support files with the
|
||||||
|
// 'supportFile' configuration option.
|
||||||
|
//
|
||||||
|
// You can read more here:
|
||||||
|
// https://on.cypress.io/configuration
|
||||||
|
// ***********************************************************
|
||||||
|
|
||||||
|
// Import commands.js using ES2015 syntax:
|
||||||
|
import "./globalHooks";
|
||||||
|
import "./commands";
|
||||||
|
|
||||||
|
// Alternatively you can use CommonJS syntax:
|
||||||
|
// require('./commands')
|
||||||
Vendored
+2
-2
File diff suppressed because one or more lines are too long
Vendored
+1
-1
@@ -1,2 +1,2 @@
|
|||||||
!function(n){function t(t){for(var e,i,f=t[0],c=t[1],l=t[2],p=0,s=[];p<f.length;p++)i=f[p],u[i]&&s.push(u[i][0]),u[i]=0;for(e in c)Object.prototype.hasOwnProperty.call(c,e)&&(n[e]=c[e]);for(a&&a(t);s.length;)s.shift()();return r.push.apply(r,l||[]),o()}function o(){for(var n,t=0;t<r.length;t++){for(var o=r[t],e=!0,f=1;f<o.length;f++){var c=o[f];0!==u[c]&&(e=!1)}e&&(r.splice(t--,1),n=i(i.s=o[0]))}return n}var e={},u={1:0},r=[];function i(t){if(e[t])return e[t].exports;var o=e[t]={i:t,l:!1,exports:{}};return n[t].call(o.exports,o,o.exports,i),o.l=!0,o.exports}i.m=n,i.c=e,i.d=function(n,t,o){i.o(n,t)||Object.defineProperty(n,t,{enumerable:!0,get:o})},i.r=function(n){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(n,"__esModule",{value:!0})},i.t=function(n,t){if(1&t&&(n=i(n)),8&t)return n;if(4&t&&"object"==typeof n&&n&&n.__esModule)return n;var o=Object.create(null);if(i.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:n}),2&t&&"string"!=typeof n)for(var e in n)i.d(o,e,function(t){return n[t]}.bind(null,e));return o},i.n=function(n){var t=n&&n.__esModule?function(){return n.default}:function(){return n};return i.d(t,"a",t),t},i.o=function(n,t){return Object.prototype.hasOwnProperty.call(n,t)},i.p="";var f=window.webpackJsonp=window.webpackJsonp||[],c=f.push.bind(f);f.push=t,f=f.slice();for(var l=0;l<f.length;l++)t(f[l]);var a=c;r.push([377,0]),o()}({320:function(n,t,o){},322:function(n,t,o){},324:function(n,t,o){},326:function(n,t,o){},328:function(n,t,o){},330:function(n,t,o){},332:function(n,t,o){},334:function(n,t,o){},336:function(n,t,o){},338:function(n,t,o){},340:function(n,t,o){},342:function(n,t,o){},344:function(n,t,o){},346:function(n,t,o){},348:function(n,t,o){},350:function(n,t,o){},352:function(n,t,o){},354:function(n,t,o){},356:function(n,t,o){},358:function(n,t,o){},360:function(n,t,o){},362:function(n,t,o){},364:function(n,t,o){},366:function(n,t,o){},368:function(n,t,o){},370:function(n,t,o){},372:function(n,t,o){},374:function(n,t,o){},377:function(n,t,o){"use strict";o.r(t);o(376),o(374),o(372),o(370),o(368),o(366),o(364),o(362),o(360),o(358),o(356),o(354),o(352),o(350),o(348),o(346),o(344),o(342),o(340),o(338),o(336),o(334),o(332),o(330),o(328),o(326),o(324),o(322),o(320)}});
|
!function(n){function t(t){for(var e,i,f=t[0],c=t[1],l=t[2],a=0,s=[];a<f.length;a++)i=f[a],Object.prototype.hasOwnProperty.call(r,i)&&r[i]&&s.push(r[i][0]),r[i]=0;for(e in c)Object.prototype.hasOwnProperty.call(c,e)&&(n[e]=c[e]);for(p&&p(t);s.length;)s.shift()();return u.push.apply(u,l||[]),o()}function o(){for(var n,t=0;t<u.length;t++){for(var o=u[t],e=!0,f=1;f<o.length;f++){var c=o[f];0!==r[c]&&(e=!1)}e&&(u.splice(t--,1),n=i(i.s=o[0]))}return n}var e={},r={2:0},u=[];function i(t){if(e[t])return e[t].exports;var o=e[t]={i:t,l:!1,exports:{}};return n[t].call(o.exports,o,o.exports,i),o.l=!0,o.exports}i.m=n,i.c=e,i.d=function(n,t,o){i.o(n,t)||Object.defineProperty(n,t,{enumerable:!0,get:o})},i.r=function(n){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(n,"__esModule",{value:!0})},i.t=function(n,t){if(1&t&&(n=i(n)),8&t)return n;if(4&t&&"object"==typeof n&&n&&n.__esModule)return n;var o=Object.create(null);if(i.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:n}),2&t&&"string"!=typeof n)for(var e in n)i.d(o,e,function(t){return n[t]}.bind(null,e));return o},i.n=function(n){var t=n&&n.__esModule?function(){return n.default}:function(){return n};return i.d(t,"a",t),t},i.o=function(n,t){return Object.prototype.hasOwnProperty.call(n,t)},i.p="";var f=window.webpackJsonp=window.webpackJsonp||[],c=f.push.bind(f);f.push=t,f=f.slice();for(var l=0;l<f.length;l++)t(f[l]);var p=c;u.push([1281,0]),o()}({1281:function(n,t,o){"use strict";o.r(t);o(1282),o(1284),o(1286),o(1288),o(1290),o(1292),o(1294),o(1296),o(1298),o(1300),o(1302),o(1304),o(1306),o(1308),o(1310),o(1312),o(1314),o(1316),o(1318),o(1320),o(1322),o(1324),o(1326),o(1328),o(1330),o(1332),o(1334),o(1336),o(1338),o(1340)},1284:function(n,t,o){},1286:function(n,t,o){},1288:function(n,t,o){},1290:function(n,t,o){},1292:function(n,t,o){},1294:function(n,t,o){},1296:function(n,t,o){},1298:function(n,t,o){},1300:function(n,t,o){},1302:function(n,t,o){},1304:function(n,t,o){},1306:function(n,t,o){},1308:function(n,t,o){},1310:function(n,t,o){},1312:function(n,t,o){},1314:function(n,t,o){},1316:function(n,t,o){},1318:function(n,t,o){},1320:function(n,t,o){},1322:function(n,t,o){},1324:function(n,t,o){},1326:function(n,t,o){},1328:function(n,t,o){},1330:function(n,t,o){},1332:function(n,t,o){},1334:function(n,t,o){},1336:function(n,t,o){},1338:function(n,t,o){},1340:function(n,t,o){}});
|
||||||
//# sourceMappingURL=engineStyle.bundle.js.map
|
//# sourceMappingURL=engineStyle.bundle.js.map
|
||||||
Vendored
+1943
-825
File diff suppressed because it is too large
Load Diff
Vendored
+262
-103
File diff suppressed because one or more lines are too long
Vendored
-5527
File diff suppressed because one or more lines are too long
@@ -56,8 +56,3 @@ through destroying BitNodes is:
|
|||||||
|
|
||||||
* Source-Files
|
* Source-Files
|
||||||
* Scripts on the home computer
|
* Scripts on the home computer
|
||||||
|
|
||||||
BitNode Details
|
|
||||||
^^^^^^^^^^^^^^^
|
|
||||||
|
|
||||||
TODO
|
|
||||||
|
|||||||
@@ -50,7 +50,7 @@ Duplicate Sleeves. It is a numeral value between 1 and 100, and it affects how m
|
|||||||
is earned when the sleeve is performing a task.
|
is earned when the sleeve is performing a task.
|
||||||
|
|
||||||
Let N be the sleeve's synchronization. When the sleeve earns experience by performing
|
Let N be the sleeve's synchronization. When the sleeve earns experience by performing
|
||||||
a task, both the sleeve and the player's original host consciousness of N% of the
|
a task, both the sleeve and the player's original host consciousness gain N% of the
|
||||||
amount of experience normally earned by the task. All of the player's other sleeves
|
amount of experience normally earned by the task. All of the player's other sleeves
|
||||||
earn ((N/100)^2 * 100)% of the experience.
|
earn ((N/100)^2 * 100)% of the experience.
|
||||||
|
|
||||||
|
|||||||
@@ -15,73 +15,53 @@ of level 3.
|
|||||||
List of all Source-Files
|
List of all Source-Files
|
||||||
^^^^^^^^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
+------------------------------------+-------------------------------------------------------------------------------------+
|
+------------------------------------+-------------------------------------------------------------------------------------+
|
||||||
| BitNode-1: Source Genesis | * Lets the player start with 32 GB of RAM on home computer |
|
| BitNode-1: Source Genesis | * Lets the player start with 32 GB of RAM on home computer. |
|
||||||
| | * Increases all of the player's multipliers by 16%/24%/28% |
|
| | * Increases all of the player's multipliers by 16%/24%/28%. |
|
||||||
+------------------------------------+-------------------------------------------------------------------------------------+
|
+------------------------------------+-------------------------------------------------------------------------------------+
|
||||||
| BitNode-2: Rise of the Underworld | * Increases the player's crime success rate, crime money, and |
|
| BitNode-2: Rise of the Underworld | * Lets the player create Gangs in other BitNodes (although some |
|
||||||
| | charisma multipliers by 24%/36%/42% |
|
| | BitNodes will disable this mechanic). |
|
||||||
|
| | * Increases the player's crime success rate, crime money, and |
|
||||||
|
| | charisma multipliers by 24%/36%/42%. |
|
||||||
+------------------------------------+-------------------------------------------------------------------------------------+
|
+------------------------------------+-------------------------------------------------------------------------------------+
|
||||||
| BitNode-3: Corporatocracy | * Lets the player create Corporations in other BitNodes (although some |
|
| BitNode-3: Corporatocracy | * Lets the player create Corporations in other BitNodes (although some |
|
||||||
| | BitNodes will disable this mechanic) |
|
| | BitNodes will disable this mechanic). |
|
||||||
| | * Increases the player's charisma and company salary multipliers by 8%/12%/14% |
|
| | * Increases the player's charisma and company salary multipliers by 8%/12%/14%. |
|
||||||
+------------------------------------+-------------------------------------------------------------------------------------+
|
+------------------------------------+-------------------------------------------------------------------------------------+
|
||||||
| BitNode-4: The Singularity | * Lets the player access and use Netscript Singularity Functions in other BitNodes. |
|
| BitNode-4: The Singularity | * Lets the player access and use Netscript Singularity Functions in other BitNodes. |
|
||||||
| | * Each level of this Source-File opens up more of the Singularity Functions to use |
|
| | * Each level of this Source-File opens up more of the Singularity Functions to use. |
|
||||||
+------------------------------------+-------------------------------------------------------------------------------------+
|
+------------------------------------+-------------------------------------------------------------------------------------+
|
||||||
| BitNode-5: Artificial Intelligence | * Unlocks :ref:`gameplay_intelligence` |
|
| BitNode-5: Artificial Intelligence | * Unlocks :ref:`gameplay_intelligence`. |
|
||||||
| | * Unlocks :js:func:`getBitNodeMultipliers` Netscript function |
|
| | * Unlocks :js:func:`getBitNodeMultipliers` and :js:func:`getServer` |
|
||||||
| | * Increases all of the player's hacking-related multipliers by 8%/12%/14% |
|
| | Netscript functions, as well as :ref:`netscriptformulas`. |
|
||||||
|
| | * Increases all of the player's hacking-related multipliers by 8%/12%/14%. |
|
||||||
+------------------------------------+-------------------------------------------------------------------------------------+
|
+------------------------------------+-------------------------------------------------------------------------------------+
|
||||||
| BitNode-6: Bladeburners | * Unlocks the Bladeburner feature in other BitNodes |
|
| BitNode-6: Bladeburners | * Unlocks the Bladeburner feature in other BitNodes. |
|
||||||
| | * Increases all of the player's level and experience gain rate multipliers for |
|
| | * Increases all of the player's level and experience gain rate multipliers for |
|
||||||
| | combat stats by 8%/12%/14% |
|
| | combat stats by 8%/12%/14%. |
|
||||||
+------------------------------------+-------------------------------------------------------------------------------------+
|
+------------------------------------+-------------------------------------------------------------------------------------+
|
||||||
| BitNode-7: Bladeburners 2079 | * Allows the player to access the :ref:`netscript_bladeburnerapi` in other BitNodes |
|
| BitNode-7: Bladeburners 2079 | * Allows the player to access the :ref:`netscript_bladeburnerapi` in other BitNodes.|
|
||||||
| | * Increases all of the player's Bladeburner multipliers by 8%/12%/14% |
|
| | * Increases all of the player's Bladeburner multipliers by 8%/12%/14%. |
|
||||||
+------------------------------------+-------------------------------------------------------------------------------------+
|
+------------------------------------+-------------------------------------------------------------------------------------+
|
||||||
| BitNode-8: Ghost of Wall Street | * Increases the player's hacking growth multiplier by 12%/18%/21% |
|
| BitNode-8: Ghost of Wall Street | * Increases the player's hacking growth multiplier by 12%/18%/21%. |
|
||||||
| | * Level 1 grants permanent access to :ref:`WSE <gameplay_stock_market>` and |
|
| | * Level 1 grants permanent access to :ref:`WSE <gameplay_stock_market>` and |
|
||||||
| | :ref:`TIX API <netscript_tixapi>` |
|
| | :ref:`TIX API <netscript_tixapi>`. |
|
||||||
| | * Level 2 grants permanent access to shorting stocks |
|
| | * Level 2 grants permanent access to shorting stocks. |
|
||||||
| | * Level 3 grants permanent access to use limit/stop orders |
|
| | * Level 3 grants permanent access to use limit/stop orders. |
|
||||||
+------------------------------------+-------------------------------------------------------------------------------------+
|
+------------------------------------+-------------------------------------------------------------------------------------+
|
||||||
| BitNode-9: Coming Soon | |
|
| BitNode-9: Hacktocracy | * Level 1 permanently unlocks the Hacknet Server in other BitNodes. |
|
||||||
|
| | * Level 2 lets the player start with 128 GB of RAM on home computer. |
|
||||||
|
| | * Level 3 grants a highly-upgraded Hacknet Server when entering a new BitNode (it |
|
||||||
|
| | will be lost after installing augments). |
|
||||||
+------------------------------------+-------------------------------------------------------------------------------------+
|
+------------------------------------+-------------------------------------------------------------------------------------+
|
||||||
| BitNode-10: Digital Carbon | * Each level of this grants a Duplicate Sleeve |
|
| BitNode-10: Digital Carbon | * Each level of this grants a Duplicate Sleeve. |
|
||||||
| | * Allows the player to access the :ref:`netscript_sleeveapi` in other BitNodes |
|
| | * Allows the player to access the :ref:`netscript_sleeveapi` in other BitNodes. |
|
||||||
+------------------------------------+-------------------------------------------------------------------------------------+
|
+------------------------------------+-------------------------------------------------------------------------------------+
|
||||||
| BitNode-11: The Big Crash | * Company favor increases both the player's salary and reputation gain at that |
|
| BitNode-11: The Big Crash | * Company favor increases both the player's salary and reputation gain at that |
|
||||||
| | company by 1% per favor (rather than just the reputation gain) |
|
| | company by 1% per favor (rather than just the reputation gain). |
|
||||||
| | * Increases the player's company salary and reputation gain multipliers by |
|
| | * Increases the player's company salary and reputation gain multipliers by |
|
||||||
| | 24%/36%/42% |
|
| | 32%/48%/56%. |
|
||||||
+------------------------------------+-------------------------------------------------------------------------------------+
|
+------------------------------------+-------------------------------------------------------------------------------------+
|
||||||
| BitNode-12: The Recursion | * There is no maximum level for this Source-File |
|
| BitNode-12: The Recursion | * There is no maximum level for this Source-File. |
|
||||||
| | * Each level of this Source-File increases all of the player's multipliers by 1%. |
|
| | * Lets the player start with Neuroflux Governor equal to the level of this |
|
||||||
| | * This affect is multiplicative with itself. This means that level N of this |
|
| | Source-File. |
|
||||||
| | Source-File will result in a multiplier of 1.01^N (or 0.99^N for multipliers |
|
|
||||||
| | that decrease) |
|
|
||||||
+------------------------------------+-------------------------------------------------------------------------------------+
|
|
||||||
| | |
|
|
||||||
+------------------------------------+-------------------------------------------------------------------------------------+
|
|
||||||
| | |
|
|
||||||
+------------------------------------+-------------------------------------------------------------------------------------+
|
|
||||||
| | |
|
|
||||||
+------------------------------------+-------------------------------------------------------------------------------------+
|
|
||||||
| | |
|
|
||||||
+------------------------------------+-------------------------------------------------------------------------------------+
|
|
||||||
| | |
|
|
||||||
+------------------------------------+-------------------------------------------------------------------------------------+
|
|
||||||
| | |
|
|
||||||
+------------------------------------+-------------------------------------------------------------------------------------+
|
|
||||||
| | |
|
|
||||||
+------------------------------------+-------------------------------------------------------------------------------------+
|
|
||||||
| | |
|
|
||||||
+------------------------------------+-------------------------------------------------------------------------------------+
|
|
||||||
| | |
|
|
||||||
+------------------------------------+-------------------------------------------------------------------------------------+
|
|
||||||
| | |
|
|
||||||
+------------------------------------+-------------------------------------------------------------------------------------+
|
|
||||||
| | |
|
|
||||||
+------------------------------------+-------------------------------------------------------------------------------------+
|
|
||||||
| | |
|
|
||||||
+------------------------------------+-------------------------------------------------------------------------------------+
|
+------------------------------------+-------------------------------------------------------------------------------------+
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ user's physical and mental faculties.
|
|||||||
Augmentations provide persistent upgrades in the form of multipliers.
|
Augmentations provide persistent upgrades in the form of multipliers.
|
||||||
These multipliers apply to a wide variety of things such as stats,
|
These multipliers apply to a wide variety of things such as stats,
|
||||||
experience gain, and hacking, just to name a few. Your multipliers
|
experience gain, and hacking, just to name a few. Your multipliers
|
||||||
can be viewed in the 'Character' page (:ref:`keyboard shortcut <shortcuts>` Alt + c)
|
can be viewed in the 'Character' page (:ref:`keyboard shortcut <shortcuts>` Alt + c).
|
||||||
|
|
||||||
How to acquire Augmentations
|
How to acquire Augmentations
|
||||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|||||||
@@ -35,7 +35,7 @@ List of Factions and their Requirements
|
|||||||
| Early Game | Faction Name | Requirements | Joining this Faction prevents |
|
| Early Game | Faction Name | Requirements | Joining this Faction prevents |
|
||||||
| Factions | | | you from joining: |
|
| Factions | | | you from joining: |
|
||||||
+ +----------------+-----------------------------------------+-------------------------------+
|
+ +----------------+-----------------------------------------+-------------------------------+
|
||||||
| | CyberSec | * Hack CSEC Manually | |
|
| | CyberSec | * Install a backdoor on the CSEC server | |
|
||||||
+ +----------------+-----------------------------------------+-------------------------------+
|
+ +----------------+-----------------------------------------+-------------------------------+
|
||||||
| | Tian Di Hui | * $1m | |
|
| | Tian Di Hui | * $1m | |
|
||||||
| | | * Hacking Level 50 | |
|
| | | * Hacking Level 50 | |
|
||||||
@@ -74,14 +74,17 @@ List of Factions and their Requirements
|
|||||||
| | | | * New Tokyo |
|
| | | | * New Tokyo |
|
||||||
| | | | * Ishima |
|
| | | | * Ishima |
|
||||||
+---------------------+----------------+-----------------------------------------+-------------------------------+
|
+---------------------+----------------+-----------------------------------------+-------------------------------+
|
||||||
| Hacking | NiteSec | * Hack avmnite-02h manually | |
|
| Hacking | NiteSec | * Install a backdoor on the avmnite-02h | |
|
||||||
| Groups | | * Home Computer RAM of at least 32GB | |
|
| Groups | | server | |
|
||||||
|
| | | | |
|
||||||
+ +----------------+-----------------------------------------+-------------------------------+
|
+ +----------------+-----------------------------------------+-------------------------------+
|
||||||
| | The Black Hand | * Hack I.I.I.I manually | |
|
| | The Black Hand | * Install a backdoor on the I.I.I.I | |
|
||||||
| | | * Home Computer RAM of at least 64GB | |
|
| | | server | |
|
||||||
|
| | | | |
|
||||||
+ +----------------+-----------------------------------------+-------------------------------+
|
+ +----------------+-----------------------------------------+-------------------------------+
|
||||||
| | Bitrunners | * Hack run4theh111z manually | |
|
| | Bitrunners | * Install a backdoor on the run4theh111z| |
|
||||||
| | | * Home Computer RAM of at least 128GB | |
|
| | | server | |
|
||||||
|
| | | | |
|
||||||
+---------------------+----------------+-----------------------------------------+-------------------------------+
|
+---------------------+----------------+-----------------------------------------+-------------------------------+
|
||||||
| Megacorporations | ECorp | * Have 200k reputation with | |
|
| Megacorporations | ECorp | * Have 200k reputation with | |
|
||||||
| | | the Corporation | |
|
| | | the Corporation | |
|
||||||
@@ -112,7 +115,8 @@ List of Factions and their Requirements
|
|||||||
+ +----------------+-----------------------------------------+-------------------------------+
|
+ +----------------+-----------------------------------------+-------------------------------+
|
||||||
| | Fulcrum Secret | * Have 250k reputation with | |
|
| | Fulcrum Secret | * Have 250k reputation with | |
|
||||||
| | Technologies | the Corporation | |
|
| | Technologies | the Corporation | |
|
||||||
| | | * Hack fulcrumassets manually | |
|
| | | * Install a backdoor on the | |
|
||||||
|
| | | fulcrumassets server | |
|
||||||
+---------------------+----------------+-----------------------------------------+-------------------------------+
|
+---------------------+----------------+-----------------------------------------+-------------------------------+
|
||||||
| Criminal | Slum Snakes | * All Combat Stats of 30 | |
|
| Criminal | Slum Snakes | * All Combat Stats of 30 | |
|
||||||
| Organizations | | * -9 Karma | |
|
| Organizations | | * -9 Karma | |
|
||||||
|
|||||||
@@ -14,29 +14,46 @@ these for money or for faction reputation. To try and infiltrate a company,
|
|||||||
visit a company through the 'World' menu. There will be an option that
|
visit a company through the 'World' menu. There will be an option that
|
||||||
says 'Infiltrate Company'.
|
says 'Infiltrate Company'.
|
||||||
|
|
||||||
When infiltrating a company, you must progress through clearance levels in
|
When infiltrating a company you will be presented with short active challenges.
|
||||||
the facility. Every clearance level has some form of security that
|
None of the challenges use the mouse.
|
||||||
you must get past. There are several forms of security, ranging from
|
|
||||||
high-tech security systems to armed guards. For each form of security,
|
|
||||||
there are a variety of options that you can choose to try and bypass
|
|
||||||
the security. Examples include hacking the security, engaging in combat,
|
|
||||||
assassination, or sneaking past the security. The chance to succeed for
|
|
||||||
each option is determined in part by your stats. So, for example,
|
|
||||||
trying to hack the security system relies on your hacking skill,
|
|
||||||
whereas trying to sneak past the security relies on your agility level.
|
|
||||||
|
|
||||||
The facility has a 'security level' that affects your chance of success
|
The difficulty at the top lowers with better combat stats. It is not recommended
|
||||||
when trying to get past a clearance level. Every time you advance to the
|
to attempt infiltrations above mid-normal.
|
||||||
next clearance level, the facility's security level will increase by a
|
|
||||||
fixed percentage. Furthermore the options you choose and whether you
|
|
||||||
succeed or fail will affect the security level as well. For example,
|
|
||||||
if you try to kill a security guard and fail, the security level will
|
|
||||||
increase by a lot. If you choose to sneak past security and succeed,
|
|
||||||
the security level will not increase at all.
|
|
||||||
|
|
||||||
Every 5 clearance levels, you will steal classified company secrets that
|
* Most use spacebar as "action"
|
||||||
can be sold for money or faction reputation. However, in order to sell
|
* Some use WASD or arrows interchangeably.
|
||||||
these secrets you must successfully escape the facility using the
|
* A few others use the rest of the keyboard.
|
||||||
'Escape' option. Furthermore, companies have a max clearance level.
|
|
||||||
If you reach the max clearance level you will automatically escape the
|
** Slash when his guard is down! **
|
||||||
facility with all of your stolen secrets.
|
|
||||||
|
Press space when the guard is attacking you.
|
||||||
|
|
||||||
|
** Close the brackets **
|
||||||
|
|
||||||
|
Enter all the matching brackets in reverse order.
|
||||||
|
|
||||||
|
** Type it backward **
|
||||||
|
|
||||||
|
Type the words that are written backward.
|
||||||
|
|
||||||
|
** Say something nice about the guard. **
|
||||||
|
|
||||||
|
Use the arrows to find a compliment for the guard.
|
||||||
|
|
||||||
|
** Enter the Code! **
|
||||||
|
|
||||||
|
Match the arrows as they appears.
|
||||||
|
|
||||||
|
** Match the symbols! **
|
||||||
|
|
||||||
|
Move the cursor to the matching symbol and press space to confirm.
|
||||||
|
|
||||||
|
** Remember all the mines! **
|
||||||
|
|
||||||
|
At first the cursor cannot be moved, remember the positions of the X.
|
||||||
|
Then move the cursor and press space to mark the mines on the board.
|
||||||
|
|
||||||
|
** Cut the wires **
|
||||||
|
|
||||||
|
Follow the instructions and press the numbers 1 through 9 to cut the appropriate
|
||||||
|
wires.
|
||||||
@@ -124,6 +124,6 @@ Gain experience by:
|
|||||||
|
|
||||||
* Committing certain crimes
|
* Committing certain crimes
|
||||||
* Infiltration
|
* Infiltration
|
||||||
* Working out at a gym
|
* Studying at a university
|
||||||
* Working a relevant job at a company
|
* Working a relevant job at a company
|
||||||
* Doing Field work for a Faction
|
* Doing Field work for a Faction
|
||||||
|
|||||||
@@ -148,6 +148,14 @@ has root access, what ports are opened/closed, and also hacking-related informat
|
|||||||
such as an estimated chance to successfully hack, an estimate of how much money is
|
such as an estimated chance to successfully hack, an estimate of how much money is
|
||||||
available on the server, etc.
|
available on the server, etc.
|
||||||
|
|
||||||
|
backdoor
|
||||||
|
^^^^^^^^
|
||||||
|
|
||||||
|
Installs a backdoor on the current server. Root access is required to do this.
|
||||||
|
|
||||||
|
Servers will give different bonuses when you install a backdoor.
|
||||||
|
This can pass faction tests or give bonsues such as discounts from companies.
|
||||||
|
|
||||||
buy
|
buy
|
||||||
^^^
|
^^^
|
||||||
|
|
||||||
|
|||||||
+934
-12
@@ -3,39 +3,959 @@
|
|||||||
Changelog
|
Changelog
|
||||||
=========
|
=========
|
||||||
|
|
||||||
|
v0.55.0 - 2021-09-20 Material UI (hydroflame & community)
|
||||||
|
-------------------------------------------
|
||||||
|
|
||||||
|
** Global **
|
||||||
|
|
||||||
|
* The game is now 100% in typescript, react, and Material-UI
|
||||||
|
|
||||||
|
** Misc. **
|
||||||
|
|
||||||
|
* Corporations can no longer bribe special factions
|
||||||
|
* Infiltration can no longer lose focus of the keyboard.
|
||||||
|
* Fix terminal line limit
|
||||||
|
* Added theme editor
|
||||||
|
* Theme applies on game load (@Nolshine)
|
||||||
|
* Sleeves no longer consume all bonus time for some actions
|
||||||
|
* Fix a bug where the autocomlete list would get duplicates
|
||||||
|
* Fix tutorial not scaling properly on small screens
|
||||||
|
* Import should be more consistent
|
||||||
|
* Typo with 'help' command
|
||||||
|
* Fix infinite loop in casino
|
||||||
|
* nerf noodle bar
|
||||||
|
|
||||||
|
v0.54.0 - 2021-09-20 One big react node (hydroflame & community)
|
||||||
|
-------------------------------------------
|
||||||
|
|
||||||
|
** UI **
|
||||||
|
|
||||||
|
* The UI is now completely(ish) in react and I'm starting to implement
|
||||||
|
Material-UI everywhere. This will help make the game feel more consistent.
|
||||||
|
* Major help from (@threehams)
|
||||||
|
* New Terminal
|
||||||
|
* New Active Scripts page
|
||||||
|
* New sidebar.
|
||||||
|
* New Character overview
|
||||||
|
* New tutorial
|
||||||
|
* New options page
|
||||||
|
* New create program page (@Nolshine)
|
||||||
|
|
||||||
|
** Netscript **
|
||||||
|
|
||||||
|
* Add companyName to getPlayer
|
||||||
|
|
||||||
|
** Factions **
|
||||||
|
|
||||||
|
* Megacorp factions are no longer removed when installing.
|
||||||
|
|
||||||
|
** Corporation **
|
||||||
|
|
||||||
|
* All research tooltips are always visible.
|
||||||
|
* Smart supply is enabled by default if purchased (@Nolshine)
|
||||||
|
|
||||||
|
** Misc. **
|
||||||
|
|
||||||
|
* Fix "Game saved" animation. (@Nolshine)
|
||||||
|
* Update commitCrime documentation (@Tryneus)
|
||||||
|
* Fix logbox scrolling weird (@Nolshine)
|
||||||
|
* Fix weird scrolling in corporations (@BartKoppelmans)
|
||||||
|
* Fix typo (@BartKoppelmans & @Nolshine)
|
||||||
|
* Delete game now has a confirmation modal (@Nolshine)
|
||||||
|
* Fix issue where skills would not get properly updated when entering new
|
||||||
|
BN. (@Nolshine)
|
||||||
|
* Convert create gang to popup (@vmesecher)
|
||||||
|
* Fixed a bug that prevented travel to Sector-12 and New Tokyo when not using
|
||||||
|
ASCII art.
|
||||||
|
* nerf noodle bar
|
||||||
|
|
||||||
|
v0.53.0 - 2021-09-09 Way too many things. (hydroflame & community)
|
||||||
|
-------------------------------------------
|
||||||
|
|
||||||
|
** Dev? **
|
||||||
|
|
||||||
|
* The entire codebase has been run through a code prettifier, hurray for consistency. (@threehams)
|
||||||
|
* Lots of test. (@threehams)
|
||||||
|
* Massive improvements to build speed. (@threehams)
|
||||||
|
* Dev notes: This won't affect any players but is immensely useful for me.
|
||||||
|
|
||||||
|
** Hacknet **
|
||||||
|
|
||||||
|
* Converted to ts/react
|
||||||
|
|
||||||
|
** Resleeving **
|
||||||
|
|
||||||
|
* Converted to ts/react
|
||||||
|
|
||||||
|
** Sleeves **
|
||||||
|
|
||||||
|
* Converted to ts/react. The ui should also have a better feel.
|
||||||
|
* Fixed a bug that allowed players to recover shock much faster than intended.
|
||||||
|
|
||||||
|
** BN10 **
|
||||||
|
|
||||||
|
* You have access to Sleeves right away
|
||||||
|
* In BN10 Sleeves start with 75 shock and 25 sync.
|
||||||
|
|
||||||
|
** MathJax **
|
||||||
|
|
||||||
|
* Several tooltips have been updated to display the relevant formula in Mathjax, e.g. Favor and reputation
|
||||||
|
|
||||||
|
** Corporation **
|
||||||
|
|
||||||
|
* Completely rewritten in React. Paving the way for bigger change.
|
||||||
|
* Smart Supply is now smarter and won't deadlock the warehouse. It is also more configurable.
|
||||||
|
* Several UI fixes.
|
||||||
|
|
||||||
|
** Bladeburner **
|
||||||
|
|
||||||
|
* Action count is no longer decided when joining the Bladeburners. Experiences for all players should be more similar.
|
||||||
|
|
||||||
|
** Factions **
|
||||||
|
|
||||||
|
* No factions have home computer ram requirement. This caused some confusion for new players.
|
||||||
|
|
||||||
|
** Gang **
|
||||||
|
|
||||||
|
* Made it clear when there's a new equipment coming up.
|
||||||
|
|
||||||
|
** Netscript **
|
||||||
|
|
||||||
|
* getActionCountRemaining now returns Infinity for bladeburner general actions. (@brubsy)
|
||||||
|
* getActionEstimatedSuccessChance now returns 100% for Diplomacy and Hyperbolic Regeneration Chamber. (@brubsy)
|
||||||
|
* disableLog('ALL') now disables all logs individually, meaning you can re-enable the ones you want after. (@Cass)
|
||||||
|
* getPlayer returns numPeopleKilled.
|
||||||
|
* Dynamic RAM calculation errors have a better error message.
|
||||||
|
* Hide some functions from autocomplete.
|
||||||
|
* Added getAugmentationPrice, getAugmentationRepReq, deprecated getAugmentationCost. (@TempFound)
|
||||||
|
* Fixed bug where some crime API would return "assassinate" when that's not accepted in other functions.
|
||||||
|
|
||||||
|
** Coding Contract **
|
||||||
|
|
||||||
|
* Spiralize Matrix is easier to read.
|
||||||
|
|
||||||
|
** Misc. **
|
||||||
|
|
||||||
|
* The world map is now used in sleeve travel and bladeburner travel.
|
||||||
|
* noselect a bunch of stuff.
|
||||||
|
* Ascii maps letters are more contrasting
|
||||||
|
* Updated documentation for infiltration.
|
||||||
|
* Most money costs in the game will turn grey/cyan when you don't have enough money.
|
||||||
|
* Donation textbox has better look & feel.
|
||||||
|
* Tech vendors ram & cores buttons have better look and feels.
|
||||||
|
* cores cost modified to be a formula instead of a semi-random array of numbers.
|
||||||
|
* Tech vendors now give a hint about where to get bigger servers.
|
||||||
|
* logboxes now displays whitespaces exactly. (@Cass)
|
||||||
|
* nerf noodle bar
|
||||||
|
|
||||||
|
v0.52.9 - 2021-08-27 Less lag! (hydroflame & community)
|
||||||
|
-------------------------------------------
|
||||||
|
|
||||||
|
** Active Scripts page **
|
||||||
|
|
||||||
|
* Now less laggy, has pagination.
|
||||||
|
|
||||||
|
** File diagnostic **
|
||||||
|
|
||||||
|
* Added a popup found under options that shows the files you own and how
|
||||||
|
large they are. This help find bugs and leftover massive logs files.
|
||||||
|
|
||||||
|
** Corporation **
|
||||||
|
|
||||||
|
* Added safeguard against a very specific bug that causes NaN money. I'm
|
||||||
|
still not sure what the root cause is but it should prevent corp from
|
||||||
|
breaking.
|
||||||
|
|
||||||
|
** Netscript **
|
||||||
|
|
||||||
|
* tprintf is a new function that doesn't print the filename.
|
||||||
|
|
||||||
|
** Misc. **
|
||||||
|
|
||||||
|
* Infiltration kills you if you try to automate it. (@threehams)
|
||||||
|
* Fix beautify button not working
|
||||||
|
* Added bladeburner_analysis_mult to getPlayer() (@brubsby)
|
||||||
|
* Fixed joining bladeburner via netscript functions. (@omuretsu)
|
||||||
|
* All bladeburner actions are click-to-copy
|
||||||
|
* nerf noodle bar
|
||||||
|
|
||||||
|
v0.52.8 - 2021-08-23 Fixing the previous patch tbh ROUND 2 (hydroflame)
|
||||||
|
-------------------------------------------
|
||||||
|
|
||||||
|
** Script editor **
|
||||||
|
|
||||||
|
* Correctly reloads old script when clicking "Script Editor"
|
||||||
|
* No longer jumps to the end of the text for no reason.
|
||||||
|
|
||||||
|
** Hash upgrades **
|
||||||
|
|
||||||
|
* Fixed an issue where the default option would say ecorp but was really
|
||||||
|
foodnstuff
|
||||||
|
|
||||||
|
** Misc. **
|
||||||
|
|
||||||
|
* The "Delete all active script" button under the options has a clearer
|
||||||
|
description.
|
||||||
|
* Removed some debug console.log
|
||||||
|
* nerf noodle bar
|
||||||
|
|
||||||
|
v0.52.7 - 2021-08-21 Fixing the previous patch tbh (hydroflame)
|
||||||
|
-------------------------------------------
|
||||||
|
|
||||||
|
** Netscript **
|
||||||
|
|
||||||
|
* API BREAKING CHANGE: getActionEstimatedSuccessChance now returns a pair of
|
||||||
|
value to reflect the UI changes. I'm very sorry.
|
||||||
|
|
||||||
|
** Bladeburner **
|
||||||
|
|
||||||
|
* General actions now display time required.
|
||||||
|
* Recruitment now displays success chance.
|
||||||
|
* All other success chance now display a range instead of a single value
|
||||||
|
The real value is guaranteed to be within that range.
|
||||||
|
|
||||||
|
** Misc. **
|
||||||
|
|
||||||
|
* Fix tutorial not working after Monaco upate
|
||||||
|
* Fix logbox logs not taking up the whole logbox
|
||||||
|
* Fix script editor shortcut (ctrl+b)
|
||||||
|
* Fix Corporation popup appearing in the wrong order, hiding one of them
|
||||||
|
* Fix error when loading Corp
|
||||||
|
* Fix logbox dragging (smoother now)
|
||||||
|
* Fix logbox name collision
|
||||||
|
* Fix logbox allowing to open the same box multiple times
|
||||||
|
* Fix netscript write.
|
||||||
|
* nerf noodle bar
|
||||||
|
|
||||||
|
v0.52.6 - 2021-08-21 Logboxes and VS-code (hydroflame)
|
||||||
|
-------------------------------------------
|
||||||
|
|
||||||
|
** Text Editor **
|
||||||
|
|
||||||
|
* Ace and Codemirror have been removed in favor of monaco (web version of
|
||||||
|
vs-code). The options are a bit lackluster but more will be added as
|
||||||
|
feedback comes.
|
||||||
|
|
||||||
|
** Log boxes **
|
||||||
|
|
||||||
|
* Multiple log boxes can be opened at once. They can be moved around the
|
||||||
|
screen. (but the movement behavior is a bit weird.)
|
||||||
|
|
||||||
|
** Misc. **
|
||||||
|
|
||||||
|
* Job promotion now correctly updates the UI.
|
||||||
|
* Milestones now call the faction CyberSec instead of CSEC
|
||||||
|
* Can no longer create file that break the filesystem.
|
||||||
|
* Remove dollar sign in blade contract UI element
|
||||||
|
* nerf noodle bar
|
||||||
|
|
||||||
|
v0.52.5 - 2021-08-19 CPU cores are useful!? (hydroflame)
|
||||||
|
-------------------------------------------
|
||||||
|
|
||||||
|
** Terminal **
|
||||||
|
|
||||||
|
* When executing 'run SCRIPT' any script can now add '--tail' to
|
||||||
|
automatically bring up the logs.
|
||||||
|
|
||||||
|
** Netscript **
|
||||||
|
|
||||||
|
* The 'flags' function now works with single letter flags but they only take
|
||||||
|
one dash.
|
||||||
|
* Fix several broken bladeburner netscript functions.
|
||||||
|
* Fix gang.getMemberInformation returning inconsistent data after the gang
|
||||||
|
rework.
|
||||||
|
|
||||||
|
** CPU Cores **
|
||||||
|
|
||||||
|
* CPU Cores on the home computer now provide a bonus to grow() money gain
|
||||||
|
and makes weaken lower more security. Only for scripts running on 'home'
|
||||||
|
|
||||||
|
** Misc. **
|
||||||
|
|
||||||
|
* Fix weird scrolling in the new Bladeburner React console.
|
||||||
|
* nerf noodle bar
|
||||||
|
|
||||||
|
v0.52.4 - 2021-08-19 Bladeburner in React (hydroflame)
|
||||||
|
-------------------------------------------
|
||||||
|
|
||||||
|
** Bladeburner **
|
||||||
|
|
||||||
|
* The entire UI was rebuild in React. It should be more responsive
|
||||||
|
|
||||||
|
** Hacknet **
|
||||||
|
|
||||||
|
* Displays how many time each hash upgrade was bought.
|
||||||
|
* Displays cummulative effect of the upgrade.
|
||||||
|
* Removed "Close" button from hash upgrade menu.
|
||||||
|
|
||||||
|
** Misc. **
|
||||||
|
|
||||||
|
* More popup/modals have dark background, can be dismissed by clicking
|
||||||
|
outside, or by pressing escape.
|
||||||
|
* Small reword in the guide.
|
||||||
|
* Fix several typos in the bladeburner documentation.
|
||||||
|
* Linting (no one cares except the dev)
|
||||||
|
* nerf noodle bar
|
||||||
|
|
||||||
|
v0.52.3 - 2021-08-15 Gangs were OP (hydroflame)
|
||||||
|
-------------------------------------------
|
||||||
|
|
||||||
|
** Gang **
|
||||||
|
|
||||||
|
* Significant rework. Ascension is now based on exp gained.
|
||||||
|
* All upgrades give exp bonuses.
|
||||||
|
* Maximum gang members reduced to 12.
|
||||||
|
* Respect required to recruit sharply increased.
|
||||||
|
* Rewritten in React, the UI should be smoother and less laggy now.
|
||||||
|
|
||||||
|
** Infiltration **
|
||||||
|
|
||||||
|
* Now isTrusted protected.
|
||||||
|
|
||||||
|
** Misc. **
|
||||||
|
|
||||||
|
* Many UI element are now "noselect" protected.
|
||||||
|
* Fixed an issue where you could join the same faction twice via script and
|
||||||
|
UI simultaneously.
|
||||||
|
* Factions list screen converted to React.
|
||||||
|
* nerf noodle bar
|
||||||
|
|
||||||
|
v0.52.2 - 2021-08-15 Oh yeah, BN11 is a thing (drunk hydroflame tbh)
|
||||||
|
-------------------------------------------
|
||||||
|
|
||||||
|
** Source-Files **
|
||||||
|
|
||||||
|
* Source-File 11 now also provides a small reduction to the price increase
|
||||||
|
multiplier.
|
||||||
|
|
||||||
|
** Augmentations **
|
||||||
|
|
||||||
|
* New Augmentation offered by Aevum, themed around 777 and offers some basic
|
||||||
|
programs.
|
||||||
|
* Augmentation descriptions are now more concise and consistent.
|
||||||
|
|
||||||
|
** Misc. **
|
||||||
|
|
||||||
|
* nerf noodle bar
|
||||||
|
|
||||||
|
v0.52.1 - 2021-08-10 bugfixing (hydroflame & community)
|
||||||
|
-------------------------------------------
|
||||||
|
|
||||||
|
**Misc.**
|
||||||
|
|
||||||
|
* Fix game crash/corruption when quitting a job while working for it unfocused.
|
||||||
|
* Fix typo in corporation Market Data.
|
||||||
|
* Fix typo in docs for hackPercent.
|
||||||
|
* The tutorial encourages the players to connect to home before creating `n00dles.script`
|
||||||
|
* The dark web `buy` command now accepts `-1` (one) and `--list` instead of just
|
||||||
|
`-l`. Helps some confused players.
|
||||||
|
* Character overview screen no longer hidden on the corporation screen.
|
||||||
|
* Infiltration difficulty display is now more explicit (It's a big arrow instead
|
||||||
|
of just one word.)
|
||||||
|
* Fix wrong ram value in tutorial. (@MageKing17)
|
||||||
|
* Plenty of augmentation description cleanup (@Kwazygloo)
|
||||||
|
* Plenty of typo/description fixed (@MageKing17)
|
||||||
|
* Cleanup description of singularity function on readthedocs (@PurePandemonium)
|
||||||
|
* Fix bug when autolinking a server while backdooring (@schroederIT)
|
||||||
|
* nerf noodle bar
|
||||||
|
|
||||||
|
v0.52.0 - 2021-06-13 Infiltration 2.0 (hydroflame & community)
|
||||||
|
--------------------------------------------------------------
|
||||||
|
|
||||||
|
**Infiltration**
|
||||||
|
|
||||||
|
* Completely reworked. Not the same mechanic at all.
|
||||||
|
|
||||||
|
**Terminal**
|
||||||
|
|
||||||
|
* tail is smarter. It automatically assume the only possible options in some
|
||||||
|
cases.
|
||||||
|
|
||||||
|
**Intelligence**
|
||||||
|
|
||||||
|
* Now available when starting BN5 instead of after beating it for the first
|
||||||
|
time.
|
||||||
|
* Nerf the effect of intelligence on reputation gain.
|
||||||
|
|
||||||
|
**Augmentation**
|
||||||
|
|
||||||
|
* Added a new augmentation, the 'Unstable Circadian Modulator', whose
|
||||||
|
gimmick is that its stats are randomized every hour.
|
||||||
|
|
||||||
|
**Netscript**
|
||||||
|
|
||||||
|
* 'getPlayer' is not a singularity function anymore.
|
||||||
|
* 'hacknetNodes.constants' returns the correct values.
|
||||||
|
* 'createGang' has been added.
|
||||||
|
* 'inGang' has been added.
|
||||||
|
|
||||||
|
**Tutorial**
|
||||||
|
|
||||||
|
* Updated the tutorial. Made it look cleaner, fixed typos, etc.
|
||||||
|
|
||||||
|
**Misc.**
|
||||||
|
|
||||||
|
* Fix many typos in literature (@kwazygloo)
|
||||||
|
* Fix being able to unfocus from gym and university.
|
||||||
|
* Fix being able to do hacking missions while unfocused.
|
||||||
|
* Fix many typos in Augmentation descriptions (@kwazygloo)
|
||||||
|
* More numbers handle absurdly large values. (@Tesseract1234567890)
|
||||||
|
* Fix many typos (@Tesseract1234567890)
|
||||||
|
* Fixed an issue that caused a UI desync when sleeves were set to workout
|
||||||
|
stats other than strength at the gym.
|
||||||
|
* Fix weird alignment of donation text box and button. (@Tesseract1234567890)
|
||||||
|
* Fixed an issue where reputation could be transfered to new jobs when unfocused.
|
||||||
|
* Empty stack traces should no longer appear.
|
||||||
|
* Purchasing anything with Infinity money doesn't result in NaN.
|
||||||
|
* nerf noodle bar
|
||||||
|
|
||||||
|
v0.51.10 - 2021-05-31 Focus Mark, Focus! (hydroflame)
|
||||||
|
-----------------------------------------------------
|
||||||
|
|
||||||
|
**Focus**
|
||||||
|
|
||||||
|
* You can now use the terminal and write scripts while working for factions
|
||||||
|
but you will gain reputation at a slower rate.
|
||||||
|
|
||||||
|
**SF -1**
|
||||||
|
|
||||||
|
* Added a new SF -1: Bypass
|
||||||
|
|
||||||
|
**Gang**
|
||||||
|
|
||||||
|
* "Vigilante justice"/"Ethical hacking" now reduces wanted level by a very
|
||||||
|
small percentage as well an absolute value.
|
||||||
|
|
||||||
|
**Netscript**
|
||||||
|
|
||||||
|
* 'tFormat' now has a second argument to display with millisecond precision.
|
||||||
|
* 'purchaseSleeveAug' can no longer purchase the same aug over and over for
|
||||||
|
the same sleeve.
|
||||||
|
* fix typo in logging for 'getServerSecurityLevel'
|
||||||
|
* Fixed some weird issue where very rarely you would get 0 exp from 'grow'
|
||||||
|
* 'getActionTime' now returns correct values for Diplomacy and Regeneration.
|
||||||
|
|
||||||
|
**Corporations**
|
||||||
|
|
||||||
|
* Fixed an exploit where you could get nearly infinite corporation funds by
|
||||||
|
entering negative numbers in textboxes.
|
||||||
|
* Fixed an exploit where shares could be sold again by clicking the
|
||||||
|
"sell share" button via scripts.
|
||||||
|
|
||||||
|
**Documentation**
|
||||||
|
|
||||||
|
* typo fix in purchaseTor
|
||||||
|
* typo fix in basicgameplay/stats
|
||||||
|
|
||||||
|
**Misc.**
|
||||||
|
|
||||||
|
* Very large number will no longer appear as "$NaNt"
|
||||||
|
* Hash capacity now displays in the "big number" format.
|
||||||
|
* nerf noodle bar
|
||||||
|
|
||||||
|
v0.51.9 - 2021-05-17 offline progress and exports! (hydroflame & community)
|
||||||
|
---------------------------------------------------------------
|
||||||
|
|
||||||
|
**Alias**
|
||||||
|
|
||||||
|
* several commands can be included in 1 alias. Recursive alias now work to
|
||||||
|
a depth of 10. (@Dawe)
|
||||||
|
|
||||||
|
**Offline**
|
||||||
|
|
||||||
|
* Offline money gain has been reworked (it is more generous)
|
||||||
|
* If you're not working anywhere and go offline the game will work for you
|
||||||
|
at all your factions evenly.
|
||||||
|
|
||||||
|
**Export**
|
||||||
|
|
||||||
|
* Exporting now gives +1 favor to all joined factions every 24h.
|
||||||
|
|
||||||
|
**Corp**
|
||||||
|
|
||||||
|
* Self-fund with an invalid name no longer takes away 150b anyway.
|
||||||
|
* Can no longer export negative amount
|
||||||
|
|
||||||
|
**Bladeburner**
|
||||||
|
|
||||||
|
* No longer waste overflowing time.
|
||||||
|
|
||||||
|
**Text Editors**
|
||||||
|
|
||||||
|
* All settings will now be saved and loaded correctly.
|
||||||
|
|
||||||
|
**Terminal**
|
||||||
|
|
||||||
|
* 'scan' now works for servers that are more than 21 character long.
|
||||||
|
|
||||||
|
**Misc.**
|
||||||
|
|
||||||
|
* ls now correctly lists all files.
|
||||||
|
* importing auto save+reloads (@Dawe)
|
||||||
|
* Fix a bug where .fconf could not be created
|
||||||
|
* Fix formatting inconsistencies for some logs of netscript functions.
|
||||||
|
* Fix a bug where Cashroot starter kit would appear as [object Object] in
|
||||||
|
confirmation dialog.
|
||||||
|
* Fix some ram not displayed as 0.00GB
|
||||||
|
* Fix error message throw undefined variable error
|
||||||
|
* City hall now has some generic text if you can't create a corp yet.
|
||||||
|
* Deleting a file without extension now returns an appropriate error message.
|
||||||
|
* Fixed an issue where bladeburner would miscalculate the cost of hospitalization.
|
||||||
|
* It is now possible to suppress bladeburner "action stopped" popup.
|
||||||
|
* Updated several dependencies (big who cares, I know)
|
||||||
|
* ls no longer prints lingering newline.
|
||||||
|
* Money earned/spent by sleeves is now tracked under Character>Money
|
||||||
|
* nerf noodle bar
|
||||||
|
|
||||||
|
|
||||||
|
v0.51.8 - 2021-05-07 It was there all along (hydroflame & community)
|
||||||
|
--------------------------------------------------------
|
||||||
|
|
||||||
|
**Servers**
|
||||||
|
|
||||||
|
* Update n00dles metadata
|
||||||
|
|
||||||
|
**Netscript**
|
||||||
|
|
||||||
|
* 'hashGainRate' use the correct 'usedRam' and 'maxRam'
|
||||||
|
* Fix 'setActionAutolevel' logging.
|
||||||
|
* Fix 'setActionLevel' not working at all.
|
||||||
|
* Add 'installBackdoor' singularity function.
|
||||||
|
|
||||||
|
**Hacknet**
|
||||||
|
|
||||||
|
* Fix Hacknet Servers total production always displaying 0
|
||||||
|
|
||||||
|
**Documentation**
|
||||||
|
|
||||||
|
* Updated guide to no longer recommend BN12.
|
||||||
|
* Fix documentation for maxNumNodes (@ModdedGamers)
|
||||||
|
* Fix typo in 'sourcefiles.rst'
|
||||||
|
* Fix typo in 'recommendedbitnodeorder.rst'
|
||||||
|
* Fix 'getServer' documentation missing 'server' argument.
|
||||||
|
* Fix missing ram cost in 'getData.rst'
|
||||||
|
* Fix basic formulas examples.
|
||||||
|
* Fix typo in BN11 description.
|
||||||
|
* Fix formatting issue in Bladeburner (@Pimgd)
|
||||||
|
|
||||||
|
**Misc.**
|
||||||
|
|
||||||
|
* Fix negative money being displayed in full.
|
||||||
|
* Fix Hacking Missions not working.
|
||||||
|
* Fix Corporation tree not rendering.
|
||||||
|
* Fix script being needlessly recompiled. This should save real ram (not game ram)
|
||||||
|
* w0r1d_d43m0n can be backdoored
|
||||||
|
* Coding Contracts title is click-to-copy (@Rodeth)
|
||||||
|
* Covenant memory upgrade works better.
|
||||||
|
* Fix Neuroflux not being correctly calculated when entering BN with SF12.
|
||||||
|
* Delete Active Script now delete all active scripts, not just home.
|
||||||
|
* Now you can 'cd' in directories that only contain '.txt' files.
|
||||||
|
* Fix 'analyze' always saying players had root access
|
||||||
|
* Passive faction rep no longer builds for special factions.
|
||||||
|
* Donation option no longer appears for special factions.
|
||||||
|
* Rephrased some milestones.
|
||||||
|
* donation textbox now accepts money in the format '1b' and the like (@Dawe)
|
||||||
|
* Fix being able to join hated factions simultaneously. (@Dawe)
|
||||||
|
* 'ls' now displays files in multiple column. (Helps players with many files)
|
||||||
|
* Bladeburner multiplers now appear under Character>Stats and
|
||||||
|
Character>Augmentation when they are relevant.
|
||||||
|
* Fix missing functions syntax highlight in codemirror.
|
||||||
|
* Fix infiltration number formatting.
|
||||||
|
* script income transfers to parent on death. This helps keep track of
|
||||||
|
income for scripts that spawn short lived scripts.
|
||||||
|
* nerf noodle bar
|
||||||
|
|
||||||
|
v0.51.7 - 2021-04-28 n00dles (hydroflame & community)
|
||||||
|
-----------------------------------------
|
||||||
|
|
||||||
|
**Tutorial servers**
|
||||||
|
|
||||||
|
* All the tutorial servers have been reverted to their original value
|
||||||
|
* The new server n00dles has been added as tutorial server.
|
||||||
|
|
||||||
|
**Terminal**
|
||||||
|
|
||||||
|
* 'tail' now accepts Pid.
|
||||||
|
* 'analyze' now handles Hacknet Servers correctly.
|
||||||
|
* 'ServerProfiler.exe' now handles Hacknet Servers correctly.
|
||||||
|
|
||||||
|
**SF12**
|
||||||
|
|
||||||
|
* Now makes you start with Neuroflux Governor equal to the level of the SF.
|
||||||
|
|
||||||
|
**Netscript**
|
||||||
|
|
||||||
|
* Deprecated 'getServerRam'.
|
||||||
|
* 'getServerMaxRam' added to replace 'getServerRam'
|
||||||
|
* 'getServerUsedRam' added to replace 'getServerRam'
|
||||||
|
* 'getBitnodeMultipliers' is available inside BN5
|
||||||
|
* Time logged by hack/grow/weaken now displays in human time.
|
||||||
|
* thread count logged by hack/grow/weaken now displays with commas every
|
||||||
|
thousands place.
|
||||||
|
|
||||||
|
**Donation**
|
||||||
|
|
||||||
|
* Always visible but locked until favor requirements are reached.
|
||||||
|
|
||||||
|
**Augmentations**
|
||||||
|
|
||||||
|
* City factions has been rebalanced to give a reason to visit them all.
|
||||||
|
|
||||||
|
**Sleeves**
|
||||||
|
|
||||||
|
* Fix sleeves not being able to work at Volhavens gym.
|
||||||
|
|
||||||
|
**Lint**
|
||||||
|
|
||||||
|
* This shouldn't change anything but was like 10h of work. So I'm logging it.
|
||||||
|
|
||||||
|
**Misc.**
|
||||||
|
|
||||||
|
* Plethora of typo fixed (@Pimgd)
|
||||||
|
* ps documentation fix (@Dawe)
|
||||||
|
* The dev menu now has a quick bitflume option.
|
||||||
|
* Fix SF -1 not being as powerful as intended.
|
||||||
|
* Fix cashroot starter kit not displaying correctly.
|
||||||
|
* Fix DOM element 'character-overview-text' being nested twice.
|
||||||
|
* Hacknet documentation example fix.
|
||||||
|
* Money amount under 1000 dont display 3 decimal anymore.
|
||||||
|
* Fix nextSourceFile flag miscalculation on the bitverse (for Bn12)
|
||||||
|
* Faction invite text says "Decide later"/"Join!" instead of "No"/"Yes"
|
||||||
|
* nerf noodle bar
|
||||||
|
|
||||||
|
|
||||||
|
v0.51.6 - 2021-04-28 Backdoor! (hydroflame & community)
|
||||||
|
------------------------------------------
|
||||||
|
|
||||||
|
**Backdoor**
|
||||||
|
|
||||||
|
* a new terminal command, backdoor, has been added to help differentiate
|
||||||
|
between the terminal hack command and the netscript hack function. (@dewint)
|
||||||
|
|
||||||
|
**Servers**
|
||||||
|
|
||||||
|
* foodnstuff, sigma-cosmetics, and joesguns have been rebalanced to help new players.
|
||||||
|
|
||||||
|
**Milestones**
|
||||||
|
|
||||||
|
* A new tab under the Help menu has been added to guide players through the
|
||||||
|
game.
|
||||||
|
|
||||||
|
**Casino**
|
||||||
|
|
||||||
|
* Blackjack has been added (@BigD)
|
||||||
|
|
||||||
|
**Netscript**
|
||||||
|
|
||||||
|
* 'prompt' now converts input to JSON.
|
||||||
|
* 'getRunningScript' is a new netscript function that returns a bunch of
|
||||||
|
data related to a running script.
|
||||||
|
|
||||||
|
**Coding contracts**
|
||||||
|
|
||||||
|
* trivial puzzles should no longer appear.
|
||||||
|
|
||||||
|
**Infiltration**
|
||||||
|
|
||||||
|
* All numbers are formatted like the rest of the game.
|
||||||
|
|
||||||
|
**Misc.**
|
||||||
|
|
||||||
|
* Server security is capped at 100.
|
||||||
|
* Added option to quit a job.
|
||||||
|
* 'cd' no longer works on unexistent folders.
|
||||||
|
* cd with no arguments brings you back to top level folder (@Andreas)
|
||||||
|
* 'softReset' documentation udpated.
|
||||||
|
* Money tracker now accounts for going to the hospital manually.
|
||||||
|
* codemirror is now the default editor (for new save files)
|
||||||
|
* fix typo in dark web help text (@Rodeth)
|
||||||
|
* so many documentation and typos fixes (@Pimgd)
|
||||||
|
* A corruption visual effect has been added to location with servers that
|
||||||
|
have backdoor installed. (@dewint)
|
||||||
|
* nerf noodle bar
|
||||||
|
|
||||||
|
|
||||||
|
v0.51.5 - 2021-04-20 Flags! (hydroflame)
|
||||||
|
----------------------------------------
|
||||||
|
|
||||||
|
**Netscript**
|
||||||
|
|
||||||
|
* 'flags' is a new function that helps script handle flags.
|
||||||
|
This is subject to change if it doesn't meet the need of the players.
|
||||||
|
* 'ps' now returns the pid.
|
||||||
|
* 'tail' now works with pid as first argument.
|
||||||
|
* 'tail' hostname defaults to current server. (like the documentation says)
|
||||||
|
* 'isRunning' hostname defaults to current server.
|
||||||
|
* 'isRunning' now works with pid as first argument.
|
||||||
|
|
||||||
|
**Gang**
|
||||||
|
|
||||||
|
* Nerfed ascension mechanic once again :(
|
||||||
|
|
||||||
|
**Misc.**
|
||||||
|
|
||||||
|
* Souce-File typo fix
|
||||||
|
* Fix 'while you were away' screen.
|
||||||
|
* Bladeburner team size can no longer be set to negative amounts.
|
||||||
|
* nerf noodle bar
|
||||||
|
|
||||||
|
v0.51.4 - 2021-04-19 Manual hacking is fun (hydroflame)
|
||||||
|
-------------------------------------------------------
|
||||||
|
|
||||||
|
**Manual hacking**
|
||||||
|
|
||||||
|
* These bonus require an install or a soft reset to take effect.
|
||||||
|
* Manual hacking gyms and university gives you a 10% discount.
|
||||||
|
* Manual hacking a corporation server decreases the penalty for leaving work
|
||||||
|
early.
|
||||||
|
|
||||||
|
**BladeBurner**
|
||||||
|
|
||||||
|
* nerfed int exp gained.
|
||||||
|
|
||||||
|
**Documentation**
|
||||||
|
|
||||||
|
* purchaseServer specifies what happens on failure.
|
||||||
|
* Fixed typo in recommended bitnode page.
|
||||||
|
* Removed misleading ram requirements for hacking factions.
|
||||||
|
|
||||||
|
**Netscript**
|
||||||
|
|
||||||
|
* growthAnalyze handles Infinity correctly.
|
||||||
|
|
||||||
|
**Misc.**
|
||||||
|
|
||||||
|
* Faction Augmentation will list how much reputation is required even after
|
||||||
|
that goal has been reached.
|
||||||
|
* Removed dollar sign in travel agency confirmation dialog box.
|
||||||
|
* Fixed typo in alpha-omega.lit
|
||||||
|
* the 'Game saved!' text no longer blocks the save game/options button.
|
||||||
|
* The text editor now remembers the location of your cursor and restores it.
|
||||||
|
* skills are recalculated instantly.
|
||||||
|
* Fix typo in Operation Zero description.
|
||||||
|
* nerf noodle bar
|
||||||
|
|
||||||
|
v0.51.3 - 2021-04-16 Y'all broke it on the first day (hydroflame)
|
||||||
|
-----------------------------------------------------------------
|
||||||
|
|
||||||
|
**Passive faction reputation**
|
||||||
|
|
||||||
|
* Reworked, from 1 rep / 2 minute. Now is a complicated percentage of the
|
||||||
|
reputation you'd gain working for them. It's not op but it feels a bit
|
||||||
|
more useful.
|
||||||
|
|
||||||
|
**Netscript**
|
||||||
|
|
||||||
|
* print/tprint now take any number of arguments.
|
||||||
|
* print/tprint will now print object as json.
|
||||||
|
* print/tprint now handle passing in an undefined argument properly.
|
||||||
|
|
||||||
|
**Casino**
|
||||||
|
|
||||||
|
* Cannot bet negative money anymore.
|
||||||
|
* Roulette max bet is a bit higher.
|
||||||
|
* Coin Flip has a small cooldown.
|
||||||
|
* All buttons reject unstrusted mouse events.
|
||||||
|
|
||||||
|
**Documentation**
|
||||||
|
|
||||||
|
* Changed a message that said nsjs only works on Chrome.
|
||||||
|
|
||||||
|
**Bugfix**
|
||||||
|
|
||||||
|
* hacknet.maxNumNodes now works for both nodes and servers.
|
||||||
|
* Fixed a bug where the popup boxes would contain data from previous popup boxes.
|
||||||
|
* .js files will also have the 'export async function' boilerplate.
|
||||||
|
|
||||||
|
**Misc.**
|
||||||
|
|
||||||
|
* turned off web form autocomplete for the terminal text input.
|
||||||
|
* Fixed an issue on Windows+Firefox where pressing up on the terminal would
|
||||||
|
bring the cursor to the begining of the line. (Issue #836)
|
||||||
|
* Hacknet node names is easier to handle for screen readers.
|
||||||
|
* Money spent on classes is now tracked independently of work money.
|
||||||
|
* running coding contract from the terminal will display its name.
|
||||||
|
* nerf noodle bar
|
||||||
|
|
||||||
|
v0.51.2 - 2021-04-09 Vegas, Baby! (hydroflame)
|
||||||
|
----------------------------------------------
|
||||||
|
|
||||||
|
**New location: The Iker Molina Casino**
|
||||||
|
|
||||||
|
* A casino opened in Aevum. However the house is rumored to cheat. If only
|
||||||
|
we could give them a taste of their own medicine.
|
||||||
|
|
||||||
|
**Misc.**
|
||||||
|
|
||||||
|
* Link to discord added under options
|
||||||
|
* 'getMemberInformation' doc updated, oops
|
||||||
|
* tech vendor now handle max ram and cores.
|
||||||
|
* nerf noodle bar
|
||||||
|
|
||||||
|
v0.51.1 - 2021-04-06 Bugfixes because the author of the last patch sucks (it's hydroflame)
|
||||||
|
------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
**Netscript**
|
||||||
|
|
||||||
|
* 'getPlayer' returns players faction and tor
|
||||||
|
* 'hospitalization' is a new singularity function.
|
||||||
|
* 'gang.getMemberInformation' now returns more information.
|
||||||
|
* 'hacknet.hashCapacity' is a new hacknet function that returns the maximum hash capacity.
|
||||||
|
|
||||||
|
**Hospitalization**
|
||||||
|
|
||||||
|
* Now only cost at most 10% of your money.
|
||||||
|
|
||||||
|
**Bugfix**
|
||||||
|
|
||||||
|
* confirmation dialog box no longer use previous text
|
||||||
|
|
||||||
|
**Accessibility**
|
||||||
|
|
||||||
|
* The game is a little easier to handle for screen readers (yes, there's an
|
||||||
|
absolute legend playing this game with a screen reader)
|
||||||
|
* Infiltration use buttons instead of a-links
|
||||||
|
* New option to disable ASCII art. This will make the metro map and world
|
||||||
|
map display as a list of buttons.
|
||||||
|
|
||||||
|
**Misc.**
|
||||||
|
|
||||||
|
* 'fl1ght.exe' will no longer suggest the combat path. Related faction
|
||||||
|
requirements unchanged.
|
||||||
|
* nerf noodle bar
|
||||||
|
|
||||||
|
v0.51.0 - 2021-03-31 Formulas (hydroflame)
|
||||||
|
------------------------------------------
|
||||||
|
|
||||||
|
**Formulas API**
|
||||||
|
|
||||||
|
* A new API is introduced, this gives players access to various formulas used in the game.
|
||||||
|
It'll help you make more informed decisions.
|
||||||
|
|
||||||
|
**Netscript**
|
||||||
|
|
||||||
|
* 'getServer' is a new function meant to be used with the formulas API.
|
||||||
|
* 'getPlayer' is a new function meant to be used with the formulas API.
|
||||||
|
* 'getStats' and 'getCharacterInformation' are deprecated in favor of 'getPlayer'
|
||||||
|
* 'getCurrentServer' is a new function that returns the server the player is currently connected.
|
||||||
|
|
||||||
|
**Display**
|
||||||
|
|
||||||
|
* All money should now consistently be orange.
|
||||||
|
* All rep should now consistently be light-yellow.
|
||||||
|
* Most numbers should display consistently now (aka all money is formatted the same).
|
||||||
|
|
||||||
|
**Click to copy**
|
||||||
|
|
||||||
|
* Certain UI elements are now 'click-to-copy'
|
||||||
|
|
||||||
|
** Misc. **
|
||||||
|
|
||||||
|
* nerf noodle bar
|
||||||
|
|
||||||
|
v0.50.2 - 2021-03-25 Everyone asked for this one. (hydroflame)
|
||||||
|
--------------------------------------------------------------
|
||||||
|
|
||||||
|
**BitNodeMultipliers**
|
||||||
|
|
||||||
|
* 'GangKarmaRequirements': a new multipler that influences how much karma is required to make a gang different bitnodes.
|
||||||
|
|
||||||
|
**Netscript**
|
||||||
|
|
||||||
|
* 'connect': a new singularity function that connects you to a server. (like the terminal command)
|
||||||
|
* 'manualHack': a new singularity function that performs a manual hack on the players current server.
|
||||||
|
* ns2 stack trace works on Firefox now.
|
||||||
|
|
||||||
|
**Misc.**
|
||||||
|
|
||||||
|
* New shortcut, Alt + b, brings you to bladeburner
|
||||||
|
* New shortcut, Alt + g, brings you to gang
|
||||||
|
* nerf noodle bar
|
||||||
|
|
||||||
|
v0.50.1 - 2021-03-22 (hydroflame)
|
||||||
|
---------------------------------
|
||||||
|
**Netscript**
|
||||||
|
|
||||||
|
* getTaskStats works
|
||||||
|
|
||||||
|
**Source-File -1**
|
||||||
|
|
||||||
|
* Added a new Exploit
|
||||||
|
|
||||||
|
**Factions**
|
||||||
|
|
||||||
|
* Augmentations offered by a Faction but already bought are in a separate list at the bottom of the page.
|
||||||
|
|
||||||
|
**Bug fixed**
|
||||||
|
|
||||||
|
* Fixed a bug where completing a maxed non-repeatable BitNode would make its color on the BitVerse like level 1.
|
||||||
|
|
||||||
|
**Misc.**
|
||||||
|
|
||||||
|
* Minor spacing in stats tables.
|
||||||
|
* nerf noodle bar
|
||||||
|
|
||||||
|
v0.50.0 - 2021-03-20 Intelligence (hydroflame)
|
||||||
|
----------------------------------------------
|
||||||
|
|
||||||
|
**Intelligence**
|
||||||
|
|
||||||
|
* int exp gain and effect has been reworked. It is now much more easy to
|
||||||
|
acquire and far more powerful. The goal here is to feel like players have
|
||||||
|
another tool in their arsenal.
|
||||||
|
|
||||||
|
**Factions**
|
||||||
|
|
||||||
|
* Hacking factions no longer have hacking level requirements since their associated servers do.
|
||||||
|
|
||||||
|
**Misc.**
|
||||||
|
|
||||||
|
* Sleeve styling.
|
||||||
|
* number formatting
|
||||||
|
* remove wiki button in Hacking Missions.
|
||||||
|
* Fix NaN displayed when very very large numbers are reached.
|
||||||
|
* nerf noodle bar
|
||||||
|
|
||||||
v0.49.2 - 2021-03-13 (hydroflame)
|
v0.49.2 - 2021-03-13 (hydroflame)
|
||||||
-------
|
---------------------------------
|
||||||
|
|
||||||
|
**BN8**
|
||||||
|
|
||||||
BN8
|
|
||||||
* A new bitnode multipler has been added, it lets you reduce money from a
|
* A new bitnode multipler has been added, it lets you reduce money from a
|
||||||
server without gaining actually any money. This is important for BN8 where
|
server without gaining actually any money. This is important for BN8 where
|
||||||
hack/grow can influence the stock market. No money can be gained from
|
hack/grow can influence the stock market. No money can be gained from
|
||||||
hacking but server money can still be reduced.
|
hacking but server money can still be reduced.
|
||||||
|
|
||||||
Documentation
|
**Documentation**
|
||||||
|
|
||||||
* readthedocs should now be more consistent and many examples were added.
|
* readthedocs should now be more consistent and many examples were added.
|
||||||
|
|
||||||
Netscript
|
**Netscript**
|
||||||
|
|
||||||
* Ace editor will now correctly highlight all functions.
|
* Ace editor will now correctly highlight all functions.
|
||||||
* 'tFormat' is a new netscript function that returns a human readable
|
* 'tFormat' is a new netscript function that returns a human readable
|
||||||
representation of milliseconds. eg. "2 hours 15 minute 43 seconds"
|
representation of milliseconds. eg. "2 hours 15 minute 43 seconds"
|
||||||
|
|
||||||
Gang
|
**Gang**
|
||||||
|
|
||||||
* style improvements
|
* style improvements
|
||||||
|
|
||||||
Bladeburner
|
**Bladeburner**
|
||||||
|
|
||||||
* style improvements
|
* style improvements
|
||||||
* fix bug where 'skill list SKILL' would crash if skill is level 0.
|
* fix bug where 'skill list SKILL' would crash if skill is level 0.
|
||||||
|
|
||||||
Sleeve
|
**Sleeve**
|
||||||
|
|
||||||
* karma gain now scales with sync.
|
* karma gain now scales with sync.
|
||||||
|
|
||||||
Misc.
|
**Misc.**
|
||||||
Fix issue where the effective stats under Character>Stats were being calculated.
|
|
||||||
|
* Fix issue where the effective stats under Character>Stats were being calculated.
|
||||||
|
* nerf noodle bar
|
||||||
|
|
||||||
v0.49.0 - 2021-03-11 Source-File -1 (hydroflame)
|
v0.49.0 - 2021-03-11 Source-File -1 (hydroflame)
|
||||||
-------
|
------------------------------------------------
|
||||||
|
|
||||||
**Source-File -1**
|
**Source-File -1**
|
||||||
|
|
||||||
@@ -60,10 +980,11 @@ v0.49.0 - 2021-03-11 Source-File -1 (hydroflame)
|
|||||||
|
|
||||||
* Minor formatting under Hacking>Active Scripts
|
* Minor formatting under Hacking>Active Scripts
|
||||||
* option menu colors now match the rest of the game, kinda.
|
* option menu colors now match the rest of the game, kinda.
|
||||||
|
* nerf noodle bar
|
||||||
|
|
||||||
|
|
||||||
v0.48.0 - ASCII - 2021-03-07 (hydroflame)
|
v0.48.0 - ASCII - 2021-03-07 (hydroflame)
|
||||||
-------
|
-----------------------------------------
|
||||||
|
|
||||||
**ASCII**
|
**ASCII**
|
||||||
|
|
||||||
@@ -107,6 +1028,7 @@ v0.48.0 - ASCII - 2021-03-07 (hydroflame)
|
|||||||
has bought but not installed
|
has bought but not installed
|
||||||
* Character>Factions has a badge indicating how many factions have pending
|
* Character>Factions has a badge indicating how many factions have pending
|
||||||
invites.
|
invites.
|
||||||
|
* nerf noodle bar
|
||||||
|
|
||||||
v0.47.2 - 7/15/2019
|
v0.47.2 - 7/15/2019
|
||||||
-------------------
|
-------------------
|
||||||
@@ -135,7 +1057,7 @@ v0.47.2 - 7/15/2019
|
|||||||
* Added 'Solarized Dark' theme to CodeMirror editor
|
* Added 'Solarized Dark' theme to CodeMirror editor
|
||||||
* After Infiltration, you will now return to the company page rather than the city page
|
* After Infiltration, you will now return to the company page rather than the city page
|
||||||
* Bug fix: Stock Market UI should no longer crash for certain locale settings
|
* Bug fix: Stock Market UI should no longer crash for certain locale settings
|
||||||
* Bug fix: You can now properly remove unfinished programs (the *.exe-N%-INC files)
|
* Bug fix: You can now properly remove unfinished programs (the `*.exe-N%-INC` files)
|
||||||
* Bug fix: Fixed an issue that allowed you to increase money on servers with a 'maxMoney' of 0 (like CSEC)
|
* Bug fix: Fixed an issue that allowed you to increase money on servers with a 'maxMoney' of 0 (like CSEC)
|
||||||
* Bug fix: Scripts no longer persist if they were started with syntax/import errors
|
* Bug fix: Scripts no longer persist if they were started with syntax/import errors
|
||||||
* Bug fix: 'hack' and 'analyze' Terminal commands are now blocking
|
* Bug fix: 'hack' and 'analyze' Terminal commands are now blocking
|
||||||
|
|||||||
+2
-2
@@ -64,9 +64,9 @@ documentation_title = '{0} Documentation'.format(project)
|
|||||||
# built documents.
|
# built documents.
|
||||||
#
|
#
|
||||||
# The short X.Y version.
|
# The short X.Y version.
|
||||||
version = '0.47'
|
version = '0.55'
|
||||||
# The full version, including alpha/beta/rc tags.
|
# The full version, including alpha/beta/rc tags.
|
||||||
release = '0.47.0'
|
release = '0.55.0'
|
||||||
|
|
||||||
# The language for content autogenerated by Sphinx. Refer to documentation
|
# The language for content autogenerated by Sphinx. Refer to documentation
|
||||||
# for a list of supported languages.
|
# for a list of supported languages.
|
||||||
|
|||||||
@@ -634,18 +634,18 @@ This tells me that I can reach :code:`CSEC` by going through :code:`iron-gym`::
|
|||||||
Make sure you notice the required hacking skill for the :code:`CSEC` server.
|
Make sure you notice the required hacking skill for the :code:`CSEC` server.
|
||||||
This is a random value between 51 and 60. Although you receive the message
|
This is a random value between 51 and 60. Although you receive the message
|
||||||
from CSEC once you hit 50 hacking, you cannot actually pass their test
|
from CSEC once you hit 50 hacking, you cannot actually pass their test
|
||||||
until your hacking is high enough to hack their server.
|
until your hacking is high enough to install a backdoor on their server.
|
||||||
|
|
||||||
After you are connected to the :code:`CSEC` server, you can hack it. Note that this
|
After you are connected to the :code:`CSEC` server, you can backdoor it. Note that this
|
||||||
server requires one open port in order to gain root access. We can open the SSH port
|
server requires one open port in order to gain root access. We can open the SSH port
|
||||||
using the :code:`BruteSSH.exe` program we created earlier. In |Terminal|::
|
using the :code:`BruteSSH.exe` program we created earlier. In |Terminal|::
|
||||||
|
|
||||||
$ run BruteSSH.exe
|
$ run BruteSSH.exe
|
||||||
$ run NUKE.exe
|
$ run NUKE.exe
|
||||||
$ hack
|
$ backdoor
|
||||||
|
|
||||||
Keep hacking the server until you are successful. After you successfully hack it, you should
|
After you successfully install the backdoor, you should receive a faction
|
||||||
receive a faction invitation from |CyberSec| shortly afterwards. Accept it. If you accidentally
|
invitation from |CyberSec| shortly afterwards. Accept it. If you accidentally
|
||||||
reject the invitation, that's okay. Just go to the :code:`Factions` tab
|
reject the invitation, that's okay. Just go to the :code:`Factions` tab
|
||||||
(|Keyboard shortcut| Alt + f) and you should see an option that lets you
|
(|Keyboard shortcut| Alt + f) and you should see an option that lets you
|
||||||
accept the invitation.
|
accept the invitation.
|
||||||
@@ -860,7 +860,7 @@ Random Tips
|
|||||||
.. Substitution definitions
|
.. Substitution definitions
|
||||||
.. |Alpha Enterprises| replace:: :code:`Alpha Enterprises`
|
.. |Alpha Enterprises| replace:: :code:`Alpha Enterprises`
|
||||||
.. |Augmentations tab| replace:: :code:`Augmentations` tab
|
.. |Augmentations tab| replace:: :code:`Augmentations` tab
|
||||||
.. |AutoLink| replace:: :code:`NUKE.exe`
|
.. |AutoLink| replace:: :code:`AutoLink.exe`
|
||||||
.. |BruteSSH| replace:: :code:`BruteSSH.exe`
|
.. |BruteSSH| replace:: :code:`BruteSSH.exe`
|
||||||
.. |City tab| replace:: :code:`City` tab
|
.. |City tab| replace:: :code:`City` tab
|
||||||
.. |CyberSec| replace:: :code:`CyberSec`
|
.. |CyberSec| replace:: :code:`CyberSec`
|
||||||
|
|||||||
@@ -278,6 +278,7 @@ Description
|
|||||||
hashes, which can be spent on a variety of different upgrades.
|
hashes, which can be spent on a variety of different upgrades.
|
||||||
|
|
||||||
In this BitNode:
|
In this BitNode:
|
||||||
|
|
||||||
* Your stats are significantly decreased
|
* Your stats are significantly decreased
|
||||||
* You cannnot purchase additional servers
|
* You cannnot purchase additional servers
|
||||||
* Hacking is significantly less profitable
|
* Hacking is significantly less profitable
|
||||||
@@ -292,7 +293,7 @@ Source-File
|
|||||||
* Level 3: Grants a highly-upgraded Hacknet Server when entering a new BitNode
|
* Level 3: Grants a highly-upgraded Hacknet Server when entering a new BitNode
|
||||||
|
|
||||||
(Note that the Level 3 effect of this Source-File only applies when entering a new BitNode, NOT
|
(Note that the Level 3 effect of this Source-File only applies when entering a new BitNode, NOT
|
||||||
when installing Augmentation
|
when installing Augmentations.)
|
||||||
|
|
||||||
Difficulty
|
Difficulty
|
||||||
Hard
|
Hard
|
||||||
@@ -312,6 +313,7 @@ Description
|
|||||||
2. Duplicate Sleeves: Duplicate your consciousness into Synthoids, allowing you to perform different tasks synchronously
|
2. Duplicate Sleeves: Duplicate your consciousness into Synthoids, allowing you to perform different tasks synchronously
|
||||||
|
|
||||||
In this BitNode:
|
In this BitNode:
|
||||||
|
|
||||||
* Your stats are significantly decreased
|
* Your stats are significantly decreased
|
||||||
* All methods of gaining money are half as profitable (except Stock Market)
|
* All methods of gaining money are half as profitable (except Stock Market)
|
||||||
* Purchased servers are more expensive, have less max RAM, and a lower maximum limit
|
* Purchased servers are more expensive, have less max RAM, and a lower maximum limit
|
||||||
@@ -321,7 +323,7 @@ Source-File
|
|||||||
:Max Level: 3
|
:Max Level: 3
|
||||||
|
|
||||||
This Source-File unlocks Sleeve technology in other BitNodes.
|
This Source-File unlocks Sleeve technology in other BitNodes.
|
||||||
Each level of this Source-File also grants you a Duplicate Sleeve
|
Each level of this Source-File also grants you a Duplicate Sleeve.
|
||||||
|
|
||||||
Difficulty
|
Difficulty
|
||||||
Hard
|
Hard
|
||||||
@@ -371,9 +373,10 @@ Description
|
|||||||
Source-File
|
Source-File
|
||||||
:Max Level: Infinity
|
:Max Level: Infinity
|
||||||
|
|
||||||
Each level of Source-File 12 will increase all of your multipliers by 1%. This effect
|
Each level of Source-File 12 will let you start with Neuroflux Governor
|
||||||
is multiplicative with itself. In other words, level N of this Source-File will result
|
equal to the level of this Source-File.
|
||||||
in a multiplier of 1.01^N (or 0.99^N for multipliers that decrease)
|
|
||||||
|
This BitNode is meant to be done passively or when waiting for new content.
|
||||||
|
|
||||||
Difficulty
|
Difficulty
|
||||||
Initially very easy, but then it (obviously) becomes harder as you continue to do it.
|
Initially very easy, but then it (obviously) becomes harder as you continue to do it.
|
||||||
@@ -394,27 +397,22 @@ For fast progression
|
|||||||
1. Repeat **BitNode-1: Source Genesis** until you max out its Source-File. Its Source-File
|
1. Repeat **BitNode-1: Source Genesis** until you max out its Source-File. Its Source-File
|
||||||
is extremely powerful, as it raises all multipliers by a significant amount.
|
is extremely powerful, as it raises all multipliers by a significant amount.
|
||||||
|
|
||||||
2. Repeat **BitNode-12: The Recursion** several times. This BitNode will be extremely easy the
|
2. Do **BitNode-5: Artificial Intelligence** once or twice. The intelligence stat it unlocks
|
||||||
first few times you tackle it, and its Source-File raises all multipliers. Furthermore,
|
|
||||||
its effect stacks multiplicatively with itself and other Source-Files/Augmentations,
|
|
||||||
which gets better as time goes on
|
|
||||||
|
|
||||||
3. Do **BitNode-5: Artificial Intelligence** once or twice. The intelligence stat it unlocks
|
|
||||||
will gradually build up as you continue to play the game, and will be helpful
|
will gradually build up as you continue to play the game, and will be helpful
|
||||||
in the future. The Source-File also provides hacking multipliers, which are
|
in the future. The Source-File also provides hacking multipliers, which are
|
||||||
strong because hacking is typically one of the best ways of earning money.
|
strong because hacking is typically one of the best ways of earning money.
|
||||||
|
|
||||||
4. (Optional) Consider doing **BitNode-4: The Singularity**. Its Source-File does not directly make you
|
3. (Optional) Consider doing **BitNode-4: The Singularity**. Its Source-File does not directly make you
|
||||||
more powerful in any way, but it does unlock :ref:`netscript_singularityfunctions` which
|
more powerful in any way, but it does unlock :ref:`netscript_singularityfunctions` which
|
||||||
let you automate significantly more aspects of the game.
|
let you automate significantly more aspects of the game.
|
||||||
|
|
||||||
5. Do **BitNode-3: Corporatocracy** once to unlock the Corporation mechanic. This mechanic
|
4. Do **BitNode-3: Corporatocracy** once to unlock the Corporation mechanic. This mechanic
|
||||||
has high profit potential.
|
has high profit potential.
|
||||||
|
|
||||||
6. Do **BitNode-6: Bladeburners** once to unlock the Bladeburners mechanic. The Bladeburner
|
5. Do **BitNode-6: Bladeburners** once to unlock the Bladeburners mechanic. The Bladeburner
|
||||||
mechanic is useful for some of the future BitNodes (such as 9 and 10).
|
mechanic is useful for some of the future BitNodes (such as 9 and 10).
|
||||||
|
|
||||||
7. Do **BitNode-9: Hacktocracy** to unlock the Hacknet Server mechanic. You can
|
6. Do **BitNode-9: Hacktocracy** to unlock the Hacknet Server mechanic. You can
|
||||||
consider repeating it as well, as its Level 2 and 3 effects are pretty helpful as well.
|
consider repeating it as well, as its Level 2 and 3 effects are pretty helpful as well.
|
||||||
|
|
||||||
.. todo:: To be continued as more BitNodes get added
|
.. todo:: To be continued as more BitNodes get added
|
||||||
|
|||||||
@@ -30,4 +30,5 @@ to reach out to the developer!
|
|||||||
Gang API <netscript/netscriptgangapi>
|
Gang API <netscript/netscriptgangapi>
|
||||||
Coding Contract API <netscript/netscriptcodingcontractapi>
|
Coding Contract API <netscript/netscriptcodingcontractapi>
|
||||||
Sleeve API <netscript/netscriptsleeveapi>
|
Sleeve API <netscript/netscriptsleeveapi>
|
||||||
|
Formulas API <netscript/netscriptformulasapi>
|
||||||
Miscellaneous <netscript/netscriptmisc>
|
Miscellaneous <netscript/netscriptmisc>
|
||||||
|
|||||||
@@ -5,13 +5,16 @@ getBitNodeMultipliers() Netscript Function
|
|||||||
|
|
||||||
:RAM cost: 4 GB
|
:RAM cost: 4 GB
|
||||||
|
|
||||||
Returns an object containing the current BitNode multipliers. This function
|
If you are not in BitNode-5, then you must have Source-File 5-1 in order to
|
||||||
requires Source-File 5 in order to run. The multipliers are returned in
|
run this function.
|
||||||
decimal forms (e.g. 1.5 instead of 150%). The multipliers represent the
|
|
||||||
difference between the current BitNode and the original BitNode (BitNode-1).
|
Returns an object containing the current BitNode multipliers. The
|
||||||
For example, if the *CrimeMoney* multiplier has a value of 0.1, then that
|
multipliers are returned in decimal forms (e.g. 1.5 instead of 150%). The
|
||||||
means that committing crimes in the current BitNode will only give 10% of
|
multipliers represent the difference between the current BitNode and the
|
||||||
the money you would have received in BitNode-1.
|
original BitNode (BitNode-1). For example, if the *CrimeMoney* multiplier
|
||||||
|
has a value of 0.1, then that means that committing crimes in the current
|
||||||
|
BitNode will only give 10% of the money you would have received in
|
||||||
|
BitNode-1.
|
||||||
|
|
||||||
The structure of the returned object is subject to change as BitNode
|
The structure of the returned object is subject to change as BitNode
|
||||||
multipliers get added to the game. Refer to the `source code here
|
multipliers get added to the game. Refer to the `source code here
|
||||||
|
|||||||
@@ -1,15 +0,0 @@
|
|||||||
getHackTime(), getGrowTime(), & getWeakenTime()
|
|
||||||
===============================================
|
|
||||||
|
|
||||||
The :js:func:`getHackTime`, :js:func:`getGrowTime`, and :js:func:`getWeakenTime`
|
|
||||||
all take an additional third optional parameter for specifying a specific intelligence
|
|
||||||
level to see how that would affect the hack/grow/weaken times. This parameter
|
|
||||||
defaults to your current intelligence level.
|
|
||||||
|
|
||||||
(Intelligence is unlocked after obtaining Source-File 5).
|
|
||||||
|
|
||||||
The function signatures are then::
|
|
||||||
|
|
||||||
getHackTime(hostname/ip[, hackLvl=current level, intLvl=current level])
|
|
||||||
getGrowTime(hostname/ip[, hackLvl=current level, intLvl=current level])
|
|
||||||
getWeakenTime(hostname/ip[, hackLvl=current level, intLvl=current level])
|
|
||||||
@@ -0,0 +1,40 @@
|
|||||||
|
getServer() Netscript Function
|
||||||
|
==========================================
|
||||||
|
|
||||||
|
.. js:function:: getServer([hostname])
|
||||||
|
|
||||||
|
:RAM cost: 2 GB
|
||||||
|
:param string hostname: Hostname of the server, defaults to host server.
|
||||||
|
|
||||||
|
If you are not in BitNode-5, then you must have Source-File 5-1 in order to run this function.
|
||||||
|
|
||||||
|
This function is meant to be used in conjunction with the :doc:`formulas API<../netscriptformulasapi>`.
|
||||||
|
|
||||||
|
Returns an object with the Server's stats. The object has the following properties::
|
||||||
|
|
||||||
|
{
|
||||||
|
cpuCores
|
||||||
|
ftpPortOpen
|
||||||
|
hasAdminRights
|
||||||
|
hostname
|
||||||
|
httpPortOpen
|
||||||
|
ip
|
||||||
|
isConnectedTo
|
||||||
|
maxRam
|
||||||
|
organizationName
|
||||||
|
ramUsed
|
||||||
|
smtpPortOpen
|
||||||
|
sqlPortOpen
|
||||||
|
sshPortOpen
|
||||||
|
baseDifficulty
|
||||||
|
hackDifficulty
|
||||||
|
backdoorInstalled
|
||||||
|
minDifficulty
|
||||||
|
moneyAvailable
|
||||||
|
moneyMax
|
||||||
|
numOpenPortsRequired
|
||||||
|
openPortCount
|
||||||
|
purchasedByPlayer
|
||||||
|
requiredHackingSkill
|
||||||
|
serverGrowth
|
||||||
|
}
|
||||||
@@ -7,8 +7,8 @@ brutessh() Netscript Function
|
|||||||
|
|
||||||
:param string hostname: Hostname of the target server.
|
:param string hostname: Hostname of the target server.
|
||||||
|
|
||||||
Runs the BruteSSH.exe program on the target server. BruteSSH.exe must exist
|
Runs the ``BruteSSH.exe`` program on the target server. ``BruteSSH.exe``
|
||||||
on your home computer.
|
must exist on your home computer.
|
||||||
|
|
||||||
Examples:
|
Examples:
|
||||||
|
|
||||||
|
|||||||
@@ -9,9 +9,3 @@ disableLog() Netscript Function
|
|||||||
|
|
||||||
Disables logging for the given function. Logging can be disabled for
|
Disables logging for the given function. Logging can be disabled for
|
||||||
all functions by passing 'ALL' as the argument.
|
all functions by passing 'ALL' as the argument.
|
||||||
|
|
||||||
Note that this does not completely remove all logging functionality.
|
|
||||||
This only stops a function from logging when the function is successful. If
|
|
||||||
the function fails, it will still log the reason for failure.
|
|
||||||
|
|
||||||
Notable functions that cannot have their logs disabled: run, exec, exit
|
|
||||||
|
|||||||
@@ -19,9 +19,8 @@ exec() Netscript Function
|
|||||||
the :doc:`run<run>` function except that it can be used to run a script on any
|
the :doc:`run<run>` function except that it can be used to run a script on any
|
||||||
server, instead of just the current server.
|
server, instead of just the current server.
|
||||||
|
|
||||||
.. warning:: Running this function with a ``numThreads`` argument of 0 will return 0 without
|
.. warning:: Running this function with a ``numThreads`` argument of 0 or
|
||||||
running the script. However, running this function with a negative *numThreads*
|
less will cause a runtime error.
|
||||||
argument will cause a runtime error.
|
|
||||||
|
|
||||||
The simplest way to use the :doc:`exec<exec>` command is to call it with
|
The simplest way to use the :doc:`exec<exec>` command is to call it with
|
||||||
just the script name and the target server. The following example will try
|
just the script name and the target server. The following example will try
|
||||||
|
|||||||
@@ -6,3 +6,12 @@ exit() Netscript Function
|
|||||||
:RAM cost: 0 GB
|
:RAM cost: 0 GB
|
||||||
|
|
||||||
Terminates the current script immediately.
|
Terminates the current script immediately.
|
||||||
|
|
||||||
|
.. warning:: In :ref:`netscriptjs`, execution may continue past a call to
|
||||||
|
this function; while some game-related functions (e.g. those with an
|
||||||
|
``ns.`` prefix) will not function after this function has been called,
|
||||||
|
there might still be unintended behavior if you assume ``exit`` will
|
||||||
|
immediately halt execution, like it does in :ref:`netscript1`. To be
|
||||||
|
safe, you should probably ``return`` from the main function instead
|
||||||
|
of/in addition to calling ``ns.exit()`` when halting a NetscriptJS
|
||||||
|
script.
|
||||||
|
|||||||
@@ -0,0 +1,46 @@
|
|||||||
|
flags() Netscript Function
|
||||||
|
============================
|
||||||
|
|
||||||
|
.. js:function:: flags(data)
|
||||||
|
|
||||||
|
:RAM cost: 0 GB
|
||||||
|
:param data array of pairs of strings: Flags definition.
|
||||||
|
:returns: Object containing all the flags that were parsed or default.
|
||||||
|
|
||||||
|
This function allows for a more flexible way of parsing script arguments
|
||||||
|
than to just pass a fixed list in a fixed order. Options can be given
|
||||||
|
names, and passed in any order, while having defined default values.
|
||||||
|
|
||||||
|
The flag definition is an array of pairs of values: the first value is the
|
||||||
|
name of the flag, and the 2nd value is the default value for that flag.
|
||||||
|
|
||||||
|
The return object is a map containing flag names to the value. It also
|
||||||
|
contains the special field '_', which contains all arguments that were not
|
||||||
|
flags.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
.. code-block:: javascript
|
||||||
|
|
||||||
|
// example.script
|
||||||
|
var data = flags([
|
||||||
|
['delay', 0], // a default number means this flag is a number
|
||||||
|
['server', 'foodnstuff'], // a default string means this flag is a string
|
||||||
|
['exclude', []], // a default array means this flag is a default array of string
|
||||||
|
['help', false], // a default boolean means this flag is a boolean
|
||||||
|
]);
|
||||||
|
tprint(data);
|
||||||
|
/*
|
||||||
|
[home ~/]> run example.script
|
||||||
|
{"_":[],"delay":0,"server":"foodnstuff","exclude":[],"help":false}
|
||||||
|
[home ~/]> run example.script --delay 3000
|
||||||
|
{"_":[],"server":"foodnstuff","exclude":[],"help":false,"delay":3000}
|
||||||
|
[home ~/]> run example.script --delay 3000 --server harakiri-sushi
|
||||||
|
{"_":[],"exclude":[],"help":false,"delay":3000,"server":"harakiri-sushi"}
|
||||||
|
[home ~/]> run example.script --delay 3000 --server harakiri-sushi hello world
|
||||||
|
{"_":["hello","world"],"exclude":[],"help":false,"delay":3000,"server":"harakiri-sushi"}
|
||||||
|
[home ~/]> run example.script --delay 3000 --server harakiri-sushi hello world --exclude a --exclude b
|
||||||
|
{"_":["hello","world"],"help":false,"delay":3000,"server":"harakiri-sushi","exclude":["a","b"]}
|
||||||
|
[home ~/]> run example.script --help
|
||||||
|
{"_":[],"delay":0,"server":"foodnstuff","exclude":[],"help":true}
|
||||||
|
*/
|
||||||
@@ -10,7 +10,6 @@ ftpcrack() Netscript Function
|
|||||||
Runs the ``FTPCrack.exe`` program on the target server. ``FTPCrack.exe``
|
Runs the ``FTPCrack.exe`` program on the target server. ``FTPCrack.exe``
|
||||||
must exist on your home computer.
|
must exist on your home computer.
|
||||||
|
|
||||||
|
|
||||||
Examples:
|
Examples:
|
||||||
|
|
||||||
.. code-block:: javascript
|
.. code-block:: javascript
|
||||||
|
|||||||
@@ -6,14 +6,11 @@ getGrowTime() Netscript Function
|
|||||||
:RAM cost: 0.05 GB
|
:RAM cost: 0.05 GB
|
||||||
|
|
||||||
:param string hostname: Hostname of target server.
|
:param string hostname: Hostname of target server.
|
||||||
:param number hackLvl: Optional hacking level for the calculation. Defaults
|
|
||||||
to player's current hacking level.
|
|
||||||
:returns: seconds it takes to execute :doc:`grow<grow>` on that server.
|
:returns: seconds it takes to execute :doc:`grow<grow>` on that server.
|
||||||
|
|
||||||
The function takes in an optional ``hackLvl`` parameter that can be
|
The function takes in an optional ``hackLvl`` parameter that can be
|
||||||
specified to see what the grow time would be at different hacking levels.
|
specified to see what the grow time would be at different hacking levels.
|
||||||
|
|
||||||
|
|
||||||
Example:
|
Example:
|
||||||
|
|
||||||
.. code-block:: javascript
|
.. code-block:: javascript
|
||||||
|
|||||||
@@ -5,8 +5,6 @@ getHackTime() Netscript Function
|
|||||||
|
|
||||||
:RAM cost: 0.05 GB
|
:RAM cost: 0.05 GB
|
||||||
:param string hostname: Hostname of target server.
|
:param string hostname: Hostname of target server.
|
||||||
:param number hackLvl: Optional hacking level for the calculation. Defaults
|
|
||||||
to player's current hacking level.
|
|
||||||
:returns: seconds it takes to execute :doc:`hack<hack>` on that server.
|
:returns: seconds it takes to execute :doc:`hack<hack>` on that server.
|
||||||
|
|
||||||
The function takes in an optional ``hackLvl`` parameter that can be
|
The function takes in an optional ``hackLvl`` parameter that can be
|
||||||
|
|||||||
@@ -11,4 +11,3 @@ getHostname() Netscript Function
|
|||||||
.. code-block:: javascript
|
.. code-block:: javascript
|
||||||
|
|
||||||
getHostname(); // returns: "foodnstuff"
|
getHostname(); // returns: "foodnstuff"
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,101 @@
|
|||||||
|
getPlayer() Netscript Function
|
||||||
|
==============================
|
||||||
|
|
||||||
|
.. js:function:: getPlayer()
|
||||||
|
|
||||||
|
:RAM cost: 0.5 GB
|
||||||
|
|
||||||
|
The result of this function can be passed to the :doc:`formulas API<../netscriptformulasapi>`.
|
||||||
|
|
||||||
|
Returns an object with the Player's stats. The object has the following properties::
|
||||||
|
|
||||||
|
{
|
||||||
|
hacking_skill: Current Hacking skill level
|
||||||
|
hp: Current health points
|
||||||
|
max_hp: Maximum health points
|
||||||
|
strength: Current Strength skill level
|
||||||
|
defense: Current Defense skill level
|
||||||
|
dexterity: Current Dexterity skill level
|
||||||
|
agility: Current Agility skill level
|
||||||
|
charisma: Current Charisma skill level
|
||||||
|
intelligence: Current Intelligence skill level (from BitNode-5)
|
||||||
|
hacking_chance_mult: Hacking Chance multiplier (from Source-Files and Augments)
|
||||||
|
hacking_speed_mult: Hacking Speed multiplier (from Source-Files and Augments)
|
||||||
|
hacking_money_mult: Hacking Money multiplier (from Source-Files and Augments)
|
||||||
|
hacking_grow_mult: Hacking Growth multiplier (from Source-Files and Augments)
|
||||||
|
hacking_exp: Current Hacking experience points
|
||||||
|
strength_exp: Current Strength experience points
|
||||||
|
defense_exp: Current Defense experience points
|
||||||
|
dexterity_exp: Current Dexterity experience points
|
||||||
|
agility_exp: Current Agility experience points
|
||||||
|
charisma_exp: Current Charisma experience points
|
||||||
|
hacking_mult: Hacking Level multiplier (from Source-Files and Augments)
|
||||||
|
strength_mult: Strength Level multiplier (from Source-Files and Augments)
|
||||||
|
defense_mult: Defense Level multiplier (from Source-Files and Augments)
|
||||||
|
dexterity_mult: Dexterity Level multiplier (from Source-Files and Augments)
|
||||||
|
agility_mult: Agility Level multiplier (from Source-Files and Augments)
|
||||||
|
charisma_mult: Charisma Level multiplier (from Source-Files and Augments)
|
||||||
|
hacking_exp_mult: Hacking Experience multiplier (from Source-Files and Augments)
|
||||||
|
strength_exp_mult: Strength Experience multiplier (from Source-Files and Augments)
|
||||||
|
defense_exp_mult: Defense Experience multiplier (from Source-Files and Augments)
|
||||||
|
dexterity_exp_mult: Dexterity Experience multiplier (from Source-Files and Augments)
|
||||||
|
agility_exp_mult: Agility Experience multiplier (from Source-Files and Augments)
|
||||||
|
charisma_exp_mult: Charisma Experience multiplier (from Source-Files and Augments)
|
||||||
|
company_rep_mult: Company reputation gain multiplier (from Source-Files and Augments)
|
||||||
|
faction_rep_mult: Faction reputation gain multiplier (from Source-Files and Augments)
|
||||||
|
money: Current money
|
||||||
|
city: Name of city you are currently in
|
||||||
|
location: Name of the last location visited
|
||||||
|
crime_money_mult: Crime money multiplier (from Source-Files and Augments)
|
||||||
|
crime_success_mult: Crime success multiplier (from Source-Files and Augments)
|
||||||
|
isWorking: Boolean indicating whether the player is currently performing work
|
||||||
|
workType: Name of the kind of work the player is performing
|
||||||
|
currentWorkFactionName: Name of the faction the player is currently working for
|
||||||
|
currentWorkFactionDescription: Description of the kind of work the player is currently doing
|
||||||
|
workHackExpGainRate: Amount of Hacking experience the player will gain every cycle (fifth of a second)
|
||||||
|
workStrExpGainRate: Amount of Strength experience the player will gain every cycle
|
||||||
|
workDefExpGainRate: Amount of Defense experience the player will gain every cycle
|
||||||
|
workDexExpGainRate: Amount of Dexterity experience the player will gain every cycle
|
||||||
|
workAgiExpGainRate: Amount of Agility experience the player will gain every cycle
|
||||||
|
workChaExpGainRate: Amount of Charisma experience the player will gain every cycle
|
||||||
|
workRepGainRate: Amount of Reputation the player will gain every cycle
|
||||||
|
workMoneyGainRate: Amount of Money the player will gain every cycle
|
||||||
|
workMoneyLossRate: Amount of Money the player will lose every cycle
|
||||||
|
workHackExpGained: Total Hacking experience gained while working thus far
|
||||||
|
workStrExpGained: Total Strength experience gained while working thus far
|
||||||
|
workDefExpGained: Total Defense experience gained while working thus far
|
||||||
|
workDexExpGained: Total Dexterity experience gained while working thus far
|
||||||
|
workAgiExpGained: Total Agility experience gained while working thus far
|
||||||
|
workChaExpGained: Total Charisma experience gained while working thus far
|
||||||
|
workRepGained: Total Reputation gained while working thus far
|
||||||
|
workMoneyGained: Total Money gained while working thus far
|
||||||
|
createProgramName: Name of the program the player is currently creating
|
||||||
|
createProgramReqLvl: Hacking skill required to make that program
|
||||||
|
className: Name of the class the player is currently studying
|
||||||
|
crimeType: Name of the crime the player last started
|
||||||
|
work_money_mult: Salary multiplier (from Source-Files and Augments)
|
||||||
|
hacknet_node_money_mult: Hacknet Node production multiplier (from Source-Files and Augments)
|
||||||
|
hacknet_node_purchase_cost_mult: Hacknet Node purchase cost multiplier (from Source-Files and Augments)
|
||||||
|
hacknet_node_ram_cost_mult: Hacknet Node RAM upgrade cost multiplier (from Source-Files and Augments)
|
||||||
|
hacknet_node_core_cost_mult: Hacknet Node Core purchase cost multiplier (from Source-Files and Augments)
|
||||||
|
hacknet_node_level_cost_mult: Hacknet Node level upgrade cost multiplier (from Source-Files and Augments)
|
||||||
|
hasWseAccount: Boolean indicating whether the player has a WSE Account
|
||||||
|
hasTixApiAccess: Boolean indicating whether the player has TIX API Access
|
||||||
|
has4SData: Boolean indicating whether the player has 4S Market Data Access
|
||||||
|
has4SDataTixApi: Boolean indicating whether the player has 4S Market Data TIX API Access
|
||||||
|
bladeburner_max_stamina_mult: Bladeburner Max Stamina multiplier (from Source-Files and Augments)
|
||||||
|
bladeburner_stamina_gain_mult: Bladeburner Stamina Gain multiplier (from Source-Files and Augments)
|
||||||
|
bladeburner_success_chance_mult: Bladeburner Success Chance multiplier (from Source-Files and Augments)
|
||||||
|
bitNodeN: Current BitNode number
|
||||||
|
totalPlaytime: Total amount of time the game has been running, in milliseconds
|
||||||
|
playtimeSinceLastAug: Milliseconds since the last time Augmentations were installed
|
||||||
|
playtimeSinceLastBitnode: Milliseconds since this BitNode was started
|
||||||
|
jobs: A mapping of companies the player works for to the title of the player's job at that company
|
||||||
|
factions: An array of factions the player is currently a member of
|
||||||
|
tor: Boolean indicating whether or not you have a tor router
|
||||||
|
}
|
||||||
|
|
||||||
|
Example::
|
||||||
|
|
||||||
|
player = getPlayer();
|
||||||
|
print('My charisma level is: ' + player.charisma);
|
||||||
@@ -0,0 +1,88 @@
|
|||||||
|
getRunningScript() Netscript Function
|
||||||
|
=====================================
|
||||||
|
|
||||||
|
.. js:function:: getRunningScript()
|
||||||
|
|
||||||
|
:RAM cost: 0.3 GB
|
||||||
|
:returns: Script object or null if not found.
|
||||||
|
|
||||||
|
The object has the following properties:
|
||||||
|
|
||||||
|
.. code-block:: javascript
|
||||||
|
|
||||||
|
{
|
||||||
|
// Script arguments
|
||||||
|
args
|
||||||
|
|
||||||
|
// Script filename
|
||||||
|
filename
|
||||||
|
|
||||||
|
// This script's logs. An array of log entries
|
||||||
|
logs
|
||||||
|
|
||||||
|
// Flag indicating whether the logs have been updated since
|
||||||
|
// the last time the UI was updated
|
||||||
|
logUpd
|
||||||
|
|
||||||
|
// Total amount of hacking experience earned from this script when offline
|
||||||
|
offlineExpGained
|
||||||
|
|
||||||
|
// Total amount of money made by this script when offline
|
||||||
|
offlineMoneyMade
|
||||||
|
|
||||||
|
// Number of seconds that the script has been running offline
|
||||||
|
offlineRunningTime
|
||||||
|
|
||||||
|
// Total amount of hacking experience earned from this script when online
|
||||||
|
onlineExpGained
|
||||||
|
|
||||||
|
// Total amount of money made by this script when online
|
||||||
|
onlineMoneyMade
|
||||||
|
|
||||||
|
// Number of seconds that this script has been running online
|
||||||
|
onlineRunningTime
|
||||||
|
|
||||||
|
// Process ID.
|
||||||
|
pid
|
||||||
|
|
||||||
|
// How much RAM this script uses for ONE thread
|
||||||
|
ramUsage
|
||||||
|
|
||||||
|
// IP of the server on which this script is running
|
||||||
|
server
|
||||||
|
|
||||||
|
// Number of threads that this script is running with
|
||||||
|
threads
|
||||||
|
}
|
||||||
|
|
||||||
|
Examples:
|
||||||
|
|
||||||
|
.. code-block:: javascript
|
||||||
|
|
||||||
|
getRunningScript(); // get the current script.
|
||||||
|
|
||||||
|
.. js:function:: getRunningScript(pid)
|
||||||
|
|
||||||
|
:RAM cost: 0.3 GB
|
||||||
|
:param number pid: PID of the script.
|
||||||
|
:returns: Script object or null if not found.
|
||||||
|
|
||||||
|
Examples:
|
||||||
|
|
||||||
|
.. code-block:: javascript
|
||||||
|
|
||||||
|
getRunningScript(42); // get the script with pid 42.
|
||||||
|
|
||||||
|
.. js:function:: getRunningScript(fn, hostname[, args...])
|
||||||
|
|
||||||
|
:RAM cost: 0.3 GB
|
||||||
|
:param number fn: Filename of the target script.
|
||||||
|
:param number hostname: Hostname of the server running the script.
|
||||||
|
:param number args...: Arguments that the script is running with.
|
||||||
|
:returns: Script object or null if not found.
|
||||||
|
|
||||||
|
Examples:
|
||||||
|
|
||||||
|
.. code-block:: javascript
|
||||||
|
|
||||||
|
getRunningScript("example.script", "home", "foodnstuff"); // get the script called "example.script" on "home" with argument "foodnstuff"
|
||||||
@@ -15,4 +15,3 @@ getScriptExpGain() Netscript Function
|
|||||||
|
|
||||||
.. note:: A script is uniquely identified by both its name and its
|
.. note:: A script is uniquely identified by both its name and its
|
||||||
arguments.
|
arguments.
|
||||||
|
|
||||||
|
|||||||
@@ -9,8 +9,8 @@ getScriptLogs() Netscript Function
|
|||||||
:param args...: Arguments to identify which scripts to get logs for
|
:param args...: Arguments to identify which scripts to get logs for
|
||||||
:returns: Array of string, each line being a logged line. Chronological.
|
:returns: Array of string, each line being a logged line. Chronological.
|
||||||
|
|
||||||
.. note:: There is a maximum number of lines that a script stores in its logs.
|
.. note:: There is a maximum number of lines that a script stores in its logs.
|
||||||
This is configurable in the game's options.
|
This is configurable in the game's options.
|
||||||
|
|
||||||
If the function is called with no arguments, it will return the current
|
If the function is called with no arguments, it will return the current
|
||||||
script's logs.
|
script's logs.
|
||||||
|
|||||||
@@ -7,10 +7,10 @@ getServerGrowth() Netscript Function
|
|||||||
:param string hostname: Hostname of target server.
|
:param string hostname: Hostname of target server.
|
||||||
:returns: Server growth parameter.
|
:returns: Server growth parameter.
|
||||||
|
|
||||||
The growth parameter is a number between 1 and 100 affects the percentage by
|
The growth parameter is a number, typically between 1 and 100, that affects
|
||||||
which the server's money is increased when using the :doc:`grow<grow>`
|
the percentage by which the server's money is increased when using the
|
||||||
function. A higher growth parameter will result in a higher percentage
|
:doc:`grow<grow>` function. A higher growth parameter will result in a
|
||||||
increase.
|
higher percentage increase.
|
||||||
|
|
||||||
Example:
|
Example:
|
||||||
|
|
||||||
|
|||||||
@@ -5,10 +5,10 @@ getServerMaxMoney() Netscript Function
|
|||||||
|
|
||||||
:RAM cost: 0.1 GB
|
:RAM cost: 0.1 GB
|
||||||
:param string hostname: Hostname of target server.
|
:param string hostname: Hostname of target server.
|
||||||
:returns: Maximum amount of money that can be available on a server.
|
:returns: Maximum amount of money that can be available on a server.
|
||||||
|
|
||||||
Example:
|
Example:
|
||||||
|
|
||||||
.. code-block:: javascript
|
.. code-block:: javascript
|
||||||
|
|
||||||
getServerMaxMoney('foodnstuff'); // returns: 4000000
|
getServerMaxMoney('foodnstuff'); // returns: 50000000
|
||||||
|
|||||||
@@ -0,0 +1,15 @@
|
|||||||
|
getServerMaxRam() Netscript Function
|
||||||
|
====================================
|
||||||
|
|
||||||
|
.. js:function:: getServerMaxRam(hostname)
|
||||||
|
|
||||||
|
:RAM cost: 0.05 GB
|
||||||
|
:param string hostname: Hostname of target server.
|
||||||
|
:returns: Total ram available on that server. In GB.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
.. code-block:: javascript
|
||||||
|
|
||||||
|
maxRam = getServerMaxRam("helios"); // returns: 16
|
||||||
|
print("helios has "+maxRam + "GB");
|
||||||
@@ -3,10 +3,14 @@ getServerRam() Netscript Function
|
|||||||
|
|
||||||
.. js:function:: getServerRam(hostname)
|
.. js:function:: getServerRam(hostname)
|
||||||
|
|
||||||
|
.. warning:: This function is deprecated. It still functions, but new
|
||||||
|
scripts should prefer :doc:`getServerMaxRam<getServerMaxRam>`
|
||||||
|
and :doc:`getServerUsedRam<getServerUsedRam>` instead.
|
||||||
|
|
||||||
:RAM cost: 0.1 GB
|
:RAM cost: 0.1 GB
|
||||||
:param string hostname: Hostname of target server.
|
:param string hostname: Hostname of target server.
|
||||||
:returns: An array of 2 number, first number is the total RAM, second the
|
:returns: An array of 2 numbers; the first number is the total RAM, and the
|
||||||
used RAM.
|
second is the used RAM.
|
||||||
|
|
||||||
Returns an array with two elements that gives information about a server's memory (RAM). The first
|
Returns an array with two elements that gives information about a server's memory (RAM). The first
|
||||||
element in the array is the amount of RAM that the server has total (in GB). The second element in
|
element in the array is the amount of RAM that the server has total (in GB). The second element in
|
||||||
|
|||||||
@@ -0,0 +1,15 @@
|
|||||||
|
getServerUsedRam() Netscript Function
|
||||||
|
=====================================
|
||||||
|
|
||||||
|
.. js:function:: getServerUsedRam(hostname)
|
||||||
|
|
||||||
|
:RAM cost: 0.05 GB
|
||||||
|
:param string hostname: Hostname of target server.
|
||||||
|
:returns: Used ram on that server. In GB.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
.. code-block:: javascript
|
||||||
|
|
||||||
|
usedRam = getServerUsedRam("harakiri-sushi"); // returns: 5.6
|
||||||
|
print("harakiri-sushi uses "+usedRam + "GB");
|
||||||
@@ -5,8 +5,6 @@ getWeakenTime() Netscript Function
|
|||||||
|
|
||||||
:RAM cost: 0.05 GB
|
:RAM cost: 0.05 GB
|
||||||
:param string hostname: Hostname of target server.
|
:param string hostname: Hostname of target server.
|
||||||
:param number hackLvl: Optional hacking level for the calculation. Defaults
|
|
||||||
to player's current hacking level.
|
|
||||||
:returns: seconds it takes to execute the :doc:`weaken<weaken>` Netscript
|
:returns: seconds it takes to execute the :doc:`weaken<weaken>` Netscript
|
||||||
function on the target server.
|
function on the target server.
|
||||||
|
|
||||||
|
|||||||
@@ -28,6 +28,8 @@ grow() Netscript Function
|
|||||||
server, but there is no required hacking level to run the command. It also
|
server, but there is no required hacking level to run the command. It also
|
||||||
raises the security level of the target server by 0.004 per thread.
|
raises the security level of the target server by 0.004 per thread.
|
||||||
|
|
||||||
|
Action time is calculated at the start, effect is calculated at the end.
|
||||||
|
|
||||||
Example:
|
Example:
|
||||||
|
|
||||||
.. code-block:: javascript
|
.. code-block:: javascript
|
||||||
|
|||||||
@@ -27,6 +27,8 @@ hack() Netscript Function
|
|||||||
A successful :doc:`hack<hack>` on a server will raise that server's security
|
A successful :doc:`hack<hack>` on a server will raise that server's security
|
||||||
level by 0.002.
|
level by 0.002.
|
||||||
|
|
||||||
|
Action time is calculated at the start, effect is calculated at the end.
|
||||||
|
|
||||||
Example:
|
Example:
|
||||||
|
|
||||||
.. code-block:: javascript
|
.. code-block:: javascript
|
||||||
|
|||||||
@@ -6,8 +6,8 @@ httpworm() Netscript Function
|
|||||||
:RAM cost: 0.05 GB
|
:RAM cost: 0.05 GB
|
||||||
:param string hostname: Hostname of the target server.
|
:param string hostname: Hostname of the target server.
|
||||||
|
|
||||||
Runs the HTTPWorm.exe program on the target server. HTTPWorm.exe must exist
|
Runs the ``HTTPWorm.exe`` program on the target server. ``HTTPWorm.exe``
|
||||||
on your home computer.
|
must exist on your home computer.
|
||||||
|
|
||||||
Example:
|
Example:
|
||||||
|
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
isRunning() Netscript Function
|
isRunning() Netscript Function
|
||||||
==============================
|
==============================
|
||||||
|
|
||||||
.. js:function:: isRunning(filename, hostname, [args...])
|
.. js:function:: isRunning(filename[, hostname=current hostname[, args...]])
|
||||||
|
|
||||||
:RAM cost: 0.1 GB
|
:RAM cost: 0.1 GB
|
||||||
:param string filename: Filename of script to check. case-sensitive.
|
:param string filename: Filename of script to check. case-sensitive.
|
||||||
:param string hostname: Hostname of target server.
|
:param string hostname: Hostname of target server. Defaults to current server
|
||||||
:param args...: Arguments to specify/identify which scripts to search for
|
:param args...: Arguments to specify/identify which scripts to search for
|
||||||
:returns: ``true`` if that script with those args is running on that server.
|
:returns: ``true`` if that script with those args is running on that server.
|
||||||
|
|
||||||
@@ -38,3 +38,17 @@ isRunning() Netscript Function
|
|||||||
.. code-block:: javascript
|
.. code-block:: javascript
|
||||||
|
|
||||||
isRunning("foo.script", "joesguns", 1, 5, "test");
|
isRunning("foo.script", "joesguns", 1, 5, "test");
|
||||||
|
|
||||||
|
|
||||||
|
.. js:function:: isRunning(scriptPid)
|
||||||
|
|
||||||
|
:RAM cost: 0.1 GB
|
||||||
|
:param number scriptPid: PID of the script to check.
|
||||||
|
|
||||||
|
Same as the above version but with pid.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
.. code-block:: javascript
|
||||||
|
|
||||||
|
isRunning(39);
|
||||||
|
|||||||
@@ -6,7 +6,8 @@ nuke() Netscript Function
|
|||||||
:RAM cost: 0.05 GB
|
:RAM cost: 0.05 GB
|
||||||
:param string hostname: Hostname of the target server.
|
:param string hostname: Hostname of the target server.
|
||||||
|
|
||||||
Runs the NUKE.exe program on the target server. NUKE.exe must exist on your home computer.
|
Runs the ``NUKE.exe`` program on the target server. ``NUKE.exe`` must exist
|
||||||
|
on your home computer.
|
||||||
|
|
||||||
|
|
||||||
Example:
|
Example:
|
||||||
|
|||||||
@@ -1,15 +1,16 @@
|
|||||||
print() Netscript Function
|
print() Netscript Function
|
||||||
===========================
|
===========================
|
||||||
|
|
||||||
.. js:function:: print(x)
|
.. js:function:: print(args...)
|
||||||
|
|
||||||
:RAM cost: 0 GB
|
:RAM cost: 0 GB
|
||||||
:param x: Value to be printed.
|
:param args: Values to be printed.
|
||||||
|
|
||||||
Prints a value or a variable to the script's logs.
|
Prints any number of values to the script's logs.
|
||||||
|
|
||||||
Example:
|
Example:
|
||||||
|
|
||||||
.. code-block:: javascript
|
.. code-block:: javascript
|
||||||
|
|
||||||
print("Hello world!"); // Prints "Hello world!" in the logs.
|
print("Hello world!"); // Prints "Hello world!" in the logs.
|
||||||
|
print({a:5}); // Prints '{"a":5}' in the logs.
|
||||||
|
|||||||
@@ -15,7 +15,8 @@ ps() Netscript Function
|
|||||||
{
|
{
|
||||||
filename: Script name,
|
filename: Script name,
|
||||||
threads: Number of threads script is running with,
|
threads: Number of threads script is running with,
|
||||||
args: Script's arguments
|
args: Script's arguments,
|
||||||
|
pid: Script's pid
|
||||||
}
|
}
|
||||||
|
|
||||||
Example:
|
Example:
|
||||||
@@ -23,7 +24,8 @@ ps() Netscript Function
|
|||||||
.. code-block:: javascript
|
.. code-block:: javascript
|
||||||
|
|
||||||
processes = ps("home");
|
processes = ps("home");
|
||||||
for (let i = 0; i < ps.length; ++i) {
|
for (let i = 0; i < processes.length; ++i) {
|
||||||
tprint(ps[i].filename + ' ' + ps[i].threads);
|
tprint(processes[i].filename + ' ' + processes[i].threads);
|
||||||
tprint(ps[i].args);
|
tprint(processes[i].args);
|
||||||
|
tprint(processes[i].pid);
|
||||||
}
|
}
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user