Commit Graph

1042 Commits

Author SHA1 Message Date
Cyberboss
9e1ef0ffe2 Global variable wrappers (#25325)
* Add the system for managed global variables

* Travis ban old globals

* So you CAN inline proccall, that's neat

* Fix that

* master.dm

* Remove the hack procs

* Move InitGlobals to the proper spot

* configuration.dm

* Fix the missing pre-slash

* clockcult.dm

* This is probably for the best

* Doy

* Fix shit

* Rest of the DEFINES tree

* Fix

* Use global. for access

* Update find_references_in_globals

Always hated that proc

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

* __HELPERS tree

* Move global initialization to master.

Fix the declaration

* database.dm

* Dat newline

* I said DECLARATIVE order!

* Here's something you can chew on @Iamgoofball

* game_modes.dm

* Fix this

* genetics.dm

* flavor_misc.dm

* More stuff

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

* Make master actually see it

* Fix

* Finish _globalvars/lists

* Finish the rest of the _globalvars tree

* This is weird

* Migrate the controllers

* SLOTH -> GLOB

* Lighting globals

* round_start_time -> ticker

* PAI card list -> pai SS

* record_id_num -> static

* Diseases list -> SSdisease

* More disease globals to the SS

* More disease stuff

* Emote list

* Better and better

* Bluh

* So much stuff

* Ahh

* Wires

* dview

* station_areas

* Teleportlocs

* blood_splatter_icons

* Stuff and such

* More stuff

* RAD IO

* More stuff and such

* Blob shit

* Changeling stuff

* Add "Balance" to changelogs

* Balance for changelog compiler + Auto Tagging

* Update the PR template

* hivemind_bank

* Bip

* sacrificed

* Good shit

* Better define

* More cult shit

* Devil shit

* Gang shit

* > borers

Fix shit

* Rename the define

* Nuke

* Objectives

* Sandbox

* Multiverse sword

* Announce systems

* Stuff and such

* TC con

* Airlock

* doppllllerrrrrr

* holopads

* Shut up byond you inconsistent fuck

* Sneaky fuck

* Burp

* Bip

* Fixnshit

* Port without regard

* askdlfjs;

* asdfjasoidojfi

* Protected globals and more

* SO MANY

* ajsimkvahsaoisd

* akfdsiaopwimfeoiwafaw

* gsdfigjosidjfgiosdg

* AHHHHHHHHHHHHHHHHHHHHHHH!!!!!

* facerolll

* ASDFASDFASDF

* Removes the unused parts of dmm_suite

* WIP

* Fix quote

* asdfjauwfnkjs

* afwlunhskjfda

* asfjlaiwuefhaf

* SO CLOSE

* wwwweeeeeewwwww

* agdgmoewranwg

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

* Fix syntax errors

* 100 errors

* Another 100

* So many...

* Ugh

* More shit

* kilme

* Stuuuuuufffff

* ajrgmrlshio;djfa;sdkl

* jkbhkhjbmjvjmh

* soi soi soi

* butt

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

* lllllllllllllllllllllllllllllllllllllllllll

* afsdijfiawhnflnjhnwsdfs

* yugykihlugk,kj

* time to go

* STUFFF!!!

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

* ngoaijdjlfkamsdlkf

* Break time

* aufjsdklfalsjfi

* CONTROL KAY AND PRAY

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

* Goteem

* Fix testing mode

* This does not belong in this PR

* Convert it to a controller

* Eh, fuck this option

* Revert controllerization Ill do it some other time

* Fix

* Working controllerization

* FOR THE LOVE OF CHRIST PROTECT THE LOGS

* Protect admins and deadmins

* Use the inbuilt proc
2017-04-06 23:26:13 -06:00
vcordie
a85cbd6532 disables telesci (#25923)
* removes telesci

* comments out telesci
2017-04-07 10:37:29 +12:00
coiax
7554b5f454 Language datums; removes the talk wheel (#25333)
* Initial burst of languages

* Scratchings of beginnings

* Code review I

* Compilation!

* You can now understand your own speech

* Fixes whispering

* Gets typecaches working again

* Remie's `PASS`ing

* Back to pass() to stop the compiler whining

* Why can't drones check their languages

* Everyone speaks how they should

* Removes world string debug stuff

* Currently failing to massage radio code into working

* The radio transmits the languages!

* ,0 to talk common

* Replaces speech wheel with language menu

* Observers can speak all languages

* pAIs now speak languages FOREVER

* New action button for language menu

* pAIs have an action button to open their language menu

* AIs can talk and all that

* AIs have a language menu button

* Fixes supermatter making strange noises

* Fixes AI holopads

* Fixes request consoles

* Fixes bots making strange sounds

* Meaningless MMI change

* Some caching of datums

* Brains in MMIs speak common

* Ratvarian AIs can only speak Ratvarian

* Tables can speak common, apparently

* Removes var in args

* Fixes the (AI Eye) problem

Thanks to Shadowmobile for their help with this one.

* Fixes tape recorders

* Fixes humans being able to speak in languages they did not know

* Adds some new posibrain names

Honk.

* The voice analyzer replies in the language you spoke to it

* Gives swarmers only swarmer language

* `initial_languages` var.

* OMNITONGUE, clockwork restrictions

* Fixes barmaid and bardrone language abilities

* Code review I

* Omnitongue correction

* Code review II

* Removes force_compose var
2017-04-02 21:03:40 +02:00
Joan Lung
ad1fb2c9b9 Makes a few things use admin macros 2017-03-30 14:58:05 -04:00
AnturK
4acca6a105 Advanced cam fixes (#25601) 2017-03-30 08:38:16 -03:00
XDTM
36ac1997d7 Refactors Golem Names (#25471) 2017-03-25 19:47:08 -03:00
kevinz000
e1fd0292c7 Update experimentor.dm (#25441) 2017-03-25 19:41:36 -03:00
GunHog
ac4d69254b Revival of "Allows AIs to deploy to borgs" by Shadowlight213 (#25184)
The AI may now deploy to cyborgs prepared as AI shells. The module to do this may be research in the exosuit fabricator. Simply slot the module into a completed cyborg frame as with an MMI, or into a playerless (with no ckey) cyborg.
2017-03-24 21:42:48 -03:00
Fox McCloud
7db6a982d7 Modular Receiver in Autolathe (#25401)
* Modular Receiver in Autolathe

* forgot this
2017-03-25 09:21:50 +13:00
ExcessiveUseOfCobblestone
c93b5e91fd It's an "upgrade", not a "potion" (#25379) 2017-03-23 07:35:15 -03:00
Joan Lung
942cc65ffe Merge pull request #25225 from ExcessiveUseOfCobblestone/forgive-me-gene-machine
Tasteful Botany Nerf
2017-03-19 16:30:08 -04:00
uraniummeltdown
a307bffc7f fix monkey recycler board not showing up in imprinter (#25233) 2017-03-19 15:54:01 +01:00
ExcessiveUseOfCobblestone
65f3af3ec7 Gene Machine! 2017-03-18 00:18:17 -04:00
Xhuis
764ec63713 Adds the power flow control console (#25001)
* Adds the power flow control console

* Minor cleanup

* Adds some new stuff

* Tweaks sounds

* Added access requirements, admin logging, AI restriction

* Part 1: Remove dem consoles

* Put dem consoles back

* Small patch

* Some work I can't remember

* Sanity checkin'

* Maybe now!

* Sanity checks pass 3295912

* Sanity checks
2017-03-17 15:57:56 +01:00
Cyberboss
012eaec1b9 Mob Initialization (#24840)
* Mob Initialization

* new_player Repath

* Fix the dme

* Fix the shit

* Fix a loc

* Fix another loc

* But, in my haste, I forgot the cola!

* Another loc

* ANOTHER LOC

* Further docs

* Where'd that s come from

* Fix shit

* Better
2017-03-13 20:21:12 +01:00
Lzimann
5a618297ce Replaces the default output with the to_chat wrapper. 2017-03-10 01:32:05 -03:00
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