Commit Graph

1026 Commits

Author SHA1 Message Date
PJB3005
a63608d023 Merge remote-tracking branch 'upstream/master' into rebase-to-vg 2017-03-03 16:31:00 +01:00
XDTM
4206c96ed3 Fixes abductor surgery designs (#24593) 2017-03-03 09:30:51 +01:00
GunHog
55c173bea5 Allows more mobs to use advanced camera consoles (#24550)
* Allows more mobs to use advanced camera consoles

Lessend mob type restrictions on advanced camera consoles, specifically
affecting drones and cyborgs.

* Remove borg adjacency check + Restrict AI

- Uncomments to AI restriction
- Removed adjacency requirement for borgs.
2017-03-02 19:42:23 +13:00
vcordie
6da76d83fd Adds the mech tesla cannon (#24252)
* Adds the mech tesla cannon

* makes it not stun

* fixes a dumb

* fixes another dumb

* makes it not blow fucking doors up instantly

* corrects an oversight

* Revert "corrects an oversight"

This reverts commit 73c713a3649deee6945f005f3c14ec926c9559f2.
2017-02-24 09:53:35 +13:00
Cyberboss
56a6eaa8e6 Overlay queuing (#23922)
* Overlay queuing

* Fix SS flags

* Don't copy on assignment

* Flags processing

* Fix icon_smoothing

* MSO's helper proc

* Legacy detection

* Make it work

* Fixes shitcode

* Fix the flag

* |= -> +=

* OK, how did I fuck that up?

* shitcode

* Conditional assoc queue while initializing

* Cleanup everything

* Orange meme

* This isn't perfect, but its the best byond will give us.

* forgot about dir

* oh ya

* This was litterally the last thing i did last night before heading to bed

You can tell can't you?

* Fixes various shit

* Let's not ever pause

* Fix the flag

* Cleaned up some missing shit. Added image dummys

* Remove the one usage of FPRINT

* Jesus get rid of this
2017-02-22 21:44:55 +13:00
Pieter-Jan Briers
9b20c1e6c2 Merge remote-tracking branch 'upstream/master' into rebase-to-vg 2017-02-18 23:40:34 +01:00
Pieter-Jan Briers
180c566468 Fixes 2017-02-18 23:39:11 +01:00
XDTM
ee84022d37 CRYSTALS ARE MADE OF CRYSTAL 2017-02-18 00:46:33 +01:00
XDTM
668c8b6bae Fixes a design 2017-02-17 08:30:22 +01:00
XDTM
6d1b976cbf Adds a bluespace crystal material, balances some R&D recipes around it. (#23984)
* Everything

* FAKE CRYSTALS

* make up your mind

* eat your bluespace, dear

* Reverts upload board cost, increases power of reaction_mob teleport
2017-02-17 09:50:49 +13:00
kevinz000
0ced9342b9 [READY]Aimable wizard lightning bolts (#23723)
* ZAP!

* YOU DID NOT SEE THAT

* YOU DI NOT SEE THAT 2

* object orientated pr

* gdi

* protection

* object orientated pr v2

* REEEE

* blacklists

* Update magicarp.dm
2017-02-08 18:31:52 +13:00
oranges
e56743458e Merge pull request #23629 from XDTM/TheLAW
Adds a Law Removal Module, other minor law changes
2017-02-08 18:21:26 +13:00
Iamgoofball
cc0a982573 Deepfrying : MAKE SPACE STATION 13 GREAT AGAIN (#23618)
* MAKE SPACE STATION 13 GREAT AGAIN

* MAP CHANGES

* '+++++'++;,...,':+##+@@#####@@@@@@@@@@@@@@@@@@@@##+'`..,,,'''''''''''+##++'',```..,:;+#######++++''++++;.....:+++##++''''''''''+'+'''+++++++#+++########################+';;:,,,,,,,::::::'++###########
+'++++'++;;`.,.;'+##########@@@@@@@@@@@@@@@@@@@@@+++;...,,+'''''''''''###+'''.```.,;#+#######+#+++++++:'.,...;:++###++'''''''''+'+''+++#++++#++++########################''';:,,,,,:::::::;'##+#########
++'++'';:.:`,..:;++#@########@@@@@@@@@@@@@@@@@@@@++#'....;''''''''''''+##++'':```.::+###########'+++++::.....;;+++###+''''''''''+'''+++++++++++++#########################+;'',,,,,,::::::::'##+########
+++++++::.,`..,.+++#########@@@@@#@@@@@@@@@@@@@@@@++;:..::'''''''''''''++++'',. .`.#+##+########+##++++,..`..,+++++##'+''''''''''+'+++++++++++#+++##+######################+;'',,,,,::::::::::+#+#######
++''++';:,..`.;'+++##########@@@@@#@@@@@@@@@@@@@@@+';:;,::+''''''+''''''#++'+,:+`::+++##+##########+++++...`.'++++++##:'''''''''''+'''++++++++++++#+#+#######################''',,::,:::::::::;;+#######
++++'+++:...``;+''++##########@@@@#@@#@@@#@@@@@@@@#;:++#::+''''''''''''''#+':,;'+,,+++###+##########+++''`...#+++++++##::;;;'''''''''''+'+++++++++++++###+####################';';,,,::::::::::;::+##+##
+++++'+++`..,`;++'++##########@@@@+#@#@##@@@@@@@@@@:'++'+,+'''''''''''''''++,+'''+,++++##############++'+`.``;++++++++#;::,,``..:'++''+'++++++++++++++##+######################+;;';;;:::::::::;:::;+###
++++++++':.,;:,'+++++##########@@@@'+@+++@@@@@@@@@@#+++'+#''''''''''''''''+++'''''+++++##############+'++:`.:;+++++++++#:::...``.` `,'+'''+++++++++++++##########################;;;;;;:::::::::;;:;;;##
'+++++'++,:'':,+++++++##########@@##+#'+++#@@@@@@@@##++#'''+'''''''''''''''+#''''''++++###############+'+:;:::+++++++++++:,...`.````````:+++++++++++++++##+#######################';;;;;;;:;;::;;;;;;;:'
'++++++'#:'+'+,+++++++############@@++';+++#@@@@@@@@#++++++++'+'''''''''''''+#'''''+'#+###############+':::+;:+'+++++++'+',,...```````.....:'+++++++++++++#########################'';;;;;;;;;;;;;;;;;;;
++++++++;+''++++++++++#############@@;':++#@@@@@@@@@@#+++++++'+''''''''''''''++'''''+'#+##############'+:;+'+:'+++++++++'+:':.``````````.`..,.;++++++++++#++########################';;;;;;;;;;;;;;;;;;;
#+++#+++'+'''+'++++++++############@##'+:##+#@@@@@@@@@#++++'+++''''''''''''''+++'''''++#+#############++;''''+,++++++++++'+:+;.``````````......,:'++++++++#+##########################;;;;;;;;;;;;;;;;;;
+++++++'+'+''+++++++++++##########@@#+#+''++##@@@@@@@@##+++'++''''''''''''''''+#''''++++#+############+'+'''''+++++++++++''+,':,`````````.....,,,,,;+++++++#+##########################';;;;;;;;;;;;;;;;
++#'+#+'++''''+'++++++++##############+#+;+#@@@@@@@@@@@#+++'+'+''''''''''''''''++''''+++####@##########''''''''+++++++++++''+;+:,`````````......,,,::;+++++#++##########################';;;;;;;;;;;;;;;
++#+++#+''+''''++++++++++#+##########@@#@+'@@@@@@@@@@@@##++++++'''''''''''''''''+#''''++##+############'''''''+++++++++++++'';++;.`````````.....,,:,,,,;++++++#+#########################';;;;;;;;;;;;;;
+++#++#++'+''''++++'++++++++########@@@#@@'#@@@@@@@@@@@@#+++'+''''''''+''''''''''++''++####+##########++'+'''+''++++++++++++++'++.,````````.....,,,,,,,.,:++++#++#########################+';;:;:;;;;;;;
+++##++++'''''''''+''+++++++########@@@@#@@+@@@@@@@@@@@@##++++''''';'''+'''''''''+++'+++####+#########++++''''''+++++++++++++++++',,.``````.....,,,.,,,,,:::+++++##########################+';::::::::;;
++++#+'+#+'''''''''+''++':+#+###@##@@@@@@@@#@@@@@@@@@@@@@##+++''''',:;''+'''''''''+++'++####'##########++''''''++++++++++++++++++#.,,.`````......,,,,,..,,::,,+#+#+##########################'':::::::::
+++++#+'+#+''''''+''+'+',,++#+#####@@@@@@@@@#@@@@@@@@@@@@@#+++'''';.`:''+''''''''''++'++##+;;+#########++++'''+++++++'+++++++#++++'.,..`````......,,,,.,,,,,,,,;++#++#########################'';:::::::
++++'##''++'''''''''''':.:';#+######@@@@@@@@@@@@@@@@@@@@@@##+++''', .,,,,'''''''''''+#:::+',::+########+++++''++++++++++++++++++++#.....````......,,,.,,,,,,,,,:::++++#########################'';::::::
+++'''++'+++''''''''+''.,::;+#######@@@@@@@@@@@@@@@@@@@@@@###+++',: ``.,+'''''''''''++#,;:;:;';#########++++'+'++++++++++++++++++++:,....````.........,,,,,,,,,,::,:#++#########################'';,::::
+++'+'+++''++'''''':,;`.,,:,'+#+#####@@@@@@@@@@@@@@@@@@@@@@###+,:.`` ``;'''''''''''''++;;,.;,;;'########+++++''++++++'+++''++++++++#`.....````...,..,,,,,,,,,,,,::,::'#++########################+''';::
;;++'''+#+''+''''+'':....,,::'#######@@@@@@@@@@@@@@@@@@@@@@@##+':`````,+''''''''''''''++:..,',;,#########+++++++#++''+++++''++++++++;.``..`````....,,,,,,,,,,,,,,::,::;'#+#+######################+;'';:
,.:'''''++''''''''+';,.`..,;:+####@@#@@@@@@@@@@@@@@@@@@@@@@@###+,`````'''''''''''''''''#+.,,:'::+#########+++++#+++'+++','+++++++++++`.```.`````...,,,,,,,,,,,,,,,::,:;;:+#+########################;'';
...;'''''++'''''''++',..`..''+####@@@@@@@@@@@@@@@@@@@@@@@@@@@#+++:```.:'''''''''''''+''+;;.,:;'++##########++++++++++++;.,:+''++++++++`.````````....,,,,,,,,,,,,,,::,::;;::##########################';'
...''':''+++'''''''+':.`,,.;#+####@@@@@@@@@@@@@@@@@@@@@@@@@@@##+'+ ``:,'''''''''''''+++';+++,:;#############++++###++';'.`:'''''+++++++..```````....,,,,,,,,,,,,,,:::::;;;;,++########################';
...`,:'+''+++'''''''#::+:,:;#######@@@@@@@@@@@@@@@@@@@@@@@@@@@@++;:.,,,'''''''''''+'+++;'+++':'#############+++####;;+,:..,:++++++++++++:````````...,,,,,,,,,,,,,,::::::;:;;;:#########################+
....`:+''''+++''''''::'++;;;#######@@@@@@@@@@@@@@@@@@@@@@@@@@@@++:,;;,,''''''''''+'+++':+++++':#############++#####;:;`,,...;:+'+''++++++' ``````...,,,,,,,,,,,,,,,:::::;;;:,':+########################
...`:'''''''++'''''+:++++++:########@@@@@@@@@@@@@@@@@@@@@@@@@@@#':;+'',+''''''''''+++'+++++++#'##############+######:,...,:::;'++++'+++++++```````...,.,,,,,,,,,,:::::::::;::,;;'#######################
...`;''''''''++'''''+++++#++#########@@@@@@@@@@@#@@@@@@@@@@@@@@@;:+''''+'''''''''''+++'+++++++#+###################+#:::.```.......,:'++''++``````...,,,,,,,,,,,,:::::::::;::::::'######################
...`+'''''''''++'''''+++++#+###########@@@@@@@@@@+@@@#@@@@@@@@@@#++'+''''''''''''+'++++++'++++##+###############@#+',.`` `.````````....,'+++' `````..,,,,,,,,,,,,::::::::::;::,;:;;#####################
...:'''''''''''+'''''+++++##+############@@@@@##@###++#@@@@@@@@@@+++'+''''''''''''+'+'''+++'+++#################;.`  ``````````````````.`.;++;`..```,,,,,,,,,,,,,:::::::::::::::;;';+###################
`.::+'''''''''''''''''+++++#+############@@@@@##@@##+++@@@@@@@@@@#+++''''''''''''''+'+'''+'+++++++###########+. ` `````````````````````````.'+,`..``,,,,,,,,,,,:,,:::::::::::::,;:;;;+##################
++::''''''''''''''''''+++++++############@@@@@@###@++'++@@@@@@@@@@+++'''''''''''''''+''''''''++++##########+.  `  `.`````````````````````````:+``.``.,,,,:,,,,,:::,::::::::::::::;;;;;+#################
''+';''''''''''''''''''++++++############@@#@@@#####++###@@@@@@@@@#++'''''''''''''''''''''''''++++#######'.   `  ``.````````` ```  `````.```` `'...`.,,,,::,,,,::::::::::::::::;:;;;;;;'################
'''''''''''''''''''''''++++++############@@@@@@#####++####@@@@@@@@##+''''''''''''''''''''''''''++++####' `` ``  ````` ` ```````````````````.,:.``,,..,:,,,::,,,::::::::::::::::;::;;;;';'###############
'''''''''''''''''''''''+++++++###########@@@#@@@##########@@@@@@@@@#+'''''''''''''''''+'''''''''++++##:     `  ```` `` ``````````````````````.,,:`.:..,,,,:::,,,:::::::::::::::;;:;;;;;;''##############
''''''''''''''''''''''''++++++############@@##@@####@@+##@#@@@@@@@@#+'''''''''''''''''''''''''''+++++`  ` ``  ````   ````.```````````````...````````,,,:,,,::,,,:::::::::::::::;;;;;;;';';'#############
''''''''''''''''''''''''+++++++#######+####@######@@@@###@@@@@@@@@@@#''''''''''''''''''''''''''+'+++  `` ``  ` ```   ```.```` ```````` ```..``````````::::,::,,,::::::,,:::::;::;;;;;;;;''''############
'''''''''''''''''''''''''++++++#######++#########@#@@@@##@@@@@@@@@@@#+'''''''';`;'''''''''''''''+''  `` ``   `   ` ``````         ```````` ````````````,;:,,:,,,::::::,,,::::;;;;;;;;;;;'';;'###########
''''''''''''''''''''''''++++++++###++;'+#######@#@#@@@@@+@@@@@@@@@@@@+''''''';``:'''''''''''''''''```` `` ``  `  ` ```            ````````````.``````````;:,,:,,,:::::,,,:::::;;;;;;;;;;;''';'##########
''''''''''''''''''''''''''''+++++###;':'+####@##@@@@@@@@@@@@@@@@@@@@@#''''''':``:;':'''''''''''';````     `   ```                ````````````..,`.`````.``;:,::,,:::::,,,:::::;;;;;;;;;;;;;'';;#########
''''''''''''+:''''''''''''''++++'';,;;','########@@@@@@@@@@@@@@@@@@@@@+''''+',```.,;'''''''''''; `   `   `   ``                `` ````` ````..``,,.`````.``::,:,:::::,,,,:::::;;;;;;;;;;;;;;''''########
'''''''''''+,`;''''''''''''++'++#;',,:;':++#####@@@@@@@@@@@@@@@@@@@@@@#''':,``.`` ,'''''''''''' `` ``   `   `       `` ``        ```````..```,``.``.````````:::::::::,,,,,::::;;;;;;;;;;;;;;'''''#######
''''''''''':`.:';,''''''''''''+++'::,:'':'+######@@@@@@@@@@@@@@@@@@@@@@+''+.```.``+'''''''''''` ` ``   `   `           `      ```` ``````..``..````````````.`.;::::::,,,,,::::;;;;;;;;;;';;;''''';######
''''''''''':...`::''''''''''''''++':,,;'':+######@@@@@@@@@@@@@@@@@@@@@@@'''+`````''''''''''''' ``` `  `               ``         `    ```.,,,`....```````````.,;;:;::,,,:::::::;;;;;;;;;;;;;;''''';#####
''''+'''''``...`,'''''''''''''''+#;,:::;';#######@@@@@@@@@@@@@@@@@@@@@@@#''''` ``''''''''''''`````` ```                          `` `````..`,:,..````````````.`;;;:;,,,,,::::::;;;;;;;;;;;';;;;'';';####
'''''''+,,```..`+''''''''''''''+++'':::;'++#######@@@@@@@@@@@@@@@@@@@@@@@''''```,''''''''''';`````` `` `                            ````````.:;.````````````...`;+:::,,,::::::::;;;;;;;;;;;;;;;;;;'';###
'''++'+''`````.;'''''''''''''''+++'#'+;:'+#####@@#@@@@@@@@@@@@@@@@@@@@@@##''',` :'''''''''''```` ,`` ``` `          `   `     ` `````````````.::,`````````````,.`'++:;:,:::::;::;;;;;;;';';;;;;;;;''';##
+'+''++'+:`````''''''''''''''''++'####+'+#########@@@@@@@@@@@@@@@@@@@@@@@@+'+,:,,:''''''''',```````` `.``          ``    ```  ````..,,...`````....`````````.```.``++#':;;;:;;::,:;;;;;;;;;;;;;;'';'';';#
'++''+'''+ .``:'''''''''''''''''++#####''########@@@@@@@@@@@@@@@@@@@@@@@@@#'',:+.,'''''''''```.`. ``` ``  `          `..  `  ``..:;:.....:......`....```.`````.....++++';;:;;:::;;;;;;;;;;;;;;;;';;';'';
'+''++''''; `:,'''''''''''''''''+#######;##########@@@@@@@@@@@@@@@@@@@@@@@@';,+'+.'''''''':`.`.`. ````.   `        ``.`  `````.::,'':`.`.`,.......`,.`.`...`.`.`..`:++++#';;::;:;;;;;;;;;;;;;;;;;;;;;'''
+''++++'',,,+,:'''''''''''''''''###################@@@@@@@@@@@@@@@@@@@@@@@@#,'''''''''''''`... `.`````.``       ```````   ```,';;:`:+.,,```.,,,,...`......```.....``'++++##;;::;:;;;;;;;;;;;;;;;;'';;'''
++'+++'+',,+'+,''''''''''''''''+####################@@@@@@@@@@@@@@@@@@@@@@@@''''''''''''''`..``````````````     ` `````````:'+++'';:,:`,,.,..,,.,,..`....`..:,..`````++++#+#+;';;;;;;;;;;;;;;;;;;';';;''
''''+++'+,+'''+''''''''''''''''+####################@@@@@@@@@#@@@@@@@@@@@@##+'''''''''''';.,```. ``````` `     `  ```` ``.:###+#++';;;:,..,..,:,,,,.`.,,,....````````.++++++##+;;;;;;;;;;;;'';';;'';;;;'
''+''+++,+'''''''''''''''''''''+####################@@@@@@@@@@+@@#@@@@@@@@@#@'''''''''''',,.``.``````````` `   `````` `.::#++'++++'';;;;;,,,,,::::,....``......````.``'+++++####';;;;;;;;;;''';'';;;;;;;
''''''++++''''''''''''''''''''+++####################@@@@@@@@@#+###@@@@@@@@#@+''''''''''',..`,,.`.`.```````` ````.````,.'#++'+'##++';':;;;;;'';'''::,,...,:,...........+++########;;;;;;;;;';';;';;;;;;;
'''''''++'''''''''''''''''''''++#####################@@@@@@@@@@#++#@@@@@@@@@@@''''''''''':,`.::,..`:```.```````.```...:##++'''''#+''';;:'''':;:;:::::...,.,,,...`.....`'+##########;;;;;;;;';';;';;;;;;;
''''''''++''''''''''''''''''''++#####################@@@@@@#@@@#++#@@@@@@@@@#@+'''''''''',,.,,::,``;`...`````.....`,,;+#+'##+';;##+;;::;;:;:::,,,,,.....,,,,,`..```.``.`+###########+;;;;;;';;';;';;;;;;
'+'''''''''''''''''''''''''''''+######################@@@@@@#@@#++##@@@@@@@@@##'''''''''',::...,:.```.,`````.,,.::;'+##+++#`@';'##+::;'',,:,,.:,,,,::,,,,..,.....```.``.:#############'';;;;;'''';'';';;
+''''''''''''''''''''''''''''''+######################@@@@@@#########@@@@@@@@#@''''''''''::`````,,` ``....`.::;;;;'++##+++###+';+#+:::;;.:.::,,`,.;:.,..`.:,,....``.`.```+###########+#+';;';''''';';;';
++''''''''''''''''''''';''''''++#######################@@@@@@##@@####@@@@@@@@@@'''''''';;` `````.``` `.:`..:;''';'''###''+###;;;+#':,,'.,.,,,,.,.,,`:.,,,,.....,.```...`.;###############';;;'';'''';;;'
##+''''''''''''''''''''`,'''+'++#######################@@@@@@@#@@@+###@@@@@@@@@+''''''''.`` `````.```..:,:,;''';;'''###'''###;;;##::,::`,,:.,,,.,..,,,,...`.`.....````````################+;;''';'''';;;
#++'''''''''''''''''';`..;;,,'++##################+'####@@@@@@@@@@@+#@#@@@@@@@@#'''''''..````` ```.`...:;,;;';';;;;;+##+'';';;;;#+:::'.`,::,:...,.:.,...........```````.``:################+;''''''';';;
++++''''''''''''''''+,`.` :,+''++###########+####+:;:####@@@@@@@@@@##@@@@@@@@@@@+''';'.`````     ````.,::;;;;;';;;;;;+##''''';;+#;:,:;`.,.::,,,.,,..,..,........````.``..``#################+;''''''';;'
'++++'''''''''''''';.``..`.''''++############;;'+'.;;'####@@@@@@@@@@#@@@@@@@@@@@@''''.````      ``.`..,:::::;;';;:;;;;'##::;;:'#;:,,'.::.,..,,,,,.,,.,,,......`,,..`````,``'#################+;'''''';''
+''+++'''''''''''',:`````.:''''++###########++;;;:,,;++###@@@@@@@@@@@@@@@@@@@@@@@+'';`````    ````,.`..;::,:;;;;;::::'';##',;++;:,:;:,...,,,,,,,.,,,,,,,,,,...,,.`.```.`,.`,##################';'''''';'
++''+++'''''''''''',`````,+''''+++##########++';,:::,''+###@@@@@@@@@@@@@@@@@@@@@@#''.``````````.......`,:,,,::::::,::;';;'###+;;:,,:.`..,.,,.,..,:,...,......`.,,..````....`###################';'''''';
''++'+++''''''''''';.``` +''''''++##########+++;,,:,.''+#@#@@@@@@@@@@@@@@@@@@@@@@@';.`````````..```,...,:,,,:::,,::,,,''';;;;;;:;;:``..,,,,,.,,:,.,...,,,.....,.`..``````.:.'###################';''';''
++''''+++''''''''''+````,'''''''+++#########++++,.,::;''##@@@@@@@@@@@@@@@@@@@@@@@@+...````` `,,..``.....,,,,::,,::,:,.,;''';:,,;;:..:,:,..,,,,,..:,,,,,,.......,....``````:.:####################'''''''
++'++''+++'''''''''+:` :,'''''''+++#########+++;;.::;:+###@@@@@@@@@@@@@@@@@@@@@@@#:```` ````,..,..```,...,.,.,.,,,,....:;;;'+'';,....`,.:,.,,,..:,,.,,:,....`..,,....``````,.#####################''';;'
''''''''++''''''''';::#,:;'''''''+++#######++++;'+.;;:+###@@@@@@@@@@@@@@@@@@@@@@#;``  `````.``.:,,...,`.,.....`..,..`.,,,:,.``..`.,,,,,,,,,:..,;,,.,::,,......,,,:,.`.`````..+#####################'''''
'+'+'''''++'''''''+,,+'+,,'''''''+++#######+#+';'+#:;;####@@@@@@@@@@@@@@@@@@@@@@+```` ``..,;:,.,:,,....`......````.`.``.,..``...,,,,,,,,,,,,.,:,..,::::,....,....`...```````.'#####################+;';'
''''''''''++'''''';:+'''+:'''''''+++#########+''+#+#:'###@@@@@@@@@@@@@@@@@@@@@@#..``   ...###';,.,,...,.....``.`````.`....,.,..,..,...,,,:,,,,,..,,:::,,,,:,......,,`````````:######################+;''
+'''''''''''+'''''''+'''''''''''+++++########+++++#+#;###@@@@@@@@@@@@@@@@@@@@@@;.``    `..++##+;..,...`,.......`````.`.`..,.,.,..:,.,:,,:,,:,,,,,::::;:,,,,:,,,,,.`..````````.#######################+;'
'+'+''''''''''''''''''''''''''''+++++#######+++#++++##+##@@@@@@@@@@@@@@@@@@@@@#.```     ...,'+++.......`,...`.````.`...,,..,,,.,,..,..,,:,,,,,,.,,:;;;:,,........,,...```` ``.########################+;
'''''''''''''''''''''''''''''''''+'++##+##+++++#+++#+####@@@@@@@@@@@@@@@@@@@@@;.``````````   ..;:...```.````.`.`````.,..,.,,,,::,,,.,,,..,.,.,,,::::::,,,..,,,........````````;########################+
'+''''''''''''''''''''''''''''''''''+++++#++++'+#+++#####@@@@@@@@@@@@@@@@@@@@#.````````` ``  `  ,.....`.....``````...`...,:,:,,.,.,,,..,,,:,,:,,,,,::,,,..,,,,,..,...``` `````.#########################
''+''''''''''''''''''''''''+++++++++#++#++++++'+++'+######@@@@@@@@@@@@@@@@@@@;.`````````` `` `  `.,.``.``..`````.`...,.,.,::;;'';:::,:::::,,...,,,,,,..,,,,,,......,...````````#########################
+''''''''''''''''''+++';:.```.````..,,.:::;'+++++#++++#####@@@@@@@@@@@@@@@@@@.``````````  `.`   ``.`.``..``....,,,,.,::,,;;;;:,`.;:,,,:,,.,,,,,,,,,,,,,,,:,,,..........``````.`;########################
'''''''''''++++';:,.````.....``......,,,,.:,.,,...,,;'+#####@@@@@@@@@@@@@@@@+.`````````````.,,.`...``.``.....`,.,:,;,:,::,,.`````.,:,,...,,,:,,,,,,::,,,:,,,,,,,....```````````.########################
'''''''+++;.```.......```..`````.`...,,,..,,,,,..,.,,,,:;##@@@@@@@@@@@@@@+@@:.```````````````.,..,......,:::,::,,,,.` . `.`....,,``..`..,`,.,,,,,,,,,,,,,,:,,,,,.....``.`.````.`########################
'+#+;;,......`.``..```````.``````....,,.,..:,..,.,...,,,,:;#@@#@@@@@@@@@@###..``````````..``  `.`...`.,:,,...```````.,.,..,,:;;:``.``````..,.,:,,,,,,,,....,,,,,,,....````. ````'#######################
,.``,...,``..````..```````.```````....,,,...,........,,.,::;;@@@@@@@@@@@@@#'.``````````....`````....`....`` `..``.:'+++++++##;.``,.````...,,,,,,,,,,,,.,,,,,,,,,..,,.````.`,```.,#######################
.....,...`````````````````...````.....,,,...,,...`...,,,,:;:;:#@#@@@@@@@@@#:..````````....``````....``````..```,;+''''++++'.  ``,,```....,,...,,,,,,,,,,,,,.,,,,..``..`,.``.`````#######################
...`.....`````````.````````..`````...,,,,,..,,........,,,,:;;;;#@@@@@@@@@@@,.`````.``....``..`..`.`.```.````.:'++++++++':` ````,,``````,,,..,,,,,,,..,,:,:::,,,..,.``....````````#######################
``........`````````````````..`````...,,,,,,..,,........,,,:::;;;@@@@@@@@@@#,.`````.`.........````` ```````,;+++++###;. ``` ``.::``....,........,,,,,,,,,:,:::,,....,.`..`.`...```'######################
``......`.`````````````````...`````..,,,,,,..,,........,,,,:;;;;;@@@@@@@@@'..````............`.`````..``,'++#++++#'```   ``.,;:..`....`...,,,,,,,,,,,,,,,,,,....`...`.`.`..` ````:######################
```.......``````````````````..`````..,,,,,,,..,,.......,,,,::;;;;;@@@@@@@@:..```............`..```.,.`.;+####++#+.  ` ``..,;;:..`.......,.,,,,,,,,,,,:,,,,,,..,......``.`` ```````######################
```......```````````````````..`````...,,,,,,..,,........,,,::;;;;;'@@@@@@@:...````.`..........``.....,+#######+:   ```.,:;;:,...,.....,,,,:,,,,,..,,,,,:,,,,:,`.......````.`````` ;#####################
````......```````````````````..`````..,,,,,,...,........,,,::;;;;;;;#@@@@#,...``......,...`..``.,,.:'########:` ```,:::;;,,,..,,,,,,,,,,,:,::,,:::,:,,,,,:,,,::.....`````````.`````#####################
````......```````````````````..`````..,,,,,,,..,.........,,:::;;;;;;;+@@##,...```...,........`,:,:;+##++''+;`  ``.:;;::,,,,..`....,,.,::,::::::::::,,:,,:::,,,.,,.,..````` ` ` ```,+####################
``````.....```````````.``````...````..,,,,,,,............,,,::;;;;;;;;;@@+,........,,,,,,....,::;+#++'''':`  ```,';::,,:,,..,,,,,::,,:,,,::,:::;:::::,:::::::,,.,,,.,``````  ` ````.+###################
`````......```````````````````..`````..,,,,,,..`..`......,,,::;;;;;;;;;;+#,.......,,,,.,,,..,::+#+++''';`  ```.;:::,..,.....,,,,,,,::,,,:,,:::::::::,:,:::::::...,.,....`````     ``:###################
``````.....````````````.``````..`````..,,,,,,,............,,::;;;;;;;;;;;;,.......,,,,,,,,.,,:+++'''';.   ` `:;;::,,,.`...,..,,,,,,,,.,,,,,,,,,::::,:,,:,::,,::,....,,.``````.    ``.###################
``````......``````````.```````...`````..,,,,,,............,,:::;;;;;;;;;;;,,......,,,,,,,,,,,++'';;;,`````.,;;;:,:,,,......,,,,,,,,,.,,,,,,,,,,,,:::,,,,,.,,...,:,.```...`````.`   ``;##################
```````.....``````````.```````...`````..,,,,,,..`..........,:::;;;;;;;;;;;,,......,,.,.,,,,,'+';;;:`  ```,;;:;:;,,,,,...,.,,,,,,,,,.,,,,::,:,:,.,,,:::.,,...,...,,..` ```.,``` `. `` `+#################
`.`````......``````````.```````...`````..,,..,,............,:::;;;;;;;;;;;:,,,...,,,.,,,:::;+';;;.` ``..,;;::,:,:,::::,:,,,.,..,....,,,,,,:,,:,..:,,:,:......,,...,`..  ``.,```` ` ```:#################
...`````.....``````````..``````...`````..,,,.,,..`.........,,::;;;;;;;;;;;,,,,...,,:,,,:::;++'':````...:;::::,,:::;;;;::,..........,.,,,,,..,,,,,,,,,,.,......,,,....`..`````` `  ```` +################
..```````.....``````````..`````...`````...,,..,,...........,,::;;;;;;;;;;;:,,..,,,,::,,::;++'+:`.....,:;:,:;:,;:;;;;:...,..........,,,,,.....,,,,.:..,,.....,..,,.,.```..````       ```,+@##############
...``````.....``````.```..```.`...``````..,,..,,.``.........,:::;;;;;;;;;;:,,,..,,:,,,,:+++:,,`..,..,:;::::::::;;,...`.........`.,..,,...`.`..,,,..,..:.........,.,,..``.,` ``   `  ``` ++@#############
,,.``````.....```````.``...`````...`````...,,.,..``.........,,:;;;;;;;;;;;:,,,,,,,::,:'#++:,.`......,:::;::;:;:,..`...............,,,.....````...,,,,.,:,....,,....,,,,.`...`        `` ;+##############
,,..``````.....``````..```..````...`````...,,.....`.........,,;;;;;;;;;;;;:,,,,,,:;:;+##+;,......,,,:;;;;:;;,,...```.````````...,,,....`````````....,,,,:.....,`.....,,,,.`...        .`.''#############
,...``````.....``````..```..`````..`````....,,.,,.``........,,:;;;;;;;;;;;::,,,,,;::+#++',.....,,,,:;;;;;::::,:....`````````........`.`.`.`.........,,,.,,.`...,...``....,.`.``       `:`'++@###########
....```````....```````..`...`````...````....,,..,..`.........::;;;;;;;;;;;::,,,,,;:'#++',`....,,,:::;';;:,.`.,,:,,.````````..`.......`..`..```..``...,.,.,.`..,...`.``..``..``         ;;''++###########
....``````.....```````.....````......```...,.,...,..`.......,:::;;;;;;;;;;::,,,,::;+#++;`....,:,::;;;;:::,`.```.``.........`.......`..............``...,...`.``....```````````  `      `+'''+###########
.....``````.....```````...``.........``....,,,:,..,.......,.,,;:;;;;;;;;;;::,,,,::++'++,....,,,:;';;:;:::.,.````````........```.....`..........`..``.`.....`...`,..,..` ` `````       ` '++''+#@########
.....`````......``````....`..........,..`........,,,..,.,,,,,,:;:;;;;;;;;;;:,,,,::#+'+;.,..,,,:;;;;;:::,,..,,...```` `......`...```................``````````...`,...,``` ```           .'++''++@#######
..``..````.......`.``....,.``....,:;;;'''+'+'+++++'';::,,.,,,:;;;;;;;;;;;;;:,,,,:;#'+#:,..,,,:;;,`:::,::,:,,,,,....```````.......````...........`...```````````.......:..`   `         ` ''++''+'#######
......````.,..,..`````.,:;'+++'''''''''''''''+++++++'+'+'+++++';;:;;;;;;;;;:,,,,:'+'+'.,.,,,;;;.``.::::::,,,,,,,,.........`..`..`.``````.........`...``````.```..,.,`.,:.``              `''++''+'+@####
........`...``.,:;'+++'''''''''''''+''''''''''++++++++'++'+'+++##+';;;;;;;;::,,,:'++#;,,,,:;;;.````.::,,:,:,,,,,,,.......,..........````.......`.`..`..`````````..,,....,,`.`         ``  ;'+++'++''####
....,.`.,'+++++'''''''''''''''''+''+'''''''''++++++++++++++++++++##+;;;;;;;;:,,,:''++.,,,::;;:,`````,,,,::,:,,,,,,,,..,.,...`.....`````...`.......``.``.````..`...`,.``...,```     `    ` `''++''+'''#@#
...,;'++'''''''''''''''''''''''''+''+'''''''''++++++++++++++++++#####';;;;;;:,,,:''+,,:,::;;;:,`````:.,:,::::,:,,,,,.,,,``..........``````.``.......```..`..,.```..`..```````           `` ;''+++'+''''#
++++''''''''''+''''''''''''''''''+''++'''''''''++++++++++++++++++######;;;;;::,,:'+'::,::;;;;;..````,,`,::,::::,:,,,,.,,,.............```..`...`...``.``..``,..```.``.`.``               ` `''+++'''''''
+++'''''+'''''++''''''''''''''''''''++'''''''''++++++++++++++++++#######';;;::,,;'+:::::;;;;;;`.````.:``.:::,::::,,,,,.,,,,..............```..`...`...```,..`,,,```..`` .`               ```'''+++''''''
++''''''''''++'++''''''''''''''''''''+'''''''''++++++++++++++++++########+;;;,,,:;;;:::;;;;;;;,..````.```,,::,,::::.:,,,,,,,......,.......``.....,.``..``.,.`.,,,..`..    ``             `` ,'''+++'''''
++++'''''+''+++'+'''''''''''''''''+++''''''''''++++++++++++++++++##########;;:,,;;;:;;;;;;;;;;;`..````````,,,,,,,::,.,,,,,,,............,.`.``....,.`..```,:`...,.,``.`    ```           ````''''+++''''
++++''''''+'+++''+''''''''''''''''++'+''''''''''+++++++++++++++++##########+;;,,;;::;;;;;;;;;;;```````````...,,,,,::,,,,,:,,,..............`...,...,``..``.,,..,,,,.```.     ``` `     ``````''''+++''''
++++''''''++'+++'++'''''''''''''''+++'+'''''''''++++++++++++++++++##########+;:::;;;;;;;;;;;;;;`````..```````,,,,,,,,,,,..,,.,,....,...........,,...,``..``.,...,:,,.` `.       ``      ``````''''+++'''
++++''''''+++++++'+'++'+'''''''''''+++''''''''''++++++++++++++++++###########';,;;;;;;;;;;;;;;;:````...```.``..,.,,,,,,,...,,,,.....,,..........,,,.,.`...```:,..,,,,,`  `        ``    `````.;'''++++''
+++++'''''''++++++'+'++++''''''''''+++'''''''''''+++++++++++++++++############;;;;;;;;;;;;;;;;;;````....``..``.,.,,,,,,,....,,,,.,.,.,.......`..,,,,.,.```.`,.,...,,,,..                 `` `.,''''+++''
+#++++'''''''+++++'+++++++''''''''''+++'''''''''+++++++++++++++++++###########;;';;;;;;;;;;;;;;;````.....``.``,,..,,,,,,,,..,,,,,.,........`.``.,,,,....``..`.,,.,....,..                `` ``,''''+++''
##++++'''''''++++++++++++++'''''''''++++''''''''++++++++++++++++++++##########+;;';;;;;;;;;;;;;;```.......````,,..,,,,,,,,,..,:,,,.,..........`..,,,.,,...`...,.,`.,...``.                ```..,'+''+++'
##++++''''''+'++++++++'''++''''''''''+++''''''''+++++++++++++++++#++###########;;;;;;;;;;;;;;;;;:```.......``.,,..,,,,.,,,,,.,::,,,,.....,....``..,..,.,..`..`.,..```..`` ``              ```.,`:;'++++'
###+++''''''+++++++++++''++'''''''''''++''''''''++++++++++++++++++#+###########';;;;;;;;;;;;;;;;; ```.......`:,,,.,.,,,,,,,.:,,,:,....,........`..,.,,.,.,``....,`..``.``` ` `            ` .`:;,:;''++'
###+++'''''''+'++++++++'+'+'''''''''''+++'''''''++++++++++++++++++##############;;;;;;;;;;;;;;;;;.``.........;:,,,,,,,,.,,,:,,,,,,,....,.....`..`.,..,,,,,,.`.``.`  .``,`````              ` ..:;;:;++++
####+++'''''''+++++++++++''''''''''''''+++''''''++++++++++++++++++##############+;;;;;;;;;;;;;;;;,``.`......,;:,,,,,,,..,,,,,,,.,,,...,.......`.`.,`,,,,,...`..``.  `.  .``````            ```.:::::;'++
####+++'''''''+++++++++++'''''''''''''''++''''''++++++++++++++++++###############;;;;;;;;;;;;;;;;.```.`..,..,::,,,,,.,,,,,,,,,,,...,.................,:,.,.,......`   `  `` ````           ```..';::;;'+
####+++''''''+'+++++++''+'''''''''''''''+++'''''++++++++++++++++++################';;;;;;;;;;;;;;`.```.......::,.,,,,,,,.,,,,,,,,.,,,`.,.,.........,.,,:,,,.,.`..`,`         `` `    `       ``.`,:::;;'
#####++''''''+'+++++++'''''''''''''''''''++''''''+++++++++++++++++##################+';;;;;;;;;;;,..``....,..:,,.,,,,.,,,,:,,,,,.,..,.`.,,.,........,.,:::.,,.``....`        `````           ```.,:::;;;
#####+++''''''+'++++++'+''''''''''''''''''++'''''++++++++++++++++++##################@+;;;;;;;;;;;....`,...,.:.,,,,,,.,.,,,,,.,,.......`......,....,.,,,,:,,,..``..,.          ```            ``,,,:::;;
#####++''''''''+++++++++''''''''''''''''''++'''''++++++++++++++++++#####################+;;;;;;;;;,`...,,.,,,;`,,,,,..,.,,,,,,,.........`........,.,...:,,:,,,..`.,..``        ````           ```:,:::;;
######++'''''''++++'++++'''''''''''''''''''++'''++++++++++++++++++++############################+#'''';,,.,.::.,,,.,,.,,.,,,,,.,.......`........,..,,..,,,:,.,...`,:..``           ``        ```..:::::;
######++''''''''++'+++++'''''''''''''''''''++'''++++++++++++++++++++############################+#''+''++++';,`.,,,,,.,.,.,,,,,.,......``....,``....,`.,,,.,,.:,.``.:..`.`                     .`,,:::::
######++''''''''''++++++''''''''''''''''''''+''+++++++++++++++++++++#############################+''+'+++++''++:,,,,,.,,..,:..,.:.......``....`.....,.`..,,.,..,.``..,``.``             ` `  ``.,::,::::
#######+'''''+''''++++++'''''''''''''''''+'''++++++++++++++++++++++++#############################'''++++++''++:,,,,,.,...,:..:,.,..``..``...`.....,.,`.`....,..,` ...,..```              ``````,,::::::
#######+'+''+''''+++++++''''''''''''''''''+''++++++++++++++++++++++++#############################++'++++++'+++:,,,,,.....,:.....,..``..``.....`...,.,..`.....,,`. `.`.,.``              `    ``..:,::::
#######+++''+'''++++++++'''''''''''''''''+'''++'++++++++++++++++++++++############################+++'+++++++++:,,.,,,,....,,..,....``.`.`...........,.````....,.`` ``..,.```                  `:;:,,,::
########+++++++'+++++++++''''''''''''''''''''''+'+++++++++++++++++++#+#############################++++++++++++:,:.,,.,...,.:.,,....`....`....`.......,`````....,`.``` .`.` ``               ````;':,,::
#######+++++++++++++++++'''''''''''''''''''++++++++++++++++++++++++++++############################++++++++++++:,:.,,,,...,`:.......``...``.....`.....,``````````. ` `` ` ````            `   ````;,,,,:
;'#####++++++'++++++++++'''''''''''''''+++''::,,..,,,,::;''++++++++++#+############################+'++++++++++:,:.,,.,...,.,.......``..```..`.,...`..,.````````. ``   `   ````      `         ```:,,,,:
;';'+##++++'''++++++++'+'''''''''''+';:.````.`..,,..,.,,,,,,.,::;;++++++###########################++++++++++++:,:,,,.,,....,.......```...`..``,.`......`` ` ```````         ``   `` `        `````:,,,,
;;;'';;;'++++++++++++++++''';;:::,``````````````.......,.,,.,.,,,,,:,;'+###########################++++++++++++,,:.,,.......,.`.....```..``..`..`.....,., ``` `..```           `   `   `   ``  ````,,,,,
;;;;'';;;;:::;:,::,:,:,.,...,..`.```````````````........,...,,.:,,.,:,:,:;+#########################+++++++++++,,:,,,..,............````.```.`,......`.,``` `````````               `   `  ``` ```..,,,,
;;;;;'';;;::;:,:;,,:,,.........`````````````````....`...,,,..,..:,..,::::::,'#######################+++++++++++,,:.,,,.....`,.`......```````..,........,`, ```````````              ```  `````````..,,,,
;;;;;;;';::::,,:.,,,..........``````````````````.........,,...,.,,,.,:,:,:,::::######################++++++++++,,::,........,.`......````.`..........``.,. ````````````            `` ```````..```.:.,;;
;;;;;;';':;:,,,.,,,....```...``````````````````..........,,,..,,.,,..,,:,,:,:;:;'####################++++++++++,,:,,...,........,`..`````.``.........``..`.` ```````````            ``````````.``..;''''
;;;;;;;;;;:,,,,..,.....``....``````````````````......`...,,,...,.,,,.,::,,::::;:;;+##################++++++++++,,:,,...,....,.......``.``.`...`.`.......... ` `````````````         `` ```.````.`:':'+''
:;;;;;;;;;;,::.,......```...```````````````````.....,.....,,,..,.,,,..,:::,::::;:;:'##################+++++++++,,:,,,.,,.,..,...,`..````..```..,..,......`..``````````````````   `  ```````.`.`.,.'+++'+
::;;;;;;;;;::,,,,.....```....``````````````````......,..,.,,,..,,.,,,.,:::,,:::;;;;;'#################+++++++++,,,,,,.,,...,,.,.,....`.``.`.....``.....`.`.:```````````````````````````.`....`.,:.,+++'+
::;;;;;;;;;;,,,,...,..`.`.`..````````.`````````......,...,.,,,..,,,,,..,:::,::::;:;;;'#################++++++++,,,,,,..,..,,,......,...`..`.....```......``:`````````````````````````..,.......,'::'+'#+
:::;;;;;;;;;:,,,.......`.``..````````.`````````.......,....,,,..,,,,:,,,:::,,::::;;;;;'################+++++++':,,,,,..,..,,,...,..,.`.`..``....`........`.`;``.```````.`````````````..,,....,,,:+''+#++
:::;;;;;;;;;;,,,,.......``.```````.````````````......,,.....,,,..,,,,:..::::,::::;;;;;;+################++++++;:,,,,,..,..,,,,,...,,....`.``......`.....,..`;```,``````..```````````...,:....,:;'+++##++
::::;;;;;;;;;,,,,.......```````` ``````````````.......,....,,,,..,,,,:,,,::::::::;;;;;;;################++++++;;,,,,,.,,,,,,,,,...,,,..`..,`.....``.....,,.`.:```,``````...`````````...;::,,,.,++##+#+++
::::;;;;;;;;;:,,,......``````.`````````````````......,.,....,,,..,,,,::.,::::::::;;;;;;;;################+++++;;,,,,,.,,,.::,,,,..,,.,.``.,......`.`....,,..`,.`.`.`.````..`````````....;':,,,.,++++++++
:::::;;;;;;;;:,,,,.....`````````````.`````````.......,.,......,,..,,,,:,,,:::::::;;;;;;;;'################+++':;,,:::,,,,,:,,,,,,.,:,,..`.,..,....,`....,,:,..,``.,``..````````.````...,:';;:,:::;++++++
:::::;;;;;;;;::,,,.....`````.```````.``````.`........,,.......,,..,,,,::.,:::::::;;;;;;;;;+###############+++':;:::,:,,,,,:,:,,,,.,;:,,.`.,.,.....`.....,,:,..,`..`:.....`...``........,:+#';:;;;;++++++
::::::;;;;;;:;::,,.....```````````````````............,.,.....,,,..,,,,:,,,::::::;;;;;;;;;;################+'':;:::::,:,,,:::::,,,:::,,.`,,.,..,...:`...,,,:,...`...,.,................,;'+;:::;;'++++++
::::::;;;;;;;;:::,......```.````````..```.............,,......,,,..,,,,::,,:::::::;;;;;;;;;'###############+'':;::;::,:,:,::;::,,,::;,,..,,,,,.,,...``.,,,,,,.``.,.,.,,,,.`............,,;:;::;;''++++++
::::::::;;;;;;:::,,......`.`````````...``.............,,.......,,,..,,,,:,,:::::::;;;;;;;;;;###############+'':;::;;:::,:,,;'::,,::::,,,.:..,,,.,,..:`..,,,,,..`.,.;....,..............,:,:;;'''''++++++
:::::::;;;;;;;::::........``````````...`...........,...,,......,,,,.,:,.::,,:::::::;;;;;;;;;'###############'':;::;;::::,,::+;;,,;:;:,,,,:.,,,,.,,,.:`..,,,,,,...,.:.....,,.........,.,,,:;;;''''''+++++
::::::::;;;;;;;;::,......```````````....`..............,,,...,..,,,..:,,::,,:::::::;;;;;;;;;;+##############+':;::;::::,,::;#;;::':;:,,,,:.,:,,.::,.,.....,,,,,..,.:,,.....,......,.,,,:::;;;'''''++++++
:::::::;';;;;;;;;:,.......`````````.........,,......,,.,,,,...,.,,,,.,:,,::,,:::::;;;;;;;;;;;;##############+':;::;:;,;::;;+#;::;;:;;,,,,,,,,,,,,,,,.:`.,..,,,,.,,.::,,.....,,.,,,,,,,;;:;;';'''''++++++
:::::,:;;;;;;;;;;::,......`````````...,.....,.......,,..,,,,..,,,,:,..:,,::,,:::::;;;;;;;;;;;;'#############+;:;::;:;,;;;;:##;:,';;';,,:::,,,,,,.,:,.:..,..,..,,,,,.;,,,...,.,,.,,,,::;;;;;;;;;;''++++++
:::::,:';;;';;;;;;:,.....``````````.`,,,....,,.......,,.,,,,..,,,,,:,.,:,,::,:::;;;;;;;;;;;;;;;+############+;:;;,;:;,;;:':##';:;;';;,,:;,,:,,,,,:,,,.;..,.,.....:,.,:,,,.,,,,,:,,,,:;''':;;;'''''++++++
::::::;;;;;;;;;;;;,,.....```````````..,,.....,.....,.,,.,,,,,..,,,,::..::,::,,::;;;;;;;;;;;;;;;;''+########++;:::;;::,'':':##+;:''+';:::;,,,:,.,,,,::.:,,,,,...,,.,,,::,,.,,,,,,:,,,:;'';'''''''''++++++
:::::;;;;;;;;;;;;:,.,....``````````...,,......,..,..,.,,.,,,,,.,,,,,:,.,:,,:,,:::;;;;;;;;;;;;;;;';;;;;''+##++;::::;::,;+'+:###;;'++';:;:;:,::,,,,,:,:,,::,,...,,....,,;:,,,,,,,,:,,;;;';;'''''''''++++++
;;;:;;;;;';;;;;;;,,,,,...``````````...,,,..,..,..,,,,,,,.,,,,,.,,,,,::,.::,::,:::;;;;;;;;;;;;;;;;;;';'''';;;;:::::::,:;###;###':'#+';:;:;:::,,,,,,;:::,:;,.,,..,.,,,,,:;::,,:,:,,::';;;;;';;'''''+++++++
++'';;;;;;;;;;;;,,,,,....`````````.....,,......,..,,.,,,,.,,.,..,,,,,:,.::,,:,,::;;;;;;;;;;;;;;;;;;;';'''';;;:::,:,::;'###'####:+##'':',:::::,,:,,:,::,:;:,,,,,,,,,:,,,;::,,,:::::;'';'''';''''+'+++++++
#+####++';;;;;;:,,::,.,.`.``````..``.,,,,,..,,.,,,,,,,,,,,,,,,,.,,,,,,:,,::,::,:::;;;;;;;;;;;;;;;;;;;;''''';;::,,:,::;:+++'####'###+':',:;:::,,:,,:;::,,;;,,,,,,,,,,:,,:;::,::::::''+++''''+++'+++++++++
#######++#++'';:::::,,,....``.`......,,:,,,.,,,,,,,,,,,,,,,,,,,,,,,,,::,,::,,::::;;;;;;;;;;;;;;;;;;;;;''''';;::,:,,;:;:+++;++++++###';;,:::;:,,:,,:;,;,,;;:,,,,,,,,,,,,::;::::';:''++++'++++++'+++++++++
########+#++++++#+';;:,.,.......,..,.,:,,,:,,,,,,,,,,,,,,,,,,,,,,,:,::::,,::,::::;;;;;;;;;;;;;;;;;;;;;''''';;,:,::,:;::++''++++++++';:;::::;:,,:,::,;:::;;;,,,,,,,,,:,::::::::'';''+++''++++++'++##+++++
###########++++#+++++++''';;;'''''''+'+++++++++++++++++++++'+++'''';;:::::;;::;;:;;;;;;;;;;;;;;;;;;;;;''''''',;:,:::'::+'+;+++++++''':,.,,::,..,,:::',:::;;:,:,,,,,,:,::::;:::'+''+++'+''++++++++###++++
############+####+++++++'+'''++++++++++++++++++++++'++''+''''''''+++'+++++;;:::;:;;;;;;;;;;;;;;;;;;;;;;'''''':;:::':+;;+'';+'+'''+'+':.:,,::,..``.....,..,,:.``...,,:::::::;::'+''++'++++++++++++####+++
++################+++++++++'++++++++++##++#++++++++++''+'''++''+''++'++++++++++';;;;;;;;;;;;;;;;;;;;;;;'''''':;:::+:+':'++''''''''''+:,:.,,:,,.``.,..:.,..,:,````......,,::;;;;'+'+'+'+++++++++++#####++
#+##################+##++++++###++#++##+++#++++++++++'++'''++'+++++++++++++++++++#+';;;;;;;;;;;;;;;;;;'''''''::,,:+:++,''+''''''''''';,::,,;,,.`..,.,:,.,,.,:.`.......,,,,,,,,:'++'+++++'++++++++#####++
++######################++++############+###++++++++++++''++'++++++++++++++++++++#++##+';;;;;;;;;;;;;;;''''';:::::+;++,'''''''''''''':,::,:;:,.`.....:,`.,,,,,`......,.,,,,,,;:';;;''++++++++++++#####++
++########################################++++++++++++++''++''++++++++++++++++++++#+#####+;;;;;;;;;;;;;;'''';:::::+''+;''''''''''''''::,,:;;:,.`.......`..,...`....,.,.,,,,,,;;';;;;;;;'++++++++++#####+
+#+#################################+#++#++++++++++++++''+++''''++++++++++++++++++#########+;;;;;;;;;;;''''';:::::++'++;''''''''''''':,:,:;'::......`..`..,........:.,,.,,,,:''';:;;;';''';'++++++++####
##+##################################++++++++++++++++++'+++'''''+++++++++++++++++##+#########+;;;;;;;;;''''':::::;++;++:''''''''''''':,::;';::,..,..`...`.,........:.,,,,,,,,';;;;;;;;;''''';;'+++++++#+
##++################################+++++++++++++++++++++++'''''+++++++++++++++##+#############';;;;;;'''''';::;:;++'++''''''''''''''::,:'';;:,.,,.,...`.,,,.......:.,,,,,,,,';;;;:;;;;'''';;;;;;'+++++'
+##+##############+++##############++++++++++++++++++++++++''''''+++++++++++++##+################';;;;'''''';::;:;++'+++'+'''''''''''::,;'';;;:.:,,....`..,,,......;,,,,,,,:,;;;;;:;;;;'''';;;;;;;;;'+'+
#################+#+++++++++######++++++++++++++++++++++++''''''+++++++++++++++#+#################+;;''''''';::;:;+++++++++';'''';''':::;;'';;:,:,,.,.....,:,.,..,,,:,,,,,,:,';;;;;;;;;;;;;;;;;::;;;;:::
#################+#+++++++++++++++++++++++++++++++++++++++''''''+++++++++++++++#+###################'''''''';::;:'++++++++++''''';;;;:::;;;';;;,:,,,,..,..,:,,,..,,,;,,,,,:::;;;';:;;;;;;;;;;;;::,::;;;;
###################++++++++++++++++++++++++++++++++++++++'''''''+++++++++++++++######################+'''''';:;;:'+++++++++++'''';;;;:,;;;;';;::::,,,..,..,;::,,.,,,;,,,,,::;;;'';;;;;;;;;;;;;;:::,,,:;:
##################+++++++++++++++++++++++++++++++++++++++'''''''''+++++++++++++########################+''''':;;;'++++++++++++;;;'';;::;;;;;;;;::;:,,,.,..,:;:,,,,,;::,,,,:;;;;'';;;;;;;;;;;;;;::,,,,,::
##################++++++++++++++++++++++++++++++++++++++''''''''+++++++++++++++#########################+''';:;'';'++'+++++++++;;';;;::;;;;;;;;::;:,:,,,,,:;;;,,,,,;;:::,::;;;;';;;;;;;;;;;;;;;:::,,,,::
###################+++++++++++++++++++++++++++++++++++++''''''''+++++++++++++++#####################+#####'';;;'';+++''+++++++++;;;;;;:;;;;;;;;::;;,,:,,,,,;;;:,,,,;;;::::;;;;;';;;;;;;;';;;;;;:::,,,.,;
####################+++++++++++++++++++++++++++++++++++++''+'''''+'+++++++++++++###########################+;;;'';''''''+++'+'+++;;;;;;;;;;;;;;::;;:,,,,,,:;;;;,,,,;;;::::;;;;;'';;;;;;;;';;;;;::,,,,,,.
#####################++++++++++++++++++++++++++++++++++++'++'''''+++++++++++++++############################+;'''''''''''++'+''+++;;;;;;;;;;;;;:::;;:,,::,;;;;;::,:;:;::::;;;;;'';;;;;;;;;';;';;;,,,,,,.
######################++++++++++++++++++++++++++++++++++'+''''''''+++++++++++++##############################+'''''''''''++'+'+++++;;;';';;;;;;::;;;;:,,,,;;;;;;,,:;:::::::;;;;';;';;;';;;;;;;;;;,,,,,,.
######################++++++++++++++++++++++++++++++++++++''''''''++++++++++++++#############################+#+''''''''''''''''++'+;;'''';;;;;;;;;;;::,:,::;;;;,::;::::;;:;;;;;;;';;;';;;;;;;;;;:,,,,,.
+######################+++++++++++++++++++++++++++++++++++'''''''+++++++++++++++#################################'''''''''''''+''+''';;'''';;;;;;;''';:,:,::::;;::::::::;;;:;;;:;;';;;;;;;;;;;;;;:,,,,,.
+#######################++++++++++++++++++++++++++++++++++''''+''++++++++++++++++#################################+''''''''''''''''''';;''';;;;;;;'''';:::::::;;:,::::::;;;;;;;;;;;;;;;;;;;;;;;;;:,,,,,,
+########################+++++++++++++++++++++++++++++++''''''++++''++++++++++++####################################+'''''''''''''''''';'''';;;;;'''''';::::::::;::::::::;;;;;:;;;;;;;;;;;;;;;;;;::,,,,,
++########################+++++++++++++++++++++++++++++++''''+'+++''+++++++++++++#####################################'''''''''''''''''';''';;;;;;'''''';;;;;::::::::::::::::;;;;;;;;;;;;;;;;;;;;::,,,,,
+++######################+#++++++++++++++++++++++++++++''''''++++++'++++++++++++++######################################+''''''''''''''+;;'''';;'''''''''';'';;::::::::::::::;;;;;;;;;;;;;;;;;;;:::,,,,,
##########################+++++++++++++++++++++++++++++''''''++++++'+++++++++++++#########################################+'''''''''''''';''''+;;''''''''''';'';::::::::::::::;;;;;;;';;;;;;;;;;:::,,,,,
##########################+++++++++++++++++++++++++++++'''''+++++'''++++++++++++++##########################################+''''''''''''';+'''';;''''''''''''';';;;::::::::::;;;';;;;;;';;;;;;;;:::,,,,
++#######################+##+++++++++++++++++++++++++++'''''++++++''++++++++++++++#########################################++''''''''''''+':'+''';'''''''';'';'';;;:::::::::::;;;';;;;;;;;;;;;;;;:::,,,,

* fixes

* uiqwrhfhwfadkhfwrahbk
2017-02-06 00:26:29 +13:00
Joan Lung
246b1fd253 Merge pull request #23671 from KorPhaeron/eyes_as_organs
Eyes As Organs
2017-02-04 17:14:19 -05:00
KorPhaeron
6ad9b5abe1 Replaces cybernetic implants with cybernetic eyes 2017-02-03 18:47:49 -06:00
Joan Lung
a6c8357801 Merge branch 'master' of https://github.com/tgstation/tgstation into blackboxed
Conflicts:
	code/orphaned_procs/statistics.dm
2017-02-03 10:10:52 -05:00
XDTM
eb5086a307 Misc law changes 2017-02-02 12:18:49 +01:00
oranges
17f9acbc08 Merge pull request #23400 from Xhuis/riot_dart_autolathe
Adds a riot foam dart option to hacked autolathes (Winter Thaw 2017)
2017-01-30 10:39:56 +13:00
vcordie
f25a5d674e Makes the srm-8 rocket pods have a bit more oomph (#23390)
So, this really changes the way the rocket pods work now. So now they're proper projectiles, which means they keep going until they hit something, then they go boom. Downside of this, the sprite looks really silly now, as rockets spin about like a discoball in flight. I have no idea how to fix that. When they hit a non living target, they explode with 0 1 2, if it hits a living target, it explodes with 0 0 2. and the projectile now does 30 brute damage as well, meaning direct hits on mobs do 60 brute damage, plus a 50% chance to knock out and 7% chance to sever a limb. Should actually buff that considering you can only fire a rocket once every 2 seconds it seems like. But, this is good for now.

🆑 vcordie
tweak: The SRM-8 Rocket Pods have been loaded with new explosives designed to do maximum damage to terrain. These explosives are less effective on people, however.
/🆑
2017-01-30 10:25:02 +13:00
Joan Lung
d0b5c03102 Merge branch 'master' of https://github.com/tgstation/tgstation into blackboxed
Conflicts:
	code/modules/research/message_server.dm
2017-01-28 18:26:36 -05:00
Kyle Spier-Swenson
185c2ec01d Fixes the blackbox 2017-01-28 14:16:25 -08:00
Joan Lung
19d193f0af The physical blackbox object no longer stores feedback data 2017-01-28 12:10:32 -05:00
Xhuis
bdb383ae40 Adds AI control beacons for exosuits (Winter Thaw 2017) (#23320)
* Adds AI control beacons for exosuits

* Diagnostic HUD entry + Design Fix

- Adds Diagnostic HUD entries for mecha beacons. (Green for normal, Blue
for AI)
- Fixes AI beacon research designs to havep roper requirements

* Sanity checks for mech hijacking
2017-01-28 18:10:08 +01:00
Kyle Spier-Swenson
34c48e7c4d 3. Mecha Punching glove! the Oingo Boingo Punch-face! (#23192) 2017-01-28 00:54:49 -06:00
Xhuis
d16623266c Riot foam dart construction from hacked autolathes 2017-01-27 21:13:05 -05:00
Cruix
a172e6d357 Fixed research disks magically staying in sync with the research they copied (#23206) 2017-01-26 09:15:22 +01:00
Joan Lung
def68c3c9f Proselytizers can now repair Servant silicons and clockwork mobs (#23220) 2017-01-25 03:35:06 +04:00
Cyberboss
5959ac32cc Refactors atom/Initialize. Fixes ruins being initialized twice (#22778)
* Refactors atom/Initialize

Captialized for compiling correctness and to be more inline with Destroy

Will now be called from atom/New if the world initialization loop in SSobj has already run. Should always call the base.

Now comes with the `roundstart` parameter indicating whether or not it was called by SSobj or atom/New

Other fixes/tweaks:
- Renamed a proc called Initialize in abduction consoles to Setup
- Removed /obj/item/device/radio/headset/headset_sec/department: Broken and referenced literally nowhere in the code
- Removed a spawn from the Initialize of turbine_computer which made literally zero sense
- Generalized the proc which fixes RND servers with no id set

Reasoning: It's better to check roundstart per function than to have to duplicate code in New and Initialize. Think of it as a safer New for atoms. If we move enough stuff to it, initial map load performance will increase due to less New calls

* Fixed a thing

* Actually, fuck the police

* >Expecting a merge without errors

* >Not calling ..() in New

* Sanic

* Fix the headset bug

* Makes sure the map loaders dew it right

* Fixes ruins being initialized twice

* Rename roundstart -> mapload

* Revert "Rename roundstart -> mapload"

This reverts commit 667c327fd2ccfa3ce4f4db52eac03f9e8b0f6812.

* Remove unrelated change

* A more direct solution to map loads

* And now we shouldnt need this warning

* Add the new var to SSobj recovery

* Revert "Revert "Rename roundstart -> mapload""

This reverts commit dee07dbd5e4696554ac43aae5b91cce743b9b9e0.

* Line endings
2017-01-23 09:37:45 +01:00
XDTM
42254a1b9a Makes xenobio consoles and stock exchange computers buildable (#22515)
* Makes xenobio console buildable

* Stock exchange
2017-01-21 11:44:40 +01:00
Militaires
980411b961 Refactors riding to a datum and applies it to vehicles, allowing for mobs to be ridden. (#22420)
* sleepight pupper

* boop

* boom explosion habbon

* wew ladder.

kor tell me the varname cock tobbagan dont just tell me it exists and you dont poin

* bambi in spess

* more shitfuck

* GOD DAMMIT ITS GONNA BE FUCKING HOT AAA

* commit this dick you fucking tub

* GIGANTIC REFACTOR 2.0

* OH YEAH THE CREAM RISES TO THE TOP

* antur

* aaaaaa

* boat

* wew ladder

* bman

* yaaaaaaaaaaaaaaaaaaawwwwwwwwwwwwwwwwwww

* STEEL CORRIDOR
2017-01-16 19:02:42 +01:00
XDTM
d35517d181 Less bag hitting (#22995) 2017-01-15 23:47:04 -05:00
oranges
3ad35c23ab Merge pull request #22869 from Cyberboss/ReagentsShouldNotBeLeftNull
Moves reagents back into atoms. Fixes confusion between reagents/reagents_list
2017-01-11 12:49:02 +13:00
XDTM
6a562f7b5a Makes earmuffs and null rods protect from Voice of God, adds earmuffs to autolathe (#22764)
* Makes mindshield implants protect from VoG

* earmuffs

* New deal

* Rudimentary logging

* Retvar/Narsie fix
2017-01-10 09:53:09 +13:00
Cyberboss
6e622eedd1 Moves reagents into atoms 2017-01-08 23:02:37 -05:00
XDTM
a88aa9590a Fixes containers 2017-01-05 00:09:16 +01:00
Firecage
8dab2c9c34 Changes the names of Circuit Boards so they are easier on players. (#22688) 2017-01-04 17:20:53 -05:00
Firecage
50bbf5aa50 Allows syringes and droppers to show their reagents when examined while wearing things such as Science Goggles. (#22618)
* Allows syringes and droppers to show their reagents when examined.

* rearranges my logic

* replaces SEMIOPENCONTAINER with TRANSPARENT

* Silly spelling error fix.

* Moves the defines from flags to container_type to avoid issues with conflicting flags

* changes it back to obj/item/O

* Moves the OPENCONTAINER and TRANSPARENT defines to the reagents.dm
2017-01-04 20:00:46 +13:00
Kyle Spier-Swenson
280dbe20c3 [Ready] SSthrowing + callbacks! (#22476)
* SSthrowing + callbacks!
Throwing is now a subsystem.
It's low priority, but is a ticker subsystem so is ran before most other subsystems.
To allow for shit to run after the throw finishes, throwing now supports a callback.
A callback datum system was created, conversion of addtimer is planned for another PR.
Throwing now has a limit of 2048 turfs (was 600)
Throwing now ticks every world.tick, and properly converts the speed arg from 1ds to what ever tick_lag is.
Throwing now properly accounts for missed ticks.
Throwing no longer uses sleep.
Throwing should no longer lag since it's not filling the sleep queue up

* Smoother tentacles

* Some improvements

* Missed a spot.

* Makes shit quicker.
Inlines the thrownthing.tick() proc.
Raises missed ticks value
Lowers max dist value
Inlines the two sister overrides for /atom/movable/Moved() because that just seemed like a waste

* >PRs open that use procs i'm removing.

* STOP THE PRESSES!

* throw_at now runs the first throw tick() immediately
This will help some with throwing while running.

* Item throwing now imparts the momentum of the user throwing.

(ie, running in the direction you are throwing makes you throw faster, running away from the direction you are throwing makes you throw the item slower)

* Moves throwing momentum from carbon/throw_item to movable/throw_at.
There are other things that cause a mob to "throw" an item, I figured we keep this universal since thrower is already an arg.

* Explosions throw shit faster.
This was stupid, "Hey, lets set the item's throw_speed to 4 so embedding works, but lets make it throw at the base 2 throw speed for no reason."

* Fixes explosion embedding.
This also acts as a nice example of how to override a callback in an override of throw_at properly.
2017-01-02 20:08:03 +11:00
XDTM
f3ed316aa3 Replaces black magic spawn with addtimers (#22291)
* Black magic begone

* Also fix a bug
2016-12-19 12:00:08 +01:00
Karl Parakenings
ba671b85a2 added distance check for electrocute mob proc in [power.dm] (#22231)
* added adjacency check for electrocute mob proc

* updated all calls to proc enabling range check
2016-12-18 19:55:34 +13:00
vcordie
e85a718311 Modify Diamond Syringe Requirements (#22260)
* Modifys the Research Requirements for Piercing Syringes

Engineering 7 Material 5 Combat 3 Makes very little sense. It's not an
engineering problem, its a materials problem. Plus, Sci shouldn't need
to track down a vortex anomaly for piercing syringes. This modifies it
to be Mat 7 (diamond sheet level), Engineering 5, Combat 3.

* Adds iron as one of steelcaps reagents

Purely to piss off kevinz

* Revert "Adds iron as one of steelcaps reagents"

This reverts commit 0a79dafc60facaeef24b57c015fdc059374df810.

* Revert "Modifys the Research Requirements for Piercing Syringes"

This reverts commit e43080359b3372048847e5d397fb3e6743fb89a1.

* Revert "Revert "Modifys the Research Requirements for Piercing Syringes""

This reverts commit 506bcf3de45c28697e8e0644941075821a96237d.
2016-12-17 14:20:07 -05:00
oranges
57706c21ba Merge pull request #22168 from erwgd/LimbGrowerDesign
Adds imprinter design for limb grower board
2016-12-15 11:09:10 +13:00
coiax
4556cf5e29 Adds multiple upgrades for Medical cyborgs (#22149)
* [WIP] Adds multiple upgrades for Medical cyborgs

🆑 coiax
add: Adds upgrades for the medical cyborg!
add: The Hypospray Expanded Synthesiser that adds chemicals to treat
blindness, deafness, brain damage, genetic corruption and drug abuse.
add: The Hypospray High-Strength Synthesiser, containing stronger
versions of drugs to treat brute, burn, oxyloss and toxic damage.
add: The Piercing Hypospray (also applicable to the Standard and
Peacekeeper borgs) that allows a hypospray to pierce thick clothing and
hardsuits.
add: The Defibrillator, giving the medical cyborg an onboard
defibrillator.
/🆑

- [ ] Price the material cost of the boards appropriately
- [ ] Get the defib upgrade working

* Got the defib working

* Adjusted research and costing levels

* Missed a close paren
2016-12-15 10:50:13 +13:00
XDTM
7d1a67d0c8 Abductor tools and tool sound refactor. (#22125)
* Everything in the PR

* I'm taking that as a yes
2016-12-14 18:09:41 +13:00
erwgd
ec2478cadc Added design for limb grower board 2016-12-13 15:25:12 +00:00
kevinz000
e288a9a54e Update mechfabricator_designs.dm (#22131) 2016-12-13 15:04:12 +13:00
coiax
1428f3f532 Cyborgs have a reset module wire (#22016)
* Cyborgs have a reset module wire

🆑 coiax
add: Cyborgs now have a reset module wire, that when pulsed, triggers
the cyborg's reset module hardware.
/🆑

Because they can't touch it themselves for software reasons. Now you can
ask random assistants to reset you in a pinch, or do it on the FRONTIER.

* Upgrade ejection, removed reset board
2016-12-11 19:55:03 +13:00
Mervill
417c50efa2 These comments where removed by me.exe, just now 2016-12-08 01:48:46 -08:00
Kyle Spier-Swenson
dedb16826e Speeds up world init. (93s -> 49s) (#21992)
* Speeds up world init.

* Armor is now new inited for obj and the first level of subpaths.
* Actions is now lazyinited and deleted with empty.
* Actiontypes is now only inited when actually used and deleted once it pre-fills actions with the action buttons.
* Pipes now prefill their node list(s) in new() using new /list/ (count) syntax to speed up the list initaliztions and remove the init proc.
* Pipes no longer store their item version, instead creating it on the fly when deconned
* Walls no longer store their metal stacks, instead creating it on the fly when deconned.
* obj, walls, floor, plating, item, machinery, structure, pipe, pipenet, atom, and movable no longer have an (init) proc. (along with a few other smaller examples)
* Atmos can pass checking is now a var with the ability to have a proc be call in advance cases.
  * (as a side effect, I had to fix a few things that were calling atmosCanPass rather then using the pre-calculated list, this should speed up chemfoam and flame effects greatly)

* Reverts upload limit
(remind me one day to defuck this, it could easily be a config thats not editable by vv to make changes easier)

* Makes apc update icon a bit faster.
APC new is some what high on the profile of world init, still not sure why, but this stood out as a waste of cpu so i fixed it.

* Fixes runtime with atmos backpack water tanks.

* Makes smoothing faster (and fixes turfs smoothing twice at init)

* Makes apcs init faster by replacing some spawns with addtimer

* fix transit turfs.
2016-12-08 21:50:15 +13:00
oranges
a5a0dfc2bb Merge pull request #22014 from KorPhaeron/cyborg_tools
Fixes sentience potion lore
2016-12-08 10:18:26 +13:00